syntaur 0.74.0 → 0.76.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 +1 -1
- package/dashboard/dist/assets/{_basePickBy-CBNQaqzq.js → _basePickBy-BiwSunXO.js} +1 -1
- package/dashboard/dist/assets/{_baseUniq-Bqwz8hnN.js → _baseUniq-DsjKPXxP.js} +1 -1
- package/dashboard/dist/assets/{arc-B6lVW0Fc.js → arc-DlEs4wsF.js} +1 -1
- package/dashboard/dist/assets/{architectureDiagram-2XIMDMQ5-eKpHkGki.js → architectureDiagram-2XIMDMQ5-DPvCrO57.js} +1 -1
- package/dashboard/dist/assets/{blockDiagram-WCTKOSBZ-D3sd7ccQ.js → blockDiagram-WCTKOSBZ-CpNdCY-r.js} +1 -1
- package/dashboard/dist/assets/{c4Diagram-IC4MRINW-0qW21hVQ.js → c4Diagram-IC4MRINW-CC29QJCs.js} +1 -1
- package/dashboard/dist/assets/channel-IutbH48W.js +1 -0
- package/dashboard/dist/assets/{chunk-4BX2VUAB-tDdoFSYw.js → chunk-4BX2VUAB-DKyy-k2D.js} +1 -1
- package/dashboard/dist/assets/{chunk-55IACEB6-BU45eS64.js → chunk-55IACEB6-DjobngQk.js} +1 -1
- package/dashboard/dist/assets/{chunk-FMBD7UC4-C0iT8QWM.js → chunk-FMBD7UC4-BUftm7dV.js} +1 -1
- package/dashboard/dist/assets/{chunk-JSJVCQXG-CELv9Y6Y.js → chunk-JSJVCQXG-Nv7rQv4t.js} +1 -1
- package/dashboard/dist/assets/{chunk-KX2RTZJC-CQA_hH8g.js → chunk-KX2RTZJC-Dg6UhNB9.js} +1 -1
- package/dashboard/dist/assets/{chunk-NQ4KR5QH-BDv-d6qz.js → chunk-NQ4KR5QH-D8neQrJ_.js} +1 -1
- package/dashboard/dist/assets/{chunk-QZHKN3VN-BUOeJd34.js → chunk-QZHKN3VN-Uj9c1naA.js} +1 -1
- package/dashboard/dist/assets/{chunk-WL4C6EOR-DBc-Hsx0.js → chunk-WL4C6EOR-DfeSsP3z.js} +1 -1
- package/dashboard/dist/assets/classDiagram-VBA2DB6C-8IywRj9I.js +1 -0
- package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-8IywRj9I.js +1 -0
- package/dashboard/dist/assets/clone-C6saGiCd.js +1 -0
- package/dashboard/dist/assets/{cose-bilkent-S5V4N54A-C_Q4c3xo.js → cose-bilkent-S5V4N54A-CLfZNKcO.js} +1 -1
- package/dashboard/dist/assets/{dagre-KLK3FWXG-DdI10bBF.js → dagre-KLK3FWXG-DyJLICZx.js} +1 -1
- package/dashboard/dist/assets/{diagram-E7M64L7V-DtCF4Ea9.js → diagram-E7M64L7V-DhQc7Ta3.js} +1 -1
- package/dashboard/dist/assets/{diagram-IFDJBPK2-BVmpBmIK.js → diagram-IFDJBPK2-C6kFO7hB.js} +1 -1
- package/dashboard/dist/assets/{diagram-P4PSJMXO-BH4XFc0W.js → diagram-P4PSJMXO-B6oCiOXk.js} +1 -1
- package/dashboard/dist/assets/{erDiagram-INFDFZHY-CCjG3Ewp.js → erDiagram-INFDFZHY-BsMPaSwJ.js} +1 -1
- package/dashboard/dist/assets/{flowDiagram-PKNHOUZH-V0PT07-Y.js → flowDiagram-PKNHOUZH-DLxEqKtZ.js} +1 -1
- package/dashboard/dist/assets/{ganttDiagram-A5KZAMGK-y_85pJZf.js → ganttDiagram-A5KZAMGK-D70pvqxG.js} +1 -1
- package/dashboard/dist/assets/{gitGraphDiagram-K3NZZRJ6-B2maPPcL.js → gitGraphDiagram-K3NZZRJ6-D74VHtlE.js} +1 -1
- package/dashboard/dist/assets/{graph-DO1oCTrt.js → graph-C8bz_IEO.js} +1 -1
- package/dashboard/dist/assets/{index-BZwPAi8K.css → index-BetqH_3H.css} +1 -1
- package/dashboard/dist/assets/index-h-X_8om3.js +675 -0
- package/dashboard/dist/assets/{infoDiagram-LFFYTUFH-BIaqpTlK.js → infoDiagram-LFFYTUFH-DivBd0Pz.js} +1 -1
- package/dashboard/dist/assets/{ishikawaDiagram-PHBUUO56-BaBqTUzg.js → ishikawaDiagram-PHBUUO56-BGihUeOE.js} +1 -1
- package/dashboard/dist/assets/{journeyDiagram-4ABVD52K-CS2l7gmE.js → journeyDiagram-4ABVD52K-C7U4cWHQ.js} +1 -1
- package/dashboard/dist/assets/{kanban-definition-K7BYSVSG-B3Viag1o.js → kanban-definition-K7BYSVSG-CFp_hDTm.js} +1 -1
- package/dashboard/dist/assets/{layout-BQu5nxr5.js → layout-DMSDPqCs.js} +1 -1
- package/dashboard/dist/assets/{linear-DliLQN5_.js → linear-CCC-meYc.js} +1 -1
- package/dashboard/dist/assets/{mermaid.core-y_G2N_4o.js → mermaid.core-BDa2cc2K.js} +4 -4
- package/dashboard/dist/assets/{mindmap-definition-YRQLILUH-EZz-bEA_.js → mindmap-definition-YRQLILUH-DLKvONhO.js} +1 -1
- package/dashboard/dist/assets/{pieDiagram-SKSYHLDU-E67ZAs-E.js → pieDiagram-SKSYHLDU-DAJoGZ93.js} +1 -1
- package/dashboard/dist/assets/{quadrantDiagram-337W2JSQ-GU25jLyr.js → quadrantDiagram-337W2JSQ-Bo7haX1W.js} +1 -1
- package/dashboard/dist/assets/{requirementDiagram-Z7DCOOCP-4Jfq0mB9.js → requirementDiagram-Z7DCOOCP-uEvGz33v.js} +1 -1
- package/dashboard/dist/assets/{sankeyDiagram-WA2Y5GQK-C22SY4ul.js → sankeyDiagram-WA2Y5GQK-cjYoCGCM.js} +1 -1
- package/dashboard/dist/assets/{sequenceDiagram-2WXFIKYE-CkBh7V9t.js → sequenceDiagram-2WXFIKYE-CYXcNklt.js} +1 -1
- package/dashboard/dist/assets/{stateDiagram-RAJIS63D-n4DRlbfF.js → stateDiagram-RAJIS63D-B5We7jAw.js} +1 -1
- package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-CX9-EpBi.js +1 -0
- package/dashboard/dist/assets/{timeline-definition-YZTLITO2-CGD5ojK7.js → timeline-definition-YZTLITO2-CEqVmnVQ.js} +1 -1
- package/dashboard/dist/assets/{treemap-KZPCXAKY-EZfHxNz6.js → treemap-KZPCXAKY-CE1puPeN.js} +1 -1
- package/dashboard/dist/assets/{vennDiagram-LZ73GAT5-B9x6fx-l.js → vennDiagram-LZ73GAT5-CiiuRUjK.js} +1 -1
- package/dashboard/dist/assets/{xychartDiagram-JWTSCODW-ufzpkH1I.js → xychartDiagram-JWTSCODW-B0OuxFm9.js} +1 -1
- package/dashboard/dist/index.html +2 -2
- package/dist/dashboard/server.js +509 -221
- package/dist/dashboard/server.js.map +1 -1
- package/dist/index.js +1210 -823
- package/dist/index.js.map +1 -1
- package/dist/launch/index.d.ts +69 -7
- package/dist/launch/index.js +229 -24
- package/dist/launch/index.js.map +1 -1
- package/package.json +1 -1
- package/platforms/claude-code/.claude-plugin/plugin.json +1 -1
- package/platforms/codex/.codex-plugin/plugin.json +1 -1
- package/platforms/hermes/plugins/syntaur/__pycache__/__init__.cpython-312.pyc +0 -0
- package/platforms/hermes/plugins/syntaur/__pycache__/boundary.cpython-312.pyc +0 -0
- package/dashboard/dist/assets/channel-BDsImlpM.js +0 -1
- package/dashboard/dist/assets/classDiagram-VBA2DB6C-BhdNnCQ2.js +0 -1
- package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-BhdNnCQ2.js +0 -1
- package/dashboard/dist/assets/clone-B5RwQsX7.js +0 -1
- package/dashboard/dist/assets/index-CG8rQF5o.js +0 -670
- package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-RpTmT3-9.js +0 -1
|
@@ -1,670 +0,0 @@
|
|
|
1
|
-
var cM=Object.defineProperty;var uM=(e,t,n)=>t in e?cM(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Kx=(e,t,n)=>uM(e,typeof t!="symbol"?t+"":t,n);function dM(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const o in r)if(o!=="default"&&!(o in e)){const i=Object.getOwnPropertyDescriptor(r,o);i&&Object.defineProperty(e,o,i.get?i:{enumerable:!0,get:()=>r[o]})}}}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 o of document.querySelectorAll('link[rel="modulepreload"]'))r(o);new MutationObserver(o=>{for(const i of o)if(i.type==="childList")for(const a of i.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&r(a)}).observe(document,{childList:!0,subtree:!0});function n(o){const i={};return o.integrity&&(i.integrity=o.integrity),o.referrerPolicy&&(i.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?i.credentials="include":o.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(o){if(o.ep)return;o.ep=!0;const i=n(o);fetch(o.href,i)}})();function Pd(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Yle(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if(typeof t=="function"){var n=function r(){return this instanceof r?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(r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}),n}var qx={exports:{}},xu={},Gx={exports:{}},Et={};/**
|
|
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 p1;function fM(){if(p1)return Et;p1=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),o=Symbol.for("react.profiler"),i=Symbol.for("react.provider"),a=Symbol.for("react.context"),l=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),f=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),h=Symbol.iterator;function g(z){return z===null||typeof z!="object"?null:(z=h&&z[h]||z["@@iterator"],typeof z=="function"?z:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,v={};function b(z,Y,B){this.props=z,this.context=Y,this.refs=v,this.updater=B||y}b.prototype.isReactComponent={},b.prototype.setState=function(z,Y){if(typeof z!="object"&&typeof z!="function"&&z!=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,z,Y,"setState")},b.prototype.forceUpdate=function(z){this.updater.enqueueForceUpdate(this,z,"forceUpdate")};function j(){}j.prototype=b.prototype;function S(z,Y,B){this.props=z,this.context=Y,this.refs=v,this.updater=B||y}var N=S.prototype=new j;N.constructor=S,k(N,b.prototype),N.isPureReactComponent=!0;var C=Array.isArray,P=Object.prototype.hasOwnProperty,T={current:null},R={key:!0,ref:!0,__self:!0,__source:!0};function I(z,Y,B){var Q,J={},Z=null,oe=null;if(Y!=null)for(Q in Y.ref!==void 0&&(oe=Y.ref),Y.key!==void 0&&(Z=""+Y.key),Y)P.call(Y,Q)&&!R.hasOwnProperty(Q)&&(J[Q]=Y[Q]);var ne=arguments.length-2;if(ne===1)J.children=B;else if(1<ne){for(var ue=Array(ne),ge=0;ge<ne;ge++)ue[ge]=arguments[ge+2];J.children=ue}if(z&&z.defaultProps)for(Q in ne=z.defaultProps,ne)J[Q]===void 0&&(J[Q]=ne[Q]);return{$$typeof:e,type:z,key:Z,ref:oe,props:J,_owner:T.current}}function _(z,Y){return{$$typeof:e,type:z.type,key:Y,ref:z.ref,props:z.props,_owner:z._owner}}function F(z){return typeof z=="object"&&z!==null&&z.$$typeof===e}function D(z){var Y={"=":"=0",":":"=2"};return"$"+z.replace(/[=:]/g,function(B){return Y[B]})}var W=/\/+/g;function V(z,Y){return typeof z=="object"&&z!==null&&z.key!=null?D(""+z.key):Y.toString(36)}function $(z,Y,B,Q,J){var Z=typeof z;(Z==="undefined"||Z==="boolean")&&(z=null);var oe=!1;if(z===null)oe=!0;else switch(Z){case"string":case"number":oe=!0;break;case"object":switch(z.$$typeof){case e:case t:oe=!0}}if(oe)return oe=z,J=J(oe),z=Q===""?"."+V(oe,0):Q,C(J)?(B="",z!=null&&(B=z.replace(W,"$&/")+"/"),$(J,Y,B,"",function(ge){return ge})):J!=null&&(F(J)&&(J=_(J,B+(!J.key||oe&&oe.key===J.key?"":(""+J.key).replace(W,"$&/")+"/")+z)),Y.push(J)),1;if(oe=0,Q=Q===""?".":Q+":",C(z))for(var ne=0;ne<z.length;ne++){Z=z[ne];var ue=Q+V(Z,ne);oe+=$(Z,Y,B,ue,J)}else if(ue=g(z),typeof ue=="function")for(z=ue.call(z),ne=0;!(Z=z.next()).done;)Z=Z.value,ue=Q+V(Z,ne++),oe+=$(Z,Y,B,ue,J);else if(Z==="object")throw Y=String(z),Error("Objects are not valid as a React child (found: "+(Y==="[object Object]"?"object with keys {"+Object.keys(z).join(", ")+"}":Y)+"). If you meant to render a collection of children, use an array instead.");return oe}function O(z,Y,B){if(z==null)return z;var Q=[],J=0;return $(z,Q,"","",function(Z){return Y.call(B,Z,J++)}),Q}function U(z){if(z._status===-1){var Y=z._result;Y=Y(),Y.then(function(B){(z._status===0||z._status===-1)&&(z._status=1,z._result=B)},function(B){(z._status===0||z._status===-1)&&(z._status=2,z._result=B)}),z._status===-1&&(z._status=0,z._result=Y)}if(z._status===1)return z._result.default;throw z._result}var K={current:null},M={transition:null},H={ReactCurrentDispatcher:K,ReactCurrentBatchConfig:M,ReactCurrentOwner:T};function L(){throw Error("act(...) is not supported in production builds of React.")}return Et.Children={map:O,forEach:function(z,Y,B){O(z,function(){Y.apply(this,arguments)},B)},count:function(z){var Y=0;return O(z,function(){Y++}),Y},toArray:function(z){return O(z,function(Y){return Y})||[]},only:function(z){if(!F(z))throw Error("React.Children.only expected to receive a single React element child.");return z}},Et.Component=b,Et.Fragment=n,Et.Profiler=o,Et.PureComponent=S,Et.StrictMode=r,Et.Suspense=u,Et.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=H,Et.act=L,Et.cloneElement=function(z,Y,B){if(z==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+z+".");var Q=k({},z.props),J=z.key,Z=z.ref,oe=z._owner;if(Y!=null){if(Y.ref!==void 0&&(Z=Y.ref,oe=T.current),Y.key!==void 0&&(J=""+Y.key),z.type&&z.type.defaultProps)var ne=z.type.defaultProps;for(ue in Y)P.call(Y,ue)&&!R.hasOwnProperty(ue)&&(Q[ue]=Y[ue]===void 0&&ne!==void 0?ne[ue]:Y[ue])}var ue=arguments.length-2;if(ue===1)Q.children=B;else if(1<ue){ne=Array(ue);for(var ge=0;ge<ue;ge++)ne[ge]=arguments[ge+2];Q.children=ne}return{$$typeof:e,type:z.type,key:J,ref:Z,props:Q,_owner:oe}},Et.createContext=function(z){return z={$$typeof:a,_currentValue:z,_currentValue2:z,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},z.Provider={$$typeof:i,_context:z},z.Consumer=z},Et.createElement=I,Et.createFactory=function(z){var Y=I.bind(null,z);return Y.type=z,Y},Et.createRef=function(){return{current:null}},Et.forwardRef=function(z){return{$$typeof:l,render:z}},Et.isValidElement=F,Et.lazy=function(z){return{$$typeof:p,_payload:{_status:-1,_result:z},_init:U}},Et.memo=function(z,Y){return{$$typeof:f,type:z,compare:Y===void 0?null:Y}},Et.startTransition=function(z){var Y=M.transition;M.transition={};try{z()}finally{M.transition=Y}},Et.unstable_act=L,Et.useCallback=function(z,Y){return K.current.useCallback(z,Y)},Et.useContext=function(z){return K.current.useContext(z)},Et.useDebugValue=function(){},Et.useDeferredValue=function(z){return K.current.useDeferredValue(z)},Et.useEffect=function(z,Y){return K.current.useEffect(z,Y)},Et.useId=function(){return K.current.useId()},Et.useImperativeHandle=function(z,Y,B){return K.current.useImperativeHandle(z,Y,B)},Et.useInsertionEffect=function(z,Y){return K.current.useInsertionEffect(z,Y)},Et.useLayoutEffect=function(z,Y){return K.current.useLayoutEffect(z,Y)},Et.useMemo=function(z,Y){return K.current.useMemo(z,Y)},Et.useReducer=function(z,Y,B){return K.current.useReducer(z,Y,B)},Et.useRef=function(z){return K.current.useRef(z)},Et.useState=function(z){return K.current.useState(z)},Et.useSyncExternalStore=function(z,Y,B){return K.current.useSyncExternalStore(z,Y,B)},Et.useTransition=function(){return K.current.useTransition()},Et.version="18.3.1",Et}var h1;function _d(){return h1||(h1=1,Gx.exports=fM()),Gx.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 m1;function pM(){if(m1)return xu;m1=1;var e=_d(),t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),r=Object.prototype.hasOwnProperty,o=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,i={key:!0,ref:!0,__self:!0,__source:!0};function a(l,u,f){var p,h={},g=null,y=null;f!==void 0&&(g=""+f),u.key!==void 0&&(g=""+u.key),u.ref!==void 0&&(y=u.ref);for(p in u)r.call(u,p)&&!i.hasOwnProperty(p)&&(h[p]=u[p]);if(l&&l.defaultProps)for(p in u=l.defaultProps,u)h[p]===void 0&&(h[p]=u[p]);return{$$typeof:t,type:l,key:g,ref:y,props:h,_owner:o.current}}return xu.Fragment=n,xu.jsx=a,xu.jsxs=a,xu}var g1;function hM(){return g1||(g1=1,qx.exports=pM()),qx.exports}var s=hM(),m=_d();const Ot=Pd(m),WE=dM({__proto__:null,default:Ot},[m]);var op={},Yx={exports:{}},xr={},Xx={exports:{}},Qx={};/**
|
|
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 x1;function mM(){return x1||(x1=1,(function(e){function t(M,H){var L=M.length;M.push(H);e:for(;0<L;){var z=L-1>>>1,Y=M[z];if(0<o(Y,H))M[z]=H,M[L]=Y,L=z;else break e}}function n(M){return M.length===0?null:M[0]}function r(M){if(M.length===0)return null;var H=M[0],L=M.pop();if(L!==H){M[0]=L;e:for(var z=0,Y=M.length,B=Y>>>1;z<B;){var Q=2*(z+1)-1,J=M[Q],Z=Q+1,oe=M[Z];if(0>o(J,L))Z<Y&&0>o(oe,J)?(M[z]=oe,M[Z]=L,z=Z):(M[z]=J,M[Q]=L,z=Q);else if(Z<Y&&0>o(oe,L))M[z]=oe,M[Z]=L,z=Z;else break e}}return H}function o(M,H){var L=M.sortIndex-H.sortIndex;return L!==0?L:M.id-H.id}if(typeof performance=="object"&&typeof performance.now=="function"){var i=performance;e.unstable_now=function(){return i.now()}}else{var a=Date,l=a.now();e.unstable_now=function(){return a.now()-l}}var u=[],f=[],p=1,h=null,g=3,y=!1,k=!1,v=!1,b=typeof setTimeout=="function"?setTimeout:null,j=typeof clearTimeout=="function"?clearTimeout:null,S=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function N(M){for(var H=n(f);H!==null;){if(H.callback===null)r(f);else if(H.startTime<=M)r(f),H.sortIndex=H.expirationTime,t(u,H);else break;H=n(f)}}function C(M){if(v=!1,N(M),!k)if(n(u)!==null)k=!0,U(P);else{var H=n(f);H!==null&&K(C,H.startTime-M)}}function P(M,H){k=!1,v&&(v=!1,j(I),I=-1),y=!0;var L=g;try{for(N(H),h=n(u);h!==null&&(!(h.expirationTime>H)||M&&!D());){var z=h.callback;if(typeof z=="function"){h.callback=null,g=h.priorityLevel;var Y=z(h.expirationTime<=H);H=e.unstable_now(),typeof Y=="function"?h.callback=Y:h===n(u)&&r(u),N(H)}else r(u);h=n(u)}if(h!==null)var B=!0;else{var Q=n(f);Q!==null&&K(C,Q.startTime-H),B=!1}return B}finally{h=null,g=L,y=!1}}var T=!1,R=null,I=-1,_=5,F=-1;function D(){return!(e.unstable_now()-F<_)}function W(){if(R!==null){var M=e.unstable_now();F=M;var H=!0;try{H=R(!0,M)}finally{H?V():(T=!1,R=null)}}else T=!1}var V;if(typeof S=="function")V=function(){S(W)};else if(typeof MessageChannel<"u"){var $=new MessageChannel,O=$.port2;$.port1.onmessage=W,V=function(){O.postMessage(null)}}else V=function(){b(W,0)};function U(M){R=M,T||(T=!0,V())}function K(M,H){I=b(function(){M(e.unstable_now())},H)}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(M){M.callback=null},e.unstable_continueExecution=function(){k||y||(k=!0,U(P))},e.unstable_forceFrameRate=function(M){0>M||125<M?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):_=0<M?Math.floor(1e3/M):5},e.unstable_getCurrentPriorityLevel=function(){return g},e.unstable_getFirstCallbackNode=function(){return n(u)},e.unstable_next=function(M){switch(g){case 1:case 2:case 3:var H=3;break;default:H=g}var L=g;g=H;try{return M()}finally{g=L}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(M,H){switch(M){case 1:case 2:case 3:case 4:case 5:break;default:M=3}var L=g;g=M;try{return H()}finally{g=L}},e.unstable_scheduleCallback=function(M,H,L){var z=e.unstable_now();switch(typeof L=="object"&&L!==null?(L=L.delay,L=typeof L=="number"&&0<L?z+L:z):L=z,M){case 1:var Y=-1;break;case 2:Y=250;break;case 5:Y=1073741823;break;case 4:Y=1e4;break;default:Y=5e3}return Y=L+Y,M={id:p++,callback:H,priorityLevel:M,startTime:L,expirationTime:Y,sortIndex:-1},L>z?(M.sortIndex=L,t(f,M),n(u)===null&&M===n(f)&&(v?(j(I),I=-1):v=!0,K(C,L-z))):(M.sortIndex=Y,t(u,M),k||y||(k=!0,U(P))),M},e.unstable_shouldYield=D,e.unstable_wrapCallback=function(M){var H=g;return function(){var L=g;g=H;try{return M.apply(this,arguments)}finally{g=L}}}})(Qx)),Qx}var y1;function gM(){return y1||(y1=1,Xx.exports=mM()),Xx.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 b1;function xM(){if(b1)return xr;b1=1;var e=_d(),t=gM();function n(c){for(var d="https://reactjs.org/docs/error-decoder.html?invariant="+c,x=1;x<arguments.length;x++)d+="&args[]="+encodeURIComponent(arguments[x]);return"Minified React error #"+c+"; visit "+d+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var r=new Set,o={};function i(c,d){a(c,d),a(c+"Capture",d)}function a(c,d){for(o[c]=d,c=0;c<d.length;c++)r.add(d[c])}var l=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),u=Object.prototype.hasOwnProperty,f=/^[: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]*$/,p={},h={};function g(c){return u.call(h,c)?!0:u.call(p,c)?!1:f.test(c)?h[c]=!0:(p[c]=!0,!1)}function y(c,d,x,w){if(x!==null&&x.type===0)return!1;switch(typeof d){case"function":case"symbol":return!0;case"boolean":return w?!1:x!==null?!x.acceptsBooleans:(c=c.toLowerCase().slice(0,5),c!=="data-"&&c!=="aria-");default:return!1}}function k(c,d,x,w){if(d===null||typeof d>"u"||y(c,d,x,w))return!0;if(w)return!1;if(x!==null)switch(x.type){case 3:return!d;case 4:return d===!1;case 5:return isNaN(d);case 6:return isNaN(d)||1>d}return!1}function v(c,d,x,w,E,A,G){this.acceptsBooleans=d===2||d===3||d===4,this.attributeName=w,this.attributeNamespace=E,this.mustUseProperty=x,this.propertyName=c,this.type=d,this.sanitizeURL=A,this.removeEmptyString=G}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(c){b[c]=new v(c,0,!1,c,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(c){var d=c[0];b[d]=new v(d,1,!1,c[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(c){b[c]=new v(c,2,!1,c.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(c){b[c]=new v(c,2,!1,c,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(c){b[c]=new v(c,3,!1,c.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(c){b[c]=new v(c,3,!0,c,null,!1,!1)}),["capture","download"].forEach(function(c){b[c]=new v(c,4,!1,c,null,!1,!1)}),["cols","rows","size","span"].forEach(function(c){b[c]=new v(c,6,!1,c,null,!1,!1)}),["rowSpan","start"].forEach(function(c){b[c]=new v(c,5,!1,c.toLowerCase(),null,!1,!1)});var j=/[\-:]([a-z])/g;function S(c){return c[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(c){var d=c.replace(j,S);b[d]=new v(d,1,!1,c,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(c){var d=c.replace(j,S);b[d]=new v(d,1,!1,c,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(c){var d=c.replace(j,S);b[d]=new v(d,1,!1,c,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(c){b[c]=new v(c,1,!1,c.toLowerCase(),null,!1,!1)}),b.xlinkHref=new v("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(c){b[c]=new v(c,1,!1,c.toLowerCase(),null,!0,!0)});function N(c,d,x,w){var E=b.hasOwnProperty(d)?b[d]:null;(E!==null?E.type!==0:w||!(2<d.length)||d[0]!=="o"&&d[0]!=="O"||d[1]!=="n"&&d[1]!=="N")&&(k(d,x,E,w)&&(x=null),w||E===null?g(d)&&(x===null?c.removeAttribute(d):c.setAttribute(d,""+x)):E.mustUseProperty?c[E.propertyName]=x===null?E.type===3?!1:"":x:(d=E.attributeName,w=E.attributeNamespace,x===null?c.removeAttribute(d):(E=E.type,x=E===3||E===4&&x===!0?"":""+x,w?c.setAttributeNS(w,d,x):c.setAttribute(d,x))))}var C=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,P=Symbol.for("react.element"),T=Symbol.for("react.portal"),R=Symbol.for("react.fragment"),I=Symbol.for("react.strict_mode"),_=Symbol.for("react.profiler"),F=Symbol.for("react.provider"),D=Symbol.for("react.context"),W=Symbol.for("react.forward_ref"),V=Symbol.for("react.suspense"),$=Symbol.for("react.suspense_list"),O=Symbol.for("react.memo"),U=Symbol.for("react.lazy"),K=Symbol.for("react.offscreen"),M=Symbol.iterator;function H(c){return c===null||typeof c!="object"?null:(c=M&&c[M]||c["@@iterator"],typeof c=="function"?c:null)}var L=Object.assign,z;function Y(c){if(z===void 0)try{throw Error()}catch(x){var d=x.stack.trim().match(/\n( *(at )?)/);z=d&&d[1]||""}return`
|
|
34
|
-
`+z+c}var B=!1;function Q(c,d){if(!c||B)return"";B=!0;var x=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(d)if(d=function(){throw Error()},Object.defineProperty(d.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(d,[])}catch(he){var w=he}Reflect.construct(c,[],d)}else{try{d.call()}catch(he){w=he}c.call(d.prototype)}else{try{throw Error()}catch(he){w=he}c()}}catch(he){if(he&&w&&typeof he.stack=="string"){for(var E=he.stack.split(`
|
|
35
|
-
`),A=w.stack.split(`
|
|
36
|
-
`),G=E.length-1,ee=A.length-1;1<=G&&0<=ee&&E[G]!==A[ee];)ee--;for(;1<=G&&0<=ee;G--,ee--)if(E[G]!==A[ee]){if(G!==1||ee!==1)do if(G--,ee--,0>ee||E[G]!==A[ee]){var se=`
|
|
37
|
-
`+E[G].replace(" at new "," at ");return c.displayName&&se.includes("<anonymous>")&&(se=se.replace("<anonymous>",c.displayName)),se}while(1<=G&&0<=ee);break}}}finally{B=!1,Error.prepareStackTrace=x}return(c=c?c.displayName||c.name:"")?Y(c):""}function J(c){switch(c.tag){case 5:return Y(c.type);case 16:return Y("Lazy");case 13:return Y("Suspense");case 19:return Y("SuspenseList");case 0:case 2:case 15:return c=Q(c.type,!1),c;case 11:return c=Q(c.type.render,!1),c;case 1:return c=Q(c.type,!0),c;default:return""}}function Z(c){if(c==null)return null;if(typeof c=="function")return c.displayName||c.name||null;if(typeof c=="string")return c;switch(c){case R:return"Fragment";case T:return"Portal";case _:return"Profiler";case I:return"StrictMode";case V:return"Suspense";case $:return"SuspenseList"}if(typeof c=="object")switch(c.$$typeof){case D:return(c.displayName||"Context")+".Consumer";case F:return(c._context.displayName||"Context")+".Provider";case W:var d=c.render;return c=c.displayName,c||(c=d.displayName||d.name||"",c=c!==""?"ForwardRef("+c+")":"ForwardRef"),c;case O:return d=c.displayName||null,d!==null?d:Z(c.type)||"Memo";case U:d=c._payload,c=c._init;try{return Z(c(d))}catch{}}return null}function oe(c){var d=c.type;switch(c.tag){case 24:return"Cache";case 9:return(d.displayName||"Context")+".Consumer";case 10:return(d._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return c=d.render,c=c.displayName||c.name||"",d.displayName||(c!==""?"ForwardRef("+c+")":"ForwardRef");case 7:return"Fragment";case 5:return d;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Z(d);case 8:return d===I?"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 d=="function")return d.displayName||d.name||null;if(typeof d=="string")return d}return null}function ne(c){switch(typeof c){case"boolean":case"number":case"string":case"undefined":return c;case"object":return c;default:return""}}function ue(c){var d=c.type;return(c=c.nodeName)&&c.toLowerCase()==="input"&&(d==="checkbox"||d==="radio")}function ge(c){var d=ue(c)?"checked":"value",x=Object.getOwnPropertyDescriptor(c.constructor.prototype,d),w=""+c[d];if(!c.hasOwnProperty(d)&&typeof x<"u"&&typeof x.get=="function"&&typeof x.set=="function"){var E=x.get,A=x.set;return Object.defineProperty(c,d,{configurable:!0,get:function(){return E.call(this)},set:function(G){w=""+G,A.call(this,G)}}),Object.defineProperty(c,d,{enumerable:x.enumerable}),{getValue:function(){return w},setValue:function(G){w=""+G},stopTracking:function(){c._valueTracker=null,delete c[d]}}}}function Ce(c){c._valueTracker||(c._valueTracker=ge(c))}function Se(c){if(!c)return!1;var d=c._valueTracker;if(!d)return!0;var x=d.getValue(),w="";return c&&(w=ue(c)?c.checked?"true":"false":c.value),c=w,c!==x?(d.setValue(c),!0):!1}function ke(c){if(c=c||(typeof document<"u"?document:void 0),typeof c>"u")return null;try{return c.activeElement||c.body}catch{return c.body}}function Be(c,d){var x=d.checked;return L({},d,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:x??c._wrapperState.initialChecked})}function ie(c,d){var x=d.defaultValue==null?"":d.defaultValue,w=d.checked!=null?d.checked:d.defaultChecked;x=ne(d.value!=null?d.value:x),c._wrapperState={initialChecked:w,initialValue:x,controlled:d.type==="checkbox"||d.type==="radio"?d.checked!=null:d.value!=null}}function ve(c,d){d=d.checked,d!=null&&N(c,"checked",d,!1)}function be(c,d){ve(c,d);var x=ne(d.value),w=d.type;if(x!=null)w==="number"?(x===0&&c.value===""||c.value!=x)&&(c.value=""+x):c.value!==""+x&&(c.value=""+x);else if(w==="submit"||w==="reset"){c.removeAttribute("value");return}d.hasOwnProperty("value")?Ue(c,d.type,x):d.hasOwnProperty("defaultValue")&&Ue(c,d.type,ne(d.defaultValue)),d.checked==null&&d.defaultChecked!=null&&(c.defaultChecked=!!d.defaultChecked)}function Re(c,d,x){if(d.hasOwnProperty("value")||d.hasOwnProperty("defaultValue")){var w=d.type;if(!(w!=="submit"&&w!=="reset"||d.value!==void 0&&d.value!==null))return;d=""+c._wrapperState.initialValue,x||d===c.value||(c.value=d),c.defaultValue=d}x=c.name,x!==""&&(c.name=""),c.defaultChecked=!!c._wrapperState.initialChecked,x!==""&&(c.name=x)}function Ue(c,d,x){(d!=="number"||ke(c.ownerDocument)!==c)&&(x==null?c.defaultValue=""+c._wrapperState.initialValue:c.defaultValue!==""+x&&(c.defaultValue=""+x))}var rt=Array.isArray;function Oe(c,d,x,w){if(c=c.options,d){d={};for(var E=0;E<x.length;E++)d["$"+x[E]]=!0;for(x=0;x<c.length;x++)E=d.hasOwnProperty("$"+c[x].value),c[x].selected!==E&&(c[x].selected=E),E&&w&&(c[x].defaultSelected=!0)}else{for(x=""+ne(x),d=null,E=0;E<c.length;E++){if(c[E].value===x){c[E].selected=!0,w&&(c[E].defaultSelected=!0);return}d!==null||c[E].disabled||(d=c[E])}d!==null&&(d.selected=!0)}}function ot(c,d){if(d.dangerouslySetInnerHTML!=null)throw Error(n(91));return L({},d,{value:void 0,defaultValue:void 0,children:""+c._wrapperState.initialValue})}function St(c,d){var x=d.value;if(x==null){if(x=d.children,d=d.defaultValue,x!=null){if(d!=null)throw Error(n(92));if(rt(x)){if(1<x.length)throw Error(n(93));x=x[0]}d=x}d==null&&(d=""),x=d}c._wrapperState={initialValue:ne(x)}}function mt(c,d){var x=ne(d.value),w=ne(d.defaultValue);x!=null&&(x=""+x,x!==c.value&&(c.value=x),d.defaultValue==null&&c.defaultValue!==x&&(c.defaultValue=x)),w!=null&&(c.defaultValue=""+w)}function at(c){var d=c.textContent;d===c._wrapperState.initialValue&&d!==""&&d!==null&&(c.value=d)}function ce(c){switch(c){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 me(c,d){return c==null||c==="http://www.w3.org/1999/xhtml"?ce(d):c==="http://www.w3.org/2000/svg"&&d==="foreignObject"?"http://www.w3.org/1999/xhtml":c}var Ie,Ae=(function(c){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(d,x,w,E){MSApp.execUnsafeLocalFunction(function(){return c(d,x,w,E)})}:c})(function(c,d){if(c.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in c)c.innerHTML=d;else{for(Ie=Ie||document.createElement("div"),Ie.innerHTML="<svg>"+d.valueOf().toString()+"</svg>",d=Ie.firstChild;c.firstChild;)c.removeChild(c.firstChild);for(;d.firstChild;)c.appendChild(d.firstChild)}});function Ve(c,d){if(d){var x=c.firstChild;if(x&&x===c.lastChild&&x.nodeType===3){x.nodeValue=d;return}}c.textContent=d}var pt={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},_e=["Webkit","ms","Moz","O"];Object.keys(pt).forEach(function(c){_e.forEach(function(d){d=d+c.charAt(0).toUpperCase()+c.substring(1),pt[d]=pt[c]})});function Qe(c,d,x){return d==null||typeof d=="boolean"||d===""?"":x||typeof d!="number"||d===0||pt.hasOwnProperty(c)&&pt[c]?(""+d).trim():d+"px"}function Je(c,d){c=c.style;for(var x in d)if(d.hasOwnProperty(x)){var w=x.indexOf("--")===0,E=Qe(x,d[x],w);x==="float"&&(x="cssFloat"),w?c.setProperty(x,E):c[x]=E}}var ut=L({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 fe(c,d){if(d){if(ut[c]&&(d.children!=null||d.dangerouslySetInnerHTML!=null))throw Error(n(137,c));if(d.dangerouslySetInnerHTML!=null){if(d.children!=null)throw Error(n(60));if(typeof d.dangerouslySetInnerHTML!="object"||!("__html"in d.dangerouslySetInnerHTML))throw Error(n(61))}if(d.style!=null&&typeof d.style!="object")throw Error(n(62))}}function q(c,d){if(c.indexOf("-")===-1)return typeof d.is=="string";switch(c){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 re=null;function xe(c){return c=c.target||c.srcElement||window,c.correspondingUseElement&&(c=c.correspondingUseElement),c.nodeType===3?c.parentNode:c}var qe=null,Fe=null,lt=null;function ht(c){if(c=nu(c)){if(typeof qe!="function")throw Error(n(280));var d=c.stateNode;d&&(d=vf(d),qe(c.stateNode,c.type,d))}}function vt(c){Fe?lt?lt.push(c):lt=[c]:Fe=c}function tt(){if(Fe){var c=Fe,d=lt;if(lt=Fe=null,ht(c),d)for(c=0;c<d.length;c++)ht(d[c])}}function Dt(c,d){return c(d)}function Bt(){}var Ut=!1;function En(c,d,x){if(Ut)return c(d,x);Ut=!0;try{return Dt(c,d,x)}finally{Ut=!1,(Fe!==null||lt!==null)&&(Bt(),tt())}}function Ct(c,d){var x=c.stateNode;if(x===null)return null;var w=vf(x);if(w===null)return null;x=w[d];e:switch(d){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(w=!w.disabled)||(c=c.type,w=!(c==="button"||c==="input"||c==="select"||c==="textarea")),c=!w;break e;default:c=!1}if(c)return null;if(x&&typeof x!="function")throw Error(n(231,d,typeof x));return x}var je=!1;if(l)try{var Ge={};Object.defineProperty(Ge,"passive",{get:function(){je=!0}}),window.addEventListener("test",Ge,Ge),window.removeEventListener("test",Ge,Ge)}catch{je=!1}function it(c,d,x,w,E,A,G,ee,se){var he=Array.prototype.slice.call(arguments,3);try{d.apply(x,he)}catch(Te){this.onError(Te)}}var Mt=!1,le=null,Ne=!1,nt=null,Tn={onError:function(c){Mt=!0,le=c}};function Tr(c,d,x,w,E,A,G,ee,se){Mt=!1,le=null,it.apply(Tn,arguments)}function io(c,d,x,w,E,A,G,ee,se){if(Tr.apply(this,arguments),Mt){if(Mt){var he=le;Mt=!1,le=null}else throw Error(n(198));Ne||(Ne=!0,nt=he)}}function wt(c){var d=c,x=c;if(c.alternate)for(;d.return;)d=d.return;else{c=d;do d=c,(d.flags&4098)!==0&&(x=d.return),c=d.return;while(c)}return d.tag===3?x:null}function Di(c){if(c.tag===13){var d=c.memoizedState;if(d===null&&(c=c.alternate,c!==null&&(d=c.memoizedState)),d!==null)return d.dehydrated}return null}function Mo(c){if(wt(c)!==c)throw Error(n(188))}function Ia(c){var d=c.alternate;if(!d){if(d=wt(c),d===null)throw Error(n(188));return d!==c?null:c}for(var x=c,w=d;;){var E=x.return;if(E===null)break;var A=E.alternate;if(A===null){if(w=E.return,w!==null){x=w;continue}break}if(E.child===A.child){for(A=E.child;A;){if(A===x)return Mo(E),c;if(A===w)return Mo(E),d;A=A.sibling}throw Error(n(188))}if(x.return!==w.return)x=E,w=A;else{for(var G=!1,ee=E.child;ee;){if(ee===x){G=!0,x=E,w=A;break}if(ee===w){G=!0,w=E,x=A;break}ee=ee.sibling}if(!G){for(ee=A.child;ee;){if(ee===x){G=!0,x=A,w=E;break}if(ee===w){G=!0,w=A,x=E;break}ee=ee.sibling}if(!G)throw Error(n(189))}}if(x.alternate!==w)throw Error(n(190))}if(x.tag!==3)throw Error(n(188));return x.stateNode.current===x?c:d}function nn(c){return c=Ia(c),c!==null?Lo(c):null}function Lo(c){if(c.tag===5||c.tag===6)return c;for(c=c.child;c!==null;){var d=Lo(c);if(d!==null)return d;c=c.sibling}return null}var Ma=t.unstable_scheduleCallback,La=t.unstable_cancelCallback,Fc=t.unstable_shouldYield,Oa=t.unstable_requestPaint,Ht=t.unstable_now,$i=t.unstable_getCurrentPriorityLevel,ao=t.unstable_ImmediatePriority,Oo=t.unstable_UserBlockingPriority,Ds=t.unstable_NormalPriority,Fo=t.unstable_LowPriority,Fa=t.unstable_IdlePriority,zo=null,ar=null;function dr(c){if(ar&&typeof ar.onCommitFiberRoot=="function")try{ar.onCommitFiberRoot(zo,c,void 0,(c.current.flags&128)===128)}catch{}}var On=Math.clz32?Math.clz32:Bc,Bo=Math.log,zc=Math.LN2;function Bc(c){return c>>>=0,c===0?32:31-(Bo(c)/zc|0)|0}var Uo=64,Wn=4194304;function lo(c){switch(c&-c){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 c&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return c&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return c}}function Kr(c,d){var x=c.pendingLanes;if(x===0)return 0;var w=0,E=c.suspendedLanes,A=c.pingedLanes,G=x&268435455;if(G!==0){var ee=G&~E;ee!==0?w=lo(ee):(A&=G,A!==0&&(w=lo(A)))}else G=x&~E,G!==0?w=lo(G):A!==0&&(w=lo(A));if(w===0)return 0;if(d!==0&&d!==w&&(d&E)===0&&(E=w&-w,A=d&-d,E>=A||E===16&&(A&4194240)!==0))return d;if((w&4)!==0&&(w|=x&16),d=c.entangledLanes,d!==0)for(c=c.entanglements,d&=w;0<d;)x=31-On(d),E=1<<x,w|=c[x],d&=~E;return w}function za(c,d){switch(c){case 1:case 2:case 4:return d+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 d+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 Ii(c,d){for(var x=c.suspendedLanes,w=c.pingedLanes,E=c.expirationTimes,A=c.pendingLanes;0<A;){var G=31-On(A),ee=1<<G,se=E[G];se===-1?((ee&x)===0||(ee&w)!==0)&&(E[G]=za(ee,d)):se<=d&&(c.expiredLanes|=ee),A&=~ee}}function Ho(c){return c=c.pendingLanes&-1073741825,c!==0?c:c&1073741824?1073741824:0}function Vo(){var c=Uo;return Uo<<=1,(Uo&4194240)===0&&(Uo=64),c}function $s(c){for(var d=[],x=0;31>x;x++)d.push(c);return d}function Fn(c,d,x){c.pendingLanes|=d,d!==536870912&&(c.suspendedLanes=0,c.pingedLanes=0),c=c.eventTimes,d=31-On(d),c[d]=x}function Rn(c,d){var x=c.pendingLanes&~d;c.pendingLanes=d,c.suspendedLanes=0,c.pingedLanes=0,c.expiredLanes&=d,c.mutableReadLanes&=d,c.entangledLanes&=d,d=c.entanglements;var w=c.eventTimes;for(c=c.expirationTimes;0<x;){var E=31-On(x),A=1<<E;d[E]=0,w[E]=-1,c[E]=-1,x&=~A}}function Is(c,d){var x=c.entangledLanes|=d;for(c=c.entanglements;x;){var w=31-On(x),E=1<<w;E&d|c[w]&d&&(c[w]|=d),x&=~E}}var Ft=0;function af(c){return c&=-c,1<c?4<c?(c&268435455)!==0?16:536870912:4:1}var Uc,Mi,Hc,co,Vc,Ba=!1,Wo=[],Ms=null,Ls=null,fn=null,Li=new Map,uo=new Map,Os=[],bg="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 lf(c,d){switch(c){case"focusin":case"focusout":Ms=null;break;case"dragenter":case"dragleave":Ls=null;break;case"mouseover":case"mouseout":fn=null;break;case"pointerover":case"pointerout":Li.delete(d.pointerId);break;case"gotpointercapture":case"lostpointercapture":uo.delete(d.pointerId)}}function Rr(c,d,x,w,E,A){return c===null||c.nativeEvent!==A?(c={blockedOn:d,domEventName:x,eventSystemFlags:w,nativeEvent:A,targetContainers:[E]},d!==null&&(d=nu(d),d!==null&&Mi(d)),c):(c.eventSystemFlags|=w,d=c.targetContainers,E!==null&&d.indexOf(E)===-1&&d.push(E),c)}function X(c,d,x,w,E){switch(d){case"focusin":return Ms=Rr(Ms,c,d,x,w,E),!0;case"dragenter":return Ls=Rr(Ls,c,d,x,w,E),!0;case"mouseover":return fn=Rr(fn,c,d,x,w,E),!0;case"pointerover":var A=E.pointerId;return Li.set(A,Rr(Li.get(A)||null,c,d,x,w,E)),!0;case"gotpointercapture":return A=E.pointerId,uo.set(A,Rr(uo.get(A)||null,c,d,x,w,E)),!0}return!1}function te(c){var d=Fi(c.target);if(d!==null){var x=wt(d);if(x!==null){if(d=x.tag,d===13){if(d=Di(x),d!==null){c.blockedOn=d,Vc(c.priority,function(){Hc(x)});return}}else if(d===3&&x.stateNode.current.memoizedState.isDehydrated){c.blockedOn=x.tag===3?x.stateNode.containerInfo:null;return}}}c.blockedOn=null}function ye(c){if(c.blockedOn!==null)return!1;for(var d=c.targetContainers;0<d.length;){var x=qo(c.domEventName,c.eventSystemFlags,d[0],c.nativeEvent);if(x===null){x=c.nativeEvent;var w=new x.constructor(x.type,x);re=w,x.target.dispatchEvent(w),re=null}else return d=nu(x),d!==null&&Mi(d),c.blockedOn=x,!1;d.shift()}return!0}function ze(c,d,x){ye(c)&&x.delete(d)}function yt(){Ba=!1,Ms!==null&&ye(Ms)&&(Ms=null),Ls!==null&&ye(Ls)&&(Ls=null),fn!==null&&ye(fn)&&(fn=null),Li.forEach(ze),uo.forEach(ze)}function Tt(c,d){c.blockedOn===d&&(c.blockedOn=null,Ba||(Ba=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,yt)))}function $t(c){function d(E){return Tt(E,c)}if(0<Wo.length){Tt(Wo[0],c);for(var x=1;x<Wo.length;x++){var w=Wo[x];w.blockedOn===c&&(w.blockedOn=null)}}for(Ms!==null&&Tt(Ms,c),Ls!==null&&Tt(Ls,c),fn!==null&&Tt(fn,c),Li.forEach(d),uo.forEach(d),x=0;x<Os.length;x++)w=Os[x],w.blockedOn===c&&(w.blockedOn=null);for(;0<Os.length&&(x=Os[0],x.blockedOn===null);)te(x),x.blockedOn===null&&Os.shift()}var An=C.ReactCurrentBatchConfig,zn=!0;function Pn(c,d,x,w){var E=Ft,A=An.transition;An.transition=null;try{Ft=1,Ko(c,d,x,w)}finally{Ft=E,An.transition=A}}function Ar(c,d,x,w){var E=Ft,A=An.transition;An.transition=null;try{Ft=4,Ko(c,d,x,w)}finally{Ft=E,An.transition=A}}function Ko(c,d,x,w){if(zn){var E=qo(c,d,x,w);if(E===null)Mg(c,d,w,Oi,x),lf(c,w);else if(X(E,c,d,x,w))w.stopPropagation();else if(lf(c,w),d&4&&-1<bg.indexOf(c)){for(;E!==null;){var A=nu(E);if(A!==null&&Uc(A),A=qo(c,d,x,w),A===null&&Mg(c,d,w,Oi,x),A===E)break;E=A}E!==null&&w.stopPropagation()}else Mg(c,d,w,null,x)}}var Oi=null;function qo(c,d,x,w){if(Oi=null,c=xe(w),c=Fi(c),c!==null)if(d=wt(c),d===null)c=null;else if(x=d.tag,x===13){if(c=Di(d),c!==null)return c;c=null}else if(x===3){if(d.stateNode.current.memoizedState.isDehydrated)return d.tag===3?d.stateNode.containerInfo:null;c=null}else d!==c&&(c=null);return Oi=c,null}function is(c){switch(c){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($i()){case ao:return 1;case Oo:return 4;case Ds:case Fo:return 16;case Fa:return 536870912;default:return 16}default:return 16}}var Go=null,vg=null,cf=null;function ej(){if(cf)return cf;var c,d=vg,x=d.length,w,E="value"in Go?Go.value:Go.textContent,A=E.length;for(c=0;c<x&&d[c]===E[c];c++);var G=x-c;for(w=1;w<=G&&d[x-w]===E[A-w];w++);return cf=E.slice(c,1<w?1-w:void 0)}function uf(c){var d=c.keyCode;return"charCode"in c?(c=c.charCode,c===0&&d===13&&(c=13)):c=d,c===10&&(c=13),32<=c||c===13?c:0}function df(){return!0}function tj(){return!1}function Pr(c){function d(x,w,E,A,G){this._reactName=x,this._targetInst=E,this.type=w,this.nativeEvent=A,this.target=G,this.currentTarget=null;for(var ee in c)c.hasOwnProperty(ee)&&(x=c[ee],this[ee]=x?x(A):A[ee]);return this.isDefaultPrevented=(A.defaultPrevented!=null?A.defaultPrevented:A.returnValue===!1)?df:tj,this.isPropagationStopped=tj,this}return L(d.prototype,{preventDefault:function(){this.defaultPrevented=!0;var x=this.nativeEvent;x&&(x.preventDefault?x.preventDefault():typeof x.returnValue!="unknown"&&(x.returnValue=!1),this.isDefaultPrevented=df)},stopPropagation:function(){var x=this.nativeEvent;x&&(x.stopPropagation?x.stopPropagation():typeof x.cancelBubble!="unknown"&&(x.cancelBubble=!0),this.isPropagationStopped=df)},persist:function(){},isPersistent:df}),d}var Ua={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(c){return c.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},wg=Pr(Ua),Wc=L({},Ua,{view:0,detail:0}),M$=Pr(Wc),jg,kg,Kc,ff=L({},Wc,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Sg,button:0,buttons:0,relatedTarget:function(c){return c.relatedTarget===void 0?c.fromElement===c.srcElement?c.toElement:c.fromElement:c.relatedTarget},movementX:function(c){return"movementX"in c?c.movementX:(c!==Kc&&(Kc&&c.type==="mousemove"?(jg=c.screenX-Kc.screenX,kg=c.screenY-Kc.screenY):kg=jg=0,Kc=c),jg)},movementY:function(c){return"movementY"in c?c.movementY:kg}}),nj=Pr(ff),L$=L({},ff,{dataTransfer:0}),O$=Pr(L$),F$=L({},Wc,{relatedTarget:0}),Ng=Pr(F$),z$=L({},Ua,{animationName:0,elapsedTime:0,pseudoElement:0}),B$=Pr(z$),U$=L({},Ua,{clipboardData:function(c){return"clipboardData"in c?c.clipboardData:window.clipboardData}}),H$=Pr(U$),V$=L({},Ua,{data:0}),rj=Pr(V$),W$={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},K$={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"},q$={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function G$(c){var d=this.nativeEvent;return d.getModifierState?d.getModifierState(c):(c=q$[c])?!!d[c]:!1}function Sg(){return G$}var Y$=L({},Wc,{key:function(c){if(c.key){var d=W$[c.key]||c.key;if(d!=="Unidentified")return d}return c.type==="keypress"?(c=uf(c),c===13?"Enter":String.fromCharCode(c)):c.type==="keydown"||c.type==="keyup"?K$[c.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Sg,charCode:function(c){return c.type==="keypress"?uf(c):0},keyCode:function(c){return c.type==="keydown"||c.type==="keyup"?c.keyCode:0},which:function(c){return c.type==="keypress"?uf(c):c.type==="keydown"||c.type==="keyup"?c.keyCode:0}}),X$=Pr(Y$),Q$=L({},ff,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),sj=Pr(Q$),J$=L({},Wc,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Sg}),Z$=Pr(J$),eI=L({},Ua,{propertyName:0,elapsedTime:0,pseudoElement:0}),tI=Pr(eI),nI=L({},ff,{deltaX:function(c){return"deltaX"in c?c.deltaX:"wheelDeltaX"in c?-c.wheelDeltaX:0},deltaY:function(c){return"deltaY"in c?c.deltaY:"wheelDeltaY"in c?-c.wheelDeltaY:"wheelDelta"in c?-c.wheelDelta:0},deltaZ:0,deltaMode:0}),rI=Pr(nI),sI=[9,13,27,32],Cg=l&&"CompositionEvent"in window,qc=null;l&&"documentMode"in document&&(qc=document.documentMode);var oI=l&&"TextEvent"in window&&!qc,oj=l&&(!Cg||qc&&8<qc&&11>=qc),ij=" ",aj=!1;function lj(c,d){switch(c){case"keyup":return sI.indexOf(d.keyCode)!==-1;case"keydown":return d.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function cj(c){return c=c.detail,typeof c=="object"&&"data"in c?c.data:null}var Ha=!1;function iI(c,d){switch(c){case"compositionend":return cj(d);case"keypress":return d.which!==32?null:(aj=!0,ij);case"textInput":return c=d.data,c===ij&&aj?null:c;default:return null}}function aI(c,d){if(Ha)return c==="compositionend"||!Cg&&lj(c,d)?(c=ej(),cf=vg=Go=null,Ha=!1,c):null;switch(c){case"paste":return null;case"keypress":if(!(d.ctrlKey||d.altKey||d.metaKey)||d.ctrlKey&&d.altKey){if(d.char&&1<d.char.length)return d.char;if(d.which)return String.fromCharCode(d.which)}return null;case"compositionend":return oj&&d.locale!=="ko"?null:d.data;default:return null}}var lI={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 uj(c){var d=c&&c.nodeName&&c.nodeName.toLowerCase();return d==="input"?!!lI[c.type]:d==="textarea"}function dj(c,d,x,w){vt(w),d=xf(d,"onChange"),0<d.length&&(x=new wg("onChange","change",null,x,w),c.push({event:x,listeners:d}))}var Gc=null,Yc=null;function cI(c){Rj(c,0)}function pf(c){var d=Ga(c);if(Se(d))return c}function uI(c,d){if(c==="change")return d}var fj=!1;if(l){var Eg;if(l){var Tg="oninput"in document;if(!Tg){var pj=document.createElement("div");pj.setAttribute("oninput","return;"),Tg=typeof pj.oninput=="function"}Eg=Tg}else Eg=!1;fj=Eg&&(!document.documentMode||9<document.documentMode)}function hj(){Gc&&(Gc.detachEvent("onpropertychange",mj),Yc=Gc=null)}function mj(c){if(c.propertyName==="value"&&pf(Yc)){var d=[];dj(d,Yc,c,xe(c)),En(cI,d)}}function dI(c,d,x){c==="focusin"?(hj(),Gc=d,Yc=x,Gc.attachEvent("onpropertychange",mj)):c==="focusout"&&hj()}function fI(c){if(c==="selectionchange"||c==="keyup"||c==="keydown")return pf(Yc)}function pI(c,d){if(c==="click")return pf(d)}function hI(c,d){if(c==="input"||c==="change")return pf(d)}function mI(c,d){return c===d&&(c!==0||1/c===1/d)||c!==c&&d!==d}var as=typeof Object.is=="function"?Object.is:mI;function Xc(c,d){if(as(c,d))return!0;if(typeof c!="object"||c===null||typeof d!="object"||d===null)return!1;var x=Object.keys(c),w=Object.keys(d);if(x.length!==w.length)return!1;for(w=0;w<x.length;w++){var E=x[w];if(!u.call(d,E)||!as(c[E],d[E]))return!1}return!0}function gj(c){for(;c&&c.firstChild;)c=c.firstChild;return c}function xj(c,d){var x=gj(c);c=0;for(var w;x;){if(x.nodeType===3){if(w=c+x.textContent.length,c<=d&&w>=d)return{node:x,offset:d-c};c=w}e:{for(;x;){if(x.nextSibling){x=x.nextSibling;break e}x=x.parentNode}x=void 0}x=gj(x)}}function yj(c,d){return c&&d?c===d?!0:c&&c.nodeType===3?!1:d&&d.nodeType===3?yj(c,d.parentNode):"contains"in c?c.contains(d):c.compareDocumentPosition?!!(c.compareDocumentPosition(d)&16):!1:!1}function bj(){for(var c=window,d=ke();d instanceof c.HTMLIFrameElement;){try{var x=typeof d.contentWindow.location.href=="string"}catch{x=!1}if(x)c=d.contentWindow;else break;d=ke(c.document)}return d}function Rg(c){var d=c&&c.nodeName&&c.nodeName.toLowerCase();return d&&(d==="input"&&(c.type==="text"||c.type==="search"||c.type==="tel"||c.type==="url"||c.type==="password")||d==="textarea"||c.contentEditable==="true")}function gI(c){var d=bj(),x=c.focusedElem,w=c.selectionRange;if(d!==x&&x&&x.ownerDocument&&yj(x.ownerDocument.documentElement,x)){if(w!==null&&Rg(x)){if(d=w.start,c=w.end,c===void 0&&(c=d),"selectionStart"in x)x.selectionStart=d,x.selectionEnd=Math.min(c,x.value.length);else if(c=(d=x.ownerDocument||document)&&d.defaultView||window,c.getSelection){c=c.getSelection();var E=x.textContent.length,A=Math.min(w.start,E);w=w.end===void 0?A:Math.min(w.end,E),!c.extend&&A>w&&(E=w,w=A,A=E),E=xj(x,A);var G=xj(x,w);E&&G&&(c.rangeCount!==1||c.anchorNode!==E.node||c.anchorOffset!==E.offset||c.focusNode!==G.node||c.focusOffset!==G.offset)&&(d=d.createRange(),d.setStart(E.node,E.offset),c.removeAllRanges(),A>w?(c.addRange(d),c.extend(G.node,G.offset)):(d.setEnd(G.node,G.offset),c.addRange(d)))}}for(d=[],c=x;c=c.parentNode;)c.nodeType===1&&d.push({element:c,left:c.scrollLeft,top:c.scrollTop});for(typeof x.focus=="function"&&x.focus(),x=0;x<d.length;x++)c=d[x],c.element.scrollLeft=c.left,c.element.scrollTop=c.top}}var xI=l&&"documentMode"in document&&11>=document.documentMode,Va=null,Ag=null,Qc=null,Pg=!1;function vj(c,d,x){var w=x.window===x?x.document:x.nodeType===9?x:x.ownerDocument;Pg||Va==null||Va!==ke(w)||(w=Va,"selectionStart"in w&&Rg(w)?w={start:w.selectionStart,end:w.selectionEnd}:(w=(w.ownerDocument&&w.ownerDocument.defaultView||window).getSelection(),w={anchorNode:w.anchorNode,anchorOffset:w.anchorOffset,focusNode:w.focusNode,focusOffset:w.focusOffset}),Qc&&Xc(Qc,w)||(Qc=w,w=xf(Ag,"onSelect"),0<w.length&&(d=new wg("onSelect","select",null,d,x),c.push({event:d,listeners:w}),d.target=Va)))}function hf(c,d){var x={};return x[c.toLowerCase()]=d.toLowerCase(),x["Webkit"+c]="webkit"+d,x["Moz"+c]="moz"+d,x}var Wa={animationend:hf("Animation","AnimationEnd"),animationiteration:hf("Animation","AnimationIteration"),animationstart:hf("Animation","AnimationStart"),transitionend:hf("Transition","TransitionEnd")},_g={},wj={};l&&(wj=document.createElement("div").style,"AnimationEvent"in window||(delete Wa.animationend.animation,delete Wa.animationiteration.animation,delete Wa.animationstart.animation),"TransitionEvent"in window||delete Wa.transitionend.transition);function mf(c){if(_g[c])return _g[c];if(!Wa[c])return c;var d=Wa[c],x;for(x in d)if(d.hasOwnProperty(x)&&x in wj)return _g[c]=d[x];return c}var jj=mf("animationend"),kj=mf("animationiteration"),Nj=mf("animationstart"),Sj=mf("transitionend"),Cj=new Map,Ej="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 Yo(c,d){Cj.set(c,d),i(d,[c])}for(var Dg=0;Dg<Ej.length;Dg++){var $g=Ej[Dg],yI=$g.toLowerCase(),bI=$g[0].toUpperCase()+$g.slice(1);Yo(yI,"on"+bI)}Yo(jj,"onAnimationEnd"),Yo(kj,"onAnimationIteration"),Yo(Nj,"onAnimationStart"),Yo("dblclick","onDoubleClick"),Yo("focusin","onFocus"),Yo("focusout","onBlur"),Yo(Sj,"onTransitionEnd"),a("onMouseEnter",["mouseout","mouseover"]),a("onMouseLeave",["mouseout","mouseover"]),a("onPointerEnter",["pointerout","pointerover"]),a("onPointerLeave",["pointerout","pointerover"]),i("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),i("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),i("onBeforeInput",["compositionend","keypress","textInput","paste"]),i("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),i("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),i("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Jc="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(" "),vI=new Set("cancel close invalid load scroll toggle".split(" ").concat(Jc));function Tj(c,d,x){var w=c.type||"unknown-event";c.currentTarget=x,io(w,d,void 0,c),c.currentTarget=null}function Rj(c,d){d=(d&4)!==0;for(var x=0;x<c.length;x++){var w=c[x],E=w.event;w=w.listeners;e:{var A=void 0;if(d)for(var G=w.length-1;0<=G;G--){var ee=w[G],se=ee.instance,he=ee.currentTarget;if(ee=ee.listener,se!==A&&E.isPropagationStopped())break e;Tj(E,ee,he),A=se}else for(G=0;G<w.length;G++){if(ee=w[G],se=ee.instance,he=ee.currentTarget,ee=ee.listener,se!==A&&E.isPropagationStopped())break e;Tj(E,ee,he),A=se}}}if(Ne)throw c=nt,Ne=!1,nt=null,c}function Xt(c,d){var x=d[Ug];x===void 0&&(x=d[Ug]=new Set);var w=c+"__bubble";x.has(w)||(Aj(d,c,2,!1),x.add(w))}function Ig(c,d,x){var w=0;d&&(w|=4),Aj(x,c,w,d)}var gf="_reactListening"+Math.random().toString(36).slice(2);function Zc(c){if(!c[gf]){c[gf]=!0,r.forEach(function(x){x!=="selectionchange"&&(vI.has(x)||Ig(x,!1,c),Ig(x,!0,c))});var d=c.nodeType===9?c:c.ownerDocument;d===null||d[gf]||(d[gf]=!0,Ig("selectionchange",!1,d))}}function Aj(c,d,x,w){switch(is(d)){case 1:var E=Pn;break;case 4:E=Ar;break;default:E=Ko}x=E.bind(null,d,x,c),E=void 0,!je||d!=="touchstart"&&d!=="touchmove"&&d!=="wheel"||(E=!0),w?E!==void 0?c.addEventListener(d,x,{capture:!0,passive:E}):c.addEventListener(d,x,!0):E!==void 0?c.addEventListener(d,x,{passive:E}):c.addEventListener(d,x,!1)}function Mg(c,d,x,w,E){var A=w;if((d&1)===0&&(d&2)===0&&w!==null)e:for(;;){if(w===null)return;var G=w.tag;if(G===3||G===4){var ee=w.stateNode.containerInfo;if(ee===E||ee.nodeType===8&&ee.parentNode===E)break;if(G===4)for(G=w.return;G!==null;){var se=G.tag;if((se===3||se===4)&&(se=G.stateNode.containerInfo,se===E||se.nodeType===8&&se.parentNode===E))return;G=G.return}for(;ee!==null;){if(G=Fi(ee),G===null)return;if(se=G.tag,se===5||se===6){w=A=G;continue e}ee=ee.parentNode}}w=w.return}En(function(){var he=A,Te=xe(x),De=[];e:{var Ee=Cj.get(c);if(Ee!==void 0){var Ke=wg,Ze=c;switch(c){case"keypress":if(uf(x)===0)break e;case"keydown":case"keyup":Ke=X$;break;case"focusin":Ze="focus",Ke=Ng;break;case"focusout":Ze="blur",Ke=Ng;break;case"beforeblur":case"afterblur":Ke=Ng;break;case"click":if(x.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":Ke=nj;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":Ke=O$;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":Ke=Z$;break;case jj:case kj:case Nj:Ke=B$;break;case Sj:Ke=tI;break;case"scroll":Ke=M$;break;case"wheel":Ke=rI;break;case"copy":case"cut":case"paste":Ke=H$;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":Ke=sj}var et=(d&4)!==0,pn=!et&&c==="scroll",de=et?Ee!==null?Ee+"Capture":null:Ee;et=[];for(var ae=he,pe;ae!==null;){pe=ae;var Le=pe.stateNode;if(pe.tag===5&&Le!==null&&(pe=Le,de!==null&&(Le=Ct(ae,de),Le!=null&&et.push(eu(ae,Le,pe)))),pn)break;ae=ae.return}0<et.length&&(Ee=new Ke(Ee,Ze,null,x,Te),De.push({event:Ee,listeners:et}))}}if((d&7)===0){e:{if(Ee=c==="mouseover"||c==="pointerover",Ke=c==="mouseout"||c==="pointerout",Ee&&x!==re&&(Ze=x.relatedTarget||x.fromElement)&&(Fi(Ze)||Ze[fo]))break e;if((Ke||Ee)&&(Ee=Te.window===Te?Te:(Ee=Te.ownerDocument)?Ee.defaultView||Ee.parentWindow:window,Ke?(Ze=x.relatedTarget||x.toElement,Ke=he,Ze=Ze?Fi(Ze):null,Ze!==null&&(pn=wt(Ze),Ze!==pn||Ze.tag!==5&&Ze.tag!==6)&&(Ze=null)):(Ke=null,Ze=he),Ke!==Ze)){if(et=nj,Le="onMouseLeave",de="onMouseEnter",ae="mouse",(c==="pointerout"||c==="pointerover")&&(et=sj,Le="onPointerLeave",de="onPointerEnter",ae="pointer"),pn=Ke==null?Ee:Ga(Ke),pe=Ze==null?Ee:Ga(Ze),Ee=new et(Le,ae+"leave",Ke,x,Te),Ee.target=pn,Ee.relatedTarget=pe,Le=null,Fi(Te)===he&&(et=new et(de,ae+"enter",Ze,x,Te),et.target=pe,et.relatedTarget=pn,Le=et),pn=Le,Ke&&Ze)t:{for(et=Ke,de=Ze,ae=0,pe=et;pe;pe=Ka(pe))ae++;for(pe=0,Le=de;Le;Le=Ka(Le))pe++;for(;0<ae-pe;)et=Ka(et),ae--;for(;0<pe-ae;)de=Ka(de),pe--;for(;ae--;){if(et===de||de!==null&&et===de.alternate)break t;et=Ka(et),de=Ka(de)}et=null}else et=null;Ke!==null&&Pj(De,Ee,Ke,et,!1),Ze!==null&&pn!==null&&Pj(De,pn,Ze,et,!0)}}e:{if(Ee=he?Ga(he):window,Ke=Ee.nodeName&&Ee.nodeName.toLowerCase(),Ke==="select"||Ke==="input"&&Ee.type==="file")var st=uI;else if(uj(Ee))if(fj)st=hI;else{st=fI;var dt=dI}else(Ke=Ee.nodeName)&&Ke.toLowerCase()==="input"&&(Ee.type==="checkbox"||Ee.type==="radio")&&(st=pI);if(st&&(st=st(c,he))){dj(De,st,x,Te);break e}dt&&dt(c,Ee,he),c==="focusout"&&(dt=Ee._wrapperState)&&dt.controlled&&Ee.type==="number"&&Ue(Ee,"number",Ee.value)}switch(dt=he?Ga(he):window,c){case"focusin":(uj(dt)||dt.contentEditable==="true")&&(Va=dt,Ag=he,Qc=null);break;case"focusout":Qc=Ag=Va=null;break;case"mousedown":Pg=!0;break;case"contextmenu":case"mouseup":case"dragend":Pg=!1,vj(De,x,Te);break;case"selectionchange":if(xI)break;case"keydown":case"keyup":vj(De,x,Te)}var ft;if(Cg)e:{switch(c){case"compositionstart":var gt="onCompositionStart";break e;case"compositionend":gt="onCompositionEnd";break e;case"compositionupdate":gt="onCompositionUpdate";break e}gt=void 0}else Ha?lj(c,x)&&(gt="onCompositionEnd"):c==="keydown"&&x.keyCode===229&&(gt="onCompositionStart");gt&&(oj&&x.locale!=="ko"&&(Ha||gt!=="onCompositionStart"?gt==="onCompositionEnd"&&Ha&&(ft=ej()):(Go=Te,vg="value"in Go?Go.value:Go.textContent,Ha=!0)),dt=xf(he,gt),0<dt.length&&(gt=new rj(gt,c,null,x,Te),De.push({event:gt,listeners:dt}),ft?gt.data=ft:(ft=cj(x),ft!==null&&(gt.data=ft)))),(ft=oI?iI(c,x):aI(c,x))&&(he=xf(he,"onBeforeInput"),0<he.length&&(Te=new rj("onBeforeInput","beforeinput",null,x,Te),De.push({event:Te,listeners:he}),Te.data=ft))}Rj(De,d)})}function eu(c,d,x){return{instance:c,listener:d,currentTarget:x}}function xf(c,d){for(var x=d+"Capture",w=[];c!==null;){var E=c,A=E.stateNode;E.tag===5&&A!==null&&(E=A,A=Ct(c,x),A!=null&&w.unshift(eu(c,A,E)),A=Ct(c,d),A!=null&&w.push(eu(c,A,E))),c=c.return}return w}function Ka(c){if(c===null)return null;do c=c.return;while(c&&c.tag!==5);return c||null}function Pj(c,d,x,w,E){for(var A=d._reactName,G=[];x!==null&&x!==w;){var ee=x,se=ee.alternate,he=ee.stateNode;if(se!==null&&se===w)break;ee.tag===5&&he!==null&&(ee=he,E?(se=Ct(x,A),se!=null&&G.unshift(eu(x,se,ee))):E||(se=Ct(x,A),se!=null&&G.push(eu(x,se,ee)))),x=x.return}G.length!==0&&c.push({event:d,listeners:G})}var wI=/\r\n?/g,jI=/\u0000|\uFFFD/g;function _j(c){return(typeof c=="string"?c:""+c).replace(wI,`
|
|
38
|
-
`).replace(jI,"")}function yf(c,d,x){if(d=_j(d),_j(c)!==d&&x)throw Error(n(425))}function bf(){}var Lg=null,Og=null;function Fg(c,d){return c==="textarea"||c==="noscript"||typeof d.children=="string"||typeof d.children=="number"||typeof d.dangerouslySetInnerHTML=="object"&&d.dangerouslySetInnerHTML!==null&&d.dangerouslySetInnerHTML.__html!=null}var zg=typeof setTimeout=="function"?setTimeout:void 0,kI=typeof clearTimeout=="function"?clearTimeout:void 0,Dj=typeof Promise=="function"?Promise:void 0,NI=typeof queueMicrotask=="function"?queueMicrotask:typeof Dj<"u"?function(c){return Dj.resolve(null).then(c).catch(SI)}:zg;function SI(c){setTimeout(function(){throw c})}function Bg(c,d){var x=d,w=0;do{var E=x.nextSibling;if(c.removeChild(x),E&&E.nodeType===8)if(x=E.data,x==="/$"){if(w===0){c.removeChild(E),$t(d);return}w--}else x!=="$"&&x!=="$?"&&x!=="$!"||w++;x=E}while(x);$t(d)}function Xo(c){for(;c!=null;c=c.nextSibling){var d=c.nodeType;if(d===1||d===3)break;if(d===8){if(d=c.data,d==="$"||d==="$!"||d==="$?")break;if(d==="/$")return null}}return c}function $j(c){c=c.previousSibling;for(var d=0;c;){if(c.nodeType===8){var x=c.data;if(x==="$"||x==="$!"||x==="$?"){if(d===0)return c;d--}else x==="/$"&&d++}c=c.previousSibling}return null}var qa=Math.random().toString(36).slice(2),Fs="__reactFiber$"+qa,tu="__reactProps$"+qa,fo="__reactContainer$"+qa,Ug="__reactEvents$"+qa,CI="__reactListeners$"+qa,EI="__reactHandles$"+qa;function Fi(c){var d=c[Fs];if(d)return d;for(var x=c.parentNode;x;){if(d=x[fo]||x[Fs]){if(x=d.alternate,d.child!==null||x!==null&&x.child!==null)for(c=$j(c);c!==null;){if(x=c[Fs])return x;c=$j(c)}return d}c=x,x=c.parentNode}return null}function nu(c){return c=c[Fs]||c[fo],!c||c.tag!==5&&c.tag!==6&&c.tag!==13&&c.tag!==3?null:c}function Ga(c){if(c.tag===5||c.tag===6)return c.stateNode;throw Error(n(33))}function vf(c){return c[tu]||null}var Hg=[],Ya=-1;function Qo(c){return{current:c}}function Qt(c){0>Ya||(c.current=Hg[Ya],Hg[Ya]=null,Ya--)}function qt(c,d){Ya++,Hg[Ya]=c.current,c.current=d}var Jo={},Jn=Qo(Jo),fr=Qo(!1),zi=Jo;function Xa(c,d){var x=c.type.contextTypes;if(!x)return Jo;var w=c.stateNode;if(w&&w.__reactInternalMemoizedUnmaskedChildContext===d)return w.__reactInternalMemoizedMaskedChildContext;var E={},A;for(A in x)E[A]=d[A];return w&&(c=c.stateNode,c.__reactInternalMemoizedUnmaskedChildContext=d,c.__reactInternalMemoizedMaskedChildContext=E),E}function pr(c){return c=c.childContextTypes,c!=null}function wf(){Qt(fr),Qt(Jn)}function Ij(c,d,x){if(Jn.current!==Jo)throw Error(n(168));qt(Jn,d),qt(fr,x)}function Mj(c,d,x){var w=c.stateNode;if(d=d.childContextTypes,typeof w.getChildContext!="function")return x;w=w.getChildContext();for(var E in w)if(!(E in d))throw Error(n(108,oe(c)||"Unknown",E));return L({},x,w)}function jf(c){return c=(c=c.stateNode)&&c.__reactInternalMemoizedMergedChildContext||Jo,zi=Jn.current,qt(Jn,c),qt(fr,fr.current),!0}function Lj(c,d,x){var w=c.stateNode;if(!w)throw Error(n(169));x?(c=Mj(c,d,zi),w.__reactInternalMemoizedMergedChildContext=c,Qt(fr),Qt(Jn),qt(Jn,c)):Qt(fr),qt(fr,x)}var po=null,kf=!1,Vg=!1;function Oj(c){po===null?po=[c]:po.push(c)}function TI(c){kf=!0,Oj(c)}function Zo(){if(!Vg&&po!==null){Vg=!0;var c=0,d=Ft;try{var x=po;for(Ft=1;c<x.length;c++){var w=x[c];do w=w(!0);while(w!==null)}po=null,kf=!1}catch(E){throw po!==null&&(po=po.slice(c+1)),Ma(ao,Zo),E}finally{Ft=d,Vg=!1}}return null}var Qa=[],Ja=0,Nf=null,Sf=0,qr=[],Gr=0,Bi=null,ho=1,mo="";function Ui(c,d){Qa[Ja++]=Sf,Qa[Ja++]=Nf,Nf=c,Sf=d}function Fj(c,d,x){qr[Gr++]=ho,qr[Gr++]=mo,qr[Gr++]=Bi,Bi=c;var w=ho;c=mo;var E=32-On(w)-1;w&=~(1<<E),x+=1;var A=32-On(d)+E;if(30<A){var G=E-E%5;A=(w&(1<<G)-1).toString(32),w>>=G,E-=G,ho=1<<32-On(d)+E|x<<E|w,mo=A+c}else ho=1<<A|x<<E|w,mo=c}function Wg(c){c.return!==null&&(Ui(c,1),Fj(c,1,0))}function Kg(c){for(;c===Nf;)Nf=Qa[--Ja],Qa[Ja]=null,Sf=Qa[--Ja],Qa[Ja]=null;for(;c===Bi;)Bi=qr[--Gr],qr[Gr]=null,mo=qr[--Gr],qr[Gr]=null,ho=qr[--Gr],qr[Gr]=null}var _r=null,Dr=null,rn=!1,ls=null;function zj(c,d){var x=Jr(5,null,null,0);x.elementType="DELETED",x.stateNode=d,x.return=c,d=c.deletions,d===null?(c.deletions=[x],c.flags|=16):d.push(x)}function Bj(c,d){switch(c.tag){case 5:var x=c.type;return d=d.nodeType!==1||x.toLowerCase()!==d.nodeName.toLowerCase()?null:d,d!==null?(c.stateNode=d,_r=c,Dr=Xo(d.firstChild),!0):!1;case 6:return d=c.pendingProps===""||d.nodeType!==3?null:d,d!==null?(c.stateNode=d,_r=c,Dr=null,!0):!1;case 13:return d=d.nodeType!==8?null:d,d!==null?(x=Bi!==null?{id:ho,overflow:mo}:null,c.memoizedState={dehydrated:d,treeContext:x,retryLane:1073741824},x=Jr(18,null,null,0),x.stateNode=d,x.return=c,c.child=x,_r=c,Dr=null,!0):!1;default:return!1}}function qg(c){return(c.mode&1)!==0&&(c.flags&128)===0}function Gg(c){if(rn){var d=Dr;if(d){var x=d;if(!Bj(c,d)){if(qg(c))throw Error(n(418));d=Xo(x.nextSibling);var w=_r;d&&Bj(c,d)?zj(w,x):(c.flags=c.flags&-4097|2,rn=!1,_r=c)}}else{if(qg(c))throw Error(n(418));c.flags=c.flags&-4097|2,rn=!1,_r=c}}}function Uj(c){for(c=c.return;c!==null&&c.tag!==5&&c.tag!==3&&c.tag!==13;)c=c.return;_r=c}function Cf(c){if(c!==_r)return!1;if(!rn)return Uj(c),rn=!0,!1;var d;if((d=c.tag!==3)&&!(d=c.tag!==5)&&(d=c.type,d=d!=="head"&&d!=="body"&&!Fg(c.type,c.memoizedProps)),d&&(d=Dr)){if(qg(c))throw Hj(),Error(n(418));for(;d;)zj(c,d),d=Xo(d.nextSibling)}if(Uj(c),c.tag===13){if(c=c.memoizedState,c=c!==null?c.dehydrated:null,!c)throw Error(n(317));e:{for(c=c.nextSibling,d=0;c;){if(c.nodeType===8){var x=c.data;if(x==="/$"){if(d===0){Dr=Xo(c.nextSibling);break e}d--}else x!=="$"&&x!=="$!"&&x!=="$?"||d++}c=c.nextSibling}Dr=null}}else Dr=_r?Xo(c.stateNode.nextSibling):null;return!0}function Hj(){for(var c=Dr;c;)c=Xo(c.nextSibling)}function Za(){Dr=_r=null,rn=!1}function Yg(c){ls===null?ls=[c]:ls.push(c)}var RI=C.ReactCurrentBatchConfig;function ru(c,d,x){if(c=x.ref,c!==null&&typeof c!="function"&&typeof c!="object"){if(x._owner){if(x=x._owner,x){if(x.tag!==1)throw Error(n(309));var w=x.stateNode}if(!w)throw Error(n(147,c));var E=w,A=""+c;return d!==null&&d.ref!==null&&typeof d.ref=="function"&&d.ref._stringRef===A?d.ref:(d=function(G){var ee=E.refs;G===null?delete ee[A]:ee[A]=G},d._stringRef=A,d)}if(typeof c!="string")throw Error(n(284));if(!x._owner)throw Error(n(290,c))}return c}function Ef(c,d){throw c=Object.prototype.toString.call(d),Error(n(31,c==="[object Object]"?"object with keys {"+Object.keys(d).join(", ")+"}":c))}function Vj(c){var d=c._init;return d(c._payload)}function Wj(c){function d(de,ae){if(c){var pe=de.deletions;pe===null?(de.deletions=[ae],de.flags|=16):pe.push(ae)}}function x(de,ae){if(!c)return null;for(;ae!==null;)d(de,ae),ae=ae.sibling;return null}function w(de,ae){for(de=new Map;ae!==null;)ae.key!==null?de.set(ae.key,ae):de.set(ae.index,ae),ae=ae.sibling;return de}function E(de,ae){return de=ai(de,ae),de.index=0,de.sibling=null,de}function A(de,ae,pe){return de.index=pe,c?(pe=de.alternate,pe!==null?(pe=pe.index,pe<ae?(de.flags|=2,ae):pe):(de.flags|=2,ae)):(de.flags|=1048576,ae)}function G(de){return c&&de.alternate===null&&(de.flags|=2),de}function ee(de,ae,pe,Le){return ae===null||ae.tag!==6?(ae=zx(pe,de.mode,Le),ae.return=de,ae):(ae=E(ae,pe),ae.return=de,ae)}function se(de,ae,pe,Le){var st=pe.type;return st===R?Te(de,ae,pe.props.children,Le,pe.key):ae!==null&&(ae.elementType===st||typeof st=="object"&&st!==null&&st.$$typeof===U&&Vj(st)===ae.type)?(Le=E(ae,pe.props),Le.ref=ru(de,ae,pe),Le.return=de,Le):(Le=Qf(pe.type,pe.key,pe.props,null,de.mode,Le),Le.ref=ru(de,ae,pe),Le.return=de,Le)}function he(de,ae,pe,Le){return ae===null||ae.tag!==4||ae.stateNode.containerInfo!==pe.containerInfo||ae.stateNode.implementation!==pe.implementation?(ae=Bx(pe,de.mode,Le),ae.return=de,ae):(ae=E(ae,pe.children||[]),ae.return=de,ae)}function Te(de,ae,pe,Le,st){return ae===null||ae.tag!==7?(ae=Xi(pe,de.mode,Le,st),ae.return=de,ae):(ae=E(ae,pe),ae.return=de,ae)}function De(de,ae,pe){if(typeof ae=="string"&&ae!==""||typeof ae=="number")return ae=zx(""+ae,de.mode,pe),ae.return=de,ae;if(typeof ae=="object"&&ae!==null){switch(ae.$$typeof){case P:return pe=Qf(ae.type,ae.key,ae.props,null,de.mode,pe),pe.ref=ru(de,null,ae),pe.return=de,pe;case T:return ae=Bx(ae,de.mode,pe),ae.return=de,ae;case U:var Le=ae._init;return De(de,Le(ae._payload),pe)}if(rt(ae)||H(ae))return ae=Xi(ae,de.mode,pe,null),ae.return=de,ae;Ef(de,ae)}return null}function Ee(de,ae,pe,Le){var st=ae!==null?ae.key:null;if(typeof pe=="string"&&pe!==""||typeof pe=="number")return st!==null?null:ee(de,ae,""+pe,Le);if(typeof pe=="object"&&pe!==null){switch(pe.$$typeof){case P:return pe.key===st?se(de,ae,pe,Le):null;case T:return pe.key===st?he(de,ae,pe,Le):null;case U:return st=pe._init,Ee(de,ae,st(pe._payload),Le)}if(rt(pe)||H(pe))return st!==null?null:Te(de,ae,pe,Le,null);Ef(de,pe)}return null}function Ke(de,ae,pe,Le,st){if(typeof Le=="string"&&Le!==""||typeof Le=="number")return de=de.get(pe)||null,ee(ae,de,""+Le,st);if(typeof Le=="object"&&Le!==null){switch(Le.$$typeof){case P:return de=de.get(Le.key===null?pe:Le.key)||null,se(ae,de,Le,st);case T:return de=de.get(Le.key===null?pe:Le.key)||null,he(ae,de,Le,st);case U:var dt=Le._init;return Ke(de,ae,pe,dt(Le._payload),st)}if(rt(Le)||H(Le))return de=de.get(pe)||null,Te(ae,de,Le,st,null);Ef(ae,Le)}return null}function Ze(de,ae,pe,Le){for(var st=null,dt=null,ft=ae,gt=ae=0,Hn=null;ft!==null&><pe.length;gt++){ft.index>gt?(Hn=ft,ft=null):Hn=ft.sibling;var Lt=Ee(de,ft,pe[gt],Le);if(Lt===null){ft===null&&(ft=Hn);break}c&&ft&&Lt.alternate===null&&d(de,ft),ae=A(Lt,ae,gt),dt===null?st=Lt:dt.sibling=Lt,dt=Lt,ft=Hn}if(gt===pe.length)return x(de,ft),rn&&Ui(de,gt),st;if(ft===null){for(;gt<pe.length;gt++)ft=De(de,pe[gt],Le),ft!==null&&(ae=A(ft,ae,gt),dt===null?st=ft:dt.sibling=ft,dt=ft);return rn&&Ui(de,gt),st}for(ft=w(de,ft);gt<pe.length;gt++)Hn=Ke(ft,de,gt,pe[gt],Le),Hn!==null&&(c&&Hn.alternate!==null&&ft.delete(Hn.key===null?gt:Hn.key),ae=A(Hn,ae,gt),dt===null?st=Hn:dt.sibling=Hn,dt=Hn);return c&&ft.forEach(function(li){return d(de,li)}),rn&&Ui(de,gt),st}function et(de,ae,pe,Le){var st=H(pe);if(typeof st!="function")throw Error(n(150));if(pe=st.call(pe),pe==null)throw Error(n(151));for(var dt=st=null,ft=ae,gt=ae=0,Hn=null,Lt=pe.next();ft!==null&&!Lt.done;gt++,Lt=pe.next()){ft.index>gt?(Hn=ft,ft=null):Hn=ft.sibling;var li=Ee(de,ft,Lt.value,Le);if(li===null){ft===null&&(ft=Hn);break}c&&ft&&li.alternate===null&&d(de,ft),ae=A(li,ae,gt),dt===null?st=li:dt.sibling=li,dt=li,ft=Hn}if(Lt.done)return x(de,ft),rn&&Ui(de,gt),st;if(ft===null){for(;!Lt.done;gt++,Lt=pe.next())Lt=De(de,Lt.value,Le),Lt!==null&&(ae=A(Lt,ae,gt),dt===null?st=Lt:dt.sibling=Lt,dt=Lt);return rn&&Ui(de,gt),st}for(ft=w(de,ft);!Lt.done;gt++,Lt=pe.next())Lt=Ke(ft,de,gt,Lt.value,Le),Lt!==null&&(c&&Lt.alternate!==null&&ft.delete(Lt.key===null?gt:Lt.key),ae=A(Lt,ae,gt),dt===null?st=Lt:dt.sibling=Lt,dt=Lt);return c&&ft.forEach(function(lM){return d(de,lM)}),rn&&Ui(de,gt),st}function pn(de,ae,pe,Le){if(typeof pe=="object"&&pe!==null&&pe.type===R&&pe.key===null&&(pe=pe.props.children),typeof pe=="object"&&pe!==null){switch(pe.$$typeof){case P:e:{for(var st=pe.key,dt=ae;dt!==null;){if(dt.key===st){if(st=pe.type,st===R){if(dt.tag===7){x(de,dt.sibling),ae=E(dt,pe.props.children),ae.return=de,de=ae;break e}}else if(dt.elementType===st||typeof st=="object"&&st!==null&&st.$$typeof===U&&Vj(st)===dt.type){x(de,dt.sibling),ae=E(dt,pe.props),ae.ref=ru(de,dt,pe),ae.return=de,de=ae;break e}x(de,dt);break}else d(de,dt);dt=dt.sibling}pe.type===R?(ae=Xi(pe.props.children,de.mode,Le,pe.key),ae.return=de,de=ae):(Le=Qf(pe.type,pe.key,pe.props,null,de.mode,Le),Le.ref=ru(de,ae,pe),Le.return=de,de=Le)}return G(de);case T:e:{for(dt=pe.key;ae!==null;){if(ae.key===dt)if(ae.tag===4&&ae.stateNode.containerInfo===pe.containerInfo&&ae.stateNode.implementation===pe.implementation){x(de,ae.sibling),ae=E(ae,pe.children||[]),ae.return=de,de=ae;break e}else{x(de,ae);break}else d(de,ae);ae=ae.sibling}ae=Bx(pe,de.mode,Le),ae.return=de,de=ae}return G(de);case U:return dt=pe._init,pn(de,ae,dt(pe._payload),Le)}if(rt(pe))return Ze(de,ae,pe,Le);if(H(pe))return et(de,ae,pe,Le);Ef(de,pe)}return typeof pe=="string"&&pe!==""||typeof pe=="number"?(pe=""+pe,ae!==null&&ae.tag===6?(x(de,ae.sibling),ae=E(ae,pe),ae.return=de,de=ae):(x(de,ae),ae=zx(pe,de.mode,Le),ae.return=de,de=ae),G(de)):x(de,ae)}return pn}var el=Wj(!0),Kj=Wj(!1),Tf=Qo(null),Rf=null,tl=null,Xg=null;function Qg(){Xg=tl=Rf=null}function Jg(c){var d=Tf.current;Qt(Tf),c._currentValue=d}function Zg(c,d,x){for(;c!==null;){var w=c.alternate;if((c.childLanes&d)!==d?(c.childLanes|=d,w!==null&&(w.childLanes|=d)):w!==null&&(w.childLanes&d)!==d&&(w.childLanes|=d),c===x)break;c=c.return}}function nl(c,d){Rf=c,Xg=tl=null,c=c.dependencies,c!==null&&c.firstContext!==null&&((c.lanes&d)!==0&&(hr=!0),c.firstContext=null)}function Yr(c){var d=c._currentValue;if(Xg!==c)if(c={context:c,memoizedValue:d,next:null},tl===null){if(Rf===null)throw Error(n(308));tl=c,Rf.dependencies={lanes:0,firstContext:c}}else tl=tl.next=c;return d}var Hi=null;function ex(c){Hi===null?Hi=[c]:Hi.push(c)}function qj(c,d,x,w){var E=d.interleaved;return E===null?(x.next=x,ex(d)):(x.next=E.next,E.next=x),d.interleaved=x,go(c,w)}function go(c,d){c.lanes|=d;var x=c.alternate;for(x!==null&&(x.lanes|=d),x=c,c=c.return;c!==null;)c.childLanes|=d,x=c.alternate,x!==null&&(x.childLanes|=d),x=c,c=c.return;return x.tag===3?x.stateNode:null}var ei=!1;function tx(c){c.updateQueue={baseState:c.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Gj(c,d){c=c.updateQueue,d.updateQueue===c&&(d.updateQueue={baseState:c.baseState,firstBaseUpdate:c.firstBaseUpdate,lastBaseUpdate:c.lastBaseUpdate,shared:c.shared,effects:c.effects})}function xo(c,d){return{eventTime:c,lane:d,tag:0,payload:null,callback:null,next:null}}function ti(c,d,x){var w=c.updateQueue;if(w===null)return null;if(w=w.shared,(It&2)!==0){var E=w.pending;return E===null?d.next=d:(d.next=E.next,E.next=d),w.pending=d,go(c,x)}return E=w.interleaved,E===null?(d.next=d,ex(w)):(d.next=E.next,E.next=d),w.interleaved=d,go(c,x)}function Af(c,d,x){if(d=d.updateQueue,d!==null&&(d=d.shared,(x&4194240)!==0)){var w=d.lanes;w&=c.pendingLanes,x|=w,d.lanes=x,Is(c,x)}}function Yj(c,d){var x=c.updateQueue,w=c.alternate;if(w!==null&&(w=w.updateQueue,x===w)){var E=null,A=null;if(x=x.firstBaseUpdate,x!==null){do{var G={eventTime:x.eventTime,lane:x.lane,tag:x.tag,payload:x.payload,callback:x.callback,next:null};A===null?E=A=G:A=A.next=G,x=x.next}while(x!==null);A===null?E=A=d:A=A.next=d}else E=A=d;x={baseState:w.baseState,firstBaseUpdate:E,lastBaseUpdate:A,shared:w.shared,effects:w.effects},c.updateQueue=x;return}c=x.lastBaseUpdate,c===null?x.firstBaseUpdate=d:c.next=d,x.lastBaseUpdate=d}function Pf(c,d,x,w){var E=c.updateQueue;ei=!1;var A=E.firstBaseUpdate,G=E.lastBaseUpdate,ee=E.shared.pending;if(ee!==null){E.shared.pending=null;var se=ee,he=se.next;se.next=null,G===null?A=he:G.next=he,G=se;var Te=c.alternate;Te!==null&&(Te=Te.updateQueue,ee=Te.lastBaseUpdate,ee!==G&&(ee===null?Te.firstBaseUpdate=he:ee.next=he,Te.lastBaseUpdate=se))}if(A!==null){var De=E.baseState;G=0,Te=he=se=null,ee=A;do{var Ee=ee.lane,Ke=ee.eventTime;if((w&Ee)===Ee){Te!==null&&(Te=Te.next={eventTime:Ke,lane:0,tag:ee.tag,payload:ee.payload,callback:ee.callback,next:null});e:{var Ze=c,et=ee;switch(Ee=d,Ke=x,et.tag){case 1:if(Ze=et.payload,typeof Ze=="function"){De=Ze.call(Ke,De,Ee);break e}De=Ze;break e;case 3:Ze.flags=Ze.flags&-65537|128;case 0:if(Ze=et.payload,Ee=typeof Ze=="function"?Ze.call(Ke,De,Ee):Ze,Ee==null)break e;De=L({},De,Ee);break e;case 2:ei=!0}}ee.callback!==null&&ee.lane!==0&&(c.flags|=64,Ee=E.effects,Ee===null?E.effects=[ee]:Ee.push(ee))}else Ke={eventTime:Ke,lane:Ee,tag:ee.tag,payload:ee.payload,callback:ee.callback,next:null},Te===null?(he=Te=Ke,se=De):Te=Te.next=Ke,G|=Ee;if(ee=ee.next,ee===null){if(ee=E.shared.pending,ee===null)break;Ee=ee,ee=Ee.next,Ee.next=null,E.lastBaseUpdate=Ee,E.shared.pending=null}}while(!0);if(Te===null&&(se=De),E.baseState=se,E.firstBaseUpdate=he,E.lastBaseUpdate=Te,d=E.shared.interleaved,d!==null){E=d;do G|=E.lane,E=E.next;while(E!==d)}else A===null&&(E.shared.lanes=0);Ki|=G,c.lanes=G,c.memoizedState=De}}function Xj(c,d,x){if(c=d.effects,d.effects=null,c!==null)for(d=0;d<c.length;d++){var w=c[d],E=w.callback;if(E!==null){if(w.callback=null,w=x,typeof E!="function")throw Error(n(191,E));E.call(w)}}}var su={},zs=Qo(su),ou=Qo(su),iu=Qo(su);function Vi(c){if(c===su)throw Error(n(174));return c}function nx(c,d){switch(qt(iu,d),qt(ou,c),qt(zs,su),c=d.nodeType,c){case 9:case 11:d=(d=d.documentElement)?d.namespaceURI:me(null,"");break;default:c=c===8?d.parentNode:d,d=c.namespaceURI||null,c=c.tagName,d=me(d,c)}Qt(zs),qt(zs,d)}function rl(){Qt(zs),Qt(ou),Qt(iu)}function Qj(c){Vi(iu.current);var d=Vi(zs.current),x=me(d,c.type);d!==x&&(qt(ou,c),qt(zs,x))}function rx(c){ou.current===c&&(Qt(zs),Qt(ou))}var ln=Qo(0);function _f(c){for(var d=c;d!==null;){if(d.tag===13){var x=d.memoizedState;if(x!==null&&(x=x.dehydrated,x===null||x.data==="$?"||x.data==="$!"))return d}else if(d.tag===19&&d.memoizedProps.revealOrder!==void 0){if((d.flags&128)!==0)return d}else if(d.child!==null){d.child.return=d,d=d.child;continue}if(d===c)break;for(;d.sibling===null;){if(d.return===null||d.return===c)return null;d=d.return}d.sibling.return=d.return,d=d.sibling}return null}var sx=[];function ox(){for(var c=0;c<sx.length;c++)sx[c]._workInProgressVersionPrimary=null;sx.length=0}var Df=C.ReactCurrentDispatcher,ix=C.ReactCurrentBatchConfig,Wi=0,cn=null,_n=null,Bn=null,$f=!1,au=!1,lu=0,AI=0;function Zn(){throw Error(n(321))}function ax(c,d){if(d===null)return!1;for(var x=0;x<d.length&&x<c.length;x++)if(!as(c[x],d[x]))return!1;return!0}function lx(c,d,x,w,E,A){if(Wi=A,cn=d,d.memoizedState=null,d.updateQueue=null,d.lanes=0,Df.current=c===null||c.memoizedState===null?$I:II,c=x(w,E),au){A=0;do{if(au=!1,lu=0,25<=A)throw Error(n(301));A+=1,Bn=_n=null,d.updateQueue=null,Df.current=MI,c=x(w,E)}while(au)}if(Df.current=Lf,d=_n!==null&&_n.next!==null,Wi=0,Bn=_n=cn=null,$f=!1,d)throw Error(n(300));return c}function cx(){var c=lu!==0;return lu=0,c}function Bs(){var c={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return Bn===null?cn.memoizedState=Bn=c:Bn=Bn.next=c,Bn}function Xr(){if(_n===null){var c=cn.alternate;c=c!==null?c.memoizedState:null}else c=_n.next;var d=Bn===null?cn.memoizedState:Bn.next;if(d!==null)Bn=d,_n=c;else{if(c===null)throw Error(n(310));_n=c,c={memoizedState:_n.memoizedState,baseState:_n.baseState,baseQueue:_n.baseQueue,queue:_n.queue,next:null},Bn===null?cn.memoizedState=Bn=c:Bn=Bn.next=c}return Bn}function cu(c,d){return typeof d=="function"?d(c):d}function ux(c){var d=Xr(),x=d.queue;if(x===null)throw Error(n(311));x.lastRenderedReducer=c;var w=_n,E=w.baseQueue,A=x.pending;if(A!==null){if(E!==null){var G=E.next;E.next=A.next,A.next=G}w.baseQueue=E=A,x.pending=null}if(E!==null){A=E.next,w=w.baseState;var ee=G=null,se=null,he=A;do{var Te=he.lane;if((Wi&Te)===Te)se!==null&&(se=se.next={lane:0,action:he.action,hasEagerState:he.hasEagerState,eagerState:he.eagerState,next:null}),w=he.hasEagerState?he.eagerState:c(w,he.action);else{var De={lane:Te,action:he.action,hasEagerState:he.hasEagerState,eagerState:he.eagerState,next:null};se===null?(ee=se=De,G=w):se=se.next=De,cn.lanes|=Te,Ki|=Te}he=he.next}while(he!==null&&he!==A);se===null?G=w:se.next=ee,as(w,d.memoizedState)||(hr=!0),d.memoizedState=w,d.baseState=G,d.baseQueue=se,x.lastRenderedState=w}if(c=x.interleaved,c!==null){E=c;do A=E.lane,cn.lanes|=A,Ki|=A,E=E.next;while(E!==c)}else E===null&&(x.lanes=0);return[d.memoizedState,x.dispatch]}function dx(c){var d=Xr(),x=d.queue;if(x===null)throw Error(n(311));x.lastRenderedReducer=c;var w=x.dispatch,E=x.pending,A=d.memoizedState;if(E!==null){x.pending=null;var G=E=E.next;do A=c(A,G.action),G=G.next;while(G!==E);as(A,d.memoizedState)||(hr=!0),d.memoizedState=A,d.baseQueue===null&&(d.baseState=A),x.lastRenderedState=A}return[A,w]}function Jj(){}function Zj(c,d){var x=cn,w=Xr(),E=d(),A=!as(w.memoizedState,E);if(A&&(w.memoizedState=E,hr=!0),w=w.queue,fx(nk.bind(null,x,w,c),[c]),w.getSnapshot!==d||A||Bn!==null&&Bn.memoizedState.tag&1){if(x.flags|=2048,uu(9,tk.bind(null,x,w,E,d),void 0,null),Un===null)throw Error(n(349));(Wi&30)!==0||ek(x,d,E)}return E}function ek(c,d,x){c.flags|=16384,c={getSnapshot:d,value:x},d=cn.updateQueue,d===null?(d={lastEffect:null,stores:null},cn.updateQueue=d,d.stores=[c]):(x=d.stores,x===null?d.stores=[c]:x.push(c))}function tk(c,d,x,w){d.value=x,d.getSnapshot=w,rk(d)&&sk(c)}function nk(c,d,x){return x(function(){rk(d)&&sk(c)})}function rk(c){var d=c.getSnapshot;c=c.value;try{var x=d();return!as(c,x)}catch{return!0}}function sk(c){var d=go(c,1);d!==null&&fs(d,c,1,-1)}function ok(c){var d=Bs();return typeof c=="function"&&(c=c()),d.memoizedState=d.baseState=c,c={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:cu,lastRenderedState:c},d.queue=c,c=c.dispatch=DI.bind(null,cn,c),[d.memoizedState,c]}function uu(c,d,x,w){return c={tag:c,create:d,destroy:x,deps:w,next:null},d=cn.updateQueue,d===null?(d={lastEffect:null,stores:null},cn.updateQueue=d,d.lastEffect=c.next=c):(x=d.lastEffect,x===null?d.lastEffect=c.next=c:(w=x.next,x.next=c,c.next=w,d.lastEffect=c)),c}function ik(){return Xr().memoizedState}function If(c,d,x,w){var E=Bs();cn.flags|=c,E.memoizedState=uu(1|d,x,void 0,w===void 0?null:w)}function Mf(c,d,x,w){var E=Xr();w=w===void 0?null:w;var A=void 0;if(_n!==null){var G=_n.memoizedState;if(A=G.destroy,w!==null&&ax(w,G.deps)){E.memoizedState=uu(d,x,A,w);return}}cn.flags|=c,E.memoizedState=uu(1|d,x,A,w)}function ak(c,d){return If(8390656,8,c,d)}function fx(c,d){return Mf(2048,8,c,d)}function lk(c,d){return Mf(4,2,c,d)}function ck(c,d){return Mf(4,4,c,d)}function uk(c,d){if(typeof d=="function")return c=c(),d(c),function(){d(null)};if(d!=null)return c=c(),d.current=c,function(){d.current=null}}function dk(c,d,x){return x=x!=null?x.concat([c]):null,Mf(4,4,uk.bind(null,d,c),x)}function px(){}function fk(c,d){var x=Xr();d=d===void 0?null:d;var w=x.memoizedState;return w!==null&&d!==null&&ax(d,w[1])?w[0]:(x.memoizedState=[c,d],c)}function pk(c,d){var x=Xr();d=d===void 0?null:d;var w=x.memoizedState;return w!==null&&d!==null&&ax(d,w[1])?w[0]:(c=c(),x.memoizedState=[c,d],c)}function hk(c,d,x){return(Wi&21)===0?(c.baseState&&(c.baseState=!1,hr=!0),c.memoizedState=x):(as(x,d)||(x=Vo(),cn.lanes|=x,Ki|=x,c.baseState=!0),d)}function PI(c,d){var x=Ft;Ft=x!==0&&4>x?x:4,c(!0);var w=ix.transition;ix.transition={};try{c(!1),d()}finally{Ft=x,ix.transition=w}}function mk(){return Xr().memoizedState}function _I(c,d,x){var w=oi(c);if(x={lane:w,action:x,hasEagerState:!1,eagerState:null,next:null},gk(c))xk(d,x);else if(x=qj(c,d,x,w),x!==null){var E=cr();fs(x,c,w,E),yk(x,d,w)}}function DI(c,d,x){var w=oi(c),E={lane:w,action:x,hasEagerState:!1,eagerState:null,next:null};if(gk(c))xk(d,E);else{var A=c.alternate;if(c.lanes===0&&(A===null||A.lanes===0)&&(A=d.lastRenderedReducer,A!==null))try{var G=d.lastRenderedState,ee=A(G,x);if(E.hasEagerState=!0,E.eagerState=ee,as(ee,G)){var se=d.interleaved;se===null?(E.next=E,ex(d)):(E.next=se.next,se.next=E),d.interleaved=E;return}}catch{}finally{}x=qj(c,d,E,w),x!==null&&(E=cr(),fs(x,c,w,E),yk(x,d,w))}}function gk(c){var d=c.alternate;return c===cn||d!==null&&d===cn}function xk(c,d){au=$f=!0;var x=c.pending;x===null?d.next=d:(d.next=x.next,x.next=d),c.pending=d}function yk(c,d,x){if((x&4194240)!==0){var w=d.lanes;w&=c.pendingLanes,x|=w,d.lanes=x,Is(c,x)}}var Lf={readContext:Yr,useCallback:Zn,useContext:Zn,useEffect:Zn,useImperativeHandle:Zn,useInsertionEffect:Zn,useLayoutEffect:Zn,useMemo:Zn,useReducer:Zn,useRef:Zn,useState:Zn,useDebugValue:Zn,useDeferredValue:Zn,useTransition:Zn,useMutableSource:Zn,useSyncExternalStore:Zn,useId:Zn,unstable_isNewReconciler:!1},$I={readContext:Yr,useCallback:function(c,d){return Bs().memoizedState=[c,d===void 0?null:d],c},useContext:Yr,useEffect:ak,useImperativeHandle:function(c,d,x){return x=x!=null?x.concat([c]):null,If(4194308,4,uk.bind(null,d,c),x)},useLayoutEffect:function(c,d){return If(4194308,4,c,d)},useInsertionEffect:function(c,d){return If(4,2,c,d)},useMemo:function(c,d){var x=Bs();return d=d===void 0?null:d,c=c(),x.memoizedState=[c,d],c},useReducer:function(c,d,x){var w=Bs();return d=x!==void 0?x(d):d,w.memoizedState=w.baseState=d,c={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:c,lastRenderedState:d},w.queue=c,c=c.dispatch=_I.bind(null,cn,c),[w.memoizedState,c]},useRef:function(c){var d=Bs();return c={current:c},d.memoizedState=c},useState:ok,useDebugValue:px,useDeferredValue:function(c){return Bs().memoizedState=c},useTransition:function(){var c=ok(!1),d=c[0];return c=PI.bind(null,c[1]),Bs().memoizedState=c,[d,c]},useMutableSource:function(){},useSyncExternalStore:function(c,d,x){var w=cn,E=Bs();if(rn){if(x===void 0)throw Error(n(407));x=x()}else{if(x=d(),Un===null)throw Error(n(349));(Wi&30)!==0||ek(w,d,x)}E.memoizedState=x;var A={value:x,getSnapshot:d};return E.queue=A,ak(nk.bind(null,w,A,c),[c]),w.flags|=2048,uu(9,tk.bind(null,w,A,x,d),void 0,null),x},useId:function(){var c=Bs(),d=Un.identifierPrefix;if(rn){var x=mo,w=ho;x=(w&~(1<<32-On(w)-1)).toString(32)+x,d=":"+d+"R"+x,x=lu++,0<x&&(d+="H"+x.toString(32)),d+=":"}else x=AI++,d=":"+d+"r"+x.toString(32)+":";return c.memoizedState=d},unstable_isNewReconciler:!1},II={readContext:Yr,useCallback:fk,useContext:Yr,useEffect:fx,useImperativeHandle:dk,useInsertionEffect:lk,useLayoutEffect:ck,useMemo:pk,useReducer:ux,useRef:ik,useState:function(){return ux(cu)},useDebugValue:px,useDeferredValue:function(c){var d=Xr();return hk(d,_n.memoizedState,c)},useTransition:function(){var c=ux(cu)[0],d=Xr().memoizedState;return[c,d]},useMutableSource:Jj,useSyncExternalStore:Zj,useId:mk,unstable_isNewReconciler:!1},MI={readContext:Yr,useCallback:fk,useContext:Yr,useEffect:fx,useImperativeHandle:dk,useInsertionEffect:lk,useLayoutEffect:ck,useMemo:pk,useReducer:dx,useRef:ik,useState:function(){return dx(cu)},useDebugValue:px,useDeferredValue:function(c){var d=Xr();return _n===null?d.memoizedState=c:hk(d,_n.memoizedState,c)},useTransition:function(){var c=dx(cu)[0],d=Xr().memoizedState;return[c,d]},useMutableSource:Jj,useSyncExternalStore:Zj,useId:mk,unstable_isNewReconciler:!1};function cs(c,d){if(c&&c.defaultProps){d=L({},d),c=c.defaultProps;for(var x in c)d[x]===void 0&&(d[x]=c[x]);return d}return d}function hx(c,d,x,w){d=c.memoizedState,x=x(w,d),x=x==null?d:L({},d,x),c.memoizedState=x,c.lanes===0&&(c.updateQueue.baseState=x)}var Of={isMounted:function(c){return(c=c._reactInternals)?wt(c)===c:!1},enqueueSetState:function(c,d,x){c=c._reactInternals;var w=cr(),E=oi(c),A=xo(w,E);A.payload=d,x!=null&&(A.callback=x),d=ti(c,A,E),d!==null&&(fs(d,c,E,w),Af(d,c,E))},enqueueReplaceState:function(c,d,x){c=c._reactInternals;var w=cr(),E=oi(c),A=xo(w,E);A.tag=1,A.payload=d,x!=null&&(A.callback=x),d=ti(c,A,E),d!==null&&(fs(d,c,E,w),Af(d,c,E))},enqueueForceUpdate:function(c,d){c=c._reactInternals;var x=cr(),w=oi(c),E=xo(x,w);E.tag=2,d!=null&&(E.callback=d),d=ti(c,E,w),d!==null&&(fs(d,c,w,x),Af(d,c,w))}};function bk(c,d,x,w,E,A,G){return c=c.stateNode,typeof c.shouldComponentUpdate=="function"?c.shouldComponentUpdate(w,A,G):d.prototype&&d.prototype.isPureReactComponent?!Xc(x,w)||!Xc(E,A):!0}function vk(c,d,x){var w=!1,E=Jo,A=d.contextType;return typeof A=="object"&&A!==null?A=Yr(A):(E=pr(d)?zi:Jn.current,w=d.contextTypes,A=(w=w!=null)?Xa(c,E):Jo),d=new d(x,A),c.memoizedState=d.state!==null&&d.state!==void 0?d.state:null,d.updater=Of,c.stateNode=d,d._reactInternals=c,w&&(c=c.stateNode,c.__reactInternalMemoizedUnmaskedChildContext=E,c.__reactInternalMemoizedMaskedChildContext=A),d}function wk(c,d,x,w){c=d.state,typeof d.componentWillReceiveProps=="function"&&d.componentWillReceiveProps(x,w),typeof d.UNSAFE_componentWillReceiveProps=="function"&&d.UNSAFE_componentWillReceiveProps(x,w),d.state!==c&&Of.enqueueReplaceState(d,d.state,null)}function mx(c,d,x,w){var E=c.stateNode;E.props=x,E.state=c.memoizedState,E.refs={},tx(c);var A=d.contextType;typeof A=="object"&&A!==null?E.context=Yr(A):(A=pr(d)?zi:Jn.current,E.context=Xa(c,A)),E.state=c.memoizedState,A=d.getDerivedStateFromProps,typeof A=="function"&&(hx(c,d,A,x),E.state=c.memoizedState),typeof d.getDerivedStateFromProps=="function"||typeof E.getSnapshotBeforeUpdate=="function"||typeof E.UNSAFE_componentWillMount!="function"&&typeof E.componentWillMount!="function"||(d=E.state,typeof E.componentWillMount=="function"&&E.componentWillMount(),typeof E.UNSAFE_componentWillMount=="function"&&E.UNSAFE_componentWillMount(),d!==E.state&&Of.enqueueReplaceState(E,E.state,null),Pf(c,x,E,w),E.state=c.memoizedState),typeof E.componentDidMount=="function"&&(c.flags|=4194308)}function sl(c,d){try{var x="",w=d;do x+=J(w),w=w.return;while(w);var E=x}catch(A){E=`
|
|
39
|
-
Error generating stack: `+A.message+`
|
|
40
|
-
`+A.stack}return{value:c,source:d,stack:E,digest:null}}function gx(c,d,x){return{value:c,source:null,stack:x??null,digest:d??null}}function xx(c,d){try{console.error(d.value)}catch(x){setTimeout(function(){throw x})}}var LI=typeof WeakMap=="function"?WeakMap:Map;function jk(c,d,x){x=xo(-1,x),x.tag=3,x.payload={element:null};var w=d.value;return x.callback=function(){Wf||(Wf=!0,_x=w),xx(c,d)},x}function kk(c,d,x){x=xo(-1,x),x.tag=3;var w=c.type.getDerivedStateFromError;if(typeof w=="function"){var E=d.value;x.payload=function(){return w(E)},x.callback=function(){xx(c,d)}}var A=c.stateNode;return A!==null&&typeof A.componentDidCatch=="function"&&(x.callback=function(){xx(c,d),typeof w!="function"&&(ri===null?ri=new Set([this]):ri.add(this));var G=d.stack;this.componentDidCatch(d.value,{componentStack:G!==null?G:""})}),x}function Nk(c,d,x){var w=c.pingCache;if(w===null){w=c.pingCache=new LI;var E=new Set;w.set(d,E)}else E=w.get(d),E===void 0&&(E=new Set,w.set(d,E));E.has(x)||(E.add(x),c=QI.bind(null,c,d,x),d.then(c,c))}function Sk(c){do{var d;if((d=c.tag===13)&&(d=c.memoizedState,d=d!==null?d.dehydrated!==null:!0),d)return c;c=c.return}while(c!==null);return null}function Ck(c,d,x,w,E){return(c.mode&1)===0?(c===d?c.flags|=65536:(c.flags|=128,x.flags|=131072,x.flags&=-52805,x.tag===1&&(x.alternate===null?x.tag=17:(d=xo(-1,1),d.tag=2,ti(x,d,1))),x.lanes|=1),c):(c.flags|=65536,c.lanes=E,c)}var OI=C.ReactCurrentOwner,hr=!1;function lr(c,d,x,w){d.child=c===null?Kj(d,null,x,w):el(d,c.child,x,w)}function Ek(c,d,x,w,E){x=x.render;var A=d.ref;return nl(d,E),w=lx(c,d,x,w,A,E),x=cx(),c!==null&&!hr?(d.updateQueue=c.updateQueue,d.flags&=-2053,c.lanes&=~E,yo(c,d,E)):(rn&&x&&Wg(d),d.flags|=1,lr(c,d,w,E),d.child)}function Tk(c,d,x,w,E){if(c===null){var A=x.type;return typeof A=="function"&&!Fx(A)&&A.defaultProps===void 0&&x.compare===null&&x.defaultProps===void 0?(d.tag=15,d.type=A,Rk(c,d,A,w,E)):(c=Qf(x.type,null,w,d,d.mode,E),c.ref=d.ref,c.return=d,d.child=c)}if(A=c.child,(c.lanes&E)===0){var G=A.memoizedProps;if(x=x.compare,x=x!==null?x:Xc,x(G,w)&&c.ref===d.ref)return yo(c,d,E)}return d.flags|=1,c=ai(A,w),c.ref=d.ref,c.return=d,d.child=c}function Rk(c,d,x,w,E){if(c!==null){var A=c.memoizedProps;if(Xc(A,w)&&c.ref===d.ref)if(hr=!1,d.pendingProps=w=A,(c.lanes&E)!==0)(c.flags&131072)!==0&&(hr=!0);else return d.lanes=c.lanes,yo(c,d,E)}return yx(c,d,x,w,E)}function Ak(c,d,x){var w=d.pendingProps,E=w.children,A=c!==null?c.memoizedState:null;if(w.mode==="hidden")if((d.mode&1)===0)d.memoizedState={baseLanes:0,cachePool:null,transitions:null},qt(il,$r),$r|=x;else{if((x&1073741824)===0)return c=A!==null?A.baseLanes|x:x,d.lanes=d.childLanes=1073741824,d.memoizedState={baseLanes:c,cachePool:null,transitions:null},d.updateQueue=null,qt(il,$r),$r|=c,null;d.memoizedState={baseLanes:0,cachePool:null,transitions:null},w=A!==null?A.baseLanes:x,qt(il,$r),$r|=w}else A!==null?(w=A.baseLanes|x,d.memoizedState=null):w=x,qt(il,$r),$r|=w;return lr(c,d,E,x),d.child}function Pk(c,d){var x=d.ref;(c===null&&x!==null||c!==null&&c.ref!==x)&&(d.flags|=512,d.flags|=2097152)}function yx(c,d,x,w,E){var A=pr(x)?zi:Jn.current;return A=Xa(d,A),nl(d,E),x=lx(c,d,x,w,A,E),w=cx(),c!==null&&!hr?(d.updateQueue=c.updateQueue,d.flags&=-2053,c.lanes&=~E,yo(c,d,E)):(rn&&w&&Wg(d),d.flags|=1,lr(c,d,x,E),d.child)}function _k(c,d,x,w,E){if(pr(x)){var A=!0;jf(d)}else A=!1;if(nl(d,E),d.stateNode===null)zf(c,d),vk(d,x,w),mx(d,x,w,E),w=!0;else if(c===null){var G=d.stateNode,ee=d.memoizedProps;G.props=ee;var se=G.context,he=x.contextType;typeof he=="object"&&he!==null?he=Yr(he):(he=pr(x)?zi:Jn.current,he=Xa(d,he));var Te=x.getDerivedStateFromProps,De=typeof Te=="function"||typeof G.getSnapshotBeforeUpdate=="function";De||typeof G.UNSAFE_componentWillReceiveProps!="function"&&typeof G.componentWillReceiveProps!="function"||(ee!==w||se!==he)&&wk(d,G,w,he),ei=!1;var Ee=d.memoizedState;G.state=Ee,Pf(d,w,G,E),se=d.memoizedState,ee!==w||Ee!==se||fr.current||ei?(typeof Te=="function"&&(hx(d,x,Te,w),se=d.memoizedState),(ee=ei||bk(d,x,ee,w,Ee,se,he))?(De||typeof G.UNSAFE_componentWillMount!="function"&&typeof G.componentWillMount!="function"||(typeof G.componentWillMount=="function"&&G.componentWillMount(),typeof G.UNSAFE_componentWillMount=="function"&&G.UNSAFE_componentWillMount()),typeof G.componentDidMount=="function"&&(d.flags|=4194308)):(typeof G.componentDidMount=="function"&&(d.flags|=4194308),d.memoizedProps=w,d.memoizedState=se),G.props=w,G.state=se,G.context=he,w=ee):(typeof G.componentDidMount=="function"&&(d.flags|=4194308),w=!1)}else{G=d.stateNode,Gj(c,d),ee=d.memoizedProps,he=d.type===d.elementType?ee:cs(d.type,ee),G.props=he,De=d.pendingProps,Ee=G.context,se=x.contextType,typeof se=="object"&&se!==null?se=Yr(se):(se=pr(x)?zi:Jn.current,se=Xa(d,se));var Ke=x.getDerivedStateFromProps;(Te=typeof Ke=="function"||typeof G.getSnapshotBeforeUpdate=="function")||typeof G.UNSAFE_componentWillReceiveProps!="function"&&typeof G.componentWillReceiveProps!="function"||(ee!==De||Ee!==se)&&wk(d,G,w,se),ei=!1,Ee=d.memoizedState,G.state=Ee,Pf(d,w,G,E);var Ze=d.memoizedState;ee!==De||Ee!==Ze||fr.current||ei?(typeof Ke=="function"&&(hx(d,x,Ke,w),Ze=d.memoizedState),(he=ei||bk(d,x,he,w,Ee,Ze,se)||!1)?(Te||typeof G.UNSAFE_componentWillUpdate!="function"&&typeof G.componentWillUpdate!="function"||(typeof G.componentWillUpdate=="function"&&G.componentWillUpdate(w,Ze,se),typeof G.UNSAFE_componentWillUpdate=="function"&&G.UNSAFE_componentWillUpdate(w,Ze,se)),typeof G.componentDidUpdate=="function"&&(d.flags|=4),typeof G.getSnapshotBeforeUpdate=="function"&&(d.flags|=1024)):(typeof G.componentDidUpdate!="function"||ee===c.memoizedProps&&Ee===c.memoizedState||(d.flags|=4),typeof G.getSnapshotBeforeUpdate!="function"||ee===c.memoizedProps&&Ee===c.memoizedState||(d.flags|=1024),d.memoizedProps=w,d.memoizedState=Ze),G.props=w,G.state=Ze,G.context=se,w=he):(typeof G.componentDidUpdate!="function"||ee===c.memoizedProps&&Ee===c.memoizedState||(d.flags|=4),typeof G.getSnapshotBeforeUpdate!="function"||ee===c.memoizedProps&&Ee===c.memoizedState||(d.flags|=1024),w=!1)}return bx(c,d,x,w,A,E)}function bx(c,d,x,w,E,A){Pk(c,d);var G=(d.flags&128)!==0;if(!w&&!G)return E&&Lj(d,x,!1),yo(c,d,A);w=d.stateNode,OI.current=d;var ee=G&&typeof x.getDerivedStateFromError!="function"?null:w.render();return d.flags|=1,c!==null&&G?(d.child=el(d,c.child,null,A),d.child=el(d,null,ee,A)):lr(c,d,ee,A),d.memoizedState=w.state,E&&Lj(d,x,!0),d.child}function Dk(c){var d=c.stateNode;d.pendingContext?Ij(c,d.pendingContext,d.pendingContext!==d.context):d.context&&Ij(c,d.context,!1),nx(c,d.containerInfo)}function $k(c,d,x,w,E){return Za(),Yg(E),d.flags|=256,lr(c,d,x,w),d.child}var vx={dehydrated:null,treeContext:null,retryLane:0};function wx(c){return{baseLanes:c,cachePool:null,transitions:null}}function Ik(c,d,x){var w=d.pendingProps,E=ln.current,A=!1,G=(d.flags&128)!==0,ee;if((ee=G)||(ee=c!==null&&c.memoizedState===null?!1:(E&2)!==0),ee?(A=!0,d.flags&=-129):(c===null||c.memoizedState!==null)&&(E|=1),qt(ln,E&1),c===null)return Gg(d),c=d.memoizedState,c!==null&&(c=c.dehydrated,c!==null)?((d.mode&1)===0?d.lanes=1:c.data==="$!"?d.lanes=8:d.lanes=1073741824,null):(G=w.children,c=w.fallback,A?(w=d.mode,A=d.child,G={mode:"hidden",children:G},(w&1)===0&&A!==null?(A.childLanes=0,A.pendingProps=G):A=Jf(G,w,0,null),c=Xi(c,w,x,null),A.return=d,c.return=d,A.sibling=c,d.child=A,d.child.memoizedState=wx(x),d.memoizedState=vx,c):jx(d,G));if(E=c.memoizedState,E!==null&&(ee=E.dehydrated,ee!==null))return FI(c,d,G,w,ee,E,x);if(A){A=w.fallback,G=d.mode,E=c.child,ee=E.sibling;var se={mode:"hidden",children:w.children};return(G&1)===0&&d.child!==E?(w=d.child,w.childLanes=0,w.pendingProps=se,d.deletions=null):(w=ai(E,se),w.subtreeFlags=E.subtreeFlags&14680064),ee!==null?A=ai(ee,A):(A=Xi(A,G,x,null),A.flags|=2),A.return=d,w.return=d,w.sibling=A,d.child=w,w=A,A=d.child,G=c.child.memoizedState,G=G===null?wx(x):{baseLanes:G.baseLanes|x,cachePool:null,transitions:G.transitions},A.memoizedState=G,A.childLanes=c.childLanes&~x,d.memoizedState=vx,w}return A=c.child,c=A.sibling,w=ai(A,{mode:"visible",children:w.children}),(d.mode&1)===0&&(w.lanes=x),w.return=d,w.sibling=null,c!==null&&(x=d.deletions,x===null?(d.deletions=[c],d.flags|=16):x.push(c)),d.child=w,d.memoizedState=null,w}function jx(c,d){return d=Jf({mode:"visible",children:d},c.mode,0,null),d.return=c,c.child=d}function Ff(c,d,x,w){return w!==null&&Yg(w),el(d,c.child,null,x),c=jx(d,d.pendingProps.children),c.flags|=2,d.memoizedState=null,c}function FI(c,d,x,w,E,A,G){if(x)return d.flags&256?(d.flags&=-257,w=gx(Error(n(422))),Ff(c,d,G,w)):d.memoizedState!==null?(d.child=c.child,d.flags|=128,null):(A=w.fallback,E=d.mode,w=Jf({mode:"visible",children:w.children},E,0,null),A=Xi(A,E,G,null),A.flags|=2,w.return=d,A.return=d,w.sibling=A,d.child=w,(d.mode&1)!==0&&el(d,c.child,null,G),d.child.memoizedState=wx(G),d.memoizedState=vx,A);if((d.mode&1)===0)return Ff(c,d,G,null);if(E.data==="$!"){if(w=E.nextSibling&&E.nextSibling.dataset,w)var ee=w.dgst;return w=ee,A=Error(n(419)),w=gx(A,w,void 0),Ff(c,d,G,w)}if(ee=(G&c.childLanes)!==0,hr||ee){if(w=Un,w!==null){switch(G&-G){case 4:E=2;break;case 16:E=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:E=32;break;case 536870912:E=268435456;break;default:E=0}E=(E&(w.suspendedLanes|G))!==0?0:E,E!==0&&E!==A.retryLane&&(A.retryLane=E,go(c,E),fs(w,c,E,-1))}return Ox(),w=gx(Error(n(421))),Ff(c,d,G,w)}return E.data==="$?"?(d.flags|=128,d.child=c.child,d=JI.bind(null,c),E._reactRetry=d,null):(c=A.treeContext,Dr=Xo(E.nextSibling),_r=d,rn=!0,ls=null,c!==null&&(qr[Gr++]=ho,qr[Gr++]=mo,qr[Gr++]=Bi,ho=c.id,mo=c.overflow,Bi=d),d=jx(d,w.children),d.flags|=4096,d)}function Mk(c,d,x){c.lanes|=d;var w=c.alternate;w!==null&&(w.lanes|=d),Zg(c.return,d,x)}function kx(c,d,x,w,E){var A=c.memoizedState;A===null?c.memoizedState={isBackwards:d,rendering:null,renderingStartTime:0,last:w,tail:x,tailMode:E}:(A.isBackwards=d,A.rendering=null,A.renderingStartTime=0,A.last=w,A.tail=x,A.tailMode=E)}function Lk(c,d,x){var w=d.pendingProps,E=w.revealOrder,A=w.tail;if(lr(c,d,w.children,x),w=ln.current,(w&2)!==0)w=w&1|2,d.flags|=128;else{if(c!==null&&(c.flags&128)!==0)e:for(c=d.child;c!==null;){if(c.tag===13)c.memoizedState!==null&&Mk(c,x,d);else if(c.tag===19)Mk(c,x,d);else if(c.child!==null){c.child.return=c,c=c.child;continue}if(c===d)break e;for(;c.sibling===null;){if(c.return===null||c.return===d)break e;c=c.return}c.sibling.return=c.return,c=c.sibling}w&=1}if(qt(ln,w),(d.mode&1)===0)d.memoizedState=null;else switch(E){case"forwards":for(x=d.child,E=null;x!==null;)c=x.alternate,c!==null&&_f(c)===null&&(E=x),x=x.sibling;x=E,x===null?(E=d.child,d.child=null):(E=x.sibling,x.sibling=null),kx(d,!1,E,x,A);break;case"backwards":for(x=null,E=d.child,d.child=null;E!==null;){if(c=E.alternate,c!==null&&_f(c)===null){d.child=E;break}c=E.sibling,E.sibling=x,x=E,E=c}kx(d,!0,x,null,A);break;case"together":kx(d,!1,null,null,void 0);break;default:d.memoizedState=null}return d.child}function zf(c,d){(d.mode&1)===0&&c!==null&&(c.alternate=null,d.alternate=null,d.flags|=2)}function yo(c,d,x){if(c!==null&&(d.dependencies=c.dependencies),Ki|=d.lanes,(x&d.childLanes)===0)return null;if(c!==null&&d.child!==c.child)throw Error(n(153));if(d.child!==null){for(c=d.child,x=ai(c,c.pendingProps),d.child=x,x.return=d;c.sibling!==null;)c=c.sibling,x=x.sibling=ai(c,c.pendingProps),x.return=d;x.sibling=null}return d.child}function zI(c,d,x){switch(d.tag){case 3:Dk(d),Za();break;case 5:Qj(d);break;case 1:pr(d.type)&&jf(d);break;case 4:nx(d,d.stateNode.containerInfo);break;case 10:var w=d.type._context,E=d.memoizedProps.value;qt(Tf,w._currentValue),w._currentValue=E;break;case 13:if(w=d.memoizedState,w!==null)return w.dehydrated!==null?(qt(ln,ln.current&1),d.flags|=128,null):(x&d.child.childLanes)!==0?Ik(c,d,x):(qt(ln,ln.current&1),c=yo(c,d,x),c!==null?c.sibling:null);qt(ln,ln.current&1);break;case 19:if(w=(x&d.childLanes)!==0,(c.flags&128)!==0){if(w)return Lk(c,d,x);d.flags|=128}if(E=d.memoizedState,E!==null&&(E.rendering=null,E.tail=null,E.lastEffect=null),qt(ln,ln.current),w)break;return null;case 22:case 23:return d.lanes=0,Ak(c,d,x)}return yo(c,d,x)}var Ok,Nx,Fk,zk;Ok=function(c,d){for(var x=d.child;x!==null;){if(x.tag===5||x.tag===6)c.appendChild(x.stateNode);else if(x.tag!==4&&x.child!==null){x.child.return=x,x=x.child;continue}if(x===d)break;for(;x.sibling===null;){if(x.return===null||x.return===d)return;x=x.return}x.sibling.return=x.return,x=x.sibling}},Nx=function(){},Fk=function(c,d,x,w){var E=c.memoizedProps;if(E!==w){c=d.stateNode,Vi(zs.current);var A=null;switch(x){case"input":E=Be(c,E),w=Be(c,w),A=[];break;case"select":E=L({},E,{value:void 0}),w=L({},w,{value:void 0}),A=[];break;case"textarea":E=ot(c,E),w=ot(c,w),A=[];break;default:typeof E.onClick!="function"&&typeof w.onClick=="function"&&(c.onclick=bf)}fe(x,w);var G;x=null;for(he in E)if(!w.hasOwnProperty(he)&&E.hasOwnProperty(he)&&E[he]!=null)if(he==="style"){var ee=E[he];for(G in ee)ee.hasOwnProperty(G)&&(x||(x={}),x[G]="")}else he!=="dangerouslySetInnerHTML"&&he!=="children"&&he!=="suppressContentEditableWarning"&&he!=="suppressHydrationWarning"&&he!=="autoFocus"&&(o.hasOwnProperty(he)?A||(A=[]):(A=A||[]).push(he,null));for(he in w){var se=w[he];if(ee=E!=null?E[he]:void 0,w.hasOwnProperty(he)&&se!==ee&&(se!=null||ee!=null))if(he==="style")if(ee){for(G in ee)!ee.hasOwnProperty(G)||se&&se.hasOwnProperty(G)||(x||(x={}),x[G]="");for(G in se)se.hasOwnProperty(G)&&ee[G]!==se[G]&&(x||(x={}),x[G]=se[G])}else x||(A||(A=[]),A.push(he,x)),x=se;else he==="dangerouslySetInnerHTML"?(se=se?se.__html:void 0,ee=ee?ee.__html:void 0,se!=null&&ee!==se&&(A=A||[]).push(he,se)):he==="children"?typeof se!="string"&&typeof se!="number"||(A=A||[]).push(he,""+se):he!=="suppressContentEditableWarning"&&he!=="suppressHydrationWarning"&&(o.hasOwnProperty(he)?(se!=null&&he==="onScroll"&&Xt("scroll",c),A||ee===se||(A=[])):(A=A||[]).push(he,se))}x&&(A=A||[]).push("style",x);var he=A;(d.updateQueue=he)&&(d.flags|=4)}},zk=function(c,d,x,w){x!==w&&(d.flags|=4)};function du(c,d){if(!rn)switch(c.tailMode){case"hidden":d=c.tail;for(var x=null;d!==null;)d.alternate!==null&&(x=d),d=d.sibling;x===null?c.tail=null:x.sibling=null;break;case"collapsed":x=c.tail;for(var w=null;x!==null;)x.alternate!==null&&(w=x),x=x.sibling;w===null?d||c.tail===null?c.tail=null:c.tail.sibling=null:w.sibling=null}}function er(c){var d=c.alternate!==null&&c.alternate.child===c.child,x=0,w=0;if(d)for(var E=c.child;E!==null;)x|=E.lanes|E.childLanes,w|=E.subtreeFlags&14680064,w|=E.flags&14680064,E.return=c,E=E.sibling;else for(E=c.child;E!==null;)x|=E.lanes|E.childLanes,w|=E.subtreeFlags,w|=E.flags,E.return=c,E=E.sibling;return c.subtreeFlags|=w,c.childLanes=x,d}function BI(c,d,x){var w=d.pendingProps;switch(Kg(d),d.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return er(d),null;case 1:return pr(d.type)&&wf(),er(d),null;case 3:return w=d.stateNode,rl(),Qt(fr),Qt(Jn),ox(),w.pendingContext&&(w.context=w.pendingContext,w.pendingContext=null),(c===null||c.child===null)&&(Cf(d)?d.flags|=4:c===null||c.memoizedState.isDehydrated&&(d.flags&256)===0||(d.flags|=1024,ls!==null&&(Ix(ls),ls=null))),Nx(c,d),er(d),null;case 5:rx(d);var E=Vi(iu.current);if(x=d.type,c!==null&&d.stateNode!=null)Fk(c,d,x,w,E),c.ref!==d.ref&&(d.flags|=512,d.flags|=2097152);else{if(!w){if(d.stateNode===null)throw Error(n(166));return er(d),null}if(c=Vi(zs.current),Cf(d)){w=d.stateNode,x=d.type;var A=d.memoizedProps;switch(w[Fs]=d,w[tu]=A,c=(d.mode&1)!==0,x){case"dialog":Xt("cancel",w),Xt("close",w);break;case"iframe":case"object":case"embed":Xt("load",w);break;case"video":case"audio":for(E=0;E<Jc.length;E++)Xt(Jc[E],w);break;case"source":Xt("error",w);break;case"img":case"image":case"link":Xt("error",w),Xt("load",w);break;case"details":Xt("toggle",w);break;case"input":ie(w,A),Xt("invalid",w);break;case"select":w._wrapperState={wasMultiple:!!A.multiple},Xt("invalid",w);break;case"textarea":St(w,A),Xt("invalid",w)}fe(x,A),E=null;for(var G in A)if(A.hasOwnProperty(G)){var ee=A[G];G==="children"?typeof ee=="string"?w.textContent!==ee&&(A.suppressHydrationWarning!==!0&&yf(w.textContent,ee,c),E=["children",ee]):typeof ee=="number"&&w.textContent!==""+ee&&(A.suppressHydrationWarning!==!0&&yf(w.textContent,ee,c),E=["children",""+ee]):o.hasOwnProperty(G)&&ee!=null&&G==="onScroll"&&Xt("scroll",w)}switch(x){case"input":Ce(w),Re(w,A,!0);break;case"textarea":Ce(w),at(w);break;case"select":case"option":break;default:typeof A.onClick=="function"&&(w.onclick=bf)}w=E,d.updateQueue=w,w!==null&&(d.flags|=4)}else{G=E.nodeType===9?E:E.ownerDocument,c==="http://www.w3.org/1999/xhtml"&&(c=ce(x)),c==="http://www.w3.org/1999/xhtml"?x==="script"?(c=G.createElement("div"),c.innerHTML="<script><\/script>",c=c.removeChild(c.firstChild)):typeof w.is=="string"?c=G.createElement(x,{is:w.is}):(c=G.createElement(x),x==="select"&&(G=c,w.multiple?G.multiple=!0:w.size&&(G.size=w.size))):c=G.createElementNS(c,x),c[Fs]=d,c[tu]=w,Ok(c,d,!1,!1),d.stateNode=c;e:{switch(G=q(x,w),x){case"dialog":Xt("cancel",c),Xt("close",c),E=w;break;case"iframe":case"object":case"embed":Xt("load",c),E=w;break;case"video":case"audio":for(E=0;E<Jc.length;E++)Xt(Jc[E],c);E=w;break;case"source":Xt("error",c),E=w;break;case"img":case"image":case"link":Xt("error",c),Xt("load",c),E=w;break;case"details":Xt("toggle",c),E=w;break;case"input":ie(c,w),E=Be(c,w),Xt("invalid",c);break;case"option":E=w;break;case"select":c._wrapperState={wasMultiple:!!w.multiple},E=L({},w,{value:void 0}),Xt("invalid",c);break;case"textarea":St(c,w),E=ot(c,w),Xt("invalid",c);break;default:E=w}fe(x,E),ee=E;for(A in ee)if(ee.hasOwnProperty(A)){var se=ee[A];A==="style"?Je(c,se):A==="dangerouslySetInnerHTML"?(se=se?se.__html:void 0,se!=null&&Ae(c,se)):A==="children"?typeof se=="string"?(x!=="textarea"||se!=="")&&Ve(c,se):typeof se=="number"&&Ve(c,""+se):A!=="suppressContentEditableWarning"&&A!=="suppressHydrationWarning"&&A!=="autoFocus"&&(o.hasOwnProperty(A)?se!=null&&A==="onScroll"&&Xt("scroll",c):se!=null&&N(c,A,se,G))}switch(x){case"input":Ce(c),Re(c,w,!1);break;case"textarea":Ce(c),at(c);break;case"option":w.value!=null&&c.setAttribute("value",""+ne(w.value));break;case"select":c.multiple=!!w.multiple,A=w.value,A!=null?Oe(c,!!w.multiple,A,!1):w.defaultValue!=null&&Oe(c,!!w.multiple,w.defaultValue,!0);break;default:typeof E.onClick=="function"&&(c.onclick=bf)}switch(x){case"button":case"input":case"select":case"textarea":w=!!w.autoFocus;break e;case"img":w=!0;break e;default:w=!1}}w&&(d.flags|=4)}d.ref!==null&&(d.flags|=512,d.flags|=2097152)}return er(d),null;case 6:if(c&&d.stateNode!=null)zk(c,d,c.memoizedProps,w);else{if(typeof w!="string"&&d.stateNode===null)throw Error(n(166));if(x=Vi(iu.current),Vi(zs.current),Cf(d)){if(w=d.stateNode,x=d.memoizedProps,w[Fs]=d,(A=w.nodeValue!==x)&&(c=_r,c!==null))switch(c.tag){case 3:yf(w.nodeValue,x,(c.mode&1)!==0);break;case 5:c.memoizedProps.suppressHydrationWarning!==!0&&yf(w.nodeValue,x,(c.mode&1)!==0)}A&&(d.flags|=4)}else w=(x.nodeType===9?x:x.ownerDocument).createTextNode(w),w[Fs]=d,d.stateNode=w}return er(d),null;case 13:if(Qt(ln),w=d.memoizedState,c===null||c.memoizedState!==null&&c.memoizedState.dehydrated!==null){if(rn&&Dr!==null&&(d.mode&1)!==0&&(d.flags&128)===0)Hj(),Za(),d.flags|=98560,A=!1;else if(A=Cf(d),w!==null&&w.dehydrated!==null){if(c===null){if(!A)throw Error(n(318));if(A=d.memoizedState,A=A!==null?A.dehydrated:null,!A)throw Error(n(317));A[Fs]=d}else Za(),(d.flags&128)===0&&(d.memoizedState=null),d.flags|=4;er(d),A=!1}else ls!==null&&(Ix(ls),ls=null),A=!0;if(!A)return d.flags&65536?d:null}return(d.flags&128)!==0?(d.lanes=x,d):(w=w!==null,w!==(c!==null&&c.memoizedState!==null)&&w&&(d.child.flags|=8192,(d.mode&1)!==0&&(c===null||(ln.current&1)!==0?Dn===0&&(Dn=3):Ox())),d.updateQueue!==null&&(d.flags|=4),er(d),null);case 4:return rl(),Nx(c,d),c===null&&Zc(d.stateNode.containerInfo),er(d),null;case 10:return Jg(d.type._context),er(d),null;case 17:return pr(d.type)&&wf(),er(d),null;case 19:if(Qt(ln),A=d.memoizedState,A===null)return er(d),null;if(w=(d.flags&128)!==0,G=A.rendering,G===null)if(w)du(A,!1);else{if(Dn!==0||c!==null&&(c.flags&128)!==0)for(c=d.child;c!==null;){if(G=_f(c),G!==null){for(d.flags|=128,du(A,!1),w=G.updateQueue,w!==null&&(d.updateQueue=w,d.flags|=4),d.subtreeFlags=0,w=x,x=d.child;x!==null;)A=x,c=w,A.flags&=14680066,G=A.alternate,G===null?(A.childLanes=0,A.lanes=c,A.child=null,A.subtreeFlags=0,A.memoizedProps=null,A.memoizedState=null,A.updateQueue=null,A.dependencies=null,A.stateNode=null):(A.childLanes=G.childLanes,A.lanes=G.lanes,A.child=G.child,A.subtreeFlags=0,A.deletions=null,A.memoizedProps=G.memoizedProps,A.memoizedState=G.memoizedState,A.updateQueue=G.updateQueue,A.type=G.type,c=G.dependencies,A.dependencies=c===null?null:{lanes:c.lanes,firstContext:c.firstContext}),x=x.sibling;return qt(ln,ln.current&1|2),d.child}c=c.sibling}A.tail!==null&&Ht()>al&&(d.flags|=128,w=!0,du(A,!1),d.lanes=4194304)}else{if(!w)if(c=_f(G),c!==null){if(d.flags|=128,w=!0,x=c.updateQueue,x!==null&&(d.updateQueue=x,d.flags|=4),du(A,!0),A.tail===null&&A.tailMode==="hidden"&&!G.alternate&&!rn)return er(d),null}else 2*Ht()-A.renderingStartTime>al&&x!==1073741824&&(d.flags|=128,w=!0,du(A,!1),d.lanes=4194304);A.isBackwards?(G.sibling=d.child,d.child=G):(x=A.last,x!==null?x.sibling=G:d.child=G,A.last=G)}return A.tail!==null?(d=A.tail,A.rendering=d,A.tail=d.sibling,A.renderingStartTime=Ht(),d.sibling=null,x=ln.current,qt(ln,w?x&1|2:x&1),d):(er(d),null);case 22:case 23:return Lx(),w=d.memoizedState!==null,c!==null&&c.memoizedState!==null!==w&&(d.flags|=8192),w&&(d.mode&1)!==0?($r&1073741824)!==0&&(er(d),d.subtreeFlags&6&&(d.flags|=8192)):er(d),null;case 24:return null;case 25:return null}throw Error(n(156,d.tag))}function UI(c,d){switch(Kg(d),d.tag){case 1:return pr(d.type)&&wf(),c=d.flags,c&65536?(d.flags=c&-65537|128,d):null;case 3:return rl(),Qt(fr),Qt(Jn),ox(),c=d.flags,(c&65536)!==0&&(c&128)===0?(d.flags=c&-65537|128,d):null;case 5:return rx(d),null;case 13:if(Qt(ln),c=d.memoizedState,c!==null&&c.dehydrated!==null){if(d.alternate===null)throw Error(n(340));Za()}return c=d.flags,c&65536?(d.flags=c&-65537|128,d):null;case 19:return Qt(ln),null;case 4:return rl(),null;case 10:return Jg(d.type._context),null;case 22:case 23:return Lx(),null;case 24:return null;default:return null}}var Bf=!1,tr=!1,HI=typeof WeakSet=="function"?WeakSet:Set,Xe=null;function ol(c,d){var x=c.ref;if(x!==null)if(typeof x=="function")try{x(null)}catch(w){dn(c,d,w)}else x.current=null}function Sx(c,d,x){try{x()}catch(w){dn(c,d,w)}}var Bk=!1;function VI(c,d){if(Lg=zn,c=bj(),Rg(c)){if("selectionStart"in c)var x={start:c.selectionStart,end:c.selectionEnd};else e:{x=(x=c.ownerDocument)&&x.defaultView||window;var w=x.getSelection&&x.getSelection();if(w&&w.rangeCount!==0){x=w.anchorNode;var E=w.anchorOffset,A=w.focusNode;w=w.focusOffset;try{x.nodeType,A.nodeType}catch{x=null;break e}var G=0,ee=-1,se=-1,he=0,Te=0,De=c,Ee=null;t:for(;;){for(var Ke;De!==x||E!==0&&De.nodeType!==3||(ee=G+E),De!==A||w!==0&&De.nodeType!==3||(se=G+w),De.nodeType===3&&(G+=De.nodeValue.length),(Ke=De.firstChild)!==null;)Ee=De,De=Ke;for(;;){if(De===c)break t;if(Ee===x&&++he===E&&(ee=G),Ee===A&&++Te===w&&(se=G),(Ke=De.nextSibling)!==null)break;De=Ee,Ee=De.parentNode}De=Ke}x=ee===-1||se===-1?null:{start:ee,end:se}}else x=null}x=x||{start:0,end:0}}else x=null;for(Og={focusedElem:c,selectionRange:x},zn=!1,Xe=d;Xe!==null;)if(d=Xe,c=d.child,(d.subtreeFlags&1028)!==0&&c!==null)c.return=d,Xe=c;else for(;Xe!==null;){d=Xe;try{var Ze=d.alternate;if((d.flags&1024)!==0)switch(d.tag){case 0:case 11:case 15:break;case 1:if(Ze!==null){var et=Ze.memoizedProps,pn=Ze.memoizedState,de=d.stateNode,ae=de.getSnapshotBeforeUpdate(d.elementType===d.type?et:cs(d.type,et),pn);de.__reactInternalSnapshotBeforeUpdate=ae}break;case 3:var pe=d.stateNode.containerInfo;pe.nodeType===1?pe.textContent="":pe.nodeType===9&&pe.documentElement&&pe.removeChild(pe.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(Le){dn(d,d.return,Le)}if(c=d.sibling,c!==null){c.return=d.return,Xe=c;break}Xe=d.return}return Ze=Bk,Bk=!1,Ze}function fu(c,d,x){var w=d.updateQueue;if(w=w!==null?w.lastEffect:null,w!==null){var E=w=w.next;do{if((E.tag&c)===c){var A=E.destroy;E.destroy=void 0,A!==void 0&&Sx(d,x,A)}E=E.next}while(E!==w)}}function Uf(c,d){if(d=d.updateQueue,d=d!==null?d.lastEffect:null,d!==null){var x=d=d.next;do{if((x.tag&c)===c){var w=x.create;x.destroy=w()}x=x.next}while(x!==d)}}function Cx(c){var d=c.ref;if(d!==null){var x=c.stateNode;switch(c.tag){case 5:c=x;break;default:c=x}typeof d=="function"?d(c):d.current=c}}function Uk(c){var d=c.alternate;d!==null&&(c.alternate=null,Uk(d)),c.child=null,c.deletions=null,c.sibling=null,c.tag===5&&(d=c.stateNode,d!==null&&(delete d[Fs],delete d[tu],delete d[Ug],delete d[CI],delete d[EI])),c.stateNode=null,c.return=null,c.dependencies=null,c.memoizedProps=null,c.memoizedState=null,c.pendingProps=null,c.stateNode=null,c.updateQueue=null}function Hk(c){return c.tag===5||c.tag===3||c.tag===4}function Vk(c){e:for(;;){for(;c.sibling===null;){if(c.return===null||Hk(c.return))return null;c=c.return}for(c.sibling.return=c.return,c=c.sibling;c.tag!==5&&c.tag!==6&&c.tag!==18;){if(c.flags&2||c.child===null||c.tag===4)continue e;c.child.return=c,c=c.child}if(!(c.flags&2))return c.stateNode}}function Ex(c,d,x){var w=c.tag;if(w===5||w===6)c=c.stateNode,d?x.nodeType===8?x.parentNode.insertBefore(c,d):x.insertBefore(c,d):(x.nodeType===8?(d=x.parentNode,d.insertBefore(c,x)):(d=x,d.appendChild(c)),x=x._reactRootContainer,x!=null||d.onclick!==null||(d.onclick=bf));else if(w!==4&&(c=c.child,c!==null))for(Ex(c,d,x),c=c.sibling;c!==null;)Ex(c,d,x),c=c.sibling}function Tx(c,d,x){var w=c.tag;if(w===5||w===6)c=c.stateNode,d?x.insertBefore(c,d):x.appendChild(c);else if(w!==4&&(c=c.child,c!==null))for(Tx(c,d,x),c=c.sibling;c!==null;)Tx(c,d,x),c=c.sibling}var Kn=null,us=!1;function ni(c,d,x){for(x=x.child;x!==null;)Wk(c,d,x),x=x.sibling}function Wk(c,d,x){if(ar&&typeof ar.onCommitFiberUnmount=="function")try{ar.onCommitFiberUnmount(zo,x)}catch{}switch(x.tag){case 5:tr||ol(x,d);case 6:var w=Kn,E=us;Kn=null,ni(c,d,x),Kn=w,us=E,Kn!==null&&(us?(c=Kn,x=x.stateNode,c.nodeType===8?c.parentNode.removeChild(x):c.removeChild(x)):Kn.removeChild(x.stateNode));break;case 18:Kn!==null&&(us?(c=Kn,x=x.stateNode,c.nodeType===8?Bg(c.parentNode,x):c.nodeType===1&&Bg(c,x),$t(c)):Bg(Kn,x.stateNode));break;case 4:w=Kn,E=us,Kn=x.stateNode.containerInfo,us=!0,ni(c,d,x),Kn=w,us=E;break;case 0:case 11:case 14:case 15:if(!tr&&(w=x.updateQueue,w!==null&&(w=w.lastEffect,w!==null))){E=w=w.next;do{var A=E,G=A.destroy;A=A.tag,G!==void 0&&((A&2)!==0||(A&4)!==0)&&Sx(x,d,G),E=E.next}while(E!==w)}ni(c,d,x);break;case 1:if(!tr&&(ol(x,d),w=x.stateNode,typeof w.componentWillUnmount=="function"))try{w.props=x.memoizedProps,w.state=x.memoizedState,w.componentWillUnmount()}catch(ee){dn(x,d,ee)}ni(c,d,x);break;case 21:ni(c,d,x);break;case 22:x.mode&1?(tr=(w=tr)||x.memoizedState!==null,ni(c,d,x),tr=w):ni(c,d,x);break;default:ni(c,d,x)}}function Kk(c){var d=c.updateQueue;if(d!==null){c.updateQueue=null;var x=c.stateNode;x===null&&(x=c.stateNode=new HI),d.forEach(function(w){var E=ZI.bind(null,c,w);x.has(w)||(x.add(w),w.then(E,E))})}}function ds(c,d){var x=d.deletions;if(x!==null)for(var w=0;w<x.length;w++){var E=x[w];try{var A=c,G=d,ee=G;e:for(;ee!==null;){switch(ee.tag){case 5:Kn=ee.stateNode,us=!1;break e;case 3:Kn=ee.stateNode.containerInfo,us=!0;break e;case 4:Kn=ee.stateNode.containerInfo,us=!0;break e}ee=ee.return}if(Kn===null)throw Error(n(160));Wk(A,G,E),Kn=null,us=!1;var se=E.alternate;se!==null&&(se.return=null),E.return=null}catch(he){dn(E,d,he)}}if(d.subtreeFlags&12854)for(d=d.child;d!==null;)qk(d,c),d=d.sibling}function qk(c,d){var x=c.alternate,w=c.flags;switch(c.tag){case 0:case 11:case 14:case 15:if(ds(d,c),Us(c),w&4){try{fu(3,c,c.return),Uf(3,c)}catch(et){dn(c,c.return,et)}try{fu(5,c,c.return)}catch(et){dn(c,c.return,et)}}break;case 1:ds(d,c),Us(c),w&512&&x!==null&&ol(x,x.return);break;case 5:if(ds(d,c),Us(c),w&512&&x!==null&&ol(x,x.return),c.flags&32){var E=c.stateNode;try{Ve(E,"")}catch(et){dn(c,c.return,et)}}if(w&4&&(E=c.stateNode,E!=null)){var A=c.memoizedProps,G=x!==null?x.memoizedProps:A,ee=c.type,se=c.updateQueue;if(c.updateQueue=null,se!==null)try{ee==="input"&&A.type==="radio"&&A.name!=null&&ve(E,A),q(ee,G);var he=q(ee,A);for(G=0;G<se.length;G+=2){var Te=se[G],De=se[G+1];Te==="style"?Je(E,De):Te==="dangerouslySetInnerHTML"?Ae(E,De):Te==="children"?Ve(E,De):N(E,Te,De,he)}switch(ee){case"input":be(E,A);break;case"textarea":mt(E,A);break;case"select":var Ee=E._wrapperState.wasMultiple;E._wrapperState.wasMultiple=!!A.multiple;var Ke=A.value;Ke!=null?Oe(E,!!A.multiple,Ke,!1):Ee!==!!A.multiple&&(A.defaultValue!=null?Oe(E,!!A.multiple,A.defaultValue,!0):Oe(E,!!A.multiple,A.multiple?[]:"",!1))}E[tu]=A}catch(et){dn(c,c.return,et)}}break;case 6:if(ds(d,c),Us(c),w&4){if(c.stateNode===null)throw Error(n(162));E=c.stateNode,A=c.memoizedProps;try{E.nodeValue=A}catch(et){dn(c,c.return,et)}}break;case 3:if(ds(d,c),Us(c),w&4&&x!==null&&x.memoizedState.isDehydrated)try{$t(d.containerInfo)}catch(et){dn(c,c.return,et)}break;case 4:ds(d,c),Us(c);break;case 13:ds(d,c),Us(c),E=c.child,E.flags&8192&&(A=E.memoizedState!==null,E.stateNode.isHidden=A,!A||E.alternate!==null&&E.alternate.memoizedState!==null||(Px=Ht())),w&4&&Kk(c);break;case 22:if(Te=x!==null&&x.memoizedState!==null,c.mode&1?(tr=(he=tr)||Te,ds(d,c),tr=he):ds(d,c),Us(c),w&8192){if(he=c.memoizedState!==null,(c.stateNode.isHidden=he)&&!Te&&(c.mode&1)!==0)for(Xe=c,Te=c.child;Te!==null;){for(De=Xe=Te;Xe!==null;){switch(Ee=Xe,Ke=Ee.child,Ee.tag){case 0:case 11:case 14:case 15:fu(4,Ee,Ee.return);break;case 1:ol(Ee,Ee.return);var Ze=Ee.stateNode;if(typeof Ze.componentWillUnmount=="function"){w=Ee,x=Ee.return;try{d=w,Ze.props=d.memoizedProps,Ze.state=d.memoizedState,Ze.componentWillUnmount()}catch(et){dn(w,x,et)}}break;case 5:ol(Ee,Ee.return);break;case 22:if(Ee.memoizedState!==null){Xk(De);continue}}Ke!==null?(Ke.return=Ee,Xe=Ke):Xk(De)}Te=Te.sibling}e:for(Te=null,De=c;;){if(De.tag===5){if(Te===null){Te=De;try{E=De.stateNode,he?(A=E.style,typeof A.setProperty=="function"?A.setProperty("display","none","important"):A.display="none"):(ee=De.stateNode,se=De.memoizedProps.style,G=se!=null&&se.hasOwnProperty("display")?se.display:null,ee.style.display=Qe("display",G))}catch(et){dn(c,c.return,et)}}}else if(De.tag===6){if(Te===null)try{De.stateNode.nodeValue=he?"":De.memoizedProps}catch(et){dn(c,c.return,et)}}else if((De.tag!==22&&De.tag!==23||De.memoizedState===null||De===c)&&De.child!==null){De.child.return=De,De=De.child;continue}if(De===c)break e;for(;De.sibling===null;){if(De.return===null||De.return===c)break e;Te===De&&(Te=null),De=De.return}Te===De&&(Te=null),De.sibling.return=De.return,De=De.sibling}}break;case 19:ds(d,c),Us(c),w&4&&Kk(c);break;case 21:break;default:ds(d,c),Us(c)}}function Us(c){var d=c.flags;if(d&2){try{e:{for(var x=c.return;x!==null;){if(Hk(x)){var w=x;break e}x=x.return}throw Error(n(160))}switch(w.tag){case 5:var E=w.stateNode;w.flags&32&&(Ve(E,""),w.flags&=-33);var A=Vk(c);Tx(c,A,E);break;case 3:case 4:var G=w.stateNode.containerInfo,ee=Vk(c);Ex(c,ee,G);break;default:throw Error(n(161))}}catch(se){dn(c,c.return,se)}c.flags&=-3}d&4096&&(c.flags&=-4097)}function WI(c,d,x){Xe=c,Gk(c)}function Gk(c,d,x){for(var w=(c.mode&1)!==0;Xe!==null;){var E=Xe,A=E.child;if(E.tag===22&&w){var G=E.memoizedState!==null||Bf;if(!G){var ee=E.alternate,se=ee!==null&&ee.memoizedState!==null||tr;ee=Bf;var he=tr;if(Bf=G,(tr=se)&&!he)for(Xe=E;Xe!==null;)G=Xe,se=G.child,G.tag===22&&G.memoizedState!==null?Qk(E):se!==null?(se.return=G,Xe=se):Qk(E);for(;A!==null;)Xe=A,Gk(A),A=A.sibling;Xe=E,Bf=ee,tr=he}Yk(c)}else(E.subtreeFlags&8772)!==0&&A!==null?(A.return=E,Xe=A):Yk(c)}}function Yk(c){for(;Xe!==null;){var d=Xe;if((d.flags&8772)!==0){var x=d.alternate;try{if((d.flags&8772)!==0)switch(d.tag){case 0:case 11:case 15:tr||Uf(5,d);break;case 1:var w=d.stateNode;if(d.flags&4&&!tr)if(x===null)w.componentDidMount();else{var E=d.elementType===d.type?x.memoizedProps:cs(d.type,x.memoizedProps);w.componentDidUpdate(E,x.memoizedState,w.__reactInternalSnapshotBeforeUpdate)}var A=d.updateQueue;A!==null&&Xj(d,A,w);break;case 3:var G=d.updateQueue;if(G!==null){if(x=null,d.child!==null)switch(d.child.tag){case 5:x=d.child.stateNode;break;case 1:x=d.child.stateNode}Xj(d,G,x)}break;case 5:var ee=d.stateNode;if(x===null&&d.flags&4){x=ee;var se=d.memoizedProps;switch(d.type){case"button":case"input":case"select":case"textarea":se.autoFocus&&x.focus();break;case"img":se.src&&(x.src=se.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(d.memoizedState===null){var he=d.alternate;if(he!==null){var Te=he.memoizedState;if(Te!==null){var De=Te.dehydrated;De!==null&&$t(De)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(n(163))}tr||d.flags&512&&Cx(d)}catch(Ee){dn(d,d.return,Ee)}}if(d===c){Xe=null;break}if(x=d.sibling,x!==null){x.return=d.return,Xe=x;break}Xe=d.return}}function Xk(c){for(;Xe!==null;){var d=Xe;if(d===c){Xe=null;break}var x=d.sibling;if(x!==null){x.return=d.return,Xe=x;break}Xe=d.return}}function Qk(c){for(;Xe!==null;){var d=Xe;try{switch(d.tag){case 0:case 11:case 15:var x=d.return;try{Uf(4,d)}catch(se){dn(d,x,se)}break;case 1:var w=d.stateNode;if(typeof w.componentDidMount=="function"){var E=d.return;try{w.componentDidMount()}catch(se){dn(d,E,se)}}var A=d.return;try{Cx(d)}catch(se){dn(d,A,se)}break;case 5:var G=d.return;try{Cx(d)}catch(se){dn(d,G,se)}}}catch(se){dn(d,d.return,se)}if(d===c){Xe=null;break}var ee=d.sibling;if(ee!==null){ee.return=d.return,Xe=ee;break}Xe=d.return}}var KI=Math.ceil,Hf=C.ReactCurrentDispatcher,Rx=C.ReactCurrentOwner,Qr=C.ReactCurrentBatchConfig,It=0,Un=null,xn=null,qn=0,$r=0,il=Qo(0),Dn=0,pu=null,Ki=0,Vf=0,Ax=0,hu=null,mr=null,Px=0,al=1/0,bo=null,Wf=!1,_x=null,ri=null,Kf=!1,si=null,qf=0,mu=0,Dx=null,Gf=-1,Yf=0;function cr(){return(It&6)!==0?Ht():Gf!==-1?Gf:Gf=Ht()}function oi(c){return(c.mode&1)===0?1:(It&2)!==0&&qn!==0?qn&-qn:RI.transition!==null?(Yf===0&&(Yf=Vo()),Yf):(c=Ft,c!==0||(c=window.event,c=c===void 0?16:is(c.type)),c)}function fs(c,d,x,w){if(50<mu)throw mu=0,Dx=null,Error(n(185));Fn(c,x,w),((It&2)===0||c!==Un)&&(c===Un&&((It&2)===0&&(Vf|=x),Dn===4&&ii(c,qn)),gr(c,w),x===1&&It===0&&(d.mode&1)===0&&(al=Ht()+500,kf&&Zo()))}function gr(c,d){var x=c.callbackNode;Ii(c,d);var w=Kr(c,c===Un?qn:0);if(w===0)x!==null&&La(x),c.callbackNode=null,c.callbackPriority=0;else if(d=w&-w,c.callbackPriority!==d){if(x!=null&&La(x),d===1)c.tag===0?TI(Zk.bind(null,c)):Oj(Zk.bind(null,c)),NI(function(){(It&6)===0&&Zo()}),x=null;else{switch(af(w)){case 1:x=ao;break;case 4:x=Oo;break;case 16:x=Ds;break;case 536870912:x=Fa;break;default:x=Ds}x=a1(x,Jk.bind(null,c))}c.callbackPriority=d,c.callbackNode=x}}function Jk(c,d){if(Gf=-1,Yf=0,(It&6)!==0)throw Error(n(327));var x=c.callbackNode;if(ll()&&c.callbackNode!==x)return null;var w=Kr(c,c===Un?qn:0);if(w===0)return null;if((w&30)!==0||(w&c.expiredLanes)!==0||d)d=Xf(c,w);else{d=w;var E=It;It|=2;var A=t1();(Un!==c||qn!==d)&&(bo=null,al=Ht()+500,Gi(c,d));do try{YI();break}catch(ee){e1(c,ee)}while(!0);Qg(),Hf.current=A,It=E,xn!==null?d=0:(Un=null,qn=0,d=Dn)}if(d!==0){if(d===2&&(E=Ho(c),E!==0&&(w=E,d=$x(c,E))),d===1)throw x=pu,Gi(c,0),ii(c,w),gr(c,Ht()),x;if(d===6)ii(c,w);else{if(E=c.current.alternate,(w&30)===0&&!qI(E)&&(d=Xf(c,w),d===2&&(A=Ho(c),A!==0&&(w=A,d=$x(c,A))),d===1))throw x=pu,Gi(c,0),ii(c,w),gr(c,Ht()),x;switch(c.finishedWork=E,c.finishedLanes=w,d){case 0:case 1:throw Error(n(345));case 2:Yi(c,mr,bo);break;case 3:if(ii(c,w),(w&130023424)===w&&(d=Px+500-Ht(),10<d)){if(Kr(c,0)!==0)break;if(E=c.suspendedLanes,(E&w)!==w){cr(),c.pingedLanes|=c.suspendedLanes&E;break}c.timeoutHandle=zg(Yi.bind(null,c,mr,bo),d);break}Yi(c,mr,bo);break;case 4:if(ii(c,w),(w&4194240)===w)break;for(d=c.eventTimes,E=-1;0<w;){var G=31-On(w);A=1<<G,G=d[G],G>E&&(E=G),w&=~A}if(w=E,w=Ht()-w,w=(120>w?120:480>w?480:1080>w?1080:1920>w?1920:3e3>w?3e3:4320>w?4320:1960*KI(w/1960))-w,10<w){c.timeoutHandle=zg(Yi.bind(null,c,mr,bo),w);break}Yi(c,mr,bo);break;case 5:Yi(c,mr,bo);break;default:throw Error(n(329))}}}return gr(c,Ht()),c.callbackNode===x?Jk.bind(null,c):null}function $x(c,d){var x=hu;return c.current.memoizedState.isDehydrated&&(Gi(c,d).flags|=256),c=Xf(c,d),c!==2&&(d=mr,mr=x,d!==null&&Ix(d)),c}function Ix(c){mr===null?mr=c:mr.push.apply(mr,c)}function qI(c){for(var d=c;;){if(d.flags&16384){var x=d.updateQueue;if(x!==null&&(x=x.stores,x!==null))for(var w=0;w<x.length;w++){var E=x[w],A=E.getSnapshot;E=E.value;try{if(!as(A(),E))return!1}catch{return!1}}}if(x=d.child,d.subtreeFlags&16384&&x!==null)x.return=d,d=x;else{if(d===c)break;for(;d.sibling===null;){if(d.return===null||d.return===c)return!0;d=d.return}d.sibling.return=d.return,d=d.sibling}}return!0}function ii(c,d){for(d&=~Ax,d&=~Vf,c.suspendedLanes|=d,c.pingedLanes&=~d,c=c.expirationTimes;0<d;){var x=31-On(d),w=1<<x;c[x]=-1,d&=~w}}function Zk(c){if((It&6)!==0)throw Error(n(327));ll();var d=Kr(c,0);if((d&1)===0)return gr(c,Ht()),null;var x=Xf(c,d);if(c.tag!==0&&x===2){var w=Ho(c);w!==0&&(d=w,x=$x(c,w))}if(x===1)throw x=pu,Gi(c,0),ii(c,d),gr(c,Ht()),x;if(x===6)throw Error(n(345));return c.finishedWork=c.current.alternate,c.finishedLanes=d,Yi(c,mr,bo),gr(c,Ht()),null}function Mx(c,d){var x=It;It|=1;try{return c(d)}finally{It=x,It===0&&(al=Ht()+500,kf&&Zo())}}function qi(c){si!==null&&si.tag===0&&(It&6)===0&&ll();var d=It;It|=1;var x=Qr.transition,w=Ft;try{if(Qr.transition=null,Ft=1,c)return c()}finally{Ft=w,Qr.transition=x,It=d,(It&6)===0&&Zo()}}function Lx(){$r=il.current,Qt(il)}function Gi(c,d){c.finishedWork=null,c.finishedLanes=0;var x=c.timeoutHandle;if(x!==-1&&(c.timeoutHandle=-1,kI(x)),xn!==null)for(x=xn.return;x!==null;){var w=x;switch(Kg(w),w.tag){case 1:w=w.type.childContextTypes,w!=null&&wf();break;case 3:rl(),Qt(fr),Qt(Jn),ox();break;case 5:rx(w);break;case 4:rl();break;case 13:Qt(ln);break;case 19:Qt(ln);break;case 10:Jg(w.type._context);break;case 22:case 23:Lx()}x=x.return}if(Un=c,xn=c=ai(c.current,null),qn=$r=d,Dn=0,pu=null,Ax=Vf=Ki=0,mr=hu=null,Hi!==null){for(d=0;d<Hi.length;d++)if(x=Hi[d],w=x.interleaved,w!==null){x.interleaved=null;var E=w.next,A=x.pending;if(A!==null){var G=A.next;A.next=E,w.next=G}x.pending=w}Hi=null}return c}function e1(c,d){do{var x=xn;try{if(Qg(),Df.current=Lf,$f){for(var w=cn.memoizedState;w!==null;){var E=w.queue;E!==null&&(E.pending=null),w=w.next}$f=!1}if(Wi=0,Bn=_n=cn=null,au=!1,lu=0,Rx.current=null,x===null||x.return===null){Dn=1,pu=d,xn=null;break}e:{var A=c,G=x.return,ee=x,se=d;if(d=qn,ee.flags|=32768,se!==null&&typeof se=="object"&&typeof se.then=="function"){var he=se,Te=ee,De=Te.tag;if((Te.mode&1)===0&&(De===0||De===11||De===15)){var Ee=Te.alternate;Ee?(Te.updateQueue=Ee.updateQueue,Te.memoizedState=Ee.memoizedState,Te.lanes=Ee.lanes):(Te.updateQueue=null,Te.memoizedState=null)}var Ke=Sk(G);if(Ke!==null){Ke.flags&=-257,Ck(Ke,G,ee,A,d),Ke.mode&1&&Nk(A,he,d),d=Ke,se=he;var Ze=d.updateQueue;if(Ze===null){var et=new Set;et.add(se),d.updateQueue=et}else Ze.add(se);break e}else{if((d&1)===0){Nk(A,he,d),Ox();break e}se=Error(n(426))}}else if(rn&&ee.mode&1){var pn=Sk(G);if(pn!==null){(pn.flags&65536)===0&&(pn.flags|=256),Ck(pn,G,ee,A,d),Yg(sl(se,ee));break e}}A=se=sl(se,ee),Dn!==4&&(Dn=2),hu===null?hu=[A]:hu.push(A),A=G;do{switch(A.tag){case 3:A.flags|=65536,d&=-d,A.lanes|=d;var de=jk(A,se,d);Yj(A,de);break e;case 1:ee=se;var ae=A.type,pe=A.stateNode;if((A.flags&128)===0&&(typeof ae.getDerivedStateFromError=="function"||pe!==null&&typeof pe.componentDidCatch=="function"&&(ri===null||!ri.has(pe)))){A.flags|=65536,d&=-d,A.lanes|=d;var Le=kk(A,ee,d);Yj(A,Le);break e}}A=A.return}while(A!==null)}r1(x)}catch(st){d=st,xn===x&&x!==null&&(xn=x=x.return);continue}break}while(!0)}function t1(){var c=Hf.current;return Hf.current=Lf,c===null?Lf:c}function Ox(){(Dn===0||Dn===3||Dn===2)&&(Dn=4),Un===null||(Ki&268435455)===0&&(Vf&268435455)===0||ii(Un,qn)}function Xf(c,d){var x=It;It|=2;var w=t1();(Un!==c||qn!==d)&&(bo=null,Gi(c,d));do try{GI();break}catch(E){e1(c,E)}while(!0);if(Qg(),It=x,Hf.current=w,xn!==null)throw Error(n(261));return Un=null,qn=0,Dn}function GI(){for(;xn!==null;)n1(xn)}function YI(){for(;xn!==null&&!Fc();)n1(xn)}function n1(c){var d=i1(c.alternate,c,$r);c.memoizedProps=c.pendingProps,d===null?r1(c):xn=d,Rx.current=null}function r1(c){var d=c;do{var x=d.alternate;if(c=d.return,(d.flags&32768)===0){if(x=BI(x,d,$r),x!==null){xn=x;return}}else{if(x=UI(x,d),x!==null){x.flags&=32767,xn=x;return}if(c!==null)c.flags|=32768,c.subtreeFlags=0,c.deletions=null;else{Dn=6,xn=null;return}}if(d=d.sibling,d!==null){xn=d;return}xn=d=c}while(d!==null);Dn===0&&(Dn=5)}function Yi(c,d,x){var w=Ft,E=Qr.transition;try{Qr.transition=null,Ft=1,XI(c,d,x,w)}finally{Qr.transition=E,Ft=w}return null}function XI(c,d,x,w){do ll();while(si!==null);if((It&6)!==0)throw Error(n(327));x=c.finishedWork;var E=c.finishedLanes;if(x===null)return null;if(c.finishedWork=null,c.finishedLanes=0,x===c.current)throw Error(n(177));c.callbackNode=null,c.callbackPriority=0;var A=x.lanes|x.childLanes;if(Rn(c,A),c===Un&&(xn=Un=null,qn=0),(x.subtreeFlags&2064)===0&&(x.flags&2064)===0||Kf||(Kf=!0,a1(Ds,function(){return ll(),null})),A=(x.flags&15990)!==0,(x.subtreeFlags&15990)!==0||A){A=Qr.transition,Qr.transition=null;var G=Ft;Ft=1;var ee=It;It|=4,Rx.current=null,VI(c,x),qk(x,c),gI(Og),zn=!!Lg,Og=Lg=null,c.current=x,WI(x),Oa(),It=ee,Ft=G,Qr.transition=A}else c.current=x;if(Kf&&(Kf=!1,si=c,qf=E),A=c.pendingLanes,A===0&&(ri=null),dr(x.stateNode),gr(c,Ht()),d!==null)for(w=c.onRecoverableError,x=0;x<d.length;x++)E=d[x],w(E.value,{componentStack:E.stack,digest:E.digest});if(Wf)throw Wf=!1,c=_x,_x=null,c;return(qf&1)!==0&&c.tag!==0&&ll(),A=c.pendingLanes,(A&1)!==0?c===Dx?mu++:(mu=0,Dx=c):mu=0,Zo(),null}function ll(){if(si!==null){var c=af(qf),d=Qr.transition,x=Ft;try{if(Qr.transition=null,Ft=16>c?16:c,si===null)var w=!1;else{if(c=si,si=null,qf=0,(It&6)!==0)throw Error(n(331));var E=It;for(It|=4,Xe=c.current;Xe!==null;){var A=Xe,G=A.child;if((Xe.flags&16)!==0){var ee=A.deletions;if(ee!==null){for(var se=0;se<ee.length;se++){var he=ee[se];for(Xe=he;Xe!==null;){var Te=Xe;switch(Te.tag){case 0:case 11:case 15:fu(8,Te,A)}var De=Te.child;if(De!==null)De.return=Te,Xe=De;else for(;Xe!==null;){Te=Xe;var Ee=Te.sibling,Ke=Te.return;if(Uk(Te),Te===he){Xe=null;break}if(Ee!==null){Ee.return=Ke,Xe=Ee;break}Xe=Ke}}}var Ze=A.alternate;if(Ze!==null){var et=Ze.child;if(et!==null){Ze.child=null;do{var pn=et.sibling;et.sibling=null,et=pn}while(et!==null)}}Xe=A}}if((A.subtreeFlags&2064)!==0&&G!==null)G.return=A,Xe=G;else e:for(;Xe!==null;){if(A=Xe,(A.flags&2048)!==0)switch(A.tag){case 0:case 11:case 15:fu(9,A,A.return)}var de=A.sibling;if(de!==null){de.return=A.return,Xe=de;break e}Xe=A.return}}var ae=c.current;for(Xe=ae;Xe!==null;){G=Xe;var pe=G.child;if((G.subtreeFlags&2064)!==0&&pe!==null)pe.return=G,Xe=pe;else e:for(G=ae;Xe!==null;){if(ee=Xe,(ee.flags&2048)!==0)try{switch(ee.tag){case 0:case 11:case 15:Uf(9,ee)}}catch(st){dn(ee,ee.return,st)}if(ee===G){Xe=null;break e}var Le=ee.sibling;if(Le!==null){Le.return=ee.return,Xe=Le;break e}Xe=ee.return}}if(It=E,Zo(),ar&&typeof ar.onPostCommitFiberRoot=="function")try{ar.onPostCommitFiberRoot(zo,c)}catch{}w=!0}return w}finally{Ft=x,Qr.transition=d}}return!1}function s1(c,d,x){d=sl(x,d),d=jk(c,d,1),c=ti(c,d,1),d=cr(),c!==null&&(Fn(c,1,d),gr(c,d))}function dn(c,d,x){if(c.tag===3)s1(c,c,x);else for(;d!==null;){if(d.tag===3){s1(d,c,x);break}else if(d.tag===1){var w=d.stateNode;if(typeof d.type.getDerivedStateFromError=="function"||typeof w.componentDidCatch=="function"&&(ri===null||!ri.has(w))){c=sl(x,c),c=kk(d,c,1),d=ti(d,c,1),c=cr(),d!==null&&(Fn(d,1,c),gr(d,c));break}}d=d.return}}function QI(c,d,x){var w=c.pingCache;w!==null&&w.delete(d),d=cr(),c.pingedLanes|=c.suspendedLanes&x,Un===c&&(qn&x)===x&&(Dn===4||Dn===3&&(qn&130023424)===qn&&500>Ht()-Px?Gi(c,0):Ax|=x),gr(c,d)}function o1(c,d){d===0&&((c.mode&1)===0?d=1:(d=Wn,Wn<<=1,(Wn&130023424)===0&&(Wn=4194304)));var x=cr();c=go(c,d),c!==null&&(Fn(c,d,x),gr(c,x))}function JI(c){var d=c.memoizedState,x=0;d!==null&&(x=d.retryLane),o1(c,x)}function ZI(c,d){var x=0;switch(c.tag){case 13:var w=c.stateNode,E=c.memoizedState;E!==null&&(x=E.retryLane);break;case 19:w=c.stateNode;break;default:throw Error(n(314))}w!==null&&w.delete(d),o1(c,x)}var i1;i1=function(c,d,x){if(c!==null)if(c.memoizedProps!==d.pendingProps||fr.current)hr=!0;else{if((c.lanes&x)===0&&(d.flags&128)===0)return hr=!1,zI(c,d,x);hr=(c.flags&131072)!==0}else hr=!1,rn&&(d.flags&1048576)!==0&&Fj(d,Sf,d.index);switch(d.lanes=0,d.tag){case 2:var w=d.type;zf(c,d),c=d.pendingProps;var E=Xa(d,Jn.current);nl(d,x),E=lx(null,d,w,c,E,x);var A=cx();return d.flags|=1,typeof E=="object"&&E!==null&&typeof E.render=="function"&&E.$$typeof===void 0?(d.tag=1,d.memoizedState=null,d.updateQueue=null,pr(w)?(A=!0,jf(d)):A=!1,d.memoizedState=E.state!==null&&E.state!==void 0?E.state:null,tx(d),E.updater=Of,d.stateNode=E,E._reactInternals=d,mx(d,w,c,x),d=bx(null,d,w,!0,A,x)):(d.tag=0,rn&&A&&Wg(d),lr(null,d,E,x),d=d.child),d;case 16:w=d.elementType;e:{switch(zf(c,d),c=d.pendingProps,E=w._init,w=E(w._payload),d.type=w,E=d.tag=tM(w),c=cs(w,c),E){case 0:d=yx(null,d,w,c,x);break e;case 1:d=_k(null,d,w,c,x);break e;case 11:d=Ek(null,d,w,c,x);break e;case 14:d=Tk(null,d,w,cs(w.type,c),x);break e}throw Error(n(306,w,""))}return d;case 0:return w=d.type,E=d.pendingProps,E=d.elementType===w?E:cs(w,E),yx(c,d,w,E,x);case 1:return w=d.type,E=d.pendingProps,E=d.elementType===w?E:cs(w,E),_k(c,d,w,E,x);case 3:e:{if(Dk(d),c===null)throw Error(n(387));w=d.pendingProps,A=d.memoizedState,E=A.element,Gj(c,d),Pf(d,w,null,x);var G=d.memoizedState;if(w=G.element,A.isDehydrated)if(A={element:w,isDehydrated:!1,cache:G.cache,pendingSuspenseBoundaries:G.pendingSuspenseBoundaries,transitions:G.transitions},d.updateQueue.baseState=A,d.memoizedState=A,d.flags&256){E=sl(Error(n(423)),d),d=$k(c,d,w,x,E);break e}else if(w!==E){E=sl(Error(n(424)),d),d=$k(c,d,w,x,E);break e}else for(Dr=Xo(d.stateNode.containerInfo.firstChild),_r=d,rn=!0,ls=null,x=Kj(d,null,w,x),d.child=x;x;)x.flags=x.flags&-3|4096,x=x.sibling;else{if(Za(),w===E){d=yo(c,d,x);break e}lr(c,d,w,x)}d=d.child}return d;case 5:return Qj(d),c===null&&Gg(d),w=d.type,E=d.pendingProps,A=c!==null?c.memoizedProps:null,G=E.children,Fg(w,E)?G=null:A!==null&&Fg(w,A)&&(d.flags|=32),Pk(c,d),lr(c,d,G,x),d.child;case 6:return c===null&&Gg(d),null;case 13:return Ik(c,d,x);case 4:return nx(d,d.stateNode.containerInfo),w=d.pendingProps,c===null?d.child=el(d,null,w,x):lr(c,d,w,x),d.child;case 11:return w=d.type,E=d.pendingProps,E=d.elementType===w?E:cs(w,E),Ek(c,d,w,E,x);case 7:return lr(c,d,d.pendingProps,x),d.child;case 8:return lr(c,d,d.pendingProps.children,x),d.child;case 12:return lr(c,d,d.pendingProps.children,x),d.child;case 10:e:{if(w=d.type._context,E=d.pendingProps,A=d.memoizedProps,G=E.value,qt(Tf,w._currentValue),w._currentValue=G,A!==null)if(as(A.value,G)){if(A.children===E.children&&!fr.current){d=yo(c,d,x);break e}}else for(A=d.child,A!==null&&(A.return=d);A!==null;){var ee=A.dependencies;if(ee!==null){G=A.child;for(var se=ee.firstContext;se!==null;){if(se.context===w){if(A.tag===1){se=xo(-1,x&-x),se.tag=2;var he=A.updateQueue;if(he!==null){he=he.shared;var Te=he.pending;Te===null?se.next=se:(se.next=Te.next,Te.next=se),he.pending=se}}A.lanes|=x,se=A.alternate,se!==null&&(se.lanes|=x),Zg(A.return,x,d),ee.lanes|=x;break}se=se.next}}else if(A.tag===10)G=A.type===d.type?null:A.child;else if(A.tag===18){if(G=A.return,G===null)throw Error(n(341));G.lanes|=x,ee=G.alternate,ee!==null&&(ee.lanes|=x),Zg(G,x,d),G=A.sibling}else G=A.child;if(G!==null)G.return=A;else for(G=A;G!==null;){if(G===d){G=null;break}if(A=G.sibling,A!==null){A.return=G.return,G=A;break}G=G.return}A=G}lr(c,d,E.children,x),d=d.child}return d;case 9:return E=d.type,w=d.pendingProps.children,nl(d,x),E=Yr(E),w=w(E),d.flags|=1,lr(c,d,w,x),d.child;case 14:return w=d.type,E=cs(w,d.pendingProps),E=cs(w.type,E),Tk(c,d,w,E,x);case 15:return Rk(c,d,d.type,d.pendingProps,x);case 17:return w=d.type,E=d.pendingProps,E=d.elementType===w?E:cs(w,E),zf(c,d),d.tag=1,pr(w)?(c=!0,jf(d)):c=!1,nl(d,x),vk(d,w,E),mx(d,w,E,x),bx(null,d,w,!0,c,x);case 19:return Lk(c,d,x);case 22:return Ak(c,d,x)}throw Error(n(156,d.tag))};function a1(c,d){return Ma(c,d)}function eM(c,d,x,w){this.tag=c,this.key=x,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=d,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=w,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Jr(c,d,x,w){return new eM(c,d,x,w)}function Fx(c){return c=c.prototype,!(!c||!c.isReactComponent)}function tM(c){if(typeof c=="function")return Fx(c)?1:0;if(c!=null){if(c=c.$$typeof,c===W)return 11;if(c===O)return 14}return 2}function ai(c,d){var x=c.alternate;return x===null?(x=Jr(c.tag,d,c.key,c.mode),x.elementType=c.elementType,x.type=c.type,x.stateNode=c.stateNode,x.alternate=c,c.alternate=x):(x.pendingProps=d,x.type=c.type,x.flags=0,x.subtreeFlags=0,x.deletions=null),x.flags=c.flags&14680064,x.childLanes=c.childLanes,x.lanes=c.lanes,x.child=c.child,x.memoizedProps=c.memoizedProps,x.memoizedState=c.memoizedState,x.updateQueue=c.updateQueue,d=c.dependencies,x.dependencies=d===null?null:{lanes:d.lanes,firstContext:d.firstContext},x.sibling=c.sibling,x.index=c.index,x.ref=c.ref,x}function Qf(c,d,x,w,E,A){var G=2;if(w=c,typeof c=="function")Fx(c)&&(G=1);else if(typeof c=="string")G=5;else e:switch(c){case R:return Xi(x.children,E,A,d);case I:G=8,E|=8;break;case _:return c=Jr(12,x,d,E|2),c.elementType=_,c.lanes=A,c;case V:return c=Jr(13,x,d,E),c.elementType=V,c.lanes=A,c;case $:return c=Jr(19,x,d,E),c.elementType=$,c.lanes=A,c;case K:return Jf(x,E,A,d);default:if(typeof c=="object"&&c!==null)switch(c.$$typeof){case F:G=10;break e;case D:G=9;break e;case W:G=11;break e;case O:G=14;break e;case U:G=16,w=null;break e}throw Error(n(130,c==null?c:typeof c,""))}return d=Jr(G,x,d,E),d.elementType=c,d.type=w,d.lanes=A,d}function Xi(c,d,x,w){return c=Jr(7,c,w,d),c.lanes=x,c}function Jf(c,d,x,w){return c=Jr(22,c,w,d),c.elementType=K,c.lanes=x,c.stateNode={isHidden:!1},c}function zx(c,d,x){return c=Jr(6,c,null,d),c.lanes=x,c}function Bx(c,d,x){return d=Jr(4,c.children!==null?c.children:[],c.key,d),d.lanes=x,d.stateNode={containerInfo:c.containerInfo,pendingChildren:null,implementation:c.implementation},d}function nM(c,d,x,w,E){this.tag=d,this.containerInfo=c,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=$s(0),this.expirationTimes=$s(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=$s(0),this.identifierPrefix=w,this.onRecoverableError=E,this.mutableSourceEagerHydrationData=null}function Ux(c,d,x,w,E,A,G,ee,se){return c=new nM(c,d,x,ee,se),d===1?(d=1,A===!0&&(d|=8)):d=0,A=Jr(3,null,null,d),c.current=A,A.stateNode=c,A.memoizedState={element:w,isDehydrated:x,cache:null,transitions:null,pendingSuspenseBoundaries:null},tx(A),c}function rM(c,d,x){var w=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:T,key:w==null?null:""+w,children:c,containerInfo:d,implementation:x}}function l1(c){if(!c)return Jo;c=c._reactInternals;e:{if(wt(c)!==c||c.tag!==1)throw Error(n(170));var d=c;do{switch(d.tag){case 3:d=d.stateNode.context;break e;case 1:if(pr(d.type)){d=d.stateNode.__reactInternalMemoizedMergedChildContext;break e}}d=d.return}while(d!==null);throw Error(n(171))}if(c.tag===1){var x=c.type;if(pr(x))return Mj(c,x,d)}return d}function c1(c,d,x,w,E,A,G,ee,se){return c=Ux(x,w,!0,c,E,A,G,ee,se),c.context=l1(null),x=c.current,w=cr(),E=oi(x),A=xo(w,E),A.callback=d??null,ti(x,A,E),c.current.lanes=E,Fn(c,E,w),gr(c,w),c}function Zf(c,d,x,w){var E=d.current,A=cr(),G=oi(E);return x=l1(x),d.context===null?d.context=x:d.pendingContext=x,d=xo(A,G),d.payload={element:c},w=w===void 0?null:w,w!==null&&(d.callback=w),c=ti(E,d,G),c!==null&&(fs(c,E,G,A),Af(c,E,G)),G}function ep(c){if(c=c.current,!c.child)return null;switch(c.child.tag){case 5:return c.child.stateNode;default:return c.child.stateNode}}function u1(c,d){if(c=c.memoizedState,c!==null&&c.dehydrated!==null){var x=c.retryLane;c.retryLane=x!==0&&x<d?x:d}}function Hx(c,d){u1(c,d),(c=c.alternate)&&u1(c,d)}function sM(){return null}var d1=typeof reportError=="function"?reportError:function(c){console.error(c)};function Vx(c){this._internalRoot=c}tp.prototype.render=Vx.prototype.render=function(c){var d=this._internalRoot;if(d===null)throw Error(n(409));Zf(c,d,null,null)},tp.prototype.unmount=Vx.prototype.unmount=function(){var c=this._internalRoot;if(c!==null){this._internalRoot=null;var d=c.containerInfo;qi(function(){Zf(null,c,null,null)}),d[fo]=null}};function tp(c){this._internalRoot=c}tp.prototype.unstable_scheduleHydration=function(c){if(c){var d=co();c={blockedOn:null,target:c,priority:d};for(var x=0;x<Os.length&&d!==0&&d<Os[x].priority;x++);Os.splice(x,0,c),x===0&&te(c)}};function Wx(c){return!(!c||c.nodeType!==1&&c.nodeType!==9&&c.nodeType!==11)}function np(c){return!(!c||c.nodeType!==1&&c.nodeType!==9&&c.nodeType!==11&&(c.nodeType!==8||c.nodeValue!==" react-mount-point-unstable "))}function f1(){}function oM(c,d,x,w,E){if(E){if(typeof w=="function"){var A=w;w=function(){var he=ep(G);A.call(he)}}var G=c1(d,w,c,0,null,!1,!1,"",f1);return c._reactRootContainer=G,c[fo]=G.current,Zc(c.nodeType===8?c.parentNode:c),qi(),G}for(;E=c.lastChild;)c.removeChild(E);if(typeof w=="function"){var ee=w;w=function(){var he=ep(se);ee.call(he)}}var se=Ux(c,0,!1,null,null,!1,!1,"",f1);return c._reactRootContainer=se,c[fo]=se.current,Zc(c.nodeType===8?c.parentNode:c),qi(function(){Zf(d,se,x,w)}),se}function rp(c,d,x,w,E){var A=x._reactRootContainer;if(A){var G=A;if(typeof E=="function"){var ee=E;E=function(){var se=ep(G);ee.call(se)}}Zf(d,G,c,E)}else G=oM(x,d,c,E,w);return ep(G)}Uc=function(c){switch(c.tag){case 3:var d=c.stateNode;if(d.current.memoizedState.isDehydrated){var x=lo(d.pendingLanes);x!==0&&(Is(d,x|1),gr(d,Ht()),(It&6)===0&&(al=Ht()+500,Zo()))}break;case 13:qi(function(){var w=go(c,1);if(w!==null){var E=cr();fs(w,c,1,E)}}),Hx(c,1)}},Mi=function(c){if(c.tag===13){var d=go(c,134217728);if(d!==null){var x=cr();fs(d,c,134217728,x)}Hx(c,134217728)}},Hc=function(c){if(c.tag===13){var d=oi(c),x=go(c,d);if(x!==null){var w=cr();fs(x,c,d,w)}Hx(c,d)}},co=function(){return Ft},Vc=function(c,d){var x=Ft;try{return Ft=c,d()}finally{Ft=x}},qe=function(c,d,x){switch(d){case"input":if(be(c,x),d=x.name,x.type==="radio"&&d!=null){for(x=c;x.parentNode;)x=x.parentNode;for(x=x.querySelectorAll("input[name="+JSON.stringify(""+d)+'][type="radio"]'),d=0;d<x.length;d++){var w=x[d];if(w!==c&&w.form===c.form){var E=vf(w);if(!E)throw Error(n(90));Se(w),be(w,E)}}}break;case"textarea":mt(c,x);break;case"select":d=x.value,d!=null&&Oe(c,!!x.multiple,d,!1)}},Dt=Mx,Bt=qi;var iM={usingClientEntryPoint:!1,Events:[nu,Ga,vf,vt,tt,Mx]},gu={findFiberByHostInstance:Fi,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},aM={bundleType:gu.bundleType,version:gu.version,rendererPackageName:gu.rendererPackageName,rendererConfig:gu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:C.ReactCurrentDispatcher,findHostInstanceByFiber:function(c){return c=nn(c),c===null?null:c.stateNode},findFiberByHostInstance:gu.findFiberByHostInstance||sM,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 sp=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!sp.isDisabled&&sp.supportsFiber)try{zo=sp.inject(aM),ar=sp}catch{}}return xr.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=iM,xr.createPortal=function(c,d){var x=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Wx(d))throw Error(n(200));return rM(c,d,null,x)},xr.createRoot=function(c,d){if(!Wx(c))throw Error(n(299));var x=!1,w="",E=d1;return d!=null&&(d.unstable_strictMode===!0&&(x=!0),d.identifierPrefix!==void 0&&(w=d.identifierPrefix),d.onRecoverableError!==void 0&&(E=d.onRecoverableError)),d=Ux(c,1,!1,null,null,x,!1,w,E),c[fo]=d.current,Zc(c.nodeType===8?c.parentNode:c),new Vx(d)},xr.findDOMNode=function(c){if(c==null)return null;if(c.nodeType===1)return c;var d=c._reactInternals;if(d===void 0)throw typeof c.render=="function"?Error(n(188)):(c=Object.keys(c).join(","),Error(n(268,c)));return c=nn(d),c=c===null?null:c.stateNode,c},xr.flushSync=function(c){return qi(c)},xr.hydrate=function(c,d,x){if(!np(d))throw Error(n(200));return rp(null,c,d,!0,x)},xr.hydrateRoot=function(c,d,x){if(!Wx(c))throw Error(n(405));var w=x!=null&&x.hydratedSources||null,E=!1,A="",G=d1;if(x!=null&&(x.unstable_strictMode===!0&&(E=!0),x.identifierPrefix!==void 0&&(A=x.identifierPrefix),x.onRecoverableError!==void 0&&(G=x.onRecoverableError)),d=c1(d,null,c,1,x??null,E,!1,A,G),c[fo]=d.current,Zc(c),w)for(c=0;c<w.length;c++)x=w[c],E=x._getVersion,E=E(x._source),d.mutableSourceEagerHydrationData==null?d.mutableSourceEagerHydrationData=[x,E]:d.mutableSourceEagerHydrationData.push(x,E);return new tp(d)},xr.render=function(c,d,x){if(!np(d))throw Error(n(200));return rp(null,c,d,!1,x)},xr.unmountComponentAtNode=function(c){if(!np(c))throw Error(n(40));return c._reactRootContainer?(qi(function(){rp(null,null,c,!1,function(){c._reactRootContainer=null,c[fo]=null})}),!0):!1},xr.unstable_batchedUpdates=Mx,xr.unstable_renderSubtreeIntoContainer=function(c,d,x,w){if(!np(x))throw Error(n(200));if(c==null||c._reactInternals===void 0)throw Error(n(38));return rp(c,d,x,!1,w)},xr.version="18.3.1-next-f1338f8080-20240426",xr}var v1;function KE(){if(v1)return Yx.exports;v1=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(),Yx.exports=xM(),Yx.exports}var w1;function yM(){if(w1)return op;w1=1;var e=KE();return op.createRoot=e.createRoot,op.hydrateRoot=e.hydrateRoot,op}var bM=yM();/**
|
|
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 j1="popstate";function k1(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function vM(e={}){function t(r,o){var f;let i=(f=o.state)==null?void 0:f.masked,{pathname:a,search:l,hash:u}=i||r.location;return vb("",{pathname:a,search:l,hash:u},o.state&&o.state.usr||null,o.state&&o.state.key||"default",i?{pathname:r.location.pathname,search:r.location.search,hash:r.location.hash}:void 0)}function n(r,o){return typeof o=="string"?o:od(o)}return jM(t,n,null,e)}function un(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function bs(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function wM(){return Math.random().toString(36).substring(2,10)}function N1(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 vb(e,t,n=null,r,o){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?gc(t):t,state:n,key:t&&t.key||r||wM(),unstable_mask:o}}function od({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 gc(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substring(n),e=e.substring(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substring(r),e=e.substring(0,r)),e&&(t.pathname=e)}return t}function jM(e,t,n,r={}){let{window:o=document.defaultView,v5Compat:i=!1}=r,a=o.history,l="POP",u=null,f=p();f==null&&(f=0,a.replaceState({...a.state,idx:f},""));function p(){return(a.state||{idx:null}).idx}function h(){l="POP";let b=p(),j=b==null?null:b-f;f=b,u&&u({action:l,location:v.location,delta:j})}function g(b,j){l="PUSH";let S=k1(b)?b:vb(v.location,b,j);f=p()+1;let N=N1(S,f),C=v.createHref(S.unstable_mask||S);try{a.pushState(N,"",C)}catch(P){if(P instanceof DOMException&&P.name==="DataCloneError")throw P;o.location.assign(C)}i&&u&&u({action:l,location:v.location,delta:1})}function y(b,j){l="REPLACE";let S=k1(b)?b:vb(v.location,b,j);f=p();let N=N1(S,f),C=v.createHref(S.unstable_mask||S);a.replaceState(N,"",C),i&&u&&u({action:l,location:v.location,delta:0})}function k(b){return kM(b)}let v={get action(){return l},get location(){return e(o,a)},listen(b){if(u)throw new Error("A history only accepts one active listener");return o.addEventListener(j1,h),u=b,()=>{o.removeEventListener(j1,h),u=null}},createHref(b){return t(o,b)},createURL:k,encodeLocation(b){let j=k(b);return{pathname:j.pathname,search:j.search,hash:j.hash}},push:g,replace:y,go(b){return a.go(b)}};return v}function kM(e,t=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),un(n,"No window.location.(origin|href) available to create URL");let r=typeof e=="string"?e:od(e);return r=r.replace(/ $/,"%20"),!t&&r.startsWith("//")&&(r=n+r),new URL(r,n)}function qE(e,t,n="/"){return NM(e,t,n,!1)}function NM(e,t,n,r){let o=typeof t=="string"?gc(t):t,i=Ro(o.pathname||"/",n);if(i==null)return null;let a=GE(e);SM(a);let l=null;for(let u=0;l==null&&u<a.length;++u){let f=MM(i);l=$M(a[u],f,r)}return l}function GE(e,t=[],n=[],r="",o=!1){let i=(a,l,u=o,f)=>{let p={relativePath:f===void 0?a.path||"":f,caseSensitive:a.caseSensitive===!0,childrenIndex:l,route:a};if(p.relativePath.startsWith("/")){if(!p.relativePath.startsWith(r)&&u)return;un(p.relativePath.startsWith(r),`Absolute route path "${p.relativePath}" nested under path "${r}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),p.relativePath=p.relativePath.slice(r.length)}let h=Js([r,p.relativePath]),g=n.concat(p);a.children&&a.children.length>0&&(un(a.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${h}".`),GE(a.children,t,g,h,u)),!(a.path==null&&!a.index)&&t.push({path:h,score:_M(h,a.index),routesMeta:g})};return e.forEach((a,l)=>{var u;if(a.path===""||!((u=a.path)!=null&&u.includes("?")))i(a,l);else for(let f of YE(a.path))i(a,l,!0,f)}),t}function YE(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,o=n.endsWith("?"),i=n.replace(/\?$/,"");if(r.length===0)return o?[i,""]:[i];let a=YE(r.join("/")),l=[];return l.push(...a.map(u=>u===""?i:[i,u].join("/"))),o&&l.push(...a),l.map(u=>e.startsWith("/")&&u===""?"/":u)}function SM(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:DM(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}var CM=/^:[\w-]+$/,EM=3,TM=2,RM=1,AM=10,PM=-2,S1=e=>e==="*";function _M(e,t){let n=e.split("/"),r=n.length;return n.some(S1)&&(r+=PM),t&&(r+=TM),n.filter(o=>!S1(o)).reduce((o,i)=>o+(CM.test(i)?EM:i===""?RM:AM),r)}function DM(e,t){return e.length===t.length&&e.slice(0,-1).every((r,o)=>r===t[o])?e[e.length-1]-t[t.length-1]:0}function $M(e,t,n=!1){let{routesMeta:r}=e,o={},i="/",a=[];for(let l=0;l<r.length;++l){let u=r[l],f=l===r.length-1,p=i==="/"?t:t.slice(i.length)||"/",h=ih({path:u.relativePath,caseSensitive:u.caseSensitive,end:f},p),g=u.route;if(!h&&f&&n&&!r[r.length-1].route.index&&(h=ih({path:u.relativePath,caseSensitive:u.caseSensitive,end:!1},p)),!h)return null;Object.assign(o,h.params),a.push({params:o,pathname:Js([i,h.pathname]),pathnameBase:zM(Js([i,h.pathnameBase])),route:g}),h.pathnameBase!=="/"&&(i=Js([i,h.pathnameBase]))}return a}function ih(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=IM(e.path,e.caseSensitive,e.end),o=t.match(n);if(!o)return null;let i=o[0],a=i.replace(/(.)\/+$/,"$1"),l=o.slice(1);return{params:r.reduce((f,{paramName:p,isOptional:h},g)=>{if(p==="*"){let k=l[g]||"";a=i.slice(0,i.length-k.length).replace(/(.)\/+$/,"$1")}const y=l[g];return h&&!y?f[p]=void 0:f[p]=(y||"").replace(/%2F/g,"/"),f},{}),pathname:i,pathnameBase:a,pattern:e}}function IM(e,t=!1,n=!0){bs(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 r=[],o="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(a,l,u,f,p)=>{if(r.push({paramName:l,isOptional:u!=null}),u){let h=p.charAt(f+a.length);return h&&h!=="/"?"/([^\\/]*)":"(?:/([^\\/]*))?"}return"/([^\\/]+)"}).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return e.endsWith("*")?(r.push({paramName:"*"}),o+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?o+="\\/*$":e!==""&&e!=="/"&&(o+="(?:(?=\\/|$))"),[new RegExp(o,t?void 0:"i"),r]}function MM(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return bs(!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 Ro(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}var LM=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function OM(e,t="/"){let{pathname:n,search:r="",hash:o=""}=typeof e=="string"?gc(e):e,i;return n?(n=n.replace(/\/\/+/g,"/"),n.startsWith("/")?i=C1(n.substring(1),"/"):i=C1(n,t)):i=t,{pathname:i,search:BM(r),hash:UM(o)}}function C1(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(o=>{o===".."?n.length>1&&n.pop():o!=="."&&n.push(o)}),n.length>1?n.join("/"):"/"}function Jx(e,t,n,r){return`Cannot include a '${e}' character in a manually specified \`to.${t}\` field [${JSON.stringify(r)}]. 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 FM(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function XE(e){let t=FM(e);return t.map((n,r)=>r===t.length-1?n.pathname:n.pathnameBase)}function Ov(e,t,n,r=!1){let o;typeof e=="string"?o=gc(e):(o={...e},un(!o.pathname||!o.pathname.includes("?"),Jx("?","pathname","search",o)),un(!o.pathname||!o.pathname.includes("#"),Jx("#","pathname","hash",o)),un(!o.search||!o.search.includes("#"),Jx("#","search","hash",o)));let i=e===""||o.pathname==="",a=i?"/":o.pathname,l;if(a==null)l=n;else{let h=t.length-1;if(!r&&a.startsWith("..")){let g=a.split("/");for(;g[0]==="..";)g.shift(),h-=1;o.pathname=g.join("/")}l=h>=0?t[h]:"/"}let u=OM(o,l),f=a&&a!=="/"&&a.endsWith("/"),p=(i||a===".")&&n.endsWith("/");return!u.pathname.endsWith("/")&&(f||p)&&(u.pathname+="/"),u}var Js=e=>e.join("/").replace(/\/\/+/g,"/"),zM=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),BM=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,UM=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,HM=class{constructor(e,t,n,r=!1){this.status=e,this.statusText=t||"",this.internal=r,n instanceof Error?(this.data=n.toString(),this.error=n):this.data=n}};function VM(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function WM(e){return e.map(t=>t.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var QE=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function JE(e,t){let n=e;if(typeof n!="string"||!LM.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,o=!1;if(QE)try{let i=new URL(window.location.href),a=n.startsWith("//")?new URL(i.protocol+n):new URL(n),l=Ro(a.pathname,t);a.origin===i.origin&&l!=null?n=l+a.search+a.hash:o=!0}catch{bs(!1,`<Link to="${n}"> contains an invalid URL which will probably break when clicked - please update to a valid URL path.`)}return{absoluteURL:r,isExternal:o,to:n}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var ZE=["POST","PUT","PATCH","DELETE"];new Set(ZE);var KM=["GET",...ZE];new Set(KM);var xc=m.createContext(null);xc.displayName="DataRouter";var em=m.createContext(null);em.displayName="DataRouterState";var qM=m.createContext(!1),e2=m.createContext({isTransitioning:!1});e2.displayName="ViewTransition";var GM=m.createContext(new Map);GM.displayName="Fetchers";var YM=m.createContext(null);YM.displayName="Await";var ts=m.createContext(null);ts.displayName="Navigation";var Dd=m.createContext(null);Dd.displayName="Location";var Es=m.createContext({outlet:null,matches:[],isDataRoute:!1});Es.displayName="Route";var Fv=m.createContext(null);Fv.displayName="RouteError";var t2="REACT_ROUTER_ERROR",XM="REDIRECT",QM="ROUTE_ERROR_RESPONSE";function JM(e){if(e.startsWith(`${t2}:${XM}:{`))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 ZM(e){if(e.startsWith(`${t2}:${QM}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new HM(t.status,t.statusText,t.data)}catch{}}function eL(e,{relative:t}={}){un($d(),"useHref() may be used only in the context of a <Router> component.");let{basename:n,navigator:r}=m.useContext(ts),{hash:o,pathname:i,search:a}=Id(e,{relative:t}),l=i;return n!=="/"&&(l=i==="/"?n:Js([n,i])),r.createHref({pathname:l,search:a,hash:o})}function $d(){return m.useContext(Dd)!=null}function sr(){return un($d(),"useLocation() may be used only in the context of a <Router> component."),m.useContext(Dd).location}var n2="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function r2(e){m.useContext(ts).static||m.useLayoutEffect(e)}function Wt(){let{isDataRoute:e}=m.useContext(Es);return e?mL():tL()}function tL(){un($d(),"useNavigate() may be used only in the context of a <Router> component.");let e=m.useContext(xc),{basename:t,navigator:n}=m.useContext(ts),{matches:r}=m.useContext(Es),{pathname:o}=sr(),i=JSON.stringify(XE(r)),a=m.useRef(!1);return r2(()=>{a.current=!0}),m.useCallback((u,f={})=>{if(bs(a.current,n2),!a.current)return;if(typeof u=="number"){n.go(u);return}let p=Ov(u,JSON.parse(i),o,f.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:Js([t,p.pathname])),(f.replace?n.replace:n.push)(p,f.state,f)},[t,n,i,o,e])}var nL=m.createContext(null);function rL(e){let t=m.useContext(Es).outlet;return m.useMemo(()=>t&&m.createElement(nL.Provider,{value:e},t),[t,e])}function Kt(){let{matches:e}=m.useContext(Es),t=e[e.length-1];return t?t.params:{}}function Id(e,{relative:t}={}){let{matches:n}=m.useContext(Es),{pathname:r}=sr(),o=JSON.stringify(XE(n));return m.useMemo(()=>Ov(e,JSON.parse(o),r,t==="path"),[e,o,r,t])}function sL(e,t){return s2(e,t)}function s2(e,t,n){var b;un($d(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:r}=m.useContext(ts),{matches:o}=m.useContext(Es),i=o[o.length-1],a=i?i.params:{},l=i?i.pathname:"/",u=i?i.pathnameBase:"/",f=i&&i.route;{let j=f&&f.path||"";i2(l,!f||j.endsWith("*")||j.endsWith("*?"),`You rendered descendant <Routes> (or called \`useRoutes()\`) at "${l}" (under <Route path="${j}">) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render.
|
|
50
|
-
|
|
51
|
-
Please change the parent <Route path="${j}"> to <Route path="${j==="/"?"*":`${j}/*`}">.`)}let p=sr(),h;if(t){let j=typeof t=="string"?gc(t):t;un(u==="/"||((b=j.pathname)==null?void 0:b.startsWith(u)),`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 "${u}" but pathname "${j.pathname}" was given in the \`location\` prop.`),h=j}else h=p;let g=h.pathname||"/",y=g;if(u!=="/"){let j=u.replace(/^\//,"").split("/");y="/"+g.replace(/^\//,"").split("/").slice(j.length).join("/")}let k=qE(e,{pathname:y});bs(f||k!=null,`No routes matched location "${h.pathname}${h.search}${h.hash}" `),bs(k==null||k[k.length-1].route.element!==void 0||k[k.length-1].route.Component!==void 0||k[k.length-1].route.lazy!==void 0,`Matched leaf route at location "${h.pathname}${h.search}${h.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 v=cL(k&&k.map(j=>Object.assign({},j,{params:Object.assign({},a,j.params),pathname:Js([u,r.encodeLocation?r.encodeLocation(j.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:j.pathname]),pathnameBase:j.pathnameBase==="/"?u:Js([u,r.encodeLocation?r.encodeLocation(j.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:j.pathnameBase])})),o,n);return t&&v?m.createElement(Dd.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",unstable_mask:void 0,...h},navigationType:"POP"}},v):v}function oL(){let e=hL(),t=VM(e)?`${e.status} ${e.statusText}`:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,r="rgba(200,200,200, 0.5)",o={padding:"0.5rem",backgroundColor:r},i={padding:"2px 4px",backgroundColor:r},a=null;return console.error("Error handled by React Router default ErrorBoundary:",e),a=m.createElement(m.Fragment,null,m.createElement("p",null,"💿 Hey developer 👋"),m.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",m.createElement("code",{style:i},"ErrorBoundary")," or"," ",m.createElement("code",{style:i},"errorElement")," prop on your route.")),m.createElement(m.Fragment,null,m.createElement("h2",null,"Unexpected Application Error!"),m.createElement("h3",{style:{fontStyle:"italic"}},t),n?m.createElement("pre",{style:o},n):null,a)}var iL=m.createElement(oL,null),o2=class extends m.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=ZM(e.digest);n&&(e=n)}let t=e!==void 0?m.createElement(Es.Provider,{value:this.props.routeContext},m.createElement(Fv.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?m.createElement(aL,{error:e},t):t}};o2.contextType=qM;var Zx=new WeakMap;function aL({children:e,error:t}){let{basename:n}=m.useContext(ts);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let r=JM(t.digest);if(r){let o=Zx.get(t);if(o)throw o;let i=JE(r.location,n);if(QE&&!Zx.get(t))if(i.isExternal||r.reloadDocument)window.location.href=i.absoluteURL||i.to;else{const a=Promise.resolve().then(()=>window.__reactRouterDataRouter.navigate(i.to,{replace:r.replace}));throw Zx.set(t,a),a}return m.createElement("meta",{httpEquiv:"refresh",content:`0;url=${i.absoluteURL||i.to}`})}}return e}function lL({routeContext:e,match:t,children:n}){let r=m.useContext(xc);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),m.createElement(Es.Provider,{value:e},n)}function cL(e,t=[],n){let r=n==null?void 0:n.state;if(e==null){if(!r)return null;if(r.errors)e=r.matches;else if(t.length===0&&!r.initialized&&r.matches.length>0)e=r.matches;else return null}let o=e,i=r==null?void 0:r.errors;if(i!=null){let p=o.findIndex(h=>h.route.id&&(i==null?void 0:i[h.route.id])!==void 0);un(p>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(i).join(",")}`),o=o.slice(0,Math.min(o.length,p+1))}let a=!1,l=-1;if(n&&r){a=r.renderFallback;for(let p=0;p<o.length;p++){let h=o[p];if((h.route.HydrateFallback||h.route.hydrateFallbackElement)&&(l=p),h.route.id){let{loaderData:g,errors:y}=r,k=h.route.loader&&!g.hasOwnProperty(h.route.id)&&(!y||y[h.route.id]===void 0);if(h.route.lazy||k){n.isStatic&&(a=!0),l>=0?o=o.slice(0,l+1):o=[o[0]];break}}}}let u=n==null?void 0:n.onError,f=r&&u?(p,h)=>{var g,y;u(p,{location:r.location,params:((y=(g=r.matches)==null?void 0:g[0])==null?void 0:y.params)??{},unstable_pattern:WM(r.matches),errorInfo:h})}:void 0;return o.reduceRight((p,h,g)=>{let y,k=!1,v=null,b=null;r&&(y=i&&h.route.id?i[h.route.id]:void 0,v=h.route.errorElement||iL,a&&(l<0&&g===0?(i2("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),k=!0,b=null):l===g&&(k=!0,b=h.route.hydrateFallbackElement||null)));let j=t.concat(o.slice(0,g+1)),S=()=>{let N;return y?N=v:k?N=b:h.route.Component?N=m.createElement(h.route.Component,null):h.route.element?N=h.route.element:N=p,m.createElement(lL,{match:h,routeContext:{outlet:p,matches:j,isDataRoute:r!=null},children:N})};return r&&(h.route.ErrorBoundary||h.route.errorElement||g===0)?m.createElement(o2,{location:r.location,revalidation:r.revalidation,component:v,error:y,children:S(),routeContext:{outlet:null,matches:j,isDataRoute:!0},onError:f}):S()},null)}function zv(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function uL(e){let t=m.useContext(xc);return un(t,zv(e)),t}function dL(e){let t=m.useContext(em);return un(t,zv(e)),t}function fL(e){let t=m.useContext(Es);return un(t,zv(e)),t}function Bv(e){let t=fL(e),n=t.matches[t.matches.length-1];return un(n.route.id,`${e} can only be used on routes that contain a unique "id"`),n.route.id}function pL(){return Bv("useRouteId")}function hL(){var r;let e=m.useContext(Fv),t=dL("useRouteError"),n=Bv("useRouteError");return e!==void 0?e:(r=t.errors)==null?void 0:r[n]}function mL(){let{router:e}=uL("useNavigate"),t=Bv("useNavigate"),n=m.useRef(!1);return r2(()=>{n.current=!0}),m.useCallback(async(o,i={})=>{bs(n.current,n2),n.current&&(typeof o=="number"?await e.navigate(o):await e.navigate(o,{fromRouteId:t,...i}))},[e,t])}var E1={};function i2(e,t,n){!t&&!E1[e]&&(E1[e]=!0,bs(!1,n))}m.memo(gL);function gL({routes:e,future:t,state:n,isStatic:r,onError:o}){return s2(e,void 0,{state:n,isStatic:r,onError:o})}function xL(e){return rL(e.context)}function Ye(e){un(!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 yL({basename:e="/",children:t=null,location:n,navigationType:r="POP",navigator:o,static:i=!1,unstable_useTransitions:a}){un(!$d(),"You cannot render a <Router> inside another <Router>. You should never have more than one in your app.");let l=e.replace(/^\/*/,"/"),u=m.useMemo(()=>({basename:l,navigator:o,static:i,unstable_useTransitions:a,future:{}}),[l,o,i,a]);typeof n=="string"&&(n=gc(n));let{pathname:f="/",search:p="",hash:h="",state:g=null,key:y="default",unstable_mask:k}=n,v=m.useMemo(()=>{let b=Ro(f,l);return b==null?null:{location:{pathname:b,search:p,hash:h,state:g,key:y,unstable_mask:k},navigationType:r}},[l,f,p,h,g,y,r,k]);return bs(v!=null,`<Router basename="${l}"> is not able to match the URL "${f}${p}${h}" because it does not start with the basename, so the <Router> won't render anything.`),v==null?null:m.createElement(ts.Provider,{value:u},m.createElement(Dd.Provider,{children:t,value:v}))}function bL({children:e,location:t}){return sL(wb(e),t)}function wb(e,t=[]){let n=[];return m.Children.forEach(e,(r,o)=>{if(!m.isValidElement(r))return;let i=[...t,o];if(r.type===m.Fragment){n.push.apply(n,wb(r.props.children,i));return}un(r.type===Ye,`[${typeof r.type=="string"?r.type:r.type.name}] is not a <Route> component. All component children of <Routes> must be a <Route> or <React.Fragment>`),un(!r.props.index||!r.props.children,"An index route cannot have child routes.");let a={id:r.props.id||i.join("-"),caseSensitive:r.props.caseSensitive,element:r.props.element,Component:r.props.Component,index:r.props.index,path:r.props.path,middleware:r.props.middleware,loader:r.props.loader,action:r.props.action,hydrateFallbackElement:r.props.hydrateFallbackElement,HydrateFallback:r.props.HydrateFallback,errorElement:r.props.errorElement,ErrorBoundary:r.props.ErrorBoundary,hasErrorBoundary:r.props.hasErrorBoundary===!0||r.props.ErrorBoundary!=null||r.props.errorElement!=null,shouldRevalidate:r.props.shouldRevalidate,handle:r.props.handle,lazy:r.props.lazy};r.props.children&&(a.children=wb(r.props.children,i)),n.push(a)}),n}var Ip="get",Mp="application/x-www-form-urlencoded";function tm(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function vL(e){return tm(e)&&e.tagName.toLowerCase()==="button"}function wL(e){return tm(e)&&e.tagName.toLowerCase()==="form"}function jL(e){return tm(e)&&e.tagName.toLowerCase()==="input"}function kL(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function NL(e,t){return e.button===0&&(!t||t==="_self")&&!kL(e)}function jb(e=""){return new URLSearchParams(typeof e=="string"||Array.isArray(e)||e instanceof URLSearchParams?e:Object.keys(e).reduce((t,n)=>{let r=e[n];return t.concat(Array.isArray(r)?r.map(o=>[n,o]):[[n,r]])},[]))}function SL(e,t){let n=jb(e);return t&&t.forEach((r,o)=>{n.has(o)||t.getAll(o).forEach(i=>{n.append(o,i)})}),n}var ip=null;function CL(){if(ip===null)try{new FormData(document.createElement("form"),0),ip=!1}catch{ip=!0}return ip}var EL=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function ey(e){return e!=null&&!EL.has(e)?(bs(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Mp}"`),null):e}function TL(e,t){let n,r,o,i,a;if(wL(e)){let l=e.getAttribute("action");r=l?Ro(l,t):null,n=e.getAttribute("method")||Ip,o=ey(e.getAttribute("enctype"))||Mp,i=new FormData(e)}else if(vL(e)||jL(e)&&(e.type==="submit"||e.type==="image")){let l=e.form;if(l==null)throw new Error('Cannot submit a <button> or <input type="submit"> without a <form>');let u=e.getAttribute("formaction")||l.getAttribute("action");if(r=u?Ro(u,t):null,n=e.getAttribute("formmethod")||l.getAttribute("method")||Ip,o=ey(e.getAttribute("formenctype"))||ey(l.getAttribute("enctype"))||Mp,i=new FormData(l,e),!CL()){let{name:f,type:p,value:h}=e;if(p==="image"){let g=f?`${f}.`:"";i.append(`${g}x`,"0"),i.append(`${g}y`,"0")}else f&&i.append(f,h)}}else{if(tm(e))throw new Error('Cannot submit element that is not <form>, <button>, or <input type="submit|image">');n=Ip,r=null,o=Mp,a=e}return i&&o==="text/plain"&&(a=i,i=void 0),{action:r,method:n.toLowerCase(),encType:o,formData:i,body:a}}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");function Uv(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function RL(e,t,n,r){let o=typeof e=="string"?new URL(e,typeof window>"u"?"server://singlefetch/":window.location.origin):e;return n?o.pathname.endsWith("/")?o.pathname=`${o.pathname}_.${r}`:o.pathname=`${o.pathname}.${r}`:o.pathname==="/"?o.pathname=`_root.${r}`:t&&Ro(o.pathname,t)==="/"?o.pathname=`${t.replace(/\/$/,"")}/_root.${r}`:o.pathname=`${o.pathname.replace(/\/$/,"")}.${r}`,o}async function AL(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 PL(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 _L(e,t,n){let r=await Promise.all(e.map(async o=>{let i=t.routes[o.route.id];if(i){let a=await AL(i,n);return a.links?a.links():[]}return[]}));return ML(r.flat(1).filter(PL).filter(o=>o.rel==="stylesheet"||o.rel==="preload").map(o=>o.rel==="stylesheet"?{...o,rel:"prefetch",as:"style"}:{...o,rel:"prefetch"}))}function T1(e,t,n,r,o,i){let a=(u,f)=>n[f]?u.route.id!==n[f].route.id:!0,l=(u,f)=>{var p;return n[f].pathname!==u.pathname||((p=n[f].route.path)==null?void 0:p.endsWith("*"))&&n[f].params["*"]!==u.params["*"]};return i==="assets"?t.filter((u,f)=>a(u,f)||l(u,f)):i==="data"?t.filter((u,f)=>{var h;let p=r.routes[u.route.id];if(!p||!p.hasLoader)return!1;if(a(u,f)||l(u,f))return!0;if(u.route.shouldRevalidate){let g=u.route.shouldRevalidate({currentUrl:new URL(o.pathname+o.search+o.hash,window.origin),currentParams:((h=n[0])==null?void 0:h.params)||{},nextUrl:new URL(e,window.origin),nextParams:u.params,defaultShouldRevalidate:!0});if(typeof g=="boolean")return g}return!0}):[]}function DL(e,t,{includeHydrateFallback:n}={}){return $L(e.map(r=>{let o=t.routes[r.route.id];if(!o)return[];let i=[o.module];return o.clientActionModule&&(i=i.concat(o.clientActionModule)),o.clientLoaderModule&&(i=i.concat(o.clientLoaderModule)),n&&o.hydrateFallbackModule&&(i=i.concat(o.hydrateFallbackModule)),o.imports&&(i=i.concat(o.imports)),i}).flat(1))}function $L(e){return[...new Set(e)]}function IL(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function ML(e,t){let n=new Set;return new Set(t),e.reduce((r,o)=>{let i=JSON.stringify(IL(o));return n.has(i)||(n.add(i),r.push({key:i,link:o})),r},[])}function a2(){let e=m.useContext(xc);return Uv(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function LL(){let e=m.useContext(em);return Uv(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Hv=m.createContext(void 0);Hv.displayName="FrameworkContext";function l2(){let e=m.useContext(Hv);return Uv(e,"You must render this element inside a <HydratedRouter> element"),e}function OL(e,t){let n=m.useContext(Hv),[r,o]=m.useState(!1),[i,a]=m.useState(!1),{onFocus:l,onBlur:u,onMouseEnter:f,onMouseLeave:p,onTouchStart:h}=t,g=m.useRef(null);m.useEffect(()=>{if(e==="render"&&a(!0),e==="viewport"){let v=j=>{j.forEach(S=>{a(S.isIntersecting)})},b=new IntersectionObserver(v,{threshold:.5});return g.current&&b.observe(g.current),()=>{b.disconnect()}}},[e]),m.useEffect(()=>{if(r){let v=setTimeout(()=>{a(!0)},100);return()=>{clearTimeout(v)}}},[r]);let y=()=>{o(!0)},k=()=>{o(!1),a(!1)};return n?e!=="intent"?[i,g,{}]:[i,g,{onFocus:yu(l,y),onBlur:yu(u,k),onMouseEnter:yu(f,y),onMouseLeave:yu(p,k),onTouchStart:yu(h,y)}]:[!1,g,{}]}function yu(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function FL({page:e,...t}){let{router:n}=a2(),r=m.useMemo(()=>qE(n.routes,e,n.basename),[n.routes,e,n.basename]);return r?m.createElement(BL,{page:e,matches:r,...t}):null}function zL(e){let{manifest:t,routeModules:n}=l2(),[r,o]=m.useState([]);return m.useEffect(()=>{let i=!1;return _L(e,t,n).then(a=>{i||o(a)}),()=>{i=!0}},[e,t,n]),r}function BL({page:e,matches:t,...n}){let r=sr(),{future:o,manifest:i,routeModules:a}=l2(),{basename:l}=a2(),{loaderData:u,matches:f}=LL(),p=m.useMemo(()=>T1(e,t,f,i,r,"data"),[e,t,f,i,r]),h=m.useMemo(()=>T1(e,t,f,i,r,"assets"),[e,t,f,i,r]),g=m.useMemo(()=>{if(e===r.pathname+r.search+r.hash)return[];let v=new Set,b=!1;if(t.forEach(S=>{var C;let N=i.routes[S.route.id];!N||!N.hasLoader||(!p.some(P=>P.route.id===S.route.id)&&S.route.id in u&&((C=a[S.route.id])!=null&&C.shouldRevalidate)||N.hasClientLoader?b=!0:v.add(S.route.id))}),v.size===0)return[];let j=RL(e,l,o.unstable_trailingSlashAwareDataRequests,"data");return b&&v.size>0&&j.searchParams.set("_routes",t.filter(S=>v.has(S.route.id)).map(S=>S.route.id).join(",")),[j.pathname+j.search]},[l,o.unstable_trailingSlashAwareDataRequests,u,r,i,p,t,e,a]),y=m.useMemo(()=>DL(h,i),[h,i]),k=zL(h);return m.createElement(m.Fragment,null,g.map(v=>m.createElement("link",{key:v,rel:"prefetch",as:"fetch",href:v,...n})),y.map(v=>m.createElement("link",{key:v,rel:"modulepreload",href:v,...n})),k.map(({key:v,link:b})=>m.createElement("link",{key:v,nonce:n.nonce,...b,crossOrigin:b.crossOrigin??n.crossOrigin})))}function UL(...e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}}var HL=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{HL&&(window.__reactRouterVersion="7.13.1")}catch{}function VL({basename:e,children:t,unstable_useTransitions:n,window:r}){let o=m.useRef();o.current==null&&(o.current=vM({window:r,v5Compat:!0}));let i=o.current,[a,l]=m.useState({action:i.action,location:i.location}),u=m.useCallback(f=>{n===!1?l(f):m.startTransition(()=>l(f))},[n]);return m.useLayoutEffect(()=>i.listen(u),[i,u]),m.createElement(yL,{basename:e,children:t,location:a.location,navigationType:a.action,navigator:i,unstable_useTransitions:n})}var c2=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,$e=m.forwardRef(function({onClick:t,discover:n="render",prefetch:r="none",relative:o,reloadDocument:i,replace:a,unstable_mask:l,state:u,target:f,to:p,preventScrollReset:h,viewTransition:g,unstable_defaultShouldRevalidate:y,...k},v){let{basename:b,navigator:j,unstable_useTransitions:S}=m.useContext(ts),N=typeof p=="string"&&c2.test(p),C=JE(p,b);p=C.to;let P=eL(p,{relative:o}),T=sr(),R=null;if(l){let O=Ov(l,[],T.unstable_mask?T.unstable_mask.pathname:"/",!0);b!=="/"&&(O.pathname=O.pathname==="/"?b:Js([b,O.pathname])),R=j.createHref(O)}let[I,_,F]=OL(r,k),D=GL(p,{replace:a,unstable_mask:l,state:u,target:f,preventScrollReset:h,relative:o,viewTransition:g,unstable_defaultShouldRevalidate:y,unstable_useTransitions:S});function W(O){t&&t(O),O.defaultPrevented||D(O)}let V=!(C.isExternal||i),$=m.createElement("a",{...k,...F,href:(V?R:void 0)||C.absoluteURL||P,onClick:V?W:t,ref:UL(v,_),target:f,"data-discover":!N&&n==="render"?"true":void 0});return I&&!N?m.createElement(m.Fragment,null,$,m.createElement(FL,{page:P})):$});$e.displayName="Link";var WL=m.forwardRef(function({"aria-current":t="page",caseSensitive:n=!1,className:r="",end:o=!1,style:i,to:a,viewTransition:l,children:u,...f},p){let h=Id(a,{relative:f.relative}),g=sr(),y=m.useContext(em),{navigator:k,basename:v}=m.useContext(ts),b=y!=null&&ZL(h)&&l===!0,j=k.encodeLocation?k.encodeLocation(h).pathname:h.pathname,S=g.pathname,N=y&&y.navigation&&y.navigation.location?y.navigation.location.pathname:null;n||(S=S.toLowerCase(),N=N?N.toLowerCase():null,j=j.toLowerCase()),N&&v&&(N=Ro(N,v)||N);const C=j!=="/"&&j.endsWith("/")?j.length-1:j.length;let P=S===j||!o&&S.startsWith(j)&&S.charAt(C)==="/",T=N!=null&&(N===j||!o&&N.startsWith(j)&&N.charAt(j.length)==="/"),R={isActive:P,isPending:T,isTransitioning:b},I=P?t:void 0,_;typeof r=="function"?_=r(R):_=[r,P?"active":null,T?"pending":null,b?"transitioning":null].filter(Boolean).join(" ");let F=typeof i=="function"?i(R):i;return m.createElement($e,{...f,"aria-current":I,className:_,ref:p,style:F,to:a,viewTransition:l},typeof u=="function"?u(R):u)});WL.displayName="NavLink";var KL=m.forwardRef(({discover:e="render",fetcherKey:t,navigate:n,reloadDocument:r,replace:o,state:i,method:a=Ip,action:l,onSubmit:u,relative:f,preventScrollReset:p,viewTransition:h,unstable_defaultShouldRevalidate:g,...y},k)=>{let{unstable_useTransitions:v}=m.useContext(ts),b=QL(),j=JL(l,{relative:f}),S=a.toLowerCase()==="get"?"get":"post",N=typeof l=="string"&&c2.test(l),C=P=>{if(u&&u(P),P.defaultPrevented)return;P.preventDefault();let T=P.nativeEvent.submitter,R=(T==null?void 0:T.getAttribute("formmethod"))||a,I=()=>b(T||P.currentTarget,{fetcherKey:t,method:R,navigate:n,replace:o,state:i,relative:f,preventScrollReset:p,viewTransition:h,unstable_defaultShouldRevalidate:g});v&&n!==!1?m.startTransition(()=>I()):I()};return m.createElement("form",{ref:k,method:S,action:j,onSubmit:r?u:C,...y,"data-discover":!N&&e==="render"?"true":void 0})});KL.displayName="Form";function qL(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function u2(e){let t=m.useContext(xc);return un(t,qL(e)),t}function GL(e,{target:t,replace:n,unstable_mask:r,state:o,preventScrollReset:i,relative:a,viewTransition:l,unstable_defaultShouldRevalidate:u,unstable_useTransitions:f}={}){let p=Wt(),h=sr(),g=Id(e,{relative:a});return m.useCallback(y=>{if(NL(y,t)){y.preventDefault();let k=n!==void 0?n:od(h)===od(g),v=()=>p(e,{replace:k,unstable_mask:r,state:o,preventScrollReset:i,relative:a,viewTransition:l,unstable_defaultShouldRevalidate:u});f?m.startTransition(()=>v()):v()}},[h,p,g,n,r,o,t,e,i,a,l,u,f])}function Ts(e){bs(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=m.useRef(jb(e)),n=m.useRef(!1),r=sr(),o=m.useMemo(()=>SL(r.search,n.current?null:t.current),[r.search]),i=Wt(),a=m.useCallback((l,u)=>{const f=jb(typeof l=="function"?l(new URLSearchParams(o)):l);n.current=!0,i("?"+f,u)},[i,o]);return[o,a]}var YL=0,XL=()=>`__${String(++YL)}__`;function QL(){let{router:e}=u2("useSubmit"),{basename:t}=m.useContext(ts),n=pL(),r=e.fetch,o=e.navigate;return m.useCallback(async(i,a={})=>{let{action:l,method:u,encType:f,formData:p,body:h}=TL(i,t);if(a.navigate===!1){let g=a.fetcherKey||XL();await r(g,n,a.action||l,{unstable_defaultShouldRevalidate:a.unstable_defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:p,body:h,formMethod:a.method||u,formEncType:a.encType||f,flushSync:a.flushSync})}else await o(a.action||l,{unstable_defaultShouldRevalidate:a.unstable_defaultShouldRevalidate,preventScrollReset:a.preventScrollReset,formData:p,body:h,formMethod:a.method||u,formEncType:a.encType||f,replace:a.replace,state:a.state,fromRouteId:n,flushSync:a.flushSync,viewTransition:a.viewTransition})},[r,o,t,n])}function JL(e,{relative:t}={}){let{basename:n}=m.useContext(ts),r=m.useContext(Es);un(r,"useFormAction must be used inside a RouteContext");let[o]=r.matches.slice(-1),i={...Id(e||".",{relative:t})},a=sr();if(e==null){i.search=a.search;let l=new URLSearchParams(i.search),u=l.getAll("index");if(u.some(p=>p==="")){l.delete("index"),u.filter(h=>h).forEach(h=>l.append("index",h));let p=l.toString();i.search=p?`?${p}`:""}}return(!e||e===".")&&o.route.index&&(i.search=i.search?i.search.replace(/^\?/,"?index&"):"?index"),n!=="/"&&(i.pathname=i.pathname==="/"?n:Js([n,i.pathname])),od(i)}function ZL(e,{relative:t}={}){let n=m.useContext(e2);un(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=u2("useViewTransitionState"),o=Id(e,{relative:t});if(!n.isTransitioning)return!1;let i=Ro(n.currentLocation.pathname,r)||n.currentLocation.pathname,a=Ro(n.nextLocation.pathname,r)||n.nextLocation.pathname;return ih(o.pathname,a)!=null||ih(o.pathname,i)!=null}var Ys=KE();const e4=Pd(Ys);/**
|
|
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 t4=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),d2=(...e)=>e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.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 n4={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 r4=m.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:o="",children:i,iconNode:a,...l},u)=>m.createElement("svg",{ref:u,...n4,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:d2("lucide",o),...l},[...a.map(([f,p])=>m.createElement(f,p)),...Array.isArray(i)?i:[i]]));/**
|
|
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 Pe=(e,t)=>{const n=m.forwardRef(({className:r,...o},i)=>m.createElement(r4,{ref:i,iconNode:t,className:d2(`lucide-${t4(e)}`,r),...o}));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 nm=Pe("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 ah=Pe("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 rm=Pe("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 lh=Pe("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 sm=Pe("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 om=Pe("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 ch=Pe("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 s4=Pe("Ban",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m4.9 4.9 14.2 14.2",key:"1m5liu"}]]);/**
|
|
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 o4=Pe("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"}]]);/**
|
|
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 f2=Pe("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"}]]);/**
|
|
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 Vv=Pe("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"}]]);/**
|
|
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 i4=Pe("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"}]]);/**
|
|
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 p2=Pe("CalendarClock",[["path",{d:"M21 7.5V6a2 2 0 0 0-2-2H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h3.5",key:"1osxxc"}],["path",{d:"M16 2v4",key:"4m81vk"}],["path",{d:"M8 2v4",key:"1cmpym"}],["path",{d:"M3 10h5",key:"r794hk"}],["path",{d:"M17.5 17.5 16 16.3V14",key:"akvzfd"}],["circle",{cx:"16",cy:"16",r:"6",key:"qoo3c4"}]]);/**
|
|
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 Sr=Pe("Check",[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]);/**
|
|
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 nr=Pe("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
|
|
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 a4=Pe("ChevronLeft",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);/**
|
|
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 Wv=Pe("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/**
|
|
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 h2=Pe("ChevronUp",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]);/**
|
|
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 uh=Pe("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"}]]);/**
|
|
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 im=Pe("CircleCheck",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/**
|
|
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 kb=Pe("CircleDot",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}]]);/**
|
|
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 m2=Pe("CircleHelp",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3",key:"1u773s"}],["path",{d:"M12 17h.01",key:"p32p05"}]]);/**
|
|
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 l4=Pe("CircleStop",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["rect",{x:"9",y:"9",width:"6",height:"6",rx:"1",key:"1ssd4o"}]]);/**
|
|
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 c4=Pe("Circle",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]);/**
|
|
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 u4=Pe("Clock3",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16.5 12",key:"1aq6pp"}]]);/**
|
|
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 d4=Pe("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/**
|
|
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 f4=Pe("Cloud",[["path",{d:"M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z",key:"p7xjir"}]]);/**
|
|
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 p4=Pe("CodeXml",[["path",{d:"m18 16 4-4-4-4",key:"1inbqp"}],["path",{d:"m6 8-4 4 4 4",key:"15zrgr"}],["path",{d:"m14.5 4-5 16",key:"e7oirm"}]]);/**
|
|
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 am=Pe("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"}]]);/**
|
|
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 h4=Pe("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"}]]);/**
|
|
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 g2=Pe("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"}]]);/**
|
|
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 dh=Pe("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"}]]);/**
|
|
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 m4=Pe("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"}]]);/**
|
|
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 g4=Pe("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"}]]);/**
|
|
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 yc=Pe("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"}]]);/**
|
|
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 R1=Pe("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"}]]);/**
|
|
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 x4=Pe("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"}]]);/**
|
|
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 y4=Pe("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"}]]);/**
|
|
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 x2=Pe("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"}]]);/**
|
|
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 b4=Pe("FilterX",[["path",{d:"M13.013 3H2l8 9.46V19l4 2v-8.54l.9-1.055",key:"1fi1da"}],["path",{d:"m22 3-5 5",key:"12jva0"}],["path",{d:"m17 3 5 5",key:"k36vhe"}]]);/**
|
|
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 v4=Pe("Flag",[["path",{d:"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z",key:"i9b6wo"}],["line",{x1:"4",x2:"4",y1:"22",y2:"15",key:"1cm3nv"}]]);/**
|
|
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 Kv=Pe("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"}]]);/**
|
|
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 w4=Pe("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"}]]);/**
|
|
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 qv=Pe("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"}]]);/**
|
|
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 j4=Pe("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"}]]);/**
|
|
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 bc=Pe("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"}]]);/**
|
|
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 k4=Pe("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"}]]);/**
|
|
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 N4=Pe("Hash",[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]]);/**
|
|
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 y2=Pe("Inbox",[["polyline",{points:"22 12 16 12 14 15 10 15 8 12 2 12",key:"o97t9d"}],["path",{d:"M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z",key:"oot6mr"}]]);/**
|
|
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 Gv=Pe("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/**
|
|
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 Nb=Pe("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"}]]);/**
|
|
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 S4=Pe("LayoutGrid",[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]]);/**
|
|
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 b2=Pe("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"}]]);/**
|
|
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 C4=Pe("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"}]]);/**
|
|
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 E4=Pe("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"}]]);/**
|
|
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 T4=Pe("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"}]]);/**
|
|
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 R4=Pe("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"}]]);/**
|
|
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 A4=Pe("ListTree",[["path",{d:"M21 12h-8",key:"1bmf0i"}],["path",{d:"M21 6H8",key:"1pqkrb"}],["path",{d:"M21 18h-8",key:"1tm79t"}],["path",{d:"M3 6v4c0 1.1.9 2 2 2h3",key:"1ywdgy"}],["path",{d:"M3 10v6c0 1.1.9 2 2 2h3",key:"2wc746"}]]);/**
|
|
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 Yv=Pe("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/**
|
|
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 P4=Pe("LockOpen",[["rect",{width:"18",height:"11",x:"3",y:"11",rx:"2",ry:"2",key:"1w4ew1"}],["path",{d:"M7 11V7a5 5 0 0 1 9.9-1",key:"1mm8w8"}]]);/**
|
|
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 v2=Pe("Maximize2",[["polyline",{points:"15 3 21 3 21 9",key:"mznyad"}],["polyline",{points:"9 21 3 21 3 15",key:"1avn1i"}],["line",{x1:"21",x2:"14",y1:"3",y2:"10",key:"ota7mn"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);/**
|
|
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 _4=Pe("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"}]]);/**
|
|
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 A1=Pe("Minimize2",[["polyline",{points:"4 14 10 14 10 20",key:"11kfnr"}],["polyline",{points:"20 10 14 10 14 4",key:"rlmsce"}],["line",{x1:"14",x2:"21",y1:"10",y2:"3",key:"o5lafz"}],["line",{x1:"3",x2:"10",y1:"21",y2:"14",key:"1atl0r"}]]);/**
|
|
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 Xv=Pe("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"}]]);/**
|
|
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 D4=Pe("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"}]]);/**
|
|
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 ty=Pe("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"}]]);/**
|
|
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 w2=Pe("Paperclip",[["path",{d:"m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48",key:"1u3ebp"}]]);/**
|
|
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 vc=Pe("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"}]]);/**
|
|
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 $4=Pe("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/**
|
|
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 Pt=Pe("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/**
|
|
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 j2=Pe("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"}]]);/**
|
|
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 I4=Pe("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"}]]);/**
|
|
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 M4=Pe("Reply",[["polyline",{points:"9 17 4 12 9 7",key:"hvgpf2"}],["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}]]);/**
|
|
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 vs=Pe("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"}]]);/**
|
|
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 L4=Pe("RotateCw",[["path",{d:"M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8",key:"1p45f6"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}]]);/**
|
|
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 lm=Pe("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"}]]);/**
|
|
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 O4=Pe("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"}]]);/**
|
|
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 Ei=Pe("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/**
|
|
462
|
-
* @license lucide-react v0.460.0 - ISC
|
|
463
|
-
*
|
|
464
|
-
* This source code is licensed under the ISC license.
|
|
465
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
466
|
-
*/const F4=Pe("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"}]]);/**
|
|
467
|
-
* @license lucide-react v0.460.0 - ISC
|
|
468
|
-
*
|
|
469
|
-
* This source code is licensed under the ISC license.
|
|
470
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
471
|
-
*/const z4=Pe("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"}]]);/**
|
|
472
|
-
* @license lucide-react v0.460.0 - ISC
|
|
473
|
-
*
|
|
474
|
-
* This source code is licensed under the ISC license.
|
|
475
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
476
|
-
*/const B4=Pe("Settings2",[["path",{d:"M20 7h-9",key:"3s1dr2"}],["path",{d:"M14 17H5",key:"gfn3mx"}],["circle",{cx:"17",cy:"17",r:"3",key:"18b49y"}],["circle",{cx:"7",cy:"7",r:"3",key:"dfmy0x"}]]);/**
|
|
477
|
-
* @license lucide-react v0.460.0 - ISC
|
|
478
|
-
*
|
|
479
|
-
* This source code is licensed under the ISC license.
|
|
480
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
481
|
-
*/const U4=Pe("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"}]]);/**
|
|
482
|
-
* @license lucide-react v0.460.0 - ISC
|
|
483
|
-
*
|
|
484
|
-
* This source code is licensed under the ISC license.
|
|
485
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
486
|
-
*/const H4=Pe("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"}]]);/**
|
|
487
|
-
* @license lucide-react v0.460.0 - ISC
|
|
488
|
-
*
|
|
489
|
-
* This source code is licensed under the ISC license.
|
|
490
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
491
|
-
*/const ys=Pe("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"}]]);/**
|
|
492
|
-
* @license lucide-react v0.460.0 - ISC
|
|
493
|
-
*
|
|
494
|
-
* This source code is licensed under the ISC license.
|
|
495
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
496
|
-
*/const ny=Pe("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"}]]);/**
|
|
497
|
-
* @license lucide-react v0.460.0 - ISC
|
|
498
|
-
*
|
|
499
|
-
* This source code is licensed under the ISC license.
|
|
500
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
501
|
-
*/const P1=Pe("SquareTerminal",[["path",{d:"m7 11 2-2-2-2",key:"1lz0vl"}],["path",{d:"M11 13h4",key:"1p7l4v"}],["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}]]);/**
|
|
502
|
-
* @license lucide-react v0.460.0 - ISC
|
|
503
|
-
*
|
|
504
|
-
* This source code is licensed under the ISC license.
|
|
505
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
506
|
-
*/const Qv=Pe("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);/**
|
|
507
|
-
* @license lucide-react v0.460.0 - ISC
|
|
508
|
-
*
|
|
509
|
-
* This source code is licensed under the ISC license.
|
|
510
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
511
|
-
*/const V4=Pe("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"}]]);/**
|
|
512
|
-
* @license lucide-react v0.460.0 - ISC
|
|
513
|
-
*
|
|
514
|
-
* This source code is licensed under the ISC license.
|
|
515
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
516
|
-
*/const W4=Pe("Table2",[["path",{d:"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18",key:"gugj83"}]]);/**
|
|
517
|
-
* @license lucide-react v0.460.0 - ISC
|
|
518
|
-
*
|
|
519
|
-
* This source code is licensed under the ISC license.
|
|
520
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
521
|
-
*/const k2=Pe("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"}]]);/**
|
|
522
|
-
* @license lucide-react v0.460.0 - ISC
|
|
523
|
-
*
|
|
524
|
-
* This source code is licensed under the ISC license.
|
|
525
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
526
|
-
*/const Ml=Pe("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/**
|
|
527
|
-
* @license lucide-react v0.460.0 - ISC
|
|
528
|
-
*
|
|
529
|
-
* This source code is licensed under the ISC license.
|
|
530
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
531
|
-
*/const mn=Pe("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"}]]);/**
|
|
532
|
-
* @license lucide-react v0.460.0 - ISC
|
|
533
|
-
*
|
|
534
|
-
* This source code is licensed under the ISC license.
|
|
535
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
536
|
-
*/const wc=Pe("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"}]]);/**
|
|
537
|
-
* @license lucide-react v0.460.0 - ISC
|
|
538
|
-
*
|
|
539
|
-
* This source code is licensed under the ISC license.
|
|
540
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
541
|
-
*/const K4=Pe("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"}]]);/**
|
|
542
|
-
* @license lucide-react v0.460.0 - ISC
|
|
543
|
-
*
|
|
544
|
-
* This source code is licensed under the ISC license.
|
|
545
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
546
|
-
*/const q4=Pe("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"}]]);/**
|
|
547
|
-
* @license lucide-react v0.460.0 - ISC
|
|
548
|
-
*
|
|
549
|
-
* This source code is licensed under the ISC license.
|
|
550
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
551
|
-
*/const N2=Pe("Workflow",[["rect",{width:"8",height:"8",x:"3",y:"3",rx:"2",key:"by2w9f"}],["path",{d:"M7 11v4a2 2 0 0 0 2 2h4",key:"xkn7yn"}],["rect",{width:"8",height:"8",x:"13",y:"13",rx:"2",key:"1cgmvn"}]]);/**
|
|
552
|
-
* @license lucide-react v0.460.0 - ISC
|
|
553
|
-
*
|
|
554
|
-
* This source code is licensed under the ISC license.
|
|
555
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
556
|
-
*/const jc=Pe("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function S2(e){var t,n,r="";if(typeof e=="string"||typeof e=="number")r+=e;else if(typeof e=="object")if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=S2(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function G4(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=S2(e))&&(r&&(r+=" "),r+=t);return r}const Jv="-",Y4=e=>{const t=Q4(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:a=>{const l=a.split(Jv);return l[0]===""&&l.length!==1&&l.shift(),C2(l,t)||X4(a)},getConflictingClassGroupIds:(a,l)=>{const u=n[a]||[];return l&&r[a]?[...u,...r[a]]:u}}},C2=(e,t)=>{var a;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),o=r?C2(e.slice(1),r):void 0;if(o)return o;if(t.validators.length===0)return;const i=e.join(Jv);return(a=t.validators.find(({validator:l})=>l(i)))==null?void 0:a.classGroupId},_1=/^\[(.+)\]$/,X4=e=>{if(_1.test(e)){const t=_1.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},Q4=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return Z4(Object.entries(e.classGroups),n).forEach(([i,a])=>{Sb(a,r,i,t)}),r},Sb=(e,t,n,r)=>{e.forEach(o=>{if(typeof o=="string"){const i=o===""?t:D1(t,o);i.classGroupId=n;return}if(typeof o=="function"){if(J4(o)){Sb(o(r),t,n,r);return}t.validators.push({validator:o,classGroupId:n});return}Object.entries(o).forEach(([i,a])=>{Sb(a,D1(t,i),n,r)})})},D1=(e,t)=>{let n=e;return t.split(Jv).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},J4=e=>e.isThemeGetter,Z4=(e,t)=>t?e.map(([n,r])=>{const o=r.map(i=>typeof i=="string"?t+i:typeof i=="object"?Object.fromEntries(Object.entries(i).map(([a,l])=>[t+a,l])):i);return[n,o]}):e,eO=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,r=new Map;const o=(i,a)=>{n.set(i,a),t++,t>e&&(t=0,r=n,n=new Map)};return{get(i){let a=n.get(i);if(a!==void 0)return a;if((a=r.get(i))!==void 0)return o(i,a),a},set(i,a){n.has(i)?n.set(i,a):o(i,a)}}},E2="!",tO=e=>{const{separator:t,experimentalParseClassName:n}=e,r=t.length===1,o=t[0],i=t.length,a=l=>{const u=[];let f=0,p=0,h;for(let b=0;b<l.length;b++){let j=l[b];if(f===0){if(j===o&&(r||l.slice(b,b+i)===t)){u.push(l.slice(p,b)),p=b+i;continue}if(j==="/"){h=b;continue}}j==="["?f++:j==="]"&&f--}const g=u.length===0?l:l.substring(p),y=g.startsWith(E2),k=y?g.substring(1):g,v=h&&h>p?h-p:void 0;return{modifiers:u,hasImportantModifier:y,baseClassName:k,maybePostfixModifierPosition:v}};return n?l=>n({className:l,parseClassName:a}):a},nO=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(r=>{r[0]==="["?(t.push(...n.sort(),r),n=[]):n.push(r)}),t.push(...n.sort()),t},rO=e=>({cache:eO(e.cacheSize),parseClassName:tO(e),...Y4(e)}),sO=/\s+/,oO=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:o}=t,i=[],a=e.trim().split(sO);let l="";for(let u=a.length-1;u>=0;u-=1){const f=a[u],{modifiers:p,hasImportantModifier:h,baseClassName:g,maybePostfixModifierPosition:y}=n(f);let k=!!y,v=r(k?g.substring(0,y):g);if(!v){if(!k){l=f+(l.length>0?" "+l:l);continue}if(v=r(g),!v){l=f+(l.length>0?" "+l:l);continue}k=!1}const b=nO(p).join(":"),j=h?b+E2:b,S=j+v;if(i.includes(S))continue;i.push(S);const N=o(v,k);for(let C=0;C<N.length;++C){const P=N[C];i.push(j+P)}l=f+(l.length>0?" "+l:l)}return l};function iO(){let e=0,t,n,r="";for(;e<arguments.length;)(t=arguments[e++])&&(n=T2(t))&&(r&&(r+=" "),r+=n);return r}const T2=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=T2(e[r]))&&(n&&(n+=" "),n+=t);return n};function aO(e,...t){let n,r,o,i=a;function a(u){const f=t.reduce((p,h)=>h(p),e());return n=rO(f),r=n.cache.get,o=n.cache.set,i=l,l(u)}function l(u){const f=r(u);if(f)return f;const p=oO(u,n);return o(u,p),p}return function(){return i(iO.apply(null,arguments))}}const Jt=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},R2=/^\[(?:([a-z-]+):)?(.+)\]$/i,lO=/^\d+\/\d+$/,cO=new Set(["px","full","screen"]),uO=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,dO=/\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$/,fO=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,pO=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,hO=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,vo=e=>Ll(e)||cO.has(e)||lO.test(e),ci=e=>kc(e,"length",jO),Ll=e=>!!e&&!Number.isNaN(Number(e)),ry=e=>kc(e,"number",Ll),bu=e=>!!e&&Number.isInteger(Number(e)),mO=e=>e.endsWith("%")&&Ll(e.slice(0,-1)),jt=e=>R2.test(e),ui=e=>uO.test(e),gO=new Set(["length","size","percentage"]),xO=e=>kc(e,gO,A2),yO=e=>kc(e,"position",A2),bO=new Set(["image","url"]),vO=e=>kc(e,bO,NO),wO=e=>kc(e,"",kO),vu=()=>!0,kc=(e,t,n)=>{const r=R2.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},jO=e=>dO.test(e)&&!fO.test(e),A2=()=>!1,kO=e=>pO.test(e),NO=e=>hO.test(e),SO=()=>{const e=Jt("colors"),t=Jt("spacing"),n=Jt("blur"),r=Jt("brightness"),o=Jt("borderColor"),i=Jt("borderRadius"),a=Jt("borderSpacing"),l=Jt("borderWidth"),u=Jt("contrast"),f=Jt("grayscale"),p=Jt("hueRotate"),h=Jt("invert"),g=Jt("gap"),y=Jt("gradientColorStops"),k=Jt("gradientColorStopPositions"),v=Jt("inset"),b=Jt("margin"),j=Jt("opacity"),S=Jt("padding"),N=Jt("saturate"),C=Jt("scale"),P=Jt("sepia"),T=Jt("skew"),R=Jt("space"),I=Jt("translate"),_=()=>["auto","contain","none"],F=()=>["auto","hidden","clip","visible","scroll"],D=()=>["auto",jt,t],W=()=>[jt,t],V=()=>["",vo,ci],$=()=>["auto",Ll,jt],O=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],U=()=>["solid","dashed","dotted","double","none"],K=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],M=()=>["start","end","center","between","around","evenly","stretch"],H=()=>["","0",jt],L=()=>["auto","avoid","all","avoid-page","page","left","right","column"],z=()=>[Ll,jt];return{cacheSize:500,separator:":",theme:{colors:[vu],spacing:[vo,ci],blur:["none","",ui,jt],brightness:z(),borderColor:[e],borderRadius:["none","","full",ui,jt],borderSpacing:W(),borderWidth:V(),contrast:z(),grayscale:H(),hueRotate:z(),invert:H(),gap:W(),gradientColorStops:[e],gradientColorStopPositions:[mO,ci],inset:D(),margin:D(),opacity:z(),padding:W(),saturate:z(),scale:z(),sepia:H(),skew:z(),space:W(),translate:W()},classGroups:{aspect:[{aspect:["auto","square","video",jt]}],container:["container"],columns:[{columns:[ui]}],"break-after":[{"break-after":L()}],"break-before":[{"break-before":L()}],"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:[...O(),jt]}],overflow:[{overflow:F()}],"overflow-x":[{"overflow-x":F()}],"overflow-y":[{"overflow-y":F()}],overscroll:[{overscroll:_()}],"overscroll-x":[{"overscroll-x":_()}],"overscroll-y":[{"overscroll-y":_()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[v]}],"inset-x":[{"inset-x":[v]}],"inset-y":[{"inset-y":[v]}],start:[{start:[v]}],end:[{end:[v]}],top:[{top:[v]}],right:[{right:[v]}],bottom:[{bottom:[v]}],left:[{left:[v]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",bu,jt]}],basis:[{basis:D()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",jt]}],grow:[{grow:H()}],shrink:[{shrink:H()}],order:[{order:["first","last","none",bu,jt]}],"grid-cols":[{"grid-cols":[vu]}],"col-start-end":[{col:["auto",{span:["full",bu,jt]},jt]}],"col-start":[{"col-start":$()}],"col-end":[{"col-end":$()}],"grid-rows":[{"grid-rows":[vu]}],"row-start-end":[{row:["auto",{span:[bu,jt]},jt]}],"row-start":[{"row-start":$()}],"row-end":[{"row-end":$()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",jt]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",jt]}],gap:[{gap:[g]}],"gap-x":[{"gap-x":[g]}],"gap-y":[{"gap-y":[g]}],"justify-content":[{justify:["normal",...M()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...M(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...M(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[S]}],px:[{px:[S]}],py:[{py:[S]}],ps:[{ps:[S]}],pe:[{pe:[S]}],pt:[{pt:[S]}],pr:[{pr:[S]}],pb:[{pb:[S]}],pl:[{pl:[S]}],m:[{m:[b]}],mx:[{mx:[b]}],my:[{my:[b]}],ms:[{ms:[b]}],me:[{me:[b]}],mt:[{mt:[b]}],mr:[{mr:[b]}],mb:[{mb:[b]}],ml:[{ml:[b]}],"space-x":[{"space-x":[R]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[R]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",jt,t]}],"min-w":[{"min-w":[jt,t,"min","max","fit"]}],"max-w":[{"max-w":[jt,t,"none","full","min","max","fit","prose",{screen:[ui]},ui]}],h:[{h:[jt,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[jt,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[jt,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[jt,t,"auto","min","max","fit"]}],"font-size":[{text:["base",ui,ci]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",ry]}],"font-family":[{font:[vu]}],"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",jt]}],"line-clamp":[{"line-clamp":["none",Ll,ry]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",vo,jt]}],"list-image":[{"list-image":["none",jt]}],"list-style-type":[{list:["none","disc","decimal",jt]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[j]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[j]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...U(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",vo,ci]}],"underline-offset":[{"underline-offset":["auto",vo,jt]}],"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",jt]}],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",jt]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[j]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...O(),yO]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",xO]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},vO]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[k]}],"gradient-via-pos":[{via:[k]}],"gradient-to-pos":[{to:[k]}],"gradient-from":[{from:[y]}],"gradient-via":[{via:[y]}],"gradient-to":[{to:[y]}],rounded:[{rounded:[i]}],"rounded-s":[{"rounded-s":[i]}],"rounded-e":[{"rounded-e":[i]}],"rounded-t":[{"rounded-t":[i]}],"rounded-r":[{"rounded-r":[i]}],"rounded-b":[{"rounded-b":[i]}],"rounded-l":[{"rounded-l":[i]}],"rounded-ss":[{"rounded-ss":[i]}],"rounded-se":[{"rounded-se":[i]}],"rounded-ee":[{"rounded-ee":[i]}],"rounded-es":[{"rounded-es":[i]}],"rounded-tl":[{"rounded-tl":[i]}],"rounded-tr":[{"rounded-tr":[i]}],"rounded-br":[{"rounded-br":[i]}],"rounded-bl":[{"rounded-bl":[i]}],"border-w":[{border:[l]}],"border-w-x":[{"border-x":[l]}],"border-w-y":[{"border-y":[l]}],"border-w-s":[{"border-s":[l]}],"border-w-e":[{"border-e":[l]}],"border-w-t":[{"border-t":[l]}],"border-w-r":[{"border-r":[l]}],"border-w-b":[{"border-b":[l]}],"border-w-l":[{"border-l":[l]}],"border-opacity":[{"border-opacity":[j]}],"border-style":[{border:[...U(),"hidden"]}],"divide-x":[{"divide-x":[l]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[l]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[j]}],"divide-style":[{divide:U()}],"border-color":[{border:[o]}],"border-color-x":[{"border-x":[o]}],"border-color-y":[{"border-y":[o]}],"border-color-s":[{"border-s":[o]}],"border-color-e":[{"border-e":[o]}],"border-color-t":[{"border-t":[o]}],"border-color-r":[{"border-r":[o]}],"border-color-b":[{"border-b":[o]}],"border-color-l":[{"border-l":[o]}],"divide-color":[{divide:[o]}],"outline-style":[{outline:["",...U()]}],"outline-offset":[{"outline-offset":[vo,jt]}],"outline-w":[{outline:[vo,ci]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:V()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[j]}],"ring-offset-w":[{"ring-offset":[vo,ci]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",ui,wO]}],"shadow-color":[{shadow:[vu]}],opacity:[{opacity:[j]}],"mix-blend":[{"mix-blend":[...K(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":K()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[r]}],contrast:[{contrast:[u]}],"drop-shadow":[{"drop-shadow":["","none",ui,jt]}],grayscale:[{grayscale:[f]}],"hue-rotate":[{"hue-rotate":[p]}],invert:[{invert:[h]}],saturate:[{saturate:[N]}],sepia:[{sepia:[P]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[r]}],"backdrop-contrast":[{"backdrop-contrast":[u]}],"backdrop-grayscale":[{"backdrop-grayscale":[f]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[p]}],"backdrop-invert":[{"backdrop-invert":[h]}],"backdrop-opacity":[{"backdrop-opacity":[j]}],"backdrop-saturate":[{"backdrop-saturate":[N]}],"backdrop-sepia":[{"backdrop-sepia":[P]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[a]}],"border-spacing-x":[{"border-spacing-x":[a]}],"border-spacing-y":[{"border-spacing-y":[a]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",jt]}],duration:[{duration:z()}],ease:[{ease:["linear","in","out","in-out",jt]}],delay:[{delay:z()}],animate:[{animate:["none","spin","ping","pulse","bounce",jt]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[C]}],"scale-x":[{"scale-x":[C]}],"scale-y":[{"scale-y":[C]}],rotate:[{rotate:[bu,jt]}],"translate-x":[{"translate-x":[I]}],"translate-y":[{"translate-y":[I]}],"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",jt]}],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",jt]}],"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",jt]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[vo,ci,ry]}],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"]}}},CO=aO(SO);function we(...e){return CO(G4(e))}function Yn(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 Cr(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 P2(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleDateString(void 0,{month:"short",day:"numeric"})}function Ol(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 Ou(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 r=Math.floor(n/60);if(r<60)return`${r}m ago`;const o=Math.floor(r/60);return o<24?`${o}h ago`:`${Math.floor(o/24)}d ago`}function Jl(e){return e.toLocaleString("en-US")}function Zl(e){if(!Number.isFinite(e))return"$0.00";const t=e!==0&&Math.abs(e)<1?4:2;return e.toLocaleString("en-US",{style:"currency",currency:"USD",minimumFractionDigits:2,maximumFractionDigits:t})}function EO(e){if(!e)return"—";const t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e);if(!t)return e;const[,n,r,o]=t,i=new Date(Number(n),Number(r)-1,Number(o));return Number.isNaN(i.getTime())?e:i.toLocaleDateString(void 0,{month:"short",day:"numeric",year:"numeric"})}function TO(e,t){const n=new Date(e);if(Number.isNaN(n.getTime()))return"—";const r=t?new Date(t):new Date;if(Number.isNaN(r.getTime()))return"—";const o=Math.floor((r.getTime()-n.getTime())/6e4);if(o<1)return"< 1m";if(o<60)return`${o}m`;const i=Math.floor(o/1440),a=Math.floor(o/60);if(i>0){const u=Math.floor((o-i*24*60)/60);return u>0?`${i}d ${u}h`:`${i}d`}const l=o%60;return`${a}h ${l}m`}function hn(e){return e.split(/[_\s-]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function _2(e){return!e||e==="/"?"/":e.endsWith("/")?e.slice(0,-1):e}function D2(e){let t=_2(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("/schedules")?"/schedules":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":t.startsWith("/workflow")?"/workflow":t.startsWith("/inbox")?"/inbox":null}function $2(e,t){return D2(e)===t}function I2(e){let n=_2(e).split("/").filter(Boolean);const r=[];let o="Overview",i=null,a="";if(n[0]==="w"&&n[1]&&(a=`/w/${n[1]}`,r.push({label:hn(n[1]),path:`${a}/projects`}),n=n.slice(2)),n.length===0)return{title:o,breadcrumbs:r,projectSlug:i};if(n[0]==="projects"){if(r.push({label:"Projects",path:`${a}/projects`}),o="Projects",n[1]&&(i=n[1],r.push({label:hn(n[1]),path:`${a}/projects/${n[1]}`}),o=hn(n[1])),n[2]==="edit")o="Edit Project";else if(n[2]==="create"&&n[3]==="assignment")o="Create Assignment";else if(n[2]==="assignments"&&n[3])r.push({label:hn(n[3]),path:`${a}/projects/${n[1]}/assignments/${n[3]}`}),o=hn(n[3]),n[4]==="edit"?o="Edit Assignment":n[4]==="plan"&&n[5]==="edit"?o="Edit Plan":n[4]==="scratchpad"&&n[5]==="edit"?o="Edit Scratchpad":n[4]==="handoff"&&n[5]==="edit"?o="Append Handoff":n[4]==="decision-record"&&n[5]==="edit"&&(o="Append Decision");else if((n[2]==="memories"||n[2]==="resources")&&n[3]){const l=n[2]==="memories"?"Memories":"Resources",u=n[2]==="memories"?"/memories":"/resources";r.push({label:l,path:u}),r.push({label:hn(n[3]),path:`${a}/projects/${n[1]}/${n[2]}/${n[3]}`}),o=hn(n[3]),n[4]==="edit"&&(o=n[2]==="memories"?"Edit Memory":"Edit Resource")}}else n[0]==="servers"?(o="Servers",r.push({label:"Servers",path:`${a}/servers`})):n[0]==="inventories"?(o="Inventories",r.push({label:"Inventories",path:`${a}/inventories`})):n[0]==="schedules"?(o="Schedules",r.push({label:"Schedules",path:`${a}/schedules`})):n[0]==="usage"?(o="Usage",r.push({label:"Usage",path:`${a}/usage`})):n[0]==="agent-sessions"?(o="Agent Sessions",r.push({label:"Agent Sessions",path:`${a}/agent-sessions`})):n[0]==="assignments"?(o="Assignments",r.push({label:"Assignments",path:`${a}/assignments`})):n[0]==="archive"?(o="Archive",r.push({label:"Archive",path:"/archive"})):n[0]==="playbooks"?(r.push({label:"Playbooks",path:"/playbooks"}),o="Playbooks",n[1]==="create"?o="Create Playbook":n[1]&&n[2]==="edit"?(r.push({label:hn(n[1]),path:`/playbooks/${n[1]}`}),o="Edit Playbook"):n[1]&&(r.push({label:hn(n[1]),path:`/playbooks/${n[1]}`}),o=hn(n[1]))):n[0]==="memories"?(r.push({label:"Memories",path:"/memories"}),o="Memories",n[1]==="new"&&(o="New Memory")):n[0]==="resources"?(r.push({label:"Resources",path:"/resources"}),o="Resources",n[1]==="new"&&(o="New Resource")):n[0]==="todos"?(o="Todos",r.push({label:"Todos",path:`${a}/todos`})):n[0]==="views"?(o="Saved Views",r.push({label:"Saved Views",path:`${a}/views`}),n[1]&&(o="View")):n[0]==="help"?(o="Help",r.push({label:"Help",path:"/help"})):n[0]==="settings"?(o="Settings",r.push({label:"Settings",path:"/settings"})):n[0]==="workflow"?(o="Workflow",r.push({label:"Workflow",path:"/workflow"})):n[0]==="create"&&n[1]==="project"&&(o="Create Project",r.push({label:"Create Project",path:`${a}/create/project`}));return{title:o,breadcrumbs:r,projectSlug:i}}function M2({item:e,onNavigate:t}){const n=sr(),r=e.icon,o=$2(n.pathname,e.to)&&!n.pathname.startsWith("/w/");return s.jsxs($e,{to:e.to,onClick:t,className:we("flex items-center gap-3 rounded-md px-3 py-2 text-sm font-medium transition",o?"bg-foreground text-background shadow-sm":"text-muted-foreground hover:bg-background/80 hover:text-foreground"),children:[s.jsx(r,{className:"h-4 w-4"}),s.jsx("span",{children:e.label}),e.badge&&e.badge>0?s.jsx("span",{className:we("ml-auto inline-flex min-w-[1.25rem] items-center justify-center rounded-full px-1.5 py-0.5 text-[11px] font-semibold",o?"bg-background/20 text-background":"bg-foreground text-background"),children:e.badge}):null]})}function $1({items:e,onNavigate:t}){return s.jsx("nav",{className:"space-y-1",children:e.map(n=>s.jsx(M2,{item:n,onNavigate:t},n.to))})}function RO({label:e,items:t,collapsed:n,onToggle:r,containsActive:o,onNavigate:i}){const a=n&&o;return s.jsxs("div",{children:[s.jsxs("button",{type:"button",onClick:r,"aria-expanded":!n,className:we("flex w-full items-center gap-2 rounded-md px-3 py-1.5 text-xs font-semibold uppercase tracking-wider transition",a?"text-foreground":"text-muted-foreground/70 hover:text-muted-foreground"),children:[s.jsx(nr,{className:we("h-3 w-3 transition-transform",n&&"-rotate-90")}),e]}),n?null:s.jsx("nav",{className:"space-y-1",children:t.map(l=>s.jsx(M2,{item:l,onNavigate:i},l.to))})]})}const L2=[{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)"}}],AO=L2.map(e=>e.slug),fh="default";function O2(e){return typeof e=="string"&&AO.includes(e)}const F2={preset:fh,custom:!1};let Fu=null,cl=null;function Zv(e){if(!e||typeof e!="object")return F2;const t=e;return{preset:O2(t.preset)?t.preset:fh,custom:t.custom===!0}}function PO(){return Fu?Promise.resolve(Fu):cl||(cl=fetch("/api/config/theme").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>{const t=Zv(e);return Fu=t,cl=null,t}).catch(()=>(cl=null,F2)),cl)}async function _O(e){const t=await fetch("/api/config/theme",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({preset:e})});if(!t.ok){const r=await t.json().catch(()=>({error:`HTTP ${t.status}`}));throw new Error(r.error??"Failed to save theme")}const n=Zv(await t.json());return Fu=n,n}async function DO(){const e=await fetch("/api/config/theme",{method:"DELETE"});if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=Zv(await e.json());return Fu=t,t}const Cb="syntaur-theme",Lp="syntaur-preset",z2=m.createContext(null);function Eb(){try{const e=window.localStorage.getItem(Cb);return e==="light"||e==="dark"?e:null}catch{return null}}function B2(){try{const e=window.localStorage.getItem(Lp);return O2(e)?e:fh}catch{return fh}}function U2(){return typeof window>"u"||!window.matchMedia?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function H2(e){document.documentElement.classList.toggle("dark",e==="dark")}function V2(e){document.documentElement.dataset.theme=e}function $O(){typeof document>"u"||(H2(Eb()??U2()),V2(B2()))}function IO({children:e}){const[t,n]=m.useState(()=>Eb()),[r,o]=m.useState(()=>Eb()??U2()),[i,a]=m.useState(()=>B2());m.useEffect(()=>{H2(r)},[r]),m.useEffect(()=>{V2(i)},[i]),m.useEffect(()=>{let p=!1;return PO().then(h=>{if(!p&&h.preset!==i){a(h.preset);try{window.localStorage.setItem(Lp,h.preset)}catch{}}}),()=>{p=!0}},[]),m.useEffect(()=>{if(!window.matchMedia)return;const p=window.matchMedia("(prefers-color-scheme: dark)"),h=()=>{t||o(p.matches?"dark":"light")};return h(),p.addEventListener("change",h),()=>{p.removeEventListener("change",h)}},[t]);async function l(p){a(p);try{window.localStorage.setItem(Lp,p)}catch{}await _O(p)}async function u(){const p=await DO();a(p.preset);try{window.localStorage.setItem(Lp,p.preset)}catch{}}const f={resolvedTheme:r,explicitTheme:t,setTheme:p=>{window.localStorage.setItem(Cb,p),n(p),o(p)},toggleTheme:()=>{const p=r==="dark"?"light":"dark";window.localStorage.setItem(Cb,p),n(p),o(p)},preset:i,setPreset:l,resetPreset:u};return s.jsx(z2.Provider,{value:f,children:e})}function ew(){const e=m.useContext(z2);if(!e)throw new Error("useTheme must be used within ThemeProvider");return e}const MO=2e3,zu=new Set;let ps=null,aa=null,Op=!1,ph="closed";const Tb=new Set;function $u(e){if(ph!==e){ph=e;for(const t of Tb)t(e)}}function I1(){return ph}function LO(e){return Tb.add(e),()=>{Tb.delete(e)}}function OO(){return`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`}let FO=OO;function zO(){aa&&clearTimeout(aa),aa=setTimeout(()=>{aa=null,W2()},MO)}function W2(){if(ps&&(ps.readyState===WebSocket.OPEN||ps.readyState===WebSocket.CONNECTING))return;Op=!1,ph==="closed"&&$u("connecting");const e=new WebSocket(FO());ps=e,e.onopen=()=>{ps===e&&$u("open")},e.onmessage=t=>{if(ps===e)try{const n=JSON.parse(t.data);for(const r of zu)r(n)}catch{}},e.onclose=()=>{if(ps===e){if(ps=null,Op||zu.size===0){Op=!1,$u("closed");return}$u("reconnecting"),zO()}},e.onerror=()=>{e.close()}}function BO(e){return zu.add(e),W2(),()=>{zu.delete(e),zu.size===0&&(aa&&(clearTimeout(aa),aa=null),ps&&(Op=!0,ps.close(),ps=null),$u("closed"))}}function Ti(e){const t=m.useRef(e);t.current=e,m.useEffect(()=>BO(o=>t.current(o)),[])}const cm=["7d","30d","90d","all","custom"],K2="30d",UO=/^\d{4}-\d{2}-\d{2}$/,Md=["project","workspace","model","tool"],HO={"7d":7,"30d":30,"90d":90};function Bu(e){if(typeof e!="string"||!UO.test(e))return!1;const[t,n,r]=e.split("-").map(Number);if(n<1||n>12||r<1||r>31)return!1;const o=new Date(Date.UTC(t,n-1,r));return o.getUTCFullYear()===t&&o.getUTCMonth()===n-1&&o.getUTCDate()===r}function M1(e){const t=e.getUTCFullYear(),n=String(e.getUTCMonth()+1).padStart(2,"0"),r=String(e.getUTCDate()).padStart(2,"0");return`${t}-${n}-${r}`}function VO(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function WO(e,t=new Date){const n=e.window??K2;if(n==="all")return{};if(n==="custom"){const o={};return e.since&&(o.since=e.since),e.until&&(o.until=e.until),o}const r=new Date(Date.UTC(t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()));return{since:M1(VO(r,-(HO[n]-1))),until:M1(r)}}function KO(e){const t=[];if(!e||typeof e!="object"||Array.isArray(e))return{ok:!1,errors:["filters must be an object"]};const n=e;n.window!==void 0&&!cm.includes(n.window)&&t.push(`invalid window: ${String(n.window)}`);for(const r of["since","until"])n[r]!==void 0&&!Bu(n[r])&&t.push(`invalid ${r}: ${String(n[r])} (expected YYYY-MM-DD)`);for(const r of Md)n[r]!==void 0&&(typeof n[r]!="string"||n[r].length===0)&&t.push(`invalid ${r}: must be a non-empty string`);return Bu(n.since)&&Bu(n.until)&&n.since>n.until&&t.push("since must be on or before until"),{ok:t.length===0,errors:t}}function Ld(e){const t={};if(!e||typeof e!="object"||Array.isArray(e))return t;const n=e;typeof n.window=="string"&&cm.includes(n.window)&&(t.window=n.window),Bu(n.since)&&(t.since=n.since),Bu(n.until)&&(t.until=n.until);for(const r of Md)typeof n[r]=="string"&&n[r].length>0&&(t[r]=n[r]);return t.window!=="custom"&&(delete t.since,delete t.until),t}function Rb(e){const t=Ld(e),n=new URLSearchParams;t.window&&n.set("window",t.window),t.window==="custom"&&(t.since&&n.set("since",t.since),t.until&&n.set("until",t.until));for(const r of Md)t[r]&&n.set(r,t[r]);return n}function qO(e){const t={};for(const n of["window","since","until",...Md]){const r=e.get(n);r!==null&&(t[n]=r)}return Ld(t)}function q2(e,t=new Date){const n=Ld(e),{since:r,until:o}=WO(n,t),i=new URLSearchParams;r&&i.set("since",r),o&&i.set("until",o);for(const a of Md)n[a]&&i.set(a,n[a]);return i}const GO={"7d":"Last 7 days","30d":"Last 30 days","90d":"Last 90 days",all:"All time",custom:"Custom range"};function L1(e){const t=Ld(e),n=t.window??K2,r=[];return r.push(n==="custom"?`${t.since??"…"} → ${t.until??"…"}`:GO[n]),t.workspace&&r.push(`workspace: ${t.workspace}`),t.project&&r.push(`project: ${t.project}`),t.model&&r.push(`model: ${t.model}`),t.tool&&r.push(`tool: ${t.tool}`),r.join(" · ")}function tn(e,t,n=!0,r=!1){const[o,i]=m.useState(null),[a,l]=m.useState(!0),[u,f]=m.useState(null),[p,h]=m.useState(0),g=m.useRef(!1),y=n?e:null,k=m.useCallback(()=>{h(b=>b+1)},[]),v=m.useRef(y);return r&&v.current!==y&&(v.current=y,i(null),g.current=!1,f(null),l(!0)),m.useEffect(()=>{if(!y){l(!1),i(null),g.current=!1;return}let b=!1;return l(!g.current),f(null),fetch(y).then(async j=>{if(!j.ok){const S=await j.json().catch(()=>null);throw new Error((S==null?void 0:S.error)||`HTTP ${j.status}`)}return j.json()}).then(j=>{b||(i(j),g.current=!0,l(!1))}).catch(j=>{b||(f(j.message),l(!1))}),()=>{b=!0}},[y,p]),Ti(b=>{!t||!y||((b.type==="project-updated"||b.type==="assignment-updated")&&k(),b.type==="servers-updated"&&t==="servers"&&k(),b.type==="agent-sessions-updated"&&(t==="agent-sessions"||t==="overview")&&k(),b.type==="playbooks-updated"&&t==="playbooks"&&k(),b.type==="leases-updated"&&t==="inventories"&&k())}),{data:o,loading:a,error:u,refetch:k}}function ro(e=!0){return tn("/api/projects","projects",e)}function Ta(){return tn("/api/workspaces","projects")}function gn(){const{workspace:e}=Kt();return e?`/w/${e}`:""}function YO(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(),r=n?`/api/overview?${n}`:"/api/overview";return tn(r,"overview")}function um(e=!0){return tn("/api/assignments","assignments",e)}function XO(e=!0){return tn("/api/archived","assignments",e)}function G2(){return tn("/api/help")}function Y2(e){const t=e?`/api/projects/${e}`:null;return tn(t,"project",!0,!0)}function QO(e,t){const n=e&&t?`/api/projects/${e}/assignments/${t}`:null;return tn(n,"assignment",!0,!0)}function JO(e){const t=e?`/api/assignments/${e}`:null;return tn(t,"assignment",!0,!0)}function X2(e){return tn(e,void 0,!0,!0)}function tw(e=!0){return tn("/api/servers","servers",e)}function Q2(){return tn("/api/leases","inventories")}function dm(){return tn("/api/agent-sessions","agent-sessions")}function ZO(e,t){const n=e&&t?`/api/agent-sessions/${e}?assignment=${t}`:null;return tn(n,"agent-sessions",!0,!0)}function e5(e){const t=e?`/api/assignments/${e}/sessions`:null;return tn(t,"agent-sessions",!0,!0)}function t5(e,t){const n=e&&t?`/api/usage/projects/${encodeURIComponent(e)}/assignments/${encodeURIComponent(t)}`:null;return tn(n,void 0,!0,!0)}function n5(e){const t=e?`/api/usage/standalone/${encodeURIComponent(e)}`:null;return tn(t,void 0,!0,!0)}function nw(e=!0){return tn("/api/playbooks","playbooks",e)}function r5(e){const t=q2(e).toString(),n=t?`/api/usage?${t}`:"/api/usage";return tn(n,void 0,!0,!0)}function J2(e=!0){return tn("/api/usage/facets",void 0,e)}function s5(e){const t=e?`/api/playbooks/${e}`:null;return tn(t,"playbooks",!0,!0)}function o5(){return tn("/api/memories","project")}function i5(e,t){const n=e&&t?`/api/projects/${e}/memories/${t}`:null;return tn(n,"project",!0,!0)}function a5(){return tn("/api/resources","project")}function l5(e,t){const n=e&&t?`/api/projects/${e}/resources/${t}`:null;return tn(n,"project",!0,!0)}const fm=["new-workspace","new-project","new-todo","new-assignment"];function c5(e){return typeof e=="string"&&fm.includes(e)}const u5=["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","[","]"],d5=["mod","ctrl","alt","shift"];function wr(e){if(typeof e!="string")return"";const t=e.trim();if(!t)return"";if(/\s/.test(t)&&!t.includes("+"))return t.split(/\s+/).map(wr).filter(l=>l.length>0).join(" ");const n=t.split("+").map(l=>l.trim()).filter(l=>l.length>0);if(n.length===0)return"";if(n.length===1)return n[0].toLowerCase();const r=n[n.length-1].toLowerCase(),o=n.slice(0,-1).map(l=>l.toLowerCase()),i=new Set,a=[];for(const l of d5)o.includes(l)&&!i.has(l)&&(a.push(l),i.add(l));for(const l of o)i.has(l)||(a.push(l),i.add(l));return[...a,r].join("+")}function f5(e){const t=wr(e);return t?u5.includes(t):!1}const p5={"new-workspace":wr("Mod+Shift+Alt+w"),"new-project":wr("Mod+Shift+Alt+p"),"new-todo":wr("Mod+Shift+Alt+t"),"new-assignment":wr("Mod+Shift+Alt+a")};function h5(e){const t={...p5};for(const n of fm){const r=e[n];typeof r=="string"&&r.length>0&&(t[n]=r)}return t}function oa(){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 m5(e){const t=e.split("+").map(o=>o.trim()),n=t[t.length-1]??"",r=new Set(t.slice(0,-1).map(o=>o.toLowerCase()));return{key:n.toLowerCase(),mod:r.has("mod"),shift:r.has("shift"),alt:r.has("alt"),ctrl:r.has("ctrl")}}function ap(e,t){const n=m5(t);if(e.key.toLowerCase()!==n.key)return!1;const o=oa()?e.metaKey:e.ctrlKey;return!(n.mod&&!o||!n.mod&&!n.ctrl&&o||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 Z2(e){const t=[],n=oa()?e.metaKey:e.ctrlKey;n&&t.push("mod"),e.ctrlKey&&!n&&t.push("ctrl"),e.altKey&&t.push("alt");const r=e.key;let o;r===" "||r==="Spacebar"?o="space":(r.length,o=r.toLowerCase());const i=o.length===1&&/^[a-z0-9]$/.test(o);e.shiftKey&&i&&t.push("shift");const a=[...t,o].join("+");return wr(a)}function Zs(e){return e.split("+").map(n=>{const r=n.toLowerCase();return r==="mod"?oa()?"⌘":"Ctrl":r==="shift"?oa()?"⇧":"Shift":r==="alt"?oa()?"⌥":"Alt":r==="ctrl"?oa()?"⌃":"Ctrl":r==="enter"?"↵":r==="escape"?"Esc":r==="arrowup"?"↑":r==="arrowdown"?"↓":n.length===1?n.toUpperCase():n}).join(oa()?"":"+")}function g5(e){const[t,n]=m.useState(null),[r,o]=m.useState(!0),[i,a]=m.useState(null),l=m.useCallback(async()=>{try{const u=await fetch(`/api/todos/${encodeURIComponent(e)}`);if(!u.ok)throw new Error(`HTTP ${u.status}`);n(await u.json()),a(null)}catch(u){a(u instanceof Error?u.message:"Failed to fetch todos")}finally{o(!1)}},[e]);return m.useEffect(()=>{l()},[l]),Ti(u=>{u.type==="todos-updated"&&!u.projectSlug&&l()}),{data:t,loading:r,error:i,refetch:l}}function eT(e=!0){const[t,n]=m.useState(null),[r,o]=m.useState(!0),[i,a]=m.useState(null),l=m.useCallback(async()=>{try{const u=await fetch("/api/todos");if(!u.ok)throw new Error(`HTTP ${u.status}`);n(await u.json()),a(null)}catch(u){a(u instanceof Error?u.message:"Failed to fetch todos")}finally{o(!1)}},[]);return m.useEffect(()=>{if(!e){o(!1);return}l()},[l,e]),Ti(u=>{e&&u.type==="todos-updated"&&!u.projectSlug&&l()}),{data:t,loading:r,error:i,refetch:l}}async function rw(e,t,n){await Ri(`/api/todos/${encodeURIComponent(e)}`,{description:t,tags:n})}async function tT(e,t,n){await Ri(`/api/todos/${encodeURIComponent(e)}/${t}/complete`,{summary:"Completed."})}async function nT(e,t,n){await Ri(`/api/todos/${encodeURIComponent(e)}/${t}/block`,{reason:n})}async function rT(e,t,n){await Ri(`/api/todos/${encodeURIComponent(e)}/${t}/start`,{session:n})}async function sT(e,t){await Ri(`/api/todos/${encodeURIComponent(e)}/${t}/reopen`,{})}async function oT(e,t){await x5(`/api/todos/${encodeURIComponent(e)}/${t}`)}async function iT(e,t,n){const r=await fetch(`/api/todos/${encodeURIComponent(e)}/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:n})});if(!r.ok)throw new Error(await r.text().catch(()=>"")||`HTTP ${r.status}`)}function sw(e,t,n){return`/api/todos/${encodeURIComponent(e)}/${t}/attachments/${encodeURIComponent(n)}`}async function aT(e,t,n){for(const r of n){const o=await fetch(`/api/todos/${encodeURIComponent(e)}/${t}/attachments`,{method:"POST",headers:{"Content-Type":"application/octet-stream","x-attachment-filename":encodeURIComponent(r.name||"file"),"x-attachment-mime":r.type||"application/octet-stream"},body:r});if(!o.ok)throw new Error(await o.text().catch(()=>"")||`HTTP ${o.status}`)}}async function lT(e,t,n){const r=await fetch(sw(e,t,n),{method:"DELETE"});if(!r.ok)throw new Error(await r.text().catch(()=>"")||`HTTP ${r.status}`)}async function Ri(e,t){const n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){const r=await n.text().catch(()=>"");let o=null;try{o=r?JSON.parse(r):null}catch{}const i=(o==null?void 0:o.error)||r||`HTTP ${n.status}`,a=new Error(i);throw a.status=n.status,a}return n.json().catch(()=>({}))}async function x5(e){const t=await fetch(e,{method:"DELETE"});if(!t.ok){const n=await t.text().catch(()=>"");let r=null;try{r=n?JSON.parse(n):null}catch{}const o=(r==null?void 0:r.error)||n||`HTTP ${t.status}`,i=new Error(o);throw i.status=t.status,i}}async function y5(e,t){return await Ri(`/api/todos/${encodeURIComponent(e)}/promote`,t)}async function b5(e){return await Ri("/api/todos/promote-bulk",e)}async function v5(e,t,n){await Ri(`/api/todos/${encodeURIComponent(e)}/${t}/move`,{to:n})}const pm=["assignment","project","todo","server","playbook"],pa={defaultScope:"all",aliases:{a:"assignment",p:"project",t:"todo",s:"server",pb:"playbook"},externalIds:!0},cT=["kind","status","tag","tags","assignee","type","project","externalid","jira","title","search"],Ab="all",uT=/^[a-z][a-z0-9]*$/;function ow(e){return typeof e=="string"&&pm.includes(e)}function w5(e){return e==="all"||ow(e)}function j5(e){if(!e||typeof e!="object")return N5();const t=e,n=w5(t.defaultScope)?t.defaultScope:pa.defaultScope,r=typeof t.externalIds=="boolean"?t.externalIds:pa.externalIds;let o;if(t.aliases&&typeof t.aliases=="object"){o={};for(const[i,a]of Object.entries(t.aliases))uT.test(i)&&i!==Ab&&!cT.includes(i)&&ow(a)&&(o[i]=a)}else o={...pa.aliases};return{defaultScope:n,aliases:o,externalIds:r}}function k5(e){if(!e||typeof e!="object")return{ok:!1,errors:["aliases must be an object"]};const t=[];for(const[n,r]of Object.entries(e))uT.test(n)||t.push(`alias key "${n}" must be lowercase and match [a-z][a-z0-9]*`),n===Ab&&t.push(`alias key "${Ab}" is reserved (the "search everything" escape)`),cT.includes(n)&&t.push(`alias key "${n}" collides with the reserved field name "${n}"`),ow(r)||t.push(`alias "${n}" must map to one of: ${pm.join(", ")}`);return t.length===0?{ok:!0}:{ok:!1,errors:t}}function N5(){return{defaultScope:pa.defaultScope,aliases:{...pa.aliases},externalIds:pa.externalIds}}const iw={search:pa,custom:!1};let Tl=null,ul=null,hh=0;const Pb=new Set;function dT(e){Tl=e;for(const t of Pb)t(e)}function aw(e){if(!e||typeof e!="object")return iw;const t=e;return{search:j5(t.search),custom:t.custom===!0}}function S5(){if(Tl)return Promise.resolve(Tl);if(ul)return ul;const e=++hh;return ul=fetch("/api/config/search").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{ul=null;const n=aw(t);return e!==hh?Tl??n:(Tl=n,n)}).catch(()=>(ul=null,iw)),ul}function lw(){const[e,t]=m.useState(()=>Tl??iw);return m.useEffect(()=>{let n=!1;return S5().then(r=>{n||t(r)}),Pb.add(t),()=>{n=!0,Pb.delete(t)}},[]),e}async function C5(e){var r;++hh;const t=await fetch("/api/config/search",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!t.ok){const o=await t.json().catch(()=>null);throw new Error(((r=o==null?void 0:o.errors)==null?void 0:r.join("; "))??(o==null?void 0:o.error)??`HTTP ${t.status}`)}const n=aw(await t.json());return dT(n),n}async function E5(){++hh;const e=await fetch("/api/config/search",{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=aw(await e.json());return dT(t),t}const T5=new Set(["/projects","/assignments","/servers","/todos"]);function Fp(e,t){return T5.has(e)?`${t}${e}`:e}const R5=[{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-workflow",title:"Workflow",basePath:"/workflow",keywords:["statuses","transitions","derive","facts"]},{id:"page-settings",title:"Settings",basePath:"/settings",keywords:[]},{id:"page-help",title:"Help",basePath:"/help",keywords:["shortcuts"]}];function A5(e){if(!(e!=null&&e.length))return[];const t=[];for(const n of e)n.id&&(t.push(n.id),n.system&&t.push(`${n.system}:${n.id}`));return t}function P5(e){const t=[],n=e.externalIds!==!1,r=i=>n?A5(i):[],o=i=>n?i:void 0;for(const i of R5)t.push({type:"page",id:i.id,title:i.title,keywords:[...i.keywords],route:Fp(i.basePath,e.wsPrefix)});for(const i of e.projects??[]){const a=i.workspace?`/w/${i.workspace}`:"";t.push({type:"project",id:`project-${i.slug}`,title:i.title,subtitle:i.slug,keywords:[...i.tags??[],...r(i.externalIds)],route:`${a}/projects/${i.slug}`,tags:i.tags,project:i.slug,externalIds:o(i.externalIds)}),t.push({type:"todo",id:`project-todos-${i.slug}`,title:`${i.title} todos`,subtitle:`${i.slug} · project`,keywords:[...i.tags??[],"project","todos"],route:`${a}/projects/${i.slug}?tab=todos`})}for(const i of e.assignments??[]){const a=i.projectWorkspace?`/w/${i.projectWorkspace}`:"";t.push({type:"assignment",id:i.projectSlug===null?`assignment-standalone-${i.id}`:`assignment-${i.projectSlug}-${i.slug}`,title:i.title,subtitle:`${i.projectTitle} · ${i.status}`,keywords:[i.projectSlug??"standalone",i.assignee??"",...r(i.externalIds)].filter(l=>!!l),route:i.projectSlug===null?`/assignments/${i.id}`:`${a}/projects/${i.projectSlug}/assignments/${i.slug}`,status:i.status,tags:i.tags,assignee:i.assignee,assignmentType:i.type,project:i.projectSlug,externalIds:o(i.externalIds)})}for(const i of e.playbooks??[])t.push({type:"playbook",id:`playbook-${i.slug}`,title:i.name,subtitle:i.description,keywords:i.tags,route:`/playbooks/${i.slug}`,tags:i.tags});for(const i of e.servers??[])t.push({type:"server",id:`server-${i.name}`,title:i.name,subtitle:i.alive?"alive":"dead",route:`${Fp("/servers",e.wsPrefix)}#server-${encodeURIComponent(i.name)}`});for(const i of e.todos??[]){const a=i.workspace&&i.workspace!=="_ungrouped"?`/w/${i.workspace}`:e.wsPrefix,l=Fp("/todos",a);t.push({type:"todo",id:`todo-${i.id}`,title:i.description,subtitle:i.status,keywords:i.tags,route:`${l}?focus=${encodeURIComponent(i.id)}`,status:i.status,tags:i.tags})}return t}function _5(e){return!e.standalone&&!!e.projectWorkspace&&e.fileKind!=="memory"&&e.fileKind!=="resource"?`/w/${e.projectWorkspace}`:""}function D5(e){return e.map((t,n)=>({type:"content",id:`content-${t.path}-${n}`,title:`${t.assignmentSlug??t.itemSlug??""} › ${t.section??t.fileKind}`,subtitle:t.projectSlug??(t.standalone?"standalone":void 0),route:`${_5(t)}${t.route}`,project:t.projectSlug,snippet:t.snippet,snippetMatches:t.matches}))}function Mr(e){return e.toLowerCase().trim().replace(/[^a-z0-9\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}function zp(e){return/^[a-z0-9]+(-[a-z0-9]+)*$/.test(e)}async function $5(e,t,n){const r=t?"disable":"enable",o=await fetch(`/api/playbooks/${encodeURIComponent(e)}/${r}`,{method:"POST"});if(!o.ok){const i=await o.json().catch(()=>({}));throw new Error(i.error||`Failed to ${r} playbook`)}n()}async function sy(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 r=await n.json().catch(()=>({}));throw new Error(r.error||`Failed to create todo (HTTP ${n.status})`)}}async function O1(){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 F1(){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 oy(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 Qi(e,t,n){const r=e.match(/^(---\n)([\s\S]*?)(\n---)/);if(!r)return`---
|
|
557
|
-
${t}: ${JSON.stringify(n)}
|
|
558
|
-
---
|
|
559
|
-
${e}`;const o=r[1],i=r[2],a=r[3],l=e.slice(r[0].length),u=JSON.stringify(n),f=new RegExp(`^${t}:\\s*.*$`,"m");let p;return f.test(i)?p=i.replace(f,`${t}: ${u}`):p=`${i}
|
|
560
|
-
${t}: ${u}`,`${o}${p}${a}${l}`}const I5=/^[a-z0-9][a-z0-9-]*$/;function M5(e){const{playbooks:t,projectSlug:n,currentProjectTitle:r,currentProjectWorkspace:o,wsPrefix:i,refetchPlaybooks:a,navigate:l,toggleTheme:u}=e,f=[];if(f.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:I5,message:"Use lowercase letters, digits, and hyphens (e.g. acme-app). Must start with a letter or digit."}}],submit:async(p,h)=>{const g=(p.name??"").trim();if(!g)throw new Error("Name is required");const y=await fetch("/api/workspaces",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:g})});if(!y.ok){const k=await y.json().catch(()=>({}));throw new Error(k.error||`Failed to create workspace (HTTP ${y.status})`)}h.navigate(`/w/${g}/projects`)}}}),f.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:p,hasUngrouped:h}=await O1(),g=[{value:"_ungrouped",label:"Ungrouped",hint:"no workspace"}];for(const y of p)g.push({value:y,label:y,hint:"workspace"});return g}},{kind:"text",id:"title",label:"Project title",placeholder:"e.g. Marketing site rebuild",required:!0}],submit:async(p,h)=>{const g=(p.workspace??"").trim(),y=(p.title??"").trim();if(!y)throw new Error("Title is required");const k=Mr(y);if(!k)throw new Error("Title must contain at least one alphanumeric character");let v=await oy("/api/templates/project");v=Qi(v,"slug",k),v=Qi(v,"title",y),g&&g!=="_ungrouped"&&(v=Qi(v,"workspace",g));const b=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:v})}),j=await b.json().catch(()=>({}));if(!b.ok)throw new Error(j.error||`Failed to create project (HTTP ${b.status})`);const S=g&&g!=="_ungrouped"?`/w/${g}/projects/${j.slug??k}`:`/projects/${j.slug??k}`;h.navigate(S)}}}),f.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:p},h]=await Promise.all([O1(),F1()]),g=[{value:"_ungrouped",label:"Global",hint:"no workspace"}];for(const y of p)g.push({value:y,label:y,hint:"workspace"});for(const y of h){const k=y.workspace??"_ungrouped";g.push({value:k,label:`${y.title}`,hint:`project · ${y.workspace??"ungrouped"}`})}return g}},{kind:"text",id:"description",label:"Description",placeholder:"Describe the todo…",required:!0}],submit:async p=>{const h=(p.scope??"_ungrouped").trim()||"_ungrouped",g=(p.description??"").trim();if(!g)throw new Error("Description is required");await rw(h,g)}}}),f.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 p=await F1(),h=[{value:"_standalone",label:"Standalone",hint:"one-off / not in a project"}];for(const g of p)h.push({value:g.slug,label:g.title,hint:g.workspace?`workspace · ${g.workspace}`:"ungrouped"});return h}},{kind:"text",id:"title",label:"Assignment title",placeholder:"What needs to get done?",required:!0}],submit:async(p,h)=>{var N;const g=(p.project??"_standalone").trim()||"_standalone",y=(p.title??"").trim();if(!y)throw new Error("Title is required");const k=Mr(y);if(!k)throw new Error("Title must contain at least one alphanumeric character");if(g==="_standalone"){let C=await oy("/api/templates/assignment?standalone=1");C=Qi(C,"slug",k),C=Qi(C,"title",y);const P=await fetch("/api/assignments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:C})}),T=await P.json().catch(()=>({}));if(!P.ok)throw new Error(T.error||`Failed to create assignment (HTTP ${P.status})`);const R=((N=T==null?void 0:T.assignment)==null?void 0:N.id)??(T==null?void 0:T.id);R?h.navigate(`/assignments/${R}`):h.navigate("/assignments");return}let v=await oy("/api/templates/assignment");v=Qi(v,"slug",k),v=Qi(v,"title",y);const b=await fetch(`/api/projects/${encodeURIComponent(g)}/assignments`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:v})}),j=await b.json().catch(()=>({}));if(!b.ok)throw new Error(j.error||`Failed to create assignment (HTTP ${b.status})`);const S=j.slug??k;h.navigate(`/projects/${g}/assignments/${S}`)}}}),f.push({id:"create-project-route",title:"New Project (advanced editor)",subtitle:"Open the markdown editor",group:"Create",keywords:["new","create","project","advanced","editor"],run:()=>l(`${i}/create/project`)}),f.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:()=>l(`${i}/assignments/new`)}),n&&f.push({id:`create-assignment-in-${n}`,title:`New Assignment in ${r??n}`,subtitle:n,group:"Create",keywords:["new","create","assignment",n],run:()=>l(`${i}/projects/${n}/create/assignment`)}),f.push({id:"create-playbook",title:"New Playbook",group:"Create",keywords:["new","create","playbook"],run:()=>l("/playbooks/create")}),f.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 p=>{const h=p.trim();h&&await sy("_ungrouped",h)}}}),i){const p=i.replace(/^\/w\//,"");f.push({id:`create-todo-workspace-${p}`,title:`New Todo in workspace ${p}`,subtitle:p,group:"Create",keywords:["new","create","todo","workspace",p],requiresInput:{placeholder:`Describe the todo for workspace ${p}…`,runWithInput:async h=>{const g=h.trim();g&&await sy(p,g)}}})}n&&o&&f.push({id:`create-todo-project-${n}`,title:`New Todo in project ${r??n}`,subtitle:`${n} · workspace ${o}`,group:"Create",keywords:["new","create","todo","project",n,o],requiresInput:{placeholder:`Describe the todo for project ${r??n}…`,runWithInput:async p=>{const h=p.trim();h&&await sy(o,h)}}});for(const p of t)f.push({id:`toggle-playbook-${p.slug}`,title:`Toggle Playbook: ${p.name}`,subtitle:p.enabled?"enabled":"disabled",group:"Toggle",keywords:["toggle","playbook",p.slug,...p.tags??[]],run:()=>$5(p.slug,p.enabled,a)});return f.push({id:"toggle-theme",title:"Toggle theme",subtitle:"Light / dark",group:"Theme",keywords:["theme","toggle","light","dark","appearance"],run:()=>u()}),f}const L5=["low","medium","high","critical"],hm={status:{kind:"enum"},priority:{kind:"ordinal",order:L5},type:{kind:"enum"},assignee:{kind:"string",noneSentinel:!0},project:{kind:"string",noneSentinel:!0},tag:{kind:"list",get:e=>e.tags},tags:{kind:"list"},archived:{kind:"bool"},title:{kind:"substring"},search:{kind:"substring",get:e=>e.searchText??e.title},created:{kind:"timestamp"},updated:{kind:"timestamp"},completedat:{kind:"timestamp",get:e=>e.completedAt},statusage:{kind:"duration",get:e=>e.statusAge},phase:{kind:"enum"},disposition:{kind:"enum"},phaseage:{kind:"duration",get:e=>e.phaseAge},hasrealobjective:{kind:"bool",get:e=>e.hasRealObjective},acrealtotal:{kind:"number",get:e=>e.acRealTotal},acrealchecked:{kind:"number",get:e=>e.acRealChecked},acallchecked:{kind:"bool",get:e=>e.acAllChecked},planexists:{kind:"bool",get:e=>e.planExists},planapproved:{kind:"bool",get:e=>e.planApproved},workspaceset:{kind:"bool",get:e=>e.workspaceSet},implementationstarted:{kind:"bool",get:e=>e.implementationStarted},depssatisfied:{kind:"bool",get:e=>e.depsSatisfied},unresolvedquestions:{kind:"number",get:e=>e.unresolvedQuestions},progressstaledays:{kind:"duration",get:e=>e.progressStaleDays},blocked:{kind:"bool"},parked:{kind:"bool"},reviewrequested:{kind:"bool",get:e=>e.reviewRequested},reworkrequested:{kind:"bool",get:e=>e.reworkRequested},pinned:{kind:"bool"}};function O5(e,t){return e[t.toLowerCase()]??null}function Lr(e,t,n){return e.get?e.get(n):n[t]??n[t.toLowerCase()]}class br extends Error{constructor(t){super(t.map(n=>`${n.message} (at ${n.pos})`).join("; ")),this.errors=t,this.name="CompileError"}}function fT(e){const[t,n,r]=e.raw.split("-").map(a=>parseInt(a,10)),o=new Date(t,n-1,r);if(o.getFullYear()!==t||o.getMonth()!==n-1||o.getDate()!==r)throw new br([{pos:e.pos,message:`Invalid date "${e.raw}"`}]);const i=new Date(t,n-1,r+1).getTime();return[o.getTime(),i]}function _b(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="string"&&e.length>0){const t=Date.parse(e);return Number.isNaN(t)?null:t}return null}function Uu(e){if(typeof e=="number")return Number.isFinite(e)?e:null;if(typeof e=="string"&&e.trim()!==""){const t=Number(e);return Number.isFinite(t)?t:null}return null}function iy(e,t){return typeof e=="string"&&e.toLowerCase()===t.toLowerCase()}function F5(e){return e==null||e===""}function Bp(e,t,n,r){switch(e.kind){case"enum":case"string":return e.noneSentinel&&n.raw.toLowerCase()==="none"?o=>F5(Lr(e,t,o)):o=>iy(Lr(e,t,o),n.raw);case"substring":return o=>{const i=Lr(e,t,o);return typeof i=="string"&&i.toLowerCase().includes(n.raw.toLowerCase())};case"bool":{const o=n.raw.toLowerCase();if(o!=="true"&&o!=="false")throw new br([{pos:n.pos,message:`Field "${t}" is boolean — use ${t}:true or ${t}:false`}]);const i=o==="true";return a=>{const l=Lr(e,t,a),u=typeof l=="boolean"?l:l==="true"?!0:l==="false"||l===null||l===void 0||l===""?!1:null;return u!==null&&u===i}}case"number":{const o=n.num??Uu(n.raw);if(o===null)throw new br([{pos:n.pos,message:`Field "${t}" is numeric — "${n.raw}" is not a number`}]);return i=>Uu(Lr(e,t,i))===o}case"ordinal":return o=>iy(Lr(e,t,o),n.raw);case"list":return o=>{const i=Lr(e,t,o);return Array.isArray(i)&&i.some(a=>iy(a,n.raw))};case"timestamp":{if(n.type==="date"){const[o,i]=fT(n);return a=>{const l=_b(Lr(e,t,a));return l!==null&&l>=o&&l<i}}throw new br([{pos:n.pos,message:`Field "${t}" is a timestamp — use a comparison (e.g. ${t} > -36h) or an absolute date (${t}:2026-06-01)`}])}case"duration":throw new br([{pos:r,message:`Field "${t}" is a duration — use a comparison (e.g. ${t} > 3d)`}])}}function z5(e,t,n,r){const o=(i,a)=>{switch(n){case"<":return i<a;case">":return i>a;case"<=":return i<=a;case">=":return i>=a;case"=":return i===a;case"!=":return i!==a;default:return!1}};switch(e.kind){case"number":{const i=r.num??Uu(r.raw);if(i===null)throw new br([{pos:r.pos,message:`"${r.raw}" is not a number (field "${t}")`}]);return a=>{const l=Uu(Lr(e,t,a));return l!==null&&o(l,i)}}case"ordinal":{const i=e.order??[],a=i.findIndex(l=>l.toLowerCase()===r.raw.toLowerCase());if(a<0)throw new br([{pos:r.pos,message:`"${r.raw}" is not a valid ${t} (expected one of: ${i.join(", ")})`}]);return l=>{const u=Lr(e,t,l),f=typeof u=="string"?i.findIndex(p=>p.toLowerCase()===u.toLowerCase()):-1;return f>=0&&o(f,a)}}case"timestamp":{if(r.type==="duration"){const a=(r.sign===0?-1:r.sign??-1)*(r.num??0);return(l,u)=>{const f=_b(Lr(e,t,l));return f!==null&&o(f,u.now+a)}}if(r.type==="date"){const[i,a]=fT(r);return l=>{const u=_b(Lr(e,t,l));if(u===null)return!1;switch(n){case"<":return u<i;case"<=":return u<a;case">":return u>=a;case">=":return u>=i;case"=":return u>=i&&u<a;case"!=":return u<i||u>=a;default:return!1}}}throw new br([{pos:r.pos,message:`Compare timestamp field "${t}" to a duration (e.g. -36h) or a date (YYYY-MM-DD)`}])}case"duration":{if(r.type!=="duration")throw new br([{pos:r.pos,message:`Compare duration field "${t}" to a duration literal (e.g. 3d)`}]);const i=r.num??0;return a=>{const l=Uu(Lr(e,t,a));return l!==null&&o(l,i)}}case"enum":case"string":case"substring":case"list":{if(n==="=")return Bp(e,t,r,r.pos);if(n==="!="){const i=Bp(e,t,r,r.pos);return(a,l)=>!i(a,l)}throw new br([{pos:r.pos,message:`Field "${t}" does not support ordering comparisons (use ":" or "=").`}])}case"bool":{if(n==="="||n==="!="){const i=Bp(e,t,r,r.pos);return n==="="?i:(a,l)=>!i(a,l)}throw new br([{pos:r.pos,message:`Field "${t}" is boolean — use ${t}:true / ${t}:false`}])}}}function B5(e,t){const n=O5(t,e.field);if(!n)throw new br([{pos:e.pos,message:`Unknown field "${e.field}"`}]);if(e.op===":"){const r=e.values.map(o=>Bp(n,e.field,o,e.pos));return r.length===1?r[0]:(o,i)=>r.some(a=>a(o,i))}return z5(n,e.field,e.op,e.values[0])}function Hu(e,t){switch(e.kind){case"all":return()=>!0;case"atom":return B5(e,t);case"not":{const n=Hu(e.child,t);return(r,o)=>!n(r,o)}case"and":{const n=e.children.map(r=>Hu(r,t));return(r,o)=>n.every(i=>i(r,o))}case"or":{const n=e.children.map(r=>Hu(r,t));return(r,o)=>n.some(i=>i(r,o))}}}class ia extends Error{constructor(t,n){super(n),this.pos=t,this.name="LexError"}}const U5={h:36e5,d:864e5,w:7*864e5,m:30*864e5,mo:30*864e5,y:365*864e5},H5=/[A-Za-z_]/,V5=/[A-Za-z0-9_-]/,W5=/^\d{4}-\d{2}-\d{2}(?![\d-])/;function mm(e){const t=[];let n=0;const r=(o,i)=>{let a=n;for(;a<e.length&&/\d/.test(e[a]);)a++;const l=e.slice(n,a);let u="";for(;a<e.length&&/[a-z]/i.test(e[a]);)u+=e[a],a++;if(n=a,u.length>0){const f=U5[u.toLowerCase()];if(f===void 0)throw new ia(o,`Unknown duration unit "${u}" (expected h, d, w, m, mo, or y)`);return{type:"DURATION",text:e.slice(o,a),pos:o,num:parseInt(l,10)*f,sign:i}}return i!==0?{type:"NUMBER",text:e.slice(o,a),pos:o,num:i*parseInt(l,10)}:{type:"NUMBER",text:l,pos:o,num:parseInt(l,10)}};for(;n<e.length;){const o=e[n],i=n;if(o===" "||o===" "||o===`
|
|
561
|
-
`||o==="\r"){n++;continue}if(o==="("){t.push({type:"LPAREN",text:o,pos:i}),n++;continue}if(o===")"){t.push({type:"RPAREN",text:o,pos:i}),n++;continue}if(o===","){t.push({type:"COMMA",text:o,pos:i}),n++;continue}if(o===":"){t.push({type:"COLON",text:o,pos:i}),n++;continue}if(o==="*"){t.push({type:"STAR",text:o,pos:i}),n++;continue}if(o==="<"||o===">"){e[n+1]==="="?(t.push({type:"OP",text:o+"=",pos:i}),n+=2):(t.push({type:"OP",text:o,pos:i}),n++);continue}if(o==="!"){if(e[n+1]==="="){t.push({type:"OP",text:"!=",pos:i}),n+=2;continue}throw new ia(i,'Unexpected "!" (did you mean "!="?)')}if(o==="="){n+=e[n+1]==="="?2:1,t.push({type:"OP",text:"=",pos:i});continue}if(o==='"'||o==="'"){const a=o;let l=n+1,u="";for(;l<e.length&&e[l]!==a;)e[l]==="\\"&&l+1<e.length?(u+=e[l+1],l+=2):(u+=e[l],l++);if(l>=e.length)throw new ia(i,"Unterminated string literal");t.push({type:"STRING",text:u,pos:i}),n=l+1;continue}if(o==="-"||o==="+"){if(/\d/.test(e[n+1]??"")){const a=o==="-"?-1:1;n++,t.push(r(i,a));continue}if(o==="-"){t.push({type:"MINUS",text:"-",pos:i}),n++;continue}throw new ia(i,'Unexpected "+"')}if(/\d/.test(o)){const a=e.slice(n).match(W5);if(a){t.push({type:"DATE",text:a[0],pos:i}),n+=a[0].length;continue}t.push(r(i,0));continue}if(H5.test(o)){let a=n+1;for(;a<e.length&&V5.test(e[a]);)a++;const l=e.slice(n,a),u=l.toLowerCase();u==="and"?t.push({type:"AND",text:l,pos:i}):u==="or"?t.push({type:"OR",text:l,pos:i}):u==="not"?t.push({type:"NOT",text:l,pos:i}):t.push({type:"IDENT",text:l,pos:i}),n=a;continue}throw new ia(i,`Unexpected character "${o}"`)}return t.push({type:"EOF",text:"",pos:e.length}),t}class Zi extends Error{constructor(t,n){super(n),this.pos=t,this.name="ParseError"}}const K5=new Set(["IDENT","STRING","NUMBER","DATE","DURATION"]),q5=new Set(["IDENT","NOT","MINUS","LPAREN","STAR"]);class G5{constructor(t){Kx(this,"pos",0);this.tokens=t}peek(){return this.tokens[this.pos]}next(){return this.tokens[this.pos++]}expect(t,n){const r=this.peek();if(r.type!==t)throw new Zi(r.pos,`Expected ${n}, got "${r.text||r.type}"`);return this.next()}parseQuery(){if(this.peek().type==="EOF")return{kind:"all"};const t=this.orExpr(),n=this.peek();if(n.type!=="EOF")throw new Zi(n.pos,`Unexpected "${n.text}" — unbalanced parentheses or stray token`);return t}orExpr(){const t=[this.andExpr()];for(;this.peek().type==="OR";)this.next(),t.push(this.andExpr());return t.length===1?t[0]:{kind:"or",children:t}}andExpr(){const t=[this.unary()];for(;;){const n=this.peek();if(n.type==="AND")this.next(),t.push(this.unary());else if(q5.has(n.type))t.push(this.unary());else break}return t.length===1?t[0]:{kind:"and",children:t}}unary(){const t=this.peek();if(t.type==="NOT")return this.next(),{kind:"not",child:this.unary()};if(t.type==="MINUS"){this.next();const n=this.peek();if(n.type!=="IDENT")throw new Zi(n.pos,'Expected a field atom after "-" negation');return{kind:"not",child:this.atom()}}return this.primary()}primary(){const t=this.peek();if(t.type==="LPAREN"){this.next();const n=this.orExpr();return this.expect("RPAREN",'")"'),n}if(t.type==="STAR")return this.next(),{kind:"all"};if(t.type==="IDENT")return this.atom();throw new Zi(t.pos,`Expected a field, "(", "*", or NOT — got "${t.text||"end of query"}"`)}atom(){const t=this.expect("IDENT","a field name"),n=this.peek();if(n.type==="COLON"){this.next();const r=this.valueOrList();return{kind:"atom",field:t.text,op:":",values:r,pos:t.pos}}if(n.type==="OP"){this.next();const r=this.value();return{kind:"atom",field:t.text,op:n.text,values:[r],pos:t.pos}}throw new Zi(n.pos,`Expected ":" or a comparison operator after field "${t.text}"`)}valueOrList(){if(this.peek().type==="LPAREN"){this.next();const t=[this.value()];for(;this.peek().type==="COMMA";)this.next(),t.push(this.value());return this.expect("RPAREN",'")" to close the value list'),t}return[this.value()]}value(){const t=this.peek();if(!K5.has(t.type))throw new Zi(t.pos,`Expected a value, got "${t.text||t.type}"`);switch(this.next(),t.type){case"STRING":return{type:"string",raw:t.text,pos:t.pos};case"NUMBER":return{type:"number",raw:t.text,num:t.num,pos:t.pos};case"DATE":return{type:"date",raw:t.text,pos:t.pos};case"DURATION":return{type:"duration",raw:t.text,num:t.num,sign:t.sign??0,pos:t.pos};default:return{type:"word",raw:t.text,pos:t.pos}}}}function gm(e){try{const t=mm(e);return{ast:new G5(t).parseQuery(),errors:[]}}catch(t){if(t instanceof ia||t instanceof Zi)return{ast:null,errors:[{pos:t.pos,message:t.message}]};throw t}}function ec(e,t=hm){const n=gm(e);if(!n.ast)return{query:null,errors:n.errors};try{return{query:{predicate:Hu(n.ast,t),ast:n.ast},errors:[]}}catch(r){if(r instanceof br)return{query:null,errors:r.errors};throw r}}function sn(e,t,{checkForDefaultPrevented:n=!0}={}){return function(o){if(e==null||e(o),n===!1||!o.defaultPrevented)return t==null?void 0:t(o)}}function z1(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function xm(...e){return t=>{let n=!1;const r=e.map(o=>{const i=z1(o,t);return!n&&typeof i=="function"&&(n=!0),i});if(n)return()=>{for(let o=0;o<r.length;o++){const i=r[o];typeof i=="function"?i():z1(e[o],null)}}}}function rr(...e){return m.useCallback(xm(...e),e)}function Y5(e,t){const n=m.createContext(t),r=i=>{const{children:a,...l}=i,u=m.useMemo(()=>l,Object.values(l));return s.jsx(n.Provider,{value:u,children:a})};r.displayName=e+"Provider";function o(i){const a=m.useContext(n);if(a)return a;if(t!==void 0)return t;throw new Error(`\`${i}\` must be used within \`${e}\``)}return[r,o]}function Ra(e,t=[]){let n=[];function r(i,a){const l=m.createContext(a),u=n.length;n=[...n,a];const f=h=>{var j;const{scope:g,children:y,...k}=h,v=((j=g==null?void 0:g[e])==null?void 0:j[u])||l,b=m.useMemo(()=>k,Object.values(k));return s.jsx(v.Provider,{value:b,children:y})};f.displayName=i+"Provider";function p(h,g){var v;const y=((v=g==null?void 0:g[e])==null?void 0:v[u])||l,k=m.useContext(y);if(k)return k;if(a!==void 0)return a;throw new Error(`\`${h}\` must be used within \`${i}\``)}return[f,p]}const o=()=>{const i=n.map(a=>m.createContext(a));return function(l){const u=(l==null?void 0:l[e])||i;return m.useMemo(()=>({[`__scope${e}`]:{...l,[e]:u}}),[l,u])}};return o.scopeName=e,[r,X5(o,...t)]}function X5(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const r=e.map(o=>({useScope:o(),scopeName:o.scopeName}));return function(i){const a=r.reduce((l,{useScope:u,scopeName:f})=>{const h=u(i)[`__scope${f}`];return{...l,...h}},{});return m.useMemo(()=>({[`__scope${t.scopeName}`]:a}),[a])}};return n.scopeName=t.scopeName,n}var ji=globalThis!=null&&globalThis.document?m.useLayoutEffect:()=>{},Q5=WE[" useId ".trim().toString()]||(()=>{}),J5=0;function Fl(e){const[t,n]=m.useState(Q5());return ji(()=>{n(r=>r??String(J5++))},[e]),e||(t?`radix-${t}`:"")}var Z5=WE[" useInsertionEffect ".trim().toString()]||ji;function ym({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[o,i,a]=eF({defaultProp:t,onChange:n}),l=e!==void 0,u=l?e:o;{const p=m.useRef(e!==void 0);m.useEffect(()=>{const h=p.current;h!==l&&console.warn(`${r} is changing from ${h?"controlled":"uncontrolled"} to ${l?"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.`),p.current=l},[l,r])}const f=m.useCallback(p=>{var h;if(l){const g=tF(p)?p(e):p;g!==e&&((h=a.current)==null||h.call(a,g))}else i(p)},[l,e,i,a]);return[u,f]}function eF({defaultProp:e,onChange:t}){const[n,r]=m.useState(e),o=m.useRef(n),i=m.useRef(t);return Z5(()=>{i.current=t},[t]),m.useEffect(()=>{var a;o.current!==n&&((a=i.current)==null||a.call(i,n),o.current=n)},[n,o]),[n,r,i]}function tF(e){return typeof e=="function"}function nF(e){const t=rF(e),n=m.forwardRef((r,o)=>{const{children:i,...a}=r,l=m.Children.toArray(i),u=l.find(oF);if(u){const f=u.props.children,p=l.map(h=>h===u?m.Children.count(f)>1?m.Children.only(null):m.isValidElement(f)?f.props.children:null:h);return s.jsx(t,{...a,ref:o,children:m.isValidElement(f)?m.cloneElement(f,void 0,p):null})}return s.jsx(t,{...a,ref:o,children:i})});return n.displayName=`${e}.Slot`,n}function rF(e){const t=m.forwardRef((n,r)=>{const{children:o,...i}=n;if(m.isValidElement(o)){const a=aF(o),l=iF(i,o.props);return o.type!==m.Fragment&&(l.ref=r?xm(r,a):a),m.cloneElement(o,l)}return m.Children.count(o)>1?m.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var sF=Symbol("radix.slottable");function oF(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===sF}function iF(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...l)=>{const u=i(...l);return o(...l),u}:o&&(n[r]=o):r==="style"?n[r]={...o,...i}:r==="className"&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}function aF(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var lF=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],kn=lF.reduce((e,t)=>{const n=nF(`Primitive.${t}`),r=m.forwardRef((o,i)=>{const{asChild:a,...l}=o,u=a?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),s.jsx(u,{...l,ref:i})});return r.displayName=`Primitive.${t}`,{...e,[t]:r}},{});function cF(e,t){e&&Ys.flushSync(()=>e.dispatchEvent(t))}function va(e){const t=m.useRef(e);return m.useEffect(()=>{t.current=e}),m.useMemo(()=>(...n)=>{var r;return(r=t.current)==null?void 0:r.call(t,...n)},[])}function uF(e,t=globalThis==null?void 0:globalThis.document){const n=va(e);m.useEffect(()=>{const r=o=>{o.key==="Escape"&&n(o)};return t.addEventListener("keydown",r,{capture:!0}),()=>t.removeEventListener("keydown",r,{capture:!0})},[n,t])}var dF="DismissableLayer",Db="dismissableLayer.update",fF="dismissableLayer.pointerDownOutside",pF="dismissableLayer.focusOutside",B1,pT=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),cw=m.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:a,onDismiss:l,...u}=e,f=m.useContext(pT),[p,h]=m.useState(null),g=(p==null?void 0:p.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,y]=m.useState({}),k=rr(t,R=>h(R)),v=Array.from(f.layers),[b]=[...f.layersWithOutsidePointerEventsDisabled].slice(-1),j=v.indexOf(b),S=p?v.indexOf(p):-1,N=f.layersWithOutsidePointerEventsDisabled.size>0,C=S>=j,P=gF(R=>{const I=R.target,_=[...f.branches].some(F=>F.contains(I));!C||_||(o==null||o(R),a==null||a(R),R.defaultPrevented||l==null||l())},g),T=xF(R=>{const I=R.target;[...f.branches].some(F=>F.contains(I))||(i==null||i(R),a==null||a(R),R.defaultPrevented||l==null||l())},g);return uF(R=>{S===f.layers.size-1&&(r==null||r(R),!R.defaultPrevented&&l&&(R.preventDefault(),l()))},g),m.useEffect(()=>{if(p)return n&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(B1=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(p)),f.layers.add(p),U1(),()=>{n&&f.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=B1)}},[p,g,n,f]),m.useEffect(()=>()=>{p&&(f.layers.delete(p),f.layersWithOutsidePointerEventsDisabled.delete(p),U1())},[p,f]),m.useEffect(()=>{const R=()=>y({});return document.addEventListener(Db,R),()=>document.removeEventListener(Db,R)},[]),s.jsx(kn.div,{...u,ref:k,style:{pointerEvents:N?C?"auto":"none":void 0,...e.style},onFocusCapture:sn(e.onFocusCapture,T.onFocusCapture),onBlurCapture:sn(e.onBlurCapture,T.onBlurCapture),onPointerDownCapture:sn(e.onPointerDownCapture,P.onPointerDownCapture)})});cw.displayName=dF;var hF="DismissableLayerBranch",mF=m.forwardRef((e,t)=>{const n=m.useContext(pT),r=m.useRef(null),o=rr(t,r);return m.useEffect(()=>{const i=r.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),s.jsx(kn.div,{...e,ref:o})});mF.displayName=hF;function gF(e,t=globalThis==null?void 0:globalThis.document){const n=va(e),r=m.useRef(!1),o=m.useRef(()=>{});return m.useEffect(()=>{const i=l=>{if(l.target&&!r.current){let u=function(){hT(fF,n,f,{discrete:!0})};const f={originalEvent:l};l.pointerType==="touch"?(t.removeEventListener("click",o.current),o.current=u,t.addEventListener("click",o.current,{once:!0})):u()}else t.removeEventListener("click",o.current);r.current=!1},a=window.setTimeout(()=>{t.addEventListener("pointerdown",i)},0);return()=>{window.clearTimeout(a),t.removeEventListener("pointerdown",i),t.removeEventListener("click",o.current)}},[t,n]),{onPointerDownCapture:()=>r.current=!0}}function xF(e,t=globalThis==null?void 0:globalThis.document){const n=va(e),r=m.useRef(!1);return m.useEffect(()=>{const o=i=>{i.target&&!r.current&&hT(pF,n,{originalEvent:i},{discrete:!1})};return t.addEventListener("focusin",o),()=>t.removeEventListener("focusin",o)},[t,n]),{onFocusCapture:()=>r.current=!0,onBlurCapture:()=>r.current=!1}}function U1(){const e=new CustomEvent(Db);document.dispatchEvent(e)}function hT(e,t,n,{discrete:r}){const o=n.originalEvent.target,i=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&o.addEventListener(e,t,{once:!0}),r?cF(o,i):o.dispatchEvent(i)}var ay="focusScope.autoFocusOnMount",ly="focusScope.autoFocusOnUnmount",H1={bubbles:!1,cancelable:!0},yF="FocusScope",mT=m.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...a}=e,[l,u]=m.useState(null),f=va(o),p=va(i),h=m.useRef(null),g=rr(t,v=>u(v)),y=m.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;m.useEffect(()=>{if(r){let v=function(N){if(y.paused||!l)return;const C=N.target;l.contains(C)?h.current=C:gi(h.current,{select:!0})},b=function(N){if(y.paused||!l)return;const C=N.relatedTarget;C!==null&&(l.contains(C)||gi(h.current,{select:!0}))},j=function(N){if(document.activeElement===document.body)for(const P of N)P.removedNodes.length>0&&gi(l)};document.addEventListener("focusin",v),document.addEventListener("focusout",b);const S=new MutationObserver(j);return l&&S.observe(l,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",v),document.removeEventListener("focusout",b),S.disconnect()}}},[r,l,y.paused]),m.useEffect(()=>{if(l){W1.add(y);const v=document.activeElement;if(!l.contains(v)){const j=new CustomEvent(ay,H1);l.addEventListener(ay,f),l.dispatchEvent(j),j.defaultPrevented||(bF(NF(gT(l)),{select:!0}),document.activeElement===v&&gi(l))}return()=>{l.removeEventListener(ay,f),setTimeout(()=>{const j=new CustomEvent(ly,H1);l.addEventListener(ly,p),l.dispatchEvent(j),j.defaultPrevented||gi(v??document.body,{select:!0}),l.removeEventListener(ly,p),W1.remove(y)},0)}}},[l,f,p,y]);const k=m.useCallback(v=>{if(!n&&!r||y.paused)return;const b=v.key==="Tab"&&!v.altKey&&!v.ctrlKey&&!v.metaKey,j=document.activeElement;if(b&&j){const S=v.currentTarget,[N,C]=vF(S);N&&C?!v.shiftKey&&j===C?(v.preventDefault(),n&&gi(N,{select:!0})):v.shiftKey&&j===N&&(v.preventDefault(),n&&gi(C,{select:!0})):j===S&&v.preventDefault()}},[n,r,y.paused]);return s.jsx(kn.div,{tabIndex:-1,...a,ref:g,onKeyDown:k})});mT.displayName=yF;function bF(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(gi(r,{select:t}),document.activeElement!==n)return}function vF(e){const t=gT(e),n=V1(t,e),r=V1(t.reverse(),e);return[n,r]}function gT(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:r=>{const o=r.tagName==="INPUT"&&r.type==="hidden";return r.disabled||r.hidden||o?NodeFilter.FILTER_SKIP:r.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function V1(e,t){for(const n of e)if(!wF(n,{upTo:t}))return n}function wF(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 jF(e){return e instanceof HTMLInputElement&&"select"in e}function gi(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&jF(e)&&t&&e.select()}}var W1=kF();function kF(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=K1(e,t),e.unshift(t)},remove(t){var n;e=K1(e,t),(n=e[0])==null||n.resume()}}}function K1(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function NF(e){return e.filter(t=>t.tagName!=="A")}var SF="Portal",uw=m.forwardRef((e,t)=>{var l;const{container:n,...r}=e,[o,i]=m.useState(!1);ji(()=>i(!0),[]);const a=n||o&&((l=globalThis==null?void 0:globalThis.document)==null?void 0:l.body);return a?e4.createPortal(s.jsx(kn.div,{...r,ref:t}),a):null});uw.displayName=SF;function CF(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var Aa=e=>{const{present:t,children:n}=e,r=EF(t),o=typeof n=="function"?n({present:r.isPresent}):m.Children.only(n),i=rr(r.ref,TF(o));return typeof n=="function"||r.isPresent?m.cloneElement(o,{ref:i}):null};Aa.displayName="Presence";function EF(e){const[t,n]=m.useState(),r=m.useRef(null),o=m.useRef(e),i=m.useRef("none"),a=e?"mounted":"unmounted",[l,u]=CF(a,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return m.useEffect(()=>{const f=lp(r.current);i.current=l==="mounted"?f:"none"},[l]),ji(()=>{const f=r.current,p=o.current;if(p!==e){const g=i.current,y=lp(f);e?u("MOUNT"):y==="none"||(f==null?void 0:f.display)==="none"?u("UNMOUNT"):u(p&&g!==y?"ANIMATION_OUT":"UNMOUNT"),o.current=e}},[e,u]),ji(()=>{if(t){let f;const p=t.ownerDocument.defaultView??window,h=y=>{const v=lp(r.current).includes(CSS.escape(y.animationName));if(y.target===t&&v&&(u("ANIMATION_END"),!o.current)){const b=t.style.animationFillMode;t.style.animationFillMode="forwards",f=p.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=b)})}},g=y=>{y.target===t&&(i.current=lp(r.current))};return t.addEventListener("animationstart",g),t.addEventListener("animationcancel",h),t.addEventListener("animationend",h),()=>{p.clearTimeout(f),t.removeEventListener("animationstart",g),t.removeEventListener("animationcancel",h),t.removeEventListener("animationend",h)}}else u("ANIMATION_END")},[t,u]),{isPresent:["mounted","unmountSuspended"].includes(l),ref:m.useCallback(f=>{r.current=f?getComputedStyle(f):null,n(f)},[])}}function lp(e){return(e==null?void 0:e.animationName)||"none"}function TF(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var cy=0;function RF(){m.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??q1()),document.body.insertAdjacentElement("beforeend",e[1]??q1()),cy++,()=>{cy===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),cy--}},[])}function q1(){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 qs=function(){return qs=Object.assign||function(t){for(var n,r=1,o=arguments.length;r<o;r++){n=arguments[r];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},qs.apply(this,arguments)};function xT(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}function AF(e,t,n){if(n||arguments.length===2)for(var r=0,o=t.length,i;r<o;r++)(i||!(r in t))&&(i||(i=Array.prototype.slice.call(t,0,r)),i[r]=t[r]);return e.concat(i||Array.prototype.slice.call(t))}var Up="right-scroll-bar-position",Hp="width-before-scroll-bar",PF="with-scroll-bars-hidden",_F="--removed-body-scroll-bar-size";function uy(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function DF(e,t){var n=m.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(r){var o=n.value;o!==r&&(n.value=r,n.callback(r,o))}}}})[0];return n.callback=t,n.facade}var $F=typeof window<"u"?m.useLayoutEffect:m.useEffect,G1=new WeakMap;function IF(e,t){var n=DF(null,function(r){return e.forEach(function(o){return uy(o,r)})});return $F(function(){var r=G1.get(n);if(r){var o=new Set(r),i=new Set(e),a=n.current;o.forEach(function(l){i.has(l)||uy(l,null)}),i.forEach(function(l){o.has(l)||uy(l,a)})}G1.set(n,e)},[e]),n}function MF(e){return e}function LF(e,t){t===void 0&&(t=MF);var n=[],r=!1,o={read:function(){if(r)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(i){var a=t(i,r);return n.push(a),function(){n=n.filter(function(l){return l!==a})}},assignSyncMedium:function(i){for(r=!0;n.length;){var a=n;n=[],a.forEach(i)}n={push:function(l){return i(l)},filter:function(){return n}}},assignMedium:function(i){r=!0;var a=[];if(n.length){var l=n;n=[],l.forEach(i),a=n}var u=function(){var p=a;a=[],p.forEach(i)},f=function(){return Promise.resolve().then(u)};f(),n={push:function(p){a.push(p),f()},filter:function(p){return a=a.filter(p),n}}}};return o}function OF(e){e===void 0&&(e={});var t=LF(null);return t.options=qs({async:!0,ssr:!1},e),t}var yT=function(e){var t=e.sideCar,n=xT(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw new Error("Sidecar medium not found");return m.createElement(r,qs({},n))};yT.isSideCarExport=!0;function FF(e,t){return e.useMedium(t),yT}var bT=OF(),dy=function(){},bm=m.forwardRef(function(e,t){var n=m.useRef(null),r=m.useState({onScrollCapture:dy,onWheelCapture:dy,onTouchMoveCapture:dy}),o=r[0],i=r[1],a=e.forwardProps,l=e.children,u=e.className,f=e.removeScrollBar,p=e.enabled,h=e.shards,g=e.sideCar,y=e.noRelative,k=e.noIsolation,v=e.inert,b=e.allowPinchZoom,j=e.as,S=j===void 0?"div":j,N=e.gapMode,C=xT(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),P=g,T=IF([n,t]),R=qs(qs({},C),o);return m.createElement(m.Fragment,null,p&&m.createElement(P,{sideCar:bT,removeScrollBar:f,shards:h,noRelative:y,noIsolation:k,inert:v,setCallbacks:i,allowPinchZoom:!!b,lockRef:n,gapMode:N}),a?m.cloneElement(m.Children.only(l),qs(qs({},R),{ref:T})):m.createElement(S,qs({},R,{className:u,ref:T}),l))});bm.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};bm.classNames={fullWidth:Hp,zeroRight:Up};var zF=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function BF(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=zF();return t&&e.setAttribute("nonce",t),e}function UF(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function HF(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var VF=function(){var e=0,t=null;return{add:function(n){e==0&&(t=BF())&&(UF(t,n),HF(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},WF=function(){var e=VF();return function(t,n){m.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},vT=function(){var e=WF(),t=function(n){var r=n.styles,o=n.dynamic;return e(r,o),null};return t},KF={left:0,top:0,right:0,gap:0},fy=function(e){return parseInt(e||"",10)||0},qF=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],r=t[e==="padding"?"paddingTop":"marginTop"],o=t[e==="padding"?"paddingRight":"marginRight"];return[fy(n),fy(r),fy(o)]},GF=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return KF;var t=qF(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},YF=vT(),zl="data-scroll-locked",XF=function(e,t,n,r){var o=e.left,i=e.top,a=e.right,l=e.gap;return n===void 0&&(n="margin"),`
|
|
562
|
-
.`.concat(PF,` {
|
|
563
|
-
overflow: hidden `).concat(r,`;
|
|
564
|
-
padding-right: `).concat(l,"px ").concat(r,`;
|
|
565
|
-
}
|
|
566
|
-
body[`).concat(zl,`] {
|
|
567
|
-
overflow: hidden `).concat(r,`;
|
|
568
|
-
overscroll-behavior: contain;
|
|
569
|
-
`).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&`
|
|
570
|
-
padding-left: `.concat(o,`px;
|
|
571
|
-
padding-top: `).concat(i,`px;
|
|
572
|
-
padding-right: `).concat(a,`px;
|
|
573
|
-
margin-left:0;
|
|
574
|
-
margin-top:0;
|
|
575
|
-
margin-right: `).concat(l,"px ").concat(r,`;
|
|
576
|
-
`),n==="padding"&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),`
|
|
577
|
-
}
|
|
578
|
-
|
|
579
|
-
.`).concat(Up,` {
|
|
580
|
-
right: `).concat(l,"px ").concat(r,`;
|
|
581
|
-
}
|
|
582
|
-
|
|
583
|
-
.`).concat(Hp,` {
|
|
584
|
-
margin-right: `).concat(l,"px ").concat(r,`;
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
.`).concat(Up," .").concat(Up,` {
|
|
588
|
-
right: 0 `).concat(r,`;
|
|
589
|
-
}
|
|
590
|
-
|
|
591
|
-
.`).concat(Hp," .").concat(Hp,` {
|
|
592
|
-
margin-right: 0 `).concat(r,`;
|
|
593
|
-
}
|
|
594
|
-
|
|
595
|
-
body[`).concat(zl,`] {
|
|
596
|
-
`).concat(_F,": ").concat(l,`px;
|
|
597
|
-
}
|
|
598
|
-
`)},Y1=function(){var e=parseInt(document.body.getAttribute(zl)||"0",10);return isFinite(e)?e:0},QF=function(){m.useEffect(function(){return document.body.setAttribute(zl,(Y1()+1).toString()),function(){var e=Y1()-1;e<=0?document.body.removeAttribute(zl):document.body.setAttribute(zl,e.toString())}},[])},JF=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;QF();var i=m.useMemo(function(){return GF(o)},[o]);return m.createElement(YF,{styles:XF(i,!t,o,n?"":"!important")})},$b=!1;if(typeof window<"u")try{var cp=Object.defineProperty({},"passive",{get:function(){return $b=!0,!0}});window.addEventListener("test",cp,cp),window.removeEventListener("test",cp,cp)}catch{$b=!1}var dl=$b?{passive:!1}:!1,ZF=function(e){return e.tagName==="TEXTAREA"},wT=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!ZF(e)&&n[t]==="visible")},e6=function(e){return wT(e,"overflowY")},t6=function(e){return wT(e,"overflowX")},X1=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=jT(e,r);if(o){var i=kT(e,r),a=i[1],l=i[2];if(a>l)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},n6=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},r6=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},jT=function(e,t){return e==="v"?e6(t):t6(t)},kT=function(e,t){return e==="v"?n6(t):r6(t)},s6=function(e,t){return e==="h"&&t==="rtl"?-1:1},o6=function(e,t,n,r,o){var i=s6(e,window.getComputedStyle(t).direction),a=i*r,l=n.target,u=t.contains(l),f=!1,p=a>0,h=0,g=0;do{if(!l)break;var y=kT(e,l),k=y[0],v=y[1],b=y[2],j=v-b-i*k;(k||j)&&jT(e,l)&&(h+=j,g+=k);var S=l.parentNode;l=S&&S.nodeType===Node.DOCUMENT_FRAGMENT_NODE?S.host:S}while(!u&&l!==document.body||u&&(t.contains(l)||t===l));return(p&&Math.abs(h)<1||!p&&Math.abs(g)<1)&&(f=!0),f},up=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},Q1=function(e){return[e.deltaX,e.deltaY]},J1=function(e){return e&&"current"in e?e.current:e},i6=function(e,t){return e[0]===t[0]&&e[1]===t[1]},a6=function(e){return`
|
|
599
|
-
.block-interactivity-`.concat(e,` {pointer-events: none;}
|
|
600
|
-
.allow-interactivity-`).concat(e,` {pointer-events: all;}
|
|
601
|
-
`)},l6=0,fl=[];function c6(e){var t=m.useRef([]),n=m.useRef([0,0]),r=m.useRef(),o=m.useState(l6++)[0],i=m.useState(vT)[0],a=m.useRef(e);m.useEffect(function(){a.current=e},[e]),m.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var v=AF([e.lockRef.current],(e.shards||[]).map(J1),!0).filter(Boolean);return v.forEach(function(b){return b.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),v.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var l=m.useCallback(function(v,b){if("touches"in v&&v.touches.length===2||v.type==="wheel"&&v.ctrlKey)return!a.current.allowPinchZoom;var j=up(v),S=n.current,N="deltaX"in v?v.deltaX:S[0]-j[0],C="deltaY"in v?v.deltaY:S[1]-j[1],P,T=v.target,R=Math.abs(N)>Math.abs(C)?"h":"v";if("touches"in v&&R==="h"&&T.type==="range")return!1;var I=window.getSelection(),_=I&&I.anchorNode,F=_?_===T||_.contains(T):!1;if(F)return!1;var D=X1(R,T);if(!D)return!0;if(D?P=R:(P=R==="v"?"h":"v",D=X1(R,T)),!D)return!1;if(!r.current&&"changedTouches"in v&&(N||C)&&(r.current=P),!P)return!0;var W=r.current||P;return o6(W,b,v,W==="h"?N:C)},[]),u=m.useCallback(function(v){var b=v;if(!(!fl.length||fl[fl.length-1]!==i)){var j="deltaY"in b?Q1(b):up(b),S=t.current.filter(function(P){return P.name===b.type&&(P.target===b.target||b.target===P.shadowParent)&&i6(P.delta,j)})[0];if(S&&S.should){b.cancelable&&b.preventDefault();return}if(!S){var N=(a.current.shards||[]).map(J1).filter(Boolean).filter(function(P){return P.contains(b.target)}),C=N.length>0?l(b,N[0]):!a.current.noIsolation;C&&b.cancelable&&b.preventDefault()}}},[]),f=m.useCallback(function(v,b,j,S){var N={name:v,delta:b,target:j,should:S,shadowParent:u6(j)};t.current.push(N),setTimeout(function(){t.current=t.current.filter(function(C){return C!==N})},1)},[]),p=m.useCallback(function(v){n.current=up(v),r.current=void 0},[]),h=m.useCallback(function(v){f(v.type,Q1(v),v.target,l(v,e.lockRef.current))},[]),g=m.useCallback(function(v){f(v.type,up(v),v.target,l(v,e.lockRef.current))},[]);m.useEffect(function(){return fl.push(i),e.setCallbacks({onScrollCapture:h,onWheelCapture:h,onTouchMoveCapture:g}),document.addEventListener("wheel",u,dl),document.addEventListener("touchmove",u,dl),document.addEventListener("touchstart",p,dl),function(){fl=fl.filter(function(v){return v!==i}),document.removeEventListener("wheel",u,dl),document.removeEventListener("touchmove",u,dl),document.removeEventListener("touchstart",p,dl)}},[]);var y=e.removeScrollBar,k=e.inert;return m.createElement(m.Fragment,null,k?m.createElement(i,{styles:a6(o)}):null,y?m.createElement(JF,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function u6(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const d6=FF(bT,c6);var NT=m.forwardRef(function(e,t){return m.createElement(bm,qs({},e,{ref:t,sideCar:d6}))});NT.classNames=bm.classNames;var f6=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},pl=new WeakMap,dp=new WeakMap,fp={},py=0,ST=function(e){return e&&(e.host||ST(e.parentNode))},p6=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=ST(n);return r&&e.contains(r)?r:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},h6=function(e,t,n,r){var o=p6(t,Array.isArray(e)?e:[e]);fp[n]||(fp[n]=new WeakMap);var i=fp[n],a=[],l=new Set,u=new Set(o),f=function(h){!h||l.has(h)||(l.add(h),f(h.parentNode))};o.forEach(f);var p=function(h){!h||u.has(h)||Array.prototype.forEach.call(h.children,function(g){if(l.has(g))p(g);else try{var y=g.getAttribute(r),k=y!==null&&y!=="false",v=(pl.get(g)||0)+1,b=(i.get(g)||0)+1;pl.set(g,v),i.set(g,b),a.push(g),v===1&&k&&dp.set(g,!0),b===1&&g.setAttribute(n,"true"),k||g.setAttribute(r,"true")}catch(j){console.error("aria-hidden: cannot operate on ",g,j)}})};return p(t),l.clear(),py++,function(){a.forEach(function(h){var g=pl.get(h)-1,y=i.get(h)-1;pl.set(h,g),i.set(h,y),g||(dp.has(h)||h.removeAttribute(r),dp.delete(h)),y||h.removeAttribute(n)}),py--,py||(pl=new WeakMap,pl=new WeakMap,dp=new WeakMap,fp={})}},m6=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=f6(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),h6(r,o,n,"aria-hidden")):function(){return null}};function g6(e){const t=x6(e),n=m.forwardRef((r,o)=>{const{children:i,...a}=r,l=m.Children.toArray(i),u=l.find(b6);if(u){const f=u.props.children,p=l.map(h=>h===u?m.Children.count(f)>1?m.Children.only(null):m.isValidElement(f)?f.props.children:null:h);return s.jsx(t,{...a,ref:o,children:m.isValidElement(f)?m.cloneElement(f,void 0,p):null})}return s.jsx(t,{...a,ref:o,children:i})});return n.displayName=`${e}.Slot`,n}function x6(e){const t=m.forwardRef((n,r)=>{const{children:o,...i}=n;if(m.isValidElement(o)){const a=w6(o),l=v6(i,o.props);return o.type!==m.Fragment&&(l.ref=r?xm(r,a):a),m.cloneElement(o,l)}return m.Children.count(o)>1?m.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var y6=Symbol("radix.slottable");function b6(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===y6}function v6(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...l)=>{const u=i(...l);return o(...l),u}:o&&(n[r]=o):r==="style"?n[r]={...o,...i}:r==="className"&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}function w6(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var vm="Dialog",[CT,ET]=Ra(vm),[j6,Rs]=CT(vm),TT=e=>{const{__scopeDialog:t,children:n,open:r,defaultOpen:o,onOpenChange:i,modal:a=!0}=e,l=m.useRef(null),u=m.useRef(null),[f,p]=ym({prop:r,defaultProp:o??!1,onChange:i,caller:vm});return s.jsx(j6,{scope:t,triggerRef:l,contentRef:u,contentId:Fl(),titleId:Fl(),descriptionId:Fl(),open:f,onOpenChange:p,onOpenToggle:m.useCallback(()=>p(h=>!h),[p]),modal:a,children:n})};TT.displayName=vm;var RT="DialogTrigger",AT=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Rs(RT,n),i=rr(t,o.triggerRef);return s.jsx(kn.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":pw(o.open),...r,ref:i,onClick:sn(e.onClick,o.onOpenToggle)})});AT.displayName=RT;var dw="DialogPortal",[k6,PT]=CT(dw,{forceMount:void 0}),_T=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:o}=e,i=Rs(dw,t);return s.jsx(k6,{scope:t,forceMount:n,children:m.Children.map(r,a=>s.jsx(Aa,{present:n||i.open,children:s.jsx(uw,{asChild:!0,container:o,children:a})}))})};_T.displayName=dw;var mh="DialogOverlay",DT=m.forwardRef((e,t)=>{const n=PT(mh,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=Rs(mh,e.__scopeDialog);return i.modal?s.jsx(Aa,{present:r||i.open,children:s.jsx(S6,{...o,ref:t})}):null});DT.displayName=mh;var N6=g6("DialogOverlay.RemoveScroll"),S6=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Rs(mh,n);return s.jsx(NT,{as:N6,allowPinchZoom:!0,shards:[o.contentRef],children:s.jsx(kn.div,{"data-state":pw(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),wa="DialogContent",$T=m.forwardRef((e,t)=>{const n=PT(wa,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=Rs(wa,e.__scopeDialog);return s.jsx(Aa,{present:r||i.open,children:i.modal?s.jsx(C6,{...o,ref:t}):s.jsx(E6,{...o,ref:t})})});$T.displayName=wa;var C6=m.forwardRef((e,t)=>{const n=Rs(wa,e.__scopeDialog),r=m.useRef(null),o=rr(t,n.contentRef,r);return m.useEffect(()=>{const i=r.current;if(i)return m6(i)},[]),s.jsx(IT,{...e,ref:o,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:sn(e.onCloseAutoFocus,i=>{var a;i.preventDefault(),(a=n.triggerRef.current)==null||a.focus()}),onPointerDownOutside:sn(e.onPointerDownOutside,i=>{const a=i.detail.originalEvent,l=a.button===0&&a.ctrlKey===!0;(a.button===2||l)&&i.preventDefault()}),onFocusOutside:sn(e.onFocusOutside,i=>i.preventDefault())})}),E6=m.forwardRef((e,t)=>{const n=Rs(wa,e.__scopeDialog),r=m.useRef(!1),o=m.useRef(!1);return s.jsx(IT,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:i=>{var a,l;(a=e.onCloseAutoFocus)==null||a.call(e,i),i.defaultPrevented||(r.current||(l=n.triggerRef.current)==null||l.focus(),i.preventDefault()),r.current=!1,o.current=!1},onInteractOutside:i=>{var u,f;(u=e.onInteractOutside)==null||u.call(e,i),i.defaultPrevented||(r.current=!0,i.detail.originalEvent.type==="pointerdown"&&(o.current=!0));const a=i.target;((f=n.triggerRef.current)==null?void 0:f.contains(a))&&i.preventDefault(),i.detail.originalEvent.type==="focusin"&&o.current&&i.preventDefault()}})}),IT=m.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:i,...a}=e,l=Rs(wa,n),u=m.useRef(null),f=rr(t,u);return RF(),s.jsxs(s.Fragment,{children:[s.jsx(mT,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:i,children:s.jsx(cw,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":pw(l.open),...a,ref:f,onDismiss:()=>l.onOpenChange(!1)})}),s.jsxs(s.Fragment,{children:[s.jsx(R6,{titleId:l.titleId}),s.jsx(P6,{contentRef:u,descriptionId:l.descriptionId})]})]})}),fw="DialogTitle",MT=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Rs(fw,n);return s.jsx(kn.h2,{id:o.titleId,...r,ref:t})});MT.displayName=fw;var LT="DialogDescription",OT=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Rs(LT,n);return s.jsx(kn.p,{id:o.descriptionId,...r,ref:t})});OT.displayName=LT;var FT="DialogClose",zT=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=Rs(FT,n);return s.jsx(kn.button,{type:"button",...r,ref:t,onClick:sn(e.onClick,()=>o.onOpenChange(!1))})});zT.displayName=FT;function pw(e){return e?"open":"closed"}var BT="DialogTitleWarning",[T6,UT]=Y5(BT,{contentName:wa,titleName:fw,docsSlug:"dialog"}),R6=({titleId:e})=>{const t=UT(BT),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
|
|
602
|
-
|
|
603
|
-
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
604
|
-
|
|
605
|
-
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return m.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},A6="DialogDescriptionWarning",P6=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${UT(A6).contentName}}.`;return m.useEffect(()=>{var i;const o=(i=e.current)==null?void 0:i.getAttribute("aria-describedby");t&&o&&(document.getElementById(t)||console.warn(r))},[r,e,t]),null},HT=TT,VT=AT,WT=_T,hw=DT,mw=$T,gw=MT,xw=OT,yw=zT;const Ln=HT,_6=VT,D6=WT,KT=yw,qT=m.forwardRef(({className:e,...t},n)=>s.jsx(hw,{ref:n,className:we("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm",e),...t}));qT.displayName=hw.displayName;const Nn=m.forwardRef(({className:e,children:t,...n},r)=>s.jsxs(D6,{children:[s.jsx(qT,{}),s.jsx(mw,{ref:r,className:we("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})]}));Nn.displayName=mw.displayName;function or({className:e,...t}){return s.jsx("div",{className:we("flex flex-col space-y-2 text-left",e),...t})}function Wr({className:e,...t}){return s.jsx("div",{className:we("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t})}const Sn=m.forwardRef(({className:e,...t},n)=>s.jsx(gw,{ref:n,className:we("text-lg font-semibold tracking-tight text-foreground",e),...t}));Sn.displayName=gw.displayName;const ns=m.forwardRef(({className:e,...t},n)=>s.jsx(xw,{ref:n,className:we("text-sm leading-6 text-muted-foreground",e),...t}));ns.displayName=xw.displayName;const $6=-1,I6=-40;function hy(e,t){if(e.length===0)return 0;if(t.length===0)return-1/0;let n=0,r=0,o=-2,i=0;for(let a=0;a<e.length;a++){const l=e[a];let u=!1;for(;r<t.length;)if(t[r]===l){if(n+=100,r===o+1&&(n+=20),r===0)n+=30;else{const f=t[r-1];(f===" "||f==="-"||f==="_"||f==="/")&&(n+=15)}i>0&&(n+=Math.max(I6,i*$6)),o=r,i=0,r++,u=!0;break}else i++,r++;if(!u)return-1/0}return n}const Z1={page:0,project:1,assignment:2,playbook:3,server:4,todo:5};function bw(e,t,n=50){const r=e.toLowerCase();if(!r)return t.slice(0,n).map(a=>({...a,score:0}));const i=t.map(a=>{var h;const l=hy(r,a.title.toLowerCase())*1,u=a.subtitle?hy(r,a.subtitle.toLowerCase())*.5:-1/0,f=(h=a.keywords)!=null&&h.length?hy(r,a.keywords.join(" ").toLowerCase())*.3:-1/0,p=Math.max(l,u,f);return{...a,score:p}}).filter(a=>a.score>-1/0);return i.sort((a,l)=>l.score!==a.score?l.score-a.score:a.title.length!==l.title.length?a.title.length-l.title.length:a.title!==l.title?a.title<l.title?-1:1:(Z1[a.type]??99)-(Z1[l.type]??99)),i.slice(0,n)}const M6={a:"assignment",p:"project",t:"todo",s:"server",pb:"playbook"},eN=Symbol("absent");function pp(e){return e.replace(/\s+/g," ").trim()}const tN=new Set(["IDENT","STRING","NUMBER","DATE","DURATION"]);function L6(e){const t=e.externalIds;return Array.isArray(t)?t.map(n=>n&&typeof n=="object"?`${n.system}:${n.id}`:"").join(" "):""}function O6(e){const t=e.externalIds;return Array.isArray(t)?t.filter(n=>{const r=n==null?void 0:n.system;return typeof r=="string"&&r.toLowerCase()==="jira"}).map(n=>String(n.id)).join(" "):""}const id={kind:{kind:"enum",get:e=>e.type},status:{kind:"enum"},tag:{kind:"list",get:e=>e.tags},tags:{kind:"list"},assignee:{kind:"string",noneSentinel:!0,get:e=>"assignee"in e?e.assignee:eN},type:{kind:"enum",get:e=>e.assignmentType},project:{kind:"string",noneSentinel:!0,get:e=>"project"in e?e.project:eN},externalid:{kind:"substring",get:L6},jira:{kind:"substring",get:O6},title:{kind:"substring"},search:{kind:"substring",get:e=>e.searchText??e.title}};function F6(e,t=M6,n){const r=(n==null?void 0:n.defaultScope)??"all",o=e.match(/^\s*all:\s*/i),i=o!==null,a=i?e.slice(o[0].length):e,l=B6(a,t),u={aqlExpr:l.aqlExpr,fuzzy:l.fuzzy};if(r!=="all"&&!i&&e.trim()!==""&&!z6(l.aqlExpr)){const f=`kind:${r}`;u.aqlExpr=l.aqlExpr?l.explicit?`${f} (${l.aqlExpr})`:`${f} ${l.aqlExpr}`:f}return u}function z6(e){if(!e)return!1;let t;try{t=mm(e)}catch{return!1}for(let n=0;n<t.length-1;n++)if(t[n].type==="IDENT"&&t[n].text.toLowerCase()==="kind"&&t[n+1].type==="COLON")return!0;return!1}function B6(e,t){let n;try{n=mm(e)}catch(h){if(h instanceof ia)return{aqlExpr:"",fuzzy:pp(e),explicit:!1};throw h}const r=n.length,o=(h,g)=>e.slice(n[h].pos,g<r?n[g].pos:e.length);let i=!1;for(let h=0;h<r;h++){const g=n[h];if(g.type==="OR"||g.type==="LPAREN"&&(h===0||n[h-1].type!=="COLON")){i=!0;break}}if(i){const h=pp(V6(e,n,r,t));return ec(h,id).query?{aqlExpr:h,fuzzy:"",explicit:!0}:{aqlExpr:"",fuzzy:pp(e),explicit:!0}}const a=[],l=[];let u=0,f=0;const p=h=>{if(h>f){const g=pp(o(f,h));g&&l.push(g)}};for(;u<r-1;){const h=U6(n,u,t);if(h){p(u),a.push(h.atom),u=h.end,f=u;continue}const g=H6(n,u,r);if(g!==null){const y=o(u,g).trim();if(ec(y,id).query){p(u),a.push(y),u=g,f=u;continue}u=g;continue}u++}return p(r-1),{aqlExpr:a.join(" "),fuzzy:l.join(" "),explicit:!1}}function U6(e,t,n){var l;let r=t,o="";e[r].type==="MINUS"?(o="-",r++):e[r].type==="NOT"&&(o="NOT ",r++);const i=e[r];if(!i||i.type!=="IDENT")return null;const a=n[i.text.toLowerCase()];return!a||((l=e[r+1])==null?void 0:l.type)!=="COLON"?null:{atom:`${o}kind:${a}`,end:r+2}}function H6(e,t,n){let r=t;(e[r].type==="MINUS"||e[r].type==="NOT")&&r++;const o=e[r];if(!o||o.type!=="IDENT"||!Object.prototype.hasOwnProperty.call(id,o.text.toLowerCase()))return null;const i=e[r+1];if(!i)return null;if(i.type==="COLON"){const a=e[r+2];if(!a)return null;if(a.type==="LPAREN"){let l=0;for(let u=r+2;u<n;u++)if(e[u].type==="LPAREN")l++;else if(e[u].type==="RPAREN"){if(l--,l===0)return u+1}else if(e[u].type==="EOF")return null;return null}return tN.has(a.type)?r+3:null}if(i.type==="OP"){const a=e[r+2];return a&&tN.has(a.type)?r+3:null}return null}function V6(e,t,n,r){var a;let o="",i=0;for(let l=0;l<n;l++){const u=t[l];u.type==="IDENT"&&Object.prototype.hasOwnProperty.call(r,u.text.toLowerCase())&&((a=t[l+1])==null?void 0:a.type)==="COLON"&&(o+=e.slice(i,u.pos)+`kind:${r[u.text.toLowerCase()]} `,i=t[l+1].pos+1)}return o+=e.slice(i),o}const vw=["kanban","list","table"],GT=["title","status","priority","assignee","dependencies","created","updated"],W6=["asc","desc"],K6=["comfortable","compact"],q6=["none","status","type","priority","assignee","project"],G6=["last_24h","last_7d","last_30d","last_90d","older_7d","older_30d"];function He(e){const t=e===void 0?[]:Array.isArray(e)?e:[e],n=[];for(const r of t){if(typeof r!="string")continue;const o=r.trim();!o||o==="all"||n.includes(o)||n.push(o)}return n}function Y6(e,t){const n=He(e),r=He(t);return n.length===r.length&&n.every(o=>r.includes(o))}const X6={defaultView:"kanban",sortField:"updated",sortDirection:"desc",density:"comfortable",grouping:"none",filters:{status:"all",type:"all",priority:"all",assignee:"all",project:"all",activity:"all"}},ad={version:1,global:X6,projects:{}};function my(e){return e==="table"?"table":"kanban"}function Q6(e,t){return t?{...e,...t}:{...e}}function YT(e,t){const n=e.global;if(t===null)return n;const r=e.projects[t];return r?{defaultView:r.defaultView??n.defaultView,sortField:r.sortField??n.sortField,sortDirection:r.sortDirection??n.sortDirection,density:n.density,grouping:r.grouping??n.grouping,filters:Q6(n.filters,r.filters)}:n}const J6=/^[A-Za-z_][A-Za-z0-9_-]*$/,Z6=new Set(["and","or","not"]);function ww(e){return J6.test(e)&&!Z6.has(e.toLowerCase())?e:XT(e)}function XT(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}const QT="__unassigned__",JT="__standalone__",ez={last_24h:"24h",last_7d:"7d",last_30d:"30d",last_90d:"90d",older_7d:"7d",older_30d:"30d"};function tz(e){return e.startsWith("older_")?"<":">="}const jw=["status","type","priority","assignee","project","tags"],nz=["created","updated"];function rz(e){var i;const t={};for(const a of jw){const l=He(e[a]);l.length&&(t[a]=l)}const n=(i=e.search)==null?void 0:i.trim();n&&(t.search=n);let r=e.activity&&e.activity!=="all"?e.activity:void 0;const o=e.dateRange;if(o){const a=sz(o);if(a)r||(r=a);else{const l=oz(o);l&&(t.dateRange=l)}}return r&&(t.activity=r),t}function sz(e){return e.field!=="updated"||!e.preset?null:e.preset==="older_7d"?"stale":e.preset==="last_7d"?"fresh":null}function oz(e){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 null;const r={field:e.field};return t&&(r.from=t),n&&(r.to=n),r}function Vu(e){const t=rz(e),n=[];for(const r of jw){const o=t[r]??[];o.length&&n.push(iz(r,o))}return t.search&&n.push(`search:${XT(t.search)}`),t.activity==="stale"?n.push("updated < -7d"):t.activity==="fresh"&&n.push("updated >= -7d"),t.dateRange&&n.push(...lz(t.dateRange)),n.join(" AND ")}function iz(e,t){const n=t.map(r=>az(e,r));return n.length===1?`${e}:${n[0]}`:`${e}:(${n.join(", ")})`}function az(e,t){return e==="assignee"&&t===QT||e==="project"&&t===JT?"none":ww(t)}function lz(e){if(e.preset)return[`${e.field} ${tz(e.preset)} -${ez[e.preset]}`];const t=[];return e.from&&t.push(`${e.field} >= ${e.from}`),e.to&&t.push(`${e.field} <= ${e.to}`),t}function Wu(e){const t=gm(e);if(!t.ast)return null;const n=cz(t.ast);if(n===null)return null;const r={},o=new Set,i=new Map;for(const a of n){const l=uz(a);if(!l)return null;switch(l.kind){case"value":{if(o.has(l.field))return null;o.add(l.field),r[l.field]=l.values;break}case"search":{if(o.has("search"))return null;o.add("search"),r.search=l.text;break}case"activity":{if(o.has("activity"))return null;o.add("activity"),r.activity=l.activity;break}case"datePreset":{const u=`date:${l.field}`;if(o.has(u)||i.has(l.field))return null;o.add(u),r.dateRange={field:l.field,preset:l.preset};break}case"dateBound":{const u=`date:${l.field}`;if(o.has(u))return null;const f=i.get(l.field)??{};if(l.bound==="from"){if(f.from!==void 0)return null;f.from=l.date}else{if(f.to!==void 0)return null;f.to=l.date}i.set(l.field,f);break}}}if(i.size>1)return null;for(const[a,l]of i){if(r.dateRange)return null;const u={field:a};l.from!==void 0&&(u.from=l.from),l.to!==void 0&&(u.to=l.to),r.dateRange=u}return r}function cz(e){if(e.kind==="all")return[];if(e.kind==="atom")return[e];if(e.kind==="and"){const t=[];for(const n of e.children){if(n.kind!=="atom")return null;t.push(n)}return t}return null}function uz(e){const t=e.field.toLowerCase();if(e.op===":"){if(jw.includes(t)){const o=t,i=[];for(const a of e.values){const l=mz(o,a);if(l===null)return null;i.push(l)}return i.length===0?null:{kind:"value",field:o,values:i}}return t==="search"?e.values.length!==1?null:{kind:"search",text:e.values[0].raw}:null}if(!nz.includes(t))return null;const n=t;if(e.values.length!==1)return null;const r=e.values[0];return r.type==="duration"?dz(n,e.op,r):r.type==="date"?e.op===">="?{kind:"dateBound",field:n,bound:"from",date:r.raw}:e.op==="<="?{kind:"dateBound",field:n,bound:"to",date:r.raw}:null:null}function dz(e,t,n){if(n.sign!==-1)return null;const r=fz(n.raw);if(e==="updated"){if(t==="<"&&r==="7d")return{kind:"activity",activity:"stale"};if(t===">="&&r==="7d")return{kind:"activity",activity:"fresh"}}const o=hz(t,r);return o?{kind:"datePreset",field:e,preset:o}:null}function fz(e){return e.replace(/^[-+]/,"")}const pz={">=":{"24h":"last_24h","7d":"last_7d","30d":"last_30d","90d":"last_90d"},"<":{"7d":"older_7d","30d":"older_30d"}};function hz(e,t){return e!==">="&&e!=="<"?null:pz[e][t]??null}function mz(e,t){const n=t.raw;return e==="assignee"&&n.toLowerCase()==="none"?QT:e==="project"&&n.toLowerCase()==="none"?JT:n}const gz=new Set(["status","type","tag","assignee","externalid"]),gy=new Set(["IDENT","STRING","NUMBER","DATE","DURATION","STAR"]),nN=8;function xz(e,t,n){var k,v,b,j,S;let r;try{r=mm(e)}catch{return[]}const o=r.length,i=N=>{const C=N+1<o?r[N+1].pos:e.length;return r[N].pos+e.slice(r[N].pos,C).replace(/\s+$/,"").length};let a=-1;for(let N=0;N<o-1;N++)if(t>r[N].pos&&t<=i(N)){a=N;break}let l=a>=0?a-1:-1;if(a<0)for(let N=0;N<o-1&&i(N)<=t;N++)l=N;let u=null,f=null,p="";if(a>=0&&r[a].type==="COLON"&&((k=r[a-1])==null?void 0:k.type)==="IDENT"?(u=r[a-1].text.toLowerCase(),f=[t,t]):a>=0&&gy.has(r[a].type)&&((v=r[a-1])==null?void 0:v.type)==="COLON"&&((b=r[a-2])==null?void 0:b.type)==="IDENT"?(u=r[a-2].text.toLowerCase(),f=[r[a].pos,i(a)],p=r[a].text):a<0&&l>=0&&r[l].type==="COLON"&&((j=r[l-1])==null?void 0:j.type)==="IDENT"&&(u=r[l-1].text.toLowerCase(),f=[t,t]),u!==null){if(!gz.has(u))return[];const N=n.values[u]??[],C=p.toLowerCase(),P=[];for(const T of N)if(!(C&&!T.toLowerCase().startsWith(C))&&T.toLowerCase()!==C&&(P.push({label:T,insert:ww(T),replace:f,kind:"value"}),P.length>=nN))break;return P}if(a>=0&&!gy.has(r[a].type))return[];if(a>=0&&r[a].type==="IDENT"&&((S=r[a+1])==null?void 0:S.type)==="COLON")return[];if(l>=0){const N=r[l].type;if(!(N==="AND"||N==="OR"||N==="NOT"||N==="MINUS"||N==="LPAREN"||N==="RPAREN"||gy.has(N)))return[]}const h=(a>=0?r[a].text:"").toLowerCase(),g=a>=0?[r[a].pos,i(a)]:[t,t],y=[];for(const[N,C]of Object.entries(n.aliases))h&&!N.toLowerCase().startsWith(h)||y.push({label:`${N}: (${C})`,insert:`${N}:`,replace:g,kind:"prefix"});for(const N of n.fields)h&&!N.toLowerCase().startsWith(h)||y.push({label:`${N}:`,insert:`${N}:`,replace:g,kind:"field"});return y.slice(0,nN)}const yz=200,bz=2;function vz(e,t){const[n,r]=m.useState(e),[o,i]=m.useState([]),[a,l]=m.useState(!1),[u,f]=m.useState(null),p=m.useRef(null);m.useEffect(()=>{const y=setTimeout(()=>r(e),yz);return()=>clearTimeout(y)},[e]);const h=n.trim(),g=t&&h.length>=bz;return m.useEffect(()=>{if(!g){p.current=null,i([]),l(!1),f(null);return}const y=new AbortController;p.current=h,l(!0),f(null);const k=()=>p.current===h&&!y.signal.aborted;return fetch(`/api/search?q=${encodeURIComponent(h)}`,{signal:y.signal}).then(async v=>{if(!v.ok){const b=await v.json().catch(()=>null);throw new Error((b==null?void 0:b.error)||`HTTP ${v.status}`)}return v.json()}).then(v=>{k()&&(i(v.hits??[]),l(!1))}).catch(v=>{v.name!=="AbortError"&&k()&&(f(v.message),i([]),l(!1))}),()=>{y.abort()}},[g,h]),{hits:o,loading:a,error:u}}const Vp={phaseLadder:[{phase:"draft",when:"*",next:"Fill in the objective and acceptance criteria"},{phase:"ready_for_planning",when:"hasRealObjective:true AND acRealTotal > 0",next:"Write a plan and get it approved"},{phase:"ready_to_implement",when:"planApproved:true",next:"Start implementing"},{phase:"in_progress",when:"planApproved:true AND implementationStarted:true",next:"Finish acceptance criteria, then request review"},{phase:"review",when:"(acAllChecked:true OR reviewRequested:true) AND NOT reworkRequested:true",next:"Complete, or address review feedback"}],disposition:[{when:"parked:true",is:"parked"},{when:"blocked:true",is:"blocked"},{when:null,is:"active"}],headline:{terminal:"passthrough",parked:"parked",blocked:"blocked",active:"phase"}};function wz(e,t,n=()=>null){const r=[],o=new Set(t.statuses.map(l=>l.id));e.phaseLadder.length===0&&r.push("phaseLadder must have at least one rung");for(const l of e.phaseLadder){o.has(l.phase)||r.push(`phaseLadder rung "${l.phase}" is not a defined status id`);const u=l.when==="*"?null:n(l.when);u&&r.push(`phaseLadder rung "${l.phase}": invalid condition — ${u}`)}const i=new Set(["active","blocked","parked"]);for(const l of e.disposition)if(i.has(l.is)||r.push(`disposition "${l.is}" is not valid (expected active, blocked, or parked — terminal is never a rule)`),l.when!==null){const u=n(l.when);u&&r.push(`disposition rule "${l.is}": invalid condition — ${u}`)}const a=e.disposition.map((l,u)=>l.when===null?u:-1).filter(l=>l>=0);a.length===0?r.push("disposition rules must end with an `else:` arm (a rule with when: null)"):a.length>1?r.push("disposition rules must have exactly one `else:` arm (when: null)"):a[0]!==e.disposition.length-1&&r.push("the `else:` arm (when: null) must be the LAST disposition rule — rules after it are unreachable");for(const l of["parked","blocked"])o.has(e.headline[l])||r.push(`headline.${l} → "${e.headline[l]}" is not a defined status id (add the definition or run migrate-derive)`);return r}const ZT={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:[],transitionsCustom:!1,custom:!1,derive:Vp,deriveCustom:!1,knownCommands:[],factDeclarations:[],rawFacts:[]};let Ku=null,ea=null;function jz(){return Ku?Promise.resolve(Ku):ea||(ea=fetch("/api/config/statuses").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>(Ku=e,ea=null,e)).catch(()=>(ea=null,ZT)),ea)}function As(){const[e,t]=m.useState(()=>Ku??ZT);return m.useEffect(()=>{jz().then(t)},[]),e}function rN(){Ku=null,ea=null}function To(e,t){const n=e.statuses.find(r=>r.id===t);return(n==null?void 0:n.label)??t.replace(/_/g," ").replace(/\b\w/g,r=>r.toUpperCase())}const eR={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 Wp=null,hl=null;function kz(){return Wp?Promise.resolve(Wp):hl||(hl=fetch("/api/config/types").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>(Wp=e,hl=null,e)).catch(()=>(hl=null,eR)),hl)}function Od(){const[e,t]=m.useState(()=>Wp??eR);return m.useEffect(()=>{kz().then(t)},[]),e}function Bl(e,t){if(!t)return"—";const n=e.definitions.find(r=>r.id===t);return(n==null?void 0:n.label)??t.replace(/_/g," ").replace(/\b\w/g,r=>r.toUpperCase())}function Nz(e,t){return t?e.definitions.find(n=>n.id===t)??null:null}const Sz={page:"Page",project:"Project",assignment:"Assignment",playbook:"Playbook",server:"Server",todo:"Todo",content:"Content"};function Cz(e,t){const n=e.map(o=>({start:Math.max(0,Math.min(o.start,t)),end:Math.max(0,Math.min(o.end,t))})).filter(o=>o.end>o.start).sort((o,i)=>o.start-i.start||o.end-i.end),r=[];for(const o of n){const i=r[r.length-1];i&&o.start<=i.end?i.end=Math.max(i.end,o.end):r.push({...o})}return r}function Ez(e,t){if(!t||t.length===0)return e;const n=Cz(t,e.length);if(n.length===0)return e;const r=[];let o=0;return n.forEach((i,a)=>{i.start>o&&r.push(s.jsx(m.Fragment,{children:e.slice(o,i.start)},`t${a}`)),r.push(s.jsx("mark",{className:"rounded bg-yellow-200/70 px-0.5 text-foreground dark:bg-yellow-500/30",children:e.slice(i.start,i.end)},`m${a}`)),o=i.end}),o<e.length&&r.push(s.jsx(m.Fragment,{children:e.slice(o)},"tail")),r}function Tz({entries:e}){const{paletteOpen:t,closePalette:n}=Ai(),r=Wt(),[o,i]=m.useState(""),[a,l]=m.useState(0),[u,f]=m.useState(0),[p,h]=m.useState(!0),[g,y]=m.useState(0),k=m.useRef(null),v=m.useRef(null),b=m.useId(),{search:j}=lw(),S=As(),N=Od(),{aqlExpr:C,fuzzy:P}=m.useMemo(()=>F6(o,j.aliases,{defaultScope:j.defaultScope}),[o,j.aliases,j.defaultScope]),T=m.useMemo(()=>{const M=new Set,H=new Set,L=new Set;for(const Y of e){for(const B of Y.tags??[])M.add(B);Y.assignee&&H.add(Y.assignee);for(const B of Y.externalIds??[])B.id&&(L.add(B.id),B.system&&L.add(`${B.system}:${B.id}`))}const z=Object.keys(id);return{aliases:j.aliases,fields:j.externalIds?z:z.filter(Y=>Y!=="jira"&&Y!=="externalid"),values:{status:S.statuses.map(Y=>Y.id),type:N.definitions.map(Y=>Y.id),tag:[...M],assignee:[...H],externalid:j.externalIds?[...L]:[]}}},[e,j.aliases,j.externalIds,S.statuses,N.definitions]),R=m.useMemo(()=>xz(o,u,T),[o,u,T]),I=p&&R.length>0&&o.trim()!=="",_=m.useMemo(()=>{let M=e,H=P;if(C){const L=ec(C,id);if(L.query){const z=Date.now(),{predicate:Y}=L.query;M=e.filter(B=>Y(B,{now:z}))}else H=o}return bw(H,M,50)},[e,C,P,o]),{hits:F}=vz(o,t),D=m.useMemo(()=>D5(F),[F]),W=m.useMemo(()=>[..._,...D],[_,D]);m.useEffect(()=>{l(0)},[o,t]),m.useEffect(()=>{y(0)},[R]),m.useEffect(()=>{t||(i(""),f(0),h(!0))},[t]),m.useEffect(()=>{var H;const M=(H=k.current)==null?void 0:H.querySelector(`[data-palette-idx="${a}"]`);M==null||M.scrollIntoView({block:"nearest"})},[a]);function V(M){r(M.route),n()}function $(M,H){const L=H===a,z=M.type==="content";return s.jsxs("button",{type:"button","data-palette-idx":H,onClick:()=>V(M),onMouseEnter:()=>l(H),className:`flex w-full items-center gap-3 rounded-md px-3 py-2 text-left text-sm transition-colors ${L?"bg-accent text-accent-foreground":"hover:bg-accent/50 text-foreground"}`,children:[s.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:Sz[M.type]??M.type}),s.jsxs("span",{className:"flex min-w-0 flex-1 flex-col",children:[s.jsx("span",{className:"truncate",children:M.title}),z&&M.snippet?s.jsx("span",{className:"truncate text-xs text-muted-foreground",children:Ez(M.snippet,M.snippetMatches)}):null]}),M.subtitle?s.jsx("span",{className:"shrink-0 truncate text-xs text-muted-foreground",children:M.subtitle}):null]},M.id)}function O(M){const H=o.slice(0,M.replace[0])+M.insert+o.slice(M.replace[1]),L=M.replace[0]+M.insert.length;i(H),f(L),requestAnimationFrame(()=>{const z=v.current;z&&(z.focus(),z.setSelectionRange(L,L))})}function U(M){if(I){if(M.key==="Tab"||M.key==="ArrowRight"&&u>=o.length){M.preventDefault();const H=R[g];H&&O(H);return}if(M.key==="ArrowDown"){M.preventDefault(),y(H=>Math.min(R.length-1,H+1));return}if(M.key==="ArrowUp"){M.preventDefault(),y(H=>Math.max(0,H-1));return}if(M.key==="Enter"){M.preventDefault();const H=W[a];H&&V(H);return}return}if(M.key==="ArrowDown")M.preventDefault(),l(H=>Math.min(W.length-1,H+1));else if(M.key==="ArrowUp")M.preventDefault(),l(H=>Math.max(0,H-1));else if(M.key==="Enter"){M.preventDefault();const H=W[a];H&&V(H)}}const K=I&&R[g]?`${b}-option-${g}`:void 0;return s.jsx(Ln,{open:t,onOpenChange:M=>M?null:n(),children:s.jsxs(Nn,{className:"max-w-xl p-0 gap-0",onEscapeKeyDown:M=>{I&&(M.preventDefault(),h(!1))},children:[s.jsx(Sn,{className:"sr-only",children:"Command palette"}),s.jsxs("div",{className:"relative",children:[s.jsx("input",{ref:v,autoFocus:!0,type:"text",role:"combobox","aria-expanded":I,"aria-controls":I?b:void 0,"aria-activedescendant":K,"aria-autocomplete":"list",value:o,onChange:M=>{i(M.target.value),f(M.target.selectionStart??M.target.value.length),h(!0)},onSelect:M=>f(M.currentTarget.selectionStart??0),onKeyDown:U,placeholder:"Search… try a: p: jira:PROJ-123 tag:backend",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:border-primary"}),I?s.jsx("div",{role:"listbox",id:b,"aria-label":"Query suggestions",className:"absolute left-0 right-0 top-full z-50 max-h-64 overflow-y-auto border-b border-border/70 bg-background shadow-lg",children:R.map((M,H)=>{const L=H===g;return s.jsxs("button",{id:`${b}-option-${H}`,role:"option","aria-selected":L,type:"button",onMouseDown:z=>{z.preventDefault(),O(M)},onMouseEnter:()=>y(H),className:`flex w-full items-center justify-between gap-3 px-4 py-1.5 text-left text-sm ${L?"bg-accent text-accent-foreground":"text-foreground"}`,children:[s.jsx("code",{className:"truncate",children:M.label}),s.jsx("span",{className:"shrink-0 text-[10px] uppercase tracking-wide text-muted-foreground",children:M.kind})]},`${M.kind}-${M.insert}-${H}`)})}):null]}),C?s.jsxs("div",{className:"border-b border-border/70 px-4 py-1.5 text-[11px] text-muted-foreground",children:[s.jsx("span",{className:"font-medium",children:"Filtering"})," ",s.jsx("code",{className:"text-foreground",children:C}),P?s.jsxs("span",{children:[" · ranking “",P,"”"]}):null]}):o.trim()===""?s.jsxs("div",{className:"border-b border-border/70 px-4 py-1.5 text-[11px] text-muted-foreground",children:[s.jsx("span",{className:"font-medium",children:"Prefixes"})," ",Object.keys(j.aliases).map(M=>s.jsxs("code",{className:"mr-1",children:[M,":"]},M))," · ",s.jsx("code",{children:"status:"})," ",s.jsx("code",{children:"tag:"})," ",s.jsx("code",{children:"assignee:"})," ",s.jsx("code",{children:"type:"})," ",j.externalIds?s.jsx("code",{children:"jira:"}):null]}):null,s.jsx("div",{ref:k,className:"max-h-[60vh] overflow-y-auto p-1",children:W.length===0?s.jsx("div",{className:"px-4 py-6 text-center text-sm text-muted-foreground",children:"No matches"}):s.jsxs(s.Fragment,{children:[_.map((M,H)=>$(M,H)),D.length>0?s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"px-3 pb-1 pt-2 text-[10px] font-medium uppercase tracking-wide text-muted-foreground",children:"Content"}),D.map((M,H)=>$(M,_.length+H))]}):null]})}),s.jsxs("div",{className:"flex items-center justify-between border-t border-border/70 px-3 py-2 text-[11px] text-muted-foreground",children:[s.jsx("span",{children:I?"⇥/→ accept · ↑↓ suggestions · Esc close":"↑↓ navigate · ↵ open · Esc close"}),s.jsxs("span",{children:[W.length," result",W.length===1?"":"s"]})]})]})})}function Rz({label:e,onBack:t,disabled:n,stepCounter:r}){return s.jsxs("div",{className:"flex items-center gap-2 border-b border-border/70 px-3 py-2",children:[s.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:[s.jsx(a4,{className:"h-3.5 w-3.5","aria-hidden":"true"}),s.jsx("span",{children:"Back"})]}),s.jsx("span",{className:"text-[11px] font-medium uppercase tracking-wide text-muted-foreground",children:e}),r?s.jsxs("span",{className:"ml-auto text-[10px] text-muted-foreground/80",children:["step ",r.current," of ",r.total]}):null]})}function Az({step:e,initialValue:t,disabled:n,onSubmit:r}){const[o,i]=m.useState(t??""),[a,l]=m.useState(!1),u=m.useRef(null);m.useEffect(()=>{var k;(k=u.current)==null||k.focus()},[]);const f=o.trim(),p=e.required!==!1,h=e.pattern&&f.length>0&&!e.pattern.regex.test(f),g=!n&&(!p||f.length>0)&&!h;function y(k){if(k.key==="Enter"){if(k.preventDefault(),!g){l(!0);return}r(f)}}return s.jsxs(s.Fragment,{children:[s.jsx("input",{ref:u,type:"text",value:o,onChange:k=>{i(k.target.value),l(!1)},onKeyDown:y,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:border-primary disabled:opacity-60"}),a&&e.pattern&&h?s.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 Pz({step:e,disabled:t,onSubmit:n}){const[r,o]=m.useState({phase:"loading"}),[i,a]=m.useState(""),[l,u]=m.useState(0),[f,p]=m.useState(0),h=m.useRef(null),g=m.useRef(null);m.useEffect(()=>{var v;(v=h.current)==null||v.focus()},[]),m.useEffect(()=>{let v=!1;return o({phase:"loading"}),Promise.resolve().then(()=>e.loadOptions()).then(b=>{v||o({phase:"loaded",options:b})}).catch(b=>{if(v)return;const j=b instanceof Error?b.message:"Failed to load options";o({phase:"error",message:j})}),()=>{v=!0}},[e,f]);const y=m.useMemo(()=>{if(r.phase!=="loaded")return[];const v=r.options.map(b=>({type:"option",title:b.label,subtitle:b.hint,keywords:[b.value],option:b}));return bw(i,v,100)},[r,i]);m.useEffect(()=>{u(0)},[y.length]),m.useEffect(()=>{var b;const v=(b=g.current)==null?void 0:b.querySelector(`[data-picker-idx="${l}"]`);v==null||v.scrollIntoView({block:"nearest"})},[l]);function k(v){if(r.phase==="loaded"){if(v.key==="ArrowDown")v.preventDefault(),u(b=>Math.min(y.length-1,b+1));else if(v.key==="ArrowUp")v.preventDefault(),u(b=>Math.max(0,b-1));else if(v.key==="Enter"){v.preventDefault();const b=y[l];b&&n(b.option.value)}}}return s.jsxs(s.Fragment,{children:[s.jsx("input",{ref:h,type:"text",value:i,onChange:v=>a(v.target.value),onKeyDown:k,placeholder:`Filter ${e.label.toLowerCase()}…`,disabled:t||r.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:border-primary disabled:opacity-60"}),s.jsx("div",{ref:g,className:"max-h-[60vh] min-h-[120px] overflow-y-auto p-1",children:r.phase==="loading"?s.jsx("div",{className:"px-4 py-6 text-center text-sm text-muted-foreground",children:"Loading…"}):r.phase==="error"?s.jsxs("div",{className:"px-4 py-4 text-sm",children:[s.jsxs("div",{className:"mb-2 text-destructive",children:["Failed to load: ",r.message]}),s.jsx("button",{type:"button",onClick:()=>p(v=>v+1),className:"rounded border border-border/70 bg-background/60 px-2 py-1 text-xs text-foreground hover:bg-accent/40",children:"Retry"})]}):y.length===0?s.jsx("div",{className:"px-4 py-6 text-center text-sm text-muted-foreground",children:r.options.length===0?e.emptyMessage??"No options available":"No matches"}):y.map((v,b)=>{const j=b===l;return s.jsxs("button",{type:"button","data-picker-idx":b,onClick:()=>n(v.option.value),onMouseEnter:()=>u(b),disabled:t,className:`flex w-full items-center gap-3 rounded-md px-3 py-2 text-left text-sm transition-colors disabled:opacity-60 ${j?"bg-accent text-accent-foreground":"hover:bg-accent/50 text-foreground"}`,children:[s.jsx("span",{className:"min-w-0 flex-1 truncate",children:v.option.label}),v.option.hint?s.jsx("span",{className:"shrink-0 truncate text-xs text-muted-foreground",children:v.option.hint}):null]},v.option.value)})})]})}function _z({entries:e}){var Q,J;const t=Wt(),{actionsPaletteOpen:n,closeActionsPalette:r,customBindings:o,bindAction:i,findConflict:a,pendingActionKind:l,consumePendingActionKind:u}=Ai(),[f,p]=m.useState(""),[h,g]=m.useState(0),[y,k]=m.useState(null),[v,b]=m.useState(""),[j,S]=m.useState(null),[N,C]=m.useState(null),[P,T]=m.useState(!1),[R,I]=m.useState(null),_=m.useRef(null),F=m.useMemo(()=>e.map(Z=>({type:Z.group.toLowerCase(),title:Z.title,subtitle:Z.subtitle,keywords:Z.keywords,action:Z})),[e]),D=m.useMemo(()=>bw(f,F,50),[f,F]);m.useEffect(()=>{g(0)},[f,n]),m.useEffect(()=>{n||(p(""),k(null),b(""),S(null),C(null),T(!1),I(null))},[n]),m.useEffect(()=>{if(!n||!l)return;const Z=u();if(!Z)return;const oe=e.find(ne=>ne.bindableKind===Z);oe&&W(oe)},[n,l]),m.useEffect(()=>{var oe;const Z=(oe=_.current)==null?void 0:oe.querySelector(`[data-palette-idx="${h}"]`);Z==null||Z.scrollIntoView({block:"nearest"})},[h]);async function W(Z){if(!P){if(Z.flow&&Z.flow.steps.length>0){S({action:Z,stepIndex:0,values:{}}),I(null);return}if(Z.requiresInput){k(Z),b(""),I(null);return}if(Z.run){T(!0),I(null);try{await Z.run(),r()}catch(oe){I(oe instanceof Error?oe.message:"Action failed")}finally{T(!1)}}}}async function V(Z){if(!j)return;const oe=j.action.flow.steps[j.stepIndex],ne={...j.values,[oe.id]:Z};if(j.stepIndex+1<j.action.flow.steps.length){S({action:j.action,stepIndex:j.stepIndex+1,values:ne});return}T(!0),I(null);try{await j.action.flow.submit(ne,{navigate:t}),r()}catch(ue){I(ue instanceof Error?ue.message:"Action failed")}finally{T(!1)}}function $(){if(j&&!P){if(j.stepIndex===0){S(null),I(null);return}S({action:j.action,stepIndex:j.stepIndex-1,values:j.values}),I(null)}}async function O(){if(P||!(y!=null&&y.requiresInput))return;const Z=v.trim();if(Z){T(!0),I(null);try{await y.requiresInput.runWithInput(Z),r()}catch(oe){I(oe instanceof Error?oe.message:"Action failed")}finally{T(!1)}}}function U(Z){if(Z.key==="ArrowDown")Z.preventDefault(),g(oe=>Math.min(D.length-1,oe+1));else if(Z.key==="ArrowUp")Z.preventDefault(),g(oe=>Math.max(0,oe-1));else if(Z.key==="Enter"&&(Z.metaKey||Z.ctrlKey)){Z.preventDefault();const oe=D[h];oe!=null&&oe.action.bindableKind&&C({action:oe.action,combo:null,conflict:null,saving:!1,error:null})}else if(Z.key==="Enter"){Z.preventDefault();const oe=D[h];oe&&W(oe.action)}}function K(Z){Z.key==="Enter"?(Z.preventDefault(),O()):Z.key==="Escape"&&(Z.preventDefault(),k(null),b(""))}function M(Z){if(!N||Z.key==="Escape"||Z.key==="Enter"&&!N.combo)return;if(Z.key==="Enter"&&N.combo){Z.preventDefault(),Z.stopPropagation(),H();return}Z.preventDefault(),Z.stopPropagation();const oe=Z2(Z.nativeEvent);if(!oe)return;const ne=a(oe,N.action.bindableKind);C({...N,combo:oe,conflict:ne,error:null})}async function H(){var Z;if(!(!N||!N.combo||!N.action.bindableKind)){if((Z=N.conflict)!=null&&Z.description){C({...N,error:`Reserved: ${N.conflict.description}`});return}C({...N,saving:!0,error:null});try{await i(N.action.bindableKind,N.combo),C(null)}catch(oe){C({...N,saving:!1,error:oe instanceof Error?oe.message:"Failed to save binding"})}}}const L=y!==null,z=j!==null,Y=N!==null,B=j?j.action.flow.steps[j.stepIndex]:null;return s.jsx(Ln,{open:n,onOpenChange:Z=>Z?null:r(),children:s.jsxs(Nn,{className:"max-w-xl p-0 gap-0",onEscapeKeyDown:Z=>{if(!P){if(Y){Z.preventDefault(),C(null);return}if(z){Z.preventDefault(),$();return}L&&(Z.preventDefault(),k(null),b(""),I(null))}},children:[s.jsx(Sn,{className:"sr-only",children:"Actions palette"}),Y&&N?s.jsxs("div",{onKeyDown:M,tabIndex:-1,autoFocus:!0,children:[s.jsxs("div",{className:"flex items-center gap-2 border-b border-border/70 px-4 py-3",children:[s.jsx(Nb,{className:"h-4 w-4 text-muted-foreground","aria-hidden":"true"}),s.jsxs("span",{className:"text-sm text-foreground",children:["Bind hotkey for ",N.action.title]})]}),s.jsx("div",{className:"px-4 py-6 text-center",children:N.combo?s.jsxs("div",{className:"space-y-3",children:[s.jsx("div",{className:"text-2xl font-semibold tracking-wide text-foreground",children:Zs(N.combo)}),(Q=N.conflict)!=null&&Q.description?s.jsxs("div",{className:"text-sm text-destructive",children:["Reserved: ",N.conflict.description," (cannot bind)"]}):(J=N.conflict)!=null&&J.kind?s.jsxs("div",{className:"text-sm text-amber-500 dark:text-amber-400",children:['Already bound to "',N.conflict.kind,'". Press Enter to overwrite.']}):s.jsx("div",{className:"text-sm text-muted-foreground",children:"Press Enter to save, or another key to retry."}),N.error?s.jsx("div",{className:"text-sm text-destructive",children:N.error}):null]}):s.jsx("div",{className:"text-sm text-muted-foreground",children:"Press the key combination you want to bind…"})}),s.jsxs("div",{className:"flex items-center justify-between border-t border-border/70 px-3 py-2 text-[11px] text-muted-foreground",children:[s.jsx("span",{children:"any key records · Enter saves · Esc cancels"}),s.jsx("span",{children:N.saving?"Saving…":""})]}),s.jsx("button",{type:"button",className:"sr-only",onClick:()=>void H(),"data-bind-confirm":!0}),s.jsx("input",{type:"hidden",onKeyDown:Z=>{Z.key==="Enter"&&H()}})]}):z&&B&&j?s.jsxs(s.Fragment,{children:[s.jsx(Rz,{label:`${j.action.title} · ${B.label}`,onBack:$,disabled:P,stepCounter:{current:j.stepIndex+1,total:j.action.flow.steps.length}}),B.kind==="text"?s.jsx(Az,{step:B,initialValue:j.values[B.id],disabled:P,onSubmit:V}):s.jsx(Pz,{step:B,disabled:P,onSubmit:V}),R?s.jsx("div",{className:"border-t border-border/70 bg-destructive/10 px-4 py-2 text-xs text-destructive",children:R}):null,s.jsxs("div",{className:"flex items-center justify-between border-t border-border/70 px-3 py-2 text-[11px] text-muted-foreground",children:[s.jsx("span",{children:"↵ next · ← back · Esc back"}),s.jsx("span",{children:P?"Running…":""})]})]}):L?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"flex items-center gap-2 border-b border-border/70 px-4 py-3",children:[s.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:y.group}),s.jsx("span",{className:"min-w-0 flex-1 truncate text-sm text-foreground",children:y.title})]}),s.jsx("input",{autoFocus:!0,type:"text",value:v,onChange:Z=>b(Z.target.value),onKeyDown:K,placeholder:y.requiresInput.placeholder,disabled:P,className:"w-full border-0 border-b border-border/70 bg-transparent px-4 py-3 text-sm text-foreground outline-none focus:border-primary disabled:opacity-60"}),R?s.jsx("div",{className:"border-b border-border/70 bg-destructive/10 px-4 py-2 text-xs text-destructive",children:R}):null,s.jsxs("div",{className:"flex items-center justify-between border-t border-border/70 px-3 py-2 text-[11px] text-muted-foreground",children:[s.jsxs("span",{children:["↵"," submit ","·"," Esc back"]}),s.jsx("span",{children:P?"Running…":""})]})]}):s.jsxs(s.Fragment,{children:[s.jsx("input",{autoFocus:!0,type:"text",value:f,onChange:Z=>p(Z.target.value),onKeyDown:U,placeholder:"Run an action: new project, new todo, toggle…",disabled:P,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:border-primary disabled:opacity-60"}),R?s.jsx("div",{className:"border-b border-border/70 bg-destructive/10 px-4 py-2 text-xs text-destructive",children:R}):null,s.jsx("div",{ref:_,className:"max-h-[60vh] overflow-y-auto p-1",children:D.length===0?s.jsx("div",{className:"px-4 py-6 text-center text-sm text-muted-foreground",children:f?"No matches":"Start typing to search actions"}):D.map((Z,oe)=>{const ne=oe===h,ue=Z.action.bindableKind,ge=ue?o[ue]:void 0;return s.jsxs("button",{type:"button","data-palette-idx":oe,onClick:()=>W(Z.action),onMouseEnter:()=>g(oe),disabled:P,className:`group flex w-full items-center gap-3 rounded-md px-3 py-2 text-left text-sm transition-colors disabled:opacity-60 ${ne?"bg-accent text-accent-foreground":"hover:bg-accent/50 text-foreground"}`,children:[s.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:Z.action.group}),s.jsx("span",{className:"min-w-0 flex-1 truncate",children:Z.action.title}),Z.action.subtitle?s.jsx("span",{className:"shrink-0 truncate text-xs text-muted-foreground",children:Z.action.subtitle}):null,ge?s.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:Zs(ge)}):null,ue?s.jsx("span",{role:"button",tabIndex:-1,"aria-label":"Bind hotkey",onClick:Ce=>{Ce.preventDefault(),Ce.stopPropagation(),C({action:Z.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 ${ne?"opacity-100":"opacity-0 group-hover:opacity-100"}`,children:s.jsx(Nb,{className:"h-3.5 w-3.5","aria-hidden":"true"})}):null]},Z.action.id)})}),s.jsxs("div",{className:"flex items-center justify-between border-t border-border/70 px-3 py-2 text-[11px] text-muted-foreground",children:[s.jsxs("span",{children:["↑↓"," navigate ","·"," ","↵"," run ","·"," ⌘↵ bind ","·"," Esc close"]}),s.jsx("span",{children:P?"Running…":`${D.length} action${D.length===1?"":"s"}`})]})]})]})})}const Dz=[{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 $z(e){const t=wr(e);return t?Dz.find(n=>n.combo===t)??null:null}const wu={"new-workspace":"New Workspace","new-project":"New Project","new-todo":"New Todo","new-assignment":"New Assignment"},Iz={global:"Global","list:overview":"Overview","list:projects":"Projects list","list:assignments":"Assignments list","list:todos":"Todos list",assignment:"Assignment detail",project:"Project detail"},Mz=["global","list:overview","list:projects","list:assignments","list:todos","project","assignment"];function sN(e){if(e.includes(" ")){const[t,n]=e.split(" ");return`${Zs(t)} then ${Zs(n)}`}return Zs(e)}function Lz(){const{cheatsheetOpen:e,closeCheatsheet:t,listBindings:n,customBindings:r,actionEntries:o}=Ai(),i=m.useMemo(()=>{const u=new Set;for(const f of Object.values(r))typeof f=="string"&&f&&u.add(wr(f));return u},[r]),a=m.useMemo(()=>{if(!e)return new Map;const u=n(),f=new Map;for(const p of u){if(i.has(wr(p.keys)))continue;const h=f.get(p.scope)??[];h.push({keys:p.keys,description:p.description}),f.set(p.scope,h)}return f},[e,n,i]),l=m.useMemo(()=>{const u=[];for(const[f,p]of Object.entries(r)){if(!p)continue;const h=o.find(g=>g.bindableKind===f);u.push({kind:f,combo:p,title:h?h.title:f})}return u},[r,o]);return s.jsx(Ln,{open:e,onOpenChange:u=>u?null:t(),children:s.jsxs(Nn,{className:"max-w-2xl",children:[s.jsx(Sn,{children:"Keyboard shortcuts"}),s.jsxs(ns,{children:["Press Esc to close. ",Zs("Mod+k")," opens the command palette. Press g twice to restart the chord timer."]}),s.jsxs("div",{className:"mt-2 max-h-[60vh] space-y-4 overflow-y-auto pr-1",children:[Mz.map(u=>{const f=a.get(u);return!f||f.length===0?null:s.jsxs("section",{children:[s.jsx("h3",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:Iz[u]}),s.jsx("ul",{className:"space-y-1",children:f.map((p,h)=>s.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:[s.jsx("span",{className:"text-foreground",children:p.description}),s.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:sN(p.keys)})]},`${u}-${p.keys}-${h}`))})]},u)}),l.length>0?s.jsxs("section",{children:[s.jsx("h3",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Custom bindings"}),s.jsx("ul",{className:"space-y-1",children:l.map(u=>s.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:[s.jsx("span",{className:"text-foreground",children:u.title}),s.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:sN(u.combo)})]},`custom-${u.kind}`))})]}):null]})]})})}const kw={bindings:{},custom:!1};let qu=null,ml=null;const Ib=new Set;function tR(e){qu=e;for(const t of Ib)t(e)}function Nw(e){if(!e||typeof e!="object")return kw;const t=e,n={};if(t.bindings&&typeof t.bindings=="object"&&!Array.isArray(t.bindings))for(const[r,o]of Object.entries(t.bindings)){if(!c5(r)||typeof o!="string"||o.trim()==="")continue;const i=wr(o);i&&(n[r]=i)}return{bindings:n,custom:t.custom===!0}}function Oz(){return qu?Promise.resolve(qu):ml||(ml=fetch("/api/config/hotkeys").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>{const t=Nw(e);return qu=t,ml=null,t}).catch(()=>(ml=null,kw)),ml)}function Fz(){const[e,t]=m.useState(()=>qu??kw);return m.useEffect(()=>{let n=!1;return Oz().then(r=>{n||t(r)}),Ib.add(t),()=>{n=!0,Ib.delete(t)}},[]),e}async function oN(e){const t={};for(const o of fm){const i=e[o];if(typeof i!="string")continue;const a=wr(i);a&&(t[o]=a)}const n=await fetch("/api/config/hotkeys",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({bindings:t})});if(!n.ok){const o=await n.json().catch(()=>({error:`HTTP ${n.status}`}));throw new Error(o.error??"Failed to save hotkey bindings")}const r=Nw(await n.json());return tR(r),r}async function zz(){const e=await fetch("/api/config/hotkeys",{method:"DELETE"});if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=Nw(await e.json());return tR(t),t}const iN=1500;function Bz(e){const t=e.match(/^\/w\/([^/]+)(?:\/|$)/);return t?`/w/${t[1]}`:""}const nR=m.createContext(null);function Uz({children:e}){const{toggleTheme:t}=ew(),n=sr(),r=Wt(),o=Bz(n.pathname),[i,a]=m.useState(!1),l=ro(i),u=um(i),f=nw(i),p=tw(i),h=eT(i),{search:g}=lw(),y=m.useMemo(()=>{var ot,St,mt,at;const ve=l.data??[],be=((ot=u.data)==null?void 0:ot.assignments)??[],Re=((St=f.data)==null?void 0:St.playbooks)??[],Ue=((mt=p.data)==null?void 0:mt.sessions)??[],Oe=(((at=h.data)==null?void 0:at.workspaces)??[]).flatMap(ce=>ce.items.map(me=>({...me,workspace:ce.workspace})));return P5({projects:ve,assignments:be,playbooks:Re,servers:Ue,todos:Oe,wsPrefix:o,externalIds:g.externalIds})},[l.data,u.data,f.data,p.data,h.data,o,g.externalIds]),v=m.useMemo(()=>I2(n.pathname),[n.pathname]).projectSlug,b=m.useMemo(()=>{var ve;return v?((ve=l.data)==null?void 0:ve.find(be=>be.slug===v))??null:null},[l.data,v]),j=(b==null?void 0:b.title)??null,S=(b==null?void 0:b.workspace)??null,N=m.useMemo(()=>{var ve;return M5({playbooks:((ve=f.data)==null?void 0:ve.playbooks)??[],projectSlug:v,currentProjectTitle:j,currentProjectWorkspace:S,wsPrefix:o,refetchPlaybooks:f.refetch,navigate:r,toggleTheme:t})},[f.data,f.refetch,v,j,S,o,r,t]),C=m.useRef(new Map),P=m.useRef(["global"]),T=m.useRef({phase:"idle"}),R=m.useRef(null),I=m.useRef(1),[_,F]=m.useState(!1),[D,W]=m.useState(!1),[V,$]=m.useState(!1),[O,U]=m.useState(null);m.useEffect(()=>{(_||V)&&a(!0)},[_,V]);const{bindings:K}=Fz(),M=m.useMemo(()=>h5(K),[K]),H=m.useCallback(ve=>{const be=I.current++;return C.current.set(be,{...ve,id:be}),be},[]),L=m.useCallback(ve=>{C.current.delete(ve)},[]),z=m.useCallback(ve=>{P.current.push(ve)},[]),Y=m.useCallback(ve=>{const be=P.current;for(let Re=be.length-1;Re>=0;Re--)if(be[Re]===ve){be.splice(Re,1);return}},[]),B=m.useCallback(()=>F(!0),[]),Q=m.useCallback(()=>F(!1),[]),J=m.useCallback(()=>W(!0),[]),Z=m.useCallback(()=>W(!1),[]),oe=m.useCallback(()=>$(!0),[]),ne=m.useCallback(()=>{$(!1),U(null)},[]),ue=m.useCallback(()=>Array.from(C.current.values()),[]),ge=m.useCallback(()=>{let ve=null;return U(be=>(ve=be,null)),ve},[]),Ce=m.useCallback(ve=>{U(ve),$(!0)},[]),Se=m.useCallback((ve,be)=>{const Re=wr(ve);if(!Re)return null;if(f5(Re)){const Ue=$z(Re);return{description:(Ue==null?void 0:Ue.description)??"Reserved built-in shortcut"}}for(const[Ue,rt]of Object.entries(M))if(!(be&&Ue===be)&&rt===Re)return{kind:Ue};return null},[M]),ke=m.useCallback(async(ve,be)=>{const Re=wr(be);if(!Re)throw new Error("Empty combo");const Ue=Se(Re,ve);if(Ue){const Oe=Ue.description?`Reserved: ${Ue.description}`:`Already bound to "${Ue.kind}"`;throw new Error(Oe)}const rt={...K,[ve]:Re};return await oN(rt),Re},[K,Se]),Be=m.useCallback(async ve=>{if(!K[ve])return;const be={...K};delete be[ve],await oN(be)},[K]);m.useEffect(()=>{T.current={phase:"idle"},R.current!==null&&(window.clearTimeout(R.current),R.current=null)},[n.pathname]),m.useEffect(()=>{function ve(Oe){if(!(Oe instanceof HTMLElement))return!1;const ot=Oe.tagName;return!!(ot==="INPUT"||ot==="TEXTAREA"||ot==="SELECT"||Oe.isContentEditable||Oe.closest('[role="combobox"], [role="textbox"]'))}function be(){return!!(document.querySelector('[role="dialog"][data-state="open"]')||document.querySelector('[role="alertdialog"][data-state="open"]'))}function Re(){const Oe=P.current;return Oe[Oe.length-1]??"global"}function Ue(Oe){return Oe.scope==="global"?!0:Oe.scope===Re()}function rt(Oe){const ot=ap(Oe,"Mod+k"),St=ap(Oe,"Mod+Shift+k"),mt=Oe.key==="Escape",at=ot||St||mt;if(be()&&!at||ve(Oe.target)&&!at)return;const ce=T.current;if(ce.phase==="awaiting-second")if(Date.now()-ce.startedAt>iN)T.current={phase:"idle"},R.current!==null&&(window.clearTimeout(R.current),R.current=null);else{const Ae=Array.from(C.current.values());for(const Ve of Ae){if(!Ue(Ve))continue;const pt=Ve.keys.split(" ");if(!(pt.length!==2||pt[0]!=="g")&&ap(Oe,pt[1])&&!(Ve.when&&!Ve.when())){Oe.preventDefault(),T.current={phase:"idle"},R.current!==null&&(window.clearTimeout(R.current),R.current=null),Ve.handler(Oe);return}}T.current={phase:"idle"},R.current!==null&&(window.clearTimeout(R.current),R.current=null)}const me=Array.from(C.current.values());for(const Ie of me){if(!Ue(Ie))continue;const Ae=Ie.keys.split(" ");if(Ae.length===1&&ap(Oe,Ae[0])&&!(Ie.when&&!Ie.when())){Oe.preventDefault(),Ie.handler(Oe);return}}Oe.key==="g"&&!Oe.metaKey&&!Oe.ctrlKey&&!Oe.altKey&&!Oe.shiftKey&&Array.from(C.current.values()).some(Ae=>Ue(Ae)&&Ae.keys.startsWith("g "))&&(Oe.preventDefault(),T.current={phase:"awaiting-second",startedAt:Date.now()},R.current!==null&&window.clearTimeout(R.current),R.current=window.setTimeout(()=>{T.current={phase:"idle"},R.current=null},iN))}return window.addEventListener("keydown",rt),()=>{window.removeEventListener("keydown",rt),R.current!==null&&(window.clearTimeout(R.current),R.current=null)}},[]),m.useEffect(()=>{const ve=H({keys:"Shift+t",handler:()=>t(),scope:"global",description:"Toggle light/dark theme"});return()=>L(ve)},[H,L,t]),m.useEffect(()=>{const ve=H({keys:"?",scope:"global",description:"Show keyboard shortcuts",handler:()=>J()});return()=>L(ve)},[H,L,J]),m.useEffect(()=>{const ve=H({keys:"Mod+k",scope:"global",description:"Open command palette",handler:()=>{if(_){Q();return}document.querySelector('[role="dialog"][data-state="open"], [role="alertdialog"][data-state="open"]')||B()}});return()=>L(ve)},[H,L,B,Q,_]),m.useEffect(()=>{const ve=H({keys:"Mod+Shift+k",scope:"global",description:"Open actions palette",handler:()=>{if(V){ne();return}document.querySelector('[role="dialog"][data-state="open"], [role="alertdialog"][data-state="open"]')||oe()}});return()=>L(ve)},[H,L,oe,ne,V]),m.useEffect(()=>{const be=[{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(Re=>H({keys:`g ${Re.suffix}`,scope:"global",description:Re.desc,handler:()=>r(Fp(Re.basePath,o))}));return()=>be.forEach(L)},[H,L,r,o]),m.useEffect(()=>{const ve=[];for(const[be,Re]of Object.entries(M)){if(!Re)continue;const Ue=N.find(Oe=>Oe.bindableKind===be),rt=Ue?`Custom: ${Ue.title}`:`Custom: ${be}`;ve.push(H({keys:Re,scope:"global",description:rt,handler:()=>{U(be),$(!0)}}))}return()=>ve.forEach(L)},[H,L,M,N]);const ie=m.useMemo(()=>({register:H,unregister:L,pushScope:z,popScope:Y,openPalette:B,closePalette:Q,paletteOpen:_,openCheatsheet:J,closeCheatsheet:Z,cheatsheetOpen:D,openActionsPalette:oe,closeActionsPalette:ne,actionsPaletteOpen:V,listBindings:ue,wsPrefix:o,paletteEntries:y,actionEntries:N,userBindings:K,customBindings:M,bindAction:ke,unbindAction:Be,findConflict:Se,openActionsPaletteWithAction:Ce,pendingActionKind:O,consumePendingActionKind:ge}),[H,L,z,Y,B,Q,_,J,Z,D,oe,ne,V,ue,o,y,N,K,M,ke,Be,Se,Ce,O,ge]);return s.jsxs(nR.Provider,{value:ie,children:[e,s.jsx(Tz,{entries:y}),s.jsx(_z,{entries:N}),s.jsx(Lz,{})]})}function Ai(){const e=m.useContext(nR);if(!e)throw new Error("useHotkeyContext must be used within HotkeyProvider");return e}function en({keys:e,handler:t,scope:n="global",description:r,when:o,enabled:i=!0}){const{register:a,unregister:l}=Ai(),u=m.useRef(t),f=m.useRef(o);m.useEffect(()=>{u.current=t,f.current=o},[t,o]),m.useEffect(()=>{if(!i)return;const p=a({keys:e,handler:h=>u.current(h),scope:n,description:r,when:f.current?()=>f.current():void 0});return()=>l(p)},[a,l,e,n,r,i])}function Pi(e){const{pushScope:t,popScope:n}=Ai();m.useEffect(()=>(t(e),()=>n(e)),[t,n,e])}function Fd(e,t){const[n,r]=m.useState(e.length===0?-1:0),o=sr();m.useEffect(()=>{r(e.length===0?-1:0)},[o.pathname]),m.useEffect(()=>{r(a=>e.length===0?-1:Math.min(Math.max(0,a),e.length-1))},[e.length]),m.useEffect(()=>{if(document.querySelectorAll("[data-hotkey-row-index]").forEach(l=>{const u=Number(l.getAttribute("data-hotkey-row-index"));l.setAttribute("data-hotkey-selected",u===n?"true":"false")}),n>=0){const l=document.querySelector(`[data-hotkey-row-index="${n}"]`);l==null||l.scrollIntoView({block:"nearest"})}},[n,e.length]),en({keys:"j",scope:t.scope,description:"Select next row",handler:()=>r(a=>e.length===0?-1:Math.min(e.length-1,a<0?0:a+1))}),en({keys:"k",scope:t.scope,description:"Select previous row",handler:()=>r(a=>e.length===0?-1:Math.max(0,a<0?0:a-1))}),en({keys:"Enter",scope:t.scope,description:"Open selected row",handler:()=>{n>=0&&n<e.length&&t.onOpen(e[n],n)}}),en({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 i=m.useCallback(a=>({"data-hotkey-row-index":a,"data-hotkey-selected":a===n?"true":"false"}),[n]);return{selectedIndex:n,hotkeyRowProps:i}}function Hz(){return m.useSyncExternalStore(LO,I1,I1)}function Vz(e){switch(e){case"reconnecting":return{show:!0,label:"Reconnecting…",tone:"amber"};case"closed":return{show:!0,label:"Offline",tone:"amber"};case"connecting":return{show:!0,label:"Connecting…",tone:"muted"};case"open":return{show:!1,label:"Live",tone:"muted"}}}function Wz(){const e=Hz(),t=Vz(e);return s.jsx("div",{role:"status","aria-live":"polite",className:"flex items-center",children:t.show?s.jsxs("span",{className:`inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-xs font-medium ${t.tone==="amber"?"border-warning-foreground/30 bg-warning text-warning-foreground":"border-border/70 bg-background/80 text-muted-foreground"}`,children:[s.jsx("span",{"aria-hidden":"true",className:`h-1.5 w-1.5 rounded-full ${t.tone==="amber"?"bg-warning-foreground animate-pulse":"bg-muted-foreground/60"}`}),t.label]}):s.jsx("span",{className:"sr-only"})})}function Kz({title:e,breadcrumbs:t,projectSlug:n,onOpenMobileNav:r}){const o=gn(),{resolvedTheme:i,toggleTheme:a}=ew(),{openPalette:l}=Ai();return s.jsx("header",{className:"sticky top-0 z-30 border-b border-border/70 bg-background/70 backdrop-blur",children:s.jsxs("div",{className:"flex flex-wrap items-center gap-2 px-4 py-2.5 lg:px-6",children:[s.jsx("button",{type:"button",onClick:r,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:s.jsx(_4,{className:"h-4 w-4"})}),s.jsx("div",{className:"min-w-0 flex-1",children:s.jsxs("div",{className:"flex items-center gap-2",children:[t.length>1?s.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((u,f)=>s.jsxs("span",{className:"flex items-center gap-1.5",children:[f>0?s.jsx("span",{children:"/"}):null,s.jsx($e,{to:u.path,className:"hover:text-foreground",children:u.label})]},u.path)),s.jsx("span",{children:"/"})]}):null,s.jsx("h1",{className:"min-w-0 truncate text-base font-semibold text-foreground",children:e})]})}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(Wz,{}),s.jsxs("button",{type:"button",onClick:l,className:"shell-action","aria-label":"Open command palette",children:[s.jsx(Ei,{className:"h-4 w-4"}),s.jsx("span",{className:"hidden sm:inline font-mono text-xs",children:Zs("Mod+k")})]}),s.jsx($e,{className:"shell-action hidden sm:inline-flex",to:"/help",children:"Help"}),s.jsxs($e,{className:"shell-action",to:`${o}/create/project`,"aria-label":"New Project",children:[s.jsx(Pt,{className:"h-4 w-4"}),s.jsx("span",{className:"hidden sm:inline",children:"New Project"})]}),n?s.jsxs($e,{className:"shell-action",to:`${o}/projects/${n}/create/assignment`,"aria-label":"New Assignment",children:[s.jsx(Pt,{className:"h-4 w-4"}),s.jsx("span",{className:"hidden sm:inline",children:"New Assignment"})]}):null,s.jsxs("button",{type:"button",onClick:a,className:"shell-action","aria-label":"Toggle theme",children:[i==="dark"?s.jsx(V4,{className:"h-4 w-4"}):s.jsx(D4,{className:"h-4 w-4"}),s.jsx("span",{className:"hidden sm:inline",children:i==="dark"?"Light":"Dark"})]})]})]})})}const qz=4e3;function Qn(){const[e,t]=m.useState(null),n=m.useRef(null),r=m.useCallback(()=>{n.current!==null&&(clearTimeout(n.current),n.current=null),t(null)},[]),o=m.useCallback((i,a="error")=>{n.current!==null&&clearTimeout(n.current),t({id:Date.now()+Math.random(),message:i,kind:a}),n.current=setTimeout(()=>{t(null),n.current=null},qz)},[]);return m.useEffect(()=>()=>{n.current!==null&&clearTimeout(n.current)},[]),{toast:e,showToast:o,dismissToast:r}}function Xn({toast:e,onDismiss:t}){if(!e)return null;const n=e.kind==="error";return s.jsx("div",{className:"pointer-events-none fixed bottom-4 right-4 z-50 flex max-w-sm",role:"status","aria-live":"polite",children:s.jsx("button",{type:"button",onClick:t,className:we("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)})}const aN={review:0,blocked:0,question:0,"plan-approval":0};function rR(){const[e,t]=m.useState([]),[n,r]=m.useState(aN),[o,i]=m.useState(0),[a,l]=m.useState(!0),[u,f]=m.useState(null),[p,h]=m.useState(0),g=m.useCallback(()=>{h(y=>y+1)},[]);return m.useEffect(()=>{let y=!1;return l(!0),f(null),fetch("/api/inbox").then(async k=>{if(!k.ok){const v=await k.json().catch(()=>null);throw new Error((v==null?void 0:v.error)||`HTTP ${k.status}`)}return k.json()}).then(k=>{y||(t(Array.isArray(k.items)?k.items:[]),r(k.counts??aN),i(typeof k.total=="number"?k.total:0),l(!1))}).catch(k=>{y||(f(k.message),l(!1))}),()=>{y=!0}},[p]),Ti(y=>{(y.type==="assignment-updated"||y.type==="project-updated")&&g()}),{items:e,counts:n,total:o,loading:a,error:u,refetch:g}}const sR="syntaur.sidebar.collapsed.v1";function oR(){try{return typeof window>"u"?null:window.localStorage}catch{return null}}function Gz(e){if(!e)return{};try{const t=JSON.parse(e);if(!t||typeof t!="object"||Array.isArray(t))return{};const n={};for(const[r,o]of Object.entries(t))typeof o=="boolean"&&(n[r]=o);return n}catch{return{}}}function Yz(e,t){return{...e,[t]:!(e[t]??!1)}}function Xz(){const e=oR();if(!e)return{};try{return Gz(e.getItem(sR))}catch{return{}}}let Kp=Xz();const Mb=new Set,Qz={};function Jz(e){const t=oR();if(t)try{t.setItem(sR,JSON.stringify(e))}catch{}}function Zz(e){return Mb.add(e),()=>{Mb.delete(e)}}function eB(){return Kp}function tB(){return Qz}function nB(e){Kp=Yz(Kp,e),Jz(Kp);for(const t of Mb)t()}function rB(){const e=m.useSyncExternalStore(Zz,eB,tB);return{isCollapsed:(n,r=!1)=>e[n]??r,toggle:nB}}const gh="_ungrouped",sB=256;function oB(e){if(!Array.isArray(e))return[];const t=new Set,n=[];for(const r of e){if(typeof r!="string")continue;const o=r.trim();o.length!==0&&(o.length>sB||/[\r\n]/.test(o)||t.has(o)||(t.add(o),n.push(o)))}return n}function iB(e,t){if(t.length===0)return[...e];const n=new Set(t);return e.filter(r=>!n.has(r))}function aB(e,t){return t.includes(e)}const Sw={hidden:[],custom:!1};let So=null,ta=null,ld=0;const Lb=new Set;function iR(e){So=e;for(const t of Lb)t(e)}function Cw(e){if(!e||typeof e!="object")return Sw;const t=e;return{hidden:oB(t.hidden),custom:t.custom===!0}}function lB(){if(So)return Promise.resolve({value:So,ok:!0});if(ta)return ta;const e=++ld;return ta=fetch("/api/config/workspace-visibility").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{ta=null;const n=Cw(t);return e!==ld?{value:So??n,ok:!0}:(So=n,{value:n,ok:!0})}).catch(()=>(ta=null,{value:Sw,ok:!1})),ta}function aR(){const[e,t]=m.useState(()=>So??Sw),[n,r]=m.useState(()=>So===null),[o,i]=m.useState(!1),[a,l]=m.useState(0);m.useEffect(()=>{let f=!1;return r(So===null),lB().then(p=>{f||(t(p.value),r(!1),i(!p.ok))}),Lb.add(t),()=>{f=!0,Lb.delete(t)}},[a]);function u(){cB(),l(f=>f+1)}return{...e,loading:n,error:o,reload:u}}function cB(){So=null,ta=null,++ld}async function uB(e){++ld;const t=await fetch("/api/config/workspace-visibility",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({hidden:e})});if(!t.ok){const r=await t.json().catch(()=>null);throw new Error((r==null?void 0:r.error)??`HTTP ${t.status}`)}const n=Cw(await t.json());return iR(n),n}async function dB(){++ld;const e=await fetch("/api/config/workspace-visibility",{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=Cw(await e.json());return iR(t),t}var fB=Symbol("radix.slottable");function pB(e){const t=({children:n})=>s.jsx(s.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=fB,t}var lR="AlertDialog",[hB]=Ra(lR,[ET]),Do=ET(),cR=e=>{const{__scopeAlertDialog:t,...n}=e,r=Do(t);return s.jsx(HT,{...r,...n,modal:!0})};cR.displayName=lR;var mB="AlertDialogTrigger",gB=m.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Do(n);return s.jsx(VT,{...o,...r,ref:t})});gB.displayName=mB;var xB="AlertDialogPortal",uR=e=>{const{__scopeAlertDialog:t,...n}=e,r=Do(t);return s.jsx(WT,{...r,...n})};uR.displayName=xB;var yB="AlertDialogOverlay",dR=m.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Do(n);return s.jsx(hw,{...o,...r,ref:t})});dR.displayName=yB;var Ul="AlertDialogContent",[bB,vB]=hB(Ul),wB=pB("AlertDialogContent"),fR=m.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...o}=e,i=Do(n),a=m.useRef(null),l=rr(t,a),u=m.useRef(null);return s.jsx(T6,{contentName:Ul,titleName:pR,docsSlug:"alert-dialog",children:s.jsx(bB,{scope:n,cancelRef:u,children:s.jsxs(mw,{role:"alertdialog",...i,...o,ref:l,onOpenAutoFocus:sn(o.onOpenAutoFocus,f=>{var p;f.preventDefault(),(p=u.current)==null||p.focus({preventScroll:!0})}),onPointerDownOutside:f=>f.preventDefault(),onInteractOutside:f=>f.preventDefault(),children:[s.jsx(wB,{children:r}),s.jsx(kB,{contentRef:a})]})})})});fR.displayName=Ul;var pR="AlertDialogTitle",hR=m.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Do(n);return s.jsx(gw,{...o,...r,ref:t})});hR.displayName=pR;var mR="AlertDialogDescription",gR=m.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Do(n);return s.jsx(xw,{...o,...r,ref:t})});gR.displayName=mR;var jB="AlertDialogAction",xR=m.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Do(n);return s.jsx(yw,{...o,...r,ref:t})});xR.displayName=jB;var yR="AlertDialogCancel",bR=m.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:o}=vB(yR,n),i=Do(n),a=rr(t,o);return s.jsx(yw,{...i,...r,ref:a})});bR.displayName=yR;var kB=({contentRef:e})=>{const t=`\`${Ul}\` requires a description for the component to be accessible for screen reader users.
|
|
606
|
-
|
|
607
|
-
You can add a description to the \`${Ul}\` by passing a \`${mR}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
|
|
608
|
-
|
|
609
|
-
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 \`${Ul}\`. 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.
|
|
610
|
-
|
|
611
|
-
For more information, see https://radix-ui.com/primitives/docs/components/alert-dialog`;return m.useEffect(()=>{var r;document.getElementById((r=e.current)==null?void 0:r.getAttribute("aria-describedby"))||console.warn(t)},[t,e]),null},NB=cR,SB=uR,vR=dR,wR=fR,jR=xR,kR=bR,NR=hR,SR=gR;const Rl=NB,CB=SB,CR=m.forwardRef(({className:e,...t},n)=>s.jsx(vR,{ref:n,className:we("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm",e),...t}));CR.displayName=vR.displayName;const la=m.forwardRef(({className:e,...t},n)=>s.jsxs(CB,{children:[s.jsx(CR,{}),s.jsx(wR,{ref:n,className:we("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})]}));la.displayName=wR.displayName;function Al({className:e,...t}){return s.jsx("div",{className:we("flex flex-col space-y-2 text-left",e),...t})}function Pl({className:e,...t}){return s.jsx("div",{className:we("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t})}const ca=m.forwardRef(({className:e,...t},n)=>s.jsx(NR,{ref:n,className:we("text-lg font-semibold tracking-tight text-foreground",e),...t}));ca.displayName=NR.displayName;const ua=m.forwardRef(({className:e,...t},n)=>s.jsx(SR,{ref:n,className:we("text-sm leading-6 text-muted-foreground",e),...t}));ua.displayName=SR.displayName;const bi=m.forwardRef(({className:e,...t},n)=>s.jsx(jR,{ref:n,className:we(e),...t}));bi.displayName=jR.displayName;const cd=m.forwardRef(({className:e,...t},n)=>s.jsx(kR,{ref:n,className:we(e),...t}));cd.displayName=kR.displayName;const EB=[{to:"/",label:"Overview",icon:g2},{to:"/inbox",label:"Needs me",icon:y2}],TB=[{id:"library",label:"Library",items:[{to:"/playbooks",label:"Playbooks",icon:f2},{to:"/memories",label:"Memories",icon:i4},{to:"/resources",label:"Resources",icon:C4}]},{id:"board",label:"Board",items:[{to:"/todos",label:"Todos",icon:ys},{to:"/views",label:"Saved Views",icon:b2},{to:"/archive",label:"Archive",icon:rm}]},{id:"operations",label:"Operations",items:[{to:"/inventories",label:"Inventories",icon:Vv},{to:"/schedules",label:"Schedules",icon:p2},{to:"/usage",label:"Usage",icon:am}]}],RB=[{suffix:"/projects",label:"Projects",icon:Kv},{suffix:"/assignments",label:"Assignments",icon:R4},{suffix:"/servers",label:"Servers",icon:Xv},{suffix:"/agent-sessions",label:"Agent Sessions",icon:nm}],AB=[{to:"/help",label:"Help",icon:E4},{to:"/workflow",label:"Workflow",icon:N2},{to:"/settings",label:"Settings",icon:U4}];function PB({title:e,breadcrumbs:t,projectSlug:n,workspace:r,children:o}){const[i,a]=m.useState(!1);return en({keys:"Escape",scope:"global",description:"Close mobile navigation",enabled:i,handler:()=>a(!1)}),s.jsx("div",{className:"min-h-screen bg-background",children:s.jsxs("div",{className:"relative grid min-h-screen lg:grid-cols-[240px_minmax(0,1fr)]",children:[s.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:s.jsx(lN,{activeWorkspace:r})}),i?s.jsx("div",{className:"fixed inset-0 z-40 bg-overlay/40 lg:hidden",children:s.jsxs("div",{className:"h-full max-w-xs border-r border-border/70 bg-sidebar p-4 shadow-2xl",children:[s.jsxs("div",{className:"mb-4 flex items-center justify-between",children:[s.jsx($e,{to:"/",className:"text-lg font-semibold text-foreground",onClick:()=>a(!1),children:"Syntaur"}),s.jsx("button",{type:"button",onClick:()=>a(!1),className:"inline-flex h-9 w-9 items-center justify-center rounded-md border border-border/70 bg-background/80","aria-label":"Close navigation",children:s.jsx(jc,{className:"h-4 w-4"})})]}),s.jsx(lN,{activeWorkspace:r,onNavigate:()=>a(!1)})]})}):null,s.jsxs("div",{className:"min-w-0",children:[s.jsx(Kz,{title:e,breadcrumbs:t,projectSlug:n,onOpenMobileNav:()=>a(!0)}),s.jsx("main",{className:"mx-auto w-full max-w-[1480px] px-4 py-4 lg:px-6 lg:py-5",children:o})]})]})})}function lN({activeWorkspace:e,onNavigate:t}){const{total:n}=rR(),r=EB.map(O=>O.to==="/inbox"?{...O,badge:n}:O),{data:o}=Ta(),i=(o==null?void 0:o.workspaces)??[],a=(o==null?void 0:o.hasUngrouped)??!1,{hidden:l}=aR(),u=sr(),{isCollapsed:f,toggle:p}=rB(),h=u.pathname.startsWith("/w/")?null:D2(u.pathname),[g,y]=m.useState(!1),[k,v]=m.useState(""),[b,j]=m.useState(null),[S,N]=m.useState(null),[C,P]=m.useState(null),[T,R]=m.useState(!1),I=Wt(),{toast:_,showToast:F,dismissToast:D}=Qn(),W=iB([...i,...a?[gh]:[]],l);async function V(O){if(S){R(!0);try{const U=`/api/workspaces/${encodeURIComponent(S)}${O?"?cascade=true":""}`,K=await fetch(U,{method:"DELETE"});if(K.status===409){const M=await K.json().catch(()=>({}));P((M==null?void 0:M.blockedBy)??{projects:[],standalones:[]});return}if(!K.ok){const M=await K.json().catch(()=>({}));throw new Error(M.error||"Failed to delete workspace")}N(null),P(null)}catch(U){console.error(U),alert(U instanceof Error?U.message:"Failed to delete workspace")}finally{R(!1)}}}async function $(O,U){try{if(O.type==="project"){const K=await fetch(`/api/projects/${encodeURIComponent(O.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspace:U})});if(!K.ok){const M=await K.json().catch(()=>({}));throw new Error(M.error||"Failed to move project")}return}if(O.type==="standalone-assignment"){const K=await fetch(`/api/assignments/${encodeURIComponent(O.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspaceGroup:U})});if(!K.ok){const M=await K.json().catch(()=>({}));throw new Error(M.error||"Failed to move assignment")}return}if(O.type==="project-assignment"){alert("Assignments inherit workspace from their project — drag the project (or move it) to change workspaces.");return}}catch(K){console.error(K),alert(K instanceof Error?K.message:"Failed to move item")}}return s.jsxs("div",{className:"flex h-full flex-col gap-3",children:[s.jsx(Xn,{toast:_,onDismiss:D}),s.jsx("div",{className:"space-y-3",children:s.jsxs($e,{to:"/",className:"inline-flex items-center gap-3",onClick:t,children:[s.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:s.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:[s.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"}),s.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"}),s.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"}),s.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"})]})}),s.jsxs("div",{children:[s.jsx("p",{className:"text-sm font-semibold text-foreground",children:"Syntaur"}),s.jsx("p",{className:"text-xs text-muted-foreground/60",children:"Local-first project control"})]})]})}),s.jsxs("div",{className:"space-y-1",children:[s.jsx($1,{items:r,onNavigate:t}),TB.map(O=>s.jsx(RO,{label:O.label,items:O.items,collapsed:f(O.id),onToggle:()=>p(O.id),containsActive:O.items.some(U=>U.to===h),onNavigate:t},O.id))]}),s.jsx("div",{className:"border-t border-border/40"}),s.jsxs("div",{className:"flex-1 space-y-1 overflow-y-auto",children:[W.length===0&&!g&&s.jsx("p",{className:"px-3 py-2 text-xs text-muted-foreground/60",children:"No workspaces yet"}),W.map(O=>{const U=O==="_ungrouped",K=U?"Ungrouped":hn(O),M=U?"/w/_ungrouped":`/w/${O}`,H=f(`ws:${O}`),L=e===O||e===null&&U&&u.pathname.startsWith("/w/_ungrouped"),z=b===O;return s.jsxs("div",{className:`rounded-md transition ${z?"bg-accent/40 ring-1 ring-ring/40":""}`,onDragOver:Y=>{Y.dataTransfer.types.includes("application/json")&&(Y.preventDefault(),Y.dataTransfer.dropEffect="move",j(O))},onDragLeave:Y=>{Y.currentTarget.contains(Y.relatedTarget)||j(B=>B===O?null:B)},onDrop:async Y=>{try{const B=Y.dataTransfer.getData("application/json");if(!B)return;Y.preventDefault();let Q;try{Q=JSON.parse(B)}catch{return}if(!(Q!=null&&Q.type)||!(Q!=null&&Q.id))return;await $(Q,U?null:O)}finally{j(null)}},children:[s.jsxs("div",{className:"group flex items-center",children:[s.jsxs("button",{type:"button",onClick:()=>p(`ws:${O}`),className:`flex flex-1 items-center gap-2 rounded-md px-3 py-1.5 text-xs font-semibold uppercase tracking-wider transition ${L?"text-foreground":"text-muted-foreground/70 hover:text-muted-foreground"}`,children:[s.jsx(nr,{className:`h-3 w-3 transition-transform ${H?"-rotate-90":""}`}),K]}),U?null:s.jsx("button",{type:"button",onClick:Y=>{Y.stopPropagation(),N(O),P(null)},title:`Delete workspace "${O}"`,"aria-label":`Delete workspace "${O}"`,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:s.jsx(mn,{className:"h-3 w-3"})})]}),!H&&s.jsx("nav",{className:"ml-2 space-y-0.5",children:RB.map(Y=>{const B=`${M}${Y.suffix}`,Q=$2(u.pathname,Y.suffix)&&u.pathname.startsWith(M),J=Y.icon;return s.jsxs($e,{to:B,onClick:t,className:`flex items-center gap-3 rounded-md px-3 py-1.5 text-sm font-medium transition ${Q?"bg-foreground text-background shadow-sm":"text-muted-foreground hover:bg-background/80 hover:text-foreground"}`,children:[s.jsx(J,{className:"h-4 w-4"}),s.jsx("span",{children:Y.label})]},B)})})]},O)}),g?s.jsx("form",{className:"px-3 py-1.5",onSubmit:async O=>{O.preventDefault();const U=k.trim().toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"");if(U){y(!1),v("");try{const K=await fetch("/api/workspaces",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:U})});if(!K.ok){const M=await K.json().catch(()=>null);F((M==null?void 0:M.error)||`HTTP ${K.status}`,"error");return}t==null||t(),I(`/w/${U}/projects`)}catch(K){F(K instanceof Error?K.message:"Failed to create workspace","error")}}},children:s.jsx("input",{autoFocus:!0,type:"text",value:k,onChange:O=>v(O.target.value),onKeyDown:O=>{O.key==="Escape"&&(y(!1),v(""))},onBlur:()=>{k.trim()||(y(!1),v(""))},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"})}):s.jsxs("button",{type:"button",onClick:()=>y(!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:[s.jsx(Pt,{className:"h-3 w-3"}),"New Workspace"]})]}),s.jsx("div",{className:"border-t border-border/40"}),s.jsx($1,{items:AB,onNavigate:t}),s.jsx(Rl,{open:S!==null,onOpenChange:O=>{T||O||(N(null),P(null))},children:s.jsxs(la,{children:[s.jsxs(Al,{children:[s.jsx(ca,{children:C?"Workspace has references":"Delete workspace?"}),s.jsx(ua,{children:C?s.jsxs(s.Fragment,{children:["The workspace ",s.jsx("code",{className:"rounded bg-muted px-1 py-0.5",children:S})," is still referenced by:"]}):s.jsxs(s.Fragment,{children:["Remove the workspace ",s.jsx("code",{className:"rounded bg-muted px-1 py-0.5",children:S})," from the registry. This does not affect projects or standalones unless you choose to cascade."]})})]}),C?s.jsxs("div",{className:"space-y-2 text-sm",children:[C.projects.length>0?s.jsxs("div",{children:[s.jsxs("p",{className:"font-medium text-foreground",children:["Projects (",C.projects.length,")"]}),s.jsx("ul",{className:"mt-1 list-disc pl-5 text-muted-foreground",children:C.projects.map(O=>s.jsx("li",{children:s.jsx($e,{to:`/projects/${O}`,className:"hover:underline",children:O})},O))})]}):null,C.standalones.length>0?s.jsxs("div",{children:[s.jsxs("p",{className:"font-medium text-foreground",children:["Standalones (",C.standalones.length,")"]}),s.jsx("ul",{className:"mt-1 list-disc pl-5 text-muted-foreground",children:C.standalones.map(O=>s.jsx("li",{children:s.jsx($e,{to:`/assignments/${O}`,className:"hover:underline",children:O})},O))})]}):null,s.jsxs("p",{className:"text-xs text-muted-foreground",children:['Choose "Clear references and delete" to set ',s.jsx("code",{children:"workspace:"})," / ",s.jsx("code",{children:"workspaceGroup:"})," to ",s.jsx("code",{children:"null"})," on each, then remove the workspace."]})]}):null,s.jsxs(Pl,{children:[s.jsx(cd,{disabled:T,className:"shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50",children:"Cancel"}),C?s.jsx(bi,{disabled:T,onClick:O=>{O.preventDefault(),V(!0)},className:"shell-action mt-0 border-destructive/80 bg-destructive text-destructive-foreground hover:bg-destructive/90 disabled:cursor-not-allowed disabled:opacity-50",children:T?"Working…":"Clear references and delete"}):s.jsx(bi,{disabled:T,onClick:O=>{O.preventDefault(),V(!1)},className:"shell-action mt-0 border-destructive/80 bg-destructive text-destructive-foreground hover:bg-destructive/90 disabled:cursor-not-allowed disabled:opacity-50",children:T?"Working…":"Delete"})]})]})})]})}function _B(){const e=sr(),{workspace:t}=Kt(),{title:n,breadcrumbs:r,projectSlug:o}=I2(e.pathname);return s.jsx(PB,{title:n,breadcrumbs:r,projectSlug:o,workspace:t??null,children:s.jsx(xL,{})})}function DB(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.useMemo(()=>r=>{t.forEach(o=>o(r))},t)}const wm=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Nc(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Ew(e){return"nodeType"in e}function ur(e){var t,n;return e?Nc(e)?e:Ew(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function Tw(e){const{Document:t}=ur(e);return e instanceof t}function zd(e){return Nc(e)?!1:e instanceof ur(e).HTMLElement}function ER(e){return e instanceof ur(e).SVGElement}function Sc(e){return e?Nc(e)?e.document:Ew(e)?Tw(e)?e:zd(e)||ER(e)?e.ownerDocument:document:document:document}const ws=wm?m.useLayoutEffect:m.useEffect;function jm(e){const t=m.useRef(e);return ws(()=>{t.current=e}),m.useCallback(function(){for(var n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return t.current==null?void 0:t.current(...r)},[])}function $B(){const e=m.useRef(null),t=m.useCallback((r,o)=>{e.current=setInterval(r,o)},[]),n=m.useCallback(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[]);return[t,n]}function ud(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return ws(()=>{n.current!==e&&(n.current=e)},t),n}function Bd(e,t){const n=m.useRef();return m.useMemo(()=>{const r=e(n.current);return n.current=r,r},[...t])}function xh(e){const t=jm(e),n=m.useRef(null),r=m.useCallback(o=>{o!==n.current&&(t==null||t(o,n.current)),n.current=o},[]);return[n,r]}function yh(e){const t=m.useRef();return m.useEffect(()=>{t.current=e},[e]),t.current}let xy={};function Ud(e,t){return m.useMemo(()=>{if(t)return t;const n=xy[e]==null?0:xy[e]+1;return xy[e]=n,e+"-"+n},[e,t])}function TR(e){return function(t){for(var n=arguments.length,r=new Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return r.reduce((i,a)=>{const l=Object.entries(a);for(const[u,f]of l){const p=i[u];p!=null&&(i[u]=p+e*f)}return i},{...t})}}const Hl=TR(1),dd=TR(-1);function IB(e){return"clientX"in e&&"clientY"in e}function km(e){if(!e)return!1;const{KeyboardEvent:t}=ur(e.target);return t&&e instanceof t}function MB(e){if(!e)return!1;const{TouchEvent:t}=ur(e.target);return t&&e instanceof t}function bh(e){if(MB(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 IB(e)?{x:e.clientX,y:e.clientY}:null}const js=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[js.Translate.toString(e),js.Scale.toString(e)].join(" ")}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+" "+n+"ms "+r}}}),cN="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function LB(e){return e.matches(cN)?e:e.querySelector(cN)}const OB={display:"none"};function FB(e){let{id:t,value:n}=e;return Ot.createElement("div",{id:t,style:OB},n)}function zB(e){let{id:t,announcement:n,ariaLiveType:r="assertive"}=e;const o={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 Ot.createElement("div",{id:t,style:o,role:"status","aria-live":r,"aria-atomic":!0},n)}function BB(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const RR=m.createContext(null);function UB(e){const t=m.useContext(RR);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}function HB(){const[e]=m.useState(()=>new Set),t=m.useCallback(r=>(e.add(r),()=>e.delete(r)),[e]);return[m.useCallback(r=>{let{type:o,event:i}=r;e.forEach(a=>{var l;return(l=a[o])==null?void 0:l.call(a,i)})},[e]),t]}const VB={draggable:`
|
|
612
|
-
To pick up a draggable item, press the space bar.
|
|
613
|
-
While dragging, use the arrow keys to move the item.
|
|
614
|
-
Press space again to drop the item in its new position, or press escape to cancel.
|
|
615
|
-
`},WB={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 KB(e){let{announcements:t=WB,container:n,hiddenTextDescribedById:r,screenReaderInstructions:o=VB}=e;const{announce:i,announcement:a}=BB(),l=Ud("DndLiveRegion"),[u,f]=m.useState(!1);if(m.useEffect(()=>{f(!0)},[]),UB(m.useMemo(()=>({onDragStart(h){let{active:g}=h;i(t.onDragStart({active:g}))},onDragMove(h){let{active:g,over:y}=h;t.onDragMove&&i(t.onDragMove({active:g,over:y}))},onDragOver(h){let{active:g,over:y}=h;i(t.onDragOver({active:g,over:y}))},onDragEnd(h){let{active:g,over:y}=h;i(t.onDragEnd({active:g,over:y}))},onDragCancel(h){let{active:g,over:y}=h;i(t.onDragCancel({active:g,over:y}))}}),[i,t])),!u)return null;const p=Ot.createElement(Ot.Fragment,null,Ot.createElement(FB,{id:r,value:o.draggable}),Ot.createElement(zB,{id:l,announcement:a}));return n?Ys.createPortal(p,n):p}var $n;(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"})($n||($n={}));function vh(){}function ki(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function Nm(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m.useMemo(()=>[...t].filter(r=>r!=null),[...t])}const ks=Object.freeze({x:0,y:0});function AR(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function qB(e,t){const n=bh(e);if(!n)return"0 0";const r={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return r.x+"% "+r.y+"%"}function PR(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function GB(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function uN(e){let{left:t,top:n,height:r,width:o}=e;return[{x:t,y:n},{x:t+o,y:n},{x:t,y:n+r},{x:t+o,y:n+r}]}function _R(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function dN(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 Sm=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=dN(t,t.left,t.top),i=[];for(const a of r){const{id:l}=a,u=n.get(l);if(u){const f=AR(dN(u),o);i.push({id:l,data:{droppableContainer:a,value:f}})}}return i.sort(PR)},YB=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=uN(t),i=[];for(const a of r){const{id:l}=a,u=n.get(l);if(u){const f=uN(u),p=o.reduce((g,y,k)=>g+AR(f[k],y),0),h=Number((p/4).toFixed(4));i.push({id:l,data:{droppableContainer:a,value:h}})}}return i.sort(PR)};function XB(e,t){const n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),o=Math.min(t.left+t.width,e.left+e.width),i=Math.min(t.top+t.height,e.top+e.height),a=o-r,l=i-n;if(r<o&&n<i){const u=t.width*t.height,f=e.width*e.height,p=a*l,h=p/(u+f-p);return Number(h.toFixed(4))}return 0}const QB=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=[];for(const i of r){const{id:a}=i,l=n.get(a);if(l){const u=XB(l,t);u>0&&o.push({id:a,data:{droppableContainer:i,value:u}})}}return o.sort(GB)};function JB(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function DR(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:ks}function ZB(e){return function(n){for(var r=arguments.length,o=new Array(r>1?r-1:0),i=1;i<r;i++)o[i-1]=arguments[i];return o.reduce((a,l)=>({...a,top:a.top+e*l.y,bottom:a.bottom+e*l.y,left:a.left+e*l.x,right:a.right+e*l.x}),{...n})}}const e8=ZB(1);function $R(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 t8(e,t,n){const r=$R(t);if(!r)return e;const{scaleX:o,scaleY:i,x:a,y:l}=r,u=e.left-a-(1-o)*parseFloat(n),f=e.top-l-(1-i)*parseFloat(n.slice(n.indexOf(" ")+1)),p=o?e.width/o:e.width,h=i?e.height/i:e.height;return{width:p,height:h,top:f,right:u+p,bottom:f+h,left:u}}const n8={ignoreTransform:!1};function Cc(e,t){t===void 0&&(t=n8);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:f,transformOrigin:p}=ur(e).getComputedStyle(e);f&&(n=t8(n,f,p))}const{top:r,left:o,width:i,height:a,bottom:l,right:u}=n;return{top:r,left:o,width:i,height:a,bottom:l,right:u}}function fN(e){return Cc(e,{ignoreTransform:!0})}function r8(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function s8(e,t){return t===void 0&&(t=ur(e).getComputedStyle(e)),t.position==="fixed"}function o8(e,t){t===void 0&&(t=ur(e).getComputedStyle(e));const n=/(auto|scroll|overlay)/;return["overflow","overflowX","overflowY"].some(o=>{const i=t[o];return typeof i=="string"?n.test(i):!1})}function Cm(e,t){const n=[];function r(o){if(t!=null&&n.length>=t||!o)return n;if(Tw(o)&&o.scrollingElement!=null&&!n.includes(o.scrollingElement))return n.push(o.scrollingElement),n;if(!zd(o)||ER(o)||n.includes(o))return n;const i=ur(e).getComputedStyle(o);return o!==e&&o8(o,i)&&n.push(o),s8(o,i)?n:r(o.parentNode)}return e?r(e):n}function IR(e){const[t]=Cm(e,1);return t??null}function yy(e){return!wm||!e?null:Nc(e)?e:Ew(e)?Tw(e)||e===Sc(e).scrollingElement?window:zd(e)?e:null:null}function MR(e){return Nc(e)?e.scrollX:e.scrollLeft}function LR(e){return Nc(e)?e.scrollY:e.scrollTop}function Ob(e){return{x:MR(e),y:LR(e)}}var Vn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(Vn||(Vn={}));function OR(e){return!wm||!e?!1:e===document.scrollingElement}function FR(e){const t={x:0,y:0},n=OR(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height},o=e.scrollTop<=t.y,i=e.scrollLeft<=t.x,a=e.scrollTop>=r.y,l=e.scrollLeft>=r.x;return{isTop:o,isLeft:i,isBottom:a,isRight:l,maxScroll:r,minScroll:t}}const i8={x:.2,y:.2};function a8(e,t,n,r,o){let{top:i,left:a,right:l,bottom:u}=n;r===void 0&&(r=10),o===void 0&&(o=i8);const{isTop:f,isBottom:p,isLeft:h,isRight:g}=FR(e),y={x:0,y:0},k={x:0,y:0},v={height:t.height*o.y,width:t.width*o.x};return!f&&i<=t.top+v.height?(y.y=Vn.Backward,k.y=r*Math.abs((t.top+v.height-i)/v.height)):!p&&u>=t.bottom-v.height&&(y.y=Vn.Forward,k.y=r*Math.abs((t.bottom-v.height-u)/v.height)),!g&&l>=t.right-v.width?(y.x=Vn.Forward,k.x=r*Math.abs((t.right-v.width-l)/v.width)):!h&&a<=t.left+v.width&&(y.x=Vn.Backward,k.x=r*Math.abs((t.left+v.width-a)/v.width)),{direction:y,speed:k}}function l8(e){if(e===document.scrollingElement){const{innerWidth:i,innerHeight:a}=window;return{top:0,left:0,right:i,bottom:a,width:i,height:a}}const{top:t,left:n,right:r,bottom:o}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:o,width:e.clientWidth,height:e.clientHeight}}function zR(e){return e.reduce((t,n)=>Hl(t,Ob(n)),ks)}function c8(e){return e.reduce((t,n)=>t+MR(n),0)}function u8(e){return e.reduce((t,n)=>t+LR(n),0)}function BR(e,t){if(t===void 0&&(t=Cc),!e)return;const{top:n,left:r,bottom:o,right:i}=t(e);IR(e)&&(o<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const d8=[["x",["left","right"],c8],["y",["top","bottom"],u8]];class Rw{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 r=Cm(n),o=zR(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,a,l]of d8)for(const u of a)Object.defineProperty(this,u,{get:()=>{const f=l(r),p=o[i]-f;return this.rect[u]+p},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}}class Gu{constructor(t){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(n=>{var r;return(r=this.target)==null?void 0:r.removeEventListener(...n)})},this.target=t}add(t,n,r){var o;(o=this.target)==null||o.addEventListener(t,n,r),this.listeners.push([t,n,r])}}function f8(e){const{EventTarget:t}=ur(e);return e instanceof t?e:Sc(e)}function by(e,t){const n=Math.abs(e.x),r=Math.abs(e.y);return typeof t=="number"?Math.sqrt(n**2+r**2)>t:"x"in t&&"y"in t?n>t.x&&r>t.y:"x"in t?n>t.x:"y"in t?r>t.y:!1}var Zr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(Zr||(Zr={}));function pN(e){e.preventDefault()}function p8(e){e.stopPropagation()}var At;(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"})(At||(At={}));const UR={start:[At.Space,At.Enter],cancel:[At.Esc],end:[At.Space,At.Enter,At.Tab]},h8=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case At.Right:return{...n,x:n.x+25};case At.Left:return{...n,x:n.x-25};case At.Down:return{...n,y:n.y+25};case At.Up:return{...n,y:n.y-25}}};class Ec{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 Gu(Sc(n)),this.windowListeners=new Gu(ur(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Zr.Resize,this.handleCancel),this.windowListeners.add(Zr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Zr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&BR(r),n(ks)}handleKeyDown(t){if(km(t)){const{active:n,context:r,options:o}=this.props,{keyboardCodes:i=UR,coordinateGetter:a=h8,scrollBehavior:l="smooth"}=o,{code:u}=t;if(i.end.includes(u)){this.handleEnd(t);return}if(i.cancel.includes(u)){this.handleCancel(t);return}const{collisionRect:f}=r.current,p=f?{x:f.left,y:f.top}:ks;this.referenceCoordinates||(this.referenceCoordinates=p);const h=a(t,{active:n,context:r.current,currentCoordinates:p});if(h){const g=dd(h,p),y={x:0,y:0},{scrollableAncestors:k}=r.current;for(const v of k){const b=t.code,{isTop:j,isRight:S,isLeft:N,isBottom:C,maxScroll:P,minScroll:T}=FR(v),R=l8(v),I={x:Math.min(b===At.Right?R.right-R.width/2:R.right,Math.max(b===At.Right?R.left:R.left+R.width/2,h.x)),y:Math.min(b===At.Down?R.bottom-R.height/2:R.bottom,Math.max(b===At.Down?R.top:R.top+R.height/2,h.y))},_=b===At.Right&&!S||b===At.Left&&!N,F=b===At.Down&&!C||b===At.Up&&!j;if(_&&I.x!==h.x){const D=v.scrollLeft+g.x,W=b===At.Right&&D<=P.x||b===At.Left&&D>=T.x;if(W&&!g.y){v.scrollTo({left:D,behavior:l});return}W?y.x=v.scrollLeft-D:y.x=b===At.Right?v.scrollLeft-P.x:v.scrollLeft-T.x,y.x&&v.scrollBy({left:-y.x,behavior:l});break}else if(F&&I.y!==h.y){const D=v.scrollTop+g.y,W=b===At.Down&&D<=P.y||b===At.Up&&D>=T.y;if(W&&!g.x){v.scrollTo({top:D,behavior:l});return}W?y.y=v.scrollTop-D:y.y=b===At.Down?v.scrollTop-P.y:v.scrollTop-T.y,y.y&&v.scrollBy({top:-y.y,behavior:l});break}}this.handleMove(t,Hl(dd(h,this.referenceCoordinates),y))}}}handleMove(t,n){const{onMove:r}=this.props;t.preventDefault(),r(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()}}Ec.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=UR,onActivation:o}=t,{active:i}=n;const{code:a}=e.nativeEvent;if(r.start.includes(a)){const l=i.activatorNode.current;return l&&e.target!==l?!1:(e.preventDefault(),o==null||o({event:e.nativeEvent}),!0)}return!1}}];function hN(e){return!!(e&&"distance"in e)}function mN(e){return!!(e&&"delay"in e)}class Aw{constructor(t,n,r){var o;r===void 0&&(r=f8(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:i}=t,{target:a}=i;this.props=t,this.events=n,this.document=Sc(a),this.documentListeners=new Gu(this.document),this.listeners=new Gu(r),this.windowListeners=new Gu(ur(a)),this.initialCoordinates=(o=bh(i))!=null?o:ks,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:r}}}=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(Zr.Resize,this.handleCancel),this.windowListeners.add(Zr.DragStart,pN),this.windowListeners.add(Zr.VisibilityChange,this.handleCancel),this.windowListeners.add(Zr.ContextMenu,pN),this.documentListeners.add(Zr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(mN(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(hN(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:r,onPending:o}=this.props;o(r,t,this.initialCoordinates,n)}handleStart(){const{initialCoordinates:t}=this,{onStart:n}=this.props;t&&(this.activated=!0,this.documentListeners.add(Zr.Click,p8,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Zr.SelectionChange,this.removeTextSelection),n(t))}handleMove(t){var n;const{activated:r,initialCoordinates:o,props:i}=this,{onMove:a,options:{activationConstraint:l}}=i;if(!o)return;const u=(n=bh(t))!=null?n:ks,f=dd(o,u);if(!r&&l){if(hN(l)){if(l.tolerance!=null&&by(f,l.tolerance))return this.handleCancel();if(by(f,l.distance))return this.handleStart()}if(mN(l)&&by(f,l.tolerance))return this.handleCancel();this.handlePending(l,f);return}t.cancelable&&t.preventDefault(),a(u)}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===At.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const m8={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Tc extends Aw{constructor(t){const{event:n}=t,r=Sc(n.target);super(t,m8,r)}}Tc.activators=[{eventName:"onPointerDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r==null||r({event:n}),!0)}}];const g8={move:{name:"mousemove"},end:{name:"mouseup"}};var Fb;(function(e){e[e.RightClick=2]="RightClick"})(Fb||(Fb={}));class x8 extends Aw{constructor(t){super(t,g8,Sc(t.event.target))}}x8.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===Fb.RightClick?!1:(r==null||r({event:n}),!0)}}];const vy={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class y8 extends Aw{constructor(t){super(t,vy)}static setup(){return window.addEventListener(vy.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(vy.move.name,t)};function t(){}}}y8.activators=[{eventName:"onTouchStart",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;const{touches:o}=n;return o.length>1?!1:(r==null||r({event:n}),!0)}}];var Yu;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Yu||(Yu={}));var wh;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(wh||(wh={}));function b8(e){let{acceleration:t,activator:n=Yu.Pointer,canScroll:r,draggingRect:o,enabled:i,interval:a=5,order:l=wh.TreeOrder,pointerCoordinates:u,scrollableAncestors:f,scrollableAncestorRects:p,delta:h,threshold:g}=e;const y=w8({delta:h,disabled:!i}),[k,v]=$B(),b=m.useRef({x:0,y:0}),j=m.useRef({x:0,y:0}),S=m.useMemo(()=>{switch(n){case Yu.Pointer:return u?{top:u.y,bottom:u.y,left:u.x,right:u.x}:null;case Yu.DraggableRect:return o}},[n,o,u]),N=m.useRef(null),C=m.useCallback(()=>{const T=N.current;if(!T)return;const R=b.current.x*j.current.x,I=b.current.y*j.current.y;T.scrollBy(R,I)},[]),P=m.useMemo(()=>l===wh.TreeOrder?[...f].reverse():f,[l,f]);m.useEffect(()=>{if(!i||!f.length||!S){v();return}for(const T of P){if((r==null?void 0:r(T))===!1)continue;const R=f.indexOf(T),I=p[R];if(!I)continue;const{direction:_,speed:F}=a8(T,I,S,t,g);for(const D of["x","y"])y[D][_[D]]||(F[D]=0,_[D]=0);if(F.x>0||F.y>0){v(),N.current=T,k(C,a),b.current=F,j.current=_;return}}b.current={x:0,y:0},j.current={x:0,y:0},v()},[t,C,r,v,i,a,JSON.stringify(S),JSON.stringify(y),k,f,P,p,JSON.stringify(g)])}const v8={x:{[Vn.Backward]:!1,[Vn.Forward]:!1},y:{[Vn.Backward]:!1,[Vn.Forward]:!1}};function w8(e){let{delta:t,disabled:n}=e;const r=yh(t);return Bd(o=>{if(n||!r||!o)return v8;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[Vn.Backward]:o.x[Vn.Backward]||i.x===-1,[Vn.Forward]:o.x[Vn.Forward]||i.x===1},y:{[Vn.Backward]:o.y[Vn.Backward]||i.y===-1,[Vn.Forward]:o.y[Vn.Forward]||i.y===1}}},[n,t,r])}function j8(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Bd(o=>{var i;return t==null?null:(i=r??o)!=null?i:null},[r,t])}function k8(e,t){return m.useMemo(()=>e.reduce((n,r)=>{const{sensor:o}=r,i=o.activators.map(a=>({eventName:a.eventName,handler:t(a.handler,r)}));return[...n,...i]},[]),[e,t])}var fd;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(fd||(fd={}));var zb;(function(e){e.Optimized="optimized"})(zb||(zb={}));const gN=new Map;function N8(e,t){let{dragging:n,dependencies:r,config:o}=t;const[i,a]=m.useState(null),{frequency:l,measure:u,strategy:f}=o,p=m.useRef(e),h=b(),g=ud(h),y=m.useCallback(function(j){j===void 0&&(j=[]),!g.current&&a(S=>S===null?j:S.concat(j.filter(N=>!S.includes(N))))},[g]),k=m.useRef(null),v=Bd(j=>{if(h&&!n)return gN;if(!j||j===gN||p.current!==e||i!=null){const S=new Map;for(let N of e){if(!N)continue;if(i&&i.length>0&&!i.includes(N.id)&&N.rect.current){S.set(N.id,N.rect.current);continue}const C=N.node.current,P=C?new Rw(u(C),C):null;N.rect.current=P,P&&S.set(N.id,P)}return S}return j},[e,i,n,h,u]);return m.useEffect(()=>{p.current=e},[e]),m.useEffect(()=>{h||y()},[n,h]),m.useEffect(()=>{i&&i.length>0&&a(null)},[JSON.stringify(i)]),m.useEffect(()=>{h||typeof l!="number"||k.current!==null||(k.current=setTimeout(()=>{y(),k.current=null},l))},[l,h,y,...r]),{droppableRects:v,measureDroppableContainers:y,measuringScheduled:i!=null};function b(){switch(f){case fd.Always:return!1;case fd.BeforeDragging:return n;default:return!n}}}function Pw(e,t){return Bd(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function S8(e,t){return Pw(e,t)}function C8(e){let{callback:t,disabled:n}=e;const r=jm(t),o=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.MutationObserver>"u")return;const{MutationObserver:i}=window;return new i(r)},[r,n]);return m.useEffect(()=>()=>o==null?void 0:o.disconnect(),[o]),o}function Em(e){let{callback:t,disabled:n}=e;const r=jm(t),o=m.useMemo(()=>{if(n||typeof window>"u"||typeof window.ResizeObserver>"u")return;const{ResizeObserver:i}=window;return new i(r)},[n]);return m.useEffect(()=>()=>o==null?void 0:o.disconnect(),[o]),o}function E8(e){return new Rw(Cc(e),e)}function xN(e,t,n){t===void 0&&(t=E8);const[r,o]=m.useState(null);function i(){o(u=>{if(!e)return null;if(e.isConnected===!1){var f;return(f=u??n)!=null?f:null}const p=t(e);return JSON.stringify(u)===JSON.stringify(p)?u:p})}const a=C8({callback(u){if(e)for(const f of u){const{type:p,target:h}=f;if(p==="childList"&&h instanceof HTMLElement&&h.contains(e)){i();break}}}}),l=Em({callback:i});return ws(()=>{i(),e?(l==null||l.observe(e),a==null||a.observe(document.body,{childList:!0,subtree:!0})):(l==null||l.disconnect(),a==null||a.disconnect())},[e]),r}function T8(e){const t=Pw(e);return DR(e,t)}const yN=[];function R8(e){const t=m.useRef(e),n=Bd(r=>e?r&&r!==yN&&e&&t.current&&e.parentNode===t.current.parentNode?r:Cm(e):yN,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function A8(e){const[t,n]=m.useState(null),r=m.useRef(e),o=m.useCallback(i=>{const a=yy(i.target);a&&n(l=>l?(l.set(a,Ob(a)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){a(i);const l=e.map(u=>{const f=yy(u);return f?(f.addEventListener("scroll",o,{passive:!0}),[f,Ob(f)]):null}).filter(u=>u!=null);n(l.length?new Map(l):null),r.current=e}return()=>{a(e),a(i)};function a(l){l.forEach(u=>{const f=yy(u);f==null||f.removeEventListener("scroll",o)})}},[o,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,a)=>Hl(i,a),ks):zR(e):ks,[e,t])}function bN(e,t){t===void 0&&(t=[]);const n=m.useRef(null);return m.useEffect(()=>{n.current=null},t),m.useEffect(()=>{const r=e!==ks;r&&!n.current&&(n.current=e),!r&&n.current&&(n.current=null)},[e]),n.current?dd(e,n.current):ks}function P8(e){m.useEffect(()=>{if(!wm)return;const t=e.map(n=>{let{sensor:r}=n;return r.setup==null?void 0:r.setup()});return()=>{for(const n of t)n==null||n()}},e.map(t=>{let{sensor:n}=t;return n}))}function _8(e,t){return m.useMemo(()=>e.reduce((n,r)=>{let{eventName:o,handler:i}=r;return n[o]=a=>{i(a,t)},n},{}),[e,t])}function HR(e){return m.useMemo(()=>e?r8(e):null,[e])}const vN=[];function D8(e,t){t===void 0&&(t=Cc);const[n]=e,r=HR(n?ur(n):null),[o,i]=m.useState(vN);function a(){i(()=>e.length?e.map(u=>OR(u)?r:new Rw(t(u),u)):vN)}const l=Em({callback:a});return ws(()=>{l==null||l.disconnect(),a(),e.forEach(u=>l==null?void 0:l.observe(u))},[e]),o}function VR(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return zd(t)?t:e}function $8(e){let{measure:t}=e;const[n,r]=m.useState(null),o=m.useCallback(f=>{for(const{target:p}of f)if(zd(p)){r(h=>{const g=t(p);return h?{...h,width:g.width,height:g.height}:g});break}},[t]),i=Em({callback:o}),a=m.useCallback(f=>{const p=VR(f);i==null||i.disconnect(),p&&(i==null||i.observe(p)),r(p?t(p):null)},[t,i]),[l,u]=xh(a);return m.useMemo(()=>({nodeRef:l,rect:n,setRef:u}),[n,l,u])}const I8=[{sensor:Tc,options:{}},{sensor:Ec,options:{}}],M8={current:{}},qp={draggable:{measure:fN},droppable:{measure:fN,strategy:fd.WhileDragging,frequency:zb.Optimized},dragOverlay:{measure:Cc}};class Xu 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,r;return(n=(r=this.get(t))==null?void 0:r.node.current)!=null?n:void 0}}const L8={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Xu,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:vh},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:qp,measureDroppableContainers:vh,windowRect:null,measuringScheduled:!1},WR={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:vh,draggableNodes:new Map,over:null,measureDroppableContainers:vh},Hd=m.createContext(WR),KR=m.createContext(L8);function O8(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Xu}}}function F8(e,t){switch(t.type){case $n.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case $n.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 $n.DragEnd:case $n.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case $n.RegisterDroppable:{const{element:n}=t,{id:r}=n,o=new Xu(e.droppable.containers);return o.set(r,n),{...e,droppable:{...e.droppable,containers:o}}}case $n.SetDroppableDisabled:{const{id:n,key:r,disabled:o}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;const a=new Xu(e.droppable.containers);return a.set(n,{...i,disabled:o}),{...e,droppable:{...e.droppable,containers:a}}}case $n.UnregisterDroppable:{const{id:n,key:r}=t,o=e.droppable.containers.get(n);if(!o||r!==o.key)return e;const i=new Xu(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function z8(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:o}=m.useContext(Hd),i=yh(r),a=yh(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&a!=null){if(!km(i)||document.activeElement===i.target)return;const l=o.get(a);if(!l)return;const{activatorNode:u,node:f}=l;if(!u.current&&!f.current)return;requestAnimationFrame(()=>{for(const p of[u.current,f.current]){if(!p)continue;const h=LB(p);if(h){h.focus();break}}})}},[r,t,o,a,i]),null}function qR(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((o,i)=>i({transform:o,...r}),n):n}function B8(e){return m.useMemo(()=>({draggable:{...qp.draggable,...e==null?void 0:e.draggable},droppable:{...qp.droppable,...e==null?void 0:e.droppable},dragOverlay:{...qp.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 U8(e){let{activeNode:t,measure:n,initialRect:r,config:o=!0}=e;const i=m.useRef(!1),{x:a,y:l}=typeof o=="boolean"?{x:o,y:o}:o;ws(()=>{if(!a&&!l||!t){i.current=!1;return}if(i.current||!r)return;const f=t==null?void 0:t.node.current;if(!f||f.isConnected===!1)return;const p=n(f),h=DR(p,r);if(a||(h.x=0),l||(h.y=0),i.current=!0,Math.abs(h.x)>0||Math.abs(h.y)>0){const g=IR(f);g&&g.scrollBy({top:h.y,left:h.x})}},[t,a,l,r,n])}const Tm=m.createContext({...ks,scaleX:1,scaleY:1});var xi;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(xi||(xi={}));const Rm=m.memo(function(t){var n,r,o,i;let{id:a,accessibility:l,autoScroll:u=!0,children:f,sensors:p=I8,collisionDetection:h=QB,measuring:g,modifiers:y,...k}=t;const v=m.useReducer(F8,void 0,O8),[b,j]=v,[S,N]=HB(),[C,P]=m.useState(xi.Uninitialized),T=C===xi.Initialized,{draggable:{active:R,nodes:I,translate:_},droppable:{containers:F}}=b,D=R!=null?I.get(R):null,W=m.useRef({initial:null,translated:null}),V=m.useMemo(()=>{var lt;return R!=null?{id:R,data:(lt=D==null?void 0:D.data)!=null?lt:M8,rect:W}:null},[R,D]),$=m.useRef(null),[O,U]=m.useState(null),[K,M]=m.useState(null),H=ud(k,Object.values(k)),L=Ud("DndDescribedBy",a),z=m.useMemo(()=>F.getEnabled(),[F]),Y=B8(g),{droppableRects:B,measureDroppableContainers:Q,measuringScheduled:J}=N8(z,{dragging:T,dependencies:[_.x,_.y],config:Y.droppable}),Z=j8(I,R),oe=m.useMemo(()=>K?bh(K):null,[K]),ne=Fe(),ue=S8(Z,Y.draggable.measure);U8({activeNode:R!=null?I.get(R):null,config:ne.layoutShiftCompensation,initialRect:ue,measure:Y.draggable.measure});const ge=xN(Z,Y.draggable.measure,ue),Ce=xN(Z?Z.parentElement:null),Se=m.useRef({activatorEvent:null,active:null,activeNode:Z,collisionRect:null,collisions:null,droppableRects:B,draggableNodes:I,draggingNode:null,draggingNodeRect:null,droppableContainers:F,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ke=F.getNodeFor((n=Se.current.over)==null?void 0:n.id),Be=$8({measure:Y.dragOverlay.measure}),ie=(r=Be.nodeRef.current)!=null?r:Z,ve=T?(o=Be.rect)!=null?o:ge:null,be=!!(Be.nodeRef.current&&Be.rect),Re=T8(be?null:ge),Ue=HR(ie?ur(ie):null),rt=R8(T?ke??Z:null),Oe=D8(rt),ot=qR(y,{transform:{x:_.x-Re.x,y:_.y-Re.y,scaleX:1,scaleY:1},activatorEvent:K,active:V,activeNodeRect:ge,containerNodeRect:Ce,draggingNodeRect:ve,over:Se.current.over,overlayNodeRect:Be.rect,scrollableAncestors:rt,scrollableAncestorRects:Oe,windowRect:Ue}),St=oe?Hl(oe,_):null,mt=A8(rt),at=bN(mt),ce=bN(mt,[ge]),me=Hl(ot,at),Ie=ve?e8(ve,ot):null,Ae=V&&Ie?h({active:V,collisionRect:Ie,droppableRects:B,droppableContainers:z,pointerCoordinates:St}):null,Ve=_R(Ae,"id"),[pt,_e]=m.useState(null),Qe=be?ot:Hl(ot,ce),Je=JB(Qe,(i=pt==null?void 0:pt.rect)!=null?i:null,ge),ut=m.useRef(null),fe=m.useCallback((lt,ht)=>{let{sensor:vt,options:tt}=ht;if($.current==null)return;const Dt=I.get($.current);if(!Dt)return;const Bt=lt.nativeEvent,Ut=new vt({active:$.current,activeNode:Dt,event:Bt,options:tt,context:Se,onAbort(Ct){if(!I.get(Ct))return;const{onDragAbort:Ge}=H.current,it={id:Ct};Ge==null||Ge(it),S({type:"onDragAbort",event:it})},onPending(Ct,je,Ge,it){if(!I.get(Ct))return;const{onDragPending:le}=H.current,Ne={id:Ct,constraint:je,initialCoordinates:Ge,offset:it};le==null||le(Ne),S({type:"onDragPending",event:Ne})},onStart(Ct){const je=$.current;if(je==null)return;const Ge=I.get(je);if(!Ge)return;const{onDragStart:it}=H.current,Mt={activatorEvent:Bt,active:{id:je,data:Ge.data,rect:W}};Ys.unstable_batchedUpdates(()=>{it==null||it(Mt),P(xi.Initializing),j({type:$n.DragStart,initialCoordinates:Ct,active:je}),S({type:"onDragStart",event:Mt}),U(ut.current),M(Bt)})},onMove(Ct){j({type:$n.DragMove,coordinates:Ct})},onEnd:En($n.DragEnd),onCancel:En($n.DragCancel)});ut.current=Ut;function En(Ct){return async function(){const{active:Ge,collisions:it,over:Mt,scrollAdjustedTranslate:le}=Se.current;let Ne=null;if(Ge&&le){const{cancelDrop:nt}=H.current;Ne={activatorEvent:Bt,active:Ge,collisions:it,delta:le,over:Mt},Ct===$n.DragEnd&&typeof nt=="function"&&await Promise.resolve(nt(Ne))&&(Ct=$n.DragCancel)}$.current=null,Ys.unstable_batchedUpdates(()=>{j({type:Ct}),P(xi.Uninitialized),_e(null),U(null),M(null),ut.current=null;const nt=Ct===$n.DragEnd?"onDragEnd":"onDragCancel";if(Ne){const Tn=H.current[nt];Tn==null||Tn(Ne),S({type:nt,event:Ne})}})}}},[I]),q=m.useCallback((lt,ht)=>(vt,tt)=>{const Dt=vt.nativeEvent,Bt=I.get(tt);if($.current!==null||!Bt||Dt.dndKit||Dt.defaultPrevented)return;const Ut={active:Bt};lt(vt,ht.options,Ut)===!0&&(Dt.dndKit={capturedBy:ht.sensor},$.current=tt,fe(vt,ht))},[I,fe]),re=k8(p,q);P8(p),ws(()=>{ge&&C===xi.Initializing&&P(xi.Initialized)},[ge,C]),m.useEffect(()=>{const{onDragMove:lt}=H.current,{active:ht,activatorEvent:vt,collisions:tt,over:Dt}=Se.current;if(!ht||!vt)return;const Bt={active:ht,activatorEvent:vt,collisions:tt,delta:{x:me.x,y:me.y},over:Dt};Ys.unstable_batchedUpdates(()=>{lt==null||lt(Bt),S({type:"onDragMove",event:Bt})})},[me.x,me.y]),m.useEffect(()=>{const{active:lt,activatorEvent:ht,collisions:vt,droppableContainers:tt,scrollAdjustedTranslate:Dt}=Se.current;if(!lt||$.current==null||!ht||!Dt)return;const{onDragOver:Bt}=H.current,Ut=tt.get(Ve),En=Ut&&Ut.rect.current?{id:Ut.id,rect:Ut.rect.current,data:Ut.data,disabled:Ut.disabled}:null,Ct={active:lt,activatorEvent:ht,collisions:vt,delta:{x:Dt.x,y:Dt.y},over:En};Ys.unstable_batchedUpdates(()=>{_e(En),Bt==null||Bt(Ct),S({type:"onDragOver",event:Ct})})},[Ve]),ws(()=>{Se.current={activatorEvent:K,active:V,activeNode:Z,collisionRect:Ie,collisions:Ae,droppableRects:B,draggableNodes:I,draggingNode:ie,draggingNodeRect:ve,droppableContainers:F,over:pt,scrollableAncestors:rt,scrollAdjustedTranslate:me},W.current={initial:ve,translated:Ie}},[V,Z,Ae,Ie,I,ie,ve,B,F,pt,rt,me]),b8({...ne,delta:_,draggingRect:Ie,pointerCoordinates:St,scrollableAncestors:rt,scrollableAncestorRects:Oe});const xe=m.useMemo(()=>({active:V,activeNode:Z,activeNodeRect:ge,activatorEvent:K,collisions:Ae,containerNodeRect:Ce,dragOverlay:Be,draggableNodes:I,droppableContainers:F,droppableRects:B,over:pt,measureDroppableContainers:Q,scrollableAncestors:rt,scrollableAncestorRects:Oe,measuringConfiguration:Y,measuringScheduled:J,windowRect:Ue}),[V,Z,ge,K,Ae,Ce,Be,I,F,B,pt,Q,rt,Oe,Y,J,Ue]),qe=m.useMemo(()=>({activatorEvent:K,activators:re,active:V,activeNodeRect:ge,ariaDescribedById:{draggable:L},dispatch:j,draggableNodes:I,over:pt,measureDroppableContainers:Q}),[K,re,V,ge,j,L,I,pt,Q]);return Ot.createElement(RR.Provider,{value:N},Ot.createElement(Hd.Provider,{value:qe},Ot.createElement(KR.Provider,{value:xe},Ot.createElement(Tm.Provider,{value:Je},f)),Ot.createElement(z8,{disabled:(l==null?void 0:l.restoreFocus)===!1})),Ot.createElement(KB,{...l,hiddenTextDescribedById:L}));function Fe(){const lt=(O==null?void 0:O.autoScrollEnabled)===!1,ht=typeof u=="object"?u.enabled===!1:u===!1,vt=T&&!lt&&!ht;return typeof u=="object"?{...u,enabled:vt}:{enabled:vt}}}),H8=m.createContext(null),wN="button",V8="Draggable";function W8(e){let{id:t,data:n,disabled:r=!1,attributes:o}=e;const i=Ud(V8),{activators:a,activatorEvent:l,active:u,activeNodeRect:f,ariaDescribedById:p,draggableNodes:h,over:g}=m.useContext(Hd),{role:y=wN,roleDescription:k="draggable",tabIndex:v=0}=o??{},b=(u==null?void 0:u.id)===t,j=m.useContext(b?Tm:H8),[S,N]=xh(),[C,P]=xh(),T=_8(a,t),R=ud(n);ws(()=>(h.set(t,{id:t,key:i,node:S,activatorNode:C,data:R}),()=>{const _=h.get(t);_&&_.key===i&&h.delete(t)}),[h,t]);const I=m.useMemo(()=>({role:y,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&y===wN?!0:void 0,"aria-roledescription":k,"aria-describedby":p.draggable}),[r,y,v,b,k,p.draggable]);return{active:u,activatorEvent:l,activeNodeRect:f,attributes:I,isDragging:b,listeners:r?void 0:T,node:S,over:g,setNodeRef:N,setActivatorNodeRef:P,transform:j}}function GR(){return m.useContext(KR)}const K8="Droppable",q8={timeout:25};function G8(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:o}=e;const i=Ud(K8),{active:a,dispatch:l,over:u,measureDroppableContainers:f}=m.useContext(Hd),p=m.useRef({disabled:n}),h=m.useRef(!1),g=m.useRef(null),y=m.useRef(null),{disabled:k,updateMeasurementsFor:v,timeout:b}={...q8,...o},j=ud(v??r),S=m.useCallback(()=>{if(!h.current){h.current=!0;return}y.current!=null&&clearTimeout(y.current),y.current=setTimeout(()=>{f(Array.isArray(j.current)?j.current:[j.current]),y.current=null},b)},[b]),N=Em({callback:S,disabled:k||!a}),C=m.useCallback((I,_)=>{N&&(_&&(N.unobserve(_),h.current=!1),I&&N.observe(I))},[N]),[P,T]=xh(C),R=ud(t);return m.useEffect(()=>{!N||!P.current||(N.disconnect(),h.current=!1,N.observe(P.current))},[P,N]),m.useEffect(()=>(l({type:$n.RegisterDroppable,element:{id:r,key:i,disabled:n,node:P,rect:g,data:R}}),()=>l({type:$n.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==p.current.disabled&&(l({type:$n.SetDroppableDisabled,id:r,key:i,disabled:n}),p.current.disabled=n)},[r,i,n,l]),{active:a,rect:g,isOver:(u==null?void 0:u.id)===r,node:P,over:u,setNodeRef:T}}function Y8(e){let{animation:t,children:n}=e;const[r,o]=m.useState(null),[i,a]=m.useState(null),l=yh(n);return!n&&!r&&l&&o(l),ws(()=>{if(!i)return;const u=r==null?void 0:r.key,f=r==null?void 0:r.props.id;if(u==null||f==null){o(null);return}Promise.resolve(t(f,i)).then(()=>{o(null)})},[t,r,i]),Ot.createElement(Ot.Fragment,null,n,r?m.cloneElement(r,{ref:a}):null)}const X8={x:0,y:0,scaleX:1,scaleY:1};function Q8(e){let{children:t}=e;return Ot.createElement(Hd.Provider,{value:WR},Ot.createElement(Tm.Provider,{value:X8},t))}const J8={position:"fixed",touchAction:"none"},Z8=e=>km(e)?"transform 250ms ease":void 0,e7=m.forwardRef((e,t)=>{let{as:n,activatorEvent:r,adjustScale:o,children:i,className:a,rect:l,style:u,transform:f,transition:p=Z8}=e;if(!l)return null;const h=o?f:{...f,scaleX:1,scaleY:1},g={...J8,width:l.width,height:l.height,top:l.top,left:l.left,transform:js.Transform.toString(h),transformOrigin:o&&r?qB(r,l):void 0,transition:typeof p=="function"?p(r):p,...u};return Ot.createElement(n,{className:a,style:g,ref:t},i)}),t7=e=>t=>{let{active:n,dragOverlay:r}=t;const o={},{styles:i,className:a}=e;if(i!=null&&i.active)for(const[l,u]of Object.entries(i.active))u!==void 0&&(o[l]=n.node.style.getPropertyValue(l),n.node.style.setProperty(l,u));if(i!=null&&i.dragOverlay)for(const[l,u]of Object.entries(i.dragOverlay))u!==void 0&&r.node.style.setProperty(l,u);return a!=null&&a.active&&n.node.classList.add(a.active),a!=null&&a.dragOverlay&&r.node.classList.add(a.dragOverlay),function(){for(const[u,f]of Object.entries(o))n.node.style.setProperty(u,f);a!=null&&a.active&&n.node.classList.remove(a.active)}},n7=e=>{let{transform:{initial:t,final:n}}=e;return[{transform:js.Transform.toString(t)},{transform:js.Transform.toString(n)}]},r7={duration:250,easing:"ease",keyframes:n7,sideEffects:t7({styles:{active:{opacity:"0"}}})};function s7(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:o}=e;return jm((i,a)=>{if(t===null)return;const l=n.get(i);if(!l)return;const u=l.node.current;if(!u)return;const f=VR(a);if(!f)return;const{transform:p}=ur(a).getComputedStyle(a),h=$R(p);if(!h)return;const g=typeof t=="function"?t:o7(t);return BR(u,o.draggable.measure),g({active:{id:i,data:l.data,node:u,rect:o.draggable.measure(u)},draggableNodes:n,dragOverlay:{node:a,rect:o.dragOverlay.measure(f)},droppableContainers:r,measuringConfiguration:o,transform:h})})}function o7(e){const{duration:t,easing:n,sideEffects:r,keyframes:o}={...r7,...e};return i=>{let{active:a,dragOverlay:l,transform:u,...f}=i;if(!t)return;const p={x:l.rect.left-a.rect.left,y:l.rect.top-a.rect.top},h={scaleX:u.scaleX!==1?a.rect.width*u.scaleX/l.rect.width:1,scaleY:u.scaleY!==1?a.rect.height*u.scaleY/l.rect.height:1},g={x:u.x-p.x,y:u.y-p.y,...h},y=o({...f,active:a,dragOverlay:l,transform:{initial:u,final:g}}),[k]=y,v=y[y.length-1];if(JSON.stringify(k)===JSON.stringify(v))return;const b=r==null?void 0:r({active:a,dragOverlay:l,...f}),j=l.node.animate(y,{duration:t,easing:n,fill:"forwards"});return new Promise(S=>{j.onfinish=()=>{b==null||b(),S()}})}}let jN=0;function i7(e){return m.useMemo(()=>{if(e!=null)return jN++,jN},[e])}const a7=Ot.memo(e=>{let{adjustScale:t=!1,children:n,dropAnimation:r,style:o,transition:i,modifiers:a,wrapperElement:l="div",className:u,zIndex:f=999}=e;const{activatorEvent:p,active:h,activeNodeRect:g,containerNodeRect:y,draggableNodes:k,droppableContainers:v,dragOverlay:b,over:j,measuringConfiguration:S,scrollableAncestors:N,scrollableAncestorRects:C,windowRect:P}=GR(),T=m.useContext(Tm),R=i7(h==null?void 0:h.id),I=qR(a,{activatorEvent:p,active:h,activeNodeRect:g,containerNodeRect:y,draggingNodeRect:b.rect,over:j,overlayNodeRect:b.rect,scrollableAncestors:N,scrollableAncestorRects:C,transform:T,windowRect:P}),_=Pw(g),F=s7({config:r,draggableNodes:k,droppableContainers:v,measuringConfiguration:S}),D=_?b.setRef:void 0;return Ot.createElement(Q8,null,Ot.createElement(Y8,{animation:F},h&&R?Ot.createElement(e7,{key:R,id:h.id,ref:D,as:l,activatorEvent:p,adjustScale:t,className:u,transition:i,rect:_,style:{zIndex:f,...o},transform:I},n):null))});function Rc(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function l7(e,t){return e.reduce((n,r,o)=>{const i=t.get(r);return i&&(n[o]=i),n},Array(e.length))}function hp(e){return e!==null&&e>=0}function c7(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 u7(e){return typeof e=="boolean"?{draggable:e,droppable:e}:e}const _w=e=>{let{rects:t,activeIndex:n,overIndex:r,index:o}=e;const i=Rc(t,r,n),a=t[o],l=i[o];return!l||!a?null:{x:l.left-a.left,y:l.top-a.top,scaleX:l.width/a.width,scaleY:l.height/a.height}},mp={scaleX:1,scaleY:1},Dw=e=>{var t;let{activeIndex:n,activeNodeRect:r,index:o,rects:i,overIndex:a}=e;const l=(t=i[n])!=null?t:r;if(!l)return null;if(o===n){const f=i[a];return f?{x:0,y:n<a?f.top+f.height-(l.top+l.height):f.top-l.top,...mp}:null}const u=d7(i,o,n);return o>n&&o<=a?{x:0,y:-l.height-u,...mp}:o<n&&o>=a?{x:0,y:l.height+u,...mp}:{x:0,y:0,...mp}};function d7(e,t,n){const r=e[t],o=e[t-1],i=e[t+1];return r?n<t?o?r.top-(o.top+o.height):i?i.top-(r.top+r.height):0:i?i.top-(r.top+r.height):o?r.top-(o.top+o.height):0:0}const YR="Sortable",XR=Ot.createContext({activeIndex:-1,containerId:YR,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:_w,disabled:{draggable:!1,droppable:!1}});function Am(e){let{children:t,id:n,items:r,strategy:o=_w,disabled:i=!1}=e;const{active:a,dragOverlay:l,droppableRects:u,over:f,measureDroppableContainers:p}=GR(),h=Ud(YR,n),g=l.rect!==null,y=m.useMemo(()=>r.map(T=>typeof T=="object"&&"id"in T?T.id:T),[r]),k=a!=null,v=a?y.indexOf(a.id):-1,b=f?y.indexOf(f.id):-1,j=m.useRef(y),S=!c7(y,j.current),N=b!==-1&&v===-1||S,C=u7(i);ws(()=>{S&&k&&p(y)},[S,y,k,p]),m.useEffect(()=>{j.current=y},[y]);const P=m.useMemo(()=>({activeIndex:v,containerId:h,disabled:C,disableTransforms:N,items:y,overIndex:b,useDragOverlay:g,sortedRects:l7(y,u),strategy:o}),[v,h,C.draggable,C.droppable,N,y,b,u,g,o]);return Ot.createElement(XR.Provider,{value:P},t)}const f7=e=>{let{id:t,items:n,activeIndex:r,overIndex:o}=e;return Rc(n,r,o).indexOf(t)},p7=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:o,items:i,newIndex:a,previousItems:l,previousContainerId:u,transition:f}=e;return!f||!r||l!==i&&o===a?!1:n?!0:a!==o&&t===u},h7={duration:200,easing:"ease"},QR="transform",m7=js.Transition.toString({property:QR,duration:0,easing:"linear"}),g7={roleDescription:"sortable"};function x7(e){let{disabled:t,index:n,node:r,rect:o}=e;const[i,a]=m.useState(null),l=m.useRef(n);return ws(()=>{if(!t&&n!==l.current&&r.current){const u=o.current;if(u){const f=Cc(r.current,{ignoreTransform:!0}),p={x:u.left-f.left,y:u.top-f.top,scaleX:u.width/f.width,scaleY:u.height/f.height};(p.x||p.y)&&a(p)}}n!==l.current&&(l.current=n)},[t,n,r,o]),m.useEffect(()=>{i&&a(null)},[i]),i}function Pm(e){let{animateLayoutChanges:t=p7,attributes:n,disabled:r,data:o,getNewIndex:i=f7,id:a,strategy:l,resizeObserverConfig:u,transition:f=h7}=e;const{items:p,containerId:h,activeIndex:g,disabled:y,disableTransforms:k,sortedRects:v,overIndex:b,useDragOverlay:j,strategy:S}=m.useContext(XR),N=y7(r,y),C=p.indexOf(a),P=m.useMemo(()=>({sortable:{containerId:h,index:C,items:p},...o}),[h,o,C,p]),T=m.useMemo(()=>p.slice(p.indexOf(a)),[p,a]),{rect:R,node:I,isOver:_,setNodeRef:F}=G8({id:a,data:P,disabled:N.droppable,resizeObserverConfig:{updateMeasurementsFor:T,...u}}),{active:D,activatorEvent:W,activeNodeRect:V,attributes:$,setNodeRef:O,listeners:U,isDragging:K,over:M,setActivatorNodeRef:H,transform:L}=W8({id:a,data:P,attributes:{...g7,...n},disabled:N.draggable}),z=DB(F,O),Y=!!D,B=Y&&!k&&hp(g)&&hp(b),Q=!j&&K,J=Q&&B?L:null,oe=B?J??(l??S)({rects:v,activeNodeRect:V,activeIndex:g,overIndex:b,index:C}):null,ne=hp(g)&&hp(b)?i({id:a,items:p,activeIndex:g,overIndex:b}):C,ue=D==null?void 0:D.id,ge=m.useRef({activeId:ue,items:p,newIndex:ne,containerId:h}),Ce=p!==ge.current.items,Se=t({active:D,containerId:h,isDragging:K,isSorting:Y,id:a,index:C,items:p,newIndex:ge.current.newIndex,previousItems:ge.current.items,previousContainerId:ge.current.containerId,transition:f,wasDragging:ge.current.activeId!=null}),ke=x7({disabled:!Se,index:C,node:I,rect:R});return m.useEffect(()=>{Y&&ge.current.newIndex!==ne&&(ge.current.newIndex=ne),h!==ge.current.containerId&&(ge.current.containerId=h),p!==ge.current.items&&(ge.current.items=p)},[Y,ne,h,p]),m.useEffect(()=>{if(ue===ge.current.activeId)return;if(ue!=null&&ge.current.activeId==null){ge.current.activeId=ue;return}const ie=setTimeout(()=>{ge.current.activeId=ue},50);return()=>clearTimeout(ie)},[ue]),{active:D,activeIndex:g,attributes:$,data:P,rect:R,index:C,newIndex:ne,items:p,isOver:_,isSorting:Y,isDragging:K,listeners:U,node:I,overIndex:b,over:M,setNodeRef:z,setActivatorNodeRef:H,setDroppableNodeRef:F,setDraggableNodeRef:O,transform:ke??oe,transition:Be()};function Be(){if(ke||Ce&&ge.current.newIndex===C)return m7;if(!(Q&&!km(W)||!f)&&(Y||Se))return js.Transition.toString({...f,property:QR})}}function y7(e,t){var n,r;return typeof e=="boolean"?{draggable:e,droppable:!1}:{draggable:(n=e==null?void 0:e.draggable)!=null?n:t.draggable,droppable:(r=e==null?void 0:e.droppable)!=null?r:t.droppable}}function jh(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 b7=[At.Down,At.Right,At.Up,At.Left],JR=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:o,droppableContainers:i,over:a,scrollableAncestors:l}}=t;if(b7.includes(e.code)){if(e.preventDefault(),!n||!r)return;const u=[];i.getEnabled().forEach(h=>{if(!h||h!=null&&h.disabled)return;const g=o.get(h.id);if(g)switch(e.code){case At.Down:r.top<g.top&&u.push(h);break;case At.Up:r.top>g.top&&u.push(h);break;case At.Left:r.left>g.left&&u.push(h);break;case At.Right:r.left<g.left&&u.push(h);break}});const f=YB({collisionRect:r,droppableRects:o,droppableContainers:u});let p=_R(f,"id");if(p===(a==null?void 0:a.id)&&f.length>1&&(p=f[1].id),p!=null){const h=i.get(n.id),g=i.get(p),y=g?o.get(g.id):null,k=g==null?void 0:g.node.current;if(k&&y&&h&&g){const b=Cm(k).some((T,R)=>l[R]!==T),j=ZR(h,g),S=v7(h,g),N=b||!j?{x:0,y:0}:{x:S?r.width-y.width:0,y:S?r.height-y.height:0},C={x:y.left,y:y.top};return N.x&&N.y?C:dd(C,N)}}}};function ZR(e,t){return!jh(e)||!jh(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function v7(e,t){return!jh(e)||!jh(t)||!ZR(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}function bt({label:e="Loading dashboard data…"}){return s.jsx("div",{className:"flex min-h-[240px] items-center justify-center",children:s.jsx("div",{className:"chrome-card !px-4 !py-3",children:s.jsx("p",{className:"text-sm text-muted-foreground",children:e})})})}function Rt({title:e="Something went wrong",error:t,action:n,onRetry:r,retryLabel:o="Retry"}){const i=n??(r?s.jsxs("button",{type:"button",onClick:r,className:"shell-action",children:[s.jsx(L4,{className:"h-4 w-4"}),s.jsx("span",{children:o})]}):null);return s.jsx("div",{className:"rounded-lg border border-error-foreground/30 bg-error px-4 py-5",children:s.jsxs("div",{className:"space-y-2",children:[s.jsx("h3",{className:"text-lg font-semibold text-error-foreground",children:e}),s.jsx("p",{className:"text-sm leading-6 text-error-foreground/90",children:t}),i?s.jsx("div",{className:"pt-2",children:i}):null]})})}function Gp({command:e,description:t,example:n}){return s.jsxs("div",{className:"rounded-lg border border-border/70 bg-code px-3 py-3 text-code-foreground shadow-sm",children:[s.jsx("code",{className:"block overflow-x-auto font-mono text-sm",children:e}),t?s.jsx("p",{className:"mt-2 text-sm text-code-foreground/80",children:t}):null,n?s.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:r,actions:o}){return s.jsxs("section",{className:we("surface-panel space-y-3",r),children:[e||o?s.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-3",children:[s.jsxs("div",{className:"space-y-1",children:[e?s.jsx("h2",{className:"text-lg font-semibold text-foreground",children:e}):null,t?s.jsx("p",{className:"text-sm text-muted-foreground",children:t}):null]}),o]}):null,n]})}function w7({help:e,compact:t=!1}){const n=t?(e==null?void 0:e.firstProjectChecklist.slice(0,3))??[]:(e==null?void 0:e.firstProjectChecklist)??[];return s.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:s.jsx($e,{className:"text-sm font-semibold text-primary hover:underline",to:"/help",children:"Open full help"}),children:s.jsx("div",{className:"space-y-3",children:n.map((r,o)=>s.jsx("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:s.jsxs("div",{className:"flex items-start gap-3",children:[s.jsx("span",{className:"inline-flex h-5 w-5 items-center justify-center rounded-full bg-foreground text-xs font-semibold text-background",children:o+1}),s.jsxs("div",{className:"space-y-1.5",children:[s.jsx("h3",{className:"font-semibold text-foreground",children:r.title}),s.jsx("p",{className:"text-sm leading-6 text-muted-foreground",children:r.detail}),r.command?s.jsx(Gp,{command:r.command.command,example:r.command.example}):null]})]})},r.title))})})}const wy={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."},ha={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 j7(e,t){return e.replace(/\{(\w+)\}/g,(n,r)=>String(t[r]??`{${r}}`))}function k7({hero:e,itemsById:t}){const n=gn();if(e.kind==="clean")return s.jsxs("section",{"aria-labelledby":"overview-hero-title",className:"rounded-xl border border-border/60 bg-background/60 p-6 shadow-sm",children:[s.jsx("p",{className:"eyebrow",children:ha.emptyStateCleanTitle}),s.jsx("h2",{id:"overview-hero-title",className:"mt-2 text-2xl font-semibold tracking-tight text-foreground",children:wy.clean}),s.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."}),s.jsx("div",{className:"mt-4",children:s.jsx($e,{to:`${n}/projects`,className:"shell-action shell-action--cta",children:ha.emptyStateCleanCTA})})]});const r=e.itemId?t[e.itemId]:void 0,o=(r==null?void 0:r.assignmentTitle)??"",i=wy[e.copyKey]??wy[e.kind],a=j7(i,{total:e.total,title:o}),l=r?N7(r,n):`${n}/assignments`;return s.jsxs("section",{"aria-labelledby":"overview-hero-title",className:"rounded-xl border border-primary/20 bg-primary/5 p-6 shadow-sm",children:[s.jsx("p",{className:"eyebrow",children:"Top priority"}),s.jsx("h2",{id:"overview-hero-title",className:"mt-2 text-2xl font-semibold tracking-tight text-foreground",children:a}),r?s.jsxs("p",{className:"mt-2 text-sm text-muted-foreground",children:["In ",s.jsx("span",{className:"font-medium text-foreground",children:r.projectTitle??"Standalone"})," ","· status ",s.jsx("span",{className:"font-medium text-foreground",children:r.status})]}):null,s.jsx("div",{className:"mt-4",children:s.jsxs($e,{to:l,className:"shell-action shell-action--cta",children:["Open ",o||"assignment"]})})]})}function N7(e,t){return e.projectSlug?`${t}${e.href}`:e.href}const jy=["title","status","priority","assignee","dependencies","created","updated"],pd=24,eA=60;function S7(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;const t=e;return Number.isInteger(t.w)&&t.w>=1&&t.w<=pd&&Number.isInteger(t.h)&&t.h>=1&&t.h<=eA}const C7={status:"all",priority:"all",assignee:"all",project:"all",activity:"all"},kN="2026-05-21T00:00:00Z";function ky(e,t,n){return{id:e,name:t,workspace:null,entityType:"assignment",config:{viewMode:"list",filters:{...C7,...n},sortField:"updated",sortDirection:"desc",listSectionVisibility:{collapsed:[]},kanbanColumnVisibility:{hidden:[]},tableColumnVisibility:{hidden:[]}},createdAt:kN,updatedAt:kN}}const vi={version:1,views:[ky("default-recently-updated","Recently updated",{}),ky("default-high-priority","High priority",{priority:"high"}),ky("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 tA(e,t){const n=He(e.filters.project),r=n.length===0||n.length===1&&n[0]===t,o=e.filters.activity,i=typeof e.filters.search=="string"&&e.filters.search.trim().length>0,a=e.filters.query,l=typeof a=="string"&&a.trim().length>0&&Wu(a)===null;return r&&(!o||o==="all")&&!i&&!l}function nA(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?tA(e.config,t.slug):!1}}const rA=`syntaur.savedViews.cache.v${vi.version}`;let Vl=E7(),na=null,$w=null;const Bb=new Set,kh=new Set;let sA=0;function oA(){return++sA}function Ub(e){return e===sA}function E7(){if(typeof window>"u"||!window.localStorage)return null;try{const e=window.localStorage.getItem(rA);if(!e)return null;const t=JSON.parse(e);return t.version!==vi.version?null:t}catch{return null}}function T7(e){if(!(typeof window>"u"||!window.localStorage))try{window.localStorage.setItem(rA,JSON.stringify(e))}catch{}}function iA(e){Vl=e,$w=null,T7(e);for(const t of Bb)t(e);for(const t of kh)t(null)}function R7(e){$w=e;for(const t of kh)t(e)}function aA(e){if(!e||typeof e!="object")return vi;const t=e;return t.version!==vi.version||!Array.isArray(t.views)||!t.dashboard?vi:t}function NN(){if(na)return na;const e=oA();return na=fetch("/api/saved-views").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{const n=aA(t);return Ub(e)&&iA(n),na=null,Vl??n}).catch(t=>{const n=t instanceof Error?t:new Error(String(t));return Ub(e)&&R7(n),na=null,Vl??vi}),na}function Iw(){const[e,t]=m.useState(()=>Vl??vi),[n,r]=m.useState(()=>Vl===null),[o,i]=m.useState(!1),[a,l]=m.useState(()=>$w);return m.useEffect(()=>{let f=!1;Vl===null&&r(!0),NN().then(g=>{f||(t(g),r(!1),i(!0))});const p=g=>{f||(t(g),r(!1),i(!0),l(null))},h=g=>{f||(l(g),r(!1),i(!0))};return Bb.add(p),kh.add(h),()=>{f=!0,Bb.delete(p),kh.delete(h)}},[]),{file:e,loading:n,ready:o,error:a,refetch:()=>{na=null,r(!0),l(null),i(!1),NN()}}}function Vd(){const{file:e,loading:t}=Iw();return{views:e.views,loading:t}}function lA(){const{file:e,loading:t}=Iw();return{layout:e.dashboard,loading:t}}function Ni(e){const{file:t,loading:n,ready:r,error:o,refetch:i}=Iw();return e?{view:t.views.find(l=>l.id===e)??null,loading:n,ready:r,error:o,refetch:i}:{view:null,loading:!1,ready:!0,error:null,refetch:i}}async function _m(e,t,n){const r=oA(),o=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(!o.ok){const a=await o.json().catch(()=>({error:`HTTP ${o.status}`}));throw new Error(a.error??`HTTP ${o.status}`)}const i=aA(await o.json());return Ub(r)&&iA(i),i}function tc(e){return _m("POST","/api/saved-views",e)}function Nh(e,t){return _m("PATCH",`/api/saved-views/${encodeURIComponent(e)}`,t)}function A7(e){return _m("DELETE",`/api/saved-views/${encodeURIComponent(e)}`)}function Hb(e){return _m("PUT","/api/dashboard",{slots:e})}const P7=["top","right","bottom","left"],Si=Math.min,Or=Math.max,Sh=Math.round,gp=Math.floor,eo=e=>({x:e,y:e}),_7={left:"right",right:"left",bottom:"top",top:"bottom"};function Vb(e,t,n){return Or(e,Si(t,n))}function Ao(e,t){return typeof e=="function"?e(t):e}function Po(e){return e.split("-")[0]}function Ac(e){return e.split("-")[1]}function Mw(e){return e==="x"?"y":"x"}function Lw(e){return e==="y"?"height":"width"}function Xs(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function Ow(e){return Mw(Xs(e))}function D7(e,t,n){n===void 0&&(n=!1);const r=Ac(e),o=Ow(e),i=Lw(o);let a=o==="x"?r===(n?"end":"start")?"right":"left":r==="start"?"bottom":"top";return t.reference[i]>t.floating[i]&&(a=Ch(a)),[a,Ch(a)]}function $7(e){const t=Ch(e);return[Wb(e),t,Wb(t)]}function Wb(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const SN=["left","right"],CN=["right","left"],I7=["top","bottom"],M7=["bottom","top"];function L7(e,t,n){switch(e){case"top":case"bottom":return n?t?CN:SN:t?SN:CN;case"left":case"right":return t?I7:M7;default:return[]}}function O7(e,t,n,r){const o=Ac(e);let i=L7(Po(e),n==="start",r);return o&&(i=i.map(a=>a+"-"+o),t&&(i=i.concat(i.map(Wb)))),i}function Ch(e){const t=Po(e);return _7[t]+e.slice(t.length)}function F7(e){return{top:0,right:0,bottom:0,left:0,...e}}function cA(e){return typeof e!="number"?F7(e):{top:e,right:e,bottom:e,left:e}}function Eh(e){const{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function EN(e,t,n){let{reference:r,floating:o}=e;const i=Xs(t),a=Ow(t),l=Lw(a),u=Po(t),f=i==="y",p=r.x+r.width/2-o.width/2,h=r.y+r.height/2-o.height/2,g=r[l]/2-o[l]/2;let y;switch(u){case"top":y={x:p,y:r.y-o.height};break;case"bottom":y={x:p,y:r.y+r.height};break;case"right":y={x:r.x+r.width,y:h};break;case"left":y={x:r.x-o.width,y:h};break;default:y={x:r.x,y:r.y}}switch(Ac(t)){case"start":y[a]-=g*(n&&f?-1:1);break;case"end":y[a]+=g*(n&&f?-1:1);break}return y}async function z7(e,t){var n;t===void 0&&(t={});const{x:r,y:o,platform:i,rects:a,elements:l,strategy:u}=e,{boundary:f="clippingAncestors",rootBoundary:p="viewport",elementContext:h="floating",altBoundary:g=!1,padding:y=0}=Ao(t,e),k=cA(y),b=l[g?h==="floating"?"reference":"floating":h],j=Eh(await i.getClippingRect({element:(n=await(i.isElement==null?void 0:i.isElement(b)))==null||n?b:b.contextElement||await(i.getDocumentElement==null?void 0:i.getDocumentElement(l.floating)),boundary:f,rootBoundary:p,strategy:u})),S=h==="floating"?{x:r,y:o,width:a.floating.width,height:a.floating.height}:a.reference,N=await(i.getOffsetParent==null?void 0:i.getOffsetParent(l.floating)),C=await(i.isElement==null?void 0:i.isElement(N))?await(i.getScale==null?void 0:i.getScale(N))||{x:1,y:1}:{x:1,y:1},P=Eh(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:S,offsetParent:N,strategy:u}):S);return{top:(j.top-P.top+k.top)/C.y,bottom:(P.bottom-j.bottom+k.bottom)/C.y,left:(j.left-P.left+k.left)/C.x,right:(P.right-j.right+k.right)/C.x}}const B7=50,U7=async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:a}=n,l=a.detectOverflow?a:{...a,detectOverflow:z7},u=await(a.isRTL==null?void 0:a.isRTL(t));let f=await a.getElementRects({reference:e,floating:t,strategy:o}),{x:p,y:h}=EN(f,r,u),g=r,y=0;const k={};for(let v=0;v<i.length;v++){const b=i[v];if(!b)continue;const{name:j,fn:S}=b,{x:N,y:C,data:P,reset:T}=await S({x:p,y:h,initialPlacement:r,placement:g,strategy:o,middlewareData:k,rects:f,platform:l,elements:{reference:e,floating:t}});p=N??p,h=C??h,k[j]={...k[j],...P},T&&y<B7&&(y++,typeof T=="object"&&(T.placement&&(g=T.placement),T.rects&&(f=T.rects===!0?await a.getElementRects({reference:e,floating:t,strategy:o}):T.rects),{x:p,y:h}=EN(f,g,u)),v=-1)}return{x:p,y:h,placement:g,strategy:o,middlewareData:k}},H7=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:r,placement:o,rects:i,platform:a,elements:l,middlewareData:u}=t,{element:f,padding:p=0}=Ao(e,t)||{};if(f==null)return{};const h=cA(p),g={x:n,y:r},y=Ow(o),k=Lw(y),v=await a.getDimensions(f),b=y==="y",j=b?"top":"left",S=b?"bottom":"right",N=b?"clientHeight":"clientWidth",C=i.reference[k]+i.reference[y]-g[y]-i.floating[k],P=g[y]-i.reference[y],T=await(a.getOffsetParent==null?void 0:a.getOffsetParent(f));let R=T?T[N]:0;(!R||!await(a.isElement==null?void 0:a.isElement(T)))&&(R=l.floating[N]||i.floating[k]);const I=C/2-P/2,_=R/2-v[k]/2-1,F=Si(h[j],_),D=Si(h[S],_),W=F,V=R-v[k]-D,$=R/2-v[k]/2+I,O=Vb(W,$,V),U=!u.arrow&&Ac(o)!=null&&$!==O&&i.reference[k]/2-($<W?F:D)-v[k]/2<0,K=U?$<W?$-W:$-V:0;return{[y]:g[y]+K,data:{[y]:O,centerOffset:$-O-K,...U&&{alignmentOffset:K}},reset:U}}}),V7=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,r;const{placement:o,middlewareData:i,rects:a,initialPlacement:l,platform:u,elements:f}=t,{mainAxis:p=!0,crossAxis:h=!0,fallbackPlacements:g,fallbackStrategy:y="bestFit",fallbackAxisSideDirection:k="none",flipAlignment:v=!0,...b}=Ao(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const j=Po(o),S=Xs(l),N=Po(l)===l,C=await(u.isRTL==null?void 0:u.isRTL(f.floating)),P=g||(N||!v?[Ch(l)]:$7(l)),T=k!=="none";!g&&T&&P.push(...O7(l,v,k,C));const R=[l,...P],I=await u.detectOverflow(t,b),_=[];let F=((r=i.flip)==null?void 0:r.overflows)||[];if(p&&_.push(I[j]),h){const $=D7(o,a,C);_.push(I[$[0]],I[$[1]])}if(F=[...F,{placement:o,overflows:_}],!_.every($=>$<=0)){var D,W;const $=(((D=i.flip)==null?void 0:D.index)||0)+1,O=R[$];if(O&&(!(h==="alignment"?S!==Xs(O):!1)||F.every(M=>Xs(M.placement)===S?M.overflows[0]>0:!0)))return{data:{index:$,overflows:F},reset:{placement:O}};let U=(W=F.filter(K=>K.overflows[0]<=0).sort((K,M)=>K.overflows[1]-M.overflows[1])[0])==null?void 0:W.placement;if(!U)switch(y){case"bestFit":{var V;const K=(V=F.filter(M=>{if(T){const H=Xs(M.placement);return H===S||H==="y"}return!0}).map(M=>[M.placement,M.overflows.filter(H=>H>0).reduce((H,L)=>H+L,0)]).sort((M,H)=>M[1]-H[1])[0])==null?void 0:V[0];K&&(U=K);break}case"initialPlacement":U=l;break}if(o!==U)return{reset:{placement:U}}}return{}}}};function TN(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function RN(e){return P7.some(t=>e[t]>=0)}const W7=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:r}=t,{strategy:o="referenceHidden",...i}=Ao(e,t);switch(o){case"referenceHidden":{const a=await r.detectOverflow(t,{...i,elementContext:"reference"}),l=TN(a,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:RN(l)}}}case"escaped":{const a=await r.detectOverflow(t,{...i,altBoundary:!0}),l=TN(a,n.floating);return{data:{escapedOffsets:l,escaped:RN(l)}}}default:return{}}}}},uA=new Set(["left","top"]);async function K7(e,t){const{placement:n,platform:r,elements:o}=e,i=await(r.isRTL==null?void 0:r.isRTL(o.floating)),a=Po(n),l=Ac(n),u=Xs(n)==="y",f=uA.has(a)?-1:1,p=i&&u?-1:1,h=Ao(t,e);let{mainAxis:g,crossAxis:y,alignmentAxis:k}=typeof h=="number"?{mainAxis:h,crossAxis:0,alignmentAxis:null}:{mainAxis:h.mainAxis||0,crossAxis:h.crossAxis||0,alignmentAxis:h.alignmentAxis};return l&&typeof k=="number"&&(y=l==="end"?k*-1:k),u?{x:y*p,y:g*f}:{x:g*f,y:y*p}}const q7=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,r;const{x:o,y:i,placement:a,middlewareData:l}=t,u=await K7(t,e);return a===((n=l.offset)==null?void 0:n.placement)&&(r=l.arrow)!=null&&r.alignmentOffset?{}:{x:o+u.x,y:i+u.y,data:{...u,placement:a}}}}},G7=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:r,placement:o,platform:i}=t,{mainAxis:a=!0,crossAxis:l=!1,limiter:u={fn:j=>{let{x:S,y:N}=j;return{x:S,y:N}}},...f}=Ao(e,t),p={x:n,y:r},h=await i.detectOverflow(t,f),g=Xs(Po(o)),y=Mw(g);let k=p[y],v=p[g];if(a){const j=y==="y"?"top":"left",S=y==="y"?"bottom":"right",N=k+h[j],C=k-h[S];k=Vb(N,k,C)}if(l){const j=g==="y"?"top":"left",S=g==="y"?"bottom":"right",N=v+h[j],C=v-h[S];v=Vb(N,v,C)}const b=u.fn({...t,[y]:k,[g]:v});return{...b,data:{x:b.x-n,y:b.y-r,enabled:{[y]:a,[g]:l}}}}}},Y7=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:r,placement:o,rects:i,middlewareData:a}=t,{offset:l=0,mainAxis:u=!0,crossAxis:f=!0}=Ao(e,t),p={x:n,y:r},h=Xs(o),g=Mw(h);let y=p[g],k=p[h];const v=Ao(l,t),b=typeof v=="number"?{mainAxis:v,crossAxis:0}:{mainAxis:0,crossAxis:0,...v};if(u){const N=g==="y"?"height":"width",C=i.reference[g]-i.floating[N]+b.mainAxis,P=i.reference[g]+i.reference[N]-b.mainAxis;y<C?y=C:y>P&&(y=P)}if(f){var j,S;const N=g==="y"?"width":"height",C=uA.has(Po(o)),P=i.reference[h]-i.floating[N]+(C&&((j=a.offset)==null?void 0:j[h])||0)+(C?0:b.crossAxis),T=i.reference[h]+i.reference[N]+(C?0:((S=a.offset)==null?void 0:S[h])||0)-(C?b.crossAxis:0);k<P?k=P:k>T&&(k=T)}return{[g]:y,[h]:k}}}},X7=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,r;const{placement:o,rects:i,platform:a,elements:l}=t,{apply:u=()=>{},...f}=Ao(e,t),p=await a.detectOverflow(t,f),h=Po(o),g=Ac(o),y=Xs(o)==="y",{width:k,height:v}=i.floating;let b,j;h==="top"||h==="bottom"?(b=h,j=g===(await(a.isRTL==null?void 0:a.isRTL(l.floating))?"start":"end")?"left":"right"):(j=h,b=g==="end"?"top":"bottom");const S=v-p.top-p.bottom,N=k-p.left-p.right,C=Si(v-p[b],S),P=Si(k-p[j],N),T=!t.middlewareData.shift;let R=C,I=P;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(I=N),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(R=S),T&&!g){const F=Or(p.left,0),D=Or(p.right,0),W=Or(p.top,0),V=Or(p.bottom,0);y?I=k-2*(F!==0||D!==0?F+D:Or(p.left,p.right)):R=v-2*(W!==0||V!==0?W+V:Or(p.top,p.bottom))}await u({...t,availableWidth:I,availableHeight:R});const _=await a.getDimensions(l.floating);return k!==_.width||v!==_.height?{reset:{rects:!0}}:{}}}};function Dm(){return typeof window<"u"}function Pc(e){return dA(e)?(e.nodeName||"").toLowerCase():"#document"}function Hr(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function so(e){var t;return(t=(dA(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function dA(e){return Dm()?e instanceof Node||e instanceof Hr(e).Node:!1}function Ns(e){return Dm()?e instanceof Element||e instanceof Hr(e).Element:!1}function $o(e){return Dm()?e instanceof HTMLElement||e instanceof Hr(e).HTMLElement:!1}function AN(e){return!Dm()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Hr(e).ShadowRoot}function Wd(e){const{overflow:t,overflowX:n,overflowY:r,display:o}=Ss(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&o!=="inline"&&o!=="contents"}function Q7(e){return/^(table|td|th)$/.test(Pc(e))}function $m(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const J7=/transform|translate|scale|rotate|perspective|filter/,Z7=/paint|layout|strict|content/,Ji=e=>!!e&&e!=="none";let Ny;function Fw(e){const t=Ns(e)?Ss(e):e;return Ji(t.transform)||Ji(t.translate)||Ji(t.scale)||Ji(t.rotate)||Ji(t.perspective)||!zw()&&(Ji(t.backdropFilter)||Ji(t.filter))||J7.test(t.willChange||"")||Z7.test(t.contain||"")}function eU(e){let t=Ci(e);for(;$o(t)&&!nc(t);){if(Fw(t))return t;if($m(t))return null;t=Ci(t)}return null}function zw(){return Ny==null&&(Ny=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Ny}function nc(e){return/^(html|body|#document)$/.test(Pc(e))}function Ss(e){return Hr(e).getComputedStyle(e)}function Im(e){return Ns(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Ci(e){if(Pc(e)==="html")return e;const t=e.assignedSlot||e.parentNode||AN(e)&&e.host||so(e);return AN(t)?t.host:t}function fA(e){const t=Ci(e);return nc(t)?e.ownerDocument?e.ownerDocument.body:e.body:$o(t)&&Wd(t)?t:fA(t)}function hd(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const o=fA(e),i=o===((r=e.ownerDocument)==null?void 0:r.body),a=Hr(o);if(i){const l=Kb(a);return t.concat(a,a.visualViewport||[],Wd(o)?o:[],l&&n?hd(l):[])}else return t.concat(o,hd(o,[],n))}function Kb(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function pA(e){const t=Ss(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=$o(e),i=o?e.offsetWidth:n,a=o?e.offsetHeight:r,l=Sh(n)!==i||Sh(r)!==a;return l&&(n=i,r=a),{width:n,height:r,$:l}}function Bw(e){return Ns(e)?e:e.contextElement}function Wl(e){const t=Bw(e);if(!$o(t))return eo(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:i}=pA(t);let a=(i?Sh(n.width):n.width)/r,l=(i?Sh(n.height):n.height)/o;return(!a||!Number.isFinite(a))&&(a=1),(!l||!Number.isFinite(l))&&(l=1),{x:a,y:l}}const tU=eo(0);function hA(e){const t=Hr(e);return!zw()||!t.visualViewport?tU:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function nU(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Hr(e)?!1:t}function ja(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const o=e.getBoundingClientRect(),i=Bw(e);let a=eo(1);t&&(r?Ns(r)&&(a=Wl(r)):a=Wl(e));const l=nU(i,n,r)?hA(i):eo(0);let u=(o.left+l.x)/a.x,f=(o.top+l.y)/a.y,p=o.width/a.x,h=o.height/a.y;if(i){const g=Hr(i),y=r&&Ns(r)?Hr(r):r;let k=g,v=Kb(k);for(;v&&r&&y!==k;){const b=Wl(v),j=v.getBoundingClientRect(),S=Ss(v),N=j.left+(v.clientLeft+parseFloat(S.paddingLeft))*b.x,C=j.top+(v.clientTop+parseFloat(S.paddingTop))*b.y;u*=b.x,f*=b.y,p*=b.x,h*=b.y,u+=N,f+=C,k=Hr(v),v=Kb(k)}}return Eh({width:p,height:h,x:u,y:f})}function Mm(e,t){const n=Im(e).scrollLeft;return t?t.left+n:ja(so(e)).left+n}function mA(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Mm(e,n),o=n.top+t.scrollTop;return{x:r,y:o}}function rU(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const i=o==="fixed",a=so(r),l=t?$m(t.floating):!1;if(r===a||l&&i)return n;let u={scrollLeft:0,scrollTop:0},f=eo(1);const p=eo(0),h=$o(r);if((h||!h&&!i)&&((Pc(r)!=="body"||Wd(a))&&(u=Im(r)),h)){const y=ja(r);f=Wl(r),p.x=y.x+r.clientLeft,p.y=y.y+r.clientTop}const g=a&&!h&&!i?mA(a,u):eo(0);return{width:n.width*f.x,height:n.height*f.y,x:n.x*f.x-u.scrollLeft*f.x+p.x+g.x,y:n.y*f.y-u.scrollTop*f.y+p.y+g.y}}function sU(e){return Array.from(e.getClientRects())}function oU(e){const t=so(e),n=Im(e),r=e.ownerDocument.body,o=Or(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),i=Or(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+Mm(e);const l=-n.scrollTop;return Ss(r).direction==="rtl"&&(a+=Or(t.clientWidth,r.clientWidth)-o),{width:o,height:i,x:a,y:l}}const PN=25;function iU(e,t){const n=Hr(e),r=so(e),o=n.visualViewport;let i=r.clientWidth,a=r.clientHeight,l=0,u=0;if(o){i=o.width,a=o.height;const p=zw();(!p||p&&t==="fixed")&&(l=o.offsetLeft,u=o.offsetTop)}const f=Mm(r);if(f<=0){const p=r.ownerDocument,h=p.body,g=getComputedStyle(h),y=p.compatMode==="CSS1Compat"&&parseFloat(g.marginLeft)+parseFloat(g.marginRight)||0,k=Math.abs(r.clientWidth-h.clientWidth-y);k<=PN&&(i-=k)}else f<=PN&&(i+=f);return{width:i,height:a,x:l,y:u}}function aU(e,t){const n=ja(e,!0,t==="fixed"),r=n.top+e.clientTop,o=n.left+e.clientLeft,i=$o(e)?Wl(e):eo(1),a=e.clientWidth*i.x,l=e.clientHeight*i.y,u=o*i.x,f=r*i.y;return{width:a,height:l,x:u,y:f}}function _N(e,t,n){let r;if(t==="viewport")r=iU(e,n);else if(t==="document")r=oU(so(e));else if(Ns(t))r=aU(t,n);else{const o=hA(e);r={x:t.x-o.x,y:t.y-o.y,width:t.width,height:t.height}}return Eh(r)}function gA(e,t){const n=Ci(e);return n===t||!Ns(n)||nc(n)?!1:Ss(n).position==="fixed"||gA(n,t)}function lU(e,t){const n=t.get(e);if(n)return n;let r=hd(e,[],!1).filter(l=>Ns(l)&&Pc(l)!=="body"),o=null;const i=Ss(e).position==="fixed";let a=i?Ci(e):e;for(;Ns(a)&&!nc(a);){const l=Ss(a),u=Fw(a);!u&&l.position==="fixed"&&(o=null),(i?!u&&!o:!u&&l.position==="static"&&!!o&&(o.position==="absolute"||o.position==="fixed")||Wd(a)&&!u&&gA(e,a))?r=r.filter(p=>p!==a):o=l,a=Ci(a)}return t.set(e,r),r}function cU(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const a=[...n==="clippingAncestors"?$m(t)?[]:lU(t,this._c):[].concat(n),r],l=_N(t,a[0],o);let u=l.top,f=l.right,p=l.bottom,h=l.left;for(let g=1;g<a.length;g++){const y=_N(t,a[g],o);u=Or(y.top,u),f=Si(y.right,f),p=Si(y.bottom,p),h=Or(y.left,h)}return{width:f-h,height:p-u,x:h,y:u}}function uU(e){const{width:t,height:n}=pA(e);return{width:t,height:n}}function dU(e,t,n){const r=$o(t),o=so(t),i=n==="fixed",a=ja(e,!0,i,t);let l={scrollLeft:0,scrollTop:0};const u=eo(0);function f(){u.x=Mm(o)}if(r||!r&&!i)if((Pc(t)!=="body"||Wd(o))&&(l=Im(t)),r){const y=ja(t,!0,i,t);u.x=y.x+t.clientLeft,u.y=y.y+t.clientTop}else o&&f();i&&!r&&o&&f();const p=o&&!r&&!i?mA(o,l):eo(0),h=a.left+l.scrollLeft-u.x-p.x,g=a.top+l.scrollTop-u.y-p.y;return{x:h,y:g,width:a.width,height:a.height}}function Sy(e){return Ss(e).position==="static"}function DN(e,t){if(!$o(e)||Ss(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return so(e)===n&&(n=n.ownerDocument.body),n}function xA(e,t){const n=Hr(e);if($m(e))return n;if(!$o(e)){let o=Ci(e);for(;o&&!nc(o);){if(Ns(o)&&!Sy(o))return o;o=Ci(o)}return n}let r=DN(e,t);for(;r&&Q7(r)&&Sy(r);)r=DN(r,t);return r&&nc(r)&&Sy(r)&&!Fw(r)?n:r||eU(e)||n}const fU=async function(e){const t=this.getOffsetParent||xA,n=this.getDimensions,r=await n(e.floating);return{reference:dU(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function pU(e){return Ss(e).direction==="rtl"}const hU={convertOffsetParentRelativeRectToViewportRelativeRect:rU,getDocumentElement:so,getClippingRect:cU,getOffsetParent:xA,getElementRects:fU,getClientRects:sU,getDimensions:uU,getScale:Wl,isElement:Ns,isRTL:pU};function yA(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function mU(e,t){let n=null,r;const o=so(e);function i(){var l;clearTimeout(r),(l=n)==null||l.disconnect(),n=null}function a(l,u){l===void 0&&(l=!1),u===void 0&&(u=1),i();const f=e.getBoundingClientRect(),{left:p,top:h,width:g,height:y}=f;if(l||t(),!g||!y)return;const k=gp(h),v=gp(o.clientWidth-(p+g)),b=gp(o.clientHeight-(h+y)),j=gp(p),N={rootMargin:-k+"px "+-v+"px "+-b+"px "+-j+"px",threshold:Or(0,Si(1,u))||1};let C=!0;function P(T){const R=T[0].intersectionRatio;if(R!==u){if(!C)return a();R?a(!1,R):r=setTimeout(()=>{a(!1,1e-7)},1e3)}R===1&&!yA(f,e.getBoundingClientRect())&&a(),C=!1}try{n=new IntersectionObserver(P,{...N,root:o.ownerDocument})}catch{n=new IntersectionObserver(P,N)}n.observe(e)}return a(!0),i}function gU(e,t,n,r){r===void 0&&(r={});const{ancestorScroll:o=!0,ancestorResize:i=!0,elementResize:a=typeof ResizeObserver=="function",layoutShift:l=typeof IntersectionObserver=="function",animationFrame:u=!1}=r,f=Bw(e),p=o||i?[...f?hd(f):[],...t?hd(t):[]]:[];p.forEach(j=>{o&&j.addEventListener("scroll",n,{passive:!0}),i&&j.addEventListener("resize",n)});const h=f&&l?mU(f,n):null;let g=-1,y=null;a&&(y=new ResizeObserver(j=>{let[S]=j;S&&S.target===f&&y&&t&&(y.unobserve(t),cancelAnimationFrame(g),g=requestAnimationFrame(()=>{var N;(N=y)==null||N.observe(t)})),n()}),f&&!u&&y.observe(f),t&&y.observe(t));let k,v=u?ja(e):null;u&&b();function b(){const j=ja(e);v&&!yA(v,j)&&n(),v=j,k=requestAnimationFrame(b)}return n(),()=>{var j;p.forEach(S=>{o&&S.removeEventListener("scroll",n),i&&S.removeEventListener("resize",n)}),h==null||h(),(j=y)==null||j.disconnect(),y=null,u&&cancelAnimationFrame(k)}}const xU=q7,yU=G7,bU=V7,vU=X7,wU=W7,$N=H7,jU=Y7,kU=(e,t,n)=>{const r=new Map,o={platform:hU,...n},i={...o.platform,_c:r};return U7(e,t,{...o,platform:i})};var NU=typeof document<"u",SU=function(){},Yp=NU?m.useLayoutEffect:SU;function Th(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,r,o;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(r=n;r--!==0;)if(!Th(e[r],t[r]))return!1;return!0}if(o=Object.keys(e),n=o.length,n!==Object.keys(t).length)return!1;for(r=n;r--!==0;)if(!{}.hasOwnProperty.call(t,o[r]))return!1;for(r=n;r--!==0;){const i=o[r];if(!(i==="_owner"&&e.$$typeof)&&!Th(e[i],t[i]))return!1}return!0}return e!==e&&t!==t}function bA(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function IN(e,t){const n=bA(e);return Math.round(t*n)/n}function Cy(e){const t=m.useRef(e);return Yp(()=>{t.current=e}),t}function CU(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:o,elements:{reference:i,floating:a}={},transform:l=!0,whileElementsMounted:u,open:f}=e,[p,h]=m.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[g,y]=m.useState(r);Th(g,r)||y(r);const[k,v]=m.useState(null),[b,j]=m.useState(null),S=m.useCallback(M=>{M!==T.current&&(T.current=M,v(M))},[]),N=m.useCallback(M=>{M!==R.current&&(R.current=M,j(M))},[]),C=i||k,P=a||b,T=m.useRef(null),R=m.useRef(null),I=m.useRef(p),_=u!=null,F=Cy(u),D=Cy(o),W=Cy(f),V=m.useCallback(()=>{if(!T.current||!R.current)return;const M={placement:t,strategy:n,middleware:g};D.current&&(M.platform=D.current),kU(T.current,R.current,M).then(H=>{const L={...H,isPositioned:W.current!==!1};$.current&&!Th(I.current,L)&&(I.current=L,Ys.flushSync(()=>{h(L)}))})},[g,t,n,D,W]);Yp(()=>{f===!1&&I.current.isPositioned&&(I.current.isPositioned=!1,h(M=>({...M,isPositioned:!1})))},[f]);const $=m.useRef(!1);Yp(()=>($.current=!0,()=>{$.current=!1}),[]),Yp(()=>{if(C&&(T.current=C),P&&(R.current=P),C&&P){if(F.current)return F.current(C,P,V);V()}},[C,P,V,F,_]);const O=m.useMemo(()=>({reference:T,floating:R,setReference:S,setFloating:N}),[S,N]),U=m.useMemo(()=>({reference:C,floating:P}),[C,P]),K=m.useMemo(()=>{const M={position:n,left:0,top:0};if(!U.floating)return M;const H=IN(U.floating,p.x),L=IN(U.floating,p.y);return l?{...M,transform:"translate("+H+"px, "+L+"px)",...bA(U.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:H,top:L}},[n,l,U.floating,p.x,p.y]);return m.useMemo(()=>({...p,update:V,refs:O,elements:U,floatingStyles:K}),[p,V,O,U,K])}const EU=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:r,padding:o}=typeof e=="function"?e(n):e;return r&&t(r)?r.current!=null?$N({element:r.current,padding:o}).fn(n):{}:r?$N({element:r,padding:o}).fn(n):{}}}},TU=(e,t)=>{const n=xU(e);return{name:n.name,fn:n.fn,options:[e,t]}},RU=(e,t)=>{const n=yU(e);return{name:n.name,fn:n.fn,options:[e,t]}},AU=(e,t)=>({fn:jU(e).fn,options:[e,t]}),PU=(e,t)=>{const n=bU(e);return{name:n.name,fn:n.fn,options:[e,t]}},_U=(e,t)=>{const n=vU(e);return{name:n.name,fn:n.fn,options:[e,t]}},DU=(e,t)=>{const n=wU(e);return{name:n.name,fn:n.fn,options:[e,t]}},$U=(e,t)=>{const n=EU(e);return{name:n.name,fn:n.fn,options:[e,t]}};var IU="Arrow",vA=m.forwardRef((e,t)=>{const{children:n,width:r=10,height:o=5,...i}=e;return s.jsx(kn.svg,{...i,ref:t,width:r,height:o,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:s.jsx("polygon",{points:"0,0 30,0 15,10"})})});vA.displayName=IU;var MU=vA;function LU(e){const[t,n]=m.useState(void 0);return ji(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const r=new ResizeObserver(o=>{if(!Array.isArray(o)||!o.length)return;const i=o[0];let a,l;if("borderBoxSize"in i){const u=i.borderBoxSize,f=Array.isArray(u)?u[0]:u;a=f.inlineSize,l=f.blockSize}else a=e.offsetWidth,l=e.offsetHeight;n({width:a,height:l})});return r.observe(e,{box:"border-box"}),()=>r.unobserve(e)}else n(void 0)},[e]),t}var Uw="Popper",[wA,jA]=Ra(Uw),[OU,kA]=wA(Uw),NA=e=>{const{__scopePopper:t,children:n}=e,[r,o]=m.useState(null);return s.jsx(OU,{scope:t,anchor:r,onAnchorChange:o,children:n})};NA.displayName=Uw;var SA="PopperAnchor",CA=m.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,i=kA(SA,n),a=m.useRef(null),l=rr(t,a),u=m.useRef(null);return m.useEffect(()=>{const f=u.current;u.current=(r==null?void 0:r.current)||a.current,f!==u.current&&i.onAnchorChange(u.current)}),r?null:s.jsx(kn.div,{...o,ref:l})});CA.displayName=SA;var Hw="PopperContent",[FU,zU]=wA(Hw),EA=m.forwardRef((e,t)=>{var oe,ne,ue,ge,Ce,Se;const{__scopePopper:n,side:r="bottom",sideOffset:o=0,align:i="center",alignOffset:a=0,arrowPadding:l=0,avoidCollisions:u=!0,collisionBoundary:f=[],collisionPadding:p=0,sticky:h="partial",hideWhenDetached:g=!1,updatePositionStrategy:y="optimized",onPlaced:k,...v}=e,b=kA(Hw,n),[j,S]=m.useState(null),N=rr(t,ke=>S(ke)),[C,P]=m.useState(null),T=LU(C),R=(T==null?void 0:T.width)??0,I=(T==null?void 0:T.height)??0,_=r+(i!=="center"?"-"+i:""),F=typeof p=="number"?p:{top:0,right:0,bottom:0,left:0,...p},D=Array.isArray(f)?f:[f],W=D.length>0,V={padding:F,boundary:D.filter(UU),altBoundary:W},{refs:$,floatingStyles:O,placement:U,isPositioned:K,middlewareData:M}=CU({strategy:"fixed",placement:_,whileElementsMounted:(...ke)=>gU(...ke,{animationFrame:y==="always"}),elements:{reference:b.anchor},middleware:[TU({mainAxis:o+I,alignmentAxis:a}),u&&RU({mainAxis:!0,crossAxis:!1,limiter:h==="partial"?AU():void 0,...V}),u&&PU({...V}),_U({...V,apply:({elements:ke,rects:Be,availableWidth:ie,availableHeight:ve})=>{const{width:be,height:Re}=Be.reference,Ue=ke.floating.style;Ue.setProperty("--radix-popper-available-width",`${ie}px`),Ue.setProperty("--radix-popper-available-height",`${ve}px`),Ue.setProperty("--radix-popper-anchor-width",`${be}px`),Ue.setProperty("--radix-popper-anchor-height",`${Re}px`)}}),C&&$U({element:C,padding:l}),HU({arrowWidth:R,arrowHeight:I}),g&&DU({strategy:"referenceHidden",...V})]}),[H,L]=AA(U),z=va(k);ji(()=>{K&&(z==null||z())},[K,z]);const Y=(oe=M.arrow)==null?void 0:oe.x,B=(ne=M.arrow)==null?void 0:ne.y,Q=((ue=M.arrow)==null?void 0:ue.centerOffset)!==0,[J,Z]=m.useState();return ji(()=>{j&&Z(window.getComputedStyle(j).zIndex)},[j]),s.jsx("div",{ref:$.setFloating,"data-radix-popper-content-wrapper":"",style:{...O,transform:K?O.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:J,"--radix-popper-transform-origin":[(ge=M.transformOrigin)==null?void 0:ge.x,(Ce=M.transformOrigin)==null?void 0:Ce.y].join(" "),...((Se=M.hide)==null?void 0:Se.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:s.jsx(FU,{scope:n,placedSide:H,onArrowChange:P,arrowX:Y,arrowY:B,shouldHideArrow:Q,children:s.jsx(kn.div,{"data-side":H,"data-align":L,...v,ref:N,style:{...v.style,animation:K?void 0:"none"}})})})});EA.displayName=Hw;var TA="PopperArrow",BU={top:"bottom",right:"left",bottom:"top",left:"right"},RA=m.forwardRef(function(t,n){const{__scopePopper:r,...o}=t,i=zU(TA,r),a=BU[i.placedSide];return s.jsx("span",{ref:i.onArrowChange,style:{position:"absolute",left:i.arrowX,top:i.arrowY,[a]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[i.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[i.placedSide],visibility:i.shouldHideArrow?"hidden":void 0},children:s.jsx(MU,{...o,ref:n,style:{...o.style,display:"block"}})})});RA.displayName=TA;function UU(e){return e!==null}var HU=e=>({name:"transformOrigin",options:e,fn(t){var b,j,S;const{placement:n,rects:r,middlewareData:o}=t,a=((b=o.arrow)==null?void 0:b.centerOffset)!==0,l=a?0:e.arrowWidth,u=a?0:e.arrowHeight,[f,p]=AA(n),h={start:"0%",center:"50%",end:"100%"}[p],g=(((j=o.arrow)==null?void 0:j.x)??0)+l/2,y=(((S=o.arrow)==null?void 0:S.y)??0)+u/2;let k="",v="";return f==="bottom"?(k=a?h:`${g}px`,v=`${-u}px`):f==="top"?(k=a?h:`${g}px`,v=`${r.floating.height+u}px`):f==="right"?(k=`${-u}px`,v=a?h:`${y}px`):f==="left"&&(k=`${r.floating.width+u}px`,v=a?h:`${y}px`),{data:{x:k,y:v}}}});function AA(e){const[t,n="center"]=e.split("-");return[t,n]}var VU=NA,WU=CA,KU=EA,qU=RA,GU=Symbol("radix.slottable");function YU(e){const t=({children:n})=>s.jsx(s.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=GU,t}var XU=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"}),QU="VisuallyHidden",PA=m.forwardRef((e,t)=>s.jsx(kn.span,{...e,ref:t,style:{...XU,...e.style}}));PA.displayName=QU;var JU=PA,[Lm]=Ra("Tooltip",[jA]),Om=jA(),_A="TooltipProvider",ZU=700,qb="tooltip.open",[eH,Vw]=Lm(_A),DA=e=>{const{__scopeTooltip:t,delayDuration:n=ZU,skipDelayDuration:r=300,disableHoverableContent:o=!1,children:i}=e,a=m.useRef(!0),l=m.useRef(!1),u=m.useRef(0);return m.useEffect(()=>{const f=u.current;return()=>window.clearTimeout(f)},[]),s.jsx(eH,{scope:t,isOpenDelayedRef:a,delayDuration:n,onOpen:m.useCallback(()=>{window.clearTimeout(u.current),a.current=!1},[]),onClose:m.useCallback(()=>{window.clearTimeout(u.current),u.current=window.setTimeout(()=>a.current=!0,r)},[r]),isPointerInTransitRef:l,onPointerInTransitChange:m.useCallback(f=>{l.current=f},[]),disableHoverableContent:o,children:i})};DA.displayName=_A;var md="Tooltip",[tH,Kd]=Lm(md),$A=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:o,onOpenChange:i,disableHoverableContent:a,delayDuration:l}=e,u=Vw(md,e.__scopeTooltip),f=Om(t),[p,h]=m.useState(null),g=Fl(),y=m.useRef(0),k=a??u.disableHoverableContent,v=l??u.delayDuration,b=m.useRef(!1),[j,S]=ym({prop:r,defaultProp:o??!1,onChange:R=>{R?(u.onOpen(),document.dispatchEvent(new CustomEvent(qb))):u.onClose(),i==null||i(R)},caller:md}),N=m.useMemo(()=>j?b.current?"delayed-open":"instant-open":"closed",[j]),C=m.useCallback(()=>{window.clearTimeout(y.current),y.current=0,b.current=!1,S(!0)},[S]),P=m.useCallback(()=>{window.clearTimeout(y.current),y.current=0,S(!1)},[S]),T=m.useCallback(()=>{window.clearTimeout(y.current),y.current=window.setTimeout(()=>{b.current=!0,S(!0),y.current=0},v)},[v,S]);return m.useEffect(()=>()=>{y.current&&(window.clearTimeout(y.current),y.current=0)},[]),s.jsx(VU,{...f,children:s.jsx(tH,{scope:t,contentId:g,open:j,stateAttribute:N,trigger:p,onTriggerChange:h,onTriggerEnter:m.useCallback(()=>{u.isOpenDelayedRef.current?T():C()},[u.isOpenDelayedRef,T,C]),onTriggerLeave:m.useCallback(()=>{k?P():(window.clearTimeout(y.current),y.current=0)},[P,k]),onOpen:C,onClose:P,disableHoverableContent:k,children:n})})};$A.displayName=md;var Gb="TooltipTrigger",IA=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=Kd(Gb,n),i=Vw(Gb,n),a=Om(n),l=m.useRef(null),u=rr(t,l,o.onTriggerChange),f=m.useRef(!1),p=m.useRef(!1),h=m.useCallback(()=>f.current=!1,[]);return m.useEffect(()=>()=>document.removeEventListener("pointerup",h),[h]),s.jsx(WU,{asChild:!0,...a,children:s.jsx(kn.button,{"aria-describedby":o.open?o.contentId:void 0,"data-state":o.stateAttribute,...r,ref:u,onPointerMove:sn(e.onPointerMove,g=>{g.pointerType!=="touch"&&!p.current&&!i.isPointerInTransitRef.current&&(o.onTriggerEnter(),p.current=!0)}),onPointerLeave:sn(e.onPointerLeave,()=>{o.onTriggerLeave(),p.current=!1}),onPointerDown:sn(e.onPointerDown,()=>{o.open&&o.onClose(),f.current=!0,document.addEventListener("pointerup",h,{once:!0})}),onFocus:sn(e.onFocus,()=>{f.current||o.onOpen()}),onBlur:sn(e.onBlur,o.onClose),onClick:sn(e.onClick,o.onClose)})})});IA.displayName=Gb;var Ww="TooltipPortal",[nH,rH]=Lm(Ww,{forceMount:void 0}),MA=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:o}=e,i=Kd(Ww,t);return s.jsx(nH,{scope:t,forceMount:n,children:s.jsx(Aa,{present:n||i.open,children:s.jsx(uw,{asChild:!0,container:o,children:r})})})};MA.displayName=Ww;var rc="TooltipContent",LA=m.forwardRef((e,t)=>{const n=rH(rc,e.__scopeTooltip),{forceMount:r=n.forceMount,side:o="top",...i}=e,a=Kd(rc,e.__scopeTooltip);return s.jsx(Aa,{present:r||a.open,children:a.disableHoverableContent?s.jsx(OA,{side:o,...i,ref:t}):s.jsx(sH,{side:o,...i,ref:t})})}),sH=m.forwardRef((e,t)=>{const n=Kd(rc,e.__scopeTooltip),r=Vw(rc,e.__scopeTooltip),o=m.useRef(null),i=rr(t,o),[a,l]=m.useState(null),{trigger:u,onClose:f}=n,p=o.current,{onPointerInTransitChange:h}=r,g=m.useCallback(()=>{l(null),h(!1)},[h]),y=m.useCallback((k,v)=>{const b=k.currentTarget,j={x:k.clientX,y:k.clientY},S=cH(j,b.getBoundingClientRect()),N=uH(j,S),C=dH(v.getBoundingClientRect()),P=pH([...N,...C]);l(P),h(!0)},[h]);return m.useEffect(()=>()=>g(),[g]),m.useEffect(()=>{if(u&&p){const k=b=>y(b,p),v=b=>y(b,u);return u.addEventListener("pointerleave",k),p.addEventListener("pointerleave",v),()=>{u.removeEventListener("pointerleave",k),p.removeEventListener("pointerleave",v)}}},[u,p,y,g]),m.useEffect(()=>{if(a){const k=v=>{const b=v.target,j={x:v.clientX,y:v.clientY},S=(u==null?void 0:u.contains(b))||(p==null?void 0:p.contains(b)),N=!fH(j,a);S?g():N&&(g(),f())};return document.addEventListener("pointermove",k),()=>document.removeEventListener("pointermove",k)}},[u,p,a,f,g]),s.jsx(OA,{...e,ref:i})}),[oH,iH]=Lm(md,{isInside:!1}),aH=YU("TooltipContent"),OA=m.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":o,onEscapeKeyDown:i,onPointerDownOutside:a,...l}=e,u=Kd(rc,n),f=Om(n),{onClose:p}=u;return m.useEffect(()=>(document.addEventListener(qb,p),()=>document.removeEventListener(qb,p)),[p]),m.useEffect(()=>{if(u.trigger){const h=g=>{const y=g.target;y!=null&&y.contains(u.trigger)&&p()};return window.addEventListener("scroll",h,{capture:!0}),()=>window.removeEventListener("scroll",h,{capture:!0})}},[u.trigger,p]),s.jsx(cw,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:h=>h.preventDefault(),onDismiss:p,children:s.jsxs(KU,{"data-state":u.stateAttribute,...f,...l,ref:t,style:{...l.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:[s.jsx(aH,{children:r}),s.jsx(oH,{scope:n,isInside:!0,children:s.jsx(JU,{id:u.contentId,role:"tooltip",children:o||r})})]})})});LA.displayName=rc;var FA="TooltipArrow",lH=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=Om(n);return iH(FA,n).isInside?null:s.jsx(qU,{...o,...r,ref:t})});lH.displayName=FA;function cH(e,t){const n=Math.abs(t.top-e.y),r=Math.abs(t.bottom-e.y),o=Math.abs(t.right-e.x),i=Math.abs(t.left-e.x);switch(Math.min(n,r,o,i)){case i:return"left";case o:return"right";case n:return"top";case r:return"bottom";default:throw new Error("unreachable")}}function uH(e,t,n=5){const r=[];switch(t){case"top":r.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":r.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":r.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":r.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return r}function dH(e){const{top:t,right:n,bottom:r,left:o}=e;return[{x:o,y:t},{x:n,y:t},{x:n,y:r},{x:o,y:r}]}function fH(e,t){const{x:n,y:r}=e;let o=!1;for(let i=0,a=t.length-1;i<t.length;a=i++){const l=t[i],u=t[a],f=l.x,p=l.y,h=u.x,g=u.y;p>r!=g>r&&n<(h-f)*(r-p)/(g-p)+f&&(o=!o)}return o}function pH(e){const t=e.slice();return t.sort((n,r)=>n.x<r.x?-1:n.x>r.x?1:n.y<r.y?-1:n.y>r.y?1:0),hH(t)}function hH(e){if(e.length<=1)return e.slice();const t=[];for(let r=0;r<e.length;r++){const o=e[r];for(;t.length>=2;){const i=t[t.length-1],a=t[t.length-2];if((i.x-a.x)*(o.y-a.y)>=(i.y-a.y)*(o.x-a.x))t.pop();else break}t.push(o)}t.pop();const n=[];for(let r=e.length-1;r>=0;r--){const o=e[r];for(;n.length>=2;){const i=n[n.length-1],a=n[n.length-2];if((i.x-a.x)*(o.y-a.y)>=(i.y-a.y)*(o.x-a.x))n.pop();else break}n.push(o)}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 mH=DA,gH=$A,xH=IA,yH=MA,zA=LA;const ma=mH,Fr=gH,zr=xH,vr=m.forwardRef(({className:e,sideOffset:t=4,...n},r)=>s.jsx(yH,{children:s.jsx(zA,{ref:r,sideOffset:t,className:we("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})}));vr.displayName=zA.displayName;function Kw({items:e,align:t="end"}){const[n,r]=m.useState(!1),[o,i]=m.useState(null),a=m.useRef(null);if(m.useEffect(()=>{if(!n){i(null);return}function u(p){a.current&&!a.current.contains(p.target)&&r(!1)}function f(p){p.key==="Escape"&&r(!1)}return document.addEventListener("mousedown",u),document.addEventListener("keydown",f),()=>{document.removeEventListener("mousedown",u),document.removeEventListener("keydown",f)}},[n]),e.length===0)return null;function l(u,f){const p=u.icon,h=we("flex w-full items-center gap-2 px-3 py-1.5 text-sm text-left transition",f&&"pl-8",u.disabled?"opacity-50 cursor-not-allowed":u.destructive?"text-destructive hover:bg-destructive/10":"hover:bg-foreground/5"),g=f?u.active?s.jsx(Sr,{className:"h-4 w-4 shrink-0","aria-hidden":"true"}):s.jsx("span",{className:"h-4 w-4 shrink-0","aria-hidden":"true"}):p?s.jsx(p,{className:"h-4 w-4 shrink-0"}):null,y=s.jsxs(s.Fragment,{children:[g,s.jsx("span",{className:"block min-w-0 truncate",children:u.label})]});if(u.disabled){const k=s.jsx("span",{tabIndex:0,className:"inline-block w-full outline-none focus-visible:ring-1 focus-visible:ring-ring",children:s.jsx("button",{type:"button",disabled:!0,className:h,children:y})});return u.disabledReason?s.jsxs(Fr,{children:[s.jsx(zr,{asChild:!0,children:k}),s.jsx(vr,{side:"left",children:u.disabledReason})]},u.key):s.jsx("div",{children:k},u.key)}return u.href?s.jsx($e,{to:u.href,className:h,onClick:()=>r(!1),children:y},u.key):s.jsx("button",{type:"button",className:h,onClick:()=>{var k;(k=u.onSelect)==null||k.call(u),r(!1)},children:y},u.key)}return s.jsxs("div",{className:"relative",ref:a,children:[s.jsx("button",{type:"button",onClick:()=>r(u=>!u),className:"shell-action",title:"More actions","aria-label":"More actions","aria-haspopup":"true","aria-expanded":n,children:s.jsx(g4,{className:"h-4 w-4"})}),n&&s.jsx("div",{className:we("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:s.jsx(ma,{delayDuration:200,children:e.map(u=>{if(u.submenu&&u.submenu.length>0){const f=u.icon,p=o===u.key;return s.jsxs("div",{children:[s.jsxs("button",{type:"button",className:we("flex w-full items-center gap-2 px-3 py-1.5 text-sm text-left transition hover:bg-foreground/5"),"aria-expanded":p,onClick:()=>i(p?null:u.key),children:[f?s.jsx(f,{className:"h-4 w-4 shrink-0"}):null,s.jsx("span",{className:"block min-w-0 flex-1 truncate",children:u.label}),p?s.jsx(nr,{className:"h-4 w-4 shrink-0 text-muted-foreground","aria-hidden":"true"}):s.jsx(Wv,{className:"h-4 w-4 shrink-0 text-muted-foreground","aria-hidden":"true"})]}),p?u.submenu.map(h=>l(h,!0)):null]},u.key)}return l(u,!1)})})})]})}function MN(e){const t=Date.parse(e);return Number.isNaN(t)?!1:Date.now()-t>10080*60*1e3}const bH={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 vH(e){const[t,n,r]=e.split("-").map(Number);return new Date(t,n-1,r,0,0,0,0).getTime()}function wH(e){const[t,n,r]=e.split("-").map(Number);return new Date(t,n-1,r,23,59,59,999).getTime()}function jH(e,t,n=Date.now()){if(!t)return!0;const r=t.field==="created"?e.created??e.updated:e.updated,o=Date.parse(r);if(Number.isNaN(o))return!1;if(t.preset){const l=bH[t.preset];return l===void 0?!0:t.preset.startsWith("older_")?n-o>l:o>=n-l&&o<=n}const i=t.from&&t.from.length>0?t.from:void 0,a=t.to&&t.to.length>0?t.to:void 0;return!i&&!a?!0:!(i&&o<vH(i)||a&&o>wH(a))}function kH(e,t,n={}){const{workspace:r,search:o,includeArchived:i}=n;if(e.archived===!0&&!i)return!1;const a=He(t.status),l=He(t.priority),u=He(t.type),f=He(t.assignee),p=He(t.project),h=He(t.tags),{activity:g}=t;if(r){if(r==="_ungrouped"){if(e.projectWorkspace!=null)return!1}else if(e.projectWorkspace!==r)return!1}if(a.length&&!a.includes(e.status)||l.length&&!l.includes(e.priority)||u.length&&!u.includes(e.type??"")||g==="stale"&&!MN(e.updated)||g==="fresh"&&MN(e.updated))return!1;if(f.length){const y=e.assignee??"__unassigned__";if(!f.includes(y))return!1}if(p.length&&!p.some(k=>k==="__standalone__"?e.projectSlug==null:e.projectSlug===k))return!1;if(h.length){const y=e.tags??[];if(!h.some(k=>y.includes(k)))return!1}if(!jH(e,t.dateRange))return!1;if(o){const y=o.trim().toLowerCase();if(y&&!`${e.title??""} ${e.slug??""} ${e.projectTitle??"standalone"} ${e.projectSlug??""}`.toLowerCase().includes(y))return!1}return!0}function gd(e){return e.projectSlug===null?`/assignments/${e.id}`:`${e.projectWorkspace?`/w/${e.projectWorkspace}`:""}/projects/${e.projectSlug}/assignments/${e.slug}`}const LN={critical:0,high:1,medium:2,low:3};function xp(e){return Date.parse(e??"")||0}function qd(e,t,n){return[...e].sort((o,i)=>{let a=0;switch(t){case"title":a=o.title.localeCompare(i.title);break;case"status":a=o.status.localeCompare(i.status);break;case"priority":a=(LN[o.priority]??99)-(LN[i.priority]??99);break;case"assignee":a=(o.assignee??"").localeCompare(i.assignee??"");break;case"dependencies":a=o.dependsOn.length-i.dependsOn.length;break;case"created":a=xp(o.created)-xp(i.created);break;case"updated":a=xp(o.updated)-xp(i.updated);break}return n==="asc"?a:-a})}function NH(e){const t=`${e.title??""} ${e.slug??""} ${e.projectTitle??"standalone"} ${e.projectSlug??""}`;return{...e.facts??{},status:e.status,phase:e.phase,disposition:e.disposition,priority:e.priority,type:e.type,assignee:e.assignee,project:e.projectSlug,tags:e.tags,archived:e.archived,title:e.title,created:e.created,updated:e.updated,completedAt:e.completedAt,statusAge:e.statusAge,phaseAge:e.phaseAge,searchText:t}}function BA(e,t,n={}){const{workspace:r,includeArchived:o=!1,now:i=Date.now()}=n,a={now:i};return e.filter(l=>{if(l.archived===!0&&!o)return!1;if(r){if(r==="_ungrouped"){if(l.projectWorkspace!=null)return!1}else if(l.projectWorkspace!==r)return!1}if(!t)return!0;const u=NH(l);return t.predicate(u,a)})}const Fm={hasrealobjective:{kind:"bool",get:e=>e.hasRealObjective},acrealtotal:{kind:"number",get:e=>e.acRealTotal},acrealchecked:{kind:"number",get:e=>e.acRealChecked},acallchecked:{kind:"bool",get:e=>e.acAllChecked},planexists:{kind:"bool",get:e=>e.planExists},planapproved:{kind:"bool",get:e=>e.planApproved},workspaceset:{kind:"bool",get:e=>e.workspaceSet},implementationstarted:{kind:"bool",get:e=>e.implementationStarted},depssatisfied:{kind:"bool",get:e=>e.depsSatisfied},unresolvedquestions:{kind:"number",get:e=>e.unresolvedQuestions},blocked:{kind:"bool"},parked:{kind:"bool"},reviewrequested:{kind:"bool",get:e=>e.reviewRequested},reworkrequested:{kind:"bool",get:e=>e.reworkRequested},pinned:{kind:"bool"}};function zm(e){const t=e.name,n={fact:t,approved:`${t}Approved`,changesRequested:`${t}ChangesRequested`,by:`${t}By`,approvedBy:`${t}ApprovedBy`},r=e.type==="attestation"?[n.fact,n.approved,n.changesRequested,n.by,n.approvedBy].map(o=>o.toLowerCase()):[n.fact.toLowerCase()];return{storageKey:t,exports:n,registryKeys:r}}function SH(e){const t=[];for(const n of e??[]){if(!n||typeof n.name!="string")continue;const r=n.name.trim();if(!/^[a-z][a-zA-Z0-9]*$/.test(r))continue;const o=(n.type??"").trim();if(o==="bool"||o==="number")t.push({name:r,type:o});else if(o==="attestation"){const i=(n.binds??"none").toString().trim()||"none";(i==="plan"||i==="commit"||i==="none")&&t.push({name:r,type:"attestation",binds:i})}}return t}function Yb(e){const t=[],n=new Map;for(const r of Object.keys(Fm))n.set(r,"built-in");for(const r of Object.keys(hm))n.set(r,"built-in");for(const r of e??[]){const o=((r==null?void 0:r.name)??"").trim();if(!/^[a-z][a-zA-Z0-9]*$/.test(o)){t.push(`fact "${(r==null?void 0:r.name)??""}": invalid name — must match /^[a-z][a-zA-Z0-9]*$/`);continue}const i=(r.type??"").trim();if(i!=="bool"&&i!=="number"&&i!=="attestation"){t.push(`fact "${o}": invalid type "${r.type??""}" — expected bool, number, or attestation`);continue}if(i==="attestation"){const f=(r.binds??"none").toString().trim()||"none";if(f!=="plan"&&f!=="commit"&&f!=="none"){t.push(`fact "${o}": invalid binds "${r.binds}" — expected plan, commit, or none`);continue}}const l=zm(i==="attestation"?{name:o,type:i}:{name:o,type:i}).registryKeys,u=l.find(f=>n.has(f));if(u!==void 0){const f=n.get(u);f==="built-in"?t.push(`fact "${o}": exported field "${u}" collides with a built-in field`):f===o?t.push(`fact "${o}": duplicate declaration (a fact named "${o}" is already declared)`):t.push(`fact "${o}": exported field "${u}" collides with fact "${f}"`);continue}for(const f of l)n.set(f,o)}return t}function CH(e){const t=new Set([...Object.keys(Fm),...Object.keys(hm)]),n=[];for(const r of e){const o=zm(r).registryKeys;if(!o.some(i=>t.has(i))){for(const i of o)t.add(i);n.push(r)}}return n}function UA(e,t){const n=zm(t);t.type==="attestation"?(e[n.exports.fact.toLowerCase()]={kind:"bool",get:r=>r[n.exports.fact]},e[n.exports.approved.toLowerCase()]={kind:"bool",get:r=>r[n.exports.approved]},e[n.exports.changesRequested.toLowerCase()]={kind:"bool",get:r=>r[n.exports.changesRequested]},e[n.exports.by.toLowerCase()]={kind:"list",get:r=>r[n.exports.by]},e[n.exports.approvedBy.toLowerCase()]={kind:"list",get:r=>r[n.exports.approvedBy]}):e[n.exports.fact.toLowerCase()]={kind:t.type,get:r=>r[n.exports.fact]}}function qw(e){const t={...Fm};for(const n of e)UA(t,n);return t}function HA(e){const t={...hm};for(const n of e)UA(t,n);return t}function VA(e){const t=["status","priority","type","assignee","project","tag","tags","archived","title","search","created","updated","completedAt","statusAge","phase","disposition","phaseAge","hasRealObjective","acRealTotal","acRealChecked","acAllChecked","planExists","planApproved","workspaceSet","implementationStarted","depsSatisfied","unresolvedQuestions","progressStaleDays","blocked","parked","reviewRequested","reworkRequested","pinned"],n=[];for(const r of e){const o=zm(r);r.type==="attestation"?n.push(o.exports.fact,o.exports.approved,o.exports.changesRequested,o.exports.by,o.exports.approvedBy):n.push(o.exports.fact)}return[...t,...n]}function Nt({title:e,description:t,actions:n}){return s.jsx("div",{className:"rounded-lg border border-dashed border-border bg-muted/40 px-4 py-6 text-center",children:s.jsxs("div",{className:"mx-auto max-w-xl space-y-2",children:[s.jsx("h3",{className:"text-base font-semibold text-foreground",children:e}),s.jsx("p",{className:"text-sm leading-6 text-muted-foreground",children:t}),n?s.jsx("div",{className:"flex flex-wrap justify-center gap-3 pt-2",children:n}):null]})})}const sc='a, button, input, select, textarea, [contenteditable="true"], [role="button"], [data-no-drag]';function Bm({columns:e,items:t,getItemId:n,getColumnId:r,renderCard:o,canDrop:i,onMove:a,getExternalDragData:l,onCardContextMenu:u,emptyMessage:f="No cards in this column.",hiddenColumnIds:p,onHideColumn:h,compact:g=!1,dragDisabled:y=!1,boundedColumns:k=!1}){const v=k&&!g,b=m.useMemo(()=>new Set(p??[]),[p]),j=m.useMemo(()=>e.filter(U=>!b.has(U.id)),[e,b]),S=m.useMemo(()=>e.filter(U=>b.has(U.id)),[e,b]),[N,C]=m.useState(null),[P,T]=m.useState(null),R=m.useRef(null),I=m.useMemo(()=>new Map(t.map(U=>[n(U),U])),[n,t]),_=m.useMemo(()=>j.map(U=>({column:U,items:t.filter(K=>r(K)===U.id)})),[j,r,t]),F=N?I.get(N)??null:null;function D(U){if(!F)return{allowed:!1};const K=r(F);return(i==null?void 0:i({item:F,fromColumnId:K,toColumnId:U}))??{allowed:!0}}function W(){C(null),T(null)}function V(U,K,M){if(y)return;const H=(l==null?void 0:l(K))??null;!a&&!H||(U.dataTransfer.effectAllowed="move",U.dataTransfer.setData("text/plain",M),H&&U.dataTransfer.setData("application/json",JSON.stringify(H)),a&&C(M))}function $(U,K,M){y||!a||!F||!D(K).allowed||(U.preventDefault(),U.dataTransfer.dropEffect="move",T(L=>(L==null?void 0:L.columnId)===K&&L.index===M?L:{columnId:K,index:M}))}async function O(U,K,M){var B;if(U.preventDefault(),y||!a||!F){W();return}const H=r(F),z=(((B=_.find(Q=>Q.column.id===H))==null?void 0:B.items)??[]).findIndex(Q=>n(Q)===n(F));if(!D(K).allowed||z<0){W();return}if(H===K&&(M===z||M===z+1)){W();return}try{await a({item:F,fromColumnId:H,toColumnId:K,fromIndex:z,toIndex:M})}finally{W()}}return s.jsxs("div",{className:"relative overflow-x-auto pb-2",style:{scrollbarColor:"oklch(var(--border)) transparent",scrollbarWidth:"thin"},children:[S.length>0&&h?s.jsxs("div",{className:"mb-2 flex flex-wrap items-center gap-2 text-xs text-muted-foreground",children:[s.jsx("span",{children:"Hidden:"}),S.map(U=>s.jsxs("button",{type:"button",onClick:()=>h(U.id),className:"rounded-full border border-dashed border-border/60 px-2 py-0.5 hover:border-border hover:text-foreground",title:`Restore "${U.title}" column`,children:[U.title," ×"]},U.id))]}):null,s.jsx("div",{className:we("grid min-w-max grid-flow-col items-start gap-4",g?"auto-cols-[minmax(240px,280px)]":"auto-cols-[minmax(300px,360px)]"),children:_.map(({column:U,items:K})=>{const M=D(U.id),H=(P==null?void 0:P.columnId)===U.id;return s.jsxs("section",{className:we("flex flex-col rounded-lg border border-border/60 bg-card/85 shadow-sm",g?"min-h-[200px] p-2":"min-h-[320px] p-3",v?"max-h-[70vh]":"",F&&!M.allowed?"border-dashed opacity-65":"",F&&M.allowed?"border-primary/30 bg-accent/30":"",H?"ring-2 ring-ring/30":""),title:F&&!M.allowed?M.reason:void 0,children:[s.jsxs("div",{className:"mb-3 flex items-start justify-between gap-3",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsx("h2",{className:we("font-semibold uppercase tracking-[0.16em] text-muted-foreground",g?"text-xs":"text-sm"),children:U.title}),U.description&&!g?s.jsx("p",{className:"text-sm leading-6 text-muted-foreground",children:U.description}):null]}),s.jsxs("div",{className:"flex items-center gap-1",children:[s.jsx("span",{className:"rounded-full border border-border/60 bg-background/80 px-2.5 py-1 text-xs font-semibold text-foreground",children:K.length}),h?s.jsx("button",{type:"button",onClick:()=>h(U.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 "${U.title}" column`,"aria-label":`Hide column ${U.title}`,children:"×"}):null]})]}),s.jsxs("div",{className:we("flex flex-1 flex-col gap-3",v?"min-h-0 overflow-y-auto pr-1":""),onDragOver:L=>$(L,U.id,K.length),onDrop:L=>O(L,U.id,K.length),children:[K.length===0?y?s.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 f=="function"?f(U):f}):s.jsx(EH,{active:(P==null?void 0:P.columnId)===U.id&&P.index===0,disabled:!!F&&!M.allowed,children:typeof f=="function"?f(U):f}):null,K.map((L,z)=>{const Y=n(L),B=N===Y;return s.jsxs(m.Fragment,{children:[s.jsx("div",{className:we("h-2 rounded-full transition",(P==null?void 0:P.columnId)===U.id&&P.index===z?"bg-primary/70":"bg-transparent"),onDragOver:Q=>$(Q,U.id,z),onDrop:Q=>O(Q,U.id,z)}),s.jsx("div",{draggable:!y&&!!(a||l),onMouseDown:Q=>{R.current=Q.target},onDragStart:Q=>{const J=R.current;if(J!=null&&J.closest(sc)){Q.preventDefault();return}V(Q,L,Y)},onDragEnd:W,onContextMenu:Q=>{if(!u)return;const J=Q.target;J!=null&&J.closest(sc)||u(L,Q)},className:we("transition",!y&&(a||l)?"cursor-grab active:cursor-grabbing":"",B?"scale-[0.98] opacity-50":""),children:o(L,{dragging:B})})]},Y)}),K.length>0&&!y?s.jsx("div",{className:we("mt-1 rounded-md border border-dashed px-3 py-2 text-center text-xs text-muted-foreground transition",(P==null?void 0:P.columnId)===U.id&&P.index===K.length?"border-primary/50 bg-primary/10 text-foreground":"border-border/60",F&&!M.allowed?"opacity-40":""),children:"Drop here to place at the end"}):null]})]},U.id)})})]})}function EH({active:e,disabled:t,children:n}){return s.jsx("div",{className:we("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 Co="border-status-pending-foreground/30 bg-status-pending text-status-pending-foreground",Kl="border-status-in-progress-foreground/30 bg-status-in-progress text-status-in-progress-foreground",WA="border-status-blocked-foreground/30 bg-status-blocked text-status-blocked-foreground",Xb="border-status-review-foreground/30 bg-status-review text-status-review-foreground",KA="border-status-completed-foreground/30 bg-status-completed text-status-completed-foreground",qA="border-status-failed-foreground/30 bg-status-failed text-status-failed-foreground",GA="border-status-archived-foreground/30 bg-status-archived text-status-archived-foreground",Xp=Co,TH={draft:Co,pending:Co,ready_for_planning:Co,ready_to_implement:Kl,in_progress:Kl,blocked:WA,review:Xb,code_review:Xb,completed:KA,failed:qA,active:Kl,stopped:Co,archived:GA};function RH(e){return TH[e]??Xp}const AH={slate:Xp,gray:Xp,grey:Xp};function YA(e){return e.replace(/_/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function PH(e){let t=e.trim().replace(/^#/,"");return t.length===3&&(t=t.split("").map(n=>n+n).join("")),t.length!==6||/[^0-9a-fA-F]/.test(t)?null:{r:parseInt(t.slice(0,2),16),g:parseInt(t.slice(2,4),16),b:parseInt(t.slice(4,6),16)}}function _H(e,t){const n=t==null?void 0:t.trim();if(n)if(n.startsWith("#")){const r=PH(n);if(r){const{r:o,g:i,b:a}=r;return{className:"",style:{backgroundColor:`rgba(${o}, ${i}, ${a}, 0.15)`,borderColor:`rgba(${o}, ${i}, ${a}, 0.4)`,color:n}}}}else{const r=AH[n.toLowerCase()];if(r)return{className:r}}return{className:RH(e)}}function xd(e,t){const n=e.find(i=>i.id===t),{className:r,style:o}=_H(t,n==null?void 0:n.color);return{label:(n==null?void 0:n.label)??YA(t),className:r,style:o,iconName:n==null?void 0:n.icon}}function Qb(e){return e?!!e.terminal||e.id==="completed"||e.id==="failed":!1}function XA(e){const t=new Map(e.statuses.map(a=>[a.id,a])),n=e.order.length>0?e.order:e.statuses.map(a=>a.id),r=new Set,o=[],i=(a,l)=>{r.has(a)||(r.add(a),o.push({id:a,label:(l==null?void 0:l.label)??YA(a),terminal:Qb(l??{id:a})}))};for(const a of n)i(a,t.get(a));for(const a of e.statuses)i(a.id,a);return o}const QA={draft:{label:"Draft",description:"Just-created stub; not yet shaped.",className:Co,icon:vc},pending:{label:"Pending",description:"Waiting to start or waiting on dependencies.",className:Co,icon:u4},ready_for_planning:{label:"Ready for Planning",description:"Objective and acceptance criteria written; awaiting a plan.",className:Co,icon:g2},ready_to_implement:{label:"Ready to Implement",description:"Plan written and approved; ready to start coding.",className:Kl,icon:$4},in_progress:{label:"In Progress",description:"Actively being worked on.",className:Kl,icon:Yv},blocked:{label:"Blocked",description:"Blocked by an explicit obstacle that needs intervention.",className:WA,icon:uh},review:{label:"Review",description:"Ready for inspection or approval.",className:Xb,icon:O4},completed:{label:"Completed",description:"Finished successfully.",className:KA,icon:im},failed:{label:"Failed",description:"Could not be completed as planned.",className:qA,icon:uh},active:{label:"Active",description:"The project has active or review work in flight.",className:Kl,icon:kb},stopped:{label:"Stopped",description:"Session ended without completing.",className:Co,icon:l4},archived:{label:"Archived",description:"Hidden from normal views; restorable from the Archive page.",className:GA,icon:kb}},JA="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)]";function Jb(e){var t;return((t=QA[e])==null?void 0:t.icon)??kb}function jn({status:e,className:t,showIcon:n=!0,progress:r}){var y;const o=As(),i=xd(o.statuses,e),a=Jb(e),l=i.label,u=((y=o.statuses.find(k=>k.id===e))==null?void 0:y.description)??Gd(e),f=r&&r.total>0,p=f?Math.min(1,Math.max(0,r.checked/r.total)):0,h=f?`${l} — ${u} (${r.checked}/${r.total} criteria)`:`${l} — ${u}`,g=n?f?s.jsxs("span",{className:"relative inline-flex h-3.5 w-3.5 shrink-0 items-center justify-center",children:[s.jsxs("svg",{"aria-hidden":"true",viewBox:"0 0 16 16",className:"absolute inset-0 h-full w-full -rotate-90",children:[s.jsx("circle",{cx:"8",cy:"8",r:"7",fill:"none",stroke:"currentColor",strokeOpacity:"0.25",strokeWidth:"1.5"}),s.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-p)})]}),s.jsx(a,{className:"h-2.5 w-2.5"})]}):s.jsx(a,{className:"h-3.5 w-3.5 shrink-0"}):null;return s.jsxs("span",{title:h,className:we(JA,i.className,t),style:i.style,children:[g,s.jsx("span",{className:"min-w-0 truncate",children:l})]})}function Gd(e){var t;return((t=QA[e])==null?void 0:t.description)??`Status: ${e}`}function Pa({type:e,className:t,compact:n=!1}){const r=Od();if(!e)return null;const o=Nz(r,e),i=(o==null?void 0:o.label)??e.replace(/_/g," ").replace(/\b\w/g,l=>l.toUpperCase()),a=o!=null&&o.color?{backgroundColor:`color-mix(in oklch, ${o.color} 18%, transparent)`,borderColor:`color-mix(in oklch, ${o.color} 50%, transparent)`,color:o.color}:void 0;return s.jsx("span",{title:(o==null?void 0:o.description)??`Type: ${i}`,style:a,className:we("inline-flex items-center whitespace-nowrap rounded-full border text-xs capitalize",n?"px-2 py-0.5":"px-2.5 py-1",!a&&"border-border/60 text-muted-foreground",t),children:i})}async function Yd(e){if(navigator.clipboard&&typeof navigator.clipboard.writeText=="function")try{return await navigator.clipboard.writeText(e),!0}catch{}return DH(e)}function DH(e){try{const t=document.createElement("textarea");t.value=e,t.setAttribute("readonly",""),t.style.position="fixed",t.style.top="0",t.style.left="0",t.style.opacity="0",t.style.pointerEvents="none",document.body.appendChild(t),t.select(),t.setSelectionRange(0,t.value.length);const n=document.execCommand("copy");return document.body.removeChild(t),n}catch{return!1}}function kr({value:e,label:t,disabled:n=!1,disabledReason:r,onError:o}){const[i,a]=m.useState(!1);async function l(){n||(await Yd(e)?(a(!0),setTimeout(()=>a(!1),1500)):o==null||o(new Error("Copy to clipboard failed in this context.")))}return n?s.jsx("button",{type:"button",disabled:!0,"aria-disabled":"true",className:"cursor-not-allowed text-muted-foreground/50",title:r??"Copy unavailable","aria-label":t??"Copy",children:s.jsx(dh,{className:"h-3 w-3","aria-hidden":"true"})}):s.jsx("button",{type:"button",onClick:l,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:i?"Copied!":t??`Copy: ${e}`,"aria-label":t??"Copy",children:i?s.jsx(Sr,{className:"h-3 w-3 text-status-completed-foreground","aria-hidden":"true"}):s.jsx(dh,{className:"h-3 w-3","aria-hidden":"true"})})}function $H(e){return e.projectSlug===null?`/assignments/${e.id}`:`${e.projectWorkspace?`/w/${e.projectWorkspace}`:""}/projects/${e.projectSlug}/assignments/${e.slug}`}function IH({items:e,statusOrder:t,sortField:n,sortDirection:r,listSectionVisibility:o,compact:i=!1}){const a=As(),[l,u]=m.useState(()=>new Set(o.collapsed));m.useEffect(()=>{u(new Set(o.collapsed))},[o]);const f=p=>{u(h=>{const g=new Set(h);return g.has(p)?g.delete(p):g.add(p),g})};return s.jsx("div",{className:we("space-y-2",i?"space-y-1.5":"space-y-3"),children:t.map(p=>{const h=qd(e.filter(k=>k.status===p),n,r);if(h.length===0)return null;const g=!l.has(p),y=To(a,p);return s.jsxs("div",{className:"rounded-lg border border-border/60 bg-card/90",children:[s.jsxs("button",{type:"button",onClick:()=>f(p),className:we("flex w-full items-center gap-2 text-left",i?"px-3 py-2 text-xs":"px-4 py-3 text-sm"),children:[s.jsx(nr,{className:we("text-muted-foreground transition-transform",i?"h-3.5 w-3.5":"h-4 w-4",g?"":"-rotate-90")}),s.jsx("span",{className:"font-semibold text-foreground",children:y}),s.jsx("span",{className:we("rounded-full border border-border/60 text-muted-foreground",i?"px-1.5 py-0 text-[10px]":"px-2 py-0.5 text-xs"),children:h.length})]}),g&&s.jsx("ul",{className:we("divide-y divide-border/40 border-t border-border/40",i?"text-xs":"text-sm"),children:h.map(k=>{const v=$H(k);return s.jsx("li",{children:s.jsxs($e,{to:v,className:we("flex items-center gap-3 hover:bg-muted/40",i?"px-3 py-1.5":"px-4 py-2.5"),children:[s.jsx("span",{className:"min-w-0 flex-1 truncate font-medium text-foreground",children:k.title}),k.projectTitle?s.jsx("span",{className:"hidden truncate text-muted-foreground sm:inline",children:k.projectTitle}):null,s.jsx("span",{className:"shrink-0 text-muted-foreground",children:Yn(k.updated)})]})},`${k.projectSlug??"standalone"}:${k.id}`)})})]},p)})})}function MH(e){return e.projectSlug===null?`/assignments/${e.id}`:`${e.projectWorkspace?`/w/${e.projectWorkspace}`:""}/projects/${e.projectSlug}/assignments/${e.slug}`}function LH({items:e,sortField:t,sortDirection:n,tableColumnVisibility:r,compact:o=!1}){const i=new Set(r.hidden);i.delete("title");const a=p=>!i.has(p),l=qd(e,t,n),u=o?"py-2 pr-3":"py-3 pr-4",f=o?"text-xs":"text-sm";return s.jsx("div",{className:"overflow-x-auto",children:s.jsxs("table",{className:we("w-full text-left",f),children:[s.jsx("thead",{children:s.jsxs("tr",{className:"border-b border-border/60 text-muted-foreground",children:[a("title")?s.jsx("th",{className:we("font-medium",u),children:"Assignment"}):null,a("status")?s.jsx("th",{className:we("font-medium",u),children:"Status"}):null,a("priority")?s.jsx("th",{className:we("font-medium",u),children:"Priority"}):null,a("assignee")?s.jsx("th",{className:we("font-medium",u),children:"Assignee"}):null,a("dependencies")?s.jsx("th",{className:we("font-medium",u),children:"Dependencies"}):null,a("created")?s.jsx("th",{className:we("font-medium",u),children:"Created"}):null,a("updated")?s.jsx("th",{className:we("font-medium",u),children:"Updated"}):null]})}),s.jsx("tbody",{children:l.map(p=>{const h=MH(p),g=`${p.projectSlug??"standalone"}:${p.id}`;return s.jsxs("tr",{className:"border-b border-border/50 last:border-0",children:[a("title")?s.jsxs("td",{className:u,children:[s.jsx($e,{to:h,className:"font-semibold text-foreground hover:text-primary",children:p.title}),p.projectTitle?s.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground",children:p.projectTitle}):null]}):null,a("status")?s.jsx("td",{className:u,children:s.jsx(jn,{status:p.status,className:"max-w-[150px]"})}):null,a("priority")?s.jsx("td",{className:we("capitalize text-muted-foreground",u),children:p.priority}):null,a("assignee")?s.jsx("td",{className:we("text-muted-foreground",u),children:p.assignee??"Unassigned"}):null,a("dependencies")?s.jsx("td",{className:we("text-muted-foreground",u),children:p.dependsOn.length}):null,a("created")?s.jsx("td",{className:we("text-muted-foreground",u),children:Yn(p.created)}):null,a("updated")?s.jsx("td",{className:we("text-muted-foreground",u),children:Yn(p.updated)}):null]},g)})})]})})}function ZA({view:e,compact:t,emptyDescription:n}){const{data:r,loading:o,error:i}=um(),a=As(),l=m.useMemo(()=>a.order.map(p=>({id:p,title:To(a,p),description:Gd(p)})),[a]),u=m.useMemo(()=>HA(a.factDeclarations),[a.factDeclarations]),f=m.useMemo(()=>{if(!r)return[];const p=e.config.filters.query??Vu(e.config.filters);let h=null;p.trim()!==""&&(h=ec(p,u).query);const g=BA(r.assignments,h,{workspace:e.workspace});return qd(g,e.config.sortField,e.config.sortDirection)},[r,e,u]);if(o&&!r)return s.jsx(bt,{label:"Loading assignments…"});if(i)return s.jsxs("div",{className:"rounded-lg border border-border/60 bg-card/85 px-4 py-3 text-sm",children:[s.jsx("p",{className:"font-medium text-foreground",children:"Couldn't load assignments"}),s.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:i})]});if(f.length===0)return s.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 s.jsx(Bm,{compact:t,dragDisabled:!0,columns:l,items:f,getItemId:p=>p.slug||p.id,getColumnId:p=>p.status,hiddenColumnIds:e.config.kanbanColumnVisibility.hidden,renderCard:p=>t?s.jsx(OH,{item:p}):s.jsx(FH,{item:p})});case"list":return s.jsx(IH,{items:f,statusOrder:a.order,sortField:e.config.sortField,sortDirection:e.config.sortDirection,listSectionVisibility:e.config.listSectionVisibility,compact:t});case"table":return s.jsx(LH,{items:f,sortField:e.config.sortField,sortDirection:e.config.sortDirection,tableColumnVisibility:e.config.tableColumnVisibility,compact:t})}}function OH({item:e}){const t=gd(e);return s.jsxs("div",{className:we("rounded-md border border-border/60 bg-background/85 p-2 shadow-sm"),children:[s.jsxs("div",{className:"flex items-start justify-between gap-2",children:[s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx($e,{to:t,className:"block truncate text-sm font-semibold text-foreground hover:text-primary",children:e.title}),s.jsx("p",{className:"truncate text-xs text-muted-foreground",children:e.projectTitle??"Standalone"})]}),s.jsx(jn,{status:e.status,className:"max-w-[150px]"})]}),s.jsxs("div",{className:"mt-2 flex items-center justify-between gap-2 text-[10px] uppercase tracking-[0.08em] text-muted-foreground",children:[s.jsx("span",{className:"truncate",children:e.assignee??"Unassigned"}),s.jsx("span",{className:"shrink-0",children:Yn(e.updated)})]}),e.id?s.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),s.jsx(kr,{value:e.id})]}):null]})}function FH({item:e}){const t=gd(e);return s.jsxs("div",{className:"rounded-lg border border-border/60 bg-background/85 p-3 shadow-sm",children:[s.jsxs("div",{className:"flex items-start justify-between gap-2",children:[s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx($e,{to:t,className:"block truncate text-sm font-semibold text-foreground hover:text-primary",children:e.title}),s.jsx("p",{className:"truncate text-xs text-muted-foreground",children:e.projectTitle??"Standalone"})]}),s.jsx(jn,{status:e.status,className:"max-w-[150px]"})]}),s.jsxs("div",{className:"mt-2 flex items-center justify-between gap-2",children:[s.jsx(Pa,{type:e.type,compact:!0}),s.jsx("span",{className:"text-xs capitalize text-muted-foreground",children:e.priority})]}),s.jsxs("div",{className:"mt-2 flex items-center justify-between gap-2 text-[11px] text-muted-foreground",children:[s.jsx("span",{className:"truncate",children:e.assignee??"Unassigned"}),s.jsx("span",{className:"shrink-0",children:Yn(e.updated)})]})]})}function zH({viewId:e,onPickAnother:t}){const{view:n,loading:r,error:o,refetch:i}=Ni(e);return r?s.jsx(bt,{label:"Loading view…"}):o?s.jsxs("div",{className:"rounded-lg border border-border/60 bg-card/85 px-4 py-3 text-sm",children:[s.jsx("p",{className:"font-medium text-foreground",children:"Couldn't load view"}),s.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:o.message}),s.jsx("button",{type:"button",onClick:()=>i(),className:"shell-action mt-3",children:"Retry"})]}):n?s.jsx(ZA,{view:n,compact:!0,emptyDescription:"Adjust the view's filters to surface different work, or pick another widget for this slot."}):s.jsxs("div",{className:"rounded-lg border border-border/60 bg-card/85 px-4 py-3 text-sm",children:[s.jsx("p",{className:"font-medium text-foreground",children:"View no longer exists"}),s.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:"The saved view this slot was bound to has been deleted."}),s.jsx("button",{type:"button",onClick:t,className:"shell-action mt-3",children:"Pick another widget"})]})}function eP({sessions:e}){return s.jsxs("aside",{"aria-labelledby":"overview-sessions-title",className:"rounded-xl border border-border/60 bg-background/60 shadow-sm",children:[s.jsx("header",{className:"border-b border-border/40 px-4 py-3",children:s.jsx("h3",{id:"overview-sessions-title",className:"text-sm font-semibold text-foreground",children:"Recent Sessions"})}),e.length===0?s.jsxs("div",{className:"px-4 py-6 text-sm",children:[s.jsx("p",{className:"font-medium text-foreground",children:ha.recentSessionsEmptyTitle}),s.jsx("p",{className:"mt-1 text-muted-foreground",children:ha.recentSessionsEmptyHint})]}):s.jsx("ul",{className:"divide-y divide-border/40",children:e.map(t=>s.jsx("li",{children:s.jsx(BH,{session:t})},t.sessionId))})]})}function BH({session:e}){const t=gn(),[n,r]=m.useState(!1),o=UH(e,t),i=HH(e),a=!e.path;return s.jsxs("div",{className:"flex items-start gap-3 px-4 py-3",children:[s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx($e,{to:o,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}),s.jsxs("p",{className:"text-xs text-muted-foreground",children:[i," · ",Ou(e.started)]}),n&&e.path?s.jsxs("div",{className:"mt-1 space-y-0.5",children:[s.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}),s.jsx("p",{className:"text-[10px] text-muted-foreground",children:ha.recentSessionsCopyFallbackHint})]}):null]}),s.jsx(kr,{value:e.path,label:ha.recentSessionsCopyPathLabel,disabled:a,disabledReason:ha.recentSessionsCopyPathDisabled,onError:()=>r(!0)})]})}function UH(e,t){return e.projectSlug&&e.assignmentSlug?`${t}/projects/${e.projectSlug}/assignments/${e.assignmentSlug}`:(!e.projectSlug&&e.assignmentSlug,"/agent-sessions")}function HH(e){return e.assignmentSlug&&e.projectSlug?`${e.projectSlug}/${e.assignmentSlug}`:e.assignmentSlug?`standalone/${e.assignmentSlug}`:"standalone"}const VH={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 ra(e){if(!e)return 0;const t=Date.parse(e);return Number.isNaN(t)?0:t}function WH(e,t,n=Date.now()){const r=ra(e);if(t.preset){const a=VH[t.preset];return a?t.preset.startsWith("older_")?r<n-a:r>=n-a:!0}const o=t.from?Date.parse(`${t.from}T00:00:00.000Z`):null,i=t.to?Date.parse(`${t.to}T23:59:59.999Z`):null;return!(o!==null&&Number.isFinite(o)&&r<o||i!==null&&Number.isFinite(i)&&r>i)}function KH(e,t,n=Date.now()){const{dateRange:r,project:o,agent:i,sessionStatus:a}=t,l=new Set(o??[]),u=new Set(i??[]),f=new Set(a??[]);return e.filter(p=>{if(r&&!WH(p.started,r,n))return!1;if(l.size>0){const h=p.projectSlug??"__standalone__";if(!l.has(h))return!1}if(u.size>0&&!Array.from(u).some(g=>g.toLowerCase()===p.agent.toLowerCase()))return!1;if(f.size>0){let h=!1;for(const g of f){switch(g){case"active":p.status==="active"&&(h=!0);break;case"ended":(p.status==="completed"||p.status==="stopped")&&(h=!0);break;case"tracked":h=!0;break}if(h)break}if(!h)return!1}return!0})}function qH(e,t,n){return[...e].sort((o,i)=>{let a=0;switch(t){case"started":a=ra(o.started)-ra(i.started);break;case"lastActivity":a=ra(o.updatedAt)-ra(i.updatedAt);break;case"projectName":{const l=o.projectSlug??"",u=i.projectSlug??"";a=l.localeCompare(u);break}case"agentName":a=o.agent.localeCompare(i.agent);break;default:a=ra(o.started)-ra(i.started);break}return n==="asc"?a:-a})}function GH(e,t){return t==null||Number.isNaN(t)||t<=0?e:e.slice(0,t)}function YH({view:e,emptyDescription:t}){const{data:n,loading:r,error:o}=dm(),i=m.useMemo(()=>{if(!n)return[];const a=n.sessions??[],{config:l}=e,u=l.filters,f={dateRange:u.dateRange?{...u.dateRange,field:"started"}:void 0,project:He(u.project),agent:He(u.agent),sessionStatus:He(u.sessionStatus),limit:l.limit};let p=KH(a,f);return p=qH(p,l.sortField,l.sortDirection),p=GH(p,l.limit),p},[n,e]);return r&&!n?s.jsx(bt,{label:"Loading sessions…"}):o?s.jsxs("div",{className:"rounded-lg border border-border/60 bg-card/85 px-4 py-3 text-sm",children:[s.jsx("p",{className:"font-medium text-foreground",children:"Couldn't load sessions"}),s.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:o})]}):i.length===0?s.jsx(Nt,{title:"No sessions match this view.",description:t??"Adjust the view's filters to surface different sessions."}):s.jsx(eP,{sessions:i})}function XH({activeViewId:e,onSelectView:t,onCreateNew:n}){const{views:r,loading:o}=Vd(),[i,a]=m.useState(!1),l=m.useRef(null),u=m.useMemo(()=>r.filter(h=>h.entityType==="session"),[r]);m.useEffect(()=>{if(!i)return;function h(y){l.current&&!l.current.contains(y.target)&&a(!1)}function g(y){y.key==="Escape"&&a(!1)}return document.addEventListener("mousedown",h),document.addEventListener("keydown",g),()=>{document.removeEventListener("mousedown",h),document.removeEventListener("keydown",g)}},[i]);const f=e?r.find(h=>h.id===e)??null:null,p=o?"Session views…":f?f.name:"Session views";return s.jsxs("div",{className:"relative",ref:l,children:[s.jsxs("button",{type:"button",disabled:o,onClick:()=>a(h=>!h),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":i,title:"Session views",children:[s.jsx("span",{className:"max-w-[160px] truncate",children:p}),s.jsx(nr,{className:"h-3.5 w-3.5","aria-hidden":"true"})]}),i&&s.jsxs("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:[s.jsxs("button",{type:"button",onClick:()=>{a(!1),t(null)},className:we("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition hover:bg-foreground/5",!e&&"font-semibold text-foreground"),children:[s.jsx("span",{className:"inline-flex h-4 w-4 shrink-0 items-center justify-center",children:e?null:s.jsx(Sr,{className:"h-3.5 w-3.5","aria-hidden":"true"})}),s.jsx("span",{children:"All sessions"})]}),u.length>0&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"my-1 border-t border-border/40"}),u.map(h=>{const g=h.id===e;return s.jsxs("button",{type:"button",onClick:()=>{a(!1),t(h.id)},className:we("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition hover:bg-foreground/5",g&&"font-semibold text-foreground"),children:[s.jsx("span",{className:"inline-flex h-4 w-4 shrink-0 items-center justify-center",children:g?s.jsx(Sr,{className:"h-3.5 w-3.5","aria-hidden":"true"}):null}),s.jsx("span",{className:"truncate",children:h.name})]},h.id)})]}),s.jsx("div",{className:"my-1 border-t border-border/40"}),s.jsxs("button",{type:"button",onClick:()=>{a(!1),n()},className:"flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition hover:bg-foreground/5 text-muted-foreground",children:[s.jsx(Pt,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":"true"}),s.jsx("span",{children:"Create new view…"})]})]})]})}const QH={__unassigned__:"Unassigned",__standalone__:"No project"};function wn({options:e,value:t,onChange:n,allLabel:r="Any",className:o,disabled:i,ariaLabel:a}){const[l,u]=m.useState(!1),f=m.useRef(null),p=m.useRef(null),h=m.useRef([]),g=m.useMemo(()=>{const S=new Set(e.map(C=>C.value)),N=t.filter(C=>!S.has(C)).map(C=>({value:C,label:QH[C]??C}));return[...e,...N]},[e,t]),y=m.useMemo(()=>new Set(t),[t]);m.useEffect(()=>{if(!l)return;function S(N){f.current&&!f.current.contains(N.target)&&u(!1)}return document.addEventListener("mousedown",S),()=>document.removeEventListener("mousedown",S)},[l]),m.useEffect(()=>{var S;l&&((S=h.current[0])==null||S.focus())},[l]);const k=m.useMemo(()=>{if(t.length===0)return r;if(t.length===1){const S=g.find(N=>N.value===t[0]);return S?S.label:t[0]}return`${t.length} selected`},[t,g,r]);function v(S){n(y.has(S)?t.filter(N=>N!==S):[...t,S])}function b(S){var C;const N=Math.max(0,Math.min(S,g.length-1));(C=h.current[N])==null||C.focus()}function j(S){var T;const N=h.current,C=document.activeElement,P=N.findIndex(R=>R===C);S.key==="ArrowDown"?(S.preventDefault(),b(P<0?0:P+1)):S.key==="ArrowUp"?(S.preventDefault(),b(P<0?g.length-1:P-1)):S.key==="Home"?(S.preventDefault(),b(0)):S.key==="End"?(S.preventDefault(),b(g.length-1)):S.key==="Escape"&&(S.preventDefault(),u(!1),(T=p.current)==null||T.focus())}return s.jsxs("div",{className:"relative",ref:f,children:[s.jsxs("button",{type:"button",ref:p,disabled:i,"aria-haspopup":"menu","aria-expanded":l,"aria-label":a,onClick:()=>u(S=>!S),onKeyDown:S=>{!l&&(S.key==="ArrowDown"||S.key==="ArrowUp")&&(S.preventDefault(),u(!0))},className:we("editor-input inline-flex items-center justify-between gap-1.5 text-left",t.length>0&&"border-foreground/40 text-foreground",o),children:[s.jsx("span",{className:"truncate",children:k}),s.jsx(nr,{className:"h-3.5 w-3.5 shrink-0 opacity-60","aria-hidden":"true"})]}),l?s.jsxs("div",{role:"menu","aria-label":a,onKeyDown:j,className:"absolute left-0 top-full z-30 mt-1 max-h-72 min-w-[200px] overflow-auto rounded-md border border-border/70 bg-background py-1 shadow-lg",children:[s.jsxs("div",{className:"flex items-center justify-between gap-2 px-2 pb-1",children:[s.jsx("button",{type:"button",role:"menuitem",className:"text-xs text-muted-foreground hover:text-foreground disabled:opacity-40",disabled:t.length===g.length,onClick:()=>n(g.map(S=>S.value)),children:"Select all"}),s.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"})]}),g.length===0?s.jsx("p",{className:"px-3 py-1.5 text-xs text-muted-foreground",children:"No options"}):g.map((S,N)=>{const C=y.has(S.value);return s.jsxs("button",{ref:P=>{h.current[N]=P},type:"button",role:"menuitemcheckbox","aria-checked":C,tabIndex:-1,onClick:()=>v(S.value),className:we("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition hover:bg-foreground/5",C?"text-foreground":"text-muted-foreground"),children:[s.jsx("span",{className:we("flex h-4 w-4 shrink-0 items-center justify-center rounded border",C?"border-foreground bg-foreground text-background":"border-border/70"),"aria-hidden":"true",children:C?s.jsx(Sr,{className:"h-3 w-3"}):null}),s.jsx("span",{className:"truncate",children:S.label})]},S.value)})]}):null]})}const ON={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"},JH=["updated","created"];function Um({value:e,onChange:t,className:n,ariaLabel:r="Date range filter"}){const[o,i]=m.useState(!1),a=m.useRef(null),l=(e==null?void 0:e.field)??"updated",u=!!(e&&!e.preset&&(e.from||e.to)),[f,p]=m.useState(u);m.useEffect(()=>p(u),[u]),m.useEffect(()=>{if(!o)return;function j(N){a.current&&!a.current.contains(N.target)&&i(!1)}function S(N){N.key==="Escape"&&i(!1)}return document.addEventListener("mousedown",j),document.addEventListener("keydown",S),()=>{document.removeEventListener("mousedown",j),document.removeEventListener("keydown",S)}},[o]);const h=!!(e&&(e.preset||e.from||e.to)),g=m.useMemo(()=>!h||!e?"Any date":e.preset?`${l}: ${ON[e.preset]??e.preset}`:`${l}: ${e.from||"…"} → ${e.to||"…"}`,[h,e,l]);function y(j){t(e?{...e,field:j}:{field:j,preset:"",from:"",to:""})}function k(j){p(!1),t({field:l,preset:j,from:"",to:""})}function v(){p(!1),t(null)}function b(j,S){const N={field:l,preset:"",from:(e==null?void 0:e.from)??"",to:(e==null?void 0:e.to)??""};t({...N,[j]:S})}return s.jsxs("div",{className:"relative",ref:a,children:[s.jsxs("button",{type:"button","aria-haspopup":"dialog","aria-expanded":o,"aria-label":r,onClick:()=>i(j=>!j),className:we("editor-input inline-flex items-center justify-between gap-1.5 text-left",h&&"border-foreground/40 text-foreground",n),children:[s.jsx("span",{className:"truncate",children:g}),s.jsx(nr,{className:"h-3.5 w-3.5 shrink-0 opacity-60","aria-hidden":"true"})]}),o?s.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:[s.jsx("div",{className:"mb-2 inline-flex rounded-md border border-border/60 bg-background/80 p-0.5",children:JH.map(j=>s.jsx("button",{type:"button","aria-pressed":l===j,onClick:()=>y(j),className:we("rounded-sm px-2.5 py-1 text-xs font-medium capitalize transition",l===j?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"),children:j},j))}),s.jsxs("div",{className:"space-y-0.5",children:[s.jsx(Ey,{label:"Any date",selected:!h,onClick:v}),G6.map(j=>s.jsx(Ey,{label:ON[j],selected:(e==null?void 0:e.preset)===j,onClick:()=>k(j)},j)),s.jsx(Ey,{label:"Custom range…",selected:f,onClick:()=>{p(!0),t({field:l,preset:"",from:(e==null?void 0:e.from)??"",to:(e==null?void 0:e.to)??""})}})]}),f?s.jsxs("div",{className:"mt-2 space-y-1.5 border-t border-border/60 pt-2",children:[s.jsxs("label",{className:"flex items-center justify-between gap-2 text-xs text-muted-foreground",children:["From",s.jsx("input",{type:"date",value:(e==null?void 0:e.from)??"",max:(e==null?void 0:e.to)||void 0,onChange:j=>b("from",j.target.value),className:"editor-input w-40"})]}),s.jsxs("label",{className:"flex items-center justify-between gap-2 text-xs text-muted-foreground",children:["To",s.jsx("input",{type:"date",value:(e==null?void 0:e.to)??"",min:(e==null?void 0:e.from)||void 0,onChange:j=>b("to",j.target.value),className:"editor-input w-40"})]})]}):null]}):null]})}function Ey({label:e,selected:t,onClick:n}){return s.jsxs("button",{type:"button",onClick:n,className:we("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:[s.jsx("span",{children:e}),t?s.jsx(Sr,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":"true"}):null]})}const ZH=new Set(["status","type","priority","assignee","project","tags","activity","dateRange","search","query","sessionStatus","agent"]);function e9(e,t){const n={};for(const[r,o]of Object.entries(e))ZH.has(r)||(n[r]=o);return{...n,...t}}function Rh(e,t,n){return{...e,viewMode:t.viewMode,filters:e9(e.filters,t.filters),sortField:t.sortField,sortDirection:t.sortDirection,limit:t.limit,listSectionVisibility:{collapsed:[...n.listSectionVisibility.collapsed]},kanbanColumnVisibility:{hidden:[...n.kanbanColumnVisibility.hidden]},tableColumnVisibility:{hidden:[...n.tableColumnVisibility.hidden]}}}function t9(e,t){var g,y;const n={},r=He(e.status);r.length&&(n.status=r);const o=He(e.type);o.length&&(n.type=o);const i=He(e.priority);i.length&&(n.priority=i);const a=He(e.assignee);a.length&&(n.assignee=a);const l=He(e.tags);if(l.length&&(n.tags=l),t&&t!=="all")n.project=[t];else{const k=He(e.project);k.length&&(n.project=k)}e.activity&&e.activity!=="all"&&(n.activity=e.activity);const u=He(e.sessionStatus);u.length&&(n.sessionStatus=u);const f=He(e.agent);f.length&&(n.agent=f),e.dateRange&&(n.dateRange=e.dateRange);const p=(g=e.search)==null?void 0:g.trim();p&&(n.search=p);const h=(y=e.query)==null?void 0:y.trim();return h&&(n.query=h),n}function oc(e){const t={viewMode:e.state.viewMode,filters:t9(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 gl={viewMode:"kanban",sortField:"updated",sortDirection:"desc"},yp={sortField:"started",sortDirection:"desc"};function tP(e,t){const{config:n}=oc({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:[]}}}),r={...n};return e.limit!==void 0&&e.limit>0&&(r.limit=e.limit),{workspace:t,config:r}}function Gw(e,t){const{config:n}=oc({name:"",context:{workspace:t,projectSlug:null},state:{viewMode:"list",filters:e.filters,sortField:e.sortField,sortDirection:e.sortDirection,listSectionVisibility:{collapsed:[]},kanbanColumnVisibility:{hidden:[]},tableColumnVisibility:{hidden:[]}}}),r={...n};return e.limit!==void 0&&e.limit>0&&(r.limit=e.limit),{workspace:t,config:r}}function ga(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 r={field:e.field};return t&&(r.from=t),n&&(r.to=n),r}function Hm(e){return e?{field:e.field,preset:e.preset??"",from:e.from??"",to:e.to??""}:null}function nP(e,t){var r,o,i,a,l,u,f,p,h,g,y,k,v,b,j;const{config:n}=e;if((r=t.setViewMode)==null||r.call(t,n.viewMode),(o=t.setStatusFilter)==null||o.call(t,He(n.filters.status)),(i=t.setTypeFilter)==null||i.call(t,He(n.filters.type)),(a=t.setPriorityFilter)==null||a.call(t,He(n.filters.priority)),(l=t.setAssigneeFilter)==null||l.call(t,He(n.filters.assignee)),(u=t.setProjectFilter)==null||u.call(t,He(n.filters.project)),(f=t.setTagsFilter)==null||f.call(t,He(n.filters.tags)),(p=t.setDateRange)==null||p.call(t,Hm(n.filters.dateRange)),(h=t.setSearch)==null||h.call(t,n.filters.search??""),(g=t.setQuery)==null||g.call(t,n.filters.query??Vu(n.filters)),t.setActivityFilter){const S=n.filters.activity??"all";t.setActivityFilter(S==="fresh"||S==="stale"?S:"all")}(y=t.setSortField)==null||y.call(t,n.sortField),(k=t.setSortDirection)==null||k.call(t,n.sortDirection),(v=t.setListSectionVisibility)==null||v.call(t,{collapsed:[...n.listSectionVisibility.collapsed]}),(b=t.setKanbanColumnVisibility)==null||b.call(t,{hidden:[...n.kanbanColumnVisibility.hidden]}),(j=t.setTableColumnVisibility)==null||j.call(t,{hidden:[...n.tableColumnVisibility.hidden]})}function Qp(e){return e?`/w/${e}/views`:"/views"}function rP(e){return`${Qp(e.workspace)}/${encodeURIComponent(e.id)}`}function sP(e){const t=e.workspace?`/w/${e.workspace}`:"",n=He(e.config.filters.project);return n.length===1&&n[0]!=="__standalone__"&&tA(e.config,n[0])?`${t}/projects/${n[0]}?tab=assignments&loadView=${encodeURIComponent(e.id)}`:`${t}/assignments?loadView=${encodeURIComponent(e.id)}`}const n9=["critical","high","medium","low"],r9={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 s9(e){if(e.preset)return`${e.field} ${r9[e.preset]??e.preset}`;const t=e.from??"…",n=e.to??"…";return`${e.field} ${t}→${n}`}function oP(e){var o,i;const t=(o=e.query)==null?void 0:o.trim();if(t&&Wu(t)===null)return`query: ${t}`;const n=[];for(const a of["status","priority","type","assignee","project","tags"]){const l=He(e[a]);l.length&&n.push(`${a}=${l.join(", ")}`)}e.activity&&e.activity!=="all"&&n.push(`activity=${e.activity}`),e.dateRange&&n.push(s9(e.dateRange));const r=(i=e.search)==null?void 0:i.trim();return r&&n.push(`search="${r}"`),n.join(" · ")||"no filters"}const FN=80,o9=["started","lastActivity","projectName","agentName"],i9={started:"Start time",lastActivity:"Last updated",projectName:"Project",agentName:"Agent"},a9=[{value:"active",label:"Active"},{value:"ended",label:"Ended"},{value:"tracked",label:"Tracked"},{value:"untracked",label:"Untracked"}];function iP({open:e,onOpenChange:t,initialView:n,onSubmit:r}){const o=!!n,{data:i}=ro(),{data:a}=dm(),[l,u]=m.useState(""),[f,p]=m.useState([]),[h,g]=m.useState([]),[y,k]=m.useState([]),[v,b]=m.useState(null),[j,S]=m.useState(yp.sortField),[N,C]=m.useState(yp.sortDirection),[P,T]=m.useState(""),[R,I]=m.useState(!1),[_,F]=m.useState(null);function D(){p([]),g([]),k([]),b(null),S(yp.sortField),C(yp.sortDirection),T("")}m.useEffect(()=>{if(e)if(F(null),I(!1),n){const M=n.config.filters;u(n.name),p(He(M.project)),g(He(M.agent)),k(He(M.sessionStatus)),b(Hm(M.dateRange)),S(n.config.sortField),C(n.config.sortDirection),T(n.config.limit!==void 0?String(n.config.limit):"")}else u(""),D()},[e,n]);const W=m.useMemo(()=>[{value:"__standalone__",label:"No project"},...(i??[]).map(H=>({value:H.slug,label:H.title}))],[i]),V=m.useMemo(()=>{const M=new Set;for(const H of(a==null?void 0:a.sessions)??[])H.agent&&M.add(H.agent);return Array.from(M).sort().map(H=>({value:H,label:H}))},[a]),$=l.trim(),O=$.length>0&&$.length<=FN,U=P.trim()===""?void 0:parseInt(P.trim(),10),K=P.trim()===""||Number.isFinite(U)&&U!==void 0&&U>0&&U<=500;return s.jsx(Ln,{open:e,onOpenChange:t,children:s.jsx(Nn,{className:"max-w-lg",children:s.jsxs("form",{className:"space-y-4",onSubmit:async M=>{if(M.preventDefault(),!O||!K||R)return;I(!0),F(null);const H=ga(v),L=H?{...H,field:"started"}:void 0,z={filters:{project:f,agent:h,sessionStatus:y,dateRange:L},sortField:j,sortDirection:N,limit:U};try{await r($,z)}catch(Y){F(Y instanceof Error?Y.message:String(Y)),I(!1)}},children:[s.jsx(or,{children:s.jsx(Sn,{children:o?"Edit session view":"Create session view"})}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("label",{className:"block text-xs font-medium text-muted-foreground",htmlFor:"create-session-view-name",children:"Name"}),s.jsx("input",{id:"create-session-view-name",type:"text",value:l,autoFocus:!0,required:!0,maxLength:FN,onChange:M=>u(M.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"})]}),s.jsxs("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[s.jsx(xl,{label:"Date range (session start)",children:s.jsx(Um,{className:"w-full",value:v,onChange:b})}),s.jsx(xl,{label:"Project",children:s.jsx(wn,{ariaLabel:"Project filter",className:"w-full",allLabel:"All projects",options:W,value:f,onChange:p})}),s.jsx(xl,{label:"Agent",children:s.jsx(wn,{ariaLabel:"Agent filter",className:"w-full",allLabel:"All agents",options:V,value:h,onChange:g})}),s.jsx(xl,{label:"Session status",children:s.jsx(wn,{ariaLabel:"Session status filter",className:"w-full",allLabel:"All statuses",options:a9,value:y,onChange:k})}),s.jsx(xl,{label:"Sort by",className:"sm:col-span-2",children:s.jsxs("div",{className:"flex gap-2",children:[s.jsx("select",{value:j,onChange:M=>S(M.target.value),className:"editor-input w-full",children:o9.map(M=>s.jsx("option",{value:M,children:i9[M]??M},M))}),s.jsx("button",{type:"button",onClick:()=>C(M=>M==="asc"?"desc":"asc"),className:"shell-action shrink-0",title:N==="asc"?"Ascending":"Descending",children:N==="asc"?"Asc":"Desc"})]})}),s.jsxs(xl,{label:"Max results",className:"sm:col-span-2",children:[s.jsx("input",{type:"number",min:1,max:500,value:P,onChange:M=>T(M.target.value),placeholder:"No limit",className:"editor-input w-full"}),K?null:s.jsx("p",{className:"mt-1 text-xs text-error-foreground",children:"Limit must be between 1 and 500"})]})]}),_?s.jsx("p",{className:"text-xs text-error-foreground",role:"alert",children:_}):null,s.jsxs(Wr,{className:"sm:justify-between",children:[s.jsx("button",{type:"button",onClick:D,className:"shell-action",disabled:R,children:"Clear all"}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{type:"button",onClick:()=>t(!1),className:"shell-action",disabled:R,children:"Cancel"}),s.jsx("button",{type:"submit",disabled:!O||!K||R,className:"shell-action shell-action--cta disabled:opacity-50",children:R?"Saving…":o?"Save changes":"Create view"})]})]})]})})})}function xl({label:e,className:t,children:n}){return s.jsxs("label",{className:`space-y-1 ${t??""}`,children:[s.jsx("span",{className:"block text-xs font-medium text-muted-foreground",children:e}),n]})}function Ty({title:e,message:t,onPickAnother:n}){return s.jsxs("div",{className:"rounded-lg border border-border/60 bg-card/85 px-4 py-3 text-sm",children:[s.jsx("p",{className:"font-medium text-foreground",children:e}),s.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:t}),n?s.jsx("button",{type:"button",onClick:n,className:"shell-action mt-3",children:"Pick another widget"}):null]})}function l9({viewId:e,slotId:t,onPickAnother:n}){const{data:r,loading:o,error:i}=dm(),{view:a,loading:l,ready:u}=Ni(e??null),{layout:f}=lA(),{showToast:p}=Qn(),[h,g]=m.useState(!1),y=m.useCallback(async b=>{if(!t)return;const j=f.slots.map(S=>S.id===t?{...S,widget:b?{kind:"agent-sessions",viewId:b}:{kind:"agent-sessions"}}:S);try{await Hb(j)}catch(S){p(S instanceof Error?S.message:"Failed to update widget")}},[f,t,p]);async function k(b,j){const{workspace:S,config:N}=Gw(j,null);try{const P=(await tc({name:b,workspace:S,config:N,entityType:"session"})).views.find(T=>T.name===b&&T.entityType==="session");P&&await y(P.id),g(!1),p(`Created session view "${b}"`)}catch(C){throw p(C instanceof Error?C.message:"Failed to create session view"),C}}let v;return e?l&&!u?v=s.jsx(bt,{label:"Loading view…"}):a?a.entityType!=="session"?v=s.jsx(Ty,{title:"Wrong view type",message:"This widget is bound to an assignment view. Choose a session view above, or pick a different widget.",onPickAnother:n}):v=s.jsx(YH,{view:a,emptyDescription:"Adjust the view's filters to surface different sessions, or pick another widget for this slot."}):v=s.jsx(Ty,{title:"View no longer exists",message:"The saved view this widget was bound to has been deleted. Pick another session view above, or choose a different widget.",onPickAnother:n}):o&&!r?v=s.jsx(bt,{label:"Loading sessions…"}):i?v=s.jsx(Ty,{title:"Couldn't load sessions",message:i}):v=s.jsx(eP,{sessions:(r==null?void 0:r.sessions)??[]}),s.jsxs("div",{className:"space-y-2",children:[t?s.jsx("div",{className:"flex items-center justify-between gap-2",children:s.jsx(XH,{activeViewId:e??null,onSelectView:b=>void y(b),onCreateNew:()=>g(!0)})}):null,v,s.jsx(iP,{open:h,onOpenChange:g,workspace:null,onSubmit:k})]})}const c9=5;function u9(){const{data:e,loading:t,error:n}=Q2();if(t&&!e)return s.jsx(bt,{label:"Loading inventories…"});if(n)return s.jsxs("div",{className:"rounded-lg border border-border/60 bg-card/85 px-4 py-3 text-sm text-muted-foreground",children:[s.jsx("p",{className:"font-medium text-foreground",children:"Couldn't load inventories"}),s.jsx("p",{className:"mt-1 text-xs",children:n})]});const o=((e==null?void 0:e.inventories)??[]).slice(0,c9);return s.jsxs("aside",{"aria-labelledby":"overview-inventories-title",className:"rounded-xl border border-border/60 bg-background/60 shadow-sm",children:[s.jsxs("header",{className:"flex items-center justify-between border-b border-border/40 px-4 py-3",children:[s.jsx("h3",{id:"overview-inventories-title",className:"text-sm font-semibold text-foreground",children:"Inventories"}),s.jsx($e,{to:"/inventories",className:"text-xs text-muted-foreground hover:text-foreground",children:"View all →"})]}),o.length===0?s.jsxs("div",{className:"px-4 py-6 text-sm",children:[s.jsx("p",{className:"font-medium text-foreground",children:"No inventories yet."}),s.jsx("p",{className:"mt-1 text-muted-foreground",children:"Create one to track leased resources across agents."})]}):s.jsx("ul",{className:"divide-y divide-border/40",children:o.map(i=>{const a=i.inventory,l=i.active_leases.length,u=i.members.length,f=a.display_name??a.slug;return s.jsx("li",{children:s.jsxs($e,{to:`/inventories/${encodeURIComponent(a.slug)}`,className:"flex items-center gap-3 px-4 py-2.5 text-sm hover:bg-muted/40",children:[s.jsx("span",{className:"min-w-0 flex-1 truncate font-medium text-foreground",children:f}),s.jsxs("span",{className:"shrink-0 text-xs text-muted-foreground",children:[l,"/",u," leased"]})]})},a.slug)})})]})}function d9(e){let t=0,n=0;for(const r of e.daily)t+=r.total_tokens,n+=r.total_cost;return{tokens:t,cost:n}}function zN({filters:e,metric:t}){const n=e??{},{data:r,loading:o,error:i}=r5(n),a=t==="cost"?"Spend":"Token Usage",l=`/usage?${Rb(n).toString()}`;let u;if(o&&!r)u=s.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading…"});else if(i&&!r)u=s.jsxs("div",{className:"text-sm",children:[s.jsx("p",{className:"font-medium text-foreground",children:"Couldn't load usage"}),s.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:i})]});else if(!r||r.daily.length===0)u=s.jsx("p",{className:"text-sm text-muted-foreground",children:"No usage for these filters."});else{const{tokens:f,cost:p}=d9(r),h=t==="cost"?{label:"Total spend",value:Zl(p)}:{label:"Total tokens",value:Jl(f)},g=t==="cost"?{label:"Tokens",value:Jl(f)}:{label:"Spend",value:Zl(p)};u=s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsx(BN,{label:h.label,value:h.value,emphasize:!0}),s.jsx(BN,{label:g.label,value:g.value})]})}return s.jsxs("aside",{className:"rounded-xl border border-border/60 bg-background/60 shadow-sm",children:[s.jsxs("header",{className:"flex items-center justify-between gap-2 border-b border-border/40 px-4 py-3",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsx("h3",{className:"text-sm font-semibold text-foreground",children:a}),s.jsx("p",{className:"truncate text-xs text-muted-foreground",title:L1(n),children:L1(n)})]}),s.jsx($e,{to:l,className:"shrink-0 text-xs text-muted-foreground hover:text-foreground",children:"View all →"})]}),s.jsx("div",{className:"px-4 py-4",children:u})]})}function BN({label:e,value:t,emphasize:n}){return s.jsxs("div",{className:"space-y-0.5",children:[s.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:e}),s.jsx("p",{className:n?"text-2xl font-semibold tabular-nums text-foreground":"text-lg font-semibold tabular-nums text-foreground",children:t})]})}const f9={"7d":"7 days","30d":"30 days","90d":"90 days",all:"All time",custom:"Custom"};function p9(e){return e.kind==="token-usage"||e.kind==="spend"?e.filters??{}:{}}const yl="bg-background border border-border rounded px-2 py-1 text-sm text-foreground";function UN({config:e,open:t,onSave:n,onCancel:r}){const o=e.kind==="spend"?"Configure Spend":"Configure Token Usage",{data:i}=ro(),{data:a}=Ta(),{data:l}=J2(t),[u,f]=m.useState("30d"),[p,h]=m.useState(""),[g,y]=m.useState(""),[k,v]=m.useState(""),[b,j]=m.useState(""),[S,N]=m.useState(""),[C,P]=m.useState(""),[T,R]=m.useState(!1),[I,_]=m.useState(null);m.useEffect(()=>{if(!t)return;const O=p9(e);f(O.window??"30d"),h(O.since??""),y(O.until??""),v(O.project??""),j(O.workspace??""),N(O.model??""),P(O.tool??""),R(!1),_(null)},[t,e]);function F(){return Ld({window:u,since:u==="custom"?p:void 0,until:u==="custom"?g:void 0,project:k||void 0,workspace:b||void 0,model:S||void 0,tool:C||void 0})}async function D(O){if(O.preventDefault(),T)return;const U=F(),K=KO(U);if(!K.ok){_(K.errors.join("; "));return}R(!0),_(null);const M=e.kind==="token-usage"?{kind:"token-usage",filters:U}:e.kind==="spend"?{kind:"spend",filters:U}:e;try{await n(M)}catch(H){_(H instanceof Error?H.message:String(H)),R(!1)}}const W=(i==null?void 0:i.map(O=>O.slug))??[],V=(a==null?void 0:a.workspaces)??[],$=(a==null?void 0:a.hasUngrouped)??!1;return s.jsx(Ln,{open:t,onOpenChange:O=>{O||r()},children:s.jsx(Nn,{className:"max-w-md",children:s.jsxs("form",{onSubmit:D,children:[s.jsx(or,{children:s.jsx(Sn,{children:o})}),s.jsxs("div",{className:"space-y-4 py-2",children:[s.jsxs("div",{className:"space-y-1.5",children:[s.jsx("span",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Window"}),s.jsx("div",{className:"flex flex-wrap gap-1.5",children:cm.map(O=>s.jsx("button",{type:"button",onClick:()=>f(O),className:"rounded px-2.5 py-1 text-sm border "+(O===u?"border-primary bg-primary/10 text-foreground":"border-border text-muted-foreground hover:text-foreground"),children:f9[O]},O))})]}),u==="custom"?s.jsxs("div",{className:"flex gap-3",children:[s.jsxs("label",{className:"flex flex-1 flex-col gap-1 text-sm",children:[s.jsx("span",{className:"text-muted-foreground",children:"Since"}),s.jsx("input",{type:"date",value:p,onChange:O=>h(O.target.value),className:yl})]}),s.jsxs("label",{className:"flex flex-1 flex-col gap-1 text-sm",children:[s.jsx("span",{className:"text-muted-foreground",children:"Until"}),s.jsx("input",{type:"date",value:g,onChange:O=>y(O.target.value),className:yl})]})]}):null,s.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[s.jsx("span",{className:"text-muted-foreground",children:"Workspace"}),s.jsxs("select",{value:b,onChange:O=>{j(O.target.value),O.target.value&&v("")},className:yl,children:[s.jsx("option",{value:"",children:"All workspaces"}),$?s.jsx("option",{value:"_ungrouped",children:"(ungrouped)"}):null,V.map(O=>s.jsx("option",{value:O,children:O},O))]})]}),s.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[s.jsx("span",{className:"text-muted-foreground",children:"Project"}),s.jsxs("select",{value:k,onChange:O=>{v(O.target.value),O.target.value&&j("")},className:yl,children:[s.jsx("option",{value:"",children:"All projects"}),W.map(O=>s.jsx("option",{value:O,children:O},O))]})]}),s.jsxs("div",{className:"flex gap-3",children:[s.jsxs("label",{className:"flex flex-1 flex-col gap-1 text-sm",children:[s.jsx("span",{className:"text-muted-foreground",children:"Model"}),s.jsxs("select",{value:S,onChange:O=>N(O.target.value),className:yl,children:[s.jsx("option",{value:"",children:"All models"}),((l==null?void 0:l.models)??[]).map(O=>s.jsx("option",{value:O,children:O},O))]})]}),s.jsxs("label",{className:"flex flex-1 flex-col gap-1 text-sm",children:[s.jsx("span",{className:"text-muted-foreground",children:"Tool"}),s.jsxs("select",{value:C,onChange:O=>P(O.target.value),className:yl,children:[s.jsx("option",{value:"",children:"All tools"}),((l==null?void 0:l.tools)??[]).map(O=>s.jsx("option",{value:O,children:O},O))]})]})]}),I?s.jsx("p",{className:"text-xs text-destructive",role:"alert",children:I}):null]}),s.jsxs(Wr,{className:"sm:justify-between",children:[s.jsx("button",{type:"button",onClick:r,disabled:T,className:"shell-action",children:"Cancel"}),s.jsx("button",{type:"submit",disabled:T,className:"shell-action shell-action--cta",children:T?"Saving…":"Save"})]})]})})})}const Yw={"saved-view":{title:"Saved view",icon:b2,render:(e,t)=>e.kind!=="saved-view"?null:m.createElement(zH,{viewId:e.viewId,onPickAnother:t.onPickAnother})},"agent-sessions":{title:"Agent sessions",icon:nm,render:(e,t)=>e.kind!=="agent-sessions"?null:m.createElement(l9,{viewId:e.viewId,slotId:t.slotId,onPickAnother:t.onPickAnother})},inventories:{title:"Inventories",icon:Vv,render:()=>m.createElement(u9)},"token-usage":{title:"Token Usage",icon:N4,render:e=>e.kind!=="token-usage"?null:m.createElement(zN,{filters:e.filters,metric:"tokens"}),ConfigEditor:UN},spend:{title:"Spend",icon:am,render:e=>e.kind!=="spend"?null:m.createElement(zN,{filters:e.filters,metric:"cost"}),ConfigEditor:UN}},aP=50,Zb=16,h9=2,da=6,Ah=11,ev={w:6,h:2};function Jp(e,t,n){return Math.min(Math.max(e,t),n)}const m9=[{minWidth:1280,columns:24},{minWidth:1024,columns:16},{minWidth:768,columns:12},{minWidth:640,columns:6},{minWidth:0,columns:1}];function g9(e){if(!Number.isFinite(e)||e<0)return 1;for(const t of m9)if(e>=t.minWidth)return t.columns;return 1}function Zp(e,t){return t<=0?1:Jp(Math.round(e/pd*t),1,t)}function tv(e){if(S7(e))return e;switch(e){case"small":return{w:8,h:da};case"wide":return{w:16,h:da};case"tall":return{w:8,h:Ah};case"large":return{w:16,h:Ah};default:return{w:8,h:da}}}function x9(e,t){return t>0?Math.round(e/t):0}function y9(e,t=aP){return Math.round(e/t)}const b9=[{label:"Third",w:8,h:da},{label:"Half",w:12,h:da},{label:"Two-thirds",w:16,h:da},{label:"Full",w:24,h:da},{label:"Half tall",w:12,h:Ah},{label:"Full tall",w:24,h:Ah}];function v9({slot:e,activeColumns:t,colWidthPx:n,onReplace:r,onRemove:o,onRemoveSlot:i,onResize:a,onConfigChange:l}){const[u,f]=m.useState(!1),[p,h]=m.useState(null),g=m.useRef(null),{attributes:y,listeners:k,setNodeRef:v,setActivatorNodeRef:b,transform:j,transition:S,isDragging:N}=Pm({id:e.id}),C=tv(e.size),P=p?p.renderW:Zp(C.w,t),T=p?p.h:C.h,R={transform:js.Translate.toString(j),transition:S,zIndex:N?50:void 0,position:N?"relative":void 0,gridColumn:`span ${P}`,gridRow:`span ${T}`};function I(U){g.current=null;try{U.currentTarget.releasePointerCapture(U.pointerId)}catch{}h(null)}function _(U){return{onPointerDown:K=>{if(g.current)return;K.preventDefault(),K.stopPropagation(),K.currentTarget.setPointerCapture(K.pointerId);const M=Zp(C.w,t);g.current={pointerId:K.pointerId,startX:K.clientX,startY:K.clientY,startRenderW:M,startH:C.h,axis:U,lastRenderW:M,lastH:C.h},h({renderW:M,h:C.h})},onPointerMove:K=>{const M=g.current;if(!M||K.pointerId!==M.pointerId)return;let H=M.startRenderW,L=M.startH;(M.axis==="w"||M.axis==="both")&&(H=Jp(M.startRenderW+x9(K.clientX-M.startX,n),1,t)),(M.axis==="h"||M.axis==="both")&&(L=Jp(M.startH+y9(K.clientY-M.startY),h9,eA)),M.lastRenderW=H,M.lastH=L,h({renderW:H,h:L})},onPointerUp:K=>{const M=g.current;if(!M||K.pointerId!==M.pointerId)return;const H=tv(e.size),z={w:M.axis==="h"?H.w:Jp(Math.round(M.lastRenderW/t*pd),1,pd),h:M.lastH};I(K),(z.w!==H.w||z.h!==H.h)&&a(z)},onPointerCancel:K=>{const M=g.current;M&&K.pointerId===M.pointerId&&I(K)},onLostPointerCapture:K=>{const M=g.current;M&&K.pointerId===M.pointerId&&I(K)}}}const F="absolute z-10 touch-none rounded-sm bg-transparent transition hover:bg-primary/30",D=s.jsxs(s.Fragment,{children:[t>1?s.jsx("div",{"aria-hidden":"true",className:we(F,"right-0 top-0 h-full w-1.5 cursor-ew-resize"),..._("w")}):null,s.jsx("div",{"aria-hidden":"true",className:we(F,"bottom-0 left-0 h-1.5 w-full cursor-ns-resize"),..._("h")}),t>1?s.jsx("div",{"aria-hidden":"true",className:we(F,"bottom-0 right-0 h-3 w-3 cursor-nwse-resize"),..._("both")}):null]}),W=s.jsx("button",{ref:b,...y,...k,type:"button","aria-label":"Drag to reorder widget",className:"touch-none cursor-grab text-muted-foreground/40 transition hover:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 active:cursor-grabbing",children:s.jsx(bc,{className:"h-4 w-4","aria-hidden":"true"})});if(e.widget===null)return s.jsxs("div",{ref:v,style:{...R,gridColumn:`span ${Zp(ev.w,t)}`,gridRow:`span ${ev.h}`},className:we("relative flex items-center justify-center rounded-lg border border-dashed border-border bg-card/40 p-3 shadow-sm transition-colors hover:border-primary/40 hover:bg-card/60",N&&"opacity-0"),children:[s.jsx("div",{className:"absolute left-2 top-2",children:W}),s.jsx("button",{type:"button","aria-label":"Remove slot",onClick:i,onPointerDown:U=>U.stopPropagation(),className:"absolute right-2 top-2 z-10 text-muted-foreground/50 transition hover:text-destructive",children:s.jsx(mn,{className:"h-4 w-4"})}),s.jsxs("button",{type:"button",onClick:r,className:"shell-action inline-flex items-center gap-2",children:[s.jsx(Pt,{className:"h-4 w-4"}),"Add widget"]})]});const V=Yw[e.widget.kind];if(!V)return s.jsxs("div",{ref:v,style:R,className:we("relative overflow-auto rounded-lg border border-border/60 bg-card/85 p-3 shadow-sm",N&&"opacity-0"),children:[s.jsxs("div",{className:"flex items-start gap-2",children:[W,s.jsxs("div",{className:"flex-1 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]})]}),D]});const $=V.icon,O=V.ConfigEditor;return s.jsxs("div",{ref:v,style:R,className:we("relative overflow-auto rounded-lg border border-border/60 bg-card/85 p-3 shadow-sm",N&&"opacity-0"),children:[s.jsxs("header",{className:"mb-2 flex items-center justify-between gap-2",children:[s.jsxs("div",{className:"flex min-w-0 items-center gap-2 text-xs uppercase tracking-[0.12em] text-muted-foreground",children:[W,s.jsx($,{className:"h-3.5 w-3.5","aria-hidden":"true"}),s.jsx("span",{className:"truncate",children:s.jsx(j9,{slot:e,fallback:V.title})})]}),s.jsx(Kw,{items:[{key:"replace",label:"Replace…",icon:I4,onSelect:r},...V.ConfigEditor?[{key:"configure",label:"Configure…",icon:B4,onSelect:()=>f(!0)}]:[],{key:"size",label:"Size",icon:v2,submenu:b9.map(U=>({key:`size-${U.label}`,label:U.label,active:C.w===U.w&&C.h===U.h,onSelect:()=>a({w:U.w,h:U.h})}))},{key:"remove",label:"Remove",icon:mn,destructive:!0,onSelect:o}]})]}),s.jsx("div",{children:V.render(e.widget,{slotId:e.id,onPickAnother:r})}),O?s.jsx(O,{config:e.widget,open:u,onSave:async U=>{await l(U),f(!1)},onCancel:()=>f(!1)}):null,D]})}function w9({slot:e,activeColumns:t,colWidthPx:n}){const r=e.widget?Yw[e.widget.kind]:null,o=r==null?void 0:r.icon,i=e.widget===null?"Empty widget slot":(r==null?void 0:r.title)??`Unknown widget kind: ${e.widget.kind}`,a=e.widget===null?ev:tv(e.size),l=Zp(a.w,t),u=n>0?l*n+(l-1)*Zb:void 0;return s.jsx("div",{"aria-hidden":"true",className:"min-w-[200px] rounded-lg border border-border/70 bg-card/95 p-3 shadow-xl ring-1 ring-foreground/10",style:{width:u?`${Math.max(u,200)}px`:void 0},children:s.jsxs("div",{className:"flex items-center gap-2 text-xs uppercase tracking-[0.12em] text-muted-foreground",children:[s.jsx(bc,{className:"h-4 w-4","aria-hidden":"true"}),o?s.jsx(o,{className:"h-3.5 w-3.5","aria-hidden":"true"}):null,s.jsx("span",{className:"min-w-0 flex-1 truncate",children:i})]})})}function j9({slot:e,fallback:t}){var o,i;const n=((o=e.widget)==null?void 0:o.kind)==="saved-view"?e.widget.viewId:null,{view:r}=Ni(n);return((i=e.widget)==null?void 0:i.kind)==="saved-view"&&r?s.jsx(s.Fragment,{children:r.name}):s.jsx(s.Fragment,{children:t})}const k9=["agent-sessions","inventories","token-usage","spend"];function N9({open:e,onOpenChange:t,onSelect:n}){const{views:r,loading:o}=Vd();function i(a){n(a),t(!1)}return s.jsx(Ln,{open:e,onOpenChange:t,children:s.jsxs(Nn,{className:"max-w-xl",children:[s.jsxs(or,{children:[s.jsx(Sn,{children:"Add a widget"}),s.jsx(ns,{children:"Choose a built-in widget, an assignment view, or a session view."})]}),s.jsxs("section",{className:"space-y-2",children:[s.jsx("h3",{className:"text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground",children:"Built-in widgets"}),s.jsx("ul",{className:"divide-y divide-border/40 rounded-md border border-border/60",children:k9.map(a=>{const l=Yw[a],u=l.icon;return s.jsx("li",{children:s.jsxs("button",{type:"button",onClick:()=>i({kind:a}),className:"flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm hover:bg-muted/40",children:[s.jsx(u,{className:"h-4 w-4 text-muted-foreground","aria-hidden":"true"}),s.jsx("span",{className:"font-medium text-foreground",children:l.title})]})},a)})})]}),s.jsxs("section",{className:"space-y-2",children:[s.jsx("h3",{className:"text-xs font-semibold uppercase tracking-[0.12em] text-muted-foreground",children:"Saved views"}),o?s.jsx("div",{className:"rounded-md border border-border/60 px-3 py-4 text-sm text-muted-foreground",children:"Loading saved views…"}):r.length===0?s.jsxs("div",{className:"rounded-md border border-border/60 px-3 py-4 text-sm",children:[s.jsx("p",{className:"font-medium text-foreground",children:"No saved views yet"}),s.jsxs("p",{className:"mt-1 text-xs text-muted-foreground",children:["Save a view from the assignments page first."," ",s.jsx($e,{to:"/views",className:"text-foreground underline hover:opacity-80",children:"Manage views →"})]})]}):s.jsxs("div",{className:"space-y-3",children:[r.some(a=>a.entityType!=="session")&&s.jsxs("div",{children:[s.jsx("h4",{className:"mb-1 px-3 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:"Assignments"}),s.jsx("ul",{className:"divide-y divide-border/40 rounded-md border border-border/60",children:r.filter(a=>a.entityType!=="session").map(a=>s.jsx("li",{children:s.jsxs("button",{type:"button",onClick:()=>i({kind:"saved-view",viewId:a.id}),className:"flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm hover:bg-muted/40",children:[s.jsx("span",{className:"min-w-0 flex-1 truncate font-medium text-foreground",children:a.name}),a.workspace!==null?s.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: ${a.workspace}`,children:a.workspace}):null,s.jsx("span",{className:"shrink-0 rounded-full border border-border/60 px-2 py-0.5 text-[10px] capitalize text-muted-foreground",children:a.config.viewMode})]})},a.id))})]}),r.some(a=>a.entityType==="session")&&s.jsxs("div",{children:[s.jsx("h4",{className:"mb-1 px-3 text-[10px] font-semibold uppercase tracking-wider text-muted-foreground",children:"Sessions"}),s.jsx("ul",{className:"divide-y divide-border/40 rounded-md border border-border/60",children:r.filter(a=>a.entityType==="session").map(a=>s.jsx("li",{children:s.jsxs("button",{type:"button",onClick:()=>i({kind:"agent-sessions",viewId:a.id}),className:"flex w-full items-center gap-3 px-3 py-2.5 text-left text-sm hover:bg-muted/40",children:[s.jsx("span",{className:"min-w-0 flex-1 truncate font-medium text-foreground",children:a.name}),a.workspace!==null?s.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: ${a.workspace}`,children:a.workspace}):null]})},a.id))})]})]}),!o&&r.some(a=>a.workspace!==null)?s.jsx("p",{className:"text-[11px] text-muted-foreground",children:"Workspace-scoped views on the global Overview will only show items from that workspace."}):null]})]})})}const S9=(e,{currentCoordinates:t,context:n})=>{var h;const r=e.code==="ArrowRight"||e.code==="ArrowDown"?1:e.code==="ArrowLeft"||e.code==="ArrowUp"?-1:0;if(r===0)return;e.preventDefault();const o=n.over??n.active,i=(h=o==null?void 0:o.data.current)==null?void 0:h.sortable,a=i==null?void 0:i.items;if(!o||!a)return t;const l=a.indexOf(o.id);if(l===-1)return t;const u=a[l+r],f=u===void 0?null:n.droppableRects.get(u),p=n.collisionRect;return!f||!p?t:{x:f.left+(f.width-p.width)/2,y:f.top+(f.height-p.height)/2}};function C9(e){const t=new Set(e.map(o=>o.id));let n=-1;for(const o of t){const i=/^slot-(\d+)$/.exec(o);if(i){const a=parseInt(i[1],10);a>n&&(n=a)}}let r=n+1;for(;t.has(`slot-${r}`);)r++;return`slot-${r}`}function E9(e,t){const n={id:C9(e),widget:null};return[...e,n]}function T9(e,t){return e.filter(n=>n.id!==t)}function R9(){const{data:e,error:t,refetch:n}=YO(),{data:r}=G2(),{layout:o}=lA(),[i,a]=m.useState(!1),[l,u]=m.useState(null),[f,p]=m.useState(null),[h,g]=m.useState(o.slots),[y,k]=m.useState(null),v=m.useRef(null),[b,j]=m.useState(pd),[S,N]=m.useState(0);m.useEffect(()=>{const K=v.current;if(!K)return;const M=new ResizeObserver(H=>{for(const L of H){const z=L.contentRect.width,Y=g9(z),B=Y>0?(z-(Y-1)*Zb)/Y:0;j(Y),N(B)}});return M.observe(K),()=>M.disconnect()},[]),m.useEffect(()=>{g(o.slots)},[o.slots]);const C=Nm(ki(Tc,{activationConstraint:{distance:8}}),ki(Ec,{coordinateGetter:S9}));Pi("list:overview"),en({keys:"r",description:"Refresh",scope:"list:overview",handler:()=>{n()}});const P=m.useCallback(K=>{u(K),a(!0)},[]),T=m.useCallback(async(K,M)=>{p(null),g(K);try{await Hb(K)}catch(H){g(M),p(H instanceof Error?H.message:String(H))}},[]),R=m.useCallback(K=>{if(l===null)return;const M=h.map((H,L)=>L===l?{...H,widget:K}:H);u(null),T(M,h)},[h,l,T]),I=m.useCallback(K=>{const M=h.map((H,L)=>L===K?{...H,widget:null,size:void 0}:H);T(M,h)},[h,T]),_=m.useCallback(K=>{const M=T9(h,K);T(M,h)},[h,T]),F=m.useCallback(()=>{const K=E9(h);T(K,h)},[h,T]),D=m.useCallback((K,M)=>{const H=h.map((L,z)=>z===K?{...L,size:M}:L);T(H,h)},[h,T]),W=m.useCallback(K=>{const{active:M,over:H}=K;if(k(null),!H||M.id===H.id)return;const L=h.findIndex(B=>B.id===M.id),z=h.findIndex(B=>B.id===H.id);if(L===-1||z===-1)return;const Y=Rc(h,L,z);T(Y,h)},[h,T]),V=m.useCallback(K=>{k(String(K.active.id))},[]),$=h.find(K=>K.id===y)??null,O=m.useCallback(async(K,M)=>{const H=h,L=h.map((z,Y)=>Y===K?{...z,widget:M}:z);p(null),g(L);try{await Hb(L)}catch(z){g(H);const Y=z instanceof Error?z.message:String(z);throw p(Y),z instanceof Error?z:new Error(Y)}},[h]),U={};if(e)for(const K of Object.keys(e.segments))for(const M of e.segments[K].items)U[M.id]=M;return s.jsxs("div",{className:"space-y-6",children:[s.jsxs("header",{className:"space-y-2",children:[s.jsx("p",{className:"eyebrow",children:"Workspace Overview"}),s.jsx("h1",{className:"text-4xl font-semibold tracking-display text-foreground md:text-5xl",children:"What needs you today"})]}),e?s.jsx(k7,{hero:e.hero,itemsById:U}):t?s.jsx(Rt,{error:t,onRetry:n}):s.jsx(bt,{label:"Loading overview…"}),e!=null&&e.firstRun?s.jsx(w7,{help:r}):null,f?s.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: ",f]}):null,s.jsxs(Rm,{sensors:C,collisionDetection:Sm,onDragStart:V,onDragCancel:()=>k(null),onDragEnd:W,children:[s.jsx(Am,{items:h.map(K=>K.id),strategy:_w,children:s.jsx("div",{ref:v,style:{display:"grid",gridTemplateColumns:`repeat(${b}, minmax(0, 1fr))`,gridAutoRows:`${aP}px`,gridAutoFlow:"dense",gap:`${Zb}px`},children:h.map((K,M)=>s.jsx(v9,{slot:K,index:M,activeColumns:b,colWidthPx:S,onReplace:()=>P(M),onRemove:()=>I(M),onRemoveSlot:()=>_(K.id),onResize:H=>D(M,H),onConfigChange:H=>O(M,H)},K.id))})}),s.jsx(a7,{dropAnimation:null,children:$?s.jsx(w9,{slot:$,activeColumns:b,colWidthPx:S}):null})]}),s.jsxs("button",{type:"button",onClick:F,className:"shell-action inline-flex items-center gap-2",children:[s.jsx(Pt,{className:"h-4 w-4"}),"Add slot"]}),e!=null&&e.serverStats?s.jsxs("p",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[s.jsx(Xv,{className:"h-3 w-3","aria-hidden":"true"}),s.jsxs("span",{children:["● ",e.serverStats.totalPorts," ports ·"," ",e.serverStats.deadSessions>0?`${e.serverStats.deadSessions} dead`:"all healthy"]})]}):null,s.jsx(N9,{open:i,onOpenChange:K=>{a(K),K||u(null)},onSelect:R})]})}const A9=["review","blocked","question","plan-approval"],P9={review:"Review",blocked:"Blocked",question:"Questions","plan-approval":"Plan approval"};function _9(e){const t=[];for(const n of A9){const r=e.filter(o=>o.category===n).sort((o,i)=>i.ageMs-o.ageMs);r.length!==0&&t.push({category:n,label:P9[n],count:r.length,items:r})}return t}function D9(e){if(!Number.isFinite(e)||e<0)return"just now";const t=Math.floor(e/1e3);if(t<60)return"just now";const n=Math.floor(t/60);if(n<60)return`${n}m`;const r=Math.floor(n/60);return r<24?`${r}h`:`${Math.floor(r/24)}d`}function lP(e,t){const n=encodeURIComponent(t);return e.project===null?{method:"POST",url:`/api/assignments/${encodeURIComponent(e.assignmentId)}/transitions/${n}`}:{method:"POST",url:`/api/projects/${encodeURIComponent(e.project)}/assignments/${encodeURIComponent(e.assignmentSlug)}/transitions/${n}`}}function $9(e){return e.project===null?{method:"POST",url:`/api/assignments/${encodeURIComponent(e.assignmentId)}/comments`}:{method:"POST",url:`/api/projects/${encodeURIComponent(e.project)}/assignments/${encodeURIComponent(e.assignmentSlug)}/comments`}}function I9(e,t){const n=encodeURIComponent(t);return e.project===null?{method:"PATCH",url:`/api/assignments/${encodeURIComponent(e.assignmentId)}/comments/${n}/resolved`}:{method:"PATCH",url:`/api/projects/${encodeURIComponent(e.project)}/assignments/${encodeURIComponent(e.assignmentSlug)}/comments/${n}/resolved`}}function Xw(e,t){const n=t?`?tab=${t}`:"";return e.project===null?`/assignments/${encodeURIComponent(e.assignmentId)}${n}`:`/projects/${encodeURIComponent(e.project)}/assignments/${encodeURIComponent(e.assignmentSlug)}${n}`}function M9(){const{items:e,total:t,loading:n,error:r,refetch:o}=rR(),{toast:i,showToast:a,dismissToast:l}=Qn();if(n&&e.length===0)return s.jsx(bt,{label:"Loading your inbox…"});if(r&&e.length===0)return s.jsx(Rt,{title:"Inbox unavailable",error:r,action:s.jsx("button",{type:"button",className:"shell-action",onClick:o,children:"Retry"})});const u=_9(e);return u.length===0?s.jsxs("div",{className:"space-y-4",children:[s.jsx(Xn,{toast:i,onDismiss:l}),s.jsx(HN,{total:0}),s.jsx(Nt,{title:"Nothing needs you right now",description:"No reviews, blocks, open questions, or plans awaiting approval across your projects. New items appear here the moment something needs a human decision."})]}):s.jsxs("div",{className:"space-y-5",children:[s.jsx(Xn,{toast:i,onDismiss:l}),s.jsx(HN,{total:t}),u.map(f=>s.jsx(We,{title:f.label,actions:s.jsx("span",{className:"rounded-full bg-foreground px-2.5 py-0.5 text-xs font-semibold text-background",children:f.count}),children:s.jsx("ul",{className:"space-y-3",children:f.items.map(p=>s.jsx(L9,{item:p,onMutated:o,onError:h=>a(h,"error"),onSuccess:h=>a(h,"success")},`${p.category}:${p.assignmentId}:${p.since}`))})},f.category))]})}function HN({total:e}){return s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsx("span",{className:"inline-flex h-9 w-9 items-center justify-center rounded-lg bg-card text-foreground shadow-sm ring-1 ring-border/60",children:s.jsx(y2,{className:"h-4 w-4"})}),s.jsxs("div",{children:[s.jsx("h1",{className:"text-lg font-semibold text-foreground",children:"Needs me"}),s.jsx("p",{className:"text-sm text-muted-foreground",children:e===0?"Everything is handled.":`${e} ${e===1?"item":"items"} awaiting your decision.`})]})]})}async function Ph(e,t,n,r){try{const o=await fetch(e.url,{method:e.method,headers:{"Content-Type":"application/json"},body:JSON.stringify(t??{})});if(!o.ok){const i=await o.json().catch(()=>null);throw new Error((i==null?void 0:i.error)||`HTTP ${o.status}`)}return n.onSuccess(r),n.onMutated(),!0}catch(o){return n.onError(o instanceof Error?o.message:String(o)),!1}}function L9({item:e,onMutated:t,onError:n,onSuccess:r}){return s.jsxs("li",{className:"flex flex-col gap-2 rounded-lg border border-border/70 bg-background/40 p-3",children:[s.jsxs("div",{className:"flex flex-wrap items-baseline gap-x-2 gap-y-1",children:[s.jsx($e,{to:Xw(e),className:"text-sm font-semibold text-foreground hover:underline",children:e.title}),s.jsx("span",{className:"text-xs text-muted-foreground",children:e.project?e.project:"standalone"}),s.jsx("span",{className:"ml-auto text-xs text-muted-foreground",title:e.since,children:D9(e.ageMs)})]}),e.summary?s.jsx("p",{className:"text-sm text-muted-foreground",children:e.summary}):null,s.jsx(O9,{item:e,onMutated:t,onError:n,onSuccess:r}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("code",{className:"min-w-0 flex-1 truncate rounded bg-muted/60 px-2 py-1 font-mono text-[11px] text-muted-foreground",children:e.action.command}),s.jsx(kr,{value:e.action.command,label:"Copy",onError:o=>n(o.message)})]})]})}function O9(e){switch(e.item.category){case"review":return s.jsx(F9,{...e});case"blocked":return s.jsx(z9,{...e});case"question":return s.jsx(B9,{...e});case"plan-approval":return s.jsx(U9,{...e});default:return null}}const xa="shell-action inline-flex items-center gap-1.5";function F9({item:e,onMutated:t,onError:n,onSuccess:r}){const[o,i]=m.useState(null),{acceptCommand:a,reopenCommand:l}=e;async function u(f,p){i(f),await Ph(lP(e,f),void 0,{onMutated:t,onError:n,onSuccess:r},`${p} — ${e.title}`),i(null)}return s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[a?s.jsxs("button",{type:"button",className:xa,disabled:o!==null,onClick:()=>u(a,"Accepted"),children:[s.jsx(Sr,{className:"h-3.5 w-3.5"}),o===a?"Accepting…":"Accept"]}):null,l?s.jsxs("button",{type:"button",className:xa,disabled:o!==null,onClick:()=>u(l,"Reopened"),children:[s.jsx(vs,{className:"h-3.5 w-3.5"}),o===l?"Reopening…":"Reopen"]}):null]})}function z9({item:e,onMutated:t,onError:n,onSuccess:r}){const[o,i]=m.useState(""),[a,l]=m.useState(!1);async function u(){l(!0);const f=await Ph(lP(e,"unblock"),o.trim()?{reason:o.trim()}:void 0,{onMutated:t,onError:n,onSuccess:r},`Unblocked — ${e.title}`);l(!1),f&&i("")}return s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsx("input",{type:"text",value:o,onChange:f=>i(f.target.value),placeholder:"Reason (optional)",className:"min-w-[12rem] flex-1 rounded border border-border bg-background px-2 py-1 text-sm"}),s.jsxs("button",{type:"button",className:xa,disabled:a,onClick:u,children:[s.jsx(P4,{className:"h-3.5 w-3.5"}),a?"Unblocking…":"Unblock"]})]})}function B9({item:e,onMutated:t,onError:n,onSuccess:r}){const[o,i]=m.useState(""),[a,l]=m.useState(!1),u=e.commentId;async function f(){if(!o.trim())return;l(!0);const h=await Ph($9(e),{body:o.trim(),type:"note",author:"human",...u?{replyTo:u}:{}},{onMutated:t,onError:n,onSuccess:r},`Replied — ${e.title}`);l(!1),h&&i("")}async function p(){if(!u){n("Could not determine which question to resolve — open the assignment to resolve it.");return}l(!0),await Ph({...I9(e,u)},{resolved:!0},{onMutated:t,onError:n,onSuccess:r},`Resolved — ${e.title}`),l(!1)}return s.jsxs("div",{className:"space-y-2",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsxs($e,{to:Xw(e,"comments"),className:xa,children:[s.jsx(om,{className:"h-3.5 w-3.5"}),"Open to answer"]}),s.jsxs("button",{type:"button",className:xa,disabled:a||!u,title:u?void 0:"Open the assignment to resolve this question.",onClick:p,children:[s.jsx(im,{className:"h-3.5 w-3.5"}),"Resolve"]})]}),s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsx("input",{type:"text",value:o,onChange:h=>i(h.target.value),placeholder:"Reply inline…",className:"min-w-[12rem] flex-1 rounded border border-border bg-background px-2 py-1 text-sm"}),s.jsxs("button",{type:"button",className:xa,disabled:a||!o.trim(),onClick:f,children:[s.jsx(m2,{className:"h-3.5 w-3.5"}),a?"Posting…":"Reply"]})]})]})}function U9({item:e}){return s.jsx("div",{className:"flex flex-wrap items-center gap-2",children:s.jsxs($e,{to:Xw(e,"plan"),className:xa,children:[s.jsx(om,{className:"h-3.5 w-3.5"}),"Review plan"]})})}function H9({term:e,description:t}){return s.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 V9(){const{data:e,loading:t,error:n}=G2(),{openCheatsheet:r}=Ai();return t?s.jsx(bt,{label:"Loading help…"}):n||!e?s.jsx(Rt,{error:n||"Help content is unavailable."}):s.jsxs("div",{className:"space-y-5",children:[s.jsx(We,{title:"Keyboard Shortcuts",description:"Navigate the dashboard without reaching for the mouse.",children:s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsx("button",{type:"button",onClick:r,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"}),s.jsxs("span",{className:"text-xs text-muted-foreground",children:["or press ",s.jsx("kbd",{className:"rounded border border-border/70 bg-muted px-1.5 py-0.5 font-mono text-[11px]",children:"?"})," ","anywhere. ",Zs("Mod+k")," opens the command palette."]})]})}),s.jsx(We,{title:"What Syntaur Is",description:e.whatIsSyntaur.summary,children:s.jsx("div",{className:"grid gap-3 md:grid-cols-3",children:e.whatIsSyntaur.bullets.map(o=>s.jsx("div",{className:"rounded-md border border-border/60 bg-background/80 p-3 text-sm leading-6 text-muted-foreground",children:o},o))})}),s.jsx(We,{title:"Getting Started",children:s.jsx("div",{className:"space-y-3",children:e.workflow.map((o,i)=>s.jsx("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:s.jsxs("div",{className:"flex items-start gap-3",children:[s.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}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("h3",{className:"font-semibold text-foreground",children:o.title}),s.jsx("p",{className:"text-sm leading-6 text-muted-foreground",children:o.detail}),o.command?s.jsx(Gp,{command:o.command.command,description:o.command.description,example:o.command.example}):null,o.href?s.jsx($e,{className:"inline-flex text-sm font-semibold text-primary hover:underline",to:o.href,children:"Open the related surface"}):null]})]})},o.title))})}),s.jsxs("div",{className:"grid gap-3 xl:grid-cols-2",children:[s.jsxs(We,{title:"Core Concepts",children:[s.jsx("div",{className:"flex flex-wrap gap-2",children:e.coreConcepts.map(o=>s.jsx(H9,{term:o.term,description:o.description},o.term))}),s.jsx("div",{className:"grid gap-3 pt-2",children:e.coreConcepts.map(o=>s.jsxs("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:[s.jsx("h3",{className:"font-semibold text-foreground",children:o.term}),s.jsx("p",{className:"mt-2 text-sm leading-6 text-muted-foreground",children:o.description})]},o.term))})]}),s.jsx(We,{title:"Status Guide",children:s.jsx("div",{className:"space-y-3",children:e.statusGuide.map(o=>s.jsxs("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsx(jn,{status:o.status}),s.jsx("p",{className:"font-semibold text-foreground",children:o.meaning})]}),s.jsx("p",{className:"mt-3 text-sm leading-6 text-muted-foreground",children:o.useWhen})]},o.status))})})]}),s.jsxs("div",{className:"grid gap-3 xl:grid-cols-2",children:[s.jsx(We,{title:"Ownership And File Rules",children:s.jsx("div",{className:"space-y-3",children:e.ownershipRules.map(o=>s.jsxs("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:[s.jsx("h3",{className:"font-semibold text-foreground",children:o.label}),s.jsx("p",{className:"mt-2 text-sm leading-6 text-muted-foreground",children:o.description}),s.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:o.files.map(i=>s.jsx("span",{className:"rounded-full border border-border/60 bg-card/90 px-2.5 py-1 font-mono text-xs text-foreground",children:i},i))})]},o.label))})}),s.jsx(We,{title:"How To Navigate The Dashboard",children:s.jsx("div",{className:"space-y-3",children:e.navigation.map(o=>s.jsxs("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:[s.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[s.jsx("h3",{className:"font-semibold text-foreground",children:o.label}),s.jsx($e,{className:"text-sm font-semibold text-primary hover:underline",to:o.href,children:"Open"})]}),s.jsx("p",{className:"mt-2 text-sm leading-6 text-muted-foreground",children:o.description})]},o.label))})})]}),s.jsx(We,{title:"CLI Quick Reference",children:s.jsx("div",{className:"grid gap-3 xl:grid-cols-2",children:e.commands.map(o=>s.jsx(Gp,{command:o.command,description:o.description,example:o.example},o.command))})}),s.jsxs("div",{className:"grid gap-3 xl:grid-cols-2",children:[s.jsx(We,{title:"FAQ",children:s.jsx("div",{className:"space-y-3",children:e.faq.map(o=>s.jsxs("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:[s.jsx("h3",{className:"font-semibold text-foreground",children:o.question}),s.jsx("p",{className:"mt-2 text-sm leading-6 text-muted-foreground",children:o.answer})]},o.question))})}),s.jsx(We,{title:"First Project Checklist",children:s.jsx("div",{className:"space-y-3",children:e.firstProjectChecklist.map((o,i)=>s.jsx("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:s.jsxs("div",{className:"flex items-start gap-3",children:[s.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}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("h3",{className:"font-semibold text-foreground",children:o.title}),s.jsx("p",{className:"text-sm leading-6 text-muted-foreground",children:o.detail}),o.command?s.jsx(Gp,{command:o.command.command,example:o.command.example}):null,o.href?s.jsx($e,{className:"inline-flex text-sm font-semibold text-primary hover:underline",to:o.href,children:"Open the related surface"}):null]})]})},o.title))})})]})]})}function Qw({children:e}){return s.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 Vm=m.forwardRef(({value:e,onChange:t,placeholder:n="Search"},r)=>s.jsxs("label",{className:"relative flex min-w-[220px] flex-1 items-center",children:[s.jsx(Ei,{className:"pointer-events-none absolute left-3 h-4 w-4 text-muted-foreground"}),s.jsx("input",{ref:r,value:e,onChange:o=>t(o.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"})]}));Vm.displayName="SearchInput";function Wm({value:e,options:t,onChange:n}){return s.jsx("div",{className:"inline-flex rounded-md border border-border/60 bg-background/80 p-1",children:t.map(r=>s.jsx("button",{type:"button","aria-pressed":e===r.value,onClick:()=>n(r.value),className:we("rounded-sm px-2.5 py-1.5 text-sm font-medium transition",e===r.value?"bg-foreground text-background":"text-muted-foreground hover:text-foreground"),children:r.label},r.value))})}const W9={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"},VN=["bg-primary","bg-secondary","bg-accent-coral","bg-accent-teal","bg-accent-amber"];function _h({progress:e,className:t,showLegend:n=!1}){const r=As(),i=m.useMemo(()=>{let a=0;const l=Object.keys(e).filter(f=>f!=="total");return(r.order.length>0?[...r.order,...l.filter(f=>!r.order.includes(f))]:l).map(f=>({key:f,className:W9[f]??VN[a++%VN.length]}))},[r.order,e]).filter(a=>(e[a.key]??0)>0);return s.jsxs("div",{className:we("space-y-2",t),children:[s.jsx("div",{className:"flex h-1.5 w-full overflow-hidden rounded-lg border border-border/70 bg-muted/60",children:e.total===0?s.jsx("div",{className:"h-full w-full bg-muted"}):i.map(a=>s.jsx("div",{className:a.className,style:{width:`${(e[a.key]??0)/e.total*100}%`},title:`${hn(a.key)}: ${e[a.key]??0}`},a.key))}),n?i.length>0?s.jsx("div",{className:"flex flex-wrap gap-2 text-xs text-muted-foreground",children:i.map(a=>s.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-border/60 bg-background/80 px-2 py-1",children:[s.jsx("span",{className:we("h-2 w-2 rounded-full",a.className)}),s.jsx("span",{children:hn(a.key)}),s.jsx("span",{className:"font-medium text-foreground",children:e[a.key]??0})]},a.key))}):s.jsx("p",{className:"text-xs text-muted-foreground/70",children:"No assignments yet"}):null]})}const K9=["pending","active","blocked","failed","completed"],Jw=K9,q9=["draft","pending","ready_for_planning","ready_to_implement","in_progress","blocked","review","completed","failed"];function cP(e){return e&&e.length>0?e:[...q9]}function G9(e,t,n){if(t<0||t>=e.length)return e;const r=[...e],[o]=r.splice(t,1),i=t<n?n-1:n;return r.splice(Math.max(0,Math.min(i,r.length)),0,o),r}const Y9=220,bp=8;function uP({anchor:e,items:t,onClose:n}){const r=m.useRef(null),[o,i]=m.useState(null);return m.useLayoutEffect(()=>{if(!e){i(null);return}const a=r.current,l=(a==null?void 0:a.offsetWidth)??Y9,u=(a==null?void 0:a.offsetHeight)??0,f=Math.max(bp,window.innerWidth-l-bp),p=Math.max(bp,window.innerHeight-u-bp);i({left:Math.min(e.x,f),top:Math.min(e.y,p)})},[e]),m.useEffect(()=>{if(!e)return;function a(f){r.current&&!r.current.contains(f.target)&&n()}function l(f){f.key==="Escape"&&n()}function u(){n()}return document.addEventListener("mousedown",a),document.addEventListener("keydown",l),document.addEventListener("contextmenu",a),window.addEventListener("scroll",u,!0),()=>{document.removeEventListener("mousedown",a),document.removeEventListener("keydown",l),document.removeEventListener("contextmenu",a),window.removeEventListener("scroll",u,!0)}},[e,n]),!e||t.length===0?null:s.jsx("div",{ref:r,role:"menu",className:"fixed z-50 min-w-[220px] rounded-md border border-border/70 bg-background py-1 shadow-lg",style:{left:(o==null?void 0:o.left)??e.x,top:(o==null?void 0:o.top)??e.y,visibility:o?"visible":"hidden"},children:s.jsx(ma,{delayDuration:200,children:t.map(a=>{const l=a.icon,u=we("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition",a.disabled?"cursor-not-allowed opacity-50":a.destructive?"text-destructive hover:bg-destructive/10":"hover:bg-foreground/5"),f=s.jsxs(s.Fragment,{children:[l?s.jsx(l,{className:"h-4 w-4 shrink-0"}):null,s.jsx("span",{className:"block min-w-0 truncate",children:a.label})]});if(a.disabled){const p=s.jsx("span",{tabIndex:0,className:"inline-block w-full outline-none focus-visible:ring-1 focus-visible:ring-ring",children:s.jsx("button",{type:"button",disabled:!0,className:u,children:f})});return a.disabledReason?s.jsxs(Fr,{children:[s.jsx(zr,{asChild:!0,children:p}),s.jsx(vr,{side:"left",children:a.disabledReason})]},a.key):s.jsx("div",{children:p},a.key)}return a.href?s.jsx($e,{to:a.href,className:u,onClick:()=>n(),children:f},a.key):s.jsx("button",{type:"button",className:u,onClick:()=>{var p;(p=a.onSelect)==null||p.call(a),n()},children:f},a.key)})})})}const X9="__ungrouped__";function Zw({open:e,onOpenChange:t,currentWorkspace:n,onSubmit:r,title:o="Move to workspace",description:i="Pick the workspace this item should belong to."}){const{data:a,loading:l}=Ta(),[u,f]=m.useState(n),[p,h]=m.useState(!1),[g,y]=m.useState(null);m.useEffect(()=>{e&&(f(n),y(null))},[e,n]);const k=m.useMemo(()=>[...((a==null?void 0:a.workspaces)??[]).map(S=>({key:S,label:S,value:S})),{key:X9,label:"Ungrouped",value:null}],[a]),v=!p&&u!==n;async function b(){if(v){h(!0),y(null);try{await r(u),t(!1)}catch(j){y(j instanceof Error?j.message:"Failed to move item")}finally{h(!1)}}}return s.jsx(Ln,{open:e,onOpenChange:j=>p?void 0:t(j),children:s.jsxs(Nn,{children:[s.jsxs(or,{children:[s.jsx(Sn,{children:o}),s.jsx(ns,{children:i})]}),s.jsx("div",{className:"my-2 max-h-[320px] overflow-y-auto rounded-md border border-border/60",children:l&&k.length===0?s.jsxs("div",{className:"flex items-center gap-2 px-3 py-3 text-sm text-muted-foreground",children:[s.jsx(Yv,{className:"h-4 w-4 animate-spin"})," Loading workspaces…"]}):k.map(j=>{const S=j.value===n,N=j.value===u;return s.jsxs("button",{type:"button",disabled:S||p,onClick:()=>f(j.value),className:we("flex w-full items-center justify-between px-3 py-2 text-left text-sm transition",S?"cursor-not-allowed bg-foreground/5 text-muted-foreground":N?"bg-accent/40 text-foreground":"hover:bg-foreground/5"),children:[s.jsxs("span",{className:we("block min-w-0 truncate",j.value===null?"italic text-muted-foreground":""),children:[j.label,S?s.jsx("span",{className:"ml-2 text-xs",children:"(current)"}):null]}),N?s.jsx(Sr,{className:"h-4 w-4 text-foreground"}):null]},j.key)})}),g?s.jsx("p",{className:"text-sm text-destructive",role:"alert",children:g}):null,s.jsxs(Wr,{children:[s.jsx("button",{type:"button",onClick:()=>t(!1),disabled:p,className:"shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50",children:"Cancel"}),s.jsx("button",{type:"button",onClick:b,disabled:!v,className:"shell-action mt-0 shell-action--cta disabled:cursor-not-allowed disabled:opacity-50",children:p?"Moving…":"Move"})]})]})})}function WN(){const{workspace:e}=Kt(),t=gn(),n=Wt(),{data:r,loading:o,error:i,refetch:a}=ro(),{toast:l,showToast:u,dismissToast:f}=Qn(),p=m.useRef(null);Pi("list:projects");const[h,g]=m.useState(""),[y,k]=m.useState("all"),[v,b]=m.useState("all"),[j,S]=m.useState("updated"),[N,C]=Ts(),P=N.get("view"),T=P==="table"||P==="kanban"?P:"cards",R=z=>{C(Y=>{const B=new URLSearchParams(Y);return z==="cards"?B.delete("view"):B.set("view",z),B})},[I,_]=m.useState({}),[F,D]=m.useState(null),[W,V]=m.useState(null),$=m.useMemo(()=>r?r.filter(z=>{if(e){if(e==="_ungrouped"){if(z.workspace!==null)return!1}else if(z.workspace!==e)return!1}return y!=="all"&&z.status!==y||v!=="all"&&!z.tags.includes(v)?!1:h.trim()?`${z.title} ${z.tags.join(" ")} ${z.slug}`.toLowerCase().includes(h.toLowerCase()):!0}).sort((z,Y)=>J9(z,Y,j)):[],[r,h,y,v,j,e]),O=$.map(z=>`${z.slug}:${z.status}`).join("|");m.useEffect(()=>{_(Z9($))},[O,j]);const U=m.useMemo(()=>{const z=new Map($.map(Y=>[Y.slug,Y]));return Jw.flatMap(Y=>(I[Y]??$.filter(Q=>Q.status===Y).map(Q=>Q.slug)).map(Q=>z.get(Q)).filter(Q=>!!Q))},[$,I]),{visibleItems:K,visibleIndexByKey:M}=m.useMemo(()=>{const z=T==="kanban"?U:$,Y=new Map;return z.forEach((B,Q)=>Y.set(B.slug,Q)),{visibleItems:z,visibleIndexByKey:Y}},[T,$,U]),{hotkeyRowProps:H}=Fd(K,{scope:"list:projects",onOpen:z=>n(`${t}/projects/${z.slug}`)});if(en({keys:"/",scope:"list:projects",description:"Focus filter",handler:()=>{var z;return(z=p.current)==null?void 0:z.focus()}}),en({keys:"r",scope:"list:projects",description:"Refresh",handler:()=>a()}),o)return s.jsx(bt,{label:"Loading projects…"});if(i||!r)return s.jsx(Rt,{error:i||"Project list is unavailable.",onRetry:a});const L=Array.from(new Set(r.flatMap(z=>z.tags))).sort();return s.jsxs("div",{className:"space-y-5",children:[s.jsx(Xn,{toast:l,onDismiss:f}),s.jsxs(Qw,{children:[s.jsx(Vm,{ref:p,value:h,onChange:g,placeholder:"Search by project title or tag"}),s.jsxs("select",{value:y,onChange:z=>k(z.target.value),className:"editor-input max-w-[180px]",children:[s.jsx("option",{value:"all",children:"All statuses"}),s.jsx("option",{value:"pending",children:"Pending"}),s.jsx("option",{value:"active",children:"Active"}),s.jsx("option",{value:"blocked",children:"Blocked"}),s.jsx("option",{value:"failed",children:"Failed"}),s.jsx("option",{value:"completed",children:"Completed"})]}),s.jsxs("select",{value:v,onChange:z=>b(z.target.value),className:"editor-input max-w-[180px]",children:[s.jsx("option",{value:"all",children:"All tags"}),L.map(z=>s.jsx("option",{value:z,children:z},z))]}),s.jsxs("select",{value:j,onChange:z=>S(z.target.value),className:"editor-input max-w-[180px]",children:[s.jsx("option",{value:"updated",children:"Sort: Updated"}),s.jsx("option",{value:"created",children:"Sort: Created"}),s.jsx("option",{value:"title",children:"Sort: Title"}),s.jsx("option",{value:"attention",children:"Sort: Attention"})]}),s.jsx(Wm,{value:T,onChange:z=>R(z),options:[{value:"cards",label:"Cards"},{value:"table",label:"Table"},{value:"kanban",label:"Kanban"}]})]}),$.length===0?r.length===0?s.jsxs("div",{className:"rounded-frame border border-border/60 bg-card px-6 py-16 text-center",children:[s.jsx("p",{className:"eyebrow mx-auto justify-center",children:"Start here"}),s.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"}),s.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."}),s.jsxs("div",{className:"mt-6 flex flex-wrap justify-center gap-3",children:[s.jsx($e,{className:"shell-action shell-action--solid",to:`${t}/create/project`,children:"Create your first project"}),s.jsx($e,{className:"shell-action",to:"/help",children:"Read the spec"})]})]}):s.jsx(Nt,{title:"No projects match these filters",description:"Adjust the current search and filters or create a new project.",actions:s.jsx($e,{className:"shell-action shell-action--solid",to:`${t}/create/project`,children:"Create Project"})}):T==="cards"?s.jsx("div",{className:"grid gap-3 lg:grid-cols-2 2xl:grid-cols-3",children:$.map((z,Y)=>s.jsxs($e,{to:`${t}/projects/${z.slug}`,className:"block rounded-lg border border-border/60 bg-card/90 p-3 shadow-sm transition hover:border-primary/40 hover:shadow-md",...H(Y),children:[s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsx("h2",{className:"text-lg font-semibold text-foreground",children:z.title}),s.jsxs("p",{className:"text-sm text-muted-foreground",children:["Updated ",Yn(z.updated)]})]}),s.jsx(jn,{status:z.status})]}),s.jsxs("div",{className:"mt-4 space-y-3",children:[s.jsx(_h,{progress:z.progress,showLegend:!0}),s.jsx("div",{className:"flex flex-wrap gap-2",children:z.tags.map(B=>s.jsx("span",{className:"rounded-full border border-border/60 bg-background/80 px-2.5 py-1 text-xs text-foreground",children:B},B))}),s.jsxs("div",{className:"grid grid-cols-2 gap-3 text-sm",children:[s.jsxs("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:[s.jsx("p",{className:"text-muted-foreground",children:"Needs attention"}),s.jsx("p",{className:"mt-1 font-semibold text-foreground",children:z.needsAttention.blockedCount+z.needsAttention.failedCount})]}),s.jsxs("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:[s.jsx("p",{className:"text-muted-foreground",children:"Assignments"}),s.jsx("p",{className:"mt-1 font-semibold text-foreground",children:z.progress.total})]})]})]})]},z.slug))}):T==="table"?s.jsx(We,{title:`${$.length} project${$.length===1?"":"s"}`,children:s.jsx("div",{className:"overflow-x-auto",children:s.jsxs("table",{className:"w-full min-w-[760px] text-left text-sm",children:[s.jsx("thead",{children:s.jsxs("tr",{className:"border-b border-border/60 text-muted-foreground",children:[s.jsx("th",{className:"pb-3 font-medium",children:"Project"}),s.jsx("th",{className:"pb-3 font-medium",children:"Status"}),s.jsx("th",{className:"pb-3 font-medium",children:"Progress"}),s.jsx("th",{className:"pb-3 font-medium",children:"Attention"}),s.jsx("th",{className:"pb-3 font-medium",children:"Updated"})]})}),s.jsx("tbody",{children:$.map((z,Y)=>s.jsxs("tr",{className:"border-b border-border/50 last:border-0",...H(Y),children:[s.jsxs("td",{className:"py-4 pr-4",children:[s.jsx($e,{to:`${t}/projects/${z.slug}`,className:"font-semibold text-foreground hover:text-primary",children:z.title}),s.jsx("div",{className:"mt-1 flex flex-wrap gap-2",children:z.tags.map(B=>s.jsx("span",{className:"rounded-full border border-border/60 px-2 py-0.5 text-xs text-muted-foreground",children:B},B))})]}),s.jsx("td",{className:"py-4 pr-4",children:s.jsx(jn,{status:z.status})}),s.jsx("td",{className:"py-4 pr-4",children:s.jsx("div",{className:"min-w-[220px]",children:s.jsx(_h,{progress:z.progress})})}),s.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:z.needsAttention.blockedCount+z.needsAttention.failedCount}),s.jsx("td",{className:"py-4 text-muted-foreground",children:Yn(z.updated)})]},z.slug))})]})})}):s.jsx(Bm,{columns:KN,items:U,getItemId:z=>z.slug,getColumnId:z=>z.status,canDrop:({fromColumnId:z,toColumnId:Y})=>({allowed:!0,reason:z===Y?void 0:"This will set a manual status override on the project."}),onMove:async({item:z,fromColumnId:Y,toColumnId:B,fromIndex:Q,toIndex:J})=>{var Z;if(Y===B){const oe=I[Y]??$.filter(ne=>ne.status===Y).map(ne=>ne.slug);_(ne=>({...ne,[Y]:G9(oe,Q,J)}));return}try{const oe=await fetch(`/api/projects/${z.slug}/status-override`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:B})});if(!oe.ok){const ue=await oe.json().catch(()=>null);u((ue==null?void 0:ue.error)||`HTTP ${oe.status}`,"error");return}a();const ne=((Z=KN.find(ue=>ue.id===B))==null?void 0:Z.title)??B;u(`Moved "${z.title}" to ${ne}`,"success")}catch(oe){u(oe instanceof Error?oe.message:"Failed to move project","error")}},getExternalDragData:z=>({type:"project",id:z.slug}),onCardContextMenu:(z,Y)=>{Y.preventDefault(),D({project:z,anchor:{x:Y.clientX,y:Y.clientY}})},emptyMessage:z=>`No ${z.title.toLowerCase()} projects.`,renderCard:(z,{dragging:Y})=>{const B=M.get(z.slug)??-1;return s.jsx("div",{...B>=0?H(B):{},children:s.jsx(eV,{project:z,dragging:Y})})}}),s.jsx(uP,{anchor:(F==null?void 0:F.anchor)??null,items:F?[{key:"edit",label:"Edit",icon:vc,onSelect:()=>n(`${t}/projects/${F.project.slug}`)},{key:"move",label:"Move to workspace…",icon:sm,onSelect:()=>V(F.project)}]:[],onClose:()=>D(null)}),s.jsx(Zw,{open:W!==null,onOpenChange:z=>{z||V(null)},currentWorkspace:(W==null?void 0:W.workspace)??null,title:"Move project to workspace",onSubmit:async z=>{if(!W)return;const Y=await fetch(`/api/projects/${encodeURIComponent(W.slug)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspace:z})});if(!Y.ok){const B=await Y.json().catch(()=>({}));throw new Error(B.error||"Failed to move project")}a()}}),s.jsx("div",{className:"rounded-lg border border-border/60 bg-card/80 p-3 text-sm text-muted-foreground",children:s.jsxs("div",{className:"flex items-start gap-3",children:[s.jsx(Gv,{className:"mt-0.5 h-4 w-4"}),s.jsxs("p",{children:["Project status is derived from assignment state by default.",T==="kanban"?" Drag projects between columns or use":" Use"," the status override on the project detail page to set a manual status."]})]})})]})}const Q9={pending:"Pending",active:"Active",blocked:"Blocked",failed:"Failed",completed:"Completed"},KN=Jw.map(e=>({id:e,title:Q9[e],description:Gd(e)}));function J9(e,t,n){switch(n){case"created":return t.created.localeCompare(e.created);case"title":return e.title.localeCompare(t.title);case"attention":return qN(t)-qN(e);case"updated":default:return t.updated.localeCompare(e.updated)}}function qN(e){return e.needsAttention.failedCount*10+e.needsAttention.blockedCount*5+e.needsAttention.openQuestions}function Z9(e){return Object.fromEntries(Jw.map(t=>[t,e.filter(n=>n.status===t).map(n=>n.slug)]))}function eV({project:e,dragging:t}){const n=gn();return s.jsxs("div",{className:"rounded-lg border border-border/60 bg-background/85 p-3 shadow-sm",children:[s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsx($e,{to:`${n}/projects/${e.slug}`,className:"text-base font-semibold text-foreground hover:text-primary",children:e.title}),s.jsxs("p",{className:"text-sm text-muted-foreground",children:["Updated ",Yn(e.updated)]})]}),s.jsx(jn,{status:e.status})]}),s.jsx("div",{className:"mt-4",children:s.jsx(_h,{progress:e.progress})}),s.jsxs("div",{className:"mt-4 flex flex-wrap gap-2",children:[e.tags.map(r=>s.jsx("span",{className:"rounded-full border border-border/60 bg-background/80 px-2.5 py-1 text-xs text-foreground",children:r},r)),s.jsxs("span",{className:"rounded-full border border-border/60 px-2.5 py-1 text-xs text-muted-foreground",children:[e.progress.total," assignments"]}),s.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"]})]}),s.jsx("div",{className:"mt-4 text-xs uppercase tracking-[0.08em] text-muted-foreground",children:t?"Reordering within status":"Derived project lane"})]})}function Dh({title:e,description:t,actions:n,className:r}){return s.jsxs("div",{className:we("flex flex-col gap-3 lg:flex-row lg:items-end lg:justify-between",r),children:[s.jsxs("div",{className:"space-y-1",children:[e?s.jsx("h1",{className:"text-xl font-semibold tracking-tight text-foreground sm:text-2xl",children:e}):null,t?s.jsx("p",{className:"max-w-3xl text-sm leading-5 text-muted-foreground",children:t}):null]}),n?s.jsx("div",{className:"flex flex-wrap items-center gap-3",children:n}):null]})}function tV(){return s.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:[s.jsx(rm,{className:"h-3 w-3"}),"Archived"]})}function GN(e){return e.projectSlug?`/projects/${e.projectSlug}/assignments/${e.slug}`:`/assignments/${e.id}`}function nV(){const{data:e,loading:t,error:n,refetch:r}=XO(),[o,i]=m.useState(null),[a,l]=m.useState(null),[u,f]=m.useState({}),{toast:p,showToast:h,dismissToast:g}=Qn();async function y(N,C,P){i(C),l(null);try{const T=await fetch(N,{method:"POST",headers:{"Content-Type":"application/json"}});if(!T.ok){const R=await T.json().catch(()=>null);throw new Error((R==null?void 0:R.error)||`HTTP ${T.status}`)}r(),h(P,"success")}catch(T){l(T instanceof Error?T.message:"Restore failed")}finally{i(null)}}function k(N){return y(`/api/projects/${N.slug}/unarchive`,`project:${N.slug}`,"Project restored")}function v(N){const C=N.projectSlug?`/api/projects/${N.projectSlug}/assignments/${N.slug}/unarchive`:`/api/assignments/${N.id}/unarchive`;return y(C,`assignment:${N.id}`,"Assignment restored")}if(t)return s.jsx(bt,{label:"Loading archived content…"});if(n)return s.jsx(Rt,{error:n});const b=(e==null?void 0:e.projects)??[],j=(e==null?void 0:e.assignments)??[],S=b.length===0&&j.length===0;return s.jsxs("div",{className:"space-y-6",children:[s.jsx(Xn,{toast:p,onDismiss:g}),s.jsx(Dh,{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."}),a?s.jsx("div",{className:"rounded border border-status-failed-foreground/30 bg-status-failed px-3 py-2 text-sm text-status-failed-foreground",children:a}):null,S?s.jsx(Nt,{title:"Nothing archived",description:"Archived projects and assignments will appear here, ready to restore."}):s.jsxs(s.Fragment,{children:[b.length>0&&s.jsx(We,{title:"Archived Projects",description:"Restoring a project unhides every cascade-hidden assignment; individually-archived children stay archived.",children:s.jsx("ul",{className:"divide-y divide-border",children:b.map(N=>{const C=u[N.slug]??!1;return s.jsxs("li",{className:"py-3",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsxs("button",{type:"button",onClick:()=>f(P=>({...P,[N.slug]:!C})),className:"inline-flex items-center gap-1.5 text-left text-sm font-medium text-foreground hover:text-foreground/80","aria-expanded":C,children:[C?s.jsx(nr,{className:"h-4 w-4"}):s.jsx(Wv,{className:"h-4 w-4"}),s.jsx(Kv,{className:"h-4 w-4 text-muted-foreground"}),N.title,s.jsxs("span",{className:"text-xs text-muted-foreground",children:["(",N.assignments.length," assignment",N.assignments.length===1?"":"s",")"]})]}),s.jsxs("span",{className:"text-xs text-muted-foreground",children:["Archived ",N.archivedAt?Cr(N.archivedAt):"with no timestamp",N.archivedReason?` · ${N.archivedReason}`:""]}),s.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[s.jsx($e,{to:`/projects/${N.slug}`,className:"rounded border border-border px-2 py-1 text-xs text-muted-foreground hover:border-foreground/40 hover:text-foreground",children:"Open"}),s.jsxs("button",{type:"button",onClick:()=>k(N),disabled:o===`project:${N.slug}`,className:"inline-flex items-center gap-1.5 rounded border border-border px-2 py-1 text-xs text-muted-foreground hover:border-foreground/40 hover:text-foreground disabled:opacity-50",children:[s.jsx(ah,{className:"h-3 w-3"}),"Restore"]})]})]}),C&&N.assignments.length>0&&s.jsx("ul",{className:"mt-2 space-y-1 pl-9",children:N.assignments.map(P=>s.jsxs("li",{className:"flex flex-wrap items-center gap-2 text-sm",children:[s.jsx($e,{to:GN(P),className:"text-foreground hover:text-foreground/80",children:P.title}),s.jsx(jn,{status:P.status,showIcon:!1}),s.jsx("span",{className:"text-xs text-muted-foreground",children:P.archived?"Archived individually — stays archived after restore":"Hidden via project — returns on restore"})]},P.id))})]},N.slug)})})}),j.length>0&&s.jsx(We,{title:"Archived Assignments",description:"Individually-archived assignments whose project is still active.",children:s.jsx("ul",{className:"divide-y divide-border",children:j.map(N=>s.jsxs("li",{className:"flex flex-wrap items-center gap-3 py-3",children:[s.jsx($e,{to:GN(N),className:"text-sm font-medium text-foreground hover:text-foreground/80",children:N.title}),s.jsx(jn,{status:N.status,showIcon:!1}),s.jsx(tV,{}),s.jsxs("span",{className:"text-xs text-muted-foreground",children:[N.projectTitle??"Standalone"," · Archived"," ",N.archivedAt?Cr(N.archivedAt):"with no timestamp",N.archivedReason?` · ${N.archivedReason}`:""]}),s.jsxs("button",{type:"button",onClick:()=>v(N),disabled:o===`assignment:${N.id}`,className:"ml-auto inline-flex items-center gap-1.5 rounded border border-border px-2 py-1 text-xs text-muted-foreground hover:border-foreground/40 hover:text-foreground disabled:opacity-50",children:[s.jsx(ah,{className:"h-3 w-3"}),"Restore"]})]},N.id))})})]})]})}const YN="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",XN="block min-w-0 truncate";function dP({externalIds:e,className:t}){return e.length===0?null:s.jsx("span",{className:we("flex flex-wrap items-center gap-1.5",t),children:e.map((n,r)=>{const o=`${n.system}:${n.id}`,i=`${n.system}:${n.id}:${r}`;return n.url!=null&&n.url.length>0?s.jsxs("a",{href:n.url??void 0,target:"_blank",rel:"noopener noreferrer",className:we(YN,"transition-colors hover:text-foreground hover:border-foreground/40"),title:`Open ${o} in ${n.system}`,children:[s.jsx("span",{className:XN,children:o}),s.jsx(yc,{className:"h-2.5 w-2.5 shrink-0"})]},i):s.jsx("span",{className:YN,title:o,children:s.jsx("span",{className:XN,children:o})},i)})})}const rV={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 Gn({label:e,value:t,description:n,icon:r,tone:o="default",to:i}){const a=s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"flex items-start justify-between gap-4",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsx("p",{className:"text-xs font-semibold uppercase tracking-[0.1em] text-muted-foreground",children:e}),s.jsx("p",{className:"text-2xl font-semibold text-foreground",children:t})]}),r?s.jsx("span",{className:"rounded-md border border-border/60 bg-background/80 p-1.5 text-muted-foreground",children:s.jsx(r,{className:"h-5 w-5"})}):null]}),n?s.jsx("p",{className:"mt-2 text-sm leading-5 text-muted-foreground",children:n}):null]}),f=we(rV[(t===0||t==="0")&&(o==="warn"||o==="danger")?"default":o],i?"block transition hover:-translate-y-0.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring/40":"");return i?s.jsx($e,{to:i,className:f,children:a}):s.jsx("article",{className:f,children:a})}function QN(e){const t=sV(e),n=m.forwardRef((r,o)=>{const{children:i,...a}=r,l=m.Children.toArray(i),u=l.find(iV);if(u){const f=u.props.children,p=l.map(h=>h===u?m.Children.count(f)>1?m.Children.only(null):m.isValidElement(f)?f.props.children:null:h);return s.jsx(t,{...a,ref:o,children:m.isValidElement(f)?m.cloneElement(f,void 0,p):null})}return s.jsx(t,{...a,ref:o,children:i})});return n.displayName=`${e}.Slot`,n}function sV(e){const t=m.forwardRef((n,r)=>{const{children:o,...i}=n;if(m.isValidElement(o)){const a=lV(o),l=aV(i,o.props);return o.type!==m.Fragment&&(l.ref=r?xm(r,a):a),m.cloneElement(o,l)}return m.Children.count(o)>1?m.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var oV=Symbol("radix.slottable");function iV(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===oV}function aV(e,t){const n={...t};for(const r in t){const o=e[r],i=t[r];/^on[A-Z]/.test(r)?o&&i?n[r]=(...l)=>{const u=i(...l);return o(...l),u}:o&&(n[r]=o):r==="style"?n[r]={...o,...i}:r==="className"&&(n[r]=[o,i].filter(Boolean).join(" "))}return{...e,...n}}function lV(e){var r,o;let t=(r=Object.getOwnPropertyDescriptor(e.props,"ref"))==null?void 0:r.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=(o=Object.getOwnPropertyDescriptor(e,"ref"))==null?void 0:o.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}function cV(e){const t=e+"CollectionProvider",[n,r]=Ra(t),[o,i]=n(t,{collectionRef:{current:null},itemMap:new Map}),a=v=>{const{scope:b,children:j}=v,S=Ot.useRef(null),N=Ot.useRef(new Map).current;return s.jsx(o,{scope:b,itemMap:N,collectionRef:S,children:j})};a.displayName=t;const l=e+"CollectionSlot",u=QN(l),f=Ot.forwardRef((v,b)=>{const{scope:j,children:S}=v,N=i(l,j),C=rr(b,N.collectionRef);return s.jsx(u,{ref:C,children:S})});f.displayName=l;const p=e+"CollectionItemSlot",h="data-radix-collection-item",g=QN(p),y=Ot.forwardRef((v,b)=>{const{scope:j,children:S,...N}=v,C=Ot.useRef(null),P=rr(b,C),T=i(p,j);return Ot.useEffect(()=>(T.itemMap.set(C,{ref:C,...N}),()=>void T.itemMap.delete(C))),s.jsx(g,{[h]:"",ref:P,children:S})});y.displayName=p;function k(v){const b=i(e+"CollectionConsumer",v);return Ot.useCallback(()=>{const S=b.collectionRef.current;if(!S)return[];const N=Array.from(S.querySelectorAll(`[${h}]`));return Array.from(b.itemMap.values()).sort((T,R)=>N.indexOf(T.ref.current)-N.indexOf(R.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:f,ItemSlot:y},k,r]}var uV=m.createContext(void 0);function fP(e){const t=m.useContext(uV);return e||t||"ltr"}var Ry="rovingFocusGroup.onEntryFocus",dV={bubbles:!1,cancelable:!0},Xd="RovingFocusGroup",[nv,pP,fV]=cV(Xd),[pV,hP]=Ra(Xd,[fV]),[hV,mV]=pV(Xd),mP=m.forwardRef((e,t)=>s.jsx(nv.Provider,{scope:e.__scopeRovingFocusGroup,children:s.jsx(nv.Slot,{scope:e.__scopeRovingFocusGroup,children:s.jsx(gV,{...e,ref:t})})}));mP.displayName=Xd;var gV=m.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,orientation:r,loop:o=!1,dir:i,currentTabStopId:a,defaultCurrentTabStopId:l,onCurrentTabStopIdChange:u,onEntryFocus:f,preventScrollOnEntryFocus:p=!1,...h}=e,g=m.useRef(null),y=rr(t,g),k=fP(i),[v,b]=ym({prop:a,defaultProp:l??null,onChange:u,caller:Xd}),[j,S]=m.useState(!1),N=va(f),C=pP(n),P=m.useRef(!1),[T,R]=m.useState(0);return m.useEffect(()=>{const I=g.current;if(I)return I.addEventListener(Ry,N),()=>I.removeEventListener(Ry,N)},[N]),s.jsx(hV,{scope:n,orientation:r,dir:k,loop:o,currentTabStopId:v,onItemFocus:m.useCallback(I=>b(I),[b]),onItemShiftTab:m.useCallback(()=>S(!0),[]),onFocusableItemAdd:m.useCallback(()=>R(I=>I+1),[]),onFocusableItemRemove:m.useCallback(()=>R(I=>I-1),[]),children:s.jsx(kn.div,{tabIndex:j||T===0?-1:0,"data-orientation":r,...h,ref:y,style:{outline:"none",...e.style},onMouseDown:sn(e.onMouseDown,()=>{P.current=!0}),onFocus:sn(e.onFocus,I=>{const _=!P.current;if(I.target===I.currentTarget&&_&&!j){const F=new CustomEvent(Ry,dV);if(I.currentTarget.dispatchEvent(F),!F.defaultPrevented){const D=C().filter(U=>U.focusable),W=D.find(U=>U.active),V=D.find(U=>U.id===v),O=[W,V,...D].filter(Boolean).map(U=>U.ref.current);yP(O,p)}}P.current=!1}),onBlur:sn(e.onBlur,()=>S(!1))})})}),gP="RovingFocusGroupItem",xP=m.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:o=!1,tabStopId:i,children:a,...l}=e,u=Fl(),f=i||u,p=mV(gP,n),h=p.currentTabStopId===f,g=pP(n),{onFocusableItemAdd:y,onFocusableItemRemove:k,currentTabStopId:v}=p;return m.useEffect(()=>{if(r)return y(),()=>k()},[r,y,k]),s.jsx(nv.ItemSlot,{scope:n,id:f,focusable:r,active:o,children:s.jsx(kn.span,{tabIndex:h?0:-1,"data-orientation":p.orientation,...l,ref:t,onMouseDown:sn(e.onMouseDown,b=>{r?p.onItemFocus(f):b.preventDefault()}),onFocus:sn(e.onFocus,()=>p.onItemFocus(f)),onKeyDown:sn(e.onKeyDown,b=>{if(b.key==="Tab"&&b.shiftKey){p.onItemShiftTab();return}if(b.target!==b.currentTarget)return;const j=bV(b,p.orientation,p.dir);if(j!==void 0){if(b.metaKey||b.ctrlKey||b.altKey||b.shiftKey)return;b.preventDefault();let N=g().filter(C=>C.focusable).map(C=>C.ref.current);if(j==="last")N.reverse();else if(j==="prev"||j==="next"){j==="prev"&&N.reverse();const C=N.indexOf(b.currentTarget);N=p.loop?vV(N,C+1):N.slice(C+1)}setTimeout(()=>yP(N))}}),children:typeof a=="function"?a({isCurrentTabStop:h,hasTabStop:v!=null}):a})})});xP.displayName=gP;var xV={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function yV(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function bV(e,t,n){const r=yV(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return xV[r]}function yP(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function vV(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var wV=mP,jV=xP,Km="Tabs",[kV]=Ra(Km,[hP]),bP=hP(),[NV,e0]=kV(Km),vP=m.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:o,defaultValue:i,orientation:a="horizontal",dir:l,activationMode:u="automatic",...f}=e,p=fP(l),[h,g]=ym({prop:r,onChange:o,defaultProp:i??"",caller:Km});return s.jsx(NV,{scope:n,baseId:Fl(),value:h,onValueChange:g,orientation:a,dir:p,activationMode:u,children:s.jsx(kn.div,{dir:p,"data-orientation":a,...f,ref:t})})});vP.displayName=Km;var wP="TabsList",jP=m.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...o}=e,i=e0(wP,n),a=bP(n);return s.jsx(wV,{asChild:!0,...a,orientation:i.orientation,dir:i.dir,loop:r,children:s.jsx(kn.div,{role:"tablist","aria-orientation":i.orientation,...o,ref:t})})});jP.displayName=wP;var kP="TabsTrigger",NP=m.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:o=!1,...i}=e,a=e0(kP,n),l=bP(n),u=EP(a.baseId,r),f=TP(a.baseId,r),p=r===a.value;return s.jsx(jV,{asChild:!0,...l,focusable:!o,active:p,children:s.jsx(kn.button,{type:"button",role:"tab","aria-selected":p,"aria-controls":f,"data-state":p?"active":"inactive","data-disabled":o?"":void 0,disabled:o,id:u,...i,ref:t,onMouseDown:sn(e.onMouseDown,h=>{!o&&h.button===0&&h.ctrlKey===!1?a.onValueChange(r):h.preventDefault()}),onKeyDown:sn(e.onKeyDown,h=>{[" ","Enter"].includes(h.key)&&a.onValueChange(r)}),onFocus:sn(e.onFocus,()=>{const h=a.activationMode!=="manual";!p&&!o&&h&&a.onValueChange(r)})})})});NP.displayName=kP;var SP="TabsContent",CP=m.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:o,children:i,...a}=e,l=e0(SP,n),u=EP(l.baseId,r),f=TP(l.baseId,r),p=r===l.value,h=m.useRef(p);return m.useEffect(()=>{const g=requestAnimationFrame(()=>h.current=!1);return()=>cancelAnimationFrame(g)},[]),s.jsx(Aa,{present:o||p,children:({present:g})=>s.jsx(kn.div,{"data-state":p?"active":"inactive","data-orientation":l.orientation,role:"tabpanel","aria-labelledby":u,hidden:!g,id:f,tabIndex:0,...a,ref:t,style:{...e.style,animationDuration:h.current?"0s":void 0},children:g&&i})})});CP.displayName=SP;function EP(e,t){return`${e}-trigger-${t}`}function TP(e,t){return`${e}-content-${t}`}var RP=vP,AP=jP,rv=NP,sv=CP;function qm({value:e,onValueChange:t,items:n,className:r}){const o=m.useRef(null),[i,a]=m.useState(!1),l=m.useCallback(()=>{const u=o.current;u&&a(u.scrollLeft+u.clientWidth<u.scrollWidth-1)},[]);return m.useEffect(()=>{const u=o.current;if(!u)return;l(),u.addEventListener("scroll",l,{passive:!0});const f=new ResizeObserver(l);return f.observe(u),()=>{u.removeEventListener("scroll",l),f.disconnect()}},[l,n.length]),s.jsxs(RP,{value:e,onValueChange:t,className:r,children:[s.jsxs("div",{className:"relative",children:[s.jsx(AP,{ref:o,className:"flex gap-2 overflow-x-auto rounded-md border border-border/70 bg-card/80 p-1",children:n.map(u=>s.jsxs(rv,{value:u.value,className:we("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:[s.jsx("span",{children:u.label}),typeof u.count=="number"?s.jsx("span",{className:"rounded-full bg-background/20 px-2 py-0.5 text-xs data-[state=active]:bg-background/20",children:u.count}):null,u.problemCount&&u.problemCount>0?s.jsx("span",{className:"rounded-full bg-destructive/15 px-2 py-0.5 text-xs text-destructive","aria-label":`${u.problemCount} ${u.problemCount===1?"error":"errors"}`,title:`${u.problemCount} ${u.problemCount===1?"error":"errors"}`,children:u.problemCount}):null]},u.value))}),i?s.jsx("div",{"aria-hidden":"true",className:"pointer-events-none absolute inset-y-0 right-0 w-8 rounded-r-md bg-gradient-to-l from-card to-transparent"}):null]}),n.map(u=>s.jsx(sv,{value:u.value,className:"pt-3",children:u.content},u.value))]})}const SV="modulepreload",CV=function(e){return"/"+e},JN={},EV=function(t,n,r){let o=Promise.resolve();if(n&&n.length>0){let a=function(f){return Promise.all(f.map(p=>Promise.resolve(p).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),u=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));o=a(n.map(f=>{if(f=CV(f),f in JN)return;JN[f]=!0;const p=f.endsWith(".css"),h=p?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${f}"]${h}`))return;const g=document.createElement("link");if(g.rel=p?"stylesheet":SV,p||(g.as="script"),g.crossOrigin="",g.href=f,u&&g.setAttribute("nonce",u),document.head.appendChild(g),p)return new Promise((y,k)=>{g.addEventListener("load",y),g.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${f}`)))})}))}function i(a){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=a,window.dispatchEvent(l),!l.defaultPrevented)throw a}return o.then(a=>{for(const l of a||[])l.status==="rejected"&&i(l.reason);return t().catch(i)})};function TV({definition:e,className:t,nodeRoutes:n={}}){const r=m.useRef(null),[o,i]=m.useState(null),[a,l]=m.useState(!0),u=Wt(),f=document.documentElement.classList.contains("dark")?"dark":"default";return m.useEffect(()=>{let p=!1;async function h(){if(r.current)try{const g=(await EV(async()=>{const{default:v}=await import("./mermaid.core-y_G2N_4o.js").then(b=>b.bs);return{default:v}},[])).default;if(g.initialize({startOnLoad:!1,theme:"base",themeVariables:RV(f==="dark")}),p)return;const y=`mermaid-${Date.now()}`,{svg:k}=await g.render(y,e);if(p||!r.current)return;r.current.innerHTML=k,AV(r.current,n,u),l(!1)}catch(g){p||(i(g instanceof Error?g.message:"Failed to render graph"),l(!1))}}return l(!0),i(null),h(),()=>{p=!0}},[e,u,n,f]),o?s.jsxs("div",{className:we("rounded-lg border border-border bg-card p-4",t),children:[s.jsxs("p",{className:"text-sm text-error-foreground",children:["Failed to render dependency graph: ",o]}),s.jsx("pre",{className:"mt-2 text-xs text-muted-foreground overflow-auto",children:e})]}):s.jsxs("div",{className:we("rounded-lg border border-border bg-card p-4",t),children:[a&&s.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading graph..."}),s.jsx("div",{ref:r,className:"overflow-auto"})]})}function RV(e){const t=document.documentElement,n=h=>{const g=getComputedStyle(t).getPropertyValue(h).trim();return g?`oklch(${g})`:""},r=n("--card"),o=n("--card-foreground"),i=n("--border"),a=n("--primary"),l=n("--primary-foreground"),u=n("--muted"),f=n("--muted-foreground"),p=n("--secondary");return{background:r,primaryColor:r,primaryTextColor:o,primaryBorderColor:i,secondaryColor:u,secondaryTextColor:o,secondaryBorderColor:i,tertiaryColor:u,tertiaryTextColor:f,tertiaryBorderColor:i,lineColor:e?f:i,textColor:o,mainBkg:r,nodeBkg:r,nodeTextColor:o,nodeBorder:i,clusterBkg:u,clusterBorder:i,edgeLabelBackground:r,titleColor:o,activeTaskBkgColor:a,activeTaskBorderColor:a,altBackground:u,labelColor:o,errorBkgColor:p,errorTextColor:l}}function AV(e,t,n){var r;for(const o of e.querySelectorAll(".node")){const i=((r=o.textContent)==null?void 0:r.replace(/\s+/g," ").trim())??"",a=t[i];if(!a)continue;o.style.cursor="pointer",o.setAttribute("role","link"),o.setAttribute("tabindex","0"),o.setAttribute("aria-label",`Open ${i}`);const l=()=>n(a);o.addEventListener("click",l),o.addEventListener("keydown",u=>{(u.key==="Enter"||u.key===" ")&&(u.preventDefault(),l())})}}function PV(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const _V=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,DV=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,$V={};function ZN(e,t){return($V.jsx?DV:_V).test(e)}const IV=/[ \t\n\f\r]/g;function MV(e){return typeof e=="object"?e.type==="text"?eS(e.value):!1:eS(e)}function eS(e){return e.replace(IV,"")===""}class Qd{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Qd.prototype.normal={};Qd.prototype.property={};Qd.prototype.space=void 0;function PP(e,t){const n={},r={};for(const o of e)Object.assign(n,o.property),Object.assign(r,o.normal);return new Qd(n,r,t)}function ov(e){return e.toLowerCase()}class Er{constructor(t,n){this.attribute=n,this.property=t}}Er.prototype.attribute="";Er.prototype.booleanish=!1;Er.prototype.boolean=!1;Er.prototype.commaOrSpaceSeparated=!1;Er.prototype.commaSeparated=!1;Er.prototype.defined=!1;Er.prototype.mustUseProperty=!1;Er.prototype.number=!1;Er.prototype.overloadedBoolean=!1;Er.prototype.property="";Er.prototype.spaceSeparated=!1;Er.prototype.space=void 0;let LV=0;const kt=_a(),bn=_a(),iv=_a(),Me=_a(),Gt=_a(),ql=_a(),Ir=_a();function _a(){return 2**++LV}const av=Object.freeze(Object.defineProperty({__proto__:null,boolean:kt,booleanish:bn,commaOrSpaceSeparated:Ir,commaSeparated:ql,number:Me,overloadedBoolean:iv,spaceSeparated:Gt},Symbol.toStringTag,{value:"Module"})),Ay=Object.keys(av);class t0 extends Er{constructor(t,n,r,o){let i=-1;if(super(t,n),tS(this,"space",o),typeof r=="number")for(;++i<Ay.length;){const a=Ay[i];tS(this,Ay[i],(r&av[a])===av[a])}}}t0.prototype.defined=!0;function tS(e,t,n){n&&(e[t]=n)}function _c(e){const t={},n={};for(const[r,o]of Object.entries(e.properties)){const i=new t0(r,e.transform(e.attributes||{},r),o,e.space);e.mustUseProperty&&e.mustUseProperty.includes(r)&&(i.mustUseProperty=!0),t[r]=i,n[ov(r)]=r,n[ov(i.attribute)]=r}return new Qd(t,n,e.space)}const _P=_c({properties:{ariaActiveDescendant:null,ariaAtomic:bn,ariaAutoComplete:null,ariaBusy:bn,ariaChecked:bn,ariaColCount:Me,ariaColIndex:Me,ariaColSpan:Me,ariaControls:Gt,ariaCurrent:null,ariaDescribedBy:Gt,ariaDetails:null,ariaDisabled:bn,ariaDropEffect:Gt,ariaErrorMessage:null,ariaExpanded:bn,ariaFlowTo:Gt,ariaGrabbed:bn,ariaHasPopup:null,ariaHidden:bn,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Gt,ariaLevel:Me,ariaLive:null,ariaModal:bn,ariaMultiLine:bn,ariaMultiSelectable:bn,ariaOrientation:null,ariaOwns:Gt,ariaPlaceholder:null,ariaPosInSet:Me,ariaPressed:bn,ariaReadOnly:bn,ariaRelevant:null,ariaRequired:bn,ariaRoleDescription:Gt,ariaRowCount:Me,ariaRowIndex:Me,ariaRowSpan:Me,ariaSelected:bn,ariaSetSize:Me,ariaSort:null,ariaValueMax:Me,ariaValueMin:Me,ariaValueNow:Me,ariaValueText:null,role:null},transform(e,t){return t==="role"?t:"aria-"+t.slice(4).toLowerCase()}});function DP(e,t){return t in e?e[t]:t}function $P(e,t){return DP(e,t.toLowerCase())}const OV=_c({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:ql,acceptCharset:Gt,accessKey:Gt,action:null,allow:null,allowFullScreen:kt,allowPaymentRequest:kt,allowUserMedia:kt,alt:null,as:null,async:kt,autoCapitalize:null,autoComplete:Gt,autoFocus:kt,autoPlay:kt,blocking:Gt,capture:null,charSet:null,checked:kt,cite:null,className:Gt,cols:Me,colSpan:null,content:null,contentEditable:bn,controls:kt,controlsList:Gt,coords:Me|ql,crossOrigin:null,data:null,dateTime:null,decoding:null,default:kt,defer:kt,dir:null,dirName:null,disabled:kt,download:iv,draggable:bn,encType:null,enterKeyHint:null,fetchPriority:null,form:null,formAction:null,formEncType:null,formMethod:null,formNoValidate:kt,formTarget:null,headers:Gt,height:Me,hidden:iv,high:Me,href:null,hrefLang:null,htmlFor:Gt,httpEquiv:Gt,id:null,imageSizes:null,imageSrcSet:null,inert:kt,inputMode:null,integrity:null,is:null,isMap:kt,itemId:null,itemProp:Gt,itemRef:Gt,itemScope:kt,itemType:Gt,kind:null,label:null,lang:null,language:null,list:null,loading:null,loop:kt,low:Me,manifest:null,max:null,maxLength:Me,media:null,method:null,min:null,minLength:Me,multiple:kt,muted:kt,name:null,nonce:null,noModule:kt,noValidate:kt,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:kt,optimum:Me,pattern:null,ping:Gt,placeholder:null,playsInline:kt,popover:null,popoverTarget:null,popoverTargetAction:null,poster:null,preload:null,readOnly:kt,referrerPolicy:null,rel:Gt,required:kt,reversed:kt,rows:Me,rowSpan:Me,sandbox:Gt,scope:null,scoped:kt,seamless:kt,selected:kt,shadowRootClonable:kt,shadowRootDelegatesFocus:kt,shadowRootMode:null,shape:null,size:Me,sizes:null,slot:null,span:Me,spellCheck:bn,src:null,srcDoc:null,srcLang:null,srcSet:null,start:Me,step:null,style:null,tabIndex:Me,target:null,title:null,translate:null,type:null,typeMustMatch:kt,useMap:null,value:bn,width:Me,wrap:null,writingSuggestions:null,align:null,aLink:null,archive:Gt,axis:null,background:null,bgColor:null,border:Me,borderColor:null,bottomMargin:Me,cellPadding:null,cellSpacing:null,char:null,charOff:null,classId:null,clear:null,code:null,codeBase:null,codeType:null,color:null,compact:kt,declare:kt,event:null,face:null,frame:null,frameBorder:null,hSpace:Me,leftMargin:Me,link:null,longDesc:null,lowSrc:null,marginHeight:Me,marginWidth:Me,noResize:kt,noHref:kt,noShade:kt,noWrap:kt,object:null,profile:null,prompt:null,rev:null,rightMargin:Me,rules:null,scheme:null,scrolling:bn,standby:null,summary:null,text:null,topMargin:Me,valueType:null,version:null,vAlign:null,vLink:null,vSpace:Me,allowTransparency:null,autoCorrect:null,autoSave:null,disablePictureInPicture:kt,disableRemotePlayback:kt,prefix:null,property:null,results:Me,security:null,unselectable:null},space:"html",transform:$P}),FV=_c({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:Ir,accentHeight:Me,accumulate:null,additive:null,alignmentBaseline:null,alphabetic:Me,amplitude:Me,arabicForm:null,ascent:Me,attributeName:null,attributeType:null,azimuth:Me,bandwidth:null,baselineShift:null,baseFrequency:null,baseProfile:null,bbox:null,begin:null,bias:Me,by:null,calcMode:null,capHeight:Me,className:Gt,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:Me,diffuseConstant:Me,direction:null,display:null,dur:null,divisor:Me,dominantBaseline:null,download:kt,dx:null,dy:null,edgeMode:null,editable:null,elevation:Me,enableBackground:null,end:null,event:null,exponent:Me,externalResourcesRequired:null,fill:null,fillOpacity:Me,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:ql,g2:ql,glyphName:ql,glyphOrientationHorizontal:null,glyphOrientationVertical:null,glyphRef:null,gradientTransform:null,gradientUnits:null,handler:null,hanging:Me,hatchContentUnits:null,hatchUnits:null,height:null,href:null,hrefLang:null,horizAdvX:Me,horizOriginX:Me,horizOriginY:Me,id:null,ideographic:Me,imageRendering:null,initialVisibility:null,in:null,in2:null,intercept:Me,k:Me,k1:Me,k2:Me,k3:Me,k4:Me,kernelMatrix:Ir,kernelUnitLength:null,keyPoints:null,keySplines:null,keyTimes:null,kerning:null,lang:null,lengthAdjust:null,letterSpacing:null,lightingColor:null,limitingConeAngle:Me,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:Me,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:Me,overlineThickness:Me,paintOrder:null,panose1:null,path:null,pathLength:Me,patternContentUnits:null,patternTransform:null,patternUnits:null,phase:null,ping:Gt,pitch:null,playbackOrder:null,pointerEvents:null,points:null,pointsAtX:Me,pointsAtY:Me,pointsAtZ:Me,preserveAlpha:null,preserveAspectRatio:null,primitiveUnits:null,propagate:null,property:Ir,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Ir,rev:Ir,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Ir,requiredFeatures:Ir,requiredFonts:Ir,requiredFormats:Ir,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:Me,specularExponent:Me,spreadMethod:null,spacing:null,startOffset:null,stdDeviation:null,stemh:null,stemv:null,stitchTiles:null,stopColor:null,stopOpacity:null,strikethroughPosition:Me,strikethroughThickness:Me,string:null,stroke:null,strokeDashArray:Ir,strokeDashOffset:null,strokeLineCap:null,strokeLineJoin:null,strokeMiterLimit:Me,strokeOpacity:Me,strokeWidth:null,style:null,surfaceScale:Me,syncBehavior:null,syncBehaviorDefault:null,syncMaster:null,syncTolerance:null,syncToleranceDefault:null,systemLanguage:Ir,tabIndex:Me,tableValues:null,target:null,targetX:Me,targetY:Me,textAnchor:null,textDecoration:null,textRendering:null,textLength:null,timelineBegin:null,title:null,transformBehavior:null,type:null,typeOf:Ir,to:null,transform:null,transformOrigin:null,u1:null,u2:null,underlinePosition:Me,underlineThickness:Me,unicode:null,unicodeBidi:null,unicodeRange:null,unitsPerEm:Me,values:null,vAlphabetic:Me,vMathematical:Me,vectorEffect:null,vHanging:Me,vIdeographic:Me,version:null,vertAdvY:Me,vertOriginX:Me,vertOriginY:Me,viewBox:null,viewTarget:null,visibility:null,width:null,widths:null,wordSpacing:null,writingMode:null,x:null,x1:null,x2:null,xChannelSelector:null,xHeight:Me,y:null,y1:null,y2:null,yChannelSelector:null,z:null,zoomAndPan:null},space:"svg",transform:DP}),IP=_c({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()}}),MP=_c({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:$P}),LP=_c({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),zV={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"},BV=/[A-Z]/g,nS=/-[a-z]/g,UV=/^data[-\w.:]+$/i;function HV(e,t){const n=ov(t);let r=t,o=Er;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&UV.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(nS,WV);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!nS.test(i)){let a=i.replace(BV,VV);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}o=t0}return new o(r,t)}function VV(e){return"-"+e.toLowerCase()}function WV(e){return e.charAt(1).toUpperCase()}const KV=PP([_P,OV,IP,MP,LP],"html"),n0=PP([_P,FV,IP,MP,LP],"svg");function qV(e){return e.join(" ").trim()}var bl={},Py,rS;function GV(){if(rS)return Py;rS=1;var e=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//g,t=/\n/g,n=/^\s*/,r=/^(\*?[-#/*\\\w]+(\[[0-9a-z_-]+\])?)\s*/,o=/^:\s*/,i=/^((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};])+)/,a=/^[;\s]*/,l=/^\s+|\s+$/g,u=`
|
|
616
|
-
`,f="/",p="*",h="",g="comment",y="declaration";function k(b,j){if(typeof b!="string")throw new TypeError("First argument must be a string");if(!b)return[];j=j||{};var S=1,N=1;function C($){var O=$.match(t);O&&(S+=O.length);var U=$.lastIndexOf(u);N=~U?$.length-U:N+$.length}function P(){var $={line:S,column:N};return function(O){return O.position=new T($),_(),O}}function T($){this.start=$,this.end={line:S,column:N},this.source=j.source}T.prototype.content=b;function R($){var O=new Error(j.source+":"+S+":"+N+": "+$);if(O.reason=$,O.filename=j.source,O.line=S,O.column=N,O.source=b,!j.silent)throw O}function I($){var O=$.exec(b);if(O){var U=O[0];return C(U),b=b.slice(U.length),O}}function _(){I(n)}function F($){var O;for($=$||[];O=D();)O!==!1&&$.push(O);return $}function D(){var $=P();if(!(f!=b.charAt(0)||p!=b.charAt(1))){for(var O=2;h!=b.charAt(O)&&(p!=b.charAt(O)||f!=b.charAt(O+1));)++O;if(O+=2,h===b.charAt(O-1))return R("End of comment missing");var U=b.slice(2,O-2);return N+=2,C(U),b=b.slice(O),N+=2,$({type:g,comment:U})}}function W(){var $=P(),O=I(r);if(O){if(D(),!I(o))return R("property missing ':'");var U=I(i),K=$({type:y,property:v(O[0].replace(e,h)),value:U?v(U[0].replace(e,h)):h});return I(a),K}}function V(){var $=[];F($);for(var O;O=W();)O!==!1&&($.push(O),F($));return $}return _(),V()}function v(b){return b?b.replace(l,h):h}return Py=k,Py}var sS;function YV(){if(sS)return bl;sS=1;var e=bl&&bl.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(bl,"__esModule",{value:!0}),bl.default=n;const t=e(GV());function n(r,o){let i=null;if(!r||typeof r!="string")return i;const a=(0,t.default)(r),l=typeof o=="function";return a.forEach(u=>{if(u.type!=="declaration")return;const{property:f,value:p}=u;l?o(f,p,u):p&&(i=i||{},i[f]=p)}),i}return bl}var ju={},oS;function XV(){if(oS)return ju;oS=1,Object.defineProperty(ju,"__esModule",{value:!0}),ju.camelCase=void 0;var e=/^--[a-zA-Z0-9_-]+$/,t=/-([a-z])/g,n=/^[^-]+$/,r=/^-(webkit|moz|ms|o|khtml)-/,o=/^-(ms)-/,i=function(f){return!f||n.test(f)||e.test(f)},a=function(f,p){return p.toUpperCase()},l=function(f,p){return"".concat(p,"-")},u=function(f,p){return p===void 0&&(p={}),i(f)?f:(f=f.toLowerCase(),p.reactCompat?f=f.replace(o,l):f=f.replace(r,l),f.replace(t,a))};return ju.camelCase=u,ju}var ku,iS;function QV(){if(iS)return ku;iS=1;var e=ku&&ku.__importDefault||function(o){return o&&o.__esModule?o:{default:o}},t=e(YV()),n=XV();function r(o,i){var a={};return!o||typeof o!="string"||(0,t.default)(o,function(l,u){l&&u&&(a[(0,n.camelCase)(l,i)]=u)}),a}return r.default=r,ku=r,ku}var JV=QV();const ZV=Pd(JV),OP=FP("end"),r0=FP("start");function FP(e){return t;function t(n){const r=n&&n.position&&n.position[e]||{};if(typeof r.line=="number"&&r.line>0&&typeof r.column=="number"&&r.column>0)return{line:r.line,column:r.column,offset:typeof r.offset=="number"&&r.offset>-1?r.offset:void 0}}}function eW(e){const t=r0(e),n=OP(e);if(t&&n)return{start:t,end:n}}function Qu(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?aS(e.position):"start"in e||"end"in e?aS(e):"line"in e||"column"in e?lv(e):""}function lv(e){return lS(e&&e.line)+":"+lS(e&&e.column)}function aS(e){return lv(e&&e.start)+"-"+lv(e&&e.end)}function lS(e){return e&&typeof e=="number"?e:1}class ir extends Error{constructor(t,n,r){super(),typeof n=="string"&&(r=n,n=void 0);let o="",i={},a=!1;if(n&&("line"in n&&"column"in n?i={place:n}:"start"in n&&"end"in n?i={place:n}:"type"in n?i={ancestors:[n],place:n.position}:i={...n}),typeof t=="string"?o=t:!i.cause&&t&&(a=!0,o=t.message,i.cause=t),!i.ruleId&&!i.source&&typeof r=="string"){const u=r.indexOf(":");u===-1?i.ruleId=r:(i.source=r.slice(0,u),i.ruleId=r.slice(u+1))}if(!i.place&&i.ancestors&&i.ancestors){const u=i.ancestors[i.ancestors.length-1];u&&(i.place=u.position)}const l=i.place&&"start"in i.place?i.place.start:i.place;this.ancestors=i.ancestors||void 0,this.cause=i.cause||void 0,this.column=l?l.column:void 0,this.fatal=void 0,this.file="",this.message=o,this.line=l?l.line:void 0,this.name=Qu(i.place)||"1:1",this.place=i.place||void 0,this.reason=this.message,this.ruleId=i.ruleId||void 0,this.source=i.source||void 0,this.stack=a&&i.cause&&typeof i.cause.stack=="string"?i.cause.stack:"",this.actual=void 0,this.expected=void 0,this.note=void 0,this.url=void 0}}ir.prototype.file="";ir.prototype.name="";ir.prototype.reason="";ir.prototype.message="";ir.prototype.stack="";ir.prototype.column=void 0;ir.prototype.line=void 0;ir.prototype.ancestors=void 0;ir.prototype.cause=void 0;ir.prototype.fatal=void 0;ir.prototype.place=void 0;ir.prototype.ruleId=void 0;ir.prototype.source=void 0;const s0={}.hasOwnProperty,tW=new Map,nW=/[A-Z]/g,rW=new Set(["table","tbody","thead","tfoot","tr"]),sW=new Set(["td","th"]),zP="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function oW(e,t){if(!t||t.Fragment===void 0)throw new TypeError("Expected `Fragment` in options");const n=t.filePath||void 0;let r;if(t.development){if(typeof t.jsxDEV!="function")throw new TypeError("Expected `jsxDEV` in options when `development: true`");r=pW(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");r=fW(n,t.jsx,t.jsxs)}const o={Fragment:t.Fragment,ancestors:[],components:t.components||{},create:r,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"?n0:KV,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=BP(o,e,void 0);return i&&typeof i!="string"?i:o.create(e,o.Fragment,{children:i||void 0},void 0)}function BP(e,t,n){if(t.type==="element")return iW(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return aW(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return cW(e,t,n);if(t.type==="mdxjsEsm")return lW(e,t);if(t.type==="root")return uW(e,t,n);if(t.type==="text")return dW(e,t)}function iW(e,t,n){const r=e.schema;let o=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(o=n0,e.schema=o),e.ancestors.push(t);const i=HP(e,t.tagName,!1),a=hW(e,t);let l=i0(e,t);return rW.has(t.tagName)&&(l=l.filter(function(u){return typeof u=="string"?!MV(u):!0})),UP(e,a,i,t),o0(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function aW(e,t){if(t.data&&t.data.estree&&e.evaluater){const r=t.data.estree.body[0];return r.type,e.evaluater.evaluateExpression(r.expression)}yd(e,t.position)}function lW(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);yd(e,t.position)}function cW(e,t,n){const r=e.schema;let o=r;t.name==="svg"&&r.space==="html"&&(o=n0,e.schema=o),e.ancestors.push(t);const i=t.name===null?e.Fragment:HP(e,t.name,!0),a=mW(e,t),l=i0(e,t);return UP(e,a,i,t),o0(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function uW(e,t,n){const r={};return o0(r,i0(e,t)),e.create(t,e.Fragment,r,n)}function dW(e,t){return t.value}function UP(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function o0(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function fW(e,t,n){return r;function r(o,i,a,l){const f=Array.isArray(a.children)?n:t;return l?f(i,a,l):f(i,a)}}function pW(e,t){return n;function n(r,o,i,a){const l=Array.isArray(i.children),u=r0(r);return t(o,i,a,l,{columnNumber:u?u.column-1:void 0,fileName:e,lineNumber:u?u.line:void 0},void 0)}}function hW(e,t){const n={};let r,o;for(o in t.properties)if(o!=="children"&&s0.call(t.properties,o)){const i=gW(e,o,t.properties[o]);if(i){const[a,l]=i;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&sW.has(t.tagName)?r=l:n[a]=l}}if(r){const i=n.style||(n.style={});i[e.stylePropertyNameCase==="css"?"text-align":"textAlign"]=r}return n}function mW(e,t){const n={};for(const r of t.attributes)if(r.type==="mdxJsxExpressionAttribute")if(r.data&&r.data.estree&&e.evaluater){const i=r.data.estree.body[0];i.type;const a=i.expression;a.type;const l=a.properties[0];l.type,Object.assign(n,e.evaluater.evaluateExpression(l.argument))}else yd(e,t.position);else{const o=r.name;let i;if(r.value&&typeof r.value=="object")if(r.value.data&&r.value.data.estree&&e.evaluater){const l=r.value.data.estree.body[0];l.type,i=e.evaluater.evaluateExpression(l.expression)}else yd(e,t.position);else i=r.value===null?!0:r.value;n[o]=i}return n}function i0(e,t){const n=[];let r=-1;const o=e.passKeys?new Map:tW;for(;++r<t.children.length;){const i=t.children[r];let a;if(e.passKeys){const u=i.type==="element"?i.tagName:i.type==="mdxJsxFlowElement"||i.type==="mdxJsxTextElement"?i.name:void 0;if(u){const f=o.get(u)||0;a=u+"-"+f,o.set(u,f+1)}}const l=BP(e,i,a);l!==void 0&&n.push(l)}return n}function gW(e,t,n){const r=HV(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?PV(n):qV(n)),r.property==="style"){let o=typeof n=="object"?n:xW(e,String(n));return e.stylePropertyNameCase==="css"&&(o=yW(o)),["style",o]}return[e.elementAttributeNameCase==="react"&&r.space?zV[r.property]||r.property:r.attribute,n]}}function xW(e,t){try{return ZV(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const r=n,o=new ir("Cannot parse `style` attribute",{ancestors:e.ancestors,cause:r,ruleId:"style",source:"hast-util-to-jsx-runtime"});throw o.file=e.filePath||void 0,o.url=zP+"#cannot-parse-style-attribute",o}}function HP(e,t,n){let r;if(!n)r={type:"Literal",value:t};else if(t.includes(".")){const o=t.split(".");let i=-1,a;for(;++i<o.length;){const l=ZN(o[i])?{type:"Identifier",name:o[i]}:{type:"Literal",value:o[i]};a=a?{type:"MemberExpression",object:a,property:l,computed:!!(i&&l.type==="Literal"),optional:!1}:l}r=a}else r=ZN(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){const o=r.value;return s0.call(e.components,o)?e.components[o]:o}if(e.evaluater)return e.evaluater.evaluateExpression(r);yd(e)}function yd(e,t){const n=new ir("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=zP+"#cannot-handle-mdx-estrees-without-createevaluater",n}function yW(e){const t={};let n;for(n in e)s0.call(e,n)&&(t[bW(n)]=e[n]);return t}function bW(e){let t=e.replace(nW,vW);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function vW(e){return"-"+e.toLowerCase()}const _y={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"]},wW={};function jW(e,t){const n=wW,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,o=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return VP(e,r,o)}function VP(e,t,n){if(kW(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 cS(e.children,t,n)}return Array.isArray(e)?cS(e,t,n):""}function cS(e,t,n){const r=[];let o=-1;for(;++o<e.length;)r[o]=VP(e[o],t,n);return r.join("")}function kW(e){return!!(e&&typeof e=="object")}const uS=document.createElement("i");function a0(e){const t="&"+e+";";uS.innerHTML=t;const n=uS.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function no(e,t,n,r){const o=e.length;let i=0,a;if(t<0?t=-t>o?0:o+t:t=t>o?o:t,n=n>0?n:0,r.length<1e4)a=Array.from(r),a.unshift(t,n),e.splice(...a);else for(n&&e.splice(t,n);i<r.length;)a=r.slice(i,i+1e4),a.unshift(t,0),e.splice(...a),i+=1e4,t+=1e4}function es(e,t){return e.length>0?(no(e,e.length,0,t),e):t}const dS={}.hasOwnProperty;function NW(e){const t={};let n=-1;for(;++n<e.length;)SW(t,e[n]);return t}function SW(e,t){let n;for(n in t){const o=(dS.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n];let a;if(i)for(a in i){dS.call(o,a)||(o[a]=[]);const l=i[a];CW(o[a],Array.isArray(l)?l:l?[l]:[])}}}function CW(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);no(e,0,0,r)}function WP(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 Gl(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Gs=_i(/[A-Za-z]/),Ur=_i(/[\dA-Za-z]/),EW=_i(/[#-'*+\--9=?A-Z^-~]/);function cv(e){return e!==null&&(e<32||e===127)}const uv=_i(/\d/),TW=_i(/[\dA-Fa-f]/),RW=_i(/[!-/:-@[-`{-~]/);function xt(e){return e!==null&&e<-2}function Nr(e){return e!==null&&(e<0||e===32)}function zt(e){return e===-2||e===-1||e===32}const AW=_i(new RegExp("\\p{P}|\\p{S}","u")),PW=_i(/\s/);function _i(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Dc(e){const t=[];let n=-1,r=0,o=0;for(;++n<e.length;){const i=e.charCodeAt(n);let a="";if(i===37&&Ur(e.charCodeAt(n+1))&&Ur(e.charCodeAt(n+2)))o=2;else if(i<128)/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(i))||(a=String.fromCharCode(i));else if(i>55295&&i<57344){const l=e.charCodeAt(n+1);i<56320&&l>56319&&l<57344?(a=String.fromCharCode(i,l),o=1):a="�"}else a=String.fromCharCode(i);a&&(t.push(e.slice(r,n),encodeURIComponent(a)),r=n+o+1,a=""),o&&(n+=o,o=0)}return t.join("")+e.slice(r)}function Yt(e,t,n,r){const o=r?r-1:Number.POSITIVE_INFINITY;let i=0;return a;function a(u){return zt(u)?(e.enter(n),l(u)):t(u)}function l(u){return zt(u)&&i++<o?(e.consume(u),l):(e.exit(n),t(u))}}const _W={tokenize:DW};function DW(e){const t=e.attempt(this.parser.constructs.contentInitial,r,o);let n;return t;function r(l){if(l===null){e.consume(l);return}return e.enter("lineEnding"),e.consume(l),e.exit("lineEnding"),Yt(e,t,"linePrefix")}function o(l){return e.enter("paragraph"),i(l)}function i(l){const u=e.enter("chunkText",{contentType:"text",previous:n});return n&&(n.next=u),n=u,a(l)}function a(l){if(l===null){e.exit("chunkText"),e.exit("paragraph"),e.consume(l);return}return xt(l)?(e.consume(l),e.exit("chunkText"),i):(e.consume(l),a)}}const $W={tokenize:IW},fS={tokenize:MW};function IW(e){const t=this,n=[];let r=0,o,i,a;return l;function l(N){if(r<n.length){const C=n[r];return t.containerState=C[1],e.attempt(C[0].continuation,u,f)(N)}return f(N)}function u(N){if(r++,t.containerState._closeFlow){t.containerState._closeFlow=void 0,o&&S();const C=t.events.length;let P=C,T;for(;P--;)if(t.events[P][0]==="exit"&&t.events[P][1].type==="chunkFlow"){T=t.events[P][1].end;break}j(r);let R=C;for(;R<t.events.length;)t.events[R][1].end={...T},R++;return no(t.events,P+1,0,t.events.slice(C)),t.events.length=R,f(N)}return l(N)}function f(N){if(r===n.length){if(!o)return g(N);if(o.currentConstruct&&o.currentConstruct.concrete)return k(N);t.interrupt=!!(o.currentConstruct&&!o._gfmTableDynamicInterruptHack)}return t.containerState={},e.check(fS,p,h)(N)}function p(N){return o&&S(),j(r),g(N)}function h(N){return t.parser.lazy[t.now().line]=r!==n.length,a=t.now().offset,k(N)}function g(N){return t.containerState={},e.attempt(fS,y,k)(N)}function y(N){return r++,n.push([t.currentConstruct,t.containerState]),g(N)}function k(N){if(N===null){o&&S(),j(0),e.consume(N);return}return o=o||t.parser.flow(t.now()),e.enter("chunkFlow",{_tokenizer:o,contentType:"flow",previous:i}),v(N)}function v(N){if(N===null){b(e.exit("chunkFlow"),!0),j(0),e.consume(N);return}return xt(N)?(e.consume(N),b(e.exit("chunkFlow")),r=0,t.interrupt=void 0,l):(e.consume(N),v)}function b(N,C){const P=t.sliceStream(N);if(C&&P.push(null),N.previous=i,i&&(i.next=N),i=N,o.defineSkip(N.start),o.write(P),t.parser.lazy[N.start.line]){let T=o.events.length;for(;T--;)if(o.events[T][1].start.offset<a&&(!o.events[T][1].end||o.events[T][1].end.offset>a))return;const R=t.events.length;let I=R,_,F;for(;I--;)if(t.events[I][0]==="exit"&&t.events[I][1].type==="chunkFlow"){if(_){F=t.events[I][1].end;break}_=!0}for(j(r),T=R;T<t.events.length;)t.events[T][1].end={...F},T++;no(t.events,I+1,0,t.events.slice(R)),t.events.length=T}}function j(N){let C=n.length;for(;C-- >N;){const P=n[C];t.containerState=P[1],P[0].exit.call(t,e)}n.length=N}function S(){o.write([null]),i=void 0,o=void 0,t.containerState._closeFlow=void 0}}function MW(e,t,n){return Yt(e,e.attempt(this.parser.constructs.document,t,n),"linePrefix",this.parser.constructs.disable.null.includes("codeIndented")?void 0:4)}function pS(e){if(e===null||Nr(e)||PW(e))return 1;if(AW(e))return 2}function l0(e,t,n){const r=[];let o=-1;for(;++o<e.length;){const i=e[o].resolveAll;i&&!r.includes(i)&&(t=i(t,n),r.push(i))}return t}const dv={name:"attention",resolveAll:LW,tokenize:OW};function LW(e,t){let n=-1,r,o,i,a,l,u,f,p;for(;++n<e.length;)if(e[n][0]==="enter"&&e[n][1].type==="attentionSequence"&&e[n][1]._close){for(r=n;r--;)if(e[r][0]==="exit"&&e[r][1].type==="attentionSequence"&&e[r][1]._open&&t.sliceSerialize(e[r][1]).charCodeAt(0)===t.sliceSerialize(e[n][1]).charCodeAt(0)){if((e[r][1]._close||e[n][1]._open)&&(e[n][1].end.offset-e[n][1].start.offset)%3&&!((e[r][1].end.offset-e[r][1].start.offset+e[n][1].end.offset-e[n][1].start.offset)%3))continue;u=e[r][1].end.offset-e[r][1].start.offset>1&&e[n][1].end.offset-e[n][1].start.offset>1?2:1;const h={...e[r][1].end},g={...e[n][1].start};hS(h,-u),hS(g,u),a={type:u>1?"strongSequence":"emphasisSequence",start:h,end:{...e[r][1].end}},l={type:u>1?"strongSequence":"emphasisSequence",start:{...e[n][1].start},end:g},i={type:u>1?"strongText":"emphasisText",start:{...e[r][1].end},end:{...e[n][1].start}},o={type:u>1?"strong":"emphasis",start:{...a.start},end:{...l.end}},e[r][1].end={...a.start},e[n][1].start={...l.end},f=[],e[r][1].end.offset-e[r][1].start.offset&&(f=es(f,[["enter",e[r][1],t],["exit",e[r][1],t]])),f=es(f,[["enter",o,t],["enter",a,t],["exit",a,t],["enter",i,t]]),f=es(f,l0(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),f=es(f,[["exit",i,t],["enter",l,t],["exit",l,t],["exit",o,t]]),e[n][1].end.offset-e[n][1].start.offset?(p=2,f=es(f,[["enter",e[n][1],t],["exit",e[n][1],t]])):p=0,no(e,r-1,n-r+3,f),n=r+f.length-p-2;break}}for(n=-1;++n<e.length;)e[n][1].type==="attentionSequence"&&(e[n][1].type="data");return e}function OW(e,t){const n=this.parser.constructs.attentionMarkers.null,r=this.previous,o=pS(r);let i;return a;function a(u){return i=u,e.enter("attentionSequence"),l(u)}function l(u){if(u===i)return e.consume(u),l;const f=e.exit("attentionSequence"),p=pS(u),h=!p||p===2&&o||n.includes(u),g=!o||o===2&&p||n.includes(r);return f._open=!!(i===42?h:h&&(o||!g)),f._close=!!(i===42?g:g&&(p||!h)),t(u)}}function hS(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const FW={name:"autolink",tokenize:zW};function zW(e,t,n){let r=0;return o;function o(y){return e.enter("autolink"),e.enter("autolinkMarker"),e.consume(y),e.exit("autolinkMarker"),e.enter("autolinkProtocol"),i}function i(y){return Gs(y)?(e.consume(y),a):y===64?n(y):f(y)}function a(y){return y===43||y===45||y===46||Ur(y)?(r=1,l(y)):f(y)}function l(y){return y===58?(e.consume(y),r=0,u):(y===43||y===45||y===46||Ur(y))&&r++<32?(e.consume(y),l):(r=0,f(y))}function u(y){return y===62?(e.exit("autolinkProtocol"),e.enter("autolinkMarker"),e.consume(y),e.exit("autolinkMarker"),e.exit("autolink"),t):y===null||y===32||y===60||cv(y)?n(y):(e.consume(y),u)}function f(y){return y===64?(e.consume(y),p):EW(y)?(e.consume(y),f):n(y)}function p(y){return Ur(y)?h(y):n(y)}function h(y){return y===46?(e.consume(y),r=0,p):y===62?(e.exit("autolinkProtocol").type="autolinkEmail",e.enter("autolinkMarker"),e.consume(y),e.exit("autolinkMarker"),e.exit("autolink"),t):g(y)}function g(y){if((y===45||Ur(y))&&r++<63){const k=y===45?g:h;return e.consume(y),k}return n(y)}}const Gm={partial:!0,tokenize:BW};function BW(e,t,n){return r;function r(i){return zt(i)?Yt(e,o,"linePrefix")(i):o(i)}function o(i){return i===null||xt(i)?t(i):n(i)}}const KP={continuation:{tokenize:HW},exit:VW,name:"blockQuote",tokenize:UW};function UW(e,t,n){const r=this;return o;function o(a){if(a===62){const l=r.containerState;return l.open||(e.enter("blockQuote",{_container:!0}),l.open=!0),e.enter("blockQuotePrefix"),e.enter("blockQuoteMarker"),e.consume(a),e.exit("blockQuoteMarker"),i}return n(a)}function i(a){return zt(a)?(e.enter("blockQuotePrefixWhitespace"),e.consume(a),e.exit("blockQuotePrefixWhitespace"),e.exit("blockQuotePrefix"),t):(e.exit("blockQuotePrefix"),t(a))}}function HW(e,t,n){const r=this;return o;function o(a){return zt(a)?Yt(e,i,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(a):i(a)}function i(a){return e.attempt(KP,t,n)(a)}}function VW(e){e.exit("blockQuote")}const qP={name:"characterEscape",tokenize:WW};function WW(e,t,n){return r;function r(i){return e.enter("characterEscape"),e.enter("escapeMarker"),e.consume(i),e.exit("escapeMarker"),o}function o(i){return RW(i)?(e.enter("characterEscapeValue"),e.consume(i),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(i)}}const GP={name:"characterReference",tokenize:KW};function KW(e,t,n){const r=this;let o=0,i,a;return l;function l(h){return e.enter("characterReference"),e.enter("characterReferenceMarker"),e.consume(h),e.exit("characterReferenceMarker"),u}function u(h){return h===35?(e.enter("characterReferenceMarkerNumeric"),e.consume(h),e.exit("characterReferenceMarkerNumeric"),f):(e.enter("characterReferenceValue"),i=31,a=Ur,p(h))}function f(h){return h===88||h===120?(e.enter("characterReferenceMarkerHexadecimal"),e.consume(h),e.exit("characterReferenceMarkerHexadecimal"),e.enter("characterReferenceValue"),i=6,a=TW,p):(e.enter("characterReferenceValue"),i=7,a=uv,p(h))}function p(h){if(h===59&&o){const g=e.exit("characterReferenceValue");return a===Ur&&!a0(r.sliceSerialize(g))?n(h):(e.enter("characterReferenceMarker"),e.consume(h),e.exit("characterReferenceMarker"),e.exit("characterReference"),t)}return a(h)&&o++<i?(e.consume(h),p):n(h)}}const mS={partial:!0,tokenize:GW},gS={concrete:!0,name:"codeFenced",tokenize:qW};function qW(e,t,n){const r=this,o={partial:!0,tokenize:P};let i=0,a=0,l;return u;function u(T){return f(T)}function f(T){const R=r.events[r.events.length-1];return i=R&&R[1].type==="linePrefix"?R[2].sliceSerialize(R[1],!0).length:0,l=T,e.enter("codeFenced"),e.enter("codeFencedFence"),e.enter("codeFencedFenceSequence"),p(T)}function p(T){return T===l?(a++,e.consume(T),p):a<3?n(T):(e.exit("codeFencedFenceSequence"),zt(T)?Yt(e,h,"whitespace")(T):h(T))}function h(T){return T===null||xt(T)?(e.exit("codeFencedFence"),r.interrupt?t(T):e.check(mS,v,C)(T)):(e.enter("codeFencedFenceInfo"),e.enter("chunkString",{contentType:"string"}),g(T))}function g(T){return T===null||xt(T)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),h(T)):zt(T)?(e.exit("chunkString"),e.exit("codeFencedFenceInfo"),Yt(e,y,"whitespace")(T)):T===96&&T===l?n(T):(e.consume(T),g)}function y(T){return T===null||xt(T)?h(T):(e.enter("codeFencedFenceMeta"),e.enter("chunkString",{contentType:"string"}),k(T))}function k(T){return T===null||xt(T)?(e.exit("chunkString"),e.exit("codeFencedFenceMeta"),h(T)):T===96&&T===l?n(T):(e.consume(T),k)}function v(T){return e.attempt(o,C,b)(T)}function b(T){return e.enter("lineEnding"),e.consume(T),e.exit("lineEnding"),j}function j(T){return i>0&&zt(T)?Yt(e,S,"linePrefix",i+1)(T):S(T)}function S(T){return T===null||xt(T)?e.check(mS,v,C)(T):(e.enter("codeFlowValue"),N(T))}function N(T){return T===null||xt(T)?(e.exit("codeFlowValue"),S(T)):(e.consume(T),N)}function C(T){return e.exit("codeFenced"),t(T)}function P(T,R,I){let _=0;return F;function F(O){return T.enter("lineEnding"),T.consume(O),T.exit("lineEnding"),D}function D(O){return T.enter("codeFencedFence"),zt(O)?Yt(T,W,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(O):W(O)}function W(O){return O===l?(T.enter("codeFencedFenceSequence"),V(O)):I(O)}function V(O){return O===l?(_++,T.consume(O),V):_>=a?(T.exit("codeFencedFenceSequence"),zt(O)?Yt(T,$,"whitespace")(O):$(O)):I(O)}function $(O){return O===null||xt(O)?(T.exit("codeFencedFence"),R(O)):I(O)}}}function GW(e,t,n){const r=this;return o;function o(a){return a===null?n(a):(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}const Dy={name:"codeIndented",tokenize:XW},YW={partial:!0,tokenize:QW};function XW(e,t,n){const r=this;return o;function o(f){return e.enter("codeIndented"),Yt(e,i,"linePrefix",5)(f)}function i(f){const p=r.events[r.events.length-1];return p&&p[1].type==="linePrefix"&&p[2].sliceSerialize(p[1],!0).length>=4?a(f):n(f)}function a(f){return f===null?u(f):xt(f)?e.attempt(YW,a,u)(f):(e.enter("codeFlowValue"),l(f))}function l(f){return f===null||xt(f)?(e.exit("codeFlowValue"),a(f)):(e.consume(f),l)}function u(f){return e.exit("codeIndented"),t(f)}}function QW(e,t,n){const r=this;return o;function o(a){return r.parser.lazy[r.now().line]?n(a):xt(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),o):Yt(e,i,"linePrefix",5)(a)}function i(a){const l=r.events[r.events.length-1];return l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):xt(a)?o(a):n(a)}}const JW={name:"codeText",previous:eK,resolve:ZW,tokenize:tK};function ZW(e){let t=e.length-4,n=3,r,o;if((e[n][1].type==="lineEnding"||e[n][1].type==="space")&&(e[t][1].type==="lineEnding"||e[t][1].type==="space")){for(r=n;++r<t;)if(e[r][1].type==="codeTextData"){e[n][1].type="codeTextPadding",e[t][1].type="codeTextPadding",n+=2,t-=2;break}}for(r=n-1,t++;++r<=t;)o===void 0?r!==t&&e[r][1].type!=="lineEnding"&&(o=r):(r===t||e[r][1].type==="lineEnding")&&(e[o][1].type="codeTextData",r!==o+2&&(e[o][1].end=e[r-1][1].end,e.splice(o+2,r-o-2),t-=r-o-2,r=o+2),o=void 0);return e}function eK(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function tK(e,t,n){let r=0,o,i;return a;function a(h){return e.enter("codeText"),e.enter("codeTextSequence"),l(h)}function l(h){return h===96?(e.consume(h),r++,l):(e.exit("codeTextSequence"),u(h))}function u(h){return h===null?n(h):h===32?(e.enter("space"),e.consume(h),e.exit("space"),u):h===96?(i=e.enter("codeTextSequence"),o=0,p(h)):xt(h)?(e.enter("lineEnding"),e.consume(h),e.exit("lineEnding"),u):(e.enter("codeTextData"),f(h))}function f(h){return h===null||h===32||h===96||xt(h)?(e.exit("codeTextData"),u(h)):(e.consume(h),f)}function p(h){return h===96?(e.consume(h),o++,p):o===r?(e.exit("codeTextSequence"),e.exit("codeText"),t(h)):(i.type="codeTextData",f(h))}}class nK{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 r=n??Number.POSITIVE_INFINITY;return r<this.left.length?this.left.slice(t,r):t>this.left.length?this.right.slice(this.right.length-r+this.left.length,this.right.length-t+this.left.length).reverse():this.left.slice(t).concat(this.right.slice(this.right.length-r+this.left.length).reverse())}splice(t,n,r){const o=n||0;this.setCursor(Math.trunc(t));const i=this.right.splice(this.right.length-o,Number.POSITIVE_INFINITY);return r&&Nu(this.left,r),i.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),Nu(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Nu(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);Nu(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);Nu(this.left,n.reverse())}}}function Nu(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 YP(e){const t={};let n=-1,r,o,i,a,l,u,f;const p=new nK(e);for(;++n<p.length;){for(;n in t;)n=t[n];if(r=p.get(n),n&&r[1].type==="chunkFlow"&&p.get(n-1)[1].type==="listItemPrefix"&&(u=r[1]._tokenizer.events,i=0,i<u.length&&u[i][1].type==="lineEndingBlank"&&(i+=2),i<u.length&&u[i][1].type==="content"))for(;++i<u.length&&u[i][1].type!=="content";)u[i][1].type==="chunkText"&&(u[i][1]._isInFirstContentOfListItem=!0,i++);if(r[0]==="enter")r[1].contentType&&(Object.assign(t,rK(p,n)),n=t[n],f=!0);else if(r[1]._container){for(i=n,o=void 0;i--;)if(a=p.get(i),a[1].type==="lineEnding"||a[1].type==="lineEndingBlank")a[0]==="enter"&&(o&&(p.get(o)[1].type="lineEndingBlank"),a[1].type="lineEnding",o=i);else if(!(a[1].type==="linePrefix"||a[1].type==="listItemIndent"))break;o&&(r[1].end={...p.get(o)[1].start},l=p.slice(o,n),l.unshift(r),p.splice(o,n-o+1,l))}}return no(e,0,Number.POSITIVE_INFINITY,p.slice(0)),!f}function rK(e,t){const n=e.get(t)[1],r=e.get(t)[2];let o=t-1;const i=[];let a=n._tokenizer;a||(a=r.parser[n.contentType](n.start),n._contentTypeTextTrailing&&(a._contentTypeTextTrailing=!0));const l=a.events,u=[],f={};let p,h,g=-1,y=n,k=0,v=0;const b=[v];for(;y;){for(;e.get(++o)[1]!==y;);i.push(o),y._tokenizer||(p=r.sliceStream(y),y.next||p.push(null),h&&a.defineSkip(y.start),y._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=!0),a.write(p),y._isInFirstContentOfListItem&&(a._gfmTasklistFirstContentOfListItem=void 0)),h=y,y=y.next}for(y=n;++g<l.length;)l[g][0]==="exit"&&l[g-1][0]==="enter"&&l[g][1].type===l[g-1][1].type&&l[g][1].start.line!==l[g][1].end.line&&(v=g+1,b.push(v),y._tokenizer=void 0,y.previous=void 0,y=y.next);for(a.events=[],y?(y._tokenizer=void 0,y.previous=void 0):b.pop(),g=b.length;g--;){const j=l.slice(b[g],b[g+1]),S=i.pop();u.push([S,S+j.length-1]),e.splice(S,2,j)}for(u.reverse(),g=-1;++g<u.length;)f[k+u[g][0]]=k+u[g][1],k+=u[g][1]-u[g][0]-1;return f}const sK={resolve:iK,tokenize:aK},oK={partial:!0,tokenize:lK};function iK(e){return YP(e),e}function aK(e,t){let n;return r;function r(l){return e.enter("content"),n=e.enter("chunkContent",{contentType:"content"}),o(l)}function o(l){return l===null?i(l):xt(l)?e.check(oK,a,i)(l):(e.consume(l),o)}function i(l){return e.exit("chunkContent"),e.exit("content"),t(l)}function a(l){return e.consume(l),e.exit("chunkContent"),n.next=e.enter("chunkContent",{contentType:"content",previous:n}),n=n.next,o}}function lK(e,t,n){const r=this;return o;function o(a){return e.exit("chunkContent"),e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),Yt(e,i,"linePrefix")}function i(a){if(a===null||xt(a))return n(a);const l=r.events[r.events.length-1];return!r.parser.constructs.disable.null.includes("codeIndented")&&l&&l[1].type==="linePrefix"&&l[2].sliceSerialize(l[1],!0).length>=4?t(a):e.interrupt(r.parser.constructs.flow,n,t)(a)}}function XP(e,t,n,r,o,i,a,l,u){const f=u||Number.POSITIVE_INFINITY;let p=0;return h;function h(j){return j===60?(e.enter(r),e.enter(o),e.enter(i),e.consume(j),e.exit(i),g):j===null||j===32||j===41||cv(j)?n(j):(e.enter(r),e.enter(a),e.enter(l),e.enter("chunkString",{contentType:"string"}),v(j))}function g(j){return j===62?(e.enter(i),e.consume(j),e.exit(i),e.exit(o),e.exit(r),t):(e.enter(l),e.enter("chunkString",{contentType:"string"}),y(j))}function y(j){return j===62?(e.exit("chunkString"),e.exit(l),g(j)):j===null||j===60||xt(j)?n(j):(e.consume(j),j===92?k:y)}function k(j){return j===60||j===62||j===92?(e.consume(j),y):y(j)}function v(j){return!p&&(j===null||j===41||Nr(j))?(e.exit("chunkString"),e.exit(l),e.exit(a),e.exit(r),t(j)):p<f&&j===40?(e.consume(j),p++,v):j===41?(e.consume(j),p--,v):j===null||j===32||j===40||cv(j)?n(j):(e.consume(j),j===92?b:v)}function b(j){return j===40||j===41||j===92?(e.consume(j),v):v(j)}}function QP(e,t,n,r,o,i){const a=this;let l=0,u;return f;function f(y){return e.enter(r),e.enter(o),e.consume(y),e.exit(o),e.enter(i),p}function p(y){return l>999||y===null||y===91||y===93&&!u||y===94&&!l&&"_hiddenFootnoteSupport"in a.parser.constructs?n(y):y===93?(e.exit(i),e.enter(o),e.consume(y),e.exit(o),e.exit(r),t):xt(y)?(e.enter("lineEnding"),e.consume(y),e.exit("lineEnding"),p):(e.enter("chunkString",{contentType:"string"}),h(y))}function h(y){return y===null||y===91||y===93||xt(y)||l++>999?(e.exit("chunkString"),p(y)):(e.consume(y),u||(u=!zt(y)),y===92?g:h)}function g(y){return y===91||y===92||y===93?(e.consume(y),l++,h):h(y)}}function JP(e,t,n,r,o,i){let a;return l;function l(g){return g===34||g===39||g===40?(e.enter(r),e.enter(o),e.consume(g),e.exit(o),a=g===40?41:g,u):n(g)}function u(g){return g===a?(e.enter(o),e.consume(g),e.exit(o),e.exit(r),t):(e.enter(i),f(g))}function f(g){return g===a?(e.exit(i),u(a)):g===null?n(g):xt(g)?(e.enter("lineEnding"),e.consume(g),e.exit("lineEnding"),Yt(e,f,"linePrefix")):(e.enter("chunkString",{contentType:"string"}),p(g))}function p(g){return g===a||g===null||xt(g)?(e.exit("chunkString"),f(g)):(e.consume(g),g===92?h:p)}function h(g){return g===a||g===92?(e.consume(g),p):p(g)}}function Ju(e,t){let n;return r;function r(o){return xt(o)?(e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),n=!0,r):zt(o)?Yt(e,r,n?"linePrefix":"lineSuffix")(o):t(o)}}const cK={name:"definition",tokenize:dK},uK={partial:!0,tokenize:fK};function dK(e,t,n){const r=this;let o;return i;function i(y){return e.enter("definition"),a(y)}function a(y){return QP.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(y)}function l(y){return o=Gl(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)),y===58?(e.enter("definitionMarker"),e.consume(y),e.exit("definitionMarker"),u):n(y)}function u(y){return Nr(y)?Ju(e,f)(y):f(y)}function f(y){return XP(e,p,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(y)}function p(y){return e.attempt(uK,h,h)(y)}function h(y){return zt(y)?Yt(e,g,"whitespace")(y):g(y)}function g(y){return y===null||xt(y)?(e.exit("definition"),r.parser.defined.push(o),t(y)):n(y)}}function fK(e,t,n){return r;function r(l){return Nr(l)?Ju(e,o)(l):n(l)}function o(l){return JP(e,i,n,"definitionTitle","definitionTitleMarker","definitionTitleString")(l)}function i(l){return zt(l)?Yt(e,a,"whitespace")(l):a(l)}function a(l){return l===null||xt(l)?t(l):n(l)}}const pK={name:"hardBreakEscape",tokenize:hK};function hK(e,t,n){return r;function r(i){return e.enter("hardBreakEscape"),e.consume(i),o}function o(i){return xt(i)?(e.exit("hardBreakEscape"),t(i)):n(i)}}const mK={name:"headingAtx",resolve:gK,tokenize:xK};function gK(e,t){let n=e.length-2,r=3,o,i;return e[r][1].type==="whitespace"&&(r+=2),n-2>r&&e[n][1].type==="whitespace"&&(n-=2),e[n][1].type==="atxHeadingSequence"&&(r===n-1||n-4>r&&e[n-2][1].type==="whitespace")&&(n-=r+1===n?2:4),n>r&&(o={type:"atxHeadingText",start:e[r][1].start,end:e[n][1].end},i={type:"chunkText",start:e[r][1].start,end:e[n][1].end,contentType:"text"},no(e,r,n-r+1,[["enter",o,t],["enter",i,t],["exit",i,t],["exit",o,t]])),e}function xK(e,t,n){let r=0;return o;function o(p){return e.enter("atxHeading"),i(p)}function i(p){return e.enter("atxHeadingSequence"),a(p)}function a(p){return p===35&&r++<6?(e.consume(p),a):p===null||Nr(p)?(e.exit("atxHeadingSequence"),l(p)):n(p)}function l(p){return p===35?(e.enter("atxHeadingSequence"),u(p)):p===null||xt(p)?(e.exit("atxHeading"),t(p)):zt(p)?Yt(e,l,"whitespace")(p):(e.enter("atxHeadingText"),f(p))}function u(p){return p===35?(e.consume(p),u):(e.exit("atxHeadingSequence"),l(p))}function f(p){return p===null||p===35||Nr(p)?(e.exit("atxHeadingText"),l(p)):(e.consume(p),f)}}const yK=["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"],xS=["pre","script","style","textarea"],bK={concrete:!0,name:"htmlFlow",resolveTo:jK,tokenize:kK},vK={partial:!0,tokenize:SK},wK={partial:!0,tokenize:NK};function jK(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 kK(e,t,n){const r=this;let o,i,a,l,u;return f;function f(B){return p(B)}function p(B){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(B),h}function h(B){return B===33?(e.consume(B),g):B===47?(e.consume(B),i=!0,v):B===63?(e.consume(B),o=3,r.interrupt?t:L):Gs(B)?(e.consume(B),a=String.fromCharCode(B),b):n(B)}function g(B){return B===45?(e.consume(B),o=2,y):B===91?(e.consume(B),o=5,l=0,k):Gs(B)?(e.consume(B),o=4,r.interrupt?t:L):n(B)}function y(B){return B===45?(e.consume(B),r.interrupt?t:L):n(B)}function k(B){const Q="CDATA[";return B===Q.charCodeAt(l++)?(e.consume(B),l===Q.length?r.interrupt?t:W:k):n(B)}function v(B){return Gs(B)?(e.consume(B),a=String.fromCharCode(B),b):n(B)}function b(B){if(B===null||B===47||B===62||Nr(B)){const Q=B===47,J=a.toLowerCase();return!Q&&!i&&xS.includes(J)?(o=1,r.interrupt?t(B):W(B)):yK.includes(a.toLowerCase())?(o=6,Q?(e.consume(B),j):r.interrupt?t(B):W(B)):(o=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(B):i?S(B):N(B))}return B===45||Ur(B)?(e.consume(B),a+=String.fromCharCode(B),b):n(B)}function j(B){return B===62?(e.consume(B),r.interrupt?t:W):n(B)}function S(B){return zt(B)?(e.consume(B),S):F(B)}function N(B){return B===47?(e.consume(B),F):B===58||B===95||Gs(B)?(e.consume(B),C):zt(B)?(e.consume(B),N):F(B)}function C(B){return B===45||B===46||B===58||B===95||Ur(B)?(e.consume(B),C):P(B)}function P(B){return B===61?(e.consume(B),T):zt(B)?(e.consume(B),P):N(B)}function T(B){return B===null||B===60||B===61||B===62||B===96?n(B):B===34||B===39?(e.consume(B),u=B,R):zt(B)?(e.consume(B),T):I(B)}function R(B){return B===u?(e.consume(B),u=null,_):B===null||xt(B)?n(B):(e.consume(B),R)}function I(B){return B===null||B===34||B===39||B===47||B===60||B===61||B===62||B===96||Nr(B)?P(B):(e.consume(B),I)}function _(B){return B===47||B===62||zt(B)?N(B):n(B)}function F(B){return B===62?(e.consume(B),D):n(B)}function D(B){return B===null||xt(B)?W(B):zt(B)?(e.consume(B),D):n(B)}function W(B){return B===45&&o===2?(e.consume(B),U):B===60&&o===1?(e.consume(B),K):B===62&&o===4?(e.consume(B),z):B===63&&o===3?(e.consume(B),L):B===93&&o===5?(e.consume(B),H):xt(B)&&(o===6||o===7)?(e.exit("htmlFlowData"),e.check(vK,Y,V)(B)):B===null||xt(B)?(e.exit("htmlFlowData"),V(B)):(e.consume(B),W)}function V(B){return e.check(wK,$,Y)(B)}function $(B){return e.enter("lineEnding"),e.consume(B),e.exit("lineEnding"),O}function O(B){return B===null||xt(B)?V(B):(e.enter("htmlFlowData"),W(B))}function U(B){return B===45?(e.consume(B),L):W(B)}function K(B){return B===47?(e.consume(B),a="",M):W(B)}function M(B){if(B===62){const Q=a.toLowerCase();return xS.includes(Q)?(e.consume(B),z):W(B)}return Gs(B)&&a.length<8?(e.consume(B),a+=String.fromCharCode(B),M):W(B)}function H(B){return B===93?(e.consume(B),L):W(B)}function L(B){return B===62?(e.consume(B),z):B===45&&o===2?(e.consume(B),L):W(B)}function z(B){return B===null||xt(B)?(e.exit("htmlFlowData"),Y(B)):(e.consume(B),z)}function Y(B){return e.exit("htmlFlow"),t(B)}}function NK(e,t,n){const r=this;return o;function o(a){return xt(a)?(e.enter("lineEnding"),e.consume(a),e.exit("lineEnding"),i):n(a)}function i(a){return r.parser.lazy[r.now().line]?n(a):t(a)}}function SK(e,t,n){return r;function r(o){return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),e.attempt(Gm,t,n)}}const CK={name:"htmlText",tokenize:EK};function EK(e,t,n){const r=this;let o,i,a;return l;function l(L){return e.enter("htmlText"),e.enter("htmlTextData"),e.consume(L),u}function u(L){return L===33?(e.consume(L),f):L===47?(e.consume(L),P):L===63?(e.consume(L),N):Gs(L)?(e.consume(L),I):n(L)}function f(L){return L===45?(e.consume(L),p):L===91?(e.consume(L),i=0,k):Gs(L)?(e.consume(L),S):n(L)}function p(L){return L===45?(e.consume(L),y):n(L)}function h(L){return L===null?n(L):L===45?(e.consume(L),g):xt(L)?(a=h,K(L)):(e.consume(L),h)}function g(L){return L===45?(e.consume(L),y):h(L)}function y(L){return L===62?U(L):L===45?g(L):h(L)}function k(L){const z="CDATA[";return L===z.charCodeAt(i++)?(e.consume(L),i===z.length?v:k):n(L)}function v(L){return L===null?n(L):L===93?(e.consume(L),b):xt(L)?(a=v,K(L)):(e.consume(L),v)}function b(L){return L===93?(e.consume(L),j):v(L)}function j(L){return L===62?U(L):L===93?(e.consume(L),j):v(L)}function S(L){return L===null||L===62?U(L):xt(L)?(a=S,K(L)):(e.consume(L),S)}function N(L){return L===null?n(L):L===63?(e.consume(L),C):xt(L)?(a=N,K(L)):(e.consume(L),N)}function C(L){return L===62?U(L):N(L)}function P(L){return Gs(L)?(e.consume(L),T):n(L)}function T(L){return L===45||Ur(L)?(e.consume(L),T):R(L)}function R(L){return xt(L)?(a=R,K(L)):zt(L)?(e.consume(L),R):U(L)}function I(L){return L===45||Ur(L)?(e.consume(L),I):L===47||L===62||Nr(L)?_(L):n(L)}function _(L){return L===47?(e.consume(L),U):L===58||L===95||Gs(L)?(e.consume(L),F):xt(L)?(a=_,K(L)):zt(L)?(e.consume(L),_):U(L)}function F(L){return L===45||L===46||L===58||L===95||Ur(L)?(e.consume(L),F):D(L)}function D(L){return L===61?(e.consume(L),W):xt(L)?(a=D,K(L)):zt(L)?(e.consume(L),D):_(L)}function W(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(e.consume(L),o=L,V):xt(L)?(a=W,K(L)):zt(L)?(e.consume(L),W):(e.consume(L),$)}function V(L){return L===o?(e.consume(L),o=void 0,O):L===null?n(L):xt(L)?(a=V,K(L)):(e.consume(L),V)}function $(L){return L===null||L===34||L===39||L===60||L===61||L===96?n(L):L===47||L===62||Nr(L)?_(L):(e.consume(L),$)}function O(L){return L===47||L===62||Nr(L)?_(L):n(L)}function U(L){return L===62?(e.consume(L),e.exit("htmlTextData"),e.exit("htmlText"),t):n(L)}function K(L){return e.exit("htmlTextData"),e.enter("lineEnding"),e.consume(L),e.exit("lineEnding"),M}function M(L){return zt(L)?Yt(e,H,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(L):H(L)}function H(L){return e.enter("htmlTextData"),a(L)}}const c0={name:"labelEnd",resolveAll:PK,resolveTo:_K,tokenize:DK},TK={tokenize:$K},RK={tokenize:IK},AK={tokenize:MK};function PK(e){let t=-1;const n=[];for(;++t<e.length;){const r=e[t][1];if(n.push(e[t]),r.type==="labelImage"||r.type==="labelLink"||r.type==="labelEnd"){const o=r.type==="labelImage"?4:2;r.type="data",t+=o}}return e.length!==n.length&&no(e,0,e.length,n),e}function _K(e,t){let n=e.length,r=0,o,i,a,l;for(;n--;)if(o=e[n][1],i){if(o.type==="link"||o.type==="labelLink"&&o._inactive)break;e[n][0]==="enter"&&o.type==="labelLink"&&(o._inactive=!0)}else if(a){if(e[n][0]==="enter"&&(o.type==="labelImage"||o.type==="labelLink")&&!o._balanced&&(i=n,o.type!=="labelLink")){r=2;break}}else o.type==="labelEnd"&&(a=n);const u={type:e[i][1].type==="labelLink"?"link":"image",start:{...e[i][1].start},end:{...e[e.length-1][1].end}},f={type:"label",start:{...e[i][1].start},end:{...e[a][1].end}},p={type:"labelText",start:{...e[i+r+2][1].end},end:{...e[a-2][1].start}};return l=[["enter",u,t],["enter",f,t]],l=es(l,e.slice(i+1,i+r+3)),l=es(l,[["enter",p,t]]),l=es(l,l0(t.parser.constructs.insideSpan.null,e.slice(i+r+4,a-3),t)),l=es(l,[["exit",p,t],e[a-2],e[a-1],["exit",f,t]]),l=es(l,e.slice(a+1)),l=es(l,[["exit",u,t]]),no(e,i,e.length,l),e}function DK(e,t,n){const r=this;let o=r.events.length,i,a;for(;o--;)if((r.events[o][1].type==="labelImage"||r.events[o][1].type==="labelLink")&&!r.events[o][1]._balanced){i=r.events[o][1];break}return l;function l(g){return i?i._inactive?h(g):(a=r.parser.defined.includes(Gl(r.sliceSerialize({start:i.end,end:r.now()}))),e.enter("labelEnd"),e.enter("labelMarker"),e.consume(g),e.exit("labelMarker"),e.exit("labelEnd"),u):n(g)}function u(g){return g===40?e.attempt(TK,p,a?p:h)(g):g===91?e.attempt(RK,p,a?f:h)(g):a?p(g):h(g)}function f(g){return e.attempt(AK,p,h)(g)}function p(g){return t(g)}function h(g){return i._balanced=!0,n(g)}}function $K(e,t,n){return r;function r(h){return e.enter("resource"),e.enter("resourceMarker"),e.consume(h),e.exit("resourceMarker"),o}function o(h){return Nr(h)?Ju(e,i)(h):i(h)}function i(h){return h===41?p(h):XP(e,a,l,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(h)}function a(h){return Nr(h)?Ju(e,u)(h):p(h)}function l(h){return n(h)}function u(h){return h===34||h===39||h===40?JP(e,f,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(h):p(h)}function f(h){return Nr(h)?Ju(e,p)(h):p(h)}function p(h){return h===41?(e.enter("resourceMarker"),e.consume(h),e.exit("resourceMarker"),e.exit("resource"),t):n(h)}}function IK(e,t,n){const r=this;return o;function o(l){return QP.call(r,e,i,a,"reference","referenceMarker","referenceString")(l)}function i(l){return r.parser.defined.includes(Gl(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(l):n(l)}function a(l){return n(l)}}function MK(e,t,n){return r;function r(i){return e.enter("reference"),e.enter("referenceMarker"),e.consume(i),e.exit("referenceMarker"),o}function o(i){return i===93?(e.enter("referenceMarker"),e.consume(i),e.exit("referenceMarker"),e.exit("reference"),t):n(i)}}const LK={name:"labelStartImage",resolveAll:c0.resolveAll,tokenize:OK};function OK(e,t,n){const r=this;return o;function o(l){return e.enter("labelImage"),e.enter("labelImageMarker"),e.consume(l),e.exit("labelImageMarker"),i}function i(l){return l===91?(e.enter("labelMarker"),e.consume(l),e.exit("labelMarker"),e.exit("labelImage"),a):n(l)}function a(l){return l===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(l):t(l)}}const FK={name:"labelStartLink",resolveAll:c0.resolveAll,tokenize:zK};function zK(e,t,n){const r=this;return o;function o(a){return e.enter("labelLink"),e.enter("labelMarker"),e.consume(a),e.exit("labelMarker"),e.exit("labelLink"),i}function i(a){return a===94&&"_hiddenFootnoteSupport"in r.parser.constructs?n(a):t(a)}}const $y={name:"lineEnding",tokenize:BK};function BK(e,t){return n;function n(r){return e.enter("lineEnding"),e.consume(r),e.exit("lineEnding"),Yt(e,t,"linePrefix")}}const eh={name:"thematicBreak",tokenize:UK};function UK(e,t,n){let r=0,o;return i;function i(f){return e.enter("thematicBreak"),a(f)}function a(f){return o=f,l(f)}function l(f){return f===o?(e.enter("thematicBreakSequence"),u(f)):r>=3&&(f===null||xt(f))?(e.exit("thematicBreak"),t(f)):n(f)}function u(f){return f===o?(e.consume(f),r++,u):(e.exit("thematicBreakSequence"),zt(f)?Yt(e,l,"whitespace")(f):l(f))}}const yr={continuation:{tokenize:KK},exit:GK,name:"list",tokenize:WK},HK={partial:!0,tokenize:YK},VK={partial:!0,tokenize:qK};function WK(e,t,n){const r=this,o=r.events[r.events.length-1];let i=o&&o[1].type==="linePrefix"?o[2].sliceSerialize(o[1],!0).length:0,a=0;return l;function l(y){const k=r.containerState.type||(y===42||y===43||y===45?"listUnordered":"listOrdered");if(k==="listUnordered"?!r.containerState.marker||y===r.containerState.marker:uv(y)){if(r.containerState.type||(r.containerState.type=k,e.enter(k,{_container:!0})),k==="listUnordered")return e.enter("listItemPrefix"),y===42||y===45?e.check(eh,n,f)(y):f(y);if(!r.interrupt||y===49)return e.enter("listItemPrefix"),e.enter("listItemValue"),u(y)}return n(y)}function u(y){return uv(y)&&++a<10?(e.consume(y),u):(!r.interrupt||a<2)&&(r.containerState.marker?y===r.containerState.marker:y===41||y===46)?(e.exit("listItemValue"),f(y)):n(y)}function f(y){return e.enter("listItemMarker"),e.consume(y),e.exit("listItemMarker"),r.containerState.marker=r.containerState.marker||y,e.check(Gm,r.interrupt?n:p,e.attempt(HK,g,h))}function p(y){return r.containerState.initialBlankLine=!0,i++,g(y)}function h(y){return zt(y)?(e.enter("listItemPrefixWhitespace"),e.consume(y),e.exit("listItemPrefixWhitespace"),g):n(y)}function g(y){return r.containerState.size=i+r.sliceSerialize(e.exit("listItemPrefix"),!0).length,t(y)}}function KK(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Gm,o,i);function o(l){return r.containerState.furtherBlankLines=r.containerState.furtherBlankLines||r.containerState.initialBlankLine,Yt(e,t,"listItemIndent",r.containerState.size+1)(l)}function i(l){return r.containerState.furtherBlankLines||!zt(l)?(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,a(l)):(r.containerState.furtherBlankLines=void 0,r.containerState.initialBlankLine=void 0,e.attempt(VK,t,a)(l))}function a(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Yt(e,e.attempt(yr,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function qK(e,t,n){const r=this;return Yt(e,o,"listItemIndent",r.containerState.size+1);function o(i){const a=r.events[r.events.length-1];return a&&a[1].type==="listItemIndent"&&a[2].sliceSerialize(a[1],!0).length===r.containerState.size?t(i):n(i)}}function GK(e){e.exit(this.containerState.type)}function YK(e,t,n){const r=this;return Yt(e,o,"listItemPrefixWhitespace",r.parser.constructs.disable.null.includes("codeIndented")?void 0:5);function o(i){const a=r.events[r.events.length-1];return!zt(i)&&a&&a[1].type==="listItemPrefixWhitespace"?t(i):n(i)}}const yS={name:"setextUnderline",resolveTo:XK,tokenize:QK};function XK(e,t){let n=e.length,r,o,i;for(;n--;)if(e[n][0]==="enter"){if(e[n][1].type==="content"){r=n;break}e[n][1].type==="paragraph"&&(o=n)}else e[n][1].type==="content"&&e.splice(n,1),!i&&e[n][1].type==="definition"&&(i=n);const a={type:"setextHeading",start:{...e[r][1].start},end:{...e[e.length-1][1].end}};return e[o][1].type="setextHeadingText",i?(e.splice(o,0,["enter",a,t]),e.splice(i+1,0,["exit",e[r][1],t]),e[r][1].end={...e[i][1].end}):e[r][1]=a,e.push(["exit",a,t]),e}function QK(e,t,n){const r=this;let o;return i;function i(f){let p=r.events.length,h;for(;p--;)if(r.events[p][1].type!=="lineEnding"&&r.events[p][1].type!=="linePrefix"&&r.events[p][1].type!=="content"){h=r.events[p][1].type==="paragraph";break}return!r.parser.lazy[r.now().line]&&(r.interrupt||h)?(e.enter("setextHeadingLine"),o=f,a(f)):n(f)}function a(f){return e.enter("setextHeadingLineSequence"),l(f)}function l(f){return f===o?(e.consume(f),l):(e.exit("setextHeadingLineSequence"),zt(f)?Yt(e,u,"lineSuffix")(f):u(f))}function u(f){return f===null||xt(f)?(e.exit("setextHeadingLine"),t(f)):n(f)}}const JK={tokenize:ZK};function ZK(e){const t=this,n=e.attempt(Gm,r,e.attempt(this.parser.constructs.flowInitial,o,Yt(e,e.attempt(this.parser.constructs.flow,o,e.attempt(sK,o)),"linePrefix")));return n;function r(i){if(i===null){e.consume(i);return}return e.enter("lineEndingBlank"),e.consume(i),e.exit("lineEndingBlank"),t.currentConstruct=void 0,n}function o(i){if(i===null){e.consume(i);return}return e.enter("lineEnding"),e.consume(i),e.exit("lineEnding"),t.currentConstruct=void 0,n}}const eq={resolveAll:e_()},tq=ZP("string"),nq=ZP("text");function ZP(e){return{resolveAll:e_(e==="text"?rq:void 0),tokenize:t};function t(n){const r=this,o=this.parser.constructs[e],i=n.attempt(o,a,l);return a;function a(p){return f(p)?i(p):l(p)}function l(p){if(p===null){n.consume(p);return}return n.enter("data"),n.consume(p),u}function u(p){return f(p)?(n.exit("data"),i(p)):(n.consume(p),u)}function f(p){if(p===null)return!0;const h=o[p];let g=-1;if(h)for(;++g<h.length;){const y=h[g];if(!y.previous||y.previous.call(r,r.previous))return!0}return!1}}}function e_(e){return t;function t(n,r){let o=-1,i;for(;++o<=n.length;)i===void 0?n[o]&&n[o][1].type==="data"&&(i=o,o++):(!n[o]||n[o][1].type!=="data")&&(o!==i+2&&(n[i][1].end=n[o-1][1].end,n.splice(i+2,o-i-2),o=i+2),i=void 0);return e?e(n,r):n}}function rq(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 r=e[n-1][1],o=t.sliceStream(r);let i=o.length,a=-1,l=0,u;for(;i--;){const f=o[i];if(typeof f=="string"){for(a=f.length;f.charCodeAt(a-1)===32;)l++,a--;if(a)break;a=-1}else if(f===-2)u=!0,l++;else if(f!==-1){i++;break}}if(t._contentTypeTextTrailing&&n===e.length&&(l=0),l){const f={type:n===e.length||u||l<2?"lineSuffix":"hardBreakTrailing",start:{_bufferIndex:i?a:r.start._bufferIndex+a,_index:r.start._index+i,line:r.end.line,column:r.end.column-l,offset:r.end.offset-l},end:{...r.end}};r.end={...f.start},r.start.offset===r.end.offset?Object.assign(r,f):(e.splice(n,0,["enter",f,t],["exit",f,t]),n+=2)}n++}return e}const sq={42:yr,43:yr,45:yr,48:yr,49:yr,50:yr,51:yr,52:yr,53:yr,54:yr,55:yr,56:yr,57:yr,62:KP},oq={91:cK},iq={[-2]:Dy,[-1]:Dy,32:Dy},aq={35:mK,42:eh,45:[yS,eh],60:bK,61:yS,95:eh,96:gS,126:gS},lq={38:GP,92:qP},cq={[-5]:$y,[-4]:$y,[-3]:$y,33:LK,38:GP,42:dv,60:[FW,CK],91:FK,92:[pK,qP],93:c0,95:dv,96:JW},uq={null:[dv,eq]},dq={null:[42,95]},fq={null:[]},pq=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:dq,contentInitial:oq,disable:fq,document:sq,flow:aq,flowInitial:iq,insideSpan:uq,string:lq,text:cq},Symbol.toStringTag,{value:"Module"}));function hq(e,t,n){let r={_bufferIndex:-1,_index:0,line:n&&n.line||1,column:n&&n.column||1,offset:n&&n.offset||0};const o={},i=[];let a=[],l=[];const u={attempt:R(P),check:R(T),consume:S,enter:N,exit:C,interrupt:R(T,{interrupt:!0})},f={code:null,containerState:{},defineSkip:v,events:[],now:k,parser:e,previous:null,sliceSerialize:g,sliceStream:y,write:h};let p=t.tokenize.call(f,u);return t.resolveAll&&i.push(t),f;function h(D){return a=es(a,D),b(),a[a.length-1]!==null?[]:(I(t,0),f.events=l0(i,f.events,f),f.events)}function g(D,W){return gq(y(D),W)}function y(D){return mq(a,D)}function k(){const{_bufferIndex:D,_index:W,line:V,column:$,offset:O}=r;return{_bufferIndex:D,_index:W,line:V,column:$,offset:O}}function v(D){o[D.line]=D.column,F()}function b(){let D;for(;r._index<a.length;){const W=a[r._index];if(typeof W=="string")for(D=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===D&&r._bufferIndex<W.length;)j(W.charCodeAt(r._bufferIndex));else j(W)}}function j(D){p=p(D)}function S(D){xt(D)?(r.line++,r.column=1,r.offset+=D===-3?2:1,F()):D!==-1&&(r.column++,r.offset++),r._bufferIndex<0?r._index++:(r._bufferIndex++,r._bufferIndex===a[r._index].length&&(r._bufferIndex=-1,r._index++)),f.previous=D}function N(D,W){const V=W||{};return V.type=D,V.start=k(),f.events.push(["enter",V,f]),l.push(V),V}function C(D){const W=l.pop();return W.end=k(),f.events.push(["exit",W,f]),W}function P(D,W){I(D,W.from)}function T(D,W){W.restore()}function R(D,W){return V;function V($,O,U){let K,M,H,L;return Array.isArray($)?Y($):"tokenize"in $?Y([$]):z($);function z(Z){return oe;function oe(ne){const ue=ne!==null&&Z[ne],ge=ne!==null&&Z.null,Ce=[...Array.isArray(ue)?ue:ue?[ue]:[],...Array.isArray(ge)?ge:ge?[ge]:[]];return Y(Ce)(ne)}}function Y(Z){return K=Z,M=0,Z.length===0?U:B(Z[M])}function B(Z){return oe;function oe(ne){return L=_(),H=Z,Z.partial||(f.currentConstruct=Z),Z.name&&f.parser.constructs.disable.null.includes(Z.name)?J():Z.tokenize.call(W?Object.assign(Object.create(f),W):f,u,Q,J)(ne)}}function Q(Z){return D(H,L),O}function J(Z){return L.restore(),++M<K.length?B(K[M]):U}}}function I(D,W){D.resolveAll&&!i.includes(D)&&i.push(D),D.resolve&&no(f.events,W,f.events.length-W,D.resolve(f.events.slice(W),f)),D.resolveTo&&(f.events=D.resolveTo(f.events,f))}function _(){const D=k(),W=f.previous,V=f.currentConstruct,$=f.events.length,O=Array.from(l);return{from:$,restore:U};function U(){r=D,f.previous=W,f.currentConstruct=V,f.events.length=$,l=O,F()}}function F(){r.line in o&&r.column<2&&(r.column=o[r.line],r.offset+=o[r.line]-1)}}function mq(e,t){const n=t.start._index,r=t.start._bufferIndex,o=t.end._index,i=t.end._bufferIndex;let a;if(n===o)a=[e[n].slice(r,i)];else{if(a=e.slice(n,o),r>-1){const l=a[0];typeof l=="string"?a[0]=l.slice(r):a.shift()}i>0&&a.push(e[o].slice(0,i))}return a}function gq(e,t){let n=-1;const r=[];let o;for(;++n<e.length;){const i=e[n];let a;if(typeof i=="string")a=i;else switch(i){case-5:{a="\r";break}case-4:{a=`
|
|
617
|
-
`;break}case-3:{a=`\r
|
|
618
|
-
`;break}case-2:{a=t?" ":" ";break}case-1:{if(!t&&o)continue;a=" ";break}default:a=String.fromCharCode(i)}o=i===-2,r.push(a)}return r.join("")}function xq(e){const r={constructs:NW([pq,...(e||{}).extensions||[]]),content:o(_W),defined:[],document:o($W),flow:o(JK),lazy:{},string:o(tq),text:o(nq)};return r;function o(i){return a;function a(l){return hq(r,i,l)}}}function yq(e){for(;!YP(e););return e}const bS=/[\0\t\n\r]/g;function bq(){let e=1,t="",n=!0,r;return o;function o(i,a,l){const u=[];let f,p,h,g,y;for(i=t+(typeof i=="string"?i.toString():new TextDecoder(a||void 0).decode(i)),h=0,t="",n&&(i.charCodeAt(0)===65279&&h++,n=void 0);h<i.length;){if(bS.lastIndex=h,f=bS.exec(i),g=f&&f.index!==void 0?f.index:i.length,y=i.charCodeAt(g),!f){t=i.slice(h);break}if(y===10&&h===g&&r)u.push(-3),r=void 0;else switch(r&&(u.push(-5),r=void 0),h<g&&(u.push(i.slice(h,g)),e+=g-h),y){case 0:{u.push(65533),e++;break}case 9:{for(p=Math.ceil(e/4)*4,u.push(-2);e++<p;)u.push(-1);break}case 10:{u.push(-4),e=1;break}default:r=!0,e=1}h=g+1}return l&&(r&&u.push(-5),t&&u.push(t),u.push(null)),u}}const vq=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function wq(e){return e.replace(vq,jq)}function jq(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){const o=n.charCodeAt(1),i=o===120||o===88;return WP(n.slice(i?2:1),i?16:10)}return a0(n)||e}const t_={}.hasOwnProperty;function kq(e,t,n){return t&&typeof t=="object"&&(n=t,t=void 0),Nq(n)(yq(xq(n).document().write(bq()(e,t,!0))))}function Nq(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(Ue),autolinkProtocol:_,autolinkEmail:_,atxHeading:i(ie),blockQuote:i(ge),characterEscape:_,characterReference:_,codeFenced:i(Ce),codeFencedFenceInfo:a,codeFencedFenceMeta:a,codeIndented:i(Ce,a),codeText:i(Se,a),codeTextData:_,data:_,codeFlowValue:_,definition:i(ke),definitionDestinationString:a,definitionLabelString:a,definitionTitleString:a,emphasis:i(Be),hardBreakEscape:i(ve),hardBreakTrailing:i(ve),htmlFlow:i(be,a),htmlFlowData:_,htmlText:i(be,a),htmlTextData:_,image:i(Re),label:a,link:i(Ue),listItem:i(Oe),listItemValue:g,listOrdered:i(rt,h),listUnordered:i(rt),paragraph:i(ot),reference:B,referenceString:a,resourceDestinationString:a,resourceTitleString:a,setextHeading:i(ie),strong:i(St),thematicBreak:i(at)},exit:{atxHeading:u(),atxHeadingSequence:P,autolink:u(),autolinkEmail:ue,autolinkProtocol:ne,blockQuote:u(),characterEscapeValue:F,characterReferenceMarkerHexadecimal:J,characterReferenceMarkerNumeric:J,characterReferenceValue:Z,characterReference:oe,codeFenced:u(b),codeFencedFence:v,codeFencedFenceInfo:y,codeFencedFenceMeta:k,codeFlowValue:F,codeIndented:u(j),codeText:u(O),codeTextData:F,data:F,definition:u(),definitionDestinationString:C,definitionLabelString:S,definitionTitleString:N,emphasis:u(),hardBreakEscape:u(W),hardBreakTrailing:u(W),htmlFlow:u(V),htmlFlowData:F,htmlText:u($),htmlTextData:F,image:u(K),label:H,labelText:M,lineEnding:D,link:u(U),listItem:u(),listOrdered:u(),listUnordered:u(),paragraph:u(),referenceString:Q,resourceDestinationString:L,resourceTitleString:z,resource:Y,setextHeading:u(I),setextHeadingLineSequence:R,setextHeadingText:T,strong:u(),thematicBreak:u()}};n_(t,(e||{}).mdastExtensions||[]);const n={};return r;function r(ce){let me={type:"root",children:[]};const Ie={stack:[me],tokenStack:[],config:t,enter:l,exit:f,buffer:a,resume:p,data:n},Ae=[];let Ve=-1;for(;++Ve<ce.length;)if(ce[Ve][1].type==="listOrdered"||ce[Ve][1].type==="listUnordered")if(ce[Ve][0]==="enter")Ae.push(Ve);else{const pt=Ae.pop();Ve=o(ce,pt,Ve)}for(Ve=-1;++Ve<ce.length;){const pt=t[ce[Ve][0]];t_.call(pt,ce[Ve][1].type)&&pt[ce[Ve][1].type].call(Object.assign({sliceSerialize:ce[Ve][2].sliceSerialize},Ie),ce[Ve][1])}if(Ie.tokenStack.length>0){const pt=Ie.tokenStack[Ie.tokenStack.length-1];(pt[1]||vS).call(Ie,void 0,pt[0])}for(me.position={start:di(ce.length>0?ce[0][1].start:{line:1,column:1,offset:0}),end:di(ce.length>0?ce[ce.length-2][1].end:{line:1,column:1,offset:0})},Ve=-1;++Ve<t.transforms.length;)me=t.transforms[Ve](me)||me;return me}function o(ce,me,Ie){let Ae=me-1,Ve=-1,pt=!1,_e,Qe,Je,ut;for(;++Ae<=Ie;){const fe=ce[Ae];switch(fe[1].type){case"listUnordered":case"listOrdered":case"blockQuote":{fe[0]==="enter"?Ve++:Ve--,ut=void 0;break}case"lineEndingBlank":{fe[0]==="enter"&&(_e&&!ut&&!Ve&&!Je&&(Je=Ae),ut=void 0);break}case"linePrefix":case"listItemValue":case"listItemMarker":case"listItemPrefix":case"listItemPrefixWhitespace":break;default:ut=void 0}if(!Ve&&fe[0]==="enter"&&fe[1].type==="listItemPrefix"||Ve===-1&&fe[0]==="exit"&&(fe[1].type==="listUnordered"||fe[1].type==="listOrdered")){if(_e){let q=Ae;for(Qe=void 0;q--;){const re=ce[q];if(re[1].type==="lineEnding"||re[1].type==="lineEndingBlank"){if(re[0]==="exit")continue;Qe&&(ce[Qe][1].type="lineEndingBlank",pt=!0),re[1].type="lineEnding",Qe=q}else if(!(re[1].type==="linePrefix"||re[1].type==="blockQuotePrefix"||re[1].type==="blockQuotePrefixWhitespace"||re[1].type==="blockQuoteMarker"||re[1].type==="listItemIndent"))break}Je&&(!Qe||Je<Qe)&&(_e._spread=!0),_e.end=Object.assign({},Qe?ce[Qe][1].start:fe[1].end),ce.splice(Qe||Ae,0,["exit",_e,fe[2]]),Ae++,Ie++}if(fe[1].type==="listItemPrefix"){const q={type:"listItem",_spread:!1,start:Object.assign({},fe[1].start),end:void 0};_e=q,ce.splice(Ae,0,["enter",q,fe[2]]),Ae++,Ie++,Je=void 0,ut=!0}}}return ce[me][1]._spread=pt,Ie}function i(ce,me){return Ie;function Ie(Ae){l.call(this,ce(Ae),Ae),me&&me.call(this,Ae)}}function a(){this.stack.push({type:"fragment",children:[]})}function l(ce,me,Ie){this.stack[this.stack.length-1].children.push(ce),this.stack.push(ce),this.tokenStack.push([me,Ie||void 0]),ce.position={start:di(me.start),end:void 0}}function u(ce){return me;function me(Ie){ce&&ce.call(this,Ie),f.call(this,Ie)}}function f(ce,me){const Ie=this.stack.pop(),Ae=this.tokenStack.pop();if(Ae)Ae[0].type!==ce.type&&(me?me.call(this,ce,Ae[0]):(Ae[1]||vS).call(this,ce,Ae[0]));else throw new Error("Cannot close `"+ce.type+"` ("+Qu({start:ce.start,end:ce.end})+"): it’s not open");Ie.position.end=di(ce.end)}function p(){return jW(this.stack.pop())}function h(){this.data.expectingFirstListItemValue=!0}function g(ce){if(this.data.expectingFirstListItemValue){const me=this.stack[this.stack.length-2];me.start=Number.parseInt(this.sliceSerialize(ce),10),this.data.expectingFirstListItemValue=void 0}}function y(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.lang=ce}function k(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.meta=ce}function v(){this.data.flowCodeInside||(this.buffer(),this.data.flowCodeInside=!0)}function b(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.value=ce.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g,""),this.data.flowCodeInside=void 0}function j(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.value=ce.replace(/(\r?\n|\r)$/g,"")}function S(ce){const me=this.resume(),Ie=this.stack[this.stack.length-1];Ie.label=me,Ie.identifier=Gl(this.sliceSerialize(ce)).toLowerCase()}function N(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.title=ce}function C(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.url=ce}function P(ce){const me=this.stack[this.stack.length-1];if(!me.depth){const Ie=this.sliceSerialize(ce).length;me.depth=Ie}}function T(){this.data.setextHeadingSlurpLineEnding=!0}function R(ce){const me=this.stack[this.stack.length-1];me.depth=this.sliceSerialize(ce).codePointAt(0)===61?1:2}function I(){this.data.setextHeadingSlurpLineEnding=void 0}function _(ce){const Ie=this.stack[this.stack.length-1].children;let Ae=Ie[Ie.length-1];(!Ae||Ae.type!=="text")&&(Ae=mt(),Ae.position={start:di(ce.start),end:void 0},Ie.push(Ae)),this.stack.push(Ae)}function F(ce){const me=this.stack.pop();me.value+=this.sliceSerialize(ce),me.position.end=di(ce.end)}function D(ce){const me=this.stack[this.stack.length-1];if(this.data.atHardBreak){const Ie=me.children[me.children.length-1];Ie.position.end=di(ce.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(me.type)&&(_.call(this,ce),F.call(this,ce))}function W(){this.data.atHardBreak=!0}function V(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.value=ce}function $(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.value=ce}function O(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.value=ce}function U(){const ce=this.stack[this.stack.length-1];if(this.data.inReference){const me=this.data.referenceType||"shortcut";ce.type+="Reference",ce.referenceType=me,delete ce.url,delete ce.title}else delete ce.identifier,delete ce.label;this.data.referenceType=void 0}function K(){const ce=this.stack[this.stack.length-1];if(this.data.inReference){const me=this.data.referenceType||"shortcut";ce.type+="Reference",ce.referenceType=me,delete ce.url,delete ce.title}else delete ce.identifier,delete ce.label;this.data.referenceType=void 0}function M(ce){const me=this.sliceSerialize(ce),Ie=this.stack[this.stack.length-2];Ie.label=wq(me),Ie.identifier=Gl(me).toLowerCase()}function H(){const ce=this.stack[this.stack.length-1],me=this.resume(),Ie=this.stack[this.stack.length-1];if(this.data.inReference=!0,Ie.type==="link"){const Ae=ce.children;Ie.children=Ae}else Ie.alt=me}function L(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.url=ce}function z(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.title=ce}function Y(){this.data.inReference=void 0}function B(){this.data.referenceType="collapsed"}function Q(ce){const me=this.resume(),Ie=this.stack[this.stack.length-1];Ie.label=me,Ie.identifier=Gl(this.sliceSerialize(ce)).toLowerCase(),this.data.referenceType="full"}function J(ce){this.data.characterReferenceType=ce.type}function Z(ce){const me=this.sliceSerialize(ce),Ie=this.data.characterReferenceType;let Ae;Ie?(Ae=WP(me,Ie==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):Ae=a0(me);const Ve=this.stack[this.stack.length-1];Ve.value+=Ae}function oe(ce){const me=this.stack.pop();me.position.end=di(ce.end)}function ne(ce){F.call(this,ce);const me=this.stack[this.stack.length-1];me.url=this.sliceSerialize(ce)}function ue(ce){F.call(this,ce);const me=this.stack[this.stack.length-1];me.url="mailto:"+this.sliceSerialize(ce)}function ge(){return{type:"blockquote",children:[]}}function Ce(){return{type:"code",lang:null,meta:null,value:""}}function Se(){return{type:"inlineCode",value:""}}function ke(){return{type:"definition",identifier:"",label:null,title:null,url:""}}function Be(){return{type:"emphasis",children:[]}}function ie(){return{type:"heading",depth:0,children:[]}}function ve(){return{type:"break"}}function be(){return{type:"html",value:""}}function Re(){return{type:"image",title:null,url:"",alt:null}}function Ue(){return{type:"link",title:null,url:"",children:[]}}function rt(ce){return{type:"list",ordered:ce.type==="listOrdered",start:null,spread:ce._spread,children:[]}}function Oe(ce){return{type:"listItem",spread:ce._spread,checked:null,children:[]}}function ot(){return{type:"paragraph",children:[]}}function St(){return{type:"strong",children:[]}}function mt(){return{type:"text",value:""}}function at(){return{type:"thematicBreak"}}}function di(e){return{line:e.line,column:e.column,offset:e.offset}}function n_(e,t){let n=-1;for(;++n<t.length;){const r=t[n];Array.isArray(r)?n_(e,r):Sq(e,r)}}function Sq(e,t){let n;for(n in t)if(t_.call(t,n))switch(n){case"canContainEols":{const r=t[n];r&&e[n].push(...r);break}case"transforms":{const r=t[n];r&&e[n].push(...r);break}case"enter":case"exit":{const r=t[n];r&&Object.assign(e[n],r);break}}}function vS(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+Qu({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+Qu({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+Qu({start:t.start,end:t.end})+") is still open")}function Cq(e){const t=this;t.parser=n;function n(r){return kq(r,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function Eq(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 Tq(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:`
|
|
619
|
-
`}]}function Rq(e,t){const n=t.value?t.value+`
|
|
620
|
-
`:"",r={},o=t.lang?t.lang.split(/\s+/):[];o.length>0&&(r.className=["language-"+o[0]]);let i={type:"element",tagName:"code",properties:r,children:[{type:"text",value:n}]};return t.meta&&(i.data={meta:t.meta}),e.patch(t,i),i=e.applyData(t,i),i={type:"element",tagName:"pre",properties:{},children:[i]},e.patch(t,i),i}function Aq(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Pq(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function _q(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),o=Dc(r.toLowerCase()),i=e.footnoteOrder.indexOf(r);let a,l=e.footnoteCounts.get(r);l===void 0?(l=0,e.footnoteOrder.push(r),a=e.footnoteOrder.length):a=i+1,l+=1,e.footnoteCounts.set(r,l);const u={type:"element",tagName:"a",properties:{href:"#"+n+"fn-"+o,id:n+"fnref-"+o+(l>1?"-"+l:""),dataFootnoteRef:!0,ariaDescribedBy:["footnote-label"]},children:[{type:"text",value:String(a)}]};e.patch(t,u);const f={type:"element",tagName:"sup",properties:{},children:[u]};return e.patch(t,f),e.applyData(t,f)}function Dq(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 $q(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function r_(e,t){const n=t.referenceType;let r="]";if(n==="collapsed"?r+="[]":n==="full"&&(r+="["+(t.label||t.identifier)+"]"),t.type==="imageReference")return[{type:"text",value:"!["+t.alt+r}];const o=e.all(t),i=o[0];i&&i.type==="text"?i.value="["+i.value:o.unshift({type:"text",value:"["});const a=o[o.length-1];return a&&a.type==="text"?a.value+=r:o.push({type:"text",value:r}),o}function Iq(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return r_(e,t);const o={src:Dc(r.url||""),alt:t.alt};r.title!==null&&r.title!==void 0&&(o.title=r.title);const i={type:"element",tagName:"img",properties:o,children:[]};return e.patch(t,i),e.applyData(t,i)}function Mq(e,t){const n={src:Dc(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 r={type:"element",tagName:"img",properties:n,children:[]};return e.patch(t,r),e.applyData(t,r)}function Lq(e,t){const n={type:"text",value:t.value.replace(/\r?\n|\r/g," ")};e.patch(t,n);const r={type:"element",tagName:"code",properties:{},children:[n]};return e.patch(t,r),e.applyData(t,r)}function Oq(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return r_(e,t);const o={href:Dc(r.url||"")};r.title!==null&&r.title!==void 0&&(o.title=r.title);const i={type:"element",tagName:"a",properties:o,children:e.all(t)};return e.patch(t,i),e.applyData(t,i)}function Fq(e,t){const n={href:Dc(t.url)};t.title!==null&&t.title!==void 0&&(n.title=t.title);const r={type:"element",tagName:"a",properties:n,children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function zq(e,t,n){const r=e.all(t),o=n?Bq(n):s_(t),i={},a=[];if(typeof t.checked=="boolean"){const p=r[0];let h;p&&p.type==="element"&&p.tagName==="p"?h=p:(h={type:"element",tagName:"p",properties:{},children:[]},r.unshift(h)),h.children.length>0&&h.children.unshift({type:"text",value:" "}),h.children.unshift({type:"element",tagName:"input",properties:{type:"checkbox",checked:t.checked,disabled:!0},children:[]}),i.className=["task-list-item"]}let l=-1;for(;++l<r.length;){const p=r[l];(o||l!==0||p.type!=="element"||p.tagName!=="p")&&a.push({type:"text",value:`
|
|
621
|
-
`}),p.type==="element"&&p.tagName==="p"&&!o?a.push(...p.children):a.push(p)}const u=r[r.length-1];u&&(o||u.type!=="element"||u.tagName!=="p")&&a.push({type:"text",value:`
|
|
622
|
-
`});const f={type:"element",tagName:"li",properties:i,children:a};return e.patch(t,f),e.applyData(t,f)}function Bq(e){let t=!1;if(e.type==="list"){t=e.spread||!1;const n=e.children;let r=-1;for(;!t&&++r<n.length;)t=s_(n[r])}return t}function s_(e){const t=e.spread;return t??e.children.length>1}function Uq(e,t){const n={},r=e.all(t);let o=-1;for(typeof t.start=="number"&&t.start!==1&&(n.start=t.start);++o<r.length;){const a=r[o];if(a.type==="element"&&a.tagName==="li"&&a.properties&&Array.isArray(a.properties.className)&&a.properties.className.includes("task-list-item")){n.className=["contains-task-list"];break}}const i={type:"element",tagName:t.ordered?"ol":"ul",properties:n,children:e.wrap(r,!0)};return e.patch(t,i),e.applyData(t,i)}function Hq(e,t){const n={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Vq(e,t){const n={type:"root",children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)}function Wq(e,t){const n={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Kq(e,t){const n=e.all(t),r=n.shift(),o=[];if(r){const a={type:"element",tagName:"thead",properties:{},children:e.wrap([r],!0)};e.patch(t.children[0],a),o.push(a)}if(n.length>0){const a={type:"element",tagName:"tbody",properties:{},children:e.wrap(n,!0)},l=r0(t.children[1]),u=OP(t.children[t.children.length-1]);l&&u&&(a.position={start:l,end:u}),o.push(a)}const i={type:"element",tagName:"table",properties:{},children:e.wrap(o,!0)};return e.patch(t,i),e.applyData(t,i)}function qq(e,t,n){const r=n?n.children:void 0,i=(r?r.indexOf(t):1)===0?"th":"td",a=n&&n.type==="table"?n.align:void 0,l=a?a.length:t.children.length;let u=-1;const f=[];for(;++u<l;){const h=t.children[u],g={},y=a?a[u]:void 0;y&&(g.align=y);let k={type:"element",tagName:i,properties:g,children:[]};h&&(k.children=e.all(h),e.patch(h,k),k=e.applyData(h,k)),f.push(k)}const p={type:"element",tagName:"tr",properties:{},children:e.wrap(f,!0)};return e.patch(t,p),e.applyData(t,p)}function Gq(e,t){const n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}const wS=9,jS=32;function Yq(e){const t=String(e),n=/\r?\n|\r/g;let r=n.exec(t),o=0;const i=[];for(;r;)i.push(kS(t.slice(o,r.index),o>0,!0),r[0]),o=r.index+r[0].length,r=n.exec(t);return i.push(kS(t.slice(o),o>0,!1)),i.join("")}function kS(e,t,n){let r=0,o=e.length;if(t){let i=e.codePointAt(r);for(;i===wS||i===jS;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(o-1);for(;i===wS||i===jS;)o--,i=e.codePointAt(o-1)}return o>r?e.slice(r,o):""}function Xq(e,t){const n={type:"text",value:Yq(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function Qq(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const Jq={blockquote:Eq,break:Tq,code:Rq,delete:Aq,emphasis:Pq,footnoteReference:_q,heading:Dq,html:$q,imageReference:Iq,image:Mq,inlineCode:Lq,linkReference:Oq,link:Fq,listItem:zq,list:Uq,paragraph:Hq,root:Vq,strong:Wq,table:Kq,tableCell:Gq,tableRow:qq,text:Xq,thematicBreak:Qq,toml:vp,yaml:vp,definition:vp,footnoteDefinition:vp};function vp(){}const o_=-1,Ym=0,Zu=1,$h=2,u0=3,d0=4,f0=5,p0=6,i_=7,a_=8,NS=typeof self=="object"?self:globalThis,Zq=(e,t)=>{const n=(o,i)=>(e.set(i,o),o),r=o=>{if(e.has(o))return e.get(o);const[i,a]=t[o];switch(i){case Ym:case o_:return n(a,o);case Zu:{const l=n([],o);for(const u of a)l.push(r(u));return l}case $h:{const l=n({},o);for(const[u,f]of a)l[r(u)]=r(f);return l}case u0:return n(new Date(a),o);case d0:{const{source:l,flags:u}=a;return n(new RegExp(l,u),o)}case f0:{const l=n(new Map,o);for(const[u,f]of a)l.set(r(u),r(f));return l}case p0:{const l=n(new Set,o);for(const u of a)l.add(r(u));return l}case i_:{const{name:l,message:u}=a;return n(new NS[l](u),o)}case a_:return n(BigInt(a),o);case"BigInt":return n(Object(BigInt(a)),o);case"ArrayBuffer":return n(new Uint8Array(a).buffer,a);case"DataView":{const{buffer:l}=new Uint8Array(a);return n(new DataView(l),a)}}return n(new NS[i](a),o)};return r},SS=e=>Zq(new Map,e)(0),vl="",{toString:eG}={},{keys:tG}=Object,Su=e=>{const t=typeof e;if(t!=="object"||!e)return[Ym,t];const n=eG.call(e).slice(8,-1);switch(n){case"Array":return[Zu,vl];case"Object":return[$h,vl];case"Date":return[u0,vl];case"RegExp":return[d0,vl];case"Map":return[f0,vl];case"Set":return[p0,vl];case"DataView":return[Zu,n]}return n.includes("Array")?[Zu,n]:n.includes("Error")?[i_,n]:[$h,n]},wp=([e,t])=>e===Ym&&(t==="function"||t==="symbol"),nG=(e,t,n,r)=>{const o=(a,l)=>{const u=r.push(a)-1;return n.set(l,u),u},i=a=>{if(n.has(a))return n.get(a);let[l,u]=Su(a);switch(l){case Ym:{let p=a;switch(u){case"bigint":l=a_,p=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+u);p=null;break;case"undefined":return o([o_],a)}return o([l,p],a)}case Zu:{if(u){let g=a;return u==="DataView"?g=new Uint8Array(a.buffer):u==="ArrayBuffer"&&(g=new Uint8Array(a)),o([u,[...g]],a)}const p=[],h=o([l,p],a);for(const g of a)p.push(i(g));return h}case $h:{if(u)switch(u){case"BigInt":return o([u,a.toString()],a);case"Boolean":case"Number":case"String":return o([u,a.valueOf()],a)}if(t&&"toJSON"in a)return i(a.toJSON());const p=[],h=o([l,p],a);for(const g of tG(a))(e||!wp(Su(a[g])))&&p.push([i(g),i(a[g])]);return h}case u0:return o([l,a.toISOString()],a);case d0:{const{source:p,flags:h}=a;return o([l,{source:p,flags:h}],a)}case f0:{const p=[],h=o([l,p],a);for(const[g,y]of a)(e||!(wp(Su(g))||wp(Su(y))))&&p.push([i(g),i(y)]);return h}case p0:{const p=[],h=o([l,p],a);for(const g of a)(e||!wp(Su(g)))&&p.push(i(g));return h}}const{message:f}=a;return o([l,{name:u,message:f}],a)};return i},CS=(e,{json:t,lossy:n}={})=>{const r=[];return nG(!(t||n),!!t,new Map,r)(e),r},Ih=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?SS(CS(e,t)):structuredClone(e):(e,t)=>SS(CS(e,t));function rG(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 sG(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function oG(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||rG,r=e.options.footnoteBackLabel||sG,o=e.options.footnoteLabel||"Footnotes",i=e.options.footnoteLabelTagName||"h2",a=e.options.footnoteLabelProperties||{className:["sr-only"]},l=[];let u=-1;for(;++u<e.footnoteOrder.length;){const f=e.footnoteById.get(e.footnoteOrder[u]);if(!f)continue;const p=e.all(f),h=String(f.identifier).toUpperCase(),g=Dc(h.toLowerCase());let y=0;const k=[],v=e.footnoteCounts.get(h);for(;v!==void 0&&++y<=v;){k.length>0&&k.push({type:"text",value:" "});let S=typeof n=="string"?n:n(u,y);typeof S=="string"&&(S={type:"text",value:S}),k.push({type:"element",tagName:"a",properties:{href:"#"+t+"fnref-"+g+(y>1?"-"+y:""),dataFootnoteBackref:"",ariaLabel:typeof r=="string"?r:r(u,y),className:["data-footnote-backref"]},children:Array.isArray(S)?S:[S]})}const b=p[p.length-1];if(b&&b.type==="element"&&b.tagName==="p"){const S=b.children[b.children.length-1];S&&S.type==="text"?S.value+=" ":b.children.push({type:"text",value:" "}),b.children.push(...k)}else p.push(...k);const j={type:"element",tagName:"li",properties:{id:t+"fn-"+g},children:e.wrap(p,!0)};e.patch(f,j),l.push(j)}if(l.length!==0)return{type:"element",tagName:"section",properties:{dataFootnotes:!0,className:["footnotes"]},children:[{type:"element",tagName:i,properties:{...Ih(a),id:"footnote-label"},children:[{type:"text",value:o}]},{type:"text",value:`
|
|
623
|
-
`},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:`
|
|
624
|
-
`}]}}const l_=(function(e){if(e==null)return cG;if(typeof e=="function")return Xm(e);if(typeof e=="object")return Array.isArray(e)?iG(e):aG(e);if(typeof e=="string")return lG(e);throw new Error("Expected function, string, or object as test")});function iG(e){const t=[];let n=-1;for(;++n<e.length;)t[n]=l_(e[n]);return Xm(r);function r(...o){let i=-1;for(;++i<t.length;)if(t[i].apply(this,o))return!0;return!1}}function aG(e){const t=e;return Xm(n);function n(r){const o=r;let i;for(i in e)if(o[i]!==t[i])return!1;return!0}}function lG(e){return Xm(t);function t(n){return n&&n.type===e}}function Xm(e){return t;function t(n,r,o){return!!(uG(n)&&e.call(this,n,typeof r=="number"?r:void 0,o||void 0))}}function cG(){return!0}function uG(e){return e!==null&&typeof e=="object"&&"type"in e}const c_=[],dG=!0,ES=!1,fG="skip";function pG(e,t,n,r){let o;typeof t=="function"&&typeof n!="function"?(r=n,n=t):o=t;const i=l_(o),a=r?-1:1;l(e,void 0,[])();function l(u,f,p){const h=u&&typeof u=="object"?u:{};if(typeof h.type=="string"){const y=typeof h.tagName=="string"?h.tagName:typeof h.name=="string"?h.name:void 0;Object.defineProperty(g,"name",{value:"node ("+(u.type+(y?"<"+y+">":""))+")"})}return g;function g(){let y=c_,k,v,b;if((!t||i(u,f,p[p.length-1]||void 0))&&(y=hG(n(u,p)),y[0]===ES))return y;if("children"in u&&u.children){const j=u;if(j.children&&y[0]!==fG)for(v=(r?j.children.length:-1)+a,b=p.concat(j);v>-1&&v<j.children.length;){const S=j.children[v];if(k=l(S,v,b)(),k[0]===ES)return k;v=typeof k[1]=="number"?k[1]:v+a}}return y}}}function hG(e){return Array.isArray(e)?e:typeof e=="number"?[dG,e]:e==null?c_:[e]}function u_(e,t,n,r){let o,i,a;typeof t=="function"&&typeof n!="function"?(i=void 0,a=t,o=n):(i=t,a=n,o=r),pG(e,i,l,o);function l(u,f){const p=f[f.length-1],h=p?p.children.indexOf(u):void 0;return a(u,h,p)}}const fv={}.hasOwnProperty,mG={};function gG(e,t){const n=t||mG,r=new Map,o=new Map,i=new Map,a={...Jq,...n.handlers},l={all:f,applyData:yG,definitionById:r,footnoteById:o,footnoteCounts:i,footnoteOrder:[],handlers:a,one:u,options:n,patch:xG,wrap:vG};return u_(e,function(p){if(p.type==="definition"||p.type==="footnoteDefinition"){const h=p.type==="definition"?r:o,g=String(p.identifier).toUpperCase();h.has(g)||h.set(g,p)}}),l;function u(p,h){const g=p.type,y=l.handlers[g];if(fv.call(l.handlers,g)&&y)return y(l,p,h);if(l.options.passThrough&&l.options.passThrough.includes(g)){if("children"in p){const{children:v,...b}=p,j=Ih(b);return j.children=l.all(p),j}return Ih(p)}return(l.options.unknownHandler||bG)(l,p,h)}function f(p){const h=[];if("children"in p){const g=p.children;let y=-1;for(;++y<g.length;){const k=l.one(g[y],p);if(k){if(y&&g[y-1].type==="break"&&(!Array.isArray(k)&&k.type==="text"&&(k.value=TS(k.value)),!Array.isArray(k)&&k.type==="element")){const v=k.children[0];v&&v.type==="text"&&(v.value=TS(v.value))}Array.isArray(k)?h.push(...k):h.push(k)}}}return h}}function xG(e,t){e.position&&(t.position=eW(e))}function yG(e,t){let n=t;if(e&&e.data){const r=e.data.hName,o=e.data.hChildren,i=e.data.hProperties;if(typeof r=="string")if(n.type==="element")n.tagName=r;else{const a="children"in n?n.children:[n];n={type:"element",tagName:r,properties:{},children:a}}n.type==="element"&&i&&Object.assign(n.properties,Ih(i)),"children"in n&&n.children&&o!==null&&o!==void 0&&(n.children=o)}return n}function bG(e,t){const n=t.data||{},r="value"in t&&!(fv.call(n,"hProperties")||fv.call(n,"hChildren"))?{type:"text",value:t.value}:{type:"element",tagName:"div",properties:{},children:e.all(t)};return e.patch(t,r),e.applyData(t,r)}function vG(e,t){const n=[];let r=-1;for(t&&n.push({type:"text",value:`
|
|
625
|
-
`});++r<e.length;)r&&n.push({type:"text",value:`
|
|
626
|
-
`}),n.push(e[r]);return t&&e.length>0&&n.push({type:"text",value:`
|
|
627
|
-
`}),n}function TS(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function RS(e,t){const n=gG(e,t),r=n.one(e,void 0),o=oG(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return o&&i.children.push({type:"text",value:`
|
|
628
|
-
`},o),i}function wG(e,t){return e&&"run"in e?async function(n,r){const o=RS(n,{file:r,...t});await e.run(o,r)}:function(n,r){return RS(n,{file:r,...e||t})}}function AS(e){if(e)throw e}var Iy,PS;function jG(){if(PS)return Iy;PS=1;var e=Object.prototype.hasOwnProperty,t=Object.prototype.toString,n=Object.defineProperty,r=Object.getOwnPropertyDescriptor,o=function(f){return typeof Array.isArray=="function"?Array.isArray(f):t.call(f)==="[object Array]"},i=function(f){if(!f||t.call(f)!=="[object Object]")return!1;var p=e.call(f,"constructor"),h=f.constructor&&f.constructor.prototype&&e.call(f.constructor.prototype,"isPrototypeOf");if(f.constructor&&!p&&!h)return!1;var g;for(g in f);return typeof g>"u"||e.call(f,g)},a=function(f,p){n&&p.name==="__proto__"?n(f,p.name,{enumerable:!0,configurable:!0,value:p.newValue,writable:!0}):f[p.name]=p.newValue},l=function(f,p){if(p==="__proto__")if(e.call(f,p)){if(r)return r(f,p).value}else return;return f[p]};return Iy=function u(){var f,p,h,g,y,k,v=arguments[0],b=1,j=arguments.length,S=!1;for(typeof v=="boolean"&&(S=v,v=arguments[1]||{},b=2),(v==null||typeof v!="object"&&typeof v!="function")&&(v={});b<j;++b)if(f=arguments[b],f!=null)for(p in f)h=l(v,p),g=l(f,p),v!==g&&(S&&g&&(i(g)||(y=o(g)))?(y?(y=!1,k=h&&o(h)?h:[]):k=h&&i(h)?h:{},a(v,{name:p,newValue:u(S,k,g)})):typeof g<"u"&&a(v,{name:p,newValue:g}));return v},Iy}var kG=jG();const My=Pd(kG);function pv(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 NG(){const e=[],t={run:n,use:r};return t;function n(...o){let i=-1;const a=o.pop();if(typeof a!="function")throw new TypeError("Expected function as last argument, not "+a);l(null,...o);function l(u,...f){const p=e[++i];let h=-1;if(u){a(u);return}for(;++h<o.length;)(f[h]===null||f[h]===void 0)&&(f[h]=o[h]);o=f,p?SG(p,l)(...f):a(null,...f)}}function r(o){if(typeof o!="function")throw new TypeError("Expected `middelware` to be a function, not "+o);return e.push(o),t}}function SG(e,t){let n;return r;function r(...a){const l=e.length>a.length;let u;l&&a.push(o);try{u=e.apply(this,a)}catch(f){const p=f;if(l&&n)throw p;return o(p)}l||(u&&u.then&&typeof u.then=="function"?u.then(i,o):u instanceof Error?o(u):i(u))}function o(a,...l){n||(n=!0,t(a,...l))}function i(a){o(null,a)}}const Ws={basename:CG,dirname:EG,extname:TG,join:RG,sep:"/"};function CG(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Jd(e);let n=0,r=-1,o=e.length,i;if(t===void 0||t.length===0||t.length>e.length){for(;o--;)if(e.codePointAt(o)===47){if(i){n=o+1;break}}else r<0&&(i=!0,r=o+1);return r<0?"":e.slice(n,r)}if(t===e)return"";let a=-1,l=t.length-1;for(;o--;)if(e.codePointAt(o)===47){if(i){n=o+1;break}}else a<0&&(i=!0,a=o+1),l>-1&&(e.codePointAt(o)===t.codePointAt(l--)?l<0&&(r=o):(l=-1,r=a));return n===r?r=a:r<0&&(r=e.length),e.slice(n,r)}function EG(e){if(Jd(e),e.length===0)return".";let t=-1,n=e.length,r;for(;--n;)if(e.codePointAt(n)===47){if(r){t=n;break}}else r||(r=!0);return t<0?e.codePointAt(0)===47?"/":".":t===1&&e.codePointAt(0)===47?"//":e.slice(0,t)}function TG(e){Jd(e);let t=e.length,n=-1,r=0,o=-1,i=0,a;for(;t--;){const l=e.codePointAt(t);if(l===47){if(a){r=t+1;break}continue}n<0&&(a=!0,n=t+1),l===46?o<0?o=t:i!==1&&(i=1):o>-1&&(i=-1)}return o<0||n<0||i===0||i===1&&o===n-1&&o===r+1?"":e.slice(o,n)}function RG(...e){let t=-1,n;for(;++t<e.length;)Jd(e[t]),e[t]&&(n=n===void 0?e[t]:n+"/"+e[t]);return n===void 0?".":AG(n)}function AG(e){Jd(e);const t=e.codePointAt(0)===47;let n=PG(e,!t);return n.length===0&&!t&&(n="."),n.length>0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function PG(e,t){let n="",r=0,o=-1,i=0,a=-1,l,u;for(;++a<=e.length;){if(a<e.length)l=e.codePointAt(a);else{if(l===47)break;l=47}if(l===47){if(!(o===a-1||i===1))if(o!==a-1&&i===2){if(n.length<2||r!==2||n.codePointAt(n.length-1)!==46||n.codePointAt(n.length-2)!==46){if(n.length>2){if(u=n.lastIndexOf("/"),u!==n.length-1){u<0?(n="",r=0):(n=n.slice(0,u),r=n.length-1-n.lastIndexOf("/")),o=a,i=0;continue}}else if(n.length>0){n="",r=0,o=a,i=0;continue}}t&&(n=n.length>0?n+"/..":"..",r=2)}else n.length>0?n+="/"+e.slice(o+1,a):n=e.slice(o+1,a),r=a-o-1;o=a,i=0}else l===46&&i>-1?i++:i=-1}return n}function Jd(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const _G={cwd:DG};function DG(){return"/"}function hv(e){return!!(e!==null&&typeof e=="object"&&"href"in e&&e.href&&"protocol"in e&&e.protocol&&e.auth===void 0)}function $G(e){if(typeof e=="string")e=new URL(e);else if(!hv(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 IG(e)}function IG(e){if(e.hostname!==""){const r=new TypeError('File URL host must be "localhost" or empty on darwin');throw r.code="ERR_INVALID_FILE_URL_HOST",r}const t=e.pathname;let n=-1;for(;++n<t.length;)if(t.codePointAt(n)===37&&t.codePointAt(n+1)===50){const r=t.codePointAt(n+2);if(r===70||r===102){const o=new TypeError("File URL path must not include encoded / characters");throw o.code="ERR_INVALID_FILE_URL_PATH",o}}return decodeURIComponent(t)}const Ly=["history","path","basename","stem","extname","dirname"];class d_{constructor(t){let n;t?hv(t)?n={path:t}:typeof t=="string"||MG(t)?n={value:t}:n=t:n={},this.cwd="cwd"in n?"":_G.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let r=-1;for(;++r<Ly.length;){const i=Ly[r];i in n&&n[i]!==void 0&&n[i]!==null&&(this[i]=i==="history"?[...n[i]]:n[i])}let o;for(o in n)Ly.includes(o)||(this[o]=n[o])}get basename(){return typeof this.path=="string"?Ws.basename(this.path):void 0}set basename(t){Fy(t,"basename"),Oy(t,"basename"),this.path=Ws.join(this.dirname||"",t)}get dirname(){return typeof this.path=="string"?Ws.dirname(this.path):void 0}set dirname(t){_S(this.basename,"dirname"),this.path=Ws.join(t||"",this.basename)}get extname(){return typeof this.path=="string"?Ws.extname(this.path):void 0}set extname(t){if(Oy(t,"extname"),_S(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=Ws.join(this.dirname,this.stem+(t||""))}get path(){return this.history[this.history.length-1]}set path(t){hv(t)&&(t=$G(t)),Fy(t,"path"),this.path!==t&&this.history.push(t)}get stem(){return typeof this.path=="string"?Ws.basename(this.path,this.extname):void 0}set stem(t){Fy(t,"stem"),Oy(t,"stem"),this.path=Ws.join(this.dirname||"",t+(this.extname||""))}fail(t,n,r){const o=this.message(t,n,r);throw o.fatal=!0,o}info(t,n,r){const o=this.message(t,n,r);return o.fatal=void 0,o}message(t,n,r){const o=new ir(t,n,r);return this.path&&(o.name=this.path+":"+o.name,o.file=this.path),o.fatal=!1,this.messages.push(o),o}toString(t){return this.value===void 0?"":typeof this.value=="string"?this.value:new TextDecoder(t||void 0).decode(this.value)}}function Oy(e,t){if(e&&e.includes(Ws.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+Ws.sep+"`")}function Fy(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function _S(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}function MG(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const LG=(function(e){const r=this.constructor.prototype,o=r[e],i=function(){return o.apply(i,arguments)};return Object.setPrototypeOf(i,r),i}),OG={}.hasOwnProperty;class h0 extends LG{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=NG()}copy(){const t=new h0;let n=-1;for(;++n<this.attachers.length;){const r=this.attachers[n];t.use(...r)}return t.data(My(!0,{},this.namespace)),t}data(t,n){return typeof t=="string"?arguments.length===2?(Uy("data",this.frozen),this.namespace[t]=n,this):OG.call(this.namespace,t)&&this.namespace[t]||void 0:t?(Uy("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,...r]=this.attachers[this.freezeIndex];if(r[0]===!1)continue;r[0]===!0&&(r[0]=void 0);const o=n.call(t,...r);typeof o=="function"&&this.transformers.use(o)}return this.frozen=!0,this.freezeIndex=Number.POSITIVE_INFINITY,this}parse(t){this.freeze();const n=jp(t),r=this.parser||this.Parser;return zy("parse",r),r(String(n),n)}process(t,n){const r=this;return this.freeze(),zy("process",this.parser||this.Parser),By("process",this.compiler||this.Compiler),n?o(void 0,n):new Promise(o);function o(i,a){const l=jp(t),u=r.parse(l);r.run(u,l,function(p,h,g){if(p||!h||!g)return f(p);const y=h,k=r.stringify(y,g);BG(k)?g.value=k:g.result=k,f(p,g)});function f(p,h){p||!h?a(p):i?i(h):n(void 0,h)}}}processSync(t){let n=!1,r;return this.freeze(),zy("processSync",this.parser||this.Parser),By("processSync",this.compiler||this.Compiler),this.process(t,o),$S("processSync","process",n),r;function o(i,a){n=!0,AS(i),r=a}}run(t,n,r){DS(t),this.freeze();const o=this.transformers;return!r&&typeof n=="function"&&(r=n,n=void 0),r?i(void 0,r):new Promise(i);function i(a,l){const u=jp(n);o.run(t,u,f);function f(p,h,g){const y=h||t;p?l(p):a?a(y):r(void 0,y,g)}}}runSync(t,n){let r=!1,o;return this.run(t,n,i),$S("runSync","run",r),o;function i(a,l){AS(a),o=l,r=!0}}stringify(t,n){this.freeze();const r=jp(n),o=this.compiler||this.Compiler;return By("stringify",o),DS(t),o(t,r)}use(t,...n){const r=this.attachers,o=this.namespace;if(Uy("use",this.frozen),t!=null)if(typeof t=="function")u(t,n);else if(typeof t=="object")Array.isArray(t)?l(t):a(t);else throw new TypeError("Expected usable value, not `"+t+"`");return this;function i(f){if(typeof f=="function")u(f,[]);else if(typeof f=="object")if(Array.isArray(f)){const[p,...h]=f;u(p,h)}else a(f);else throw new TypeError("Expected usable value, not `"+f+"`")}function a(f){if(!("plugins"in f)&&!("settings"in f))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");l(f.plugins),f.settings&&(o.settings=My(!0,o.settings,f.settings))}function l(f){let p=-1;if(f!=null)if(Array.isArray(f))for(;++p<f.length;){const h=f[p];i(h)}else throw new TypeError("Expected a list of plugins, not `"+f+"`")}function u(f,p){let h=-1,g=-1;for(;++h<r.length;)if(r[h][0]===f){g=h;break}if(g===-1)r.push([f,...p]);else if(p.length>0){let[y,...k]=p;const v=r[g][1];pv(v)&&pv(y)&&(y=My(!0,v,y)),r[g]=[f,y,...k]}}}}const FG=new h0().freeze();function zy(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function By(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Uy(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 DS(e){if(!pv(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function $S(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function jp(e){return zG(e)?e:new d_(e)}function zG(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function BG(e){return typeof e=="string"||UG(e)}function UG(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const HG="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",IS=[],MS={allowDangerousHtml:!0},VG=/^(https?|ircs?|mailto|xmpp)$/i,WG=[{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 KG(e){const t=qG(e),n=GG(e);return YG(t.runSync(t.parse(n),n),e)}function qG(e){const t=e.rehypePlugins||IS,n=e.remarkPlugins||IS,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...MS}:MS;return FG().use(Cq).use(n).use(wG,r).use(t)}function GG(e){const t=e.children||"",n=new d_;return typeof t=="string"&&(n.value=t),n}function YG(e,t){const n=t.allowedElements,r=t.allowElement,o=t.components,i=t.disallowedElements,a=t.skipHtml,l=t.unwrapDisallowed,u=t.urlTransform||XG;for(const p of WG)Object.hasOwn(t,p.from)&&(""+p.from+(p.to?"use `"+p.to+"` instead":"remove it")+HG+p.id,void 0);return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:e.type==="root"?e.children:[e]}),u_(e,f),oW(e,{Fragment:s.Fragment,components:o,ignoreInvalidStyle:!0,jsx:s.jsx,jsxs:s.jsxs,passKeys:!0,passNode:!0});function f(p,h,g){if(p.type==="raw"&&g&&typeof h=="number")return a?g.children.splice(h,1):g.children[h]={type:"text",value:p.value},h;if(p.type==="element"){let y;for(y in _y)if(Object.hasOwn(_y,y)&&Object.hasOwn(p.properties,y)){const k=p.properties[y],v=_y[y];(v===null||v.includes(p.tagName))&&(p.properties[y]=u(String(k||""),y,p))}}if(p.type==="element"){let y=n?!n.includes(p.tagName):i?i.includes(p.tagName):!1;if(!y&&r&&typeof h=="number"&&(y=!r(p,h,g)),y&&g&&typeof h=="number")return l&&p.children?g.children.splice(h,1,...p.children):g.children.splice(h,1),h}}}function XG(e){const t=e.indexOf(":"),n=e.indexOf("?"),r=e.indexOf("#"),o=e.indexOf("/");return t===-1||o!==-1&&t>o||n!==-1&&t>n||r!==-1&&t>r||VG.test(e.slice(0,t))?e:""}function wl(e){return e.trim().toLowerCase().replace(/[^\w\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}function No(e){return e==null||typeof e=="boolean"?"":typeof e=="string"||typeof e=="number"?String(e):Array.isArray(e)?e.map(No).join(""):m.isValidElement(e)?No(e.props.children):m.Children.toArray(e).map(No).join("")}const QG={h1:({children:e,...t})=>s.jsx("h1",{id:wl(No(e)),...t,children:e}),h2:({children:e,...t})=>s.jsx("h2",{id:wl(No(e)),...t,children:e}),h3:({children:e,...t})=>s.jsx("h3",{id:wl(No(e)),...t,children:e}),h4:({children:e,...t})=>s.jsx("h4",{id:wl(No(e)),...t,children:e}),h5:({children:e,...t})=>s.jsx("h5",{id:wl(No(e)),...t,children:e}),h6:({children:e,...t})=>s.jsx("h6",{id:wl(No(e)),...t,children:e})};function vn({content:e,className:t,emptyState:n="No markdown content yet."}){const r=e.replace(/<!--[\s\S]*?-->/g,"");return r.trim()?s.jsx("div",{className:we("prose-syntaur max-w-none",t),children:s.jsx(KG,{components:QG,children:r})}):s.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 rs(e){return`/api/projects/${encodeURIComponent(e)}/todos`}function JG(e){const[t,n]=m.useState(null),[r,o]=m.useState(!0),[i,a]=m.useState(null),l=m.useCallback(async()=>{if(e)try{const u=await fetch(rs(e));if(!u.ok)throw new Error(`HTTP ${u.status}`);n(await u.json()),a(null)}catch(u){a(u instanceof Error?u.message:"Failed to fetch todos")}finally{o(!1)}},[e]);return m.useEffect(()=>{l()},[l]),Ti(u=>{u.type==="todos-updated"&&u.projectSlug===e&&l()}),{data:t,loading:r,error:i,refetch:l}}async function ZG(e,t,n){await Da(rs(e),{description:t,tags:n})}async function eY(e,t,n){await Da(`${rs(e)}/${t}/complete`,{summary:"Completed."})}async function tY(e,t,n){await Da(`${rs(e)}/${t}/block`,{reason:n})}async function nY(e,t,n){await Da(`${rs(e)}/${t}/start`,{session:n})}async function rY(e,t){await Da(`${rs(e)}/${t}/reopen`,{})}async function sY(e,t){await lY(`${rs(e)}/${t}`)}async function oY(e,t,n){const r=await fetch(`${rs(e)}/${t}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({description:n})});if(!r.ok)throw new Error(await r.text().catch(()=>"")||`HTTP ${r.status}`)}function f_(e,t,n){return`${rs(e)}/${t}/attachments/${encodeURIComponent(n)}`}async function iY(e,t,n){for(const r of n){const o=await fetch(`${rs(e)}/${t}/attachments`,{method:"POST",headers:{"Content-Type":"application/octet-stream","x-attachment-filename":encodeURIComponent(r.name||"file"),"x-attachment-mime":r.type||"application/octet-stream"},body:r});if(!o.ok)throw new Error(await o.text().catch(()=>"")||`HTTP ${o.status}`)}}async function aY(e,t,n){const r=await fetch(f_(e,t,n),{method:"DELETE"});if(!r.ok)throw new Error(await r.text().catch(()=>"")||`HTTP ${r.status}`)}async function Da(e,t){const n=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!n.ok){const r=await n.text().catch(()=>"");let o=null;try{o=r?JSON.parse(r):null}catch{}const i=(o==null?void 0:o.error)||r||`HTTP ${n.status}`,a=new Error(i);throw a.status=n.status,a}return n.json().catch(()=>({}))}async function lY(e){const t=await fetch(e,{method:"DELETE"});if(!t.ok){const n=await t.text().catch(()=>"");let r=null;try{r=n?JSON.parse(n):null}catch{}const o=(r==null?void 0:r.error)||n||`HTTP ${t.status}`,i=new Error(o);throw i.status=t.status,i}}async function cY(e,t){return await Da(`${rs(e)}/promote`,t)}async function uY(e,t,n){await Da(`${rs(e)}/${t}/move`,{to:n})}function ss({open:e,title:t,description:n,confirmLabel:r,cancelLabel:o="Cancel",loading:i=!1,destructive:a=!1,onConfirm:l,onOpenChange:u}){return s.jsx(Rl,{open:e,onOpenChange:f=>i?void 0:u(f),children:s.jsxs(la,{children:[s.jsxs(Al,{children:[s.jsx(ca,{children:t}),s.jsx(ua,{children:n})]}),s.jsxs(Pl,{children:[s.jsx(cd,{disabled:i,className:"shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50",children:o}),s.jsx(bi,{disabled:i,className:`shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50 ${a?"border-destructive/80 bg-destructive text-destructive-foreground hover:bg-destructive/90":"shell-action--cta"}`,onClick:f=>{f.preventDefault(),l()},children:i?"Working...":r})]})]})})}const LS=[{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 p_({status:e,onChange:t}){const[n,r]=m.useState(!1),o=m.useRef(null);m.useEffect(()=>{if(!n)return;function a(l){o.current&&!o.current.contains(l.target)&&r(!1)}return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[n]);const i=LS.find(a=>a.value===e);return s.jsxs("div",{className:"relative",ref:o,onClick:a=>a.stopPropagation(),children:[s.jsx("button",{onClick:()=>r(!n),className:`text-lg leading-none ${i.color} hover:opacity-70 transition`,title:i.label,children:i.icon}),n&&s.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:LS.filter(a=>a.value!==e).map(a=>s.jsxs("button",{onClick:()=>{t(a.value),r(!1)},className:`flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-foreground/5 transition ${a.color}`,children:[s.jsx("span",{className:"text-base leading-none",children:a.icon}),s.jsx("span",{children:a.label})]},a.value))})]})}function h_({item:e,copiedId:t,selected:n,editing:r,onBeginEdit:o,onEndEdit:i,onPatchDescription:a,onAddAttachments:l,onDeleteAttachment:u,attachmentUrl:f,onToggleSelected:p,onMoveOne:h,onStatusChange:g,onCopyId:y,onDelete:k,hotkeyRowProps:v,onDragOrigin:b,onDragStart:j,onDragEnd:S,isDragging:N}){return s.jsxs("div",{draggable:!0,"data-todo-id":e.id,...v??{},onMouseDown:b,onDragStart:C=>j(C,e.id),onDragEnd:S,className:`surface-panel flex items-start gap-3 px-3 py-2 cursor-grab active:cursor-grabbing hover:bg-foreground/[0.03] transition ${N?"opacity-50 shadow-lg":""}`,children:[s.jsx("input",{type:"checkbox","data-no-drag":!0,"aria-label":`Select todo ${e.id}`,title:"Select",checked:n,onChange:C=>p(e.id,C),onClick:C=>C.stopPropagation(),className:"mt-1 h-4 w-4 shrink-0 cursor-pointer accent-foreground"}),s.jsx("span",{className:"mt-0.5 self-stretch w-px bg-border/60","aria-hidden":"true"}),s.jsx("div",{className:"mt-0.5 shrink-0",children:s.jsx(p_,{status:e.status,onChange:C=>g(e.id,C)})}),s.jsxs("div",{className:"flex-1 min-w-0",children:[s.jsxs("div",{className:"flex items-baseline flex-wrap gap-x-2",children:[s.jsx(m_,{description:e.description,status:e.status,editing:r,onBeginEdit:()=>o(e.id),onEndEdit:i,onSave:C=>a(e.id,C)}),e.tags.length>0&&s.jsx("span",{className:"text-xs text-muted-foreground",children:e.tags.map(C=>`#${C}`).join(" ")}),e.session&&s.jsxs("span",{className:"text-xs text-info-foreground/70 font-mono",children:["session:",e.session.slice(0,8)]}),s.jsx(mY,{item:e})]}),s.jsx(g_,{item:e,attachmentUrl:f,onAdd:C=>l(e.id,C),onDelete:C=>u(e.id,C)})]}),t===e.id?s.jsxs("span",{className:"text-xs text-status-completed-foreground flex items-center gap-1",children:[s.jsx(Sr,{className:"h-3 w-3"})," Copied to clipboard"]}):s.jsxs(s.Fragment,{children:[s.jsxs("button",{"data-no-drag":!0,className:"text-xs text-muted-foreground/60 font-mono hover:text-foreground transition",onClick:C=>y(C,e.id),children:["t:",e.id]}),s.jsx("button",{"data-no-drag":!0,className:"text-muted-foreground/40 hover:text-foreground transition",title:"Copy ID",onClick:C=>y(C,e.id),children:s.jsx(dh,{className:"h-3 w-3"})}),s.jsx("button",{"data-no-drag":!0,className:"text-muted-foreground/40 hover:text-foreground transition",title:"Move to...",onClick:C=>h(e.id,C),children:s.jsx(sm,{className:"h-3 w-3"})}),s.jsx("button",{"data-no-drag":!0,className:"text-muted-foreground/40 hover:text-destructive transition",title:"Delete todo",onClick:C=>k(C,e.id,e.description),children:s.jsx(mn,{className:"h-3 w-3"})})]})]})}function m_({description:e,status:t,editing:n,onBeginEdit:r,onEndEdit:o,onSave:i}){return n?s.jsx(dY,{initialValue:e,onSave:i,onExit:o}):s.jsx("button",{type:"button","data-no-drag":!0,onClick:a=>{a.stopPropagation(),r()},title:"Click to edit",className:we("text-left text-sm rounded-sm transition hover:text-primary focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",t==="completed"?"line-through text-muted-foreground":"text-foreground"),children:e})}function dY({initialValue:e,onSave:t,onExit:n}){const r=m.useRef(e),[o,i]=m.useState(e),[a,l]=m.useState(!1),[u,f]=m.useState(!1),p=m.useRef(null),h=m.useRef(!1);m.useEffect(()=>{const v=p.current;v&&(v.focus(),v.select())},[]);const g=m.useCallback(()=>{var v;f(!0),window.setTimeout(()=>f(!1),260),(v=p.current)==null||v.focus()},[]),y=m.useCallback(async()=>{var b;if(h.current)return;const v=o.trim();if(v.length===0){g();return}if(v===r.current){n();return}h.current=!0,l(!0);try{await t(v),n()}catch{l(!1),h.current=!1,(b=p.current)==null||b.focus()}},[o,n,t,g]);function k(v){v.key==="Enter"?(v.preventDefault(),y()):v.key==="Escape"&&(v.preventDefault(),h.current=!0,n())}return s.jsx("input",{ref:p,type:"text","data-no-drag":!0,disabled:a,value:o,onClick:v=>v.stopPropagation(),onChange:v=>i(v.target.value),onKeyDown:k,onBlur:()=>void y(),className:we("w-full rounded-sm border border-border bg-background px-1.5 py-0.5 text-sm text-foreground outline-none transition focus:border-ring focus:ring-1 focus:ring-ring",u&&"syntaur-input-shake",a&&"opacity-70")})}function fY(e){return e.startsWith("image/")&&e!=="image/svg+xml"}function pY(e){const t=e.clipboardData,n=[];if(t.files&&t.files.length&&n.push(...Array.from(t.files)),!n.length&&t.items){for(const r of Array.from(t.items))if(r.kind==="file"){const o=r.getAsFile();o&&n.push(o)}}return n}function g_({item:e,attachmentUrl:t,onAdd:n,onDelete:r}){const o=e.attachments??[],[i,a]=m.useState(!1),[l,u]=m.useState(!1),f=m.useRef(null),p=m.useRef(null);m.useEffect(()=>{var g;i&&((g=p.current)==null||g.focus())},[i]);const h=m.useCallback(async g=>{if(g.length){u(!0);try{await n(g),a(!1)}finally{u(!1)}}},[n]);return s.jsxs("div",{className:"mt-1","data-no-drag":!0,onClick:g=>g.stopPropagation(),children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[o.map(g=>s.jsx(hY,{att:g,url:t(e.id,g.id),onDelete:()=>void r(g.id)},g.id)),s.jsxs("button",{type:"button","data-no-drag":!0,title:"Attach files",onClick:()=>a(g=>!g),className:"inline-flex items-center gap-1 rounded-md border border-border/60 px-1.5 py-0.5 text-xs text-muted-foreground hover:text-foreground hover:border-border transition",children:[s.jsx(w2,{className:"h-3 w-3"}),o.length===0?"Attach":""]})]}),i&&s.jsxs("div",{ref:p,"data-no-drag":!0,tabIndex:0,role:"button","aria-label":"Add attachments: drop, paste, or click",onPaste:g=>{const y=pY(g);y.length&&(g.preventDefault(),h(y))},onDragOver:g=>{Array.from(g.dataTransfer.types).includes("Files")&&g.preventDefault()},onDrop:g=>{const y=Array.from(g.dataTransfer.files);y.length&&(g.preventDefault(),h(y))},onClick:()=>{var g;return(g=f.current)==null?void 0:g.click()},className:"mt-1 cursor-pointer rounded-md border border-dashed border-border/70 px-3 py-2 text-xs text-muted-foreground hover:border-border focus:outline-none focus:ring-2 focus:ring-ring/40",children:[l?"Uploading…":"Drop, paste (⌘V / Ctrl+V), or click to add files",s.jsx("input",{ref:f,type:"file",multiple:!0,className:"hidden",onChange:g=>{const y=Array.from(g.target.files??[]);g.target.value="",h(y)}})]})]})}function hY({att:e,url:t,onDelete:n}){return s.jsxs("span",{className:"inline-flex items-center gap-1 rounded-md border border-border/60 bg-background px-1.5 py-0.5 text-xs",children:[fY(e.mime)?s.jsx("a",{href:t,target:"_blank",rel:"noopener noreferrer",title:e.filename,children:s.jsx("img",{src:t,alt:e.filename,className:"h-6 w-6 rounded object-cover"})}):s.jsxs("a",{href:t,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1 text-foreground hover:text-primary",children:[s.jsx(w2,{className:"h-3 w-3"}),s.jsx("span",{className:"block max-w-[160px] truncate",children:e.filename})]}),s.jsx("button",{type:"button",title:"Remove attachment",onClick:n,className:"text-muted-foreground/60 hover:text-destructive transition",children:s.jsx(jc,{className:"h-3 w-3"})})]})}function mY({item:e}){return!(e.branch||e.planDir||e.worktreePath||e.createdAt||e.updatedAt)?null:s.jsxs("span",{className:"inline-flex items-center gap-1 align-middle",children:[e.branch?s.jsx(ma,{delayDuration:120,children:s.jsxs(Fr,{children:[s.jsx(zr,{asChild:!0,children:s.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:[s.jsx(qv,{className:"h-2.5 w-2.5"}),s.jsx("span",{className:"block min-w-0 max-w-[120px] truncate",children:e.branch})]})}),s.jsx(vr,{children:e.branch})]})}):null,e.planDir?s.jsx(ma,{delayDuration:120,children:s.jsxs(Fr,{children:[s.jsx(zr,{asChild:!0,children:s.jsx("button",{type:"button","data-no-drag":!0,onClick:n=>{n.stopPropagation(),Yd(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:s.jsx(x2,{className:"h-2.5 w-2.5"})})}),s.jsxs(vr,{children:["Plan: ",e.planDir]})]})}):null,e.worktreePath||e.createdAt||e.updatedAt?s.jsx(ma,{delayDuration:120,children:s.jsxs(Fr,{children:[s.jsx(zr,{asChild:!0,children:s.jsx("span",{className:"text-[10px] text-muted-foreground/60 cursor-default",children:"·"})}),s.jsx(vr,{children:s.jsxs("div",{className:"space-y-0.5 text-xs font-mono",children:[e.worktreePath?s.jsxs("div",{children:["worktree: ",e.worktreePath]}):null,e.createdAt?s.jsxs("div",{children:["created: ",e.createdAt]}):null,e.updatedAt?s.jsxs("div",{children:["updated: ",e.updatedAt]}):null]})})]})}):null]})}const x_="__one_off__";function m0({open:e,selectedIds:t,scope:n,onOpenChange:r,onDone:o,defaultProject:i,defaultTitle:a,allowOneOff:l=!0}){const[u,f]=m.useState("new"),[p,h]=m.useState(!1),[g,y]=m.useState(null),[k,v]=m.useState(null),[b,j]=m.useState(null),[S,N]=m.useState(""),[C,P]=m.useState(""),[T,R]=m.useState(""),[I,_]=m.useState(""),[F,D]=m.useState(""),[W,V]=m.useState(""),[$,O]=m.useState(null),[U,K]=m.useState(!1),M=t.length>1;m.useEffect(()=>{if(!e){f("new"),y(null),N(""),P(""),R(""),_(""),D(""),V(""),O(null);return}N(i??""),P(a??"");let Q=!1;return(async()=>{try{const J=await fetch("/api/projects");if(!J.ok)throw new Error(`HTTP ${J.status}`);const Z=await J.json();Q||v(Z.filter(oe=>!oe.archived))}catch(J){Q||j(J instanceof Error?J.message:String(J))}})(),()=>{Q=!0}},[e,i,a]),m.useEffect(()=>{if(!F){O(null);return}let Q=!1;return K(!0),(async()=>{try{const J=await fetch(`/api/projects/${encodeURIComponent(F)}/assignments`);if(!J.ok)throw new Error(`HTTP ${J.status}`);const Z=await J.json();Q||O(Z)}catch{Q||O([])}finally{Q||K(!1)}})(),()=>{Q=!0}},[F]);const H=m.useMemo(()=>k??[],[k]);async function L(Q){if(Q.preventDefault(),!S){y('Pick a target project (or "One-off").');return}if(M&&!C.trim()){y("Title is required when promoting multiple todos.");return}const J=S===x_?{oneOff:!0}:{project:S};if(n.kind==="aggregate"){const oe={groups:n.groups,mode:"new-assignment",target:J,title:C.trim()||void 0,type:T.trim()||void 0,priority:I||void 0};await B(oe);return}const Z={todoIds:t,mode:"new-assignment",target:J,title:C.trim()||void 0,type:T.trim()||void 0,priority:I||void 0};await Y(Z)}async function z(Q){if(Q.preventDefault(),n.kind==="aggregate"){y("Existing-assignment mode does not support cross-workspace selections yet.");return}if(!F||!W){y("Pick both project and assignment.");return}const J={todoIds:t,mode:"to-assignment",target:{assignment:`${F}/${W}`}};await Y(J)}async function Y(Q){h(!0),y(null);try{let J;if(n.kind==="workspace")J=await y5(n.workspace,Q);else if(n.kind==="project")J=await cY(n.projectId,Q);else throw new Error("Aggregate scope requires runBulkMutation.");o(J),r(!1)}catch(J){y(J instanceof Error?J.message:String(J))}finally{h(!1)}}async function B(Q){h(!0),y(null);try{const J=await b5(Q);o(J),r(!1)}catch(J){y(J instanceof Error?J.message:String(J))}finally{h(!1)}}return s.jsx(Ln,{open:e,onOpenChange:Q=>p?void 0:r(Q),children:s.jsxs(Nn,{className:"max-w-xl",children:[s.jsxs(or,{children:[s.jsxs(Sn,{children:["Promote ",t.length," todo",t.length===1?"":"s"]}),s.jsxs(ns,{children:["Convert the selected todo",t.length===1?"":"s"," to a new or existing assignment. Source todo",t.length===1?"":"s"," will be marked ",s.jsx("strong",{children:"in progress"})," and linked to the new assignment (auto-completed when the assignment closes)."]})]}),s.jsxs(RP,{value:u,onValueChange:Q=>f(Q),children:[s.jsxs(AP,{className:"flex gap-2 rounded-md border border-border/70 bg-card/80 p-1 mb-4",children:[s.jsx(rv,{value:"new",className:we("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"}),s.jsx(rv,{value:"existing",className:we("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"})]}),s.jsx(sv,{value:"new",children:s.jsxs("form",{onSubmit:L,className:"space-y-4",children:[s.jsx(jl,{label:"Target project",children:s.jsx(OS,{value:S,onChange:N,projects:H,error:b,disabled:p,allowOneOff:l})}),s.jsx(jl,{label:M?"Title (required)":"Title (defaults to first todo)",children:s.jsx("input",{type:"text",value:C,onChange:Q=>P(Q.target.value),disabled:p,className:"editor-input bg-background/95 font-sans"})}),s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsx(jl,{label:"Type",children:s.jsx("input",{type:"text",value:T,onChange:Q=>R(Q.target.value),placeholder:"feature",disabled:p,className:"editor-input bg-background/95 font-sans"})}),s.jsx(jl,{label:"Priority",children:s.jsxs("select",{value:I,onChange:Q=>_(Q.target.value),disabled:p,className:"editor-input bg-background/95 font-sans",children:[s.jsx("option",{value:"",children:"—"}),s.jsx("option",{value:"low",children:"low"}),s.jsx("option",{value:"medium",children:"medium"}),s.jsx("option",{value:"high",children:"high"}),s.jsx("option",{value:"critical",children:"critical"})]})})]}),g?s.jsx(FS,{message:g}):null,s.jsx(zS,{onCancel:()=>r(!1),submitting:p,submitLabel:"Promote"})]})}),s.jsx(sv,{value:"existing",children:s.jsxs("form",{onSubmit:z,className:"space-y-4",children:[s.jsx(jl,{label:"Project",children:s.jsx(OS,{value:F,onChange:Q=>{D(Q),V("")},projects:H,error:b,disabled:p})}),s.jsx(jl,{label:U?"Assignment (loading...)":"Assignment",children:s.jsxs("select",{value:W,onChange:Q=>V(Q.target.value),disabled:p||!F||U,className:"editor-input bg-background/95 font-sans",children:[s.jsx("option",{value:"",children:F?"Select assignment...":"Pick a project first"}),($??[]).map(Q=>s.jsxs("option",{value:Q.slug,children:[Q.title," (",Q.status,")"]},Q.slug))]})}),g?s.jsx(FS,{message:g}):null,s.jsx(zS,{onCancel:()=>r(!1),submitting:p,submitLabel:"Promote"})]})})]})]})})}function jl({label:e,children:t}){return s.jsxs("label",{className:"block space-y-1.5",children:[s.jsx("span",{className:"block text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground",children:e}),t]})}function OS({value:e,onChange:t,projects:n,error:r,disabled:o,allowOneOff:i}){return r?s.jsxs("div",{className:"text-sm text-destructive",children:["Failed to load projects: ",r]}):s.jsxs("select",{value:e,onChange:a=>t(a.target.value),disabled:o,className:"editor-input bg-background/95 font-sans",children:[s.jsx("option",{value:"",children:"Select project..."}),i?s.jsx("option",{value:x_,children:"One-off (no project)"}):null,n.map(a=>s.jsxs("option",{value:a.slug,children:[a.title," (",a.slug,")"]},a.slug))]})}function FS({message:e}){return s.jsx("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:e})}function zS({onCancel:e,submitting:t,submitLabel:n}){return s.jsxs(Wr,{children:[s.jsx("button",{type:"button",onClick:e,disabled:t,className:"shell-action disabled:cursor-not-allowed disabled:opacity-50",children:"Cancel"}),s.jsx("button",{type:"submit",disabled:t,className:"shell-action shell-action--cta disabled:cursor-not-allowed disabled:opacity-50",children:t?"Submitting...":n})]})}function y_({open:e,selectedIds:t,scope:n,onOpenChange:r,onDone:o}){const[i,a]=m.useState("project"),[l,u]=m.useState(""),[f,p]=m.useState(""),[h,g]=m.useState(!1),[y,k]=m.useState(null),[v,b]=m.useState(null),[j,S]=m.useState(null);m.useEffect(()=>{if(!e){a("project"),u(""),p(""),k(null),b(null);return}let R=!1;return(async()=>{try{const I=await fetch("/api/projects");if(!I.ok)throw new Error(`HTTP ${I.status}`);const _=await I.json();R||S(_.filter(F=>!F.archived))}catch(I){R||b(I instanceof Error?I.message:String(I))}})(),()=>{R=!0}},[e]);const N=m.useMemo(()=>j?n.kind==="project"?j.filter(R=>R.slug!==n.projectId):j:[],[j,n]);function C(){if(i==="global")return{global:!0};if(i==="workspace"){const R=l.trim();return R?{workspace:R}:"Workspace name is required."}return f?{project:f}:"Pick a target project."}async function P(R,I){try{return n.kind==="workspace"?await v5(n.workspace,R,I):await uY(n.projectId,R,I),{ok:!0}}catch(_){return{ok:!1,error:_ instanceof Error?_.message:String(_)}}}async function T(R){R.preventDefault(),b(null);const I=C();if(typeof I=="string"){b(I);return}g(!0),k(null);const _=[],F=[];for(const D of t){const W=await P(D,I);W.ok?_.push(D):F.push({id:D,error:W.error})}g(!1),o(),F.length===0?r(!1):k({succeeded:_,failed:F})}return s.jsx(Ln,{open:e,onOpenChange:R=>h?void 0:r(R),children:s.jsx(Nn,{className:"max-w-xl",children:s.jsxs("form",{onSubmit:T,className:"space-y-4",children:[s.jsxs(or,{children:[s.jsxs(Sn,{children:["Move ",t.length," todo",t.length===1?"":"s"]}),s.jsxs(ns,{children:["Move the selected todo",t.length===1?"":"s"," to a different scope. id, tags, branch, timestamps, and plan dir are preserved."]})]}),s.jsxs("fieldset",{className:"space-y-2",disabled:h,children:[s.jsx("legend",{className:"block text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground mb-1",children:"Target scope"}),s.jsx(Hy,{kind:"project",checked:i==="project",onChange:()=>a("project"),label:"Project"}),s.jsx(Hy,{kind:"workspace",checked:i==="workspace",onChange:()=>a("workspace"),label:"Workspace"}),s.jsx(Hy,{kind:"global",checked:i==="global",onChange:()=>a("global"),label:"Global"})]}),i==="project"?s.jsx(BS,{label:"Target project",children:s.jsxs("select",{value:f,onChange:R=>p(R.target.value),disabled:h,className:"editor-textarea w-full bg-background/95 font-sans",children:[s.jsx("option",{value:"",children:"Select project..."}),N.map(R=>s.jsxs("option",{value:R.slug,children:[R.title," (",R.slug,")"]},R.slug))]})}):null,i==="workspace"?s.jsx(BS,{label:"Target workspace name",children:s.jsx("input",{type:"text",value:l,onChange:R=>u(R.target.value),disabled:h,placeholder:"e.g. syntaur",className:"editor-textarea w-full bg-background/95 font-sans"})}):null,v?s.jsx(gY,{message:v}):null,y?s.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:[s.jsxs("div",{className:"font-medium",children:["Moved ",y.succeeded.length," of ",t.length,"; ",y.failed.length," failed."]}),s.jsx("ul",{className:"text-xs space-y-0.5",children:y.failed.map(R=>s.jsxs("li",{children:["[t:",R.id,"] ",R.error]},R.id))})]}):null,s.jsxs(Wr,{children:[s.jsx("button",{type:"button",onClick:()=>r(!1),disabled:h,className:"shell-action disabled:cursor-not-allowed disabled:opacity-50",children:y?"Close":"Cancel"}),y===null?s.jsx("button",{type:"submit",disabled:h,className:"shell-action shell-action--cta disabled:cursor-not-allowed disabled:opacity-50",children:h?"Moving...":"Move"}):null]})]})})})}function BS({label:e,children:t}){return s.jsxs("label",{className:"block space-y-1.5",children:[s.jsx("span",{className:"block text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground",children:e}),t]})}function Hy({kind:e,checked:t,onChange:n,label:r}){return s.jsxs("label",{className:"flex items-center gap-2 text-sm cursor-pointer",children:[s.jsx("input",{type:"radio",name:"move-target-kind",value:e,checked:t,onChange:n}),s.jsx("span",{children:r})]})}function gY({message:e}){return s.jsx("div",{className:"rounded-md border border-destructive/50 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:e})}function g0({label:e,count:t,expanded:n,onToggle:r,isDropTarget:o=!1,onDragOver:i,onDragLeave:a,onDrop:l,children:u}){return s.jsxs("div",{className:we("rounded-lg border border-border/60 bg-card/40 transition",o&&"ring-2 ring-ring/30"),onDragOver:i,onDragLeave:a,onDrop:l,children:[s.jsxs("button",{type:"button",onClick:r,"aria-expanded":n,className:"flex w-full items-center gap-2 px-3 py-2.5 text-left",children:[s.jsx(nr,{className:we("h-4 w-4 text-muted-foreground transition-transform",!n&&"-rotate-90")}),s.jsx("span",{className:"font-semibold text-foreground",children:e}),s.jsx("span",{className:"rounded-full border border-border/60 px-2 py-0.5 text-xs text-muted-foreground",children:t})]}),n&&s.jsx("div",{className:"space-y-1 px-2 pb-2",children:u})]})}const b_=[{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 Qm(e){switch(e){case"in_progress":return"in-progress";case"completed":return"done";case"open":case"blocked":default:return"open-blocked"}}function x0(e){const t={"open-blocked":[],"in-progress":[],done:[]};for(const n of e)t[Qm(n.status)].push(n);return b_.map(n=>({config:n,items:t[n.id]}))}const v_="syntaur.todos.sections.collapsed.v1",US=Object.fromEntries(b_.map(e=>[e.id,e.defaultCollapsed]));function Vy(){if(typeof window>"u"||!window.localStorage)return{};try{const e=window.localStorage.getItem(v_);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function xY(e){if(!(typeof window>"u"||!window.localStorage))try{window.localStorage.setItem(v_,JSON.stringify(e))}catch{}}function y0(e){const[t,n]=m.useState(()=>Vy()[e]??{});m.useEffect(()=>{n(Vy()[e]??{})},[e]);const r=m.useCallback(i=>t[i]??US[i],[t]),o=m.useCallback(i=>{const a=Vy(),l=a[e]??{},u=l[i]??US[i],f={...l,[i]:!u};a[e]=f,xY(a),n(f)},[e]);return{isCollapsed:r,toggle:o}}function yY({projectId:e}){var ut;const{data:t,loading:n,error:r,refetch:o}=JG(e),{toast:i,showToast:a,dismissToast:l}=Qn(),[u,f]=m.useState(""),[p,h]=m.useState(""),[g,y]=m.useState(""),[k,v]=m.useState(""),[b,j]=m.useState(null),[S,N]=m.useState(!1),[C,P]=m.useState(null),[T,R]=m.useState(null),[I,_]=m.useState(new Set),[F,D]=m.useState(!1),[W,V]=m.useState(!1),[$,O]=m.useState(null),U=m.useRef(null);Pi("list:todos");const K=y0("project:"+e),[M,H]=m.useState(null),[L,z]=m.useState(null),Y=m.useRef(null);async function B(fe,q){fe.stopPropagation(),await Yd(q)&&(P(q),setTimeout(()=>P(re=>re===q?null:re),1500))}const Q=m.useMemo(()=>{if(!(t!=null&&t.items))return[];const fe=new Set;for(const q of t.items)for(const re of q.tags)fe.add(re);return Array.from(fe).sort()},[t]),J=m.useMemo(()=>{if(!(t!=null&&t.items))return[];let fe=t.items;if(u.trim()){const q=u.toLowerCase();fe=fe.filter(re=>re.description.toLowerCase().includes(q)||re.tags.some(xe=>xe.toLowerCase().includes(q))||re.id.includes(q))}return p&&(fe=fe.filter(q=>q.status===p)),g&&(fe=fe.filter(q=>q.tags.includes(g))),fe},[t,u,p,g]);m.useEffect(()=>{_(new Set)},[u,p,g,e]);const Z=m.useMemo(()=>J.filter(fe=>I.has(fe.id)).length,[J,I]),oe=J.length>0&&Z===J.length,ne=Z>0&&!oe;function ue(fe){_(q=>{const re=new Set(q);return re.has(fe)?re.delete(fe):re.add(fe),re})}function ge(){_(fe=>{const q=new Set(fe);if(oe)for(const re of J)q.delete(re.id);else for(const re of J)q.add(re.id);return q})}function Ce(){_(new Set)}const Se=$?[$]:Array.from(I);function ke(){_(new Set),O(null),o()}function Be(){_(new Set),o()}function ie(fe){a(fe instanceof Error?fe.message:"Action failed","error")}async function ve(){if(k.trim())try{await ZG(e,k.trim()),v(""),o()}catch(fe){ie(fe)}}function be(fe,q,re){fe.stopPropagation(),j({id:q,description:re})}async function Re(fe,q){try{switch(q){case"open":await rY(e,fe);break;case"in_progress":await nY(e,fe);break;case"completed":await eY(e,fe);break;case"blocked":await tY(e,fe);break}o()}catch(re){ie(re)}}async function Ue(fe,q){try{await oY(e,fe,q),o()}catch(re){throw ie(re),re}}async function rt(fe,q){try{await iY(e,fe,q),o()}catch(re){ie(re)}}async function Oe(fe,q){try{await aY(e,fe,q),o()}catch(re){ie(re)}}const ot=x0(J),St=ot.filter(fe=>!K.isCollapsed(fe.config.id)).flatMap(fe=>fe.items),{hotkeyRowProps:mt}=Fd(St,{scope:"list:todos",bindO:!1,onOpen:fe=>R(fe.id)});en({keys:"/",scope:"list:todos",description:"Focus filter",handler:()=>{var fe;return(fe=U.current)==null?void 0:fe.focus()}}),en({keys:"r",scope:"list:todos",description:"Refresh",handler:()=>o()});const[at,ce]=Ts(),me=at.get("focus");m.useEffect(()=>{if(!me||!(t!=null&&t.items))return;const fe=t.items.find(re=>re.id===me);if(!fe)return;const q=Qm(fe.status);K.isCollapsed(q)&&K.toggle(q)},[me,t==null?void 0:t.items]),m.useEffect(()=>{if(!me)return;const fe=document.querySelector(`[data-todo-id="${window.CSS.escape(me)}"]`);if(!fe)return;fe.scrollIntoView({block:"nearest"}),fe.classList.add("ring-2","ring-primary/60");const q=window.setTimeout(()=>{fe.classList.remove("ring-2","ring-primary/60"),ce(re=>{const xe=new URLSearchParams(re);return xe.delete("focus"),xe},{replace:!0})},1500);return()=>window.clearTimeout(q)},[me,St.length,ce]);const Ie=M?(t==null?void 0:t.items.find(fe=>fe.id===M))??null:null;function Ae(fe,q){const re=Y.current;if(re!=null&&re.closest(sc)){fe.preventDefault();return}fe.dataTransfer.effectAllowed="move",fe.dataTransfer.setData("text/plain",q),H(q)}function Ve(){H(null),z(null)}function pt(fe,q){!Ie||q.statuses.includes(Ie.status)||(fe.preventDefault(),fe.dataTransfer.dropEffect="move",z(q.id))}function _e(fe,q){L===q.id&&!fe.currentTarget.contains(fe.relatedTarget)&&z(null)}function Qe(fe,q){fe.preventDefault();const re=Ie;Ve(),!(!re||q.statuses.includes(re.status))&&Re(re.id,q.dropStatus)}if(n)return s.jsx(bt,{label:"Loading todos..."});if(r)return s.jsx(Rt,{error:r});const Je=(t==null?void 0:t.counts)||{open:0,in_progress:0,blocked:0,total:0};return s.jsxs("div",{className:"space-y-4",children:[s.jsx(Xn,{toast:i,onDismiss:l}),s.jsx(ss,{open:b!==null,title:"Delete todo?",description:`Delete "${(b==null?void 0:b.description)??""}"? This can't be undone.`,confirmLabel:"Delete",destructive:!0,loading:S,onOpenChange:fe=>{!fe&&!S&&j(null)},onConfirm:async()=>{if(b){N(!0);try{await sY(e,b.id),o(),j(null)}catch(fe){ie(fe)}finally{N(!1)}}}}),s.jsxs("div",{className:"grid gap-3 grid-cols-[repeat(auto-fill,minmax(140px,1fr))]",children:[s.jsx(Gn,{label:"Open",value:Je.open,icon:ys}),s.jsx(Gn,{label:"In Progress",value:Je.in_progress,icon:ys,tone:"info"}),s.jsx(Gn,{label:"Blocked",value:Je.blocked,icon:wc,tone:"warn"}),s.jsx(Gn,{label:"Total",value:Je.total,icon:ys})]}),s.jsx("div",{className:"surface-panel p-3",children:s.jsxs("div",{className:"flex gap-2",children:[s.jsx("input",{type:"text","aria-label":"New todo description",placeholder:"Add a todo...",value:k,onChange:fe=>v(fe.target.value),onKeyDown:fe=>{fe.key==="Enter"&&k.trim()&&ve()},className:"h-9 flex-1 rounded-md border border-border/70 bg-background px-3 text-sm text-foreground placeholder:text-muted-foreground/80 focus:border-foreground/30 focus:outline-none"}),s.jsxs("button",{onClick:ve,disabled:!k.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:[s.jsx(Pt,{className:"h-4 w-4"}),"Add"]})]})}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("div",{className:"relative flex-1 max-w-sm",children:[s.jsx(Ei,{"aria-hidden":"true",className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),s.jsx("input",{ref:U,type:"text","aria-label":"Search todos",placeholder:"Search...",value:u,onChange:fe=>f(fe.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/80 focus:border-foreground/30 focus:outline-none"})]}),s.jsxs("select",{"aria-label":"Filter by status",value:p,onChange:fe=>h(fe.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:[s.jsx("option",{value:"",children:"All statuses"}),s.jsx("option",{value:"open",children:"Open"}),s.jsx("option",{value:"in_progress",children:"In Progress"}),s.jsx("option",{value:"completed",children:"Completed"}),s.jsx("option",{value:"blocked",children:"Blocked"})]}),Q.length>0&&s.jsxs("select",{"aria-label":"Filter by tag",value:g,onChange:fe=>y(fe.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:[s.jsx("option",{value:"",children:"All tags"}),Q.map(fe=>s.jsxs("option",{value:fe,children:["#",fe]},fe))]})]}),I.size>0?s.jsxs("div",{className:"surface-panel flex items-center justify-between gap-3 px-3 py-2",children:[s.jsxs("span",{className:"text-sm font-medium",children:[I.size," selected"]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{type:"button",onClick:()=>D(!0),className:"shell-action shell-action--cta",children:"Promote selected"}),s.jsx("button",{type:"button",onClick:()=>{O(null),V(!0)},className:"shell-action",children:"Move to…"}),s.jsx("button",{type:"button",onClick:Ce,className:"text-xs text-muted-foreground hover:text-foreground",children:"Clear"})]})]}):null,J.length>0&&s.jsxs("div",{className:"flex items-center gap-3 px-3 py-1 text-xs text-muted-foreground",children:[s.jsx("input",{type:"checkbox","aria-label":"Select all visible todos",checked:oe,ref:fe=>{fe&&(fe.indeterminate=ne)},onChange:ge,className:"h-4 w-4 cursor-pointer accent-foreground"}),s.jsxs("span",{children:["Select all in current filter (",J.length,")"]})]}),J.length===0?(((ut=t==null?void 0:t.items)==null?void 0:ut.length)??0)===0?s.jsx(Nt,{title:"No todos yet",description:"Add your first todo using the field above to start tracking work for this project."}):s.jsx(Nt,{title:"No todos match your filters",description:"No todos match the current search, status, or tag filters. Try clearing or adjusting them."}):s.jsx("div",{className:"space-y-3",children:(()=>{let fe=-1;return ot.map(({config:q,items:re})=>{const xe=!K.isCollapsed(q.id);return s.jsx(g0,{label:q.label,count:re.length,expanded:xe,onToggle:()=>K.toggle(q.id),isDropTarget:L===q.id,onDragOver:qe=>pt(qe,q),onDragLeave:qe=>_e(qe,q),onDrop:qe=>Qe(qe,q),children:xe&&re.map(qe=>(fe+=1,s.jsx(h_,{item:qe,copiedId:C,selected:I.has(qe.id),editing:T===qe.id,onBeginEdit:Fe=>R(Fe),onEndEdit:()=>R(null),onPatchDescription:Ue,onAddAttachments:rt,onDeleteAttachment:Oe,attachmentUrl:(Fe,lt)=>f_(e,Fe,lt),onToggleSelected:Fe=>ue(Fe),onMoveOne:(Fe,lt)=>{lt.stopPropagation(),O(Fe),V(!0)},onStatusChange:Re,onCopyId:B,onDelete:be,hotkeyRowProps:mt(fe),onDragOrigin:Fe=>{Y.current=Fe.target},onDragStart:Ae,onDragEnd:Ve,isDragging:M===qe.id},qe.id)))},q.id)})})()}),s.jsx(m0,{open:F,selectedIds:Array.from(I),scope:{kind:"project",projectId:e},onOpenChange:D,onDone:Be}),s.jsx(y_,{open:W,selectedIds:Se,scope:{kind:"project",projectId:e},onOpenChange:fe=>{V(fe),fe||O(null)},onDone:ke})]})}const bY={title:"Assignment",status:"Status",priority:"Priority",assignee:"Assignee",dependencies:"Dependencies",created:"Created",updated:"Updated"},HS=new Set(["title"]);function w_({visibility:e,onChange:t}){const[n,r]=m.useState(!1);function o(a){if(HS.has(a))return;const u=e.hidden.includes(a)?e.hidden.filter(f=>f!==a):[...e.hidden,a];t({hidden:u})}const i=e.hidden.length;return s.jsxs(Ln,{open:n,onOpenChange:r,children:[s.jsx(_6,{asChild:!0,children:s.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:[s.jsx(h4,{className:"h-3.5 w-3.5","aria-hidden":"true"}),s.jsxs("span",{children:["Columns",i>0?` (${jy.length-i}/${jy.length})`:""]})]})}),s.jsxs(Nn,{className:"max-w-sm",children:[s.jsx(or,{children:s.jsx(Sn,{children:"Columns"})}),s.jsx("div",{className:"space-y-2",children:jy.map(a=>{const l=e.hidden.includes(a),u=HS.has(a);return s.jsxs("label",{className:`flex items-center gap-2 rounded-md px-2 py-1.5 text-sm ${u?"opacity-60":"cursor-pointer hover:bg-background/80"}`,children:[s.jsx("input",{type:"checkbox",checked:!l,onChange:()=>o(a),disabled:u,className:"h-4 w-4 rounded border-border accent-foreground"}),s.jsx("span",{children:bY[a]}),u?s.jsx("span",{className:"ml-auto text-xs text-muted-foreground",children:"always shown"}):null]},a)})})]})]})}const Yl={...ad,custom:!1},j_=`view-prefs.cache.v${ad.version}`;let bd=vY(),kl=null;const vd=new Set;let k_=0;function b0(){return++k_}function v0(e){return e===k_}function vY(){if(typeof window>"u"||!window.localStorage)return null;try{const e=window.localStorage.getItem(j_);if(!e)return null;const t=JSON.parse(e);return t.version!==ad.version?null:t}catch{return null}}function wY(e){if(!(typeof window>"u"||!window.localStorage))try{window.localStorage.setItem(j_,JSON.stringify(e))}catch{}}function w0(e){bd=e,wY(e);for(const t of vd)t(e)}function j0(e){if(!e||typeof e!="object")return Yl;const t=e;return t.version!==ad.version||!t.global||!t.projects?Yl:{version:ad.version,global:t.global,projects:t.projects,custom:t.custom===!0}}function k0(){if(kl)return kl;const e=b0();return kl=fetch("/api/view-prefs").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{const n=j0(t);return v0(e)&&w0(n),kl=null,bd??n}).catch(()=>(kl=null,bd??Yl)),kl}function N_(e){const[t,n]=m.useState(()=>bd??Yl);return m.useEffect(()=>{let r=!1;return k0().then(o=>{r||n(o)}),vd.add(n),()=>{r=!0,vd.delete(n)}},[]),YT(t,e??null)}function jY(){const[e,t]=m.useState(()=>bd??Yl);return m.useEffect(()=>{let n=!1;return k0().then(r=>{n||t(r)}),vd.add(t),()=>{n=!0,vd.delete(t)}},[]),e}async function S_(e){const t=b0(),n=await fetch("/api/view-prefs",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!n.ok){const o=await n.json().catch(()=>({error:`HTTP ${n.status}`}));throw new Error(o.error??"Failed to save view-prefs")}const r=j0(await n.json());return v0(t)&&w0(r),r}function C_(e){return S_({global:e})}function E_(e,t){return S_({projects:{[e]:t}})}async function kY(){const e=b0(),t=await fetch("/api/view-prefs",{method:"DELETE"});if(!t.ok)throw new Error(`HTTP ${t.status}`);const n=j0(await t.json());return v0(e)&&w0(n),n}const VS=80;function T_({open:e,onOpenChange:t,initialName:n="",onSubmit:r,title:o="Save view"}){const[i,a]=m.useState(n),[l,u]=m.useState(!1),[f,p]=m.useState(null);m.useEffect(()=>{e&&(a(n),p(null),u(!1))},[e,n]);const h=i.trim(),g=h.length>0&&h.length<=VS;return s.jsx(Ln,{open:e,onOpenChange:t,children:s.jsx(Nn,{className:"max-w-md",children:s.jsxs("form",{className:"space-y-4",onSubmit:async y=>{if(y.preventDefault(),!(!g||l)){u(!0),p(null);try{await r(h)}catch(k){p(k instanceof Error?k.message:String(k)),u(!1)}}},children:[s.jsx(or,{children:s.jsx(Sn,{children:o})}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("input",{type:"text",value:i,autoFocus:!0,required:!0,maxLength:VS,onChange:y=>a(y.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"}),f?s.jsx("p",{className:"text-xs text-error-foreground",role:"alert",children:f}):null]}),s.jsxs(Wr,{children:[s.jsx("button",{type:"button",onClick:()=>t(!1),className:"shell-action",disabled:l,children:"Cancel"}),s.jsx("button",{type:"submit",disabled:!g||l,className:"shell-action shell-action--cta disabled:opacity-50",children:l?"Saving…":"Save"})]})]})})})}function R_({scope:e,loadedViewId:t,onApply:n,onOpenSaveDialog:r}){const{views:o,loading:i}=Vd(),[a,l]=m.useState(!1),u=m.useRef(null);m.useEffect(()=>{if(!a)return;function g(k){u.current&&!u.current.contains(k.target)&&l(!1)}function y(k){k.key==="Escape"&&l(!1)}return document.addEventListener("mousedown",g),document.addEventListener("keydown",y),()=>{document.removeEventListener("mousedown",g),document.removeEventListener("keydown",y)}},[a]);const f=m.useMemo(()=>o.filter(g=>nA(g,e)),[o,e]),p=t?o.find(g=>g.id===t)??null:null,h=i?"Saved views…":p?p.name:"Saved views";return s.jsxs("div",{className:"relative",ref:u,children:[s.jsxs("button",{type:"button",disabled:i,onClick:()=>l(g=>!g),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":a,title:h,children:[s.jsx("span",{className:"max-w-[160px] truncate",children:h}),s.jsx(nr,{className:"h-3.5 w-3.5","aria-hidden":"true"})]}),a&&s.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:f.length===0?s.jsxs("div",{className:"px-3 py-3 text-sm text-muted-foreground",children:[s.jsx("p",{className:"mb-2",children:"No saved views yet — Save the current view to start."}),s.jsx("button",{type:"button",onClick:()=>{l(!1),r()},className:"shell-action w-full justify-center",children:"Save current view"})]}):f.map(g=>{const y=g.id===t;return s.jsxs("button",{type:"button",onClick:()=>{l(!1),n(g)},className:we("flex w-full items-center gap-2 px-3 py-1.5 text-left text-sm transition hover:bg-foreground/5",y&&"font-semibold text-foreground"),children:[s.jsx("span",{className:"inline-flex h-4 w-4 shrink-0 items-center justify-center",children:y?s.jsx(Sr,{className:"h-3.5 w-3.5","aria-hidden":"true"}):null}),s.jsx("span",{className:"truncate",children:g.name})]},g.id)})})]})}const NY=new Set(["overview","assignments","todos","dependencies","knowledge"]),WS="__unknown_type__";function KS(){const{slug:e,workspace:t}=Kt(),n=gn(),r=Wt();Pi("project"),en({keys:"a",scope:"project",description:"Create assignment",handler:()=>r(`${n}/projects/${e}/create/assignment`)}),en({keys:"e",scope:"project",description:"Edit project",handler:()=>r(`${n}/projects/${e}/edit`)});const{data:o,loading:i,error:a,refetch:l}=Y2(e),u=As(),f=Od(),{data:p}=Ta(),[h,g]=Ts(),y=h.get("tab"),k=y&&NY.has(y)?y:"overview";function v(le){g(Ne=>{const nt=new URLSearchParams(Ne);return le==="overview"?nt.delete("tab"):nt.set("tab",le),nt},{replace:!0})}const b=e?`p:${e}`:null,j=N_(b),[S,N]=m.useState(()=>my(j.defaultView)),[C,P]=m.useState(()=>He(j.filters.status)),[T,R]=m.useState(()=>He(j.filters.assignee)),[I,_]=m.useState(()=>He(j.filters.priority)),[F,D]=m.useState(()=>He(j.filters.type)),[W,V]=m.useState(()=>He(j.filters.tags)),[$,O]=m.useState(null),[U,K]=m.useState(()=>j.grouping),[M,H]=m.useState(()=>j.sortField),[L,z]=m.useState(()=>j.sortDirection),[Y,B]=m.useState(()=>({collapsed:[]})),[Q,J]=m.useState(()=>({hidden:[]})),[Z,oe]=m.useState(()=>({hidden:[]})),[ne,ue]=m.useState(null),[ge,Ce]=m.useState(!1),[Se,ke]=m.useState(!1),{toast:Be,showToast:ie,dismissToast:ve}=Qn(),be={kind:"project",slug:e??"",workspace:t??null},Re=h.get("loadView"),{view:Ue,loading:rt,error:Oe}=Ni(Re),{view:ot,loading:St,error:mt}=Ni(ne),at=m.useRef(null);m.useEffect(()=>{ne&&!St&&!mt&&!ot&&ue(null)},[ot,mt,ne,St]),m.useEffect(()=>{ue(null),at.current=null,O(null)},[e,t]),m.useEffect(()=>{N(my(j.defaultView)),P(He(j.filters.status)),R(He(j.filters.assignee)),_(He(j.filters.priority)),D(He(j.filters.type)),V(He(j.filters.tags)),K(j.grouping),H(j.sortField),z(j.sortDirection)},[e,j.defaultView,j.filters.status,j.filters.assignee,j.filters.priority,j.filters.type,j.filters.tags,j.grouping,j.sortField,j.sortDirection]);const ce=m.useCallback(le=>{b&&E_(b,le).catch(Ne=>{console.warn("Failed to persist project view prefs:",Ne)})},[b]),me=m.useCallback(le=>{N(le),ce({defaultView:le})},[ce]),Ie=m.useCallback(le=>{P(le),ce({filters:{status:le}})},[ce]),Ae=m.useCallback(le=>{R(le),ce({filters:{assignee:le}})},[ce]),Ve=m.useCallback(le=>{_(le),ce({filters:{priority:le}})},[ce]),pt=m.useCallback(le=>{D(le),ce({filters:{type:le}})},[ce]),_e=m.useCallback(le=>{V(le),ce({filters:{tags:le}})},[ce]),Qe=m.useCallback(le=>{K(le),ce({grouping:le})},[ce]),Je=m.useCallback(le=>{H(le),ce({sortField:le})},[ce]),ut=m.useCallback(le=>{z(le),ce({sortDirection:le})},[ce]),fe=m.useCallback(()=>({viewMode:S,filters:{status:C,priority:I,type:F,assignee:T,tags:W,project:"all",activity:"all",dateRange:ga($)},sortField:M,sortDirection:L,listSectionVisibility:Y,kanbanColumnVisibility:Q,tableColumnVisibility:Z}),[S,C,I,F,T,W,$,M,L,Y,Q,Z]),q=m.useCallback(le=>{nP(le,{setViewMode:Ne=>N(my(Ne)),setStatusFilter:Ie,setPriorityFilter:Ve,setTypeFilter:pt,setAssigneeFilter:Ae,setTagsFilter:_e,setDateRange:O,setSortField:Je,setSortDirection:ut,setListSectionVisibility:B,setKanbanColumnVisibility:J,setTableColumnVisibility:oe}),ue(le.id)},[Ie,Ve,pt,Ae,_e,Je,ut]),re=m.useCallback(le=>{q(le),at.current=le.id,g(Ne=>{const nt=new URLSearchParams(Ne);return nt.set("loadView",le.id),nt},{replace:!0})},[q,g]),xe=m.useCallback(async le=>{try{const Ne=oc({name:le,context:{workspace:t??null,projectSlug:e??null},state:fe()}),nt=await tc(Ne),Tn=nt.views[nt.views.length-1];ue((Tn==null?void 0:Tn.id)??null),Tn&&(at.current=Tn.id,g(Tr=>{const io=new URLSearchParams(Tr);return io.set("loadView",Tn.id),io},{replace:!0})),Ce(!1),ke(!1),ie(`Saved view "${le}"`,"success")}catch(Ne){throw ie(Ne instanceof Error?Ne.message:"Failed to save view","error"),Ne}},[fe,g,ie,e,t]),qe=m.useCallback(async()=>{if(!(!ne||!ot))try{const le=He(ot.config.filters.project)[0]??null,Ne=oc({name:ot.name,context:{workspace:t??null,projectSlug:le},state:fe()}),nt=Rh(ot.config,Ne.config,Ne.config);await Nh(ne,{config:nt}),ie("View updated","success")}catch(le){ie(le instanceof Error?le.message:"Failed to update view","error")}},[fe,ot,ne,ie,t]);m.useEffect(()=>{if(!Re){at.current=null;return}if(at.current!==Re&&(ne&&ne!==Re&&ue(null),!rt)){if(Oe){ie("Couldn't load saved view — try again","error");return}if(Ue){if(at.current=Re,!nA(Ue,{kind:"project",slug:e??"",workspace:t??null})){r(sP(Ue),{replace:!0});return}q(Ue),g(le=>{const Ne=new URLSearchParams(le);return Ne.delete("loadView"),Ne},{replace:!0});return}at.current=Re,ie("Saved view no longer exists","error"),g(le=>{const Ne=new URLSearchParams(le);return Ne.delete("loadView"),Ne},{replace:!0})}},[Re,Ue,rt,Oe,ne,q,g,ie,r,e,t]);function Fe(le){M===le?ut(L==="asc"?"desc":"asc"):(Je(le),ut("asc"))}const lt=m.useMemo(()=>o?Object.fromEntries(o.assignments.flatMap(le=>{const Ne=`${n}/projects/${o.slug}/assignments/${le.slug}`;return[[le.slug,Ne],[le.title,Ne]]})):{},[o]),[ht,vt]=m.useState(!1);async function tt(le){vt(!0);try{const Ne=await fetch(`/api/projects/${e}/status-override`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:le})});if(!Ne.ok){const nt=await Ne.json().catch(()=>null);ie((nt==null?void 0:nt.error)||`HTTP ${Ne.status}`,"error");return}l(),ie(le?"Status override set":"Status override cleared","success")}catch(Ne){ie(Ne instanceof Error?Ne.message:"Failed to update status","error")}finally{vt(!1)}}async function Dt(le){vt(!0);try{const Ne=await fetch(`/api/projects/${e}/${le?"archive":"unarchive"}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!Ne.ok){const nt=await Ne.json().catch(()=>null);ie((nt==null?void 0:nt.error)||`HTTP ${Ne.status}`,"error");return}l(),ie(le?"Project archived":"Project restored","success")}catch(Ne){ie(Ne instanceof Error?Ne.message:"Failed to update archive state","error")}finally{vt(!1)}}async function Bt(le){vt(!0);try{const Ne=await fetch(`/api/projects/${e}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspace:le})});if(!Ne.ok){const nt=await Ne.json().catch(()=>null);ie((nt==null?void 0:nt.error)||`HTTP ${Ne.status}`,"error");return}l(),ie(le?`Moved to "${le}"`:"Moved to ungrouped","success")}catch(Ne){ie(Ne instanceof Error?Ne.message:"Failed to move workspace","error")}finally{vt(!1)}}if(i)return s.jsx(bt,{label:"Loading project workspace…"});if(a||!o)return s.jsx(Rt,{error:a||"Project not found."});const Ut=(()=>{const le=new Set;for(const nt of o.assignments)nt.assignee&&le.add(nt.assignee);const Ne=[{value:"__unassigned__",label:"Unassigned"}];for(const nt of Array.from(le).sort())Ne.push({value:nt,label:nt});return Ne})(),En=Array.from(new Set(o.assignments.flatMap(le=>le.tags??[]))).sort().map(le=>({value:le,label:le})),Ct=o.assignments.filter(le=>kH(le,{status:C,priority:I,type:F,assignee:T,tags:W,dateRange:ga($)})),je=qd(Ct,M,L),Ge=new Set(f.definitions.map(le=>le.id)),it=U==="type"?[...f.definitions.map(le=>({id:le.id,title:Bl(f,le.id),description:le.description})),...Ct.some(le=>!le.type||!Ge.has(le.type))?[{id:WS,title:"Other",description:"Assignments with no recognized type."}]:[]]:cP(u.order).map(le=>({id:le,title:To(u,le),description:Gd(le)}));function Mt({field:le,children:Ne}){const nt=M===le;return s.jsx("th",{className:"pb-3 font-medium",children:s.jsxs("button",{type:"button",onClick:()=>Fe(le),className:"inline-flex items-center gap-1 hover:text-foreground",children:[Ne,nt?L==="asc"?s.jsx(h2,{className:"h-3 w-3"}):s.jsx(nr,{className:"h-3 w-3"}):null]})})}return s.jsxs("div",{className:"space-y-5","data-density":j.density,children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsx(jn,{status:o.status}),o.statusOverride&&s.jsx("button",{type:"button",className:"shell-action border-warning-foreground/40 text-warning-foreground disabled:cursor-not-allowed disabled:opacity-50",onClick:()=>tt(null),disabled:ht,title:"Clear manual status override and return to derived status",children:"Clear Override"}),s.jsxs("select",{className:"shell-action appearance-none bg-transparent text-sm disabled:cursor-not-allowed disabled:opacity-50",value:"",disabled:ht,onChange:le=>{le.target.value&&tt(le.target.value)},title:"Override project status",children:[s.jsx("option",{value:"",children:"Set Status…"}),u.statuses.map(le=>s.jsx("option",{value:le.id,children:le.label},le.id)),s.jsx("option",{value:"active",children:"Active"})]}),s.jsx("button",{type:"button",className:"shell-action disabled:cursor-not-allowed disabled:opacity-50",onClick:()=>Dt(!o.archived),disabled:ht,title:o.archived?"Restore this project and its cascade-hidden assignments":"Archive this project (hides it and its assignments from normal views)",children:o.archived?"Restore":"Archive"}),p&&p.workspaces.length>0&&s.jsxs("select",{className:"shell-action appearance-none bg-transparent text-sm disabled:cursor-not-allowed disabled:opacity-50",value:"",disabled:ht,onChange:le=>{le.target.value==="_ungrouped"?Bt(null):le.target.value&&Bt(le.target.value)},title:"Move project to a different workspace",children:[s.jsx("option",{value:"",children:"Move to Workspace…"}),p.workspaces.filter(le=>le!==o.workspace).map(le=>s.jsx("option",{value:le,children:le},le)),o.workspace&&s.jsx("option",{value:"_ungrouped",children:"Ungrouped"})]}),s.jsxs($e,{className:"shell-action",to:`${n}/projects/${o.slug}/edit`,children:[s.jsx(ny,{className:"h-4 w-4"}),s.jsx("span",{children:"Edit Project"})]}),s.jsx(dP,{externalIds:o.externalIds}),s.jsxs("span",{className:"text-xs text-muted-foreground",children:["Created ",Yn(o.created),". Last source update ",Cr(o.updated),"."]})]}),s.jsxs("div",{className:"grid gap-3 grid-cols-2 sm:grid-cols-3 xl:grid-cols-5",children:[s.jsx(Gn,{label:"Assignments",value:o.progress.total}),s.jsx(Gn,{label:"In Progress",value:o.progress.in_progress??0,tone:"info"}),s.jsx(Gn,{label:"Review",value:o.progress.review??0,tone:"info"}),s.jsx(Gn,{label:"Blocked",value:o.progress.blocked??0,tone:"warn"}),s.jsx(Gn,{label:"Completed",value:o.progress.completed??0,tone:"success"})]}),s.jsxs("div",{className:"grid gap-4 xl:grid-cols-[minmax(0,1fr)_300px]",children:[s.jsx("div",{className:"space-y-4",children:s.jsx(qm,{value:k,onValueChange:v,items:[{value:"overview",label:"Overview",content:s.jsx("div",{className:"space-y-5",children:s.jsx(We,{title:"Project Overview",children:o.body&&o.body.trim()?s.jsx(vn,{content:o.body}):s.jsx(Nt,{title:"No overview yet",description:"Add a short summary so collaborators and agents know what this project is about.",actions:s.jsxs($e,{className:"shell-action shell-action--cta",to:`${n}/projects/${o.slug}/edit`,children:[s.jsx(ny,{className:"h-4 w-4"}),s.jsx("span",{children:"Add overview"})]})})})})},{value:"assignments",label:"Assignments",count:o.assignments.filter(le=>!le.archived).length,content:s.jsx("div",{className:"space-y-5",children:s.jsx(We,{title:"Assignment Queue",description:"Board and table views over the source assignment files.",actions:s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsx(wn,{ariaLabel:"Status filter",className:"max-w-[170px]",allLabel:"All statuses",options:u.statuses.map(le=>({value:le.id,label:le.label})),value:C,onChange:Ie}),s.jsx(wn,{ariaLabel:"Assignee filter",className:"max-w-[170px]",allLabel:"All assignees",options:Ut,value:T,onChange:Ae}),s.jsx(wn,{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:I,onChange:Ve}),s.jsx(wn,{ariaLabel:"Type filter",className:"max-w-[170px]",allLabel:"All types",options:f.definitions.map(le=>({value:le.id,label:Bl(f,le.id)})),value:F,onChange:pt}),s.jsx(wn,{ariaLabel:"Tags filter",className:"max-w-[170px]",allLabel:"Any tags",options:En,value:W,onChange:_e}),s.jsx(Um,{className:"max-w-[190px]",value:$,onChange:O}),S==="kanban"&&s.jsxs("select",{value:U==="type"?"type":"status",onChange:le=>Qe(le.target.value),className:"editor-input max-w-[170px]",title:"Group kanban by",children:[s.jsx("option",{value:"status",children:"Group: Status"}),s.jsx("option",{value:"type",children:"Group: Type"})]}),s.jsx(Wm,{value:S,onChange:le=>me(le),options:[{value:"kanban",label:"Kanban"},{value:"table",label:"Table"}]}),s.jsx(R_,{scope:be,loadedViewId:ne,onApply:re,onOpenSaveDialog:()=>{ke(!1),Ce(!0)}}),s.jsx("button",{type:"button",onClick:()=>{ot?qe():(ke(!1),Ce(!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:ot?`Update ${ot.name}`:"Save current view",children:ot?`Update '${ot.name}'`:"Save view"}),ot?s.jsx("button",{type:"button",onClick:()=>{ke(!0),Ce(!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:Ct.length===0?s.jsx(Nt,{title:"No assignments match these filters",description:"Clear the current filters or create a new assignment for this project.",actions:s.jsx($e,{className:"shell-action shell-action--cta",to:`${n}/projects/${o.slug}/create/assignment`,children:"Create Assignment"})}):S==="kanban"?s.jsx(Bm,{columns:it,items:je,getItemId:le=>le.slug,getColumnId:le=>U==="type"?le.type&&Ge.has(le.type)?le.type:WS:le.status,dragDisabled:!0,boundedColumns:!0,renderCard:le=>s.jsx(SY,{projectSlug:o.slug,assignment:le}),emptyMessage:le=>`No ${le.title.toLowerCase()} assignments.`,hiddenColumnIds:Q.hidden,onHideColumn:le=>J(Ne=>({hidden:Ne.hidden.includes(le)?Ne.hidden.filter(Tn=>Tn!==le):[...Ne.hidden,le]}))}):(()=>{const le=new Set(Z.hidden),Ne=nt=>nt==="title"||!le.has(nt);return s.jsxs("div",{className:"overflow-x-auto",children:[s.jsx("div",{className:"mb-3 flex items-center justify-end",children:s.jsx(w_,{visibility:Z,onChange:oe})}),s.jsxs("table",{className:"w-full min-w-[720px] text-left text-sm",children:[s.jsx("thead",{children:s.jsxs("tr",{className:"border-b border-border/60 text-muted-foreground",children:[Ne("title")?s.jsx(Mt,{field:"title",children:"Assignment"}):null,Ne("status")?s.jsx(Mt,{field:"status",children:"Status"}):null,s.jsx("th",{className:"pb-3 font-medium",children:"Type"}),Ne("priority")?s.jsx(Mt,{field:"priority",children:"Priority"}):null,Ne("assignee")?s.jsx(Mt,{field:"assignee",children:"Assignee"}):null,Ne("dependencies")?s.jsx(Mt,{field:"dependencies",children:"Dependencies"}):null,Ne("created")?s.jsx(Mt,{field:"created",children:"Created"}):null,Ne("updated")?s.jsx(Mt,{field:"updated",children:"Updated"}):null]})}),s.jsx("tbody",{children:je.map(nt=>s.jsxs("tr",{className:"border-b border-border/50 last:border-0",children:[Ne("title")?s.jsx("td",{className:"py-4",children:s.jsx($e,{to:`${n}/projects/${o.slug}/assignments/${nt.slug}`,className:"font-semibold text-foreground hover:text-primary",children:nt.title})}):null,Ne("status")?s.jsx("td",{className:"py-4",children:s.jsx(jn,{status:nt.status,className:"max-w-[150px]"})}):null,s.jsx("td",{className:"py-4",children:s.jsx(Pa,{type:nt.type,compact:!0})}),Ne("priority")?s.jsx("td",{className:"py-4 capitalize text-muted-foreground",children:nt.priority}):null,Ne("assignee")?s.jsx("td",{className:"py-4 text-muted-foreground",children:nt.assignee??"—"}):null,Ne("dependencies")?s.jsx("td",{className:"py-4 text-muted-foreground",children:nt.dependsOn.length}):null,Ne("created")?s.jsx("td",{className:"py-4 text-muted-foreground",children:Yn(nt.created)}):null,Ne("updated")?s.jsx("td",{className:"py-4 text-muted-foreground",children:Yn(nt.updated)}):null]},nt.slug))})]})]})})()})})},{value:"todos",label:"Todos",content:s.jsx(yY,{projectId:o.slug})},{value:"dependencies",label:"Dependencies",content:o.dependencyGraph?s.jsx(We,{title:"Dependency Graph",description:"Rendered from the derived graph when available, with a source-based fallback.",children:s.jsx(TV,{definition:o.dependencyGraph,nodeRoutes:lt})}):s.jsx(Nt,{title:"No dependency graph yet",description:"Dependencies appear here once assignments declare dependsOn relationships."})},{value:"knowledge",label:"Knowledge",content:s.jsxs("div",{className:"grid gap-3 lg:grid-cols-2",children:[s.jsx(We,{title:"Resources",description:"Shared project references.",actions:s.jsxs($e,{className:"shell-action",to:`/resources/new?project=${o.slug}`,children:[s.jsx(Pt,{className:"h-4 w-4"}),s.jsx("span",{children:"New Resource"})]}),children:o.resources.length===0?s.jsx(Nt,{title:"No resources yet",description:"Resources live at the project level and stay available to every assignment."}):s.jsx("div",{className:"space-y-3",children:o.resources.map(le=>s.jsxs($e,{to:`/projects/${o.slug}/resources/${le.slug}`,className:"block rounded-md border border-border/60 bg-background/80 p-3 transition hover:border-primary/40",children:[s.jsx("h3",{className:"font-semibold text-foreground",children:le.name}),s.jsxs("p",{className:"mt-2 text-sm text-muted-foreground",children:[le.category," · ",le.source]})]},le.slug))})}),s.jsx(We,{title:"Memories",description:"Learnings and patterns captured during the project.",actions:s.jsxs($e,{className:"shell-action",to:`/memories/new?project=${o.slug}`,children:[s.jsx(Pt,{className:"h-4 w-4"}),s.jsx("span",{children:"New Memory"})]}),children:o.memories.length===0?s.jsx(Nt,{title:"No memories yet",description:"Memories capture patterns discovered during execution so later assignments can reuse them."}):s.jsx("div",{className:"space-y-3",children:o.memories.map(le=>s.jsxs($e,{to:`/projects/${o.slug}/memories/${le.slug}`,className:"block rounded-md border border-border/60 bg-background/80 p-3 transition hover:border-primary/40",children:[s.jsx("h3",{className:"font-semibold text-foreground",children:le.name}),s.jsxs("p",{className:"mt-2 text-sm text-muted-foreground",children:[le.scope," · ",le.source]})]},le.slug))})})]})}]})}),s.jsxs("div",{className:"space-y-5",children:[s.jsx(We,{title:"Progress Summary",children:s.jsx(_h,{progress:o.progress,showLegend:!0})}),s.jsx(We,{title:"Attention",children:(()=>{const le=[{label:"Blocked",count:o.needsAttention.blockedCount,alert:!0},{label:"Failed",count:o.needsAttention.failedCount,alert:!0},{label:"Unanswered questions",count:o.needsAttention.openQuestions,alert:!1}].filter(Ne=>Ne.count>0);return le.length===0?s.jsx("p",{className:"text-sm text-muted-foreground",children:"Nothing needs attention."}):s.jsx("dl",{className:"space-y-3 text-sm",children:le.map(Ne=>s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("dt",{className:"text-muted-foreground",children:Ne.label}),s.jsx("dd",{className:`font-semibold ${Ne.alert?"text-warning-foreground":"text-foreground"}`,children:Ne.count})]},Ne.label))})})()}),s.jsx(We,{title:"Quick Links",children:s.jsxs("div",{className:"space-y-2 text-sm",children:[s.jsxs($e,{className:"flex items-center gap-2 text-primary hover:underline",to:`${n}/projects/${o.slug}/edit`,children:[s.jsx(ny,{className:"h-4 w-4"}),"Edit project source"]}),s.jsxs($e,{className:"flex items-center gap-2 text-primary hover:underline",to:`${n}/projects/${o.slug}/create/assignment`,children:[s.jsx(Pt,{className:"h-4 w-4"}),"Create assignment"]}),s.jsxs($e,{className:"flex items-center gap-2 text-primary hover:underline",to:"/help",children:[s.jsx(o4,{className:"h-4 w-4"}),"Review project rules"]}),s.jsxs("button",{type:"button",onClick:()=>v("dependencies"),className:"flex items-center gap-2 text-primary hover:underline",children:[s.jsx(qv,{className:"h-4 w-4"}),"Jump to dependencies"]})]})}),o.archived?s.jsxs(We,{title:"Archive Metadata",children:[s.jsxs("p",{className:"text-sm leading-6 text-muted-foreground",children:["Archived ",o.archivedAt?Cr(o.archivedAt):"with no timestamp recorded","."]}),o.archivedReason?s.jsx("p",{className:"mt-2 text-sm leading-6 text-muted-foreground",children:o.archivedReason}):null]}):null]})]}),s.jsx(Xn,{toast:Be,onDismiss:ve}),s.jsx(T_,{open:ge,onOpenChange:le=>{Ce(le),le||ke(!1)},initialName:Se&&ot?`${ot.name} (copy)`:"",title:Se?"Save as new view":"Save view",onSubmit:xe})]})}function SY({projectSlug:e,assignment:t}){const n=gn();return s.jsxs($e,{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:[s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsx("h3",{className:"font-semibold text-foreground",children:t.title}),s.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),s.jsx("span",{onClick:r=>{r.preventDefault(),r.stopPropagation()},children:s.jsx(kr,{value:t.id})})]}),s.jsxs("p",{className:"text-sm text-muted-foreground",children:["Updated ",Yn(t.updated)]})]}),s.jsx(jn,{status:t.status,className:"max-w-[150px]"})]}),s.jsxs("div",{className:"mt-4 flex flex-wrap gap-2",children:[s.jsx(Pa,{type:t.type}),s.jsx("span",{className:"rounded-full border border-border/60 px-2.5 py-1 text-xs capitalize text-muted-foreground",children:t.priority}),s.jsx("span",{className:"rounded-full border border-border/60 px-2.5 py-1 text-xs text-muted-foreground",children:t.assignee??"Unassigned"}),s.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 A_(e,t=!0){const[n,r]=m.useState([]),[o,i]=m.useState(!0),[a,l]=m.useState(null),[u,f]=m.useState(0),p=t?e:null,h=m.useCallback(()=>{f(y=>y+1)},[]),g=m.useRef(p);return g.current!==p&&(g.current=p,r([]),l(null)),m.useEffect(()=>{if(!p){i(!1),r([]);return}let y=!1;return i(!0),l(null),fetch(p).then(async k=>{if(!k.ok){const v=await k.json().catch(()=>null);throw new Error((v==null?void 0:v.error)||`HTTP ${k.status}`)}return k.json()}).then(k=>{y||(r(Array.isArray(k.events)?k.events:[]),i(!1))}).catch(k=>{y||(l(k.message),i(!1))}),()=>{y=!0}},[p,u]),Ti(y=>{p&&(y.type==="assignment-updated"||y.type==="project-updated")&&h()}),{events:n,loading:o,error:a,refetch:h}}function P_({sessionId:e,disabled:t=!1,disabledReason:n,onError:r,onNotice:o}){const[i,a]=m.useState(!1),[l,u]=m.useState(!1);async function f(){var h;if(t||l)return;u(!0);const p=(async()=>{const g=await fetch(`/api/launch/command?session=${encodeURIComponent(e)}&mode=resume`);if(!g.ok){const k=await g.json().catch(()=>null);throw new Error((k==null?void 0:k.error)??`HTTP ${g.status}`)}const y=await g.json().catch(()=>null);if(!y||typeof y.command!="string")throw new Error("Malformed response from launch command endpoint");return{command:y.command,fallbackWarning:typeof y.fallbackWarning=="string"&&y.fallbackWarning?y.fallbackWarning:void 0}})();try{const g=typeof((h=navigator.clipboard)==null?void 0:h.write)=="function"&&typeof ClipboardItem<"u";let y;if(g)await navigator.clipboard.write([new ClipboardItem({"text/plain":p.then(k=>new Blob([k.command],{type:"text/plain"}))})]),y=(await p).fallbackWarning;else{const k=await p;if(!navigator.clipboard||typeof navigator.clipboard.writeText!="function")throw new Error("Clipboard API is unavailable in this context.");await navigator.clipboard.writeText(k.command),y=k.fallbackWarning}a(!0),setTimeout(()=>a(!1),1500),y&&(o==null||o(y))}catch(g){let y=g instanceof Error?g:new Error(String(g));try{await p}catch(k){y=k instanceof Error?k:new Error(String(k))}r==null||r(y)}finally{u(!1)}}return t?s.jsx("button",{type:"button",disabled:!0,"aria-disabled":"true",className:"cursor-not-allowed text-muted-foreground/50",title:n??"Copy launch command unavailable","aria-label":"Copy launch command",children:s.jsx(P1,{className:"h-3 w-3","aria-hidden":"true"})}):s.jsx("button",{type:"button",onClick:f,disabled:l,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 disabled:cursor-wait",title:i?"Copied!":"Copy launch command (cd + resume)","aria-label":"Copy launch command",children:i?s.jsx(Sr,{className:"h-3 w-3 text-status-completed-foreground","aria-hidden":"true"}):s.jsx(P1,{className:"h-3 w-3","aria-hidden":"true"})})}function Cu(e,t,n,r,o){let i=`syntaur://open?${e.kind}=${encodeURIComponent(e.id)}`;return e.kind==="session"&&t&&(i+=`&mode=${encodeURIComponent(t)}`),n&&(i+=`&terminal=${encodeURIComponent(n)}`),r&&e.kind==="assignment"&&(i+=`&agent=${encodeURIComponent(r)}`),o!==void 0&&e.kind==="assignment"&&(i+=`&prompt=${encodeURIComponent(o)}`),i}function CY(e){return e.kind==="session"?{method:"POST",url:`/api/agent-sessions/${encodeURIComponent(e.id)}/worktree/recreate`}:e.projectSlug&&e.assignmentSlug?{method:"POST",url:`/api/projects/${encodeURIComponent(e.projectSlug)}/assignments/${encodeURIComponent(e.assignmentSlug)}/worktree/recreate`}:{method:"POST",url:`/api/assignments/${encodeURIComponent(e.id)}/worktree/recreate`}}function EY(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 __(e,t,n,r){const o=await fetch(`/api/projects/${e}/assignments/${t}/transitions/${n.command}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(r?{reason:r}:{})}),i=await o.json().catch(()=>null);if(!o.ok)throw new Error((i==null?void 0:i.error)||`HTTP ${o.status}`);return i.assignment}async function D_(e,t,n){const r=await fetch(`/api/projects/${e}/assignments/${t}/status-override`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:n})}),o=await r.json().catch(()=>null);if(!r.ok)throw new Error((o==null?void 0:o.error)||`HTTP ${r.status}`);return o.assignment}async function TY(e,t){const n=await fetch(`/api/projects/${e}/assignments/${t}`,{method:"DELETE"}),r=await n.json().catch(()=>null);if(!n.ok)throw new Error((r==null?void 0:r.error)||`HTTP ${n.status}`)}function $_(e){return e.requiresReason||e.command==="block"}async function RY(e,t,n){const r=await fetch(`/api/assignments/${e}/transitions/${t.command}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n?{reason:n}:{})}),o=await r.json().catch(()=>null);if(!r.ok)throw new Error((o==null?void 0:o.error)||`HTTP ${r.status}`);return o.assignment}async function AY(e,t){const n=await fetch(`/api/assignments/${e}/status-override`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:t})}),r=await n.json().catch(()=>null);if(!n.ok)throw new Error((r==null?void 0:r.error)||`HTTP ${n.status}`);return r.assignment}async function PY(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 _Y(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 N0 extends Error{constructor(t,n){super(t),this.stderr=n,this.name="CreateWorktreeError"}}async function S0(e){const t=await e.json().catch(()=>null);return new N0((t==null?void 0:t.error)||`HTTP ${e.status}`,t==null?void 0:t.stderr)}async function DY(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 $Y(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 IY(e,t,n){const r=await fetch(`/api/projects/${e}/assignments/${t}/worktree`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(!r.ok)throw await S0(r);return(await r.json()).assignment}async function MY(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 S0(n);return(await n.json()).assignment}async function LY(e){const{url:t}=CY(e),n=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});if(!n.ok)throw await S0(n);return await n.json()}async function Jm(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 OY(e,t,n){const r=await fetch(`/api/projects/${e}/assignments/${t}/repository-branches?repo=${encodeURIComponent(n)}`);return Jm(r)}async function FY(e,t){const n=await fetch(`/api/assignments/${e}/repository-branches?repo=${encodeURIComponent(t)}`);return Jm(n)}async function zY(e,t){const n=await fetch(`/api/projects/${e}/assignments/${t}/source-assignments`);return(await Jm(n)).sourceAssignments}async function BY(e){const t=await fetch(`/api/assignments/${e}/source-assignments`);return(await Jm(t)).sourceAssignments}function I_(){const[e,t]=m.useState(!1),[n,r]=m.useState(null),[o,i]=m.useState(null),[a,l]=m.useState(null),[u,f]=m.useState(null),[p,h]=m.useState(null),[g,y]=m.useState(!1),[k,v]=m.useState(null),[b,j]=m.useState(null);async function S(T,R,I,_){if(!e){t(!0);try{const F=await fetch("/api/launch/preflight",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:{kind:T.kind,id:T.id}})});if(!F.ok){window.location.href=Cu(T,R,void 0,I,_);return}const D=await F.json();if(D.ok){window.location.href=Cu(T,R,void 0,I,_);return}if(D.reason==="workspace-path-invalid"){D.recreate?(f(D.recreate),h({target:T,mode:R,agentId:I,prompt:_})):l(D.message);return}r(D),i({target:T,mode:R,agentId:I,prompt:_})}catch(F){console.warn("preflight failed, firing without override:",F),window.location.href=Cu(T,R,void 0,I,_)}finally{t(!1)}}}function N(){!n||!o||(window.location.href=Cu(o.target,o.mode,n.suggestedFallback,o.agentId,o.prompt),r(null),i(null))}async function C(){if(!(!u||!p||g)){y(!0),v(null);try{const T=await LY({kind:u.kind,id:u.id,projectSlug:u.projectSlug,assignmentSlug:u.assignmentSlug}),{target:R,mode:I,agentId:_,prompt:F}=p;f(null),h(null),window.location.href=Cu(R,I,void 0,_,F),!T.exact&&!T.alreadyExisted&&j(`Recreated from ${T.baseUsed} — the original branch couldn't be restored exactly, but the directory is back and your agent is opening.`)}catch(T){v(T instanceof N0&&T.stderr?`${T.message}
|
|
629
|
-
${T.stderr}`:T instanceof Error?T.message:String(T))}finally{y(!1)}}}const P=s.jsxs(s.Fragment,{children:[s.jsx(Rl,{open:n!==null,onOpenChange:T=>!T&&(r(null),i(null)),children:s.jsxs(la,{children:[s.jsxs(Al,{children:[s.jsxs(ca,{children:[n==null?void 0:n.terminal," is not installed"]}),s.jsxs(ua,{children:[(n==null?void 0:n.terminal)==="cmux"?s.jsxs(s.Fragment,{children:["To use cmux, install ",s.jsx("strong",{children:"cmux.app"})," into"," ",s.jsx("code",{children:"/Applications"}),"."," "]}):null,"Open in ",s.jsx("strong",{children:n==null?void 0:n.suggestedFallback})," instead? You can change the default in"," ",s.jsx($e,{to:"/settings",className:"underline hover:text-foreground",onClick:()=>{r(null),i(null)},children:"Settings"}),"."]})]}),s.jsxs(Pl,{children:[s.jsx(cd,{className:"shell-action mt-0",children:"Cancel"}),s.jsxs(bi,{className:"shell-action mt-0 shell-action--cta",onClick:T=>{T.preventDefault(),N()},children:["Open in ",n==null?void 0:n.suggestedFallback]})]})]})}),s.jsx(Rl,{open:a!==null,onOpenChange:T=>!T&&l(null),children:s.jsxs(la,{children:[s.jsxs(Al,{children:[s.jsx(ca,{children:"Can't open in agent"}),s.jsxs(ua,{children:[a," Set a valid worktree or repository, then try again."]})]}),s.jsx(Pl,{children:s.jsx(bi,{className:"shell-action mt-0 shell-action--cta",onClick:()=>l(null),children:"OK"})})]})}),s.jsx(Rl,{open:u!==null,onOpenChange:T=>{!T&&!g&&(f(null),h(null),v(null))},children:s.jsxs(la,{children:[s.jsxs(Al,{children:[s.jsx(ca,{children:"Worktree was deleted"}),s.jsxs(ua,{children:["The worktree at ",s.jsx("code",{children:u==null?void 0:u.deletedPath})," no longer exists. Recreate it",u!=null&&u.branch?s.jsxs(s.Fragment,{children:[" ","on branch ",s.jsx("code",{children:u.branch})]}):null," ","so this can open?"]})]}),k&&s.jsx("pre",{className:"max-h-40 overflow-auto whitespace-pre-wrap rounded bg-muted p-2 text-xs text-destructive",children:k}),s.jsxs(Pl,{children:[s.jsx(cd,{className:"shell-action mt-0",disabled:g,children:"No"}),s.jsx(bi,{className:"shell-action mt-0 shell-action--cta",disabled:g,onClick:T=>{T.preventDefault(),C()},children:g?"Recreating…":"Yes, recreate"})]})]})}),s.jsx(Rl,{open:b!==null,onOpenChange:T=>!T&&j(null),children:s.jsxs(la,{children:[s.jsxs(Al,{children:[s.jsx(ca,{children:"Worktree recreated"}),s.jsx(ua,{children:b})]}),s.jsx(Pl,{children:s.jsx(bi,{className:"shell-action mt-0 shell-action--cta",onClick:()=>j(null),children:"OK"})})]})})]});return{open:S,pending:e,dialogs:P}}function M_({session:e,onMarkStopped:t}){const n=I_(),r={kind:"session",id:e.sessionId},o="size-3.5",i=we("shell-action","inline-flex items-center justify-center px-2 py-1 text-xs","disabled:cursor-not-allowed disabled:opacity-50"),a="inline-flex outline-none focus-visible:ring-1 focus-visible:ring-ring rounded-sm",l=!e.resumeSupported&&!e.forkSupported;return s.jsxs(s.Fragment,{children:[s.jsx(ma,{delayDuration:200,children:s.jsxs("div",{className:"inline-flex items-center gap-1",children:[l&&s.jsxs(Fr,{children:[s.jsx(zr,{asChild:!0,children:s.jsx("span",{tabIndex:0,className:a,children:s.jsxs("button",{type:"button",disabled:!0,"aria-disabled":!0,className:i,children:[s.jsx(Ml,{className:o}),s.jsx("span",{children:"Reopen"})]})})}),s.jsx(vr,{side:"top",children:"Reopen unavailable — this agent has no resume/fork command configured"})]}),e.resumeSupported&&(e.isLive?s.jsxs(Fr,{children:[s.jsx(zr,{asChild:!0,children:s.jsx("span",{tabIndex:0,className:a,children:s.jsxs("button",{type:"button",disabled:!0,"aria-disabled":!0,className:i,children:[s.jsx(Ml,{className:o}),s.jsx("span",{children:"Resume"})]})})}),s.jsx(vr,{side:"top",children:"Session appears active — fork instead to avoid transcript corruption"})]}):s.jsxs(Fr,{children:[s.jsx(zr,{asChild:!0,children:s.jsxs("button",{type:"button",className:i,disabled:n.pending,onClick:()=>void n.open(r,"resume"),children:[s.jsx(Ml,{className:o}),s.jsx("span",{children:"Resume"})]})}),s.jsx(vr,{side:"top",children:"Continue this session in its agent (same session id, same transcript)"})]})),e.forkSupported&&s.jsxs(Fr,{children:[s.jsx(zr,{asChild:!0,children:s.jsxs("button",{type:"button",className:i,disabled:n.pending,onClick:()=>void n.open(r,"fork"),children:[s.jsx(j4,{className:o}),s.jsx("span",{children:"Fork"})]})}),s.jsx(vr,{side:"top",children:"Branch a new session from this point — safe even when the original is still running"})]}),e.status==="active"&&s.jsxs(Fr,{children:[s.jsx(zr,{asChild:!0,children:s.jsxs("button",{type:"button",className:i,disabled:n.pending,onClick:()=>t(e.sessionId),children:[s.jsx(Qv,{className:o}),s.jsx("span",{children:"Mark stopped"})]})}),s.jsx(vr,{side:"top",children:e.resumeSupported?"Tell the dashboard this session has ended so Resume re-enables":"Tell the dashboard this session has ended"})]})]})}),n.dialogs]})}async function UY(e){const t=await fetch(`/api/agent-sessions/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:"stopped"})});if(!t.ok)throw new Error(await t.text().catch(()=>"")||`HTTP ${t.status}`)}function L_({sessions:e,loading:t,error:n,onError:r,onNotice:o}){return t&&!e?null:n&&!e?s.jsx(We,{title:"Agent Sessions",children:s.jsx(Nt,{title:"Couldn't load sessions",description:n})}):!e||e.length===0?s.jsx(We,{title:"Agent Sessions",children:s.jsx(Nt,{title:"No agent sessions yet",description:"Sessions appear here when an agent registers one via /grab-assignment or syntaur track-session."})}):s.jsx(We,{title:"Agent Sessions",children:s.jsx("div",{className:"space-y-2",children:e.map(i=>s.jsxs("div",{className:"flex flex-wrap items-center gap-x-2 gap-y-1 text-sm",children:[s.jsxs("span",{className:"flex items-center gap-1.5",children:[s.jsx(nm,{className:"h-3 w-3 shrink-0 text-muted-foreground"}),s.jsx("span",{className:"font-medium text-foreground",children:i.agent}),s.jsxs("span",{className:"inline-flex items-center gap-1.5 font-mono text-xs text-muted-foreground",title:i.sessionId,children:[i.sessionId.slice(0,8),s.jsx(kr,{value:i.sessionId,onError:r}),s.jsx(P_,{sessionId:i.sessionId,disabled:!i.resumeSupported,disabledReason:"Resume not supported for this agent",onError:r,onNotice:o})]})]}),s.jsxs("span",{className:"flex items-center gap-2",children:[s.jsx(jn,{status:i.status}),s.jsx("span",{className:"text-xs text-muted-foreground",children:Cr(i.started)})]}),s.jsx(M_,{session:i,onMarkStopped:a=>UY(a).catch(l=>r==null?void 0:r(l instanceof Error?l:new Error(String(l))))})]},i.sessionId))})})}const Wy="Cost / Usage";function O_({summary:e,error:t}){return t&&!e?s.jsx(We,{title:Wy,children:s.jsx(Nt,{title:"Couldn't load usage",description:t})}):e?e.lastEventDay===null?s.jsx(We,{title:Wy,children:s.jsx(Nt,{title:"No usage recorded yet",description:"Cost and token totals appear here once the usage collector records activity for this assignment."})}):s.jsx(We,{title:Wy,children:s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsx(qS,{label:"Total cost",value:Zl(e.totalCost)}),s.jsx(qS,{label:"Total tokens",value:Jl(e.totalTokens)})]}),e.byModel.length>1?s.jsxs("div",{className:"space-y-1.5 border-t border-border pt-3",children:[s.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"By model"}),s.jsx("div",{className:"space-y-1",children:e.byModel.map(n=>s.jsxs("div",{className:"flex items-center justify-between gap-2 text-sm",children:[s.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[s.jsx(am,{className:"h-3 w-3 shrink-0 text-muted-foreground"}),s.jsx("span",{className:"truncate font-mono text-xs text-foreground",title:n.model,children:n.model})]}),s.jsxs("span",{className:"shrink-0 text-xs text-muted-foreground",children:[Jl(n.totalTokens)," · ",Zl(n.totalCost)]})]},n.model))})]}):null,s.jsxs("p",{className:"text-xs text-muted-foreground",children:["Last usage recorded ",EO(e.lastEventDay)]})]})}):null}function qS({label:e,value:t}){return s.jsxs("div",{className:"space-y-0.5",children:[s.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:e}),s.jsx("p",{className:"text-lg font-semibold tabular-nums text-foreground",children:t})]})}function F_({open:e,action:t,assignmentTitle:n,loading:r=!1,onConfirm:o,onOpenChange:i}){const[a,l]=m.useState("");m.useEffect(()=>{e||l("")},[e,t==null?void 0:t.command]);const u=m.useMemo(()=>t&&t.command==="block"?"Blocked Reason":"Reason",[t]);if(!t)return null;const f=`${t.label} "${n}"`,p=r?"Applying...":t.label,h=a.trim()||void 0;return s.jsx(Ln,{open:e,onOpenChange:g=>r?void 0:i(g),children:s.jsx(Nn,{className:"max-w-xl",children:s.jsxs("form",{className:"space-y-5",onSubmit:g=>{g.preventDefault(),o(h)},children:[s.jsxs(or,{children:[s.jsx(Sn,{children:f}),s.jsx(ns,{children:t.description})]}),t.warning?s.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,s.jsxs("div",{className:"space-y-2",children:[s.jsx("label",{className:"block text-xs font-medium uppercase tracking-[0.08em] text-muted-foreground",children:u}),s.jsx("textarea",{value:a,onChange:g=>l(g.target.value),autoFocus:!0,rows:4,disabled:r,placeholder:"Optional context for why this assignment is blocked.",className:"editor-textarea min-h-[120px] bg-background/95 font-sans"}),s.jsx("p",{className:"text-xs text-muted-foreground",children:"Leave this blank to continue without a written reason."})]}),s.jsxs(Wr,{children:[s.jsx("button",{type:"button",onClick:()=>i(!1),disabled:r,className:"shell-action disabled:cursor-not-allowed disabled:opacity-50",children:"Cancel"}),s.jsx("button",{type:"submit",disabled:r,className:"shell-action shell-action--cta disabled:cursor-not-allowed disabled:opacity-50",children:p})]})]})})})}const HY=/^[a-z0-9][a-z0-9_-]*$/,z_=["first","last","none"];class B_ extends Error{constructor(n,r){super(n);Kx(this,"fieldErrors");this.name="AgentsConfigError",this.fieldErrors=r}}const C0={agents:[],custom:!1};let _l=null,Nl=null,Mh=0;const mv=new Set;function U_(e){_l=e;for(const t of mv)t(e)}function VY(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(r=>typeof r=="string")&&(n.args=t.args),typeof t.promptArgPosition=="string"&&z_.includes(t.promptArgPosition)&&(n.promptArgPosition=t.promptArgPosition),typeof t.resolveFromShellAliases=="boolean"&&(n.resolveFromShellAliases=t.resolveFromShellAliases),typeof t.default=="boolean"&&(n.default=t.default),typeof t.model=="string"&&(n.model=t.model),typeof t.playbook=="string"&&(n.playbook=t.playbook),typeof t.launchPrompt=="string"&&(n.launchPrompt=t.launchPrompt),n}function E0(e){if(!e||typeof e!="object")return C0;const t=e,n=Array.isArray(t.agents)?t.agents:[],r=[];for(const o of n){const i=VY(o);i&&r.push(i)}return{agents:r,custom:t.custom===!0}}function WY(){if(_l)return Promise.resolve(_l);if(Nl)return Nl;const e=++Mh;return Nl=fetch("/api/config/agents").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{Nl=null;const n=E0(t);return e!==Mh?_l??n:(_l=n,n)}).catch(()=>(Nl=null,C0)),Nl}function H_(){const[e,t]=m.useState(()=>_l??C0);return m.useEffect(()=>{let n=!1;return WY().then(r=>{n||t(r)}),mv.add(t),()=>{n=!0,mv.delete(t)}},[]),e}async function V_(e){const t=await e.json().catch(()=>null),n=(t==null?void 0:t.error)??`HTTP ${e.status}`;return new B_(n,t==null?void 0:t.fieldErrors)}async function KY(e){++Mh;const t=await fetch("/api/config/agents",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({agents:e})});if(!t.ok)throw await V_(t);const n=E0(await t.json());return U_(n),n}async function qY(){++Mh;const e=await fetch("/api/config/agents",{method:"DELETE"});if(!e.ok)throw await V_(e);const t=E0(await e.json());return U_(t),t}const GS=/[A-Za-z0-9_-]/,GY=/^[a-z0-9]+(-[a-z0-9]+)*$/,YS=/(^|\s)@([A-Za-z0-9_-]+)/g,gv="assignment";function W_(e,t){const n=Math.max(0,Math.min(t,e.length));let r=n;for(;r>0&&GS.test(e[r-1]);)r--;const o=r-1;if(o<0||e[o]!=="@"||o>0&&!/\s/.test(e[o-1]))return null;let i=n;for(;i<e.length&&GS.test(e[i]);)i++;return{start:o,end:i,partial:e.slice(o+1,n)}}function K_(e,t){const n=[gv,...t.filter(a=>a!==gv)],r=e.toLowerCase();if(r==="")return n;const o=[],i=[];for(const a of n){const l=a.toLowerCase();l.startsWith(r)?o.push(a):l.includes(r)&&i.push(a)}return[...o,...i]}function q_(e,t,n){const r=`@${n}`;return{text:e.slice(0,t.start)+r+e.slice(t.end),caret:t.start+r.length}}function G_(e,t){const n=t instanceof Set?t:new Set(t),r=[];YS.lastIndex=0;let o;for(;(o=YS.exec(e))!==null;){const i=o[2];i!==gv&&(GY.test(i)?n.has(i)||r.push(`Playbook "${i}" is not installed — "@${i}" will be left as literal text.`):r.push(`"@${i}" is not a valid playbook token — it will be left as literal text.`))}return r}const XS=2e3;function YY({open:e,assignmentId:t,agentId:n,onConfirm:r,onOpenChange:o}){const[i,a]=m.useState(""),[l,u]=m.useState([]),[f,p]=m.useState(!1),[h,g]=m.useState(null),[y,k]=m.useState(0),[v,b]=m.useState(0),[j,S]=m.useState(!1),N=m.useRef(null);m.useEffect(()=>{if(!e)return;let $=!1;p(!0),g(null),S(!1);const O=new URLSearchParams({assignment:t});return n&&O.set("agent",n),fetch(`/api/launch/prompt?${O.toString()}`).then(async U=>{if(!U.ok){const K=await U.json().catch(()=>null);throw new Error((K==null?void 0:K.error)??`HTTP ${U.status}`)}return await U.json()}).then(U=>{$||(a(U.template??""),u(U.knownPlaybookSlugs??[]),k((U.template??"").length))}).catch(U=>{$||g(U instanceof Error?U.message:String(U))}).finally(()=>{$||p(!1)}),()=>{$=!0}},[e,t,n]);const C=W_(i,y),P=C?K_(C.partial,l):[],T=e&&!f&&!j&&P.length>0,R=G_(i,l),I=i.length>XS;function _($){a($.target.value),k($.target.selectionStart??$.target.value.length),b(0),S(!1)}function F($){k($.currentTarget.selectionStart??i.length),b(0)}function D($){if(!C||!$)return;const O=q_(i,C,$);a(O.text),k(O.caret),b(0),S(!0),requestAnimationFrame(()=>{const U=N.current;U&&(U.focus(),U.setSelectionRange(O.caret,O.caret))})}function W($){T&&($.key==="ArrowDown"?($.preventDefault(),b(O=>Math.min(O+1,P.length-1))):$.key==="ArrowUp"?($.preventDefault(),b(O=>Math.max(O-1,0))):($.key==="Enter"||$.key==="Tab")&&($.preventDefault(),D(P[v])))}function V(){I||f||(r(i),o(!1))}return s.jsx(Ln,{open:e,onOpenChange:o,children:s.jsxs(Nn,{onEscapeKeyDown:$=>{T&&($.preventDefault(),S(!0))},children:[s.jsxs(or,{children:[s.jsx(Sn,{children:"Edit launch prompt"}),s.jsxs(ns,{children:["The first message the agent starts with. ",s.jsx("code",{children:"@assignment"})," and"," ",s.jsx("code",{children:"@<playbook>"})," tokens resolve at launch. This edit applies to this launch only."]})]}),h?s.jsxs("p",{className:"text-sm text-error-foreground",children:["Couldn't load the prompt: ",h]}):s.jsxs("div",{className:"relative",children:[s.jsx("textarea",{ref:N,value:i,disabled:f,rows:4,spellCheck:!1,placeholder:f?"Loading…":"@assignment Run @<playbook> end-to-end.",onChange:_,onKeyDown:W,onKeyUp:F,onClick:F,className:we("w-full rounded-md border border-border/60 bg-background/90 p-3 font-mono text-sm text-foreground outline-none transition focus:border-primary focus:ring-2 focus:ring-ring/30 min-h-[80px] resize-y",I&&"border-error-foreground")}),T&&s.jsx("ul",{role:"listbox",className:"absolute left-0 right-0 top-full z-30 mt-1 max-h-48 overflow-auto rounded-md border border-border/70 bg-background py-1 shadow-lg",children:P.map(($,O)=>s.jsx("li",{children:s.jsxs("button",{type:"button",role:"option","aria-selected":O===v,onMouseDown:U=>{U.preventDefault(),D($)},className:we("flex w-full items-center gap-2 px-2.5 py-1.5 text-left font-mono text-sm transition-colors hover:bg-accent",O===v&&"bg-accent"),children:[s.jsx("span",{className:"text-muted-foreground",children:"@"}),s.jsx("span",{className:"truncate",children:$})]})},$))})]}),R.length>0&&!h&&s.jsx("ul",{className:"space-y-0.5 text-[11px] text-error-foreground",children:R.map($=>s.jsx("li",{children:$},$))}),I&&s.jsxs("p",{className:"text-[11px] text-error-foreground",children:["Too long — keep it under ",XS," characters (",i.length,")."]}),s.jsxs(Wr,{children:[s.jsx("button",{type:"button",className:"shell-action mt-0",onClick:()=>o(!1),children:"Cancel"}),s.jsx("button",{type:"button",className:"shell-action mt-0 shell-action--cta",disabled:f||I||h!==null,onClick:V,children:"Launch"})]})]})})}function Y_({target:e,worktreePath:t=null,repository:n=null,size:r="default",title:o}){const i=e.kind==="assignment"&&!t&&!n,a=I_(),[l,u]=m.useState(null),p=H_().agents,[h,g]=m.useState(null);m.useEffect(()=>{p.length!==0&&g(R=>R&&p.some(_=>_.id===R)?R:(p.find(_=>_.default)??p[0]).id)},[p]);const y=e.kind==="assignment"&&p.length>1,k=p.find(R=>R.id===h)??null,v=m.useRef(null),[b,j]=m.useState(!1);m.useEffect(()=>{if(!b)return;function R(_){v.current&&!v.current.contains(_.target)&&j(!1)}function I(_){_.key==="Escape"&&j(!1)}return document.addEventListener("mousedown",R),document.addEventListener("keydown",I),()=>{document.removeEventListener("mousedown",R),document.removeEventListener("keydown",I)}},[b]);function S(R){var I,_;if(e.kind==="assignment"){const F=p.find(W=>W.id===R)??p.find(W=>W.default)??p[0];!!((I=F==null?void 0:F.launchPrompt)!=null&&I.trim())||!!((_=F==null?void 0:F.playbook)!=null&&_.trim())?a.open(e,void 0,R):u({agentId:R})}else a.open(e,void 0,R)}const N=e.kind==="assignment"?"Open this assignment in your configured terminal + agent":"Resume this session in its agent",C="Set a workspace path first — see the Workspace Before Code playbook",P=we("shell-action",r==="compact"&&"inline-flex items-center justify-center px-2 py-1 text-xs","disabled:cursor-not-allowed disabled:opacity-50");if(i)return s.jsxs("button",{type:"button",disabled:!0,title:C,className:P,"aria-disabled":!0,children:[s.jsx(Ml,{className:"size-3.5"}),s.jsx("span",{children:"Open in agent"})]});const T=e.kind==="session"?"Open":"Open in agent";return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"relative inline-flex",ref:v,children:[s.jsxs("div",{className:"inline-flex items-stretch",children:[s.jsxs("button",{type:"button",onClick:()=>S(h??void 0),disabled:a.pending,title:(o??N)+(y&&k?` (${k.label})`:""),className:we(P,y&&"rounded-r-none"),children:[s.jsx(Ml,{className:"size-3.5"}),s.jsx("span",{children:T})]}),y&&s.jsx("button",{type:"button",onClick:()=>j(R=>!R),disabled:a.pending,"aria-haspopup":"menu","aria-expanded":b,"aria-label":"Choose which agent to launch",title:"Choose which agent to launch",className:we(P,"-ml-px rounded-l-none",r==="compact"?"px-1":"px-1.5"),children:s.jsx(nr,{className:we("size-3.5 opacity-70 transition-transform",b&&"rotate-180")})})]}),b&&y&&s.jsxs("div",{role:"menu","aria-label":"Open with agent",className:"absolute right-0 top-full z-30 mt-1 min-w-[180px] overflow-hidden rounded-md border border-border/70 bg-background py-1 shadow-lg",children:[s.jsx("div",{className:"px-2.5 pb-1 pt-0.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground/70",children:"Open with agent"}),p.map(R=>s.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":R.id===h,onClick:()=>{g(R.id),j(!1),S(R.id)},className:"flex w-full items-center gap-2 px-2.5 py-1.5 text-left text-sm text-foreground transition-colors hover:bg-accent",children:[s.jsx(Sr,{className:we("size-3.5 shrink-0",R.id===h?"opacity-100":"opacity-0")}),s.jsx("span",{className:"truncate",children:R.label}),R.default&&s.jsx("span",{className:"ml-auto text-[10px] text-muted-foreground/60",children:"default"})]},R.id))]})]}),a.dialogs,e.kind==="assignment"&&l&&s.jsx(YY,{open:!0,assignmentId:e.id,agentId:l.agentId,onConfirm:R=>{a.open(e,void 0,l.agentId,R)},onOpenChange:R=>{R||u(null)}})]})}const Ky="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 X_({projectSlug:e,assignmentSlug:t,assignmentId:n,defaultBranch:r,defaultParentBranch:o="main",onCreated:i}){const a=e&&t?{kind:"project-nested",projectSlug:e,assignmentSlug:t}:{kind:"standalone",assignmentId:n},[l,u]=m.useState(!1),[f,p]=m.useState("new-branch"),[h,g]=m.useState(null),[y,k]=m.useState(null),[v,b]=m.useState(""),[j,S]=m.useState(!1),[N,C]=m.useState(""),[P,T]=m.useState([]),[R,I]=m.useState(!1),[_,F]=m.useState(null),[D,W]=m.useState(""),[V,$]=m.useState(null),[O,U]=m.useState(null),[K,M]=m.useState(""),[H,L]=m.useState(r),[z,Y]=m.useState(!1),[B,Q]=m.useState(null);m.useEffect(()=>{if(!l)return;let ie=!1;return p("new-branch"),g(null),k(null),b(""),S(!1),C(""),T([]),I(!1),F(null),W(""),$(null),U(null),M(""),L(r),Q(null),(a.kind==="project-nested"?DY(a.projectSlug):$Y(a.assignmentId)).then(Re=>{if(!ie)if(g(Re),Re.length===0)S(!0);else{const Ue=Re.find(Oe=>Oe.source==="project"),rt=Re.find(Oe=>Oe.source==="sibling");b((Ue==null?void 0:Ue.path)??(rt==null?void 0:rt.path)??Re[0].path)}}).catch(Re=>{ie||(k(Re.message),g([]),S(!0))}),(a.kind==="project-nested"?zY(a.projectSlug,a.assignmentSlug):BY(a.assignmentId)).then(Re=>{ie||$(Re)}).catch(Re=>{ie||(U(Re.message),$([]))}),()=>{ie=!0}},[l,r,o,e,t,n]);const J=f==="branch-off"?(V??[]).find(ie=>ie.id===K)??null:null,Z=f==="branch-off"?(J==null?void 0:J.repository)??"":j?N.trim():v;m.useEffect(()=>{if(!l||f!=="new-branch")return;if(!Z){T([]),F(null),I(!1),W("");return}let ie=!1;return I(!0),F(null),W(""),(a.kind==="project-nested"?OY(a.projectSlug,a.assignmentSlug,Z):FY(a.assignmentId,Z)).then(be=>{if(ie)return;T(be.branches);const Re=(be.defaultBranch&&be.branches.includes(be.defaultBranch)?be.defaultBranch:be.branches.includes(o)?o:be.branches[0])??"";W(Re),I(!1)}).catch(be=>{ie||(T([]),F(be.message),I(!1))}),()=>{ie=!0}},[l,f,Z,o,e,t,n]);const oe=EY(H.trim()),ne=m.useMemo(()=>!Z||!H.trim()?"":`${Z.replace(/\/+$/,"")}/.worktrees/${H.trim()}`,[Z,H]),ue=h!==null&&h.length===0,ge=V!==null&&V.length===0,Ce=ie=>{ie!==f&&(p(ie),M(""),Q(null),ie==="branch-off"&&(W(""),T([]),F(null),I(!1)))},Se=ie=>{M(ie);const ve=(V??[]).find(be=>be.id===ie);W((ve==null?void 0:ve.branch)??"")},ke=z||oe!==null||!Z||!D.trim()||(f==="new-branch"?h===null||R:V===null||!K),Be=async()=>{Y(!0),Q(null);try{const ie={repository:Z,branch:H.trim(),parentBranch:D.trim()};a.kind==="project-nested"?await IY(a.projectSlug,a.assignmentSlug,ie):await MY(a.assignmentId,ie),u(!1),i()}catch(ie){ie instanceof N0?Q({message:ie.message,stderr:ie.stderr}):ie instanceof Error?Q({message:ie.message}):Q({message:String(ie)})}finally{Y(!1)}};return s.jsxs(Ln,{open:l,onOpenChange:ie=>z?void 0:u(ie),children:[s.jsxs("button",{type:"button",className:"shell-action inline-flex items-center gap-1.5",onClick:()=>u(!0),children:[s.jsx(w4,{className:"h-3.5 w-3.5","aria-hidden":"true"}),s.jsx("span",{children:"Create worktree"})]}),s.jsxs(Nn,{children:[s.jsxs(or,{children:[s.jsx(Sn,{children:"Create worktree"}),s.jsxs(ns,{children:["Creates a git worktree at ",s.jsx("code",{children:"<repo>/.worktrees/<branch>"})," and records the workspace fields on this assignment's frontmatter."]})]}),s.jsxs("div",{className:"grid gap-4 text-sm",children:[s.jsxs("div",{className:"grid grid-cols-2 gap-1 rounded-md border border-border/70 p-1",children:[s.jsx("button",{type:"button",disabled:z,onClick:()=>Ce("new-branch"),className:`rounded px-2 py-1.5 text-xs font-medium transition-colors disabled:cursor-not-allowed ${f==="new-branch"?"bg-foreground text-background":"text-muted-foreground hover:bg-muted"}`,children:"New branch from repo"}),s.jsx("button",{type:"button",disabled:z,onClick:()=>Ce("branch-off"),className:`rounded px-2 py-1.5 text-xs font-medium transition-colors disabled:cursor-not-allowed ${f==="branch-off"?"bg-foreground text-background":"text-muted-foreground hover:bg-muted"}`,children:"Branch off another assignment"})]}),f==="new-branch"?s.jsxs(s.Fragment,{children:[ue?s.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"," ",s.jsx("code",{children:"repositories:"})," list to ",s.jsx("code",{children:"project.md"}),"."]}):null,y?s.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: ",y]}):null,s.jsxs("label",{className:"grid gap-1",children:[s.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Repository"}),s.jsx("select",{className:Ky,value:v,onChange:ie=>b(ie.target.value),disabled:z||h===null||j,children:(h??[]).map(ie=>s.jsxs("option",{value:ie.path,children:[ie.path,ie.source==="project"?" (project)":ie.sourceAssignmentSlug?` (sibling — ${ie.sourceAssignmentSlug})`:" (sibling)"]},`${ie.source}:${ie.path}`))}),ue?null:s.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:z,onClick:()=>S(ie=>!ie),children:j?"Use a listed repository":"Enter a custom repository path (advanced)"}),j?s.jsx("input",{className:"mt-1 w-full rounded-md border border-border/70 bg-background px-3 py-2 text-sm focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",type:"text",placeholder:"/absolute/path/to/repo",value:N,onChange:ie=>C(ie.target.value),disabled:z}):null]}),s.jsxs("label",{className:"grid gap-1",children:[s.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Parent branch"}),s.jsx("select",{className:Ky,value:D,onChange:ie=>W(ie.target.value),disabled:z||R||P.length===0,children:R?s.jsx("option",{value:"",children:"Loading branches…"}):P.length===0?s.jsx("option",{value:"",children:_?"Could not load branches":Z?"No branches found":"— pick a repository —"}):P.map(ie=>s.jsx("option",{value:ie,children:ie},ie))}),_?s.jsxs("span",{className:"text-[11px] text-error-foreground",children:["Could not load branches: ",_]}):null]})]}):s.jsxs(s.Fragment,{children:[O?s.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: ",O]}):null,ge?s.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”."}):s.jsxs("label",{className:"grid gap-1",children:[s.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Source assignment"}),s.jsxs("select",{className:Ky,value:K,onChange:ie=>Se(ie.target.value),disabled:z||V===null,children:[s.jsx("option",{value:"",children:"— select an assignment —"}),(V??[]).map(ie=>s.jsxs("option",{value:ie.id,children:[ie.title," (",ie.branch,")"]},ie.id))]})]}),J?s.jsxs("div",{className:"grid gap-2 rounded-md border border-border/70 bg-muted/40 px-3 py-2 text-xs",children:[s.jsxs("div",{className:"grid gap-0.5",children:[s.jsx("span",{className:"font-medium text-muted-foreground",children:"Repository (from source)"}),s.jsx("code",{className:"break-all",children:J.repository})]}),s.jsxs("div",{className:"grid gap-0.5",children:[s.jsx("span",{className:"font-medium text-muted-foreground",children:"Parent branch (from source)"}),s.jsx("code",{children:J.branch})]})]}):null]}),s.jsxs("label",{className:"grid gap-1",children:[s.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"New branch name"}),s.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:H,onChange:ie=>L(ie.target.value),disabled:z}),oe?s.jsx("span",{className:"text-[11px] text-error-foreground",children:oe}):null]}),s.jsxs("div",{className:"grid gap-1",children:[s.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Worktree path"}),s.jsx("code",{className:"rounded-md border border-border bg-muted px-2 py-1 text-xs break-all",children:ne||s.jsx("span",{className:"opacity-60",children:"— pick a repo & branch —"})})]}),B?s.jsxs("div",{className:"rounded-md border border-error-foreground/30 bg-error px-3 py-2 text-xs text-error-foreground",children:[s.jsx("div",{className:"font-medium",children:B.message}),B.stderr?s.jsx("pre",{className:"mt-2 whitespace-pre-wrap text-[11px] opacity-90",children:B.stderr}):null]}):null]}),s.jsxs(Wr,{children:[s.jsx(KT,{disabled:z,className:"shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50",children:"Cancel"}),s.jsx("button",{type:"button",disabled:ke,onClick:()=>void Be(),className:"shell-action mt-0 shell-action--cta disabled:cursor-not-allowed disabled:opacity-50",children:z?"Working…":"Create worktree"})]})]})]})}function XY(e){const t=e.split(`
|
|
630
|
-
`),n=t.findIndex(a=>/^##\s+Acceptance Criteria\s*$/i.test(a.trim()));if(n===-1)return{acceptanceCriteria:[],summaryBody:e};let r=t.length;for(let a=n+1;a<t.length;a+=1)if(/^#{1,2}\s+\S/.test(t[a].trim())){r=a;break}const o=t.slice(n+1,r).map(a=>a.match(/^\s*[-*]\s+\[( |x|X)\]\s+(.*)$/)).filter(a=>!!a).map(a=>({checked:a[1].toLowerCase()==="x",text:a[2].trim()})),i=[...t.slice(0,n),...t.slice(r)].join(`
|
|
631
|
-
`).replace(/\n{3,}/g,`
|
|
632
|
-
|
|
633
|
-
`).trim();return{acceptanceCriteria:o,summaryBody:i}}function QY(e){const t=e.split(`
|
|
634
|
-
`),n=t.findIndex(a=>/^##\s+Todos\s*$/i.test(a.trim()));if(n===-1)return{hasSection:!1,todosMarkdown:"",remaining:e};let r=t.length;for(let a=n+1;a<t.length;a+=1)if(/^#{1,2}\s+\S/.test(t[a].trim())){r=a;break}const o=t.slice(n+1,r).join(`
|
|
635
|
-
`).replace(/<!--[\s\S]*?-->/g,"").replace(/\n{3,}/g,`
|
|
636
|
-
|
|
637
|
-
`).trim(),i=[...t.slice(0,n),...t.slice(r)].join(`
|
|
638
|
-
`).replace(/\n{3,}/g,`
|
|
639
|
-
|
|
640
|
-
`).trim();return{hasSection:!0,todosMarkdown:o,remaining:i}}function JY({projectSlug:e,dependencies:t,blockedReason:n}){const[r,o]=m.useState(!1);if(t.length===0)return null;const i=t.filter(l=>l.status!=="completed"&&l.status!=="review"),a=i.length===0;return a&&!r?s.jsxs("button",{type:"button",onClick:()=>o(!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:[s.jsx(im,{className:"h-4 w-4 shrink-0 text-success-foreground"}),s.jsxs("span",{className:"text-sm font-medium text-success-foreground",children:["All ",t.length," ",t.length===1?"dependency":"dependencies"," resolved"]}),s.jsx(nr,{className:"ml-auto h-4 w-4 text-success-foreground"})]}):s.jsxs("div",{className:"space-y-3",children:[i.length>0&&s.jsxs("div",{className:"flex items-start gap-3 rounded-lg border border-warning-foreground/30 bg-warning px-4 py-3",children:[s.jsx(uh,{className:"mt-0.5 h-4 w-4 shrink-0 text-warning-foreground"}),s.jsxs("div",{className:"text-sm text-warning-foreground",children:[s.jsxs("strong",{children:[i.length," ",i.length===1?"dependency is":"dependencies are"," not yet completed."]}),n&&s.jsxs("p",{className:"mt-1 text-warning-foreground/80",children:["Blocked reason: ",n]})]})]}),s.jsx(We,{title:"Dependencies",description:`${t.length-i.length} of ${t.length} resolved`,actions:a?s.jsx("button",{type:"button",onClick:()=>o(!1),className:"text-xs text-muted-foreground hover:text-foreground",children:"Collapse"}):void 0,children:s.jsx("div",{className:"divide-y divide-border/40",children:t.map(l=>s.jsxs($e,{to:`/projects/${e}/assignments/${l.slug}`,className:"flex items-center gap-3 px-1 py-2.5 transition hover:bg-muted/40 first:pt-0 last:pb-0",children:[s.jsx(jn,{status:l.status}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx("p",{className:"truncate text-sm font-medium text-foreground",children:l.title}),s.jsx("p",{className:"truncate text-xs text-muted-foreground",children:l.slug})]}),l.assignee&&s.jsx("span",{className:"hidden text-xs text-muted-foreground sm:inline",children:l.assignee}),s.jsx(ch,{className:"h-4 w-4 shrink-0 text-muted-foreground"})]},l.slug))})})]})}function ZY({customFacts:e,attestations:t}){const n=e??{},r=t??[];return Object.keys(n).length===0&&r.length===0?null:s.jsx(We,{title:"Facts",description:"Custom asserted facts and review attestations, materialized server-side.",children:s.jsxs("div",{className:"space-y-3",children:[Object.keys(n).length>0&&s.jsx("div",{className:"flex flex-wrap items-center gap-2",children:Object.entries(n).map(([o,i])=>s.jsxs("span",{className:"rounded-full border border-border/60 px-2 py-0.5 text-[11px] text-muted-foreground",children:[o,": ",s.jsx("span",{className:"font-medium text-foreground",children:String(i)})]},o))}),r.map(o=>s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsx("span",{className:"text-[11px] font-medium text-foreground",children:o.fact}),s.jsxs("span",{className:"text-[11px] text-muted-foreground",children:["(",o.binds,")"]}),o.records.length===0?s.jsx("span",{className:"text-[11px] text-muted-foreground",children:"— no attestations yet"}):o.records.map(i=>s.jsxs("span",{title:`${i.verdict}${i.note?` — ${i.note}`:""}${i.stale?" (stale — revision moved)":""} · ${i.at}`,className:we("rounded-full border px-2 py-0.5 text-[11px]",i.stale?"border-border/40 text-muted-foreground line-through":i.verdict==="approved"?"border-success-foreground/40 text-success-foreground":"border-warning-foreground/40 text-warning-foreground"),children:[i.actor,": ",i.verdict==="approved"?"approved":"changes",i.stale?" (stale)":""]},i.actor))]},o.fact))]})})}function eX({links:e}){const t=gn();if(e.length===0)return null;const n=e.filter(o=>!o.isReverse),r=e.filter(o=>o.isReverse);return s.jsx(We,{title:"Linked Assignments",description:`${e.length} ${e.length===1?"link":"links"}`,children:s.jsxs("div",{className:"divide-y divide-border/40",children:[n.map(o=>s.jsxs($e,{to:`${t}/projects/${o.projectSlug}/assignments/${o.assignmentSlug}`,className:"flex items-center gap-3 px-1 py-2.5 transition hover:bg-muted/40 first:pt-0 last:pb-0",children:[s.jsx(om,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),s.jsx(jn,{status:o.status}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx("p",{className:"truncate text-sm font-medium text-foreground",children:o.title}),s.jsx("p",{className:"truncate text-xs text-muted-foreground",children:o.slug})]}),s.jsx(ch,{className:"h-4 w-4 shrink-0 text-muted-foreground"})]},`fwd-${o.slug}`)),r.map(o=>s.jsxs($e,{to:`${t}/projects/${o.projectSlug}/assignments/${o.assignmentSlug}`,className:"flex items-center gap-3 px-1 py-2.5 transition hover:bg-muted/40 first:pt-0 last:pb-0",children:[s.jsx(lh,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),s.jsx(jn,{status:o.status}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx("p",{className:"truncate text-sm font-medium text-foreground",children:o.title}),s.jsx("p",{className:"truncate text-xs text-muted-foreground",children:o.slug})]}),s.jsx(ch,{className:"h-4 w-4 shrink-0 text-muted-foreground"})]},`rev-${o.slug}`))]})})}function tX(e){const t=new Map;for(const r of e)t.set(r.id,{entry:r,replies:[]});const n=[];for(const r of e){const o=t.get(r.id);r.replyTo&&t.has(r.replyTo)?t.get(r.replyTo).replies.push(o):n.push(o)}return n}function nX(e,t){return e===null?`/api/assignments/${encodeURIComponent(t)}/comments`:`/api/projects/${encodeURIComponent(e)}/assignments/${encodeURIComponent(t)}/comments`}function Q_({projectSlug:e,assignmentSlug:t,entries:n}){const[r,o]=m.useState(n);m.useEffect(()=>{o(n)},[n]);const i=m.useMemo(()=>tX(r),[r]),[a,l]=m.useState(""),[u,f]=m.useState("note"),[p,h]=m.useState(!1),[g,y]=m.useState(null);async function k(b){var N;if(b.preventDefault(),!a.trim())return;h(!0),y(null);const j=`tmp-${Date.now()}`,S={id:j,timestamp:new Date().toISOString(),author:"human",type:u,body:a,resolved:u==="question"?!1:void 0};o(C=>[...C,S]);try{const C=await fetch(nX(e,t),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({body:a,type:u})});if(!C.ok){const R=await C.text();throw new Error(R||`HTTP ${C.status}`)}const P=await C.json().catch(()=>null),T=(N=P==null?void 0:P.comment)==null?void 0:N.id;o(R=>R.map(I=>I.id===j?{...I,id:T??I.id}:I)),l(""),window.dispatchEvent(new CustomEvent("syntaur-refresh"))}catch(C){y(C instanceof Error?C.message:String(C)),o(P=>P.filter(T=>T.id!==j))}finally{h(!1)}}async function v(b,j){o(S=>S.map(N=>N.id===b?{...N,resolved:j}:N));try{const S=e===null?`/api/assignments/${encodeURIComponent(t)}/comments/${encodeURIComponent(b)}/resolved`:`/api/projects/${encodeURIComponent(e)}/assignments/${encodeURIComponent(t)}/comments/${encodeURIComponent(b)}/resolved`,N=await fetch(S,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({resolved:j})});if(!N.ok)throw new Error(`HTTP ${N.status}`);window.dispatchEvent(new CustomEvent("syntaur-refresh"))}catch(S){y(S instanceof Error?S.message:String(S)),o(N=>N.map(C=>C.id===b?{...C,resolved:!j}:C))}}return s.jsx(We,{title:"Comments",description:"Threaded questions, notes, and feedback. Questions can be resolved once answered.",children:s.jsxs("div",{className:"space-y-4",children:[i.map(b=>s.jsx(J_,{node:b,onToggleResolved:v,depth:0},b.entry.id)),s.jsxs("form",{onSubmit:k,className:"mt-6 space-y-2 border-t border-border pt-4",children:[s.jsx("label",{className:"block text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Add comment"}),s.jsx("textarea",{value:a,onChange:b=>l(b.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…"}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsxs("select",{value:u,onChange:b=>f(b.target.value),className:"rounded border border-border bg-background px-2 py-1 text-xs",children:[s.jsx("option",{value:"note",children:"note"}),s.jsx("option",{value:"question",children:"question"}),s.jsx("option",{value:"feedback",children:"feedback"})]}),s.jsx("button",{type:"submit",disabled:p||!a.trim(),className:"shell-action",children:p?"Posting…":"Post comment"}),g?s.jsx("span",{className:"text-xs text-error-foreground",children:g}):null]})]})]})})}function J_({node:e,depth:t,onToggleResolved:n}){const{entry:r,replies:o}=e,i=r.type==="question";return s.jsxs("div",{className:we("space-y-2",t>0&&"ml-4 border-l border-border pl-4"),children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-xs text-muted-foreground",children:[s.jsx("span",{className:"font-mono",children:r.id}),s.jsx("span",{children:"·"}),s.jsx("span",{children:r.timestamp}),s.jsx("span",{children:"·"}),s.jsx("span",{className:"font-medium text-foreground",children:r.author}),s.jsx("span",{children:"·"}),s.jsx("span",{className:we("rounded px-1.5 py-0.5 font-mono text-[10px] uppercase",i&&"bg-warning text-warning-foreground",r.type==="feedback"&&"bg-info text-info-foreground",r.type==="note"&&"bg-muted text-muted-foreground"),children:r.type}),i?s.jsxs("button",{type:"button",onClick:()=>n(r.id,!r.resolved),className:we("inline-flex items-center gap-1 rounded px-1.5 py-0.5 text-[10px] font-medium",r.resolved?"bg-success text-success-foreground hover:bg-success/80":"bg-muted text-muted-foreground hover:bg-muted/80"),title:r.resolved?"Mark unresolved":"Mark resolved",children:[r.resolved?s.jsx(im,{className:"h-3 w-3"}):s.jsx(c4,{className:"h-3 w-3"}),r.resolved?"resolved":"open"]}):null,r.replyTo?s.jsxs("span",{className:"inline-flex items-center gap-1 text-muted-foreground",children:[s.jsx(M4,{className:"h-3 w-3"}),r.replyTo]}):null]}),s.jsx(vn,{content:r.body}),o.length>0?s.jsx("div",{className:"space-y-2",children:o.map(a=>s.jsx(J_,{node:a,depth:t+1,onToggleResolved:n},a.entry.id))}):null]})}const rX={"status-change":"Status changed","assignee-change":"Assignee changed","priority-change":"Priority changed",archived:"Archived",restored:"Restored","plan-approval":"Plan approved","fact-set":"Fact set","fact-clear":"Fact cleared",attestation:"Attestation","comment-added":"Comment added","comment-resolved":"Comment resolved"};function sX(e){return rX[e]??hn(e)}function Sl(e,t){if(!e)return null;const n=e[t];return n==null?null:typeof n=="string"?n:typeof n=="number"||typeof n=="boolean"?String(n):null}function oX({event:e}){const{details:t}=e;if(!t)return null;const n=Sl(t,"from"),r=Sl(t,"to");if(n!==null||r!==null)return s.jsxs("span",{className:"inline-flex flex-wrap items-center gap-1.5 text-xs",children:[n!==null?s.jsx("code",{className:"rounded bg-muted/60 px-1.5 py-0.5 font-mono text-[11px] text-muted-foreground",children:n}):null,s.jsx("span",{"aria-hidden":"true",className:"text-muted-foreground",children:"→"}),r!==null?s.jsx("code",{className:"rounded bg-muted/60 px-1.5 py-0.5 font-mono text-[11px] text-foreground",children:r}):s.jsx("span",{className:"text-muted-foreground",children:"(none)"})]});const o=Sl(t,"name"),i=Sl(t,"value");if(o!==null)return s.jsxs("span",{className:"text-xs text-muted-foreground",children:[s.jsx("span",{className:"font-medium text-foreground",children:o}),i!==null?s.jsxs(s.Fragment,{children:[": ",i]}):null]});const a=Sl(t,"reason");if(a!==null)return s.jsx("span",{className:"text-xs text-muted-foreground",children:a});const l=Sl(t,"author");if(l!==null)return s.jsxs("span",{className:"text-xs text-muted-foreground",children:["by ",s.jsx("span",{className:"font-medium text-foreground",children:l})]});const u=Object.keys(t);return u.length===0?null:s.jsx("span",{className:"text-xs text-muted-foreground",children:u.join(", ")})}function Z_({events:e,loading:t,error:n}){return t&&e.length===0?s.jsx(bt,{label:"Loading activity…"}):n&&e.length===0?s.jsx(Nt,{title:"Activity unavailable",description:"The event log could not be loaded. The rest of this page is unaffected."}):e.length===0?s.jsx(Nt,{title:"No activity yet",description:"Status changes, approvals, comments, and other tracked mutations appear here as a chronological audit trail."}):s.jsx(We,{title:"Activity",description:"Reverse-chronological audit trail of tracked changes to this assignment — who changed what, when.",children:s.jsx("ol",{className:"space-y-3",children:e.map(r=>s.jsxs("li",{className:"flex flex-col gap-1 border-l-2 border-border pl-3",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsx("span",{className:"rounded-full border border-border/60 px-2 py-0.5 text-[11px] font-medium text-foreground",children:sX(r.type)}),s.jsx("span",{className:"text-xs text-muted-foreground",children:r.actor}),s.jsx("span",{className:"ml-auto text-xs text-muted-foreground",title:Ol(r.at),children:Ou(r.at)})]}),s.jsx(oX,{event:r})]},r.event_id))})})}function iX({engagements:e}){return e.length===0?s.jsx(Nt,{title:"No session activity",description:"When an agent session works this assignment in a plan, implement, or review stage, each interval appears here as a chronological attribution trail."}):s.jsx(We,{title:"Session Activity",description:"Per-session stage attribution — which agent session worked this assignment, in which stage, and when.",children:s.jsx("ol",{className:"space-y-3",children:e.map(t=>{const n=t.endedAt===null,r=t.sessionId.slice(0,8);return s.jsxs("li",{className:"flex flex-col gap-1 border-l-2 border-border pl-3",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsx("span",{className:"rounded-full border border-border/60 px-2 py-0.5 text-[11px] font-medium text-foreground",children:hn(t.stage)}),s.jsx("span",{className:"text-xs text-muted-foreground",children:t.agent??"—"}),s.jsxs("span",{className:"inline-flex items-center gap-1",children:[s.jsx("code",{className:"rounded bg-muted/60 px-1.5 py-0.5 font-mono text-[11px] text-muted-foreground",title:t.sessionId,children:r}),s.jsx(kr,{value:t.sessionId,label:`Copy session id ${t.sessionId}`})]}),n?s.jsx("span",{className:"ml-auto rounded-full border border-border/60 bg-muted/40 px-2 py-0.5 text-[11px] font-medium text-foreground",children:"In progress"}):s.jsx("span",{className:"ml-auto text-xs text-muted-foreground",title:Ol(t.startedAt),children:Ou(t.startedAt)})]}),s.jsxs("div",{className:"text-xs text-muted-foreground",children:["Started"," ",s.jsx("span",{title:Ou(t.startedAt),children:Ol(t.startedAt)})," ","· Ended"," ",t.endedAt?s.jsx("span",{title:Ou(t.endedAt),children:Ol(t.endedAt)}):"in progress"," ","· ",TO(t.startedAt,t.endedAt)]})]},t.id)})})})}function e3(e){const t=sr();m.useEffect(()=>{const n=t.hash.slice(1);if(!n)return;let r=0,o;const i=()=>{const a=document.getElementById(n);return a?(a.scrollIntoView({block:"start"}),!0):!1};return r=requestAnimationFrame(()=>{i()||(o=setTimeout(i,80))}),()=>{cancelAnimationFrame(r),o&&clearTimeout(o)}},[t.hash,t.pathname,e])}const aX=["review","complete","shape","plan-ready","implement","unblock","start","block","fail","reopen"];function QS(){var xe,qe,Fe,lt,ht,vt,tt,Dt,Bt,Ut,En,Ct;const{slug:e,aslug:t}=Kt(),n=Wt(),r=gn(),[o,i]=Ts(),[a,l]=m.useState(null),{toast:u,showToast:f,dismissToast:p}=Qn(),[h,g]=m.useState(null),[y,k]=m.useState(null),[v,b]=m.useState(null),[j,S]=m.useState(null),[N,C]=m.useState({}),[P,T]=m.useState(!1),[R,I]=m.useState(!1),[_,F]=m.useState(0),D=o.get("tab")??"summary";e3(D);const W=As(),{data:V,loading:$,error:O,refetch:U}=QO(e,t),{data:K}=Y2(e),{data:M}=tw(),{data:H,loading:L,error:z}=ZO(e,t),{data:Y,loading:B,error:Q}=t5(e,t),J=e&&t?`/api/projects/${e}/assignments/${t}/events`:null,{events:Z,loading:oe,error:ne,refetch:ue}=A_(J),ge=m.useMemo(()=>{if(!V||!K)return[];const je=new Map(K.assignments.map(Ge=>[Ge.slug,Ge]));return V.dependsOn.map(Ge=>{const it=je.get(Ge);return{slug:Ge,title:(it==null?void 0:it.title)??Ge,status:(it==null?void 0:it.status)??"pending",priority:(it==null?void 0:it.priority)??"medium",assignee:(it==null?void 0:it.assignee)??null}})},[V,K]),Ce=ge.filter(je=>je.status!=="completed"&&je.status!=="review");Pi("assignment");const Se=m.useMemo(()=>((K==null?void 0:K.assignments)??[]).map(je=>je.slug),[K]),ke=t?Se.indexOf(t):-1,Be=ke>0?Se[ke-1]:null,ie=ke>=0&&ke<Se.length-1?Se[ke+1]:null,ve=`${r}/projects/${e}/assignments/${t}`;en({keys:"e",scope:"assignment",description:"Edit assignment",handler:()=>n(`${ve}/edit`)}),en({keys:"p",scope:"assignment",description:"Edit plan",handler:()=>n(`${ve}/plan/edit`)}),en({keys:"h",scope:"assignment",description:"Append handoff",handler:()=>n(`${ve}/handoff/edit`)}),en({keys:"d",scope:"assignment",description:"Append decision record",handler:()=>n(`${ve}/decision-record/edit`)}),en({keys:"s",scope:"assignment",description:"Edit scratchpad",handler:()=>n(`${ve}/scratchpad/edit`)}),en({keys:"[",scope:"assignment",description:"Previous assignment in project",enabled:!!Be,handler:()=>Be&&n(`${r}/projects/${e}/assignments/${Be}`)}),en({keys:"]",scope:"assignment",description:"Next assignment in project",enabled:!!ie,handler:()=>ie&&n(`${r}/projects/${e}/assignments/${ie}`)});const be=m.useMemo(()=>V?XY(V.body):{acceptanceCriteria:[],summaryBody:""},[V]);m.useEffect(()=>{C({})},[V]);const Re=m.useMemo(()=>QY(be.summaryBody),[be.summaryBody]),Ue=be.acceptanceCriteria,rt=Ue.filter(je=>je.checked).length,Oe=Ue.length>0&&rt===Ue.length,ot=m.useRef(Oe),St=m.useRef(!1);if(m.useEffect(()=>{if(V){if(!St.current){ot.current=Oe,St.current=!0;return}Oe&&!ot.current&&F(je=>je+1),ot.current=Oe}},[Oe,V]),$)return s.jsx(bt,{label:"Loading assignment workspace…"});if(O||!V||!e||!t)return s.jsx(Rt,{error:O||"Assignment not found.",onRetry:U});const mt=e,at=t,ce=Ue.length>0?{checked:rt,total:Ue.length}:void 0,me=V.availableTransitions??[],Ie=me.filter(je=>!je.disabled&&je.targetStatus!==V.status),Ae=aX.map(je=>Ie.find(Ge=>Ge.command===je)).find(Boolean)??Ie[0]??null,Ve=[];if(M!=null&&M.sessions)for(const je of M.sessions)for(const Ge of je.windows)for(const it of Ge.panes)((xe=it.assignment)==null?void 0:xe.project)===e&&((qe=it.assignment)==null?void 0:qe.slug)===t&&Ve.push({sessionName:je.name,command:it.command,urls:it.urls});async function pt(je){l(null);try{await D_(mt,at,je),U(),ue()}catch(Ge){l(Ge.message)}}async function _e(je){l(null);try{const Ge=await fetch(`/api/projects/${mt}/assignments/${at}/${je?"archive":"unarchive"}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!Ge.ok){const it=await Ge.json().catch(()=>null);throw new Error((it==null?void 0:it.error)||`HTTP ${Ge.status}`)}U(),ue(),f(je?"Assignment archived":"Assignment restored","success")}catch(Ge){l(Ge.message)}}async function Qe(){I(!0);try{await TY(mt,at),n(`${r}/projects/${mt}`)}catch(je){l(je.message),I(!1),T(!1)}}async function Je(je,Ge){l(null),g(je.command);try{return await __(mt,at,je,Ge),U(),ue(),!0}catch(it){return l(it.message),!1}finally{g(null)}}function ut(je){if($_(je)){k(je);return}Je(je)}async function fe(je,Ge){b(null),S(je),C(it=>({...it,[je]:Ge}));try{const it=await fetch(`/api/projects/${mt}/assignments/${at}/acceptance-criteria/${je}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({checked:Ge})}),Mt=await it.json();if(!it.ok)throw new Error(Mt.error||`HTTP ${it.status}`);U()}catch(it){C(le=>{const Ne={...le};return delete Ne[je],Ne});const Mt=it.message;b(Mt),f(Mt||"Failed to update acceptance criterion","error")}finally{S(null)}}const q=[...Ie.filter(je=>je!==Ae).map(je=>({key:`transition-${je.command}`,label:je.label,onSelect:()=>ut(je),disabled:h===je.command})),...me.filter(je=>je.disabled||je.targetStatus===V.status).map(je=>({key:`transition-${je.command}`,label:je.label,disabled:!0,disabledReason:je.targetStatus===V.status?`Already ${V.status.replace(/_/g," ")}`:je.disabledReason??je.warning??je.description})),...W.statuses.map(je=>({key:`override-${je.id}`,label:`Override → ${je.label}`,onSelect:()=>pt(je.id),disabled:je.id===V.status,disabledReason:je.id===V.status?"Already in this status":void 0})),{key:"edit-assignment",label:"Edit assignment source",icon:y4,href:`${r}/projects/${e}/assignments/${t}/edit`},{key:"edit-plan",label:"Edit plan",icon:F4,href:`${r}/projects/${e}/assignments/${t}/plan/edit`},{key:"edit-scratchpad",label:"Edit scratchpad",icon:ty,href:`${r}/projects/${e}/assignments/${t}/scratchpad/edit`},{key:"append-handoff",label:"Append handoff",icon:ch,href:`${r}/projects/${e}/assignments/${t}/handoff/edit`},{key:"append-decision",label:"Append decision",icon:k4,href:`${r}/projects/${e}/assignments/${t}/decision-record/edit`},{key:V.archived?"unarchive":"archive",label:V.archived?"Restore assignment":"Archive assignment",icon:V.archived?ah:rm,onSelect:()=>_e(!V.archived)},{key:"delete",label:"Delete assignment",icon:mn,destructive:!0,onSelect:()=>T(!0)}],re=(Ae==null?void 0:Ae.command)==="review";return s.jsxs("div",{className:"space-y-5",children:[s.jsx(Xn,{toast:u,onDismiss:p}),s.jsxs("div",{className:"sticky top-12 z-20 rounded-lg border border-border/60 bg-card/90 p-3 shadow-sm backdrop-blur",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx(jn,{status:V.status,progress:ce}),s.jsx("h1",{className:"min-w-0 flex-1 truncate text-lg font-semibold text-foreground",title:V.title,children:V.title}),Ce.length>0&&s.jsxs("span",{className:"shrink-0 whitespace-nowrap text-xs text-warning-foreground",title:`Unmet dependencies: ${Ce.map(je=>je.title).join(", ")}`,children:["⚠ ",Ce.length," unmet dep",Ce.length===1?"":"s"]}),s.jsxs("span",{className:"flex shrink-0 items-center gap-2",children:[s.jsx(Y_,{target:{kind:"assignment",id:V.id},worktreePath:((Fe=V.workspace)==null?void 0:Fe.worktreePath)??null,repository:((lt=V.workspace)==null?void 0:lt.repository)??null}),!((ht=V.workspace)!=null&&ht.worktreePath)&&e&&t&&s.jsx(X_,{projectSlug:e,assignmentSlug:t,defaultBranch:`syntaur/${e}/${t}`,onCreated:()=>U()}),Ae&&s.jsx("button",{type:"button",title:Ae.warning||Ae.description,disabled:h===Ae.command,onClick:()=>ut(Ae),className:we("shell-action disabled:cursor-not-allowed disabled:opacity-50",Ae.warning&&"border-warning-foreground/40",re&&_>0&&"send-to-review-glow"),children:s.jsx("span",{children:h===Ae.command?"Working…":Ae.label})},re?`review-${_}`:Ae.command),s.jsx(Kw,{items:q,align:"end"})]})]}),a?s.jsx("p",{className:"mt-4 rounded-md border border-error-foreground/30 bg-error px-4 py-3 text-sm text-error-foreground",children:a}):null,V.blockedReason?s.jsxs("div",{className:"mt-4 rounded-md border border-warning-foreground/30 bg-warning px-4 py-3 text-sm text-warning-foreground",children:[s.jsx("strong",{children:"Blocked reason:"})," ",V.blockedReason]}):null,V.override&&V.derived&&V.derived.derivedStatus!==V.status?s.jsxs("div",{className:"mt-4 rounded-md border border-warning-foreground/30 bg-warning px-4 py-3 text-sm text-warning-foreground",children:[s.jsxs("strong",{children:["Pinned to ",V.status]})," by ",V.override.source,V.override.reason?s.jsxs(s.Fragment,{children:[" — “",V.override.reason,"”"]}):null," · ","would otherwise be ",s.jsx("strong",{children:V.derived.derivedStatus})]}):null,(vt=V.derived)!=null&&vt.nextAction?s.jsxs("p",{className:"mt-3 text-xs text-muted-foreground",children:[s.jsx("span",{className:"font-medium text-foreground",children:"Next:"})," ",V.derived.nextAction]}):null]}),ge.length>0&&s.jsx(JY,{projectSlug:e,dependencies:ge,blockedReason:V.blockedReason}),V.enrichedLinks&&V.enrichedLinks.length>0&&s.jsx(eX,{links:V.enrichedLinks}),V.referencedBy&&V.referencedBy.length>0&&s.jsx(We,{title:"Referenced by",description:"Other assignments whose Todos, progress, comments, or handoffs link to this one.",children:s.jsx("ul",{className:"space-y-2",children:V.referencedBy.map(je=>{const Ge=je.sourceProjectSlug===null?`/assignments/${je.sourceId}`:`${r}/projects/${je.sourceProjectSlug}/assignments/${je.sourceSlug}`;return s.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[s.jsx($e,{to:Ge,className:"text-foreground hover:text-primary",children:je.sourceTitle}),s.jsxs("span",{className:"text-xs text-muted-foreground",children:["(",je.mentions," mention",je.mentions===1?"":"s",")"]}),je.sourceProjectSlug===null?s.jsx("span",{className:"rounded bg-muted px-1.5 py-0.5 font-mono text-[10px] uppercase text-muted-foreground",children:"Standalone"}):null]},je.sourceId)})})}),s.jsxs("div",{className:"grid gap-4 lg:grid-cols-[minmax(0,1fr)_280px]",children:[s.jsx("div",{className:"space-y-4",children:s.jsx(qm,{value:D,onValueChange:je=>i({tab:je}),items:[{value:"summary",label:"Summary",content:s.jsxs("div",{className:"space-y-5",children:[be.acceptanceCriteria.length>0?s.jsx(We,{title:"Acceptance Criteria",description:"These checkboxes update the source assignment markdown.",children:s.jsxs("div",{className:"space-y-3",children:[v?s.jsx("p",{className:"rounded-md border border-error-foreground/30 bg-error px-4 py-3 text-sm text-error-foreground",children:v}):null,be.acceptanceCriteria.map((je,Ge)=>{const it=j!==null,Mt=Ge in N?N[Ge]:je.checked;return s.jsxs("label",{className:"flex items-start gap-3 rounded-md border border-border/60 bg-background/80 px-3 py-3",children:[s.jsx("input",{type:"checkbox",checked:Mt,disabled:it,onChange:le=>fe(Ge,le.target.checked),className:"mt-1 h-4 w-4 rounded border-border text-primary"}),s.jsx("span",{className:"criterion-label text-sm leading-6","data-checked":Mt,children:je.text})]},`${Ge}-${je.text}`)})]})}):null,Re.hasSection?s.jsx(We,{title:"Todos",description:"Checklist of work items from assignment.md. Links point to plan files.",children:s.jsx(vn,{content:Re.todosMarkdown,emptyState:"No todos yet."})}):null,s.jsx(We,{title:"Assignment Summary",children:s.jsx(vn,{content:Re.remaining,emptyState:be.acceptanceCriteria.length>0||Re.hasSection?"No additional summary markdown beyond the acceptance criteria and todos.":"This assignment does not have summary markdown yet."})})]})},{value:"plan",label:"Plan",count:V.plan?1:0,content:V.plan?s.jsx("div",{className:"space-y-5",children:s.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:s.jsxs($e,{className:"shell-action",to:`${r}/projects/${e}/assignments/${t}/plan/edit`,children:[s.jsx(ty,{className:"h-4 w-4"}),s.jsx("span",{children:"Edit Plan"})]}),children:[s.jsx("div",{className:"mb-4",children:s.jsx(jn,{status:V.plan.status})}),s.jsx(vn,{content:V.plan.body,emptyState:"No plan content yet."})]})}):s.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:V.scratchpad?1:0,content:V.scratchpad?s.jsx(We,{title:"Scratchpad",actions:s.jsxs($e,{className:"shell-action",to:`${r}/projects/${e}/assignments/${t}/scratchpad/edit`,children:[s.jsx(ty,{className:"h-4 w-4"}),s.jsx("span",{children:"Edit Scratchpad"})]}),children:s.jsx(vn,{content:V.scratchpad.body,emptyState:"Scratchpad is empty."})}):s.jsx(Nt,{title:"No scratchpad yet",description:"Scratchpad notes appear here when you use the Edit Scratchpad action."})},{value:"handoff",label:"Handoff",count:((tt=V.handoff)==null?void 0:tt.handoffCount)??0,content:s.jsx("div",{className:"space-y-5",children:V.handoff?s.jsx(We,{children:s.jsx(vn,{content:V.handoff.body,emptyState:"No handoff history yet."})}):s.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:((Dt=V.progress)==null?void 0:Dt.entryCount)??0,content:s.jsx("div",{className:"space-y-5",children:V.progress&&V.progress.entries.length>0?s.jsx(We,{title:"Progress",description:"Reverse-chronological log of work done on this assignment. Agents append entries via progress.md.",children:s.jsx("ol",{className:"space-y-4",children:V.progress.entries.map((je,Ge)=>s.jsxs("li",{className:"border-l-2 border-border pl-3",children:[s.jsx("div",{className:"text-xs font-mono text-muted-foreground",children:je.timestamp}),s.jsx(vn,{content:je.body})]},`${je.timestamp}-${Ge}`))})}):s.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:((Bt=V.comments)==null?void 0:Bt.entryCount)??0,content:s.jsx("div",{className:"space-y-5",children:V.comments&&V.comments.entries.length>0?s.jsx(Q_,{projectSlug:e,assignmentSlug:t,entries:V.comments.entries}):s.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:((Ut=V.decisionRecord)==null?void 0:Ut.decisionCount)??0,content:s.jsx("div",{className:"space-y-5",children:V.decisionRecord?s.jsx(We,{children:s.jsx(vn,{content:V.decisionRecord.body,emptyState:"No decision history yet."})}):s.jsx(Nt,{title:"No decision record yet",description:"Decision records appear here when you append one via the Append Decision action."})})},{value:"activity",label:"Activity",count:Z.length,content:s.jsxs("div",{className:"space-y-5",children:[s.jsx(ZY,{customFacts:(En=V.derived)==null?void 0:En.customFacts,attestations:(Ct=V.derived)==null?void 0:Ct.attestations}),s.jsx(Z_,{events:Z,loading:oe,error:ne})]})},{value:"session-activity",label:"Session Activity",count:V.engagements.length,content:s.jsx(iX,{engagements:V.engagements})}]})}),s.jsxs("div",{className:"min-w-0 space-y-5",children:[s.jsx(We,{title:"Details",children:s.jsxs("dl",{className:"space-y-3 text-sm",children:[s.jsx(wo,{label:"ID",value:V.id,copyable:!0}),s.jsx(wo,{label:"Priority",value:V.priority}),V.assignee&&s.jsx(wo,{label:"Assignee",value:V.assignee}),V.type&&s.jsx(JS,{label:"Type",children:s.jsx(Pa,{type:V.type,compact:!0})}),V.phase&&V.phase!==V.status&&s.jsx(wo,{label:"Phase",value:V.phase}),V.disposition&&V.disposition!=="active"&&s.jsx(JS,{label:"Disposition",children:s.jsx("span",{className:"rounded-full border border-warning-foreground/40 px-2 py-0.5 text-[11px] text-warning-foreground",title:"Disposition dimension — orthogonal to phase",children:V.disposition})}),s.jsx(wo,{label:"Updated",value:`${Ol(V.updated)} · Created ${P2(V.created)}`}),V.workspace.repository&&s.jsx(wo,{label:"Repository",value:V.workspace.repository,copyable:!0}),V.workspace.worktreePath&&s.jsx(wo,{label:"Worktree",value:V.workspace.worktreePath,copyable:!0}),V.workspace.branch&&s.jsx(wo,{label:"Branch",value:V.workspace.branch,copyable:!0}),V.workspace.parentBranch&&s.jsx(wo,{label:"Parent branch",value:V.workspace.parentBranch,copyable:!0}),V.externalIds.map((je,Ge)=>s.jsx(lX,{entry:je},`${je.system}:${je.id}:${Ge}`))]})}),Ve.length>0&&s.jsx(We,{title:"Servers",children:s.jsx("div",{className:"space-y-2",children:Ve.map((je,Ge)=>s.jsxs("div",{className:"flex min-w-0 flex-wrap items-center gap-2 text-sm",children:[s.jsx("span",{className:"min-w-0 max-w-full truncate rounded bg-muted/60 px-1.5 py-0.5 font-mono text-xs",title:je.command,children:je.command}),s.jsx("span",{className:"min-w-0 max-w-full truncate text-xs text-muted-foreground",title:je.sessionName,children:je.sessionName}),je.urls.map(it=>s.jsxs("a",{href:it,target:"_blank",rel:"noopener noreferrer",title:it,className:"inline-flex min-w-0 max-w-full 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:[s.jsx("span",{className:"min-w-0 truncate",children:it.replace("http://localhost:",":")}),s.jsx(yc,{className:"h-2.5 w-2.5 shrink-0"})]},it))]},Ge))})}),s.jsx(L_,{sessions:H==null?void 0:H.sessions,loading:L,error:z,onError:je=>f(je.message,"error"),onNotice:je=>f(je,"success")}),s.jsx(O_,{summary:Y==null?void 0:Y.summary,loading:B,error:Q})]})]}),s.jsx(F_,{open:y!==null,action:y,assignmentTitle:V.title,loading:h===(y==null?void 0:y.command),onOpenChange:je=>{je||k(null)},onConfirm:async je=>{if(!y)return;await Je(y,je)&&k(null)}}),s.jsx(ss,{open:P,title:"Delete assignment?",description:`This will permanently delete "${V.title}" and all its files (plan, scratchpad, handoff, decision record). This cannot be undone.`,confirmLabel:"Delete Assignment",destructive:!0,loading:R,onOpenChange:je=>{je||T(!1)},onConfirm:Qe})]})}function wo({label:e,value:t,copyable:n}){return s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsx("dt",{className:"text-muted-foreground",children:e}),s.jsxs("dd",{className:"flex items-center gap-1.5 max-w-[60%] text-right text-foreground break-all",children:[s.jsx("span",{className:"block min-w-0 truncate",title:t,children:t}),n&&t!=="—"&&s.jsx(kr,{value:t})]})]})}function JS({label:e,children:t}){return s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsx("dt",{className:"text-muted-foreground",children:e}),s.jsx("dd",{className:"flex max-w-[60%] items-center justify-end gap-1.5 text-right text-foreground",children:t})]})}function lX({entry:e}){const t=e.url!=null&&e.url.length>0;return s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsx("dt",{className:"text-muted-foreground",children:e.system}),s.jsx("dd",{className:"flex items-center gap-1.5 max-w-[60%] text-right text-foreground break-all",children:t?s.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:[s.jsx("span",{className:"truncate min-w-0",title:e.id,children:e.id}),s.jsx(yc,{className:"h-2.5 w-2.5 shrink-0"})]}):s.jsx("span",{className:"truncate min-w-0",title:e.id,children:e.id})})]})}function cX(){var D,W,V,$,O,U,K,M;const{id:e}=Kt(),[t,n]=Ts(),r=t.get("tab")??"summary";e3(r);const{data:o,loading:i,error:a,refetch:l}=JO(e),{data:u,loading:f,error:p}=e5(e),{data:h,loading:g,error:y}=n5(o==null?void 0:o.slug),k=e?`/api/standalone/assignments/${e}/events`:null,{events:v,loading:b,error:j,refetch:S}=A_(k),[N,C]=m.useState(!1),[P,T]=m.useState(null),{toast:R,showToast:I,dismissToast:_}=Qn();async function F(H){if(e){T(null);try{const L=await fetch(`/api/assignments/${e}/${H?"archive":"unarchive"}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!L.ok){const z=await L.json().catch(()=>null);throw new Error((z==null?void 0:z.error)||`HTTP ${L.status}`)}l(),S(),I(H?"Assignment archived":"Assignment restored","success")}catch(L){T(L instanceof Error?L.message:"Archive failed")}}}return i?s.jsx(bt,{}):a?s.jsx(Rt,{error:a}):o?s.jsxs("div",{className:"space-y-6",children:[s.jsx(Xn,{toast:R,onDismiss:_}),s.jsxs("header",{className:"space-y-2",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsx(jn,{status:o.status}),s.jsx(Pa,{type:o.type}),s.jsx("span",{className:"text-xs font-mono text-muted-foreground",children:o.id}),s.jsx(dP,{externalIds:o.externalIds}),s.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[s.jsx(Y_,{target:{kind:"assignment",id:o.id},worktreePath:((D=o.workspace)==null?void 0:D.worktreePath)??null,repository:((W=o.workspace)==null?void 0:W.repository)??null,size:"compact"}),!((V=o.workspace)!=null&&V.worktreePath)&&s.jsx(X_,{assignmentId:o.id,defaultBranch:`syntaur/${o.slug}`,onCreated:()=>l()}),s.jsxs("button",{type:"button",onClick:()=>C(!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:[s.jsx(sm,{className:"h-3 w-3"}),"Move to workspace…"]}),s.jsx($e,{to:`/assignments/${o.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"}),s.jsxs("button",{type:"button",onClick:()=>F(!o.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:o.archived?"Restore this assignment":"Archive this assignment",children:[o.archived?s.jsx(ah,{className:"h-3 w-3"}):s.jsx(rm,{className:"h-3 w-3"}),o.archived?"Restore":"Archive"]})]})]}),s.jsx("h1",{className:"text-2xl font-semibold text-foreground",children:o.title}),o.blockedReason?s.jsxs("p",{className:"text-sm text-warning-foreground",children:["Blocked: ",o.blockedReason]}):null,P?s.jsx("p",{className:"text-sm text-status-failed-foreground",children:P}):null]}),o.referencedBy&&o.referencedBy.length>0?s.jsx(We,{title:"Referenced by",description:"Other assignments whose bodies link to this one.",children:s.jsx("ul",{className:"space-y-2",children:o.referencedBy.map(H=>s.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[s.jsx($e,{to:H.sourceProjectSlug===null?`/assignments/${H.sourceId}`:`/projects/${H.sourceProjectSlug}/assignments/${H.sourceSlug}`,className:"text-foreground hover:text-primary",children:H.sourceTitle}),s.jsxs("span",{className:"text-xs text-muted-foreground",children:["(",H.mentions," mention",H.mentions===1?"":"s",")"]})]},H.sourceId))})}):null,s.jsxs("div",{className:"grid gap-4 lg:grid-cols-[minmax(0,1fr)_280px]",children:[s.jsx("div",{className:"space-y-4",children:s.jsx(qm,{value:r,onValueChange:H=>n({tab:H}),items:[{value:"summary",label:"Summary",content:s.jsx("div",{className:"space-y-5",children:s.jsx(We,{title:"Assignment",children:s.jsx(vn,{content:o.body,emptyState:"This assignment does not have summary markdown yet."})})})},{value:"progress",label:"Progress",count:(($=o.progress)==null?void 0:$.entryCount)??0,content:s.jsx("div",{className:"space-y-5",children:o.progress&&o.progress.entries.length>0?s.jsx(We,{title:"Progress",description:"Reverse-chronological log of work done on this assignment.",children:s.jsx("ol",{className:"space-y-4",children:o.progress.entries.map((H,L)=>s.jsxs("li",{className:"border-l-2 border-border pl-3",children:[s.jsx("div",{className:"text-xs font-mono text-muted-foreground",children:H.timestamp}),s.jsx(vn,{content:H.body})]},`${H.timestamp}-${L}`))})}):s.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:((O=o.comments)==null?void 0:O.entryCount)??0,content:s.jsx("div",{className:"space-y-5",children:s.jsx(Q_,{projectSlug:null,assignmentSlug:o.id,entries:((U=o.comments)==null?void 0:U.entries)??[]})})},{value:"plan",label:"Plan",content:s.jsx("div",{className:"space-y-5",children:o.plan?s.jsxs(We,{children:[s.jsx(vn,{content:o.plan.body,emptyState:"Plan file exists but is empty."}),s.jsx("div",{className:"mt-3 flex justify-end",children:s.jsx($e,{to:`/assignments/${o.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"})})]}):s.jsx(Nt,{title:"No plan file yet",description:"Create one via the CLI or `/plan-assignment`."})})},{value:"scratchpad",label:"Scratchpad",content:s.jsx("div",{className:"space-y-5",children:o.scratchpad?s.jsxs(We,{children:[s.jsx(vn,{content:o.scratchpad.body,emptyState:"Scratchpad is empty."}),s.jsx("div",{className:"mt-3 flex justify-end",children:s.jsx($e,{to:`/assignments/${o.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"})})]}):s.jsx(Nt,{title:"No scratchpad yet",description:"Scratchpad is scaffolded at assignment creation time."})})},{value:"handoff",label:"Handoff",count:((K=o.handoff)==null?void 0:K.handoffCount)??0,content:s.jsx("div",{className:"space-y-5",children:o.handoff?s.jsxs(We,{children:[s.jsx(vn,{content:o.handoff.body,emptyState:"No handoff history yet."}),s.jsx("div",{className:"mt-3 flex justify-end",children:s.jsx($e,{to:`/assignments/${o.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"})})]}):s.jsx(Nt,{title:"No handoff log yet",description:"Handoffs appear here when an agent appends one."})})},{value:"decisions",label:"Decisions",count:((M=o.decisionRecord)==null?void 0:M.decisionCount)??0,content:s.jsx("div",{className:"space-y-5",children:o.decisionRecord?s.jsxs(We,{children:[s.jsx(vn,{content:o.decisionRecord.body,emptyState:"No decision history yet."}),s.jsx("div",{className:"mt-3 flex justify-end",children:s.jsx($e,{to:`/assignments/${o.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"})})]}):s.jsx(Nt,{title:"No decision record yet",description:"Decision records appear here once appended."})})},{value:"activity",label:"Activity",count:v.length,content:s.jsx(Z_,{events:v,loading:b,error:j})}]})}),s.jsxs("div",{className:"min-w-0 space-y-5",children:[s.jsx(We,{title:"Details",children:s.jsxs("dl",{className:"space-y-3 text-sm",children:[s.jsx(fi,{label:"ID",value:o.id,copyable:!0}),s.jsx(fi,{label:"Priority",value:o.priority}),o.assignee&&s.jsx(fi,{label:"Assignee",value:o.assignee}),s.jsx(fi,{label:"Updated",value:`${Ol(o.updated)} · Created ${P2(o.created)}`}),o.workspace.repository&&s.jsx(fi,{label:"Repository",value:o.workspace.repository,copyable:!0}),o.workspace.worktreePath&&s.jsx(fi,{label:"Worktree",value:o.workspace.worktreePath,copyable:!0}),o.workspace.branch&&s.jsx(fi,{label:"Branch",value:o.workspace.branch,copyable:!0}),o.workspace.parentBranch&&s.jsx(fi,{label:"Parent branch",value:o.workspace.parentBranch,copyable:!0}),o.externalIds.map((H,L)=>s.jsx(uX,{entry:H},`${H.system}:${H.id}:${L}`))]})}),s.jsx(L_,{sessions:u==null?void 0:u.sessions,loading:f,error:p,onError:H=>I(H.message,"error"),onNotice:H=>I(H,"success")}),s.jsx(O_,{summary:h==null?void 0:h.summary,loading:g,error:y})]})]}),s.jsx(Zw,{open:N,onOpenChange:C,currentWorkspace:o.projectWorkspace,title:"Move assignment to workspace",description:"Standalone assignments belong to a project-workspace via the workspaceGroup frontmatter field.",onSubmit:async H=>{const L=await fetch(`/api/assignments/${encodeURIComponent(o.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspaceGroup:H})});if(!L.ok){const z=await L.json().catch(()=>({}));throw new Error(z.error||"Failed to move assignment")}l()}})]}):s.jsx(Rt,{error:"Assignment not found"})}function fi({label:e,value:t,copyable:n}){return s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsx("dt",{className:"text-muted-foreground",children:e}),s.jsxs("dd",{className:"flex items-center gap-1.5 max-w-[60%] text-right text-foreground break-all",children:[s.jsx("span",{className:"truncate",title:t,children:t}),n&&t!=="—"&&s.jsx(kr,{value:t})]})]})}function uX({entry:e}){const t=e.url!=null&&e.url.length>0;return s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsx("dt",{className:"text-muted-foreground",children:e.system}),s.jsx("dd",{className:"flex items-center gap-1.5 max-w-[60%] text-right text-foreground break-all",children:t?s.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:[s.jsx("span",{className:"truncate min-w-0",title:e.id,children:e.id}),s.jsx(yc,{className:"h-2.5 w-2.5 shrink-0"})]}):s.jsx("span",{className:"truncate min-w-0",title:e.id,children:e.id})})]})}function dX({currentStatus:e,availableTransitions:t,onSelect:n,overrideTargets:r,onOverride:o,disabled:i=!1,className:a}){const[l,u]=m.useState(!1),[f,p]=m.useState(null),[h,g]=m.useState(0),y=m.useRef(null),k=m.useRef(null),v=m.useId(),b=As(),j=xd(b.statuses,e),S=Jb(e),N=r??[],C=t.length+N.length,P=m.useCallback(D=>{u(!1),D&&requestAnimationFrame(()=>{var W;(W=y.current)==null||W.focus()})},[]),T=m.useCallback(()=>{var W;const D=(W=y.current)==null?void 0:W.getBoundingClientRect();D&&p({top:D.top,left:D.left,width:D.width,bottom:D.bottom})},[]);m.useLayoutEffect(()=>{l&&T()},[l,T]),m.useEffect(()=>{if(!l)return;const D=()=>T();return window.addEventListener("scroll",D,!0),window.addEventListener("resize",D),()=>{window.removeEventListener("scroll",D,!0),window.removeEventListener("resize",D)}},[l,T]),m.useEffect(()=>{if(!l)return;const D=W=>{var $,O;const V=W.target;V&&(($=k.current)!=null&&$.contains(V)||(O=y.current)!=null&&O.contains(V)||P(!1))};return document.addEventListener("mousedown",D),()=>document.removeEventListener("mousedown",D)},[l,P]),m.useEffect(()=>{l&&g(0)},[l,C]);function R(D){return!D.disabled&&D.id!==e}function I(D){if(D<t.length){const V=t[D];V&&(n(V),P(!0));return}const W=N[D-t.length];W&&R(W)&&(o==null||o(W.id),P(!0))}function _(D){(D.key==="Enter"||D.key===" "||D.key==="ArrowDown")&&(D.preventDefault(),u(!0))}function F(D){if(C===0){D.key==="Escape"&&(D.preventDefault(),P(!0));return}D.key==="ArrowDown"?(D.preventDefault(),g(W=>(W+1)%C)):D.key==="ArrowUp"?(D.preventDefault(),g(W=>(W-1+C)%C)):D.key==="Home"?(D.preventDefault(),g(0)):D.key==="End"?(D.preventDefault(),g(C-1)):D.key==="Enter"?(D.preventDefault(),I(h)):D.key==="Escape"&&(D.preventDefault(),P(!0))}return s.jsxs(s.Fragment,{children:[s.jsxs("button",{ref:y,type:"button","data-no-drag":!0,disabled:i,"aria-haspopup":"menu","aria-expanded":l,"aria-controls":l?v:void 0,onClick:()=>{i||u(D=>!D)},onKeyDown:_,title:`Status: ${j.label}. Click to change.`,style:j.style,className:we(JA,j.className,a,"cursor-pointer transition hover:brightness-95 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",i&&"cursor-not-allowed opacity-60"),children:[s.jsx(S,{className:"h-3.5 w-3.5 shrink-0"}),s.jsx("span",{className:"min-w-0 truncate",children:j.label})]}),l&&f&&typeof document<"u"?Ys.createPortal(s.jsx("div",{ref:k,id:v,role:"menu",tabIndex:-1,autoFocus:!0,onKeyDown:F,style:{position:"fixed",top:f.bottom+6,left:f.left,minWidth:Math.max(f.width,180),zIndex:60},className:"rounded-md border border-border/70 bg-popover py-1 text-sm text-popover-foreground shadow-lg",children:C===0?s.jsx("div",{className:"px-3 py-2 text-xs text-muted-foreground",children:"No status changes available from this status."}):s.jsxs(s.Fragment,{children:[t.map((D,W)=>{const V=Jb(D.targetStatus),$=W===h;return s.jsxs("button",{type:"button",role:"menuitem","data-no-drag":!0,onMouseEnter:()=>g(W),onClick:()=>I(W),title:D.warning||D.description,className:we("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:[s.jsxs("span",{className:"flex items-center justify-between gap-2",children:[s.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[s.jsx(V,{className:"h-3.5 w-3.5 flex-shrink-0 text-muted-foreground"}),s.jsx("span",{className:"truncate",children:D.label})]}),s.jsx("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:To(b,D.targetStatus)})]}),D.warning?s.jsx("span",{className:"text-[11px] leading-snug text-warning-foreground",children:D.warning}):null]},`${D.command}:${D.targetStatus}`)}),N.length>0&&t.length>0?s.jsx("div",{className:"my-1 border-t border-border/60",role:"separator"}):null,N.map((D,W)=>{const V=t.length+W,$=V===h,O=!R(D),U=xd(b.statuses,D.id);return s.jsx("button",{type:"button",role:"menuitem","data-no-drag":!0,disabled:O,onMouseEnter:()=>g(V),onClick:()=>I(V),title:O?D.disabledReason??(D.id===e?"Already in this status":void 0):`Set status to ${D.label}`,className:we("flex w-full items-center justify-between gap-2 px-3 py-1.5 text-left text-sm transition",O?"cursor-not-allowed text-muted-foreground/60":$?"bg-foreground/5":"hover:bg-foreground/5"),children:s.jsxs("span",{className:"flex min-w-0 items-center gap-2",children:[s.jsx("span",{"aria-hidden":"true",className:we("h-2.5 w-2.5 flex-shrink-0 rounded-full border border-border/40",U.style?void 0:U.className),style:U.style?{backgroundColor:U.style.color}:void 0}),s.jsxs("span",{className:"truncate",children:["Override → ",D.label]})]})},`override-${D.id}`)})]})}),document.body):null]})}function t3({title:e,detailHref:t,onSave:n,disabled:r=!1}){const[o,i]=m.useState(!1);return o?s.jsx(fX,{initialTitle:e,disabled:r,onSave:n,onExit:()=>i(!1)}):s.jsxs("div",{className:"group flex items-baseline gap-1.5",children:[s.jsx("button",{type:"button","data-no-drag":!0,disabled:r,onClick:()=>{r||i(!0)},className:we("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",r&&"cursor-not-allowed opacity-60"),title:"Click to rename",children:e}),s.jsx($e,{to:t,"data-no-drag":!0,"aria-label":"Open detail page",title:"Open detail page",onClick:a=>a.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:s.jsx(yc,{className:"h-3.5 w-3.5"})})]})}function fX({initialTitle:e,disabled:t,onSave:n,onExit:r}){const o=m.useRef(e),[i,a]=m.useState(e),[l,u]=m.useState(!1),[f,p]=m.useState(!1),h=m.useRef(null),g=m.useRef(!1);m.useEffect(()=>{const b=h.current;b&&(b.focus(),b.select())},[]);const y=m.useCallback(()=>{var b;p(!0),window.setTimeout(()=>p(!1),260),(b=h.current)==null||b.focus()},[]),k=m.useCallback(async()=>{if(g.current)return;const b=i.trim();if(b.length===0){y();return}if(b===o.current){r();return}g.current=!0,u(!0);try{await n(b)}catch{}finally{u(!1),r()}},[i,r,n,y]);function v(b){b.key==="Enter"?(b.preventDefault(),k()):b.key==="Escape"&&(b.preventDefault(),g.current=!0,r())}return s.jsx("input",{ref:h,type:"text","data-no-drag":!0,disabled:t||l,value:i,onChange:b=>a(b.target.value),onKeyDown:v,onBlur:()=>void k(),className:we("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",f&&"syntaur-input-shake",l&&"opacity-70")})}function n3(e){const t=Wt(),n=m.useRef(null),r=m.useRef(!1),o=m.useCallback(()=>{const a=n.current,l=!!(a!=null&&a.querySelector('[aria-expanded="true"]')),u=!!document.querySelector('[role="menu"]'),f=document.activeElement,p=!!(f&&(a!=null&&a.contains(f))&&(f.tagName==="INPUT"||f.tagName==="TEXTAREA"));r.current=l||u||p},[]),i=m.useCallback(a=>{if(r.current)return;const l=a.target;!l||l.closest(sc)||t(e)},[t,e]);return{containerRef:n,onMouseDown:o,onClick:i}}const ZS=/[A-Za-z0-9_-]/;function eC(e,t){const n=Math.max(0,Math.min(t,e.length)),r=pX(e,n);if(r)return r;let o=n;for(;o>0&&ZS.test(e[o-1]);)o--;let i=n;for(;i<e.length&&ZS.test(e[i]);)i++;const a=e.slice(o,n),l=e.slice(0,o),u=l.match(/([A-Za-z_][A-Za-z0-9_-]*)\s*(:|>=|<=|!=|=|>|<)\s*$/);if(u)return{kind:"value",field:u[1].toLowerCase(),partial:a,tokenStart:o,tokenEnd:i};const f=l.match(/([A-Za-z_][A-Za-z0-9_-]*)\s*:\s*\([^)]*,\s*$/);return f?{kind:"value",field:f[1].toLowerCase(),partial:a,tokenStart:o,tokenEnd:i}:{kind:"field",partial:a,tokenStart:o,tokenEnd:i}}function pX(e,t){let n=-1;for(let u=t-1;u>=0;u--)if(e[u]==='"'&&(u===0||e[u-1]!=="\\")){n=u;break}if(n<0)return null;for(let u=n+1;u<t;u++)if(e[u]==='"'&&e[u-1]!=="\\")return null;let r=t;for(;r<e.length&&!(e[r]==='"'&&e[r-1]!=="\\");)r++;const o=e.slice(n+1,t),a=e.slice(0,n).match(/([A-Za-z_][A-Za-z0-9_-]*)\s*(:|>=|<=|!=|=|>|<)\s*$/);return{kind:"value",field:a?a[1].toLowerCase():"",partial:o,tokenStart:n,tokenEnd:r<e.length?r+1:r}}function hX(e,t){const n=VA(t),r=e.toLowerCase();if(r==="")return n;const o=[],i=[];for(const a of n){const l=a.toLowerCase();l.startsWith(r)?o.push(a):l.includes(r)&&i.push(a)}return[...o,...i]}function mX(e,t,n,r){const o=e.toLowerCase();let i=[];switch(o){case"status":i=[...n.statuses];break;case"priority":i=[...n.priorities];break;case"type":i=[...n.types];break;case"assignee":i=["none",...n.assignees];break;case"project":i=["none",...n.projects];break;case"tag":case"tags":i=[...n.tags];break;case"archived":case"pinned":case"blocked":case"parked":i=["true","false"];break;default:{const l=r[o];(l==null?void 0:l.kind)==="bool"&&(i=["true","false"]);break}}if(!i.length)return[];const a=t.toLowerCase();return a===""?i:i.filter(l=>l.toLowerCase().startsWith(a))}function gX(e,t,n){let r;return t.kind==="field"?r=`${n}:`:r=ww(n),{text:e.slice(0,t.tokenStart)+r+e.slice(t.tokenEnd),caret:t.tokenStart+r.length}}const xX=180;function yX(e,t){const[n,r]=m.useState(e);return m.useEffect(()=>{const o=setTimeout(()=>r(e),t);return()=>clearTimeout(o)},[e,t]),n}function bX({value:e,onChange:t,onCompiled:n,registry:r,declarations:o,valueSources:i,placeholder:a="AQL query (e.g. status:active AND priority:high)",className:l}){const u=m.useRef(null),f=m.useRef(null),p=yX(e,xX),[h,g]=m.useState([]),[y,k]=m.useState([]),[v,b]=m.useState("field"),[j,S]=m.useState(-1),[N,C]=m.useState(!1),P=m.useRef(e.length);m.useEffect(()=>{if(p.trim()===""){g([]),n==null||n(null);return}const $=ec(p,r);$.errors.length>0?(g($.errors),n==null||n(null)):(g([]),n==null||n($.query))},[p,r,n]);const T=m.useCallback(($,O)=>{const U=eC($,O);if(!U){k([]),C(!1);return}if(U.kind==="field"){const K=hX(U.partial,o);k(K),b("field"),C(K.length>0)}else{const K=mX(U.field,U.partial,i,r);k(K),b("value"),C(K.length>0)}S(-1)},[o,i,r]),R=m.useCallback($=>{const O=$.target.value,U=$.target.selectionStart??O.length;P.current=U,t(O),T(O,U)},[t,T]),I=m.useCallback($=>{const O=u.current,U=(O==null?void 0:O.selectionStart)??P.current,K=eC(e,U);if(!K)return;const{text:M,caret:H}=gX(e,K,$);t(M),C(!1),k([]),requestAnimationFrame(()=>{u.current&&(u.current.focus(),u.current.setSelectionRange(H,H),P.current=H)})},[e,t]),_=m.useCallback($=>{if(!(!N||y.length===0))switch($.key){case"ArrowDown":$.preventDefault(),S(O=>Math.min(O+1,y.length-1));break;case"ArrowUp":$.preventDefault(),S(O=>Math.max(O-1,-1));break;case"Enter":case"Tab":j>=0&&($.preventDefault(),I(y[j]));break;case"Escape":C(!1),k([]);break}},[N,y,j,I]),F=m.useRef(null),D=m.useCallback(()=>{F.current=setTimeout(()=>C(!1),120)},[]);m.useEffect(()=>()=>{F.current!==null&&clearTimeout(F.current)},[]);const W=m.useCallback(()=>{var O;const $=((O=u.current)==null?void 0:O.selectionStart)??e.length;T(e,$)},[e,T]);m.useEffect(()=>{var $,O;N&&((O=($=f.current)==null?void 0:$.querySelector('[aria-selected="true"]'))==null||O.scrollIntoView({block:"nearest"}))},[j,N]);const V=h.length>0&&p.trim()!=="";return s.jsxs("div",{className:`relative flex flex-col gap-1 ${l??""}`,children:[s.jsx("input",{ref:u,type:"text",value:e,onChange:R,onKeyDown:_,onBlur:D,onFocus:W,placeholder:a,"aria-label":"AQL query input","aria-expanded":N,"aria-haspopup":"listbox","aria-autocomplete":"list",autoComplete:"off",spellCheck:!1,className:["h-9 w-full rounded-md border bg-background px-3 py-1.5 font-mono text-sm text-foreground outline-none transition",V?"border-destructive focus:border-destructive focus:ring-2 focus:ring-destructive/30":"border-border/60 focus:border-primary focus:ring-2 focus:ring-ring/30"].join(" ")}),N&&y.length>0&&s.jsx("ul",{ref:f,role:"listbox","aria-label":v==="field"?"Field suggestions":"Value suggestions",className:"absolute top-full z-50 mt-1 max-h-56 w-full overflow-y-auto rounded-md border border-border bg-popover py-1 shadow-md",children:y.map(($,O)=>s.jsx("li",{role:"option","aria-selected":O===j,onMouseDown:U=>{U.preventDefault(),I($)},className:["cursor-pointer px-3 py-1.5 font-mono text-sm",O===j?"bg-accent text-accent-foreground":"text-foreground hover:bg-accent/50"].join(" "),children:$},$))}),V&&s.jsx("ul",{className:"space-y-0.5",role:"status","aria-live":"polite",children:h.map(($,O)=>s.jsxs("li",{className:"font-mono text-xs text-destructive",children:["at ",$.pos,": ",$.message]},O))})]})}const tC=vw;function kp(e){return e==="1"?"stale":e==="0"?"fresh":"all"}function vX(e,t){return e.toString()===t.toString()}function nC(){const{workspace:e}=Kt(),t=gn(),n=Wt(),r=m.useRef(null);Pi("list:assignments");const{data:o,loading:i,error:a,refetch:l}=um(),u=As(),f=Od(),[p,h]=Ts(),g=e?`w:${e}`:null,y=N_(g),k=m.useRef(void 0),v=m.useMemo(()=>cP(u.order),[u]),b=m.useMemo(()=>{const X={};for(const te of v)X[te]=To(u,te);return X},[v,u]),j=m.useMemo(()=>v.map(X=>({id:X,title:b[X]??X,description:Gd(X)})),[v,b]),S=m.useMemo(()=>f.definitions.map(X=>({id:X.id,title:Bl(f,X.id),description:X.description})),[f]),N="__unknown_type__",C=m.useMemo(()=>new Set(["all",...v]),[v]),P=p.get("view"),T=p.get("status"),R=p.get("stale"),I=P&&tC.includes(P)?P:"kanban";function _(X){if(!X)return[];const te=[];for(const ye of X.split(",")){const ze=ye.trim();!ze||ze==="all"||!C.has(ze)||te.includes(ze)||te.push(ze)}return te}const F=m.useCallback(X=>{h(te=>{const ye=new URLSearchParams(te);return X==="kanban"?ye.delete("view"):ye.set("view",X),ye})},[h]),[D,W]=m.useState(""),[V,$]=m.useState(()=>_(T)),[O,U]=m.useState(()=>He(y.filters.priority)),[K,M]=m.useState(()=>He(y.filters.type)),[H,L]=m.useState(()=>He(y.filters.assignee)),[z,Y]=m.useState(()=>He(y.filters.project)),[B,Q]=m.useState(()=>He(y.filters.tags)),[J,Z]=m.useState(null),[oe,ne]=m.useState(()=>kp(R)),[ue,ge]=m.useState(()=>Vu({status:_(T),priority:He(y.filters.priority),type:He(y.filters.type),assignee:He(y.filters.assignee),project:He(y.filters.project),tags:He(y.filters.tags),activity:kp(R)})),[Ce,Se]=m.useState(()=>y.sortField),[ke,Be]=m.useState(()=>y.sortDirection),[ie,ve]=m.useState(()=>({hidden:[]})),[be,Re]=m.useState(()=>({hidden:[]})),[Ue,rt]=m.useState(()=>y.grouping),Oe=Ue==="type"?"type":"status",[ot,St]=m.useState(()=>new Set),[mt,at]=m.useState([]),{toast:ce,showToast:me,dismissToast:Ie}=Qn(),[Ae,Ve]=m.useState(null),[pt,_e]=m.useState(null),[Qe,Je]=m.useState(null),[ut,fe]=m.useState(null),[q,re]=m.useState(null),[xe,qe]=m.useState(null),[Fe,lt]=m.useState(null),[ht,vt]=m.useState(null),[tt,Dt]=m.useState(null),[Bt,Ut]=m.useState(!1),[En,Ct]=m.useState(!1),je=e?{kind:"workspace",workspace:e}:{kind:"global"},Ge=p.get("loadView"),{view:it,loading:Mt,error:le}=Ni(Ge),{view:Ne,loading:nt,error:Tn}=Ni(tt),Tr=m.useRef(null);m.useEffect(()=>{at((o==null?void 0:o.assignments)??[])},[o]),m.useEffect(()=>{tt&&!nt&&!Tn&&!Ne&&Dt(null)},[Ne,Tn,tt,nt]),m.useEffect(()=>{Dt(null),Tr.current=null,Z(null),W("")},[e]);const io=m.useRef({status:T,stale:R});m.useEffect(()=>{const X=_(T),te=kp(R);Y6(X,V)||$(X),te!==oe&&ne(te);const ye=io.current,ze=ye.status!==T||ye.stale!==R;io.current={status:T,stale:R},ze&&nn({status:X,activity:te})},[oe,R,V,T]),m.useEffect(()=>{k.current===g&&h(X=>{const te=new URLSearchParams(X);return V.length===0?te.delete("status"):te.set("status",V.join(",")),oe==="all"?te.delete("stale"):oe==="stale"?te.set("stale","1"):te.set("stale","0"),vX(X,te)?X:te})},[oe,g,h,V]),m.useEffect(()=>{U(He(y.filters.priority)),M(He(y.filters.type)),L(He(y.filters.assignee)),Y(He(y.filters.project)),Q(He(y.filters.tags)),Se(y.sortField),Be(y.sortDirection),rt(y.grouping)},[y.filters.priority,y.filters.type,y.filters.assignee,y.filters.project,y.filters.tags,y.sortField,y.sortDirection,y.grouping]),m.useEffect(()=>{if(k.current===g)return;let X=!1;return k0().then(te=>{if(X||k.current===g)return;const ye=YT(te,g),ze=ye.defaultView,yt=He(ye.filters.status),Tt=ye.filters.activity??"all",$t=new URLSearchParams(window.location.search);let An=!1;const zn=new URLSearchParams($t);$t.get("view")===null&&ze!=="kanban"&&tC.includes(ze)&&(zn.set("view",ze),An=!0),$t.get("status")===null&&yt.length>0&&(zn.set("status",yt.join(",")),$(yt),An=!0),$t.get("stale")===null&&Tt!=="all"&&(zn.set("stale",Tt==="stale"?"1":"0"),ne(Tt),An=!0),An&&h(zn,{replace:!0});const Pn=_(zn.get("status")),Ar=zn.get("stale")===null?Tt:kp(zn.get("stale"));ge(Vu({status:Pn,priority:He(ye.filters.priority),type:He(ye.filters.type),assignee:He(ye.filters.assignee),project:He(ye.filters.project),tags:He(ye.filters.tags),activity:Ar==="fresh"||Ar==="stale"?Ar:"all"})),queueMicrotask(()=>{k.current=g})}),()=>{X=!0}},[g]);const wt=m.useCallback(X=>{(g===null?C_(X):E_(g,X)).catch(ye=>{console.warn("Failed to persist view prefs:",ye)})},[g]),Di=m.useCallback(X=>{F(X),wt({defaultView:X})},[F,wt]),Mo=m.useRef(null);Mo.current={status:V,priority:O,type:K,assignee:H,project:z,tags:B,activity:oe,dateRange:J,search:D};const Ia=m.useCallback((X={})=>{const te=Mo.current;return{status:te.status,priority:te.priority,type:te.type,assignee:te.assignee,project:te.project,tags:te.tags,activity:te.activity,dateRange:ga(te.dateRange),search:te.search,...X}},[]),nn=m.useCallback((X={})=>{ge(Vu(Ia(X)))},[Ia]),Lo=m.useCallback(X=>{$(X),wt({filters:{status:X}}),nn({status:X})},[wt,nn]),Ma=m.useCallback(X=>{U(X),wt({filters:{priority:X}}),nn({priority:X})},[wt,nn]),La=m.useCallback(X=>{M(X),wt({filters:{type:X}}),nn({type:X})},[wt,nn]),Fc=m.useCallback(X=>{L(X),wt({filters:{assignee:X}}),nn({assignee:X})},[wt,nn]),Oa=m.useCallback(X=>{Y(X),wt({filters:{project:X}}),nn({project:X})},[wt,nn]),Ht=m.useCallback(X=>{Q(X),wt({filters:{tags:X}}),nn({tags:X})},[wt,nn]),$i=m.useCallback(X=>{ne(X),wt({filters:{activity:X}}),nn({activity:X})},[wt,nn]),ao=m.useCallback(X=>{W(X),nn({search:X})},[nn]),Oo=m.useCallback(X=>{Z(X),nn({dateRange:ga(X)})},[nn]),Ds=m.useCallback(X=>{Se(X),wt({sortField:X})},[wt]),Fo=m.useCallback(X=>{Be(X),wt({sortDirection:X})},[wt]),Fa=m.useCallback(X=>{rt(X),wt({grouping:X})},[wt]),zo=m.useCallback(()=>{ao(""),Lo([]),Ht([]),Oo(null),$i("all")},[ao,Lo,Ht,Oo,$i]),ar=m.useCallback(X=>{ge(X);const te=Wu(X);te&&($(He(te.status)),U(He(te.priority)),M(He(te.type)),L(He(te.assignee)),Y(He(te.project)),Q(He(te.tags)),W(te.search??""),ne(te.activity&&te.activity!=="all"?te.activity:"all"),Z(Hm(te.dateRange)))},[]),dr=m.useMemo(()=>Wu(ue)!==null,[ue]),On=m.useCallback(()=>{const te=Wu(ue)!==null?{status:V,priority:O,type:K,assignee:H,project:z,tags:B,activity:oe,dateRange:ga(J),search:D}:{};return{viewMode:I,filters:{...te,query:ue},sortField:Ce,sortDirection:ke,listSectionVisibility:{collapsed:[...ot]},kanbanColumnVisibility:ie,tableColumnVisibility:be}},[I,ue,V,O,K,H,z,B,oe,J,D,Ce,ke,ot,ie,be]),Bo=m.useCallback(X=>{nP(X,{setViewMode:F,setQuery:ge,setStatusFilter:te=>{$(te),wt({filters:{status:te}})},setPriorityFilter:te=>{U(te),wt({filters:{priority:te}})},setTypeFilter:te=>{M(te),wt({filters:{type:te}})},setAssigneeFilter:te=>{L(te),wt({filters:{assignee:te}})},setProjectFilter:te=>{Y(te),wt({filters:{project:te}})},setTagsFilter:te=>{Q(te),wt({filters:{tags:te}})},setActivityFilter:te=>{ne(te),wt({filters:{activity:te}})},setDateRange:Z,setSearch:W,setSortField:Ds,setSortDirection:Fo,setListSectionVisibility:te=>St(new Set(te.collapsed)),setKanbanColumnVisibility:ve,setTableColumnVisibility:Re}),Dt(X.id)},[F,wt,Ds,Fo]),zc=m.useCallback(X=>{Bo(X),Tr.current=X.id,h(te=>{const ye=new URLSearchParams(te);return ye.set("loadView",X.id),ye},{replace:!0})},[Bo,h]),Bc=m.useCallback(async X=>{try{const te=oc({name:X,context:{workspace:e??null,projectSlug:null},state:On()}),ye=await tc(te),ze=ye.views[ye.views.length-1];Dt((ze==null?void 0:ze.id)??null),ze&&(Tr.current=ze.id,h(yt=>{const Tt=new URLSearchParams(yt);return Tt.set("loadView",ze.id),Tt},{replace:!0})),Ut(!1),Ct(!1),me(`Saved view "${X}"`,"success")}catch(te){throw me(te instanceof Error?te.message:"Failed to save view","error"),te}},[On,h,me,e]),Uo=m.useCallback(async()=>{if(!(!tt||!Ne))try{const X=oc({name:Ne.name,context:{workspace:e??null,projectSlug:null},state:On()}),te=Rh(Ne.config,X.config,X.config);await Nh(tt,{config:te}),me("View updated","success")}catch(X){me(X instanceof Error?X.message:"Failed to update view","error")}},[On,Ne,tt,me,e]);m.useEffect(()=>{if(!Ge){Tr.current=null;return}if(Tr.current!==Ge&&(tt&&tt!==Ge&&Dt(null),!Mt)){if(le){me("Couldn't load saved view — try again","error");return}if(it){Tr.current=Ge,Bo(it),h(X=>{const te=new URLSearchParams(X);return te.delete("loadView"),te},{replace:!0});return}Tr.current=Ge,me("Saved view no longer exists","error"),h(X=>{const te=new URLSearchParams(X);return te.delete("loadView"),te},{replace:!0})}},[Ge,it,Mt,le,tt,Bo,h,me]);const Wn=m.useMemo(()=>mt.filter(X=>e?e==="_ungrouped"?X.projectWorkspace===null:X.projectWorkspace===e:!0),[mt,e]),lo=m.useMemo(()=>Array.from(new Set(Wn.map(X=>X.status))).sort(),[Wn]),Kr=m.useMemo(()=>Array.from(new Set(Wn.map(X=>X.priority))).sort(),[Wn]),za=m.useMemo(()=>Array.from(new Set(Wn.map(X=>X.assignee??"__unassigned__"))).sort(),[Wn]),Ii=m.useMemo(()=>Array.from(new Map(Wn.filter(X=>X.projectSlug!==null).map(X=>[X.projectSlug,X.projectTitle]))).sort(([,X],[,te])=>X.localeCompare(te)),[Wn]),Ho=m.useMemo(()=>Array.from(new Set(Wn.flatMap(X=>X.tags??[]))).sort(),[Wn]),Vo=m.useMemo(()=>HA(u.factDeclarations),[u.factDeclarations]),$s=m.useMemo(()=>ue.trim()===""?null:ec(ue,Vo).query,[ue,Vo]),Fn=m.useMemo(()=>BA(mt,$s,{workspace:e}),[mt,$s,e]),Rn=m.useMemo(()=>qd(Fn,Ce,ke),[Fn,Ce,ke]),Is=m.useMemo(()=>{if(Ue==="none")return[{id:"__all__",label:"All assignments",items:Rn}];if(Ue==="type"){const X=f.definitions.map(ze=>({id:ze.id,label:Bl(f,ze.id),items:Rn.filter(yt=>yt.type===ze.id)})),te=new Set(f.definitions.map(ze=>ze.id)),ye=Rn.filter(ze=>!ze.type||!te.has(ze.type));return ye.length>0&&X.push({id:N,label:"Other",items:ye}),X}if(Ue==="priority")return["critical","high","medium","low"].map(te=>({id:te,label:te.charAt(0).toUpperCase()+te.slice(1),items:Rn.filter(ye=>ye.priority===te)}));if(Ue==="assignee")return Array.from(new Set(Rn.map(te=>te.assignee??"__unassigned__"))).sort().map(te=>({id:te,label:te==="__unassigned__"?"Unassigned":te,items:Rn.filter(ye=>(ye.assignee??"__unassigned__")===te)}));if(Ue==="project"){const X=new Map;for(const te of Rn){const ye=te.projectSlug??"__standalone__",ze=te.projectTitle??"Standalone";X.has(ye)||X.set(ye,ze)}return Array.from(X.entries()).sort(([,te],[,ye])=>te.localeCompare(ye)).map(([te,ye])=>({id:te,label:ye,items:Rn.filter(ze=>(ze.projectSlug??"__standalone__")===te)}))}return v.map(X=>({id:X,label:b[X]??X,items:Rn.filter(te=>te.status===X)}))},[Ue,Rn,f,v,b]),Ft=m.useMemo(()=>{const X=new Set(f.definitions.map(ye=>ye.id));return Fn.some(ye=>!ye.type||!X.has(ye.type))?[...S,{id:N,title:"Other",description:"Assignments with no recognized type."}]:S},[S,f,Fn]),{visibleItems:af,visibleIndexByKey:Uc}=m.useMemo(()=>{let X;if(I==="table")X=Rn;else if(I==="kanban"){const ye=new Set(f.definitions.map(ze=>ze.id));Oe==="type"?X=[...f.definitions.flatMap(ze=>Fn.filter(yt=>yt.type===ze.id)),...Fn.filter(ze=>!ze.type||!ye.has(ze.type))]:X=v.flatMap(ze=>Fn.filter(yt=>yt.status===ze))}else X=Is.flatMap(ye=>ye.items);const te=new Map;return X.forEach((ye,ze)=>te.set(yn(ye),ze)),{visibleItems:X,visibleIndexByKey:te}},[I,Rn,Is,Oe,f,Fn,v]),{hotkeyRowProps:Mi}=Fd(af,{scope:"list:assignments",onOpen:X=>{if(X.projectSlug===null){n(`/assignments/${X.id}`);return}const te=X.projectWorkspace?`/w/${X.projectWorkspace}`:t;n(`${te}/projects/${X.projectSlug}/assignments/${X.slug}`)}});if(en({keys:"/",scope:"list:assignments",description:"Focus filter",handler:()=>{var X;return(X=r.current)==null?void 0:X.focus()}}),en({keys:"r",scope:"list:assignments",description:"Refresh",handler:()=>l()}),i)return s.jsx(bt,{label:"Loading assignments board…"});if(a||!o)return s.jsx(Rt,{error:a||"Assignments board is unavailable.",onRetry:l});async function Hc({item:X,toColumnId:te,action:ye,reason:ze}){if(!ye){const Tt=u.statuses.find($t=>$t.id===te);if(Qb(Tt??{id:te}))return me(`Reach “${To(u,te)}” through its complete/fail transition.`,"error"),!1}Ve(yn(X));const yt=mt;at(Tt=>Tt.map($t=>yn($t)===yn(X)?{...$t,status:te,blockedReason:te==="blocked"?ze??$t.blockedReason:null}:$t));try{const Tt=X.projectSlug===null?ye?await RY(X.id,ye,ze):await AY(X.id,te):ye?await __(X.projectSlug,X.slug,ye,ze):await D_(X.projectSlug,X.slug,te);return at($t=>$t.map(An=>yn(An)===yn(X)?{...An,status:Tt.status,blockedReason:Tt.blockedReason,availableTransitions:Tt.availableTransitions,updated:Tt.updated}:An)),l(),me(`Moved to ${To(u,Tt.status)}`,"success"),!0}catch(Tt){return at(yt),me(Tt.message,"error"),!1}finally{Ve(null)}}async function co({item:X,toColumnId:te,action:ye}){if(X.status===te)return;const ze=ye??Eu(X,te);if(ze!=null&&ze.disabled){me(ze.disabledReason||`Cannot move this assignment to ${te}.`,"error");return}if(ze&&$_(ze)){fe({item:X,toColumnId:te,action:ze});return}await Hc({item:X,toColumnId:te,action:ze})}function Vc(X){return XA(u).map(te=>te.id===X.status?{id:te.id,label:te.label,disabled:!0,disabledReason:"Already in this status"}:te.terminal&&!X.availableTransitions.find(ze=>ze.targetStatus===te.id&&!ze.disabled)?{id:te.id,label:te.label,disabled:!0,disabledReason:`Reach ${te.label} via its transition when available`}:{id:te.id,label:te.label})}function Ba(X,te){co({item:X,toColumnId:te})}async function Wo(X,te){if(te===X.title)return;const ye=yn(X),ze=mt;at(yt=>yt.map(Tt=>yn(Tt)===ye?{...Tt,title:te}:Tt)),Ve(ye);try{const yt=X.projectSlug===null?await _Y({id:X.id,title:te}):await PY({projectSlug:X.projectSlug,assignmentSlug:X.slug,title:te});at(Tt=>Tt.map($t=>yn($t)===ye?{...$t,title:yt.title,updated:yt.updated}:$t)),l()}catch(yt){throw at(ze),me(yt.message,"error"),yt}finally{Ve(null)}}function Ms(X){St(te=>{const ye=new Set(te);return ye.has(X)?ye.delete(X):ye.add(X),ye})}function Ls(X){Ce===X?Fo(ke==="asc"?"desc":"asc"):(Ds(X),Fo("asc"))}const fn=pt?mt.find(X=>yn(X)===pt)??null:null;function Li(X,te){X.dataTransfer.effectAllowed="move",X.dataTransfer.setData("text/plain",te),_e(te)}function uo(){_e(null),Je(null)}function Os(X,te){if(!fn)return;const ye=Eu(fn,te);fn.status===te||ye!=null&&ye.disabled||(X.preventDefault(),X.dataTransfer.dropEffect="move",Je(te))}function bg(X,te){Qe===te&&!X.currentTarget.contains(X.relatedTarget)&&Je(null)}function lf(X,te){if(X.preventDefault(),!fn||fn.status===te){uo();return}uo(),co({item:fn,toColumnId:te})}function Rr({field:X,children:te}){const ye=Ce===X;return s.jsx("th",{className:"pb-3 font-medium",children:s.jsxs("button",{type:"button",onClick:()=>Ls(X),className:"inline-flex items-center gap-1 hover:text-foreground",children:[te,ye?ke==="asc"?s.jsx(h2,{className:"h-3 w-3"}):s.jsx(nr,{className:"h-3 w-3"}):null]})})}return s.jsxs("div",{className:"space-y-5","data-density":y.density,children:[s.jsx("div",{className:"flex items-center justify-end",children:s.jsxs($e,{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:[s.jsx(Pt,{className:"h-4 w-4"}),"New Assignment"]})}),s.jsxs(Qw,{children:[s.jsx(bX,{className:"w-full md:min-w-[320px] md:flex-1",value:ue,onChange:ar,registry:Vo,declarations:u.factDeclarations,valueSources:{statuses:u.order,priorities:Kr,types:f.definitions.map(X=>X.id),assignees:za.filter(X=>X!=="__unassigned__"),projects:Ii.map(([X])=>X),tags:Ho}}),dr?null:s.jsx("span",{className:"inline-flex items-center rounded-md border border-amber-500/40 bg-amber-500/10 px-2 py-1 text-xs font-medium text-amber-700 dark:text-amber-300",title:"This query uses features the chips can't represent (OR / NOT / grouping / advanced fields). Edit it in the query box; the chips are read-only until it becomes chip-representable again.",children:"advanced query — edit in the box"}),s.jsx(Vm,{ref:r,value:D,onChange:dr?ao:()=>{},placeholder:"Search assignments or projects"}),s.jsx(wn,{ariaLabel:"Status filter",className:"max-w-[180px]",allLabel:"All statuses",disabled:!dr,options:lo.map(X=>({value:X,label:b[X]??X})),value:V,onChange:Lo}),s.jsx(wn,{ariaLabel:"Priority filter",className:"max-w-[180px]",allLabel:"All priorities",disabled:!dr,options:Kr.map(X=>({value:X,label:X[0].toUpperCase()+X.slice(1)})),value:O,onChange:Ma}),s.jsx(wn,{ariaLabel:"Type filter",className:"max-w-[180px]",allLabel:"All types",disabled:!dr,options:f.definitions.map(X=>({value:X.id,label:Bl(f,X.id)})),value:K,onChange:La}),s.jsx(wn,{ariaLabel:"Assignee filter",className:"max-w-[180px]",allLabel:"All assignees",disabled:!dr,options:[{value:"__unassigned__",label:"Unassigned"},...za.filter(X=>X!=="__unassigned__").map(X=>({value:X,label:X}))],value:H,onChange:Fc}),s.jsx(wn,{ariaLabel:"Project filter",className:"max-w-[180px]",allLabel:"All projects",disabled:!dr,options:[{value:"__standalone__",label:"Standalone"},...Ii.map(([X,te])=>({value:X,label:te}))],value:z,onChange:Oa}),s.jsx(wn,{ariaLabel:"Tags filter",className:"max-w-[180px]",allLabel:"Any tags",disabled:!dr,options:Ho.map(X=>({value:X,label:X})),value:B,onChange:Ht}),s.jsx(Um,{className:"max-w-[200px]",value:J,onChange:dr?Oo:()=>{}}),s.jsxs("select",{value:oe,disabled:!dr,onChange:X=>$i(X.target.value),className:"editor-input max-w-[180px]","aria-label":"Filter by activity",title:"Filter by activity",children:[s.jsx("option",{value:"all",children:"All activity"}),s.jsx("option",{value:"stale",children:"Stale only"}),s.jsx("option",{value:"fresh",children:"Fresh only"})]}),s.jsx("select",{value:I==="kanban"?Oe:Ue,onChange:X=>Fa(X.target.value),className:"editor-input max-w-[180px]",title:"Group by",children:q6.map(X=>{const te=I==="kanban"&&X!=="status"&&X!=="type",ye=X==="none"?"No grouping":`Group: ${X.charAt(0).toUpperCase()+X.slice(1)}`;return s.jsx("option",{value:X,disabled:te,children:te?`${ye} (list only)`:ye},X)})}),s.jsx(Wm,{value:I,onChange:X=>Di(X),options:[{value:"table",label:"Table"},{value:"list",label:"List"},{value:"kanban",label:"Kanban"}]}),I==="table"?s.jsx(w_,{visibility:be,onChange:Re}):null,s.jsx(R_,{scope:je,loadedViewId:tt,onApply:zc,onOpenSaveDialog:()=>{Ct(!1),Ut(!0)}}),s.jsx("button",{type:"button",onClick:()=>{Ne?Uo():(Ct(!1),Ut(!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:Ne?`Update ${Ne.name}`:"Save current view",children:Ne?`Update '${Ne.name}'`:"Save view"}),Ne?s.jsx("button",{type:"button",onClick:()=>{Ct(!0),Ut(!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]}),o.assignments.length===0?s.jsx(Nt,{title:"No assignments yet",description:"Assignments appear here once projects contain concrete work items.",actions:s.jsxs($e,{className:"shell-action shell-action--cta",to:`${t}/projects`,children:[s.jsx(Kv,{className:"h-4 w-4"}),s.jsx("span",{children:"Browse Projects"})]})}):Fn.length===0?s.jsx(Nt,{title:"No assignments match these filters",description:"Adjust the search term or filters to show assignments across all projects again.",actions:s.jsxs("button",{type:"button",onClick:zo,className:"shell-action shell-action--cta",children:[s.jsx(b4,{className:"h-4 w-4"}),s.jsx("span",{children:"Clear all filters"})]})}):I==="table"?(()=>{const X=new Set(be.hidden),te=ye=>ye==="title"||!X.has(ye);return s.jsx(We,{title:`${Rn.length} assignment${Rn.length===1?"":"s"}`,children:s.jsx("div",{className:"overflow-x-auto",children:s.jsxs("table",{className:"w-full min-w-[760px] text-left text-sm",children:[s.jsx("thead",{children:s.jsxs("tr",{className:"border-b border-border/60 text-muted-foreground",children:[te("title")?s.jsx(Rr,{field:"title",children:"Assignment"}):null,te("status")?s.jsx(Rr,{field:"status",children:"Status"}):null,s.jsx("th",{className:"py-2 pr-4 text-xs font-medium uppercase tracking-wider",children:"Type"}),te("priority")?s.jsx(Rr,{field:"priority",children:"Priority"}):null,te("assignee")?s.jsx(Rr,{field:"assignee",children:"Assignee"}):null,te("dependencies")?s.jsx(Rr,{field:"dependencies",children:"Dependencies"}):null,te("created")?s.jsx(Rr,{field:"created",children:"Created"}):null,te("updated")?s.jsx(Rr,{field:"updated",children:"Updated"}):null]})}),s.jsx("tbody",{children:Rn.map((ye,ze)=>s.jsxs(jX,{detailHref:gd(ye),className:"cursor-pointer border-b border-border/50 transition hover:bg-muted/40 last:border-0",...Mi(ze),children:[te("title")?s.jsxs("td",{className:"py-4 pr-4",children:[s.jsx(t3,{title:ye.title,detailHref:gd(ye),onSave:yt=>Wo(ye,yt),disabled:Ae===yn(ye)}),s.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:ye.projectTitle??s.jsx("span",{className:"rounded bg-muted px-1.5 py-0.5 font-mono text-[10px] uppercase text-muted-foreground",children:"Standalone"})}),s.jsxs("p",{className:"mt-0.5 inline-flex items-center gap-1.5 font-mono text-xs text-muted-foreground/70",title:ye.id,children:[ye.id.slice(0,8),s.jsx(kr,{value:ye.id})]})]}):null,te("status")?s.jsx("td",{className:"py-4 pr-4",children:s.jsx("select",{value:ye.status,disabled:Ae===yn(ye),onChange:yt=>co({item:ye,toColumnId:yt.target.value}),className:we("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")]`,xd(u.statuses,ye.status).className,Ae===yn(ye)&&"animate-pulse opacity-60"),style:xd(u.statuses,ye.status).style,children:v.map(yt=>{const Tt=ye.status===yt,$t=Tt?void 0:Eu(ye,yt),An=u.statuses.find(Ko=>Ko.id===yt),zn=!Tt&&Qb(An??{id:yt})&&!$t,Pn=(($t==null?void 0:$t.disabled)??!1)||zn,Ar=zn?`Reach ${b[yt]??yt} via its transition when available`:($t==null?void 0:$t.disabledReason)??void 0;return s.jsx("option",{value:yt,disabled:Pn,title:Pn?Ar:void 0,children:b[yt]},yt)})})}):null,s.jsx("td",{className:"py-4 pr-4",children:s.jsx(Pa,{type:ye.type,compact:!0})}),te("priority")?s.jsx("td",{className:"py-4 pr-4 capitalize text-muted-foreground",children:ye.priority}):null,te("assignee")?s.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:ye.assignee??"Unassigned"}):null,te("dependencies")?s.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:ye.dependsOn.length}):null,te("created")?s.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:Yn(ye.created)}):null,te("updated")?s.jsx("td",{className:"py-4 text-muted-foreground",children:Yn(ye.updated)}):null]},yn(ye)))})]})})})})():I==="list"?s.jsx("div",{className:"space-y-3",children:Is.map(({id:X,label:te,items:ye})=>{var zn;if(ye.length===0&&!(fn&&Ue==="status"))return null;const ze=!ot.has(X),yt=Ue==="status",Tt=yt&&fn?fn.status!==X&&!((zn=Eu(fn,X))!=null&&zn.disabled):!1,$t=yt&&fn?fn.status!==X&&!Tt:!1,An=yt&&Qe===X;return s.jsxs("div",{className:we("rounded-lg border border-border/60 bg-card/90 transition",An&&Tt&&"ring-2 ring-ring/30",$t&&"border-dashed opacity-65"),onDragOver:yt?Pn=>Os(Pn,X):void 0,onDragLeave:yt?Pn=>bg(Pn,X):void 0,onDrop:yt?Pn=>lf(Pn,X):void 0,children:[s.jsxs("button",{type:"button",onClick:()=>Ms(X),className:"flex w-full items-center gap-2 px-4 py-3 text-left",children:[s.jsx(nr,{className:`h-4 w-4 text-muted-foreground transition-transform ${ze?"":"-rotate-90"}`}),s.jsx("span",{className:"font-semibold text-foreground",children:te}),s.jsx("span",{className:"rounded-full border border-border/60 px-2 py-0.5 text-xs text-muted-foreground",children:ye.length})]}),ze&&ye.length>0&&s.jsx("div",{className:"space-y-3 px-4 pb-4",children:ye.map(Pn=>{const Ar=yn(Pn),Ko=pt===Ar,Oi=Uc.get(Ar)??-1,qo=yt;return s.jsx("div",{draggable:qo,onDragStart:qo?is=>Li(is,Ar):void 0,onDragEnd:qo?uo:void 0,...Oi>=0?Mi(Oi):{},className:we("transition",qo&&"cursor-grab active:cursor-grabbing",Ko&&"scale-[0.98] opacity-50"),children:s.jsx(rC,{assignment:Pn,dragging:Ko,transitioning:Ae===Ar,onPillSelect:is=>void co({item:Pn,toColumnId:is.targetStatus,action:is}),overrideTargets:Vc(Pn),onOverride:is=>Ba(Pn,is),onRenameTitle:is=>Wo(Pn,is)})},Ar)})})]},X)})}):s.jsx(Bm,{columns:Oe==="type"?Ft:j,items:Fn,getItemId:yn,getColumnId:X=>Oe==="type"?X.type&&f.definitions.some(te=>te.id===X.type)?X.type:N:X.status,canDrop:({item:X,fromColumnId:te,toColumnId:ye})=>{if(te===ye)return{allowed:!0};const ze=Eu(X,ye);return ze!=null&&ze.disabled?{allowed:!1,reason:ze.disabledReason||ze.description}:{allowed:!0,reason:ze?ze.warning||ze.description:`Move to ${ye} (direct status change).`}},onMove:Oe==="type"?void 0:({item:X,toColumnId:te})=>co({item:X,toColumnId:te}),dragDisabled:Oe==="type",getExternalDragData:X=>X.projectSlug===null?{type:"standalone-assignment",id:X.id}:{type:"project-assignment",id:X.id},onCardContextMenu:(X,te)=>{te.preventDefault(),re({item:X,anchor:{x:te.clientX,y:te.clientY}})},emptyMessage:X=>`No ${X.title.toLowerCase()} assignments.`,hiddenColumnIds:ie.hidden,onHideColumn:X=>ve(te=>({hidden:te.hidden.includes(X)?te.hidden.filter(ze=>ze!==X):[...te.hidden,X]})),renderCard:(X,{dragging:te})=>{const ye=Uc.get(yn(X))??-1;return s.jsx("div",{...ye>=0?Mi(ye):{},children:s.jsx(rC,{assignment:X,dragging:te,transitioning:Ae===yn(X),onPillSelect:ze=>void co({item:X,toColumnId:ze.targetStatus,action:ze}),overrideTargets:Vc(X),onOverride:ze=>Ba(X,ze),onRenameTitle:ze=>Wo(X,ze)})})}}),s.jsx(Xn,{toast:ce,onDismiss:Ie}),s.jsx(T_,{open:Bt,onOpenChange:X=>{Ut(X),X||Ct(!1)},initialName:En&&Ne?`${Ne.name} (copy)`:"",title:En?"Save as new view":"Save view",onSubmit:Bc}),s.jsx(F_,{open:ut!==null,action:(ut==null?void 0:ut.action)??null,assignmentTitle:(ut==null?void 0:ut.item.title)??"Assignment",loading:Ae===(ut?yn(ut.item):null),onOpenChange:X=>{X||fe(null)},onConfirm:async X=>{if(!ut)return;const te=ut;await Hc({item:te.item,toColumnId:te.toColumnId,action:te.action,reason:X})&&fe(null)}}),s.jsx(uP,{anchor:(q==null?void 0:q.anchor)??null,items:q?wX(q.item,{onEdit:()=>{const X=q.item,te=X.projectSlug===null?`/assignments/${X.id}`:`${X.projectWorkspace?`/w/${X.projectWorkspace}`:t}/projects/${X.projectSlug}/assignments/${X.slug}`;n(te)},onDelete:()=>qe(q.item),onMove:()=>vt(q.item)}):[],onClose:()=>re(null)}),s.jsx(ss,{open:xe!==null,title:"Delete assignment?",description:xe?`"${xe.title}" will be permanently removed. This cannot be undone.`:"",confirmLabel:"Delete",destructive:!0,loading:Fe!==null,onOpenChange:X=>{!X&&Fe===null&&qe(null)},onConfirm:async()=>{if(!xe||xe.projectSlug===null){qe(null);return}const X=yn(xe);lt(X);try{const te=await fetch(`/api/projects/${encodeURIComponent(xe.projectSlug)}/assignments/${encodeURIComponent(xe.slug)}`,{method:"DELETE"});if(!te.ok){const ye=await te.json().catch(()=>({}));throw new Error(ye.error||"Failed to delete assignment")}qe(null),l(),me("Assignment deleted","success")}catch(te){me(te instanceof Error?te.message:"Failed to delete assignment","error")}finally{lt(null)}}}),s.jsx(Zw,{open:ht!==null,onOpenChange:X=>{X||vt(null)},currentWorkspace:(ht==null?void 0:ht.projectWorkspace)??null,title:"Move assignment to workspace",description:"Standalone assignments belong to a project-workspace via the workspaceGroup frontmatter field.",onSubmit:async X=>{if(!ht)return;const te=await fetch(`/api/assignments/${encodeURIComponent(ht.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspaceGroup:X})});if(!te.ok){const ye=await te.json().catch(()=>({}));throw new Error(ye.error||"Failed to move assignment")}l()}})]})}function wX(e,t){const n=[{key:"edit",label:"Edit",icon:vc,onSelect:t.onEdit}];return e.projectSlug!==null?n.push({key:"delete",label:"Delete",icon:mn,destructive:!0,onSelect:t.onDelete}):n.push({key:"move",label:"Move to workspace…",icon:sm,onSelect:t.onMove}),n}function jX({detailHref:e,children:t,className:n,...r}){const o=n3(e);return s.jsx("tr",{...r,ref:o.containerRef,className:n,onMouseDown:o.onMouseDown,onClick:o.onClick,children:t})}function rC({assignment:e,dragging:t,transitioning:n,onPillSelect:r,overrideTargets:o,onOverride:i,onRenameTitle:a}){var p;const l=gd(e),u=!!(r&&a),f=n3(l);return s.jsxs("div",{ref:u?f.containerRef:void 0,className:we("vp-card rounded-lg border border-border/60 bg-background/85 p-3 shadow-sm",u&&"cursor-pointer"),onMouseDown:u?f.onMouseDown:void 0,onClick:u?f.onClick:void 0,children:[s.jsxs("div",{className:"flex items-start justify-between gap-3",children:[s.jsxs("div",{className:"min-w-0 flex-1 space-y-1",children:[u?s.jsx(t3,{title:e.title,detailHref:l,onSave:a,disabled:n}):s.jsx($e,{to:l,className:"text-base font-semibold text-foreground hover:text-primary",children:e.title}),s.jsx("p",{className:"text-sm text-muted-foreground",children:e.projectTitle??s.jsx("span",{className:"rounded bg-muted px-1.5 py-0.5 font-mono text-[10px] uppercase text-muted-foreground",children:"Standalone"})}),s.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&&s.jsx(kr,{value:e.id})]})]}),u?s.jsx(dX,{currentStatus:e.status,availableTransitions:e.availableTransitions,onSelect:r,overrideTargets:o,onOverride:i,disabled:n,className:"max-w-[150px]"}):s.jsx(jn,{status:e.status,className:"max-w-[150px]"})]}),e.blockedReason?s.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,s.jsxs("div",{className:"mt-4 flex flex-wrap gap-2",children:[s.jsx(Pa,{type:e.type}),s.jsx("span",{className:"rounded-full border border-border/60 px-2.5 py-1 text-xs capitalize text-muted-foreground",children:e.priority}),s.jsx("span",{className:"rounded-full border border-border/60 px-2.5 py-1 text-xs text-muted-foreground",children:e.assignee??"Unassigned"}),e.dependsOn.length>0?s.jsxs("span",{className:"rounded-full border border-border/60 px-2.5 py-1 text-xs text-muted-foreground",children:[e.dependsOn.length," ",e.dependsOn.length===1?"dependency":"dependencies"]}):null]}),s.jsxs("div",{className:"mt-4 flex items-center justify-between gap-3 text-xs uppercase tracking-[0.08em] text-muted-foreground",children:[s.jsx("span",{children:n?"Updating":t?"Dragging":"Source-first"}),s.jsx("span",{children:Yn(e.updated)})]})]})}function Eu(e,t){return e.availableTransitions.find(n=>n.targetStatus===t)}function yn(e){return e.id||e.slug||"unknown"}function os(e){const t=e.match(/^---\n([\s\S]*?)\n---\n?/);if(!t)return{order:[],blocks:new Map,body:e};const n=t[1],r=e.slice(t[0].length),o=n.split(`
|
|
641
|
-
`),i=[],a=new Map;let l=null,u=[];const f=()=>{l&&(i.push(l),a.set(l,u))};for(const p of o){const h=p.match(/^([A-Za-z_][A-Za-z0-9_-]*):/);if(h&&!p.startsWith(" ")){f(),l=h[1],u=[p];continue}l&&u.push(p)}return f(),{order:i,blocks:a,body:r}}function $c(e){return`---
|
|
642
|
-
${e.order.map(n=>e.blocks.get(n)).filter(n=>!!n).flat().join(`
|
|
643
|
-
`)}
|
|
644
|
-
---
|
|
645
|
-
|
|
646
|
-
${e.body.replace(/^\n+/,"")}`}const kX=/[:#{}[\],&*?|>!%@`]/;function xv(e){return e.length>=2&&e.startsWith('"')&&e.endsWith('"')?e.slice(1,-1).replace(/\\(["\\])/g,"$1"):e.length>=2&&e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1).replace(/''/g,"'"):e}function r3(e){return kX.test(e)||/^\s|\s$/.test(e)||/^["']|["']$/.test(e)?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:e}function In(e,t){const n=e.blocks.get(t);if(!(n!=null&&n[0]))return"";const r=n[0].match(/^[^:]+:\s*(.*)$/);if(!r)return"";const o=r[1].trim();return o==="null"?"":xv(o)}function NX(e,t){return In(e,t)==="true"}function SX(e){const t=[];let n="",r=null;for(let o=0;o<e.length;o+=1){const i=e[o];if(r){n+=i,i==="\\"&&r==='"'&&o+1<e.length?(n+=e[o+1],o+=1):i===r&&(r=null);continue}if(i==='"'||i==="'"){r=i,n+=i;continue}if(i===","){t.push(n),n="";continue}n+=i}return t.push(n),t}function ed(e,t){const n=e.blocks.get(t);if(!(n!=null&&n.length))return[];if(n[0].trim().endsWith("[]"))return[];const o=n[0].match(/^[^:]+:\s*\[(.*)\]\s*$/);return o?SX(o[1]).map(i=>xv(i.trim())).filter(i=>i.length>0):n.slice(1).map(i=>i.trim()).filter(i=>i.startsWith("- ")).map(i=>xv(i.slice(2).trim()))}function CX(e){return typeof e=="boolean"?e?"true":"false":e===null||e===""?"null":r3(e)}function Mn(e,t,n){e.blocks.has(t)||e.order.push(t),e.blocks.set(t,[`${t}: ${CX(n)}`])}function td(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(r=>` - ${r3(r)}`)])}function nd(e){return e.split(",").map(t=>t.trim()).filter(Boolean)}function Zm(e){const t=os(e);return{title:In(t,"title"),slug:In(t,"slug"),workspace:In(t,"workspace"),archived:NX(t,"archived"),archivedAt:In(t,"archivedAt"),archivedReason:In(t,"archivedReason"),tags:ed(t,"tags").join(", "),body:t.body}}function EX(e,t){const n=os(e),r={...Zm(e),...t};return Mn(n,"title",r.title),Mn(n,"slug",r.slug),Mn(n,"workspace",r.workspace||null),Mn(n,"archived",r.archived),Mn(n,"archivedAt",r.archivedAt||null),Mn(n,"archivedReason",r.archivedReason||null),td(n,"tags",nd(r.tags)),n.body=r.body,$c(n)}function eg(e){const t=os(e);return{title:In(t,"title"),slug:In(t,"slug"),status:In(t,"status"),priority:In(t,"priority")||"medium",assignee:In(t,"assignee"),dependsOn:ed(t,"dependsOn").join(", "),links:ed(t,"links").join(", "),blockedReason:In(t,"blockedReason"),tags:ed(t,"tags").join(", "),body:t.body}}function TX(e,t){const n=os(e),r={...eg(e),...t};return Mn(n,"title",r.title),Mn(n,"slug",r.slug),Mn(n,"status",r.status),Mn(n,"priority",r.priority),Mn(n,"assignee",r.assignee||null),td(n,"dependsOn",nd(r.dependsOn)),td(n,"links",nd(r.links)),Mn(n,"blockedReason",r.blockedReason||null),td(n,"tags",nd(r.tags)),n.body=r.body,$c(n)}function tg(e){const t=os(e);return{assignment:In(t,"assignment"),status:In(t,"status"),body:t.body}}function RX(e,t){const n=os(e),r={...tg(e),...t};return Mn(n,"assignment",r.assignment),Mn(n,"status",r.status),n.body=r.body,$c(n)}function ng(e){const t=os(e);return{assignment:In(t,"assignment"),body:t.body}}function AX(e,t){const n=os(e),r={...ng(e),...t};return Mn(n,"assignment",r.assignment),n.body=r.body,$c(n)}function rg(e){const t=os(e);return{name:In(t,"name"),slug:In(t,"slug"),description:In(t,"description"),whenToUse:In(t,"when_to_use"),tags:ed(t,"tags").join(", "),body:t.body}}function PX(e,t){const n=os(e),r={...rg(e),...t};return Mn(n,"name",r.name),Mn(n,"slug",r.slug),Mn(n,"description",r.description||null),Mn(n,"when_to_use",r.whenToUse||null),td(n,"tags",nd(r.tags)),n.body=r.body,$c(n)}function T0(e){return{body:os(e).body}}function s3(e){return T0(e)}function o3(e,t){const n=os(e);return t.body!==void 0&&(n.body=t.body),$c(n)}function _X(e,t){return o3(e,t)}function Zt(e,t,n){switch(e){case"project":return EX(t,n);case"assignment":return TX(t,n);case"plan":return RX(t,n);case"scratchpad":return AX(t,n);case"playbook":return PX(t,n);case"memory":return o3(t,n);case"resource":return _X(t,n);default:return t}}function DX(e){return(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()==="s"}function $X(e){return!e.saving&&e.validationErrorCount===0}function Ic({initialContent:e,documentType:t,mode:n="edit",onSave:r,saving:o,error:i,title:a,description:l,onCancel:u,helpTitle:f,helpBody:p,allowSlugEdit:h=!1}){const[g,y]=m.useState(e),[k,v]=m.useState(!1),[b,j]=m.useState("edit");m.useEffect(()=>{y(e)},[e]);const S=OX(t,g),N=g!==e,C=LX(t,g),P=N?"Unsaved changes":n==="create"?"Draft":"Saved",T=t!=="memory"&&t!=="resource",R=m.useRef({content:g,saving:o,validationErrorCount:S.length,onSave:r});return R.current={content:g,saving:o,validationErrorCount:S.length,onSave:r},m.useEffect(()=>{const I=_=>{if(!DX(_))return;_.preventDefault();const{content:F,saving:D,validationErrorCount:W,onSave:V}=R.current;$X({saving:D,validationErrorCount:W})&&V(F)};return window.addEventListener("keydown",I),()=>window.removeEventListener("keydown",I)},[]),m.useEffect(()=>{if(!N)return;const I=_=>{_.preventDefault(),_.returnValue=""};return window.addEventListener("beforeunload",I),()=>window.removeEventListener("beforeunload",I)},[N]),s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{className:"rounded-lg border border-border/70 bg-card/90 p-3 shadow-sm",children:[s.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[s.jsxs("div",{className:"space-y-2",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("h1",{className:"text-lg font-semibold text-foreground",children:a}),s.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:P})]}),l?s.jsx("p",{className:"max-w-3xl text-sm leading-6 text-muted-foreground",children:l}):null]}),s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsxs("button",{type:"button",onClick:u,className:"shell-action",children:[s.jsx(lh,{className:"h-4 w-4"}),s.jsx("span",{children:"Back"})]}),T?s.jsxs("button",{type:"button",onClick:()=>v(I=>!I),className:"shell-action",children:[s.jsx(x4,{className:"h-4 w-4"}),s.jsx("span",{children:k?"Structured":"Raw Markdown"})]}):null,s.jsxs("button",{type:"button",onClick:()=>r(g),disabled:o||S.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:[s.jsx(lm,{className:"h-4 w-4"}),s.jsx("span",{children:o?"Saving…":"Save"})]})]})]}),i?s.jsx("p",{className:"mt-4 rounded-md border border-error-foreground/30 bg-error px-4 py-3 text-sm text-error-foreground",children:i}):null,S.length>0?s.jsx("div",{className:"mt-4 rounded-md border border-warning-foreground/30 bg-warning px-4 py-3 text-sm text-warning-foreground",children:s.jsx("ul",{className:"space-y-1",children:S.map(I=>s.jsx("li",{children:I},I))})}):null]}),s.jsxs("div",{className:"flex items-center gap-2 md:hidden",children:[s.jsx("button",{type:"button",onClick:()=>j("edit"),className:`shell-action ${b==="edit"?"shell-action--cta":""}`,children:"Edit"}),s.jsxs("button",{type:"button",onClick:()=>j("preview"),className:`shell-action ${b==="preview"?"shell-action--cta":""}`,children:[s.jsx(R1,{className:"h-4 w-4"}),"Preview"]})]}),s.jsxs("div",{className:"grid gap-3 xl:grid-cols-[minmax(0,1.2fr)_minmax(320px,0.8fr)]",children:[s.jsx("div",{className:b==="preview"?"hidden md:block":"",children:s.jsx("div",{className:"surface-panel space-y-3",children:k?s.jsx("textarea",{value:g,onChange:I=>y(I.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}):s.jsx(IX,{documentType:t,content:g,onChange:y,allowSlugEdit:h})})}),s.jsx("div",{className:b==="edit"?"hidden md:block":"",children:s.jsxs("div",{className:"surface-panel sticky top-16 space-y-4",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(R1,{className:"h-4 w-4 text-muted-foreground"}),s.jsx("h2",{className:"text-lg font-semibold text-foreground",children:"Preview"})]}),s.jsx(vn,{content:C,emptyState:"Write markdown body content to preview it here."})]})})]})]})}function IX({documentType:e,content:t,onChange:n,allowSlugEdit:r}){const o=As();if(e==="project"){const a=Zm(t);return s.jsxs("div",{className:"space-y-3",children:[s.jsxs(Tu,{children:[s.jsx(Vt,{label:"Project title",children:s.jsx("input",{value:a.title,onChange:l=>{const u=l.target.value,f={title:u};r&&(a.slug===Mr(a.title)||!a.slug.trim())&&(f.slug=Mr(u)),n(Zt(e,t,f))},className:"editor-input"})}),s.jsx(Vt,{label:"Slug",children:s.jsxs("div",{className:"space-y-2",children:[s.jsx("input",{value:a.slug,disabled:!r,onChange:l=>n(Zt(e,t,{slug:Mr(l.target.value)})),className:`editor-input ${r?"":"editor-input-disabled"}`}),s.jsx("p",{className:"text-xs leading-5 text-muted-foreground",children:r?"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."})]})}),s.jsx(Vt,{label:"Tags",children:s.jsx("input",{value:a.tags,onChange:l=>n(Zt(e,t,{tags:l.target.value})),placeholder:"Comma-separated tags",className:"editor-input"})}),s.jsx(MX,{value:a.workspace,onChange:l=>n(Zt(e,t,{workspace:l}))})]}),s.jsx(Vt,{label:"Project body",children:s.jsx("textarea",{value:a.body,onChange:l=>n(Zt(e,t,{body:l.target.value})),className:"editor-textarea",spellCheck:!1})})]})}if(e==="assignment"){const a=eg(t),l=XA(o),u=!l.some(f=>f.id===a.status);return s.jsxs("div",{className:"space-y-3",children:[s.jsxs(Tu,{children:[s.jsx(Vt,{label:"Assignment title",children:s.jsx("input",{value:a.title,onChange:f=>{const p=f.target.value,h={title:p};r&&(a.slug===Mr(a.title)||!a.slug.trim())&&(h.slug=Mr(p)),n(Zt(e,t,h))},className:"editor-input"})}),s.jsx(Vt,{label:"Slug",children:s.jsxs("div",{className:"space-y-2",children:[s.jsx("input",{value:a.slug,disabled:!r,onChange:f=>n(Zt(e,t,{slug:Mr(f.target.value)})),className:`editor-input ${r?"":"editor-input-disabled"}`}),s.jsx("p",{className:"text-xs leading-5 text-muted-foreground",children:r?"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."})]})}),s.jsx(Vt,{label:"Status",children:s.jsxs("select",{value:a.status,onChange:f=>n(Zt(e,t,{status:f.target.value})),className:"editor-input",children:[u?s.jsx("option",{value:a.status,children:To(o,a.status)}):null,l.map(f=>s.jsx("option",{value:f.id,children:f.label},f.id))]})}),s.jsx(Vt,{label:"Priority",children:s.jsxs("select",{value:a.priority,onChange:f=>n(Zt(e,t,{priority:f.target.value})),className:"editor-input",children:[s.jsx("option",{value:"low",children:"Low"}),s.jsx("option",{value:"medium",children:"Medium"}),s.jsx("option",{value:"high",children:"High"}),s.jsx("option",{value:"critical",children:"Critical"})]})}),s.jsx(Vt,{label:"Assignee",children:s.jsx("input",{value:a.assignee,onChange:f=>n(Zt(e,t,{assignee:f.target.value})),placeholder:"Agent name",className:"editor-input"})}),s.jsx(Vt,{label:"Depends on",className:"md:col-span-2",children:s.jsx("input",{value:a.dependsOn,onChange:f=>n(Zt(e,t,{dependsOn:f.target.value})),placeholder:"Comma-separated assignment slugs",className:"editor-input"})}),s.jsx(Vt,{label:"Links",className:"md:col-span-2",children:s.jsx("input",{value:a.links,onChange:f=>n(Zt(e,t,{links:f.target.value})),placeholder:"Comma-separated: projectSlug/assignmentSlug",className:"editor-input"})}),s.jsx(Vt,{label:"Blocked reason",className:"md:col-span-2",children:s.jsx("input",{value:a.blockedReason,onChange:f=>n(Zt(e,t,{blockedReason:f.target.value})),placeholder:"Read-only unless the assignment is actually blocked",className:"editor-input"})}),s.jsx(Vt,{label:"Tags",className:"md:col-span-2",children:s.jsx("input",{value:a.tags,onChange:f=>n(Zt(e,t,{tags:f.target.value})),placeholder:"Comma-separated tags",className:"editor-input"})})]}),s.jsx(Vt,{label:"Assignment body",children:s.jsx("textarea",{value:a.body,onChange:f=>n(Zt(e,t,{body:f.target.value})),className:"editor-textarea",spellCheck:!1})})]})}if(e==="plan"){const a=tg(t);return s.jsxs("div",{className:"space-y-3",children:[s.jsxs(Tu,{children:[s.jsx(Vt,{label:"Assignment",children:s.jsx("input",{value:a.assignment,disabled:!0,className:"editor-input editor-input-disabled"})}),s.jsx(Vt,{label:"Plan status",children:s.jsxs("select",{value:a.status,onChange:l=>n(Zt(e,t,{status:l.target.value})),className:"editor-input",children:[s.jsx("option",{value:"draft",children:"Draft"}),s.jsx("option",{value:"approved",children:"Approved"}),s.jsx("option",{value:"in_progress",children:"In Progress"}),s.jsx("option",{value:"completed",children:"Completed"})]})})]}),s.jsx(Vt,{label:"Plan body",children:s.jsx("textarea",{value:a.body,onChange:l=>n(Zt(e,t,{body:l.target.value})),className:"editor-textarea",spellCheck:!1})})]})}if(e==="scratchpad"){const a=ng(t);return s.jsxs("div",{className:"space-y-3",children:[s.jsx(Tu,{children:s.jsx(Vt,{label:"Assignment",children:s.jsx("input",{value:a.assignment,disabled:!0,className:"editor-input editor-input-disabled"})})}),s.jsx(Vt,{label:"Scratchpad body",children:s.jsx("textarea",{value:a.body,onChange:l=>n(Zt(e,t,{body:l.target.value})),className:"editor-textarea",spellCheck:!1})})]})}if(e==="memory"||e==="resource"){const a=e==="memory"?T0(t):s3(t),l=e==="memory"?"Memory body":"Resource body";return s.jsxs("div",{className:"space-y-3",children:[s.jsx(Vt,{label:l,children:s.jsx("textarea",{value:a.body,onChange:u=>n(Zt(e,t,{body:u.target.value})),className:"editor-textarea",spellCheck:!1})}),s.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=rg(t);return s.jsxs("div",{className:"space-y-3",children:[s.jsxs(Tu,{children:[s.jsx(Vt,{label:"Playbook name",children:s.jsx("input",{value:i.name,onChange:a=>{const l=a.target.value,u={name:l};r&&(i.slug===Mr(i.name)||!i.slug.trim())&&(u.slug=Mr(l)),n(Zt(e,t,u))},className:"editor-input"})}),s.jsx(Vt,{label:"Slug",children:s.jsxs("div",{className:"space-y-2",children:[s.jsx("input",{value:i.slug,disabled:!r,onChange:a=>n(Zt(e,t,{slug:Mr(a.target.value)})),className:`editor-input ${r?"":"editor-input-disabled"}`}),s.jsx("p",{className:"text-xs leading-5 text-muted-foreground",children:r?"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."})]})}),s.jsx(Vt,{label:"Description",className:"md:col-span-2",children:s.jsx("input",{value:i.description,onChange:a=>n(Zt(e,t,{description:a.target.value})),placeholder:"One-line description of what this playbook does",className:"editor-input"})}),s.jsx(Vt,{label:"Tags",className:"md:col-span-2",children:s.jsx("input",{value:i.tags,onChange:a=>n(Zt(e,t,{tags:a.target.value})),placeholder:"Comma-separated tags",className:"editor-input"})}),s.jsx(Vt,{label:"When to use",className:"md:col-span-2",children:s.jsx("input",{value:i.whenToUse,onChange:a=>n(Zt(e,t,{whenToUse:a.target.value})),placeholder:"Describe when agents should apply this playbook",className:"editor-input"})})]}),s.jsx(Vt,{label:"Playbook rules",children:s.jsx("textarea",{value:i.body,onChange:a=>n(Zt(e,t,{body:a.target.value})),className:"editor-textarea",spellCheck:!1})})]})}function Tu({children:e}){return s.jsx("div",{className:"grid gap-4 md:grid-cols-2",children:e})}function Vt({label:e,children:t,className:n}){return s.jsxs("label",{className:`block space-y-2 ${n??""}`,children:[s.jsx("span",{className:"text-sm font-medium text-foreground",children:e}),t]})}function MX({value:e,onChange:t}){const{data:n}=Ta(),r=(n==null?void 0:n.workspaces)??[];return s.jsx(Vt,{label:"Workspace",children:s.jsxs("select",{value:e,onChange:o=>t(o.target.value),className:"editor-input",children:[s.jsx("option",{value:"",children:"Ungrouped"}),r.map(o=>s.jsx("option",{value:o,children:o},o))]})})}function LX(e,t){switch(e){case"project":return Zm(t).body;case"assignment":return eg(t).body;case"plan":return tg(t).body;case"scratchpad":return ng(t).body;case"playbook":return rg(t).body;case"memory":return T0(t).body;case"resource":return s3(t).body}}function OX(e,t){switch(e){case"project":{const n=Zm(t);return[n.title.trim()?null:"Project title is required.",n.slug.trim()?null:"Project slug is required.",n.slug.trim()&&!zp(n.slug)?"Project slug must be lowercase letters, numbers, and hyphens only.":null].filter(r=>!!r)}case"assignment":{const n=eg(t);return[n.title.trim()?null:"Assignment title is required.",n.slug.trim()?null:"Assignment slug is required.",n.slug.trim()&&!zp(n.slug)?"Assignment slug must be lowercase letters, numbers, and hyphens only.":null].filter(r=>!!r)}case"plan":return tg(t).assignment.trim()?[]:["Plan assignment is required."];case"scratchpad":return ng(t).assignment.trim()?[]:["Scratchpad assignment is required."];case"playbook":{const n=rg(t);return[n.name.trim()?null:"Playbook name is required.",n.slug.trim()?null:"Playbook slug is required.",n.slug.trim()&&!zp(n.slug)?"Playbook slug must be lowercase letters, numbers, and hyphens only.":null].filter(r=>!!r)}case"memory":case"resource":return[]}}function sC(){const e=Wt(),{workspace:t}=Kt(),n=gn(),[r,o]=m.useState(null),[i,a]=m.useState(!0),[l,u]=m.useState(!1),[f,p]=m.useState(null);m.useEffect(()=>{fetch("/api/templates/project").then(g=>g.json()).then(g=>{let y=g.content;t&&t!=="_ungrouped"&&(y=y.replace(/^(tags: \[\])$/m,`$1
|
|
647
|
-
workspace: ${t}`)),o(y),a(!1)}).catch(g=>{p(g.message),a(!1)})},[t]);async function h(g){u(!0),p(null);try{const y=await fetch("/api/projects",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:g})}),k=await y.json();if(!y.ok){p(k.error||`HTTP ${y.status}`),u(!1);return}e(`${n}/projects/${k.slug}`)}catch(y){p(y.message),u(!1);return}u(!1)}return i?s.jsx(bt,{label:"Loading project template…"}):f&&!r?s.jsx(Rt,{error:f}):s.jsx(Ic,{initialContent:r||"",documentType:"project",mode:"create",onSave:h,saving:l,error:f,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 oC(){const{slug:e}=Kt(),t=gn(),n=Wt(),[r,o]=m.useState(null),[i,a]=m.useState(!0),[l,u]=m.useState(!1),[f,p]=m.useState(null);m.useEffect(()=>{fetch("/api/templates/assignment").then(g=>g.json()).then(g=>{o(g.content),a(!1)}).catch(g=>{p(g.message),a(!1)})},[]);async function h(g){if(!e){p("Project slug is required.");return}u(!0),p(null);try{const y=await fetch(`/api/projects/${e}/assignments`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:g})}),k=await y.json();if(!y.ok){p(k.error||`HTTP ${y.status}`),u(!1);return}n(`${t}/projects/${e}/assignments/${k.slug}`)}catch(y){p(y.message),u(!1);return}u(!1)}return i?s.jsx(bt,{label:"Loading assignment template…"}):f&&!r?s.jsx(Rt,{error:f}):s.jsx(Ic,{initialContent:r||"",documentType:"assignment",mode:"create",onSave:h,saving:l,error:f,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 iC(){const{workspace:e}=Kt(),t=gn(),n=Wt(),[r,o]=m.useState(null),[i,a]=m.useState(!0),[l,u]=m.useState(!1),[f,p]=m.useState(null);m.useEffect(()=>{const g=new URLSearchParams({standalone:"1"});e&&g.set("workspace",e),fetch(`/api/templates/assignment?${g.toString()}`).then(y=>y.json()).then(y=>{o(y.content),a(!1)}).catch(y=>{p(y.message),a(!1)})},[e]);async function h(g){var y;u(!0),p(null);try{const k=await fetch("/api/assignments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:g})}),v=await k.json();if(!k.ok){p(v.error||`HTTP ${k.status}`),u(!1);return}const b=(y=v==null?void 0:v.assignment)==null?void 0:y.id;if(!b){p("Server did not return the new assignment id."),u(!1);return}n(`/assignments/${b}`)}catch(k){p(k.message),u(!1);return}u(!1)}return i?s.jsx(bt,{label:"Loading assignment template…"}):f&&!r?s.jsx(Rt,{error:f}):s.jsx(Ic,{initialContent:r||"",documentType:"assignment",mode:"create",onSave:h,saving:l,error:f,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 Mc({loadUrl:e,saveUrl:t,redirectTo:n,title:r,description:o,documentType:i,helpTitle:a,helpBody:l}){const u=Wt(),{data:f,loading:p,error:h}=X2(e),[g,y]=m.useState(!1),[k,v]=m.useState(null);async function b(j){y(!0),v(null);try{const S=await fetch(t,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:j})}),N=await S.json();if(!S.ok){v(N.error||`HTTP ${S.status}`),y(!1);return}u(n)}catch(S){v(S.message),y(!1);return}y(!1)}return p?s.jsx(bt,{label:`Loading ${r.toLowerCase()}…`}):h||!f?s.jsx(Rt,{error:h||`${r} is unavailable.`}):s.jsx(Ic,{initialContent:f.content,documentType:i,onSave:b,saving:g,error:k,title:r,description:o,onCancel:()=>u(n),helpTitle:a,helpBody:l})}function aC(){const{slug:e}=Kt(),t=gn(),n=e??"";return s.jsx(Mc,{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 qy(){const{slug:e,aslug:t,id:n}=Kt(),r=gn(),o=!!n,i=o?`/api/assignments/${n}/edit`:`/api/projects/${e}/assignments/${t}/edit`,a=o?`/api/assignments/${n}`:`/api/projects/${e}/assignments/${t}`,l=o?`/assignments/${n}`:`${r}/projects/${e}/assignments/${t}`;return s.jsx(Mc,{loadUrl:i,saveUrl:a,redirectTo:l,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 Gy(){const{slug:e,aslug:t,id:n}=Kt(),r=gn(),o=!!n,i=o?`/api/assignments/${n}/plan/edit`:`/api/projects/${e}/assignments/${t}/plan/edit`,a=o?`/api/assignments/${n}/plan`:`/api/projects/${e}/assignments/${t}/plan`,l=o?`/assignments/${n}?tab=plan`:`${r}/projects/${e}/assignments/${t}?tab=plan`;return s.jsx(Mc,{loadUrl:i,saveUrl:a,redirectTo:l,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 Yy(){const{slug:e,aslug:t,id:n}=Kt(),r=gn(),o=!!n,i=o?`/api/assignments/${n}/scratchpad/edit`:`/api/projects/${e}/assignments/${t}/scratchpad/edit`,a=o?`/api/assignments/${n}/scratchpad`:`/api/projects/${e}/assignments/${t}/scratchpad`,l=o?`/assignments/${n}?tab=scratchpad`:`${r}/projects/${e}/assignments/${t}?tab=scratchpad`;return s.jsx(Mc,{loadUrl:i,saveUrl:a,redirectTo:l,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 i3({loadUrl:e,saveUrl:t,redirectTo:n,title:r,description:o,helpTitle:i,helpBody:a}){const l=Wt(),{data:u,loading:f,error:p}=X2(e),[h,g]=m.useState(""),[y,k]=m.useState(""),[v,b]=m.useState(!1),[j,S]=m.useState(null);async function N(){b(!0),S(null);try{const C=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({title:h,body:y})}),P=await C.json();if(!C.ok){S(P.error||`HTTP ${C.status}`),b(!1);return}l(n)}catch(C){S(C.message),b(!1);return}b(!1)}return f?s.jsx(bt,{label:`Loading ${r.toLowerCase()}…`}):p||!u?s.jsx(Rt,{error:p||`${r} is unavailable.`}):s.jsxs("div",{className:"space-y-4",children:[s.jsx(We,{title:r,description:o,children:s.jsxs("div",{className:"space-y-4",children:[s.jsxs("label",{className:"block space-y-2",children:[s.jsx("span",{className:"text-sm font-medium text-foreground",children:"Entry title"}),s.jsx("input",{value:h,onChange:C=>g(C.target.value),placeholder:"Optional title",className:"editor-input"})]}),s.jsxs("label",{className:"block space-y-2",children:[s.jsx("span",{className:"text-sm font-medium text-foreground",children:"Entry body"}),s.jsx("textarea",{value:y,onChange:C=>k(C.target.value),className:"editor-textarea",spellCheck:!1})]}),j?s.jsx("p",{className:"rounded-md border border-error-foreground/30 bg-error px-4 py-3 text-sm text-error-foreground",children:j}):null,s.jsxs("div",{className:"flex flex-wrap gap-2",children:[s.jsx("button",{type:"button",onClick:()=>l(n),className:"shell-action",children:"Cancel"}),s.jsx("button",{type:"button",onClick:N,disabled:v||!y.trim(),className:"shell-action shell-action--cta disabled:cursor-not-allowed disabled:opacity-50",children:v?"Appending…":"Append Entry"})]})]})}),s.jsx(We,{title:"Current Document",children:s.jsx(vn,{content:u.content.replace(/^---[\s\S]*?---\n?/,""),emptyState:"No existing content."})})]})}function Xy(){const{slug:e,aslug:t,id:n}=Kt(),r=gn(),o=!!n,i=o?`/api/assignments/${n}/handoff/edit`:`/api/projects/${e}/assignments/${t}/handoff/edit`,a=o?`/api/assignments/${n}/handoff/entries`:`/api/projects/${e}/assignments/${t}/handoff/entries`,l=o?`/assignments/${n}?tab=handoff`:`${r}/projects/${e}/assignments/${t}?tab=handoff`;return s.jsx(i3,{loadUrl:i,saveUrl:a,redirectTo:l,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 Qy(){const{slug:e,aslug:t,id:n}=Kt(),r=gn(),o=!!n,i=o?`/api/assignments/${n}/decision-record/edit`:`/api/projects/${e}/assignments/${t}/decision-record/edit`,a=o?`/api/assignments/${n}/decision-record/entries`:`/api/projects/${e}/assignments/${t}/decision-record/entries`,l=o?`/assignments/${n}?tab=decisions`:`${r}/projects/${e}/assignments/${t}?tab=decisions`;return s.jsx(i3,{loadUrl:i,saveUrl:a,redirectTo:l,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 lC(){const{workspace:e}=Kt(),{data:t}=ro(),{data:n,loading:r,error:o,refetch:i}=tw(),{toast:a,showToast:l,dismissToast:u}=Qn(),[f,p]=m.useState(!1),[h,g]=m.useState(""),[y,k]=m.useState(!1),[v,b]=m.useState(null),[j,S]=m.useState(!1),N=sr();m.useEffect(()=>{const _=N.hash.match(/^#server-(.+)/);if(!_)return;const F=decodeURIComponent(_[1]),D=document.querySelector(`[data-server-name="${window.CSS.escape(F)}"]`);if(!D)return;D.scrollIntoView({block:"nearest"}),D.classList.add("ring-2","ring-primary/60");const W=window.setTimeout(()=>D.classList.remove("ring-2","ring-primary/60"),1500);return()=>window.clearTimeout(W)},[N.hash,n]);const C=(()=>{if(!e||!n)return(n==null?void 0:n.sessions)??[];if(!t)return[];const _=new Set(t.filter(F=>e==="_ungrouped"?F.workspace===null:F.workspace===e).map(F=>F.slug));return n.sessions.filter(F=>F.windows.some(D=>D.panes.some(W=>W.assignment&&W.assignment.project!==null&&_.has(W.assignment.project))))})();async function P(_){if(_.preventDefault(),!!h.trim())try{const F=await fetch("/api/servers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:h.trim()})});if(!F.ok){const D=await F.json().catch(()=>null);l((D==null?void 0:D.error)||`HTTP ${F.status}`,"error");return}g(""),p(!1),i(),l(`Tracking "${h.trim()}"`,"success")}catch(F){l(F instanceof Error?F.message:"Failed to register session","error")}}async function T(){k(!0);try{const _=await fetch("/api/servers/refresh",{method:"POST"});if(!_.ok){const F=await _.json().catch(()=>null);l((F==null?void 0:F.error)||`HTTP ${_.status}`,"error");return}i()}catch(_){l(_ instanceof Error?_.message:"Failed to refresh sessions","error")}finally{k(!1)}}async function R(_){S(!0);try{const F=await fetch(`/api/servers/${encodeURIComponent(_)}`,{method:"DELETE"});if(!F.ok){const D=await F.json().catch(()=>null);l((D==null?void 0:D.error)||`HTTP ${F.status}`,"error");return}b(null),i(),l(`Stopped tracking "${_}"`,"success")}catch(F){l(F instanceof Error?F.message:"Failed to remove session","error")}finally{S(!1)}}async function I(_){try{const F=await fetch(`/api/servers/${encodeURIComponent(_)}/refresh`,{method:"POST"});if(!F.ok){const D=await F.json().catch(()=>null);l((D==null?void 0:D.error)||`HTTP ${F.status}`,"error");return}i()}catch(F){l(F instanceof Error?F.message:"Failed to refresh session","error")}}return r?s.jsx(bt,{label:"Loading servers…"}):o?s.jsx(Rt,{error:o}):n?n.tmuxAvailable?s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[f?s.jsxs("form",{onSubmit:P,className:"flex items-center gap-2",children:[s.jsx("input",{type:"text",value:h,onChange:_=>g(_.target.value),placeholder:"tmux session name",className:"editor-input text-sm",autoFocus:!0}),s.jsx("button",{type:"submit",className:"shell-action",children:"Add"}),s.jsx("button",{type:"button",className:"shell-action",onClick:()=>p(!1),children:"Cancel"})]}):s.jsxs("button",{className:"shell-action",onClick:()=>p(!0),children:[s.jsx(Pt,{className:"h-3.5 w-3.5"}),"Track Session"]}),s.jsxs("button",{className:"shell-action",onClick:T,disabled:y,children:[s.jsx(j2,{className:`h-3.5 w-3.5 ${y?"animate-spin":""}`}),"Refresh All"]})]}),C.length===0?s.jsx(Nt,{title:"No sessions tracked",description:"Register a tmux session to start tracking your dev servers."}):s.jsx("div",{className:"mt-4 space-y-4",children:C.map(_=>s.jsx(FX,{session:_,onRefresh:()=>I(_.name),onRemove:()=>b(_.name),onRefetch:i},_.name))}),s.jsx(ss,{open:v!==null,title:"Stop tracking session?",description:`Remove "${v??""}" from tracked servers. This does not stop the tmux session itself.`,confirmLabel:"Stop Tracking",destructive:!0,loading:j,onOpenChange:_=>{!_&&!j&&b(null)},onConfirm:async()=>{v&&await R(v)}}),s.jsx(Xn,{toast:a,onDismiss:u})]}):s.jsx(s.Fragment,{children:s.jsxs("div",{className:"surface-panel mt-4 flex flex-col items-center gap-3 py-12 text-center",children:[s.jsx(Ml,{className:"h-10 w-10 text-muted-foreground/40"}),s.jsx("p",{className:"text-sm font-medium text-foreground",children:"tmux is not installed"}),s.jsxs("p",{className:"max-w-md text-sm text-muted-foreground",children:["Server tracking requires tmux. Install it with ",s.jsx("code",{className:"rounded bg-muted px-1.5 py-0.5 text-xs",children:"brew install tmux"})," to get started."]})]})}):null}function FX({session:e,onRefresh:t,onRemove:n,onRefetch:r}){return s.jsxs("div",{className:"surface-panel","data-server-name":e.name,children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx(Xv,{className:"h-4 w-4 text-muted-foreground"}),s.jsx("span",{className:"text-sm font-semibold text-foreground",children:e.name}),s.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"}),s.jsxs("span",{className:"text-xs text-muted-foreground",children:["Last refreshed: ",Cr(e.lastRefreshed)]})]}),s.jsxs("div",{className:"flex items-center gap-1",children:[s.jsx("button",{className:"shell-action",onClick:t,title:"Refresh","aria-label":"Refresh",children:s.jsx(j2,{className:"h-3.5 w-3.5"})}),s.jsx("button",{className:"shell-action",onClick:n,title:"Remove","aria-label":"Remove",children:s.jsx(mn,{className:"h-3.5 w-3.5"})})]})]}),e.alive&&e.windows.length>0&&s.jsx("div",{className:"mt-3 space-y-3",children:e.windows.map(o=>s.jsxs("div",{children:[s.jsxs("p",{className:"mb-1.5 text-xs font-medium uppercase tracking-wider text-muted-foreground",children:["Window ",o.index,": ",o.name]}),s.jsx("div",{className:"space-y-1.5",children:o.panes.map(i=>s.jsx(zX,{pane:i,sessionName:e.name,windowIndex:o.index,onRefetch:r},`${o.index}:${i.index}`))})]},o.index))}),!e.alive&&s.jsxs("div",{className:"mt-3 flex items-center gap-2 text-sm text-muted-foreground",children:[s.jsx(z4,{className:"h-4 w-4"}),s.jsx("span",{children:e.kind==="process"?"Process no longer running":"Session no longer exists"})]})]})}function zX({pane:e,sessionName:t,windowIndex:n,onRefetch:r}){const o=gn(),i=e.cwd.replace(/^\/Users\/[^/]+/,"~");return s.jsxs("div",{className:"flex items-center gap-3 rounded-md border border-border/40 bg-background/60 px-3 py-2 text-sm",children:[s.jsxs("span",{className:"shrink-0 font-mono text-xs text-muted-foreground/60",children:[":",e.index]}),s.jsx("span",{className:"shrink-0 rounded bg-muted/60 px-1.5 py-0.5 font-mono text-xs",children:e.command}),s.jsxs("span",{className:"inline-flex min-w-0 items-center gap-1.5 text-xs text-muted-foreground",children:[s.jsx("span",{className:"block min-w-0 truncate",title:e.cwd,children:i}),s.jsx(kr,{value:e.cwd})]}),e.branch&&s.jsxs("span",{className:"flex shrink-0 items-center gap-1 text-xs text-muted-foreground",children:[s.jsx(qv,{className:"h-3 w-3"}),e.branch,e.worktree&&s.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&&s.jsx("div",{className:"flex shrink-0 items-center gap-1.5",children:e.urls.map(a=>s.jsxs("a",{href:a,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:[a.replace("http://localhost:",":"),s.jsx(yc,{className:"h-2.5 w-2.5"})]},a))}),s.jsx("div",{className:"ml-auto shrink-0",children:e.assignment?s.jsxs($e,{to:e.assignment.project===null?`/assignments/${e.assignment.slug}`:`${o}/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:[s.jsx(T4,{className:"h-2.5 w-2.5"}),e.assignment.title,e.assignment.project===null?s.jsx("span",{className:"ml-1 rounded bg-muted px-1 py-0.5 text-[9px] uppercase tracking-wide text-muted-foreground",children:"Standalone"}):null]}):s.jsx("span",{className:"text-xs text-muted-foreground/40",children:"unlinked"})})]})}function a3(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 BX(e,t){const n=Date.parse(e),r=Math.floor((n-t)/1e3);return Number.isNaN(r)?"–":r<=0?"expired":a3(r)}function UX(e){switch(e){case"idle":return"border-success-foreground/30 bg-success text-success-foreground";case"leased":return"border-warning-foreground/30 bg-warning text-warning-foreground";case"retired":return"border-muted-foreground/30 bg-muted text-muted-foreground"}}function HX(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function cC(){const{data:e,loading:t,error:n,refetch:r}=Q2(),[o,i]=m.useState(()=>Date.now()),[a,l]=m.useState(null),[u,f]=m.useState(!1),{toast:p,showToast:h,dismissToast:g}=Qn();if(m.useEffect(()=>{const k=window.setInterval(()=>i(Date.now()),1e3);return()=>window.clearInterval(k)},[]),t)return s.jsx(bt,{label:"Loading inventories…"});if(n)return s.jsx(Rt,{title:"Could not load inventories",error:n,action:s.jsx("button",{type:"button",onClick:r,className:"rounded border px-3 py-1 text-sm",children:"Retry"})});if(!e||e.inventories.length===0)return s.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 y(){if(a){f(!0);try{const k=await fetch(`/api/leases/${encodeURIComponent(a.slug)}/force-release/${encodeURIComponent(a.lease.lease_id)}`,{method:"POST"});if(!k.ok){const v=await k.json().catch(()=>null);throw new Error((v==null?void 0:v.error)??`HTTP ${k.status}`)}r(),l(null)}catch(k){h(k instanceof Error?`Force release failed: ${k.message}`:"Force release failed","error")}finally{f(!1)}}}return s.jsxs("div",{className:"space-y-6",children:[s.jsx("div",{className:"flex items-start justify-between",children:s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-semibold",children:"Inventories"}),s.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."})]})}),s.jsx("div",{className:"grid gap-4",children:e.inventories.map(k=>s.jsx(VX,{detail:k,now:o,onForceRelease:v=>l({slug:k.inventory.slug,lease:v})},k.inventory.slug))}),s.jsx(ss,{open:a!==null,title:"Force release this lease?",description:a?`This will revoke lease ${a.lease.lease_id} and (if it's still the current holder) free member ${a.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:u,onConfirm:y,onOpenChange:k=>{k||l(null)}}),s.jsx(Xn,{toast:p,onDismiss:g})]})}function VX({detail:e,now:t,onForceRelease:n}){const{inventory:r,members:o,active_leases:i}=e,a=o.filter(u=>u.status==="idle").length,l=o.filter(u=>u.status==="leased").length;return s.jsxs("div",{className:"rounded-lg border bg-card p-4",children:[s.jsxs("div",{className:"flex items-start justify-between",children:[s.jsxs("div",{children:[s.jsxs("h2",{className:"text-lg font-semibold",children:[s.jsx(Vv,{className:"mr-2 inline h-4 w-4 text-muted-foreground"}),r.display_name??r.slug]}),s.jsxs("p",{className:"mt-0.5 text-xs text-muted-foreground",children:[s.jsx("code",{className:"font-mono",children:r.slug})," · kind=",r.kind," · default TTL=",a3(r.default_ttl_s)]})]}),s.jsx("div",{className:"text-right text-xs text-muted-foreground",children:s.jsxs("div",{children:[a," idle · ",l," leased · ",o.length," total"]})})]}),s.jsx("div",{className:"mt-4 grid gap-2 sm:grid-cols-2 lg:grid-cols-3",children:o.map(u=>s.jsx(WX,{member:u},u.member_id))}),i.length>0&&s.jsxs("div",{className:"mt-4",children:[s.jsx("h3",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Active leases"}),s.jsx("div",{className:"mt-2 space-y-2",children:i.map(u=>s.jsx(KX,{lease:u,now:t,onForceRelease:()=>n(u)},u.lease_id))})]})]})}function WX({member:e}){const t=HX(e.metadata_json);return s.jsxs("div",{className:"rounded-md border bg-muted/40 px-3 py-2 text-sm",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("span",{className:"font-mono",children:e.member_id}),s.jsx("span",{className:`rounded border px-1.5 py-0.5 text-xs ${UX(e.status)}`,children:e.status})]}),t&&s.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:Object.entries(t).map(([n,r])=>s.jsxs("div",{className:"truncate",children:[s.jsx("span",{className:"font-mono",children:n}),"=",s.jsx("span",{className:"font-mono",children:String(r)})]},n))})]})}function KX({lease:e,now:t,onForceRelease:n}){return s.jsxs("div",{className:"flex items-center justify-between rounded border bg-muted/20 px-3 py-2 text-sm",children:[s.jsx("div",{className:"min-w-0 flex-1",children:s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsxs("span",{className:"font-mono text-xs text-muted-foreground",children:[e.lease_id.slice(0,8),"…"]}),s.jsx("span",{className:"font-mono",children:e.member_id}),e.requested_for&&s.jsxs("span",{className:"text-xs text-muted-foreground",children:["for ",e.requested_for]})]})}),s.jsxs("div",{className:"ml-3 flex items-center gap-3",children:[s.jsxs("span",{className:"flex items-center gap-1 text-xs text-muted-foreground",children:[s.jsx(d4,{className:"h-3 w-3"}),BX(e.expires_at,t)]}),s.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:[s.jsx(H4,{className:"h-3 w-3"}),"Force release"]})]})]})}function qX(e){switch(e.kind){case"at":return`at ${e.at}`;case"in":return`in ${Math.round((e.durationMs??0)/1e3)}s`;case"cron":return`cron ${e.expr}${e.tz?` (${e.tz})`:""}`;case"after-reset":return`after ${e.provider} reset`;case"when-status":return`when ${e.assignmentId??"this"} → ${e.status}`;case"when-plan-lands":return`when ${e.assignmentId??"this"} plan lands`;default:return e.kind}}async function GX(){const e=await fetch("/api/schedules");if(!e.ok)throw new Error(`HTTP ${e.status}`);return(await e.json()).schedules}async function YX(e){const t=await fetch("/api/schedules",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}),n=await t.json().catch(()=>null);if(!t.ok)throw new Error((n==null?void 0:n.error)??`HTTP ${t.status}`);return n.schedule}async function XX(e){const t=await fetch(`/api/schedules/${encodeURIComponent(e)}/cancel`,{method:"POST"});if(!t.ok){const n=await t.json().catch(()=>null);throw new Error((n==null?void 0:n.error)??`HTTP ${t.status}`)}}function QX(){const[e,t]=m.useState(null),[n,r]=m.useState(!0),[o,i]=m.useState(null),a=m.useCallback(async()=>{try{t(await GX()),i(null)}catch(l){i(l instanceof Error?l.message:"Failed to fetch schedules")}finally{r(!1)}},[]);return m.useEffect(()=>{a()},[a]),Ti(l=>{l.type==="schedules-updated"&&a()}),{data:e,loading:n,error:o,refetch:a}}const JX=[{value:"cron",label:"Cron expression"},{value:"at",label:"At a timestamp"},{value:"in",label:"After a delay"},{value:"after-reset",label:"After quota reset"},{value:"when-status",label:"When assignment reaches status"},{value:"when-plan-lands",label:"When plan lands"}];function ZX({open:e,onOpenChange:t,onCreated:n}){const[r,o]=m.useState(""),[i,a]=m.useState("claude"),[l,u]=m.useState("cron"),[f,p]=m.useState(!0),[h,g]=m.useState(""),[y,k]=m.useState(""),[v,b]=m.useState("0 3 * * *"),[j,S]=m.useState(""),[N,C]=m.useState(""),[P,T]=m.useState("5"),[R,I]=m.useState("claude"),[_,F]=m.useState(""),[D,W]=m.useState("rolling-5h"),[V,$]=m.useState("ready_to_implement"),[O,U]=m.useState(""),[K,M]=m.useState(!1),[H,L]=m.useState(null);function z(){switch(l){case"cron":return{kind:l,expr:v,...j?{tz:j}:{}};case"at":return{kind:l,at:N};case"in":return{kind:l,durationMs:Math.round(Number(P)*36e5),anchorIso:new Date().toISOString()};case"after-reset":return{kind:l,provider:R,anchor:{windowStartIso:_||new Date().toISOString(),windowKind:D}};case"when-status":return{kind:l,status:V,...O?{assignmentId:O}:{}};case"when-plan-lands":return{kind:l,...O?{assignmentId:O}:{}}}}async function Y(){M(!0),L(null);try{const J={assignmentId:r.trim(),agentId:i.trim(),trigger:z(),unattended:f,terminalPreference:h.trim()||null,promptTemplate:y.trim()||null};if(!J.assignmentId)throw new Error("Assignment id is required");await YX(J),n(),t(!1)}catch(J){L(J instanceof Error?J.message:"Create failed")}finally{M(!1)}}const B="w-full rounded border bg-background px-2 py-1 text-sm",Q="block text-xs font-medium text-muted-foreground";return s.jsx(Ln,{open:e,onOpenChange:t,children:s.jsxs(Nn,{className:"max-h-[90vh] overflow-y-auto",children:[s.jsxs(or,{className:"flex-row items-center justify-between space-y-0",children:[s.jsx(Sn,{children:"New schedule"}),s.jsx(KT,{className:"text-muted-foreground transition hover:text-foreground","aria-label":"Close",children:s.jsx(jc,{className:"h-4 w-4"})})]}),s.jsxs("div",{className:"space-y-3",children:[s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Assignment id / slug"}),s.jsx("input",{autoFocus:!0,className:B,value:r,onChange:J=>o(J.target.value),placeholder:"scheduled-agents"})]}),s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Agent"}),s.jsx("input",{className:B,value:i,onChange:J=>a(J.target.value)})]}),s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Terminal (optional)"}),s.jsx("input",{className:B,value:h,onChange:J=>g(J.target.value),placeholder:"default"})]})]}),s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Trigger"}),s.jsx("select",{className:B,value:l,onChange:J=>u(J.target.value),children:JX.map(J=>s.jsx("option",{value:J.value,children:J.label},J.value))})]}),l==="cron"&&s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Cron expr"}),s.jsx("input",{className:B,value:v,onChange:J=>b(J.target.value)})]}),s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Timezone (optional)"}),s.jsx("input",{className:B,value:j,onChange:J=>S(J.target.value),placeholder:"local"})]})]}),l==="at"&&s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"ISO timestamp"}),s.jsx("input",{className:B,value:N,onChange:J=>C(J.target.value),placeholder:"2026-06-16T03:00:00Z"})]}),l==="in"&&s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Delay (hours)"}),s.jsx("input",{className:B,type:"number",value:P,onChange:J=>T(J.target.value)})]}),l==="after-reset"&&s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Provider"}),s.jsxs("select",{className:B,value:R,onChange:J=>I(J.target.value),children:[s.jsx("option",{value:"claude",children:"claude"}),s.jsx("option",{value:"codex",children:"codex"})]})]}),s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Window kind"}),s.jsxs("select",{className:B,value:D,onChange:J=>W(J.target.value),children:[s.jsx("option",{value:"rolling-5h",children:"rolling-5h"}),s.jsx("option",{value:"weekly",children:"weekly"})]})]}),s.jsxs("div",{className:"col-span-2",children:[s.jsx("label",{className:Q,children:"Window start (optional ISO)"}),s.jsx("input",{className:B,value:_,onChange:J=>F(J.target.value),placeholder:"now"})]})]}),l==="when-status"&&s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Status"}),s.jsx("input",{className:B,value:V,onChange:J=>$(J.target.value)})]}),s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Watch assignment (optional)"}),s.jsx("input",{className:B,value:O,onChange:J=>U(J.target.value),placeholder:"this assignment"})]})]}),l==="when-plan-lands"&&s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Watch assignment (optional)"}),s.jsx("input",{className:B,value:O,onChange:J=>U(J.target.value),placeholder:"this assignment"})]}),s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Prompt template (optional)"}),s.jsx("input",{className:B,value:y,onChange:J=>k(J.target.value),placeholder:"plan @assignment"})]}),s.jsxs("label",{className:"flex items-center gap-2 text-sm",children:[s.jsx("input",{type:"checkbox",checked:f,onChange:J=>p(J.target.checked)}),"Unattended (hard limits + kill switch apply)"]}),H&&s.jsx("p",{className:"text-sm text-destructive",children:H})]}),s.jsxs("div",{className:"mt-5 flex justify-end gap-2",children:[s.jsx("button",{type:"button",onClick:()=>t(!1),className:"rounded border px-3 py-1 text-sm",children:"Cancel"}),s.jsx("button",{type:"button",onClick:Y,disabled:K,className:"rounded bg-primary px-3 py-1 text-sm text-primary-foreground disabled:opacity-50",children:K?"Creating…":"Create"})]})]})})}const eQ=new Set(["completed","failed","launch_failed","cancelled","killed"]);function tQ(e){return e==="running"?"border-success-foreground/30 bg-success text-success-foreground":e==="eligible"?"border-info-foreground/30 bg-info text-info-foreground":e==="held"?"border-warning-foreground/30 bg-warning text-warning-foreground":e==="launch_failed"||e==="failed"||e==="killed"?"border-error-foreground/30 bg-error text-error-foreground":"border-muted-foreground/30 bg-muted text-muted-foreground"}function nQ(){const{data:e,loading:t,error:n,refetch:r}=QX(),[o,i]=m.useState(!1),{toast:a,showToast:l,dismissToast:u}=Qn();if(t)return s.jsx(bt,{label:"Loading schedules…"});if(n)return s.jsx(Rt,{title:"Could not load schedules",error:n,action:s.jsx("button",{type:"button",onClick:r,className:"rounded border px-3 py-1 text-sm",children:"Retry"})});async function f(p){try{await XX(p.id),r()}catch(h){l(h instanceof Error?`Cancel failed: ${h.message}`:"Cancel failed","error")}}return s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"flex items-start justify-between",children:[s.jsxs("div",{children:[s.jsx("h1",{className:"text-2xl font-semibold",children:"Schedules"}),s.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:"Run work on an assignment unattended — on a clock, after a quota reset, or when an assignment reaches a status. The scheduler tick is the sole authority; this page calls the same CLI verbs."})]}),s.jsxs("button",{type:"button",onClick:()=>i(!0),className:"shell-action shell-action--cta",children:[s.jsx(Pt,{className:"h-4 w-4"}),"New schedule"]})]}),!e||e.length===0?s.jsx(Nt,{title:"No schedules yet",description:"Create one above, or with `syntaur schedule create --assignment <id> --cron '0 3 * * *'`."}):s.jsx("div",{className:"grid gap-2",children:e.map(p=>s.jsxs("div",{className:"flex items-center justify-between rounded-lg border bg-card p-3",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(p2,{className:"h-4 w-4 text-muted-foreground"}),s.jsx("span",{className:"font-mono text-sm",children:p.assignmentId}),s.jsx("span",{className:`rounded border px-1.5 py-0.5 text-xs ${tQ(p.attempt.state)}`,children:p.attempt.state}),!p.unattended&&s.jsx("span",{className:"text-xs text-muted-foreground",children:"interactive"})]}),s.jsxs("div",{className:"mt-0.5 text-xs text-muted-foreground",children:[qX(p.trigger)," · agent ",s.jsx("code",{className:"font-mono",children:p.agentId}),p.attempt.lastError&&s.jsxs("span",{className:"text-destructive",children:[" · ",p.attempt.lastError]})]})]}),!eQ.has(p.attempt.state)&&s.jsxs("button",{type:"button",onClick:()=>f(p),className:"flex items-center gap-1 rounded border border-destructive/40 px-2 py-1 text-xs text-destructive hover:bg-destructive/10",children:[s.jsx(s4,{className:"h-3 w-3"}),"Cancel"]})]},p.id))}),s.jsx(Xn,{toast:a,onDismiss:u}),s.jsx(ZX,{open:o,onOpenChange:i,onCreated:r})]})}const rQ={"7d":"7 days","30d":"30 days","90d":"90 days",all:"All time",custom:"Custom"},pi="rounded-md border border-border/60 bg-background px-2 py-1 text-sm text-foreground focus:border-primary focus:outline-none focus:ring-2 focus:ring-ring/30";function uC(){const[e,t]=Ts(),n=qO(e),r=n.window??"30d",o=e.get("groupBy")==="assignment"?"assignment":"project",{data:i}=ro(),{data:a}=Ta(),{data:l}=J2(),[u,f]=m.useState(null),[p,h]=m.useState(!0),[g,y]=m.useState(null),[k,v]=m.useState(0);m.useEffect(()=>{if(!e.get("window")){const S=Rb({window:"30d",...n});o==="assignment"&&S.set("groupBy","assignment"),t(S,{replace:!0})}},[]);const b=q2({window:r,...n}).toString();m.useEffect(()=>{const S=new AbortController;h(!0),y(null);const N=b?`/api/usage?${b}&groupBy=${o}`:`/api/usage?groupBy=${o}`;return fetch(N,{signal:S.signal}).then(async C=>{if(!C.ok){const P=await C.json().catch(()=>({}));throw new Error(P.error??`HTTP ${C.status}`)}return C.json()}).then(C=>{f(C),h(!1)}).catch(C=>{C instanceof Error&&C.name==="AbortError"||(y(C instanceof Error?C.message:String(C)),h(!1))}),()=>S.abort()},[b,o,k]);function j(S,N=o){const C=Rb(S);N==="assignment"&&C.set("groupBy","assignment"),t(C)}return s.jsxs("div",{className:"p-6 max-w-7xl mx-auto",children:[s.jsxs("header",{className:"flex items-center gap-3 mb-6",children:[s.jsx(am,{className:"w-6 h-6 text-primary"}),s.jsx("h1",{className:"text-2xl font-semibold text-foreground",children:"Token usage"})]}),s.jsxs("div",{className:"flex flex-wrap gap-4 items-end mb-6 p-4 rounded-lg bg-card border border-border/60",children:[s.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[s.jsx("span",{className:"text-muted-foreground",children:"Window"}),s.jsx("select",{value:r,onChange:S=>j({...n,window:S.target.value}),className:pi,children:cm.map(S=>s.jsx("option",{value:S,children:rQ[S]},S))})]}),r==="custom"?s.jsxs(s.Fragment,{children:[s.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[s.jsx("span",{className:"text-muted-foreground",children:"Since"}),s.jsx("input",{type:"date",value:n.since??"",onChange:S=>j({...n,window:"custom",since:S.target.value||void 0}),className:pi})]}),s.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[s.jsx("span",{className:"text-muted-foreground",children:"Until"}),s.jsx("input",{type:"date",value:n.until??"",onChange:S=>j({...n,window:"custom",until:S.target.value||void 0}),className:pi})]})]}):null,s.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[s.jsx("span",{className:"text-muted-foreground",children:"Workspace"}),s.jsxs("select",{value:n.workspace??"",onChange:S=>j({...n,workspace:S.target.value||void 0,project:void 0}),className:pi,children:[s.jsx("option",{value:"",children:"All"}),a!=null&&a.hasUngrouped?s.jsx("option",{value:"_ungrouped",children:"(ungrouped)"}):null,((a==null?void 0:a.workspaces)??[]).map(S=>s.jsx("option",{value:S,children:S},S))]})]}),s.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[s.jsx("span",{className:"text-muted-foreground",children:"Project"}),s.jsxs("select",{value:n.project??"",onChange:S=>j({...n,project:S.target.value||void 0,workspace:void 0}),className:pi,children:[s.jsx("option",{value:"",children:"All"}),(i??[]).map(S=>s.jsx("option",{value:S.slug,children:S.slug},S.slug))]})]}),s.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[s.jsx("span",{className:"text-muted-foreground",children:"Model"}),s.jsxs("select",{value:n.model??"",onChange:S=>j({...n,model:S.target.value||void 0}),className:pi,children:[s.jsx("option",{value:"",children:"All"}),((l==null?void 0:l.models)??[]).map(S=>s.jsx("option",{value:S,children:S},S))]})]}),s.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[s.jsx("span",{className:"text-muted-foreground",children:"Tool"}),s.jsxs("select",{value:n.tool??"",onChange:S=>j({...n,tool:S.target.value||void 0}),className:pi,children:[s.jsx("option",{value:"",children:"All"}),((l==null?void 0:l.tools)??[]).map(S=>s.jsx("option",{value:S,children:S},S))]})]}),s.jsxs("label",{className:"flex flex-col gap-1 text-sm",children:[s.jsx("span",{className:"text-muted-foreground",children:"Group by"}),s.jsxs("select",{value:o,onChange:S=>j(n,S.target.value),className:pi,children:[s.jsx("option",{value:"project",children:"Project"}),s.jsx("option",{value:"assignment",children:"Assignment"})]})]})]}),p&&s.jsx(bt,{label:"Loading usage…"}),g&&s.jsx(Rt,{error:g,action:s.jsx("button",{type:"button",className:"shell-action",onClick:()=>v(S=>S+1),children:"Retry"})}),u&&!p&&!g&&s.jsxs(s.Fragment,{children:[s.jsxs("section",{className:"mb-8",children:[s.jsx("h2",{className:"text-lg font-medium mb-2",children:"Summary"}),u.summary.length===0?s.jsxs("p",{className:"text-muted-foreground text-sm",children:["No usage data for these filters. Run"," ",s.jsx("code",{className:"bg-muted px-1 py-0.5 rounded text-primary",children:"syntaur usage"})," ","to ingest the latest ccusage data."]}):s.jsxs("table",{className:"w-full text-sm border border-border/60 rounded overflow-hidden",children:[s.jsx("thead",{className:"bg-muted/50 text-muted-foreground",children:s.jsxs("tr",{children:[s.jsx("th",{className:"text-left px-3 py-2",children:"Project"}),o==="assignment"&&s.jsx("th",{className:"text-left px-3 py-2",children:"Assignment"}),s.jsx("th",{className:"text-right px-3 py-2",children:"Tokens"}),s.jsx("th",{className:"text-right px-3 py-2",children:"Cost"}),s.jsx("th",{className:"text-left px-3 py-2",children:"Last event"})]})}),s.jsx("tbody",{children:u.summary.map((S,N)=>s.jsxs("tr",{className:"border-t border-border/60",children:[s.jsx("td",{className:"px-3 py-2",children:S.projectSlug||"(unattributed)"}),o==="assignment"&&s.jsx("td",{className:"px-3 py-2",children:S.assignmentSlug||"(unattributed)"}),s.jsx("td",{className:"px-3 py-2 text-right tabular-nums",children:Jl(S.totalTokens)}),s.jsx("td",{className:"px-3 py-2 text-right tabular-nums",children:Zl(S.totalCost)}),s.jsx("td",{className:"px-3 py-2 text-muted-foreground",children:S.lastEventDay})]},N))})]})]}),s.jsxs("section",{children:[s.jsx("h2",{className:"text-lg font-medium mb-2",children:"Daily breakdown"}),u.daily.length===0?s.jsx("p",{className:"text-muted-foreground text-sm",children:"No daily rows."}):s.jsxs("table",{className:"w-full text-sm border border-border/60 rounded overflow-hidden",children:[s.jsx("thead",{className:"bg-muted/50 text-muted-foreground",children:s.jsxs("tr",{children:[s.jsx("th",{className:"text-left px-3 py-2",children:"Day"}),s.jsx("th",{className:"text-left px-3 py-2",children:"Tool"}),s.jsx("th",{className:"text-left px-3 py-2",children:"Model"}),s.jsx("th",{className:"text-left px-3 py-2",children:"Project"}),s.jsx("th",{className:"text-left px-3 py-2",children:"Assignment"}),s.jsx("th",{className:"text-right px-3 py-2",children:"Tokens"}),s.jsx("th",{className:"text-right px-3 py-2",children:"Cost"})]})}),s.jsx("tbody",{children:u.daily.map((S,N)=>s.jsxs("tr",{className:"border-t border-border/60",children:[s.jsx("td",{className:"px-3 py-2 tabular-nums",children:S.day}),s.jsx("td",{className:"px-3 py-2 text-muted-foreground",children:S.tool}),s.jsx("td",{className:"px-3 py-2 text-muted-foreground",children:S.model}),s.jsx("td",{className:"px-3 py-2",children:S.project_slug||"–"}),s.jsx("td",{className:"px-3 py-2",children:S.assignment_slug||"–"}),s.jsx("td",{className:"px-3 py-2 text-right tabular-nums",children:Jl(S.total_tokens)}),s.jsx("td",{className:"px-3 py-2 text-right tabular-nums",children:Zl(S.total_cost)})]},N))})]})]})]})]})}function dC(){const{workspace:e}=Kt(),{data:t}=ro(),{data:n,loading:r,error:o}=dm(),[i,a]=m.useState(""),[l,u]=m.useState(""),[f,p]=m.useState(""),[h,g]=m.useState("started_desc"),[y,k]=m.useState(0),[v,b]=m.useState(new Set),[j,S]=m.useState(!1),[N,C]=m.useState(null),[P,T]=m.useState(null),R=(n==null?void 0:n.sessions.some($=>$.status==="active"))??!1;m.useEffect(()=>{if(!R)return;const $=window.setInterval(()=>k(O=>O+1),3e4);return()=>window.clearInterval($)},[R]),m.useEffect(()=>{b($=>{if($.size===0)return $;const O=new Set((n==null?void 0:n.sessions.map(K=>K.sessionId))??[]),U=new Set([...$].filter(K=>O.has(K)));return U.size===$.size?$:U})},[n]);const I=m.useMemo(()=>{if(!n)return[];if(e&&!t)return[];const $=i.trim().toLowerCase();return[...n.sessions.filter(U=>{var H;if(e&&t){const L=((H=t.find(z=>z.slug===U.projectSlug))==null?void 0:H.workspace)??null;if(e==="_ungrouped"){if(L!==null)return!1}else if(L!==e)return!1}const K=oQ(U.started);return l&&(!K||K<l)||f&&(!K||K>f)?!1:$?[U.projectSlug??"",U.assignmentSlug??"",U.agent,U.sessionId,U.path,U.description??"",U.transcriptPath??""].join(" ").toLowerCase().includes($):!0})].sort((U,K)=>iQ(U,K,h))},[n,i,h,l,f,y,e,t]);function _($){b(O=>{const U=new Set(O);return U.has($)?U.delete($):U.add($),U})}function F(){v.size===I.length&&I.length>0?b(new Set):b(new Set(I.map($=>$.sessionId)))}async function D($){C(null),S(!0);try{const O=await fetch("/api/agent-sessions",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionIds:$})}),U=await O.json().catch(()=>null);if(!O.ok)throw new Error((U==null?void 0:U.error)||`HTTP ${O.status}`);b(K=>new Set([...K].filter(M=>!$.includes(M)))),T(null)}catch(O){C(O.message)}finally{S(!1)}}async function W($){try{const O=await fetch(`/api/agent-sessions/${encodeURIComponent($)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:"stopped"})});if(!O.ok){const U=await O.json().catch(()=>null);C((U==null?void 0:U.error)||`Failed to mark session stopped: HTTP ${O.status}`)}}catch(O){C(O.message)}}if(r)return s.jsx(bt,{label:"Loading agent sessions..."});if(o)return s.jsx(Rt,{error:o});if(!n)return null;const V=n.sessions.length>0;return s.jsxs(s.Fragment,{children:[s.jsxs(Qw,{children:[s.jsx(Vm,{value:i,onChange:a,placeholder:"Search project, assignment, agent, session ID, path, or description"}),s.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",s.jsx("input",{type:"date",value:l,onChange:$=>u($.target.value),className:"editor-input min-w-[150px]"})]}),s.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",s.jsx("input",{type:"date",value:f,onChange:$=>p($.target.value),className:"editor-input min-w-[150px]"})]}),s.jsxs("select",{value:h,onChange:$=>g($.target.value),className:"editor-input max-w-[200px]",children:[s.jsx("option",{value:"started_desc",children:"Newest first"}),s.jsx("option",{value:"started_asc",children:"Oldest first"}),s.jsx("option",{value:"assignment_asc",children:"Assignment A-Z"}),s.jsx("option",{value:"agent_asc",children:"Agent A-Z"})]})]}),N?s.jsx("div",{className:"mt-4 rounded-md border border-error-foreground/30 bg-error px-4 py-3 text-sm text-error-foreground",children:N}):null,v.size>0&&s.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:[s.jsxs("span",{className:"text-muted-foreground",children:[v.size," session",v.size!==1?"s":""," selected"]}),s.jsxs("button",{className:"shell-action text-destructive",onClick:()=>T({sessionIds:[...v],title:`Delete ${v.size} selected session${v.size===1?"":"s"}?`,description:"This removes the selected agent session records from the dashboard. This cannot be undone.",confirmLabel:v.size===1?"Delete Session":"Delete Sessions"}),disabled:j,children:[s.jsx(mn,{className:"mr-1 inline h-3.5 w-3.5"}),"Delete Selected"]}),s.jsx("button",{className:"shell-action",onClick:()=>b(new Set),children:"Clear Selection"})]}),V?I.length===0?s.jsx(Nt,{title:"No agent sessions match these filters",description:"Adjust the status, search term, date range, or sorting controls to show sessions again."}):s.jsx("div",{className:"surface-panel mt-4 overflow-x-auto",children:s.jsxs("table",{className:"w-full min-w-[960px] table-fixed text-sm lg:min-w-[1280px]",children:[s.jsx("thead",{children:s.jsxs("tr",{className:"border-b border-border/40 text-left text-xs uppercase tracking-wider text-muted-foreground",children:[s.jsx("th",{className:"w-[32px] pb-2 pr-3",children:s.jsx("button",{onClick:F,className:"text-muted-foreground hover:text-foreground",children:v.size===I.length&&I.length>0?s.jsx(ys,{className:"h-4 w-4"}):s.jsx(Qv,{className:"h-4 w-4"})})}),s.jsx("th",{className:"w-[140px] pb-2 pr-3",children:"Project"}),s.jsx("th",{className:"w-[160px] pb-2 pr-3",children:"Assignment"}),s.jsx("th",{className:"w-[200px] pb-2 pr-3",children:"Description"}),s.jsx("th",{className:"w-[110px] pb-2 pr-3",children:"Agent"}),s.jsx("th",{className:"hidden w-[130px] pb-2 pr-3 lg:table-cell",children:"Session ID"}),s.jsx("th",{className:"w-[140px] pb-2 pr-3",children:"Started"}),s.jsx("th",{className:"hidden w-[200px] pb-2 pr-3 lg:table-cell",children:"Path"}),s.jsx("th",{className:"hidden w-[200px] pb-2 pr-3 lg:table-cell",children:"Transcript"}),s.jsx("th",{className:"w-[40px] pb-2"})]})}),s.jsx("tbody",{children:I.map($=>s.jsx(sQ,{session:$,selected:v.has($.sessionId),onToggle:()=>_($.sessionId),onDelete:()=>T({sessionIds:[$.sessionId],title:`Delete session ${$.sessionId.slice(0,8)}...?`,description:`Remove this ${$.agent} session record${$.assignmentSlug?` for ${$.assignmentSlug}`:""}. This cannot be undone.`,confirmLabel:"Delete Session"}),onMarkStopped:W,onCopyError:C},$.sessionId))})]})}):s.jsx(Nt,{title:"No agent sessions",description:"No agent sessions have been registered yet. Use /grab-assignment or syntaur track-session to register one."}),s.jsx(ss,{open:P!==null,title:(P==null?void 0:P.title)??"Delete session?",description:(P==null?void 0:P.description)??"",confirmLabel:(P==null?void 0:P.confirmLabel)??"Delete",destructive:!0,loading:j,onOpenChange:$=>{$||T(null)},onConfirm:async()=>{P&&await D(P.sessionIds)}})]})}function sQ({session:e,selected:t,onToggle:n,onDelete:r,onMarkStopped:o,onCopyError:i}){const a=gn(),l=e.sessionId.length>12?e.sessionId.slice(0,8)+"...":e.sessionId,u=e.path?e.path.replace(/^\/Users\/[^/]+/,"~"):"—",f=e.transcriptPath?e.transcriptPath.replace(/^\/Users\/[^/]+/,"~"):"—";return s.jsxs("tr",{className:"border-b border-border/20 last:border-0",children:[s.jsx("td",{className:"py-2 pr-3",children:s.jsx("button",{onClick:n,className:"text-muted-foreground hover:text-foreground",children:t?s.jsx(ys,{className:"h-4 w-4"}):s.jsx(Qv,{className:"h-4 w-4"})})}),s.jsx("td",{className:"py-2 pr-3",children:e.projectSlug?s.jsx($e,{to:`${a}/projects/${e.projectSlug}`,className:"block truncate text-primary hover:underline",title:hn(e.projectSlug),children:hn(e.projectSlug)}):e.assignmentSlug?s.jsx("span",{className:"rounded bg-muted px-1.5 py-0.5 text-[10px] font-mono uppercase tracking-wide text-muted-foreground",children:"Standalone"}):s.jsx("span",{className:"text-muted-foreground",children:"—"})}),s.jsx("td",{className:"py-2 pr-3",children:e.projectSlug&&e.assignmentSlug?s.jsx($e,{to:`${a}/projects/${e.projectSlug}/assignments/${e.assignmentSlug}`,className:"block truncate text-primary hover:underline",title:hn(e.assignmentSlug),children:hn(e.assignmentSlug)}):e.assignmentSlug?s.jsx($e,{to:`/assignments/${e.assignmentSlug}`,className:"block truncate font-mono text-primary hover:underline",title:e.assignmentSlug,children:e.assignmentSlug}):s.jsx("span",{className:"text-muted-foreground",children:"—"})}),s.jsx("td",{className:"py-2 pr-3",children:e.description?s.jsx("div",{className:"truncate text-xs text-muted-foreground",title:e.description,children:e.description}):s.jsx("span",{className:"text-muted-foreground",children:"—"})}),s.jsx("td",{className:"py-2 pr-3",children:s.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[s.jsx(nm,{className:"h-3 w-3 shrink-0 text-muted-foreground"}),s.jsx("span",{className:"block min-w-0 truncate",children:e.agent})]})}),s.jsx("td",{className:"hidden py-2 pr-3 lg:table-cell",children:s.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[s.jsx("span",{className:"block min-w-0 truncate font-mono text-xs text-muted-foreground",title:e.sessionId,children:l}),s.jsx(kr,{value:e.sessionId}),s.jsx(P_,{sessionId:e.sessionId,disabled:!e.resumeSupported,disabledReason:"Resume not supported for this agent",onError:p=>i(p.message),onNotice:p=>i(p)})]})}),s.jsx("td",{className:"py-2 pr-3 text-xs text-muted-foreground",children:s.jsx("span",{className:"truncate block",children:Cr(e.started)})}),s.jsx("td",{className:"hidden py-2 pr-3 lg:table-cell",children:s.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[s.jsx("span",{className:"block min-w-0 truncate text-xs text-muted-foreground",title:e.path,children:u}),e.path&&s.jsx(kr,{value:e.path})]})}),s.jsx("td",{className:"hidden py-2 pr-3 lg:table-cell",children:e.transcriptPath?s.jsxs("span",{className:"flex min-w-0 items-center gap-1.5",children:[s.jsx("span",{className:"block min-w-0 truncate font-mono text-xs text-muted-foreground",title:e.transcriptPath,children:f}),s.jsx(kr,{value:e.transcriptPath})]}):s.jsx("span",{className:"text-muted-foreground",children:"—"})}),s.jsx("td",{className:"py-2",children:s.jsxs("div",{className:"flex items-center gap-1.5",children:[s.jsx(M_,{session:e,onMarkStopped:o}),s.jsx("button",{onClick:r,className:"text-muted-foreground hover:text-destructive",title:"Delete session",children:s.jsx(mn,{className:"h-3.5 w-3.5"})})]})})]})}function oQ(e){const t=new Date(e);if(Number.isNaN(t.getTime()))return null;const n=t.getFullYear(),r=String(t.getMonth()+1).padStart(2,"0"),o=String(t.getDate()).padStart(2,"0");return`${n}-${r}-${o}`}function Np(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 iQ(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 Np(e)-Np(t);case"duration_desc":return Np(t)-Np(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 aQ(){const{data:e,loading:t,error:n,refetch:r}=nw(),[o,i]=m.useState(""),[a,l]=m.useState(null),[u,f]=m.useState(null),[p,h]=m.useState(null),g=m.useMemo(()=>{if(!(e!=null&&e.playbooks))return[];if(!o.trim())return e.playbooks;const v=o.toLowerCase();return e.playbooks.filter(b=>b.name.toLowerCase().includes(v)||b.description.toLowerCase().includes(v)||b.slug.toLowerCase().includes(v)||b.tags.some(j=>j.toLowerCase().includes(v)))},[e,o]);async function y(v,b,j){if(v.preventDefault(),v.stopPropagation(),!a){l(b);try{const S=j?"disable":"enable",N=await fetch(`/api/playbooks/${encodeURIComponent(b)}/${S}`,{method:"POST"});if(!N.ok){const C=await N.json().catch(()=>({}));throw new Error(C.error||`Failed to ${S} playbook`)}r()}catch(S){console.error(S),alert(S instanceof Error?S.message:"Failed to update playbook")}finally{l(null)}}}async function k(){if(u){h(u.slug);try{const v=await fetch(`/api/playbooks/${encodeURIComponent(u.slug)}`,{method:"DELETE"});if(!v.ok){const b=await v.json().catch(()=>({}));throw new Error(b.error||"Failed to delete playbook")}f(null),r()}catch(v){console.error(v),alert(v instanceof Error?v.message:"Failed to delete playbook")}finally{h(null)}}}return t?s.jsx(bt,{label:"Loading playbooks..."}):n?s.jsx(Rt,{error:n}):s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{className:"flex items-center justify-between gap-4",children:[s.jsxs("div",{className:"relative flex-1 max-w-sm",children:[s.jsx(Ei,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),s.jsx("input",{type:"text",placeholder:"Search playbooks...",value:o,onChange:v=>i(v.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"})]}),s.jsxs($e,{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:[s.jsx(Pt,{className:"h-4 w-4"}),"Create Playbook"]})]}),s.jsxs($e,{to:"/playbooks/manifest",className:"surface-panel group flex items-center gap-3 p-3 transition hover:border-foreground/20",children:[s.jsx(x2,{className:"h-5 w-5 shrink-0 text-muted-foreground"}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("h3",{className:"text-sm font-semibold text-foreground group-hover:underline",children:"Playbook Manifest"}),s.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"})]}),s.jsxs("p",{className:"mt-0.5 text-xs text-muted-foreground",children:["Index of all playbooks with descriptions. Include ",s.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."]})]})]}),g.length===0?s.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?s.jsxs($e,{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:[s.jsx(Pt,{className:"h-4 w-4"}),"Create Playbook"]}):void 0}):s.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:g.map(v=>{const b=a===v.slug,j=[{key:"delete",label:"Delete",icon:mn,destructive:!0,onSelect:()=>f({slug:v.slug,name:v.name})}];return s.jsxs("div",{className:`surface-panel relative flex flex-col gap-2 p-4 transition hover:border-foreground/20 ${v.enabled?"":"opacity-75"}`,children:[s.jsx("div",{className:"absolute right-3 top-3 z-10",children:s.jsx(Kw,{items:j})}),s.jsxs($e,{to:`/playbooks/${v.slug}`,className:"group flex flex-col gap-2",children:[s.jsxs("div",{className:"flex items-start gap-2",children:[s.jsx(f2,{className:"mt-0.5 h-4 w-4 shrink-0 text-muted-foreground"}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx("h3",{className:"text-sm font-semibold text-foreground group-hover:underline",children:v.name}),v.description?s.jsx("p",{className:"mt-1 text-xs leading-5 text-muted-foreground line-clamp-2",children:v.description}):null]})]}),s.jsx("div",{className:"flex items-center gap-2 pt-1 pr-20",children:s.jsxs("div",{className:"flex flex-wrap gap-1",children:[v.tags.slice(0,3).map(S=>s.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:[s.jsx(k2,{className:"h-2.5 w-2.5"}),S]},S)),v.tags.length>3?s.jsxs("span",{className:"text-[10px] text-muted-foreground/60",children:["+",v.tags.length-3]}):null]})})]}),s.jsx("button",{type:"button",role:"switch","aria-checked":v.enabled,"aria-label":v.enabled?"Disable playbook":"Enable playbook",onClick:S=>y(S,v.slug,v.enabled),disabled:b,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 ${v.enabled?"border-status-completed-foreground/60 bg-status-completed-foreground/80":"border-foreground/40 bg-foreground/15"}`,children:s.jsx("span",{className:`block h-4 w-4 rounded-full shadow-sm transition-transform ${v.enabled?"translate-x-[18px] bg-background":"translate-x-[2px] bg-foreground/70"}`})})]},v.slug)})}),s.jsx(ss,{open:u!==null,title:"Delete playbook?",description:u?`"${u.name}" will be removed from disk and the playbook manifest will be regenerated. This cannot be undone.`:"",confirmLabel:"Delete",destructive:!0,loading:p!==null,onConfirm:k,onOpenChange:v=>{v||f(null)}})]})}function lQ(){const{slug:e}=Kt(),t=Wt(),{data:n,loading:r,error:o,refetch:i}=s5(e),[a,l]=m.useState(!1),[u,f]=m.useState(!1),[p,h]=m.useState(!1),[g,y]=m.useState(!1),[k,v]=m.useState(""),[b,j]=m.useState(!1),[S,N]=m.useState(null),C=e==="manifest";m.useEffect(()=>{g&&(v(e??""),N(null))},[g,e]);const P=Mr(k),T=P.length>0&&zp(P)&&P!=="manifest",R=P!==e;async function I(){if(!(!e||!T||!R)){j(!0),N(null);try{const D=await fetch(`/api/playbooks/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({newSlug:P})});if(!D.ok){const W=await D.json().catch(()=>({}));throw new Error(W.error||"Failed to rename playbook")}y(!1),t(`/playbooks/${P}`)}catch(D){N(D instanceof Error?D.message:"Failed to rename playbook")}finally{j(!1)}}}async function _(){if(e){f(!0);try{(await fetch(`/api/playbooks/${e}`,{method:"DELETE"})).ok&&t("/playbooks")}finally{f(!1)}}}async function F(){if(!(!e||!n)){h(!0);try{const D=n.enabled?"disable":"enable",W=await fetch(`/api/playbooks/${encodeURIComponent(e)}/${D}`,{method:"POST"});if(!W.ok){const V=await W.json().catch(()=>({}));throw new Error(V.error||`Failed to ${D} playbook`)}i()}catch(D){console.error(D),alert(D instanceof Error?D.message:"Failed to update playbook")}finally{h(!1)}}}return r?s.jsx(bt,{label:"Loading playbook..."}):o?s.jsx(Rt,{error:o}):n?s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"flex items-start justify-between gap-4",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("h2",{className:"text-lg font-semibold text-foreground",children:C?"Playbook Manifest":n.name}),C?s.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]}),!C&&n.description?s.jsx("p",{className:"mt-1 text-sm text-muted-foreground",children:n.description}):null,C?s.jsxs("p",{className:"mt-1 text-sm text-muted-foreground",children:["This file is rebuilt automatically when playbooks are added or removed. Include"," ",s.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,!C&&n.whenToUse?s.jsxs("p",{className:"mt-2 text-sm text-muted-foreground italic",children:["When to use: ",n.whenToUse]}):null,s.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-3 text-xs text-muted-foreground",children:[s.jsxs("span",{children:["Created ",Cr(n.created)]}),s.jsxs("span",{children:["Updated ",Cr(n.updated)]})]}),n.tags.length>0?s.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:n.tags.map(D=>s.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:[s.jsx(k2,{className:"h-3 w-3"}),D]},D))}):null]}),C?null:s.jsxs("div",{className:"flex shrink-0 items-center gap-3",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:n.enabled?"Enabled":"Disabled"}),s.jsx("button",{type:"button",role:"switch","aria-checked":n.enabled,"aria-label":n.enabled?"Disable playbook":"Enable playbook",onClick:F,disabled:p,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:s.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"}`})})]}),s.jsxs($e,{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:[s.jsx(vc,{className:"h-3 w-3"}),"Edit"]}),s.jsxs("button",{type:"button",onClick:()=>y(!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:[s.jsx(K4,{className:"h-3 w-3"}),"Rename"]}),a?s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{type:"button",onClick:_,disabled:u,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:u?"Deleting...":"Confirm"}),s.jsx("button",{type:"button",onClick:()=>l(!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"})]}):s.jsxs("button",{type:"button",onClick:()=>l(!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:[s.jsx(mn,{className:"h-3 w-3"}),"Delete"]})]})]}),s.jsx("div",{className:"surface-panel p-4",children:s.jsx(vn,{content:n.body})}),s.jsx(Ln,{open:g,onOpenChange:D=>b?void 0:y(D),children:s.jsxs(Nn,{children:[s.jsxs(or,{children:[s.jsx(Sn,{children:"Rename playbook"}),s.jsx(ns,{children:"The slug changes both the file name and the canonical slug stored in frontmatter. The URL will update on save."})]}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("label",{htmlFor:"rename-slug-input",className:"block text-xs font-medium text-muted-foreground",children:"New slug"}),s.jsx("input",{id:"rename-slug-input",type:"text",autoFocus:!0,value:k,onChange:D=>v(D.target.value),disabled:b,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"}),k&&P!==k?s.jsxs("p",{className:"text-xs text-muted-foreground",children:["Will be normalized to ",s.jsx("code",{className:"rounded bg-muted px-1 py-0.5",children:P||"—"})]}):null,k&&!T?s.jsx("p",{className:"text-xs text-destructive",children:'Slugs must be lowercase, hyphen-separated, with no special characters, and cannot be "manifest".'}):null]}),S?s.jsx("p",{className:"text-sm text-destructive",role:"alert",children:S}):null,s.jsxs(Wr,{children:[s.jsx("button",{type:"button",onClick:()=>y(!1),disabled:b,className:"shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50",children:"Cancel"}),s.jsx("button",{type:"button",onClick:I,disabled:b||!T||!R,className:"shell-action mt-0 shell-action--cta disabled:cursor-not-allowed disabled:opacity-50",children:b?"Renaming…":"Rename"})]})]})})]}):null}function cQ(){const e=Wt(),[t,n]=m.useState(null),[r,o]=m.useState(!0),[i,a]=m.useState(!1),[l,u]=m.useState(null);m.useEffect(()=>{fetch("/api/playbooks/template/new").then(p=>p.json()).then(p=>{n(p.content),o(!1)}).catch(p=>{u(p.message),o(!1)})},[]);async function f(p){a(!0),u(null);try{const h=await fetch("/api/playbooks",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:p})}),g=await h.json();if(!h.ok){u(g.error||`HTTP ${h.status}`),a(!1);return}e(`/playbooks/${g.slug}`)}catch(h){u(h.message),a(!1);return}a(!1)}return r?s.jsx(bt,{label:"Loading playbook template..."}):l&&!t?s.jsx(Rt,{error:l}):s.jsx(Ic,{initialContent:t||"",documentType:"playbook",mode:"create",onSave:f,saving:i,error:l,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 uQ(){const{slug:e}=Kt(),t=Wt(),[n,r]=m.useState(null),[o,i]=m.useState(!0),[a,l]=m.useState(!1),[u,f]=m.useState(null);m.useEffect(()=>{e&&fetch(`/api/playbooks/${e}/edit`).then(h=>h.json()).then(h=>{r(h.content),i(!1)}).catch(h=>{f(h.message),i(!1)})},[e]);async function p(h){if(e){l(!0),f(null);try{const g=await fetch(`/api/playbooks/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:h})}),y=await g.json();if(!g.ok){f(y.error||`HTTP ${g.status}`),l(!1);return}t(`/playbooks/${e}`)}catch(g){f(g.message),l(!1);return}l(!1)}}return o?s.jsx(bt,{label:"Loading playbook..."}):u&&!n?s.jsx(Rt,{error:u}):s.jsx(Ic,{initialContent:n||"",documentType:"playbook",mode:"edit",onSave:p,saving:a,error:u,title:"Edit Playbook",onCancel:()=>t(`/playbooks/${e}`)})}function dQ(){const{data:e,loading:t,error:n}=o5(),[r,o]=m.useState(""),[i,a]=m.useState("all"),[l,u]=m.useState("all"),[f,p]=m.useState("all"),h=(e==null?void 0:e.memories)??[],g=m.useMemo(()=>Array.from(new Set(h.map(b=>b.projectSlug))).sort(),[h]),y=m.useMemo(()=>Array.from(new Set(h.map(b=>b.scope).filter(Boolean))).sort(),[h]),k=m.useMemo(()=>Array.from(new Set(h.map(b=>b.source).filter(Boolean))).sort(),[h]),v=m.useMemo(()=>h.filter(b=>{if(i!=="all"&&b.projectSlug!==i||l!=="all"&&b.scope!==l||f!=="all"&&b.source!==f)return!1;if(r.trim()){const j=r.toLowerCase();if(!b.name.toLowerCase().includes(j)&&!b.slug.toLowerCase().includes(j)&&!b.projectTitle.toLowerCase().includes(j))return!1}return!0}),[h,r,i,l,f]);return t?s.jsx(bt,{label:"Loading memories…"}):n?s.jsx(Rt,{error:n}):s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsxs("div",{className:"relative",children:[s.jsx(Ei,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),s.jsx("input",{type:"text",placeholder:"Search memories…",value:r,onChange:b=>o(b.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"})]}),s.jsxs("select",{value:i,onChange:b=>a(b.target.value),className:"editor-input max-w-[170px]",children:[s.jsx("option",{value:"all",children:"All projects"}),g.map(b=>s.jsx("option",{value:b,children:b},b))]}),s.jsxs("select",{value:l,onChange:b=>u(b.target.value),className:"editor-input max-w-[140px]",children:[s.jsx("option",{value:"all",children:"All scopes"}),y.map(b=>s.jsx("option",{value:b,children:b},b))]}),s.jsxs("select",{value:f,onChange:b=>p(b.target.value),className:"editor-input max-w-[140px]",children:[s.jsx("option",{value:"all",children:"All sources"}),k.map(b=>s.jsx("option",{value:b,children:b},b))]})]}),s.jsxs($e,{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:[s.jsx(Pt,{className:"h-4 w-4"}),"New Memory"]})]}),v.length===0?s.jsx(Nt,{title:h.length===0?"No memories yet":"No memories match these filters",description:h.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:h.length===0?s.jsxs($e,{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:[s.jsx(Pt,{className:"h-4 w-4"}),"New Memory"]}):void 0}):s.jsx("div",{className:"surface-panel overflow-x-auto",children:s.jsxs("table",{className:"w-full min-w-[820px] text-left text-sm",children:[s.jsx("thead",{children:s.jsxs("tr",{className:"border-b border-border/60 text-muted-foreground",children:[s.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Name"}),s.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Project"}),s.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Scope"}),s.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Source"}),s.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"# Related"}),s.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Updated"})]})}),s.jsx("tbody",{children:v.map(b=>s.jsxs("tr",{className:"border-b border-border/50 last:border-0",children:[s.jsx("td",{className:"px-3 py-3",children:s.jsx($e,{to:`/projects/${b.projectSlug}/memories/${b.slug}`,className:"font-semibold text-foreground hover:text-primary",children:b.name||b.slug})}),s.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:s.jsx($e,{to:`/projects/${b.projectSlug}`,className:"hover:text-foreground hover:underline",children:b.projectTitle})}),s.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:b.scope||"—"}),s.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:b.source||"—"}),s.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:b.relatedAssignments.length}),s.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:Yn(b.updated)})]},`${b.projectSlug}/${b.slug}`))})]})})]})}function fQ(){const{slug:e,itemSlug:t}=Kt(),n=Wt(),{data:r,loading:o,error:i}=i5(e,t),[a,l]=m.useState(!1),[u,f]=m.useState(!1);async function p(){if(!(!e||!t)){f(!0);try{(await fetch(`/api/projects/${e}/memories/${t}`,{method:"DELETE"})).ok&&n("/memories")}finally{f(!1)}}}return o?s.jsx(bt,{label:"Loading memory…"}):i?s.jsx(Rt,{error:i}):r?s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"flex items-start justify-between gap-4",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsx("h2",{className:"text-lg font-semibold text-foreground",children:r.name||r.slug}),s.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-2 text-xs text-muted-foreground",children:[s.jsx($e,{to:`/projects/${r.projectSlug}`,className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5 hover:text-foreground",children:r.projectTitle}),r.scope?s.jsxs("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5",children:["Scope: ",r.scope]}):null,r.source?s.jsxs("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5",children:["Source: ",r.source]}):null,r.sourceAssignment?s.jsxs("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5",children:["From: ",r.sourceAssignment]}):null,s.jsxs("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5",children:[r.relatedAssignments.length," related"]})]}),s.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-3 text-xs text-muted-foreground",children:[s.jsxs("span",{children:["Created ",Cr(r.created)]}),s.jsxs("span",{children:["Updated ",Cr(r.updated)]})]}),r.tags&&r.tags.length>0?s.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:r.tags.map(h=>s.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:h},h))}):null]}),s.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[s.jsxs($e,{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:[s.jsx(vc,{className:"h-3 w-3"}),"Edit"]}),a?s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{type:"button",onClick:p,disabled:u,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:u?"Deleting…":"Confirm"}),s.jsx("button",{type:"button",onClick:()=>l(!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"})]}):s.jsxs("button",{type:"button",onClick:()=>l(!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:[s.jsx(mn,{className:"h-3 w-3"}),"Delete"]})]})]}),s.jsx("div",{className:"surface-panel p-4",children:s.jsx(vn,{content:r.body})})]}):null}function pQ(){const e=Wt(),[t]=Ts(),n=t.get("project"),{data:r,loading:o,error:i}=ro(),[a,l]=m.useState(n??""),[u,f]=m.useState(""),[p,h]=m.useState(""),[g,y]=m.useState(!1),[k,v]=m.useState(null);m.useEffect(()=>{!a&&r&&r.length>0&&l(n??r[0].slug)},[r,n,a]);async function b(j){if(j.preventDefault(),!(!a||!u.trim())){y(!0),v(null);try{const S=await fetch(`/api/projects/${a}/memories`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:u.trim(),body:p||void 0})}),N=await S.json();if(!S.ok){v(N.error||`HTTP ${S.status}`),y(!1);return}e(`/projects/${N.projectSlug}/memories/${N.slug}`)}catch(S){v(S.message),y(!1)}}}return o?s.jsx(bt,{label:"Loading projects…"}):i?s.jsx(Rt,{error:i}):!r||r.length===0?s.jsx(Rt,{error:"You need at least one project before you can create a memory. Create a project from the sidebar."}):s.jsxs("form",{onSubmit:b,className:"space-y-5",children:[s.jsxs("div",{children:[s.jsx("h2",{className:"text-lg font-semibold text-foreground",children:"New Memory"}),s.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."})]}),s.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[s.jsxs("div",{className:"space-y-1.5",children:[s.jsx("label",{htmlFor:"project",className:"block text-sm font-medium text-foreground",children:"Project"}),s.jsx("select",{id:"project",value:a,onChange:j=>l(j.target.value),className:"editor-input",required:!0,children:r.map(j=>s.jsx("option",{value:j.slug,children:j.title},j.slug))})]}),s.jsxs("div",{className:"space-y-1.5",children:[s.jsx("label",{htmlFor:"name",className:"block text-sm font-medium text-foreground",children:"Name"}),s.jsx("input",{id:"name",type:"text",value:u,onChange:j=>f(j.target.value),placeholder:"e.g. PostgreSQL connection pooling",className:"editor-input",required:!0,autoFocus:!0}),s.jsx("p",{className:"text-xs text-muted-foreground/80",children:"The slug is auto-derived from the name. Letters, digits, and hyphens."})]})]}),s.jsxs("div",{className:"space-y-1.5",children:[s.jsx("label",{htmlFor:"body",className:"block text-sm font-medium text-foreground",children:"Body"}),s.jsx("textarea",{id:"body",value:p,onChange:j=>h(j.target.value),rows:14,placeholder:"Write the memory body in markdown. Leave blank to start from a template.",className:"editor-input font-mono text-sm"})]}),k?s.jsx("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:k}):null,s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{type:"submit",disabled:g||!u.trim()||!a,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:g?"Creating…":"Create Memory"}),s.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 hQ(){const{slug:e,itemSlug:t}=Kt();return s.jsx(Mc,{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 mQ(){const{data:e,loading:t,error:n}=a5(),[r,o]=m.useState(""),[i,a]=m.useState("all"),[l,u]=m.useState("all"),[f,p]=m.useState("all"),h=(e==null?void 0:e.resources)??[],g=m.useMemo(()=>Array.from(new Set(h.map(b=>b.projectSlug))).sort(),[h]),y=m.useMemo(()=>Array.from(new Set(h.map(b=>b.category).filter(Boolean))).sort(),[h]),k=m.useMemo(()=>Array.from(new Set(h.map(b=>b.source).filter(Boolean))).sort(),[h]),v=m.useMemo(()=>h.filter(b=>{if(i!=="all"&&b.projectSlug!==i||l!=="all"&&b.category!==l||f!=="all"&&b.source!==f)return!1;if(r.trim()){const j=r.toLowerCase();if(!b.name.toLowerCase().includes(j)&&!b.slug.toLowerCase().includes(j)&&!b.projectTitle.toLowerCase().includes(j))return!1}return!0}),[h,r,i,l,f]);return t?s.jsx(bt,{label:"Loading resources…"}):n?s.jsx(Rt,{error:n}):s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsxs("div",{className:"relative",children:[s.jsx(Ei,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),s.jsx("input",{type:"text",placeholder:"Search resources…",value:r,onChange:b=>o(b.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"})]}),s.jsxs("select",{value:i,onChange:b=>a(b.target.value),className:"editor-input max-w-[170px]",children:[s.jsx("option",{value:"all",children:"All projects"}),g.map(b=>s.jsx("option",{value:b,children:b},b))]}),s.jsxs("select",{value:l,onChange:b=>u(b.target.value),className:"editor-input max-w-[160px]",children:[s.jsx("option",{value:"all",children:"All categories"}),y.map(b=>s.jsx("option",{value:b,children:b},b))]}),s.jsxs("select",{value:f,onChange:b=>p(b.target.value),className:"editor-input max-w-[140px]",children:[s.jsx("option",{value:"all",children:"All sources"}),k.map(b=>s.jsx("option",{value:b,children:b},b))]})]}),s.jsxs($e,{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:[s.jsx(Pt,{className:"h-4 w-4"}),"New Resource"]})]}),v.length===0?s.jsx(Nt,{title:h.length===0?"No resources yet":"No resources match these filters",description:h.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:h.length===0?s.jsxs($e,{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:[s.jsx(Pt,{className:"h-4 w-4"}),"New Resource"]}):void 0}):s.jsx("div",{className:"surface-panel overflow-x-auto",children:s.jsxs("table",{className:"w-full min-w-[820px] text-left text-sm",children:[s.jsx("thead",{children:s.jsxs("tr",{className:"border-b border-border/60 text-muted-foreground",children:[s.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Name"}),s.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Project"}),s.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Category"}),s.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Source"}),s.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"# Related"}),s.jsx("th",{className:"px-3 pb-3 pt-3 font-medium",children:"Updated"})]})}),s.jsx("tbody",{children:v.map(b=>s.jsxs("tr",{className:"border-b border-border/50 last:border-0",children:[s.jsx("td",{className:"px-3 py-3",children:s.jsx($e,{to:`/projects/${b.projectSlug}/resources/${b.slug}`,className:"font-semibold text-foreground hover:text-primary",children:b.name||b.slug})}),s.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:s.jsx($e,{to:`/projects/${b.projectSlug}`,className:"hover:text-foreground hover:underline",children:b.projectTitle})}),s.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:b.category||"—"}),s.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:b.source||"—"}),s.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:b.relatedAssignments.length}),s.jsx("td",{className:"px-3 py-3 text-muted-foreground",children:Yn(b.updated)})]},`${b.projectSlug}/${b.slug}`))})]})})]})}function gQ(){const{slug:e,itemSlug:t}=Kt(),n=Wt(),{data:r,loading:o,error:i}=l5(e,t),[a,l]=m.useState(!1),[u,f]=m.useState(!1);async function p(){if(!(!e||!t)){f(!0);try{(await fetch(`/api/projects/${e}/resources/${t}`,{method:"DELETE"})).ok&&n("/resources")}finally{f(!1)}}}return o?s.jsx(bt,{label:"Loading resource…"}):i?s.jsx(Rt,{error:i}):r?s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:"flex items-start justify-between gap-4",children:[s.jsxs("div",{className:"min-w-0",children:[s.jsx("h2",{className:"text-lg font-semibold text-foreground",children:r.name||r.slug}),s.jsxs("div",{className:"mt-2 flex flex-wrap items-center gap-2 text-xs text-muted-foreground",children:[s.jsx($e,{to:`/projects/${r.projectSlug}`,className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5 hover:text-foreground",children:r.projectTitle}),r.category?s.jsxs("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5",children:["Category: ",r.category]}):null,r.source?s.jsxs("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5",children:["Source: ",r.source]}):null,s.jsxs("span",{className:"rounded-full border border-border/60 bg-muted/50 px-2 py-0.5",children:[r.relatedAssignments.length," related"]})]}),s.jsxs("div",{className:"mt-3 flex flex-wrap items-center gap-3 text-xs text-muted-foreground",children:[s.jsxs("span",{children:["Created ",Cr(r.created)]}),s.jsxs("span",{children:["Updated ",Cr(r.updated)]})]})]}),s.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[s.jsxs($e,{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:[s.jsx(vc,{className:"h-3 w-3"}),"Edit"]}),a?s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{type:"button",onClick:p,disabled:u,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:u?"Deleting…":"Confirm"}),s.jsx("button",{type:"button",onClick:()=>l(!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"})]}):s.jsxs("button",{type:"button",onClick:()=>l(!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:[s.jsx(mn,{className:"h-3 w-3"}),"Delete"]})]})]}),s.jsx("div",{className:"surface-panel p-4",children:s.jsx(vn,{content:r.body})})]}):null}function xQ(){const e=Wt(),[t]=Ts(),n=t.get("project"),{data:r,loading:o,error:i}=ro(),[a,l]=m.useState(n??""),[u,f]=m.useState(""),[p,h]=m.useState(""),[g,y]=m.useState(!1),[k,v]=m.useState(null);m.useEffect(()=>{!a&&r&&r.length>0&&l(n??r[0].slug)},[r,n,a]);async function b(j){if(j.preventDefault(),!(!a||!u.trim())){y(!0),v(null);try{const S=await fetch(`/api/projects/${a}/resources`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:u.trim(),body:p||void 0})}),N=await S.json();if(!S.ok){v(N.error||`HTTP ${S.status}`),y(!1);return}e(`/projects/${N.projectSlug}/resources/${N.slug}`)}catch(S){v(S.message),y(!1)}}}return o?s.jsx(bt,{label:"Loading projects…"}):i?s.jsx(Rt,{error:i}):!r||r.length===0?s.jsx(Rt,{error:"You need at least one project before you can create a resource. Create a project from the sidebar."}):s.jsxs("form",{onSubmit:b,className:"space-y-5",children:[s.jsxs("div",{children:[s.jsx("h2",{className:"text-lg font-semibold text-foreground",children:"New Resource"}),s.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."})]}),s.jsxs("div",{className:"grid gap-4 sm:grid-cols-2",children:[s.jsxs("div",{className:"space-y-1.5",children:[s.jsx("label",{htmlFor:"project",className:"block text-sm font-medium text-foreground",children:"Project"}),s.jsx("select",{id:"project",value:a,onChange:j=>l(j.target.value),className:"editor-input",required:!0,children:r.map(j=>s.jsx("option",{value:j.slug,children:j.title},j.slug))})]}),s.jsxs("div",{className:"space-y-1.5",children:[s.jsx("label",{htmlFor:"name",className:"block text-sm font-medium text-foreground",children:"Name"}),s.jsx("input",{id:"name",type:"text",value:u,onChange:j=>f(j.target.value),placeholder:"e.g. Auth Requirements",className:"editor-input",required:!0,autoFocus:!0}),s.jsx("p",{className:"text-xs text-muted-foreground/80",children:"The slug is auto-derived from the name. Letters, digits, and hyphens."})]})]}),s.jsxs("div",{className:"space-y-1.5",children:[s.jsx("label",{htmlFor:"body",className:"block text-sm font-medium text-foreground",children:"Body"}),s.jsx("textarea",{id:"body",value:p,onChange:j=>h(j.target.value),rows:14,placeholder:"Write the resource body in markdown. Leave blank to start from a template.",className:"editor-input font-mono text-sm"})]}),k?s.jsx("div",{className:"rounded-md border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive",children:k}):null,s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{type:"submit",disabled:g||!u.trim()||!a,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:g?"Creating…":"Create Resource"}),s.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 yQ(){const{slug:e,itemSlug:t}=Kt();return s.jsx(Mc,{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."})}const yv=["projects","playbooks","todos","servers","config"];function bQ(e){const t=new Set;for(const n of e.split(",").map(r=>r.trim()))yv.includes(n)&&t.add(n);return t}function fC(e){return e?Cr(e):"never"}function vQ(){const[e,t]=m.useState(!0),[n,r]=m.useState(null),[o,i]=m.useState(""),[a,l]=m.useState(new Set(yv)),[u,f]=m.useState(!1),[p,h]=m.useState(!1),[g,y]=m.useState(null),[k,v]=m.useState(null),[b,j]=m.useState(!1),S=m.useCallback(async()=>{try{const I=await fetch("/api/backup");if(!I.ok)throw new Error(`HTTP ${I.status}`);const _=await I.json();r(_),i(_.repo??""),l(bQ(_.categories)),f(!1)}catch(I){v({type:"error",message:`Failed to load backup config: ${I instanceof Error?I.message:String(I)}`})}finally{t(!1)}},[]);m.useEffect(()=>{S()},[S]);function N(I){l(_=>{const F=new Set(_);return F.has(I)?F.delete(I):F.add(I),F}),f(!0)}async function C(){h(!0),v(null);try{const I=Array.from(a),_=await fetch("/api/backup/config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({repo:o.trim()||null,categories:I})}),F=await _.json();if(!_.ok)throw new Error(F.error||`HTTP ${_.status}`);r(F),f(!1),v({type:"success",message:"Backup configuration saved."})}catch(I){v({type:"error",message:`Save failed: ${I instanceof Error?I.message:String(I)}`})}finally{h(!1)}}async function P(){y("push"),v(null);try{const I=await fetch("/api/backup/push",{method:"POST"}),_=await I.json();if(!I.ok||_.success===!1)throw new Error(_.error||_.message||`HTTP ${I.status}`);v({type:"success",message:_.message||"Backup complete."}),await S()}catch(I){v({type:"error",message:`Backup failed: ${I instanceof Error?I.message:String(I)}`})}finally{y(null)}}async function T(){y("pull"),v(null);try{const I=await fetch("/api/backup/pull",{method:"POST"}),_=await I.json();if(!I.ok||_.success===!1)throw new Error(_.error||_.message||`HTTP ${I.status}`);v({type:"success",message:_.message||"Restore complete."}),await S()}catch(I){v({type:"error",message:`Restore failed: ${I instanceof Error?I.message:String(I)}`})}finally{y(null)}}if(e)return s.jsx(We,{title:"GitHub Backup",description:"Back up Syntaur files to a GitHub repository",children:s.jsx("p",{className:"text-sm text-muted-foreground",children:"Loading..."})});const R=!!o.trim()&&a.size>0&&!g&&!u;return s.jsxs(We,{title:"GitHub Backup",description:"Back up Syntaur files to a GitHub repository and restore from it",children:[s.jsxs("div",{className:"space-y-4",children:[k&&s.jsx("div",{className:`rounded-lg border px-4 py-2 text-sm ${k.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:k.message}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("label",{className:"text-xs font-medium uppercase tracking-wider text-muted-foreground",children:"Repository URL"}),s.jsx("input",{type:"text",value:o,onChange:I=>{i(I.target.value),f(!0)},placeholder:"git@github.com:you/syntaur-backup.git",className:"editor-input w-full text-sm"}),s.jsxs("p",{className:"text-xs text-muted-foreground",children:["SSH or HTTPS URL. Requires ",s.jsx("code",{className:"rounded bg-muted px-1",children:"git"})," installed and credentials configured locally."]})]}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("label",{className:"text-xs font-medium uppercase tracking-wider text-muted-foreground",children:"Categories to back up"}),s.jsx("div",{className:"flex flex-wrap gap-2",children:yv.map(I=>{const _=a.has(I);return s.jsxs("button",{type:"button",onClick:()=>N(I),className:`shell-action text-xs ${_?"bg-primary/10 text-primary hover:bg-primary/20":"bg-muted/30 text-muted-foreground hover:bg-muted/60"}`,children:[s.jsx("span",{className:`mr-1 inline-block h-2 w-2 rounded-full ${_?"bg-primary":"bg-muted-foreground/40"}`}),I]},I)})})]}),s.jsxs("div",{className:"grid grid-cols-1 gap-2 text-xs text-muted-foreground sm:grid-cols-2",children:[s.jsxs("div",{children:[s.jsx("span",{className:"font-medium text-foreground",children:"Last backup: "}),fC((n==null?void 0:n.lastBackup)??null)]}),s.jsxs("div",{children:[s.jsx("span",{className:"font-medium text-foreground",children:"Last restore: "}),fC((n==null?void 0:n.lastRestore)??null)]}),(n==null?void 0:n.locked)&&s.jsx("div",{className:"sm:col-span-2 text-warning-foreground",children:"⚠ A backup operation is in progress or the lock file is stale."})]}),s.jsxs("div",{className:"flex flex-wrap items-center gap-3 pt-2",children:[s.jsxs("button",{className:"shell-action bg-primary/10 text-primary hover:bg-primary/20",onClick:C,disabled:p||!u,children:[s.jsx(lm,{className:"h-3.5 w-3.5"}),p?"Saving...":"Save Config"]}),s.jsxs("button",{className:"shell-action",onClick:P,disabled:!R,title:R?"Back up now":u?"Save config first":"Set repo and pick categories",children:[s.jsx(q4,{className:"h-3.5 w-3.5"}),g==="push"?"Backing up...":"Back Up Now"]}),s.jsxs("button",{className:"shell-action",onClick:()=>j(!0),disabled:!R,title:R?"Restore from backup":u?"Save config first":"Set repo and pick categories",children:[s.jsx(m4,{className:"h-3.5 w-3.5"}),g==="pull"?"Restoring...":"Restore"]}),u&&s.jsx("span",{className:"text-xs text-muted-foreground",children:"Unsaved changes"})]}),s.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:[s.jsx(f4,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),s.jsxs("span",{children:["Restore never overwrites ",s.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."]})]})]}),s.jsx(ss,{open:b,title:"Restore from GitHub?",description:"Restore will overwrite local files for the selected categories with the contents of the GitHub repo. This cannot be undone. Continue?",confirmLabel:"Restore",destructive:!0,loading:g==="pull",onOpenChange:I=>{!I&&g!=="pull"&&j(!1)},onConfirm:async()=>{await T(),j(!1)}})]})}function wQ(){const{customBindings:e,userBindings:t,actionEntries:n,findConflict:r,bindAction:o,unbindAction:i}=Ai(),[a,l]=m.useState(null),[u,f]=m.useState(null),[p,h]=m.useState(!1),g=Object.values(t).some(N=>typeof N=="string"&&N.length>0);function y(N,C){f({type:N,message:C}),setTimeout(()=>f(null),2500)}function k(N){l({kind:N,combo:null,conflict:null,saving:!1,error:null})}function v(N){if(!a||N.key==="Escape")return;if(N.key==="Enter"&&a.combo){N.preventDefault(),b();return}if(N.key==="Enter")return;N.preventDefault(),N.stopPropagation();const C=Z2(N.nativeEvent);if(!C)return;const P=r(C,a.kind);l({...a,combo:C,conflict:P,error:null})}async function b(){var N;if(a!=null&&a.combo){if((N=a.conflict)!=null&&N.description){l({...a,error:`Reserved: ${a.conflict.description}`});return}l({...a,saving:!0,error:null});try{await o(a.kind,a.combo),l(null),y("success",`Bound ${wu[a.kind]}`)}catch(C){l({...a,saving:!1,error:C instanceof Error?C.message:"Failed to save"})}}}async function j(N){try{await i(N),y("success",`Cleared ${wu[N]} binding`)}catch(C){y("error",C instanceof Error?C.message:"Failed to clear binding")}}async function S(){if(!p){h(!0);try{await zz(),y("success","All hotkey bindings cleared")}catch(N){y("error",N instanceof Error?N.message:"Failed to reset bindings")}finally{h(!1)}}}return s.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:g?s.jsxs("button",{className:"shell-action text-xs",onClick:()=>void S(),disabled:p,children:[s.jsx(vs,{className:"h-3 w-3"}),"Restore defaults"]}):void 0,children:[u?s.jsx("div",{className:`mb-3 rounded-md border px-3 py-1.5 text-xs ${u.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:u.message}):null,s.jsx("ul",{className:"space-y-2",children:fm.map(N=>{var I,_;const C=n.find(F=>F.bindableKind===N),P=e[N],T=typeof t[N]=="string"&&!!t[N],R=(a==null?void 0:a.kind)===N;return s.jsxs("li",{className:"flex flex-wrap items-center gap-3 rounded-md border border-border/40 bg-background/60 px-3 py-2",children:[s.jsx(Nb,{className:"h-4 w-4 text-muted-foreground","aria-hidden":"true"}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx("div",{className:"text-sm text-foreground",children:(C==null?void 0:C.title)??wu[N]}),C!=null&&C.subtitle?s.jsx("div",{className:"text-xs text-muted-foreground",children:C.subtitle}):null]}),P?s.jsxs("div",{className:"flex shrink-0 items-center gap-1.5",children:[s.jsx("kbd",{className:"rounded border border-border/70 bg-muted px-2 py-0.5 font-mono text-xs text-foreground",children:Zs(P)}),s.jsx("span",{className:`text-[10px] uppercase tracking-wide ${T?"text-primary":"text-muted-foreground"}`,children:T?"custom":"default"})]}):s.jsx("span",{className:"shrink-0 text-xs text-muted-foreground",children:"unbound"}),s.jsxs("div",{className:"flex items-center gap-1.5",children:[s.jsx("button",{type:"button",className:"shell-action text-xs",onClick:()=>k(N),children:P?"Rebind":"Bind"}),T?s.jsxs("button",{type:"button",className:"shell-action text-xs",onClick:()=>void j(N),"aria-label":`Restore default ${wu[N]} binding`,children:[s.jsx(jc,{className:"h-3 w-3"}),"Restore default"]}):null]}),R?s.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:v,onBlur:()=>{(a==null?void 0:a.kind)===N&&!a.saving&&l(null)},children:a!=null&&a.combo?s.jsxs("div",{className:"space-y-2",children:[s.jsx("div",{className:"text-base font-semibold tracking-wide text-foreground",children:Zs(a.combo)}),(I=a.conflict)!=null&&I.description?s.jsxs("div",{className:"text-xs text-destructive",children:["Reserved: ",a.conflict.description]}):(_=a.conflict)!=null&&_.kind?s.jsxs("div",{className:"text-xs text-amber-500 dark:text-amber-400",children:['Already bound to "',wu[a.conflict.kind],'". Press Enter to overwrite.']}):s.jsx("div",{className:"text-xs text-muted-foreground",children:"Press Enter to save, Esc to cancel, any other key to retry."}),a.error?s.jsx("div",{className:"text-xs text-destructive",children:a.error}):null]}):s.jsx("div",{className:"text-xs text-muted-foreground",children:"Press the key combination you want to bind…"})}):null]},N)})})]})}const jQ={kanban:"Kanban",list:"List",table:"Table"},kQ={comfortable:"Comfortable",compact:"Compact"},NQ={title:"Title",status:"Status",priority:"Priority",assignee:"Assignee",dependencies:"Dependencies",created:"Created",updated:"Updated"},SQ={asc:"Ascending",desc:"Descending"};function CQ(){const e=jY(),t=e.global,[n,r]=m.useState(!1),[o,i]=m.useState(null);function a(f,p){i({type:f,message:p}),setTimeout(()=>i(null),2e3)}async function l(f,p){if(t[f]!==p){r(!0);try{await C_({[f]:p}),a("success","Saved")}catch(h){a("error",h instanceof Error?h.message:"Failed to save")}finally{r(!1)}}}async function u(){if(e.custom){r(!0);try{await kY(),a("success","Reset to defaults")}catch(f){a("error",f instanceof Error?f.message:"Failed to reset")}finally{r(!1)}}}return s.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?s.jsxs("button",{type:"button",className:"shell-action text-xs",onClick:u,disabled:n,children:[s.jsx(vs,{className:"h-3 w-3"}),"Reset"]}):void 0,children:[o&&s.jsx("div",{className:`mb-3 rounded-md border px-3 py-1.5 text-xs ${o.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:o.message}),s.jsxs("dl",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2",children:[s.jsxs("div",{children:[s.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Default view"}),s.jsx("dd",{className:"mt-1.5 inline-flex rounded-md border border-border/60 p-0.5",children:vw.map(f=>s.jsx("button",{type:"button",onClick:()=>l("defaultView",f),disabled:n,"aria-pressed":t.defaultView===f,className:`px-3 py-1 text-xs ${t.defaultView===f?"rounded bg-foreground text-background":"text-muted-foreground hover:text-foreground"}`,children:jQ[f]},f))})]}),s.jsxs("div",{children:[s.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Density"}),s.jsx("dd",{className:"mt-1.5 inline-flex rounded-md border border-border/60 p-0.5",children:K6.map(f=>s.jsx("button",{type:"button",onClick:()=>l("density",f),disabled:n,"aria-pressed":t.density===f,className:`px-3 py-1 text-xs ${t.density===f?"rounded bg-foreground text-background":"text-muted-foreground hover:text-foreground"}`,children:kQ[f]},f))})]}),s.jsxs("div",{children:[s.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Sort by"}),s.jsx("dd",{className:"mt-1.5",children:s.jsx("select",{value:t.sortField,onChange:f=>l("sortField",f.target.value),disabled:n,className:"editor-input max-w-[220px]",children:GT.map(f=>s.jsx("option",{value:f,children:NQ[f]??f},f))})})]}),s.jsxs("div",{children:[s.jsx("dt",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:"Direction"}),s.jsx("dd",{className:"mt-1.5 inline-flex rounded-md border border-border/60 p-0.5",children:W6.map(f=>s.jsx("button",{type:"button",onClick:()=>l("sortDirection",f),disabled:n,"aria-pressed":t.sortDirection===f,className:`px-3 py-1 text-xs ${t.sortDirection===f?"rounded bg-foreground text-background":"text-muted-foreground hover:text-foreground"}`,children:SQ[f]},f))})]})]})]})}function EQ({value:e,onChange:t,knownSlugs:n,rows:r=2,placeholder:o,className:i,wrapperClassName:a,singleLine:l,"aria-label":u}){const[f,p]=m.useState(0),[h,g]=m.useState(0),[y,k]=m.useState(!1),v=m.useRef(null),b=W_(e,f),j=b?K_(b.partial,n):[],S=!y&&j.length>0,N=Math.min(h,Math.max(0,j.length-1)),C=_=>l?_.replace(/[\r\n]+/g," "):_;function P(_){t(C(_.target.value)),p(_.target.selectionStart??_.target.value.length),g(0),k(!1)}function T(_){p(_.currentTarget.selectionStart??e.length)}function R(_){if(!b||!_)return;const F=q_(e,b,_);t(C(F.text)),p(F.caret),g(0),k(!0),requestAnimationFrame(()=>{const D=v.current;D&&(D.focus(),D.setSelectionRange(F.caret,F.caret))})}function I(_){S&&(_.key==="ArrowDown"?(_.preventDefault(),g(F=>Math.min(F+1,j.length-1))):_.key==="ArrowUp"?(_.preventDefault(),g(F=>Math.max(F-1,0))):_.key==="Enter"||_.key==="Tab"?(_.preventDefault(),R(j[N])):_.key==="Escape"&&(_.preventDefault(),k(!0)))}return s.jsxs("div",{className:we("relative",a),children:[s.jsx("textarea",{ref:v,value:e,rows:r,placeholder:o,"aria-label":u,onChange:P,onKeyDown:I,onKeyUp:T,onClick:T,className:i}),S&&s.jsx("ul",{role:"listbox",className:"absolute left-0 right-0 top-full z-30 mt-1 max-h-48 overflow-auto rounded-md border border-border/70 bg-background py-1 shadow-lg",children:j.map((_,F)=>s.jsx("li",{children:s.jsxs("button",{type:"button",role:"option","aria-selected":F===N,onMouseDown:D=>{D.preventDefault(),R(_)},className:we("flex w-full items-center gap-2 px-2.5 py-1.5 text-left font-mono text-sm transition-colors hover:bg-accent",F===N&&"bg-accent"),children:[s.jsx("span",{className:"text-muted-foreground",children:"@"}),s.jsx("span",{className:"truncate",children:_})]})},_))})]})}const TQ={first:"first",last:"last",none:"none"};function l3(){return`row_${Math.random().toString(36).slice(2,10)}_${Date.now().toString(36)}`}function Ru(e){return e.map(t=>({rowKey:l3(),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,model:t.model??"",playbook:t.playbook??"",launchPrompt:t.launchPrompt??"",fieldErrors:{}}))}function RQ(e){return e.map(t=>{const n={id:t.id,label:t.label,command:t.command},r=t.argsText.split(/[,\s]+/).filter(Boolean);return r.length>0&&(n.args=r),t.promptArgPosition!=="first"&&(n.promptArgPosition=t.promptArgPosition),t.resolveFromShellAliases&&(n.resolveFromShellAliases=!0),t.default&&(n.default=!0),t.model.trim()&&(n.model=t.model.trim()),t.playbook.trim()&&(n.playbook=t.playbook.trim()),t.launchPrompt.trim()&&(n.launchPrompt=t.launchPrompt),n})}function AQ(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,r)=>({...n,default:t===-1?r===0:r===t}))}function PQ(e,t){return!t||t.length===0?e:e.map((n,r)=>{const o={};for(const i of t){if(i.index!==void 0){i.index===r&&(o[i.field]=i.message);continue}if(i.id!==void 0){i.id===n.id&&(o[i.field]=i.message);continue}o[i.field]=i.message}return{...n,fieldErrors:o}})}function _Q(e){return e.map(t=>Object.keys(t.fieldErrors).length===0?t:{...t,fieldErrors:{}})}function DQ(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++){const r=e[n],o=t[n];if(r.id!==o.id||r.label!==o.label||r.command!==o.command||r.argsText!==o.argsText||r.promptArgPosition!==o.promptArgPosition||r.resolveFromShellAliases!==o.resolveFromShellAliases||r.default!==o.default||r.model!==o.model||r.playbook!==o.playbook||r.launchPrompt!==o.launchPrompt)return!1}return!0}function $Q({row:e,index:t,canRemove:n,playbooks:r,onPatch:o,onSetDefault:i,onRemove:a}){const{attributes:l,listeners:u,setNodeRef:f,setActivatorNodeRef:p,transform:h,transition:g,isDragging:y}=Pm({id:e.rowKey}),k={transform:js.Transform.toString(h),transition:g,zIndex:y?50:void 0,position:y?"relative":void 0};function v(C){const P={label:C};if(e.autoSlugFromLabel){const T=Mr(C);T&&HY.test(T)?P.id=T:P.id=`agent-${t+1}`}o(P)}function b(C){o({id:C,autoSlugFromLabel:!1})}const j=C=>e.fieldErrors[C]?"border-error-foreground/60":"",S=m.useMemo(()=>r.map(C=>C.slug),[r]),N=m.useMemo(()=>G_(e.launchPrompt,S),[e.launchPrompt,S]);return s.jsxs("div",{ref:f,style:k,className:`surface-panel space-y-2 px-3 py-2 ${y?"opacity-60 shadow-lg":""}`,children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{ref:p,...l,...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:s.jsx(bc,{className:"h-4 w-4"})}),s.jsxs("label",{className:"inline-flex items-center gap-1.5 text-xs text-muted-foreground",children:[s.jsx("input",{type:"radio",name:"agents-default",checked:e.default,onChange:i,className:"h-3 w-3 cursor-pointer accent-foreground"}),"Default"]}),s.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[s.jsx("span",{className:"text-[10px] font-mono uppercase tracking-wide text-muted-foreground/70",children:"id"}),e.idEditable?s.jsx("input",{type:"text",value:e.id,onChange:C=>b(C.target.value),className:`editor-input w-32 font-mono text-xs ${j("id")}`,"aria-label":"Agent id"}):s.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:e.id}),s.jsx("button",{type:"button",onClick:a,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:s.jsx(mn,{className:"h-3.5 w-3.5"})})]})]}),e.fieldErrors.id&&s.jsx("p",{className:"ml-7 text-[11px] text-error-foreground",children:e.fieldErrors.id}),s.jsxs("div",{className:"ml-7 grid grid-cols-1 gap-2 sm:grid-cols-2",children:[s.jsxs("div",{children:[s.jsx("label",{className:"text-[11px] uppercase tracking-wide text-muted-foreground/80",children:"Label"}),s.jsx("input",{type:"text",value:e.label,onChange:C=>v(C.target.value),className:`editor-input mt-0.5 w-full ${j("label")}`}),e.fieldErrors.label&&s.jsx("p",{className:"mt-0.5 text-[11px] text-error-foreground",children:e.fieldErrors.label})]}),s.jsxs("div",{children:[s.jsx("label",{className:"text-[11px] uppercase tracking-wide text-muted-foreground/80",children:"Command"}),s.jsx("input",{type:"text",value:e.command,placeholder:"claude or /usr/local/bin/claude",onChange:C=>o({command:C.target.value}),className:`editor-input mt-0.5 w-full font-mono ${j("command")}`}),e.fieldErrors.command&&s.jsx("p",{className:"mt-0.5 text-[11px] text-error-foreground",children:e.fieldErrors.command})]}),s.jsxs("div",{children:[s.jsx("label",{className:"text-[11px] uppercase tracking-wide text-muted-foreground/80",children:"Args (comma- or space-separated)"}),s.jsx("input",{type:"text",value:e.argsText,placeholder:"--dangerously-skip-permissions",onChange:C=>o({argsText:C.target.value}),className:`editor-input mt-0.5 w-full font-mono ${j("args")}`}),e.fieldErrors.args&&s.jsx("p",{className:"mt-0.5 text-[11px] text-error-foreground",children:e.fieldErrors.args})]}),s.jsxs("div",{children:[s.jsx("label",{className:"text-[11px] uppercase tracking-wide text-muted-foreground/80",children:"Prompt arg position"}),s.jsx("select",{value:e.promptArgPosition,onChange:C=>o({promptArgPosition:C.target.value}),className:`editor-input mt-0.5 w-full ${j("promptArgPosition")}`,children:z_.map(C=>s.jsx("option",{value:C,children:TQ[C]},C))}),e.fieldErrors.promptArgPosition&&s.jsx("p",{className:"mt-0.5 text-[11px] text-error-foreground",children:e.fieldErrors.promptArgPosition})]}),s.jsxs("div",{children:[s.jsx("label",{className:"text-[11px] uppercase tracking-wide text-muted-foreground/80",children:"Model"}),s.jsx("input",{type:"text",value:e.model,placeholder:"opus (optional)",onChange:C=>o({model:C.target.value}),className:`editor-input mt-0.5 w-full font-mono ${j("model")}`}),e.fieldErrors.model&&s.jsx("p",{className:"mt-0.5 text-[11px] text-error-foreground",children:e.fieldErrors.model})]}),s.jsxs("div",{className:"col-span-full",children:[s.jsx("label",{className:"text-[11px] uppercase tracking-wide text-muted-foreground/80",children:"Launch prompt"}),s.jsx(EQ,{value:e.launchPrompt,onChange:C=>o({launchPrompt:C}),knownSlugs:S,singleLine:!0,rows:5,placeholder:"@assignment Run @<playbook> end-to-end. (optional)",wrapperClassName:"mt-0.5",className:`editor-input w-full resize-y font-mono leading-relaxed min-h-[6rem] ${j("launchPrompt")}`,"aria-label":"Launch prompt"}),e.fieldErrors.launchPrompt&&s.jsx("p",{className:"mt-0.5 text-[11px] text-error-foreground",children:e.fieldErrors.launchPrompt}),N.length>0&&!e.fieldErrors.launchPrompt&&s.jsx("ul",{className:"mt-0.5 space-y-0.5 text-[11px] text-error-foreground",children:N.map(C=>s.jsx("li",{children:C},C))})]}),s.jsxs("label",{className:"col-span-full inline-flex items-center gap-1.5 text-xs text-muted-foreground",children:[s.jsx("input",{type:"checkbox",checked:e.resolveFromShellAliases,onChange:C=>o({resolveFromShellAliases:C.target.checked}),className:"h-3.5 w-3.5 cursor-pointer accent-foreground"}),"Resolve from shell aliases (look up ",s.jsx("code",{className:"font-mono",children:"command"})," in your interactive shell before launching)"]})]})]})}function IQ(){const e=H_(),t=nw(),n=m.useMemo(()=>{var F;return(((F=t.data)==null?void 0:F.playbooks)??[]).filter(D=>D.enabled).map(D=>({slug:D.slug,name:D.name}))},[t.data]),[r,o]=m.useState(()=>Ru(e.agents)),[i,a]=m.useState(()=>Ru(e.agents)),[l,u]=m.useState(!1),[f,p]=m.useState(null),[h,g]=m.useState(!1),[y,k]=m.useState(null);m.useEffect(()=>{const F=Ru(e.agents);o(F),a(F),p(null)},[e.agents]);const v=m.useMemo(()=>!DQ(r,i),[r,i]),b=Nm(ki(Tc,{activationConstraint:{distance:8}}),ki(Ec));function j(F,D){k({type:F,message:D}),setTimeout(()=>k(null),2500)}function S(F,D){o(W=>W.map(V=>V.rowKey===F?{...V,...D,fieldErrors:MQ(V.fieldErrors,D)}:V))}function N(F){o(D=>D.map(W=>({...W,default:W.rowKey===F})))}function C(){o(F=>{const D=new Set(F.map(K=>K.id)),W="new-agent";let V=W,$=1;for(;D.has(V);)$+=1,V=`${W}-${$}`;const O=$===1?"New Agent":`New Agent ${$}`,U={rowKey:l3(),id:V,originalId:null,isNew:!0,idEditable:!0,autoSlugFromLabel:!0,label:O,command:"",argsText:"",promptArgPosition:"first",resolveFromShellAliases:!0,default:!1,model:"",playbook:"",launchPrompt:"",fieldErrors:{}};return[...F,U]})}function P(F){o(D=>D.filter(W=>W.rowKey!==F))}async function T(){u(!0),p(null);try{const F=AQ(r),D=RQ(F),W=await KY(D),V=Ru(W.agents);o(V),a(V),j("success","Agents saved")}catch(F){if(F instanceof B_)p(F.message),o(D=>PQ(_Q(D),F.fieldErrors)),j("error",F.message);else{const D=F instanceof Error?F.message:"Failed to save";p(D),j("error",D)}}finally{u(!1)}}function R(){o(i),p(null)}async function I(){if(e.custom){u(!0),p(null);try{const F=await qY(),D=Ru(F.agents);o(D),a(D),j("success","Reset to defaults")}catch(F){const D=F instanceof Error?F.message:"Failed to reset";p(D),j("error",D)}finally{u(!1)}}}function _(F){const{active:D,over:W}=F;!W||D.id===W.id||o(V=>{const $=V.findIndex(U=>U.rowKey===D.id),O=V.findIndex(U=>U.rowKey===W.id);return $===-1||O===-1?V:Rc(V,$,O)})}return s.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?s.jsxs("button",{type:"button",className:"shell-action text-xs",onClick:()=>g(!0),disabled:l,children:[s.jsx(vs,{className:"h-3 w-3"}),"Reset"]}):void 0,children:[!e.custom&&s.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:[s.jsx(Gv,{className:"mt-0.5 h-3.5 w-3.5 shrink-0"}),s.jsxs("span",{children:["Using built-in defaults — first save will write your own list to"," ",s.jsx("code",{className:"font-mono",children:"~/.syntaur/config.md"}),"."]})]}),y&&s.jsx("div",{className:`rounded-md border px-3 py-1.5 text-xs ${y.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:y.message}),f&&(!y||y.type!=="error")&&s.jsx("div",{className:"rounded-md border border-error-foreground/30 bg-error px-3 py-1.5 text-xs text-error-foreground",children:f}),s.jsx(Rm,{sensors:b,collisionDetection:Sm,onDragEnd:_,children:s.jsx(Am,{items:r.map(F=>F.rowKey),strategy:Dw,children:s.jsx("div",{className:"space-y-2",children:r.map((F,D)=>s.jsx($Q,{row:F,index:D,canRemove:r.length>1,playbooks:n,onPatch:W=>S(F.rowKey,W),onSetDefault:()=>N(F.rowKey),onRemove:()=>P(F.rowKey)},F.rowKey))})})}),s.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[s.jsxs("button",{type:"button",onClick:C,disabled:l,className:"shell-action text-xs",children:[s.jsx(Pt,{className:"h-3 w-3"}),"Add agent"]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{type:"button",onClick:R,disabled:!v||l,className:"shell-action text-xs",children:"Discard"}),s.jsxs("button",{type:"button",onClick:T,disabled:!v||l,className:"shell-action text-xs",children:[s.jsx(lm,{className:"h-3 w-3"}),"Save"]})]})]}),s.jsx(ss,{open:h,title:"Reset agents to defaults?",description:"Reset agents to built-in defaults? Any custom agents will be deleted from your config.",confirmLabel:"Reset",destructive:!0,loading:l,onOpenChange:F=>{!F&&!l&&g(!1)},onConfirm:async()=>{await I(),g(!1)}})]})}function MQ(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,"model"in t&&delete n.model,"playbook"in t&&delete n.playbook,"launchPrompt"in t&&delete n.launchPrompt,n}const c3=["terminal-app","iterm","ghostty","alacritty","warp","kitty","cmux"],Lh={terminal:"terminal-app",custom:!1};let Dl=null,Cl=null,Oh=0;const bv=new Set;function u3(e){Dl=e;for(const t of bv)t(e)}function R0(e){if(!e||typeof e!="object")return Lh;const t=e;return{terminal:typeof t.terminal=="string"&&c3.includes(t.terminal)?t.terminal:Lh.terminal,custom:t.custom===!0}}function LQ(){if(Dl)return Promise.resolve(Dl);if(Cl)return Cl;const e=++Oh;return Cl=fetch("/api/config/terminal").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{Cl=null;const n=R0(t);return e!==Oh?Dl??n:(Dl=n,n)}).catch(()=>(Cl=null,Lh)),Cl}function OQ(){const[e,t]=m.useState(()=>Dl??Lh);return m.useEffect(()=>{let n=!1;return LQ().then(r=>{n||t(r)}),bv.add(t),()=>{n=!0,bv.delete(t)}},[]),e}async function FQ(e){++Oh;const t=await fetch("/api/config/terminal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({terminal:e})});if(!t.ok){const r=await t.json().catch(()=>null);throw new Error((r==null?void 0:r.error)??`HTTP ${t.status}`)}const n=R0(await t.json());return u3(n),n}async function zQ(){++Oh;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=R0(await e.json());return u3(t),t}const Sp={"terminal-app":"Terminal (macOS built-in)",iterm:"iTerm2",ghostty:"Ghostty",alacritty:"Alacritty",warp:"Warp",kitty:"kitty",cmux:"cmux"};function BQ(){const{terminal:e,custom:t}=OQ(),[n,r]=m.useState(!1),[o,i]=m.useState(null);function a(f){i(f),setTimeout(()=>i(null),2500)}async function l(f){if(!(f===e&&t)){r(!0);try{await FQ(f),a({type:"success",message:`Terminal set to ${Sp[f]}.`})}catch(p){a({type:"error",message:p instanceof Error?p.message:"Save failed."})}finally{r(!1)}}}async function u(){r(!0);try{const f=await zQ();a({type:"success",message:`Reset to OS default (${Sp[f.terminal]}).`})}catch(f){a({type:"error",message:f instanceof Error?f.message:"Reset failed."})}finally{r(!1)}}return s.jsxs(We,{title:"Terminal",description:`Which terminal "Open in agent" launches. Defaults to the OS choice (currently ${Sp[e]}) when unset.`,actions:t?s.jsxs("button",{className:"shell-action text-xs",onClick:u,disabled:n,type:"button",children:[s.jsx(vs,{className:"h-3 w-3"}),"Reset to OS default"]}):void 0,children:[o&&s.jsx("div",{className:`mb-3 rounded-md border px-3 py-1.5 text-xs ${o.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:o.message}),s.jsxs("label",{className:"block text-sm",children:[s.jsx("span",{className:"mb-1.5 block text-xs font-medium text-muted-foreground",children:"Launch in"}),s.jsx("select",{value:e,onChange:f=>l(f.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:c3.map(f=>s.jsx("option",{value:f,children:Sp[f]},f))})]})]})}const pC={all:"Everything",assignment:"Assignments",project:"Projects",todo:"Todos",server:"Servers",playbook:"Playbooks"},UQ=["all",...pm];function Jy(e){return Object.entries(e).map(([t,n])=>({prefix:t,kind:n}))}function HQ(e){const t=[],n={},r=new Set;for(const{prefix:i,kind:a}of e){const l=i.trim();if(l===""){t.push("An alias prefix is empty.");continue}if(r.has(l)){t.push(`Duplicate prefix "${l}".`);continue}r.add(l),n[l]=a}const o=k5(n);return o.ok||t.push(...o.errors),{map:n,errors:t}}function VQ(){const{search:e,custom:t}=lw(),[n,r]=m.useState(e.defaultScope),[o,i]=m.useState(e.externalIds),[a,l]=m.useState(()=>Jy(e.aliases)),[u,f]=m.useState(!1),[p,h]=m.useState(!1),[g,y]=m.useState(null),k=JSON.stringify(e);m.useEffect(()=>{u||(r(e.defaultScope),i(e.externalIds),l(Jy(e.aliases)))},[k]);const{map:v,errors:b}=HQ(a);function j(_){y(_),setTimeout(()=>y(null),2500)}function S(){l(_=>[..._,{prefix:"",kind:"assignment"}]),f(!0)}function N(_){l(F=>F.filter((D,W)=>W!==_)),f(!0)}function C(_,F){l(D=>D.map((W,V)=>V===_?{...W,...F}:W)),f(!0)}function P(_){r(_.defaultScope),i(_.externalIds),l(Jy(_.aliases)),f(!1)}async function T(){if(!(b.length>0)){h(!0);try{const _=await C5({defaultScope:n,aliases:v,externalIds:o});P(_.search),j({type:"success",message:"Search settings saved."})}catch(_){j({type:"error",message:_ instanceof Error?_.message:"Save failed."})}finally{h(!1)}}}async function R(){h(!0);try{const _=await E5();P(_.search),j({type:"success",message:"Reset to defaults."})}catch(_){j({type:"error",message:_ instanceof Error?_.message:"Reset failed."})}finally{h(!1)}}const I=u&&b.length===0&&!p;return s.jsxs(We,{title:"Search",description:"Customize the Cmd+K command palette: default scope, type-alias prefixes, and external-ID indexing.",actions:t?s.jsxs("button",{className:"shell-action text-xs",onClick:R,disabled:p,type:"button",children:[s.jsx(vs,{className:"h-3 w-3"}),"Reset to defaults"]}):void 0,children:[g&&s.jsx("div",{className:`mb-3 rounded-md border px-3 py-1.5 text-xs ${g.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:g.message}),s.jsxs("div",{className:"space-y-5",children:[s.jsxs("label",{className:"block text-sm",children:[s.jsx("span",{className:"mb-1.5 block text-xs font-medium text-muted-foreground",children:"Default scope"}),s.jsx("select",{value:n,onChange:_=>{r(_.target.value),f(!0)},disabled:p,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:UQ.map(_=>s.jsx("option",{value:_,children:pC[_]},_))}),s.jsxs("span",{className:"mt-1 block text-xs text-muted-foreground",children:["Searches with no type prefix are limited to this. An ",s.jsx("code",{children:"all:"})," prefix (or empty box) always searches everything."]})]}),s.jsxs("div",{className:"text-sm",children:[s.jsx("span",{className:"mb-1.5 block text-xs font-medium text-muted-foreground",children:"Type-alias prefixes"}),s.jsx("div",{className:"space-y-2",children:a.map((_,F)=>s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("input",{type:"text",value:_.prefix,onChange:D=>C(F,{prefix:D.target.value}),placeholder:"prefix",disabled:p,spellCheck:!1,className:"w-24 rounded-md border border-border/60 bg-background px-2 py-1 text-sm focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30 disabled:opacity-60"}),s.jsx("span",{className:"text-muted-foreground",children:"→"}),s.jsx("select",{value:_.kind,onChange:D=>C(F,{kind:D.target.value}),disabled:p,className:"rounded-md border border-border/60 bg-background px-2 py-1 text-sm focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30 disabled:opacity-60",children:pm.map(D=>s.jsx("option",{value:D,children:pC[D]},D))}),s.jsx("button",{type:"button",onClick:()=>N(F),disabled:p,"aria-label":`Remove alias ${_.prefix}`,className:"rounded-md p-1 text-muted-foreground hover:bg-muted hover:text-foreground disabled:opacity-60",children:s.jsx(jc,{className:"h-3.5 w-3.5"})})]},F))}),s.jsxs("button",{type:"button",onClick:S,disabled:p,className:"mt-2 inline-flex items-center gap-1 text-xs text-primary hover:underline disabled:opacity-60",children:[s.jsx(Pt,{className:"h-3 w-3"}),"Add alias"]})]}),s.jsxs("label",{className:"flex items-start gap-2 text-sm",children:[s.jsx("input",{type:"checkbox",checked:o,onChange:_=>{i(_.target.checked),f(!0)},disabled:p,className:"mt-0.5"}),s.jsxs("span",{children:[s.jsx("span",{className:"font-medium",children:"Index external IDs"}),s.jsxs("span",{className:"mt-0.5 block text-xs text-muted-foreground",children:["Fold external IDs (e.g. Jira keys) into search and enable"," ",s.jsx("code",{children:"jira:"}),"/",s.jsx("code",{children:"externalid:"})," and bare-ID matching."]})]})]}),u&&b.length>0&&s.jsx("ul",{className:"space-y-1 text-xs text-error-foreground",children:b.map((_,F)=>s.jsx("li",{children:_},F))}),s.jsx("div",{children:s.jsx("button",{type:"button",onClick:T,disabled:!I,className:"rounded-md bg-primary px-3 py-1.5 text-sm font-medium text-primary-foreground hover:bg-primary/90 disabled:opacity-50",children:p?"Saving…":"Save search settings"})})]})]})}function Au(e){return e===gh?"Ungrouped":e}function WQ(){const{data:e,loading:t,error:n,refetch:r}=Ta(),{hidden:o,custom:i,loading:a,error:l,reload:u}=aR(),[f,p]=m.useState(!1),[h,g]=m.useState(null);function y(j){g(j),setTimeout(()=>g(null),2500)}const k=e?[...e.workspaces,...e.hasUngrouped?[gh]:[]]:[];async function v(j,S){const N=S?o.filter(C=>C!==j):[...o,j];p(!0);try{await uB(N),y({type:"success",message:S?`Showing "${Au(j)}" in the left nav.`:`Hiding "${Au(j)}" from the left nav.`})}catch(C){y({type:"error",message:C instanceof Error?C.message:"Save failed."})}finally{p(!1)}}async function b(){p(!0);try{await dB(),y({type:"success",message:"All workspaces shown in the left nav."})}catch(j){y({type:"error",message:j instanceof Error?j.message:"Reset failed."})}finally{p(!1)}}return s.jsxs(We,{title:"Workspace visibility",description:"Choose which workspaces appear in the left nav. Hidden workspaces stay fully reachable by direct URL — this only controls the sidebar.",actions:i?s.jsxs("button",{className:"shell-action text-xs",onClick:b,disabled:f,type:"button",children:[s.jsx(vs,{className:"h-3 w-3"}),"Show all"]}):void 0,children:[h&&s.jsx("div",{className:`mb-3 rounded-md border px-3 py-1.5 text-xs ${h.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:h.message}),t||a?s.jsx("div",{className:"text-sm text-muted-foreground",children:"Loading workspaces…"}):n||l?s.jsxs("div",{className:"flex items-center gap-3 text-sm text-error-foreground",children:[s.jsx("span",{children:n?"Failed to load workspaces.":"Failed to load the visibility preference."}),s.jsxs("button",{type:"button",className:"shell-action text-xs",onClick:()=>{n&&r(),l&&u()},children:[s.jsx(vs,{className:"h-3 w-3"}),"Retry"]})]}):k.length===0?s.jsx("div",{className:"text-sm text-muted-foreground",children:"No workspaces yet."}):s.jsx("ul",{className:"flex flex-col divide-y divide-border/40",children:k.map(j=>{const S=!aB(j,o);return s.jsxs("li",{className:"flex items-center justify-between gap-3 py-2",children:[s.jsxs("span",{className:"truncate text-sm",title:Au(j),children:[Au(j),j===gh&&s.jsx("span",{className:"ml-2 text-xs text-muted-foreground",children:"(standalone, ungrouped)"})]}),s.jsx("button",{type:"button",role:"switch","aria-checked":S,"aria-label":`Show "${Au(j)}" in the left nav`,onClick:()=>v(j,!S),disabled:f,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 disabled:cursor-not-allowed disabled:opacity-60 ${S?"bg-primary":"bg-muted"}`,children:s.jsx("span",{className:`pointer-events-none inline-block h-4 w-4 rounded-full bg-background shadow-sm ring-0 transition-transform ${S?"translate-x-4":"translate-x-0"}`})})]},j)})})]})}function KQ(){const{preset:e,setPreset:t,resetPreset:n}=ew(),[r,o]=m.useState(!1),[i,a]=m.useState(null);async function l(f){if(!(f===e||r)){o(!0),a(null);try{await t(f),a({type:"success",message:"Theme updated"}),setTimeout(()=>a(null),2e3)}catch(p){a({type:"error",message:p instanceof Error?p.message:"Failed to save theme"})}finally{o(!1)}}}async function u(){o(!0),a(null);try{await n(),a({type:"success",message:"Theme reset to default"}),setTimeout(()=>a(null),2e3)}catch(f){a({type:"error",message:f instanceof Error?f.message:"Failed to reset theme"})}finally{o(!1)}}return s.jsxs("div",{className:"space-y-6",children:[s.jsxs(We,{title:"Theme",description:"Pick a color theme for the dashboard. The default is the Syntaur brand.",actions:e!=="default"?s.jsxs("button",{className:"shell-action text-xs",onClick:u,disabled:r,children:[s.jsx(vs,{className:"h-3 w-3"}),"Reset"]}):void 0,children:[i&&s.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}),s.jsx("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 lg:grid-cols-4",children:L2.map(f=>{const p=f.slug===e;return s.jsxs("button",{type:"button",onClick:()=>l(f.slug),disabled:r,"aria-pressed":p,className:`group relative flex flex-col gap-2 rounded-lg border bg-card/95 p-3 text-left transition disabled:opacity-60 ${p?"border-primary ring-2 ring-primary/40":"border-border/60 hover:border-primary/40"}`,children:[s.jsxs("div",{className:"flex items-center gap-1.5",children:[s.jsx("span",{className:"h-5 w-5 rounded-full ring-1 ring-border/60",style:{background:f.swatches.primary}}),s.jsx("span",{className:"h-5 w-5 rounded-full ring-1 ring-border/60",style:{background:f.swatches.secondary}}),s.jsx("span",{className:"h-5 w-5 rounded-full ring-1 ring-border/60",style:{background:f.swatches.coral}}),s.jsx("span",{className:"h-5 w-5 rounded-full ring-1 ring-border/60",style:{background:f.swatches.teal}}),s.jsx("span",{className:"h-5 w-5 rounded-full ring-1 ring-border/60",style:{background:f.swatches.amber}}),p&&s.jsx("span",{className:"ml-auto inline-flex h-5 w-5 items-center justify-center rounded-full bg-primary text-primary-foreground",children:s.jsx(Sr,{className:"h-3 w-3"})})]}),s.jsxs("div",{children:[s.jsx("div",{className:"text-sm font-medium text-foreground",children:f.label}),s.jsx("div",{className:"text-xs text-muted-foreground",children:f.description})]})]},f.slug)})})]}),s.jsx(wQ,{}),s.jsx(BQ,{}),s.jsx(VQ,{}),s.jsx(WQ,{}),s.jsx(IQ,{}),s.jsx(CQ,{}),s.jsx(vQ,{})]})}function qQ({open:e,affected:t,remaining:n,ruleReferences:r,headlineReferences:o,onResolve:i,onCancel:a}){var P,T;const[l,u]=m.useState(n.length>0?"remap":"delete"),[f,p]=m.useState(((P=n[0])==null?void 0:P.id)??""),[h,g]=m.useState(((T=n[0])==null?void 0:T.id)??""),[y,k]=m.useState(!1),v=t.count>0;m.useEffect(()=>{var R,I;e&&(u(n.length>0?"remap":"delete"),p(((R=n[0])==null?void 0:R.id)??""),g(((I=n[0])==null?void 0:I.id)??""),k(!1))},[e,n]);const b=!o||h!==""&&h!==t.id,j=l==="remap"&&n.length>0&&f!==""&&f!==t.id||l==="delete"&&(!v||y)&&b;function S(){j&&(l==="remap"?i({id:t.id,mode:"remap",target:f},f):i({id:t.id,mode:"delete"},o?h:""))}const N=t.assignments.slice(0,10),C=t.count-N.length;return s.jsx(Ln,{open:e,onOpenChange:R=>R?void 0:a(),children:s.jsxs(Nn,{className:"max-w-xl",children:[s.jsxs(or,{children:[s.jsxs(Sn,{children:['Delete status "',t.label,'"',v?` — ${t.count} assignment${t.count===1?"":"s"} reference it`:""]}),s.jsx(ns,{children:v?"Choose how to resolve the affected assignments before this status is removed from the workflow.":"No assignments use this status, but workflow rules reference it. Choose how to resolve them."})]}),v&&s.jsx("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:s.jsxs("ul",{className:"space-y-1 text-sm",children:[N.map(R=>s.jsx("li",{children:s.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:R.display})},`${R.projectSlug??"standalone"}/${R.assignmentSlug}`)),C>0&&s.jsxs("li",{className:"text-xs italic text-muted-foreground",children:["+",C," more not shown"]})]})}),r.length>0&&s.jsxs("div",{className:"rounded-md border border-amber-500/40 bg-amber-500/5 p-3",children:[s.jsx("p",{className:"mb-1 text-xs font-medium text-foreground",children:"Workflow rules referencing this status:"}),s.jsx("ul",{className:"space-y-0.5 font-mono text-xs text-muted-foreground",children:r.map((R,I)=>s.jsxs("li",{children:[s.jsx("span",{className:"text-foreground",children:R.section}),s.jsx("span",{className:"mx-1",children:"·"}),R.detail]},I))}),s.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:l==="remap"?"These will be remapped to the target status.":"Ladder rungs and transitions referencing this status will be removed"+(o?"; headline rules must be remapped below.":".")})]}),s.jsxs("div",{className:"space-y-3",children:[s.jsxs("label",{className:"flex items-start gap-2 cursor-pointer",children:[s.jsx("input",{type:"radio",name:"status-delete-mode",checked:l==="remap",onChange:()=>u("remap"),disabled:n.length===0,className:"mt-1"}),s.jsxs("span",{className:"flex-1",children:[s.jsx("span",{className:"block text-sm font-medium",children:v?"Remap to another status":"Remap rules to another status"}),s.jsxs("select",{value:f,onChange:R=>p(R.target.value),onClick:()=>u("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&&s.jsx("option",{value:"",children:"(no other statuses)"}),n.map(R=>s.jsxs("option",{value:R.id,children:[R.label," (",R.id,")"]},R.id))]}),n.length===0&&s.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."})]})]}),s.jsxs("label",{className:"flex items-start gap-2 cursor-pointer",children:[s.jsx("input",{type:"radio",name:"status-delete-mode",checked:l==="delete",onChange:()=>u("delete"),className:"mt-1"}),s.jsxs("span",{className:"flex-1",children:[s.jsx("span",{className:"block text-sm font-medium text-error-foreground",children:v?"Delete these assignments":"Drop the referencing rules"}),s.jsx("span",{className:"block text-xs text-muted-foreground mt-1",children:v?`Permanently removes ${t.count} assignment${t.count===1?"":"s"} from disk. This cannot be undone.`:"Ladder rungs and transitions referencing this status are removed."}),l==="delete"&&o&&s.jsxs("span",{className:"mt-2 block",children:[s.jsx("span",{className:"block text-xs font-medium",children:"Remap headline rules to"}),s.jsxs("select",{value:h,onChange:R=>g(R.target.value),disabled:n.length===0,className:"mt-1 block w-full rounded-md border border-border/60 bg-background px-2 py-1 text-sm",children:[n.length===0&&s.jsx("option",{value:"",children:"(no other statuses)"}),n.map(R=>s.jsxs("option",{value:R.id,children:[R.label," (",R.id,")"]},R.id))]}),s.jsx("span",{className:"mt-1 block text-xs text-muted-foreground",children:"The headline projection cannot reference a deleted status, so it must point somewhere."})]}),l==="delete"&&v&&s.jsxs("label",{className:"mt-2 flex items-center gap-2 cursor-pointer",children:[s.jsx("input",{type:"checkbox",checked:y,onChange:R=>k(R.target.checked)}),s.jsxs("span",{className:"text-xs",children:["I understand this will permanently delete ",t.count," assignment",t.count===1?"":"s","."]})]})]})]})]}),s.jsxs(Wr,{children:[s.jsx("button",{type:"button",onClick:a,className:"shell-action",children:"Cancel"}),s.jsx("button",{type:"button",onClick:S,disabled:!j,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"?v?`Remap ${t.count} → ${f||"..."}`:`Remap rules → ${f||"..."}`:v?`Delete ${t.count}`:"Drop rules"})]})]})})}function GQ({open:e,references:t,onConfirm:n,onCancel:r}){return s.jsx(Ln,{open:e,onOpenChange:o=>o?void 0:r(),children:s.jsxs(Nn,{className:"max-w-xl",children:[s.jsxs(or,{children:[s.jsx(Sn,{children:"Delete fact — referenced by derive rules"}),s.jsx(ns,{children:"Removing this fact will break the following derive conditions. The doctor check will flag them as invalid until they are fixed."})]}),s.jsx("div",{className:"rounded-md border border-border/60 bg-background/80 p-3",children:s.jsx("ul",{className:"space-y-2 text-sm",children:t.map((o,i)=>s.jsxs("li",{className:"font-mono text-xs text-muted-foreground",children:[s.jsx("span",{className:"text-foreground",children:o.location}),s.jsx("span",{className:"mx-1",children:"·"}),s.jsx("span",{children:o.when})]},i))})}),s.jsxs(Wr,{children:[s.jsx("button",{type:"button",onClick:r,className:"shell-action",children:"Cancel"}),s.jsx("button",{type:"button",onClick:n,className:"shell-action bg-error text-error-foreground hover:opacity-90",children:"Confirm delete — rules will become invalid"})]})]})})}function YQ({value:e,onChange:t,ariaLabel:n}){const r=n??"Pick a color",o=n?`${n} (hex)`:"Color hex value";return s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("input",{type:"color",value:e||"#64748b",onChange:i=>t(i.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":r}),s.jsx("input",{type:"text",value:e,onChange:i=>t(i.target.value),placeholder:"#64748b",className:"editor-input w-[5.5rem] font-mono text-xs","aria-label":o})]})}function XQ({row:e,isSaved:t,onUpdate:n,onRemove:r}){const{attributes:o,listeners:i,setNodeRef:a,setActivatorNodeRef:l,transform:u,transition:f,isDragging:p}=Pm({id:e.rowKey}),h={transform:js.Transform.toString(u),transition:f,zIndex:p?50:void 0,position:p?"relative":void 0};return s.jsxs("div",{ref:a,style:h,className:`surface-panel flex flex-wrap items-center gap-3 px-3 py-2 ${p?"opacity-60 shadow-lg":""}`,children:[s.jsx("button",{ref:l,...o,...i,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:s.jsx(bc,{className:"h-4 w-4"})}),s.jsx("div",{className:"min-w-[8rem] flex-1",children:t?s.jsxs(Fr,{children:[s.jsx(zr,{asChild:!0,children:s.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"})}),s.jsx(vr,{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)."})]}):s.jsx("input",{type:"text",value:e.id,onChange:g=>n("id",g.target.value),"aria-label":"Status ID",className:"editor-input w-full text-sm"})}),s.jsx("div",{className:"min-w-[8rem] flex-1",children:s.jsx("input",{type:"text",value:e.label,onChange:g=>n("label",g.target.value),"aria-label":"Status label",className:"editor-input w-full text-sm"})}),s.jsx("div",{className:"min-w-[10rem] flex-1",children:s.jsx("input",{type:"text",value:e.description,onChange:g=>n("description",g.target.value),"aria-label":"Status description",placeholder:"description (optional)",className:"editor-input w-full text-sm"})}),s.jsx(YQ,{value:e.color,onChange:g=>n("color",g),ariaLabel:`Color for ${e.label||e.id}`}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsxs(Fr,{children:[s.jsx(zr,{asChild:!0,children:s.jsx("span",{className:"cursor-help text-xs text-muted-foreground underline decoration-dotted underline-offset-4",children:"Done"})}),s.jsx(vr,{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.'})]}),s.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:s.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"}`})})]}),s.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:r,title:"Remove status","aria-label":`Remove status ${e.id}`,children:s.jsx(mn,{className:"h-3.5 w-3.5"})})]})}function QQ({statuses:e,savedStatusIds:t,onUpdate:n,onAdd:r,onRemove:o,onReorder:i}){const a=Nm(ki(Tc,{activationConstraint:{distance:8}}),ki(Ec,{coordinateGetter:JR}));function l(u){const{active:f,over:p}=u;if(!p||f.id===p.id)return;const h=e.findIndex(y=>y.rowKey===f.id),g=e.findIndex(y=>y.rowKey===p.id);h===-1||g===-1||i(Rc(e,h,g))}return s.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:s.jsxs("button",{className:"shell-action text-xs",onClick:r,children:[s.jsx(Pt,{className:"h-3 w-3"}),"Add Status"]}),children:s.jsx(Rm,{sensors:a,collisionDetection:Sm,onDragEnd:l,children:s.jsx(Am,{items:e.map(u=>u.rowKey),strategy:Dw,children:s.jsx("div",{className:"space-y-2",children:e.map((u,f)=>s.jsx(XQ,{row:u,isSaved:t.has(u.id),onUpdate:(p,h)=>n(f,p,h),onRemove:()=>o(f)},u.rowKey))})})})})}function JQ(e){const t=Array.from(e.pendingResolutions.values()),r={statuses:e.statuses.map(o=>({id:o.id,label:o.label,...o.description?{description:o.description}:{},...o.color?{color:o.color}:{},...o.terminal?{terminal:!0}:{}})),order:e.order,resolutions:t};return e.transitions!==void 0&&(r.transitions=e.transitions),e.derive!==void 0&&(r.derive=e.derive),e.facts!==void 0&&(r.facts=e.facts),e.factRemovalAcks&&e.factRemovalAcks.length>0&&(r.factRemovalAcks=e.factRemovalAcks),{body:r,resolutions:t}}function ZQ(e,t,n){const r=[];t.phaseLadder.forEach((o,i)=>{o.phase===e&&r.push({section:"phaseLadder",detail:`phaseLadder rung ${i} ("${o.phase}")`})}),t.headline.parked===e&&r.push({section:"headline",detail:"headline.parked"}),t.headline.blocked===e&&r.push({section:"headline",detail:"headline.blocked"});for(const o of n)(o.from===e||o.to===e)&&r.push({section:"transitions",detail:`transition ${o.from} --${o.command}--> ${o.to}`});return r}function eJ(e,t){return t.headline.parked===e||t.headline.blocked===e}function tJ(e,t,n){return{phaseLadder:e.phaseLadder.map(r=>r.phase===t?{...r,phase:n}:r),disposition:e.disposition,headline:{parked:e.headline.parked===t?n:e.headline.parked,blocked:e.headline.blocked===t?n:e.headline.blocked}}}function nJ(e,t,n){return e.map(r=>({...r,from:r.from===t?n:r.from,to:r.to===t?n:r.to}))}function rJ(e,t,n){return{phaseLadder:e.phaseLadder.filter(r=>r.phase!==t),disposition:e.disposition,headline:{parked:e.headline.parked===t?n:e.headline.parked,blocked:e.headline.blocked===t?n:e.headline.blocked}}}function sJ(e,t){return e.filter(n=>n.from!==t&&n.to!==t)}function oJ(e,t){const n=new Map;t.forEach((o,i)=>{n.has(o)||n.set(o,i)});const r=t.length;return e.map((o,i)=>({s:o,originalIndex:i,r:n.get(o.id)??r})).sort((o,i)=>o.r-i.r||o.originalIndex-i.originalIndex).map(o=>o.s)}function hC(e,t){const n=new Map;for(const[r,o]of e.entries())t.has(o.id)||o.mode==="remap"&&!t.has(o.target)||n.set(r,o);return n}function d3(){return`row_${Math.random().toString(36).slice(2,10)}_${Date.now().toString(36)}`}function iJ(e){const t=e.statuses.map(n=>({rowKey:d3(),id:n.id,label:n.label,description:n.description??"",color:n.color??"",terminal:n.terminal??!1}));return oJ(t,e.order)}function aJ(e){return Yb(e)}function mC(e){const t=new Map;for(const n of e)t.set(n,(t.get(n)??0)+1);return t}function lJ(e){const t=new Map;for(let n=0;n<e.length;n++){const r=mC(Yb(e.slice(0,n))),o=mC(Yb(e.slice(0,n+1)));for(const[i,a]of o.entries()){const l=r.get(i)??0;if(a>l){t.set(n,i);break}}}return t}const cJ=[{value:"bool",label:"bool"},{value:"number",label:"number"},{value:"attestation",label:"attestation"}],uJ=[{value:"plan",label:"plan"},{value:"commit",label:"commit"},{value:"none",label:"none"}];function dJ(){return{name:"",type:"bool",binds:null}}function fJ({rows:e,onChange:t,saving:n}){const r=lJ(e),o=m.useCallback(()=>{t([...e,dJ()])},[e,t]),i=m.useCallback((l,u,f)=>{t(e.map((p,h)=>h===l?{...p,[u]:f}:p))},[e,t]),a=m.useCallback(l=>{t(e.filter((u,f)=>f!==l))},[e,t]);return s.jsxs(We,{title:"Facts",description:"Declare custom facts and attestation fields for derive rules and the fact vocabulary.",children:[s.jsxs("p",{className:"mb-3 text-xs text-muted-foreground",children:["Names must match ",s.jsx("code",{className:"font-mono",children:"^[a-z][a-zA-Z0-9]*"})," — start with a lowercase letter, then letters or numbers only (no spaces, hyphens, or underscores)."]}),s.jsxs("div",{className:"space-y-2",children:[e.length===0&&s.jsx("p",{className:"text-sm text-muted-foreground italic",children:"No custom facts declared."}),e.map((l,u)=>{const f=r.get(u),p=l.type==="attestation";return s.jsxs("div",{className:`rounded-md border p-2 ${f?"border-error-foreground/40 bg-error/5":"border-border/60 bg-background/80"}`,children:[s.jsxs("div",{className:"flex items-start gap-2",children:[s.jsxs("div",{className:"flex-1 grid grid-cols-1 sm:grid-cols-3 gap-2",children:[s.jsx("input",{type:"text",value:l.name,onChange:h=>i(u,"name",h.target.value),placeholder:"factName",disabled:n,className:"w-full rounded-md border border-border/60 bg-background px-2 py-1 text-sm font-mono focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30 disabled:opacity-60"}),s.jsx("select",{value:l.type,onChange:h=>{const g=h.target.value;t(e.map((y,k)=>k===u?{...y,type:g,binds:g==="attestation"?y.binds:null}:y))},disabled:n,className:"w-full rounded-md border border-border/60 bg-background px-2 py-1 text-sm focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30 disabled:opacity-60",children:cJ.map(h=>s.jsx("option",{value:h.value,children:h.label},h.value))}),p?s.jsx("select",{value:l.binds??"none",onChange:h=>i(u,"binds",h.target.value),disabled:n,className:"w-full rounded-md border border-border/60 bg-background px-2 py-1 text-sm focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30 disabled:opacity-60",children:uJ.map(h=>s.jsx("option",{value:h.value,children:h.label},h.value))}):s.jsx("span",{className:"text-sm text-muted-foreground py-1",children:"—"})]}),f&&s.jsxs(Fr,{children:[s.jsx(zr,{asChild:!0,children:s.jsx("span",{className:"mt-1 inline-flex text-error-foreground","aria-label":"Invalid fact",children:s.jsx(uh,{className:"h-3.5 w-3.5 flex-shrink-0"})})}),s.jsx(vr,{className:"max-w-xs text-xs font-normal normal-case tracking-normal",children:f})]}),s.jsx("button",{type:"button",onClick:()=>a(u),disabled:n,className:"mt-0.5 shell-action text-xs text-muted-foreground hover:text-error disabled:opacity-50",title:"Delete",children:s.jsx(mn,{className:"h-3.5 w-3.5"})})]}),f&&s.jsx("p",{className:"mt-1 text-xs text-error-foreground",children:f})]},u)})]}),s.jsxs("button",{type:"button",onClick:o,disabled:n,className:"mt-2 shell-action text-xs inline-flex items-center gap-1 disabled:opacity-50",children:[s.jsx(Pt,{className:"h-3.5 w-3.5"}),"Add fact"]})]})}function f3(e,t=Fm){var r,o;if(e==="*")return null;const n=gm(e);if(!n.ast)return((r=n.errors[0])==null?void 0:r.message)??"unparseable condition";try{return Hu(n.ast,t),null}catch(i){if(i instanceof br)return((o=i.errors[0])==null?void 0:o.message)??"invalid condition";throw i}}function Zy(e){if(e.values.length!==1)return null;const t=e.values[0];return{field:e.field,op:e.op,value:t.raw,valueType:t.type}}function pJ(e){if(e.kind==="atom"){const t=Zy(e);return t?{outerJoin:"AND",groups:[{join:"AND",comparisons:[t]}]}:null}if(e.kind==="and"||e.kind==="or"){const t=e.kind==="and"?"AND":"OR",n=e.kind==="and"?"or":"and",r=e.kind==="and"?"OR":"AND",o=[];for(const i of e.children)if(i.kind==="atom"){const a=Zy(i);if(!a)return null;o.push({join:r,comparisons:[a]})}else if(i.kind===n){const a=[];for(const l of i.children){if(l.kind!=="atom")return null;const u=Zy(l);if(!u)return null;a.push(u)}o.push({join:r,comparisons:a})}else return null;return{outerJoin:t,groups:o}}return null}function gC(e){const t=e.trim();if(t===""||t==="*")return null;const n=gm(t);return n.ast?pJ(n.ast):null}const hJ=/^[A-Za-z_][A-Za-z0-9_-]*$/;function mJ(e){return e===""||!hJ.test(e)||/^(and|or|not)$/i.test(e)}function gJ(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function xJ(e){return e.valueType==="number"||e.valueType==="date"||e.valueType==="duration"?e.value:mJ(e.value)?gJ(e.value):e.value}function yJ(e){const t=xJ(e);return e.op===":"?`${e.field}:${t}`:`${e.field} ${e.op} ${t}`}function bJ(e){return e.groups.map(n=>{const r=n.comparisons.map(yJ).join(` ${n.join} `);return n.comparisons.length>1?`(${r})`:r}).join(` ${e.outerJoin} `)}function vJ(e,t){return e.trim()==="*"?null:e.trim()===""?"condition is empty":f3(e,t)}function wJ(e){return CH(SH(e))}function jJ(e){const t=qw(e),n=[];for(const r of VA(e)){const o=t[r.toLowerCase()];o&&n.push({name:r,kind:o.kind})}return n}function p3(e){switch(e){case"bool":return"word";case"number":case"ordinal":case"duration":case"timestamp":return"number";default:return"string"}}function vv(e){switch(e){case"bool":return[":"];case"number":case"ordinal":case"duration":case"timestamp":return[":","=","!=","<","<=",">",">="];default:return[":","!="]}}function Pu(e){const t=e[0];return{outerJoin:"AND",groups:[{join:"AND",comparisons:[t?{field:t.name,op:vv(t.kind)[0],value:t.kind==="bool"?"true":"",valueType:p3(t.kind)}:{field:"",op:":",value:""}]}]}}function h3({value:e,onChange:t,fieldOptions:n,registry:r,disabled:o}){const i=m.useMemo(()=>gC(e),[e]),a=e.trim()===""||i!==null,[l,u]=m.useState(a?"builder":"raw"),[f,p]=m.useState(()=>i??Pu(n)),h=m.useRef(e);m.useEffect(()=>{if(e===h.current)return;const T=gC(e);T&&p(T),!(e.trim()===""||T)&&l==="builder"&&u("raw"),h.current=e},[e]);const g=vJ(e,r);function y(T){h.current=T,t(T)}function k(T){p(T),y(bJ(T))}function v(T){k({outerJoin:T,groups:f.groups.map(R=>({...R,join:T==="AND"?"OR":"AND"}))})}function b(T,R,I){const _=f.groups.map((F,D)=>D===T?{...F,comparisons:F.comparisons.map((W,V)=>V===R?{...W,...I}:W)}:F);k({...f,groups:_})}function j(T){const R=Pu(n).groups[0].comparisons[0],I=f.groups.map((_,F)=>F===T?{..._,comparisons:[..._.comparisons,{...R}]}:_);k({...f,groups:I})}function S(T,R){let I=f.groups.map((_,F)=>F===T?{..._,comparisons:_.comparisons.filter((D,W)=>W!==R)}:_);I=I.filter(_=>_.comparisons.length>0),I.length===0&&(I=Pu(n).groups),k({...f,groups:I})}function N(){const T=f.outerJoin==="AND"?"OR":"AND";k({...f,groups:[...f.groups,{join:T,comparisons:[Pu(n).groups[0].comparisons[0]]}]})}function C(){if(l==="builder"){u("raw");return}a&&(p(i??Pu(n)),u("builder"))}const P="rounded-md border border-border/60 bg-background px-2 py-1 text-sm focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30 disabled:opacity-60";return s.jsxs("div",{className:"space-y-1.5",children:[s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[s.jsx("span",{className:"text-xs text-muted-foreground",children:"Condition"}),s.jsxs("button",{type:"button",onClick:C,disabled:o||l==="raw"&&!a,title:l==="raw"&&!a?"Condition too complex for the builder — edit as raw AQL":l==="builder"?"Switch to raw AQL":"Switch to builder",className:"shell-action text-xs inline-flex items-center gap-1 disabled:opacity-50",children:[l==="builder"?s.jsx(p4,{className:"h-3 w-3"}):s.jsx(A4,{className:"h-3 w-3"}),l==="builder"?"Raw AQL":"Builder"]})]}),l==="raw"?s.jsx("input",{type:"text",list:"aql-field-names",value:e,onChange:T=>y(T.target.value),disabled:o,placeholder:"e.g. planApproved:true AND implementationStarted:true",className:`${P} w-full font-mono`}):s.jsxs("div",{className:"space-y-2",children:[f.groups.map((T,R)=>s.jsxs("div",{children:[R>0&&s.jsxs("div",{className:"my-1 flex items-center gap-2",children:[s.jsx("span",{className:"h-px flex-1 bg-border/60"}),s.jsx("button",{type:"button",onClick:()=>v(f.outerJoin==="AND"?"OR":"AND"),disabled:o,className:"shell-action text-[10px] uppercase tracking-wide",children:f.outerJoin}),s.jsx("span",{className:"h-px flex-1 bg-border/60"})]}),s.jsxs("div",{className:"rounded-md border border-border/50 bg-background/60 p-2 space-y-1.5",children:[T.comparisons.map((I,_)=>{const F=n.find(V=>V.name===I.field),D=(F==null?void 0:F.kind)??"string",W=vv(D);return s.jsxs("div",{className:"flex items-center gap-1.5",children:[_>0&&s.jsx("span",{className:"w-9 shrink-0 text-[10px] uppercase tracking-wide text-muted-foreground",children:T.join}),s.jsxs("select",{value:I.field,onChange:V=>{const $=n.find(K=>K.name===V.target.value),O=($==null?void 0:$.kind)??"string",U=vv(O);b(R,_,{field:V.target.value,op:U.includes(I.op)?I.op:U[0],value:O==="bool"?"true":I.value,valueType:p3(O)})},disabled:o,className:`${P} font-mono`,children:[n.length===0&&s.jsx("option",{value:"",children:"(no fields)"}),!n.some(V=>V.name===I.field)&&I.field!==""&&s.jsx("option",{value:I.field,children:I.field}),n.map(V=>s.jsx("option",{value:V.name,children:V.name},V.name))]}),s.jsx("select",{value:I.op,onChange:V=>b(R,_,{op:V.target.value}),disabled:o,className:`${P} font-mono`,children:W.map(V=>s.jsx("option",{value:V,children:V},V))}),D==="bool"?s.jsxs("select",{value:I.value||"true",onChange:V=>b(R,_,{value:V.target.value}),disabled:o,className:`${P} font-mono`,children:[s.jsx("option",{value:"true",children:"true"}),s.jsx("option",{value:"false",children:"false"})]}):s.jsx("input",{type:"text",value:I.value,onChange:V=>b(R,_,{value:V.target.value}),disabled:o,placeholder:"value",className:`${P} w-24 font-mono`}),s.jsx("button",{type:"button",onClick:()=>S(R,_),disabled:o,className:"ml-auto inline-flex h-6 w-6 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground","aria-label":"Remove condition",children:s.jsx(mn,{className:"h-3.5 w-3.5"})})]},_)}),s.jsxs("button",{type:"button",onClick:()=>j(R),disabled:o,className:"shell-action text-xs inline-flex items-center gap-1",children:[s.jsx(Pt,{className:"h-3 w-3"}),T.join," condition"]})]})]},R)),s.jsxs("button",{type:"button",onClick:N,disabled:o,className:"shell-action text-xs inline-flex items-center gap-1",children:[s.jsx(Pt,{className:"h-3 w-3"}),f.outerJoin," group"]})]}),s.jsx("datalist",{id:"aql-field-names",children:n.map(T=>s.jsx("option",{value:T.name},T.name))}),s.jsx("p",{className:"font-mono text-[11px] text-muted-foreground truncate",title:e,children:e.trim()===""?s.jsx("span",{className:"italic",children:"empty condition"}):e}),g&&s.jsx("p",{className:"text-xs text-error-foreground",children:g})]})}let xC=0;function Fh(){return xC+=1,`dr_${xC}_${Math.random().toString(36).slice(2,8)}`}function eb(e){const t=[...e.disposition].sort((n,r)=>n.when===null&&r.when!==null?1:n.when!==null&&r.when===null?-1:0);return{phaseLadder:e.phaseLadder.map(n=>({rowKey:Fh(),phase:n.phase,when:n.when,next:n.next??""})),disposition:t.map(n=>({rowKey:Fh(),when:n.when,is:n.is})),headline:{parked:e.headline.parked,blocked:e.headline.blocked}}}function wv(e){const t=e.phaseLadder.map(r=>r.next.trim()?{phase:r.phase,when:r.when,next:r.next.trim()}:{phase:r.phase,when:r.when}),n=e.disposition.map(r=>({when:r.when,is:r.is}));return{phaseLadder:t,disposition:n,headline:{terminal:"passthrough",active:"phase",parked:e.headline.parked,blocked:e.headline.blocked}}}function kJ(e){return e.findIndex(t=>t.when.trim()==="*")}function m3(e,t,n){return wz(e,{statuses:t},r=>f3(r,n))}const yC=["active","blocked","parked"];function NJ({value:e,deriveCustom:t,statuses:n,acceptedFacts:r,onChange:o,onReset:i,disabled:a}){const l=m.useMemo(()=>qw(r),[r]),u=m.useMemo(()=>jJ(r),[r]),f=Nm(ki(Tc,{activationConstraint:{distance:8}}),ki(Ec,{coordinateGetter:JR})),p=m.useMemo(()=>{try{return m3(wv(e),n,l)}catch{return["derive rules are malformed"]}},[e,n,l]),h=kJ(e.phaseLadder),g=h>=0?e.phaseLadder[h]:null,y=e.phaseLadder.filter((_,F)=>F!==h);function k(_,F){o({...e,phaseLadder:[..._?[_]:[],...F]})}function v(_,F){const D=e.phaseLadder.map(W=>W.rowKey===_?{...W,...F}:W);o({...e,phaseLadder:D})}function b(){var F;const _={rowKey:Fh(),phase:((F=n[0])==null?void 0:F.id)??"",when:"",next:""};k(g,[...y,_])}function j(_){o({...e,phaseLadder:e.phaseLadder.filter(F=>F.rowKey!==_)})}function S(_){const{active:F,over:D}=_;if(!D||F.id===D.id)return;const W=y.findIndex($=>$.rowKey===F.id),V=y.findIndex($=>$.rowKey===D.id);W===-1||V===-1||k(g,Rc(y,W,V))}function N(_,F){o({...e,disposition:e.disposition.map(D=>D.rowKey===_?{...D,...F}:D)})}function C(){const _={rowKey:Fh(),when:"",is:"active"},F=e.disposition.findIndex(W=>W.when===null),D=[...e.disposition];F>=0?D.splice(F,0,_):D.push(_),o({...e,disposition:D})}function P(_){o({...e,disposition:e.disposition.filter(F=>F.rowKey!==_)})}function T(_,F){o({...e,headline:{...e.headline,[_]:F}})}const R="rounded-md border border-border/60 bg-background px-2 py-1 text-sm focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30 disabled:opacity-60";function I(_,F,D){return s.jsxs("select",{value:_,onChange:W=>F(W.target.value),disabled:a,"aria-label":D,className:`${R} font-mono`,children:[!n.some(W=>W.id===_)&&_!==""&&s.jsx("option",{value:_,children:_}),n.map(W=>s.jsxs("option",{value:W.id,children:[W.label," (",W.id,")"]},W.id))]})}return s.jsxs(We,{title:"Derive Rules",description:"The phase ladder, disposition rules, and headline projection that map facts to a status. Highest matching rung wins — drag to reorder priority.",actions:t?s.jsxs("button",{type:"button",className:"shell-action text-xs inline-flex items-center gap-1",onClick:i,disabled:a,children:[s.jsx(vs,{className:"h-3 w-3"}),"Reset to default rules"]}):void 0,children:[!t&&s.jsx("div",{className:"mb-3 rounded-md border border-border/60 bg-muted/30 px-3 py-1.5 text-xs text-muted-foreground",children:"Using built-in derive rules. Editing anything below switches to a custom configuration."}),p.length>0&&s.jsxs("div",{className:"mb-3 rounded-md border border-error-foreground/30 bg-error/10 px-3 py-2 text-xs text-error-foreground",children:[s.jsx("p",{className:"font-medium",children:"These derive rules won't save until fixed:"}),s.jsx("ul",{className:"mt-1 list-disc pl-4 space-y-0.5",children:p.map((_,F)=>s.jsx("li",{children:_},F))})]}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Phase ladder"}),g&&s.jsxs("div",{className:"surface-panel flex flex-wrap items-start gap-3 px-3 py-2 opacity-90",children:[s.jsx("span",{className:"mt-1 text-muted-foreground/40",children:s.jsx(bc,{className:"h-4 w-4 opacity-30"})}),s.jsxs("div",{className:"min-w-[10rem] flex-1 space-y-1",children:[s.jsx("label",{className:"text-xs text-muted-foreground",children:"Phase (catch-all, lowest priority)"}),I(g.phase,_=>v(g.rowKey,{phase:_}),"Catch-all phase"),s.jsx("span",{className:"ml-2 rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground",children:"matches everything"})]}),s.jsxs("div",{className:"min-w-[12rem] flex-1",children:[s.jsx("label",{className:"text-xs text-muted-foreground",children:"Next action"}),s.jsx("input",{type:"text",value:g.next,onChange:_=>v(g.rowKey,{next:_.target.value}),disabled:a,className:`${R} w-full`})]})]}),s.jsx(Rm,{sensors:f,collisionDetection:Sm,onDragEnd:S,children:s.jsx(Am,{items:y.map(_=>_.rowKey),strategy:Dw,children:s.jsx("div",{className:"space-y-2",children:y.map(_=>s.jsx(SJ,{rung:_,disabled:a,statusSelect:I,fieldOptions:u,registry:l,onUpdate:F=>v(_.rowKey,F),onRemove:()=>j(_.rowKey)},_.rowKey))})})}),s.jsxs("button",{type:"button",onClick:b,disabled:a,className:"shell-action text-xs inline-flex items-center gap-1",children:[s.jsx(Pt,{className:"h-3 w-3"}),"Add rung"]})]}),s.jsxs("div",{className:"mt-5 space-y-2",children:[s.jsx("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Disposition (first match wins)"}),s.jsx("div",{className:"space-y-2",children:e.disposition.map(_=>_.when===null?s.jsxs("div",{className:"surface-panel flex items-center gap-3 px-3 py-2",children:[s.jsx("span",{className:"rounded bg-muted px-1.5 py-0.5 text-[10px] uppercase tracking-wide text-muted-foreground",children:"otherwise"}),s.jsx("span",{className:"text-sm text-muted-foreground",children:"is"}),s.jsx("select",{value:_.is,onChange:F=>N(_.rowKey,{is:F.target.value}),disabled:a,className:`${R} font-mono`,children:yC.map(F=>s.jsx("option",{value:F,children:F},F))})]},_.rowKey):s.jsxs("div",{className:"surface-panel flex flex-wrap items-start gap-3 px-3 py-2",children:[s.jsx("div",{className:"min-w-[14rem] flex-1",children:s.jsx(h3,{value:_.when,onChange:F=>N(_.rowKey,{when:F}),fieldOptions:u,registry:l,disabled:a})}),s.jsxs("div",{className:"flex items-center gap-2 pt-5",children:[s.jsx("span",{className:"text-sm text-muted-foreground",children:"is"}),s.jsx("select",{value:_.is,onChange:F=>N(_.rowKey,{is:F.target.value}),disabled:a,className:`${R} font-mono`,children:yC.map(F=>s.jsx("option",{value:F,children:F},F))}),s.jsx("button",{type:"button",onClick:()=>P(_.rowKey),disabled:a,className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground","aria-label":"Remove disposition rule",children:s.jsx(mn,{className:"h-3.5 w-3.5"})})]})]},_.rowKey))}),s.jsxs("button",{type:"button",onClick:C,disabled:a,className:"shell-action text-xs inline-flex items-center gap-1",children:[s.jsx(Pt,{className:"h-3 w-3"}),"Add disposition rule"]})]}),s.jsxs("div",{className:"mt-5 space-y-2",children:[s.jsx("h4",{className:"text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Headline projection"}),s.jsxs("div",{className:"surface-panel grid grid-cols-1 gap-3 px-3 py-2 sm:grid-cols-2",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsx("label",{className:"text-xs text-muted-foreground",children:"When parked, show"}),I(e.headline.parked,_=>T("parked",_),"Parked headline status")]}),s.jsxs("div",{className:"space-y-1",children:[s.jsx("label",{className:"text-xs text-muted-foreground",children:"When blocked, show"}),I(e.headline.blocked,_=>T("blocked",_),"Blocked headline status")]}),s.jsxs("div",{className:"text-xs text-muted-foreground",children:["Terminal statuses: ",s.jsx("span",{className:"font-mono",children:"passthrough"})]}),s.jsxs("div",{className:"text-xs text-muted-foreground",children:["Active: ",s.jsx("span",{className:"font-mono",children:"phase"})]})]})]})]})}function SJ({rung:e,disabled:t,statusSelect:n,fieldOptions:r,registry:o,onUpdate:i,onRemove:a}){const{attributes:l,listeners:u,setNodeRef:f,setActivatorNodeRef:p,transform:h,transition:g,isDragging:y}=Pm({id:e.rowKey}),k={transform:js.Transform.toString(h),transition:g,zIndex:y?50:void 0,position:y?"relative":void 0};return s.jsxs("div",{ref:f,style:k,className:`surface-panel flex flex-wrap items-start gap-3 px-3 py-2 ${y?"opacity-60 shadow-lg":""}`,children:[s.jsx("button",{ref:p,...l,...u,type:"button","aria-label":"Drag to reorder rung",className:"mt-1 cursor-grab active:cursor-grabbing text-muted-foreground/40 hover:text-muted-foreground transition touch-none",children:s.jsx(bc,{className:"h-4 w-4"})}),s.jsxs("div",{className:"min-w-[10rem] space-y-1",children:[s.jsx("label",{className:"text-xs text-muted-foreground",children:"Phase"}),n(e.phase,v=>i({phase:v}),"Rung phase")]}),s.jsx("div",{className:"min-w-[14rem] flex-1",children:s.jsx(h3,{value:e.when,onChange:v=>i({when:v}),fieldOptions:r,registry:o,disabled:t})}),s.jsxs("div",{className:"min-w-[12rem] flex-1 space-y-1",children:[s.jsx("label",{className:"text-xs text-muted-foreground",children:"Next action"}),s.jsx("input",{type:"text",value:e.next,onChange:v=>i({next:v.target.value}),disabled:t,className:"w-full rounded-md border border-border/60 bg-background px-2 py-1 text-sm focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30 disabled:opacity-60"})]}),s.jsx("button",{type:"button",onClick:a,disabled:t,className:"mt-5 inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground","aria-label":"Remove rung",children:s.jsx(mn,{className:"h-3.5 w-3.5"})})]})}const CJ=new Map([["pending:start","in_progress"],["pending:block","blocked"],["draft:shape","ready_for_planning"],["draft:start","in_progress"],["ready_for_planning:plan-ready","ready_to_implement"],["ready_for_planning:start","in_progress"],["ready_to_implement:implement","in_progress"],["in_progress:block","blocked"],["in_progress:review","review"],["in_progress:complete","completed"],["in_progress:fail","failed"],["blocked:unblock","in_progress"],["review:start","in_progress"],["review:complete","completed"],["review:fail","failed"],["completed:reopen","in_progress"],["failed:reopen","in_progress"]]);let bC=0;function A0(){return bC+=1,`tr_${bC}_${Math.random().toString(36).slice(2,8)}`}function EJ(e){return{rowKey:A0(),from:e.from,command:e.command,to:e.to,label:e.label??"",description:e.description??"",requiresReason:e.requiresReason??!1}}function jv(e){return e.map(EJ)}function TJ(e){const t={from:e.from,command:e.command,to:e.to};return e.label.trim()&&(t.label=e.label.trim()),e.description.trim()&&(t.description=e.description.trim()),e.requiresReason&&(t.requiresReason=!0),t}function RJ(e){return e.map(TJ)}function g3(){const e=[];for(const[t,n]of CJ){const r=t.indexOf(":");e.push({from:t.slice(0,r),command:t.slice(r+1),to:n})}return e}function AJ(e,t){return e.filter(n=>t.has(n.from)&&t.has(n.to))}function PJ(e){const t=[],n=new Map;for(const r of e){let o=n.get(r.from);o||(o={from:r.from,rows:[]},n.set(r.from,o),t.push(o)),o.rows.push(r)}return t}function x3(e,t){const n=[];for(const r of e)t.has(r.from)||n.push(`transition ${r.from} --${r.command}--> ${r.to}: "${r.from}" is not a defined status`),t.has(r.to)||n.push(`transition ${r.from} --${r.command}--> ${r.to}: "${r.to}" is not a defined status`);return n}function y3(e,t){var i;const n=(i=t[0])==null?void 0:i.id,r=new Set;for(const a of e)a.to&&r.add(a.to);const o=new Set;for(const a of t)a.id!==n&&(r.has(a.id)||o.add(a.id));return o}function _J(e,t){const n=[];for(const r of e){const o=new Set;t.has(r.from)||o.add(r.from),t.has(r.to)||o.add(r.to),o.size&&n.push({rowKey:r.rowKey,missing:[...o]})}return n}function DJ(e,t){const n=new Set(t.map(l=>l.id)),r=y3(e,t),o=[],i=new Set;for(const l of t)i.has(l.id)||(i.add(l.id),o.push({id:l.id,label:l.label,color:l.color,terminal:l.terminal??!1,orphan:r.has(l.id),missing:!1}));for(const l of e)for(const u of[l.from,l.to])u&&!i.has(u)&&(i.add(u),o.push({id:u,label:u,terminal:!1,orphan:!1,missing:!0}));const a=e.map(l=>({rowKey:l.rowKey,from:l.from,to:l.to,command:l.command,label:l.label,requiresReason:l.requiresReason,undefinedRef:!n.has(l.from)||!n.has(l.to)}));return{nodes:o,edges:a}}function $J(e,t){const n=new Set(t.map(l=>l.id)),r=new Map(t.map(l=>[l.id,l.label])),o=new Map(e.map(l=>[l.rowKey,l])),i=[];for(const l of _J(e,n)){const u=o.get(l.rowKey);for(const f of l.missing)i.push({kind:"undefined-ref",rowKey:l.rowKey,statusId:f,message:u?`Transition ${u.from} --${u.command}--> ${u.to} references undefined status "${f}"`:`Transition references undefined status "${f}"`})}const a=y3(e,t);for(const l of t)a.has(l.id)&&i.push({kind:"orphan-status",statusId:l.id,message:`Status "${r.get(l.id)??l.id}" has no incoming transition`});return i}function Cn(e){if(typeof e=="string"||typeof e=="number")return""+e;let t="";if(Array.isArray(e))for(let n=0,r;n<e.length;n++)(r=Cn(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var IJ={value:()=>{}};function sg(){for(var e=0,t=arguments.length,n={},r;e<t;++e){if(!(r=arguments[e]+"")||r in n||/[\s.]/.test(r))throw new Error("illegal type: "+r);n[r]=[]}return new th(n)}function th(e){this._=e}function MJ(e,t){return e.trim().split(/^|\s+/).map(function(n){var r="",o=n.indexOf(".");if(o>=0&&(r=n.slice(o+1),n=n.slice(0,o)),n&&!t.hasOwnProperty(n))throw new Error("unknown type: "+n);return{type:n,name:r}})}th.prototype=sg.prototype={constructor:th,on:function(e,t){var n=this._,r=MJ(e+"",n),o,i=-1,a=r.length;if(arguments.length<2){for(;++i<a;)if((o=(e=r[i]).type)&&(o=LJ(n[o],e.name)))return o;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++i<a;)if(o=(e=r[i]).type)n[o]=vC(n[o],e.name,t);else if(t==null)for(o in n)n[o]=vC(n[o],e.name,null);return this},copy:function(){var e={},t=this._;for(var n in t)e[n]=t[n].slice();return new th(e)},call:function(e,t){if((o=arguments.length-2)>0)for(var n=new Array(o),r=0,o,i;r<o;++r)n[r]=arguments[r+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(i=this._[e],r=0,o=i.length;r<o;++r)i[r].value.apply(t,n)},apply:function(e,t,n){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var r=this._[e],o=0,i=r.length;o<i;++o)r[o].value.apply(t,n)}};function LJ(e,t){for(var n=0,r=e.length,o;n<r;++n)if((o=e[n]).name===t)return o.value}function vC(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=IJ,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var kv="http://www.w3.org/1999/xhtml";const wC={svg:"http://www.w3.org/2000/svg",xhtml:kv,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function og(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),wC.hasOwnProperty(t)?{space:wC[t],local:e}:e}function OJ(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===kv&&t.documentElement.namespaceURI===kv?t.createElement(e):t.createElementNS(n,e)}}function FJ(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function b3(e){var t=og(e);return(t.local?FJ:OJ)(t)}function zJ(){}function P0(e){return e==null?zJ:function(){return this.querySelector(e)}}function BJ(e){typeof e!="function"&&(e=P0(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],a=i.length,l=r[o]=new Array(a),u,f,p=0;p<a;++p)(u=i[p])&&(f=e.call(u,u.__data__,p,i))&&("__data__"in u&&(f.__data__=u.__data__),l[p]=f);return new Vr(r,this._parents)}function UJ(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function HJ(){return[]}function v3(e){return e==null?HJ:function(){return this.querySelectorAll(e)}}function VJ(e){return function(){return UJ(e.apply(this,arguments))}}function WJ(e){typeof e=="function"?e=VJ(e):e=v3(e);for(var t=this._groups,n=t.length,r=[],o=[],i=0;i<n;++i)for(var a=t[i],l=a.length,u,f=0;f<l;++f)(u=a[f])&&(r.push(e.call(u,u.__data__,f,a)),o.push(u));return new Vr(r,o)}function w3(e){return function(){return this.matches(e)}}function j3(e){return function(t){return t.matches(e)}}var KJ=Array.prototype.find;function qJ(e){return function(){return KJ.call(this.children,e)}}function GJ(){return this.firstElementChild}function YJ(e){return this.select(e==null?GJ:qJ(typeof e=="function"?e:j3(e)))}var XJ=Array.prototype.filter;function QJ(){return Array.from(this.children)}function JJ(e){return function(){return XJ.call(this.children,e)}}function ZJ(e){return this.selectAll(e==null?QJ:JJ(typeof e=="function"?e:j3(e)))}function eZ(e){typeof e!="function"&&(e=w3(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],a=i.length,l=r[o]=[],u,f=0;f<a;++f)(u=i[f])&&e.call(u,u.__data__,f,i)&&l.push(u);return new Vr(r,this._parents)}function k3(e){return new Array(e.length)}function tZ(){return new Vr(this._enter||this._groups.map(k3),this._parents)}function zh(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}zh.prototype={constructor:zh,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,t){return this._parent.insertBefore(e,t)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function nZ(e){return function(){return e}}function rZ(e,t,n,r,o,i){for(var a=0,l,u=t.length,f=i.length;a<f;++a)(l=t[a])?(l.__data__=i[a],r[a]=l):n[a]=new zh(e,i[a]);for(;a<u;++a)(l=t[a])&&(o[a]=l)}function sZ(e,t,n,r,o,i,a){var l,u,f=new Map,p=t.length,h=i.length,g=new Array(p),y;for(l=0;l<p;++l)(u=t[l])&&(g[l]=y=a.call(u,u.__data__,l,t)+"",f.has(y)?o[l]=u:f.set(y,u));for(l=0;l<h;++l)y=a.call(e,i[l],l,i)+"",(u=f.get(y))?(r[l]=u,u.__data__=i[l],f.delete(y)):n[l]=new zh(e,i[l]);for(l=0;l<p;++l)(u=t[l])&&f.get(g[l])===u&&(o[l]=u)}function oZ(e){return e.__data__}function iZ(e,t){if(!arguments.length)return Array.from(this,oZ);var n=t?sZ:rZ,r=this._parents,o=this._groups;typeof e!="function"&&(e=nZ(e));for(var i=o.length,a=new Array(i),l=new Array(i),u=new Array(i),f=0;f<i;++f){var p=r[f],h=o[f],g=h.length,y=aZ(e.call(p,p&&p.__data__,f,r)),k=y.length,v=l[f]=new Array(k),b=a[f]=new Array(k),j=u[f]=new Array(g);n(p,h,v,b,j,y,t);for(var S=0,N=0,C,P;S<k;++S)if(C=v[S]){for(S>=N&&(N=S+1);!(P=b[N])&&++N<k;);C._next=P||null}}return a=new Vr(a,r),a._enter=l,a._exit=u,a}function aZ(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function lZ(){return new Vr(this._exit||this._groups.map(k3),this._parents)}function cZ(e,t,n){var r=this.enter(),o=this,i=this.exit();return typeof e=="function"?(r=e(r),r&&(r=r.selection())):r=r.append(e+""),t!=null&&(o=t(o),o&&(o=o.selection())),n==null?i.remove():n(i),r&&o?r.merge(o).order():o}function uZ(e){for(var t=e.selection?e.selection():e,n=this._groups,r=t._groups,o=n.length,i=r.length,a=Math.min(o,i),l=new Array(o),u=0;u<a;++u)for(var f=n[u],p=r[u],h=f.length,g=l[u]=new Array(h),y,k=0;k<h;++k)(y=f[k]||p[k])&&(g[k]=y);for(;u<o;++u)l[u]=n[u];return new Vr(l,this._parents)}function dZ(){for(var e=this._groups,t=-1,n=e.length;++t<n;)for(var r=e[t],o=r.length-1,i=r[o],a;--o>=0;)(a=r[o])&&(i&&a.compareDocumentPosition(i)^4&&i.parentNode.insertBefore(a,i),i=a);return this}function fZ(e){e||(e=pZ);function t(h,g){return h&&g?e(h.__data__,g.__data__):!h-!g}for(var n=this._groups,r=n.length,o=new Array(r),i=0;i<r;++i){for(var a=n[i],l=a.length,u=o[i]=new Array(l),f,p=0;p<l;++p)(f=a[p])&&(u[p]=f);u.sort(t)}return new Vr(o,this._parents).order()}function pZ(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function hZ(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function mZ(){return Array.from(this)}function gZ(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length;o<i;++o){var a=r[o];if(a)return a}return null}function xZ(){let e=0;for(const t of this)++e;return e}function yZ(){return!this.node()}function bZ(e){for(var t=this._groups,n=0,r=t.length;n<r;++n)for(var o=t[n],i=0,a=o.length,l;i<a;++i)(l=o[i])&&e.call(l,l.__data__,i,o);return this}function vZ(e){return function(){this.removeAttribute(e)}}function wZ(e){return function(){this.removeAttributeNS(e.space,e.local)}}function jZ(e,t){return function(){this.setAttribute(e,t)}}function kZ(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function NZ(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function SZ(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}}function CZ(e,t){var n=og(e);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((t==null?n.local?wZ:vZ:typeof t=="function"?n.local?SZ:NZ:n.local?kZ:jZ)(n,t))}function N3(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function EZ(e){return function(){this.style.removeProperty(e)}}function TZ(e,t,n){return function(){this.style.setProperty(e,t,n)}}function RZ(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function AZ(e,t,n){return arguments.length>1?this.each((t==null?EZ:typeof t=="function"?RZ:TZ)(e,t,n??"")):ic(this.node(),e)}function ic(e,t){return e.style.getPropertyValue(t)||N3(e).getComputedStyle(e,null).getPropertyValue(t)}function PZ(e){return function(){delete this[e]}}function _Z(e,t){return function(){this[e]=t}}function DZ(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function $Z(e,t){return arguments.length>1?this.each((t==null?PZ:typeof t=="function"?DZ:_Z)(e,t)):this.node()[e]}function S3(e){return e.trim().split(/^|\s+/)}function _0(e){return e.classList||new C3(e)}function C3(e){this._node=e,this._names=S3(e.getAttribute("class")||"")}C3.prototype={add:function(e){var t=this._names.indexOf(e);t<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var t=this._names.indexOf(e);t>=0&&(this._names.splice(t,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function E3(e,t){for(var n=_0(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function T3(e,t){for(var n=_0(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function IZ(e){return function(){E3(this,e)}}function MZ(e){return function(){T3(this,e)}}function LZ(e,t){return function(){(t.apply(this,arguments)?E3:T3)(this,e)}}function OZ(e,t){var n=S3(e+"");if(arguments.length<2){for(var r=_0(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each((typeof t=="function"?LZ:t?IZ:MZ)(n,t))}function FZ(){this.textContent=""}function zZ(e){return function(){this.textContent=e}}function BZ(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function UZ(e){return arguments.length?this.each(e==null?FZ:(typeof e=="function"?BZ:zZ)(e)):this.node().textContent}function HZ(){this.innerHTML=""}function VZ(e){return function(){this.innerHTML=e}}function WZ(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function KZ(e){return arguments.length?this.each(e==null?HZ:(typeof e=="function"?WZ:VZ)(e)):this.node().innerHTML}function qZ(){this.nextSibling&&this.parentNode.appendChild(this)}function GZ(){return this.each(qZ)}function YZ(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function XZ(){return this.each(YZ)}function QZ(e){var t=typeof e=="function"?e:b3(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function JZ(){return null}function ZZ(e,t){var n=typeof e=="function"?e:b3(e),r=t==null?JZ:typeof t=="function"?t:P0(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function eee(){var e=this.parentNode;e&&e.removeChild(this)}function tee(){return this.each(eee)}function nee(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function ree(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function see(e){return this.select(e?ree:nee)}function oee(e){return arguments.length?this.property("__data__",e):this.node().__data__}function iee(e){return function(t){e.call(this,t,this.__data__)}}function aee(e){return e.trim().split(/^|\s+/).map(function(t){var n="",r=t.indexOf(".");return r>=0&&(n=t.slice(r+1),t=t.slice(0,r)),{type:t,name:n}})}function lee(e){return function(){var t=this.__on;if(t){for(var n=0,r=-1,o=t.length,i;n<o;++n)i=t[n],(!e.type||i.type===e.type)&&i.name===e.name?this.removeEventListener(i.type,i.listener,i.options):t[++r]=i;++r?t.length=r:delete this.__on}}}function cee(e,t,n){return function(){var r=this.__on,o,i=iee(t);if(r){for(var a=0,l=r.length;a<l;++a)if((o=r[a]).type===e.type&&o.name===e.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=i,o.options=n),o.value=t;return}}this.addEventListener(e.type,i,n),o={type:e.type,name:e.name,value:t,listener:i,options:n},r?r.push(o):this.__on=[o]}}function uee(e,t,n){var r=aee(e+""),o,i=r.length,a;if(arguments.length<2){var l=this.node().__on;if(l){for(var u=0,f=l.length,p;u<f;++u)for(o=0,p=l[u];o<i;++o)if((a=r[o]).type===p.type&&a.name===p.name)return p.value}return}for(l=t?cee:lee,o=0;o<i;++o)this.each(l(r[o],t,n));return this}function R3(e,t,n){var r=N3(e),o=r.CustomEvent;typeof o=="function"?o=new o(t,n):(o=r.document.createEvent("Event"),n?(o.initEvent(t,n.bubbles,n.cancelable),o.detail=n.detail):o.initEvent(t,!1,!1)),e.dispatchEvent(o)}function dee(e,t){return function(){return R3(this,e,t)}}function fee(e,t){return function(){return R3(this,e,t.apply(this,arguments))}}function pee(e,t){return this.each((typeof t=="function"?fee:dee)(e,t))}function*hee(){for(var e=this._groups,t=0,n=e.length;t<n;++t)for(var r=e[t],o=0,i=r.length,a;o<i;++o)(a=r[o])&&(yield a)}var A3=[null];function Vr(e,t){this._groups=e,this._parents=t}function Zd(){return new Vr([[document.documentElement]],A3)}function mee(){return this}Vr.prototype=Zd.prototype={constructor:Vr,select:BJ,selectAll:WJ,selectChild:YJ,selectChildren:ZJ,filter:eZ,data:iZ,enter:tZ,exit:lZ,join:cZ,merge:uZ,selection:mee,order:dZ,sort:fZ,call:hZ,nodes:mZ,node:gZ,size:xZ,empty:yZ,each:bZ,attr:CZ,style:AZ,property:$Z,classed:OZ,text:UZ,html:KZ,raise:GZ,lower:XZ,append:QZ,insert:ZZ,remove:tee,clone:see,datum:oee,on:uee,dispatch:pee,[Symbol.iterator]:hee};function Br(e){return typeof e=="string"?new Vr([[document.querySelector(e)]],[document.documentElement]):new Vr([[e]],A3)}function gee(e){let t;for(;t=e.sourceEvent;)e=t;return e}function hs(e,t){if(e=gee(e),t===void 0&&(t=e.currentTarget),t){var n=t.ownerSVGElement||t;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=e.clientX,r.y=e.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}if(t.getBoundingClientRect){var o=t.getBoundingClientRect();return[e.clientX-o.left-t.clientLeft,e.clientY-o.top-t.clientTop]}}return[e.pageX,e.pageY]}const xee={passive:!1},wd={capture:!0,passive:!1};function tb(e){e.stopImmediatePropagation()}function Xl(e){e.preventDefault(),e.stopImmediatePropagation()}function P3(e){var t=e.document.documentElement,n=Br(e).on("dragstart.drag",Xl,wd);"onselectstart"in t?n.on("selectstart.drag",Xl,wd):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function _3(e,t){var n=e.document.documentElement,r=Br(e).on("dragstart.drag",null);t&&(r.on("click.drag",Xl,wd),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const Cp=e=>()=>e;function Nv(e,{sourceEvent:t,subject:n,target:r,identifier:o,active:i,x:a,y:l,dx:u,dy:f,dispatch:p}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:i,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:l,enumerable:!0,configurable:!0},dx:{value:u,enumerable:!0,configurable:!0},dy:{value:f,enumerable:!0,configurable:!0},_:{value:p}})}Nv.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function yee(e){return!e.ctrlKey&&!e.button}function bee(){return this.parentNode}function vee(e,t){return t??{x:e.x,y:e.y}}function wee(){return navigator.maxTouchPoints||"ontouchstart"in this}function D3(){var e=yee,t=bee,n=vee,r=wee,o={},i=sg("start","drag","end"),a=0,l,u,f,p,h=0;function g(C){C.on("mousedown.drag",y).filter(r).on("touchstart.drag",b).on("touchmove.drag",j,xee).on("touchend.drag touchcancel.drag",S).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function y(C,P){if(!(p||!e.call(this,C,P))){var T=N(this,t.call(this,C,P),C,P,"mouse");T&&(Br(C.view).on("mousemove.drag",k,wd).on("mouseup.drag",v,wd),P3(C.view),tb(C),f=!1,l=C.clientX,u=C.clientY,T("start",C))}}function k(C){if(Xl(C),!f){var P=C.clientX-l,T=C.clientY-u;f=P*P+T*T>h}o.mouse("drag",C)}function v(C){Br(C.view).on("mousemove.drag mouseup.drag",null),_3(C.view,f),Xl(C),o.mouse("end",C)}function b(C,P){if(e.call(this,C,P)){var T=C.changedTouches,R=t.call(this,C,P),I=T.length,_,F;for(_=0;_<I;++_)(F=N(this,R,C,P,T[_].identifier,T[_]))&&(tb(C),F("start",C,T[_]))}}function j(C){var P=C.changedTouches,T=P.length,R,I;for(R=0;R<T;++R)(I=o[P[R].identifier])&&(Xl(C),I("drag",C,P[R]))}function S(C){var P=C.changedTouches,T=P.length,R,I;for(p&&clearTimeout(p),p=setTimeout(function(){p=null},500),R=0;R<T;++R)(I=o[P[R].identifier])&&(tb(C),I("end",C,P[R]))}function N(C,P,T,R,I,_){var F=i.copy(),D=hs(_||T,P),W,V,$;if(($=n.call(C,new Nv("beforestart",{sourceEvent:T,target:g,identifier:I,active:a,x:D[0],y:D[1],dx:0,dy:0,dispatch:F}),R))!=null)return W=$.x-D[0]||0,V=$.y-D[1]||0,function O(U,K,M){var H=D,L;switch(U){case"start":o[I]=O,L=a++;break;case"end":delete o[I],--a;case"drag":D=hs(M||K,P),L=a;break}F.call(U,C,new Nv(U,{sourceEvent:K,subject:$,target:g,identifier:I,active:L,x:D[0]+W,y:D[1]+V,dx:D[0]-H[0],dy:D[1]-H[1],dispatch:F}),R)}}return g.filter=function(C){return arguments.length?(e=typeof C=="function"?C:Cp(!!C),g):e},g.container=function(C){return arguments.length?(t=typeof C=="function"?C:Cp(C),g):t},g.subject=function(C){return arguments.length?(n=typeof C=="function"?C:Cp(C),g):n},g.touchable=function(C){return arguments.length?(r=typeof C=="function"?C:Cp(!!C),g):r},g.on=function(){var C=i.on.apply(i,arguments);return C===i?g:C},g.clickDistance=function(C){return arguments.length?(h=(C=+C)*C,g):Math.sqrt(h)},g}function D0(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function $3(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function ef(){}var jd=.7,Bh=1/jd,Ql="\\s*([+-]?\\d+)\\s*",kd="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",to="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",jee=/^#([0-9a-f]{3,8})$/,kee=new RegExp(`^rgb\\(${Ql},${Ql},${Ql}\\)$`),Nee=new RegExp(`^rgb\\(${to},${to},${to}\\)$`),See=new RegExp(`^rgba\\(${Ql},${Ql},${Ql},${kd}\\)$`),Cee=new RegExp(`^rgba\\(${to},${to},${to},${kd}\\)$`),Eee=new RegExp(`^hsl\\(${kd},${to},${to}\\)$`),Tee=new RegExp(`^hsla\\(${kd},${to},${to},${kd}\\)$`),jC={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};D0(ef,ka,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:kC,formatHex:kC,formatHex8:Ree,formatHsl:Aee,formatRgb:NC,toString:NC});function kC(){return this.rgb().formatHex()}function Ree(){return this.rgb().formatHex8()}function Aee(){return I3(this).formatHsl()}function NC(){return this.rgb().formatRgb()}function ka(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=jee.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?SC(t):n===3?new jr(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?Ep(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?Ep(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=kee.exec(e))?new jr(t[1],t[2],t[3],1):(t=Nee.exec(e))?new jr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=See.exec(e))?Ep(t[1],t[2],t[3],t[4]):(t=Cee.exec(e))?Ep(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Eee.exec(e))?TC(t[1],t[2]/100,t[3]/100,1):(t=Tee.exec(e))?TC(t[1],t[2]/100,t[3]/100,t[4]):jC.hasOwnProperty(e)?SC(jC[e]):e==="transparent"?new jr(NaN,NaN,NaN,0):null}function SC(e){return new jr(e>>16&255,e>>8&255,e&255,1)}function Ep(e,t,n,r){return r<=0&&(e=t=n=NaN),new jr(e,t,n,r)}function Pee(e){return e instanceof ef||(e=ka(e)),e?(e=e.rgb(),new jr(e.r,e.g,e.b,e.opacity)):new jr}function Sv(e,t,n,r){return arguments.length===1?Pee(e):new jr(e,t,n,r??1)}function jr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}D0(jr,Sv,$3(ef,{brighter(e){return e=e==null?Bh:Math.pow(Bh,e),new jr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?jd:Math.pow(jd,e),new jr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new jr(ya(this.r),ya(this.g),ya(this.b),Uh(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:CC,formatHex:CC,formatHex8:_ee,formatRgb:EC,toString:EC}));function CC(){return`#${fa(this.r)}${fa(this.g)}${fa(this.b)}`}function _ee(){return`#${fa(this.r)}${fa(this.g)}${fa(this.b)}${fa((isNaN(this.opacity)?1:this.opacity)*255)}`}function EC(){const e=Uh(this.opacity);return`${e===1?"rgb(":"rgba("}${ya(this.r)}, ${ya(this.g)}, ${ya(this.b)}${e===1?")":`, ${e})`}`}function Uh(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ya(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function fa(e){return e=ya(e),(e<16?"0":"")+e.toString(16)}function TC(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new ms(e,t,n,r)}function I3(e){if(e instanceof ms)return new ms(e.h,e.s,e.l,e.opacity);if(e instanceof ef||(e=ka(e)),!e)return new ms;if(e instanceof ms)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,o=Math.min(t,n,r),i=Math.max(t,n,r),a=NaN,l=i-o,u=(i+o)/2;return l?(t===i?a=(n-r)/l+(n<r)*6:n===i?a=(r-t)/l+2:a=(t-n)/l+4,l/=u<.5?i+o:2-i-o,a*=60):l=u>0&&u<1?0:a,new ms(a,l,u,e.opacity)}function Dee(e,t,n,r){return arguments.length===1?I3(e):new ms(e,t,n,r??1)}function ms(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}D0(ms,Dee,$3(ef,{brighter(e){return e=e==null?Bh:Math.pow(Bh,e),new ms(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?jd:Math.pow(jd,e),new ms(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,o=2*n-r;return new jr(nb(e>=240?e-240:e+120,o,r),nb(e,o,r),nb(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new ms(RC(this.h),Tp(this.s),Tp(this.l),Uh(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Uh(this.opacity);return`${e===1?"hsl(":"hsla("}${RC(this.h)}, ${Tp(this.s)*100}%, ${Tp(this.l)*100}%${e===1?")":`, ${e})`}`}}));function RC(e){return e=(e||0)%360,e<0?e+360:e}function Tp(e){return Math.max(0,Math.min(1,e||0))}function nb(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}const ig=e=>()=>e;function M3(e,t){return function(n){return e+n*t}}function $ee(e,t,n){return e=Math.pow(e,n),t=Math.pow(t,n)-e,n=1/n,function(r){return Math.pow(e+r*t,n)}}function Xle(e,t){var n=t-e;return n?M3(e,n>180||n<-180?n-360*Math.round(n/360):n):ig(isNaN(e)?t:e)}function Iee(e){return(e=+e)==1?L3:function(t,n){return n-t?$ee(t,n,e):ig(isNaN(t)?n:t)}}function L3(e,t){var n=t-e;return n?M3(e,n):ig(isNaN(e)?t:e)}const Hh=(function e(t){var n=Iee(t);function r(o,i){var a=n((o=Sv(o)).r,(i=Sv(i)).r),l=n(o.g,i.g),u=n(o.b,i.b),f=L3(o.opacity,i.opacity);return function(p){return o.r=a(p),o.g=l(p),o.b=u(p),o.opacity=f(p),o+""}}return r.gamma=e,r})(1);function Mee(e,t){t||(t=[]);var n=e?Math.min(t.length,e.length):0,r=t.slice(),o;return function(i){for(o=0;o<n;++o)r[o]=e[o]*(1-i)+t[o]*i;return r}}function Lee(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Oee(e,t){var n=t?t.length:0,r=e?Math.min(n,e.length):0,o=new Array(r),i=new Array(n),a;for(a=0;a<r;++a)o[a]=rd(e[a],t[a]);for(;a<n;++a)i[a]=t[a];return function(l){for(a=0;a<r;++a)i[a]=o[a](l);return i}}function Fee(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function Ks(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function zee(e,t){var n={},r={},o;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(o in t)o in e?n[o]=rd(e[o],t[o]):r[o]=t[o];return function(i){for(o in n)r[o]=n[o](i);return r}}var Cv=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,rb=new RegExp(Cv.source,"g");function Bee(e){return function(){return e}}function Uee(e){return function(t){return e(t)+""}}function O3(e,t){var n=Cv.lastIndex=rb.lastIndex=0,r,o,i,a=-1,l=[],u=[];for(e=e+"",t=t+"";(r=Cv.exec(e))&&(o=rb.exec(t));)(i=o.index)>n&&(i=t.slice(n,i),l[a]?l[a]+=i:l[++a]=i),(r=r[0])===(o=o[0])?l[a]?l[a]+=o:l[++a]=o:(l[++a]=null,u.push({i:a,x:Ks(r,o)})),n=rb.lastIndex;return n<t.length&&(i=t.slice(n),l[a]?l[a]+=i:l[++a]=i),l.length<2?u[0]?Uee(u[0].x):Bee(t):(t=u.length,function(f){for(var p=0,h;p<t;++p)l[(h=u[p]).i]=h.x(f);return l.join("")})}function rd(e,t){var n=typeof t,r;return t==null||n==="boolean"?ig(t):(n==="number"?Ks:n==="string"?(r=ka(t))?(t=r,Hh):O3:t instanceof ka?Hh:t instanceof Date?Fee:Lee(t)?Mee:Array.isArray(t)?Oee:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?zee:Ks)(e,t)}var AC=180/Math.PI,Ev={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function F3(e,t,n,r,o,i){var a,l,u;return(a=Math.sqrt(e*e+t*t))&&(e/=a,t/=a),(u=e*n+t*r)&&(n-=e*u,r-=t*u),(l=Math.sqrt(n*n+r*r))&&(n/=l,r/=l,u/=l),e*r<t*n&&(e=-e,t=-t,u=-u,a=-a),{translateX:o,translateY:i,rotate:Math.atan2(t,e)*AC,skewX:Math.atan(u)*AC,scaleX:a,scaleY:l}}var Rp;function Hee(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Ev:F3(t.a,t.b,t.c,t.d,t.e,t.f)}function Vee(e){return e==null||(Rp||(Rp=document.createElementNS("http://www.w3.org/2000/svg","g")),Rp.setAttribute("transform",e),!(e=Rp.transform.baseVal.consolidate()))?Ev:(e=e.matrix,F3(e.a,e.b,e.c,e.d,e.e,e.f))}function z3(e,t,n,r){function o(f){return f.length?f.pop()+" ":""}function i(f,p,h,g,y,k){if(f!==h||p!==g){var v=y.push("translate(",null,t,null,n);k.push({i:v-4,x:Ks(f,h)},{i:v-2,x:Ks(p,g)})}else(h||g)&&y.push("translate("+h+t+g+n)}function a(f,p,h,g){f!==p?(f-p>180?p+=360:p-f>180&&(f+=360),g.push({i:h.push(o(h)+"rotate(",null,r)-2,x:Ks(f,p)})):p&&h.push(o(h)+"rotate("+p+r)}function l(f,p,h,g){f!==p?g.push({i:h.push(o(h)+"skewX(",null,r)-2,x:Ks(f,p)}):p&&h.push(o(h)+"skewX("+p+r)}function u(f,p,h,g,y,k){if(f!==h||p!==g){var v=y.push(o(y)+"scale(",null,",",null,")");k.push({i:v-4,x:Ks(f,h)},{i:v-2,x:Ks(p,g)})}else(h!==1||g!==1)&&y.push(o(y)+"scale("+h+","+g+")")}return function(f,p){var h=[],g=[];return f=e(f),p=e(p),i(f.translateX,f.translateY,p.translateX,p.translateY,h,g),a(f.rotate,p.rotate,h,g),l(f.skewX,p.skewX,h,g),u(f.scaleX,f.scaleY,p.scaleX,p.scaleY,h,g),f=p=null,function(y){for(var k=-1,v=g.length,b;++k<v;)h[(b=g[k]).i]=b.x(y);return h.join("")}}}var Wee=z3(Hee,"px, ","px)","deg)"),Kee=z3(Vee,", ",")",")"),qee=1e-12;function PC(e){return((e=Math.exp(e))+1/e)/2}function Gee(e){return((e=Math.exp(e))-1/e)/2}function Yee(e){return((e=Math.exp(2*e))-1)/(e+1)}const nh=(function e(t,n,r){function o(i,a){var l=i[0],u=i[1],f=i[2],p=a[0],h=a[1],g=a[2],y=p-l,k=h-u,v=y*y+k*k,b,j;if(v<qee)j=Math.log(g/f)/t,b=function(R){return[l+R*y,u+R*k,f*Math.exp(t*R*j)]};else{var S=Math.sqrt(v),N=(g*g-f*f+r*v)/(2*f*n*S),C=(g*g-f*f-r*v)/(2*g*n*S),P=Math.log(Math.sqrt(N*N+1)-N),T=Math.log(Math.sqrt(C*C+1)-C);j=(T-P)/t,b=function(R){var I=R*j,_=PC(P),F=f/(n*S)*(_*Yee(t*I+P)-Gee(P));return[l+F*y,u+F*k,f*_/PC(t*I+P)]}}return b.duration=j*1e3*t/Math.SQRT2,b}return o.rho=function(i){var a=Math.max(.001,+i),l=a*a,u=l*l;return e(a,l,u)},o})(Math.SQRT2,2,4);var ac=0,Iu=0,_u=0,B3=1e3,Vh,Mu,Wh=0,Na=0,ag=0,Nd=typeof performance=="object"&&performance.now?performance:Date,U3=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function $0(){return Na||(U3(Xee),Na=Nd.now()+ag)}function Xee(){Na=0}function Kh(){this._call=this._time=this._next=null}Kh.prototype=H3.prototype={constructor:Kh,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?$0():+n)+(t==null?0:+t),!this._next&&Mu!==this&&(Mu?Mu._next=this:Vh=this,Mu=this),this._call=e,this._time=n,Tv()},stop:function(){this._call&&(this._call=null,this._time=1/0,Tv())}};function H3(e,t,n){var r=new Kh;return r.restart(e,t,n),r}function Qee(){$0(),++ac;for(var e=Vh,t;e;)(t=Na-e._time)>=0&&e._call.call(void 0,t),e=e._next;--ac}function _C(){Na=(Wh=Nd.now())+ag,ac=Iu=0;try{Qee()}finally{ac=0,Zee(),Na=0}}function Jee(){var e=Nd.now(),t=e-Wh;t>B3&&(ag-=t,Wh=e)}function Zee(){for(var e,t=Vh,n,r=1/0;t;)t._call?(r>t._time&&(r=t._time),e=t,t=t._next):(n=t._next,t._next=null,t=e?e._next=n:Vh=n);Mu=e,Tv(r)}function Tv(e){if(!ac){Iu&&(Iu=clearTimeout(Iu));var t=e-Na;t>24?(e<1/0&&(Iu=setTimeout(_C,e-Nd.now()-ag)),_u&&(_u=clearInterval(_u))):(_u||(Wh=Nd.now(),_u=setInterval(Jee,B3)),ac=1,U3(_C))}}function DC(e,t,n){var r=new Kh;return t=t==null?0:+t,r.restart(o=>{r.stop(),e(o+t)},t,n),r}var ete=sg("start","end","cancel","interrupt"),tte=[],V3=0,$C=1,Rv=2,rh=3,IC=4,Av=5,sh=6;function lg(e,t,n,r,o,i){var a=e.__transition;if(!a)e.__transition={};else if(n in a)return;nte(e,n,{name:t,index:r,group:o,on:ete,tween:tte,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:V3})}function I0(e,t){var n=Ps(e,t);if(n.state>V3)throw new Error("too late; already scheduled");return n}function oo(e,t){var n=Ps(e,t);if(n.state>rh)throw new Error("too late; already running");return n}function Ps(e,t){var n=e.__transition;if(!n||!(n=n[t]))throw new Error("transition not found");return n}function nte(e,t,n){var r=e.__transition,o;r[t]=n,n.timer=H3(i,0,n.time);function i(f){n.state=$C,n.timer.restart(a,n.delay,n.time),n.delay<=f&&a(f-n.delay)}function a(f){var p,h,g,y;if(n.state!==$C)return u();for(p in r)if(y=r[p],y.name===n.name){if(y.state===rh)return DC(a);y.state===IC?(y.state=sh,y.timer.stop(),y.on.call("interrupt",e,e.__data__,y.index,y.group),delete r[p]):+p<t&&(y.state=sh,y.timer.stop(),y.on.call("cancel",e,e.__data__,y.index,y.group),delete r[p])}if(DC(function(){n.state===rh&&(n.state=IC,n.timer.restart(l,n.delay,n.time),l(f))}),n.state=Rv,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Rv){for(n.state=rh,o=new Array(g=n.tween.length),p=0,h=-1;p<g;++p)(y=n.tween[p].value.call(e,e.__data__,n.index,n.group))&&(o[++h]=y);o.length=h+1}}function l(f){for(var p=f<n.duration?n.ease.call(null,f/n.duration):(n.timer.restart(u),n.state=Av,1),h=-1,g=o.length;++h<g;)o[h].call(e,p);n.state===Av&&(n.on.call("end",e,e.__data__,n.index,n.group),u())}function u(){n.state=sh,n.timer.stop(),delete r[t];for(var f in r)return;delete e.__transition}}function oh(e,t){var n=e.__transition,r,o,i=!0,a;if(n){t=t==null?null:t+"";for(a in n){if((r=n[a]).name!==t){i=!1;continue}o=r.state>Rv&&r.state<Av,r.state=sh,r.timer.stop(),r.on.call(o?"interrupt":"cancel",e,e.__data__,r.index,r.group),delete n[a]}i&&delete e.__transition}}function rte(e){return this.each(function(){oh(this,e)})}function ste(e,t){var n,r;return function(){var o=oo(this,e),i=o.tween;if(i!==n){r=n=i;for(var a=0,l=r.length;a<l;++a)if(r[a].name===t){r=r.slice(),r.splice(a,1);break}}o.tween=r}}function ote(e,t,n){var r,o;if(typeof n!="function")throw new Error;return function(){var i=oo(this,e),a=i.tween;if(a!==r){o=(r=a).slice();for(var l={name:t,value:n},u=0,f=o.length;u<f;++u)if(o[u].name===t){o[u]=l;break}u===f&&o.push(l)}i.tween=o}}function ite(e,t){var n=this._id;if(e+="",arguments.length<2){for(var r=Ps(this.node(),n).tween,o=0,i=r.length,a;o<i;++o)if((a=r[o]).name===e)return a.value;return null}return this.each((t==null?ste:ote)(n,e,t))}function M0(e,t,n){var r=e._id;return e.each(function(){var o=oo(this,r);(o.value||(o.value={}))[t]=n.apply(this,arguments)}),function(o){return Ps(o,r).value[t]}}function W3(e,t){var n;return(typeof t=="number"?Ks:t instanceof ka?Hh:(n=ka(t))?(t=n,Hh):O3)(e,t)}function ate(e){return function(){this.removeAttribute(e)}}function lte(e){return function(){this.removeAttributeNS(e.space,e.local)}}function cte(e,t,n){var r,o=n+"",i;return function(){var a=this.getAttribute(e);return a===o?null:a===r?i:i=t(r=a,n)}}function ute(e,t,n){var r,o=n+"",i;return function(){var a=this.getAttributeNS(e.space,e.local);return a===o?null:a===r?i:i=t(r=a,n)}}function dte(e,t,n){var r,o,i;return function(){var a,l=n(this),u;return l==null?void this.removeAttribute(e):(a=this.getAttribute(e),u=l+"",a===u?null:a===r&&u===o?i:(o=u,i=t(r=a,l)))}}function fte(e,t,n){var r,o,i;return function(){var a,l=n(this),u;return l==null?void this.removeAttributeNS(e.space,e.local):(a=this.getAttributeNS(e.space,e.local),u=l+"",a===u?null:a===r&&u===o?i:(o=u,i=t(r=a,l)))}}function pte(e,t){var n=og(e),r=n==="transform"?Kee:W3;return this.attrTween(e,typeof t=="function"?(n.local?fte:dte)(n,r,M0(this,"attr."+e,t)):t==null?(n.local?lte:ate)(n):(n.local?ute:cte)(n,r,t))}function hte(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function mte(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function gte(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&mte(e,i)),n}return o._value=t,o}function xte(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&hte(e,i)),n}return o._value=t,o}function yte(e,t){var n="attr."+e;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;var r=og(e);return this.tween(n,(r.local?gte:xte)(r,t))}function bte(e,t){return function(){I0(this,e).delay=+t.apply(this,arguments)}}function vte(e,t){return t=+t,function(){I0(this,e).delay=t}}function wte(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?bte:vte)(t,e)):Ps(this.node(),t).delay}function jte(e,t){return function(){oo(this,e).duration=+t.apply(this,arguments)}}function kte(e,t){return t=+t,function(){oo(this,e).duration=t}}function Nte(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?jte:kte)(t,e)):Ps(this.node(),t).duration}function Ste(e,t){if(typeof t!="function")throw new Error;return function(){oo(this,e).ease=t}}function Cte(e){var t=this._id;return arguments.length?this.each(Ste(t,e)):Ps(this.node(),t).ease}function Ete(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;oo(this,e).ease=n}}function Tte(e){if(typeof e!="function")throw new Error;return this.each(Ete(this._id,e))}function Rte(e){typeof e!="function"&&(e=w3(e));for(var t=this._groups,n=t.length,r=new Array(n),o=0;o<n;++o)for(var i=t[o],a=i.length,l=r[o]=[],u,f=0;f<a;++f)(u=i[f])&&e.call(u,u.__data__,f,i)&&l.push(u);return new _o(r,this._parents,this._name,this._id)}function Ate(e){if(e._id!==this._id)throw new Error;for(var t=this._groups,n=e._groups,r=t.length,o=n.length,i=Math.min(r,o),a=new Array(r),l=0;l<i;++l)for(var u=t[l],f=n[l],p=u.length,h=a[l]=new Array(p),g,y=0;y<p;++y)(g=u[y]||f[y])&&(h[y]=g);for(;l<r;++l)a[l]=t[l];return new _o(a,this._parents,this._name,this._id)}function Pte(e){return(e+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||t==="start"})}function _te(e,t,n){var r,o,i=Pte(t)?I0:oo;return function(){var a=i(this,e),l=a.on;l!==r&&(o=(r=l).copy()).on(t,n),a.on=o}}function Dte(e,t){var n=this._id;return arguments.length<2?Ps(this.node(),n).on.on(e):this.each(_te(n,e,t))}function $te(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function Ite(){return this.on("end.remove",$te(this._id))}function Mte(e){var t=this._name,n=this._id;typeof e!="function"&&(e=P0(e));for(var r=this._groups,o=r.length,i=new Array(o),a=0;a<o;++a)for(var l=r[a],u=l.length,f=i[a]=new Array(u),p,h,g=0;g<u;++g)(p=l[g])&&(h=e.call(p,p.__data__,g,l))&&("__data__"in p&&(h.__data__=p.__data__),f[g]=h,lg(f[g],t,n,g,f,Ps(p,n)));return new _o(i,this._parents,t,n)}function Lte(e){var t=this._name,n=this._id;typeof e!="function"&&(e=v3(e));for(var r=this._groups,o=r.length,i=[],a=[],l=0;l<o;++l)for(var u=r[l],f=u.length,p,h=0;h<f;++h)if(p=u[h]){for(var g=e.call(p,p.__data__,h,u),y,k=Ps(p,n),v=0,b=g.length;v<b;++v)(y=g[v])&&lg(y,t,n,v,g,k);i.push(g),a.push(p)}return new _o(i,a,t,n)}var Ote=Zd.prototype.constructor;function Fte(){return new Ote(this._groups,this._parents)}function zte(e,t){var n,r,o;return function(){var i=ic(this,e),a=(this.style.removeProperty(e),ic(this,e));return i===a?null:i===n&&a===r?o:o=t(n=i,r=a)}}function K3(e){return function(){this.style.removeProperty(e)}}function Bte(e,t,n){var r,o=n+"",i;return function(){var a=ic(this,e);return a===o?null:a===r?i:i=t(r=a,n)}}function Ute(e,t,n){var r,o,i;return function(){var a=ic(this,e),l=n(this),u=l+"";return l==null&&(u=l=(this.style.removeProperty(e),ic(this,e))),a===u?null:a===r&&u===o?i:(o=u,i=t(r=a,l))}}function Hte(e,t){var n,r,o,i="style."+t,a="end."+i,l;return function(){var u=oo(this,e),f=u.on,p=u.value[i]==null?l||(l=K3(t)):void 0;(f!==n||o!==p)&&(r=(n=f).copy()).on(a,o=p),u.on=r}}function Vte(e,t,n){var r=(e+="")=="transform"?Wee:W3;return t==null?this.styleTween(e,zte(e,r)).on("end.style."+e,K3(e)):typeof t=="function"?this.styleTween(e,Ute(e,r,M0(this,"style."+e,t))).each(Hte(this._id,e)):this.styleTween(e,Bte(e,r,t),n).on("end.style."+e,null)}function Wte(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Kte(e,t,n){var r,o;function i(){var a=t.apply(this,arguments);return a!==o&&(r=(o=a)&&Wte(e,a,n)),r}return i._value=t,i}function qte(e,t,n){var r="style."+(e+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(t==null)return this.tween(r,null);if(typeof t!="function")throw new Error;return this.tween(r,Kte(e,t,n??""))}function Gte(e){return function(){this.textContent=e}}function Yte(e){return function(){var t=e(this);this.textContent=t??""}}function Xte(e){return this.tween("text",typeof e=="function"?Yte(M0(this,"text",e)):Gte(e==null?"":e+""))}function Qte(e){return function(t){this.textContent=e.call(this,t)}}function Jte(e){var t,n;function r(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&Qte(o)),t}return r._value=e,r}function Zte(e){var t="text";if(arguments.length<1)return(t=this.tween(t))&&t._value;if(e==null)return this.tween(t,null);if(typeof e!="function")throw new Error;return this.tween(t,Jte(e))}function ene(){for(var e=this._name,t=this._id,n=q3(),r=this._groups,o=r.length,i=0;i<o;++i)for(var a=r[i],l=a.length,u,f=0;f<l;++f)if(u=a[f]){var p=Ps(u,t);lg(u,e,n,f,a,{time:p.time+p.delay+p.duration,delay:0,duration:p.duration,ease:p.ease})}return new _o(r,this._parents,e,n)}function tne(){var e,t,n=this,r=n._id,o=n.size();return new Promise(function(i,a){var l={value:a},u={value:function(){--o===0&&i()}};n.each(function(){var f=oo(this,r),p=f.on;p!==e&&(t=(e=p).copy(),t._.cancel.push(l),t._.interrupt.push(l),t._.end.push(u)),f.on=t}),o===0&&i()})}var nne=0;function _o(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function q3(){return++nne}var jo=Zd.prototype;_o.prototype={constructor:_o,select:Mte,selectAll:Lte,selectChild:jo.selectChild,selectChildren:jo.selectChildren,filter:Rte,merge:Ate,selection:Fte,transition:ene,call:jo.call,nodes:jo.nodes,node:jo.node,size:jo.size,empty:jo.empty,each:jo.each,on:Dte,attr:pte,attrTween:yte,style:Vte,styleTween:qte,text:Xte,textTween:Zte,remove:Ite,tween:ite,delay:wte,duration:Nte,ease:Cte,easeVarying:Tte,end:tne,[Symbol.iterator]:jo[Symbol.iterator]};function rne(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var sne={time:null,delay:0,duration:250,ease:rne};function one(e,t){for(var n;!(n=e.__transition)||!(n=n[t]);)if(!(e=e.parentNode))throw new Error(`transition ${t} not found`);return n}function ine(e){var t,n;e instanceof _o?(t=e._id,e=e._name):(t=q3(),(n=sne).time=$0(),e=e==null?null:e+"");for(var r=this._groups,o=r.length,i=0;i<o;++i)for(var a=r[i],l=a.length,u,f=0;f<l;++f)(u=a[f])&&lg(u,e,t,f,a,n||one(u,t));return new _o(r,this._parents,e,t)}Zd.prototype.interrupt=rte;Zd.prototype.transition=ine;const Ap=e=>()=>e;function ane(e,{sourceEvent:t,target:n,transform:r,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:t,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:o}})}function Eo(e,t,n){this.k=e,this.x=t,this.y=n}Eo.prototype={constructor:Eo,scale:function(e){return e===1?this:new Eo(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Eo(this.k,this.x+this.k*e,this.y+this.k*t)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var cg=new Eo(1,0,0);G3.prototype=Eo.prototype;function G3(e){for(;!e.__zoom;)if(!(e=e.parentNode))return cg;return e.__zoom}function sb(e){e.stopImmediatePropagation()}function Du(e){e.preventDefault(),e.stopImmediatePropagation()}function lne(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function cne(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function MC(){return this.__zoom||cg}function une(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function dne(){return navigator.maxTouchPoints||"ontouchstart"in this}function fne(e,t,n){var r=e.invertX(t[0][0])-n[0][0],o=e.invertX(t[1][0])-n[1][0],i=e.invertY(t[0][1])-n[0][1],a=e.invertY(t[1][1])-n[1][1];return e.translate(o>r?(r+o)/2:Math.min(0,r)||Math.max(0,o),a>i?(i+a)/2:Math.min(0,i)||Math.max(0,a))}function Y3(){var e=lne,t=cne,n=fne,r=une,o=dne,i=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],l=250,u=nh,f=sg("start","zoom","end"),p,h,g,y=500,k=150,v=0,b=10;function j($){$.property("__zoom",MC).on("wheel.zoom",I,{passive:!1}).on("mousedown.zoom",_).on("dblclick.zoom",F).filter(o).on("touchstart.zoom",D).on("touchmove.zoom",W).on("touchend.zoom touchcancel.zoom",V).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}j.transform=function($,O,U,K){var M=$.selection?$.selection():$;M.property("__zoom",MC),$!==M?P($,O,U,K):M.interrupt().each(function(){T(this,arguments).event(K).start().zoom(null,typeof O=="function"?O.apply(this,arguments):O).end()})},j.scaleBy=function($,O,U,K){j.scaleTo($,function(){var M=this.__zoom.k,H=typeof O=="function"?O.apply(this,arguments):O;return M*H},U,K)},j.scaleTo=function($,O,U,K){j.transform($,function(){var M=t.apply(this,arguments),H=this.__zoom,L=U==null?C(M):typeof U=="function"?U.apply(this,arguments):U,z=H.invert(L),Y=typeof O=="function"?O.apply(this,arguments):O;return n(N(S(H,Y),L,z),M,a)},U,K)},j.translateBy=function($,O,U,K){j.transform($,function(){return n(this.__zoom.translate(typeof O=="function"?O.apply(this,arguments):O,typeof U=="function"?U.apply(this,arguments):U),t.apply(this,arguments),a)},null,K)},j.translateTo=function($,O,U,K,M){j.transform($,function(){var H=t.apply(this,arguments),L=this.__zoom,z=K==null?C(H):typeof K=="function"?K.apply(this,arguments):K;return n(cg.translate(z[0],z[1]).scale(L.k).translate(typeof O=="function"?-O.apply(this,arguments):-O,typeof U=="function"?-U.apply(this,arguments):-U),H,a)},K,M)};function S($,O){return O=Math.max(i[0],Math.min(i[1],O)),O===$.k?$:new Eo(O,$.x,$.y)}function N($,O,U){var K=O[0]-U[0]*$.k,M=O[1]-U[1]*$.k;return K===$.x&&M===$.y?$:new Eo($.k,K,M)}function C($){return[(+$[0][0]+ +$[1][0])/2,(+$[0][1]+ +$[1][1])/2]}function P($,O,U,K){$.on("start.zoom",function(){T(this,arguments).event(K).start()}).on("interrupt.zoom end.zoom",function(){T(this,arguments).event(K).end()}).tween("zoom",function(){var M=this,H=arguments,L=T(M,H).event(K),z=t.apply(M,H),Y=U==null?C(z):typeof U=="function"?U.apply(M,H):U,B=Math.max(z[1][0]-z[0][0],z[1][1]-z[0][1]),Q=M.__zoom,J=typeof O=="function"?O.apply(M,H):O,Z=u(Q.invert(Y).concat(B/Q.k),J.invert(Y).concat(B/J.k));return function(oe){if(oe===1)oe=J;else{var ne=Z(oe),ue=B/ne[2];oe=new Eo(ue,Y[0]-ne[0]*ue,Y[1]-ne[1]*ue)}L.zoom(null,oe)}})}function T($,O,U){return!U&&$.__zooming||new R($,O)}function R($,O){this.that=$,this.args=O,this.active=0,this.sourceEvent=null,this.extent=t.apply($,O),this.taps=0}R.prototype={event:function($){return $&&(this.sourceEvent=$),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function($,O){return this.mouse&&$!=="mouse"&&(this.mouse[1]=O.invert(this.mouse[0])),this.touch0&&$!=="touch"&&(this.touch0[1]=O.invert(this.touch0[0])),this.touch1&&$!=="touch"&&(this.touch1[1]=O.invert(this.touch1[0])),this.that.__zoom=O,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function($){var O=Br(this.that).datum();f.call($,this.that,new ane($,{sourceEvent:this.sourceEvent,target:j,transform:this.that.__zoom,dispatch:f}),O)}};function I($,...O){if(!e.apply(this,arguments))return;var U=T(this,O).event($),K=this.__zoom,M=Math.max(i[0],Math.min(i[1],K.k*Math.pow(2,r.apply(this,arguments)))),H=hs($);if(U.wheel)(U.mouse[0][0]!==H[0]||U.mouse[0][1]!==H[1])&&(U.mouse[1]=K.invert(U.mouse[0]=H)),clearTimeout(U.wheel);else{if(K.k===M)return;U.mouse=[H,K.invert(H)],oh(this),U.start()}Du($),U.wheel=setTimeout(L,k),U.zoom("mouse",n(N(S(K,M),U.mouse[0],U.mouse[1]),U.extent,a));function L(){U.wheel=null,U.end()}}function _($,...O){if(g||!e.apply(this,arguments))return;var U=$.currentTarget,K=T(this,O,!0).event($),M=Br($.view).on("mousemove.zoom",Y,!0).on("mouseup.zoom",B,!0),H=hs($,U),L=$.clientX,z=$.clientY;P3($.view),sb($),K.mouse=[H,this.__zoom.invert(H)],oh(this),K.start();function Y(Q){if(Du(Q),!K.moved){var J=Q.clientX-L,Z=Q.clientY-z;K.moved=J*J+Z*Z>v}K.event(Q).zoom("mouse",n(N(K.that.__zoom,K.mouse[0]=hs(Q,U),K.mouse[1]),K.extent,a))}function B(Q){M.on("mousemove.zoom mouseup.zoom",null),_3(Q.view,K.moved),Du(Q),K.event(Q).end()}}function F($,...O){if(e.apply(this,arguments)){var U=this.__zoom,K=hs($.changedTouches?$.changedTouches[0]:$,this),M=U.invert(K),H=U.k*($.shiftKey?.5:2),L=n(N(S(U,H),K,M),t.apply(this,O),a);Du($),l>0?Br(this).transition().duration(l).call(P,L,K,$):Br(this).call(j.transform,L,K,$)}}function D($,...O){if(e.apply(this,arguments)){var U=$.touches,K=U.length,M=T(this,O,$.changedTouches.length===K).event($),H,L,z,Y;for(sb($),L=0;L<K;++L)z=U[L],Y=hs(z,this),Y=[Y,this.__zoom.invert(Y),z.identifier],M.touch0?!M.touch1&&M.touch0[2]!==Y[2]&&(M.touch1=Y,M.taps=0):(M.touch0=Y,H=!0,M.taps=1+!!p);p&&(p=clearTimeout(p)),H&&(M.taps<2&&(h=Y[0],p=setTimeout(function(){p=null},y)),oh(this),M.start())}}function W($,...O){if(this.__zooming){var U=T(this,O).event($),K=$.changedTouches,M=K.length,H,L,z,Y;for(Du($),H=0;H<M;++H)L=K[H],z=hs(L,this),U.touch0&&U.touch0[2]===L.identifier?U.touch0[0]=z:U.touch1&&U.touch1[2]===L.identifier&&(U.touch1[0]=z);if(L=U.that.__zoom,U.touch1){var B=U.touch0[0],Q=U.touch0[1],J=U.touch1[0],Z=U.touch1[1],oe=(oe=J[0]-B[0])*oe+(oe=J[1]-B[1])*oe,ne=(ne=Z[0]-Q[0])*ne+(ne=Z[1]-Q[1])*ne;L=S(L,Math.sqrt(oe/ne)),z=[(B[0]+J[0])/2,(B[1]+J[1])/2],Y=[(Q[0]+Z[0])/2,(Q[1]+Z[1])/2]}else if(U.touch0)z=U.touch0[0],Y=U.touch0[1];else return;U.zoom("touch",n(N(L,z,Y),U.extent,a))}}function V($,...O){if(this.__zooming){var U=T(this,O).event($),K=$.changedTouches,M=K.length,H,L;for(sb($),g&&clearTimeout(g),g=setTimeout(function(){g=null},y),H=0;H<M;++H)L=K[H],U.touch0&&U.touch0[2]===L.identifier?delete U.touch0:U.touch1&&U.touch1[2]===L.identifier&&delete U.touch1;if(U.touch1&&!U.touch0&&(U.touch0=U.touch1,delete U.touch1),U.touch0)U.touch0[1]=this.__zoom.invert(U.touch0[0]);else if(U.end(),U.taps===2&&(L=hs(L,this),Math.hypot(h[0]-L[0],h[1]-L[1])<b)){var z=Br(this).on("dblclick.zoom");z&&z.apply(this,arguments)}}}return j.wheelDelta=function($){return arguments.length?(r=typeof $=="function"?$:Ap(+$),j):r},j.filter=function($){return arguments.length?(e=typeof $=="function"?$:Ap(!!$),j):e},j.touchable=function($){return arguments.length?(o=typeof $=="function"?$:Ap(!!$),j):o},j.extent=function($){return arguments.length?(t=typeof $=="function"?$:Ap([[+$[0][0],+$[0][1]],[+$[1][0],+$[1][1]]]),j):t},j.scaleExtent=function($){return arguments.length?(i[0]=+$[0],i[1]=+$[1],j):[i[0],i[1]]},j.translateExtent=function($){return arguments.length?(a[0][0]=+$[0][0],a[1][0]=+$[1][0],a[0][1]=+$[0][1],a[1][1]=+$[1][1],j):[[a[0][0],a[0][1]],[a[1][0],a[1][1]]]},j.constrain=function($){return arguments.length?(n=$,j):n},j.duration=function($){return arguments.length?(l=+$,j):l},j.interpolate=function($){return arguments.length?(u=$,j):u},j.on=function(){var $=f.on.apply(f,arguments);return $===f?j:$},j.clickDistance=function($){return arguments.length?(v=($=+$)*$,j):Math.sqrt(v)},j.tapDistance=function($){return arguments.length?(b=+$,j):b},j}const Cs={error001:(e="react")=>`Seems like you have not used zustand provider as an ancestor. Help: https://${e}flow.dev/error#001`,error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,{id:t,sourceHandle:n,targetHandle:r})=>`Couldn't create edge for ${e} handle id: "${e==="source"?n:r}", edge id: ${t}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`,error013:(e="react")=>`It seems that you haven't loaded the styles. Please import '@xyflow/${e}/dist/style.css' or base.css to make sure everything is working properly.`,error014:()=>"useNodeConnections: No node ID found. Call useNodeConnections inside a custom Node or provide a node ID.",error015:()=>"It seems that you are trying to drag a node that is not initialized. Please use onNodesChange as explained in the docs.",error016:e=>`Edge with id "${e}" does not exist, it may have been removed. This can happen when an edge is deleted before the "onEdgeClick" handler is called.`},Sd=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],X3=["Enter"," ","Escape"],Q3={"node.a11yDescription.default":"Press enter or space to select a node. Press delete to remove it and escape to cancel.","node.a11yDescription.keyboardDisabled":"Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.","node.a11yDescription.ariaLiveMessage":({direction:e,x:t,y:n})=>`Moved selected node ${e}. New position, x: ${t}, y: ${n}`,"edge.a11yDescription.default":"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.","controls.ariaLabel":"Control Panel","controls.zoomIn.ariaLabel":"Zoom In","controls.zoomOut.ariaLabel":"Zoom Out","controls.fitView.ariaLabel":"Fit View","controls.interactive.ariaLabel":"Toggle Interactivity","minimap.ariaLabel":"Mini Map","handle.ariaLabel":"Handle"};var lc;(function(e){e.Strict="strict",e.Loose="loose"})(lc||(lc={}));var ba;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(ba||(ba={}));var Cd;(function(e){e.Partial="partial",e.Full="full"})(Cd||(Cd={}));const J3={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var yi;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(yi||(yi={}));var qh;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(qh||(qh={}));var ct;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(ct||(ct={}));const LC={[ct.Left]:ct.Right,[ct.Right]:ct.Left,[ct.Top]:ct.Bottom,[ct.Bottom]:ct.Top};function Z3(e){return e===null?null:e?"valid":"invalid"}const eD=e=>"id"in e&&"source"in e&&"target"in e,pne=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),L0=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),tf=(e,t=[0,0])=>{const{width:n,height:r}=Io(e),o=e.origin??t,i=n*o[0],a=r*o[1];return{x:e.position.x-i,y:e.position.y-a}},hne=(e,t={nodeOrigin:[0,0]})=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const n=e.reduce((r,o)=>{const i=typeof o=="string";let a=!t.nodeLookup&&!i?o:void 0;t.nodeLookup&&(a=i?t.nodeLookup.get(o):L0(o)?o:t.nodeLookup.get(o.id));const l=a?Gh(a,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return ug(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return dg(n)},nf=(e,t={})=>{let n={x:1/0,y:1/0,x2:-1/0,y2:-1/0},r=!1;return e.forEach(o=>{(t.filter===void 0||t.filter(o))&&(n=ug(n,Gh(o)),r=!0)}),r?dg(n):{x:0,y:0,width:0,height:0}},O0=(e,t,[n,r,o]=[0,0,1],i=!1,a=!1)=>{const l={...Lc(t,[n,r,o]),width:t.width/o,height:t.height/o},u=[];for(const f of e.values()){const{measured:p,selectable:h=!0,hidden:g=!1}=f;if(a&&!h||g)continue;const y=p.width??f.width??f.initialWidth??null,k=p.height??f.height??f.initialHeight??null,v=Ed(l,uc(f)),b=(y??0)*(k??0),j=i&&v>0;(!f.internals.handleBounds||j||v>=b||f.dragging)&&u.push(f)}return u},mne=(e,t)=>{const n=new Set;return e.forEach(r=>{n.add(r.id)}),t.filter(r=>n.has(r.source)||n.has(r.target))};function gne(e,t){const n=new Map,r=t!=null&&t.nodes?new Set(t.nodes.map(o=>o.id)):null;return e.forEach(o=>{o.measured.width&&o.measured.height&&((t==null?void 0:t.includeHiddenNodes)||!o.hidden)&&(!r||r.has(o.id))&&n.set(o.id,o)}),n}async function xne({nodes:e,width:t,height:n,panZoom:r,minZoom:o,maxZoom:i},a){if(e.size===0)return!0;const l=gne(e,a),u=nf(l),f=z0(u,t,n,(a==null?void 0:a.minZoom)??o,(a==null?void 0:a.maxZoom)??i,(a==null?void 0:a.padding)??.1);return await r.setViewport(f,{duration:a==null?void 0:a.duration,ease:a==null?void 0:a.ease,interpolate:a==null?void 0:a.interpolate}),!0}function tD({nodeId:e,nextPosition:t,nodeLookup:n,nodeOrigin:r=[0,0],nodeExtent:o,onError:i}){const a=n.get(e),l=a.parentId?n.get(a.parentId):void 0,{x:u,y:f}=l?l.internals.positionAbsolute:{x:0,y:0},p=a.origin??r;let h=a.extent||o;if(a.extent==="parent"&&!a.expandParent)if(!l)i==null||i("005",Cs.error005());else{const y=l.measured.width,k=l.measured.height;y&&k&&(h=[[u,f],[u+y,f+k]])}else l&&Ca(a.extent)&&(h=[[a.extent[0][0]+u,a.extent[0][1]+f],[a.extent[1][0]+u,a.extent[1][1]+f]]);const g=Ca(h)?Sa(t,h,a.measured):t;return(a.measured.width===void 0||a.measured.height===void 0)&&(i==null||i("015",Cs.error015())),{position:{x:g.x-u+(a.measured.width??0)*p[0],y:g.y-f+(a.measured.height??0)*p[1]},positionAbsolute:g}}async function yne({nodesToRemove:e=[],edgesToRemove:t=[],nodes:n,edges:r,onBeforeDelete:o}){const i=new Set(e.map(g=>g.id)),a=[];for(const g of n){if(g.deletable===!1)continue;const y=i.has(g.id),k=!y&&g.parentId&&a.find(v=>v.id===g.parentId);(y||k)&&a.push(g)}const l=new Set(t.map(g=>g.id)),u=r.filter(g=>g.deletable!==!1),p=mne(a,u);for(const g of u)l.has(g.id)&&!p.find(k=>k.id===g.id)&&p.push(g);if(!o)return{edges:p,nodes:a};const h=await o({nodes:a,edges:p});return typeof h=="boolean"?h?{edges:p,nodes:a}:{edges:[],nodes:[]}:h}const cc=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Sa=(e={x:0,y:0},t,n)=>({x:cc(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:cc(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function nD(e,t,n){const{width:r,height:o}=Io(n),{x:i,y:a}=n.internals.positionAbsolute;return Sa(e,[[i,a],[i+r,a+o]],t)}const OC=(e,t,n)=>e<t?cc(Math.abs(e-t),1,t)/t:e>n?-cc(Math.abs(e-n),1,t)/t:0,F0=(e,t,n=15,r=40)=>{const o=OC(e.x,r,t.width-r)*n,i=OC(e.y,r,t.height-r)*n;return[o,i]},ug=(e,t)=>({x:Math.min(e.x,t.x),y:Math.min(e.y,t.y),x2:Math.max(e.x2,t.x2),y2:Math.max(e.y2,t.y2)}),Pv=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),dg=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),uc=(e,t=[0,0])=>{var o,i;const{x:n,y:r}=L0(e)?e.internals.positionAbsolute:tf(e,t);return{x:n,y:r,width:((o=e.measured)==null?void 0:o.width)??e.width??e.initialWidth??0,height:((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0}},Gh=(e,t=[0,0])=>{var o,i;const{x:n,y:r}=L0(e)?e.internals.positionAbsolute:tf(e,t);return{x:n,y:r,x2:n+(((o=e.measured)==null?void 0:o.width)??e.width??e.initialWidth??0),y2:r+(((i=e.measured)==null?void 0:i.height)??e.height??e.initialHeight??0)}},rD=(e,t)=>dg(ug(Pv(e),Pv(t))),Ed=(e,t)=>{const n=Math.max(0,Math.min(e.x+e.width,t.x+t.width)-Math.max(e.x,t.x)),r=Math.max(0,Math.min(e.y+e.height,t.y+t.height)-Math.max(e.y,t.y));return Math.ceil(n*r)},FC=e=>gs(e.width)&&gs(e.height)&&gs(e.x)&&gs(e.y),gs=e=>!isNaN(e)&&isFinite(e),sD=(e,t)=>(n,r)=>{},rf=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Lc=({x:e,y:t},[n,r,o],i=!1,a=[1,1])=>{const l={x:(e-n)/o,y:(t-r)/o};return i?rf(l,a):l},dc=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r});function El(e,t){if(typeof e=="number")return Math.floor((t-t/(1+e))*.5);if(typeof e=="string"&&e.endsWith("px")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(n)}if(typeof e=="string"&&e.endsWith("%")){const n=parseFloat(e);if(!Number.isNaN(n))return Math.floor(t*n*.01)}return console.error(`The padding value "${e}" is invalid. Please provide a number or a string with a valid unit (px or %).`),0}function bne(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=El(e,n),o=El(e,t);return{top:r,right:o,bottom:r,left:o,x:o*2,y:r*2}}if(typeof e=="object"){const r=El(e.top??e.y??0,n),o=El(e.bottom??e.y??0,n),i=El(e.left??e.x??0,t),a=El(e.right??e.x??0,t);return{top:r,right:a,bottom:o,left:i,x:i+a,y:r+o}}return{top:0,right:0,bottom:0,left:0,x:0,y:0}}function vne(e,t,n,r,o,i){const{x:a,y:l}=dc(e,[t,n,r]),{x:u,y:f}=dc({x:e.x+e.width,y:e.y+e.height},[t,n,r]),p=o-u,h=i-f;return{left:Math.floor(a),top:Math.floor(l),right:Math.floor(p),bottom:Math.floor(h)}}const z0=(e,t,n,r,o,i)=>{const a=bne(i,t,n),l=(t-a.x)/e.width,u=(n-a.y)/e.height,f=Math.min(l,u),p=cc(f,r,o),h=e.x+e.width/2,g=e.y+e.height/2,y=t/2-h*p,k=n/2-g*p,v=vne(e,y,k,p,t,n),b={left:Math.min(v.left-a.left,0),top:Math.min(v.top-a.top,0),right:Math.min(v.right-a.right,0),bottom:Math.min(v.bottom-a.bottom,0)};return{x:y-b.left+b.right,y:k-b.top+b.bottom,zoom:p}},Td=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function Ca(e){return e!=null&&e!=="parent"}function Io(e){var t,n;return{width:((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth??0,height:((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight??0}}function oD(e){var t,n;return(((t=e.measured)==null?void 0:t.width)??e.width??e.initialWidth)!==void 0&&(((n=e.measured)==null?void 0:n.height)??e.height??e.initialHeight)!==void 0}function iD(e,t={width:0,height:0},n,r,o){const i={...e},a=r.get(n);if(a){const l=a.origin||o;i.x+=a.internals.positionAbsolute.x-(t.width??0)*l[0],i.y+=a.internals.positionAbsolute.y-(t.height??0)*l[1]}return i}function zC(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function wne(){let e,t;return{promise:new Promise((r,o)=>{e=r,t=o}),resolve:e,reject:t}}function jne(e){return{...Q3,...e||{}}}function sd(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:o}){const{x:i,y:a}=xs(e),l=Lc({x:i-((o==null?void 0:o.left)??0),y:a-((o==null?void 0:o.top)??0)},r),{x:u,y:f}=n?rf(l,t):l;return{xSnapped:u,ySnapped:f,...l}}const B0=e=>({width:e.offsetWidth,height:e.offsetHeight}),aD=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},kne=["INPUT","SELECT","TEXTAREA"];function lD(e){var r,o;const t=((o=(r=e.composedPath)==null?void 0:r.call(e))==null?void 0:o[0])||e.target;return(t==null?void 0:t.nodeType)!==1?!1:kne.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const cD=e=>"clientX"in e,xs=(e,t)=>{var i,a;const n=cD(e),r=n?e.clientX:(i=e.touches)==null?void 0:i[0].clientX,o=n?e.clientY:(a=e.touches)==null?void 0:a[0].clientY;return{x:r-((t==null?void 0:t.left)??0),y:o-((t==null?void 0:t.top)??0)}},BC=(e,t,n,r,o)=>{const i=t.querySelectorAll(`.${e}`);return!i||!i.length?null:Array.from(i).map(a=>{const l=a.getBoundingClientRect();return{id:a.getAttribute("data-handleid"),type:e,nodeId:o,position:a.getAttribute("data-handlepos"),x:(l.left-n.left)/r,y:(l.top-n.top)/r,...B0(a)}})};function uD({sourceX:e,sourceY:t,targetX:n,targetY:r,sourceControlX:o,sourceControlY:i,targetControlX:a,targetControlY:l}){const u=e*.125+o*.375+a*.375+n*.125,f=t*.125+i*.375+l*.375+r*.125,p=Math.abs(u-e),h=Math.abs(f-t);return[u,f,p,h]}function Pp(e,t){return e>=0?.5*e:t*25*Math.sqrt(-e)}function UC({pos:e,x1:t,y1:n,x2:r,y2:o,c:i}){switch(e){case ct.Left:return[t-Pp(t-r,i),n];case ct.Right:return[t+Pp(r-t,i),n];case ct.Top:return[t,n-Pp(n-o,i)];case ct.Bottom:return[t,n+Pp(o-n,i)]}}function U0({sourceX:e,sourceY:t,sourcePosition:n=ct.Bottom,targetX:r,targetY:o,targetPosition:i=ct.Top,curvature:a=.25}){const[l,u]=UC({pos:n,x1:e,y1:t,x2:r,y2:o,c:a}),[f,p]=UC({pos:i,x1:r,y1:o,x2:e,y2:t,c:a}),[h,g,y,k]=uD({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:l,sourceControlY:u,targetControlX:f,targetControlY:p});return[`M${e},${t} C${l},${u} ${f},${p} ${r},${o}`,h,g,y,k]}function dD({sourceX:e,sourceY:t,targetX:n,targetY:r}){const o=Math.abs(n-e)/2,i=n<e?n+o:n-o,a=Math.abs(r-t)/2,l=r<t?r+a:r-a;return[i,l,o,a]}function Nne({sourceNode:e,targetNode:t,selected:n=!1,zIndex:r=0,elevateOnSelect:o=!1,zIndexMode:i="basic"}){if(i==="manual")return r;const a=o&&n?r+1e3:r,l=Math.max(e.parentId||o&&e.selected?e.internals.z:0,t.parentId||o&&t.selected?t.internals.z:0);return a+l}function Sne({sourceNode:e,targetNode:t,width:n,height:r,transform:o}){const i=ug(Gh(e),Gh(t));i.x===i.x2&&(i.x2+=1),i.y===i.y2&&(i.y2+=1);const a={x:-o[0]/o[2],y:-o[1]/o[2],width:n/o[2],height:r/o[2]};return Ed(a,dg(i))>0}const Cne=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,Ene=(e,t)=>t.some(n=>n.source===e.source&&n.target===e.target&&(n.sourceHandle===e.sourceHandle||!n.sourceHandle&&!e.sourceHandle)&&(n.targetHandle===e.targetHandle||!n.targetHandle&&!e.targetHandle)),Tne=(e,t,n={})=>{var i;if(!e.source||!e.target)return(i=n.onError)==null||i.call(n,"006",Cs.error006()),t;const r=n.getEdgeId||Cne;let o;return eD(e)?o={...e}:o={...e,id:r(e)},Ene(o,t)?t:(o.sourceHandle===null&&delete o.sourceHandle,o.targetHandle===null&&delete o.targetHandle,t.concat(o))};function fD({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[o,i,a,l]=dD({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,o,i,a,l]}const HC={[ct.Left]:{x:-1,y:0},[ct.Right]:{x:1,y:0},[ct.Top]:{x:0,y:-1},[ct.Bottom]:{x:0,y:1}},Rne=({source:e,sourcePosition:t=ct.Bottom,target:n})=>t===ct.Left||t===ct.Right?e.x<n.x?{x:1,y:0}:{x:-1,y:0}:e.y<n.y?{x:0,y:1}:{x:0,y:-1},VC=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Ane({source:e,sourcePosition:t=ct.Bottom,target:n,targetPosition:r=ct.Top,center:o,offset:i,stepPosition:a}){const l=HC[t],u=HC[r],f={x:e.x+l.x*i,y:e.y+l.y*i},p={x:n.x+u.x*i,y:n.y+u.y*i},h=Rne({source:f,sourcePosition:t,target:p}),g=h.x!==0?"x":"y",y=h[g];let k=[],v,b;const j={x:0,y:0},S={x:0,y:0},[,,N,C]=dD({sourceX:e.x,sourceY:e.y,targetX:n.x,targetY:n.y});if(l[g]*u[g]===-1){g==="x"?(v=o.x??f.x+(p.x-f.x)*a,b=o.y??(f.y+p.y)/2):(v=o.x??(f.x+p.x)/2,b=o.y??f.y+(p.y-f.y)*a);const I=[{x:v,y:f.y},{x:v,y:p.y}],_=[{x:f.x,y:b},{x:p.x,y:b}];l[g]===y?k=g==="x"?I:_:k=g==="x"?_:I}else{const I=[{x:f.x,y:p.y}],_=[{x:p.x,y:f.y}];if(g==="x"?k=l.x===y?_:I:k=l.y===y?I:_,t===r){const $=Math.abs(e[g]-n[g]);if($<=i){const O=Math.min(i-1,i-$);l[g]===y?j[g]=(f[g]>e[g]?-1:1)*O:S[g]=(p[g]>n[g]?-1:1)*O}}if(t!==r){const $=g==="x"?"y":"x",O=l[g]===u[$],U=f[$]>p[$],K=f[$]<p[$];(l[g]===1&&(!O&&U||O&&K)||l[g]!==1&&(!O&&K||O&&U))&&(k=g==="x"?I:_)}const F={x:f.x+j.x,y:f.y+j.y},D={x:p.x+S.x,y:p.y+S.y},W=Math.max(Math.abs(F.x-k[0].x),Math.abs(D.x-k[0].x)),V=Math.max(Math.abs(F.y-k[0].y),Math.abs(D.y-k[0].y));W>=V?(v=(F.x+D.x)/2,b=k[0].y):(v=k[0].x,b=(F.y+D.y)/2)}const P={x:f.x+j.x,y:f.y+j.y},T={x:p.x+S.x,y:p.y+S.y};return[[e,...P.x!==k[0].x||P.y!==k[0].y?[P]:[],...k,...T.x!==k[k.length-1].x||T.y!==k[k.length-1].y?[T]:[],n],v,b,N,C]}function Pne(e,t,n,r){const o=Math.min(VC(e,t)/2,VC(t,n)/2,r),{x:i,y:a}=t;if(e.x===i&&i===n.x||e.y===a&&a===n.y)return`L${i} ${a}`;if(e.y===a){const f=e.x<n.x?-1:1,p=e.y<n.y?1:-1;return`L ${i+o*f},${a}Q ${i},${a} ${i},${a+o*p}`}const l=e.x<n.x?1:-1,u=e.y<n.y?-1:1;return`L ${i},${a+o*u}Q ${i},${a} ${i+o*l},${a}`}function _v({sourceX:e,sourceY:t,sourcePosition:n=ct.Bottom,targetX:r,targetY:o,targetPosition:i=ct.Top,borderRadius:a=5,centerX:l,centerY:u,offset:f=20,stepPosition:p=.5}){const[h,g,y,k,v]=Ane({source:{x:e,y:t},sourcePosition:n,target:{x:r,y:o},targetPosition:i,center:{x:l,y:u},offset:f,stepPosition:p});let b=`M${h[0].x} ${h[0].y}`;for(let j=1;j<h.length-1;j++)b+=Pne(h[j-1],h[j],h[j+1],a);return b+=`L${h[h.length-1].x} ${h[h.length-1].y}`,[b,g,y,k,v]}function WC(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function _ne(e){var h;const{sourceNode:t,targetNode:n}=e;if(!WC(t)||!WC(n))return null;const r=t.internals.handleBounds||KC(t.handles),o=n.internals.handleBounds||KC(n.handles),i=qC((r==null?void 0:r.source)??[],e.sourceHandle),a=qC(e.connectionMode===lc.Strict?(o==null?void 0:o.target)??[]:((o==null?void 0:o.target)??[]).concat((o==null?void 0:o.source)??[]),e.targetHandle);if(!i||!a)return(h=e.onError)==null||h.call(e,"008",Cs.error008(i?"target":"source",{id:e.id,sourceHandle:e.sourceHandle,targetHandle:e.targetHandle})),null;const l=(i==null?void 0:i.position)||ct.Bottom,u=(a==null?void 0:a.position)||ct.Top,f=Ea(t,i,l),p=Ea(n,a,u);return{sourceX:f.x,sourceY:f.y,targetX:p.x,targetY:p.y,sourcePosition:l,targetPosition:u}}function KC(e){if(!e)return null;const t=[],n=[];for(const r of e)r.width=r.width??1,r.height=r.height??1,r.type==="source"?t.push(r):r.type==="target"&&n.push(r);return{source:t,target:n}}function Ea(e,t,n=ct.Left,r=!1){const o=((t==null?void 0:t.x)??0)+e.internals.positionAbsolute.x,i=((t==null?void 0:t.y)??0)+e.internals.positionAbsolute.y,{width:a,height:l}=t??Io(e);if(r)return{x:o+a/2,y:i+l/2};switch((t==null?void 0:t.position)??n){case ct.Top:return{x:o+a/2,y:i};case ct.Right:return{x:o+a,y:i+l/2};case ct.Bottom:return{x:o+a/2,y:i+l};case ct.Left:return{x:o,y:i+l/2}}}function qC(e,t){return e&&(t?e.find(n=>n.id===t):e[0])||null}function Dv(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function Dne(e,{id:t,defaultColor:n,defaultMarkerStart:r,defaultMarkerEnd:o}){const i=new Set;return e.reduce((a,l)=>([l.markerStart||r,l.markerEnd||o].forEach(u=>{if(u&&typeof u=="object"){const f=Dv(u,t);i.has(f)||(a.push({id:f,color:u.color||n,...u}),i.add(f))}}),a),[]).sort((a,l)=>a.id.localeCompare(l.id))}const pD=1e3,$ne=10,H0={nodeOrigin:[0,0],nodeExtent:Sd,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},Ine={...H0,checkEquality:!0};function V0(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function Mne(e,t,n){const r=V0(H0,n);for(const o of e.values())if(o.parentId)K0(o,e,t,r);else{const i=tf(o,r.nodeOrigin),a=Ca(o.extent)?o.extent:r.nodeExtent,l=Sa(i,a,Io(o));o.internals.positionAbsolute=l}}function Lne(e,t){if(!e.handles)return e.measured?t==null?void 0:t.internals.handleBounds:void 0;const n=[],r=[];for(const o of e.handles){const i={id:o.id,width:o.width??1,height:o.height??1,nodeId:e.id,x:o.x,y:o.y,position:o.position,type:o.type};o.type==="source"?n.push(i):o.type==="target"&&r.push(i)}return{source:n,target:r}}function W0(e){return e==="manual"}function $v(e,t,n,r={}){var p,h;const o=V0(Ine,r),i={i:0},a=new Map(t),l=o!=null&&o.elevateNodesOnSelect&&!W0(o.zIndexMode)?pD:0;let u=e.length>0,f=!1;t.clear(),n.clear();for(const g of e){let y=a.get(g.id);if(o.checkEquality&&g===(y==null?void 0:y.internals.userNode))t.set(g.id,y);else{const k=tf(g,o.nodeOrigin),v=Ca(g.extent)?g.extent:o.nodeExtent,b=Sa(k,v,Io(g));y={...o.defaults,...g,measured:{width:(p=g.measured)==null?void 0:p.width,height:(h=g.measured)==null?void 0:h.height},internals:{positionAbsolute:b,handleBounds:Lne(g,y),z:hD(g,l,o.zIndexMode),userNode:g}},t.set(g.id,y)}(y.measured===void 0||y.measured.width===void 0||y.measured.height===void 0)&&!y.hidden&&(u=!1),g.parentId&&K0(y,t,n,r,i),f||(f=g.selected??!1)}return{nodesInitialized:u,hasSelectedNodes:f}}function One(e,t){if(!e.parentId)return;const n=t.get(e.parentId);n?n.set(e.id,e):t.set(e.parentId,new Map([[e.id,e]]))}function K0(e,t,n,r,o){const{elevateNodesOnSelect:i,nodeOrigin:a,nodeExtent:l,zIndexMode:u}=V0(H0,r),f=e.parentId,p=t.get(f);if(!p){console.warn(`Parent node ${f} not found. Please make sure that parent nodes are in front of their child nodes in the nodes array.`);return}One(e,n),o&&!p.parentId&&p.internals.rootParentIndex===void 0&&u==="auto"&&(p.internals.rootParentIndex=++o.i,p.internals.z=p.internals.z+o.i*$ne),o&&p.internals.rootParentIndex!==void 0&&(o.i=p.internals.rootParentIndex);const h=i&&!W0(u)?pD:0,{x:g,y,z:k}=Fne(e,p,a,l,h,u),{positionAbsolute:v}=e.internals,b=g!==v.x||y!==v.y;(b||k!==e.internals.z)&&t.set(e.id,{...e,internals:{...e.internals,positionAbsolute:b?{x:g,y}:v,z:k}})}function hD(e,t,n){const r=gs(e.zIndex)?e.zIndex:0;return W0(n)?r:r+(e.selected?t:0)}function Fne(e,t,n,r,o,i){const{x:a,y:l}=t.internals.positionAbsolute,u=Io(e),f=tf(e,n),p=Ca(e.extent)?Sa(f,e.extent,u):f;let h=Sa({x:a+p.x,y:l+p.y},r,u);e.extent==="parent"&&(h=nD(h,u,t));const g=hD(e,o,i),y=t.internals.z??0;return{x:h.x,y:h.y,z:y>=g?y+1:g}}function q0(e,t,n,r=[0,0]){var a;const o=[],i=new Map;for(const l of e){const u=t.get(l.parentId);if(!u)continue;const f=((a=i.get(l.parentId))==null?void 0:a.expandedRect)??uc(u),p=rD(f,l.rect);i.set(l.parentId,{expandedRect:p,parent:u})}return i.size>0&&i.forEach(({expandedRect:l,parent:u},f)=>{var N;const p=u.internals.positionAbsolute,h=Io(u),g=u.origin??r,y=l.x<p.x?Math.round(Math.abs(p.x-l.x)):0,k=l.y<p.y?Math.round(Math.abs(p.y-l.y)):0,v=Math.max(h.width,Math.round(l.width)),b=Math.max(h.height,Math.round(l.height)),j=(v-h.width)*g[0],S=(b-h.height)*g[1];(y>0||k>0||j||S)&&(o.push({id:f,type:"position",position:{x:u.position.x-y+j,y:u.position.y-k+S}}),(N=n.get(f))==null||N.forEach(C=>{e.some(P=>P.id===C.id)||o.push({id:C.id,type:"position",position:{x:C.position.x+y,y:C.position.y+k}})})),(h.width<l.width||h.height<l.height||y||k)&&o.push({id:f,type:"dimensions",setAttributes:!0,dimensions:{width:v+(y?g[0]*y-j:0),height:b+(k?g[1]*k-S:0)}})}),o}function zne(e,t,n,r,o,i,a){const l=r==null?void 0:r.querySelector(".xyflow__viewport");let u=!1;if(!l)return{changes:[],updatedInternals:u};const f=[],p=window.getComputedStyle(l),{m22:h}=new window.DOMMatrixReadOnly(p.transform),g=[];for(const y of e.values()){const k=t.get(y.id);if(!k)continue;if(k.hidden){t.set(k.id,{...k,internals:{...k.internals,handleBounds:void 0}}),u=!0;continue}const v=B0(y.nodeElement),b=k.measured.width!==v.width||k.measured.height!==v.height;if(!!(v.width&&v.height&&(b||!k.internals.handleBounds||y.force))){const S=y.nodeElement.getBoundingClientRect(),N=Ca(k.extent)?k.extent:i;let{positionAbsolute:C}=k.internals;k.parentId&&k.extent==="parent"?C=nD(C,v,t.get(k.parentId)):N&&(C=Sa(C,N,v));const P={...k,measured:v,internals:{...k.internals,positionAbsolute:C,handleBounds:{source:BC("source",y.nodeElement,S,h,k.id),target:BC("target",y.nodeElement,S,h,k.id)}}};t.set(k.id,P),k.parentId&&K0(P,t,n,{nodeOrigin:o,zIndexMode:a}),u=!0,b&&(f.push({id:k.id,type:"dimensions",dimensions:v}),k.expandParent&&k.parentId&&g.push({id:k.id,parentId:k.parentId,rect:uc(P,o)}))}}if(g.length>0){const y=q0(g,t,n,o);f.push(...y)}return{changes:f,updatedInternals:u}}async function Bne({delta:e,panZoom:t,transform:n,translateExtent:r,width:o,height:i}){if(!t||!e.x&&!e.y)return!1;const a=await t.setViewportConstrained({x:n[0]+e.x,y:n[1]+e.y,zoom:n[2]},[[0,0],[o,i]],r);return!!a&&(a.x!==n[0]||a.y!==n[1]||a.k!==n[2])}function GC(e,t,n,r,o,i){let a=o;const l=r.get(a)||new Map;r.set(a,l.set(n,t)),a=`${o}-${e}`;const u=r.get(a)||new Map;if(r.set(a,u.set(n,t)),i){a=`${o}-${e}-${i}`;const f=r.get(a)||new Map;r.set(a,f.set(n,t))}}function mD(e,t,n){e.clear(),t.clear();for(const r of n){const{source:o,target:i,sourceHandle:a=null,targetHandle:l=null}=r,u={edgeId:r.id,source:o,target:i,sourceHandle:a,targetHandle:l},f=`${o}-${a}--${i}-${l}`,p=`${i}-${l}--${o}-${a}`;GC("source",u,p,e,o,a),GC("target",u,f,e,i,l),t.set(r.id,r)}}function gD(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:gD(n,t):!1}function YC(e,t,n){var o;let r=e;do{if((o=r==null?void 0:r.matches)!=null&&o.call(r,t))return!0;if(r===n)return!1;r=r==null?void 0:r.parentElement}while(r);return!1}function Une(e,t,n,r){const o=new Map;for(const[i,a]of e)if((a.selected||a.id===r)&&(!a.parentId||!gD(a,e))&&(a.draggable||t&&typeof a.draggable>"u")){const l=e.get(i);l&&o.set(i,{id:i,position:l.position||{x:0,y:0},distance:{x:n.x-l.internals.positionAbsolute.x,y:n.y-l.internals.positionAbsolute.y},extent:l.extent,parentId:l.parentId,origin:l.origin,expandParent:l.expandParent,internals:{positionAbsolute:l.internals.positionAbsolute||{x:0,y:0}},measured:{width:l.measured.width??0,height:l.measured.height??0}})}return o}function ob({nodeId:e,dragItems:t,nodeLookup:n,dragging:r=!0}){var a,l,u;const o=[];for(const[f,p]of t){const h=(a=n.get(f))==null?void 0:a.internals.userNode;h&&o.push({...h,position:p.position,dragging:r})}if(!e)return[o[0],o];const i=(l=n.get(e))==null?void 0:l.internals.userNode;return[i?{...i,position:((u=t.get(e))==null?void 0:u.position)||i.position,dragging:r}:o[0],o]}function Hne({dragItems:e,snapGrid:t,x:n,y:r}){const o=e.values().next().value;if(!o)return null;const i={x:n-o.distance.x,y:r-o.distance.y},a=rf(i,t);return{x:a.x-i.x,y:a.y-i.y}}function Vne({onNodeMouseDown:e,getStoreItems:t,onDragStart:n,onDrag:r,onDragStop:o}){let i={x:null,y:null},a=0,l=new Map,u=!1,f={x:0,y:0},p=null,h=!1,g=null,y=!1,k=!1,v=null;function b({noDragClassName:S,handleSelector:N,domNode:C,isSelectable:P,nodeId:T,nodeClickDistance:R=0}){g=Br(C);function I({x:W,y:V}){const{nodeLookup:$,nodeExtent:O,snapGrid:U,snapToGrid:K,nodeOrigin:M,onNodeDrag:H,onSelectionDrag:L,onError:z,updateNodePositions:Y}=t();i={x:W,y:V};let B=!1;const Q=l.size>1,J=Q&&O?Pv(nf(l)):null,Z=Q&&K?Hne({dragItems:l,snapGrid:U,x:W,y:V}):null;for(const[oe,ne]of l){if(!$.has(oe))continue;let ue={x:W-ne.distance.x,y:V-ne.distance.y};K&&(ue=Z?{x:Math.round(ue.x+Z.x),y:Math.round(ue.y+Z.y)}:rf(ue,U));let ge=null;if(Q&&O&&!ne.extent&&J){const{positionAbsolute:ke}=ne.internals,Be=ke.x-J.x+O[0][0],ie=ke.x+ne.measured.width-J.x2+O[1][0],ve=ke.y-J.y+O[0][1],be=ke.y+ne.measured.height-J.y2+O[1][1];ge=[[Be,ve],[ie,be]]}const{position:Ce,positionAbsolute:Se}=tD({nodeId:oe,nextPosition:ue,nodeLookup:$,nodeExtent:ge||O,nodeOrigin:M,onError:z});B=B||ne.position.x!==Ce.x||ne.position.y!==Ce.y,ne.position=Ce,ne.internals.positionAbsolute=Se}if(k=k||B,!!B&&(Y(l,!0),v&&(r||H||!T&&L))){const[oe,ne]=ob({nodeId:T,dragItems:l,nodeLookup:$});r==null||r(v,l,oe,ne),H==null||H(v,oe,ne),T||L==null||L(v,ne)}}async function _(){if(!p)return;const{transform:W,panBy:V,autoPanSpeed:$,autoPanOnNodeDrag:O}=t();if(!O){u=!1,cancelAnimationFrame(a);return}const[U,K]=F0(f,p,$);(U!==0||K!==0)&&(i.x=(i.x??0)-U/W[2],i.y=(i.y??0)-K/W[2],await V({x:U,y:K})&&I(i)),a=requestAnimationFrame(_)}function F(W){var Q;const{nodeLookup:V,multiSelectionActive:$,nodesDraggable:O,transform:U,snapGrid:K,snapToGrid:M,selectNodesOnDrag:H,onNodeDragStart:L,onSelectionDragStart:z,unselectNodesAndEdges:Y}=t();h=!0,(!H||!P)&&!$&&T&&((Q=V.get(T))!=null&&Q.selected||Y()),P&&H&&T&&(e==null||e(T));const B=sd(W.sourceEvent,{transform:U,snapGrid:K,snapToGrid:M,containerBounds:p});if(i=B,l=Une(V,O,B,T),l.size>0&&(n||L||!T&&z)){const[J,Z]=ob({nodeId:T,dragItems:l,nodeLookup:V});n==null||n(W.sourceEvent,l,J,Z),L==null||L(W.sourceEvent,J,Z),T||z==null||z(W.sourceEvent,Z)}}const D=D3().clickDistance(R).on("start",W=>{const{domNode:V,nodeDragThreshold:$,transform:O,snapGrid:U,snapToGrid:K}=t();p=(V==null?void 0:V.getBoundingClientRect())||null,y=!1,k=!1,v=W.sourceEvent,$===0&&F(W),i=sd(W.sourceEvent,{transform:O,snapGrid:U,snapToGrid:K,containerBounds:p}),f=xs(W.sourceEvent,p)}).on("drag",W=>{const{autoPanOnNodeDrag:V,transform:$,snapGrid:O,snapToGrid:U,nodeDragThreshold:K,nodeLookup:M}=t(),H=sd(W.sourceEvent,{transform:$,snapGrid:O,snapToGrid:U,containerBounds:p});if(v=W.sourceEvent,(W.sourceEvent.type==="touchmove"&&W.sourceEvent.touches.length>1||T&&!M.has(T))&&(y=!0),!y){if(!u&&V&&h&&(u=!0,_()),!h){const L=xs(W.sourceEvent,p),z=L.x-f.x,Y=L.y-f.y;Math.sqrt(z*z+Y*Y)>K&&F(W)}(i.x!==H.xSnapped||i.y!==H.ySnapped)&&l&&h&&(f=xs(W.sourceEvent,p),I(H))}}).on("end",W=>{if(!h||y){y&&l.size>0&&t().updateNodePositions(l,!1);return}if(u=!1,h=!1,cancelAnimationFrame(a),l.size>0){const{nodeLookup:V,updateNodePositions:$,onNodeDragStop:O,onSelectionDragStop:U}=t();if(k&&($(l,!1),k=!1),o||O||!T&&U){const[K,M]=ob({nodeId:T,dragItems:l,nodeLookup:V,dragging:!1});o==null||o(W.sourceEvent,l,K,M),O==null||O(W.sourceEvent,K,M),T||U==null||U(W.sourceEvent,M)}}}).filter(W=>{const V=W.target;return!W.button&&(!S||!YC(V,`.${S}`,C))&&(!N||YC(V,N,C))});g.call(D)}function j(){g==null||g.on(".drag",null)}return{update:b,destroy:j}}function Wne(e,t,n){const r=[],o={x:e.x-n,y:e.y-n,width:n*2,height:n*2};for(const i of t.values())Ed(o,uc(i))>0&&r.push(i);return r}const Kne=250;function qne(e,t,n,r){var l,u;let o=[],i=1/0;const a=Wne(e,n,t+Kne);for(const f of a){const p=[...((l=f.internals.handleBounds)==null?void 0:l.source)??[],...((u=f.internals.handleBounds)==null?void 0:u.target)??[]];for(const h of p){if(r.nodeId===h.nodeId&&r.type===h.type&&r.id===h.id)continue;const{x:g,y}=Ea(f,h,h.position,!0),k=Math.sqrt(Math.pow(g-e.x,2)+Math.pow(y-e.y,2));k>t||(k<i?(o=[{...h,x:g,y}],i=k):k===i&&o.push({...h,x:g,y}))}}if(!o.length)return null;if(o.length>1){const f=r.type==="source"?"target":"source";return o.find(p=>p.type===f)??o[0]}return o[0]}function xD(e,t,n,r,o,i=!1){var f,p,h;const a=r.get(e);if(!a)return null;const l=o==="strict"?(f=a.internals.handleBounds)==null?void 0:f[t]:[...((p=a.internals.handleBounds)==null?void 0:p.source)??[],...((h=a.internals.handleBounds)==null?void 0:h.target)??[]],u=(n?l==null?void 0:l.find(g=>g.id===n):l==null?void 0:l[0])??null;return u&&i?{...u,...Ea(a,u,u.position,!0)}:u}function yD(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function Gne(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const bD=()=>!0;function Yne(e,{connectionMode:t,connectionRadius:n,handleId:r,nodeId:o,edgeUpdaterType:i,isTarget:a,domNode:l,nodeLookup:u,lib:f,autoPanOnConnect:p,flowId:h,panBy:g,cancelConnection:y,onConnectStart:k,onConnect:v,onConnectEnd:b,isValidConnection:j=bD,onReconnectEnd:S,updateConnection:N,getTransform:C,getFromHandle:P,autoPanSpeed:T,dragThreshold:R=1,handleDomNode:I}){const _=aD(e.target);let F=0,D;const{x:W,y:V}=xs(e),$=yD(i,I),O=l==null?void 0:l.getBoundingClientRect();let U=!1;if(!O||!$)return;const K=xD(o,$,r,u,t);if(!K)return;let M=xs(e,O),H=!1,L=null,z=!1,Y=null;function B(){if(!p||!O)return;const[Ce,Se]=F0(M,O,T);g({x:Ce,y:Se}),F=requestAnimationFrame(B)}const Q={...K,nodeId:o,type:$,position:K.position},J=u.get(o);let oe={inProgress:!0,isValid:null,from:Ea(J,Q,ct.Left,!0),fromHandle:Q,fromPosition:Q.position,fromNode:J,to:M,toHandle:null,toPosition:LC[Q.position],toNode:null,pointer:M};function ne(){U=!0,N(oe),k==null||k(e,{nodeId:o,handleId:r,handleType:$})}R===0&&ne();function ue(Ce){if(!U){const{x:be,y:Re}=xs(Ce),Ue=be-W,rt=Re-V;if(!(Ue*Ue+rt*rt>R*R))return;ne()}if(!P()||!Q){ge(Ce);return}const Se=C();M=xs(Ce,O),D=qne(Lc(M,Se,!1,[1,1]),n,u,Q),H||(B(),H=!0);const ke=vD(Ce,{handle:D,connectionMode:t,fromNodeId:o,fromHandleId:r,fromType:a?"target":"source",isValidConnection:j,doc:_,lib:f,flowId:h,nodeLookup:u});Y=ke.handleDomNode,L=ke.connection,z=Gne(!!D,ke.isValid);const Be=u.get(o),ie=Be?Ea(Be,Q,ct.Left,!0):oe.from,ve={...oe,from:ie,isValid:z,to:ke.toHandle&&z?dc({x:ke.toHandle.x,y:ke.toHandle.y},Se):M,toHandle:ke.toHandle,toPosition:z&&ke.toHandle?ke.toHandle.position:LC[Q.position],toNode:ke.toHandle?u.get(ke.toHandle.nodeId):null,pointer:M};N(ve),oe=ve}function ge(Ce){if(!("touches"in Ce&&Ce.touches.length>0)){if(U){(D||Y)&&L&&z&&(v==null||v(L));const{inProgress:Se,...ke}=oe,Be={...ke,toPosition:oe.toHandle?oe.toPosition:null};b==null||b(Ce,Be),i&&(S==null||S(Ce,Be))}y(),cancelAnimationFrame(F),H=!1,z=!1,L=null,Y=null,_.removeEventListener("mousemove",ue),_.removeEventListener("mouseup",ge),_.removeEventListener("touchmove",ue),_.removeEventListener("touchend",ge)}}_.addEventListener("mousemove",ue),_.addEventListener("mouseup",ge),_.addEventListener("touchmove",ue),_.addEventListener("touchend",ge)}function vD(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:i,doc:a,lib:l,flowId:u,isValidConnection:f=bD,nodeLookup:p}){const h=i==="target",g=t?a.querySelector(`.${l}-flow__handle[data-id="${u}-${t==null?void 0:t.nodeId}-${t==null?void 0:t.id}-${t==null?void 0:t.type}"]`):null,{x:y,y:k}=xs(e),v=a.elementFromPoint(y,k),b=v!=null&&v.classList.contains(`${l}-flow__handle`)?v:g,j={handleDomNode:b,isValid:!1,connection:null,toHandle:null};if(b){const S=yD(void 0,b),N=b.getAttribute("data-nodeid"),C=b.getAttribute("data-handleid"),P=b.classList.contains("connectable"),T=b.classList.contains("connectableend");if(!N||!S)return j;const R={source:h?N:r,sourceHandle:h?C:o,target:h?r:N,targetHandle:h?o:C};j.connection=R;const _=P&&T&&(n===lc.Strict?h&&S==="source"||!h&&S==="target":N!==r||C!==o);j.isValid=_&&f(R),j.toHandle=xD(N,S,C,p,n,!0)}return j}const Iv={onPointerDown:Yne,isValid:vD};function Xne({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const o=Br(e);function i({translateExtent:l,width:u,height:f,zoomStep:p=1,pannable:h=!0,zoomable:g=!0,inversePan:y=!1}){const k=N=>{if(N.sourceEvent.type!=="wheel"||!t)return;const C=n(),P=N.sourceEvent.ctrlKey&&Td()?10:1,T=-N.sourceEvent.deltaY*(N.sourceEvent.deltaMode===1?.05:N.sourceEvent.deltaMode?1:.002)*p,R=C[2]*Math.pow(2,T*P);t.scaleTo(R)};let v=[0,0];const b=N=>{(N.sourceEvent.type==="mousedown"||N.sourceEvent.type==="touchstart")&&(v=[N.sourceEvent.clientX??N.sourceEvent.touches[0].clientX,N.sourceEvent.clientY??N.sourceEvent.touches[0].clientY])},j=N=>{const C=n();if(N.sourceEvent.type!=="mousemove"&&N.sourceEvent.type!=="touchmove"||!t)return;const P=[N.sourceEvent.clientX??N.sourceEvent.touches[0].clientX,N.sourceEvent.clientY??N.sourceEvent.touches[0].clientY],T=[P[0]-v[0],P[1]-v[1]];v=P;const R=r()*Math.max(C[2],Math.log(C[2]))*(y?-1:1),I={x:C[0]-T[0]*R,y:C[1]-T[1]*R},_=[[0,0],[u,f]];t.setViewportConstrained({x:I.x,y:I.y,zoom:C[2]},_,l)},S=Y3().on("start",b).on("zoom",h?j:null).on("zoom.wheel",g?k:null);o.call(S,{})}function a(){o.on("zoom",null)}return{update:i,destroy:a,pointer:hs}}const fg=e=>({x:e.x,y:e.y,zoom:e.k}),ib=({x:e,y:t,zoom:n})=>cg.translate(e,t).scale(n),$l=(e,t)=>e.target.closest(`.${t}`),wD=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),Qne=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,ab=(e,t=0,n=Qne,r=()=>{})=>{const o=typeof t=="number"&&t>0;return o||r(),o?e.transition().duration(t).ease(n).on("end",r):e},jD=e=>{const t=e.ctrlKey&&Td()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function Jne({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:o,panOnScrollSpeed:i,zoomOnPinch:a,onPanZoomStart:l,onPanZoom:u,onPanZoomEnd:f}){return p=>{if($l(p,t))return p.ctrlKey&&p.preventDefault(),!1;p.preventDefault(),p.stopImmediatePropagation();const h=n.property("__zoom").k||1;if(p.ctrlKey&&a){const b=hs(p),j=jD(p),S=h*Math.pow(2,j);r.scaleTo(n,S,b,p);return}const g=p.deltaMode===1?20:1;let y=o===ba.Vertical?0:p.deltaX*g,k=o===ba.Horizontal?0:p.deltaY*g;!Td()&&p.shiftKey&&o!==ba.Vertical&&(y=p.deltaY*g,k=0),r.translateBy(n,-(y/h)*i,-(k/h)*i,{internal:!0});const v=fg(n.property("__zoom"));clearTimeout(e.panScrollTimeout),e.isPanScrolling?(u==null||u(p,v),e.panScrollTimeout=setTimeout(()=>{f==null||f(p,v),e.isPanScrolling=!1},150)):(e.isPanScrolling=!0,l==null||l(p,v))}}function Zne({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,o){const i=r.type==="wheel",a=!t&&i&&!r.ctrlKey,l=$l(r,e);if(r.ctrlKey&&i&&l&&r.preventDefault(),a||l)return null;r.preventDefault(),n.call(this,r,o)}}function ere({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var i,a,l;if((i=r.sourceEvent)!=null&&i.internal)return;const o=fg(r.transform);e.mouseButton=((a=r.sourceEvent)==null?void 0:a.button)||0,e.isZoomingOrPanning=!0,e.prevViewport=o,((l=r.sourceEvent)==null?void 0:l.type)==="mousedown"&&t(!0),n&&(n==null||n(r.sourceEvent,o))}}function tre({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:o}){return i=>{var a,l;e.usedRightMouseButton=!!(n&&wD(t,e.mouseButton??0)),(a=i.sourceEvent)!=null&&a.sync||r([i.transform.x,i.transform.y,i.transform.k]),o&&!((l=i.sourceEvent)!=null&&l.internal)&&(o==null||o(i.sourceEvent,fg(i.transform)))}}function nre({zoomPanValues:e,panOnDrag:t,panOnScroll:n,onDraggingChange:r,onPanZoomEnd:o,onPaneContextMenu:i}){return a=>{var l;if(!((l=a.sourceEvent)!=null&&l.internal)&&(e.isZoomingOrPanning=!1,i&&wD(t,e.mouseButton??0)&&!e.usedRightMouseButton&&a.sourceEvent&&i(a.sourceEvent),e.usedRightMouseButton=!1,r(!1),o)){const u=fg(a.transform);e.prevViewport=u,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{o==null||o(a.sourceEvent,u)},n?150:0)}}}function rre({zoomActivationKeyPressed:e,zoomOnScroll:t,zoomOnPinch:n,panOnDrag:r,panOnScroll:o,zoomOnDoubleClick:i,userSelectionActive:a,noWheelClassName:l,noPanClassName:u,lib:f,connectionInProgress:p}){return h=>{var b;const g=e||t,y=n&&h.ctrlKey,k=h.type==="wheel";if(h.button===1&&h.type==="mousedown"&&($l(h,`${f}-flow__node`)||$l(h,`${f}-flow__edge`)))return!0;if(!r&&!g&&!o&&!i&&!n||a||p&&!k||$l(h,l)&&k||$l(h,u)&&(!k||o&&k&&!e)||!n&&h.ctrlKey&&k)return!1;if(!n&&h.type==="touchstart"&&((b=h.touches)==null?void 0:b.length)>1)return h.preventDefault(),!1;if(!g&&!o&&!y&&k||!r&&(h.type==="mousedown"||h.type==="touchstart")||Array.isArray(r)&&!r.includes(h.button)&&h.type==="mousedown")return!1;const v=Array.isArray(r)&&r.includes(h.button)||!h.button||h.button<=1;return(!h.ctrlKey||k)&&v}}function sre({domNode:e,minZoom:t,maxZoom:n,translateExtent:r,viewport:o,onPanZoom:i,onPanZoomStart:a,onPanZoomEnd:l,onDraggingChange:u}){const f={isZoomingOrPanning:!1,usedRightMouseButton:!1,prevViewport:{},mouseButton:0,timerId:void 0,panScrollTimeout:void 0,isPanScrolling:!1},p=e.getBoundingClientRect(),h=Y3().scaleExtent([t,n]).translateExtent(r),g=Br(e).call(h);S({x:o.x,y:o.y,zoom:cc(o.zoom,t,n)},[[0,0],[p.width,p.height]],r);const y=g.on("wheel.zoom"),k=g.on("dblclick.zoom");h.wheelDelta(jD);async function v(D,W){return g?new Promise(V=>{h==null||h.interpolate((W==null?void 0:W.interpolate)==="linear"?rd:nh).transform(ab(g,W==null?void 0:W.duration,W==null?void 0:W.ease,()=>V(!0)),D)}):!1}function b({noWheelClassName:D,noPanClassName:W,onPaneContextMenu:V,userSelectionActive:$,panOnScroll:O,panOnDrag:U,panOnScrollMode:K,panOnScrollSpeed:M,preventScrolling:H,zoomOnPinch:L,zoomOnScroll:z,zoomOnDoubleClick:Y,zoomActivationKeyPressed:B,lib:Q,onTransformChange:J,connectionInProgress:Z,paneClickDistance:oe,selectionOnDrag:ne}){$&&!f.isZoomingOrPanning&&j();const ue=O&&!B&&!$;h.clickDistance(ne?1/0:!gs(oe)||oe<0?0:oe);const ge=ue?Jne({zoomPanValues:f,noWheelClassName:D,d3Selection:g,d3Zoom:h,panOnScrollMode:K,panOnScrollSpeed:M,zoomOnPinch:L,onPanZoomStart:a,onPanZoom:i,onPanZoomEnd:l}):Zne({noWheelClassName:D,preventScrolling:H,d3ZoomHandler:y});g.on("wheel.zoom",ge,{passive:!1});const Ce=ere({zoomPanValues:f,onDraggingChange:u,onPanZoomStart:a});h.on("start",Ce);const Se=tre({zoomPanValues:f,panOnDrag:U,onPaneContextMenu:!!V,onPanZoom:i,onTransformChange:J});h.on("zoom",Se);const ke=nre({zoomPanValues:f,panOnDrag:U,panOnScroll:O,onPaneContextMenu:V,onPanZoomEnd:l,onDraggingChange:u});h.on("end",ke);const Be=rre({zoomActivationKeyPressed:B,panOnDrag:U,zoomOnScroll:z,panOnScroll:O,zoomOnDoubleClick:Y,zoomOnPinch:L,userSelectionActive:$,noPanClassName:W,noWheelClassName:D,lib:Q,connectionInProgress:Z});h.filter(Be),Y?g.on("dblclick.zoom",k):g.on("dblclick.zoom",null)}function j(){h.on("zoom",null)}async function S(D,W,V){const $=ib(D),O=h==null?void 0:h.constrain()($,W,V);return O&&await v(O),O}async function N(D,W){const V=ib(D);return await v(V,W),V}function C(D){if(g){const W=ib(D),V=g.property("__zoom");(V.k!==D.zoom||V.x!==D.x||V.y!==D.y)&&(h==null||h.transform(g,W,null,{sync:!0}))}}function P(){const D=g?G3(g.node()):{x:0,y:0,k:1};return{x:D.x,y:D.y,zoom:D.k}}async function T(D,W){return g?new Promise(V=>{h==null||h.interpolate((W==null?void 0:W.interpolate)==="linear"?rd:nh).scaleTo(ab(g,W==null?void 0:W.duration,W==null?void 0:W.ease,()=>V(!0)),D)}):!1}async function R(D,W){return g?new Promise(V=>{h==null||h.interpolate((W==null?void 0:W.interpolate)==="linear"?rd:nh).scaleBy(ab(g,W==null?void 0:W.duration,W==null?void 0:W.ease,()=>V(!0)),D)}):!1}function I(D){h==null||h.scaleExtent(D)}function _(D){h==null||h.translateExtent(D)}function F(D){const W=!gs(D)||D<0?0:D;h==null||h.clickDistance(W)}return{update:b,destroy:j,setViewport:N,setViewportConstrained:S,getViewport:P,scaleTo:T,scaleBy:R,setScaleExtent:I,setTranslateExtent:_,syncViewport:C,setClickDistance:F}}var fc;(function(e){e.Line="line",e.Handle="handle"})(fc||(fc={}));function ore({width:e,prevWidth:t,height:n,prevHeight:r,affectsX:o,affectsY:i}){const a=e-t,l=n-r,u=[a>0?1:a<0?-1:0,l>0?1:l<0?-1:0];return a&&o&&(u[0]=u[0]*-1),l&&i&&(u[1]=u[1]*-1),u}function XC(e){const t=e.includes("right")||e.includes("left"),n=e.includes("bottom")||e.includes("top"),r=e.includes("left"),o=e.includes("top");return{isHorizontal:t,isVertical:n,affectsX:r,affectsY:o}}function hi(e,t){return Math.max(0,t-e)}function mi(e,t){return Math.max(0,e-t)}function _p(e,t,n){return Math.max(0,t-e,e-n)}function QC(e,t){return e?!t:t}function ire(e,t,n,r,o,i,a,l){let{affectsX:u,affectsY:f}=t;const{isHorizontal:p,isVertical:h}=t,g=p&&h,{xSnapped:y,ySnapped:k}=n,{minWidth:v,maxWidth:b,minHeight:j,maxHeight:S}=r,{x:N,y:C,width:P,height:T,aspectRatio:R}=e;let I=Math.floor(p?y-e.pointerX:0),_=Math.floor(h?k-e.pointerY:0);const F=P+(u?-I:I),D=T+(f?-_:_),W=-i[0]*P,V=-i[1]*T;let $=_p(F,v,b),O=_p(D,j,S);if(a){let M=0,H=0;u&&I<0?M=hi(N+I+W,a[0][0]):!u&&I>0&&(M=mi(N+F+W,a[1][0])),f&&_<0?H=hi(C+_+V,a[0][1]):!f&&_>0&&(H=mi(C+D+V,a[1][1])),$=Math.max($,M),O=Math.max(O,H)}if(l){let M=0,H=0;u&&I>0?M=mi(N+I,l[0][0]):!u&&I<0&&(M=hi(N+F,l[1][0])),f&&_>0?H=mi(C+_,l[0][1]):!f&&_<0&&(H=hi(C+D,l[1][1])),$=Math.max($,M),O=Math.max(O,H)}if(o){if(p){const M=_p(F/R,j,S)*R;if($=Math.max($,M),a){let H=0;!u&&!f||u&&!f&&g?H=mi(C+V+F/R,a[1][1])*R:H=hi(C+V+(u?I:-I)/R,a[0][1])*R,$=Math.max($,H)}if(l){let H=0;!u&&!f||u&&!f&&g?H=hi(C+F/R,l[1][1])*R:H=mi(C+(u?I:-I)/R,l[0][1])*R,$=Math.max($,H)}}if(h){const M=_p(D*R,v,b)/R;if(O=Math.max(O,M),a){let H=0;!u&&!f||f&&!u&&g?H=mi(N+D*R+W,a[1][0])/R:H=hi(N+(f?_:-_)*R+W,a[0][0])/R,O=Math.max(O,H)}if(l){let H=0;!u&&!f||f&&!u&&g?H=hi(N+D*R,l[1][0])/R:H=mi(N+(f?_:-_)*R,l[0][0])/R,O=Math.max(O,H)}}}_=_+(_<0?O:-O),I=I+(I<0?$:-$),o&&(g?F>D*R?_=(QC(u,f)?-I:I)/R:I=(QC(u,f)?-_:_)*R:p?(_=I/R,f=u):(I=_*R,u=f));const U=u?N+I:N,K=f?C+_:C;return{width:P+(u?-I:I),height:T+(f?-_:_),x:i[0]*I*(u?-1:1)+U,y:i[1]*_*(f?-1:1)+K}}const kD={width:0,height:0,x:0,y:0},are={...kD,pointerX:0,pointerY:0,aspectRatio:1};function lre(e,t,n){const r=t.position.x+e.position.x,o=t.position.y+e.position.y,i=e.measured.width??0,a=e.measured.height??0,l=n[0]*i,u=n[1]*a;return[[r-l,o-u],[r+i-l,o+a-u]]}function cre({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:o}){const i=Br(e);let a={controlDirection:XC("bottom-right"),boundaries:{minWidth:0,minHeight:0,maxWidth:Number.MAX_VALUE,maxHeight:Number.MAX_VALUE},resizeDirection:void 0,keepAspectRatio:!1};function l({controlPosition:f,boundaries:p,keepAspectRatio:h,resizeDirection:g,onResizeStart:y,onResize:k,onResizeEnd:v,shouldResize:b}){let j={...kD},S={...are};a={boundaries:p,resizeDirection:g,keepAspectRatio:h,controlDirection:XC(f)};let N,C=null,P=[],T,R,I,_=!1;const F=D3().on("start",D=>{const{nodeLookup:W,transform:V,snapGrid:$,snapToGrid:O,nodeOrigin:U,paneDomNode:K}=n();if(N=W.get(t),!N)return;C=(K==null?void 0:K.getBoundingClientRect())??null;const{xSnapped:M,ySnapped:H}=sd(D.sourceEvent,{transform:V,snapGrid:$,snapToGrid:O,containerBounds:C});j={width:N.measured.width??0,height:N.measured.height??0,x:N.position.x??0,y:N.position.y??0},S={...j,pointerX:M,pointerY:H,aspectRatio:j.width/j.height},T=void 0,R=Ca(N.extent)?N.extent:void 0,N.parentId&&(N.extent==="parent"||N.expandParent)&&(T=W.get(N.parentId)),T&&N.extent==="parent"&&(R=[[0,0],[T.measured.width,T.measured.height]]),P=[],I=void 0;for(const[L,z]of W)if(z.parentId===t&&(P.push({id:L,position:{...z.position},extent:z.extent}),z.extent==="parent"||z.expandParent)){const Y=lre(z,N,z.origin??U);I?I=[[Math.min(Y[0][0],I[0][0]),Math.min(Y[0][1],I[0][1])],[Math.max(Y[1][0],I[1][0]),Math.max(Y[1][1],I[1][1])]]:I=Y}y==null||y(D,{...j})}).on("drag",D=>{const{transform:W,snapGrid:V,snapToGrid:$,nodeOrigin:O}=n(),U=sd(D.sourceEvent,{transform:W,snapGrid:V,snapToGrid:$,containerBounds:C}),K=[];if(!N)return;const{x:M,y:H,width:L,height:z}=j,Y={},B=N.origin??O,{width:Q,height:J,x:Z,y:oe}=ire(S,a.controlDirection,U,a.boundaries,a.keepAspectRatio,B,R,I),ne=Q!==L,ue=J!==z,ge=Z!==M&&ne,Ce=oe!==H&&ue;if(!ge&&!Ce&&!ne&&!ue)return;if((ge||Ce||B[0]===1||B[1]===1)&&(Y.x=ge?Z:j.x,Y.y=Ce?oe:j.y,j.x=Y.x,j.y=Y.y,P.length>0)){const ie=Z-M,ve=oe-H;for(const be of P)be.position={x:be.position.x-ie+B[0]*(Q-L),y:be.position.y-ve+B[1]*(J-z)},K.push(be)}if((ne||ue)&&(Y.width=ne&&(!a.resizeDirection||a.resizeDirection==="horizontal")?Q:j.width,Y.height=ue&&(!a.resizeDirection||a.resizeDirection==="vertical")?J:j.height,j.width=Y.width,j.height=Y.height),T&&N.expandParent){const ie=B[0]*(Y.width??0);Y.x&&Y.x<ie&&(j.x=ie,S.x=S.x-(Y.x-ie));const ve=B[1]*(Y.height??0);Y.y&&Y.y<ve&&(j.y=ve,S.y=S.y-(Y.y-ve))}const Se=ore({width:j.width,prevWidth:L,height:j.height,prevHeight:z,affectsX:a.controlDirection.affectsX,affectsY:a.controlDirection.affectsY}),ke={...j,direction:Se};(b==null?void 0:b(D,ke))!==!1&&(_=!0,k==null||k(D,ke),r(Y,K))}).on("end",D=>{_&&(v==null||v(D,{...j}),o==null||o({...j}),_=!1)});i.call(F)}function u(){i.on(".drag",null)}return{update:l,destroy:u}}var lb={exports:{}},cb={},ub={exports:{}},db={};/**
|
|
648
|
-
* @license React
|
|
649
|
-
* use-sync-external-store-shim.production.js
|
|
650
|
-
*
|
|
651
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
652
|
-
*
|
|
653
|
-
* This source code is licensed under the MIT license found in the
|
|
654
|
-
* LICENSE file in the root directory of this source tree.
|
|
655
|
-
*/var JC;function ure(){if(JC)return db;JC=1;var e=_d();function t(h,g){return h===g&&(h!==0||1/h===1/g)||h!==h&&g!==g}var n=typeof Object.is=="function"?Object.is:t,r=e.useState,o=e.useEffect,i=e.useLayoutEffect,a=e.useDebugValue;function l(h,g){var y=g(),k=r({inst:{value:y,getSnapshot:g}}),v=k[0].inst,b=k[1];return i(function(){v.value=y,v.getSnapshot=g,u(v)&&b({inst:v})},[h,y,g]),o(function(){return u(v)&&b({inst:v}),h(function(){u(v)&&b({inst:v})})},[h]),a(y),y}function u(h){var g=h.getSnapshot;h=h.value;try{var y=g();return!n(h,y)}catch{return!0}}function f(h,g){return g()}var p=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?f:l;return db.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:p,db}var ZC;function dre(){return ZC||(ZC=1,ub.exports=ure()),ub.exports}/**
|
|
656
|
-
* @license React
|
|
657
|
-
* use-sync-external-store-shim/with-selector.production.js
|
|
658
|
-
*
|
|
659
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
660
|
-
*
|
|
661
|
-
* This source code is licensed under the MIT license found in the
|
|
662
|
-
* LICENSE file in the root directory of this source tree.
|
|
663
|
-
*/var eE;function fre(){if(eE)return cb;eE=1;var e=_d(),t=dre();function n(f,p){return f===p&&(f!==0||1/f===1/p)||f!==f&&p!==p}var r=typeof Object.is=="function"?Object.is:n,o=t.useSyncExternalStore,i=e.useRef,a=e.useEffect,l=e.useMemo,u=e.useDebugValue;return cb.useSyncExternalStoreWithSelector=function(f,p,h,g,y){var k=i(null);if(k.current===null){var v={hasValue:!1,value:null};k.current=v}else v=k.current;k=l(function(){function j(T){if(!S){if(S=!0,N=T,T=g(T),y!==void 0&&v.hasValue){var R=v.value;if(y(R,T))return C=R}return C=T}if(R=C,r(N,T))return R;var I=g(T);return y!==void 0&&y(R,I)?(N=T,R):(N=T,C=I)}var S=!1,N,C,P=h===void 0?null:h;return[function(){return j(p())},P===null?void 0:function(){return j(P())}]},[p,h,g,y]);var b=o(f,k[0],k[1]);return a(function(){v.hasValue=!0,v.value=b},[b]),u(b),b},cb}var tE;function pre(){return tE||(tE=1,lb.exports=fre()),lb.exports}var hre=pre();const mre=Pd(hre),gre={},nE=e=>{let t;const n=new Set,r=(p,h)=>{const g=typeof p=="function"?p(t):p;if(!Object.is(g,t)){const y=t;t=h??(typeof g!="object"||g===null)?g:Object.assign({},t,g),n.forEach(k=>k(t,y))}},o=()=>t,u={setState:r,getState:o,getInitialState:()=>f,subscribe:p=>(n.add(p),()=>n.delete(p)),destroy:()=>{(gre?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),n.clear()}},f=t=e(r,o,u);return u},xre=e=>e?nE(e):nE,{useDebugValue:yre}=Ot,{useSyncExternalStoreWithSelector:bre}=mre,vre=e=>e;function ND(e,t=vre,n){const r=bre(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return yre(r),r}const rE=(e,t)=>{const n=xre(e),r=(o,i=t)=>ND(n,o,i);return Object.assign(r,n),r},wre=(e,t)=>e?rE(e,t):rE;function on(e,t){if(Object.is(e,t))return!0;if(typeof e!="object"||e===null||typeof t!="object"||t===null)return!1;if(e instanceof Map&&t instanceof Map){if(e.size!==t.size)return!1;for(const[r,o]of e)if(!Object.is(o,t.get(r)))return!1;return!0}if(e instanceof Set&&t instanceof Set){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}const n=Object.keys(e);if(n.length!==Object.keys(t).length)return!1;for(const r of n)if(!Object.prototype.hasOwnProperty.call(t,r)||!Object.is(e[r],t[r]))return!1;return!0}const pg=m.createContext(null),jre=pg.Provider,SD=Cs.error001("react");function _t(e,t){const n=m.useContext(pg);if(n===null)throw new Error(SD);return ND(n,e,t)}function an(){const e=m.useContext(pg);if(e===null)throw new Error(SD);return m.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const sE={display:"none"},kre={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},CD="react-flow__node-desc",ED="react-flow__edge-desc",Nre="react-flow__aria-live",Sre=e=>e.ariaLiveMessage,Cre=e=>e.ariaLabelConfig;function Ere({rfId:e}){const t=_t(Sre);return s.jsx("div",{id:`${Nre}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:kre,children:t})}function Tre({rfId:e,disableKeyboardA11y:t}){const n=_t(Cre);return s.jsxs(s.Fragment,{children:[s.jsx("div",{id:`${CD}-${e}`,style:sE,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),s.jsx("div",{id:`${ED}-${e}`,style:sE,children:n["edge.a11yDescription.default"]}),!t&&s.jsx(Ere,{rfId:e})]})}const sf=m.forwardRef(({position:e="top-left",children:t,className:n,style:r,...o},i)=>{const a=`${e}`.split("-");return s.jsx("div",{className:Cn(["react-flow__panel",n,...a]),style:r,ref:i,...o,children:t})});sf.displayName="Panel";function Rre({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:s.jsx(sf,{position:t,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://pro.reactflow.dev",children:s.jsx("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution",children:"React Flow"})})}const Are=e=>{const t=[],n=[];for(const[,r]of e.nodeLookup)r.selected&&t.push(r.internals.userNode);for(const[,r]of e.edgeLookup)r.selected&&n.push(r);return{selectedNodes:t,selectedEdges:n}},Dp=e=>e.id;function Pre(e,t){return on(e.selectedNodes.map(Dp),t.selectedNodes.map(Dp))&&on(e.selectedEdges.map(Dp),t.selectedEdges.map(Dp))}function _re({onSelectionChange:e}){const t=an(),{selectedNodes:n,selectedEdges:r}=_t(Are,Pre);return m.useEffect(()=>{const o={nodes:n,edges:r};e==null||e(o),t.getState().onSelectionChangeHandlers.forEach(i=>i(o))},[n,r,e]),null}const Dre=e=>!!e.onSelectionChangeHandlers;function $re({onSelectionChange:e}){const t=_t(Dre);return e||t?s.jsx(_re,{onSelectionChange:e}):null}const TD=[0,0],Ire={x:0,y:0,zoom:1},Mre=["nodes","edges","defaultNodes","defaultEdges","onConnect","onConnectStart","onConnectEnd","onClickConnectStart","onClickConnectEnd","nodesDraggable","autoPanOnNodeFocus","nodesConnectable","nodesFocusable","edgesFocusable","edgesReconnectable","elevateNodesOnSelect","elevateEdgesOnSelect","minZoom","maxZoom","nodeExtent","onNodesChange","onEdgesChange","elementsSelectable","connectionMode","snapGrid","snapToGrid","translateExtent","connectOnClick","defaultEdgeOptions","fitView","fitViewOptions","onNodesDelete","onEdgesDelete","onDelete","onNodeDrag","onNodeDragStart","onNodeDragStop","onSelectionDrag","onSelectionDragStart","onSelectionDragStop","onMoveStart","onMove","onMoveEnd","noPanClassName","nodeOrigin","autoPanOnConnect","autoPanOnNodeDrag","onError","connectionRadius","isValidConnection","selectNodesOnDrag","nodeDragThreshold","connectionDragThreshold","onBeforeDelete","debug","autoPanSpeed","ariaLabelConfig","zIndexMode"],oE=[...Mre,"rfId"],Lre=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges}),iE={translateExtent:Sd,nodeOrigin:TD,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function Ore(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:o,setTranslateExtent:i,setNodeExtent:a,reset:l,setDefaultNodesAndEdges:u}=_t(Lre,on),f=an();m.useEffect(()=>(u(e.defaultNodes,e.defaultEdges),()=>{p.current=iE,l()}),[]);const p=m.useRef(iE);return m.useEffect(()=>{for(const h of oE){const g=e[h],y=p.current[h];g!==y&&(typeof e[h]>"u"||(h==="nodes"?t(g):h==="edges"?n(g):h==="minZoom"?r(g):h==="maxZoom"?o(g):h==="translateExtent"?i(g):h==="nodeExtent"?a(g):h==="ariaLabelConfig"?f.setState({ariaLabelConfig:jne(g)}):h==="fitView"?f.setState({fitViewQueued:g}):h==="fitViewOptions"?f.setState({fitViewOptions:g}):f.setState({[h]:g})))}p.current=e},oE.map(h=>e[h])),null}function aE(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function Fre(e){var r;const[t,n]=m.useState(e==="system"?null:e);return m.useEffect(()=>{if(e!=="system"){n(e);return}const o=aE(),i=()=>n(o!=null&&o.matches?"dark":"light");return i(),o==null||o.addEventListener("change",i),()=>{o==null||o.removeEventListener("change",i)}},[e]),t!==null?t:(r=aE())!=null&&r.matches?"dark":"light"}const lE=typeof document<"u"?document:null;function Rd(e=null,t={target:lE,actInsideInputWithModifier:!0}){const[n,r]=m.useState(!1),o=m.useRef(!1),i=m.useRef(new Set([])),[a,l]=m.useMemo(()=>{if(e!==null){const f=(Array.isArray(e)?e:[e]).filter(h=>typeof h=="string").map(h=>h.replace("+",`
|
|
664
|
-
`).replace(`
|
|
665
|
-
|
|
666
|
-
`,`
|
|
667
|
-
+`).split(`
|
|
668
|
-
`)),p=f.reduce((h,g)=>h.concat(...g),[]);return[f,p]}return[[],[]]},[e]);return m.useEffect(()=>{const u=(t==null?void 0:t.target)??lE,f=(t==null?void 0:t.actInsideInputWithModifier)??!0;if(e!==null){const p=y=>{var b,j;if(o.current=y.ctrlKey||y.metaKey||y.shiftKey||y.altKey,(!o.current||o.current&&!f)&&lD(y))return!1;const v=uE(y.code,l);if(i.current.add(y[v]),cE(a,i.current,!1)){const S=((j=(b=y.composedPath)==null?void 0:b.call(y))==null?void 0:j[0])||y.target,N=(S==null?void 0:S.nodeName)==="BUTTON"||(S==null?void 0:S.nodeName)==="A";t.preventDefault!==!1&&(o.current||!N)&&y.preventDefault(),r(!0)}},h=y=>{const k=uE(y.code,l);cE(a,i.current,!0)?(r(!1),i.current.clear()):i.current.delete(y[k]),y.key==="Meta"&&i.current.clear(),o.current=!1},g=()=>{i.current.clear(),r(!1)};return u==null||u.addEventListener("keydown",p),u==null||u.addEventListener("keyup",h),window.addEventListener("blur",g),window.addEventListener("contextmenu",g),()=>{u==null||u.removeEventListener("keydown",p),u==null||u.removeEventListener("keyup",h),window.removeEventListener("blur",g),window.removeEventListener("contextmenu",g)}}},[e,r]),n}function cE(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(o=>t.has(o)))}function uE(e,t){return t.includes(e)?"code":"key"}const zre=()=>{const e=an();return m.useMemo(()=>({zoomIn:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1.2,t):!1},zoomOut:async t=>{const{panZoom:n}=e.getState();return n?n.scaleBy(1/1.2,t):!1},zoomTo:async(t,n)=>{const{panZoom:r}=e.getState();return r?r.scaleTo(t,n):!1},getZoom:()=>e.getState().transform[2],setViewport:async(t,n)=>{const{transform:[r,o,i],panZoom:a}=e.getState();return a?(await a.setViewport({x:t.x??r,y:t.y??o,zoom:t.zoom??i},n),!0):!1},getViewport:()=>{const[t,n,r]=e.getState().transform;return{x:t,y:n,zoom:r}},setCenter:async(t,n,r)=>e.getState().setCenter(t,n,r),fitBounds:async(t,n)=>{const{width:r,height:o,minZoom:i,maxZoom:a,panZoom:l}=e.getState(),u=z0(t,r,o,i,a,(n==null?void 0:n.padding)??.1);return l?(await l.setViewport(u,{duration:n==null?void 0:n.duration,ease:n==null?void 0:n.ease,interpolate:n==null?void 0:n.interpolate}),!0):!1},screenToFlowPosition:(t,n={})=>{const{transform:r,snapGrid:o,snapToGrid:i,domNode:a}=e.getState();if(!a)return t;const{x:l,y:u}=a.getBoundingClientRect(),f={x:t.x-l,y:t.y-u},p=n.snapGrid??o,h=n.snapToGrid??i;return Lc(f,r,h,p)},flowToScreenPosition:t=>{const{transform:n,domNode:r}=e.getState();if(!r)return t;const{x:o,y:i}=r.getBoundingClientRect(),a=dc(t,n);return{x:a.x+o,y:a.y+i}}}),[])};function RD(e,t){const n=[],r=new Map,o=[];for(const i of e)if(i.type==="add"){o.push(i);continue}else if(i.type==="remove"||i.type==="replace")r.set(i.id,[i]);else{const a=r.get(i.id);a?a.push(i):r.set(i.id,[i])}for(const i of t){const a=r.get(i.id);if(!a){n.push(i);continue}if(a[0].type==="remove")continue;if(a[0].type==="replace"){n.push({...a[0].item});continue}const l={...i};for(const u of a)Bre(u,l);n.push(l)}return o.length&&o.forEach(i=>{i.index!==void 0?n.splice(i.index,0,{...i.item}):n.push({...i.item})}),n}function Bre(e,t){switch(e.type){case"select":{t.selected=e.selected;break}case"position":{typeof e.position<"u"&&(t.position=e.position),typeof e.dragging<"u"&&(t.dragging=e.dragging);break}case"dimensions":{typeof e.dimensions<"u"&&(t.measured={...e.dimensions},e.setAttributes&&((e.setAttributes===!0||e.setAttributes==="width")&&(t.width=e.dimensions.width),(e.setAttributes===!0||e.setAttributes==="height")&&(t.height=e.dimensions.height))),typeof e.resizing=="boolean"&&(t.resizing=e.resizing);break}}}function AD(e,t){return RD(e,t)}function PD(e,t){return RD(e,t)}function sa(e,t){return{id:e,type:"select",selected:t}}function Il(e,t=new Set,n=!1){const r=[];for(const[o,i]of e){const a=t.has(o);!(i.selected===void 0&&!a)&&i.selected!==a&&(n&&(i.selected=a),r.push(sa(i.id,a)))}return r}function dE({items:e=[],lookup:t}){var o;const n=[],r=new Map(e.map(i=>[i.id,i]));for(const[i,a]of e.entries()){const l=t.get(a.id),u=((o=l==null?void 0:l.internals)==null?void 0:o.userNode)??l;u!==void 0&&u!==a&&n.push({id:a.id,item:a,type:"replace"}),u===void 0&&n.push({item:a,type:"add",index:i})}for(const[i]of t)r.get(i)===void 0&&n.push({id:i,type:"remove"});return n}function fE(e){return{id:e.id,type:"remove"}}const Ure=sD();function Hre(e,t,n={}){return Tne(e,t,{...n,onError:n.onError??Ure})}const pE=e=>pne(e),Vre=e=>eD(e);function _D(e){return m.forwardRef(e)}const Wre=typeof window<"u"?m.useLayoutEffect:m.useEffect;function hE(e){const[t,n]=m.useState(BigInt(0)),[r]=m.useState(()=>Kre(()=>n(o=>o+BigInt(1))));return Wre(()=>{const o=r.get();o.length&&(e(o),r.reset())},[t]),r}function Kre(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const DD=m.createContext(null);function qre({children:e}){const t=an(),n=m.useCallback(l=>{const{nodes:u=[],setNodes:f,hasDefaultNodes:p,onNodesChange:h,nodeLookup:g,fitViewQueued:y,onNodesChangeMiddlewareMap:k}=t.getState();let v=u;for(const j of l)v=typeof j=="function"?j(v):j;let b=dE({items:v,lookup:g});for(const j of k.values())b=j(b);p&&f(v),b.length>0?h==null||h(b):y&&window.requestAnimationFrame(()=>{const{fitViewQueued:j,nodes:S,setNodes:N}=t.getState();j&&N(S)})},[]),r=hE(n),o=m.useCallback(l=>{const{edges:u=[],setEdges:f,hasDefaultEdges:p,onEdgesChange:h,edgeLookup:g}=t.getState();let y=u;for(const k of l)y=typeof k=="function"?k(y):k;p?f(y):h&&h(dE({items:y,lookup:g}))},[]),i=hE(o),a=m.useMemo(()=>({nodeQueue:r,edgeQueue:i}),[]);return s.jsx(DD.Provider,{value:a,children:e})}function Gre(){const e=m.useContext(DD);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const Yre=e=>!!e.panZoom;function hg(){const e=zre(),t=an(),n=Gre(),r=_t(Yre),o=m.useMemo(()=>{const i=h=>t.getState().nodeLookup.get(h),a=h=>{n.nodeQueue.push(h)},l=h=>{n.edgeQueue.push(h)},u=h=>{var j,S;const{nodeLookup:g,nodeOrigin:y}=t.getState(),k=pE(h)?h:g.get(h.id),v=k.parentId?iD(k.position,k.measured,k.parentId,g,y):k.position,b={...k,position:v,width:((j=k.measured)==null?void 0:j.width)??k.width,height:((S=k.measured)==null?void 0:S.height)??k.height};return uc(b)},f=(h,g,y={replace:!1})=>{a(k=>k.map(v=>{if(v.id===h){const b=typeof g=="function"?g(v):g;return y.replace&&pE(b)?b:{...v,...b}}return v}))},p=(h,g,y={replace:!1})=>{l(k=>k.map(v=>{if(v.id===h){const b=typeof g=="function"?g(v):g;return y.replace&&Vre(b)?b:{...v,...b}}return v}))};return{getNodes:()=>t.getState().nodes.map(h=>({...h})),getNode:h=>{var g;return(g=i(h))==null?void 0:g.internals.userNode},getInternalNode:i,getEdges:()=>{const{edges:h=[]}=t.getState();return h.map(g=>({...g}))},getEdge:h=>t.getState().edgeLookup.get(h),setNodes:a,setEdges:l,addNodes:h=>{const g=Array.isArray(h)?h:[h];n.nodeQueue.push(y=>[...y,...g])},addEdges:h=>{const g=Array.isArray(h)?h:[h];n.edgeQueue.push(y=>[...y,...g])},toObject:()=>{const{nodes:h=[],edges:g=[],transform:y}=t.getState(),[k,v,b]=y;return{nodes:h.map(j=>({...j})),edges:g.map(j=>({...j})),viewport:{x:k,y:v,zoom:b}}},deleteElements:async({nodes:h=[],edges:g=[]})=>{const{nodes:y,edges:k,onNodesDelete:v,onEdgesDelete:b,triggerNodeChanges:j,triggerEdgeChanges:S,onDelete:N,onBeforeDelete:C}=t.getState(),{nodes:P,edges:T}=await yne({nodesToRemove:h,edgesToRemove:g,nodes:y,edges:k,onBeforeDelete:C}),R=T.length>0,I=P.length>0;if(R){const _=T.map(fE);b==null||b(T),S(_)}if(I){const _=P.map(fE);v==null||v(P),j(_)}return(I||R)&&(N==null||N({nodes:P,edges:T})),{deletedNodes:P,deletedEdges:T}},getIntersectingNodes:(h,g=!0,y)=>{const k=FC(h),v=k?h:u(h),b=y!==void 0;return v?(y||t.getState().nodes).filter(j=>{const S=t.getState().nodeLookup.get(j.id);if(S&&!k&&(j.id===h.id||!S.internals.positionAbsolute))return!1;const N=uc(b?j:S),C=Ed(N,v);return g&&C>0||C>=N.width*N.height||C>=v.width*v.height}):[]},isNodeIntersecting:(h,g,y=!0)=>{const v=FC(h)?h:u(h);if(!v)return!1;const b=Ed(v,g);return y&&b>0||b>=g.width*g.height||b>=v.width*v.height},updateNode:f,updateNodeData:(h,g,y={replace:!1})=>{f(h,k=>{const v=typeof g=="function"?g(k):g;return y.replace?{...k,data:v}:{...k,data:{...k.data,...v}}},y)},updateEdge:p,updateEdgeData:(h,g,y={replace:!1})=>{p(h,k=>{const v=typeof g=="function"?g(k):g;return y.replace?{...k,data:v}:{...k,data:{...k.data,...v}}},y)},getNodesBounds:h=>{const{nodeLookup:g,nodeOrigin:y}=t.getState();return hne(h,{nodeLookup:g,nodeOrigin:y})},getHandleConnections:({type:h,id:g,nodeId:y})=>{var k;return Array.from(((k=t.getState().connectionLookup.get(`${y}-${h}${g?`-${g}`:""}`))==null?void 0:k.values())??[])},getNodeConnections:({type:h,handleId:g,nodeId:y})=>{var k;return Array.from(((k=t.getState().connectionLookup.get(`${y}${h?g?`-${h}-${g}`:`-${h}`:""}`))==null?void 0:k.values())??[])},fitView:async h=>{const g=t.getState().fitViewResolver??wne();return t.setState({fitViewQueued:!0,fitViewOptions:h,fitViewResolver:g}),n.nodeQueue.push(y=>[...y]),g.promise}}},[]);return m.useMemo(()=>({...o,...e,viewportInitialized:r}),[r])}const mE=e=>e.selected,Xre=typeof window<"u"?window:void 0;function Qre({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=an(),{deleteElements:r}=hg(),o=Rd(e,{actInsideInputWithModifier:!1}),i=Rd(t,{target:Xre});m.useEffect(()=>{if(o){const{edges:a,nodes:l}=n.getState();r({nodes:l.filter(mE),edges:a.filter(mE)}),n.setState({nodesSelectionActive:!1})}},[o]),m.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function Jre(e){const t=an();m.useEffect(()=>{const n=()=>{var o,i,a,l;if(!e.current||!(((i=(o=e.current).checkVisibility)==null?void 0:i.call(o))??!0))return!1;const r=B0(e.current);(r.height===0||r.width===0)&&((l=(a=t.getState()).onError)==null||l.call(a,"004",Cs.error004())),t.setState({width:r.width||500,height:r.height||500})};if(e.current){n(),window.addEventListener("resize",n);const r=new ResizeObserver(()=>n());return r.observe(e.current),()=>{window.removeEventListener("resize",n),r&&e.current&&r.unobserve(e.current)}}},[])}const mg={position:"absolute",width:"100%",height:"100%",top:0,left:0},Zre=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function ese({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:o=.5,panOnScrollMode:i=ba.Free,zoomOnDoubleClick:a=!0,panOnDrag:l=!0,defaultViewport:u,translateExtent:f,minZoom:p,maxZoom:h,zoomActivationKeyCode:g,preventScrolling:y=!0,children:k,noWheelClassName:v,noPanClassName:b,onViewportChange:j,isControlledViewport:S,paneClickDistance:N,selectionOnDrag:C}){const P=an(),T=m.useRef(null),{userSelectionActive:R,lib:I,connectionInProgress:_}=_t(Zre,on),F=Rd(g),D=m.useRef();Jre(T);const W=m.useCallback(V=>{j==null||j({x:V[0],y:V[1],zoom:V[2]}),S||P.setState({transform:V})},[j,S]);return m.useEffect(()=>{if(T.current){D.current=sre({domNode:T.current,minZoom:p,maxZoom:h,translateExtent:f,viewport:u,onDraggingChange:U=>P.setState(K=>K.paneDragging===U?K:{paneDragging:U}),onPanZoomStart:(U,K)=>{const{onViewportChangeStart:M,onMoveStart:H}=P.getState();H==null||H(U,K),M==null||M(K)},onPanZoom:(U,K)=>{const{onViewportChange:M,onMove:H}=P.getState();H==null||H(U,K),M==null||M(K)},onPanZoomEnd:(U,K)=>{const{onViewportChangeEnd:M,onMoveEnd:H}=P.getState();H==null||H(U,K),M==null||M(K)}});const{x:V,y:$,zoom:O}=D.current.getViewport();return P.setState({panZoom:D.current,transform:[V,$,O],domNode:T.current.closest(".react-flow")}),()=>{var U;(U=D.current)==null||U.destroy()}}},[]),m.useEffect(()=>{var V;(V=D.current)==null||V.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:o,panOnScrollMode:i,zoomOnDoubleClick:a,panOnDrag:l,zoomActivationKeyPressed:F,preventScrolling:y,noPanClassName:b,userSelectionActive:R,noWheelClassName:v,lib:I,onTransformChange:W,connectionInProgress:_,selectionOnDrag:C,paneClickDistance:N})},[e,t,n,r,o,i,a,l,F,y,b,R,v,I,W,_,C,N]),s.jsx("div",{className:"react-flow__renderer",ref:T,style:mg,children:k})}const tse=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function nse(){const{userSelectionActive:e,userSelectionRect:t}=_t(tse,on);return e&&t?s.jsx("div",{className:"react-flow__selection react-flow__container",style:{width:t.width,height:t.height,transform:`translate(${t.x}px, ${t.y}px)`}}):null}const fb=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},rse=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function sse({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Cd.Full,panOnDrag:r,autoPanOnSelection:o,paneClickDistance:i,selectionOnDrag:a,onSelectionStart:l,onSelectionEnd:u,onPaneClick:f,onPaneContextMenu:p,onPaneScroll:h,onPaneMouseEnter:g,onPaneMouseMove:y,onPaneMouseLeave:k,children:v}){const b=m.useRef(0),j=an(),{userSelectionActive:S,elementsSelectable:N,dragging:C,connectionInProgress:P,panBy:T,autoPanSpeed:R}=_t(rse,on),I=N&&(e||S),_=m.useRef(null),F=m.useRef(),D=m.useRef(new Set),W=m.useRef(new Set),V=m.useRef(!1),$=m.useRef({x:0,y:0}),O=m.useRef(!1),U=ne=>{if(V.current||P){V.current=!1;return}f==null||f(ne),j.getState().resetSelectedElements(),j.setState({nodesSelectionActive:!1})},K=ne=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){ne.preventDefault();return}p==null||p(ne)},M=h?ne=>h(ne):void 0,H=ne=>{V.current&&(ne.stopPropagation(),V.current=!1)},L=ne=>{var be,Re;const{domNode:ue,transform:ge}=j.getState();if(F.current=ue==null?void 0:ue.getBoundingClientRect(),!F.current)return;const Ce=ne.target===_.current;if(!Ce&&!!ne.target.closest(".nokey")||!e||!(a&&Ce||t)||ne.button!==0||!ne.isPrimary)return;(Re=(be=ne.target)==null?void 0:be.setPointerCapture)==null||Re.call(be,ne.pointerId),V.current=!1;const{x:Be,y:ie}=xs(ne.nativeEvent,F.current),ve=Lc({x:Be,y:ie},ge);j.setState({userSelectionRect:{width:0,height:0,startX:ve.x,startY:ve.y,x:Be,y:ie}}),Ce||(ne.stopPropagation(),ne.preventDefault())};function z(ne,ue){const{userSelectionRect:ge}=j.getState();if(!ge)return;const{transform:Ce,nodeLookup:Se,edgeLookup:ke,connectionLookup:Be,triggerNodeChanges:ie,triggerEdgeChanges:ve,defaultEdgeOptions:be}=j.getState(),Re={x:ge.startX,y:ge.startY},{x:Ue,y:rt}=dc(Re,Ce),Oe={startX:Re.x,startY:Re.y,x:ne<Ue?ne:Ue,y:ue<rt?ue:rt,width:Math.abs(ne-Ue),height:Math.abs(ue-rt)},ot=D.current,St=W.current;D.current=new Set(O0(Se,Oe,Ce,n===Cd.Partial,!0).map(at=>at.id)),W.current=new Set;const mt=(be==null?void 0:be.selectable)??!0;for(const at of D.current){const ce=Be.get(at);if(ce)for(const{edgeId:me}of ce.values()){const Ie=ke.get(me);Ie&&(Ie.selectable??mt)&&W.current.add(me)}}if(!zC(ot,D.current)){const at=Il(Se,D.current,!0);ie(at)}if(!zC(St,W.current)){const at=Il(ke,W.current);ve(at)}j.setState({userSelectionRect:Oe,userSelectionActive:!0,nodesSelectionActive:!1})}function Y(){if(!o||!F.current)return;const[ne,ue]=F0($.current,F.current,R);T({x:ne,y:ue}).then(ge=>{if(!V.current||!ge){b.current=requestAnimationFrame(Y);return}const{x:Ce,y:Se}=$.current;z(Ce,Se),b.current=requestAnimationFrame(Y)})}const B=()=>{cancelAnimationFrame(b.current),b.current=0,O.current=!1};m.useEffect(()=>()=>B(),[]);const Q=ne=>{const{userSelectionRect:ue,transform:ge,resetSelectedElements:Ce}=j.getState();if(!F.current||!ue)return;const{x:Se,y:ke}=xs(ne.nativeEvent,F.current);$.current={x:Se,y:ke};const Be=dc({x:ue.startX,y:ue.startY},ge);if(!V.current){const ie=t?0:i;if(Math.hypot(Se-Be.x,ke-Be.y)<=ie)return;Ce(),l==null||l(ne)}V.current=!0,O.current||(Y(),O.current=!0),z(Se,ke)},J=ne=>{var ue,ge;ne.button===0&&((ge=(ue=ne.target)==null?void 0:ue.releasePointerCapture)==null||ge.call(ue,ne.pointerId),!S&&ne.target===_.current&&j.getState().userSelectionRect&&(U==null||U(ne)),j.setState({userSelectionActive:!1,userSelectionRect:null}),V.current&&(u==null||u(ne),j.setState({nodesSelectionActive:D.current.size>0})),B())},Z=ne=>{var ue,ge;(ge=(ue=ne.target)==null?void 0:ue.releasePointerCapture)==null||ge.call(ue,ne.pointerId),B()},oe=r===!0||Array.isArray(r)&&r.includes(0);return s.jsxs("div",{className:Cn(["react-flow__pane",{draggable:oe,dragging:C,selection:e}]),onClick:I?void 0:fb(U,_),onContextMenu:fb(K,_),onWheel:fb(M,_),onPointerEnter:I?void 0:g,onPointerMove:I?Q:y,onPointerUp:I?J:void 0,onPointerCancel:I?Z:void 0,onPointerDownCapture:I?L:void 0,onClickCapture:I?H:void 0,onPointerLeave:k,ref:_,style:mg,children:[v,s.jsx(nse,{})]})}function Mv({id:e,store:t,unselect:n=!1,nodeRef:r}){const{addSelectedNodes:o,unselectNodesAndEdges:i,multiSelectionActive:a,nodeLookup:l,onError:u}=t.getState(),f=l.get(e);if(!f){u==null||u("012",Cs.error012(e));return}t.setState({nodesSelectionActive:!1}),f.selected?(n||f.selected&&a)&&(i({nodes:[f],edges:[]}),requestAnimationFrame(()=>{var p;return(p=r==null?void 0:r.current)==null?void 0:p.blur()})):o([e])}function $D({nodeRef:e,disabled:t=!1,noDragClassName:n,handleSelector:r,nodeId:o,isSelectable:i,nodeClickDistance:a}){const l=an(),[u,f]=m.useState(!1),p=m.useRef();return m.useEffect(()=>{p.current=Vne({getStoreItems:()=>l.getState(),onNodeMouseDown:h=>{Mv({id:h,store:l,nodeRef:e})},onDragStart:()=>{f(!0)},onDragStop:()=>{f(!1)}})},[]),m.useEffect(()=>{if(!(t||!e.current||!p.current))return p.current.update({noDragClassName:n,handleSelector:r,domNode:e.current,isSelectable:i,nodeId:o,nodeClickDistance:a}),()=>{var h;(h=p.current)==null||h.destroy()}},[n,r,t,i,e,o,a]),u}const ose=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function ID(){const e=an();return m.useCallback(n=>{const{nodeExtent:r,snapToGrid:o,snapGrid:i,nodesDraggable:a,onError:l,updateNodePositions:u,nodeLookup:f,nodeOrigin:p}=e.getState(),h=new Map,g=ose(a),y=o?i[0]:5,k=o?i[1]:5,v=n.direction.x*y*n.factor,b=n.direction.y*k*n.factor;for(const[,j]of f){if(!g(j))continue;let S={x:j.internals.positionAbsolute.x+v,y:j.internals.positionAbsolute.y+b};o&&(S=rf(S,i));const{position:N,positionAbsolute:C}=tD({nodeId:j.id,nextPosition:S,nodeLookup:f,nodeExtent:r,nodeOrigin:p,onError:l});j.position=N,j.internals.positionAbsolute=C,h.set(j.id,j)}u(h)},[])}const G0=m.createContext(null),ise=G0.Provider;G0.Consumer;const MD=()=>m.useContext(G0),ase=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),lse=(e,t,n)=>r=>{const{connectionClickStartHandle:o,connectionMode:i,connection:a}=r,{fromHandle:l,toHandle:u,isValid:f}=a,p=(u==null?void 0:u.nodeId)===e&&(u==null?void 0:u.id)===t&&(u==null?void 0:u.type)===n;return{connectingFrom:(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.id)===t&&(l==null?void 0:l.type)===n,connectingTo:p,clickConnecting:(o==null?void 0:o.nodeId)===e&&(o==null?void 0:o.id)===t&&(o==null?void 0:o.type)===n,isPossibleEndHandle:i===lc.Strict?(l==null?void 0:l.type)!==n:e!==(l==null?void 0:l.nodeId)||t!==(l==null?void 0:l.id),connectionInProcess:!!l,clickConnectionInProcess:!!o,valid:p&&f}};function cse({type:e="source",position:t=ct.Top,isValidConnection:n,isConnectable:r=!0,isConnectableStart:o=!0,isConnectableEnd:i=!0,id:a,onConnect:l,children:u,className:f,onMouseDown:p,onTouchStart:h,...g},y){var O,U;const k=a||null,v=e==="target",b=an(),j=MD(),{connectOnClick:S,noPanClassName:N,rfId:C}=_t(ase,on),{connectingFrom:P,connectingTo:T,clickConnecting:R,isPossibleEndHandle:I,connectionInProcess:_,clickConnectionInProcess:F,valid:D}=_t(lse(j,k,e),on);j||(U=(O=b.getState()).onError)==null||U.call(O,"010",Cs.error010());const W=K=>{const{defaultEdgeOptions:M,onConnect:H,hasDefaultEdges:L}=b.getState(),z={...M,...K};if(L){const{edges:Y,setEdges:B,onError:Q}=b.getState();B(Hre(z,Y,{onError:Q}))}H==null||H(z),l==null||l(z)},V=K=>{if(!j)return;const M=cD(K.nativeEvent);if(o&&(M&&K.button===0||!M)){const H=b.getState();Iv.onPointerDown(K.nativeEvent,{handleDomNode:K.currentTarget,autoPanOnConnect:H.autoPanOnConnect,connectionMode:H.connectionMode,connectionRadius:H.connectionRadius,domNode:H.domNode,nodeLookup:H.nodeLookup,lib:H.lib,isTarget:v,handleId:k,nodeId:j,flowId:H.rfId,panBy:H.panBy,cancelConnection:H.cancelConnection,onConnectStart:H.onConnectStart,onConnectEnd:(...L)=>{var z,Y;return(Y=(z=b.getState()).onConnectEnd)==null?void 0:Y.call(z,...L)},updateConnection:H.updateConnection,onConnect:W,isValidConnection:n||((...L)=>{var z,Y;return((Y=(z=b.getState()).isValidConnection)==null?void 0:Y.call(z,...L))??!0}),getTransform:()=>b.getState().transform,getFromHandle:()=>b.getState().connection.fromHandle,autoPanSpeed:H.autoPanSpeed,dragThreshold:H.connectionDragThreshold})}M?p==null||p(K):h==null||h(K)},$=K=>{const{onClickConnectStart:M,onClickConnectEnd:H,connectionClickStartHandle:L,connectionMode:z,isValidConnection:Y,lib:B,rfId:Q,nodeLookup:J,connection:Z}=b.getState();if(!j||!L&&!o)return;if(!L){M==null||M(K.nativeEvent,{nodeId:j,handleId:k,handleType:e}),b.setState({connectionClickStartHandle:{nodeId:j,type:e,id:k}});return}const oe=aD(K.target),ne=n||Y,{connection:ue,isValid:ge}=Iv.isValid(K.nativeEvent,{handle:{nodeId:j,id:k,type:e},connectionMode:z,fromNodeId:L.nodeId,fromHandleId:L.id||null,fromType:L.type,isValidConnection:ne,flowId:Q,doc:oe,lib:B,nodeLookup:J});ge&&ue&&W(ue);const Ce=structuredClone(Z);delete Ce.inProgress,Ce.toPosition=Ce.toHandle?Ce.toHandle.position:null,H==null||H(K,Ce),b.setState({connectionClickStartHandle:null})};return s.jsx("div",{"data-handleid":k,"data-nodeid":j,"data-handlepos":t,"data-id":`${C}-${j}-${k}-${e}`,className:Cn(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",N,f,{source:!v,target:v,connectable:r,connectablestart:o,connectableend:i,clickconnecting:R,connectingfrom:P,connectingto:T,valid:D,connectionindicator:r&&(!_||I)&&(_||F?i:o)}]),onMouseDown:V,onTouchStart:V,onClick:S?$:void 0,ref:y,...g,children:u})}const pc=m.memo(_D(cse));function use({data:e,isConnectable:t,sourcePosition:n=ct.Bottom}){return s.jsxs(s.Fragment,{children:[e==null?void 0:e.label,s.jsx(pc,{type:"source",position:n,isConnectable:t})]})}function dse({data:e,isConnectable:t,targetPosition:n=ct.Top,sourcePosition:r=ct.Bottom}){return s.jsxs(s.Fragment,{children:[s.jsx(pc,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,s.jsx(pc,{type:"source",position:r,isConnectable:t})]})}function fse(){return null}function pse({data:e,isConnectable:t,targetPosition:n=ct.Top}){return s.jsxs(s.Fragment,{children:[s.jsx(pc,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const Yh={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},gE={input:use,default:dse,output:pse,group:fse};function hse(e){var t,n,r,o;return e.internals.handleBounds===void 0?{width:e.width??e.initialWidth??((t=e.style)==null?void 0:t.width),height:e.height??e.initialHeight??((n=e.style)==null?void 0:n.height)}:{width:e.width??((r=e.style)==null?void 0:r.width),height:e.height??((o=e.style)==null?void 0:o.height)}}const mse=e=>{const{width:t,height:n,x:r,y:o}=nf(e.nodeLookup,{filter:i=>!!i.selected});return{width:gs(t)?t:null,height:gs(n)?n:null,userSelectionActive:e.userSelectionActive,transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]}) translate(${r}px,${o}px)`}};function gse({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=an(),{width:o,height:i,transformString:a,userSelectionActive:l}=_t(mse,on),u=ID(),f=m.useRef(null);m.useEffect(()=>{var y;n||(y=f.current)==null||y.focus({preventScroll:!0})},[n]);const p=!l&&o!==null&&i!==null;if($D({nodeRef:f,disabled:!p}),!p)return null;const h=e?y=>{const k=r.getState().nodes.filter(v=>v.selected);e(y,k)}:void 0,g=y=>{Object.prototype.hasOwnProperty.call(Yh,y.key)&&(y.preventDefault(),u({direction:Yh[y.key],factor:y.shiftKey?4:1}))};return s.jsx("div",{className:Cn(["react-flow__nodesselection","react-flow__container",t]),style:{transform:a},children:s.jsx("div",{ref:f,className:"react-flow__nodesselection-rect",onContextMenu:h,tabIndex:n?void 0:-1,onKeyDown:n?void 0:g,style:{width:o,height:i}})})}const xE=typeof window<"u"?window:void 0,xse=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function LD({children:e,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:a,paneClickDistance:l,deleteKeyCode:u,selectionKeyCode:f,selectionOnDrag:p,selectionMode:h,onSelectionStart:g,onSelectionEnd:y,multiSelectionKeyCode:k,panActivationKeyCode:v,zoomActivationKeyCode:b,elementsSelectable:j,zoomOnScroll:S,zoomOnPinch:N,panOnScroll:C,panOnScrollSpeed:P,panOnScrollMode:T,zoomOnDoubleClick:R,panOnDrag:I,autoPanOnSelection:_,defaultViewport:F,translateExtent:D,minZoom:W,maxZoom:V,preventScrolling:$,onSelectionContextMenu:O,noWheelClassName:U,noPanClassName:K,disableKeyboardA11y:M,onViewportChange:H,isControlledViewport:L}){const{nodesSelectionActive:z,userSelectionActive:Y}=_t(xse,on),B=Rd(f,{target:xE}),Q=Rd(v,{target:xE}),J=Q||I,Z=Q||C,oe=p&&J!==!0,ne=B||Y||oe;return Qre({deleteKeyCode:u,multiSelectionKeyCode:k}),s.jsx(ese,{onPaneContextMenu:i,elementsSelectable:j,zoomOnScroll:S,zoomOnPinch:N,panOnScroll:Z,panOnScrollSpeed:P,panOnScrollMode:T,zoomOnDoubleClick:R,panOnDrag:!B&&J,defaultViewport:F,translateExtent:D,minZoom:W,maxZoom:V,zoomActivationKeyCode:b,preventScrolling:$,noWheelClassName:U,noPanClassName:K,onViewportChange:H,isControlledViewport:L,paneClickDistance:l,selectionOnDrag:oe,children:s.jsxs(sse,{onSelectionStart:g,onSelectionEnd:y,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:a,panOnDrag:J,autoPanOnSelection:_,isSelecting:!!ne,selectionMode:h,selectionKeyPressed:B,paneClickDistance:l,selectionOnDrag:oe,children:[e,z&&s.jsx(gse,{onSelectionContextMenu:O,noPanClassName:K,disableKeyboardA11y:M})]})})}LD.displayName="FlowRenderer";const yse=m.memo(LD),bse=e=>t=>e?O0(t.nodeLookup,{x:0,y:0,width:t.width,height:t.height},t.transform,!0).map(n=>n.id):Array.from(t.nodeLookup.keys());function vse(e){return _t(m.useCallback(bse(e),[e]),on)}const wse=e=>e.updateNodeInternals;function jse(){const e=_t(wse),[t]=m.useState(()=>typeof ResizeObserver>"u"?null:new ResizeObserver(n=>{const r=new Map;n.forEach(o=>{const i=o.target.getAttribute("data-id");r.set(i,{id:i,nodeElement:o.target,force:!0})}),e(r)}));return m.useEffect(()=>()=>{t==null||t.disconnect()},[t]),t}function kse({node:e,nodeType:t,hasDimensions:n,resizeObserver:r}){const o=an(),i=m.useRef(null),a=m.useRef(null),l=m.useRef(e.sourcePosition),u=m.useRef(e.targetPosition),f=m.useRef(t),p=n&&!!e.internals.handleBounds;return m.useEffect(()=>{i.current&&!e.hidden&&(!p||a.current!==i.current)&&(a.current&&(r==null||r.unobserve(a.current)),r==null||r.observe(i.current),a.current=i.current)},[p,e.hidden]),m.useEffect(()=>()=>{a.current&&(r==null||r.unobserve(a.current),a.current=null)},[]),m.useEffect(()=>{if(i.current){const h=f.current!==t,g=l.current!==e.sourcePosition,y=u.current!==e.targetPosition;(h||g||y)&&(f.current=t,l.current=e.sourcePosition,u.current=e.targetPosition,o.getState().updateNodeInternals(new Map([[e.id,{id:e.id,nodeElement:i.current,force:!0}]])))}},[e.id,t,e.sourcePosition,e.targetPosition]),i}function Nse({id:e,onClick:t,onMouseEnter:n,onMouseMove:r,onMouseLeave:o,onContextMenu:i,onDoubleClick:a,nodesDraggable:l,elementsSelectable:u,nodesConnectable:f,nodesFocusable:p,resizeObserver:h,noDragClassName:g,noPanClassName:y,disableKeyboardA11y:k,rfId:v,nodeTypes:b,nodeClickDistance:j,onError:S}){const{node:N,internals:C,isParent:P}=_t(ne=>{const ue=ne.nodeLookup.get(e),ge=ne.parentLookup.has(e);return{node:ue,internals:ue.internals,isParent:ge}},on);let T=N.type||"default",R=(b==null?void 0:b[T])||gE[T];R===void 0&&(S==null||S("003",Cs.error003(T)),T="default",R=(b==null?void 0:b.default)||gE.default);const I=!!(N.draggable||l&&typeof N.draggable>"u"),_=!!(N.selectable||u&&typeof N.selectable>"u"),F=!!(N.connectable||f&&typeof N.connectable>"u"),D=!!(N.focusable||p&&typeof N.focusable>"u"),W=an(),V=oD(N),$=kse({node:N,nodeType:T,hasDimensions:V,resizeObserver:h}),O=$D({nodeRef:$,disabled:N.hidden||!I,noDragClassName:g,handleSelector:N.dragHandle,nodeId:e,isSelectable:_,nodeClickDistance:j}),U=ID();if(N.hidden)return null;const K=Io(N),M=hse(N),H=_||I||t||n||r||o,L=n?ne=>n(ne,{...C.userNode}):void 0,z=r?ne=>r(ne,{...C.userNode}):void 0,Y=o?ne=>o(ne,{...C.userNode}):void 0,B=i?ne=>i(ne,{...C.userNode}):void 0,Q=a?ne=>a(ne,{...C.userNode}):void 0,J=ne=>{const{selectNodesOnDrag:ue,nodeDragThreshold:ge}=W.getState();_&&(!ue||!I||ge>0)&&Mv({id:e,store:W,nodeRef:$}),t&&t(ne,{...C.userNode})},Z=ne=>{if(!(lD(ne.nativeEvent)||k)){if(X3.includes(ne.key)&&_){const ue=ne.key==="Escape";Mv({id:e,store:W,unselect:ue,nodeRef:$})}else if(I&&N.selected&&Object.prototype.hasOwnProperty.call(Yh,ne.key)){ne.preventDefault();const{ariaLabelConfig:ue}=W.getState();W.setState({ariaLiveMessage:ue["node.a11yDescription.ariaLiveMessage"]({direction:ne.key.replace("Arrow","").toLowerCase(),x:~~C.positionAbsolute.x,y:~~C.positionAbsolute.y})}),U({direction:Yh[ne.key],factor:ne.shiftKey?4:1})}}},oe=()=>{var Be;if(k||!((Be=$.current)!=null&&Be.matches(":focus-visible")))return;const{transform:ne,width:ue,height:ge,autoPanOnNodeFocus:Ce,setCenter:Se}=W.getState();if(!Ce)return;O0(new Map([[e,N]]),{x:0,y:0,width:ue,height:ge},ne,!0).length>0||Se(N.position.x+K.width/2,N.position.y+K.height/2,{zoom:ne[2]})};return s.jsx("div",{className:Cn(["react-flow__node",`react-flow__node-${T}`,{[y]:I},N.className,{selected:N.selected,selectable:_,parent:P,draggable:I,dragging:O}]),ref:$,style:{zIndex:C.z,transform:`translate(${C.positionAbsolute.x}px,${C.positionAbsolute.y}px)`,pointerEvents:H?"all":"none",visibility:V?"visible":"hidden",...N.style,...M},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:L,onMouseMove:z,onMouseLeave:Y,onContextMenu:B,onClick:J,onDoubleClick:Q,onKeyDown:D?Z:void 0,tabIndex:D?0:void 0,onFocus:D?oe:void 0,role:N.ariaRole??(D?"group":void 0),"aria-roledescription":"node","aria-describedby":k?void 0:`${CD}-${v}`,"aria-label":N.ariaLabel,...N.domAttributes,children:s.jsx(ise,{value:e,children:s.jsx(R,{id:e,data:N.data,type:T,positionAbsoluteX:C.positionAbsolute.x,positionAbsoluteY:C.positionAbsolute.y,selected:N.selected??!1,selectable:_,draggable:I,deletable:N.deletable??!0,isConnectable:F,sourcePosition:N.sourcePosition,targetPosition:N.targetPosition,dragging:O,dragHandle:N.dragHandle,zIndex:C.z,parentId:N.parentId,...K})})})}var Sse=m.memo(Nse);const Cse=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function OD(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:o,onError:i}=_t(Cse,on),a=vse(e.onlyRenderVisibleElements),l=jse();return s.jsx("div",{className:"react-flow__nodes",style:mg,children:a.map(u=>s.jsx(Sse,{id:u,nodeTypes:e.nodeTypes,nodeExtent:e.nodeExtent,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,resizeObserver:l,nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:o,nodeClickDistance:e.nodeClickDistance,onError:i},u))})}OD.displayName="NodeRenderer";const Ese=m.memo(OD);function Tse(e){return _t(m.useCallback(n=>{if(!e)return n.edges.map(o=>o.id);const r=[];if(n.width&&n.height)for(const o of n.edges){const i=n.nodeLookup.get(o.source),a=n.nodeLookup.get(o.target);i&&a&&Sne({sourceNode:i,targetNode:a,width:n.width,height:n.height,transform:n.transform})&&r.push(o.id)}return r},[e]),on)}const Rse=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e}};return s.jsx("polyline",{className:"arrow",style:n,strokeLinecap:"round",fill:"none",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4"})},Ase=({color:e="none",strokeWidth:t=1})=>{const n={strokeWidth:t,...e&&{stroke:e,fill:e}};return s.jsx("polyline",{className:"arrowclosed",style:n,strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"})},yE={[qh.Arrow]:Rse,[qh.ArrowClosed]:Ase};function Pse(e){const t=an();return m.useMemo(()=>{var o,i;return Object.prototype.hasOwnProperty.call(yE,e)?yE[e]:((i=(o=t.getState()).onError)==null||i.call(o,"009",Cs.error009(e)),null)},[e])}const _se=({id:e,type:t,color:n,width:r=12.5,height:o=12.5,markerUnits:i="strokeWidth",strokeWidth:a,orient:l="auto-start-reverse"})=>{const u=Pse(t);return u?s.jsx("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${r}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:i,orient:l,refX:"0",refY:"0",children:s.jsx(u,{color:n,strokeWidth:a})}):null},FD=({defaultColor:e,rfId:t})=>{const n=_t(i=>i.edges),r=_t(i=>i.defaultEdgeOptions),o=m.useMemo(()=>Dne(n,{id:t,defaultColor:e,defaultMarkerStart:r==null?void 0:r.markerStart,defaultMarkerEnd:r==null?void 0:r.markerEnd}),[n,r,t,e]);return o.length?s.jsx("svg",{className:"react-flow__marker","aria-hidden":"true",children:s.jsx("defs",{children:o.map(i=>s.jsx(_se,{id:i.id,type:i.type,color:i.color,width:i.width,height:i.height,markerUnits:i.markerUnits,strokeWidth:i.strokeWidth,orient:i.orient},i.id))})}):null};FD.displayName="MarkerDefinitions";var Dse=m.memo(FD);function zD({x:e,y:t,label:n,labelStyle:r,labelShowBg:o=!0,labelBgStyle:i,labelBgPadding:a=[2,4],labelBgBorderRadius:l=2,children:u,className:f,...p}){const[h,g]=m.useState({x:1,y:0,width:0,height:0}),y=Cn(["react-flow__edge-textwrapper",f]),k=m.useRef(null);return m.useEffect(()=>{if(k.current){const v=k.current.getBBox();g({x:v.x,y:v.y,width:v.width,height:v.height})}},[n]),n?s.jsxs("g",{transform:`translate(${e-h.width/2} ${t-h.height/2})`,className:y,visibility:h.width?"visible":"hidden",...p,children:[o&&s.jsx("rect",{width:h.width+2*a[0],x:-a[0],y:-a[1],height:h.height+2*a[1],className:"react-flow__edge-textbg",style:i,rx:l,ry:l}),s.jsx("text",{className:"react-flow__edge-text",y:h.height/2,dy:"0.3em",ref:k,style:r,children:n}),u]}):null}zD.displayName="EdgeText";const $se=m.memo(zD);function of({path:e,labelX:t,labelY:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:a,labelBgPadding:l,labelBgBorderRadius:u,interactionWidth:f=20,...p}){return s.jsxs(s.Fragment,{children:[s.jsx("path",{...p,d:e,fill:"none",className:Cn(["react-flow__edge-path",p.className])}),f?s.jsx("path",{d:e,fill:"none",strokeOpacity:0,strokeWidth:f,className:"react-flow__edge-interaction"}):null,r&&gs(t)&&gs(n)?s.jsx($se,{x:t,y:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:a,labelBgPadding:l,labelBgBorderRadius:u}):null]})}function bE({pos:e,x1:t,y1:n,x2:r,y2:o}){return e===ct.Left||e===ct.Right?[.5*(t+r),n]:[t,.5*(n+o)]}function BD({sourceX:e,sourceY:t,sourcePosition:n=ct.Bottom,targetX:r,targetY:o,targetPosition:i=ct.Top}){const[a,l]=bE({pos:n,x1:e,y1:t,x2:r,y2:o}),[u,f]=bE({pos:i,x1:r,y1:o,x2:e,y2:t}),[p,h,g,y]=uD({sourceX:e,sourceY:t,targetX:r,targetY:o,sourceControlX:a,sourceControlY:l,targetControlX:u,targetControlY:f});return[`M${e},${t} C${a},${l} ${u},${f} ${r},${o}`,p,h,g,y]}function UD(e){return m.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:a,targetPosition:l,label:u,labelStyle:f,labelShowBg:p,labelBgStyle:h,labelBgPadding:g,labelBgBorderRadius:y,style:k,markerEnd:v,markerStart:b,interactionWidth:j})=>{const[S,N,C]=BD({sourceX:n,sourceY:r,sourcePosition:a,targetX:o,targetY:i,targetPosition:l}),P=e.isInternal?void 0:t;return s.jsx(of,{id:P,path:S,labelX:N,labelY:C,label:u,labelStyle:f,labelShowBg:p,labelBgStyle:h,labelBgPadding:g,labelBgBorderRadius:y,style:k,markerEnd:v,markerStart:b,interactionWidth:j})})}const Ise=UD({isInternal:!1}),HD=UD({isInternal:!0});Ise.displayName="SimpleBezierEdge";HD.displayName="SimpleBezierEdgeInternal";function VD(e){return m.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,label:a,labelStyle:l,labelShowBg:u,labelBgStyle:f,labelBgPadding:p,labelBgBorderRadius:h,style:g,sourcePosition:y=ct.Bottom,targetPosition:k=ct.Top,markerEnd:v,markerStart:b,pathOptions:j,interactionWidth:S})=>{const[N,C,P]=_v({sourceX:n,sourceY:r,sourcePosition:y,targetX:o,targetY:i,targetPosition:k,borderRadius:j==null?void 0:j.borderRadius,offset:j==null?void 0:j.offset,stepPosition:j==null?void 0:j.stepPosition}),T=e.isInternal?void 0:t;return s.jsx(of,{id:T,path:N,labelX:C,labelY:P,label:a,labelStyle:l,labelShowBg:u,labelBgStyle:f,labelBgPadding:p,labelBgBorderRadius:h,style:g,markerEnd:v,markerStart:b,interactionWidth:S})})}const WD=VD({isInternal:!1}),KD=VD({isInternal:!0});WD.displayName="SmoothStepEdge";KD.displayName="SmoothStepEdgeInternal";function qD(e){return m.memo(({id:t,...n})=>{var o;const r=e.isInternal?void 0:t;return s.jsx(WD,{...n,id:r,pathOptions:m.useMemo(()=>{var i;return{borderRadius:0,offset:(i=n.pathOptions)==null?void 0:i.offset}},[(o=n.pathOptions)==null?void 0:o.offset])})})}const Mse=qD({isInternal:!1}),GD=qD({isInternal:!0});Mse.displayName="StepEdge";GD.displayName="StepEdgeInternal";function YD(e){return m.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,label:a,labelStyle:l,labelShowBg:u,labelBgStyle:f,labelBgPadding:p,labelBgBorderRadius:h,style:g,markerEnd:y,markerStart:k,interactionWidth:v})=>{const[b,j,S]=fD({sourceX:n,sourceY:r,targetX:o,targetY:i}),N=e.isInternal?void 0:t;return s.jsx(of,{id:N,path:b,labelX:j,labelY:S,label:a,labelStyle:l,labelShowBg:u,labelBgStyle:f,labelBgPadding:p,labelBgBorderRadius:h,style:g,markerEnd:y,markerStart:k,interactionWidth:v})})}const Lse=YD({isInternal:!1}),XD=YD({isInternal:!0});Lse.displayName="StraightEdge";XD.displayName="StraightEdgeInternal";function QD(e){return m.memo(({id:t,sourceX:n,sourceY:r,targetX:o,targetY:i,sourcePosition:a=ct.Bottom,targetPosition:l=ct.Top,label:u,labelStyle:f,labelShowBg:p,labelBgStyle:h,labelBgPadding:g,labelBgBorderRadius:y,style:k,markerEnd:v,markerStart:b,pathOptions:j,interactionWidth:S})=>{const[N,C,P]=U0({sourceX:n,sourceY:r,sourcePosition:a,targetX:o,targetY:i,targetPosition:l,curvature:j==null?void 0:j.curvature}),T=e.isInternal?void 0:t;return s.jsx(of,{id:T,path:N,labelX:C,labelY:P,label:u,labelStyle:f,labelShowBg:p,labelBgStyle:h,labelBgPadding:g,labelBgBorderRadius:y,style:k,markerEnd:v,markerStart:b,interactionWidth:S})})}const Ose=QD({isInternal:!1}),JD=QD({isInternal:!0});Ose.displayName="BezierEdge";JD.displayName="BezierEdgeInternal";const vE={default:JD,straight:XD,step:GD,smoothstep:KD,simplebezier:HD},wE={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},Fse=(e,t,n)=>n===ct.Left?e-t:n===ct.Right?e+t:e,zse=(e,t,n)=>n===ct.Top?e-t:n===ct.Bottom?e+t:e,jE="react-flow__edgeupdater";function kE({position:e,centerX:t,centerY:n,radius:r=10,onMouseDown:o,onMouseEnter:i,onMouseOut:a,type:l}){return s.jsx("circle",{onMouseDown:o,onMouseEnter:i,onMouseOut:a,className:Cn([jE,`${jE}-${l}`]),cx:Fse(t,r,e),cy:zse(n,r,e),r,stroke:"transparent",fill:"transparent"})}function Bse({isReconnectable:e,reconnectRadius:t,edge:n,sourceX:r,sourceY:o,targetX:i,targetY:a,sourcePosition:l,targetPosition:u,onReconnect:f,onReconnectStart:p,onReconnectEnd:h,setReconnecting:g,setUpdateHover:y}){const k=an(),v=(C,P)=>{if(C.button!==0)return;const{autoPanOnConnect:T,domNode:R,connectionMode:I,connectionRadius:_,lib:F,onConnectStart:D,cancelConnection:W,nodeLookup:V,rfId:$,panBy:O,updateConnection:U}=k.getState(),K=P.type==="target",M=(z,Y)=>{g(!1),h==null||h(z,n,P.type,Y)},H=z=>f==null?void 0:f(n,z),L=(z,Y)=>{g(!0),p==null||p(C,n,P.type),D==null||D(z,Y)};Iv.onPointerDown(C.nativeEvent,{autoPanOnConnect:T,connectionMode:I,connectionRadius:_,domNode:R,handleId:P.id,nodeId:P.nodeId,nodeLookup:V,isTarget:K,edgeUpdaterType:P.type,lib:F,flowId:$,cancelConnection:W,panBy:O,isValidConnection:(...z)=>{var Y,B;return((B=(Y=k.getState()).isValidConnection)==null?void 0:B.call(Y,...z))??!0},onConnect:H,onConnectStart:L,onConnectEnd:(...z)=>{var Y,B;return(B=(Y=k.getState()).onConnectEnd)==null?void 0:B.call(Y,...z)},onReconnectEnd:M,updateConnection:U,getTransform:()=>k.getState().transform,getFromHandle:()=>k.getState().connection.fromHandle,dragThreshold:k.getState().connectionDragThreshold,handleDomNode:C.currentTarget})},b=C=>v(C,{nodeId:n.target,id:n.targetHandle??null,type:"target"}),j=C=>v(C,{nodeId:n.source,id:n.sourceHandle??null,type:"source"}),S=()=>y(!0),N=()=>y(!1);return s.jsxs(s.Fragment,{children:[(e===!0||e==="source")&&s.jsx(kE,{position:l,centerX:r,centerY:o,radius:t,onMouseDown:b,onMouseEnter:S,onMouseOut:N,type:"source"}),(e===!0||e==="target")&&s.jsx(kE,{position:u,centerX:i,centerY:a,radius:t,onMouseDown:j,onMouseEnter:S,onMouseOut:N,type:"target"})]})}function Use({id:e,edgesFocusable:t,edgesReconnectable:n,elementsSelectable:r,onClick:o,onDoubleClick:i,onContextMenu:a,onMouseEnter:l,onMouseMove:u,onMouseLeave:f,reconnectRadius:p,onReconnect:h,onReconnectStart:g,onReconnectEnd:y,rfId:k,edgeTypes:v,noPanClassName:b,onError:j,disableKeyboardA11y:S}){let N=_t(Se=>Se.edgeLookup.get(e));const C=_t(Se=>Se.defaultEdgeOptions);N=C?{...C,...N}:N;let P=N.type||"default",T=(v==null?void 0:v[P])||vE[P];T===void 0&&(j==null||j("011",Cs.error011(P)),P="default",T=(v==null?void 0:v.default)||vE.default);const R=!!(N.focusable||t&&typeof N.focusable>"u"),I=typeof h<"u"&&(N.reconnectable||n&&typeof N.reconnectable>"u"),_=!!(N.selectable||r&&typeof N.selectable>"u"),F=m.useRef(null),[D,W]=m.useState(!1),[V,$]=m.useState(!1),O=an(),{zIndex:U,sourceX:K,sourceY:M,targetX:H,targetY:L,sourcePosition:z,targetPosition:Y}=_t(m.useCallback(Se=>{const ke=Se.nodeLookup.get(N.source),Be=Se.nodeLookup.get(N.target);if(!ke||!Be)return{zIndex:N.zIndex,...wE};const ie=_ne({id:e,sourceNode:ke,targetNode:Be,sourceHandle:N.sourceHandle||null,targetHandle:N.targetHandle||null,connectionMode:Se.connectionMode,onError:j});return{zIndex:Nne({selected:N.selected,zIndex:N.zIndex,sourceNode:ke,targetNode:Be,elevateOnSelect:Se.elevateEdgesOnSelect,zIndexMode:Se.zIndexMode}),...ie||wE}},[N.source,N.target,N.sourceHandle,N.targetHandle,N.selected,N.zIndex]),on),B=m.useMemo(()=>N.markerStart?`url('#${Dv(N.markerStart,k)}')`:void 0,[N.markerStart,k]),Q=m.useMemo(()=>N.markerEnd?`url('#${Dv(N.markerEnd,k)}')`:void 0,[N.markerEnd,k]);if(N.hidden||K===null||M===null||H===null||L===null)return null;const J=Se=>{var ve;const{addSelectedEdges:ke,unselectNodesAndEdges:Be,multiSelectionActive:ie}=O.getState();_&&(O.setState({nodesSelectionActive:!1}),N.selected&&ie?(Be({nodes:[],edges:[N]}),(ve=F.current)==null||ve.blur()):ke([e])),o&&o(Se,N)},Z=i?Se=>{i(Se,{...N})}:void 0,oe=a?Se=>{a(Se,{...N})}:void 0,ne=l?Se=>{l(Se,{...N})}:void 0,ue=u?Se=>{u(Se,{...N})}:void 0,ge=f?Se=>{f(Se,{...N})}:void 0,Ce=Se=>{var ke;if(!S&&X3.includes(Se.key)&&_){const{unselectNodesAndEdges:Be,addSelectedEdges:ie}=O.getState();Se.key==="Escape"?((ke=F.current)==null||ke.blur(),Be({edges:[N]})):ie([e])}};return s.jsx("svg",{style:{zIndex:U},children:s.jsxs("g",{className:Cn(["react-flow__edge",`react-flow__edge-${P}`,N.className,b,{selected:N.selected,animated:N.animated,inactive:!_&&!o,updating:D,selectable:_}]),onClick:J,onDoubleClick:Z,onContextMenu:oe,onMouseEnter:ne,onMouseMove:ue,onMouseLeave:ge,onKeyDown:R?Ce:void 0,tabIndex:R?0:void 0,role:N.ariaRole??(R?"group":"img"),"aria-roledescription":"edge","data-id":e,"data-testid":`rf__edge-${e}`,"aria-label":N.ariaLabel===null?void 0:N.ariaLabel||`Edge from ${N.source} to ${N.target}`,"aria-describedby":R?`${ED}-${k}`:void 0,ref:F,...N.domAttributes,children:[!V&&s.jsx(T,{id:e,source:N.source,target:N.target,type:N.type,selected:N.selected,animated:N.animated,selectable:_,deletable:N.deletable??!0,label:N.label,labelStyle:N.labelStyle,labelShowBg:N.labelShowBg,labelBgStyle:N.labelBgStyle,labelBgPadding:N.labelBgPadding,labelBgBorderRadius:N.labelBgBorderRadius,sourceX:K,sourceY:M,targetX:H,targetY:L,sourcePosition:z,targetPosition:Y,data:N.data,style:N.style,sourceHandleId:N.sourceHandle,targetHandleId:N.targetHandle,markerStart:B,markerEnd:Q,pathOptions:"pathOptions"in N?N.pathOptions:void 0,interactionWidth:N.interactionWidth}),I&&s.jsx(Bse,{edge:N,isReconnectable:I,reconnectRadius:p,onReconnect:h,onReconnectStart:g,onReconnectEnd:y,sourceX:K,sourceY:M,targetX:H,targetY:L,sourcePosition:z,targetPosition:Y,setUpdateHover:W,setReconnecting:$})]})})}var Hse=m.memo(Use);const Vse=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function ZD({defaultMarkerColor:e,onlyRenderVisibleElements:t,rfId:n,edgeTypes:r,noPanClassName:o,onReconnect:i,onEdgeContextMenu:a,onEdgeMouseEnter:l,onEdgeMouseMove:u,onEdgeMouseLeave:f,onEdgeClick:p,reconnectRadius:h,onEdgeDoubleClick:g,onReconnectStart:y,onReconnectEnd:k,disableKeyboardA11y:v}){const{edgesFocusable:b,edgesReconnectable:j,elementsSelectable:S,onError:N}=_t(Vse,on),C=Tse(t);return s.jsxs("div",{className:"react-flow__edges",children:[s.jsx(Dse,{defaultColor:e,rfId:n}),C.map(P=>s.jsx(Hse,{id:P,edgesFocusable:b,edgesReconnectable:j,elementsSelectable:S,noPanClassName:o,onReconnect:i,onContextMenu:a,onMouseEnter:l,onMouseMove:u,onMouseLeave:f,onClick:p,reconnectRadius:h,onDoubleClick:g,onReconnectStart:y,onReconnectEnd:k,rfId:n,onError:N,edgeTypes:r,disableKeyboardA11y:v},P))]})}ZD.displayName="EdgeRenderer";const Wse=m.memo(ZD),Kse=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function qse({children:e}){const t=_t(Kse);return s.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function Gse(e){const t=hg(),n=m.useRef(!1);m.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const Yse=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function Xse(e){const t=_t(Yse),n=an();return m.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function Qse(e){return e.connection.inProgress?{...e.connection,to:Lc(e.connection.to,e.transform)}:{...e.connection}}function Jse(e){return Qse}function Zse(e){const t=Jse();return _t(t,on)}const eoe=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function toe({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:o,width:i,height:a,isValid:l,inProgress:u}=_t(eoe,on);return!(i&&o&&u)?null:s.jsx("svg",{style:e,width:i,height:a,className:"react-flow__connectionline react-flow__container",children:s.jsx("g",{className:Cn(["react-flow__connection",Z3(l)]),children:s.jsx(e$,{style:t,type:n,CustomComponent:r,isValid:l})})})}const e$=({style:e,type:t=yi.Bezier,CustomComponent:n,isValid:r})=>{const{inProgress:o,from:i,fromNode:a,fromHandle:l,fromPosition:u,to:f,toNode:p,toHandle:h,toPosition:g,pointer:y}=Zse();if(!o)return;if(n)return s.jsx(n,{connectionLineType:t,connectionLineStyle:e,fromNode:a,fromHandle:l,fromX:i.x,fromY:i.y,toX:f.x,toY:f.y,fromPosition:u,toPosition:g,connectionStatus:Z3(r),toNode:p,toHandle:h,pointer:y});let k="";const v={sourceX:i.x,sourceY:i.y,sourcePosition:u,targetX:f.x,targetY:f.y,targetPosition:g};switch(t){case yi.Bezier:[k]=U0(v);break;case yi.SimpleBezier:[k]=BD(v);break;case yi.Step:[k]=_v({...v,borderRadius:0});break;case yi.SmoothStep:[k]=_v(v);break;default:[k]=fD(v)}return s.jsx("path",{d:k,fill:"none",className:"react-flow__connection-path",style:e})};e$.displayName="ConnectionLine";const noe={};function NE(e=noe){m.useRef(e),an(),m.useEffect(()=>{},[e])}function roe(){an(),m.useRef(!1),m.useEffect(()=>{},[])}function t$({nodeTypes:e,edgeTypes:t,onInit:n,onNodeClick:r,onEdgeClick:o,onNodeDoubleClick:i,onEdgeDoubleClick:a,onNodeMouseEnter:l,onNodeMouseMove:u,onNodeMouseLeave:f,onNodeContextMenu:p,onSelectionContextMenu:h,onSelectionStart:g,onSelectionEnd:y,connectionLineType:k,connectionLineStyle:v,connectionLineComponent:b,connectionLineContainerStyle:j,selectionKeyCode:S,selectionOnDrag:N,selectionMode:C,multiSelectionKeyCode:P,panActivationKeyCode:T,zoomActivationKeyCode:R,deleteKeyCode:I,onlyRenderVisibleElements:_,elementsSelectable:F,defaultViewport:D,translateExtent:W,minZoom:V,maxZoom:$,preventScrolling:O,defaultMarkerColor:U,zoomOnScroll:K,zoomOnPinch:M,panOnScroll:H,panOnScrollSpeed:L,panOnScrollMode:z,zoomOnDoubleClick:Y,panOnDrag:B,autoPanOnSelection:Q,onPaneClick:J,onPaneMouseEnter:Z,onPaneMouseMove:oe,onPaneMouseLeave:ne,onPaneScroll:ue,onPaneContextMenu:ge,paneClickDistance:Ce,nodeClickDistance:Se,onEdgeContextMenu:ke,onEdgeMouseEnter:Be,onEdgeMouseMove:ie,onEdgeMouseLeave:ve,reconnectRadius:be,onReconnect:Re,onReconnectStart:Ue,onReconnectEnd:rt,noDragClassName:Oe,noWheelClassName:ot,noPanClassName:St,disableKeyboardA11y:mt,nodeExtent:at,rfId:ce,viewport:me,onViewportChange:Ie}){return NE(e),NE(t),roe(),Gse(n),Xse(me),s.jsx(yse,{onPaneClick:J,onPaneMouseEnter:Z,onPaneMouseMove:oe,onPaneMouseLeave:ne,onPaneContextMenu:ge,onPaneScroll:ue,paneClickDistance:Ce,deleteKeyCode:I,selectionKeyCode:S,selectionOnDrag:N,selectionMode:C,onSelectionStart:g,onSelectionEnd:y,multiSelectionKeyCode:P,panActivationKeyCode:T,zoomActivationKeyCode:R,elementsSelectable:F,zoomOnScroll:K,zoomOnPinch:M,zoomOnDoubleClick:Y,panOnScroll:H,panOnScrollSpeed:L,panOnScrollMode:z,panOnDrag:B,autoPanOnSelection:Q,defaultViewport:D,translateExtent:W,minZoom:V,maxZoom:$,onSelectionContextMenu:h,preventScrolling:O,noDragClassName:Oe,noWheelClassName:ot,noPanClassName:St,disableKeyboardA11y:mt,onViewportChange:Ie,isControlledViewport:!!me,children:s.jsxs(qse,{children:[s.jsx(Wse,{edgeTypes:t,onEdgeClick:o,onEdgeDoubleClick:a,onReconnect:Re,onReconnectStart:Ue,onReconnectEnd:rt,onlyRenderVisibleElements:_,onEdgeContextMenu:ke,onEdgeMouseEnter:Be,onEdgeMouseMove:ie,onEdgeMouseLeave:ve,reconnectRadius:be,defaultMarkerColor:U,noPanClassName:St,disableKeyboardA11y:mt,rfId:ce}),s.jsx(toe,{style:v,type:k,component:b,containerStyle:j}),s.jsx("div",{className:"react-flow__edgelabel-renderer"}),s.jsx(Ese,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:i,onNodeMouseEnter:l,onNodeMouseMove:u,onNodeMouseLeave:f,onNodeContextMenu:p,nodeClickDistance:Se,onlyRenderVisibleElements:_,noPanClassName:St,noDragClassName:Oe,disableKeyboardA11y:mt,nodeExtent:at,rfId:ce}),s.jsx("div",{className:"react-flow__viewport-portal"})]})})}t$.displayName="GraphView";const soe=m.memo(t$),ooe=sD(),SE=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:a,fitViewOptions:l,minZoom:u=.5,maxZoom:f=2,nodeOrigin:p,nodeExtent:h,zIndexMode:g="basic"}={})=>{const y=new Map,k=new Map,v=new Map,b=new Map,j=r??t??[],S=n??e??[],N=p??[0,0],C=h??Sd;mD(v,b,j);const{nodesInitialized:P}=$v(S,y,k,{nodeOrigin:N,nodeExtent:C,zIndexMode:g});let T=[0,0,1];if(a&&o&&i){const R=nf(y,{filter:D=>!!((D.width||D.initialWidth)&&(D.height||D.initialHeight))}),{x:I,y:_,zoom:F}=z0(R,o,i,u,f,(l==null?void 0:l.padding)??.1);T=[I,_,F]}return{rfId:"1",width:o??0,height:i??0,transform:T,nodes:S,nodesInitialized:P,nodeLookup:y,parentLookup:k,edges:j,edgeLookup:b,connectionLookup:v,onNodesChange:null,onEdgesChange:null,hasDefaultNodes:n!==void 0,hasDefaultEdges:r!==void 0,panZoom:null,minZoom:u,maxZoom:f,translateExtent:Sd,nodeExtent:C,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:lc.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:N,nodeDragThreshold:1,connectionDragThreshold:1,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesReconnectable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,elevateEdgesOnSelect:!0,selectNodesOnDrag:!0,multiSelectionActive:!1,fitViewQueued:a??!1,fitViewOptions:l,fitViewResolver:null,connection:{...J3},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:ooe,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:Q3,zIndexMode:g,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},ioe=({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:a,fitViewOptions:l,minZoom:u,maxZoom:f,nodeOrigin:p,nodeExtent:h,zIndexMode:g})=>wre((y,k)=>{async function v(){const{nodeLookup:b,panZoom:j,fitViewOptions:S,fitViewResolver:N,width:C,height:P,minZoom:T,maxZoom:R}=k();j&&(await xne({nodes:b,width:C,height:P,panZoom:j,minZoom:T,maxZoom:R},S),N==null||N.resolve(!0),y({fitViewResolver:null}))}return{...SE({nodes:e,edges:t,width:o,height:i,fitView:a,fitViewOptions:l,minZoom:u,maxZoom:f,nodeOrigin:p,nodeExtent:h,defaultNodes:n,defaultEdges:r,zIndexMode:g}),setNodes:b=>{const{nodeLookup:j,parentLookup:S,nodeOrigin:N,elevateNodesOnSelect:C,fitViewQueued:P,zIndexMode:T,nodesSelectionActive:R}=k(),{nodesInitialized:I,hasSelectedNodes:_}=$v(b,j,S,{nodeOrigin:N,nodeExtent:h,elevateNodesOnSelect:C,checkEquality:!0,zIndexMode:T}),F=R&&_;P&&I?(v(),y({nodes:b,nodesInitialized:I,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:F})):y({nodes:b,nodesInitialized:I,nodesSelectionActive:F})},setEdges:b=>{const{connectionLookup:j,edgeLookup:S}=k();mD(j,S,b),y({edges:b})},setDefaultNodesAndEdges:(b,j)=>{if(b){const{setNodes:S}=k();S(b),y({hasDefaultNodes:!0})}if(j){const{setEdges:S}=k();S(j),y({hasDefaultEdges:!0})}},updateNodeInternals:b=>{const{triggerNodeChanges:j,nodeLookup:S,parentLookup:N,domNode:C,nodeOrigin:P,nodeExtent:T,debug:R,fitViewQueued:I,zIndexMode:_}=k(),{changes:F,updatedInternals:D}=zne(b,S,N,C,P,T,_);D&&(Mne(S,N,{nodeOrigin:P,nodeExtent:T,zIndexMode:_}),I?(v(),y({fitViewQueued:!1,fitViewOptions:void 0})):y({}),(F==null?void 0:F.length)>0&&(R&&console.log("React Flow: trigger node changes",F),j==null||j(F)))},updateNodePositions:(b,j=!1)=>{const S=[];let N=[];const{nodeLookup:C,triggerNodeChanges:P,connection:T,updateConnection:R,onNodesChangeMiddlewareMap:I}=k();for(const[_,F]of b){const D=C.get(_),W=!!(D!=null&&D.expandParent&&(D!=null&&D.parentId)&&(F!=null&&F.position)),V={id:_,type:"position",position:W?{x:Math.max(0,F.position.x),y:Math.max(0,F.position.y)}:F.position,dragging:j};if(D&&T.inProgress&&T.fromNode.id===D.id){const $=Ea(D,T.fromHandle,ct.Left,!0);R({...T,from:$})}W&&D.parentId&&S.push({id:_,parentId:D.parentId,rect:{...F.internals.positionAbsolute,width:F.measured.width??0,height:F.measured.height??0}}),N.push(V)}if(S.length>0){const{parentLookup:_,nodeOrigin:F}=k(),D=q0(S,C,_,F);N.push(...D)}for(const _ of I.values())N=_(N);P(N)},triggerNodeChanges:b=>{const{onNodesChange:j,setNodes:S,nodes:N,hasDefaultNodes:C,debug:P}=k();if(b!=null&&b.length){if(C){const T=AD(b,N);S(T)}P&&console.log("React Flow: trigger node changes",b),j==null||j(b)}},triggerEdgeChanges:b=>{const{onEdgesChange:j,setEdges:S,edges:N,hasDefaultEdges:C,debug:P}=k();if(b!=null&&b.length){if(C){const T=PD(b,N);S(T)}P&&console.log("React Flow: trigger edge changes",b),j==null||j(b)}},addSelectedNodes:b=>{const{multiSelectionActive:j,edgeLookup:S,nodeLookup:N,triggerNodeChanges:C,triggerEdgeChanges:P}=k();if(j){const T=b.map(R=>sa(R,!0));C(T);return}C(Il(N,new Set([...b]),!0)),P(Il(S))},addSelectedEdges:b=>{const{multiSelectionActive:j,edgeLookup:S,nodeLookup:N,triggerNodeChanges:C,triggerEdgeChanges:P}=k();if(j){const T=b.map(R=>sa(R,!0));P(T);return}P(Il(S,new Set([...b]))),C(Il(N,new Set,!0))},unselectNodesAndEdges:({nodes:b,edges:j}={})=>{const{edges:S,nodes:N,nodeLookup:C,triggerNodeChanges:P,triggerEdgeChanges:T}=k(),R=b||N,I=j||S,_=[];for(const D of R){if(!D.selected)continue;const W=C.get(D.id);W&&(W.selected=!1),_.push(sa(D.id,!1))}const F=[];for(const D of I)D.selected&&F.push(sa(D.id,!1));P(_),T(F)},setMinZoom:b=>{const{panZoom:j,maxZoom:S}=k();j==null||j.setScaleExtent([b,S]),y({minZoom:b})},setMaxZoom:b=>{const{panZoom:j,minZoom:S}=k();j==null||j.setScaleExtent([S,b]),y({maxZoom:b})},setTranslateExtent:b=>{var j;(j=k().panZoom)==null||j.setTranslateExtent(b),y({translateExtent:b})},resetSelectedElements:()=>{const{edges:b,nodes:j,triggerNodeChanges:S,triggerEdgeChanges:N,elementsSelectable:C}=k();if(!C)return;const P=j.reduce((R,I)=>I.selected?[...R,sa(I.id,!1)]:R,[]),T=b.reduce((R,I)=>I.selected?[...R,sa(I.id,!1)]:R,[]);S(P),N(T)},setNodeExtent:b=>{const{nodes:j,nodeLookup:S,parentLookup:N,nodeOrigin:C,elevateNodesOnSelect:P,nodeExtent:T,zIndexMode:R}=k();b[0][0]===T[0][0]&&b[0][1]===T[0][1]&&b[1][0]===T[1][0]&&b[1][1]===T[1][1]||($v(j,S,N,{nodeOrigin:C,nodeExtent:b,elevateNodesOnSelect:P,checkEquality:!1,zIndexMode:R}),y({nodeExtent:b}))},panBy:b=>{const{transform:j,width:S,height:N,panZoom:C,translateExtent:P}=k();return Bne({delta:b,panZoom:C,transform:j,translateExtent:P,width:S,height:N})},setCenter:async(b,j,S)=>{const{width:N,height:C,maxZoom:P,panZoom:T}=k();if(!T)return!1;const R=typeof(S==null?void 0:S.zoom)<"u"?S.zoom:P;return await T.setViewport({x:N/2-b*R,y:C/2-j*R,zoom:R},{duration:S==null?void 0:S.duration,ease:S==null?void 0:S.ease,interpolate:S==null?void 0:S.interpolate}),!0},cancelConnection:()=>{y({connection:{...J3}})},updateConnection:b=>{y({connection:b})},reset:()=>y({...SE()})}},Object.is);function aoe({initialNodes:e,initialEdges:t,defaultNodes:n,defaultEdges:r,initialWidth:o,initialHeight:i,initialMinZoom:a,initialMaxZoom:l,initialFitViewOptions:u,fitView:f,nodeOrigin:p,nodeExtent:h,zIndexMode:g,children:y}){const[k]=m.useState(()=>ioe({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,width:o,height:i,fitView:f,minZoom:a,maxZoom:l,fitViewOptions:u,nodeOrigin:p,nodeExtent:h,zIndexMode:g}));return s.jsx(jre,{value:k,children:s.jsx(qre,{children:y})})}function loe({children:e,nodes:t,edges:n,defaultNodes:r,defaultEdges:o,width:i,height:a,fitView:l,fitViewOptions:u,minZoom:f,maxZoom:p,nodeOrigin:h,nodeExtent:g,zIndexMode:y}){return m.useContext(pg)?s.jsx(s.Fragment,{children:e}):s.jsx(aoe,{initialNodes:t,initialEdges:n,defaultNodes:r,defaultEdges:o,initialWidth:i,initialHeight:a,fitView:l,initialFitViewOptions:u,initialMinZoom:f,initialMaxZoom:p,nodeOrigin:h,nodeExtent:g,zIndexMode:y,children:e})}const coe={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function uoe({nodes:e,edges:t,defaultNodes:n,defaultEdges:r,className:o,nodeTypes:i,edgeTypes:a,onNodeClick:l,onEdgeClick:u,onInit:f,onMove:p,onMoveStart:h,onMoveEnd:g,onConnect:y,onConnectStart:k,onConnectEnd:v,onClickConnectStart:b,onClickConnectEnd:j,onNodeMouseEnter:S,onNodeMouseMove:N,onNodeMouseLeave:C,onNodeContextMenu:P,onNodeDoubleClick:T,onNodeDragStart:R,onNodeDrag:I,onNodeDragStop:_,onNodesDelete:F,onEdgesDelete:D,onDelete:W,onSelectionChange:V,onSelectionDragStart:$,onSelectionDrag:O,onSelectionDragStop:U,onSelectionContextMenu:K,onSelectionStart:M,onSelectionEnd:H,onBeforeDelete:L,connectionMode:z,connectionLineType:Y=yi.Bezier,connectionLineStyle:B,connectionLineComponent:Q,connectionLineContainerStyle:J,deleteKeyCode:Z="Backspace",selectionKeyCode:oe="Shift",selectionOnDrag:ne=!1,selectionMode:ue=Cd.Full,panActivationKeyCode:ge="Space",multiSelectionKeyCode:Ce=Td()?"Meta":"Control",zoomActivationKeyCode:Se=Td()?"Meta":"Control",snapToGrid:ke,snapGrid:Be,onlyRenderVisibleElements:ie=!1,selectNodesOnDrag:ve,nodesDraggable:be,autoPanOnNodeFocus:Re,nodesConnectable:Ue,nodesFocusable:rt,nodeOrigin:Oe=TD,edgesFocusable:ot,edgesReconnectable:St,elementsSelectable:mt=!0,defaultViewport:at=Ire,minZoom:ce=.5,maxZoom:me=2,translateExtent:Ie=Sd,preventScrolling:Ae=!0,nodeExtent:Ve,defaultMarkerColor:pt="#b1b1b7",zoomOnScroll:_e=!0,zoomOnPinch:Qe=!0,panOnScroll:Je=!1,panOnScrollSpeed:ut=.5,panOnScrollMode:fe=ba.Free,zoomOnDoubleClick:q=!0,panOnDrag:re=!0,onPaneClick:xe,onPaneMouseEnter:qe,onPaneMouseMove:Fe,onPaneMouseLeave:lt,onPaneScroll:ht,onPaneContextMenu:vt,paneClickDistance:tt=1,nodeClickDistance:Dt=0,children:Bt,onReconnect:Ut,onReconnectStart:En,onReconnectEnd:Ct,onEdgeContextMenu:je,onEdgeDoubleClick:Ge,onEdgeMouseEnter:it,onEdgeMouseMove:Mt,onEdgeMouseLeave:le,reconnectRadius:Ne=10,onNodesChange:nt,onEdgesChange:Tn,noDragClassName:Tr="nodrag",noWheelClassName:io="nowheel",noPanClassName:wt="nopan",fitView:Di,fitViewOptions:Mo,connectOnClick:Ia,attributionPosition:nn,proOptions:Lo,defaultEdgeOptions:Ma,elevateNodesOnSelect:La=!0,elevateEdgesOnSelect:Fc=!1,disableKeyboardA11y:Oa=!1,autoPanOnConnect:Ht,autoPanOnNodeDrag:$i,autoPanOnSelection:ao=!0,autoPanSpeed:Oo,connectionRadius:Ds,isValidConnection:Fo,onError:Fa,style:zo,id:ar,nodeDragThreshold:dr,connectionDragThreshold:On,viewport:Bo,onViewportChange:zc,width:Bc,height:Uo,colorMode:Wn="light",debug:lo,onScroll:Kr,ariaLabelConfig:za,zIndexMode:Ii="basic",...Ho},Vo){const $s=ar||"1",Fn=Fre(Wn),Rn=m.useCallback(Is=>{Is.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),Kr==null||Kr(Is)},[Kr]);return s.jsx("div",{"data-testid":"rf__wrapper",...Ho,onScroll:Rn,style:{...zo,...coe},ref:Vo,className:Cn(["react-flow",o,Fn]),id:ar,role:"application",children:s.jsxs(loe,{nodes:e,edges:t,width:Bc,height:Uo,fitView:Di,fitViewOptions:Mo,minZoom:ce,maxZoom:me,nodeOrigin:Oe,nodeExtent:Ve,zIndexMode:Ii,children:[s.jsx(Ore,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:y,onConnectStart:k,onConnectEnd:v,onClickConnectStart:b,onClickConnectEnd:j,nodesDraggable:be,autoPanOnNodeFocus:Re,nodesConnectable:Ue,nodesFocusable:rt,edgesFocusable:ot,edgesReconnectable:St,elementsSelectable:mt,elevateNodesOnSelect:La,elevateEdgesOnSelect:Fc,minZoom:ce,maxZoom:me,nodeExtent:Ve,onNodesChange:nt,onEdgesChange:Tn,snapToGrid:ke,snapGrid:Be,connectionMode:z,translateExtent:Ie,connectOnClick:Ia,defaultEdgeOptions:Ma,fitView:Di,fitViewOptions:Mo,onNodesDelete:F,onEdgesDelete:D,onDelete:W,onNodeDragStart:R,onNodeDrag:I,onNodeDragStop:_,onSelectionDrag:O,onSelectionDragStart:$,onSelectionDragStop:U,onMove:p,onMoveStart:h,onMoveEnd:g,noPanClassName:wt,nodeOrigin:Oe,rfId:$s,autoPanOnConnect:Ht,autoPanOnNodeDrag:$i,autoPanSpeed:Oo,onError:Fa,connectionRadius:Ds,isValidConnection:Fo,selectNodesOnDrag:ve,nodeDragThreshold:dr,connectionDragThreshold:On,onBeforeDelete:L,debug:lo,ariaLabelConfig:za,zIndexMode:Ii}),s.jsx(soe,{onInit:f,onNodeClick:l,onEdgeClick:u,onNodeMouseEnter:S,onNodeMouseMove:N,onNodeMouseLeave:C,onNodeContextMenu:P,onNodeDoubleClick:T,nodeTypes:i,edgeTypes:a,connectionLineType:Y,connectionLineStyle:B,connectionLineComponent:Q,connectionLineContainerStyle:J,selectionKeyCode:oe,selectionOnDrag:ne,selectionMode:ue,deleteKeyCode:Z,multiSelectionKeyCode:Ce,panActivationKeyCode:ge,zoomActivationKeyCode:Se,onlyRenderVisibleElements:ie,defaultViewport:at,translateExtent:Ie,minZoom:ce,maxZoom:me,preventScrolling:Ae,zoomOnScroll:_e,zoomOnPinch:Qe,zoomOnDoubleClick:q,panOnScroll:Je,panOnScrollSpeed:ut,panOnScrollMode:fe,panOnDrag:re,autoPanOnSelection:ao,onPaneClick:xe,onPaneMouseEnter:qe,onPaneMouseMove:Fe,onPaneMouseLeave:lt,onPaneScroll:ht,onPaneContextMenu:vt,paneClickDistance:tt,nodeClickDistance:Dt,onSelectionContextMenu:K,onSelectionStart:M,onSelectionEnd:H,onReconnect:Ut,onReconnectStart:En,onReconnectEnd:Ct,onEdgeContextMenu:je,onEdgeDoubleClick:Ge,onEdgeMouseEnter:it,onEdgeMouseMove:Mt,onEdgeMouseLeave:le,reconnectRadius:Ne,defaultMarkerColor:pt,noDragClassName:Tr,noWheelClassName:io,noPanClassName:wt,rfId:$s,disableKeyboardA11y:Oa,nodeExtent:Ve,viewport:Bo,onViewportChange:zc}),s.jsx($re,{onSelectionChange:V}),Bt,s.jsx(Rre,{proOptions:Lo,position:nn}),s.jsx(Tre,{rfId:$s,disableKeyboardA11y:Oa})]})})}var doe=_D(uoe);const foe=e=>{var t;return(t=e.domNode)==null?void 0:t.querySelector(".react-flow__edgelabel-renderer")};function poe({children:e}){const t=_t(foe);return t?Ys.createPortal(e,t):null}function hoe(e){const[t,n]=m.useState(e),r=m.useCallback(o=>n(i=>AD(o,i)),[]);return[t,n,r]}function moe(e){const[t,n]=m.useState(e),r=m.useCallback(o=>n(i=>PD(o,i)),[]);return[t,n,r]}function goe({dimensions:e,lineWidth:t,variant:n,className:r}){return s.jsx("path",{strokeWidth:t,d:`M${e[0]/2} 0 V${e[1]} M0 ${e[1]/2} H${e[0]}`,className:Cn(["react-flow__background-pattern",n,r])})}function xoe({radius:e,className:t}){return s.jsx("circle",{cx:e,cy:e,r:e,className:Cn(["react-flow__background-pattern","dots",t])})}var wi;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(wi||(wi={}));const yoe={[wi.Dots]:1,[wi.Lines]:1,[wi.Cross]:6},boe=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function n$({id:e,variant:t=wi.Dots,gap:n=20,size:r,lineWidth:o=1,offset:i=0,color:a,bgColor:l,style:u,className:f,patternClassName:p}){const h=m.useRef(null),{transform:g,patternId:y}=_t(boe,on),k=r||yoe[t],v=t===wi.Dots,b=t===wi.Cross,j=Array.isArray(n)?n:[n,n],S=[j[0]*g[2]||1,j[1]*g[2]||1],N=k*g[2],C=Array.isArray(i)?i:[i,i],P=b?[N,N]:S,T=[C[0]*g[2]||1+P[0]/2,C[1]*g[2]||1+P[1]/2],R=`${y}${e||""}`;return s.jsxs("svg",{className:Cn(["react-flow__background",f]),style:{...u,...mg,"--xy-background-color-props":l,"--xy-background-pattern-color-props":a},ref:h,"data-testid":"rf__background",children:[s.jsx("pattern",{id:R,x:g[0]%S[0],y:g[1]%S[1],width:S[0],height:S[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${T[0]},-${T[1]})`,children:v?s.jsx(xoe,{radius:N/2,className:p}):s.jsx(goe,{dimensions:P,lineWidth:o,variant:t,className:p})}),s.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${R})`})]})}n$.displayName="Background";const voe=m.memo(n$);function woe(){return s.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",children:s.jsx("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"})})}function joe(){return s.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5",children:s.jsx("path",{d:"M0 0h32v4.2H0z"})})}function koe(){return s.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30",children:s.jsx("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"})})}function Noe(){return s.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:s.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"})})}function Soe(){return s.jsx("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32",children:s.jsx("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"})})}function $p({children:e,className:t,...n}){return s.jsx("button",{type:"button",className:Cn(["react-flow__controls-button",t]),...n,children:e})}const Coe=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function r$({style:e,showZoom:t=!0,showFitView:n=!0,showInteractive:r=!0,fitViewOptions:o,onZoomIn:i,onZoomOut:a,onFitView:l,onInteractiveChange:u,className:f,children:p,position:h="bottom-left",orientation:g="vertical","aria-label":y}){const k=an(),{isInteractive:v,minZoomReached:b,maxZoomReached:j,ariaLabelConfig:S}=_t(Coe,on),{zoomIn:N,zoomOut:C,fitView:P}=hg(),T=()=>{N(),i==null||i()},R=()=>{C(),a==null||a()},I=()=>{P(o),l==null||l()},_=()=>{k.setState({nodesDraggable:!v,nodesConnectable:!v,elementsSelectable:!v}),u==null||u(!v)},F=g==="horizontal"?"horizontal":"vertical";return s.jsxs(sf,{className:Cn(["react-flow__controls",F,f]),position:h,style:e,"data-testid":"rf__controls","aria-label":y??S["controls.ariaLabel"],children:[t&&s.jsxs(s.Fragment,{children:[s.jsx($p,{onClick:T,className:"react-flow__controls-zoomin",title:S["controls.zoomIn.ariaLabel"],"aria-label":S["controls.zoomIn.ariaLabel"],disabled:j,children:s.jsx(woe,{})}),s.jsx($p,{onClick:R,className:"react-flow__controls-zoomout",title:S["controls.zoomOut.ariaLabel"],"aria-label":S["controls.zoomOut.ariaLabel"],disabled:b,children:s.jsx(joe,{})})]}),n&&s.jsx($p,{className:"react-flow__controls-fitview",onClick:I,title:S["controls.fitView.ariaLabel"],"aria-label":S["controls.fitView.ariaLabel"],children:s.jsx(koe,{})}),r&&s.jsx($p,{className:"react-flow__controls-interactive",onClick:_,title:S["controls.interactive.ariaLabel"],"aria-label":S["controls.interactive.ariaLabel"],children:v?s.jsx(Soe,{}):s.jsx(Noe,{})}),p]})}r$.displayName="Controls";const Eoe=m.memo(r$);function Toe({id:e,x:t,y:n,width:r,height:o,style:i,color:a,strokeColor:l,strokeWidth:u,className:f,borderRadius:p,shapeRendering:h,selected:g,onClick:y}){const{background:k,backgroundColor:v}=i||{},b=a||k||v;return s.jsx("rect",{className:Cn(["react-flow__minimap-node",{selected:g},f]),x:t,y:n,rx:p,ry:p,width:r,height:o,style:{fill:b,stroke:l,strokeWidth:u},shapeRendering:h,onClick:y?j=>y(j,e):void 0})}const Roe=m.memo(Toe),Aoe=e=>e.nodes.map(t=>t.id),pb=e=>e instanceof Function?e:()=>e;function Poe({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:o,nodeComponent:i=Roe,onClick:a}){const l=_t(Aoe,on),u=pb(t),f=pb(e),p=pb(n),h=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return s.jsx(s.Fragment,{children:l.map(g=>s.jsx(Doe,{id:g,nodeColorFunc:u,nodeStrokeColorFunc:f,nodeClassNameFunc:p,nodeBorderRadius:r,nodeStrokeWidth:o,NodeComponent:i,onClick:a,shapeRendering:h},g))})}function _oe({id:e,nodeColorFunc:t,nodeStrokeColorFunc:n,nodeClassNameFunc:r,nodeBorderRadius:o,nodeStrokeWidth:i,shapeRendering:a,NodeComponent:l,onClick:u}){const{node:f,x:p,y:h,width:g,height:y}=_t(k=>{const v=k.nodeLookup.get(e);if(!v)return{node:void 0,x:0,y:0,width:0,height:0};const b=v.internals.userNode,{x:j,y:S}=v.internals.positionAbsolute,{width:N,height:C}=Io(b);return{node:b,x:j,y:S,width:N,height:C}},on);return!f||f.hidden||!oD(f)?null:s.jsx(l,{x:p,y:h,width:g,height:y,style:f.style,selected:!!f.selected,className:r(f),color:t(f),borderRadius:o,strokeColor:n(f),strokeWidth:i,shapeRendering:a,onClick:u,id:f.id})}const Doe=m.memo(_oe);var $oe=m.memo(Poe);const Ioe=200,Moe=150,Loe=e=>!e.hidden,Ooe=e=>{const t={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:t,boundingRect:e.nodeLookup.size>0?rD(nf(e.nodeLookup,{filter:Loe}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},Foe="react-flow__minimap-desc";function s$({style:e,className:t,nodeStrokeColor:n,nodeColor:r,nodeClassName:o="",nodeBorderRadius:i=5,nodeStrokeWidth:a,nodeComponent:l,bgColor:u,maskColor:f,maskStrokeColor:p,maskStrokeWidth:h,position:g="bottom-right",onClick:y,onNodeClick:k,pannable:v=!1,zoomable:b=!1,ariaLabel:j,inversePan:S,zoomStep:N=1,offsetScale:C=5}){const P=an(),T=m.useRef(null),{boundingRect:R,viewBB:I,rfId:_,panZoom:F,translateExtent:D,flowWidth:W,flowHeight:V,ariaLabelConfig:$}=_t(Ooe,on),O=(e==null?void 0:e.width)??Ioe,U=(e==null?void 0:e.height)??Moe,K=R.width/O,M=R.height/U,H=Math.max(K,M),L=H*O,z=H*U,Y=C*H,B=R.x-(L-R.width)/2-Y,Q=R.y-(z-R.height)/2-Y,J=L+Y*2,Z=z+Y*2,oe=`${Foe}-${_}`,ne=m.useRef(0),ue=m.useRef();ne.current=H,m.useEffect(()=>{if(T.current&&F)return ue.current=Xne({domNode:T.current,panZoom:F,getTransform:()=>P.getState().transform,getViewScale:()=>ne.current}),()=>{var ke;(ke=ue.current)==null||ke.destroy()}},[F]),m.useEffect(()=>{var ke;(ke=ue.current)==null||ke.update({translateExtent:D,width:W,height:V,inversePan:S,pannable:v,zoomStep:N,zoomable:b})},[v,b,S,N,D,W,V]);const ge=y?ke=>{var ve;const[Be,ie]=((ve=ue.current)==null?void 0:ve.pointer(ke))||[0,0];y(ke,{x:Be,y:ie})}:void 0,Ce=k?m.useCallback((ke,Be)=>{const ie=P.getState().nodeLookup.get(Be).internals.userNode;k(ke,ie)},[]):void 0,Se=j??$["minimap.ariaLabel"];return s.jsx(sf,{position:g,style:{...e,"--xy-minimap-background-color-props":typeof u=="string"?u:void 0,"--xy-minimap-mask-background-color-props":typeof f=="string"?f:void 0,"--xy-minimap-mask-stroke-color-props":typeof p=="string"?p:void 0,"--xy-minimap-mask-stroke-width-props":typeof h=="number"?h*H:void 0,"--xy-minimap-node-background-color-props":typeof r=="string"?r:void 0,"--xy-minimap-node-stroke-color-props":typeof n=="string"?n:void 0,"--xy-minimap-node-stroke-width-props":typeof a=="number"?a:void 0},className:Cn(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:s.jsxs("svg",{width:O,height:U,viewBox:`${B} ${Q} ${J} ${Z}`,className:"react-flow__minimap-svg",role:"img","aria-labelledby":oe,ref:T,onClick:ge,children:[Se&&s.jsx("title",{id:oe,children:Se}),s.jsx($oe,{onClick:Ce,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:o,nodeStrokeWidth:a,nodeComponent:l}),s.jsx("path",{className:"react-flow__minimap-mask",d:`M${B-Y},${Q-Y}h${J+Y*2}v${Z+Y*2}h${-J-Y*2}z
|
|
669
|
-
M${I.x},${I.y}h${I.width}v${I.height}h${-I.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}s$.displayName="MiniMap";m.memo(s$);const zoe=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,Boe={[fc.Line]:"right",[fc.Handle]:"bottom-right"};function Uoe({nodeId:e,position:t,variant:n=fc.Handle,className:r,style:o=void 0,children:i,color:a,minWidth:l=10,minHeight:u=10,maxWidth:f=Number.MAX_VALUE,maxHeight:p=Number.MAX_VALUE,keepAspectRatio:h=!1,resizeDirection:g,autoScale:y=!0,shouldResize:k,onResizeStart:v,onResize:b,onResizeEnd:j}){const S=MD(),N=typeof e=="string"?e:S,C=an(),P=m.useRef(null),T=n===fc.Handle,R=_t(m.useCallback(zoe(T&&y),[T,y]),on),I=m.useRef(null),_=t??Boe[n];m.useEffect(()=>{if(!(!P.current||!N))return I.current||(I.current=cre({domNode:P.current,nodeId:N,getStoreItems:()=>{const{nodeLookup:D,transform:W,snapGrid:V,snapToGrid:$,nodeOrigin:O,domNode:U}=C.getState();return{nodeLookup:D,transform:W,snapGrid:V,snapToGrid:$,nodeOrigin:O,paneDomNode:U}},onChange:(D,W)=>{const{triggerNodeChanges:V,nodeLookup:$,parentLookup:O,nodeOrigin:U}=C.getState(),K=[],M={x:D.x,y:D.y},H=$.get(N);if(H&&H.expandParent&&H.parentId){const L=H.origin??U,z=D.width??H.measured.width??0,Y=D.height??H.measured.height??0,B={id:H.id,parentId:H.parentId,rect:{width:z,height:Y,...iD({x:D.x??H.position.x,y:D.y??H.position.y},{width:z,height:Y},H.parentId,$,L)}},Q=q0([B],$,O,U);K.push(...Q),M.x=D.x?Math.max(L[0]*z,D.x):void 0,M.y=D.y?Math.max(L[1]*Y,D.y):void 0}if(M.x!==void 0&&M.y!==void 0){const L={id:N,type:"position",position:{...M}};K.push(L)}if(D.width!==void 0&&D.height!==void 0){const z={id:N,type:"dimensions",resizing:!0,setAttributes:g?g==="horizontal"?"width":"height":!0,dimensions:{width:D.width,height:D.height}};K.push(z)}for(const L of W){const z={...L,type:"position"};K.push(z)}V(K)},onEnd:({width:D,height:W})=>{const V={id:N,type:"dimensions",resizing:!1,dimensions:{width:D,height:W}};C.getState().triggerNodeChanges([V])}})),I.current.update({controlPosition:_,boundaries:{minWidth:l,minHeight:u,maxWidth:f,maxHeight:p},keepAspectRatio:h,resizeDirection:g,onResizeStart:v,onResize:b,onResizeEnd:j,shouldResize:k}),()=>{var D;(D=I.current)==null||D.destroy()}},[_,l,u,f,p,h,v,b,j,k]);const F=_.split("-");return s.jsx("div",{className:Cn(["react-flow__resize-control","nodrag",...F,n,r]),ref:P,style:{...o,scale:R,...a&&{[T?"backgroundColor":"borderColor"]:a}},children:i})}m.memo(Uoe);var o$=Object.defineProperty,Hoe=(e,t,n)=>t in e?o$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Voe=(e,t)=>{for(var n in t)o$(e,n,{get:t[n],enumerable:!0})},Woe=(e,t,n)=>Hoe(e,t+"",n),i$={};Voe(i$,{Graph:()=>_s,alg:()=>Y0,json:()=>l$,version:()=>Goe});var Koe=Object.defineProperty,a$=(e,t)=>{for(var n in t)Koe(e,n,{get:t[n],enumerable:!0})},_s=class{constructor(e){this._isDirected=!0,this._isMultigraph=!1,this._isCompound=!1,this._nodes={},this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={},this._nodeCount=0,this._edgeCount=0,this._defaultNodeLabelFn=()=>{},this._defaultEdgeLabelFn=()=>{},e&&(this._isDirected="directed"in e?e.directed:!0,this._isMultigraph="multigraph"in e?e.multigraph:!1,this._isCompound="compound"in e?e.compound:!1),this._isCompound&&(this._parent={},this._children={},this._children["\0"]={})}isDirected(){return this._isDirected}isMultigraph(){return this._isMultigraph}isCompound(){return this._isCompound}setGraph(e){return this._label=e,this}graph(){return this._label}setDefaultNodeLabel(e){return typeof e!="function"?this._defaultNodeLabelFn=()=>e:this._defaultNodeLabelFn=e,this}nodeCount(){return this._nodeCount}nodes(){return Object.keys(this._nodes)}sources(){return this.nodes().filter(e=>Object.keys(this._in[e]).length===0)}sinks(){return this.nodes().filter(e=>Object.keys(this._out[e]).length===0)}setNodes(e,t){return e.forEach(n=>{t!==void 0?this.setNode(n,t):this.setNode(n)}),this}setNode(e,t){return e in this._nodes?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]="\0",this._children[e]={},this._children["\0"][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)}node(e){return this._nodes[e]}hasNode(e){return e in this._nodes}removeNode(e){if(e in this._nodes){let t=n=>this.removeEdge(this._edgeObjs[n]);delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],this.children(e).forEach(n=>{this.setParent(n)}),delete this._children[e]),Object.keys(this._in[e]).forEach(t),delete this._in[e],delete this._preds[e],Object.keys(this._out[e]).forEach(t),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this}setParent(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(t===void 0)t="\0";else{t+="";for(let n=t;n!==void 0;n=this.parent(n))if(n===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this}parent(e){if(this._isCompound){let t=this._parent[e];if(t!=="\0")return t}}children(e="\0"){if(this._isCompound){let t=this._children[e];if(t)return Object.keys(t)}else{if(e==="\0")return this.nodes();if(this.hasNode(e))return[]}return[]}predecessors(e){let t=this._preds[e];if(t)return Object.keys(t)}successors(e){let t=this._sucs[e];if(t)return Object.keys(t)}neighbors(e){let t=this.predecessors(e);if(t){let n=new Set(t);for(let r of this.successors(e))n.add(r);return Array.from(n.values())}}isLeaf(e){let t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0}filterNodes(e){let t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph()),Object.entries(this._nodes).forEach(([o,i])=>{e(o)&&t.setNode(o,i)}),Object.values(this._edgeObjs).forEach(o=>{t.hasNode(o.v)&&t.hasNode(o.w)&&t.setEdge(o,this.edge(o))});let n={},r=o=>{let i=this.parent(o);return!i||t.hasNode(i)?(n[o]=i??void 0,i??void 0):i in n?n[i]:r(i)};return this._isCompound&&t.nodes().forEach(o=>t.setParent(o,r(o))),t}setDefaultEdgeLabel(e){return typeof e!="function"?this._defaultEdgeLabelFn=()=>e:this._defaultEdgeLabelFn=e,this}edgeCount(){return this._edgeCount}edges(){return Object.values(this._edgeObjs)}setPath(e,t){return e.reduce((n,r)=>(t!==void 0?this.setEdge(n,r,t):this.setEdge(n,r),r)),this}setEdge(e,t,n,r){let o,i,a,l,u=!1;typeof e=="object"&&e!==null&&"v"in e?(o=e.v,i=e.w,a=e.name,arguments.length===2&&(l=t,u=!0)):(o=e,i=t,a=r,arguments.length>2&&(l=n,u=!0)),o=""+o,i=""+i,a!==void 0&&(a=""+a);let f=Lu(this._isDirected,o,i,a);if(f in this._edgeLabels)return u&&(this._edgeLabels[f]=l),this;if(a!==void 0&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(o),this.setNode(i),this._edgeLabels[f]=u?l:this._defaultEdgeLabelFn(o,i,a);let p=qoe(this._isDirected,o,i,a);return o=p.v,i=p.w,Object.freeze(p),this._edgeObjs[f]=p,CE(this._preds[i],o),CE(this._sucs[o],i),this._in[i][f]=p,this._out[o][f]=p,this._edgeCount++,this}edge(e,t,n){let r=arguments.length===1?hb(this._isDirected,e):Lu(this._isDirected,e,t,n);return this._edgeLabels[r]}edgeAsObj(e,t,n){let r=arguments.length===1?this.edge(e):this.edge(e,t,n);return typeof r!="object"?{label:r}:r}hasEdge(e,t,n){return(arguments.length===1?hb(this._isDirected,e):Lu(this._isDirected,e,t,n))in this._edgeLabels}removeEdge(e,t,n){let r=arguments.length===1?hb(this._isDirected,e):Lu(this._isDirected,e,t,n),o=this._edgeObjs[r];if(o){let i=o.v,a=o.w;delete this._edgeLabels[r],delete this._edgeObjs[r],EE(this._preds[a],i),EE(this._sucs[i],a),delete this._in[a][r],delete this._out[i][r],this._edgeCount--}return this}inEdges(e,t){return this.isDirected()?this.filterEdges(this._in[e],e,t):this.nodeEdges(e,t)}outEdges(e,t){return this.isDirected()?this.filterEdges(this._out[e],e,t):this.nodeEdges(e,t)}nodeEdges(e,t){if(e in this._nodes)return this.filterEdges({...this._in[e],...this._out[e]},e,t)}_removeFromParentsChildList(e){delete this._children[this._parent[e]][e]}filterEdges(e,t,n){if(!e)return;let r=Object.values(e);return n?r.filter(o=>o.v===t&&o.w===n||o.v===n&&o.w===t):r}};function CE(e,t){e[t]?e[t]++:e[t]=1}function EE(e,t){e[t]!==void 0&&!--e[t]&&delete e[t]}function Lu(e,t,n,r){let o=""+t,i=""+n;if(!e&&o>i){let a=o;o=i,i=a}return o+""+i+""+(r===void 0?"\0":r)}function qoe(e,t,n,r){let o=""+t,i=""+n;if(!e&&o>i){let l=o;o=i,i=l}let a={v:o,w:i};return r&&(a.name=r),a}function hb(e,t){return Lu(e,t.v,t.w,t.name)}var Goe="4.0.1",l$={};a$(l$,{read:()=>Joe,write:()=>Yoe});function Yoe(e){let t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:Xoe(e),edges:Qoe(e)},n=e.graph();return n!==void 0&&(t.value=structuredClone(n)),t}function Xoe(e){return e.nodes().map(t=>{let n=e.node(t),r=e.parent(t),o={v:t};return n!==void 0&&(o.value=n),r!==void 0&&(o.parent=r),o})}function Qoe(e){return e.edges().map(t=>{let n=e.edge(t),r={v:t.v,w:t.w};return t.name!==void 0&&(r.name=t.name),n!==void 0&&(r.value=n),r})}function Joe(e){let t=new _s(e.options);return e.value!==void 0&&t.setGraph(e.value),e.nodes.forEach(n=>{t.setNode(n.v,n.value),n.parent&&t.setParent(n.v,n.parent)}),e.edges.forEach(n=>{t.setEdge({v:n.v,w:n.w,name:n.name},n.value)}),t}var Y0={};a$(Y0,{CycleException:()=>Qh,bellmanFord:()=>c$,components:()=>tie,dijkstra:()=>Xh,dijkstraAll:()=>sie,findCycles:()=>oie,floydWarshall:()=>aie,isAcyclic:()=>cie,postorder:()=>die,preorder:()=>fie,prim:()=>pie,shortestPaths:()=>hie,tarjan:()=>d$,topsort:()=>f$});var Zoe=()=>1;function c$(e,t,n,r){return eie(e,String(t),n||Zoe,r||function(o){return e.outEdges(o)})}function eie(e,t,n,r){let o={},i,a=0,l=e.nodes(),u=function(h){let g=n(h);o[h.v].distance+g<o[h.w].distance&&(o[h.w]={distance:o[h.v].distance+g,predecessor:h.v},i=!0)},f=function(){l.forEach(function(h){r(h).forEach(function(g){let y=g.v===h?g.v:g.w,k=y===g.v?g.w:g.v;u({v:y,w:k})})})};l.forEach(function(h){let g=h===t?0:Number.POSITIVE_INFINITY;o[h]={distance:g,predecessor:""}});let p=l.length;for(let h=1;h<p&&(i=!1,a++,f(),!!i);h++);if(a===p-1&&(i=!1,f(),i))throw new Error("The graph contains a negative weight cycle");return o}function tie(e){let t={},n=[],r;function o(i){i in t||(t[i]=!0,r.push(i),e.successors(i).forEach(o),e.predecessors(i).forEach(o))}return e.nodes().forEach(function(i){r=[],o(i),r.length&&n.push(r)}),n}var u$=class{constructor(){this._arr=[],this._keyIndices={}}size(){return this._arr.length}keys(){return this._arr.map(e=>e.key)}has(e){return e in this._keyIndices}priority(e){let t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority}min(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key}add(e,t){let n=this._keyIndices,r=String(e);if(!(r in n)){let o=this._arr,i=o.length;return n[r]=i,o.push({key:r,priority:t}),this._decrease(i),!0}return!1}removeMin(){this._swap(0,this._arr.length-1);let e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key}decrease(e,t){let n=this._keyIndices[e];if(n===void 0)throw new Error(`Key not found: ${e}`);let r=this._arr[n].priority;if(t>r)throw new Error(`New priority is greater than current priority. Key: ${e} Old: ${r} New: ${t}`);this._arr[n].priority=t,this._decrease(n)}_heapify(e){let t=this._arr,n=2*e,r=n+1,o=e;n<t.length&&(o=t[n].priority<t[o].priority?n:o,r<t.length&&(o=t[r].priority<t[o].priority?r:o),o!==e&&(this._swap(e,o),this._heapify(o)))}_decrease(e){let t=this._arr,n=t[e].priority,r;for(;e!==0&&(r=e>>1,!(t[r].priority<n));)this._swap(e,r),e=r}_swap(e,t){let n=this._arr,r=this._keyIndices,o=n[e],i=n[t];n[e]=i,n[t]=o,r[i.key]=e,r[o.key]=t}},nie=()=>1;function Xh(e,t,n,r){let o=function(i){return e.outEdges(i)};return rie(e,String(t),n||nie,r||o)}function rie(e,t,n,r){let o={},i=new u$,a,l,u=function(f){let p=f.v!==a?f.v:f.w,h=o[p],g=n(f),y=l.distance+g;if(g<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+f+" Weight: "+g);y<h.distance&&(h.distance=y,h.predecessor=a,i.decrease(p,y))};for(e.nodes().forEach(function(f){let p=f===t?0:Number.POSITIVE_INFINITY;o[f]={distance:p,predecessor:""},i.add(f,p)});i.size()>0&&(a=i.removeMin(),l=o[a],l.distance!==Number.POSITIVE_INFINITY);)r(a).forEach(u);return o}function sie(e,t,n){return e.nodes().reduce(function(r,o){return r[o]=Xh(e,o,t,n),r},{})}function d$(e){let t=0,n=[],r={},o=[];function i(a){let l=r[a]={onStack:!0,lowlink:t,index:t++};if(n.push(a),e.successors(a).forEach(function(u){u in r?r[u].onStack&&(l.lowlink=Math.min(l.lowlink,r[u].index)):(i(u),l.lowlink=Math.min(l.lowlink,r[u].lowlink))}),l.lowlink===l.index){let u=[],f;do f=n.pop(),r[f].onStack=!1,u.push(f);while(a!==f);o.push(u)}}return e.nodes().forEach(function(a){a in r||i(a)}),o}function oie(e){return d$(e).filter(function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}var iie=()=>1;function aie(e,t,n){return lie(e,t||iie,n||function(r){return e.outEdges(r)})}function lie(e,t,n){let r={},o=e.nodes();return o.forEach(function(i){r[i]={},r[i][i]={distance:0,predecessor:""},o.forEach(function(a){i!==a&&(r[i][a]={distance:Number.POSITIVE_INFINITY,predecessor:""})}),n(i).forEach(function(a){let l=a.v===i?a.w:a.v,u=t(a);r[i][l]={distance:u,predecessor:i}})}),o.forEach(function(i){let a=r[i];o.forEach(function(l){let u=r[l];o.forEach(function(f){let p=u[i],h=a[f],g=u[f],y=p.distance+h.distance;y<g.distance&&(g.distance=y,g.predecessor=h.predecessor)})})}),r}var Qh=class extends Error{constructor(...e){super(...e)}};function f$(e){let t={},n={},r=[];function o(i){if(i in n)throw new Qh;i in t||(n[i]=!0,t[i]=!0,e.predecessors(i).forEach(o),delete n[i],r.push(i))}if(e.sinks().forEach(o),Object.keys(t).length!==e.nodeCount())throw new Qh;return r}function cie(e){try{f$(e)}catch(t){if(t instanceof Qh)return!1;throw t}return!0}function uie(e,t,n,r,o){Array.isArray(t)||(t=[t]);let i=(l=>{var u;return(u=e.isDirected()?e.successors(l):e.neighbors(l))!=null?u:[]}),a={};return t.forEach(function(l){if(!e.hasNode(l))throw new Error("Graph does not have node: "+l);o=p$(e,l,n==="post",a,i,r,o)}),o}function p$(e,t,n,r,o,i,a){return t in r||(r[t]=!0,n||(a=i(a,t)),o(t).forEach(function(l){a=p$(e,l,n,r,o,i,a)}),n&&(a=i(a,t))),a}function h$(e,t,n){return uie(e,t,n,function(r,o){return r.push(o),r},[])}function die(e,t){return h$(e,t,"post")}function fie(e,t){return h$(e,t,"pre")}function pie(e,t){let n=new _s,r={},o=new u$,i;function a(u){let f=u.v===i?u.w:u.v,p=o.priority(f);if(p!==void 0){let h=t(u);h<p&&(r[f]=i,o.decrease(f,h))}}if(e.nodeCount()===0)return n;e.nodes().forEach(function(u){o.add(u,Number.POSITIVE_INFINITY),n.setNode(u)}),o.decrease(e.nodes()[0],0);let l=!1;for(;o.size()>0;){if(i=o.removeMin(),i in r)n.setEdge(i,r[i]);else{if(l)throw new Error("Input graph is not connected: "+e);l=!0}e.nodeEdges(i).forEach(a)}return n}function hie(e,t,n,r){return mie(e,t,n,r??(o=>{let i=e.outEdges(o);return i??[]}))}function mie(e,t,n,r){if(n===void 0)return Xh(e,t,n,r);let o=!1,i=e.nodes();for(let a=0;a<i.length;a++){let l=r(i[a]);for(let u=0;u<l.length;u++){let f=l[u],p=f.v===i[a]?f.v:f.w,h=p===f.v?f.w:f.v;n({v:p,w:h})<0&&(o=!0)}if(o)return c$(e,t,n,r)}return Xh(e,t,n,r)}function Oc(e,t,n,r){let o=r;for(;e.hasNode(o);)o=X0(r);return n.dummy=t,e.setNode(o,n),o}function gie(e){let t=new _s().setGraph(e.graph());return e.nodes().forEach(n=>t.setNode(n,e.node(n))),e.edges().forEach(n=>{let r=t.edge(n.v,n.w)||{weight:0,minlen:1},o=e.edge(n);t.setEdge(n.v,n.w,{weight:r.weight+o.weight,minlen:Math.max(r.minlen,o.minlen)})}),t}function m$(e){let t=new _s({multigraph:e.isMultigraph()}).setGraph(e.graph());return e.nodes().forEach(n=>{e.children(n).length||t.setNode(n,e.node(n))}),e.edges().forEach(n=>{t.setEdge(n,e.edge(n))}),t}function TE(e,t){let n=e.x,r=e.y,o=t.x-n,i=t.y-r,a=e.width/2,l=e.height/2;if(!o&&!i)throw new Error("Not possible to find intersection inside of the rectangle");let u,f;return Math.abs(i)*a>Math.abs(o)*l?(i<0&&(l=-l),u=l*o/i,f=l):(o<0&&(a=-a),u=a,f=a*i/o),{x:n+u,y:r+f}}function gg(e){let t=Ad(x$(e)+1).map(()=>[]);return e.nodes().forEach(n=>{let r=e.node(n),o=r.rank;o!==void 0&&(t[o]||(t[o]=[]),t[o][r.order]=n)}),t}function xie(e){let t=e.nodes().map(r=>{let o=e.node(r).rank;return o===void 0?Number.MAX_VALUE:o}),n=Qs(Math.min,t);e.nodes().forEach(r=>{let o=e.node(r);Object.hasOwn(o,"rank")&&(o.rank-=n)})}function yie(e){let t=e.nodes().map(a=>e.node(a).rank).filter(a=>a!==void 0),n=Qs(Math.min,t),r=[];e.nodes().forEach(a=>{let l=e.node(a).rank-n;r[l]||(r[l]=[]),r[l].push(a)});let o=0,i=e.graph().nodeRankFactor;Array.from(r).forEach((a,l)=>{a===void 0&&l%i!==0?--o:a!==void 0&&o&&a.forEach(u=>e.node(u).rank+=o)})}function RE(e,t,n,r){let o={width:0,height:0};return arguments.length>=4&&(o.rank=n,o.order=r),Oc(e,"border",o,t)}function bie(e,t=g$){let n=[];for(let r=0;r<e.length;r+=t){let o=e.slice(r,r+t);n.push(o)}return n}var g$=65535;function Qs(e,t){if(t.length>g$){let n=bie(t);return e(...n.map(r=>e(...r)))}else return e(...t)}function x$(e){let t=e.nodes().map(n=>{let r=e.node(n).rank;return r===void 0?Number.MIN_VALUE:r});return Qs(Math.max,t)}function vie(e,t){let n={lhs:[],rhs:[]};return e.forEach(r=>{t(r)?n.lhs.push(r):n.rhs.push(r)}),n}function wie(e,t){let n=Date.now();try{return t()}finally{console.log(e+" time: "+(Date.now()-n)+"ms")}}function jie(e,t){return t()}var kie=0;function X0(e){let t=++kie;return e+(""+t)}function Ad(e,t,n=1){t==null&&(t=e,e=0);let r=i=>i<t;n<0&&(r=i=>t<i);let o=[];for(let i=e;r(i);i+=n)o.push(i);return o}function Jh(e,t){let n={};for(let r of t)e[r]!==void 0&&(n[r]=e[r]);return n}function xg(e,t){let n;return typeof t=="string"?n=r=>r[t]:n=t,Object.entries(e).reduce((r,[o,i])=>(r[o]=n(i,o),r),{})}function Nie(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}var yg="\0",Sie=class{constructor(){Woe(this,"_sentinel");let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return AE(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&AE(e),e._next=t._next,t._next._prev=e,t._next=e,e._prev=t}toString(){let e=[],t=this._sentinel,n=t._prev;for(;n!==t;)e.push(JSON.stringify(n,Cie)),n=n._prev;return"["+e.join(", ")+"]"}};function AE(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function Cie(e,t){if(e!=="_next"&&e!=="_prev")return t}var Eie=Sie,Tie=()=>1;function Rie(e,t){if(e.nodeCount()<=1)return[];let n=Pie(e,t||Tie);return Aie(n.graph,n.buckets,n.zeroIdx).flatMap(r=>e.outEdges(r.v,r.w)||[])}function Aie(e,t,n){var r;let o=[],i=t[t.length-1],a=t[0],l;for(;e.nodeCount();){for(;l=a.dequeue();)mb(e,t,n,l);for(;l=i.dequeue();)mb(e,t,n,l);if(e.nodeCount()){for(let u=t.length-2;u>0;--u)if(l=(r=t[u])==null?void 0:r.dequeue(),l){o=o.concat(mb(e,t,n,l,!0)||[]);break}}}return o}function mb(e,t,n,r,o){let i=[],a=o?i:void 0;return(e.inEdges(r.v)||[]).forEach(l=>{let u=e.edge(l),f=e.node(l.v);o&&i.push({v:l.v,w:l.w}),f.out-=u,Lv(t,n,f)}),(e.outEdges(r.v)||[]).forEach(l=>{let u=e.edge(l),f=l.w,p=e.node(f);p.in-=u,Lv(t,n,p)}),e.removeNode(r.v),a}function Pie(e,t){let n=new _s,r=0,o=0;e.nodes().forEach(l=>{n.setNode(l,{v:l,in:0,out:0})}),e.edges().forEach(l=>{let u=n.edge(l.v,l.w)||0,f=t(l),p=u+f;n.setEdge(l.v,l.w,p);let h=n.node(l.v),g=n.node(l.w);o=Math.max(o,h.out+=f),r=Math.max(r,g.in+=f)});let i=_ie(o+r+3).map(()=>new Eie),a=r+1;return n.nodes().forEach(l=>{Lv(i,a,n.node(l))}),{graph:n,buckets:i,zeroIdx:a}}function Lv(e,t,n){var r,o,i;n.out?n.in?(i=e[n.out-n.in+t])==null||i.enqueue(n):(o=e[e.length-1])==null||o.enqueue(n):(r=e[0])==null||r.enqueue(n)}function _ie(e){let t=[];for(let n=0;n<e;n++)t.push(n);return t}function Die(e){(e.graph().acyclicer==="greedy"?Rie(e,t(e)):$ie(e)).forEach(n=>{let r=e.edge(n);e.removeEdge(n),r.forwardName=n.name,r.reversed=!0,e.setEdge(n.w,n.v,r,X0("rev"))});function t(n){return r=>n.edge(r).weight}}function $ie(e){let t=[],n={},r={};function o(i){Object.hasOwn(r,i)||(r[i]=!0,n[i]=!0,e.outEdges(i).forEach(a=>{Object.hasOwn(n,a.w)?t.push(a):o(a.w)}),delete n[i])}return e.nodes().forEach(o),t}function Iie(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.reversed){e.removeEdge(t);let r=n.forwardName;delete n.reversed,delete n.forwardName,e.setEdge(t.w,t.v,n,r)}})}function Mie(e){e.graph().dummyChains=[],e.edges().forEach(t=>Lie(e,t))}function Lie(e,t){let n=t.v,r=e.node(n).rank,o=t.w,i=e.node(o).rank,a=t.name,l=e.edge(t),u=l.labelRank;if(i===r+1)return;e.removeEdge(t);let f,p,h;for(h=0,++r;r<i;++h,++r)l.points=[],p={width:0,height:0,edgeLabel:l,edgeObj:t,rank:r},f=Oc(e,"edge",p,"_d"),r===u&&(p.width=l.width,p.height=l.height,p.dummy="edge-label",p.labelpos=l.labelpos),e.setEdge(n,f,{weight:l.weight},a),h===0&&e.graph().dummyChains.push(f),n=f;e.setEdge(n,o,{weight:l.weight},a)}function Oie(e){e.graph().dummyChains.forEach(t=>{let n=e.node(t),r=n.edgeLabel,o;for(e.setEdge(n.edgeObj,r);n.dummy;)o=e.successors(t)[0],e.removeNode(t),r.points.push({x:n.x,y:n.y}),n.dummy==="edge-label"&&(r.x=n.x,r.y=n.y,r.width=n.width,r.height=n.height),t=o,n=e.node(t)})}function Q0(e){let t={};function n(r){let o=e.node(r);if(Object.hasOwn(t,r))return o.rank;t[r]=!0;let i=e.outEdges(r),a=i?i.map(u=>u==null?Number.POSITIVE_INFINITY:n(u.w)-e.edge(u).minlen):[],l=Qs(Math.min,a);return l===Number.POSITIVE_INFINITY&&(l=0),o.rank=l}e.sources().forEach(n)}function hc(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var y$=Fie;function Fie(e){let t=new _s({directed:!1}),n=e.nodes();if(n.length===0)throw new Error("Graph must have at least one node");let r=n[0],o=e.nodeCount();t.setNode(r,{});let i,a;for(;zie(t,e)<o&&(i=Bie(t,e),!!i);)a=t.hasNode(i.v)?hc(e,i):-hc(e,i),Uie(t,e,a);return t}function zie(e,t){function n(r){let o=t.nodeEdges(r);o&&o.forEach(i=>{let a=i.v,l=r===a?i.w:a;!e.hasNode(l)&&!hc(t,i)&&(e.setNode(l,{}),e.setEdge(r,l,{}),n(l))})}return e.nodes().forEach(n),e.nodeCount()}function Bie(e,t){return t.edges().reduce((n,r)=>{let o=Number.POSITIVE_INFINITY;return e.hasNode(r.v)!==e.hasNode(r.w)&&(o=hc(t,r)),o<n[0]?[o,r]:n},[Number.POSITIVE_INFINITY,null])[1]}function Uie(e,t,n){e.nodes().forEach(r=>t.node(r).rank+=n)}var{preorder:Hie,postorder:Vie}=Y0,Wie=$a;$a.initLowLimValues=Z0;$a.initCutValues=J0;$a.calcCutValue=b$;$a.leaveEdge=w$;$a.enterEdge=j$;$a.exchangeEdges=k$;function $a(e){e=gie(e),Q0(e);let t=y$(e);Z0(t),J0(t,e);let n,r;for(;n=w$(t);)r=j$(t,e,n),k$(t,e,n,r)}function J0(e,t){let n=Vie(e,e.nodes());n=n.slice(0,n.length-1),n.forEach(r=>Kie(e,t,r))}function Kie(e,t,n){let r=e.node(n).parent,o=e.edge(n,r);o.cutvalue=b$(e,t,n)}function b$(e,t,n){let r=e.node(n).parent,o=!0,i=t.edge(n,r),a=0;i||(o=!1,i=t.edge(r,n)),a=i.weight;let l=t.nodeEdges(n);return l&&l.forEach(u=>{let f=u.v===n,p=f?u.w:u.v;if(p!==r){let h=f===o,g=t.edge(u).weight;if(a+=h?g:-g,Gie(e,n,p)){let y=e.edge(n,p).cutvalue;a+=h?-y:y}}}),a}function Z0(e,t){arguments.length<2&&(t=e.nodes()[0]),v$(e,{},1,t)}function v$(e,t,n,r,o){let i=n,a=e.node(r);t[r]=!0;let l=e.neighbors(r);return l&&l.forEach(u=>{Object.hasOwn(t,u)||(n=v$(e,t,n,u,r))}),a.low=i,a.lim=n++,o?a.parent=o:delete a.parent,n}function w$(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function j$(e,t,n){let r=n.v,o=n.w;t.hasEdge(r,o)||(r=n.w,o=n.v);let i=e.node(r),a=e.node(o),l=i,u=!1;return i.lim>a.lim&&(l=a,u=!0),t.edges().filter(f=>u===PE(e,e.node(f.v),l)&&u!==PE(e,e.node(f.w),l)).reduce((f,p)=>hc(t,p)<hc(t,f)?p:f)}function k$(e,t,n,r){let o=n.v,i=n.w;e.removeEdge(o,i),e.setEdge(r.v,r.w,{}),Z0(e),J0(e,t),qie(e,t)}function qie(e,t){let n=e.nodes().find(o=>!e.node(o).parent);if(!n)return;let r=Hie(e,[n]);r=r.slice(1),r.forEach(o=>{let i=e.node(o).parent,a=t.edge(o,i),l=!1;a||(a=t.edge(i,o),l=!0),t.node(o).rank=t.node(i).rank+(l?a.minlen:-a.minlen)})}function Gie(e,t,n){return e.hasEdge(t,n)}function PE(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}var Yie=Xie;function Xie(e){let t=e.graph().ranker;if(typeof t=="function")return t(e);switch(t){case"network-simplex":_E(e);break;case"tight-tree":Jie(e);break;case"longest-path":Qie(e);break;case"none":break;default:_E(e)}}var Qie=Q0;function Jie(e){Q0(e),y$(e)}function _E(e){Wie(e)}var Zie=eae;function eae(e){let t=nae(e);e.graph().dummyChains.forEach(n=>{let r=e.node(n),o=r.edgeObj,i=tae(e,t,o.v,o.w),a=i.path,l=i.lca,u=0,f=a[u],p=!0;for(;n!==o.w;){if(r=e.node(n),p){for(;(f=a[u])!==l&&e.node(f).maxRank<r.rank;)u++;f===l&&(p=!1)}if(!p){for(;u<a.length-1&&e.node(a[u+1]).minRank<=r.rank;)u++;f=a[u]}f!==void 0&&e.setParent(n,f),n=e.successors(n)[0]}})}function tae(e,t,n,r){let o=[],i=[],a=Math.min(t[n].low,t[r].low),l=Math.max(t[n].lim,t[r].lim),u;u=n;do u=e.parent(u),o.push(u);while(u&&(t[u].low>a||l>t[u].lim));let f=u,p=r;for(;(p=e.parent(p))!==f;)i.push(p);return{path:o.concat(i.reverse()),lca:f}}function nae(e){let t={},n=0;function r(o){let i=n;e.children(o).forEach(r),t[o]={low:i,lim:n++}}return e.children(yg).forEach(r),t}function rae(e){let t=Oc(e,"root",{},"_root"),n=sae(e),r=Object.values(n),o=Qs(Math.max,r)-1,i=2*o+1;e.graph().nestingRoot=t,e.edges().forEach(l=>e.edge(l).minlen*=i);let a=oae(e)+1;e.children(yg).forEach(l=>N$(e,t,i,a,o,n,l)),e.graph().nodeRankFactor=i}function N$(e,t,n,r,o,i,a){var l;let u=e.children(a);if(!u.length){a!==t&&e.setEdge(t,a,{weight:0,minlen:n});return}let f=RE(e,"_bt"),p=RE(e,"_bb"),h=e.node(a);e.setParent(f,a),h.borderTop=f,e.setParent(p,a),h.borderBottom=p,u.forEach(g=>{var y;N$(e,t,n,r,o,i,g);let k=e.node(g),v=k.borderTop?k.borderTop:g,b=k.borderBottom?k.borderBottom:g,j=k.borderTop?r:2*r,S=v!==b?1:o-((y=i[a])!=null?y:0)+1;e.setEdge(f,v,{weight:j,minlen:S,nestingEdge:!0}),e.setEdge(b,p,{weight:j,minlen:S,nestingEdge:!0})}),e.parent(a)||e.setEdge(t,f,{weight:0,minlen:o+((l=i[a])!=null?l:0)})}function sae(e){let t={};function n(r,o){let i=e.children(r);i&&i.length&&i.forEach(a=>n(a,o+1)),t[r]=o}return e.children(yg).forEach(r=>n(r,1)),t}function oae(e){return e.edges().reduce((t,n)=>t+e.edge(n).weight,0)}function iae(e){let t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(n=>{e.edge(n).nestingEdge&&e.removeEdge(n)})}var aae=lae;function lae(e){function t(n){let r=e.children(n),o=e.node(n);if(r.length&&r.forEach(t),Object.hasOwn(o,"minRank")){o.borderLeft=[],o.borderRight=[];for(let i=o.minRank,a=o.maxRank+1;i<a;++i)DE(e,"borderLeft","_bl",n,o,i),DE(e,"borderRight","_br",n,o,i)}}e.children(yg).forEach(t)}function DE(e,t,n,r,o,i){let a={width:0,height:0,rank:i,borderType:t},l=o[t][i-1],u=Oc(e,"border",a,n);o[t][i]=u,e.setParent(u,r),l&&e.setEdge(l,u,{weight:1})}function cae(e){var t;let n=(t=e.graph().rankdir)==null?void 0:t.toLowerCase();(n==="lr"||n==="rl")&&S$(e)}function uae(e){var t;let n=(t=e.graph().rankdir)==null?void 0:t.toLowerCase();(n==="bt"||n==="rl")&&dae(e),(n==="lr"||n==="rl")&&(fae(e),S$(e))}function S$(e){e.nodes().forEach(t=>$E(e.node(t))),e.edges().forEach(t=>$E(e.edge(t)))}function $E(e){let t=e.width;e.width=e.height,e.height=t}function dae(e){e.nodes().forEach(t=>gb(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(gb),Object.hasOwn(r,"y")&&gb(r)})}function gb(e){e.y=-e.y}function fae(e){e.nodes().forEach(t=>xb(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(xb),Object.hasOwn(r,"x")&&xb(r)})}function xb(e){let t=e.x;e.x=e.y,e.y=t}function pae(e){let t={},n=e.nodes().filter(l=>!e.children(l).length),r=n.map(l=>e.node(l).rank),o=Qs(Math.max,r),i=Ad(o+1).map(()=>[]);function a(l){if(t[l])return;t[l]=!0;let u=e.node(l);i[u.rank].push(l);let f=e.successors(l);f&&f.forEach(a)}return n.sort((l,u)=>e.node(l).rank-e.node(u).rank).forEach(a),i}function hae(e,t){let n=0;for(let r=1;r<t.length;++r)n+=mae(e,t[r-1],t[r]);return n}function mae(e,t,n){let r=Nie(n,n.map((f,p)=>p)),o=t.flatMap(f=>{let p=e.outEdges(f);return p?p.map(h=>({pos:r[h.w],weight:e.edge(h).weight})).sort((h,g)=>h.pos-g.pos):[]}),i=1;for(;i<n.length;)i<<=1;let a=2*i-1;i-=1;let l=new Array(a).fill(0),u=0;return o.forEach(f=>{let p=f.pos+i;l[p]+=f.weight;let h=0;for(;p>0;)p%2&&(h+=l[p+1]),p=p-1>>1,l[p]+=f.weight;u+=f.weight*h}),u}function gae(e,t=[]){return t.map(n=>{let r=e.inEdges(n);if(!r||!r.length)return{v:n};{let o=r.reduce((i,a)=>{let l=e.edge(a),u=e.node(a.v);return{sum:i.sum+l.weight*u.order,weight:i.weight+l.weight}},{sum:0,weight:0});return{v:n,barycenter:o.sum/o.weight,weight:o.weight}}})}function xae(e,t){let n={};e.forEach((o,i)=>{let a={indegree:0,in:[],out:[],vs:[o.v],i};o.barycenter!==void 0&&(a.barycenter=o.barycenter,a.weight=o.weight),n[o.v]=a}),t.edges().forEach(o=>{let i=n[o.v],a=n[o.w];i!==void 0&&a!==void 0&&(a.indegree++,i.out.push(a))});let r=Object.values(n).filter(o=>!o.indegree);return yae(r)}function yae(e){let t=[];function n(o){return i=>{i.merged||(i.barycenter===void 0||o.barycenter===void 0||i.barycenter>=o.barycenter)&&bae(o,i)}}function r(o){return i=>{i.in.push(o),--i.indegree===0&&e.push(i)}}for(;e.length;){let o=e.pop();t.push(o),o.in.reverse().forEach(n(o)),o.out.forEach(r(o))}return t.filter(o=>!o.merged).map(o=>Jh(o,["vs","i","barycenter","weight"]))}function bae(e,t){let n=0,r=0;e.weight&&(n+=e.barycenter*e.weight,r+=e.weight),t.weight&&(n+=t.barycenter*t.weight,r+=t.weight),e.vs=t.vs.concat(e.vs),e.barycenter=n/r,e.weight=r,e.i=Math.min(t.i,e.i),t.merged=!0}function vae(e,t){let n=vie(e,p=>Object.hasOwn(p,"barycenter")),r=n.lhs,o=n.rhs.sort((p,h)=>h.i-p.i),i=[],a=0,l=0,u=0;r.sort(wae(!!t)),u=IE(i,o,u),r.forEach(p=>{u+=p.vs.length,i.push(p.vs),a+=p.barycenter*p.weight,l+=p.weight,u=IE(i,o,u)});let f={vs:i.flat(1)};return l&&(f.barycenter=a/l,f.weight=l),f}function IE(e,t,n){let r;for(;t.length&&(r=t[t.length-1]).i<=n;)t.pop(),e.push(r.vs),n++;return n}function wae(e){return(t,n)=>t.barycenter<n.barycenter?-1:t.barycenter>n.barycenter?1:e?n.i-t.i:t.i-n.i}function C$(e,t,n,r){let o=e.children(t),i=e.node(t),a=i?i.borderLeft:void 0,l=i?i.borderRight:void 0,u={};a&&(o=o.filter(g=>g!==a&&g!==l));let f=gae(e,o);f.forEach(g=>{if(e.children(g.v).length){let y=C$(e,g.v,n,r);u[g.v]=y,Object.hasOwn(y,"barycenter")&&kae(g,y)}});let p=xae(f,n);jae(p,u);let h=vae(p,r);if(a&&l){h.vs=[a,h.vs,l].flat(1);let g=e.predecessors(a);if(g&&g.length){let y=e.node(g[0]),k=e.predecessors(l),v=e.node(k[0]);Object.hasOwn(h,"barycenter")||(h.barycenter=0,h.weight=0),h.barycenter=(h.barycenter*h.weight+y.order+v.order)/(h.weight+2),h.weight+=2}}return h}function jae(e,t){e.forEach(n=>{n.vs=n.vs.flatMap(r=>t[r]?t[r].vs:r)})}function kae(e,t){e.barycenter!==void 0?(e.barycenter=(e.barycenter*e.weight+t.barycenter*t.weight)/(e.weight+t.weight),e.weight+=t.weight):(e.barycenter=t.barycenter,e.weight=t.weight)}function Nae(e,t,n,r){r||(r=e.nodes());let o=Sae(e),i=new _s({compound:!0}).setGraph({root:o}).setDefaultNodeLabel(a=>e.node(a));return r.forEach(a=>{let l=e.node(a),u=e.parent(a);if(l.rank===t||l.minRank<=t&&t<=l.maxRank){i.setNode(a),i.setParent(a,u||o);let f=e[n](a);f&&f.forEach(p=>{let h=p.v===a?p.w:p.v,g=i.edge(h,a),y=g!==void 0?g.weight:0;i.setEdge(h,a,{weight:e.edge(p).weight+y})}),Object.hasOwn(l,"minRank")&&i.setNode(a,{borderLeft:l.borderLeft[t],borderRight:l.borderRight[t]})}}),i}function Sae(e){let t;for(;e.hasNode(t=X0("_root")););return t}function Cae(e,t,n){let r={},o;n.forEach(i=>{let a=e.parent(i),l,u;for(;a;){if(l=e.parent(a),l?(u=r[l],r[l]=a):(u=o,o=a),u&&u!==a){t.setEdge(u,a);return}a=l}})}function E$(e,t={}){if(typeof t.customOrder=="function"){t.customOrder(e,E$);return}let n=x$(e),r=ME(e,Ad(1,n+1),"inEdges"),o=ME(e,Ad(n-1,-1,-1),"outEdges"),i=pae(e);if(LE(e,i),t.disableOptimalOrderHeuristic)return;let a=Number.POSITIVE_INFINITY,l,u=t.constraints||[];for(let f=0,p=0;p<4;++f,++p){Eae(f%2?r:o,f%4>=2,u),i=gg(e);let h=hae(e,i);h<a?(p=0,l=Object.assign({},i),a=h):h===a&&(l=structuredClone(i))}LE(e,l)}function ME(e,t,n){let r=new Map,o=(i,a)=>{r.has(i)||r.set(i,[]),r.get(i).push(a)};for(let i of e.nodes()){let a=e.node(i);if(typeof a.rank=="number"&&o(a.rank,i),typeof a.minRank=="number"&&typeof a.maxRank=="number")for(let l=a.minRank;l<=a.maxRank;l++)l!==a.rank&&o(l,i)}return t.map(function(i){return Nae(e,i,n,r.get(i)||[])})}function Eae(e,t,n){let r=new _s;e.forEach(function(o){n.forEach(l=>r.setEdge(l.left,l.right));let i=o.graph().root,a=C$(o,i,r,t);a.vs.forEach((l,u)=>o.node(l).order=u),Cae(o,r,a.vs)})}function LE(e,t){Object.values(t).forEach(n=>n.forEach((r,o)=>e.node(r).order=o))}function Tae(e,t){let n={};function r(o,i){let a=0,l=0,u=o.length,f=i[i.length-1];return i.forEach((p,h)=>{let g=Aae(e,p),y=g?e.node(g).order:u;(g||p===f)&&(i.slice(l,h+1).forEach(k=>{let v=e.predecessors(k);v&&v.forEach(b=>{let j=e.node(b),S=j.order;(S<a||y<S)&&!(j.dummy&&e.node(k).dummy)&&T$(n,b,k)})}),l=h+1,a=y)}),i}return t.length&&t.reduce(r),n}function Rae(e,t){let n={};function r(i,a,l,u,f){Ad(a,l).forEach(p=>{let h=i[p];if(h!==void 0&&e.node(h).dummy){let g=e.predecessors(h);g&&g.forEach(y=>{if(y===void 0)return;let k=e.node(y);k.dummy&&(k.order<u||k.order>f)&&T$(n,y,h)})}})}function o(i,a){let l=-1,u=-1,f=0;return a.forEach((p,h)=>{if(e.node(p).dummy==="border"){let g=e.predecessors(p);if(g&&g.length){let y=g[0];if(y===void 0)return;u=e.node(y).order,r(a,f,h,l,u),f=h,l=u}}r(a,f,a.length,u,i.length)}),a}return t.length&&t.reduce(o),n}function Aae(e,t){if(e.node(t).dummy){let n=e.predecessors(t);if(n)return n.find(r=>e.node(r).dummy)}}function T$(e,t,n){if(t>n){let o=t;t=n,n=o}let r=e[t];r||(e[t]=r={}),r[n]=!0}function Pae(e,t,n){if(t>n){let o=t;t=n,n=o}let r=e[t];return r!==void 0&&Object.hasOwn(r,n)}function _ae(e,t,n,r){let o={},i={},a={};return t.forEach(l=>{l.forEach((u,f)=>{o[u]=u,i[u]=u,a[u]=f})}),t.forEach(l=>{let u=-1;l.forEach(f=>{let p=r(f);if(p&&p.length){let h=p.sort((y,k)=>{let v=a[y],b=a[k];return(v!==void 0?v:0)-(b!==void 0?b:0)}),g=(h.length-1)/2;for(let y=Math.floor(g),k=Math.ceil(g);y<=k;++y){let v=h[y];if(v===void 0)continue;let b=a[v];if(b!==void 0&&i[f]===f&&u<b&&!Pae(n,f,v)){let j=o[v];j!==void 0&&(i[v]=f,i[f]=o[f]=j,u=b)}}}})}),{root:o,align:i}}function Dae(e,t,n,r,o=!1){let i={},a=$ae(e,t,n,o),l=o?"borderLeft":"borderRight";function u(y,k){let v=a.nodes().slice(),b={},j=v.pop();for(;j;){if(b[j])y(j);else{b[j]=!0,v.push(j);for(let S of k(j))v.push(S)}j=v.pop()}}function f(y){let k=a.inEdges(y);k?i[y]=k.reduce((v,b)=>{var j;let S=(j=i[b.v])!=null?j:0,N=a.edge(b);return Math.max(v,S+(N!==void 0?N:0))},0):i[y]=0}function p(y){let k=a.outEdges(y),v=Number.POSITIVE_INFINITY;k&&(v=k.reduce((j,S)=>{let N=i[S.w],C=a.edge(S);return Math.min(j,(N!==void 0?N:0)-(C!==void 0?C:0))},Number.POSITIVE_INFINITY));let b=e.node(y);v!==Number.POSITIVE_INFINITY&&b.borderType!==l&&(i[y]=Math.max(i[y]!==void 0?i[y]:0,v))}function h(y){return a.predecessors(y)||[]}function g(y){return a.successors(y)||[]}return u(f,h),u(p,g),Object.keys(r).forEach(y=>{var k;let v=n[y];v!==void 0&&(i[y]=(k=i[v])!=null?k:0)}),i}function $ae(e,t,n,r){let o=new _s,i=e.graph(),a=Fae(i.nodesep,i.edgesep,r);return t.forEach(l=>{let u;l.forEach(f=>{let p=n[f];if(p!==void 0){if(o.setNode(p),u!==void 0){let h=n[u];if(h!==void 0){let g=o.edge(h,p);o.setEdge(h,p,Math.max(a(e,f,u),g||0))}}u=f}})}),o}function Iae(e,t){return Object.values(t).reduce((n,r)=>{let o=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;Object.entries(r).forEach(([l,u])=>{let f=zae(e,l)/2;o=Math.max(u+f,o),i=Math.min(u-f,i)});let a=o-i;return a<n[0]&&(n=[a,r]),n},[Number.POSITIVE_INFINITY,null])[1]}function Mae(e,t){let n=Object.values(t),r=Qs(Math.min,n),o=Qs(Math.max,n);["u","d"].forEach(i=>{["l","r"].forEach(a=>{let l=i+a,u=e[l];if(!u||u===t)return;let f=Object.values(u),p=r-Qs(Math.min,f);a!=="l"&&(p=o-Qs(Math.max,f)),p&&(e[l]=xg(u,h=>h+p))})})}function Lae(e,t=void 0){let n=e.ul;return n?xg(n,(r,o)=>{var i,a;if(t){let u=t.toLowerCase(),f=e[u];if(f&&f[o]!==void 0)return f[o]}let l=Object.values(e).map(u=>{let f=u[o];return f!==void 0?f:0}).sort((u,f)=>u-f);return(((i=l[1])!=null?i:0)+((a=l[2])!=null?a:0))/2}):{}}function Oae(e){let t=gg(e),n=Object.assign(Tae(e,t),Rae(e,t)),r={},o;["u","d"].forEach(a=>{o=a==="u"?t:Object.values(t).reverse(),["l","r"].forEach(l=>{l==="r"&&(o=o.map(p=>Object.values(p).reverse()));let u=_ae(e,o,n,p=>(a==="u"?e.predecessors(p):e.successors(p))||[]),f=Dae(e,o,u.root,u.align,l==="r");l==="r"&&(f=xg(f,p=>-p)),r[a+l]=f})});let i=Iae(e,r);return Mae(r,i),Lae(r,e.graph().align)}function Fae(e,t,n){return(r,o,i)=>{let a=r.node(o),l=r.node(i),u=0,f;if(u+=a.width/2,Object.hasOwn(a,"labelpos"))switch(a.labelpos.toLowerCase()){case"l":f=-a.width/2;break;case"r":f=a.width/2;break}if(f&&(u+=n?f:-f),f=void 0,u+=(a.dummy?t:e)/2,u+=(l.dummy?t:e)/2,u+=l.width/2,Object.hasOwn(l,"labelpos"))switch(l.labelpos.toLowerCase()){case"l":f=l.width/2;break;case"r":f=-l.width/2;break}return f&&(u+=n?f:-f),u}}function zae(e,t){return e.node(t).width}function Bae(e){e=m$(e),Uae(e),Object.entries(Oae(e)).forEach(([t,n])=>e.node(t).x=n)}function Uae(e){let t=gg(e),n=e.graph(),r=n.ranksep,o=n.rankalign,i=0;t.forEach(a=>{let l=a.reduce((u,f)=>{var p;let h=(p=e.node(f).height)!=null?p:0;return u>h?u:h},0);a.forEach(u=>{let f=e.node(u);o==="top"?f.y=i+f.height/2:o==="bottom"?f.y=i+l-f.height/2:f.y=i+l/2}),i+=l+r})}function Hae(e,t={}){let n=t.debugTiming?wie:jie;return n("layout",()=>{let r=n(" buildLayoutGraph",()=>Zae(e));return n(" runLayout",()=>Vae(r,n,t)),n(" updateInputGraph",()=>Wae(e,r)),r})}function Vae(e,t,n){t(" makeSpaceForEdgeLabels",()=>ele(e)),t(" removeSelfEdges",()=>cle(e)),t(" acyclic",()=>Die(e)),t(" nestingGraph.run",()=>rae(e)),t(" rank",()=>Yie(m$(e))),t(" injectEdgeLabelProxies",()=>tle(e)),t(" removeEmptyRanks",()=>yie(e)),t(" nestingGraph.cleanup",()=>iae(e)),t(" normalizeRanks",()=>xie(e)),t(" assignRankMinMax",()=>nle(e)),t(" removeEdgeLabelProxies",()=>rle(e)),t(" normalize.run",()=>Mie(e)),t(" parentDummyChains",()=>Zie(e)),t(" addBorderSegments",()=>aae(e)),t(" order",()=>E$(e,n)),t(" insertSelfEdges",()=>ule(e)),t(" adjustCoordinateSystem",()=>cae(e)),t(" position",()=>Bae(e)),t(" positionSelfEdges",()=>dle(e)),t(" removeBorderNodes",()=>lle(e)),t(" normalize.undo",()=>Oie(e)),t(" fixupEdgeLabelCoords",()=>ile(e)),t(" undoCoordinateSystem",()=>uae(e)),t(" translateGraph",()=>sle(e)),t(" assignNodeIntersects",()=>ole(e)),t(" reversePoints",()=>ale(e)),t(" acyclic.undo",()=>Iie(e))}function Wae(e,t){e.nodes().forEach(n=>{let r=e.node(n),o=t.node(n);r&&(r.x=o.x,r.y=o.y,r.order=o.order,r.rank=o.rank,t.children(n).length&&(r.width=o.width,r.height=o.height))}),e.edges().forEach(n=>{let r=e.edge(n),o=t.edge(n);r.points=o.points,Object.hasOwn(o,"x")&&(r.x=o.x,r.y=o.y)}),e.graph().width=t.graph().width,e.graph().height=t.graph().height}var Kae=["nodesep","edgesep","ranksep","marginx","marginy"],qae={ranksep:50,edgesep:20,nodesep:50,rankdir:"TB",rankalign:"center"},Gae=["acyclicer","ranker","rankdir","align","rankalign"],Yae=["width","height","rank"],OE={width:0,height:0},Xae=["minlen","weight","width","height","labeloffset"],Qae={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},Jae=["labelpos"];function Zae(e){let t=new _s({multigraph:!0,compound:!0}),n=bb(e.graph());return t.setGraph(Object.assign({},qae,yb(n,Kae),Jh(n,Gae))),e.nodes().forEach(r=>{let o=bb(e.node(r)),i=yb(o,Yae);Object.keys(OE).forEach(l=>{i[l]===void 0&&(i[l]=OE[l])}),t.setNode(r,i);let a=e.parent(r);a!==void 0&&t.setParent(r,a)}),e.edges().forEach(r=>{let o=bb(e.edge(r));t.setEdge(r,Object.assign({},Qae,yb(o,Xae),Jh(o,Jae)))}),t}function ele(e){let t=e.graph();t.ranksep/=2,e.edges().forEach(n=>{let r=e.edge(n);r.minlen*=2,r.labelpos.toLowerCase()!=="c"&&(t.rankdir==="TB"||t.rankdir==="BT"?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function tle(e){e.edges().forEach(t=>{let n=e.edge(t);if(n.width&&n.height){let r=e.node(t.v),o={rank:(e.node(t.w).rank-r.rank)/2+r.rank,e:t};Oc(e,"edge-proxy",o,"_ep")}})}function nle(e){let t=0;e.nodes().forEach(n=>{let r=e.node(n);r.borderTop&&(r.minRank=e.node(r.borderTop).rank,r.maxRank=e.node(r.borderBottom).rank,t=Math.max(t,r.maxRank))}),e.graph().maxRank=t}function rle(e){e.nodes().forEach(t=>{let n=e.node(t);if(n.dummy==="edge-proxy"){let r=n;e.edge(r.e).labelRank=n.rank,e.removeNode(t)}})}function sle(e){let t=Number.POSITIVE_INFINITY,n=0,r=Number.POSITIVE_INFINITY,o=0,i=e.graph(),a=i.marginx||0,l=i.marginy||0;function u(f){let p=f.x,h=f.y,g=f.width,y=f.height;t=Math.min(t,p-g/2),n=Math.max(n,p+g/2),r=Math.min(r,h-y/2),o=Math.max(o,h+y/2)}e.nodes().forEach(f=>u(e.node(f))),e.edges().forEach(f=>{let p=e.edge(f);Object.hasOwn(p,"x")&&u(p)}),t-=a,r-=l,e.nodes().forEach(f=>{let p=e.node(f);p.x-=t,p.y-=r}),e.edges().forEach(f=>{let p=e.edge(f);p.points.forEach(h=>{h.x-=t,h.y-=r}),Object.hasOwn(p,"x")&&(p.x-=t),Object.hasOwn(p,"y")&&(p.y-=r)}),i.width=n-t+a,i.height=o-r+l}function ole(e){e.edges().forEach(t=>{let n=e.edge(t),r=e.node(t.v),o=e.node(t.w),i,a;n.points?(i=n.points[0],a=n.points[n.points.length-1]):(n.points=[],i=o,a=r),n.points.unshift(TE(r,i)),n.points.push(TE(o,a))})}function ile(e){e.edges().forEach(t=>{let n=e.edge(t);if(Object.hasOwn(n,"x"))switch((n.labelpos==="l"||n.labelpos==="r")&&(n.width-=n.labeloffset),n.labelpos){case"l":n.x-=n.width/2+n.labeloffset;break;case"r":n.x+=n.width/2+n.labeloffset;break}})}function ale(e){e.edges().forEach(t=>{let n=e.edge(t);n.reversed&&n.points.reverse()})}function lle(e){e.nodes().forEach(t=>{if(e.children(t).length){let n=e.node(t),r=e.node(n.borderTop),o=e.node(n.borderBottom),i=e.node(n.borderLeft[n.borderLeft.length-1]),a=e.node(n.borderRight[n.borderRight.length-1]);n.width=Math.abs(a.x-i.x),n.height=Math.abs(o.y-r.y),n.x=i.x+n.width/2,n.y=r.y+n.height/2}}),e.nodes().forEach(t=>{e.node(t).dummy==="border"&&e.removeNode(t)})}function cle(e){e.edges().forEach(t=>{if(t.v===t.w){let n=e.node(t.v);n.selfEdges||(n.selfEdges=[]),n.selfEdges.push({e:t,label:e.edge(t)}),e.removeEdge(t)}})}function ule(e){gg(e).forEach(t=>{let n=0;t.forEach((r,o)=>{let i=e.node(r);i.order=o+n,(i.selfEdges||[]).forEach(a=>{Oc(e,"selfedge",{width:a.label.width,height:a.label.height,rank:i.rank,order:o+ ++n,e:a.e,label:a.label},"_se")}),delete i.selfEdges})})}function dle(e){e.nodes().forEach(t=>{let n=e.node(t);if(n.dummy==="selfedge"){let r=n,o=e.node(r.e.v),i=o.x+o.width/2,a=o.y,l=n.x-i,u=o.height/2;e.setEdge(r.e,r.label),e.removeNode(t),r.label.points=[{x:i+2*l/3,y:a-u},{x:i+5*l/6,y:a-u},{x:i+l,y:a},{x:i+5*l/6,y:a+u},{x:i+2*l/3,y:a+u}],r.label.x=n.x,r.label.y=n.y}})}function yb(e,t){return xg(Jh(e,t),Number)}function bb(e){let t={};return e&&Object.entries(e).forEach(([n,r])=>{typeof n=="string"&&(n=n.toLowerCase()),t[n]=r}),t}/*! For license information please see dagre.esm.js.LEGAL.txt */function fle(e,t,n={}){const r=new Map;if(e.length===0)return r;const o=n.nodeWidth??150,i=n.nodeHeight??64,a=new i$.Graph;a.setGraph({rankdir:n.direction??"LR",nodesep:n.nodeSep??64,ranksep:n.rankSep??160}),a.setDefaultEdgeLabel(()=>({}));const l=new Set;for(const u of e)l.add(u.id),a.setNode(u.id,{width:o,height:i});for(const u of t)l.has(u.from)&&l.has(u.to)&&a.setEdge(u.from,u.to);Hae(a);for(const u of l){const f=a.node(u);f&&r.set(u,{x:f.x-o/2,y:f.y-i/2})}return r}function R$(e){const t=new Map;return e.forEach((n,r)=>{t.has(n.id)||t.set(n.id,r)}),t}const ple=new Set(["fail","block"]),hle=new Set(["reopen","unblock"]);function A$(e,t){if(ple.has(e.command))return"exception";if(hle.has(e.command))return"recovery";const n=t.get(e.from),r=t.get(e.to);return n!=null&&r!=null&&r<n?"recovery":"forward"}function mle(e,t){const n=R$(t);return e.filter(r=>A$(r,n)!=="recovery").map(r=>({from:r.from,to:r.to}))}function gle(e){const t=[],n=new Map;for(const r of e){const o=`${r.from}>${r.to}`;let i=n.get(o);i||(i={from:r.from,to:r.to,commands:[]},n.set(o,i),t.push(i)),i.commands.push({rowKey:r.rowKey,command:r.command,requiresReason:r.requiresReason,undefinedRef:r.undefinedRef})}return t}function xle(e,t){const n=new Set([e]),r=new Set;for(const o of t)(o.from===e||o.to===e)&&(n.add(o.from),n.add(o.to),r.add(o.rowKey));return{nodeIds:n,edgeKeys:r}}function yle({data:e,selected:t}){const{label:n,statusId:r,color:o,terminal:i,orphan:a,missing:l,dimmed:u}=e;return s.jsxs("div",{className:we("min-w-[120px] rounded-md border px-3 py-2 text-xs shadow-sm transition-[opacity,box-shadow]",l?"border-dashed border-error-foreground/60 bg-error/10 text-error-foreground":a?"border-warning-foreground/70 bg-warning/10":"border-border/70 bg-card",t&&"ring-2 ring-primary/50",u&&"opacity-25"),children:[s.jsx(pc,{type:"target",position:ct.Left,className:"!h-2 !w-2 !bg-muted-foreground"}),s.jsxs("div",{className:"flex items-center gap-1.5",children:[!l&&s.jsx("span",{className:"inline-block h-2.5 w-2.5 shrink-0 rounded-full border border-border/50",style:o?{backgroundColor:o}:void 0}),s.jsx("span",{className:"font-medium text-foreground",children:n}),l&&s.jsx(m2,{className:"h-3 w-3 shrink-0","aria-label":"Undefined status"}),a&&!l&&s.jsx(wc,{className:"h-3 w-3 shrink-0 text-warning-foreground","aria-label":"Orphan status"})]}),s.jsxs("div",{className:"mt-0.5 flex items-center gap-1 font-mono text-[10px] text-muted-foreground",children:[s.jsx("span",{children:r}),i&&s.jsxs("span",{className:"inline-flex items-center gap-0.5 text-muted-foreground",title:"Terminal status",children:[s.jsx(v4,{className:"h-2.5 w-2.5"})," terminal"]})]}),l&&s.jsx("div",{className:"mt-1 text-[10px] font-medium",children:"undefined status"}),a&&!l&&s.jsx("div",{className:"mt-1 text-[10px] text-warning-foreground",children:"no incoming edge"}),s.jsx(pc,{type:"source",position:ct.Right,className:"!h-2 !w-2 !bg-muted-foreground"})]})}function Vs(e,t,n){return t?"oklch(var(--error-foreground))":n?"oklch(var(--primary))":e==="exception"?"oklch(var(--warning-foreground))":"oklch(var(--muted-foreground))"}function ble({id:e,sourceX:t,sourceY:n,targetX:r,targetY:o,sourcePosition:i,targetPosition:a,data:l}){const u=l,[f,p,h]=U0({sourceX:t,sourceY:n,sourcePosition:i,targetX:r,targetY:o,targetPosition:a}),g=Vs(u.edgeClass,u.undefinedRef,u.selected),y=u.edgeClass==="recovery",k=`arrow-${u.edgeClass}${u.undefinedRef?"-undef":u.selected?"-sel":""}`,v=r-t,b=o-n,j=Math.hypot(v,b)||1,S=u.from<u.to?1:-1,N=p+-b/j*16*S,C=h+v/j*16*S;return s.jsxs(s.Fragment,{children:[s.jsx(of,{id:e,path:f,markerEnd:`url(#${k})`,style:{stroke:g,strokeWidth:u.selected?2.5:1.5,strokeDasharray:y?"6 4":void 0,opacity:u.dimmed?.18:1}}),u.showChips&&s.jsx(poe,{children:s.jsx("div",{style:{position:"absolute",transform:`translate(-50%, -50%) translate(${N}px, ${C}px)`,pointerEvents:"all"},className:"flex flex-col items-center gap-0.5",children:u.commands.map(P=>{const T=P.rowKey===u.selectedRowKey;return s.jsxs("button",{type:"button",onClick:R=>{R.stopPropagation(),u.onSelectCommand(P.rowKey)},"aria-label":`Edit transition command ${P.command}`,className:we("rounded border px-1 py-0.5 font-mono text-[10px] leading-none shadow-sm transition-colors",P.undefinedRef?"border-error-foreground/70 bg-error/10 text-error-foreground":T?"border-primary bg-primary/10 text-primary":"border-border/60 bg-card text-foreground hover:border-primary/60"),children:[P.command,P.requiresReason?" ⓡ":""]},P.rowKey)})})})]})}const vle={status:yle},wle={transition:ble};function jle(){const e=[{id:"arrow-forward",color:Vs("forward",!1,!1)},{id:"arrow-exception",color:Vs("exception",!1,!1)},{id:"arrow-recovery",color:Vs("recovery",!1,!1)},{id:"arrow-forward-undef",color:Vs("forward",!0,!1)},{id:"arrow-exception-undef",color:Vs("exception",!0,!1)},{id:"arrow-recovery-undef",color:Vs("recovery",!0,!1)},{id:"arrow-forward-sel",color:Vs("forward",!1,!0)},{id:"arrow-exception-sel",color:Vs("exception",!1,!0)},{id:"arrow-recovery-sel",color:Vs("recovery",!1,!0)}];return s.jsx("svg",{style:{position:"absolute",width:0,height:0},"aria-hidden":!0,children:s.jsx("defs",{children:e.map(({id:t,color:n})=>s.jsx("marker",{id:t,viewBox:"0 0 10 10",refX:"8",refY:"5",markerWidth:"6",markerHeight:"6",orient:"auto-start-reverse",children:s.jsx("path",{d:"M 0 0 L 10 5 L 0 10 z",fill:n})},t))})})}function kle({onRelayout:e}){const{fitView:t}=hg();return s.jsx(sf,{position:"top-right",children:s.jsxs("button",{type:"button",onClick:()=>{e(),requestAnimationFrame(()=>t({padding:.2}))},className:"shell-action inline-flex items-center gap-1 text-xs",title:"Reset node positions to the automatic layout",children:[s.jsx(S4,{className:"h-3 w-3"}),"Re-layout"]})})}function Nle(e,t,n,r){let o=!1;for(const i of e){const a=A$({from:t,to:n,command:i.command},r);if(a==="exception")return"exception";a==="recovery"&&(o=!0)}return o?"recovery":"forward"}function Sle({nodes:e,edges:t,statuses:n,selectedRowKey:r,focusNodeId:o,editable:i,onSelectEdge:a,onFocusNode:l,onCreateEdge:u,onDeleteEdge:f}){const[p,h,g]=hoe([]),[y,k]=moe([]),v=m.useRef(new Map),[b,j]=m.useState(0),[S,N]=m.useState(null),[C,P]=m.useState(null),T=m.useRef(null),R=m.useRef(null);m.useEffect(()=>{const B=T.current;if(!B||typeof ResizeObserver>"u")return;let Q=0;const J=new ResizeObserver(()=>{cancelAnimationFrame(Q),Q=requestAnimationFrame(()=>{var Z;return(Z=R.current)==null?void 0:Z.fitView({padding:.2})})});return J.observe(B),()=>{J.disconnect(),cancelAnimationFrame(Q)}},[]);const I=m.useMemo(()=>R$(n),[n]),_=m.useMemo(()=>gle(t),[t]),F=o??S,D=m.useMemo(()=>F?xle(F,t):null,[F,t]),W=m.useMemo(()=>JSON.stringify(e.map(B=>[B.id,B.label,B.color??"",B.terminal,B.orphan,B.missing])),[e]);m.useEffect(()=>{const B=fle(e,mle(t,n),{direction:"LR"}),Q=new Set(e.map(J=>J.id));for(const J of v.current.keys())Q.has(J)||v.current.delete(J);h(e.map(J=>{let Z=v.current.get(J.id);return Z||(Z=B.get(J.id)??{x:0,y:0},v.current.set(J.id,Z)),{id:J.id,type:"status",position:Z,data:{label:J.label,statusId:J.id,color:J.color,terminal:J.terminal,orphan:J.orphan,missing:J.missing,dimmed:!1},draggable:!0,deletable:!1}}))},[W,b,h]),m.useEffect(()=>{h(B=>B.map(Q=>{const J=D?!D.nodeIds.has(Q.id):!1;return Q.data.dimmed===J?Q:{...Q,data:{...Q.data,dimmed:J}}}))},[D,h]);const V=m.useCallback(()=>{v.current.clear(),j(B=>B+1)},[]),$=m.useCallback(B=>a(B),[a]),O=m.useMemo(()=>_.map(B=>`${B.from}>${B.to}:${B.commands.map(Q=>`${Q.rowKey}/${Q.command}/${Q.requiresReason?1:0}/${Q.undefinedRef?1:0}`).join(",")}`).join("|"),[_]);m.useEffect(()=>{k(_.map(B=>{const Q=`${B.from}>${B.to}`,J=B.commands.map(Se=>Se.rowKey),Z=B.commands.some(Se=>Se.undefinedRef),oe=Nle(B.commands,B.from,B.to,I),ne=r!=null&&J.includes(r),ue=D?J.some(Se=>D.edgeKeys.has(Se)):!1,ge=D?!ue:!1,Ce=ne||ue||C===Q;return{id:Q,source:B.from,target:B.to,type:"transition",selected:ne,deletable:i,data:{from:B.from,to:B.to,commands:B.commands,edgeClass:oe,undefinedRef:Z,selected:ne,dimmed:ge,showChips:Ce,selectedRowKey:r,onSelectCommand:$}}}))},[O,r,D,C,i,I,k,$]);const U=m.useCallback(B=>{for(const Q of B)Q.type==="position"&&Q.position&&v.current.set(Q.id,Q.position);g(B)},[g]),K=m.useCallback(B=>{i&&B.source&&B.target&&u(B.source,B.target)},[i,u]),M=m.useCallback(B=>{if(!i)return;const Q=[];for(const J of B){const Z=J.data.commands;r&&Z.some(oe=>oe.rowKey===r)?Q.push(r):Q.push(...Z.map(oe=>oe.rowKey))}Q.length&&f(Q)},[i,f,r]),H=m.useCallback((B,Q)=>{const J=Q.data.commands[0];J&&a(J.rowKey)},[a]),L=m.useCallback(({edges:B})=>{if(B.length!==1)return;const Q=B[0].data.commands;if(r&&Q.some(Z=>Z.rowKey===r))return;const J=Q[0];J&&a(J.rowKey)},[a,r]),z=m.useCallback((B,Q)=>l(o===Q.id?null:Q.id),[o,l]),Y=m.useCallback(()=>l(null),[l]);return s.jsxs("div",{ref:T,className:"relative h-full min-h-[420px] w-full overflow-hidden rounded-md border border-border/60 bg-background",children:[s.jsx(jle,{}),s.jsxs(doe,{onInit:B=>{R.current=B},nodes:p,edges:y,nodeTypes:vle,edgeTypes:wle,onNodesChange:U,onConnect:K,onEdgesDelete:M,onEdgeClick:H,onSelectionChange:L,onEdgeMouseEnter:(B,Q)=>P(Q.id),onEdgeMouseLeave:()=>P(null),onNodeClick:z,onNodeMouseEnter:(B,Q)=>N(Q.id),onNodeMouseLeave:()=>N(null),onPaneClick:Y,nodesConnectable:i,deleteKeyCode:i?["Backspace","Delete"]:null,elementsSelectable:!0,fitView:!0,fitViewOptions:{padding:.2},proOptions:{hideAttribution:!1},children:[s.jsx(voe,{gap:16}),s.jsx(Eoe,{showInteractive:!1}),s.jsx(kle,{onRelayout:V})]})]})}const mc="rounded-md border border-border/60 bg-background px-2 py-1 text-sm focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/30 disabled:opacity-60";function Zh({value:e,onChange:t,statuses:n,ariaLabel:r,disabled:o,className:i,inputRef:a}){const l=n.some(u=>u.id===e);return s.jsxs("select",{ref:a,value:e,onChange:u=>t(u.target.value),disabled:o,"aria-label":r,className:we(mc,"font-mono",i),children:[!l&&e!==""&&s.jsxs("option",{value:e,children:[e," (undefined)"]}),e===""&&s.jsx("option",{value:"",children:"Select a status…"}),n.map(u=>s.jsxs("option",{value:u.id,children:[u.label," (",u.id,")"]},u.id))]})}function P$({id:e,commands:t}){return s.jsx("datalist",{id:e,children:t.map(n=>s.jsx("option",{value:n},n))})}function _$({value:e,onChange:t,listId:n,ariaLabel:r="Command",disabled:o,className:i}){return s.jsx("input",{type:"text",list:n,value:e,onChange:a=>t(a.target.value),disabled:o,placeholder:"command","aria-label":r,className:we(mc,"font-mono",i)})}function D$({checked:e,onChange:t,disabled:n,ariaLabel:r="Requires reason"}){return s.jsx("button",{type:"button",role:"switch","aria-checked":e,"aria-label":r,onClick:()=>t(!e),disabled:n,className:we("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?"bg-primary":"bg-muted"),children:s.jsx("span",{className:we("pointer-events-none inline-block h-4 w-4 rounded-full bg-background shadow-sm transition-transform",e?"translate-x-4":"translate-x-0")})})}const FE="transitions-table-commands";function Cle({value:e,statuses:t,knownCommands:n,selectedRowKey:r,editable:o,issuesByRowKey:i,onChange:a,onSelectRow:l,disabled:u}){var S;const[f,p]=m.useState(new Set),h=PJ(e),g=((S=t[0])==null?void 0:S.id)??"",y=!o||u;function k(N){a(e.map(C=>C.rowKey===N.rowKey?N:C))}function v(N){a(e.filter(C=>C.rowKey!==N))}function b(N){const C={rowKey:A0(),from:N||g,command:n[0]??"",to:g,label:"",description:"",requiresReason:!1};a([...e,C]),l(C.rowKey),p(P=>new Set(P).add(C.rowKey))}function j(N){p(C=>{const P=new Set(C);return P.has(N)?P.delete(N):P.add(N),P})}return e.length===0?s.jsxs("div",{className:"space-y-3",children:[s.jsx("p",{className:"surface-panel px-4 py-6 text-center text-sm text-muted-foreground",children:"No transitions defined yet."}),o&&!u&&s.jsxs("button",{type:"button",onClick:()=>b(g),disabled:t.length===0,className:"shell-action text-xs inline-flex items-center gap-1 disabled:opacity-50",children:[s.jsx(Pt,{className:"h-3 w-3"}),"Add transition"]})]}):s.jsxs("div",{className:"space-y-4",children:[h.map(N=>{const C=t.find(P=>P.id===N.from);return s.jsxs("div",{className:"space-y-2",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsxs("div",{className:"flex items-center gap-2 text-xs font-medium text-muted-foreground",children:[s.jsx("span",{className:"inline-block h-2.5 w-2.5 shrink-0 rounded-full border border-border/50",style:C!=null&&C.color?{backgroundColor:C.color}:void 0}),s.jsx("span",{className:"text-foreground",children:(C==null?void 0:C.label)??N.from}),s.jsx("span",{className:"font-mono text-[10px] text-muted-foreground",children:N.from})]}),!y&&s.jsxs("button",{type:"button",onClick:()=>b(N.from),className:"inline-flex items-center gap-1 rounded-md px-1.5 py-0.5 text-[11px] text-muted-foreground hover:bg-muted hover:text-foreground","aria-label":`Add transition from ${N.from}`,children:[s.jsx(Pt,{className:"h-3 w-3"}),"Add"]})]}),s.jsx("div",{className:"space-y-2",children:N.rows.map(P=>{const T=i.get(P.rowKey)??[],R=f.has(P.rowKey),I=P.rowKey===r;return s.jsxs("div",{onClick:()=>l(P.rowKey),className:we("surface-panel px-3 py-2 transition-colors",I&&"ring-2 ring-primary/50"),children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsx("button",{type:"button",onClick:_=>{_.stopPropagation(),j(P.rowKey)},"aria-label":R?"Collapse row":"Expand row (label & description)","aria-expanded":R,className:"text-muted-foreground/60 hover:text-muted-foreground",children:R?s.jsx(nr,{className:"h-4 w-4"}):s.jsx(Wv,{className:"h-4 w-4"})}),s.jsx(Zh,{value:P.from,onChange:_=>k({...P,from:_}),statuses:t,ariaLabel:"From status",disabled:y,className:"min-w-[8rem] flex-1"}),s.jsx("span",{className:"text-muted-foreground","aria-hidden":!0,children:"—"}),s.jsx(_$,{value:P.command,onChange:_=>k({...P,command:_}),listId:FE,disabled:y,className:"min-w-[7rem] flex-1"}),s.jsx("span",{className:"text-muted-foreground","aria-hidden":!0,children:"→"}),s.jsx(Zh,{value:P.to,onChange:_=>k({...P,to:_}),statuses:t,ariaLabel:"To status",disabled:y,className:"min-w-[8rem] flex-1"}),s.jsxs("label",{className:"flex items-center gap-1.5 text-[11px] text-muted-foreground",onClick:_=>_.stopPropagation(),children:[s.jsx(D$,{checked:P.requiresReason,onChange:_=>k({...P,requiresReason:_}),disabled:y}),"reason"]}),T.length>0&&s.jsx("span",{className:"inline-flex items-center text-warning-foreground",title:T.map(_=>_.message).join(`
|
|
670
|
-
`),"aria-label":`${T.length} issue${T.length>1?"s":""}`,children:s.jsx(wc,{className:"h-3.5 w-3.5"})}),!y&&s.jsx("button",{type:"button",onClick:_=>{_.stopPropagation(),v(P.rowKey)},className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-muted-foreground hover:bg-error/10 hover:text-error-foreground","aria-label":"Remove transition",children:s.jsx(mn,{className:"h-3.5 w-3.5"})})]}),R&&s.jsxs("div",{className:"mt-2 grid gap-2 pl-6 sm:grid-cols-2",onClick:_=>_.stopPropagation(),children:[s.jsxs("label",{className:"block space-y-1",children:[s.jsx("span",{className:"text-[11px] font-medium text-muted-foreground",children:"Label (optional)"}),s.jsx("input",{type:"text",value:P.label,onChange:_=>k({...P,label:_.target.value}),disabled:y,placeholder:"label",className:we(mc,"w-full")})]}),s.jsxs("label",{className:"block space-y-1",children:[s.jsx("span",{className:"text-[11px] font-medium text-muted-foreground",children:"Description (optional)"}),s.jsx("input",{type:"text",value:P.description,onChange:_=>k({...P,description:_.target.value}),disabled:y,placeholder:"description",className:we(mc,"w-full")})]})]})]},P.rowKey)})})]},N.from)}),o&&!u&&s.jsxs("button",{type:"button",onClick:()=>b(g),disabled:t.length===0,className:"shell-action text-xs inline-flex items-center gap-1 disabled:opacity-50",children:[s.jsx(Pt,{className:"h-3 w-3"}),"Add transition"]}),s.jsx(P$,{id:FE,commands:n})]})}const zE="transition-inspector-commands";function Ele({transition:e,statuses:t,knownCommands:n,onChange:r,onDelete:o,disabled:i}){const a=m.useRef(null);if(m.useEffect(()=>{var g;e&&!i&&((g=a.current)==null||g.focus())},[e==null?void 0:e.rowKey]),!e)return s.jsx("div",{className:"surface-panel flex h-full min-h-[120px] items-center justify-center px-4 py-6 text-center text-xs text-muted-foreground",children:"Select a transition edge to edit it, or use “Add transition”."});const l=e,u=new Set(t.map(g=>g.id)),f=!u.has(l.from),p=!u.has(l.to);function h(g){r({...l,...g})}return s.jsxs("div",{className:"surface-panel space-y-3 px-4 py-3",children:[s.jsxs("div",{className:"flex items-center justify-between",children:[s.jsx("h4",{className:"text-sm font-semibold text-foreground",children:"Edit transition"}),s.jsxs("button",{type:"button",onClick:()=>o(l.rowKey),disabled:i,className:"inline-flex items-center gap-1 rounded-md px-2 py-1 text-xs text-error-foreground hover:bg-error/10","aria-label":"Delete transition",children:[s.jsx(mn,{className:"h-3.5 w-3.5"}),"Delete"]})]}),s.jsxs("label",{className:"block space-y-1",children:[s.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"From status"}),s.jsx(Zh,{value:l.from,onChange:g=>h({from:g}),statuses:t,ariaLabel:"From status",disabled:i,inputRef:a,className:"w-full"}),f&&s.jsxs("span",{className:"block text-[11px] text-error-foreground",children:["“",l.from,"” is not a defined status"]})]}),s.jsxs("label",{className:"block space-y-1",children:[s.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Command"}),s.jsx(_$,{value:l.command,onChange:g=>h({command:g}),listId:zE,disabled:i,className:"w-full"})]}),s.jsxs("label",{className:"block space-y-1",children:[s.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"To status"}),s.jsx(Zh,{value:l.to,onChange:g=>h({to:g}),statuses:t,ariaLabel:"To status",disabled:i,className:"w-full"}),p&&s.jsxs("span",{className:"block text-[11px] text-error-foreground",children:["“",l.to,"” is not a defined status"]})]}),s.jsxs("label",{className:"block space-y-1",children:[s.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Label (optional)"}),s.jsx("input",{type:"text",value:l.label,onChange:g=>h({label:g.target.value}),disabled:i,placeholder:"label",className:`${mc} w-full`})]}),s.jsxs("label",{className:"block space-y-1",children:[s.jsx("span",{className:"text-xs font-medium text-muted-foreground",children:"Description (optional)"}),s.jsx("textarea",{value:l.description,onChange:g=>h({description:g.target.value}),disabled:i,placeholder:"description",rows:2,className:`${mc} w-full resize-y`})]}),s.jsxs("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[s.jsx(D$,{checked:l.requiresReason,onChange:g=>h({requiresReason:g}),disabled:i}),"Requires a reason"]}),s.jsx(P$,{id:zE,commands:n})]})}function Tle({value:e,onChange:t}){const n=[{id:"table",label:"Table",Icon:W4},{id:"graph",label:"Graph",Icon:N2}];return s.jsx("div",{role:"tablist","aria-label":"Transitions view",className:"inline-flex rounded-md border border-border/70 bg-card/80 p-0.5",children:n.map(({id:r,label:o,Icon:i})=>{const a=e===r;return s.jsxs("button",{type:"button",role:"tab","aria-selected":a,onClick:()=>t(r),className:we("inline-flex items-center gap-1.5 rounded px-2.5 py-1 text-xs transition-colors",a?"bg-primary/10 text-primary":"text-muted-foreground hover:text-foreground"),children:[s.jsx(i,{className:"h-3.5 w-3.5"}),o]},r)})})}function Rle(){return s.jsxs("div",{className:"flex flex-wrap items-center gap-x-4 gap-y-1 text-[11px] text-muted-foreground",children:[s.jsxs("span",{className:"inline-flex items-center gap-1",children:[s.jsx("span",{className:"inline-block h-0.5 w-4 rounded bg-muted-foreground"}),"forward"]}),s.jsxs("span",{className:"inline-flex items-center gap-1",children:[s.jsx("span",{className:"inline-block h-0.5 w-4 rounded",style:{backgroundColor:"oklch(var(--warning-foreground))"}}),"exception (fail / block)"]}),s.jsxs("span",{className:"inline-flex items-center gap-1",children:[s.jsx("span",{className:"inline-block h-0 w-4 border-t border-dashed border-muted-foreground"}),"recovery (reopen / unblock)"]}),s.jsxs("span",{className:"inline-flex items-center gap-1",children:[s.jsx("span",{className:"inline-block h-0.5 w-4 rounded",style:{backgroundColor:"oklch(var(--error-foreground))"}}),"undefined status"]})]})}function Ale({issues:e,open:t,onToggle:n,onNavigate:r}){return e.length===0?null:s.jsxs("div",{className:"relative",children:[s.jsxs("button",{type:"button",onClick:n,"aria-expanded":t,className:"inline-flex items-center gap-1 rounded-md border border-warning-foreground/40 bg-warning/10 px-2 py-1 text-xs text-warning-foreground",children:[s.jsx(wc,{className:"h-3.5 w-3.5"}),e.length," issue",e.length>1?"s":""]}),t&&s.jsx("div",{className:"absolute right-0 z-20 mt-1 w-80 rounded-md border border-border/70 bg-card p-2 shadow-lg",children:s.jsx("ul",{className:"max-h-64 space-y-1 overflow-auto text-xs",children:e.map((o,i)=>s.jsx("li",{children:s.jsx("button",{type:"button",onClick:()=>r(o),className:"block w-full rounded px-2 py-1 text-left text-muted-foreground hover:bg-muted hover:text-foreground",children:o.message})},i))})})]})}function Ple({value:e,customizing:t,statuses:n,knownCommands:r,onChange:o,onCustomize:i,disabled:a}){var K;const l=m.useMemo(()=>new Set(n.map(M=>M.id)),[n]),[u,f]=m.useState(null),[p,h]=m.useState("table"),[g,y]=m.useState(null),[k,v]=m.useState(!1),[b,j]=m.useState(!1);m.useEffect(()=>{if(!b)return;const M=H=>{H.key==="Escape"&&j(!1)};return window.addEventListener("keydown",M),()=>window.removeEventListener("keydown",M)},[b]);const S=m.useMemo(()=>jv(g3()),[]),N=!t&&e.length===0,C=N?S:e,P=!N,T=m.useMemo(()=>DJ(C,n),[C,n]),R=m.useMemo(()=>$J(C,n),[C,n]),I=m.useMemo(()=>{const M=new Map;for(const H of R){if(!H.rowKey)continue;const L=M.get(H.rowKey);L?L.push(H):M.set(H.rowKey,[H])}return M},[R]),_=P&&t?x3(e,l):[],F=e.find(M=>M.rowKey===u)??null,D=((K=n[0])==null?void 0:K.id)??"";function W(M){o(e.map(H=>H.rowKey===M.rowKey?M:H))}function V(M){const H=new Set(M);o(e.filter(L=>!H.has(L.rowKey))),u&&H.has(u)&&f(null)}function $(M,H){const L={rowKey:A0(),from:M,command:r[0]??"",to:H,label:"",description:"",requiresReason:!1};o([...e,L]),f(L.rowKey)}function O(M){v(!1),M.rowKey?f(M.rowKey):M.statusId&&(h("graph"),y(M.statusId))}const U=N?"Which commands move an assignment between statuses, as a state-machine graph. Showing the built-in defaults.":"Statuses are nodes; commands are labeled directed edges. Edit transitions in the table, or drag node-to-node in the graph.";return s.jsxs(We,{title:"Transitions",description:U,actions:s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsx(Tle,{value:p,onChange:h}),s.jsx(Ale,{issues:R,open:k,onToggle:()=>v(M=>!M),onNavigate:O}),p==="graph"&&s.jsxs("button",{type:"button",onClick:()=>j(M=>!M),"aria-pressed":b,title:b?"Exit fullscreen":"Fullscreen",className:"shell-action text-xs inline-flex items-center gap-1",children:[b?s.jsx(A1,{className:"h-3 w-3"}):s.jsx(v2,{className:"h-3 w-3"}),b?"Exit":"Fullscreen"]}),N?s.jsx("button",{type:"button",onClick:i,disabled:a,className:"shell-action text-xs",children:"Customize defaults"}):p==="graph"&&s.jsxs("button",{type:"button",onClick:()=>$(D,D),disabled:a||n.length===0,className:"shell-action text-xs inline-flex items-center gap-1 disabled:opacity-50",children:[s.jsx(Pt,{className:"h-3 w-3"}),"Add transition"]})]}),children:[_.length>0&&s.jsxs("div",{className:"mb-3 rounded-md border border-error-foreground/30 bg-error/10 px-3 py-2 text-xs text-error-foreground",children:[s.jsx("p",{className:"font-medium",children:"These transitions won't save until fixed:"}),s.jsx("ul",{className:"mt-1 list-disc space-y-0.5 pl-4",children:_.map((M,H)=>s.jsx("li",{children:M},H))})]}),p==="table"?s.jsx(Cle,{value:C,statuses:n,knownCommands:r,selectedRowKey:u,editable:P,issuesByRowKey:I,onChange:o,onSelectRow:f,disabled:a}):s.jsxs("div",{className:we(b?"fixed inset-0 z-50 flex flex-col gap-2 bg-background p-4":"space-y-3"),children:[s.jsxs("div",{className:"flex items-center justify-between gap-2",children:[s.jsx(Rle,{}),b&&s.jsxs("button",{type:"button",onClick:()=>j(!1),className:"shell-action text-xs inline-flex items-center gap-1",children:[s.jsx(A1,{className:"h-3 w-3"}),"Exit fullscreen"]})]}),s.jsxs("div",{className:we("relative w-full",b?"min-h-0 flex-1":"h-[72vh] min-h-[520px]"),children:[s.jsx(Sle,{nodes:T.nodes,edges:T.edges,statuses:n,selectedRowKey:u,focusNodeId:g,editable:P&&!a,onSelectEdge:f,onFocusNode:y,onCreateEdge:$,onDeleteEdge:V}),P&&F&&s.jsx("div",{className:"absolute right-3 top-3 z-10 w-80 max-w-[calc(100%-1.5rem)]",children:s.jsxs("div",{className:"relative",children:[s.jsx("button",{type:"button",onClick:()=>f(null),"aria-label":"Close inspector",className:"absolute -right-1 -top-1 z-10 inline-flex h-6 w-6 items-center justify-center rounded-full border border-border/70 bg-card text-muted-foreground shadow hover:text-foreground",children:s.jsx(jc,{className:"h-3.5 w-3.5"})}),s.jsx(Ele,{transition:F,statuses:n,knownCommands:r,onChange:W,onDelete:M=>V([M]),disabled:a})]})})]})]})]})}function _le(e){const t=[];e.transitions>0&&t.push({tab:"Transitions",count:e.transitions}),e.derive>0&&t.push({tab:"Derive Rules",count:e.derive}),e.facts>0&&t.push({tab:"Facts",count:e.facts});const n=e.transitions+e.derive+e.facts,r=n===0?"Unsaved changes":`Fix errors in ${t.map(o=>o.tab).join(", ")} to save`;return{total:n,offending:t,message:r}}function Dle(){var pt;const[e,t]=m.useState(!0),[n,r]=m.useState(null),[o,i]=m.useState(!1),[a,l]=m.useState([]),[u,f]=m.useState(!1),[p,h]=m.useState(null),[g,y]=m.useState(!1),[k,v]=m.useState(new Set),[b,j]=m.useState(new Map),[S,N]=m.useState({open:!1}),[C,P]=m.useState([]),[T,R]=m.useState([]),[I,_]=m.useState({open:!1}),[F,D]=m.useState(()=>eb(Vp)),[W,V]=m.useState(!1),[$,O]=m.useState(!1),[U,K]=m.useState(!1),[M,H]=m.useState([]),[L,z]=m.useState(!1),[Y,B]=m.useState([]),[Q,J]=m.useState("statuses"),Z=m.useCallback(_e=>{const Qe=iJ(_e);l(Qe),i(_e.custom),v(new Set(Qe.map(Je=>Je.id))),j(new Map),P(_e.rawFacts??[]),R([]),D(eb(_e.derive??Vp)),V(_e.deriveCustom??!1),O(!1),K(!1),H(jv(_e.transitions??[])),z(_e.transitionsCustom??!1),B(_e.knownCommands??[]),y(!1)},[]),oe=m.useCallback(async()=>{try{const _e=await fetch("/api/config/statuses");if(!_e.ok)throw new Error(`HTTP ${_e.status}`);const Qe=await _e.json();Z(Qe),r(null)}catch(_e){r(_e instanceof Error?_e.message:"Failed to load config")}finally{t(!1)}},[Z]);m.useEffect(()=>{oe()},[oe]);function ne(){setTimeout(()=>h(null),3e3)}const ue=m.useMemo(()=>a.map(_e=>({id:_e.id,label:_e.label,color:_e.color,terminal:_e.terminal})),[a]),ge=m.useMemo(()=>new Set(a.map(_e=>_e.id)),[a]),Ce=m.useMemo(()=>wJ(C),[C]),Se=m.useMemo(()=>qw(Ce),[Ce]),ke=m.useMemo(()=>aJ(C),[C]),Be=m.useMemo(()=>{try{return m3(wv(F),a,Se)}catch{return["derive rules are malformed"]}},[F,a,Se]),ie=m.useMemo(()=>L?x3(M,ge):[],[M,L,ge]),ve=ke.length+Be.length+ie.length,be=m.useCallback(_e=>{P(_e),y(!0)},[]),Re=m.useCallback(_e=>{D(_e),O(!0),K(!1),V(!0),y(!0)},[]),Ue=m.useCallback(()=>{D(eb(Vp)),K(!0),O(!0),V(!1),y(!0)},[]),rt=m.useCallback(_e=>{H(_e),y(!0)},[]),Oe=m.useCallback(()=>{H(_e=>_e.length>0?_e:jv(AJ(g3(),ge))),z(!0),y(!0)},[ge]);async function ot(_e=T){f(!0),h(null);try{const{body:Qe}=JQ({statuses:a,order:a.map(q=>q.id),pendingResolutions:b,facts:C,factRemovalAcks:_e,derive:U?null:$?wv(F):void 0,transitions:L?RJ(M):void 0}),Je=await fetch("/api/config/statuses",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(Qe)});if(!Je.ok){const q=await Je.json().catch(()=>null);if(Je.status===409&&(q==null?void 0:q.error)==="unresolved-fact-references"&&q.references){_({open:!0,references:q.references}),f(!1);return}if((q==null?void 0:q.error)==="invalid-derive")throw new Error(`Invalid derive rules: ${(q.problems??[]).join("; ")}`);if((q==null?void 0:q.error)==="invalid-transitions")throw new Error(`Invalid transitions: ${(q.problems??[]).join("; ")}`);if((q==null?void 0:q.error)==="invalid-facts")throw new Error(`Invalid facts: ${(q.problems??[]).join("; ")}`);if(Je.status===409&&(q==null?void 0:q.error)==="unresolved-orphans"){const re=Array.isArray(q.unresolved)?q.unresolved.map(xe=>xe.id).join(", "):"";throw new Error(`Cannot save — these statuses have assignments that need a resolution: ${re}. Click the trash icon on each row to choose remap or delete.`)}if(Je.status===409&&(q==null?void 0:q.error)==="concurrent-edit"){const re=q.applied?` (${q.applied.remapped} remapped, ${q.applied.deleted} deleted before the conflict)`:"";h({type:"error",message:`Concurrent edit detected${re}: ${q.cause??"an assignment moved to a still-dropped status during save"}. Refreshing — please re-resolve.`}),await oe();return}if(Je.status===500&&(q==null?void 0:q.error)==="config-write-failed"&&(q!=null&&q.applied)){const{remapped:re,deleted:xe}=q.applied,qe=q.message?`: ${q.message}`:"";h({type:"error",message:`Resolutions applied (${re} remapped, ${xe} deleted) but the status config write failed${qe}. Click Save again to retry.`}),await oe();return}throw(q==null?void 0:q.error)==="invalid-remap-target"?new Error(`Invalid remap target (${q.reason}): ${q.id} → ${q.target}.`):(q==null?void 0:q.error)==="duplicate-resolution-ids"?new Error(`Duplicate resolution ids: ${(q.ids??[]).join(", ")}`):(q==null?void 0:q.error)==="stale-resolution"?new Error(`Stale resolution for id "${q.id??"?"}".`):(q==null?void 0:q.error)==="malformed-resolutions"?new Error(`Malformed resolutions: ${q.message??"unknown"}`):(q==null?void 0:q.error)==="remap-write-failed"||(q==null?void 0:q.error)==="delete-failed"||(q==null?void 0:q.error)==="scan-failed"?new Error(`${q.error}: ${q.cause??"unknown"}`):new Error((q==null?void 0:q.error)??`Save failed (HTTP ${Je.status})`)}const ut=await Je.json();Z(ut),rN();const fe=ut.applied?` (${ut.applied.remapped} remapped, ${ut.applied.deleted} deleted)`:"";h({type:"success",message:`Status config saved${fe}`}),ne()}catch(Qe){h({type:"error",message:Qe instanceof Error?Qe.message:"Save failed"})}finally{f(!1)}}async function St(){f(!0),h(null);try{const _e=await fetch("/api/config/statuses",{method:"DELETE"});if(!_e.ok)throw new Error("Reset failed");const Qe=await _e.json();Z(Qe),rN(),h({type:"success",message:"Reset to defaults"}),ne()}catch(_e){h({type:"error",message:_e instanceof Error?_e.message:"Reset failed"})}finally{f(!1)}}function mt(_e,Qe,Je){l(ut=>{const fe=[...ut];return fe[_e]={...fe[_e],[Qe]:Je},fe}),y(!0)}function at(){const _e=`status_${a.length+1}`;l(Qe=>[...Qe,{rowKey:d3(),id:_e,label:"New Status",description:"",color:"",terminal:!1}]),y(!0)}function ce(_e){l(Qe=>{const Je=Qe.filter(fe=>fe.id!==_e),ut=new Set(Je.map(fe=>fe.id));return j(fe=>hC(fe,ut)),Je}),y(!0)}async function me(_e){const Qe=a[_e].id,Je=ZQ(Qe,F,M),ut=eJ(Qe,F);if(!k.has(Qe)){if(Je.length===0){ce(Qe);return}N({open:!0,affected:{id:Qe,count:0,truncated:!1,assignments:[]},pendingId:Qe,ruleReferences:Je,headlineReferences:ut});return}try{const fe=await fetch(`/api/config/statuses/affected/${encodeURIComponent(Qe)}`);if(!fe.ok)throw new Error(`HTTP ${fe.status}`);const q=await fe.json();if(q.count===0&&Je.length===0){ce(Qe);return}N({open:!0,affected:q,pendingId:Qe,ruleReferences:Je,headlineReferences:ut})}catch(fe){h({type:"error",message:`Could not check affected assignments for "${Qe}": ${fe instanceof Error?fe.message:String(fe)}`})}}function Ie(_e,Qe){if(!S.open)return;const{pendingId:Je,affected:ut,ruleReferences:fe}=S;if(Je!==_e.id){N({open:!1});return}if(!a.some(q=>q.id===Je)){h({type:"error",message:`Row for "${Je}" was already removed — modal action ignored.`}),N({open:!1});return}_e.mode==="remap"?(D(q=>tJ(q,Je,Qe)),H(q=>nJ(q,Je,Qe))):(D(q=>rJ(q,Je,Qe)),H(q=>sJ(q,Je))),fe.some(q=>q.section!=="transitions")&&(O(!0),V(!0)),l(q=>{const re=q.filter(qe=>qe.id!==Je),xe=new Set(re.map(qe=>qe.id));return j(qe=>{const Fe=hC(qe,xe),lt=new Map(Fe);return ut.count>0&<.set(Je,_e),lt}),re}),y(!0),N({open:!1})}function Ae(){if(!I.open)return;const _e=I.references.map(Je=>Je.factName),Qe=Array.from(new Set([...T,..._e]));R(Qe),_({open:!1}),ot(Qe)}function Ve(){N({open:!1})}return e?s.jsx(bt,{label:"Loading workflow..."}):n?s.jsx(Rt,{error:n}):s.jsx(ma,{children:s.jsxs("div",{className:"space-y-6",children:[s.jsxs("div",{className:`flex items-center justify-between rounded-lg border px-4 py-3 text-sm ${o?"border-primary/30 bg-primary/5 text-primary":"border-border/60 bg-muted/30 text-muted-foreground"}`,children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(Gv,{className:"h-4 w-4"}),o?"Using custom status configuration from ~/.syntaur/config.md":"Using default status configuration"]}),s.jsxs("button",{className:"shell-action text-xs",onClick:St,disabled:u||!o&&!g,children:[s.jsx(vs,{className:"h-3 w-3"}),"Reset to Defaults"]})]}),p&&s.jsx("div",{className:`rounded-lg border px-4 py-2 text-sm ${p.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:p.message}),s.jsx(qm,{value:Q,onValueChange:J,items:[{value:"statuses",label:"Statuses",content:s.jsx(QQ,{statuses:a,savedStatusIds:k,onUpdate:mt,onAdd:at,onRemove:me,onReorder:_e=>{l(_e),y(!0)}})},{value:"transitions",label:"Transitions",problemCount:ie.length,content:s.jsx(Ple,{value:M,customizing:L,statuses:ue,knownCommands:Y,onChange:rt,onCustomize:Oe,disabled:u})},{value:"derive",label:"Derive Rules",problemCount:Be.length,content:s.jsx(NJ,{value:F,deriveCustom:W,statuses:ue,acceptedFacts:Ce,onChange:Re,onReset:Ue,disabled:u})},{value:"facts",label:"Facts",problemCount:ke.length,content:s.jsx(fJ,{rows:C,onChange:be,saving:u})}]}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("button",{className:"shell-action bg-primary/10 text-primary hover:bg-primary/20 disabled:opacity-50",onClick:()=>void ot(),disabled:u||!g||ve>0,children:[s.jsx(lm,{className:"h-3.5 w-3.5"}),u?"Saving...":"Save Configuration"]}),g&&s.jsxs(s.Fragment,{children:[s.jsx("button",{className:"shell-action text-xs",onClick:()=>{t(!0),oe()},disabled:u,children:"Discard Changes"}),s.jsx("span",{className:"text-xs text-muted-foreground",children:_le({transitions:ie.length,derive:Be.length,facts:ke.length}).message})]})]}),S.open&&s.jsx(qQ,{open:S.open,affected:{...S.affected,label:((pt=a.find(_e=>_e.id===S.affected.id))==null?void 0:pt.label)??S.affected.id},remaining:a.filter(_e=>_e.id!==S.affected.id&&k.has(_e.id)).map(_e=>({id:_e.id,label:_e.label})),ruleReferences:S.ruleReferences,headlineReferences:S.headlineReferences,onResolve:Ie,onCancel:Ve}),s.jsx(GQ,{open:I.open,references:I.open?I.references:[],onConfirm:Ae,onCancel:()=>{_({open:!1}),f(!1)}})]})})}const ko=e=>`${e.workspace}::${e.id}`;function BE(e){if(e.includes("/")){const[t,n]=e.split("/");return`/projects/${t}/assignments/${n}`}return`/assignments/${e}`}function $le(){var fe;const{data:e,loading:t,error:n,refetch:r}=eT(),{toast:o,showToast:i,dismissToast:a}=Qn(),l=Wt(),[u,f]=m.useState(""),p=m.useRef(null);Pi("list:todos");const[h,g]=m.useState(""),[y,k]=m.useState(""),[v,b]=m.useState(""),[j,S]=m.useState("_global"),[N,C]=m.useState(null),[P,T]=m.useState(null),[R,I]=m.useState(new Set),[_,F]=m.useState(!1),D=m.useRef(null),[W,V]=m.useState(null),$=y0("all"),[O,U]=m.useState(null),[K,M]=m.useState(null),H=m.useRef(null);m.useEffect(()=>{let q=!1;return(async()=>{try{const re=await fetch("/api/projects");if(!re.ok)return;const xe=await re.json();q||V(xe.filter(qe=>!qe.archived))}catch{}})(),()=>{q=!0}},[]);async function L(q,re){q.stopPropagation(),await Yd(re)&&(C(re),setTimeout(()=>C(xe=>xe===re?null:xe),1500))}const z=m.useMemo(()=>{if(!(e!=null&&e.workspaces))return[];const q=[];for(const re of e.workspaces)for(const xe of re.items)q.push({...xe,workspace:re.workspace});return q},[e]),Y=m.useMemo(()=>{const q=new Set;for(const re of z)for(const xe of re.tags)q.add(xe);return Array.from(q).sort()},[z]),B=m.useMemo(()=>{let q=z;if(u.trim()){const re=u.toLowerCase();q=q.filter(xe=>xe.description.toLowerCase().includes(re)||xe.tags.some(qe=>qe.toLowerCase().includes(re))||xe.id.includes(re))}return h&&(q=q.filter(re=>re.status===h)),y&&(q=q.filter(re=>re.tags.includes(y))),q},[z,u,h,y]);m.useEffect(()=>{I(new Set),D.current=null},[u,h,y]);const Q=m.useMemo(()=>B.filter(q=>R.has(ko(q))),[B,R]),J=B.length>0&&Q.length===B.length,Z=Q.length>0&&!J,oe=m.useMemo(()=>{if(Q.length===0)return null;const q=new Set(Q.map(re=>re.workspace));return q.size===1?[...q][0]:null},[Q]),ne=m.useMemo(()=>{if(!oe||!W)return;const q=W.filter(re=>re.workspace===oe);return q.length===1?q[0].slug:void 0},[oe,W]),ue=((fe=Q[0])==null?void 0:fe.description)??"",ge=m.useMemo(()=>{if(oe)return null;const q=new Map;for(const re of Q)q.has(re.workspace)||q.set(re.workspace,[]),q.get(re.workspace).push(re.id);return Array.from(q,([re,xe])=>({workspace:re,todoIds:xe}))},[Q,oe]),Ce=oe?{kind:"workspace",workspace:oe}:{kind:"aggregate",groups:ge??[]};function Se(q,re,xe){const qe=ko(q),Fe=!!(xe&&"shiftKey"in xe&&xe.shiftKey),lt=D.current?at.findIndex(ht=>ko(ht)===D.current):-1;if(Fe&<!==-1){const ht=Math.min(lt,re),vt=Math.max(lt,re);I(tt=>{const Dt=new Set(tt);for(let Bt=ht;Bt<=vt;Bt++){const Ut=at[Bt];Ut&&Dt.add(ko(Ut))}return Dt})}else I(ht=>{const vt=new Set(ht);return vt.has(qe)?vt.delete(qe):vt.add(qe),vt});D.current=qe}function ke(){I(q=>{const re=new Set(q);if(J)for(const xe of B)re.delete(ko(xe));else for(const xe of B)re.add(ko(xe));return re})}function Be(){I(new Set),D.current=null}function ie(q){Be(),r(),q!=null&&q.assignmentRef&&l(BE(q.assignmentRef))}const ve=m.useMemo(()=>{if(!(e!=null&&e.workspaces))return{open:0,in_progress:0,completed:0,blocked:0,total:0};const q={open:0,in_progress:0,completed:0,blocked:0,total:0};for(const re of e.workspaces)q.open+=re.counts.open,q.in_progress+=re.counts.in_progress,q.completed+=re.counts.completed,q.blocked+=re.counts.blocked,q.total+=re.counts.total;return q},[e]);function be(q){i(q instanceof Error?q.message:"Action failed","error")}async function Re(){if(v.trim())try{await rw(j,v.trim()),b(""),r(),i("Todo added","success")}catch(q){be(q)}}async function Ue(q,re,xe){try{switch(xe){case"open":await sT(q,re);break;case"in_progress":await rT(q,re);break;case"completed":await tT(q,re);break;case"blocked":await nT(q,re);break}r(),i("Todo updated","success")}catch(qe){be(qe)}}async function rt(q,re){try{await oT(q,re),r(),i("Todo deleted","success")}catch(xe){be(xe)}}async function Oe(q,re,xe){try{await iT(q,re,xe),r(),i("Todo updated","success")}catch(qe){throw be(qe),qe}}async function ot(q,re,xe){try{await aT(q,re,xe),r(),i(xe.length===1?"Attachment added":`${xe.length} attachments added`,"success")}catch(qe){be(qe)}}async function St(q,re,xe){try{await lT(q,re,xe),r(),i("Attachment removed","success")}catch(qe){be(qe)}}const mt=x0(B),at=mt.filter(q=>!$.isCollapsed(q.config.id)).flatMap(q=>q.items),{hotkeyRowProps:ce}=Fd(at,{scope:"list:todos",bindO:!1,onOpen:q=>T(ko(q))});en({keys:"/",scope:"list:todos",description:"Focus filter",handler:()=>{var q;return(q=p.current)==null?void 0:q.focus()}}),en({keys:"r",scope:"list:todos",description:"Refresh",handler:()=>r()});const[me,Ie]=Ts(),Ae=me.get("focus");m.useEffect(()=>{if(!Ae)return;const q=z.find(xe=>xe.id===Ae);if(!q)return;const re=Qm(q.status);$.isCollapsed(re)&&$.toggle(re)},[Ae,z]),m.useEffect(()=>{if(!Ae)return;const q=document.querySelector(`[data-todo-id="${CSS.escape(Ae)}"]`);if(!q)return;q.scrollIntoView({block:"nearest"}),q.classList.add("ring-2","ring-primary/60");const re=window.setTimeout(()=>{q.classList.remove("ring-2","ring-primary/60"),Ie(xe=>{const qe=new URLSearchParams(xe);return qe.delete("focus"),qe})},1500);return()=>window.clearTimeout(re)},[Ae,at.length,Ie]);const Ve=O?B.find(q=>ko(q)===O)??null:null;function pt(q,re){const xe=H.current;if(xe!=null&&xe.closest(sc)){q.preventDefault();return}q.dataTransfer.effectAllowed="move",q.dataTransfer.setData("text/plain",re),U(re)}function _e(){U(null),M(null)}function Qe(q,re){!Ve||re.statuses.includes(Ve.status)||(q.preventDefault(),q.dataTransfer.dropEffect="move",M(re.id))}function Je(q,re){K===re.id&&!q.currentTarget.contains(q.relatedTarget)&&M(null)}function ut(q,re){q.preventDefault();const xe=Ve;_e(),!(!xe||re.statuses.includes(xe.status))&&Ue(xe.workspace,xe.id,re.dropStatus)}return t?s.jsx(bt,{label:"Loading todos..."}):n?s.jsx(Rt,{error:n}):s.jsxs("div",{className:"space-y-4",children:[s.jsx(Xn,{toast:o,onDismiss:a}),s.jsxs("div",{className:"grid gap-3 grid-cols-[repeat(auto-fill,minmax(140px,1fr))]",children:[s.jsx(Gn,{label:"Open",value:ve.open,icon:ys}),s.jsx(Gn,{label:"In Progress",value:ve.in_progress,icon:Yv,tone:"info"}),s.jsx(Gn,{label:"Blocked",value:ve.blocked,icon:wc,tone:"warn"}),s.jsx(Gn,{label:"Completed",value:ve.completed,icon:ys,tone:"default"})]}),s.jsx("div",{className:"surface-panel p-3",children:s.jsxs("div",{className:"flex gap-2",children:[s.jsxs("select",{value:j,onChange:q=>S(q.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:[s.jsx("option",{value:"_global",children:"Global"}),e==null?void 0:e.workspaces.filter(q=>q.workspace!=="_global").map(q=>s.jsx("option",{value:q.workspace,children:q.workspace},q.workspace))]}),s.jsx("input",{type:"text",placeholder:"Add a todo...",value:v,onChange:q=>b(q.target.value),onKeyDown:q=>q.key==="Enter"&&Re(),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"}),s.jsxs("button",{onClick:Re,disabled:!v.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:[s.jsx(Pt,{className:"h-4 w-4"}),"Add"]})]})}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("div",{className:"relative flex-1 max-w-sm",children:[s.jsx(Ei,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),s.jsx("input",{ref:p,type:"text",placeholder:"Search todos...",value:u,onChange:q=>f(q.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"})]}),s.jsxs("select",{value:h,onChange:q=>g(q.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:[s.jsx("option",{value:"",children:"All statuses"}),s.jsx("option",{value:"open",children:"Open"}),s.jsx("option",{value:"in_progress",children:"In Progress"}),s.jsx("option",{value:"completed",children:"Completed"}),s.jsx("option",{value:"blocked",children:"Blocked"})]}),Y.length>0&&s.jsxs("select",{value:y,onChange:q=>k(q.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:[s.jsx("option",{value:"",children:"All tags"}),Y.map(q=>s.jsxs("option",{value:q,children:["#",q]},q))]})]}),Q.length>0?s.jsxs("div",{className:"surface-panel flex items-center justify-between gap-3 px-3 py-2",children:[s.jsxs("span",{className:"text-sm font-medium",children:[Q.length," selected",oe?s.jsxs("span",{className:"ml-2 text-xs text-muted-foreground",children:["(from ",s.jsx("strong",{children:oe}),")"]}):s.jsxs("span",{className:"ml-2 text-xs text-muted-foreground",children:["across ",new Set(Q.map(q=>q.workspace)).size," workspaces"]})]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{type:"button",onClick:()=>F(!0),className:"shell-action shell-action--cta",children:"Promote to assignment"}),s.jsx("button",{type:"button",onClick:Be,className:"text-xs text-muted-foreground hover:text-foreground",children:"Clear"})]})]}):null,B.length>0&&s.jsxs("div",{className:"flex items-center gap-3 px-3 py-1 text-xs text-muted-foreground",children:[s.jsx("input",{type:"checkbox","aria-label":"Select all visible todos",checked:J,ref:q=>{q&&(q.indeterminate=Z)},onChange:ke,className:"h-4 w-4 cursor-pointer accent-foreground"}),s.jsxs("span",{children:["Select all in current filter (",B.length,")"]}),s.jsx("span",{className:"text-muted-foreground/60",children:"— shift-click for range select"})]}),s.jsx("div",{className:"space-y-3",children:(()=>{let q=-1;return mt.map(({config:re,items:xe})=>{const qe=!$.isCollapsed(re.id);return s.jsx(g0,{label:re.label,count:xe.length,expanded:qe,onToggle:()=>$.toggle(re.id),isDropTarget:K===re.id,onDragOver:Fe=>Qe(Fe,re),onDragLeave:Fe=>Je(Fe,re),onDrop:Fe=>ut(Fe,re),children:qe&&xe.map(Fe=>{q+=1;const lt=q,ht=ko(Fe),vt=R.has(ht);return s.jsxs("div",{draggable:!0,"data-todo-id":Fe.id,...ce(lt),onMouseDown:tt=>{H.current=tt.target},onDragStart:tt=>pt(tt,ht),onDragEnd:_e,className:`surface-panel flex items-start gap-3 px-3 py-2 group cursor-grab active:cursor-grabbing hover:bg-foreground/[0.03] transition ${vt?"ring-1 ring-foreground/20":""} ${O===ht?"opacity-50 shadow-lg":""}`,children:[s.jsx("input",{type:"checkbox","data-no-drag":!0,"aria-label":`Select todo ${Fe.id}`,title:"Select",checked:vt,onChange:()=>{},onClick:tt=>{tt.stopPropagation(),Se(Fe,lt,tt)},className:"mt-1 h-4 w-4 shrink-0 cursor-pointer accent-foreground"}),s.jsx("span",{className:"mt-0.5 self-stretch w-px bg-border/60","aria-hidden":"true"}),s.jsx("div",{className:"mt-0.5 shrink-0",children:s.jsx(p_,{status:Fe.status,onChange:tt=>Ue(Fe.workspace,Fe.id,tt)})}),s.jsxs("div",{className:"flex-1 min-w-0",children:[s.jsxs("div",{className:"flex items-baseline flex-wrap gap-x-2",children:[s.jsx(m_,{description:Fe.description,status:Fe.status,editing:P===ht,onBeginEdit:()=>T(ht),onEndEdit:()=>T(null),onSave:tt=>Oe(Fe.workspace,Fe.id,tt)}),Fe.tags.length>0&&s.jsx("span",{className:"text-xs text-muted-foreground",children:Fe.tags.map(tt=>`#${tt}`).join(" ")}),Fe.linkedAssignmentRef?s.jsxs($e,{to:BE(Fe.linkedAssignmentRef),"data-no-drag":!0,className:"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:tt=>tt.stopPropagation(),children:[s.jsx(om,{className:"h-2.5 w-2.5"}),Fe.linkedAssignmentRef.includes("/")?Fe.linkedAssignmentRef:`oneoff:${Fe.linkedAssignmentRef.slice(0,8)}`]}):null]}),s.jsx(g_,{item:Fe,attachmentUrl:(tt,Dt)=>sw(Fe.workspace,tt,Dt),onAdd:tt=>ot(Fe.workspace,Fe.id,tt),onDelete:tt=>St(Fe.workspace,Fe.id,tt)})]}),s.jsx("span",{className:"text-xs text-muted-foreground/60 font-mono",children:Fe.workspace!=="_global"&&s.jsx($e,{to:`/w/${Fe.workspace}/todos`,className:"hover:text-foreground transition mr-2",onClick:tt=>tt.stopPropagation(),children:Fe.workspace})}),N===Fe.id?s.jsxs("span",{className:"text-xs text-status-completed-foreground flex items-center gap-1",children:[s.jsx(Sr,{className:"h-3 w-3"})," Copied to clipboard"]}):s.jsxs(s.Fragment,{children:[s.jsxs("button",{className:"text-xs text-muted-foreground/60 font-mono hover:text-foreground transition",onClick:tt=>L(tt,Fe.id),children:["t:",Fe.id]}),s.jsx("button",{className:"text-muted-foreground/40 hover:text-foreground transition",title:"Copy ID",onClick:tt=>L(tt,Fe.id),children:s.jsx(dh,{className:"h-3 w-3"})})]}),s.jsx("button",{onClick:tt=>{tt.stopPropagation(),rt(Fe.workspace,Fe.id)},className:"text-xs text-muted-foreground/40 hover:text-destructive transition opacity-0 group-hover:opacity-100",children:"delete"})]},`${Fe.workspace}-${Fe.id}`)})},re.id)})})()}),s.jsx(m0,{open:_,selectedIds:Q.map(q=>q.id),scope:Ce,onOpenChange:F,onDone:ie,defaultProject:ne,defaultTitle:ue,allowOneOff:!0})]})}const Ile={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 Mle({bundle:e}){const t=Ile[e.derivedStatus.status],{counts:n}=e.derivedStatus;return s.jsxs("div",{className:"border rounded-md p-3 mb-2 bg-card",children:[s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsx("span",{className:`text-lg leading-none ${t.cls}`,title:t.label,children:t.icon}),s.jsxs("span",{className:"font-mono text-sm text-muted-foreground",children:["b:",e.id]}),e.slug&&s.jsx("span",{className:"font-medium",children:e.slug}),s.jsxs("span",{className:"ml-auto text-sm text-muted-foreground",children:[n.completed,"/",n.total," done"]})]}),s.jsxs("div",{className:"mt-2 grid gap-1 text-sm",children:[e.branch&&s.jsxs("div",{className:"text-muted-foreground",children:[s.jsx("span",{className:"font-medium",children:"Branch:"})," ",s.jsx("code",{className:"font-mono",children:e.branch})]}),e.worktreePath&&s.jsxs("div",{className:"text-muted-foreground truncate",children:[s.jsx("span",{className:"font-medium",children:"Worktree:"})," ",s.jsx("code",{className:"font-mono",children:e.worktreePath})]}),e.planDir&&s.jsxs("div",{className:"text-muted-foreground truncate",children:[s.jsx("span",{className:"font-medium",children:"Plan:"})," ",s.jsx("code",{className:"font-mono",children:e.planDir})]})]}),s.jsx("ul",{className:"mt-2 ml-6 text-sm list-disc",children:e.members.map(r=>s.jsxs("li",{className:r.status==="completed"?"line-through text-muted-foreground":"",children:[s.jsxs("span",{className:"font-mono text-xs text-muted-foreground mr-2",children:["t:",r.id]}),r.description]},r.id))})]})}function Lle({bundles:e,title:t="Bundles"}){return e.length===0?null:s.jsxs("section",{className:"mb-6",children:[s.jsxs("h3",{className:"text-sm font-medium text-muted-foreground mb-2",children:[t," (",e.length,")"]}),e.map(n=>s.jsx(Mle,{bundle:n},n.id))]})}function Ole(e){const[t,n]=m.useState(null),[r,o]=m.useState(!0),[i,a]=m.useState(null),l=m.useCallback(async()=>{try{const u=await fetch(`/api/bundles/${encodeURIComponent(e)}`);if(!u.ok)throw new Error(`HTTP ${u.status}`);n(await u.json()),a(null)}catch(u){a(u instanceof Error?u.message:"Failed to fetch bundles")}finally{o(!1)}},[e]);return m.useEffect(()=>{l()},[l]),Ti(u=>{u.type==="todos-updated"&&!u.projectSlug&&l()}),{data:t,loading:r,error:i,refetch:l}}function Fle(){const{workspace:e}=Kt(),t=e||"_global",{data:n,loading:r,error:o,refetch:i}=g5(t),{toast:a,showToast:l,dismissToast:u}=Qn(),{data:f}=Ole(t),[p,h]=m.useState(""),[g,y]=m.useState(""),[k,v]=m.useState(""),[b,j]=m.useState(""),[S,N]=m.useState(null),[C,P]=m.useState(!1),[T,R]=m.useState(null),[I,_]=m.useState(null),[F,D]=m.useState(new Set),[W,V]=m.useState(!1),[$,O]=m.useState(!1),[U,K]=m.useState(null),M=m.useRef(null);Pi("list:todos");const H=y0("workspace:"+t),[L,z]=m.useState(null),[Y,B]=m.useState(null),Q=m.useRef(null);async function J(q,re){q.stopPropagation(),await Yd(re)&&(R(re),setTimeout(()=>R(xe=>xe===re?null:xe),1500))}const Z=m.useMemo(()=>{if(!(n!=null&&n.items))return[];const q=new Set;for(const re of n.items)for(const xe of re.tags)q.add(xe);return Array.from(q).sort()},[n]),oe=m.useMemo(()=>{if(!(n!=null&&n.items))return[];let q=n.items;if(p.trim()){const re=p.toLowerCase();q=q.filter(xe=>xe.description.toLowerCase().includes(re)||xe.tags.some(qe=>qe.toLowerCase().includes(re))||xe.id.includes(re))}return g&&(q=q.filter(re=>re.status===g)),k&&(q=q.filter(re=>re.tags.includes(k))),q},[n,p,g,k]);m.useEffect(()=>{D(new Set)},[p,g,k,t]);const ne=m.useMemo(()=>oe.filter(q=>F.has(q.id)).length,[oe,F]),ue=oe.length>0&&ne===oe.length,ge=ne>0&&!ue;function Ce(q){D(re=>{const xe=new Set(re);return xe.has(q)?xe.delete(q):xe.add(q),xe})}function Se(){D(q=>{const re=new Set(q);if(ue)for(const xe of oe)re.delete(xe.id);else for(const xe of oe)re.add(xe.id);return re})}function ke(){D(new Set)}const Be=U?[U]:Array.from(F);function ie(){D(new Set),K(null),i()}function ve(){D(new Set),i()}function be(q){l(q instanceof Error?q.message:"Action failed","error")}async function Re(){if(b.trim())try{await rw(t,b.trim()),j(""),i()}catch(q){be(q)}}function Ue(q,re,xe){q.stopPropagation(),N({id:re,description:xe})}async function rt(q,re){try{switch(re){case"open":await sT(t,q);break;case"in_progress":await rT(t,q);break;case"completed":await tT(t,q);break;case"blocked":await nT(t,q);break}i()}catch(xe){be(xe)}}async function Oe(q,re){try{await iT(t,q,re),i()}catch(xe){throw be(xe),xe}}async function ot(q,re){try{await aT(t,q,re),i()}catch(xe){be(xe)}}async function St(q,re){try{await lT(t,q,re),i()}catch(xe){be(xe)}}const mt=x0(oe),at=mt.filter(q=>!H.isCollapsed(q.config.id)).flatMap(q=>q.items),{hotkeyRowProps:ce}=Fd(at,{scope:"list:todos",bindO:!1,onOpen:q=>_(q.id)});en({keys:"/",scope:"list:todos",description:"Focus filter",handler:()=>{var q;return(q=M.current)==null?void 0:q.focus()}}),en({keys:"r",scope:"list:todos",description:"Refresh",handler:()=>i()});const[me,Ie]=Ts(),Ae=me.get("focus");m.useEffect(()=>{if(!Ae||!(n!=null&&n.items))return;const q=n.items.find(xe=>xe.id===Ae);if(!q)return;const re=Qm(q.status);H.isCollapsed(re)&&H.toggle(re)},[Ae,n==null?void 0:n.items]),m.useEffect(()=>{if(!Ae)return;const q=document.querySelector(`[data-todo-id="${window.CSS.escape(Ae)}"]`);if(!q)return;q.scrollIntoView({block:"nearest"}),q.classList.add("ring-2","ring-primary/60");const re=window.setTimeout(()=>{q.classList.remove("ring-2","ring-primary/60"),Ie(xe=>{const qe=new URLSearchParams(xe);return qe.delete("focus"),qe})},1500);return()=>window.clearTimeout(re)},[Ae,at.length,Ie]);const Ve=L?(n==null?void 0:n.items.find(q=>q.id===L))??null:null;function pt(q,re){const xe=Q.current;if(xe!=null&&xe.closest(sc)){q.preventDefault();return}q.dataTransfer.effectAllowed="move",q.dataTransfer.setData("text/plain",re),z(re)}function _e(){z(null),B(null)}function Qe(q,re){!Ve||re.statuses.includes(Ve.status)||(q.preventDefault(),q.dataTransfer.dropEffect="move",B(re.id))}function Je(q,re){Y===re.id&&!q.currentTarget.contains(q.relatedTarget)&&B(null)}function ut(q,re){q.preventDefault();const xe=Ve;_e(),!(!xe||re.statuses.includes(xe.status))&&rt(xe.id,re.dropStatus)}if(r)return s.jsx(bt,{label:"Loading todos..."});if(o)return s.jsx(Rt,{error:o});const fe=(n==null?void 0:n.counts)||{open:0,in_progress:0,blocked:0,total:0};return s.jsxs("div",{className:"space-y-4",children:[s.jsx(Xn,{toast:a,onDismiss:u}),s.jsx(ss,{open:S!==null,title:"Delete todo?",description:`Delete "${(S==null?void 0:S.description)??""}"? This can't be undone.`,confirmLabel:"Delete",destructive:!0,loading:C,onOpenChange:q=>{!q&&!C&&N(null)},onConfirm:async()=>{if(S){P(!0);try{await oT(t,S.id),i(),N(null)}catch(q){be(q)}finally{P(!1)}}}}),s.jsxs("div",{className:"grid gap-3 grid-cols-[repeat(auto-fill,minmax(140px,1fr))]",children:[s.jsx(Gn,{label:"Open",value:fe.open,icon:ys}),s.jsx(Gn,{label:"In Progress",value:fe.in_progress,icon:ys,tone:"info"}),s.jsx(Gn,{label:"Blocked",value:fe.blocked,icon:wc,tone:"warn"}),s.jsx(Gn,{label:"Total",value:fe.total,icon:ys})]}),f&&s.jsx(Lle,{bundles:f.bundles}),s.jsx("div",{className:"surface-panel p-3",children:s.jsxs("div",{className:"flex gap-2",children:[s.jsx("input",{type:"text",placeholder:"Add a todo...",value:b,onChange:q=>j(q.target.value),onKeyDown:q=>q.key==="Enter"&&Re(),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"}),s.jsxs("button",{onClick:Re,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:[s.jsx(Pt,{className:"h-4 w-4"}),"Add"]})]})}),s.jsxs("div",{className:"flex items-center gap-3",children:[s.jsxs("div",{className:"relative flex-1 max-w-sm",children:[s.jsx(Ei,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),s.jsx("input",{ref:M,type:"text",placeholder:"Search...",value:p,onChange:q=>h(q.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"})]}),s.jsxs("select",{value:g,onChange:q=>y(q.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:[s.jsx("option",{value:"",children:"All statuses"}),s.jsx("option",{value:"open",children:"Open"}),s.jsx("option",{value:"in_progress",children:"In Progress"}),s.jsx("option",{value:"completed",children:"Completed"}),s.jsx("option",{value:"blocked",children:"Blocked"})]}),Z.length>0&&s.jsxs("select",{value:k,onChange:q=>v(q.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:[s.jsx("option",{value:"",children:"All tags"}),Z.map(q=>s.jsxs("option",{value:q,children:["#",q]},q))]})]}),F.size>0?s.jsxs("div",{className:"surface-panel flex items-center justify-between gap-3 px-3 py-2",children:[s.jsxs("span",{className:"text-sm font-medium",children:[F.size," selected"]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{type:"button",onClick:()=>V(!0),className:"shell-action shell-action--cta",children:"Promote selected"}),s.jsx("button",{type:"button",onClick:()=>{K(null),O(!0)},className:"shell-action",children:"Move to…"}),s.jsx("button",{type:"button",onClick:ke,className:"text-xs text-muted-foreground hover:text-foreground",children:"Clear"})]})]}):null,oe.length>0&&s.jsxs("div",{className:"flex items-center gap-3 px-3 py-1 text-xs text-muted-foreground",children:[s.jsx("input",{type:"checkbox","aria-label":"Select all visible todos",checked:ue,ref:q=>{q&&(q.indeterminate=ge)},onChange:Se,className:"h-4 w-4 cursor-pointer accent-foreground"}),s.jsxs("span",{children:["Select all in current filter (",oe.length,")"]})]}),s.jsx("div",{className:"space-y-3",children:(()=>{let q=-1;return mt.map(({config:re,items:xe})=>{const qe=!H.isCollapsed(re.id);return s.jsx(g0,{label:re.label,count:xe.length,expanded:qe,onToggle:()=>H.toggle(re.id),isDropTarget:Y===re.id,onDragOver:Fe=>Qe(Fe,re),onDragLeave:Fe=>Je(Fe,re),onDrop:Fe=>ut(Fe,re),children:qe&&xe.map(Fe=>(q+=1,s.jsx(h_,{item:Fe,copiedId:T,selected:F.has(Fe.id),editing:I===Fe.id,onBeginEdit:lt=>_(lt),onEndEdit:()=>_(null),onPatchDescription:Oe,onAddAttachments:ot,onDeleteAttachment:St,attachmentUrl:(lt,ht)=>sw(t,lt,ht),onToggleSelected:lt=>Ce(lt),onMoveOne:(lt,ht)=>{ht.stopPropagation(),K(lt),O(!0)},onStatusChange:rt,onCopyId:J,onDelete:Ue,hotkeyRowProps:ce(q),onDragOrigin:lt=>{Q.current=lt.target},onDragStart:pt,onDragEnd:_e,isDragging:L===Fe.id},Fe.id)))},re.id)})})()}),s.jsx(m0,{open:W,selectedIds:Array.from(F),scope:{kind:"workspace",workspace:t},onOpenChange:V,onDone:ve}),s.jsx(y_,{open:$,selectedIds:Be,scope:{kind:"workspace",workspace:t},onOpenChange:q=>{O(q),q||K(null)},onDone:ie})]})}function $$(){const{views:e}=Vd();async function t(i,a,l){const u=e.find(h=>h.id===i.id)??i,f=tP(l,u.workspace).config,p=Rh(u.config,f,u.config);await Nh(i.id,{name:a,config:p})}async function n(i,a,l){const u=e.find(h=>h.id===i.id)??i,f=Gw(l,u.workspace).config,p=Rh(u.config,f,u.config);await Nh(i.id,{name:a,config:p})}async function r(i){await tc({name:`${i.name} (copy)`,workspace:i.workspace,config:i.config,entityType:i.entityType})}async function o(i){await A7(i.id)}return{submitEdit:t,submitEditSession:n,duplicate:r,remove:o}}const UE=80,zle={kanban:"Kanban",list:"List",table:"Table"},Ble={title:"Title",status:"Status",priority:"Priority",assignee:"Assignee",dependencies:"Dependencies",created:"Created",updated:"Updated"};function I$({open:e,onOpenChange:t,workspace:n,initialView:r,onSubmit:o}){const i=!!r,a=As(),l=Od(),{data:u}=ro(),{data:f}=um(),[p,h]=m.useState(""),[g,y]=m.useState(gl.viewMode),[k,v]=m.useState([]),[b,j]=m.useState([]),[S,N]=m.useState([]),[C,P]=m.useState([]),[T,R]=m.useState([]),[I,_]=m.useState([]),[F,D]=m.useState("all"),[W,V]=m.useState(null),[$,O]=m.useState(""),[U,K]=m.useState(gl.sortField),[M,H]=m.useState(gl.sortDirection),[L,z]=m.useState(!1),[Y,B]=m.useState(null);function Q(){y(gl.viewMode),v([]),j([]),N([]),P([]),R([]),_([]),D("all"),V(null),O(""),K(gl.sortField),H(gl.sortDirection)}m.useEffect(()=>{if(e)if(B(null),z(!1),r){const ie=r.config.filters;h(r.name),y(r.config.viewMode),v(He(ie.status)),j(He(ie.priority)),N(He(ie.type)),P(He(ie.project)),R(He(ie.assignee)),_(He(ie.tags)),D(ie.activity??"all"),V(Hm(ie.dateRange)),O(ie.search??""),K(r.config.sortField),H(r.config.sortDirection)}else h(""),Q()},[e,r]);const J=ie=>ve=>ie?ie==="_ungrouped"?ve.projectWorkspace===null:ve.projectWorkspace===ie:!0,Z=m.useMemo(()=>{const ie=be=>n?n==="_ungrouped"?be.workspace===null:be.workspace===n:!0,ve=(u??[]).filter(ie);return[{value:"__standalone__",label:"No project"},...ve.map(be=>({value:be.slug,label:be.title}))]},[u,n]),oe=m.useMemo(()=>{const ie=new Set,ve=J(n);for(const Re of(f==null?void 0:f.assignments)??[])ve(Re)&&Re.assignee&&ie.add(Re.assignee);const be=[{value:"__unassigned__",label:"Unassigned"}];for(const Re of Array.from(ie).sort())be.push({value:Re,label:Re});return be},[f,n]),ne=m.useMemo(()=>{const ie=new Set,ve=J(n);for(const be of(f==null?void 0:f.assignments)??[])if(ve(be))for(const Re of be.tags??[])ie.add(Re);return Array.from(ie).sort().map(be=>({value:be,label:be}))},[f,n]),ue=m.useMemo(()=>a.order.map(ie=>({value:ie,label:To(a,ie)})),[a]),ge=m.useMemo(()=>n9.map(ie=>({value:ie,label:ie[0].toUpperCase()+ie.slice(1)})),[]),Ce=m.useMemo(()=>l.definitions.map(ie=>({value:ie.id,label:Bl(l,ie.id)})),[l]),Se=vw.map(ie=>({value:ie,label:zle[ie]})),ke=p.trim(),Be=ke.length>0&&ke.length<=UE;return s.jsx(Ln,{open:e,onOpenChange:t,children:s.jsx(Nn,{className:"max-w-lg",children:s.jsxs("form",{className:"space-y-4",onSubmit:async ie=>{if(ie.preventDefault(),!Be||L)return;z(!0),B(null);const ve={viewMode:g,filters:{status:k,priority:b,type:S,project:C,assignee:T,tags:I,activity:F,dateRange:ga(W),search:$},sortField:U,sortDirection:M};try{await o(ke,ve)}catch(be){B(be instanceof Error?be.message:String(be)),z(!1)}},children:[s.jsx(or,{children:s.jsx(Sn,{children:i?"Edit view":"Create view"})}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("label",{className:"block text-xs font-medium text-muted-foreground",htmlFor:"create-view-name",children:"Name"}),s.jsx("input",{id:"create-view-name",type:"text",value:p,autoFocus:!0,required:!0,maxLength:UE,onChange:ie=>h(ie.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"})]}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("span",{className:"block text-xs font-medium text-muted-foreground",children:"View mode"}),s.jsx(Wm,{value:g,onChange:ie=>y(ie),options:Se})]}),s.jsxs("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2",children:[s.jsx(Hs,{label:"Status",children:s.jsx(wn,{ariaLabel:"Status filter",className:"w-full",allLabel:"All statuses",options:ue,value:k,onChange:v})}),s.jsx(Hs,{label:"Priority",children:s.jsx(wn,{ariaLabel:"Priority filter",className:"w-full",allLabel:"All priorities",options:ge,value:b,onChange:j})}),s.jsx(Hs,{label:"Type",children:s.jsx(wn,{ariaLabel:"Type filter",className:"w-full",allLabel:"All types",options:Ce,value:S,onChange:N})}),s.jsx(Hs,{label:"Project",children:s.jsx(wn,{ariaLabel:"Project filter",className:"w-full",allLabel:"All projects",options:Z,value:C,onChange:P})}),s.jsx(Hs,{label:"Assignee",children:s.jsx(wn,{ariaLabel:"Assignee filter",className:"w-full",allLabel:"All assignees",options:oe,value:T,onChange:R})}),s.jsx(Hs,{label:"Tags",children:s.jsx(wn,{ariaLabel:"Tags filter",className:"w-full",allLabel:"Any tags",options:ne,value:I,onChange:_})}),s.jsx(Hs,{label:"Activity",children:s.jsxs("select",{value:F,onChange:ie=>D(ie.target.value),className:"editor-input w-full",children:[s.jsx("option",{value:"all",children:"All activity"}),s.jsx("option",{value:"stale",children:"Stale only"}),s.jsx("option",{value:"fresh",children:"Fresh only"})]})}),s.jsx(Hs,{label:"Date range",children:s.jsx(Um,{className:"w-full",value:W,onChange:V})}),s.jsx(Hs,{label:"Search",className:"sm:col-span-2",children:s.jsx("input",{type:"text",value:$,onChange:ie=>O(ie.target.value),placeholder:"Title / slug / project contains…",className:"editor-input w-full"})}),s.jsx(Hs,{label:"Sort by",className:"sm:col-span-2",children:s.jsxs("div",{className:"flex gap-2",children:[s.jsx("select",{value:U,onChange:ie=>K(ie.target.value),className:"editor-input w-full",children:GT.map(ie=>s.jsx("option",{value:ie,children:Ble[ie]??ie},ie))}),s.jsx("button",{type:"button",onClick:()=>H(ie=>ie==="asc"?"desc":"asc"),className:"shell-action shrink-0",title:M==="asc"?"Ascending":"Descending",children:M==="asc"?"Asc":"Desc"})]})})]}),Y?s.jsx("p",{className:"text-xs text-error-foreground",role:"alert",children:Y}):null,s.jsxs(Wr,{className:"sm:justify-between",children:[s.jsx("button",{type:"button",onClick:Q,className:"shell-action",disabled:L,children:"Clear all"}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{type:"button",onClick:()=>t(!1),className:"shell-action",disabled:L,children:"Cancel"}),s.jsx("button",{type:"submit",disabled:!Be||L,className:"shell-action shell-action--cta disabled:opacity-50",children:L?"Saving…":i?"Save changes":"Create view"})]})]})]})})})}function Hs({label:e,className:t,children:n}){return s.jsxs("label",{className:`space-y-1 ${t??""}`,children:[s.jsx("span",{className:"block text-xs font-medium text-muted-foreground",children:e}),n]})}const Ule={kanban:"Kanban",list:"List",table:"Table"},Hle={assignment:"Assignment",session:"Session"},Vle={assignment:"bg-muted text-muted-foreground",session:"bg-primary/10 text-primary"};function HE(){const{workspace:e}=Kt(),{views:t,loading:n}=Vd(),{submitEdit:r,submitEditSession:o,duplicate:i,remove:a}=$$(),{toast:l,showToast:u,dismissToast:f}=Qn(),[p,h]=m.useState(null),[g,y]=m.useState(!1),[k,v]=m.useState(!1),[b,j]=m.useState(!1),[S,N]=m.useState(null);async function C(V,$){const{workspace:O,config:U}=tP($,e??null);try{await tc({name:V,workspace:O,config:U}),v(!1),u(`Created view "${V}"`)}catch(K){throw u(K instanceof Error?K.message:"Failed to create saved view"),K}}async function P(V,$){const{workspace:O,config:U}=Gw($,e??null);try{await tc({name:V,workspace:O,config:U,entityType:"session"}),j(!1),u(`Created session view "${V}"`)}catch(K){throw u(K instanceof Error?K.message:"Failed to create session view"),K}}async function T(V,$,O){try{await r(V,$,O),N(null),u(`Updated view "${$}"`)}catch(U){throw u(U instanceof Error?U.message:"Failed to update saved view"),U}}async function R(V,$,O){try{await o(V,$,O),N(null),u(`Updated session view "${$}"`)}catch(U){throw u(U instanceof Error?U.message:"Failed to update session view"),U}}async function I(V){try{await i(V),u(`Duplicated "${V.name}"`)}catch($){u($ instanceof Error?$.message:"Failed to duplicate saved view")}}async function _(){if(p){y(!0);try{await a(p),h(null)}catch(V){u(V instanceof Error?V.message:"Failed to delete saved view")}finally{y(!1)}}}const F=s.jsxs("button",{type:"button",onClick:()=>v(!0),className:"shell-action inline-flex items-center gap-1.5 shell-action--cta",children:[s.jsx(Pt,{className:"h-4 w-4"}),"Create view"]}),D=s.jsxs("button",{type:"button",onClick:()=>j(!0),className:"shell-action inline-flex items-center gap-1.5",children:[s.jsx(Pt,{className:"h-4 w-4"}),"Create session view"]}),W=(S==null?void 0:S.entityType)==="session";return s.jsxs("div",{className:"space-y-4",children:[s.jsx(Dh,{title:"Saved Views",description:"Create a view here, or open, edit, and reuse views captured from any board.",actions:s.jsxs("div",{className:"flex items-center gap-2",children:[D,F]})}),n?s.jsx(bt,{label:"Loading saved views…"}):t.length===0?s.jsx(Nt,{title:"No saved views yet",description:"Create your first view here, or capture one from any assignments board.",actions:s.jsxs("div",{className:"flex items-center gap-2",children:[D,F]})}):s.jsx(We,{children:s.jsx("ul",{className:"divide-y divide-border/60",children:t.map(V=>s.jsx(Wle,{view:V,onRequestDelete:()=>h(V),onRequestEdit:()=>N(V),onRequestDuplicate:()=>void I(V)},V.id))})}),s.jsx(I$,{open:k||!W&&S!==null,onOpenChange:V=>{V||(v(!1),W||N(null))},workspace:S&&!W?S.workspace:e??null,initialView:S&&!W?S:null,onSubmit:S&&!W?(V,$)=>T(S,V,$):C}),s.jsx(iP,{open:b||W&&S!==null,onOpenChange:V=>{V||(j(!1),W&&N(null))},workspace:S&&W?S.workspace:e??null,initialView:S&&W?S:null,onSubmit:S&&W?(V,$)=>R(S,V,$):P}),s.jsx(ss,{open:p!==null,title:"Delete saved view?",description:p?`Delete '${p.name}'? Any Overview widgets referencing this view will become empty.`:"",confirmLabel:"Delete",loading:g,destructive:!0,onConfirm:_,onOpenChange:V=>{!V&&!g&&h(null)}}),s.jsx(Xn,{toast:l,onDismiss:f})]})}function Wle({view:e,onRequestDelete:t,onRequestEdit:n,onRequestDuplicate:r}){const o=Wt(),i=()=>o(rP(e)),a=oP(e.config.filters),l=e.workspace?hn(e.workspace):null,u=e.entityType??"assignment",f=u==="session",p=f?`limit: ${e.config.limit??"none"} · sort: ${e.config.sortField} ${e.config.sortDirection}`:null;return s.jsxs("li",{className:"flex flex-wrap items-center gap-3 py-3",children:[s.jsxs("div",{className:"min-w-0 flex-1 space-y-1",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{type:"button",onClick:i,className:"truncate text-left text-sm font-semibold text-foreground hover:text-primary",title:"Open view",children:e.name}),s.jsx("span",{className:`inline-flex shrink-0 items-center rounded-full border border-border/70 px-2 py-0.5 text-xs font-medium ${Vle[u]??"bg-muted text-muted-foreground"}`,children:Hle[u]??u}),!f&&s.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:Ule[e.config.viewMode]}),l?s.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:l}):null]}),s.jsxs("p",{className:"truncate text-xs text-muted-foreground",children:[a,p?` · ${p}`:""]})]}),s.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[s.jsx("button",{type:"button",onClick:i,className:"shell-action",children:"Open"}),s.jsx("button",{type:"button",onClick:n,className:"shell-action",children:"Edit"}),s.jsx("button",{type:"button",onClick:r,className:"shell-action",children:"Duplicate"}),s.jsx("button",{type:"button",onClick:t,className:"shell-action border-destructive/40 text-destructive hover:bg-destructive/10",children:"Delete"})]})]})}const Kle={kanban:"Kanban",list:"List",table:"Table"};function VE(){const{id:e,workspace:t}=Kt(),n=Wt(),{view:r,ready:o,error:i,refetch:a}=Ni(e),{submitEdit:l,duplicate:u,remove:f}=$$(),{toast:p,showToast:h,dismissToast:g}=Qn(),[y,k]=m.useState(!1),[v,b]=m.useState(!1),[j,S]=m.useState(!1);if(m.useEffect(()=>{!o||!r||(t??null)!==(r.workspace??null)&&n(rP(r),{replace:!0})},[o,r,t,n]),!o)return s.jsx(bt,{label:"Loading view…"});if(i)return s.jsxs("div",{className:"rounded-lg border border-border/60 bg-card/85 px-4 py-6 text-sm",children:[s.jsx("p",{className:"font-medium text-foreground",children:"Couldn't load view"}),s.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:i.message}),s.jsx("button",{type:"button",onClick:()=>a(),className:"shell-action mt-3",children:"Retry"})]});if(!r)return s.jsxs("div",{className:"space-y-3",children:[s.jsx(Dh,{title:"View not found",description:"This saved view no longer exists."}),s.jsxs($e,{to:Qp(t??null),className:"shell-action inline-flex items-center gap-1.5",children:[s.jsx(lh,{className:"h-4 w-4"})," Back to Saved Views"]})]});const N=r.workspace?hn(r.workspace):null;async function C(R,I){const _=r;try{await l(_,R,I),k(!1),h(`Updated view "${R}"`)}catch(F){throw h(F instanceof Error?F.message:"Failed to update saved view"),F}}async function P(){const R=r;try{await u(R),h(`Duplicated "${R.name}"`)}catch(I){h(I instanceof Error?I.message:"Failed to duplicate saved view")}}async function T(){const R=r;S(!0);try{await f(R),b(!1),n(Qp(R.workspace))}catch(I){h(I instanceof Error?I.message:"Failed to delete saved view")}finally{S(!1)}}return s.jsxs("div",{className:"space-y-4",children:[s.jsxs($e,{to:Qp(r.workspace),className:"inline-flex items-center gap-1.5 text-sm text-muted-foreground hover:text-foreground",children:[s.jsx(lh,{className:"h-4 w-4"})," Saved Views"]}),s.jsx(Dh,{title:r.name,description:oP(r.config.filters),actions:s.jsxs(s.Fragment,{children:[s.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:Kle[r.config.viewMode]}),N?s.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:N}):null,s.jsx("button",{type:"button",onClick:()=>k(!0),className:"shell-action",children:"Edit"}),s.jsx("button",{type:"button",onClick:()=>void P(),className:"shell-action",children:"Duplicate"}),s.jsx("button",{type:"button",onClick:()=>n(sP(r)),className:"shell-action",children:"Open on board"}),s.jsx("button",{type:"button",onClick:()=>b(!0),className:"shell-action border-destructive/40 text-destructive hover:bg-destructive/10",children:"Delete"})]})}),s.jsx(ZA,{view:r}),y?s.jsx(I$,{open:y,onOpenChange:k,workspace:r.workspace,initialView:r,onSubmit:C}):null,s.jsx(ss,{open:v,title:"Delete saved view?",description:`Delete '${r.name}'? Any Overview widgets referencing this view will become empty.`,confirmLabel:"Delete",loading:j,destructive:!0,onConfirm:T,onOpenChange:R=>{!R&&!j&&b(!1)}}),s.jsx(Xn,{toast:p,onDismiss:g})]})}function qle(){return s.jsx(VL,{children:s.jsx(Uz,{children:s.jsx(bL,{children:s.jsxs(Ye,{element:s.jsx(_B,{}),children:[s.jsx(Ye,{path:"/",element:s.jsx(R9,{})}),s.jsx(Ye,{path:"/inbox",element:s.jsx(M9,{})}),s.jsx(Ye,{path:"/projects",element:s.jsx(WN,{})}),s.jsx(Ye,{path:"/archive",element:s.jsx(nV,{})}),s.jsx(Ye,{path:"/assignments",element:s.jsx(nC,{})}),s.jsx(Ye,{path:"/assignments/new",element:s.jsx(iC,{})}),s.jsx(Ye,{path:"/assignments/:id",element:s.jsx(cX,{})}),s.jsx(Ye,{path:"/assignments/:id/edit",element:s.jsx(qy,{})}),s.jsx(Ye,{path:"/assignments/:id/plan/edit",element:s.jsx(Gy,{})}),s.jsx(Ye,{path:"/assignments/:id/scratchpad/edit",element:s.jsx(Yy,{})}),s.jsx(Ye,{path:"/assignments/:id/handoff/edit",element:s.jsx(Xy,{})}),s.jsx(Ye,{path:"/assignments/:id/decision-record/edit",element:s.jsx(Qy,{})}),s.jsx(Ye,{path:"/servers",element:s.jsx(lC,{})}),s.jsx(Ye,{path:"/inventories",element:s.jsx(cC,{})}),s.jsx(Ye,{path:"/schedules",element:s.jsx(nQ,{})}),s.jsx(Ye,{path:"/usage",element:s.jsx(uC,{})}),s.jsx(Ye,{path:"/agent-sessions",element:s.jsx(dC,{})}),s.jsx(Ye,{path:"/playbooks",element:s.jsx(aQ,{})}),s.jsx(Ye,{path:"/playbooks/create",element:s.jsx(cQ,{})}),s.jsx(Ye,{path:"/playbooks/:slug",element:s.jsx(lQ,{})}),s.jsx(Ye,{path:"/playbooks/:slug/edit",element:s.jsx(uQ,{})}),s.jsx(Ye,{path:"/memories",element:s.jsx(dQ,{})}),s.jsx(Ye,{path:"/memories/new",element:s.jsx(pQ,{})}),s.jsx(Ye,{path:"/projects/:slug/memories/:itemSlug",element:s.jsx(fQ,{})}),s.jsx(Ye,{path:"/projects/:slug/memories/:itemSlug/edit",element:s.jsx(hQ,{})}),s.jsx(Ye,{path:"/resources",element:s.jsx(mQ,{})}),s.jsx(Ye,{path:"/resources/new",element:s.jsx(xQ,{})}),s.jsx(Ye,{path:"/projects/:slug/resources/:itemSlug",element:s.jsx(gQ,{})}),s.jsx(Ye,{path:"/projects/:slug/resources/:itemSlug/edit",element:s.jsx(yQ,{})}),s.jsx(Ye,{path:"/todos",element:s.jsx($le,{})}),s.jsx(Ye,{path:"/views",element:s.jsx(HE,{})}),s.jsx(Ye,{path:"/views/:id",element:s.jsx(VE,{})}),s.jsx(Ye,{path:"/help",element:s.jsx(V9,{})}),s.jsx(Ye,{path:"/settings",element:s.jsx(KQ,{})}),s.jsx(Ye,{path:"/workflow",element:s.jsx(Dle,{})}),s.jsx(Ye,{path:"/create/project",element:s.jsx(sC,{})}),s.jsx(Ye,{path:"/projects/:slug",element:s.jsx(KS,{})}),s.jsx(Ye,{path:"/projects/:slug/edit",element:s.jsx(aC,{})}),s.jsx(Ye,{path:"/projects/:slug/create/assignment",element:s.jsx(oC,{})}),s.jsx(Ye,{path:"/projects/:slug/assignments/:aslug",element:s.jsx(QS,{})}),s.jsx(Ye,{path:"/projects/:slug/assignments/:aslug/edit",element:s.jsx(qy,{})}),s.jsx(Ye,{path:"/projects/:slug/assignments/:aslug/plan/edit",element:s.jsx(Gy,{})}),s.jsx(Ye,{path:"/projects/:slug/assignments/:aslug/scratchpad/edit",element:s.jsx(Yy,{})}),s.jsx(Ye,{path:"/projects/:slug/assignments/:aslug/handoff/edit",element:s.jsx(Xy,{})}),s.jsx(Ye,{path:"/projects/:slug/assignments/:aslug/decision-record/edit",element:s.jsx(Qy,{})}),s.jsx(Ye,{path:"/w/:workspace/projects",element:s.jsx(WN,{})}),s.jsx(Ye,{path:"/w/:workspace/assignments",element:s.jsx(nC,{})}),s.jsx(Ye,{path:"/w/:workspace/assignments/new",element:s.jsx(iC,{})}),s.jsx(Ye,{path:"/w/:workspace/servers",element:s.jsx(lC,{})}),s.jsx(Ye,{path:"/w/:workspace/inventories",element:s.jsx(cC,{})}),s.jsx(Ye,{path:"/w/:workspace/usage",element:s.jsx(uC,{})}),s.jsx(Ye,{path:"/w/:workspace/agent-sessions",element:s.jsx(dC,{})}),s.jsx(Ye,{path:"/w/:workspace/todos",element:s.jsx(Fle,{})}),s.jsx(Ye,{path:"/w/:workspace/views",element:s.jsx(HE,{})}),s.jsx(Ye,{path:"/w/:workspace/views/:id",element:s.jsx(VE,{})}),s.jsx(Ye,{path:"/w/:workspace/create/project",element:s.jsx(sC,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug",element:s.jsx(KS,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/edit",element:s.jsx(aC,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/create/assignment",element:s.jsx(oC,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/assignments/:aslug",element:s.jsx(QS,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/assignments/:aslug/edit",element:s.jsx(qy,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/assignments/:aslug/plan/edit",element:s.jsx(Gy,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/assignments/:aslug/scratchpad/edit",element:s.jsx(Yy,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/assignments/:aslug/handoff/edit",element:s.jsx(Xy,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/assignments/:aslug/decision-record/edit",element:s.jsx(Qy,{})})]})})})})}$O();bM.createRoot(document.getElementById("root")).render(s.jsx(m.StrictMode,{children:s.jsx(IO,{children:s.jsx(qle,{})})}));export{ef as C,jr as R,EV as _,rd as a,Yle as b,D0 as d,$3 as e,Pd as g,Xle as h,Ks as i,L3 as n,Pee as r,Br as s};
|