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.
Files changed (69) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/dashboard/dist/assets/{_basePickBy-CBNQaqzq.js → _basePickBy-BiwSunXO.js} +1 -1
  3. package/dashboard/dist/assets/{_baseUniq-Bqwz8hnN.js → _baseUniq-DsjKPXxP.js} +1 -1
  4. package/dashboard/dist/assets/{arc-B6lVW0Fc.js → arc-DlEs4wsF.js} +1 -1
  5. package/dashboard/dist/assets/{architectureDiagram-2XIMDMQ5-eKpHkGki.js → architectureDiagram-2XIMDMQ5-DPvCrO57.js} +1 -1
  6. package/dashboard/dist/assets/{blockDiagram-WCTKOSBZ-D3sd7ccQ.js → blockDiagram-WCTKOSBZ-CpNdCY-r.js} +1 -1
  7. package/dashboard/dist/assets/{c4Diagram-IC4MRINW-0qW21hVQ.js → c4Diagram-IC4MRINW-CC29QJCs.js} +1 -1
  8. package/dashboard/dist/assets/channel-IutbH48W.js +1 -0
  9. package/dashboard/dist/assets/{chunk-4BX2VUAB-tDdoFSYw.js → chunk-4BX2VUAB-DKyy-k2D.js} +1 -1
  10. package/dashboard/dist/assets/{chunk-55IACEB6-BU45eS64.js → chunk-55IACEB6-DjobngQk.js} +1 -1
  11. package/dashboard/dist/assets/{chunk-FMBD7UC4-C0iT8QWM.js → chunk-FMBD7UC4-BUftm7dV.js} +1 -1
  12. package/dashboard/dist/assets/{chunk-JSJVCQXG-CELv9Y6Y.js → chunk-JSJVCQXG-Nv7rQv4t.js} +1 -1
  13. package/dashboard/dist/assets/{chunk-KX2RTZJC-CQA_hH8g.js → chunk-KX2RTZJC-Dg6UhNB9.js} +1 -1
  14. package/dashboard/dist/assets/{chunk-NQ4KR5QH-BDv-d6qz.js → chunk-NQ4KR5QH-D8neQrJ_.js} +1 -1
  15. package/dashboard/dist/assets/{chunk-QZHKN3VN-BUOeJd34.js → chunk-QZHKN3VN-Uj9c1naA.js} +1 -1
  16. package/dashboard/dist/assets/{chunk-WL4C6EOR-DBc-Hsx0.js → chunk-WL4C6EOR-DfeSsP3z.js} +1 -1
  17. package/dashboard/dist/assets/classDiagram-VBA2DB6C-8IywRj9I.js +1 -0
  18. package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-8IywRj9I.js +1 -0
  19. package/dashboard/dist/assets/clone-C6saGiCd.js +1 -0
  20. package/dashboard/dist/assets/{cose-bilkent-S5V4N54A-C_Q4c3xo.js → cose-bilkent-S5V4N54A-CLfZNKcO.js} +1 -1
  21. package/dashboard/dist/assets/{dagre-KLK3FWXG-DdI10bBF.js → dagre-KLK3FWXG-DyJLICZx.js} +1 -1
  22. package/dashboard/dist/assets/{diagram-E7M64L7V-DtCF4Ea9.js → diagram-E7M64L7V-DhQc7Ta3.js} +1 -1
  23. package/dashboard/dist/assets/{diagram-IFDJBPK2-BVmpBmIK.js → diagram-IFDJBPK2-C6kFO7hB.js} +1 -1
  24. package/dashboard/dist/assets/{diagram-P4PSJMXO-BH4XFc0W.js → diagram-P4PSJMXO-B6oCiOXk.js} +1 -1
  25. package/dashboard/dist/assets/{erDiagram-INFDFZHY-CCjG3Ewp.js → erDiagram-INFDFZHY-BsMPaSwJ.js} +1 -1
  26. package/dashboard/dist/assets/{flowDiagram-PKNHOUZH-V0PT07-Y.js → flowDiagram-PKNHOUZH-DLxEqKtZ.js} +1 -1
  27. package/dashboard/dist/assets/{ganttDiagram-A5KZAMGK-y_85pJZf.js → ganttDiagram-A5KZAMGK-D70pvqxG.js} +1 -1
  28. package/dashboard/dist/assets/{gitGraphDiagram-K3NZZRJ6-B2maPPcL.js → gitGraphDiagram-K3NZZRJ6-D74VHtlE.js} +1 -1
  29. package/dashboard/dist/assets/{graph-DO1oCTrt.js → graph-C8bz_IEO.js} +1 -1
  30. package/dashboard/dist/assets/{index-BZwPAi8K.css → index-BetqH_3H.css} +1 -1
  31. package/dashboard/dist/assets/index-h-X_8om3.js +675 -0
  32. package/dashboard/dist/assets/{infoDiagram-LFFYTUFH-BIaqpTlK.js → infoDiagram-LFFYTUFH-DivBd0Pz.js} +1 -1
  33. package/dashboard/dist/assets/{ishikawaDiagram-PHBUUO56-BaBqTUzg.js → ishikawaDiagram-PHBUUO56-BGihUeOE.js} +1 -1
  34. package/dashboard/dist/assets/{journeyDiagram-4ABVD52K-CS2l7gmE.js → journeyDiagram-4ABVD52K-C7U4cWHQ.js} +1 -1
  35. package/dashboard/dist/assets/{kanban-definition-K7BYSVSG-B3Viag1o.js → kanban-definition-K7BYSVSG-CFp_hDTm.js} +1 -1
  36. package/dashboard/dist/assets/{layout-BQu5nxr5.js → layout-DMSDPqCs.js} +1 -1
  37. package/dashboard/dist/assets/{linear-DliLQN5_.js → linear-CCC-meYc.js} +1 -1
  38. package/dashboard/dist/assets/{mermaid.core-y_G2N_4o.js → mermaid.core-BDa2cc2K.js} +4 -4
  39. package/dashboard/dist/assets/{mindmap-definition-YRQLILUH-EZz-bEA_.js → mindmap-definition-YRQLILUH-DLKvONhO.js} +1 -1
  40. package/dashboard/dist/assets/{pieDiagram-SKSYHLDU-E67ZAs-E.js → pieDiagram-SKSYHLDU-DAJoGZ93.js} +1 -1
  41. package/dashboard/dist/assets/{quadrantDiagram-337W2JSQ-GU25jLyr.js → quadrantDiagram-337W2JSQ-Bo7haX1W.js} +1 -1
  42. package/dashboard/dist/assets/{requirementDiagram-Z7DCOOCP-4Jfq0mB9.js → requirementDiagram-Z7DCOOCP-uEvGz33v.js} +1 -1
  43. package/dashboard/dist/assets/{sankeyDiagram-WA2Y5GQK-C22SY4ul.js → sankeyDiagram-WA2Y5GQK-cjYoCGCM.js} +1 -1
  44. package/dashboard/dist/assets/{sequenceDiagram-2WXFIKYE-CkBh7V9t.js → sequenceDiagram-2WXFIKYE-CYXcNklt.js} +1 -1
  45. package/dashboard/dist/assets/{stateDiagram-RAJIS63D-n4DRlbfF.js → stateDiagram-RAJIS63D-B5We7jAw.js} +1 -1
  46. package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-CX9-EpBi.js +1 -0
  47. package/dashboard/dist/assets/{timeline-definition-YZTLITO2-CGD5ojK7.js → timeline-definition-YZTLITO2-CEqVmnVQ.js} +1 -1
  48. package/dashboard/dist/assets/{treemap-KZPCXAKY-EZfHxNz6.js → treemap-KZPCXAKY-CE1puPeN.js} +1 -1
  49. package/dashboard/dist/assets/{vennDiagram-LZ73GAT5-B9x6fx-l.js → vennDiagram-LZ73GAT5-CiiuRUjK.js} +1 -1
  50. package/dashboard/dist/assets/{xychartDiagram-JWTSCODW-ufzpkH1I.js → xychartDiagram-JWTSCODW-B0OuxFm9.js} +1 -1
  51. package/dashboard/dist/index.html +2 -2
  52. package/dist/dashboard/server.js +509 -221
  53. package/dist/dashboard/server.js.map +1 -1
  54. package/dist/index.js +1210 -823
  55. package/dist/index.js.map +1 -1
  56. package/dist/launch/index.d.ts +69 -7
  57. package/dist/launch/index.js +229 -24
  58. package/dist/launch/index.js.map +1 -1
  59. package/package.json +1 -1
  60. package/platforms/claude-code/.claude-plugin/plugin.json +1 -1
  61. package/platforms/codex/.codex-plugin/plugin.json +1 -1
  62. package/platforms/hermes/plugins/syntaur/__pycache__/__init__.cpython-312.pyc +0 -0
  63. package/platforms/hermes/plugins/syntaur/__pycache__/boundary.cpython-312.pyc +0 -0
  64. package/dashboard/dist/assets/channel-BDsImlpM.js +0 -1
  65. package/dashboard/dist/assets/classDiagram-VBA2DB6C-BhdNnCQ2.js +0 -1
  66. package/dashboard/dist/assets/classDiagram-v2-RAHNMMFH-BhdNnCQ2.js +0 -1
  67. package/dashboard/dist/assets/clone-B5RwQsX7.js +0 -1
  68. package/dashboard/dist/assets/index-CG8rQF5o.js +0 -670
  69. package/dashboard/dist/assets/stateDiagram-v2-FVOUBMTO-RpTmT3-9.js +0 -1
@@ -0,0 +1,675 @@
1
+ var hM=Object.defineProperty;var mM=(e,t,n)=>t in e?hM(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var qx=(e,t,n)=>mM(e,typeof t!="symbol"?t+"":t,n);function gM(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 _d(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function ece(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 Gx={exports:{}},bu={},Yx={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 x1;function xM(){if(x1)return Et;x1=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(B){return B===null||typeof B!="object"?null:(B=h&&B[h]||B["@@iterator"],typeof B=="function"?B:null)}var y={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,v={};function b(B,Y,H){this.props=B,this.context=Y,this.refs=v,this.updater=H||y}b.prototype.isReactComponent={},b.prototype.setState=function(B,Y){if(typeof B!="object"&&typeof B!="function"&&B!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,B,Y,"setState")},b.prototype.forceUpdate=function(B){this.updater.enqueueForceUpdate(this,B,"forceUpdate")};function j(){}j.prototype=b.prototype;function S(B,Y,H){this.props=B,this.context=Y,this.refs=v,this.updater=H||y}var N=S.prototype=new j;N.constructor=S,k(N,b.prototype),N.isPureReactComponent=!0;var C=Array.isArray,A=Object.prototype.hasOwnProperty,T={current:null},_={key:!0,ref:!0,__self:!0,__source:!0};function O(B,Y,H){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)A.call(Y,Q)&&!_.hasOwnProperty(Q)&&(J[Q]=Y[Q]);var te=arguments.length-2;if(te===1)J.children=H;else if(1<te){for(var ue=Array(te),ge=0;ge<te;ge++)ue[ge]=arguments[ge+2];J.children=ue}if(B&&B.defaultProps)for(Q in te=B.defaultProps,te)J[Q]===void 0&&(J[Q]=te[Q]);return{$$typeof:e,type:B,key:Z,ref:oe,props:J,_owner:T.current}}function P(B,Y){return{$$typeof:e,type:B.type,key:Y,ref:B.ref,props:B.props,_owner:B._owner}}function W(B){return typeof B=="object"&&B!==null&&B.$$typeof===e}function I(B){var Y={"=":"=0",":":"=2"};return"$"+B.replace(/[=:]/g,function(H){return Y[H]})}var z=/\/+/g;function U(B,Y){return typeof B=="object"&&B!==null&&B.key!=null?I(""+B.key):Y.toString(36)}function D(B,Y,H,Q,J){var Z=typeof B;(Z==="undefined"||Z==="boolean")&&(B=null);var oe=!1;if(B===null)oe=!0;else switch(Z){case"string":case"number":oe=!0;break;case"object":switch(B.$$typeof){case e:case t:oe=!0}}if(oe)return oe=B,J=J(oe),B=Q===""?"."+U(oe,0):Q,C(J)?(H="",B!=null&&(H=B.replace(z,"$&/")+"/"),D(J,Y,H,"",function(ge){return ge})):J!=null&&(W(J)&&(J=P(J,H+(!J.key||oe&&oe.key===J.key?"":(""+J.key).replace(z,"$&/")+"/")+B)),Y.push(J)),1;if(oe=0,Q=Q===""?".":Q+":",C(B))for(var te=0;te<B.length;te++){Z=B[te];var ue=Q+U(Z,te);oe+=D(Z,Y,H,ue,J)}else if(ue=g(B),typeof ue=="function")for(B=ue.call(B),te=0;!(Z=B.next()).done;)Z=Z.value,ue=Q+U(Z,te++),oe+=D(Z,Y,H,ue,J);else if(Z==="object")throw Y=String(B),Error("Objects are not valid as a React child (found: "+(Y==="[object Object]"?"object with keys {"+Object.keys(B).join(", ")+"}":Y)+"). If you meant to render a collection of children, use an array instead.");return oe}function F(B,Y,H){if(B==null)return B;var Q=[],J=0;return D(B,Q,"","",function(Z){return Y.call(H,Z,J++)}),Q}function M(B){if(B._status===-1){var Y=B._result;Y=Y(),Y.then(function(H){(B._status===0||B._status===-1)&&(B._status=1,B._result=H)},function(H){(B._status===0||B._status===-1)&&(B._status=2,B._result=H)}),B._status===-1&&(B._status=0,B._result=Y)}if(B._status===1)return B._result.default;throw B._result}var K={current:null},$={transition:null},V={ReactCurrentDispatcher:K,ReactCurrentBatchConfig:$,ReactCurrentOwner:T};function L(){throw Error("act(...) is not supported in production builds of React.")}return Et.Children={map:F,forEach:function(B,Y,H){F(B,function(){Y.apply(this,arguments)},H)},count:function(B){var Y=0;return F(B,function(){Y++}),Y},toArray:function(B){return F(B,function(Y){return Y})||[]},only:function(B){if(!W(B))throw Error("React.Children.only expected to receive a single React element child.");return B}},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=V,Et.act=L,Et.cloneElement=function(B,Y,H){if(B==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+B+".");var Q=k({},B.props),J=B.key,Z=B.ref,oe=B._owner;if(Y!=null){if(Y.ref!==void 0&&(Z=Y.ref,oe=T.current),Y.key!==void 0&&(J=""+Y.key),B.type&&B.type.defaultProps)var te=B.type.defaultProps;for(ue in Y)A.call(Y,ue)&&!_.hasOwnProperty(ue)&&(Q[ue]=Y[ue]===void 0&&te!==void 0?te[ue]:Y[ue])}var ue=arguments.length-2;if(ue===1)Q.children=H;else if(1<ue){te=Array(ue);for(var ge=0;ge<ue;ge++)te[ge]=arguments[ge+2];Q.children=te}return{$$typeof:e,type:B.type,key:J,ref:Z,props:Q,_owner:oe}},Et.createContext=function(B){return B={$$typeof:a,_currentValue:B,_currentValue2:B,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},B.Provider={$$typeof:i,_context:B},B.Consumer=B},Et.createElement=O,Et.createFactory=function(B){var Y=O.bind(null,B);return Y.type=B,Y},Et.createRef=function(){return{current:null}},Et.forwardRef=function(B){return{$$typeof:l,render:B}},Et.isValidElement=W,Et.lazy=function(B){return{$$typeof:p,_payload:{_status:-1,_result:B},_init:M}},Et.memo=function(B,Y){return{$$typeof:f,type:B,compare:Y===void 0?null:Y}},Et.startTransition=function(B){var Y=$.transition;$.transition={};try{B()}finally{$.transition=Y}},Et.unstable_act=L,Et.useCallback=function(B,Y){return K.current.useCallback(B,Y)},Et.useContext=function(B){return K.current.useContext(B)},Et.useDebugValue=function(){},Et.useDeferredValue=function(B){return K.current.useDeferredValue(B)},Et.useEffect=function(B,Y){return K.current.useEffect(B,Y)},Et.useId=function(){return K.current.useId()},Et.useImperativeHandle=function(B,Y,H){return K.current.useImperativeHandle(B,Y,H)},Et.useInsertionEffect=function(B,Y){return K.current.useInsertionEffect(B,Y)},Et.useLayoutEffect=function(B,Y){return K.current.useLayoutEffect(B,Y)},Et.useMemo=function(B,Y){return K.current.useMemo(B,Y)},Et.useReducer=function(B,Y,H){return K.current.useReducer(B,Y,H)},Et.useRef=function(B){return K.current.useRef(B)},Et.useState=function(B){return K.current.useState(B)},Et.useSyncExternalStore=function(B,Y,H){return K.current.useSyncExternalStore(B,Y,H)},Et.useTransition=function(){return K.current.useTransition()},Et.version="18.3.1",Et}var y1;function Dd(){return y1||(y1=1,Yx.exports=xM()),Yx.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 b1;function yM(){if(b1)return bu;b1=1;var e=Dd(),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 bu.Fragment=n,bu.jsx=a,bu.jsxs=a,bu}var v1;function bM(){return v1||(v1=1,Gx.exports=yM()),Gx.exports}var s=bM(),m=Dd();const Ot=_d(m),YE=gM({__proto__:null,default:Ot},[m]);var op={},Xx={exports:{}},gr={},Qx={exports:{}},Jx={};/**
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 w1;function vM(){return w1||(w1=1,(function(e){function t($,V){var L=$.length;$.push(V);e:for(;0<L;){var B=L-1>>>1,Y=$[B];if(0<o(Y,V))$[B]=V,$[L]=Y,L=B;else break e}}function n($){return $.length===0?null:$[0]}function r($){if($.length===0)return null;var V=$[0],L=$.pop();if(L!==V){$[0]=L;e:for(var B=0,Y=$.length,H=Y>>>1;B<H;){var Q=2*(B+1)-1,J=$[Q],Z=Q+1,oe=$[Z];if(0>o(J,L))Z<Y&&0>o(oe,J)?($[B]=oe,$[Z]=L,B=Z):($[B]=J,$[Q]=L,B=Q);else if(Z<Y&&0>o(oe,L))$[B]=oe,$[Z]=L,B=Z;else break e}}return V}function o($,V){var L=$.sortIndex-V.sortIndex;return L!==0?L:$.id-V.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($){for(var V=n(f);V!==null;){if(V.callback===null)r(f);else if(V.startTime<=$)r(f),V.sortIndex=V.expirationTime,t(u,V);else break;V=n(f)}}function C($){if(v=!1,N($),!k)if(n(u)!==null)k=!0,M(A);else{var V=n(f);V!==null&&K(C,V.startTime-$)}}function A($,V){k=!1,v&&(v=!1,j(O),O=-1),y=!0;var L=g;try{for(N(V),h=n(u);h!==null&&(!(h.expirationTime>V)||$&&!I());){var B=h.callback;if(typeof B=="function"){h.callback=null,g=h.priorityLevel;var Y=B(h.expirationTime<=V);V=e.unstable_now(),typeof Y=="function"?h.callback=Y:h===n(u)&&r(u),N(V)}else r(u);h=n(u)}if(h!==null)var H=!0;else{var Q=n(f);Q!==null&&K(C,Q.startTime-V),H=!1}return H}finally{h=null,g=L,y=!1}}var T=!1,_=null,O=-1,P=5,W=-1;function I(){return!(e.unstable_now()-W<P)}function z(){if(_!==null){var $=e.unstable_now();W=$;var V=!0;try{V=_(!0,$)}finally{V?U():(T=!1,_=null)}}else T=!1}var U;if(typeof S=="function")U=function(){S(z)};else if(typeof MessageChannel<"u"){var D=new MessageChannel,F=D.port2;D.port1.onmessage=z,U=function(){F.postMessage(null)}}else U=function(){b(z,0)};function M($){_=$,T||(T=!0,U())}function K($,V){O=b(function(){$(e.unstable_now())},V)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function($){$.callback=null},e.unstable_continueExecution=function(){k||y||(k=!0,M(A))},e.unstable_forceFrameRate=function($){0>$||125<$?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):P=0<$?Math.floor(1e3/$):5},e.unstable_getCurrentPriorityLevel=function(){return g},e.unstable_getFirstCallbackNode=function(){return n(u)},e.unstable_next=function($){switch(g){case 1:case 2:case 3:var V=3;break;default:V=g}var L=g;g=V;try{return $()}finally{g=L}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function($,V){switch($){case 1:case 2:case 3:case 4:case 5:break;default:$=3}var L=g;g=$;try{return V()}finally{g=L}},e.unstable_scheduleCallback=function($,V,L){var B=e.unstable_now();switch(typeof L=="object"&&L!==null?(L=L.delay,L=typeof L=="number"&&0<L?B+L:B):L=B,$){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,$={id:p++,callback:V,priorityLevel:$,startTime:L,expirationTime:Y,sortIndex:-1},L>B?($.sortIndex=L,t(f,$),n(u)===null&&$===n(f)&&(v?(j(O),O=-1):v=!0,K(C,L-B))):($.sortIndex=Y,t(u,$),k||y||(k=!0,M(A))),$},e.unstable_shouldYield=I,e.unstable_wrapCallback=function($){var V=g;return function(){var L=g;g=V;try{return $.apply(this,arguments)}finally{g=L}}}})(Jx)),Jx}var j1;function wM(){return j1||(j1=1,Qx.exports=vM()),Qx.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 k1;function jM(){if(k1)return gr;k1=1;var e=Dd(),t=wM();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,R,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=R,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,A=Symbol.for("react.element"),T=Symbol.for("react.portal"),_=Symbol.for("react.fragment"),O=Symbol.for("react.strict_mode"),P=Symbol.for("react.profiler"),W=Symbol.for("react.provider"),I=Symbol.for("react.context"),z=Symbol.for("react.forward_ref"),U=Symbol.for("react.suspense"),D=Symbol.for("react.suspense_list"),F=Symbol.for("react.memo"),M=Symbol.for("react.lazy"),K=Symbol.for("react.offscreen"),$=Symbol.iterator;function V(c){return c===null||typeof c!="object"?null:(c=$&&c[$]||c["@@iterator"],typeof c=="function"?c:null)}var L=Object.assign,B;function Y(c){if(B===void 0)try{throw Error()}catch(x){var d=x.stack.trim().match(/\n( *(at )?)/);B=d&&d[1]||""}return`
34
+ `+B+c}var H=!1;function Q(c,d){if(!c||H)return"";H=!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
+ `),R=w.stack.split(`
36
+ `),G=E.length-1,ee=R.length-1;1<=G&&0<=ee&&E[G]!==R[ee];)ee--;for(;1<=G&&0<=ee;G--,ee--)if(E[G]!==R[ee]){if(G!==1||ee!==1)do if(G--,ee--,0>ee||E[G]!==R[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{H=!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 _:return"Fragment";case T:return"Portal";case P:return"Profiler";case O:return"StrictMode";case U:return"Suspense";case D:return"SuspenseList"}if(typeof c=="object")switch(c.$$typeof){case I:return(c.displayName||"Context")+".Consumer";case W:return(c._context.displayName||"Context")+".Provider";case z:var d=c.render;return c=c.displayName,c||(c=d.displayName||d.name||"",c=c!==""?"ForwardRef("+c+")":"ForwardRef"),c;case F:return d=c.displayName||null,d!==null?d:Z(c.type)||"Memo";case M: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===O?"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 te(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,R=x.set;return Object.defineProperty(c,d,{configurable:!0,get:function(){return E.call(this)},set:function(G){w=""+G,R.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=te(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 be(c,d){d=d.checked,d!=null&&N(c,"checked",d,!1)}function ye(c,d){be(c,d);var x=te(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,te(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=""+te(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:te(x)}}function ht(c,d){var x=te(d.value),w=te(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 it(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,Pe=(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 ne=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 mt(c){if(c=su(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 nt(){if(Fe){var c=Fe,d=lt;if(lt=Fe=null,mt(c),d)for(c=0;c<d.length;c++)mt(d[c])}}function _t(c,d){return c(d)}function Bt(){}var Ut=!1;function Tn(c,d,x){if(Ut)return c(d,x);Ut=!0;try{return _t(c,d,x)}finally{Ut=!1,(Fe!==null||lt!==null)&&(Bt(),nt())}}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 at(c,d,x,w,E,R,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,et=null,Rn={onError:function(c){Mt=!0,le=c}};function Er(c,d,x,w,E,R,G,ee,se){Mt=!1,le=null,at.apply(Rn,arguments)}function lo(c,d,x,w,E,R,G,ee,se){if(Er.apply(this,arguments),Mt){if(Mt){var he=le;Mt=!1,le=null}else throw Error(n(198));Ne||(Ne=!0,et=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 _i(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 Oo(c){if(wt(c)!==c)throw Error(n(188))}function Ma(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 R=E.alternate;if(R===null){if(w=E.return,w!==null){x=w;continue}break}if(E.child===R.child){for(R=E.child;R;){if(R===x)return Oo(E),c;if(R===w)return Oo(E),d;R=R.sibling}throw Error(n(188))}if(x.return!==w.return)x=E,w=R;else{for(var G=!1,ee=E.child;ee;){if(ee===x){G=!0,x=E,w=R;break}if(ee===w){G=!0,w=E,x=R;break}ee=ee.sibling}if(!G){for(ee=R.child;ee;){if(ee===x){G=!0,x=R,w=E;break}if(ee===w){G=!0,w=R,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=Ma(c),c!==null?Fo(c):null}function Fo(c){if(c.tag===5||c.tag===6)return c;for(c=c.child;c!==null;){var d=Fo(c);if(d!==null)return d;c=c.sibling}return null}var La=t.unstable_scheduleCallback,Oa=t.unstable_cancelCallback,Bc=t.unstable_shouldYield,Fa=t.unstable_requestPaint,Ht=t.unstable_now,Di=t.unstable_getCurrentPriorityLevel,co=t.unstable_ImmediatePriority,zo=t.unstable_UserBlockingPriority,Ds=t.unstable_NormalPriority,Bo=t.unstable_LowPriority,za=t.unstable_IdlePriority,Uo=null,ir=null;function ur(c){if(ir&&typeof ir.onCommitFiberRoot=="function")try{ir.onCommitFiberRoot(Uo,c,void 0,(c.current.flags&128)===128)}catch{}}var Ln=Math.clz32?Math.clz32:Hc,Ho=Math.log,Uc=Math.LN2;function Hc(c){return c>>>=0,c===0?32:31-(Ho(c)/Uc|0)|0}var Vo=64,Kn=4194304;function uo(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 Vr(c,d){var x=c.pendingLanes;if(x===0)return 0;var w=0,E=c.suspendedLanes,R=c.pingedLanes,G=x&268435455;if(G!==0){var ee=G&~E;ee!==0?w=uo(ee):(R&=G,R!==0&&(w=uo(R)))}else G=x&~E,G!==0?w=uo(G):R!==0&&(w=uo(R));if(w===0)return 0;if(d!==0&&d!==w&&(d&E)===0&&(E=w&-w,R=d&-d,E>=R||E===16&&(R&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-Ln(d),E=1<<x,w|=c[x],d&=~E;return w}function Ba(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 $i(c,d){for(var x=c.suspendedLanes,w=c.pingedLanes,E=c.expirationTimes,R=c.pendingLanes;0<R;){var G=31-Ln(R),ee=1<<G,se=E[G];se===-1?((ee&x)===0||(ee&w)!==0)&&(E[G]=Ba(ee,d)):se<=d&&(c.expiredLanes|=ee),R&=~ee}}function Wo(c){return c=c.pendingLanes&-1073741825,c!==0?c:c&1073741824?1073741824:0}function Ko(){var c=Vo;return Vo<<=1,(Vo&4194240)===0&&(Vo=64),c}function $s(c){for(var d=[],x=0;31>x;x++)d.push(c);return d}function On(c,d,x){c.pendingLanes|=d,d!==536870912&&(c.suspendedLanes=0,c.pingedLanes=0),c=c.eventTimes,d=31-Ln(d),c[d]=x}function An(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-Ln(x),R=1<<E;d[E]=0,w[E]=-1,c[E]=-1,x&=~R}}function Is(c,d){var x=c.entangledLanes|=d;for(c=c.entanglements;x;){var w=31-Ln(x),E=1<<w;E&d|c[w]&d&&(c[w]|=d),x&=~E}}var Ft=0;function lf(c){return c&=-c,1<c?4<c?(c&268435455)!==0?16:536870912:4:1}var Vc,Ii,Wc,fo,Kc,Mi=!1,Ua=[],Ms=null,fn=null,Ls=null,po=new Map,Li=new Map,Os=[],vg="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 Fs(c,d){switch(c){case"focusin":case"focusout":Ms=null;break;case"dragenter":case"dragleave":fn=null;break;case"mouseover":case"mouseout":Ls=null;break;case"pointerover":case"pointerout":po.delete(d.pointerId);break;case"gotpointercapture":case"lostpointercapture":Li.delete(d.pointerId)}}function X(c,d,x,w,E,R){return c===null||c.nativeEvent!==R?(c={blockedOn:d,domEventName:x,eventSystemFlags:w,nativeEvent:R,targetContainers:[E]},d!==null&&(d=su(d),d!==null&&Ii(d)),c):(c.eventSystemFlags|=w,d=c.targetContainers,E!==null&&d.indexOf(E)===-1&&d.push(E),c)}function re(c,d,x,w,E){switch(d){case"focusin":return Ms=X(Ms,c,d,x,w,E),!0;case"dragenter":return fn=X(fn,c,d,x,w,E),!0;case"mouseover":return Ls=X(Ls,c,d,x,w,E),!0;case"pointerover":var R=E.pointerId;return po.set(R,X(po.get(R)||null,c,d,x,w,E)),!0;case"gotpointercapture":return R=E.pointerId,Li.set(R,X(Li.get(R)||null,c,d,x,w,E)),!0}return!1}function we(c){var d=Oi(c.target);if(d!==null){var x=wt(d);if(x!==null){if(d=x.tag,d===13){if(d=_i(x),d!==null){c.blockedOn=d,Kc(c.priority,function(){Wc(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 ze(c){if(c.blockedOn!==null)return!1;for(var d=c.targetContainers;0<d.length;){var x=Wr(c.domEventName,c.eventSystemFlags,d[0],c.nativeEvent);if(x===null){x=c.nativeEvent;var w=new x.constructor(x.type,x);ne=w,x.target.dispatchEvent(w),ne=null}else return d=su(x),d!==null&&Ii(d),c.blockedOn=x,!1;d.shift()}return!0}function yt(c,d,x){ze(c)&&x.delete(d)}function Dt(){Mi=!1,Ms!==null&&ze(Ms)&&(Ms=null),fn!==null&&ze(fn)&&(fn=null),Ls!==null&&ze(Ls)&&(Ls=null),po.forEach(yt),Li.forEach(yt)}function $t(c,d){c.blockedOn===d&&(c.blockedOn=null,Mi||(Mi=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,Dt)))}function Fn(c){function d(E){return $t(E,c)}if(0<Ua.length){$t(Ua[0],c);for(var x=1;x<Ua.length;x++){var w=Ua[x];w.blockedOn===c&&(w.blockedOn=null)}}for(Ms!==null&&$t(Ms,c),fn!==null&&$t(fn,c),Ls!==null&&$t(Ls,c),po.forEach(d),Li.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);)we(x),x.blockedOn===null&&Os.shift()}var yn=C.ReactCurrentBatchConfig,pn=!0;function Tr(c,d,x,w){var E=Ft,R=yn.transition;yn.transition=null;try{Ft=1,Va(c,d,x,w)}finally{Ft=E,yn.transition=R}}function Ha(c,d,x,w){var E=Ft,R=yn.transition;yn.transition=null;try{Ft=4,Va(c,d,x,w)}finally{Ft=E,yn.transition=R}}function Va(c,d,x,w){if(pn){var E=Wr(c,d,x,w);if(E===null)Lg(c,d,w,ho,x),Fs(c,w);else if(re(E,c,d,x,w))w.stopPropagation();else if(Fs(c,w),d&4&&-1<vg.indexOf(c)){for(;E!==null;){var R=su(E);if(R!==null&&Vc(R),R=Wr(c,d,x,w),R===null&&Lg(c,d,w,ho,x),R===E)break;E=R}E!==null&&w.stopPropagation()}else Lg(c,d,w,null,x)}}var ho=null;function Wr(c,d,x,w){if(ho=null,c=xe(w),c=Oi(c),c!==null)if(d=wt(c),d===null)c=null;else if(x=d.tag,x===13){if(c=_i(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 ho=c,null}function rj(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(Di()){case co:return 1;case zo:return 4;case Ds:case Bo:return 16;case za:return 536870912;default:return 16}default:return 16}}var qo=null,wg=null,cf=null;function sj(){if(cf)return cf;var c,d=wg,x=d.length,w,E="value"in qo?qo.value:qo.textContent,R=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[R-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 oj(){return!1}function Rr(c){function d(x,w,E,R,G){this._reactName=x,this._targetInst=E,this.type=w,this.nativeEvent=R,this.target=G,this.currentTarget=null;for(var ee in c)c.hasOwnProperty(ee)&&(x=c[ee],this[ee]=x?x(R):R[ee]);return this.isDefaultPrevented=(R.defaultPrevented!=null?R.defaultPrevented:R.returnValue===!1)?df:oj,this.isPropagationStopped=oj,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 Wa={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(c){return c.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},jg=Rr(Wa),qc=L({},Wa,{view:0,detail:0}),B$=Rr(qc),kg,Ng,Gc,ff=L({},qc,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Cg,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!==Gc&&(Gc&&c.type==="mousemove"?(kg=c.screenX-Gc.screenX,Ng=c.screenY-Gc.screenY):Ng=kg=0,Gc=c),kg)},movementY:function(c){return"movementY"in c?c.movementY:Ng}}),ij=Rr(ff),U$=L({},ff,{dataTransfer:0}),H$=Rr(U$),V$=L({},qc,{relatedTarget:0}),Sg=Rr(V$),W$=L({},Wa,{animationName:0,elapsedTime:0,pseudoElement:0}),K$=Rr(W$),q$=L({},Wa,{clipboardData:function(c){return"clipboardData"in c?c.clipboardData:window.clipboardData}}),G$=Rr(q$),Y$=L({},Wa,{data:0}),aj=Rr(Y$),X$={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Q$={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"},J$={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function Z$(c){var d=this.nativeEvent;return d.getModifierState?d.getModifierState(c):(c=J$[c])?!!d[c]:!1}function Cg(){return Z$}var eI=L({},qc,{key:function(c){if(c.key){var d=X$[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"?Q$[c.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Cg,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}}),tI=Rr(eI),nI=L({},ff,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),lj=Rr(nI),rI=L({},qc,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Cg}),sI=Rr(rI),oI=L({},Wa,{propertyName:0,elapsedTime:0,pseudoElement:0}),iI=Rr(oI),aI=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}),lI=Rr(aI),cI=[9,13,27,32],Eg=l&&"CompositionEvent"in window,Yc=null;l&&"documentMode"in document&&(Yc=document.documentMode);var uI=l&&"TextEvent"in window&&!Yc,cj=l&&(!Eg||Yc&&8<Yc&&11>=Yc),uj=" ",dj=!1;function fj(c,d){switch(c){case"keyup":return cI.indexOf(d.keyCode)!==-1;case"keydown":return d.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function pj(c){return c=c.detail,typeof c=="object"&&"data"in c?c.data:null}var Ka=!1;function dI(c,d){switch(c){case"compositionend":return pj(d);case"keypress":return d.which!==32?null:(dj=!0,uj);case"textInput":return c=d.data,c===uj&&dj?null:c;default:return null}}function fI(c,d){if(Ka)return c==="compositionend"||!Eg&&fj(c,d)?(c=sj(),cf=wg=qo=null,Ka=!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 cj&&d.locale!=="ko"?null:d.data;default:return null}}var pI={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 hj(c){var d=c&&c.nodeName&&c.nodeName.toLowerCase();return d==="input"?!!pI[c.type]:d==="textarea"}function mj(c,d,x,w){vt(w),d=xf(d,"onChange"),0<d.length&&(x=new jg("onChange","change",null,x,w),c.push({event:x,listeners:d}))}var Xc=null,Qc=null;function hI(c){Dj(c,0)}function pf(c){var d=Qa(c);if(Se(d))return c}function mI(c,d){if(c==="change")return d}var gj=!1;if(l){var Tg;if(l){var Rg="oninput"in document;if(!Rg){var xj=document.createElement("div");xj.setAttribute("oninput","return;"),Rg=typeof xj.oninput=="function"}Tg=Rg}else Tg=!1;gj=Tg&&(!document.documentMode||9<document.documentMode)}function yj(){Xc&&(Xc.detachEvent("onpropertychange",bj),Qc=Xc=null)}function bj(c){if(c.propertyName==="value"&&pf(Qc)){var d=[];mj(d,Qc,c,xe(c)),Tn(hI,d)}}function gI(c,d,x){c==="focusin"?(yj(),Xc=d,Qc=x,Xc.attachEvent("onpropertychange",bj)):c==="focusout"&&yj()}function xI(c){if(c==="selectionchange"||c==="keyup"||c==="keydown")return pf(Qc)}function yI(c,d){if(c==="click")return pf(d)}function bI(c,d){if(c==="input"||c==="change")return pf(d)}function vI(c,d){return c===d&&(c!==0||1/c===1/d)||c!==c&&d!==d}var as=typeof Object.is=="function"?Object.is:vI;function Jc(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 vj(c){for(;c&&c.firstChild;)c=c.firstChild;return c}function wj(c,d){var x=vj(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=vj(x)}}function jj(c,d){return c&&d?c===d?!0:c&&c.nodeType===3?!1:d&&d.nodeType===3?jj(c,d.parentNode):"contains"in c?c.contains(d):c.compareDocumentPosition?!!(c.compareDocumentPosition(d)&16):!1:!1}function kj(){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 Ag(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 wI(c){var d=kj(),x=c.focusedElem,w=c.selectionRange;if(d!==x&&x&&x.ownerDocument&&jj(x.ownerDocument.documentElement,x)){if(w!==null&&Ag(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,R=Math.min(w.start,E);w=w.end===void 0?R:Math.min(w.end,E),!c.extend&&R>w&&(E=w,w=R,R=E),E=wj(x,R);var G=wj(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(),R>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 jI=l&&"documentMode"in document&&11>=document.documentMode,qa=null,Pg=null,Zc=null,_g=!1;function Nj(c,d,x){var w=x.window===x?x.document:x.nodeType===9?x:x.ownerDocument;_g||qa==null||qa!==ke(w)||(w=qa,"selectionStart"in w&&Ag(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}),Zc&&Jc(Zc,w)||(Zc=w,w=xf(Pg,"onSelect"),0<w.length&&(d=new jg("onSelect","select",null,d,x),c.push({event:d,listeners:w}),d.target=qa)))}function hf(c,d){var x={};return x[c.toLowerCase()]=d.toLowerCase(),x["Webkit"+c]="webkit"+d,x["Moz"+c]="moz"+d,x}var Ga={animationend:hf("Animation","AnimationEnd"),animationiteration:hf("Animation","AnimationIteration"),animationstart:hf("Animation","AnimationStart"),transitionend:hf("Transition","TransitionEnd")},Dg={},Sj={};l&&(Sj=document.createElement("div").style,"AnimationEvent"in window||(delete Ga.animationend.animation,delete Ga.animationiteration.animation,delete Ga.animationstart.animation),"TransitionEvent"in window||delete Ga.transitionend.transition);function mf(c){if(Dg[c])return Dg[c];if(!Ga[c])return c;var d=Ga[c],x;for(x in d)if(d.hasOwnProperty(x)&&x in Sj)return Dg[c]=d[x];return c}var Cj=mf("animationend"),Ej=mf("animationiteration"),Tj=mf("animationstart"),Rj=mf("transitionend"),Aj=new Map,Pj="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 Go(c,d){Aj.set(c,d),i(d,[c])}for(var $g=0;$g<Pj.length;$g++){var Ig=Pj[$g],kI=Ig.toLowerCase(),NI=Ig[0].toUpperCase()+Ig.slice(1);Go(kI,"on"+NI)}Go(Cj,"onAnimationEnd"),Go(Ej,"onAnimationIteration"),Go(Tj,"onAnimationStart"),Go("dblclick","onDoubleClick"),Go("focusin","onFocus"),Go("focusout","onBlur"),Go(Rj,"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 eu="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(" "),SI=new Set("cancel close invalid load scroll toggle".split(" ").concat(eu));function _j(c,d,x){var w=c.type||"unknown-event";c.currentTarget=x,lo(w,d,void 0,c),c.currentTarget=null}function Dj(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 R=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!==R&&E.isPropagationStopped())break e;_j(E,ee,he),R=se}else for(G=0;G<w.length;G++){if(ee=w[G],se=ee.instance,he=ee.currentTarget,ee=ee.listener,se!==R&&E.isPropagationStopped())break e;_j(E,ee,he),R=se}}}if(Ne)throw c=et,Ne=!1,et=null,c}function Xt(c,d){var x=d[Hg];x===void 0&&(x=d[Hg]=new Set);var w=c+"__bubble";x.has(w)||($j(d,c,2,!1),x.add(w))}function Mg(c,d,x){var w=0;d&&(w|=4),$j(x,c,w,d)}var gf="_reactListening"+Math.random().toString(36).slice(2);function tu(c){if(!c[gf]){c[gf]=!0,r.forEach(function(x){x!=="selectionchange"&&(SI.has(x)||Mg(x,!1,c),Mg(x,!0,c))});var d=c.nodeType===9?c:c.ownerDocument;d===null||d[gf]||(d[gf]=!0,Mg("selectionchange",!1,d))}}function $j(c,d,x,w){switch(rj(d)){case 1:var E=Tr;break;case 4:E=Ha;break;default:E=Va}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 Lg(c,d,x,w,E){var R=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=Oi(ee),G===null)return;if(se=G.tag,se===5||se===6){w=R=G;continue e}ee=ee.parentNode}}w=w.return}Tn(function(){var he=R,Te=xe(x),De=[];e:{var Ee=Aj.get(c);if(Ee!==void 0){var Ke=jg,Ze=c;switch(c){case"keypress":if(uf(x)===0)break e;case"keydown":case"keyup":Ke=tI;break;case"focusin":Ze="focus",Ke=Sg;break;case"focusout":Ze="blur",Ke=Sg;break;case"beforeblur":case"afterblur":Ke=Sg;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=ij;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":Ke=H$;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":Ke=sI;break;case Cj:case Ej:case Tj:Ke=K$;break;case Rj:Ke=iI;break;case"scroll":Ke=B$;break;case"wheel":Ke=lI;break;case"copy":case"cut":case"paste":Ke=G$;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":Ke=lj}var tt=(d&4)!==0,hn=!tt&&c==="scroll",de=tt?Ee!==null?Ee+"Capture":null:Ee;tt=[];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&&tt.push(nu(ae,Le,pe)))),hn)break;ae=ae.return}0<tt.length&&(Ee=new Ke(Ee,Ze,null,x,Te),De.push({event:Ee,listeners:tt}))}}if((d&7)===0){e:{if(Ee=c==="mouseover"||c==="pointerover",Ke=c==="mouseout"||c==="pointerout",Ee&&x!==ne&&(Ze=x.relatedTarget||x.fromElement)&&(Oi(Ze)||Ze[mo]))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?Oi(Ze):null,Ze!==null&&(hn=wt(Ze),Ze!==hn||Ze.tag!==5&&Ze.tag!==6)&&(Ze=null)):(Ke=null,Ze=he),Ke!==Ze)){if(tt=ij,Le="onMouseLeave",de="onMouseEnter",ae="mouse",(c==="pointerout"||c==="pointerover")&&(tt=lj,Le="onPointerLeave",de="onPointerEnter",ae="pointer"),hn=Ke==null?Ee:Qa(Ke),pe=Ze==null?Ee:Qa(Ze),Ee=new tt(Le,ae+"leave",Ke,x,Te),Ee.target=hn,Ee.relatedTarget=pe,Le=null,Oi(Te)===he&&(tt=new tt(de,ae+"enter",Ze,x,Te),tt.target=pe,tt.relatedTarget=hn,Le=tt),hn=Le,Ke&&Ze)t:{for(tt=Ke,de=Ze,ae=0,pe=tt;pe;pe=Ya(pe))ae++;for(pe=0,Le=de;Le;Le=Ya(Le))pe++;for(;0<ae-pe;)tt=Ya(tt),ae--;for(;0<pe-ae;)de=Ya(de),pe--;for(;ae--;){if(tt===de||de!==null&&tt===de.alternate)break t;tt=Ya(tt),de=Ya(de)}tt=null}else tt=null;Ke!==null&&Ij(De,Ee,Ke,tt,!1),Ze!==null&&hn!==null&&Ij(De,hn,Ze,tt,!0)}}e:{if(Ee=he?Qa(he):window,Ke=Ee.nodeName&&Ee.nodeName.toLowerCase(),Ke==="select"||Ke==="input"&&Ee.type==="file")var st=mI;else if(hj(Ee))if(gj)st=bI;else{st=xI;var dt=gI}else(Ke=Ee.nodeName)&&Ke.toLowerCase()==="input"&&(Ee.type==="checkbox"||Ee.type==="radio")&&(st=yI);if(st&&(st=st(c,he))){mj(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?Qa(he):window,c){case"focusin":(hj(dt)||dt.contentEditable==="true")&&(qa=dt,Pg=he,Zc=null);break;case"focusout":Zc=Pg=qa=null;break;case"mousedown":_g=!0;break;case"contextmenu":case"mouseup":case"dragend":_g=!1,Nj(De,x,Te);break;case"selectionchange":if(jI)break;case"keydown":case"keyup":Nj(De,x,Te)}var ft;if(Eg)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 Ka?fj(c,x)&&(gt="onCompositionEnd"):c==="keydown"&&x.keyCode===229&&(gt="onCompositionStart");gt&&(cj&&x.locale!=="ko"&&(Ka||gt!=="onCompositionStart"?gt==="onCompositionEnd"&&Ka&&(ft=sj()):(qo=Te,wg="value"in qo?qo.value:qo.textContent,Ka=!0)),dt=xf(he,gt),0<dt.length&&(gt=new aj(gt,c,null,x,Te),De.push({event:gt,listeners:dt}),ft?gt.data=ft:(ft=pj(x),ft!==null&&(gt.data=ft)))),(ft=uI?dI(c,x):fI(c,x))&&(he=xf(he,"onBeforeInput"),0<he.length&&(Te=new aj("onBeforeInput","beforeinput",null,x,Te),De.push({event:Te,listeners:he}),Te.data=ft))}Dj(De,d)})}function nu(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,R=E.stateNode;E.tag===5&&R!==null&&(E=R,R=Ct(c,x),R!=null&&w.unshift(nu(c,R,E)),R=Ct(c,d),R!=null&&w.push(nu(c,R,E))),c=c.return}return w}function Ya(c){if(c===null)return null;do c=c.return;while(c&&c.tag!==5);return c||null}function Ij(c,d,x,w,E){for(var R=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,R),se!=null&&G.unshift(nu(x,se,ee))):E||(se=Ct(x,R),se!=null&&G.push(nu(x,se,ee)))),x=x.return}G.length!==0&&c.push({event:d,listeners:G})}var CI=/\r\n?/g,EI=/\u0000|\uFFFD/g;function Mj(c){return(typeof c=="string"?c:""+c).replace(CI,`
38
+ `).replace(EI,"")}function yf(c,d,x){if(d=Mj(d),Mj(c)!==d&&x)throw Error(n(425))}function bf(){}var Og=null,Fg=null;function zg(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 Bg=typeof setTimeout=="function"?setTimeout:void 0,TI=typeof clearTimeout=="function"?clearTimeout:void 0,Lj=typeof Promise=="function"?Promise:void 0,RI=typeof queueMicrotask=="function"?queueMicrotask:typeof Lj<"u"?function(c){return Lj.resolve(null).then(c).catch(AI)}:Bg;function AI(c){setTimeout(function(){throw c})}function Ug(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),Fn(d);return}w--}else x!=="$"&&x!=="$?"&&x!=="$!"||w++;x=E}while(x);Fn(d)}function Yo(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 Oj(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 Xa=Math.random().toString(36).slice(2),zs="__reactFiber$"+Xa,ru="__reactProps$"+Xa,mo="__reactContainer$"+Xa,Hg="__reactEvents$"+Xa,PI="__reactListeners$"+Xa,_I="__reactHandles$"+Xa;function Oi(c){var d=c[zs];if(d)return d;for(var x=c.parentNode;x;){if(d=x[mo]||x[zs]){if(x=d.alternate,d.child!==null||x!==null&&x.child!==null)for(c=Oj(c);c!==null;){if(x=c[zs])return x;c=Oj(c)}return d}c=x,x=c.parentNode}return null}function su(c){return c=c[zs]||c[mo],!c||c.tag!==5&&c.tag!==6&&c.tag!==13&&c.tag!==3?null:c}function Qa(c){if(c.tag===5||c.tag===6)return c.stateNode;throw Error(n(33))}function vf(c){return c[ru]||null}var Vg=[],Ja=-1;function Xo(c){return{current:c}}function Qt(c){0>Ja||(c.current=Vg[Ja],Vg[Ja]=null,Ja--)}function qt(c,d){Ja++,Vg[Ja]=c.current,c.current=d}var Qo={},Qn=Xo(Qo),dr=Xo(!1),Fi=Qo;function Za(c,d){var x=c.type.contextTypes;if(!x)return Qo;var w=c.stateNode;if(w&&w.__reactInternalMemoizedUnmaskedChildContext===d)return w.__reactInternalMemoizedMaskedChildContext;var E={},R;for(R in x)E[R]=d[R];return w&&(c=c.stateNode,c.__reactInternalMemoizedUnmaskedChildContext=d,c.__reactInternalMemoizedMaskedChildContext=E),E}function fr(c){return c=c.childContextTypes,c!=null}function wf(){Qt(dr),Qt(Qn)}function Fj(c,d,x){if(Qn.current!==Qo)throw Error(n(168));qt(Qn,d),qt(dr,x)}function zj(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||Qo,Fi=Qn.current,qt(Qn,c),qt(dr,dr.current),!0}function Bj(c,d,x){var w=c.stateNode;if(!w)throw Error(n(169));x?(c=zj(c,d,Fi),w.__reactInternalMemoizedMergedChildContext=c,Qt(dr),Qt(Qn),qt(Qn,c)):Qt(dr),qt(dr,x)}var go=null,kf=!1,Wg=!1;function Uj(c){go===null?go=[c]:go.push(c)}function DI(c){kf=!0,Uj(c)}function Jo(){if(!Wg&&go!==null){Wg=!0;var c=0,d=Ft;try{var x=go;for(Ft=1;c<x.length;c++){var w=x[c];do w=w(!0);while(w!==null)}go=null,kf=!1}catch(E){throw go!==null&&(go=go.slice(c+1)),La(co,Jo),E}finally{Ft=d,Wg=!1}}return null}var el=[],tl=0,Nf=null,Sf=0,Kr=[],qr=0,zi=null,xo=1,yo="";function Bi(c,d){el[tl++]=Sf,el[tl++]=Nf,Nf=c,Sf=d}function Hj(c,d,x){Kr[qr++]=xo,Kr[qr++]=yo,Kr[qr++]=zi,zi=c;var w=xo;c=yo;var E=32-Ln(w)-1;w&=~(1<<E),x+=1;var R=32-Ln(d)+E;if(30<R){var G=E-E%5;R=(w&(1<<G)-1).toString(32),w>>=G,E-=G,xo=1<<32-Ln(d)+E|x<<E|w,yo=R+c}else xo=1<<R|x<<E|w,yo=c}function Kg(c){c.return!==null&&(Bi(c,1),Hj(c,1,0))}function qg(c){for(;c===Nf;)Nf=el[--tl],el[tl]=null,Sf=el[--tl],el[tl]=null;for(;c===zi;)zi=Kr[--qr],Kr[qr]=null,yo=Kr[--qr],Kr[qr]=null,xo=Kr[--qr],Kr[qr]=null}var Ar=null,Pr=null,rn=!1,ls=null;function Vj(c,d){var x=Qr(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 Wj(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,Ar=c,Pr=Yo(d.firstChild),!0):!1;case 6:return d=c.pendingProps===""||d.nodeType!==3?null:d,d!==null?(c.stateNode=d,Ar=c,Pr=null,!0):!1;case 13:return d=d.nodeType!==8?null:d,d!==null?(x=zi!==null?{id:xo,overflow:yo}:null,c.memoizedState={dehydrated:d,treeContext:x,retryLane:1073741824},x=Qr(18,null,null,0),x.stateNode=d,x.return=c,c.child=x,Ar=c,Pr=null,!0):!1;default:return!1}}function Gg(c){return(c.mode&1)!==0&&(c.flags&128)===0}function Yg(c){if(rn){var d=Pr;if(d){var x=d;if(!Wj(c,d)){if(Gg(c))throw Error(n(418));d=Yo(x.nextSibling);var w=Ar;d&&Wj(c,d)?Vj(w,x):(c.flags=c.flags&-4097|2,rn=!1,Ar=c)}}else{if(Gg(c))throw Error(n(418));c.flags=c.flags&-4097|2,rn=!1,Ar=c}}}function Kj(c){for(c=c.return;c!==null&&c.tag!==5&&c.tag!==3&&c.tag!==13;)c=c.return;Ar=c}function Cf(c){if(c!==Ar)return!1;if(!rn)return Kj(c),rn=!0,!1;var d;if((d=c.tag!==3)&&!(d=c.tag!==5)&&(d=c.type,d=d!=="head"&&d!=="body"&&!zg(c.type,c.memoizedProps)),d&&(d=Pr)){if(Gg(c))throw qj(),Error(n(418));for(;d;)Vj(c,d),d=Yo(d.nextSibling)}if(Kj(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){Pr=Yo(c.nextSibling);break e}d--}else x!=="$"&&x!=="$!"&&x!=="$?"||d++}c=c.nextSibling}Pr=null}}else Pr=Ar?Yo(c.stateNode.nextSibling):null;return!0}function qj(){for(var c=Pr;c;)c=Yo(c.nextSibling)}function nl(){Pr=Ar=null,rn=!1}function Xg(c){ls===null?ls=[c]:ls.push(c)}var $I=C.ReactCurrentBatchConfig;function ou(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,R=""+c;return d!==null&&d.ref!==null&&typeof d.ref=="function"&&d.ref._stringRef===R?d.ref:(d=function(G){var ee=E.refs;G===null?delete ee[R]:ee[R]=G},d._stringRef=R,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 Gj(c){var d=c._init;return d(c._payload)}function Yj(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=ii(de,ae),de.index=0,de.sibling=null,de}function R(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=Bx(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===_?Te(de,ae,pe.props.children,Le,pe.key):ae!==null&&(ae.elementType===st||typeof st=="object"&&st!==null&&st.$$typeof===M&&Gj(st)===ae.type)?(Le=E(ae,pe.props),Le.ref=ou(de,ae,pe),Le.return=de,Le):(Le=Qf(pe.type,pe.key,pe.props,null,de.mode,Le),Le.ref=ou(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=Ux(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=Yi(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=Bx(""+ae,de.mode,pe),ae.return=de,ae;if(typeof ae=="object"&&ae!==null){switch(ae.$$typeof){case A:return pe=Qf(ae.type,ae.key,ae.props,null,de.mode,pe),pe.ref=ou(de,null,ae),pe.return=de,pe;case T:return ae=Ux(ae,de.mode,pe),ae.return=de,ae;case M:var Le=ae._init;return De(de,Le(ae._payload),pe)}if(rt(ae)||V(ae))return ae=Yi(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 A:return pe.key===st?se(de,ae,pe,Le):null;case T:return pe.key===st?he(de,ae,pe,Le):null;case M:return st=pe._init,Ee(de,ae,st(pe._payload),Le)}if(rt(pe)||V(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 A: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 M:var dt=Le._init;return Ke(de,ae,pe,dt(Le._payload),st)}if(rt(Le)||V(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,Un=null;ft!==null&&gt<pe.length;gt++){ft.index>gt?(Un=ft,ft=null):Un=ft.sibling;var Lt=Ee(de,ft,pe[gt],Le);if(Lt===null){ft===null&&(ft=Un);break}c&&ft&&Lt.alternate===null&&d(de,ft),ae=R(Lt,ae,gt),dt===null?st=Lt:dt.sibling=Lt,dt=Lt,ft=Un}if(gt===pe.length)return x(de,ft),rn&&Bi(de,gt),st;if(ft===null){for(;gt<pe.length;gt++)ft=De(de,pe[gt],Le),ft!==null&&(ae=R(ft,ae,gt),dt===null?st=ft:dt.sibling=ft,dt=ft);return rn&&Bi(de,gt),st}for(ft=w(de,ft);gt<pe.length;gt++)Un=Ke(ft,de,gt,pe[gt],Le),Un!==null&&(c&&Un.alternate!==null&&ft.delete(Un.key===null?gt:Un.key),ae=R(Un,ae,gt),dt===null?st=Un:dt.sibling=Un,dt=Un);return c&&ft.forEach(function(ai){return d(de,ai)}),rn&&Bi(de,gt),st}function tt(de,ae,pe,Le){var st=V(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,Un=null,Lt=pe.next();ft!==null&&!Lt.done;gt++,Lt=pe.next()){ft.index>gt?(Un=ft,ft=null):Un=ft.sibling;var ai=Ee(de,ft,Lt.value,Le);if(ai===null){ft===null&&(ft=Un);break}c&&ft&&ai.alternate===null&&d(de,ft),ae=R(ai,ae,gt),dt===null?st=ai:dt.sibling=ai,dt=ai,ft=Un}if(Lt.done)return x(de,ft),rn&&Bi(de,gt),st;if(ft===null){for(;!Lt.done;gt++,Lt=pe.next())Lt=De(de,Lt.value,Le),Lt!==null&&(ae=R(Lt,ae,gt),dt===null?st=Lt:dt.sibling=Lt,dt=Lt);return rn&&Bi(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=R(Lt,ae,gt),dt===null?st=Lt:dt.sibling=Lt,dt=Lt);return c&&ft.forEach(function(pM){return d(de,pM)}),rn&&Bi(de,gt),st}function hn(de,ae,pe,Le){if(typeof pe=="object"&&pe!==null&&pe.type===_&&pe.key===null&&(pe=pe.props.children),typeof pe=="object"&&pe!==null){switch(pe.$$typeof){case A:e:{for(var st=pe.key,dt=ae;dt!==null;){if(dt.key===st){if(st=pe.type,st===_){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===M&&Gj(st)===dt.type){x(de,dt.sibling),ae=E(dt,pe.props),ae.ref=ou(de,dt,pe),ae.return=de,de=ae;break e}x(de,dt);break}else d(de,dt);dt=dt.sibling}pe.type===_?(ae=Yi(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=ou(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=Ux(pe,de.mode,Le),ae.return=de,de=ae}return G(de);case M:return dt=pe._init,hn(de,ae,dt(pe._payload),Le)}if(rt(pe))return Ze(de,ae,pe,Le);if(V(pe))return tt(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=Bx(pe,de.mode,Le),ae.return=de,de=ae),G(de)):x(de,ae)}return hn}var rl=Yj(!0),Xj=Yj(!1),Tf=Xo(null),Rf=null,sl=null,Qg=null;function Jg(){Qg=sl=Rf=null}function Zg(c){var d=Tf.current;Qt(Tf),c._currentValue=d}function ex(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 ol(c,d){Rf=c,Qg=sl=null,c=c.dependencies,c!==null&&c.firstContext!==null&&((c.lanes&d)!==0&&(pr=!0),c.firstContext=null)}function Gr(c){var d=c._currentValue;if(Qg!==c)if(c={context:c,memoizedValue:d,next:null},sl===null){if(Rf===null)throw Error(n(308));sl=c,Rf.dependencies={lanes:0,firstContext:c}}else sl=sl.next=c;return d}var Ui=null;function tx(c){Ui===null?Ui=[c]:Ui.push(c)}function Qj(c,d,x,w){var E=d.interleaved;return E===null?(x.next=x,tx(d)):(x.next=E.next,E.next=x),d.interleaved=x,bo(c,w)}function bo(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 Zo=!1;function nx(c){c.updateQueue={baseState:c.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Jj(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 vo(c,d){return{eventTime:c,lane:d,tag:0,payload:null,callback:null,next:null}}function ei(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,bo(c,x)}return E=w.interleaved,E===null?(d.next=d,tx(w)):(d.next=E.next,E.next=d),w.interleaved=d,bo(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 Zj(c,d){var x=c.updateQueue,w=c.alternate;if(w!==null&&(w=w.updateQueue,x===w)){var E=null,R=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};R===null?E=R=G:R=R.next=G,x=x.next}while(x!==null);R===null?E=R=d:R=R.next=d}else E=R=d;x={baseState:w.baseState,firstBaseUpdate:E,lastBaseUpdate:R,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;Zo=!1;var R=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?R=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(R!==null){var De=E.baseState;G=0,Te=he=se=null,ee=R;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,tt=ee;switch(Ee=d,Ke=x,tt.tag){case 1:if(Ze=tt.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=tt.payload,Ee=typeof Ze=="function"?Ze.call(Ke,De,Ee):Ze,Ee==null)break e;De=L({},De,Ee);break e;case 2:Zo=!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 R===null&&(E.shared.lanes=0);Wi|=G,c.lanes=G,c.memoizedState=De}}function ek(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 iu={},Bs=Xo(iu),au=Xo(iu),lu=Xo(iu);function Hi(c){if(c===iu)throw Error(n(174));return c}function rx(c,d){switch(qt(lu,d),qt(au,c),qt(Bs,iu),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(Bs),qt(Bs,d)}function il(){Qt(Bs),Qt(au),Qt(lu)}function tk(c){Hi(lu.current);var d=Hi(Bs.current),x=me(d,c.type);d!==x&&(qt(au,c),qt(Bs,x))}function sx(c){au.current===c&&(Qt(Bs),Qt(au))}var ln=Xo(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 ox=[];function ix(){for(var c=0;c<ox.length;c++)ox[c]._workInProgressVersionPrimary=null;ox.length=0}var Df=C.ReactCurrentDispatcher,ax=C.ReactCurrentBatchConfig,Vi=0,cn=null,Pn=null,zn=null,$f=!1,cu=!1,uu=0,II=0;function Jn(){throw Error(n(321))}function lx(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 cx(c,d,x,w,E,R){if(Vi=R,cn=d,d.memoizedState=null,d.updateQueue=null,d.lanes=0,Df.current=c===null||c.memoizedState===null?FI:zI,c=x(w,E),cu){R=0;do{if(cu=!1,uu=0,25<=R)throw Error(n(301));R+=1,zn=Pn=null,d.updateQueue=null,Df.current=BI,c=x(w,E)}while(cu)}if(Df.current=Lf,d=Pn!==null&&Pn.next!==null,Vi=0,zn=Pn=cn=null,$f=!1,d)throw Error(n(300));return c}function ux(){var c=uu!==0;return uu=0,c}function Us(){var c={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return zn===null?cn.memoizedState=zn=c:zn=zn.next=c,zn}function Yr(){if(Pn===null){var c=cn.alternate;c=c!==null?c.memoizedState:null}else c=Pn.next;var d=zn===null?cn.memoizedState:zn.next;if(d!==null)zn=d,Pn=c;else{if(c===null)throw Error(n(310));Pn=c,c={memoizedState:Pn.memoizedState,baseState:Pn.baseState,baseQueue:Pn.baseQueue,queue:Pn.queue,next:null},zn===null?cn.memoizedState=zn=c:zn=zn.next=c}return zn}function du(c,d){return typeof d=="function"?d(c):d}function dx(c){var d=Yr(),x=d.queue;if(x===null)throw Error(n(311));x.lastRenderedReducer=c;var w=Pn,E=w.baseQueue,R=x.pending;if(R!==null){if(E!==null){var G=E.next;E.next=R.next,R.next=G}w.baseQueue=E=R,x.pending=null}if(E!==null){R=E.next,w=w.baseState;var ee=G=null,se=null,he=R;do{var Te=he.lane;if((Vi&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,Wi|=Te}he=he.next}while(he!==null&&he!==R);se===null?G=w:se.next=ee,as(w,d.memoizedState)||(pr=!0),d.memoizedState=w,d.baseState=G,d.baseQueue=se,x.lastRenderedState=w}if(c=x.interleaved,c!==null){E=c;do R=E.lane,cn.lanes|=R,Wi|=R,E=E.next;while(E!==c)}else E===null&&(x.lanes=0);return[d.memoizedState,x.dispatch]}function fx(c){var d=Yr(),x=d.queue;if(x===null)throw Error(n(311));x.lastRenderedReducer=c;var w=x.dispatch,E=x.pending,R=d.memoizedState;if(E!==null){x.pending=null;var G=E=E.next;do R=c(R,G.action),G=G.next;while(G!==E);as(R,d.memoizedState)||(pr=!0),d.memoizedState=R,d.baseQueue===null&&(d.baseState=R),x.lastRenderedState=R}return[R,w]}function nk(){}function rk(c,d){var x=cn,w=Yr(),E=d(),R=!as(w.memoizedState,E);if(R&&(w.memoizedState=E,pr=!0),w=w.queue,px(ik.bind(null,x,w,c),[c]),w.getSnapshot!==d||R||zn!==null&&zn.memoizedState.tag&1){if(x.flags|=2048,fu(9,ok.bind(null,x,w,E,d),void 0,null),Bn===null)throw Error(n(349));(Vi&30)!==0||sk(x,d,E)}return E}function sk(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 ok(c,d,x,w){d.value=x,d.getSnapshot=w,ak(d)&&lk(c)}function ik(c,d,x){return x(function(){ak(d)&&lk(c)})}function ak(c){var d=c.getSnapshot;c=c.value;try{var x=d();return!as(c,x)}catch{return!0}}function lk(c){var d=bo(c,1);d!==null&&fs(d,c,1,-1)}function ck(c){var d=Us();return typeof c=="function"&&(c=c()),d.memoizedState=d.baseState=c,c={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:du,lastRenderedState:c},d.queue=c,c=c.dispatch=OI.bind(null,cn,c),[d.memoizedState,c]}function fu(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 uk(){return Yr().memoizedState}function If(c,d,x,w){var E=Us();cn.flags|=c,E.memoizedState=fu(1|d,x,void 0,w===void 0?null:w)}function Mf(c,d,x,w){var E=Yr();w=w===void 0?null:w;var R=void 0;if(Pn!==null){var G=Pn.memoizedState;if(R=G.destroy,w!==null&&lx(w,G.deps)){E.memoizedState=fu(d,x,R,w);return}}cn.flags|=c,E.memoizedState=fu(1|d,x,R,w)}function dk(c,d){return If(8390656,8,c,d)}function px(c,d){return Mf(2048,8,c,d)}function fk(c,d){return Mf(4,2,c,d)}function pk(c,d){return Mf(4,4,c,d)}function hk(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 mk(c,d,x){return x=x!=null?x.concat([c]):null,Mf(4,4,hk.bind(null,d,c),x)}function hx(){}function gk(c,d){var x=Yr();d=d===void 0?null:d;var w=x.memoizedState;return w!==null&&d!==null&&lx(d,w[1])?w[0]:(x.memoizedState=[c,d],c)}function xk(c,d){var x=Yr();d=d===void 0?null:d;var w=x.memoizedState;return w!==null&&d!==null&&lx(d,w[1])?w[0]:(c=c(),x.memoizedState=[c,d],c)}function yk(c,d,x){return(Vi&21)===0?(c.baseState&&(c.baseState=!1,pr=!0),c.memoizedState=x):(as(x,d)||(x=Ko(),cn.lanes|=x,Wi|=x,c.baseState=!0),d)}function MI(c,d){var x=Ft;Ft=x!==0&&4>x?x:4,c(!0);var w=ax.transition;ax.transition={};try{c(!1),d()}finally{Ft=x,ax.transition=w}}function bk(){return Yr().memoizedState}function LI(c,d,x){var w=si(c);if(x={lane:w,action:x,hasEagerState:!1,eagerState:null,next:null},vk(c))wk(d,x);else if(x=Qj(c,d,x,w),x!==null){var E=lr();fs(x,c,w,E),jk(x,d,w)}}function OI(c,d,x){var w=si(c),E={lane:w,action:x,hasEagerState:!1,eagerState:null,next:null};if(vk(c))wk(d,E);else{var R=c.alternate;if(c.lanes===0&&(R===null||R.lanes===0)&&(R=d.lastRenderedReducer,R!==null))try{var G=d.lastRenderedState,ee=R(G,x);if(E.hasEagerState=!0,E.eagerState=ee,as(ee,G)){var se=d.interleaved;se===null?(E.next=E,tx(d)):(E.next=se.next,se.next=E),d.interleaved=E;return}}catch{}finally{}x=Qj(c,d,E,w),x!==null&&(E=lr(),fs(x,c,w,E),jk(x,d,w))}}function vk(c){var d=c.alternate;return c===cn||d!==null&&d===cn}function wk(c,d){cu=$f=!0;var x=c.pending;x===null?d.next=d:(d.next=x.next,x.next=d),c.pending=d}function jk(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:Gr,useCallback:Jn,useContext:Jn,useEffect:Jn,useImperativeHandle:Jn,useInsertionEffect:Jn,useLayoutEffect:Jn,useMemo:Jn,useReducer:Jn,useRef:Jn,useState:Jn,useDebugValue:Jn,useDeferredValue:Jn,useTransition:Jn,useMutableSource:Jn,useSyncExternalStore:Jn,useId:Jn,unstable_isNewReconciler:!1},FI={readContext:Gr,useCallback:function(c,d){return Us().memoizedState=[c,d===void 0?null:d],c},useContext:Gr,useEffect:dk,useImperativeHandle:function(c,d,x){return x=x!=null?x.concat([c]):null,If(4194308,4,hk.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=Us();return d=d===void 0?null:d,c=c(),x.memoizedState=[c,d],c},useReducer:function(c,d,x){var w=Us();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=LI.bind(null,cn,c),[w.memoizedState,c]},useRef:function(c){var d=Us();return c={current:c},d.memoizedState=c},useState:ck,useDebugValue:hx,useDeferredValue:function(c){return Us().memoizedState=c},useTransition:function(){var c=ck(!1),d=c[0];return c=MI.bind(null,c[1]),Us().memoizedState=c,[d,c]},useMutableSource:function(){},useSyncExternalStore:function(c,d,x){var w=cn,E=Us();if(rn){if(x===void 0)throw Error(n(407));x=x()}else{if(x=d(),Bn===null)throw Error(n(349));(Vi&30)!==0||sk(w,d,x)}E.memoizedState=x;var R={value:x,getSnapshot:d};return E.queue=R,dk(ik.bind(null,w,R,c),[c]),w.flags|=2048,fu(9,ok.bind(null,w,R,x,d),void 0,null),x},useId:function(){var c=Us(),d=Bn.identifierPrefix;if(rn){var x=yo,w=xo;x=(w&~(1<<32-Ln(w)-1)).toString(32)+x,d=":"+d+"R"+x,x=uu++,0<x&&(d+="H"+x.toString(32)),d+=":"}else x=II++,d=":"+d+"r"+x.toString(32)+":";return c.memoizedState=d},unstable_isNewReconciler:!1},zI={readContext:Gr,useCallback:gk,useContext:Gr,useEffect:px,useImperativeHandle:mk,useInsertionEffect:fk,useLayoutEffect:pk,useMemo:xk,useReducer:dx,useRef:uk,useState:function(){return dx(du)},useDebugValue:hx,useDeferredValue:function(c){var d=Yr();return yk(d,Pn.memoizedState,c)},useTransition:function(){var c=dx(du)[0],d=Yr().memoizedState;return[c,d]},useMutableSource:nk,useSyncExternalStore:rk,useId:bk,unstable_isNewReconciler:!1},BI={readContext:Gr,useCallback:gk,useContext:Gr,useEffect:px,useImperativeHandle:mk,useInsertionEffect:fk,useLayoutEffect:pk,useMemo:xk,useReducer:fx,useRef:uk,useState:function(){return fx(du)},useDebugValue:hx,useDeferredValue:function(c){var d=Yr();return Pn===null?d.memoizedState=c:yk(d,Pn.memoizedState,c)},useTransition:function(){var c=fx(du)[0],d=Yr().memoizedState;return[c,d]},useMutableSource:nk,useSyncExternalStore:rk,useId:bk,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 mx(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=lr(),E=si(c),R=vo(w,E);R.payload=d,x!=null&&(R.callback=x),d=ei(c,R,E),d!==null&&(fs(d,c,E,w),Af(d,c,E))},enqueueReplaceState:function(c,d,x){c=c._reactInternals;var w=lr(),E=si(c),R=vo(w,E);R.tag=1,R.payload=d,x!=null&&(R.callback=x),d=ei(c,R,E),d!==null&&(fs(d,c,E,w),Af(d,c,E))},enqueueForceUpdate:function(c,d){c=c._reactInternals;var x=lr(),w=si(c),E=vo(x,w);E.tag=2,d!=null&&(E.callback=d),d=ei(c,E,w),d!==null&&(fs(d,c,w,x),Af(d,c,w))}};function kk(c,d,x,w,E,R,G){return c=c.stateNode,typeof c.shouldComponentUpdate=="function"?c.shouldComponentUpdate(w,R,G):d.prototype&&d.prototype.isPureReactComponent?!Jc(x,w)||!Jc(E,R):!0}function Nk(c,d,x){var w=!1,E=Qo,R=d.contextType;return typeof R=="object"&&R!==null?R=Gr(R):(E=fr(d)?Fi:Qn.current,w=d.contextTypes,R=(w=w!=null)?Za(c,E):Qo),d=new d(x,R),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=R),d}function Sk(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 gx(c,d,x,w){var E=c.stateNode;E.props=x,E.state=c.memoizedState,E.refs={},nx(c);var R=d.contextType;typeof R=="object"&&R!==null?E.context=Gr(R):(R=fr(d)?Fi:Qn.current,E.context=Za(c,R)),E.state=c.memoizedState,R=d.getDerivedStateFromProps,typeof R=="function"&&(mx(c,d,R,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 al(c,d){try{var x="",w=d;do x+=J(w),w=w.return;while(w);var E=x}catch(R){E=`
39
+ Error generating stack: `+R.message+`
40
+ `+R.stack}return{value:c,source:d,stack:E,digest:null}}function xx(c,d,x){return{value:c,source:null,stack:x??null,digest:d??null}}function yx(c,d){try{console.error(d.value)}catch(x){setTimeout(function(){throw x})}}var UI=typeof WeakMap=="function"?WeakMap:Map;function Ck(c,d,x){x=vo(-1,x),x.tag=3,x.payload={element:null};var w=d.value;return x.callback=function(){Wf||(Wf=!0,Dx=w),yx(c,d)},x}function Ek(c,d,x){x=vo(-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(){yx(c,d)}}var R=c.stateNode;return R!==null&&typeof R.componentDidCatch=="function"&&(x.callback=function(){yx(c,d),typeof w!="function"&&(ni===null?ni=new Set([this]):ni.add(this));var G=d.stack;this.componentDidCatch(d.value,{componentStack:G!==null?G:""})}),x}function Tk(c,d,x){var w=c.pingCache;if(w===null){w=c.pingCache=new UI;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=nM.bind(null,c,d,x),d.then(c,c))}function Rk(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 Ak(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=vo(-1,1),d.tag=2,ei(x,d,1))),x.lanes|=1),c):(c.flags|=65536,c.lanes=E,c)}var HI=C.ReactCurrentOwner,pr=!1;function ar(c,d,x,w){d.child=c===null?Xj(d,null,x,w):rl(d,c.child,x,w)}function Pk(c,d,x,w,E){x=x.render;var R=d.ref;return ol(d,E),w=cx(c,d,x,w,R,E),x=ux(),c!==null&&!pr?(d.updateQueue=c.updateQueue,d.flags&=-2053,c.lanes&=~E,wo(c,d,E)):(rn&&x&&Kg(d),d.flags|=1,ar(c,d,w,E),d.child)}function _k(c,d,x,w,E){if(c===null){var R=x.type;return typeof R=="function"&&!zx(R)&&R.defaultProps===void 0&&x.compare===null&&x.defaultProps===void 0?(d.tag=15,d.type=R,Dk(c,d,R,w,E)):(c=Qf(x.type,null,w,d,d.mode,E),c.ref=d.ref,c.return=d,d.child=c)}if(R=c.child,(c.lanes&E)===0){var G=R.memoizedProps;if(x=x.compare,x=x!==null?x:Jc,x(G,w)&&c.ref===d.ref)return wo(c,d,E)}return d.flags|=1,c=ii(R,w),c.ref=d.ref,c.return=d,d.child=c}function Dk(c,d,x,w,E){if(c!==null){var R=c.memoizedProps;if(Jc(R,w)&&c.ref===d.ref)if(pr=!1,d.pendingProps=w=R,(c.lanes&E)!==0)(c.flags&131072)!==0&&(pr=!0);else return d.lanes=c.lanes,wo(c,d,E)}return bx(c,d,x,w,E)}function $k(c,d,x){var w=d.pendingProps,E=w.children,R=c!==null?c.memoizedState:null;if(w.mode==="hidden")if((d.mode&1)===0)d.memoizedState={baseLanes:0,cachePool:null,transitions:null},qt(cl,_r),_r|=x;else{if((x&1073741824)===0)return c=R!==null?R.baseLanes|x:x,d.lanes=d.childLanes=1073741824,d.memoizedState={baseLanes:c,cachePool:null,transitions:null},d.updateQueue=null,qt(cl,_r),_r|=c,null;d.memoizedState={baseLanes:0,cachePool:null,transitions:null},w=R!==null?R.baseLanes:x,qt(cl,_r),_r|=w}else R!==null?(w=R.baseLanes|x,d.memoizedState=null):w=x,qt(cl,_r),_r|=w;return ar(c,d,E,x),d.child}function Ik(c,d){var x=d.ref;(c===null&&x!==null||c!==null&&c.ref!==x)&&(d.flags|=512,d.flags|=2097152)}function bx(c,d,x,w,E){var R=fr(x)?Fi:Qn.current;return R=Za(d,R),ol(d,E),x=cx(c,d,x,w,R,E),w=ux(),c!==null&&!pr?(d.updateQueue=c.updateQueue,d.flags&=-2053,c.lanes&=~E,wo(c,d,E)):(rn&&w&&Kg(d),d.flags|=1,ar(c,d,x,E),d.child)}function Mk(c,d,x,w,E){if(fr(x)){var R=!0;jf(d)}else R=!1;if(ol(d,E),d.stateNode===null)zf(c,d),Nk(d,x,w),gx(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=Gr(he):(he=fr(x)?Fi:Qn.current,he=Za(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)&&Sk(d,G,w,he),Zo=!1;var Ee=d.memoizedState;G.state=Ee,Pf(d,w,G,E),se=d.memoizedState,ee!==w||Ee!==se||dr.current||Zo?(typeof Te=="function"&&(mx(d,x,Te,w),se=d.memoizedState),(ee=Zo||kk(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,Jj(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=Gr(se):(se=fr(x)?Fi:Qn.current,se=Za(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)&&Sk(d,G,w,se),Zo=!1,Ee=d.memoizedState,G.state=Ee,Pf(d,w,G,E);var Ze=d.memoizedState;ee!==De||Ee!==Ze||dr.current||Zo?(typeof Ke=="function"&&(mx(d,x,Ke,w),Ze=d.memoizedState),(he=Zo||kk(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 vx(c,d,x,w,R,E)}function vx(c,d,x,w,E,R){Ik(c,d);var G=(d.flags&128)!==0;if(!w&&!G)return E&&Bj(d,x,!1),wo(c,d,R);w=d.stateNode,HI.current=d;var ee=G&&typeof x.getDerivedStateFromError!="function"?null:w.render();return d.flags|=1,c!==null&&G?(d.child=rl(d,c.child,null,R),d.child=rl(d,null,ee,R)):ar(c,d,ee,R),d.memoizedState=w.state,E&&Bj(d,x,!0),d.child}function Lk(c){var d=c.stateNode;d.pendingContext?Fj(c,d.pendingContext,d.pendingContext!==d.context):d.context&&Fj(c,d.context,!1),rx(c,d.containerInfo)}function Ok(c,d,x,w,E){return nl(),Xg(E),d.flags|=256,ar(c,d,x,w),d.child}var wx={dehydrated:null,treeContext:null,retryLane:0};function jx(c){return{baseLanes:c,cachePool:null,transitions:null}}function Fk(c,d,x){var w=d.pendingProps,E=ln.current,R=!1,G=(d.flags&128)!==0,ee;if((ee=G)||(ee=c!==null&&c.memoizedState===null?!1:(E&2)!==0),ee?(R=!0,d.flags&=-129):(c===null||c.memoizedState!==null)&&(E|=1),qt(ln,E&1),c===null)return Yg(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,R?(w=d.mode,R=d.child,G={mode:"hidden",children:G},(w&1)===0&&R!==null?(R.childLanes=0,R.pendingProps=G):R=Jf(G,w,0,null),c=Yi(c,w,x,null),R.return=d,c.return=d,R.sibling=c,d.child=R,d.child.memoizedState=jx(x),d.memoizedState=wx,c):kx(d,G));if(E=c.memoizedState,E!==null&&(ee=E.dehydrated,ee!==null))return VI(c,d,G,w,ee,E,x);if(R){R=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=ii(E,se),w.subtreeFlags=E.subtreeFlags&14680064),ee!==null?R=ii(ee,R):(R=Yi(R,G,x,null),R.flags|=2),R.return=d,w.return=d,w.sibling=R,d.child=w,w=R,R=d.child,G=c.child.memoizedState,G=G===null?jx(x):{baseLanes:G.baseLanes|x,cachePool:null,transitions:G.transitions},R.memoizedState=G,R.childLanes=c.childLanes&~x,d.memoizedState=wx,w}return R=c.child,c=R.sibling,w=ii(R,{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 kx(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&&Xg(w),rl(d,c.child,null,x),c=kx(d,d.pendingProps.children),c.flags|=2,d.memoizedState=null,c}function VI(c,d,x,w,E,R,G){if(x)return d.flags&256?(d.flags&=-257,w=xx(Error(n(422))),Ff(c,d,G,w)):d.memoizedState!==null?(d.child=c.child,d.flags|=128,null):(R=w.fallback,E=d.mode,w=Jf({mode:"visible",children:w.children},E,0,null),R=Yi(R,E,G,null),R.flags|=2,w.return=d,R.return=d,w.sibling=R,d.child=w,(d.mode&1)!==0&&rl(d,c.child,null,G),d.child.memoizedState=jx(G),d.memoizedState=wx,R);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,R=Error(n(419)),w=xx(R,w,void 0),Ff(c,d,G,w)}if(ee=(G&c.childLanes)!==0,pr||ee){if(w=Bn,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!==R.retryLane&&(R.retryLane=E,bo(c,E),fs(w,c,E,-1))}return Fx(),w=xx(Error(n(421))),Ff(c,d,G,w)}return E.data==="$?"?(d.flags|=128,d.child=c.child,d=rM.bind(null,c),E._reactRetry=d,null):(c=R.treeContext,Pr=Yo(E.nextSibling),Ar=d,rn=!0,ls=null,c!==null&&(Kr[qr++]=xo,Kr[qr++]=yo,Kr[qr++]=zi,xo=c.id,yo=c.overflow,zi=d),d=kx(d,w.children),d.flags|=4096,d)}function zk(c,d,x){c.lanes|=d;var w=c.alternate;w!==null&&(w.lanes|=d),ex(c.return,d,x)}function Nx(c,d,x,w,E){var R=c.memoizedState;R===null?c.memoizedState={isBackwards:d,rendering:null,renderingStartTime:0,last:w,tail:x,tailMode:E}:(R.isBackwards=d,R.rendering=null,R.renderingStartTime=0,R.last=w,R.tail=x,R.tailMode=E)}function Bk(c,d,x){var w=d.pendingProps,E=w.revealOrder,R=w.tail;if(ar(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&&zk(c,x,d);else if(c.tag===19)zk(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),Nx(d,!1,E,x,R);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}Nx(d,!0,x,null,R);break;case"together":Nx(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 wo(c,d,x){if(c!==null&&(d.dependencies=c.dependencies),Wi|=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=ii(c,c.pendingProps),d.child=x,x.return=d;c.sibling!==null;)c=c.sibling,x=x.sibling=ii(c,c.pendingProps),x.return=d;x.sibling=null}return d.child}function WI(c,d,x){switch(d.tag){case 3:Lk(d),nl();break;case 5:tk(d);break;case 1:fr(d.type)&&jf(d);break;case 4:rx(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?Fk(c,d,x):(qt(ln,ln.current&1),c=wo(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 Bk(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,$k(c,d,x)}return wo(c,d,x)}var Uk,Sx,Hk,Vk;Uk=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}},Sx=function(){},Hk=function(c,d,x,w){var E=c.memoizedProps;if(E!==w){c=d.stateNode,Hi(Bs.current);var R=null;switch(x){case"input":E=Be(c,E),w=Be(c,w),R=[];break;case"select":E=L({},E,{value:void 0}),w=L({},w,{value:void 0}),R=[];break;case"textarea":E=ot(c,E),w=ot(c,w),R=[];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)?R||(R=[]):(R=R||[]).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||(R||(R=[]),R.push(he,x)),x=se;else he==="dangerouslySetInnerHTML"?(se=se?se.__html:void 0,ee=ee?ee.__html:void 0,se!=null&&ee!==se&&(R=R||[]).push(he,se)):he==="children"?typeof se!="string"&&typeof se!="number"||(R=R||[]).push(he,""+se):he!=="suppressContentEditableWarning"&&he!=="suppressHydrationWarning"&&(o.hasOwnProperty(he)?(se!=null&&he==="onScroll"&&Xt("scroll",c),R||ee===se||(R=[])):(R=R||[]).push(he,se))}x&&(R=R||[]).push("style",x);var he=R;(d.updateQueue=he)&&(d.flags|=4)}},Vk=function(c,d,x,w){x!==w&&(d.flags|=4)};function pu(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 Zn(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 KI(c,d,x){var w=d.pendingProps;switch(qg(d),d.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Zn(d),null;case 1:return fr(d.type)&&wf(),Zn(d),null;case 3:return w=d.stateNode,il(),Qt(dr),Qt(Qn),ix(),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&&(Mx(ls),ls=null))),Sx(c,d),Zn(d),null;case 5:sx(d);var E=Hi(lu.current);if(x=d.type,c!==null&&d.stateNode!=null)Hk(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 Zn(d),null}if(c=Hi(Bs.current),Cf(d)){w=d.stateNode,x=d.type;var R=d.memoizedProps;switch(w[zs]=d,w[ru]=R,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<eu.length;E++)Xt(eu[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,R),Xt("invalid",w);break;case"select":w._wrapperState={wasMultiple:!!R.multiple},Xt("invalid",w);break;case"textarea":St(w,R),Xt("invalid",w)}fe(x,R),E=null;for(var G in R)if(R.hasOwnProperty(G)){var ee=R[G];G==="children"?typeof ee=="string"?w.textContent!==ee&&(R.suppressHydrationWarning!==!0&&yf(w.textContent,ee,c),E=["children",ee]):typeof ee=="number"&&w.textContent!==""+ee&&(R.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,R,!0);break;case"textarea":Ce(w),it(w);break;case"select":case"option":break;default:typeof R.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[zs]=d,c[ru]=w,Uk(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<eu.length;E++)Xt(eu[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(R in ee)if(ee.hasOwnProperty(R)){var se=ee[R];R==="style"?Je(c,se):R==="dangerouslySetInnerHTML"?(se=se?se.__html:void 0,se!=null&&Pe(c,se)):R==="children"?typeof se=="string"?(x!=="textarea"||se!=="")&&Ve(c,se):typeof se=="number"&&Ve(c,""+se):R!=="suppressContentEditableWarning"&&R!=="suppressHydrationWarning"&&R!=="autoFocus"&&(o.hasOwnProperty(R)?se!=null&&R==="onScroll"&&Xt("scroll",c):se!=null&&N(c,R,se,G))}switch(x){case"input":Ce(c),Re(c,w,!1);break;case"textarea":Ce(c),it(c);break;case"option":w.value!=null&&c.setAttribute("value",""+te(w.value));break;case"select":c.multiple=!!w.multiple,R=w.value,R!=null?Oe(c,!!w.multiple,R,!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 Zn(d),null;case 6:if(c&&d.stateNode!=null)Vk(c,d,c.memoizedProps,w);else{if(typeof w!="string"&&d.stateNode===null)throw Error(n(166));if(x=Hi(lu.current),Hi(Bs.current),Cf(d)){if(w=d.stateNode,x=d.memoizedProps,w[zs]=d,(R=w.nodeValue!==x)&&(c=Ar,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)}R&&(d.flags|=4)}else w=(x.nodeType===9?x:x.ownerDocument).createTextNode(w),w[zs]=d,d.stateNode=w}return Zn(d),null;case 13:if(Qt(ln),w=d.memoizedState,c===null||c.memoizedState!==null&&c.memoizedState.dehydrated!==null){if(rn&&Pr!==null&&(d.mode&1)!==0&&(d.flags&128)===0)qj(),nl(),d.flags|=98560,R=!1;else if(R=Cf(d),w!==null&&w.dehydrated!==null){if(c===null){if(!R)throw Error(n(318));if(R=d.memoizedState,R=R!==null?R.dehydrated:null,!R)throw Error(n(317));R[zs]=d}else nl(),(d.flags&128)===0&&(d.memoizedState=null),d.flags|=4;Zn(d),R=!1}else ls!==null&&(Mx(ls),ls=null),R=!0;if(!R)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?_n===0&&(_n=3):Fx())),d.updateQueue!==null&&(d.flags|=4),Zn(d),null);case 4:return il(),Sx(c,d),c===null&&tu(d.stateNode.containerInfo),Zn(d),null;case 10:return Zg(d.type._context),Zn(d),null;case 17:return fr(d.type)&&wf(),Zn(d),null;case 19:if(Qt(ln),R=d.memoizedState,R===null)return Zn(d),null;if(w=(d.flags&128)!==0,G=R.rendering,G===null)if(w)pu(R,!1);else{if(_n!==0||c!==null&&(c.flags&128)!==0)for(c=d.child;c!==null;){if(G=_f(c),G!==null){for(d.flags|=128,pu(R,!1),w=G.updateQueue,w!==null&&(d.updateQueue=w,d.flags|=4),d.subtreeFlags=0,w=x,x=d.child;x!==null;)R=x,c=w,R.flags&=14680066,G=R.alternate,G===null?(R.childLanes=0,R.lanes=c,R.child=null,R.subtreeFlags=0,R.memoizedProps=null,R.memoizedState=null,R.updateQueue=null,R.dependencies=null,R.stateNode=null):(R.childLanes=G.childLanes,R.lanes=G.lanes,R.child=G.child,R.subtreeFlags=0,R.deletions=null,R.memoizedProps=G.memoizedProps,R.memoizedState=G.memoizedState,R.updateQueue=G.updateQueue,R.type=G.type,c=G.dependencies,R.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}R.tail!==null&&Ht()>ul&&(d.flags|=128,w=!0,pu(R,!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),pu(R,!0),R.tail===null&&R.tailMode==="hidden"&&!G.alternate&&!rn)return Zn(d),null}else 2*Ht()-R.renderingStartTime>ul&&x!==1073741824&&(d.flags|=128,w=!0,pu(R,!1),d.lanes=4194304);R.isBackwards?(G.sibling=d.child,d.child=G):(x=R.last,x!==null?x.sibling=G:d.child=G,R.last=G)}return R.tail!==null?(d=R.tail,R.rendering=d,R.tail=d.sibling,R.renderingStartTime=Ht(),d.sibling=null,x=ln.current,qt(ln,w?x&1|2:x&1),d):(Zn(d),null);case 22:case 23:return Ox(),w=d.memoizedState!==null,c!==null&&c.memoizedState!==null!==w&&(d.flags|=8192),w&&(d.mode&1)!==0?(_r&1073741824)!==0&&(Zn(d),d.subtreeFlags&6&&(d.flags|=8192)):Zn(d),null;case 24:return null;case 25:return null}throw Error(n(156,d.tag))}function qI(c,d){switch(qg(d),d.tag){case 1:return fr(d.type)&&wf(),c=d.flags,c&65536?(d.flags=c&-65537|128,d):null;case 3:return il(),Qt(dr),Qt(Qn),ix(),c=d.flags,(c&65536)!==0&&(c&128)===0?(d.flags=c&-65537|128,d):null;case 5:return sx(d),null;case 13:if(Qt(ln),c=d.memoizedState,c!==null&&c.dehydrated!==null){if(d.alternate===null)throw Error(n(340));nl()}return c=d.flags,c&65536?(d.flags=c&-65537|128,d):null;case 19:return Qt(ln),null;case 4:return il(),null;case 10:return Zg(d.type._context),null;case 22:case 23:return Ox(),null;case 24:return null;default:return null}}var Bf=!1,er=!1,GI=typeof WeakSet=="function"?WeakSet:Set,Xe=null;function ll(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 Cx(c,d,x){try{x()}catch(w){dn(c,d,w)}}var Wk=!1;function YI(c,d){if(Og=pn,c=kj(),Ag(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,R=w.focusNode;w=w.focusOffset;try{x.nodeType,R.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!==R||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===R&&++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(Fg={focusedElem:c,selectionRange:x},pn=!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 tt=Ze.memoizedProps,hn=Ze.memoizedState,de=d.stateNode,ae=de.getSnapshotBeforeUpdate(d.elementType===d.type?tt:cs(d.type,tt),hn);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=Wk,Wk=!1,Ze}function hu(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 R=E.destroy;E.destroy=void 0,R!==void 0&&Cx(d,x,R)}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 Ex(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 Kk(c){var d=c.alternate;d!==null&&(c.alternate=null,Kk(d)),c.child=null,c.deletions=null,c.sibling=null,c.tag===5&&(d=c.stateNode,d!==null&&(delete d[zs],delete d[ru],delete d[Hg],delete d[PI],delete d[_I])),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 qk(c){return c.tag===5||c.tag===3||c.tag===4}function Gk(c){e:for(;;){for(;c.sibling===null;){if(c.return===null||qk(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 Tx(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(Tx(c,d,x),c=c.sibling;c!==null;)Tx(c,d,x),c=c.sibling}function Rx(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(Rx(c,d,x),c=c.sibling;c!==null;)Rx(c,d,x),c=c.sibling}var qn=null,us=!1;function ti(c,d,x){for(x=x.child;x!==null;)Yk(c,d,x),x=x.sibling}function Yk(c,d,x){if(ir&&typeof ir.onCommitFiberUnmount=="function")try{ir.onCommitFiberUnmount(Uo,x)}catch{}switch(x.tag){case 5:er||ll(x,d);case 6:var w=qn,E=us;qn=null,ti(c,d,x),qn=w,us=E,qn!==null&&(us?(c=qn,x=x.stateNode,c.nodeType===8?c.parentNode.removeChild(x):c.removeChild(x)):qn.removeChild(x.stateNode));break;case 18:qn!==null&&(us?(c=qn,x=x.stateNode,c.nodeType===8?Ug(c.parentNode,x):c.nodeType===1&&Ug(c,x),Fn(c)):Ug(qn,x.stateNode));break;case 4:w=qn,E=us,qn=x.stateNode.containerInfo,us=!0,ti(c,d,x),qn=w,us=E;break;case 0:case 11:case 14:case 15:if(!er&&(w=x.updateQueue,w!==null&&(w=w.lastEffect,w!==null))){E=w=w.next;do{var R=E,G=R.destroy;R=R.tag,G!==void 0&&((R&2)!==0||(R&4)!==0)&&Cx(x,d,G),E=E.next}while(E!==w)}ti(c,d,x);break;case 1:if(!er&&(ll(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)}ti(c,d,x);break;case 21:ti(c,d,x);break;case 22:x.mode&1?(er=(w=er)||x.memoizedState!==null,ti(c,d,x),er=w):ti(c,d,x);break;default:ti(c,d,x)}}function Xk(c){var d=c.updateQueue;if(d!==null){c.updateQueue=null;var x=c.stateNode;x===null&&(x=c.stateNode=new GI),d.forEach(function(w){var E=sM.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 R=c,G=d,ee=G;e:for(;ee!==null;){switch(ee.tag){case 5:qn=ee.stateNode,us=!1;break e;case 3:qn=ee.stateNode.containerInfo,us=!0;break e;case 4:qn=ee.stateNode.containerInfo,us=!0;break e}ee=ee.return}if(qn===null)throw Error(n(160));Yk(R,G,E),qn=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),Hs(c),w&4){try{hu(3,c,c.return),Uf(3,c)}catch(tt){dn(c,c.return,tt)}try{hu(5,c,c.return)}catch(tt){dn(c,c.return,tt)}}break;case 1:ds(d,c),Hs(c),w&512&&x!==null&&ll(x,x.return);break;case 5:if(ds(d,c),Hs(c),w&512&&x!==null&&ll(x,x.return),c.flags&32){var E=c.stateNode;try{Ve(E,"")}catch(tt){dn(c,c.return,tt)}}if(w&4&&(E=c.stateNode,E!=null)){var R=c.memoizedProps,G=x!==null?x.memoizedProps:R,ee=c.type,se=c.updateQueue;if(c.updateQueue=null,se!==null)try{ee==="input"&&R.type==="radio"&&R.name!=null&&be(E,R),q(ee,G);var he=q(ee,R);for(G=0;G<se.length;G+=2){var Te=se[G],De=se[G+1];Te==="style"?Je(E,De):Te==="dangerouslySetInnerHTML"?Pe(E,De):Te==="children"?Ve(E,De):N(E,Te,De,he)}switch(ee){case"input":ye(E,R);break;case"textarea":ht(E,R);break;case"select":var Ee=E._wrapperState.wasMultiple;E._wrapperState.wasMultiple=!!R.multiple;var Ke=R.value;Ke!=null?Oe(E,!!R.multiple,Ke,!1):Ee!==!!R.multiple&&(R.defaultValue!=null?Oe(E,!!R.multiple,R.defaultValue,!0):Oe(E,!!R.multiple,R.multiple?[]:"",!1))}E[ru]=R}catch(tt){dn(c,c.return,tt)}}break;case 6:if(ds(d,c),Hs(c),w&4){if(c.stateNode===null)throw Error(n(162));E=c.stateNode,R=c.memoizedProps;try{E.nodeValue=R}catch(tt){dn(c,c.return,tt)}}break;case 3:if(ds(d,c),Hs(c),w&4&&x!==null&&x.memoizedState.isDehydrated)try{Fn(d.containerInfo)}catch(tt){dn(c,c.return,tt)}break;case 4:ds(d,c),Hs(c);break;case 13:ds(d,c),Hs(c),E=c.child,E.flags&8192&&(R=E.memoizedState!==null,E.stateNode.isHidden=R,!R||E.alternate!==null&&E.alternate.memoizedState!==null||(_x=Ht())),w&4&&Xk(c);break;case 22:if(Te=x!==null&&x.memoizedState!==null,c.mode&1?(er=(he=er)||Te,ds(d,c),er=he):ds(d,c),Hs(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:hu(4,Ee,Ee.return);break;case 1:ll(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(tt){dn(w,x,tt)}}break;case 5:ll(Ee,Ee.return);break;case 22:if(Ee.memoizedState!==null){e1(De);continue}}Ke!==null?(Ke.return=Ee,Xe=Ke):e1(De)}Te=Te.sibling}e:for(Te=null,De=c;;){if(De.tag===5){if(Te===null){Te=De;try{E=De.stateNode,he?(R=E.style,typeof R.setProperty=="function"?R.setProperty("display","none","important"):R.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(tt){dn(c,c.return,tt)}}}else if(De.tag===6){if(Te===null)try{De.stateNode.nodeValue=he?"":De.memoizedProps}catch(tt){dn(c,c.return,tt)}}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),Hs(c),w&4&&Xk(c);break;case 21:break;default:ds(d,c),Hs(c)}}function Hs(c){var d=c.flags;if(d&2){try{e:{for(var x=c.return;x!==null;){if(qk(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 R=Gk(c);Rx(c,R,E);break;case 3:case 4:var G=w.stateNode.containerInfo,ee=Gk(c);Tx(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 XI(c,d,x){Xe=c,Jk(c)}function Jk(c,d,x){for(var w=(c.mode&1)!==0;Xe!==null;){var E=Xe,R=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||er;ee=Bf;var he=er;if(Bf=G,(er=se)&&!he)for(Xe=E;Xe!==null;)G=Xe,se=G.child,G.tag===22&&G.memoizedState!==null?t1(E):se!==null?(se.return=G,Xe=se):t1(E);for(;R!==null;)Xe=R,Jk(R),R=R.sibling;Xe=E,Bf=ee,er=he}Zk(c)}else(E.subtreeFlags&8772)!==0&&R!==null?(R.return=E,Xe=R):Zk(c)}}function Zk(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:er||Uf(5,d);break;case 1:var w=d.stateNode;if(d.flags&4&&!er)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 R=d.updateQueue;R!==null&&ek(d,R,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}ek(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&&Fn(De)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(n(163))}er||d.flags&512&&Ex(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 e1(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 t1(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 R=d.return;try{Ex(d)}catch(se){dn(d,R,se)}break;case 5:var G=d.return;try{Ex(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 QI=Math.ceil,Hf=C.ReactCurrentDispatcher,Ax=C.ReactCurrentOwner,Xr=C.ReactCurrentBatchConfig,It=0,Bn=null,bn=null,Gn=0,_r=0,cl=Xo(0),_n=0,mu=null,Wi=0,Vf=0,Px=0,gu=null,hr=null,_x=0,ul=1/0,jo=null,Wf=!1,Dx=null,ni=null,Kf=!1,ri=null,qf=0,xu=0,$x=null,Gf=-1,Yf=0;function lr(){return(It&6)!==0?Ht():Gf!==-1?Gf:Gf=Ht()}function si(c){return(c.mode&1)===0?1:(It&2)!==0&&Gn!==0?Gn&-Gn:$I.transition!==null?(Yf===0&&(Yf=Ko()),Yf):(c=Ft,c!==0||(c=window.event,c=c===void 0?16:rj(c.type)),c)}function fs(c,d,x,w){if(50<xu)throw xu=0,$x=null,Error(n(185));On(c,x,w),((It&2)===0||c!==Bn)&&(c===Bn&&((It&2)===0&&(Vf|=x),_n===4&&oi(c,Gn)),mr(c,w),x===1&&It===0&&(d.mode&1)===0&&(ul=Ht()+500,kf&&Jo()))}function mr(c,d){var x=c.callbackNode;$i(c,d);var w=Vr(c,c===Bn?Gn:0);if(w===0)x!==null&&Oa(x),c.callbackNode=null,c.callbackPriority=0;else if(d=w&-w,c.callbackPriority!==d){if(x!=null&&Oa(x),d===1)c.tag===0?DI(r1.bind(null,c)):Uj(r1.bind(null,c)),RI(function(){(It&6)===0&&Jo()}),x=null;else{switch(lf(w)){case 1:x=co;break;case 4:x=zo;break;case 16:x=Ds;break;case 536870912:x=za;break;default:x=Ds}x=d1(x,n1.bind(null,c))}c.callbackPriority=d,c.callbackNode=x}}function n1(c,d){if(Gf=-1,Yf=0,(It&6)!==0)throw Error(n(327));var x=c.callbackNode;if(dl()&&c.callbackNode!==x)return null;var w=Vr(c,c===Bn?Gn: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 R=o1();(Bn!==c||Gn!==d)&&(jo=null,ul=Ht()+500,qi(c,d));do try{eM();break}catch(ee){s1(c,ee)}while(!0);Jg(),Hf.current=R,It=E,bn!==null?d=0:(Bn=null,Gn=0,d=_n)}if(d!==0){if(d===2&&(E=Wo(c),E!==0&&(w=E,d=Ix(c,E))),d===1)throw x=mu,qi(c,0),oi(c,w),mr(c,Ht()),x;if(d===6)oi(c,w);else{if(E=c.current.alternate,(w&30)===0&&!JI(E)&&(d=Xf(c,w),d===2&&(R=Wo(c),R!==0&&(w=R,d=Ix(c,R))),d===1))throw x=mu,qi(c,0),oi(c,w),mr(c,Ht()),x;switch(c.finishedWork=E,c.finishedLanes=w,d){case 0:case 1:throw Error(n(345));case 2:Gi(c,hr,jo);break;case 3:if(oi(c,w),(w&130023424)===w&&(d=_x+500-Ht(),10<d)){if(Vr(c,0)!==0)break;if(E=c.suspendedLanes,(E&w)!==w){lr(),c.pingedLanes|=c.suspendedLanes&E;break}c.timeoutHandle=Bg(Gi.bind(null,c,hr,jo),d);break}Gi(c,hr,jo);break;case 4:if(oi(c,w),(w&4194240)===w)break;for(d=c.eventTimes,E=-1;0<w;){var G=31-Ln(w);R=1<<G,G=d[G],G>E&&(E=G),w&=~R}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*QI(w/1960))-w,10<w){c.timeoutHandle=Bg(Gi.bind(null,c,hr,jo),w);break}Gi(c,hr,jo);break;case 5:Gi(c,hr,jo);break;default:throw Error(n(329))}}}return mr(c,Ht()),c.callbackNode===x?n1.bind(null,c):null}function Ix(c,d){var x=gu;return c.current.memoizedState.isDehydrated&&(qi(c,d).flags|=256),c=Xf(c,d),c!==2&&(d=hr,hr=x,d!==null&&Mx(d)),c}function Mx(c){hr===null?hr=c:hr.push.apply(hr,c)}function JI(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],R=E.getSnapshot;E=E.value;try{if(!as(R(),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 oi(c,d){for(d&=~Px,d&=~Vf,c.suspendedLanes|=d,c.pingedLanes&=~d,c=c.expirationTimes;0<d;){var x=31-Ln(d),w=1<<x;c[x]=-1,d&=~w}}function r1(c){if((It&6)!==0)throw Error(n(327));dl();var d=Vr(c,0);if((d&1)===0)return mr(c,Ht()),null;var x=Xf(c,d);if(c.tag!==0&&x===2){var w=Wo(c);w!==0&&(d=w,x=Ix(c,w))}if(x===1)throw x=mu,qi(c,0),oi(c,d),mr(c,Ht()),x;if(x===6)throw Error(n(345));return c.finishedWork=c.current.alternate,c.finishedLanes=d,Gi(c,hr,jo),mr(c,Ht()),null}function Lx(c,d){var x=It;It|=1;try{return c(d)}finally{It=x,It===0&&(ul=Ht()+500,kf&&Jo())}}function Ki(c){ri!==null&&ri.tag===0&&(It&6)===0&&dl();var d=It;It|=1;var x=Xr.transition,w=Ft;try{if(Xr.transition=null,Ft=1,c)return c()}finally{Ft=w,Xr.transition=x,It=d,(It&6)===0&&Jo()}}function Ox(){_r=cl.current,Qt(cl)}function qi(c,d){c.finishedWork=null,c.finishedLanes=0;var x=c.timeoutHandle;if(x!==-1&&(c.timeoutHandle=-1,TI(x)),bn!==null)for(x=bn.return;x!==null;){var w=x;switch(qg(w),w.tag){case 1:w=w.type.childContextTypes,w!=null&&wf();break;case 3:il(),Qt(dr),Qt(Qn),ix();break;case 5:sx(w);break;case 4:il();break;case 13:Qt(ln);break;case 19:Qt(ln);break;case 10:Zg(w.type._context);break;case 22:case 23:Ox()}x=x.return}if(Bn=c,bn=c=ii(c.current,null),Gn=_r=d,_n=0,mu=null,Px=Vf=Wi=0,hr=gu=null,Ui!==null){for(d=0;d<Ui.length;d++)if(x=Ui[d],w=x.interleaved,w!==null){x.interleaved=null;var E=w.next,R=x.pending;if(R!==null){var G=R.next;R.next=E,w.next=G}x.pending=w}Ui=null}return c}function s1(c,d){do{var x=bn;try{if(Jg(),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(Vi=0,zn=Pn=cn=null,cu=!1,uu=0,Ax.current=null,x===null||x.return===null){_n=1,mu=d,bn=null;break}e:{var R=c,G=x.return,ee=x,se=d;if(d=Gn,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=Rk(G);if(Ke!==null){Ke.flags&=-257,Ak(Ke,G,ee,R,d),Ke.mode&1&&Tk(R,he,d),d=Ke,se=he;var Ze=d.updateQueue;if(Ze===null){var tt=new Set;tt.add(se),d.updateQueue=tt}else Ze.add(se);break e}else{if((d&1)===0){Tk(R,he,d),Fx();break e}se=Error(n(426))}}else if(rn&&ee.mode&1){var hn=Rk(G);if(hn!==null){(hn.flags&65536)===0&&(hn.flags|=256),Ak(hn,G,ee,R,d),Xg(al(se,ee));break e}}R=se=al(se,ee),_n!==4&&(_n=2),gu===null?gu=[R]:gu.push(R),R=G;do{switch(R.tag){case 3:R.flags|=65536,d&=-d,R.lanes|=d;var de=Ck(R,se,d);Zj(R,de);break e;case 1:ee=se;var ae=R.type,pe=R.stateNode;if((R.flags&128)===0&&(typeof ae.getDerivedStateFromError=="function"||pe!==null&&typeof pe.componentDidCatch=="function"&&(ni===null||!ni.has(pe)))){R.flags|=65536,d&=-d,R.lanes|=d;var Le=Ek(R,ee,d);Zj(R,Le);break e}}R=R.return}while(R!==null)}a1(x)}catch(st){d=st,bn===x&&x!==null&&(bn=x=x.return);continue}break}while(!0)}function o1(){var c=Hf.current;return Hf.current=Lf,c===null?Lf:c}function Fx(){(_n===0||_n===3||_n===2)&&(_n=4),Bn===null||(Wi&268435455)===0&&(Vf&268435455)===0||oi(Bn,Gn)}function Xf(c,d){var x=It;It|=2;var w=o1();(Bn!==c||Gn!==d)&&(jo=null,qi(c,d));do try{ZI();break}catch(E){s1(c,E)}while(!0);if(Jg(),It=x,Hf.current=w,bn!==null)throw Error(n(261));return Bn=null,Gn=0,_n}function ZI(){for(;bn!==null;)i1(bn)}function eM(){for(;bn!==null&&!Bc();)i1(bn)}function i1(c){var d=u1(c.alternate,c,_r);c.memoizedProps=c.pendingProps,d===null?a1(c):bn=d,Ax.current=null}function a1(c){var d=c;do{var x=d.alternate;if(c=d.return,(d.flags&32768)===0){if(x=KI(x,d,_r),x!==null){bn=x;return}}else{if(x=qI(x,d),x!==null){x.flags&=32767,bn=x;return}if(c!==null)c.flags|=32768,c.subtreeFlags=0,c.deletions=null;else{_n=6,bn=null;return}}if(d=d.sibling,d!==null){bn=d;return}bn=d=c}while(d!==null);_n===0&&(_n=5)}function Gi(c,d,x){var w=Ft,E=Xr.transition;try{Xr.transition=null,Ft=1,tM(c,d,x,w)}finally{Xr.transition=E,Ft=w}return null}function tM(c,d,x,w){do dl();while(ri!==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 R=x.lanes|x.childLanes;if(An(c,R),c===Bn&&(bn=Bn=null,Gn=0),(x.subtreeFlags&2064)===0&&(x.flags&2064)===0||Kf||(Kf=!0,d1(Ds,function(){return dl(),null})),R=(x.flags&15990)!==0,(x.subtreeFlags&15990)!==0||R){R=Xr.transition,Xr.transition=null;var G=Ft;Ft=1;var ee=It;It|=4,Ax.current=null,YI(c,x),Qk(x,c),wI(Fg),pn=!!Og,Fg=Og=null,c.current=x,XI(x),Fa(),It=ee,Ft=G,Xr.transition=R}else c.current=x;if(Kf&&(Kf=!1,ri=c,qf=E),R=c.pendingLanes,R===0&&(ni=null),ur(x.stateNode),mr(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=Dx,Dx=null,c;return(qf&1)!==0&&c.tag!==0&&dl(),R=c.pendingLanes,(R&1)!==0?c===$x?xu++:(xu=0,$x=c):xu=0,Jo(),null}function dl(){if(ri!==null){var c=lf(qf),d=Xr.transition,x=Ft;try{if(Xr.transition=null,Ft=16>c?16:c,ri===null)var w=!1;else{if(c=ri,ri=null,qf=0,(It&6)!==0)throw Error(n(331));var E=It;for(It|=4,Xe=c.current;Xe!==null;){var R=Xe,G=R.child;if((Xe.flags&16)!==0){var ee=R.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:hu(8,Te,R)}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(Kk(Te),Te===he){Xe=null;break}if(Ee!==null){Ee.return=Ke,Xe=Ee;break}Xe=Ke}}}var Ze=R.alternate;if(Ze!==null){var tt=Ze.child;if(tt!==null){Ze.child=null;do{var hn=tt.sibling;tt.sibling=null,tt=hn}while(tt!==null)}}Xe=R}}if((R.subtreeFlags&2064)!==0&&G!==null)G.return=R,Xe=G;else e:for(;Xe!==null;){if(R=Xe,(R.flags&2048)!==0)switch(R.tag){case 0:case 11:case 15:hu(9,R,R.return)}var de=R.sibling;if(de!==null){de.return=R.return,Xe=de;break e}Xe=R.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,Jo(),ir&&typeof ir.onPostCommitFiberRoot=="function")try{ir.onPostCommitFiberRoot(Uo,c)}catch{}w=!0}return w}finally{Ft=x,Xr.transition=d}}return!1}function l1(c,d,x){d=al(x,d),d=Ck(c,d,1),c=ei(c,d,1),d=lr(),c!==null&&(On(c,1,d),mr(c,d))}function dn(c,d,x){if(c.tag===3)l1(c,c,x);else for(;d!==null;){if(d.tag===3){l1(d,c,x);break}else if(d.tag===1){var w=d.stateNode;if(typeof d.type.getDerivedStateFromError=="function"||typeof w.componentDidCatch=="function"&&(ni===null||!ni.has(w))){c=al(x,c),c=Ek(d,c,1),d=ei(d,c,1),c=lr(),d!==null&&(On(d,1,c),mr(d,c));break}}d=d.return}}function nM(c,d,x){var w=c.pingCache;w!==null&&w.delete(d),d=lr(),c.pingedLanes|=c.suspendedLanes&x,Bn===c&&(Gn&x)===x&&(_n===4||_n===3&&(Gn&130023424)===Gn&&500>Ht()-_x?qi(c,0):Px|=x),mr(c,d)}function c1(c,d){d===0&&((c.mode&1)===0?d=1:(d=Kn,Kn<<=1,(Kn&130023424)===0&&(Kn=4194304)));var x=lr();c=bo(c,d),c!==null&&(On(c,d,x),mr(c,x))}function rM(c){var d=c.memoizedState,x=0;d!==null&&(x=d.retryLane),c1(c,x)}function sM(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),c1(c,x)}var u1;u1=function(c,d,x){if(c!==null)if(c.memoizedProps!==d.pendingProps||dr.current)pr=!0;else{if((c.lanes&x)===0&&(d.flags&128)===0)return pr=!1,WI(c,d,x);pr=(c.flags&131072)!==0}else pr=!1,rn&&(d.flags&1048576)!==0&&Hj(d,Sf,d.index);switch(d.lanes=0,d.tag){case 2:var w=d.type;zf(c,d),c=d.pendingProps;var E=Za(d,Qn.current);ol(d,x),E=cx(null,d,w,c,E,x);var R=ux();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,fr(w)?(R=!0,jf(d)):R=!1,d.memoizedState=E.state!==null&&E.state!==void 0?E.state:null,nx(d),E.updater=Of,d.stateNode=E,E._reactInternals=d,gx(d,w,c,x),d=vx(null,d,w,!0,R,x)):(d.tag=0,rn&&R&&Kg(d),ar(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=iM(w),c=cs(w,c),E){case 0:d=bx(null,d,w,c,x);break e;case 1:d=Mk(null,d,w,c,x);break e;case 11:d=Pk(null,d,w,c,x);break e;case 14:d=_k(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),bx(c,d,w,E,x);case 1:return w=d.type,E=d.pendingProps,E=d.elementType===w?E:cs(w,E),Mk(c,d,w,E,x);case 3:e:{if(Lk(d),c===null)throw Error(n(387));w=d.pendingProps,R=d.memoizedState,E=R.element,Jj(c,d),Pf(d,w,null,x);var G=d.memoizedState;if(w=G.element,R.isDehydrated)if(R={element:w,isDehydrated:!1,cache:G.cache,pendingSuspenseBoundaries:G.pendingSuspenseBoundaries,transitions:G.transitions},d.updateQueue.baseState=R,d.memoizedState=R,d.flags&256){E=al(Error(n(423)),d),d=Ok(c,d,w,x,E);break e}else if(w!==E){E=al(Error(n(424)),d),d=Ok(c,d,w,x,E);break e}else for(Pr=Yo(d.stateNode.containerInfo.firstChild),Ar=d,rn=!0,ls=null,x=Xj(d,null,w,x),d.child=x;x;)x.flags=x.flags&-3|4096,x=x.sibling;else{if(nl(),w===E){d=wo(c,d,x);break e}ar(c,d,w,x)}d=d.child}return d;case 5:return tk(d),c===null&&Yg(d),w=d.type,E=d.pendingProps,R=c!==null?c.memoizedProps:null,G=E.children,zg(w,E)?G=null:R!==null&&zg(w,R)&&(d.flags|=32),Ik(c,d),ar(c,d,G,x),d.child;case 6:return c===null&&Yg(d),null;case 13:return Fk(c,d,x);case 4:return rx(d,d.stateNode.containerInfo),w=d.pendingProps,c===null?d.child=rl(d,null,w,x):ar(c,d,w,x),d.child;case 11:return w=d.type,E=d.pendingProps,E=d.elementType===w?E:cs(w,E),Pk(c,d,w,E,x);case 7:return ar(c,d,d.pendingProps,x),d.child;case 8:return ar(c,d,d.pendingProps.children,x),d.child;case 12:return ar(c,d,d.pendingProps.children,x),d.child;case 10:e:{if(w=d.type._context,E=d.pendingProps,R=d.memoizedProps,G=E.value,qt(Tf,w._currentValue),w._currentValue=G,R!==null)if(as(R.value,G)){if(R.children===E.children&&!dr.current){d=wo(c,d,x);break e}}else for(R=d.child,R!==null&&(R.return=d);R!==null;){var ee=R.dependencies;if(ee!==null){G=R.child;for(var se=ee.firstContext;se!==null;){if(se.context===w){if(R.tag===1){se=vo(-1,x&-x),se.tag=2;var he=R.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}}R.lanes|=x,se=R.alternate,se!==null&&(se.lanes|=x),ex(R.return,x,d),ee.lanes|=x;break}se=se.next}}else if(R.tag===10)G=R.type===d.type?null:R.child;else if(R.tag===18){if(G=R.return,G===null)throw Error(n(341));G.lanes|=x,ee=G.alternate,ee!==null&&(ee.lanes|=x),ex(G,x,d),G=R.sibling}else G=R.child;if(G!==null)G.return=R;else for(G=R;G!==null;){if(G===d){G=null;break}if(R=G.sibling,R!==null){R.return=G.return,G=R;break}G=G.return}R=G}ar(c,d,E.children,x),d=d.child}return d;case 9:return E=d.type,w=d.pendingProps.children,ol(d,x),E=Gr(E),w=w(E),d.flags|=1,ar(c,d,w,x),d.child;case 14:return w=d.type,E=cs(w,d.pendingProps),E=cs(w.type,E),_k(c,d,w,E,x);case 15:return Dk(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,fr(w)?(c=!0,jf(d)):c=!1,ol(d,x),Nk(d,w,E),gx(d,w,E,x),vx(null,d,w,!0,c,x);case 19:return Bk(c,d,x);case 22:return $k(c,d,x)}throw Error(n(156,d.tag))};function d1(c,d){return La(c,d)}function oM(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 Qr(c,d,x,w){return new oM(c,d,x,w)}function zx(c){return c=c.prototype,!(!c||!c.isReactComponent)}function iM(c){if(typeof c=="function")return zx(c)?1:0;if(c!=null){if(c=c.$$typeof,c===z)return 11;if(c===F)return 14}return 2}function ii(c,d){var x=c.alternate;return x===null?(x=Qr(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,R){var G=2;if(w=c,typeof c=="function")zx(c)&&(G=1);else if(typeof c=="string")G=5;else e:switch(c){case _:return Yi(x.children,E,R,d);case O:G=8,E|=8;break;case P:return c=Qr(12,x,d,E|2),c.elementType=P,c.lanes=R,c;case U:return c=Qr(13,x,d,E),c.elementType=U,c.lanes=R,c;case D:return c=Qr(19,x,d,E),c.elementType=D,c.lanes=R,c;case K:return Jf(x,E,R,d);default:if(typeof c=="object"&&c!==null)switch(c.$$typeof){case W:G=10;break e;case I:G=9;break e;case z:G=11;break e;case F:G=14;break e;case M:G=16,w=null;break e}throw Error(n(130,c==null?c:typeof c,""))}return d=Qr(G,x,d,E),d.elementType=c,d.type=w,d.lanes=R,d}function Yi(c,d,x,w){return c=Qr(7,c,w,d),c.lanes=x,c}function Jf(c,d,x,w){return c=Qr(22,c,w,d),c.elementType=K,c.lanes=x,c.stateNode={isHidden:!1},c}function Bx(c,d,x){return c=Qr(6,c,null,d),c.lanes=x,c}function Ux(c,d,x){return d=Qr(4,c.children!==null?c.children:[],c.key,d),d.lanes=x,d.stateNode={containerInfo:c.containerInfo,pendingChildren:null,implementation:c.implementation},d}function aM(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 Hx(c,d,x,w,E,R,G,ee,se){return c=new aM(c,d,x,ee,se),d===1?(d=1,R===!0&&(d|=8)):d=0,R=Qr(3,null,null,d),c.current=R,R.stateNode=c,R.memoizedState={element:w,isDehydrated:x,cache:null,transitions:null,pendingSuspenseBoundaries:null},nx(R),c}function lM(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 f1(c){if(!c)return Qo;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(fr(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(fr(x))return zj(c,x,d)}return d}function p1(c,d,x,w,E,R,G,ee,se){return c=Hx(x,w,!0,c,E,R,G,ee,se),c.context=f1(null),x=c.current,w=lr(),E=si(x),R=vo(w,E),R.callback=d??null,ei(x,R,E),c.current.lanes=E,On(c,E,w),mr(c,w),c}function Zf(c,d,x,w){var E=d.current,R=lr(),G=si(E);return x=f1(x),d.context===null?d.context=x:d.pendingContext=x,d=vo(R,G),d.payload={element:c},w=w===void 0?null:w,w!==null&&(d.callback=w),c=ei(E,d,G),c!==null&&(fs(c,E,G,R),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 h1(c,d){if(c=c.memoizedState,c!==null&&c.dehydrated!==null){var x=c.retryLane;c.retryLane=x!==0&&x<d?x:d}}function Vx(c,d){h1(c,d),(c=c.alternate)&&h1(c,d)}function cM(){return null}var m1=typeof reportError=="function"?reportError:function(c){console.error(c)};function Wx(c){this._internalRoot=c}tp.prototype.render=Wx.prototype.render=function(c){var d=this._internalRoot;if(d===null)throw Error(n(409));Zf(c,d,null,null)},tp.prototype.unmount=Wx.prototype.unmount=function(){var c=this._internalRoot;if(c!==null){this._internalRoot=null;var d=c.containerInfo;Ki(function(){Zf(null,c,null,null)}),d[mo]=null}};function tp(c){this._internalRoot=c}tp.prototype.unstable_scheduleHydration=function(c){if(c){var d=fo();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&&we(c)}};function Kx(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 g1(){}function uM(c,d,x,w,E){if(E){if(typeof w=="function"){var R=w;w=function(){var he=ep(G);R.call(he)}}var G=p1(d,w,c,0,null,!1,!1,"",g1);return c._reactRootContainer=G,c[mo]=G.current,tu(c.nodeType===8?c.parentNode:c),Ki(),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=Hx(c,0,!1,null,null,!1,!1,"",g1);return c._reactRootContainer=se,c[mo]=se.current,tu(c.nodeType===8?c.parentNode:c),Ki(function(){Zf(d,se,x,w)}),se}function rp(c,d,x,w,E){var R=x._reactRootContainer;if(R){var G=R;if(typeof E=="function"){var ee=E;E=function(){var se=ep(G);ee.call(se)}}Zf(d,G,c,E)}else G=uM(x,d,c,E,w);return ep(G)}Vc=function(c){switch(c.tag){case 3:var d=c.stateNode;if(d.current.memoizedState.isDehydrated){var x=uo(d.pendingLanes);x!==0&&(Is(d,x|1),mr(d,Ht()),(It&6)===0&&(ul=Ht()+500,Jo()))}break;case 13:Ki(function(){var w=bo(c,1);if(w!==null){var E=lr();fs(w,c,1,E)}}),Vx(c,1)}},Ii=function(c){if(c.tag===13){var d=bo(c,134217728);if(d!==null){var x=lr();fs(d,c,134217728,x)}Vx(c,134217728)}},Wc=function(c){if(c.tag===13){var d=si(c),x=bo(c,d);if(x!==null){var w=lr();fs(x,c,d,w)}Vx(c,d)}},fo=function(){return Ft},Kc=function(c,d){var x=Ft;try{return Ft=c,d()}finally{Ft=x}},qe=function(c,d,x){switch(d){case"input":if(ye(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),ye(w,E)}}}break;case"textarea":ht(c,x);break;case"select":d=x.value,d!=null&&Oe(c,!!x.multiple,d,!1)}},_t=Lx,Bt=Ki;var dM={usingClientEntryPoint:!1,Events:[su,Qa,vf,vt,nt,Lx]},yu={findFiberByHostInstance:Oi,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},fM={bundleType:yu.bundleType,version:yu.version,rendererPackageName:yu.rendererPackageName,rendererConfig:yu.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:yu.findFiberByHostInstance||cM,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{Uo=sp.inject(fM),ir=sp}catch{}}return gr.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=dM,gr.createPortal=function(c,d){var x=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!Kx(d))throw Error(n(200));return lM(c,d,null,x)},gr.createRoot=function(c,d){if(!Kx(c))throw Error(n(299));var x=!1,w="",E=m1;return d!=null&&(d.unstable_strictMode===!0&&(x=!0),d.identifierPrefix!==void 0&&(w=d.identifierPrefix),d.onRecoverableError!==void 0&&(E=d.onRecoverableError)),d=Hx(c,1,!1,null,null,x,!1,w,E),c[mo]=d.current,tu(c.nodeType===8?c.parentNode:c),new Wx(d)},gr.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},gr.flushSync=function(c){return Ki(c)},gr.hydrate=function(c,d,x){if(!np(d))throw Error(n(200));return rp(null,c,d,!0,x)},gr.hydrateRoot=function(c,d,x){if(!Kx(c))throw Error(n(405));var w=x!=null&&x.hydratedSources||null,E=!1,R="",G=m1;if(x!=null&&(x.unstable_strictMode===!0&&(E=!0),x.identifierPrefix!==void 0&&(R=x.identifierPrefix),x.onRecoverableError!==void 0&&(G=x.onRecoverableError)),d=p1(d,null,c,1,x??null,E,!1,R,G),c[mo]=d.current,tu(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)},gr.render=function(c,d,x){if(!np(d))throw Error(n(200));return rp(null,c,d,!1,x)},gr.unmountComponentAtNode=function(c){if(!np(c))throw Error(n(40));return c._reactRootContainer?(Ki(function(){rp(null,null,c,!1,function(){c._reactRootContainer=null,c[mo]=null})}),!0):!1},gr.unstable_batchedUpdates=Lx,gr.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)},gr.version="18.3.1-next-f1338f8080-20240426",gr}var N1;function XE(){if(N1)return Xx.exports;N1=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(),Xx.exports=jM(),Xx.exports}var S1;function kM(){if(S1)return op;S1=1;var e=XE();return op.createRoot=e.createRoot,op.hydrateRoot=e.hydrateRoot,op}var NM=kM();/**
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 C1="popstate";function E1(e){return typeof e=="object"&&e!=null&&"pathname"in e&&"search"in e&&"hash"in e&&"state"in e&&"key"in e}function SM(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 wb("",{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:id(o)}return EM(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 CM(){return Math.random().toString(36).substring(2,10)}function T1(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 wb(e,t,n=null,r,o){return{pathname:typeof e=="string"?e:e.pathname,search:"",hash:"",...typeof t=="string"?yc(t):t,state:n,key:t&&t.key||r||CM(),unstable_mask:o}}function id({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 yc(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 EM(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=E1(b)?b:wb(v.location,b,j);f=p()+1;let N=T1(S,f),C=v.createHref(S.unstable_mask||S);try{a.pushState(N,"",C)}catch(A){if(A instanceof DOMException&&A.name==="DataCloneError")throw A;o.location.assign(C)}i&&u&&u({action:l,location:v.location,delta:1})}function y(b,j){l="REPLACE";let S=E1(b)?b:wb(v.location,b,j);f=p();let N=T1(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 TM(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(C1,h),u=b,()=>{o.removeEventListener(C1,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 TM(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:id(e);return r=r.replace(/ $/,"%20"),!t&&r.startsWith("//")&&(r=n+r),new URL(r,n)}function QE(e,t,n="/"){return RM(e,t,n,!1)}function RM(e,t,n,r){let o=typeof t=="string"?yc(t):t,i=Po(o.pathname||"/",n);if(i==null)return null;let a=JE(e);AM(a);let l=null;for(let u=0;l==null&&u<a.length;++u){let f=BM(i);l=FM(a[u],f,r)}return l}function JE(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=Zs([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}".`),JE(a.children,t,g,h,u)),!(a.path==null&&!a.index)&&t.push({path:h,score:LM(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 ZE(a.path))i(a,l,!0,f)}),t}function ZE(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=ZE(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 AM(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:OM(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}var PM=/^:[\w-]+$/,_M=3,DM=2,$M=1,IM=10,MM=-2,R1=e=>e==="*";function LM(e,t){let n=e.split("/"),r=n.length;return n.some(R1)&&(r+=MM),t&&(r+=DM),n.filter(o=>!R1(o)).reduce((o,i)=>o+(PM.test(i)?_M:i===""?$M:IM),r)}function OM(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 FM(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:Zs([i,h.pathname]),pathnameBase:WM(Zs([i,h.pathnameBase])),route:g}),h.pathnameBase!=="/"&&(i=Zs([i,h.pathnameBase]))}return a}function ih(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=zM(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 zM(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 BM(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 Po(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 UM=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i;function HM(e,t="/"){let{pathname:n,search:r="",hash:o=""}=typeof e=="string"?yc(e):e,i;return n?(n=n.replace(/\/\/+/g,"/"),n.startsWith("/")?i=A1(n.substring(1),"/"):i=A1(n,t)):i=t,{pathname:i,search:KM(r),hash:qM(o)}}function A1(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 Zx(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 VM(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function e2(e){let t=VM(e);return t.map((n,r)=>r===t.length-1?n.pathname:n.pathnameBase)}function Lv(e,t,n,r=!1){let o;typeof e=="string"?o=yc(e):(o={...e},un(!o.pathname||!o.pathname.includes("?"),Zx("?","pathname","search",o)),un(!o.pathname||!o.pathname.includes("#"),Zx("#","pathname","hash",o)),un(!o.search||!o.search.includes("#"),Zx("#","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=HM(o,l),f=a&&a!=="/"&&a.endsWith("/"),p=(i||a===".")&&n.endsWith("/");return!u.pathname.endsWith("/")&&(f||p)&&(u.pathname+="/"),u}var Zs=e=>e.join("/").replace(/\/\/+/g,"/"),WM=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),KM=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,qM=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e,GM=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 YM(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}function XM(e){return e.map(t=>t.route.path).filter(Boolean).join("/").replace(/\/\/*/g,"/")||"/"}var t2=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function n2(e,t){let n=e;if(typeof n!="string"||!UM.test(n))return{absoluteURL:void 0,isExternal:!1,to:n};let r=n,o=!1;if(t2)try{let i=new URL(window.location.href),a=n.startsWith("//")?new URL(i.protocol+n):new URL(n),l=Po(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 r2=["POST","PUT","PATCH","DELETE"];new Set(r2);var QM=["GET",...r2];new Set(QM);var bc=m.createContext(null);bc.displayName="DataRouter";var tm=m.createContext(null);tm.displayName="DataRouterState";var JM=m.createContext(!1),s2=m.createContext({isTransitioning:!1});s2.displayName="ViewTransition";var ZM=m.createContext(new Map);ZM.displayName="Fetchers";var eL=m.createContext(null);eL.displayName="Await";var ts=m.createContext(null);ts.displayName="Navigation";var $d=m.createContext(null);$d.displayName="Location";var Ts=m.createContext({outlet:null,matches:[],isDataRoute:!1});Ts.displayName="Route";var Ov=m.createContext(null);Ov.displayName="RouteError";var o2="REACT_ROUTER_ERROR",tL="REDIRECT",nL="ROUTE_ERROR_RESPONSE";function rL(e){if(e.startsWith(`${o2}:${tL}:{`))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 sL(e){if(e.startsWith(`${o2}:${nL}:{`))try{let t=JSON.parse(e.slice(40));if(typeof t=="object"&&t&&typeof t.status=="number"&&typeof t.statusText=="string")return new GM(t.status,t.statusText,t.data)}catch{}}function oL(e,{relative:t}={}){un(Id(),"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}=Md(e,{relative:t}),l=i;return n!=="/"&&(l=i==="/"?n:Zs([n,i])),r.createHref({pathname:l,search:a,hash:o})}function Id(){return m.useContext($d)!=null}function rr(){return un(Id(),"useLocation() may be used only in the context of a <Router> component."),m.useContext($d).location}var i2="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function a2(e){m.useContext(ts).static||m.useLayoutEffect(e)}function Wt(){let{isDataRoute:e}=m.useContext(Ts);return e?vL():iL()}function iL(){un(Id(),"useNavigate() may be used only in the context of a <Router> component.");let e=m.useContext(bc),{basename:t,navigator:n}=m.useContext(ts),{matches:r}=m.useContext(Ts),{pathname:o}=rr(),i=JSON.stringify(e2(r)),a=m.useRef(!1);return a2(()=>{a.current=!0}),m.useCallback((u,f={})=>{if(bs(a.current,i2),!a.current)return;if(typeof u=="number"){n.go(u);return}let p=Lv(u,JSON.parse(i),o,f.relative==="path");e==null&&t!=="/"&&(p.pathname=p.pathname==="/"?t:Zs([t,p.pathname])),(f.replace?n.replace:n.push)(p,f.state,f)},[t,n,i,o,e])}var aL=m.createContext(null);function lL(e){let t=m.useContext(Ts).outlet;return m.useMemo(()=>t&&m.createElement(aL.Provider,{value:e},t),[t,e])}function Kt(){let{matches:e}=m.useContext(Ts),t=e[e.length-1];return t?t.params:{}}function Md(e,{relative:t}={}){let{matches:n}=m.useContext(Ts),{pathname:r}=rr(),o=JSON.stringify(e2(n));return m.useMemo(()=>Lv(e,JSON.parse(o),r,t==="path"),[e,o,r,t])}function cL(e,t){return l2(e,t)}function l2(e,t,n){var b;un(Id(),"useRoutes() may be used only in the context of a <Router> component.");let{navigator:r}=m.useContext(ts),{matches:o}=m.useContext(Ts),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||"";u2(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=rr(),h;if(t){let j=typeof t=="string"?yc(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=hL(k&&k.map(j=>Object.assign({},j,{params:Object.assign({},a,j.params),pathname:Zs([u,r.encodeLocation?r.encodeLocation(j.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:j.pathname]),pathnameBase:j.pathnameBase==="/"?u:Zs([u,r.encodeLocation?r.encodeLocation(j.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:j.pathnameBase])})),o,n);return t&&v?m.createElement($d.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",unstable_mask:void 0,...h},navigationType:"POP"}},v):v}function uL(){let e=bL(),t=YM(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 dL=m.createElement(uL,null),c2=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=sL(e.digest);n&&(e=n)}let t=e!==void 0?m.createElement(Ts.Provider,{value:this.props.routeContext},m.createElement(Ov.Provider,{value:e,children:this.props.component})):this.props.children;return this.context?m.createElement(fL,{error:e},t):t}};c2.contextType=JM;var ey=new WeakMap;function fL({children:e,error:t}){let{basename:n}=m.useContext(ts);if(typeof t=="object"&&t&&"digest"in t&&typeof t.digest=="string"){let r=rL(t.digest);if(r){let o=ey.get(t);if(o)throw o;let i=n2(r.location,n);if(t2&&!ey.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 ey.set(t,a),a}return m.createElement("meta",{httpEquiv:"refresh",content:`0;url=${i.absoluteURL||i.to}`})}}return e}function pL({routeContext:e,match:t,children:n}){let r=m.useContext(bc);return r&&r.static&&r.staticContext&&(t.route.errorElement||t.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=t.route.id),m.createElement(Ts.Provider,{value:e},n)}function hL(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:XM(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||dL,a&&(l<0&&g===0?(u2("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(pL,{match:h,routeContext:{outlet:p,matches:j,isDataRoute:r!=null},children:N})};return r&&(h.route.ErrorBoundary||h.route.errorElement||g===0)?m.createElement(c2,{location:r.location,revalidation:r.revalidation,component:v,error:y,children:S(),routeContext:{outlet:null,matches:j,isDataRoute:!0},onError:f}):S()},null)}function Fv(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function mL(e){let t=m.useContext(bc);return un(t,Fv(e)),t}function gL(e){let t=m.useContext(tm);return un(t,Fv(e)),t}function xL(e){let t=m.useContext(Ts);return un(t,Fv(e)),t}function zv(e){let t=xL(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 yL(){return zv("useRouteId")}function bL(){var r;let e=m.useContext(Ov),t=gL("useRouteError"),n=zv("useRouteError");return e!==void 0?e:(r=t.errors)==null?void 0:r[n]}function vL(){let{router:e}=mL("useNavigate"),t=zv("useNavigate"),n=m.useRef(!1);return a2(()=>{n.current=!0}),m.useCallback(async(o,i={})=>{bs(n.current,i2),n.current&&(typeof o=="number"?await e.navigate(o):await e.navigate(o,{fromRouteId:t,...i}))},[e,t])}var P1={};function u2(e,t,n){!t&&!P1[e]&&(P1[e]=!0,bs(!1,n))}m.memo(wL);function wL({routes:e,future:t,state:n,isStatic:r,onError:o}){return l2(e,void 0,{state:n,isStatic:r,onError:o})}function jL(e){return lL(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 kL({basename:e="/",children:t=null,location:n,navigationType:r="POP",navigator:o,static:i=!1,unstable_useTransitions:a}){un(!Id(),"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=yc(n));let{pathname:f="/",search:p="",hash:h="",state:g=null,key:y="default",unstable_mask:k}=n,v=m.useMemo(()=>{let b=Po(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($d.Provider,{children:t,value:v}))}function NL({children:e,location:t}){return cL(jb(e),t)}function jb(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,jb(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=jb(r.props.children,i)),n.push(a)}),n}var Ip="get",Mp="application/x-www-form-urlencoded";function nm(e){return typeof HTMLElement<"u"&&e instanceof HTMLElement}function SL(e){return nm(e)&&e.tagName.toLowerCase()==="button"}function CL(e){return nm(e)&&e.tagName.toLowerCase()==="form"}function EL(e){return nm(e)&&e.tagName.toLowerCase()==="input"}function TL(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function RL(e,t){return e.button===0&&(!t||t==="_self")&&!TL(e)}function kb(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 AL(e,t){let n=kb(e);return t&&t.forEach((r,o)=>{n.has(o)||t.getAll(o).forEach(i=>{n.append(o,i)})}),n}var ip=null;function PL(){if(ip===null)try{new FormData(document.createElement("form"),0),ip=!1}catch{ip=!0}return ip}var _L=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function ty(e){return e!=null&&!_L.has(e)?(bs(!1,`"${e}" is not a valid \`encType\` for \`<Form>\`/\`<fetcher.Form>\` and will default to "${Mp}"`),null):e}function DL(e,t){let n,r,o,i,a;if(CL(e)){let l=e.getAttribute("action");r=l?Po(l,t):null,n=e.getAttribute("method")||Ip,o=ty(e.getAttribute("enctype"))||Mp,i=new FormData(e)}else if(SL(e)||EL(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?Po(u,t):null,n=e.getAttribute("formmethod")||l.getAttribute("method")||Ip,o=ty(e.getAttribute("formenctype"))||ty(l.getAttribute("enctype"))||Mp,i=new FormData(l,e),!PL()){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(nm(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 Bv(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function $L(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&&Po(o.pathname,t)==="/"?o.pathname=`${t.replace(/\/$/,"")}/_root.${r}`:o.pathname=`${o.pathname.replace(/\/$/,"")}.${r}`,o}async function IL(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 ML(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 LL(e,t,n){let r=await Promise.all(e.map(async o=>{let i=t.routes[o.route.id];if(i){let a=await IL(i,n);return a.links?a.links():[]}return[]}));return BL(r.flat(1).filter(ML).filter(o=>o.rel==="stylesheet"||o.rel==="preload").map(o=>o.rel==="stylesheet"?{...o,rel:"prefetch",as:"style"}:{...o,rel:"prefetch"}))}function _1(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 OL(e,t,{includeHydrateFallback:n}={}){return FL(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 FL(e){return[...new Set(e)]}function zL(e){let t={},n=Object.keys(e).sort();for(let r of n)t[r]=e[r];return t}function BL(e,t){let n=new Set;return new Set(t),e.reduce((r,o)=>{let i=JSON.stringify(zL(o));return n.has(i)||(n.add(i),r.push({key:i,link:o})),r},[])}function d2(){let e=m.useContext(bc);return Bv(e,"You must render this element inside a <DataRouterContext.Provider> element"),e}function UL(){let e=m.useContext(tm);return Bv(e,"You must render this element inside a <DataRouterStateContext.Provider> element"),e}var Uv=m.createContext(void 0);Uv.displayName="FrameworkContext";function f2(){let e=m.useContext(Uv);return Bv(e,"You must render this element inside a <HydratedRouter> element"),e}function HL(e,t){let n=m.useContext(Uv),[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:vu(l,y),onBlur:vu(u,k),onMouseEnter:vu(f,y),onMouseLeave:vu(p,k),onTouchStart:vu(h,y)}]:[!1,g,{}]}function vu(e,t){return n=>{e&&e(n),n.defaultPrevented||t(n)}}function VL({page:e,...t}){let{router:n}=d2(),r=m.useMemo(()=>QE(n.routes,e,n.basename),[n.routes,e,n.basename]);return r?m.createElement(KL,{page:e,matches:r,...t}):null}function WL(e){let{manifest:t,routeModules:n}=f2(),[r,o]=m.useState([]);return m.useEffect(()=>{let i=!1;return LL(e,t,n).then(a=>{i||o(a)}),()=>{i=!0}},[e,t,n]),r}function KL({page:e,matches:t,...n}){let r=rr(),{future:o,manifest:i,routeModules:a}=f2(),{basename:l}=d2(),{loaderData:u,matches:f}=UL(),p=m.useMemo(()=>_1(e,t,f,i,r,"data"),[e,t,f,i,r]),h=m.useMemo(()=>_1(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(A=>A.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=$L(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(()=>OL(h,i),[h,i]),k=WL(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 qL(...e){return t=>{e.forEach(n=>{typeof n=="function"?n(t):n!=null&&(n.current=t)})}}var GL=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";try{GL&&(window.__reactRouterVersion="7.13.1")}catch{}function YL({basename:e,children:t,unstable_useTransitions:n,window:r}){let o=m.useRef();o.current==null&&(o.current=SM({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(kL,{basename:e,children:t,location:a.location,navigationType:a.action,navigator:i,unstable_useTransitions:n})}var p2=/^(?:[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"&&p2.test(p),C=n2(p,b);p=C.to;let A=oL(p,{relative:o}),T=rr(),_=null;if(l){let F=Lv(l,[],T.unstable_mask?T.unstable_mask.pathname:"/",!0);b!=="/"&&(F.pathname=F.pathname==="/"?b:Zs([b,F.pathname])),_=j.createHref(F)}let[O,P,W]=HL(r,k),I=ZL(p,{replace:a,unstable_mask:l,state:u,target:f,preventScrollReset:h,relative:o,viewTransition:g,unstable_defaultShouldRevalidate:y,unstable_useTransitions:S});function z(F){t&&t(F),F.defaultPrevented||I(F)}let U=!(C.isExternal||i),D=m.createElement("a",{...k,...W,href:(U?_:void 0)||C.absoluteURL||A,onClick:U?z:t,ref:qL(v,P),target:f,"data-discover":!N&&n==="render"?"true":void 0});return O&&!N?m.createElement(m.Fragment,null,D,m.createElement(VL,{page:A})):D});$e.displayName="Link";var XL=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=Md(a,{relative:f.relative}),g=rr(),y=m.useContext(tm),{navigator:k,basename:v}=m.useContext(ts),b=y!=null&&s4(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=Po(N,v)||N);const C=j!=="/"&&j.endsWith("/")?j.length-1:j.length;let A=S===j||!o&&S.startsWith(j)&&S.charAt(C)==="/",T=N!=null&&(N===j||!o&&N.startsWith(j)&&N.charAt(j.length)==="/"),_={isActive:A,isPending:T,isTransitioning:b},O=A?t:void 0,P;typeof r=="function"?P=r(_):P=[r,A?"active":null,T?"pending":null,b?"transitioning":null].filter(Boolean).join(" ");let W=typeof i=="function"?i(_):i;return m.createElement($e,{...f,"aria-current":O,className:P,ref:p,style:W,to:a,viewTransition:l},typeof u=="function"?u(_):u)});XL.displayName="NavLink";var QL=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=n4(),j=r4(l,{relative:f}),S=a.toLowerCase()==="get"?"get":"post",N=typeof l=="string"&&p2.test(l),C=A=>{if(u&&u(A),A.defaultPrevented)return;A.preventDefault();let T=A.nativeEvent.submitter,_=(T==null?void 0:T.getAttribute("formmethod"))||a,O=()=>b(T||A.currentTarget,{fetcherKey:t,method:_,navigate:n,replace:o,state:i,relative:f,preventScrollReset:p,viewTransition:h,unstable_defaultShouldRevalidate:g});v&&n!==!1?m.startTransition(()=>O()):O()};return m.createElement("form",{ref:k,method:S,action:j,onSubmit:r?u:C,...y,"data-discover":!N&&e==="render"?"true":void 0})});QL.displayName="Form";function JL(e){return`${e} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function h2(e){let t=m.useContext(bc);return un(t,JL(e)),t}function ZL(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=rr(),g=Md(e,{relative:a});return m.useCallback(y=>{if(RL(y,t)){y.preventDefault();let k=n!==void 0?n:id(h)===id(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 Rs(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(kb(e)),n=m.useRef(!1),r=rr(),o=m.useMemo(()=>AL(r.search,n.current?null:t.current),[r.search]),i=Wt(),a=m.useCallback((l,u)=>{const f=kb(typeof l=="function"?l(new URLSearchParams(o)):l);n.current=!0,i("?"+f,u)},[i,o]);return[o,a]}var e4=0,t4=()=>`__${String(++e4)}__`;function n4(){let{router:e}=h2("useSubmit"),{basename:t}=m.useContext(ts),n=yL(),r=e.fetch,o=e.navigate;return m.useCallback(async(i,a={})=>{let{action:l,method:u,encType:f,formData:p,body:h}=DL(i,t);if(a.navigate===!1){let g=a.fetcherKey||t4();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 r4(e,{relative:t}={}){let{basename:n}=m.useContext(ts),r=m.useContext(Ts);un(r,"useFormAction must be used inside a RouteContext");let[o]=r.matches.slice(-1),i={...Md(e||".",{relative:t})},a=rr();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:Zs([n,i.pathname])),id(i)}function s4(e,{relative:t}={}){let n=m.useContext(s2);un(n!=null,"`useViewTransitionState` must be used within `react-router-dom`'s `RouterProvider`. Did you accidentally import `RouterProvider` from `react-router`?");let{basename:r}=h2("useViewTransitionState"),o=Md(e,{relative:t});if(!n.isTransitioning)return!1;let i=Po(n.currentLocation.pathname,r)||n.currentLocation.pathname,a=Po(n.nextLocation.pathname,r)||n.nextLocation.pathname;return ih(o.pathname,a)!=null||ih(o.pathname,i)!=null}var Xs=XE();const o4=_d(Xs);/**
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 i4=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),m2=(...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 a4={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 l4=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,...a4,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:m2("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 Ae=(e,t)=>{const n=m.forwardRef(({className:r,...o},i)=>m.createElement(l4,{ref:i,iconNode:t,className:m2(`lucide-${i4(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 rm=Ae("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=Ae("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 sm=Ae("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=Ae("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 om=Ae("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 im=Ae("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=Ae("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 c4=Ae("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 u4=Ae("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 g2=Ae("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 Hv=Ae("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 d4=Ae("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 x2=Ae("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 Nr=Ae("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 tr=Ae("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 f4=Ae("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 Vv=Ae("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 y2=Ae("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=Ae("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 am=Ae("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 Nb=Ae("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 b2=Ae("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 p4=Ae("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 h4=Ae("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 m4=Ae("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 g4=Ae("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 x4=Ae("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 y4=Ae("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 lm=Ae("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 b4=Ae("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 v2=Ae("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=Ae("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 v4=Ae("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 w4=Ae("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 vc=Ae("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 D1=Ae("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 j4=Ae("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 k4=Ae("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 w2=Ae("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 N4=Ae("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 S4=Ae("Fingerprint",[["path",{d:"M12 10a2 2 0 0 0-2 2c0 1.02-.1 2.51-.26 4",key:"1nerag"}],["path",{d:"M14 13.12c0 2.38 0 6.38-1 8.88",key:"o46ks0"}],["path",{d:"M17.29 21.02c.12-.6.43-2.3.5-3.02",key:"ptglia"}],["path",{d:"M2 12a10 10 0 0 1 18-6",key:"ydlgp0"}],["path",{d:"M2 16h.01",key:"1gqxmh"}],["path",{d:"M21.8 16c.2-2 .131-5.354 0-6",key:"drycrb"}],["path",{d:"M5 19.5C5.5 18 6 15 6 12a6 6 0 0 1 .34-2",key:"1tidbn"}],["path",{d:"M8.65 22c.21-.66.45-1.32.57-2",key:"13wd9y"}],["path",{d:"M9 6.8a6 6 0 0 1 9 5.2v2",key:"1fr1j5"}]]);/**
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 C4=Ae("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"}]]);/**
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 Wv=Ae("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"}]]);/**
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 E4=Ae("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"}]]);/**
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 Kv=Ae("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"}]]);/**
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 T4=Ae("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"}]]);/**
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 wc=Ae("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"}]]);/**
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 R4=Ae("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"}]]);/**
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 A4=Ae("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"}]]);/**
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 j2=Ae("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"}]]);/**
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 qv=Ae("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/**
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 Sb=Ae("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"}]]);/**
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 P4=Ae("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"}]]);/**
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 k2=Ae("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"}]]);/**
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 _4=Ae("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"}]]);/**
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 D4=Ae("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"}]]);/**
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 $4=Ae("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"}]]);/**
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 I4=Ae("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"}]]);/**
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 M4=Ae("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"}]]);/**
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 Gv=Ae("LoaderCircle",[["path",{d:"M21 12a9 9 0 1 1-6.219-8.56",key:"13zald"}]]);/**
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 L4=Ae("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"}]]);/**
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 N2=Ae("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"}]]);/**
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 O4=Ae("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"}]]);/**
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 $1=Ae("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"}]]);/**
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 Yv=Ae("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"}]]);/**
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 F4=Ae("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"}]]);/**
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 ny=Ae("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"}]]);/**
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 S2=Ae("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"}]]);/**
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 jc=Ae("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"}]]);/**
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 z4=Ae("Play",[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]]);/**
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 At=Ae("Plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]);/**
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 C2=Ae("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"}]]);/**
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 B4=Ae("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"}]]);/**
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 U4=Ae("Reply",[["polyline",{points:"9 17 4 12 9 7",key:"hvgpf2"}],["path",{d:"M20 18v-2a4 4 0 0 0-4-4H4",key:"5vmcpk"}]]);/**
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 vs=Ae("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"}]]);/**
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 H4=Ae("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"}]]);/**
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 cm=Ae("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"}]]);/**
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 V4=Ae("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"}]]);/**
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 Ci=Ae("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]]);/**
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 W4=Ae("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"}]]);/**
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 K4=Ae("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"}]]);/**
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 q4=Ae("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"}]]);/**
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 G4=Ae("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"}]]);/**
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 Y4=Ae("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"}]]);/**
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 ys=Ae("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"}]]);/**
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 ry=Ae("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"}]]);/**
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 I1=Ae("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"}]]);/**
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 Xv=Ae("Square",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]);/**
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 X4=Ae("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"}]]);/**
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 Q4=Ae("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"}]]);/**
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 E2=Ae("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"}]]);/**
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 pa=Ae("Terminal",[["polyline",{points:"4 17 10 11 4 5",key:"akl6gq"}],["line",{x1:"12",x2:"20",y1:"19",y2:"19",key:"q2wloq"}]]);/**
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 gn=Ae("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"}]]);/**
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 kc=Ae("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"}]]);/**
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 J4=Ae("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"}]]);/**
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 Z4=Ae("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"}]]);/**
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 T2=Ae("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"}]]);/**
557
+ * @license lucide-react v0.460.0 - ISC
558
+ *
559
+ * This source code is licensed under the ISC license.
560
+ * See the LICENSE file in the root directory of this source tree.
561
+ */const Nc=Ae("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);function R2(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=R2(e[t]))&&(r&&(r+=" "),r+=n)}else for(n in e)e[n]&&(r&&(r+=" "),r+=n);return r}function e5(){for(var e,t,n=0,r="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=R2(e))&&(r&&(r+=" "),r+=t);return r}const Qv="-",t5=e=>{const t=r5(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:r}=e;return{getClassGroupId:a=>{const l=a.split(Qv);return l[0]===""&&l.length!==1&&l.shift(),A2(l,t)||n5(a)},getConflictingClassGroupIds:(a,l)=>{const u=n[a]||[];return l&&r[a]?[...u,...r[a]]:u}}},A2=(e,t)=>{var a;if(e.length===0)return t.classGroupId;const n=e[0],r=t.nextPart.get(n),o=r?A2(e.slice(1),r):void 0;if(o)return o;if(t.validators.length===0)return;const i=e.join(Qv);return(a=t.validators.find(({validator:l})=>l(i)))==null?void 0:a.classGroupId},M1=/^\[(.+)\]$/,n5=e=>{if(M1.test(e)){const t=M1.exec(e)[1],n=t==null?void 0:t.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},r5=e=>{const{theme:t,prefix:n}=e,r={nextPart:new Map,validators:[]};return o5(Object.entries(e.classGroups),n).forEach(([i,a])=>{Cb(a,r,i,t)}),r},Cb=(e,t,n,r)=>{e.forEach(o=>{if(typeof o=="string"){const i=o===""?t:L1(t,o);i.classGroupId=n;return}if(typeof o=="function"){if(s5(o)){Cb(o(r),t,n,r);return}t.validators.push({validator:o,classGroupId:n});return}Object.entries(o).forEach(([i,a])=>{Cb(a,L1(t,i),n,r)})})},L1=(e,t)=>{let n=e;return t.split(Qv).forEach(r=>{n.nextPart.has(r)||n.nextPart.set(r,{nextPart:new Map,validators:[]}),n=n.nextPart.get(r)}),n},s5=e=>e.isThemeGetter,o5=(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,i5=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)}}},P2="!",a5=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(P2),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},l5=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},c5=e=>({cache:i5(e.cacheSize),parseClassName:a5(e),...t5(e)}),u5=/\s+/,d5=(e,t)=>{const{parseClassName:n,getClassGroupId:r,getConflictingClassGroupIds:o}=t,i=[],a=e.trim().split(u5);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=l5(p).join(":"),j=h?b+P2: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 A=N[C];i.push(j+A)}l=f+(l.length>0?" "+l:l)}return l};function f5(){let e=0,t,n,r="";for(;e<arguments.length;)(t=arguments[e++])&&(n=_2(t))&&(r&&(r+=" "),r+=n);return r}const _2=e=>{if(typeof e=="string")return e;let t,n="";for(let r=0;r<e.length;r++)e[r]&&(t=_2(e[r]))&&(n&&(n+=" "),n+=t);return n};function p5(e,...t){let n,r,o,i=a;function a(u){const f=t.reduce((p,h)=>h(p),e());return n=c5(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=d5(u,n);return o(u,p),p}return function(){return i(f5.apply(null,arguments))}}const Jt=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},D2=/^\[(?:([a-z-]+):)?(.+)\]$/i,h5=/^\d+\/\d+$/,m5=new Set(["px","full","screen"]),g5=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,x5=/\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$/,y5=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,b5=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,v5=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,ko=e=>Fl(e)||m5.has(e)||h5.test(e),li=e=>Sc(e,"length",T5),Fl=e=>!!e&&!Number.isNaN(Number(e)),sy=e=>Sc(e,"number",Fl),wu=e=>!!e&&Number.isInteger(Number(e)),w5=e=>e.endsWith("%")&&Fl(e.slice(0,-1)),jt=e=>D2.test(e),ci=e=>g5.test(e),j5=new Set(["length","size","percentage"]),k5=e=>Sc(e,j5,$2),N5=e=>Sc(e,"position",$2),S5=new Set(["image","url"]),C5=e=>Sc(e,S5,A5),E5=e=>Sc(e,"",R5),ju=()=>!0,Sc=(e,t,n)=>{const r=D2.exec(e);return r?r[1]?typeof t=="string"?r[1]===t:t.has(r[1]):n(r[2]):!1},T5=e=>x5.test(e)&&!y5.test(e),$2=()=>!1,R5=e=>b5.test(e),A5=e=>v5.test(e),P5=()=>{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"),A=Jt("sepia"),T=Jt("skew"),_=Jt("space"),O=Jt("translate"),P=()=>["auto","contain","none"],W=()=>["auto","hidden","clip","visible","scroll"],I=()=>["auto",jt,t],z=()=>[jt,t],U=()=>["",ko,li],D=()=>["auto",Fl,jt],F=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],M=()=>["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"],$=()=>["start","end","center","between","around","evenly","stretch"],V=()=>["","0",jt],L=()=>["auto","avoid","all","avoid-page","page","left","right","column"],B=()=>[Fl,jt];return{cacheSize:500,separator:":",theme:{colors:[ju],spacing:[ko,li],blur:["none","",ci,jt],brightness:B(),borderColor:[e],borderRadius:["none","","full",ci,jt],borderSpacing:z(),borderWidth:U(),contrast:B(),grayscale:V(),hueRotate:B(),invert:V(),gap:z(),gradientColorStops:[e],gradientColorStopPositions:[w5,li],inset:I(),margin:I(),opacity:B(),padding:z(),saturate:B(),scale:B(),sepia:V(),skew:B(),space:z(),translate:z()},classGroups:{aspect:[{aspect:["auto","square","video",jt]}],container:["container"],columns:[{columns:[ci]}],"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:[...F(),jt]}],overflow:[{overflow:W()}],"overflow-x":[{"overflow-x":W()}],"overflow-y":[{"overflow-y":W()}],overscroll:[{overscroll:P()}],"overscroll-x":[{"overscroll-x":P()}],"overscroll-y":[{"overscroll-y":P()}],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",wu,jt]}],basis:[{basis:I()}],"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:V()}],shrink:[{shrink:V()}],order:[{order:["first","last","none",wu,jt]}],"grid-cols":[{"grid-cols":[ju]}],"col-start-end":[{col:["auto",{span:["full",wu,jt]},jt]}],"col-start":[{"col-start":D()}],"col-end":[{"col-end":D()}],"grid-rows":[{"grid-rows":[ju]}],"row-start-end":[{row:["auto",{span:[wu,jt]},jt]}],"row-start":[{"row-start":D()}],"row-end":[{"row-end":D()}],"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",...$()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...$(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...$(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[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":[_]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[_]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",jt,t]}],"min-w":[{"min-w":[jt,t,"min","max","fit"]}],"max-w":[{"max-w":[jt,t,"none","full","min","max","fit","prose",{screen:[ci]},ci]}],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",ci,li]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",sy]}],"font-family":[{font:[ju]}],"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",Fl,sy]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",ko,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:[...M(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",ko,li]}],"underline-offset":[{"underline-offset":["auto",ko,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:z()}],"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:[...F(),N5]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",k5]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},C5]}],"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:[...M(),"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:M()}],"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:["",...M()]}],"outline-offset":[{"outline-offset":[ko,jt]}],"outline-w":[{outline:[ko,li]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:U()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[j]}],"ring-offset-w":[{"ring-offset":[ko,li]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",ci,E5]}],"shadow-color":[{shadow:[ju]}],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",ci,jt]}],grayscale:[{grayscale:[f]}],"hue-rotate":[{"hue-rotate":[p]}],invert:[{invert:[h]}],saturate:[{saturate:[N]}],sepia:[{sepia:[A]}],"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":[A]}],"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:B()}],ease:[{ease:["linear","in","out","in-out",jt]}],delay:[{delay:B()}],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:[wu,jt]}],"translate-x":[{"translate-x":[O]}],"translate-y":[{"translate-y":[O]}],"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":z()}],"scroll-mx":[{"scroll-mx":z()}],"scroll-my":[{"scroll-my":z()}],"scroll-ms":[{"scroll-ms":z()}],"scroll-me":[{"scroll-me":z()}],"scroll-mt":[{"scroll-mt":z()}],"scroll-mr":[{"scroll-mr":z()}],"scroll-mb":[{"scroll-mb":z()}],"scroll-ml":[{"scroll-ml":z()}],"scroll-p":[{"scroll-p":z()}],"scroll-px":[{"scroll-px":z()}],"scroll-py":[{"scroll-py":z()}],"scroll-ps":[{"scroll-ps":z()}],"scroll-pe":[{"scroll-pe":z()}],"scroll-pt":[{"scroll-pt":z()}],"scroll-pr":[{"scroll-pr":z()}],"scroll-pb":[{"scroll-pb":z()}],"scroll-pl":[{"scroll-pl":z()}],"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:[ko,li,sy]}],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"]}}},_5=p5(P5);function ve(...e){return _5(e5(e))}function Xn(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 Sr(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 I2(e){if(!e)return"—";const t=new Date(e);return Number.isNaN(t.getTime())?e:t.toLocaleDateString(void 0,{month:"short",day:"numeric"})}function zl(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 Fu(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 ec(e){return e.toLocaleString("en-US")}function tc(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 D5(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 $5(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 mn(e){return e.split(/[_\s-]+/).filter(Boolean).map(t=>t.charAt(0).toUpperCase()+t.slice(1)).join(" ")}function M2(e){return!e||e==="/"?"/":e.endsWith("/")?e.slice(0,-1):e}function L2(e){let t=M2(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 O2(e,t){return L2(e)===t}function F2(e){let n=M2(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:mn(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:mn(n[1]),path:`${a}/projects/${n[1]}`}),o=mn(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:mn(n[3]),path:`${a}/projects/${n[1]}/assignments/${n[3]}`}),o=mn(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:mn(n[3]),path:`${a}/projects/${n[1]}/${n[2]}/${n[3]}`}),o=mn(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:mn(n[1]),path:`/playbooks/${n[1]}`}),o="Edit Playbook"):n[1]&&(r.push({label:mn(n[1]),path:`/playbooks/${n[1]}`}),o=mn(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 z2({item:e,onNavigate:t}){const n=rr(),r=e.icon,o=O2(n.pathname,e.to)&&!n.pathname.startsWith("/w/");return s.jsxs($e,{to:e.to,onClick:t,className:ve("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:ve("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 O1({items:e,onNavigate:t}){return s.jsx("nav",{className:"space-y-1",children:e.map(n=>s.jsx(z2,{item:n,onNavigate:t},n.to))})}function I5({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:ve("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(tr,{className:ve("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(z2,{item:l,onNavigate:i},l.to))})]})}const B2=[{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)"}}],M5=B2.map(e=>e.slug),fh="default";function U2(e){return typeof e=="string"&&M5.includes(e)}const H2={preset:fh,custom:!1};let zu=null,fl=null;function Jv(e){if(!e||typeof e!="object")return H2;const t=e;return{preset:U2(t.preset)?t.preset:fh,custom:t.custom===!0}}function L5(){return zu?Promise.resolve(zu):fl||(fl=fetch("/api/config/theme").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>{const t=Jv(e);return zu=t,fl=null,t}).catch(()=>(fl=null,H2)),fl)}async function O5(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=Jv(await t.json());return zu=n,n}async function F5(){const e=await fetch("/api/config/theme",{method:"DELETE"});if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=Jv(await e.json());return zu=t,t}const Eb="syntaur-theme",Lp="syntaur-preset",V2=m.createContext(null);function Tb(){try{const e=window.localStorage.getItem(Eb);return e==="light"||e==="dark"?e:null}catch{return null}}function W2(){try{const e=window.localStorage.getItem(Lp);return U2(e)?e:fh}catch{return fh}}function K2(){return typeof window>"u"||!window.matchMedia?"light":window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"}function q2(e){document.documentElement.classList.toggle("dark",e==="dark")}function G2(e){document.documentElement.dataset.theme=e}function z5(){typeof document>"u"||(q2(Tb()??K2()),G2(W2()))}function B5({children:e}){const[t,n]=m.useState(()=>Tb()),[r,o]=m.useState(()=>Tb()??K2()),[i,a]=m.useState(()=>W2());m.useEffect(()=>{q2(r)},[r]),m.useEffect(()=>{G2(i)},[i]),m.useEffect(()=>{let p=!1;return L5().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 O5(p)}async function u(){const p=await F5();a(p.preset);try{window.localStorage.setItem(Lp,p.preset)}catch{}}const f={resolvedTheme:r,explicitTheme:t,setTheme:p=>{window.localStorage.setItem(Eb,p),n(p),o(p)},toggleTheme:()=>{const p=r==="dark"?"light":"dark";window.localStorage.setItem(Eb,p),n(p),o(p)},preset:i,setPreset:l,resetPreset:u};return s.jsx(V2.Provider,{value:f,children:e})}function Zv(){const e=m.useContext(V2);if(!e)throw new Error("useTheme must be used within ThemeProvider");return e}const U5=2e3,Bu=new Set;let ps=null,aa=null,Op=!1,ph="closed";const Rb=new Set;function Iu(e){if(ph!==e){ph=e;for(const t of Rb)t(e)}}function F1(){return ph}function H5(e){return Rb.add(e),()=>{Rb.delete(e)}}function V5(){return`${window.location.protocol==="https:"?"wss:":"ws:"}//${window.location.host}/ws`}let W5=V5;function K5(){aa&&clearTimeout(aa),aa=setTimeout(()=>{aa=null,Y2()},U5)}function Y2(){if(ps&&(ps.readyState===WebSocket.OPEN||ps.readyState===WebSocket.CONNECTING))return;Op=!1,ph==="closed"&&Iu("connecting");const e=new WebSocket(W5());ps=e,e.onopen=()=>{ps===e&&Iu("open")},e.onmessage=t=>{if(ps===e)try{const n=JSON.parse(t.data);for(const r of Bu)r(n)}catch{}},e.onclose=()=>{if(ps===e){if(ps=null,Op||Bu.size===0){Op=!1,Iu("closed");return}Iu("reconnecting"),K5()}},e.onerror=()=>{e.close()}}function q5(e){return Bu.add(e),Y2(),()=>{Bu.delete(e),Bu.size===0&&(aa&&(clearTimeout(aa),aa=null),ps&&(Op=!0,ps.close(),ps=null),Iu("closed"))}}function Ei(e){const t=m.useRef(e);t.current=e,m.useEffect(()=>q5(o=>t.current(o)),[])}const um=["7d","30d","90d","all","custom"],X2="30d",G5=/^\d{4}-\d{2}-\d{2}$/,Ld=["project","workspace","model","tool"],Y5={"7d":7,"30d":30,"90d":90};function Uu(e){if(typeof e!="string"||!G5.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 z1(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 X5(e,t){return new Date(Date.UTC(e.getUTCFullYear(),e.getUTCMonth(),e.getUTCDate()+t))}function Q5(e,t=new Date){const n=e.window??X2;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:z1(X5(r,-(Y5[n]-1))),until:z1(r)}}function J5(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&&!um.includes(n.window)&&t.push(`invalid window: ${String(n.window)}`);for(const r of["since","until"])n[r]!==void 0&&!Uu(n[r])&&t.push(`invalid ${r}: ${String(n[r])} (expected YYYY-MM-DD)`);for(const r of Ld)n[r]!==void 0&&(typeof n[r]!="string"||n[r].length===0)&&t.push(`invalid ${r}: must be a non-empty string`);return Uu(n.since)&&Uu(n.until)&&n.since>n.until&&t.push("since must be on or before until"),{ok:t.length===0,errors:t}}function Od(e){const t={};if(!e||typeof e!="object"||Array.isArray(e))return t;const n=e;typeof n.window=="string"&&um.includes(n.window)&&(t.window=n.window),Uu(n.since)&&(t.since=n.since),Uu(n.until)&&(t.until=n.until);for(const r of Ld)typeof n[r]=="string"&&n[r].length>0&&(t[r]=n[r]);return t.window!=="custom"&&(delete t.since,delete t.until),t}function Ab(e){const t=Od(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 Ld)t[r]&&n.set(r,t[r]);return n}function Z5(e){const t={};for(const n of["window","since","until",...Ld]){const r=e.get(n);r!==null&&(t[n]=r)}return Od(t)}function Q2(e,t=new Date){const n=Od(e),{since:r,until:o}=Q5(n,t),i=new URLSearchParams;r&&i.set("since",r),o&&i.set("until",o);for(const a of Ld)n[a]&&i.set(a,n[a]);return i}const eO={"7d":"Last 7 days","30d":"Last 30 days","90d":"Last 90 days",all:"All time",custom:"Custom range"};function B1(e){const t=Od(e),n=t.window??X2,r=[];return r.push(n==="custom"?`${t.since??"…"} → ${t.until??"…"}`:eO[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]),Ei(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 oo(e=!0){return tn("/api/projects","projects",e)}function Ra(){return tn("/api/workspaces","projects")}function xn(){const{workspace:e}=Kt();return e?`/w/${e}`:""}function tO(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 dm(e=!0){return tn("/api/assignments","assignments",e)}function nO(e=!0){return tn("/api/archived","assignments",e)}function J2(){return tn("/api/help")}function Z2(e){const t=e?`/api/projects/${e}`:null;return tn(t,"project",!0,!0)}function rO(e,t){const n=e&&t?`/api/projects/${e}/assignments/${t}`:null;return tn(n,"assignment",!0,!0)}function sO(e){const t=e?`/api/assignments/${e}`:null;return tn(t,"assignment",!0,!0)}function eT(e){return tn(e,void 0,!0,!0)}function ew(e=!0){return tn("/api/servers","servers",e)}function tT(){return tn("/api/leases","inventories")}function fm(){return tn("/api/agent-sessions","agent-sessions")}function oO(e,t){const n=e&&t?`/api/agent-sessions/${e}?assignment=${t}`:null;return tn(n,"agent-sessions",!0,!0)}function iO(e){const t=e?`/api/assignments/${e}/sessions`:null;return tn(t,"agent-sessions",!0,!0)}function aO(e,t){const n=e&&t?`/api/usage/projects/${encodeURIComponent(e)}/assignments/${encodeURIComponent(t)}`:null;return tn(n,void 0,!0,!0)}function lO(e){const t=e?`/api/usage/standalone/${encodeURIComponent(e)}`:null;return tn(t,void 0,!0,!0)}function tw(e=!0){return tn("/api/playbooks","playbooks",e)}function cO(e){const t=Q2(e).toString(),n=t?`/api/usage?${t}`:"/api/usage";return tn(n,void 0,!0,!0)}function nT(e=!0){return tn("/api/usage/facets",void 0,e)}function uO(e){const t=e?`/api/playbooks/${e}`:null;return tn(t,"playbooks",!0,!0)}function dO(){return tn("/api/memories","project")}function fO(e,t){const n=e&&t?`/api/projects/${e}/memories/${t}`:null;return tn(n,"project",!0,!0)}function pO(){return tn("/api/resources","project")}function hO(e,t){const n=e&&t?`/api/projects/${e}/resources/${t}`:null;return tn(n,"project",!0,!0)}const pm=["new-workspace","new-project","new-todo","new-assignment"];function mO(e){return typeof e=="string"&&pm.includes(e)}const gO=["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","[","]"],xO=["mod","ctrl","alt","shift"];function vr(e){if(typeof e!="string")return"";const t=e.trim();if(!t)return"";if(/\s/.test(t)&&!t.includes("+"))return t.split(/\s+/).map(vr).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 xO)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 yO(e){const t=vr(e);return t?gO.includes(t):!1}const bO={"new-workspace":vr("Mod+Shift+Alt+w"),"new-project":vr("Mod+Shift+Alt+p"),"new-todo":vr("Mod+Shift+Alt+t"),"new-assignment":vr("Mod+Shift+Alt+a")};function vO(e){const t={...bO};for(const n of pm){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 wO(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=wO(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 rT(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 vr(a)}function eo(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 jO(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]),Ei(u=>{u.type==="todos-updated"&&!u.projectSlug&&l()}),{data:t,loading:r,error:i,refetch:l}}function sT(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]),Ei(u=>{e&&u.type==="todos-updated"&&!u.projectSlug&&l()}),{data:t,loading:r,error:i,refetch:l}}async function nw(e,t,n){await Ti(`/api/todos/${encodeURIComponent(e)}`,{description:t,tags:n})}async function oT(e,t,n){await Ti(`/api/todos/${encodeURIComponent(e)}/${t}/complete`,{summary:"Completed."})}async function iT(e,t,n){await Ti(`/api/todos/${encodeURIComponent(e)}/${t}/block`,{reason:n})}async function aT(e,t,n){await Ti(`/api/todos/${encodeURIComponent(e)}/${t}/start`,{session:n})}async function lT(e,t){await Ti(`/api/todos/${encodeURIComponent(e)}/${t}/reopen`,{})}async function cT(e,t){await kO(`/api/todos/${encodeURIComponent(e)}/${t}`)}async function uT(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 rw(e,t,n){return`/api/todos/${encodeURIComponent(e)}/${t}/attachments/${encodeURIComponent(n)}`}async function dT(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 fT(e,t,n){const r=await fetch(rw(e,t,n),{method:"DELETE"});if(!r.ok)throw new Error(await r.text().catch(()=>"")||`HTTP ${r.status}`)}async function Ti(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 kO(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 NO(e,t){return await Ti(`/api/todos/${encodeURIComponent(e)}/promote`,t)}async function SO(e){return await Ti("/api/todos/promote-bulk",e)}async function CO(e,t,n){await Ti(`/api/todos/${encodeURIComponent(e)}/${t}/move`,{to:n})}const hm=["assignment","project","todo","server","playbook"],ha={defaultScope:"all",aliases:{a:"assignment",p:"project",t:"todo",s:"server",pb:"playbook"},externalIds:!0},pT=["kind","status","tag","tags","assignee","type","project","externalid","jira","title","search"],Pb="all",hT=/^[a-z][a-z0-9]*$/;function sw(e){return typeof e=="string"&&hm.includes(e)}function EO(e){return e==="all"||sw(e)}function TO(e){if(!e||typeof e!="object")return AO();const t=e,n=EO(t.defaultScope)?t.defaultScope:ha.defaultScope,r=typeof t.externalIds=="boolean"?t.externalIds:ha.externalIds;let o;if(t.aliases&&typeof t.aliases=="object"){o={};for(const[i,a]of Object.entries(t.aliases))hT.test(i)&&i!==Pb&&!pT.includes(i)&&sw(a)&&(o[i]=a)}else o={...ha.aliases};return{defaultScope:n,aliases:o,externalIds:r}}function RO(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))hT.test(n)||t.push(`alias key "${n}" must be lowercase and match [a-z][a-z0-9]*`),n===Pb&&t.push(`alias key "${Pb}" is reserved (the "search everything" escape)`),pT.includes(n)&&t.push(`alias key "${n}" collides with the reserved field name "${n}"`),sw(r)||t.push(`alias "${n}" must map to one of: ${hm.join(", ")}`);return t.length===0?{ok:!0}:{ok:!1,errors:t}}function AO(){return{defaultScope:ha.defaultScope,aliases:{...ha.aliases},externalIds:ha.externalIds}}const ow={search:ha,custom:!1};let Pl=null,pl=null,hh=0;const _b=new Set;function mT(e){Pl=e;for(const t of _b)t(e)}function iw(e){if(!e||typeof e!="object")return ow;const t=e;return{search:TO(t.search),custom:t.custom===!0}}function PO(){if(Pl)return Promise.resolve(Pl);if(pl)return pl;const e=++hh;return pl=fetch("/api/config/search").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{pl=null;const n=iw(t);return e!==hh?Pl??n:(Pl=n,n)}).catch(()=>(pl=null,ow)),pl}function aw(){const[e,t]=m.useState(()=>Pl??ow);return m.useEffect(()=>{let n=!1;return PO().then(r=>{n||t(r)}),_b.add(t),()=>{n=!0,_b.delete(t)}},[]),e}async function _O(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=iw(await t.json());return mT(n),n}async function DO(){++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=iw(await e.json());return mT(t),t}const $O=new Set(["/projects","/assignments","/servers","/todos"]);function Fp(e,t){return $O.has(e)?`${t}${e}`:e}const IO=[{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 MO(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 LO(e){const t=[],n=e.externalIds!==!1,r=i=>n?MO(i):[],o=i=>n?i:void 0;for(const i of IO)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 OO(e){return!e.standalone&&!!e.projectWorkspace&&e.fileKind!=="memory"&&e.fileKind!=="resource"?`/w/${e.projectWorkspace}`:""}function FO(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:`${OO(t)}${t.route}`,project:t.projectSlug,snippet:t.snippet,snippetMatches:t.matches}))}function $r(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 zO(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 oy(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 U1(){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 H1(){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 iy(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 Xi(e,t,n){const r=e.match(/^(---\n)([\s\S]*?)(\n---)/);if(!r)return`---
562
+ ${t}: ${JSON.stringify(n)}
563
+ ---
564
+ ${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}
565
+ ${t}: ${u}`,`${o}${p}${a}${l}`}const BO=/^[a-z0-9][a-z0-9-]*$/;function UO(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:BO,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 U1(),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=$r(y);if(!k)throw new Error("Title must contain at least one alphanumeric character");let v=await iy("/api/templates/project");v=Xi(v,"slug",k),v=Xi(v,"title",y),g&&g!=="_ungrouped"&&(v=Xi(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([U1(),H1()]),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 nw(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 H1(),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=$r(y);if(!k)throw new Error("Title must contain at least one alphanumeric character");if(g==="_standalone"){let C=await iy("/api/templates/assignment?standalone=1");C=Xi(C,"slug",k),C=Xi(C,"title",y);const A=await fetch("/api/assignments",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({content:C})}),T=await A.json().catch(()=>({}));if(!A.ok)throw new Error(T.error||`Failed to create assignment (HTTP ${A.status})`);const _=((N=T==null?void 0:T.assignment)==null?void 0:N.id)??(T==null?void 0:T.id);_?h.navigate(`/assignments/${_}`):h.navigate("/assignments");return}let v=await iy("/api/templates/assignment");v=Xi(v,"slug",k),v=Xi(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 oy("_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 oy(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 oy(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:()=>zO(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 HO=["low","medium","high","critical"],mm={status:{kind:"enum"},priority:{kind:"ordinal",order:HO},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 VO(e,t){return e[t.toLowerCase()]??null}function Ir(e,t,n){return e.get?e.get(n):n[t]??n[t.toLowerCase()]}class yr extends Error{constructor(t){super(t.map(n=>`${n.message} (at ${n.pos})`).join("; ")),this.errors=t,this.name="CompileError"}}function gT(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 yr([{pos:e.pos,message:`Invalid date "${e.raw}"`}]);const i=new Date(t,n-1,r+1).getTime();return[o.getTime(),i]}function Db(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 Hu(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 ay(e,t){return typeof e=="string"&&e.toLowerCase()===t.toLowerCase()}function WO(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=>WO(Ir(e,t,o)):o=>ay(Ir(e,t,o),n.raw);case"substring":return o=>{const i=Ir(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 yr([{pos:n.pos,message:`Field "${t}" is boolean — use ${t}:true or ${t}:false`}]);const i=o==="true";return a=>{const l=Ir(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??Hu(n.raw);if(o===null)throw new yr([{pos:n.pos,message:`Field "${t}" is numeric — "${n.raw}" is not a number`}]);return i=>Hu(Ir(e,t,i))===o}case"ordinal":return o=>ay(Ir(e,t,o),n.raw);case"list":return o=>{const i=Ir(e,t,o);return Array.isArray(i)&&i.some(a=>ay(a,n.raw))};case"timestamp":{if(n.type==="date"){const[o,i]=gT(n);return a=>{const l=Db(Ir(e,t,a));return l!==null&&l>=o&&l<i}}throw new yr([{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 yr([{pos:r,message:`Field "${t}" is a duration — use a comparison (e.g. ${t} > 3d)`}])}}function KO(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??Hu(r.raw);if(i===null)throw new yr([{pos:r.pos,message:`"${r.raw}" is not a number (field "${t}")`}]);return a=>{const l=Hu(Ir(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 yr([{pos:r.pos,message:`"${r.raw}" is not a valid ${t} (expected one of: ${i.join(", ")})`}]);return l=>{const u=Ir(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=Db(Ir(e,t,l));return f!==null&&o(f,u.now+a)}}if(r.type==="date"){const[i,a]=gT(r);return l=>{const u=Db(Ir(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 yr([{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 yr([{pos:r.pos,message:`Compare duration field "${t}" to a duration literal (e.g. 3d)`}]);const i=r.num??0;return a=>{const l=Hu(Ir(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 yr([{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 yr([{pos:r.pos,message:`Field "${t}" is boolean — use ${t}:true / ${t}:false`}])}}}function qO(e,t){const n=VO(t,e.field);if(!n)throw new yr([{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 KO(n,e.field,e.op,e.values[0])}function Vu(e,t){switch(e.kind){case"all":return()=>!0;case"atom":return qO(e,t);case"not":{const n=Vu(e.child,t);return(r,o)=>!n(r,o)}case"and":{const n=e.children.map(r=>Vu(r,t));return(r,o)=>n.every(i=>i(r,o))}case"or":{const n=e.children.map(r=>Vu(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 GO={h:36e5,d:864e5,w:7*864e5,m:30*864e5,mo:30*864e5,y:365*864e5},YO=/[A-Za-z_]/,XO=/[A-Za-z0-9_-]/,QO=/^\d{4}-\d{2}-\d{2}(?![\d-])/;function gm(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=GO[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===`
566
+ `||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(QO);if(a){t.push({type:"DATE",text:a[0],pos:i}),n+=a[0].length;continue}t.push(r(i,0));continue}if(YO.test(o)){let a=n+1;for(;a<e.length&&XO.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 Ji extends Error{constructor(t,n){super(n),this.pos=t,this.name="ParseError"}}const JO=new Set(["IDENT","STRING","NUMBER","DATE","DURATION"]),ZO=new Set(["IDENT","NOT","MINUS","LPAREN","STAR"]);class eF{constructor(t){qx(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 Ji(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 Ji(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(ZO.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 Ji(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 Ji(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 Ji(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(!JO.has(t.type))throw new Ji(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 xm(e){try{const t=gm(e);return{ast:new eF(t).parseQuery(),errors:[]}}catch(t){if(t instanceof ia||t instanceof Ji)return{ast:null,errors:[{pos:t.pos,message:t.message}]};throw t}}function nc(e,t=mm){const n=xm(e);if(!n.ast)return{query:null,errors:n.errors};try{return{query:{predicate:Vu(n.ast,t),ast:n.ast},errors:[]}}catch(r){if(r instanceof yr)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 V1(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function ym(...e){return t=>{let n=!1;const r=e.map(o=>{const i=V1(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():V1(e[o],null)}}}}function nr(...e){return m.useCallback(ym(...e),e)}function tF(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 Aa(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,nF(o,...t)]}function nF(...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 wi=globalThis!=null&&globalThis.document?m.useLayoutEffect:()=>{},rF=YE[" useId ".trim().toString()]||(()=>{}),sF=0;function Bl(e){const[t,n]=m.useState(rF());return wi(()=>{n(r=>r??String(sF++))},[e]),e||(t?`radix-${t}`:"")}var oF=YE[" useInsertionEffect ".trim().toString()]||wi;function bm({prop:e,defaultProp:t,onChange:n=()=>{},caller:r}){const[o,i,a]=iF({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=aF(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 iF({defaultProp:e,onChange:t}){const[n,r]=m.useState(e),o=m.useRef(n),i=m.useRef(t);return oF(()=>{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 aF(e){return typeof e=="function"}function lF(e){const t=cF(e),n=m.forwardRef((r,o)=>{const{children:i,...a}=r,l=m.Children.toArray(i),u=l.find(dF);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 cF(e){const t=m.forwardRef((n,r)=>{const{children:o,...i}=n;if(m.isValidElement(o)){const a=pF(o),l=fF(i,o.props);return o.type!==m.Fragment&&(l.ref=r?ym(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 uF=Symbol("radix.slottable");function dF(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===uF}function fF(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 pF(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 hF=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Nn=hF.reduce((e,t)=>{const n=lF(`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 mF(e,t){e&&Xs.flushSync(()=>e.dispatchEvent(t))}function wa(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 gF(e,t=globalThis==null?void 0:globalThis.document){const n=wa(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 xF="DismissableLayer",$b="dismissableLayer.update",yF="dismissableLayer.pointerDownOutside",bF="dismissableLayer.focusOutside",W1,xT=m.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),lw=m.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:r,onPointerDownOutside:o,onFocusOutside:i,onInteractOutside:a,onDismiss:l,...u}=e,f=m.useContext(xT),[p,h]=m.useState(null),g=(p==null?void 0:p.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,y]=m.useState({}),k=nr(t,_=>h(_)),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,A=jF(_=>{const O=_.target,P=[...f.branches].some(W=>W.contains(O));!C||P||(o==null||o(_),a==null||a(_),_.defaultPrevented||l==null||l())},g),T=kF(_=>{const O=_.target;[...f.branches].some(W=>W.contains(O))||(i==null||i(_),a==null||a(_),_.defaultPrevented||l==null||l())},g);return gF(_=>{S===f.layers.size-1&&(r==null||r(_),!_.defaultPrevented&&l&&(_.preventDefault(),l()))},g),m.useEffect(()=>{if(p)return n&&(f.layersWithOutsidePointerEventsDisabled.size===0&&(W1=g.body.style.pointerEvents,g.body.style.pointerEvents="none"),f.layersWithOutsidePointerEventsDisabled.add(p)),f.layers.add(p),K1(),()=>{n&&f.layersWithOutsidePointerEventsDisabled.size===1&&(g.body.style.pointerEvents=W1)}},[p,g,n,f]),m.useEffect(()=>()=>{p&&(f.layers.delete(p),f.layersWithOutsidePointerEventsDisabled.delete(p),K1())},[p,f]),m.useEffect(()=>{const _=()=>y({});return document.addEventListener($b,_),()=>document.removeEventListener($b,_)},[]),s.jsx(Nn.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,A.onPointerDownCapture)})});lw.displayName=xF;var vF="DismissableLayerBranch",wF=m.forwardRef((e,t)=>{const n=m.useContext(xT),r=m.useRef(null),o=nr(t,r);return m.useEffect(()=>{const i=r.current;if(i)return n.branches.add(i),()=>{n.branches.delete(i)}},[n.branches]),s.jsx(Nn.div,{...e,ref:o})});wF.displayName=vF;function jF(e,t=globalThis==null?void 0:globalThis.document){const n=wa(e),r=m.useRef(!1),o=m.useRef(()=>{});return m.useEffect(()=>{const i=l=>{if(l.target&&!r.current){let u=function(){yT(yF,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 kF(e,t=globalThis==null?void 0:globalThis.document){const n=wa(e),r=m.useRef(!1);return m.useEffect(()=>{const o=i=>{i.target&&!r.current&&yT(bF,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 K1(){const e=new CustomEvent($b);document.dispatchEvent(e)}function yT(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?mF(o,i):o.dispatchEvent(i)}var ly="focusScope.autoFocusOnMount",cy="focusScope.autoFocusOnUnmount",q1={bubbles:!1,cancelable:!0},NF="FocusScope",bT=m.forwardRef((e,t)=>{const{loop:n=!1,trapped:r=!1,onMountAutoFocus:o,onUnmountAutoFocus:i,...a}=e,[l,u]=m.useState(null),f=wa(o),p=wa(i),h=m.useRef(null),g=nr(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:mi(h.current,{select:!0})},b=function(N){if(y.paused||!l)return;const C=N.relatedTarget;C!==null&&(l.contains(C)||mi(h.current,{select:!0}))},j=function(N){if(document.activeElement===document.body)for(const A of N)A.removedNodes.length>0&&mi(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){Y1.add(y);const v=document.activeElement;if(!l.contains(v)){const j=new CustomEvent(ly,q1);l.addEventListener(ly,f),l.dispatchEvent(j),j.defaultPrevented||(SF(AF(vT(l)),{select:!0}),document.activeElement===v&&mi(l))}return()=>{l.removeEventListener(ly,f),setTimeout(()=>{const j=new CustomEvent(cy,q1);l.addEventListener(cy,p),l.dispatchEvent(j),j.defaultPrevented||mi(v??document.body,{select:!0}),l.removeEventListener(cy,p),Y1.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]=CF(S);N&&C?!v.shiftKey&&j===C?(v.preventDefault(),n&&mi(N,{select:!0})):v.shiftKey&&j===N&&(v.preventDefault(),n&&mi(C,{select:!0})):j===S&&v.preventDefault()}},[n,r,y.paused]);return s.jsx(Nn.div,{tabIndex:-1,...a,ref:g,onKeyDown:k})});bT.displayName=NF;function SF(e,{select:t=!1}={}){const n=document.activeElement;for(const r of e)if(mi(r,{select:t}),document.activeElement!==n)return}function CF(e){const t=vT(e),n=G1(t,e),r=G1(t.reverse(),e);return[n,r]}function vT(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 G1(e,t){for(const n of e)if(!EF(n,{upTo:t}))return n}function EF(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 TF(e){return e instanceof HTMLInputElement&&"select"in e}function mi(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&TF(e)&&t&&e.select()}}var Y1=RF();function RF(){let e=[];return{add(t){const n=e[0];t!==n&&(n==null||n.pause()),e=X1(e,t),e.unshift(t)},remove(t){var n;e=X1(e,t),(n=e[0])==null||n.resume()}}}function X1(e,t){const n=[...e],r=n.indexOf(t);return r!==-1&&n.splice(r,1),n}function AF(e){return e.filter(t=>t.tagName!=="A")}var PF="Portal",cw=m.forwardRef((e,t)=>{var l;const{container:n,...r}=e,[o,i]=m.useState(!1);wi(()=>i(!0),[]);const a=n||o&&((l=globalThis==null?void 0:globalThis.document)==null?void 0:l.body);return a?o4.createPortal(s.jsx(Nn.div,{...r,ref:t}),a):null});cw.displayName=PF;function _F(e,t){return m.useReducer((n,r)=>t[n][r]??n,e)}var Pa=e=>{const{present:t,children:n}=e,r=DF(t),o=typeof n=="function"?n({present:r.isPresent}):m.Children.only(n),i=nr(r.ref,$F(o));return typeof n=="function"||r.isPresent?m.cloneElement(o,{ref:i}):null};Pa.displayName="Presence";function DF(e){const[t,n]=m.useState(),r=m.useRef(null),o=m.useRef(e),i=m.useRef("none"),a=e?"mounted":"unmounted",[l,u]=_F(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]),wi(()=>{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]),wi(()=>{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 $F(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 uy=0;function IF(){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()),uy++,()=>{uy===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),uy--}},[])}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 Gs=function(){return Gs=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},Gs.apply(this,arguments)};function wT(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 MF(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",LF="with-scroll-bars-hidden",OF="--removed-body-scroll-bar-size";function dy(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function FF(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 zF=typeof window<"u"?m.useLayoutEffect:m.useEffect,J1=new WeakMap;function BF(e,t){var n=FF(null,function(r){return e.forEach(function(o){return dy(o,r)})});return zF(function(){var r=J1.get(n);if(r){var o=new Set(r),i=new Set(e),a=n.current;o.forEach(function(l){i.has(l)||dy(l,null)}),i.forEach(function(l){o.has(l)||dy(l,a)})}J1.set(n,e)},[e]),n}function UF(e){return e}function HF(e,t){t===void 0&&(t=UF);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 VF(e){e===void 0&&(e={});var t=HF(null);return t.options=Gs({async:!0,ssr:!1},e),t}var jT=function(e){var t=e.sideCar,n=wT(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,Gs({},n))};jT.isSideCarExport=!0;function WF(e,t){return e.useMedium(t),jT}var kT=VF(),fy=function(){},vm=m.forwardRef(function(e,t){var n=m.useRef(null),r=m.useState({onScrollCapture:fy,onWheelCapture:fy,onTouchMoveCapture:fy}),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=wT(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),A=g,T=BF([n,t]),_=Gs(Gs({},C),o);return m.createElement(m.Fragment,null,p&&m.createElement(A,{sideCar:kT,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),Gs(Gs({},_),{ref:T})):m.createElement(S,Gs({},_,{className:u,ref:T}),l))});vm.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};vm.classNames={fullWidth:Hp,zeroRight:Up};var KF=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function qF(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=KF();return t&&e.setAttribute("nonce",t),e}function GF(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function YF(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var XF=function(){var e=0,t=null;return{add:function(n){e==0&&(t=qF())&&(GF(t,n),YF(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},QF=function(){var e=XF();return function(t,n){m.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},NT=function(){var e=QF(),t=function(n){var r=n.styles,o=n.dynamic;return e(r,o),null};return t},JF={left:0,top:0,right:0,gap:0},py=function(e){return parseInt(e||"",10)||0},ZF=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[py(n),py(r),py(o)]},e6=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return JF;var t=ZF(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])}},t6=NT(),Ul="data-scroll-locked",n6=function(e,t,n,r){var o=e.left,i=e.top,a=e.right,l=e.gap;return n===void 0&&(n="margin"),`
567
+ .`.concat(LF,` {
568
+ overflow: hidden `).concat(r,`;
569
+ padding-right: `).concat(l,"px ").concat(r,`;
570
+ }
571
+ body[`).concat(Ul,`] {
572
+ overflow: hidden `).concat(r,`;
573
+ overscroll-behavior: contain;
574
+ `).concat([t&&"position: relative ".concat(r,";"),n==="margin"&&`
575
+ padding-left: `.concat(o,`px;
576
+ padding-top: `).concat(i,`px;
577
+ padding-right: `).concat(a,`px;
578
+ margin-left:0;
579
+ margin-top:0;
580
+ margin-right: `).concat(l,"px ").concat(r,`;
581
+ `),n==="padding"&&"padding-right: ".concat(l,"px ").concat(r,";")].filter(Boolean).join(""),`
582
+ }
583
+
584
+ .`).concat(Up,` {
585
+ right: `).concat(l,"px ").concat(r,`;
586
+ }
587
+
588
+ .`).concat(Hp,` {
589
+ margin-right: `).concat(l,"px ").concat(r,`;
590
+ }
591
+
592
+ .`).concat(Up," .").concat(Up,` {
593
+ right: 0 `).concat(r,`;
594
+ }
595
+
596
+ .`).concat(Hp," .").concat(Hp,` {
597
+ margin-right: 0 `).concat(r,`;
598
+ }
599
+
600
+ body[`).concat(Ul,`] {
601
+ `).concat(OF,": ").concat(l,`px;
602
+ }
603
+ `)},Z1=function(){var e=parseInt(document.body.getAttribute(Ul)||"0",10);return isFinite(e)?e:0},r6=function(){m.useEffect(function(){return document.body.setAttribute(Ul,(Z1()+1).toString()),function(){var e=Z1()-1;e<=0?document.body.removeAttribute(Ul):document.body.setAttribute(Ul,e.toString())}},[])},s6=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=r===void 0?"margin":r;r6();var i=m.useMemo(function(){return e6(o)},[o]);return m.createElement(t6,{styles:n6(i,!t,o,n?"":"!important")})},Ib=!1;if(typeof window<"u")try{var cp=Object.defineProperty({},"passive",{get:function(){return Ib=!0,!0}});window.addEventListener("test",cp,cp),window.removeEventListener("test",cp,cp)}catch{Ib=!1}var hl=Ib?{passive:!1}:!1,o6=function(e){return e.tagName==="TEXTAREA"},ST=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!o6(e)&&n[t]==="visible")},i6=function(e){return ST(e,"overflowY")},a6=function(e){return ST(e,"overflowX")},eN=function(e,t){var n=t.ownerDocument,r=t;do{typeof ShadowRoot<"u"&&r instanceof ShadowRoot&&(r=r.host);var o=CT(e,r);if(o){var i=ET(e,r),a=i[1],l=i[2];if(a>l)return!0}r=r.parentNode}while(r&&r!==n.body);return!1},l6=function(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;return[t,n,r]},c6=function(e){var t=e.scrollLeft,n=e.scrollWidth,r=e.clientWidth;return[t,n,r]},CT=function(e,t){return e==="v"?i6(t):a6(t)},ET=function(e,t){return e==="v"?l6(t):c6(t)},u6=function(e,t){return e==="h"&&t==="rtl"?-1:1},d6=function(e,t,n,r,o){var i=u6(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=ET(e,l),k=y[0],v=y[1],b=y[2],j=v-b-i*k;(k||j)&&CT(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]},tN=function(e){return[e.deltaX,e.deltaY]},nN=function(e){return e&&"current"in e?e.current:e},f6=function(e,t){return e[0]===t[0]&&e[1]===t[1]},p6=function(e){return`
604
+ .block-interactivity-`.concat(e,` {pointer-events: none;}
605
+ .allow-interactivity-`).concat(e,` {pointer-events: all;}
606
+ `)},h6=0,ml=[];function m6(e){var t=m.useRef([]),n=m.useRef([0,0]),r=m.useRef(),o=m.useState(h6++)[0],i=m.useState(NT)[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=MF([e.lockRef.current],(e.shards||[]).map(nN),!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],A,T=v.target,_=Math.abs(N)>Math.abs(C)?"h":"v";if("touches"in v&&_==="h"&&T.type==="range")return!1;var O=window.getSelection(),P=O&&O.anchorNode,W=P?P===T||P.contains(T):!1;if(W)return!1;var I=eN(_,T);if(!I)return!0;if(I?A=_:(A=_==="v"?"h":"v",I=eN(_,T)),!I)return!1;if(!r.current&&"changedTouches"in v&&(N||C)&&(r.current=A),!A)return!0;var z=r.current||A;return d6(z,b,v,z==="h"?N:C)},[]),u=m.useCallback(function(v){var b=v;if(!(!ml.length||ml[ml.length-1]!==i)){var j="deltaY"in b?tN(b):up(b),S=t.current.filter(function(A){return A.name===b.type&&(A.target===b.target||b.target===A.shadowParent)&&f6(A.delta,j)})[0];if(S&&S.should){b.cancelable&&b.preventDefault();return}if(!S){var N=(a.current.shards||[]).map(nN).filter(Boolean).filter(function(A){return A.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:g6(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,tN(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 ml.push(i),e.setCallbacks({onScrollCapture:h,onWheelCapture:h,onTouchMoveCapture:g}),document.addEventListener("wheel",u,hl),document.addEventListener("touchmove",u,hl),document.addEventListener("touchstart",p,hl),function(){ml=ml.filter(function(v){return v!==i}),document.removeEventListener("wheel",u,hl),document.removeEventListener("touchmove",u,hl),document.removeEventListener("touchstart",p,hl)}},[]);var y=e.removeScrollBar,k=e.inert;return m.createElement(m.Fragment,null,k?m.createElement(i,{styles:p6(o)}):null,y?m.createElement(s6,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function g6(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const x6=WF(kT,m6);var TT=m.forwardRef(function(e,t){return m.createElement(vm,Gs({},e,{ref:t,sideCar:x6}))});TT.classNames=vm.classNames;var y6=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},gl=new WeakMap,dp=new WeakMap,fp={},hy=0,RT=function(e){return e&&(e.host||RT(e.parentNode))},b6=function(e,t){return t.map(function(n){if(e.contains(n))return n;var r=RT(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})},v6=function(e,t,n,r){var o=b6(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=(gl.get(g)||0)+1,b=(i.get(g)||0)+1;gl.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(),hy++,function(){a.forEach(function(h){var g=gl.get(h)-1,y=i.get(h)-1;gl.set(h,g),i.set(h,y),g||(dp.has(h)||h.removeAttribute(r),dp.delete(h)),y||h.removeAttribute(n)}),hy--,hy||(gl=new WeakMap,gl=new WeakMap,dp=new WeakMap,fp={})}},w6=function(e,t,n){n===void 0&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=y6(e);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),v6(r,o,n,"aria-hidden")):function(){return null}};function j6(e){const t=k6(e),n=m.forwardRef((r,o)=>{const{children:i,...a}=r,l=m.Children.toArray(i),u=l.find(S6);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 k6(e){const t=m.forwardRef((n,r)=>{const{children:o,...i}=n;if(m.isValidElement(o)){const a=E6(o),l=C6(i,o.props);return o.type!==m.Fragment&&(l.ref=r?ym(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 N6=Symbol("radix.slottable");function S6(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===N6}function C6(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 E6(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 wm="Dialog",[AT,PT]=Aa(wm),[T6,As]=AT(wm),_T=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]=bm({prop:r,defaultProp:o??!1,onChange:i,caller:wm});return s.jsx(T6,{scope:t,triggerRef:l,contentRef:u,contentId:Bl(),titleId:Bl(),descriptionId:Bl(),open:f,onOpenChange:p,onOpenToggle:m.useCallback(()=>p(h=>!h),[p]),modal:a,children:n})};_T.displayName=wm;var DT="DialogTrigger",$T=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=As(DT,n),i=nr(t,o.triggerRef);return s.jsx(Nn.button,{type:"button","aria-haspopup":"dialog","aria-expanded":o.open,"aria-controls":o.contentId,"data-state":fw(o.open),...r,ref:i,onClick:sn(e.onClick,o.onOpenToggle)})});$T.displayName=DT;var uw="DialogPortal",[R6,IT]=AT(uw,{forceMount:void 0}),MT=e=>{const{__scopeDialog:t,forceMount:n,children:r,container:o}=e,i=As(uw,t);return s.jsx(R6,{scope:t,forceMount:n,children:m.Children.map(r,a=>s.jsx(Pa,{present:n||i.open,children:s.jsx(cw,{asChild:!0,container:o,children:a})}))})};MT.displayName=uw;var mh="DialogOverlay",LT=m.forwardRef((e,t)=>{const n=IT(mh,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=As(mh,e.__scopeDialog);return i.modal?s.jsx(Pa,{present:r||i.open,children:s.jsx(P6,{...o,ref:t})}):null});LT.displayName=mh;var A6=j6("DialogOverlay.RemoveScroll"),P6=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=As(mh,n);return s.jsx(TT,{as:A6,allowPinchZoom:!0,shards:[o.contentRef],children:s.jsx(Nn.div,{"data-state":fw(o.open),...r,ref:t,style:{pointerEvents:"auto",...r.style}})})}),ja="DialogContent",OT=m.forwardRef((e,t)=>{const n=IT(ja,e.__scopeDialog),{forceMount:r=n.forceMount,...o}=e,i=As(ja,e.__scopeDialog);return s.jsx(Pa,{present:r||i.open,children:i.modal?s.jsx(_6,{...o,ref:t}):s.jsx(D6,{...o,ref:t})})});OT.displayName=ja;var _6=m.forwardRef((e,t)=>{const n=As(ja,e.__scopeDialog),r=m.useRef(null),o=nr(t,n.contentRef,r);return m.useEffect(()=>{const i=r.current;if(i)return w6(i)},[]),s.jsx(FT,{...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())})}),D6=m.forwardRef((e,t)=>{const n=As(ja,e.__scopeDialog),r=m.useRef(!1),o=m.useRef(!1);return s.jsx(FT,{...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()}})}),FT=m.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:r,onOpenAutoFocus:o,onCloseAutoFocus:i,...a}=e,l=As(ja,n),u=m.useRef(null),f=nr(t,u);return IF(),s.jsxs(s.Fragment,{children:[s.jsx(bT,{asChild:!0,loop:!0,trapped:r,onMountAutoFocus:o,onUnmountAutoFocus:i,children:s.jsx(lw,{role:"dialog",id:l.contentId,"aria-describedby":l.descriptionId,"aria-labelledby":l.titleId,"data-state":fw(l.open),...a,ref:f,onDismiss:()=>l.onOpenChange(!1)})}),s.jsxs(s.Fragment,{children:[s.jsx(I6,{titleId:l.titleId}),s.jsx(L6,{contentRef:u,descriptionId:l.descriptionId})]})]})}),dw="DialogTitle",zT=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=As(dw,n);return s.jsx(Nn.h2,{id:o.titleId,...r,ref:t})});zT.displayName=dw;var BT="DialogDescription",UT=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=As(BT,n);return s.jsx(Nn.p,{id:o.descriptionId,...r,ref:t})});UT.displayName=BT;var HT="DialogClose",VT=m.forwardRef((e,t)=>{const{__scopeDialog:n,...r}=e,o=As(HT,n);return s.jsx(Nn.button,{type:"button",...r,ref:t,onClick:sn(e.onClick,()=>o.onOpenChange(!1))})});VT.displayName=HT;function fw(e){return e?"open":"closed"}var WT="DialogTitleWarning",[$6,KT]=tF(WT,{contentName:ja,titleName:dw,docsSlug:"dialog"}),I6=({titleId:e})=>{const t=KT(WT),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
607
+
608
+ If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
609
+
610
+ 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},M6="DialogDescriptionWarning",L6=({contentRef:e,descriptionId:t})=>{const r=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${KT(M6).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},qT=_T,GT=$T,YT=MT,pw=LT,hw=OT,mw=zT,gw=UT,xw=VT;const Mn=qT,O6=GT,F6=YT,XT=xw,QT=m.forwardRef(({className:e,...t},n)=>s.jsx(pw,{ref:n,className:ve("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm",e),...t}));QT.displayName=pw.displayName;const Sn=m.forwardRef(({className:e,children:t,...n},r)=>s.jsxs(F6,{children:[s.jsx(QT,{}),s.jsx(hw,{ref:r,className:ve("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})]}));Sn.displayName=hw.displayName;function sr({className:e,...t}){return s.jsx("div",{className:ve("flex flex-col space-y-2 text-left",e),...t})}function Hr({className:e,...t}){return s.jsx("div",{className:ve("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t})}const Cn=m.forwardRef(({className:e,...t},n)=>s.jsx(mw,{ref:n,className:ve("text-lg font-semibold tracking-tight text-foreground",e),...t}));Cn.displayName=mw.displayName;const ns=m.forwardRef(({className:e,...t},n)=>s.jsx(gw,{ref:n,className:ve("text-sm leading-6 text-muted-foreground",e),...t}));ns.displayName=gw.displayName;const z6=-1,B6=-40;function my(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(B6,i*z6)),o=r,i=0,r++,u=!0;break}else i++,r++;if(!u)return-1/0}return n}const rN={page:0,project:1,assignment:2,playbook:3,server:4,todo:5};function yw(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=my(r,a.title.toLowerCase())*1,u=a.subtitle?my(r,a.subtitle.toLowerCase())*.5:-1/0,f=(h=a.keywords)!=null&&h.length?my(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:(rN[a.type]??99)-(rN[l.type]??99)),i.slice(0,n)}const U6={a:"assignment",p:"project",t:"todo",s:"server",pb:"playbook"},sN=Symbol("absent");function pp(e){return e.replace(/\s+/g," ").trim()}const oN=new Set(["IDENT","STRING","NUMBER","DATE","DURATION"]);function H6(e){const t=e.externalIds;return Array.isArray(t)?t.map(n=>n&&typeof n=="object"?`${n.system}:${n.id}`:"").join(" "):""}function V6(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 ad={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:sN},type:{kind:"enum",get:e=>e.assignmentType},project:{kind:"string",noneSentinel:!0,get:e=>"project"in e?e.project:sN},externalid:{kind:"substring",get:H6},jira:{kind:"substring",get:V6},title:{kind:"substring"},search:{kind:"substring",get:e=>e.searchText??e.title}};function W6(e,t=U6,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=q6(a,t),u={aqlExpr:l.aqlExpr,fuzzy:l.fuzzy};if(r!=="all"&&!i&&e.trim()!==""&&!K6(l.aqlExpr)){const f=`kind:${r}`;u.aqlExpr=l.aqlExpr?l.explicit?`${f} (${l.aqlExpr})`:`${f} ${l.aqlExpr}`:f}return u}function K6(e){if(!e)return!1;let t;try{t=gm(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 q6(e,t){let n;try{n=gm(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(X6(e,n,r,t));return nc(h,ad).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=G6(n,u,t);if(h){p(u),a.push(h.atom),u=h.end,f=u;continue}const g=Y6(n,u,r);if(g!==null){const y=o(u,g).trim();if(nc(y,ad).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 G6(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 Y6(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(ad,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 oN.has(a.type)?r+3:null}if(i.type==="OP"){const a=e[r+2];return a&&oN.has(a.type)?r+3:null}return null}function X6(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 bw=["kanban","list","table"],JT=["title","status","priority","assignee","dependencies","created","updated"],Q6=["asc","desc"],J6=["comfortable","compact"],Z6=["none","status","type","priority","assignee","project"],ez=["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 tz(e,t){const n=He(e),r=He(t);return n.length===r.length&&n.every(o=>r.includes(o))}const nz={defaultView:"kanban",sortField:"updated",sortDirection:"desc",density:"comfortable",grouping:"none",filters:{status:"all",type:"all",priority:"all",assignee:"all",project:"all",activity:"all"}},ld={version:1,global:nz,projects:{}};function gy(e){return e==="table"?"table":"kanban"}function rz(e,t){return t?{...e,...t}:{...e}}function ZT(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:rz(n.filters,r.filters)}:n}const sz=/^[A-Za-z_][A-Za-z0-9_-]*$/,oz=new Set(["and","or","not"]);function vw(e){return sz.test(e)&&!oz.has(e.toLowerCase())?e:eR(e)}function eR(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}const tR="__unassigned__",nR="__standalone__",iz={last_24h:"24h",last_7d:"7d",last_30d:"30d",last_90d:"90d",older_7d:"7d",older_30d:"30d"};function az(e){return e.startsWith("older_")?"<":">="}const ww=["status","type","priority","assignee","project","tags"],lz=["created","updated"];function cz(e){var i;const t={};for(const a of ww){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=uz(o);if(a)r||(r=a);else{const l=dz(o);l&&(t.dateRange=l)}}return r&&(t.activity=r),t}function uz(e){return e.field!=="updated"||!e.preset?null:e.preset==="older_7d"?"stale":e.preset==="last_7d"?"fresh":null}function dz(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 Wu(e){const t=cz(e),n=[];for(const r of ww){const o=t[r]??[];o.length&&n.push(fz(r,o))}return t.search&&n.push(`search:${eR(t.search)}`),t.activity==="stale"?n.push("updated < -7d"):t.activity==="fresh"&&n.push("updated >= -7d"),t.dateRange&&n.push(...hz(t.dateRange)),n.join(" AND ")}function fz(e,t){const n=t.map(r=>pz(e,r));return n.length===1?`${e}:${n[0]}`:`${e}:(${n.join(", ")})`}function pz(e,t){return e==="assignee"&&t===tR||e==="project"&&t===nR?"none":vw(t)}function hz(e){if(e.preset)return[`${e.field} ${az(e.preset)} -${iz[e.preset]}`];const t=[];return e.from&&t.push(`${e.field} >= ${e.from}`),e.to&&t.push(`${e.field} <= ${e.to}`),t}function Ku(e){const t=xm(e);if(!t.ast)return null;const n=mz(t.ast);if(n===null)return null;const r={},o=new Set,i=new Map;for(const a of n){const l=gz(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 mz(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 gz(e){const t=e.field.toLowerCase();if(e.op===":"){if(ww.includes(t)){const o=t,i=[];for(const a of e.values){const l=wz(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(!lz.includes(t))return null;const n=t;if(e.values.length!==1)return null;const r=e.values[0];return r.type==="duration"?xz(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 xz(e,t,n){if(n.sign!==-1)return null;const r=yz(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=vz(t,r);return o?{kind:"datePreset",field:e,preset:o}:null}function yz(e){return e.replace(/^[-+]/,"")}const bz={">=":{"24h":"last_24h","7d":"last_7d","30d":"last_30d","90d":"last_90d"},"<":{"7d":"older_7d","30d":"older_30d"}};function vz(e,t){return e!==">="&&e!=="<"?null:bz[e][t]??null}function wz(e,t){const n=t.raw;return e==="assignee"&&n.toLowerCase()==="none"?tR:e==="project"&&n.toLowerCase()==="none"?nR:n}const jz=new Set(["status","type","tag","assignee","externalid"]),xy=new Set(["IDENT","STRING","NUMBER","DATE","DURATION","STAR"]),iN=8;function kz(e,t,n){var k,v,b,j,S;let r;try{r=gm(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&&xy.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(!jz.has(u))return[];const N=n.values[u]??[],C=p.toLowerCase(),A=[];for(const T of N)if(!(C&&!T.toLowerCase().startsWith(C))&&T.toLowerCase()!==C&&(A.push({label:T,insert:vw(T),replace:f,kind:"value"}),A.length>=iN))break;return A}if(a>=0&&!xy.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"||xy.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,iN)}const Nz=200,Sz=2;function Cz(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),Nz);return()=>clearTimeout(y)},[e]);const h=n.trim(),g=t&&h.length>=Sz;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 Ez(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 rR={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 qu=null,Zi=null;function Tz(){return qu?Promise.resolve(qu):Zi||(Zi=fetch("/api/config/statuses").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>(qu=e,Zi=null,e)).catch(()=>(Zi=null,rR)),Zi)}function rs(){const[e,t]=m.useState(()=>qu??rR);return m.useEffect(()=>{Tz().then(t)},[]),e}function aN(){qu=null,Zi=null}function es(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 sR={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,xl=null;function Rz(){return Wp?Promise.resolve(Wp):xl||(xl=fetch("/api/config/types").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>(Wp=e,xl=null,e)).catch(()=>(xl=null,sR)),xl)}function Fd(){const[e,t]=m.useState(()=>Wp??sR);return m.useEffect(()=>{Rz().then(t)},[]),e}function Hl(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 Az(e,t){return t?e.definitions.find(n=>n.id===t)??null:null}const Pz={page:"Page",project:"Project",assignment:"Assignment",playbook:"Playbook",server:"Server",todo:"Todo",content:"Content"};function _z(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 Dz(e,t){if(!t||t.length===0)return e;const n=_z(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 $z({entries:e}){const{paletteOpen:t,closePalette:n}=Ri(),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}=aw(),S=rs(),N=Fd(),{aqlExpr:C,fuzzy:A}=m.useMemo(()=>W6(o,j.aliases,{defaultScope:j.defaultScope}),[o,j.aliases,j.defaultScope]),T=m.useMemo(()=>{const $=new Set,V=new Set,L=new Set;for(const Y of e){for(const H of Y.tags??[])$.add(H);Y.assignee&&V.add(Y.assignee);for(const H of Y.externalIds??[])H.id&&(L.add(H.id),H.system&&L.add(`${H.system}:${H.id}`))}const B=Object.keys(ad);return{aliases:j.aliases,fields:j.externalIds?B:B.filter(Y=>Y!=="jira"&&Y!=="externalid"),values:{status:S.statuses.map(Y=>Y.id),type:N.definitions.map(Y=>Y.id),tag:[...$],assignee:[...V],externalid:j.externalIds?[...L]:[]}}},[e,j.aliases,j.externalIds,S.statuses,N.definitions]),_=m.useMemo(()=>kz(o,u,T),[o,u,T]),O=p&&_.length>0&&o.trim()!=="",P=m.useMemo(()=>{let $=e,V=A;if(C){const L=nc(C,ad);if(L.query){const B=Date.now(),{predicate:Y}=L.query;$=e.filter(H=>Y(H,{now:B}))}else V=o}return yw(V,$,50)},[e,C,A,o]),{hits:W}=Cz(o,t),I=m.useMemo(()=>FO(W),[W]),z=m.useMemo(()=>[...P,...I],[P,I]);m.useEffect(()=>{l(0)},[o,t]),m.useEffect(()=>{y(0)},[_]),m.useEffect(()=>{t||(i(""),f(0),h(!0))},[t]),m.useEffect(()=>{var V;const $=(V=k.current)==null?void 0:V.querySelector(`[data-palette-idx="${a}"]`);$==null||$.scrollIntoView({block:"nearest"})},[a]);function U($){r($.route),n()}function D($,V){const L=V===a,B=$.type==="content";return s.jsxs("button",{type:"button","data-palette-idx":V,onClick:()=>U($),onMouseEnter:()=>l(V),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:Pz[$.type]??$.type}),s.jsxs("span",{className:"flex min-w-0 flex-1 flex-col",children:[s.jsx("span",{className:"truncate",children:$.title}),B&&$.snippet?s.jsx("span",{className:"truncate text-xs text-muted-foreground",children:Dz($.snippet,$.snippetMatches)}):null]}),$.subtitle?s.jsx("span",{className:"shrink-0 truncate text-xs text-muted-foreground",children:$.subtitle}):null]},$.id)}function F($){const V=o.slice(0,$.replace[0])+$.insert+o.slice($.replace[1]),L=$.replace[0]+$.insert.length;i(V),f(L),requestAnimationFrame(()=>{const B=v.current;B&&(B.focus(),B.setSelectionRange(L,L))})}function M($){if(O){if($.key==="Tab"||$.key==="ArrowRight"&&u>=o.length){$.preventDefault();const V=_[g];V&&F(V);return}if($.key==="ArrowDown"){$.preventDefault(),y(V=>Math.min(_.length-1,V+1));return}if($.key==="ArrowUp"){$.preventDefault(),y(V=>Math.max(0,V-1));return}if($.key==="Enter"){$.preventDefault();const V=z[a];V&&U(V);return}return}if($.key==="ArrowDown")$.preventDefault(),l(V=>Math.min(z.length-1,V+1));else if($.key==="ArrowUp")$.preventDefault(),l(V=>Math.max(0,V-1));else if($.key==="Enter"){$.preventDefault();const V=z[a];V&&U(V)}}const K=O&&_[g]?`${b}-option-${g}`:void 0;return s.jsx(Mn,{open:t,onOpenChange:$=>$?null:n(),children:s.jsxs(Sn,{className:"max-w-xl p-0 gap-0",onEscapeKeyDown:$=>{O&&($.preventDefault(),h(!1))},children:[s.jsx(Cn,{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":O,"aria-controls":O?b:void 0,"aria-activedescendant":K,"aria-autocomplete":"list",value:o,onChange:$=>{i($.target.value),f($.target.selectionStart??$.target.value.length),h(!0)},onSelect:$=>f($.currentTarget.selectionStart??0),onKeyDown:M,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"}),O?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:_.map(($,V)=>{const L=V===g;return s.jsxs("button",{id:`${b}-option-${V}`,role:"option","aria-selected":L,type:"button",onMouseDown:B=>{B.preventDefault(),F($)},onMouseEnter:()=>y(V),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:$.label}),s.jsx("span",{className:"shrink-0 text-[10px] uppercase tracking-wide text-muted-foreground",children:$.kind})]},`${$.kind}-${$.insert}-${V}`)})}):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}),A?s.jsxs("span",{children:[" · ranking “",A,"”"]}):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($=>s.jsxs("code",{className:"mr-1",children:[$,":"]},$))," · ",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:z.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:[P.map(($,V)=>D($,V)),I.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"}),I.map(($,V)=>D($,P.length+V))]}):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:O?"⇥/→ accept · ↑↓ suggestions · Esc close":"↑↓ navigate · ↵ open · Esc close"}),s.jsxs("span",{children:[z.length," result",z.length===1?"":"s"]})]})]})})}function Iz({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(f4,{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 Mz({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 Lz({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 yw(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 Oz({entries:e}){var Q,J;const t=Wt(),{actionsPaletteOpen:n,closeActionsPalette:r,customBindings:o,bindAction:i,findConflict:a,pendingActionKind:l,consumePendingActionKind:u}=Ri(),[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),[A,T]=m.useState(!1),[_,O]=m.useState(null),P=m.useRef(null),W=m.useMemo(()=>e.map(Z=>({type:Z.group.toLowerCase(),title:Z.title,subtitle:Z.subtitle,keywords:Z.keywords,action:Z})),[e]),I=m.useMemo(()=>yw(f,W,50),[f,W]);m.useEffect(()=>{g(0)},[f,n]),m.useEffect(()=>{n||(p(""),k(null),b(""),S(null),C(null),T(!1),O(null))},[n]),m.useEffect(()=>{if(!n||!l)return;const Z=u();if(!Z)return;const oe=e.find(te=>te.bindableKind===Z);oe&&z(oe)},[n,l]),m.useEffect(()=>{var oe;const Z=(oe=P.current)==null?void 0:oe.querySelector(`[data-palette-idx="${h}"]`);Z==null||Z.scrollIntoView({block:"nearest"})},[h]);async function z(Z){if(!A){if(Z.flow&&Z.flow.steps.length>0){S({action:Z,stepIndex:0,values:{}}),O(null);return}if(Z.requiresInput){k(Z),b(""),O(null);return}if(Z.run){T(!0),O(null);try{await Z.run(),r()}catch(oe){O(oe instanceof Error?oe.message:"Action failed")}finally{T(!1)}}}}async function U(Z){if(!j)return;const oe=j.action.flow.steps[j.stepIndex],te={...j.values,[oe.id]:Z};if(j.stepIndex+1<j.action.flow.steps.length){S({action:j.action,stepIndex:j.stepIndex+1,values:te});return}T(!0),O(null);try{await j.action.flow.submit(te,{navigate:t}),r()}catch(ue){O(ue instanceof Error?ue.message:"Action failed")}finally{T(!1)}}function D(){if(j&&!A){if(j.stepIndex===0){S(null),O(null);return}S({action:j.action,stepIndex:j.stepIndex-1,values:j.values}),O(null)}}async function F(){if(A||!(y!=null&&y.requiresInput))return;const Z=v.trim();if(Z){T(!0),O(null);try{await y.requiresInput.runWithInput(Z),r()}catch(oe){O(oe instanceof Error?oe.message:"Action failed")}finally{T(!1)}}}function M(Z){if(Z.key==="ArrowDown")Z.preventDefault(),g(oe=>Math.min(I.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=I[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=I[h];oe&&z(oe.action)}}function K(Z){Z.key==="Enter"?(Z.preventDefault(),F()):Z.key==="Escape"&&(Z.preventDefault(),k(null),b(""))}function $(Z){if(!N||Z.key==="Escape"||Z.key==="Enter"&&!N.combo)return;if(Z.key==="Enter"&&N.combo){Z.preventDefault(),Z.stopPropagation(),V();return}Z.preventDefault(),Z.stopPropagation();const oe=rT(Z.nativeEvent);if(!oe)return;const te=a(oe,N.action.bindableKind);C({...N,combo:oe,conflict:te,error:null})}async function V(){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,B=j!==null,Y=N!==null,H=j?j.action.flow.steps[j.stepIndex]:null;return s.jsx(Mn,{open:n,onOpenChange:Z=>Z?null:r(),children:s.jsxs(Sn,{className:"max-w-xl p-0 gap-0",onEscapeKeyDown:Z=>{if(!A){if(Y){Z.preventDefault(),C(null);return}if(B){Z.preventDefault(),D();return}L&&(Z.preventDefault(),k(null),b(""),O(null))}},children:[s.jsx(Cn,{className:"sr-only",children:"Actions palette"}),Y&&N?s.jsxs("div",{onKeyDown:$,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(Sb,{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:eo(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 V(),"data-bind-confirm":!0}),s.jsx("input",{type:"hidden",onKeyDown:Z=>{Z.key==="Enter"&&V()}})]}):B&&H&&j?s.jsxs(s.Fragment,{children:[s.jsx(Iz,{label:`${j.action.title} · ${H.label}`,onBack:D,disabled:A,stepCounter:{current:j.stepIndex+1,total:j.action.flow.steps.length}}),H.kind==="text"?s.jsx(Mz,{step:H,initialValue:j.values[H.id],disabled:A,onSubmit:U}):s.jsx(Lz,{step:H,disabled:A,onSubmit:U}),_?s.jsx("div",{className:"border-t border-border/70 bg-destructive/10 px-4 py-2 text-xs text-destructive",children:_}):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:A?"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:A,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",{className:"border-b border-border/70 bg-destructive/10 px-4 py-2 text-xs text-destructive",children:_}):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:A?"Running…":""})]})]}):s.jsxs(s.Fragment,{children:[s.jsx("input",{autoFocus:!0,type:"text",value:f,onChange:Z=>p(Z.target.value),onKeyDown:M,placeholder:"Run an action: new project, new todo, toggle…",disabled:A,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"}),_?s.jsx("div",{className:"border-b border-border/70 bg-destructive/10 px-4 py-2 text-xs text-destructive",children:_}):null,s.jsx("div",{ref:P,className:"max-h-[60vh] overflow-y-auto p-1",children:I.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"}):I.map((Z,oe)=>{const te=oe===h,ue=Z.action.bindableKind,ge=ue?o[ue]:void 0;return s.jsxs("button",{type:"button","data-palette-idx":oe,onClick:()=>z(Z.action),onMouseEnter:()=>g(oe),disabled:A,className:`group flex w-full items-center gap-3 rounded-md px-3 py-2 text-left text-sm transition-colors disabled:opacity-60 ${te?"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:eo(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 ${te?"opacity-100":"opacity-0 group-hover:opacity-100"}`,children:s.jsx(Sb,{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:A?"Running…":`${I.length} action${I.length===1?"":"s"}`})]})]})]})})}const Fz=[{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 zz(e){const t=vr(e);return t?Fz.find(n=>n.combo===t)??null:null}const ku={"new-workspace":"New Workspace","new-project":"New Project","new-todo":"New Todo","new-assignment":"New Assignment"},Bz={global:"Global","list:overview":"Overview","list:projects":"Projects list","list:assignments":"Assignments list","list:todos":"Todos list",assignment:"Assignment detail",project:"Project detail"},Uz=["global","list:overview","list:projects","list:assignments","list:todos","project","assignment"];function lN(e){if(e.includes(" ")){const[t,n]=e.split(" ");return`${eo(t)} then ${eo(n)}`}return eo(e)}function Hz(){const{cheatsheetOpen:e,closeCheatsheet:t,listBindings:n,customBindings:r,actionEntries:o}=Ri(),i=m.useMemo(()=>{const u=new Set;for(const f of Object.values(r))typeof f=="string"&&f&&u.add(vr(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(vr(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(Mn,{open:e,onOpenChange:u=>u?null:t(),children:s.jsxs(Sn,{className:"max-w-2xl",children:[s.jsx(Cn,{children:"Keyboard shortcuts"}),s.jsxs(ns,{children:["Press Esc to close. ",eo("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:[Uz.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:Bz[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:lN(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:lN(u.combo)})]},`custom-${u.kind}`))})]}):null]})]})})}const jw={bindings:{},custom:!1};let Gu=null,yl=null;const Mb=new Set;function oR(e){Gu=e;for(const t of Mb)t(e)}function kw(e){if(!e||typeof e!="object")return jw;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(!mO(r)||typeof o!="string"||o.trim()==="")continue;const i=vr(o);i&&(n[r]=i)}return{bindings:n,custom:t.custom===!0}}function Vz(){return Gu?Promise.resolve(Gu):yl||(yl=fetch("/api/config/hotkeys").then(e=>{if(!e.ok)throw new Error(`HTTP ${e.status}`);return e.json()}).then(e=>{const t=kw(e);return Gu=t,yl=null,t}).catch(()=>(yl=null,jw)),yl)}function Wz(){const[e,t]=m.useState(()=>Gu??jw);return m.useEffect(()=>{let n=!1;return Vz().then(r=>{n||t(r)}),Mb.add(t),()=>{n=!0,Mb.delete(t)}},[]),e}async function cN(e){const t={};for(const o of pm){const i=e[o];if(typeof i!="string")continue;const a=vr(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=kw(await n.json());return oR(r),r}async function Kz(){const e=await fetch("/api/config/hotkeys",{method:"DELETE"});if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=kw(await e.json());return oR(t),t}const uN=1500;function qz(e){const t=e.match(/^\/w\/([^/]+)(?:\/|$)/);return t?`/w/${t[1]}`:""}const iR=m.createContext(null);function Gz({children:e}){const{toggleTheme:t}=Zv(),n=rr(),r=Wt(),o=qz(n.pathname),[i,a]=m.useState(!1),l=oo(i),u=dm(i),f=tw(i),p=ew(i),h=sT(i),{search:g}=aw(),y=m.useMemo(()=>{var ot,St,ht,it;const be=l.data??[],ye=((ot=u.data)==null?void 0:ot.assignments)??[],Re=((St=f.data)==null?void 0:St.playbooks)??[],Ue=((ht=p.data)==null?void 0:ht.sessions)??[],Oe=(((it=h.data)==null?void 0:it.workspaces)??[]).flatMap(ce=>ce.items.map(me=>({...me,workspace:ce.workspace})));return LO({projects:be,assignments:ye,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(()=>F2(n.pathname),[n.pathname]).projectSlug,b=m.useMemo(()=>{var be;return v?((be=l.data)==null?void 0:be.find(ye=>ye.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 be;return UO({playbooks:((be=f.data)==null?void 0:be.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),A=m.useRef(["global"]),T=m.useRef({phase:"idle"}),_=m.useRef(null),O=m.useRef(1),[P,W]=m.useState(!1),[I,z]=m.useState(!1),[U,D]=m.useState(!1),[F,M]=m.useState(null);m.useEffect(()=>{(P||U)&&a(!0)},[P,U]);const{bindings:K}=Wz(),$=m.useMemo(()=>vO(K),[K]),V=m.useCallback(be=>{const ye=O.current++;return C.current.set(ye,{...be,id:ye}),ye},[]),L=m.useCallback(be=>{C.current.delete(be)},[]),B=m.useCallback(be=>{A.current.push(be)},[]),Y=m.useCallback(be=>{const ye=A.current;for(let Re=ye.length-1;Re>=0;Re--)if(ye[Re]===be){ye.splice(Re,1);return}},[]),H=m.useCallback(()=>W(!0),[]),Q=m.useCallback(()=>W(!1),[]),J=m.useCallback(()=>z(!0),[]),Z=m.useCallback(()=>z(!1),[]),oe=m.useCallback(()=>D(!0),[]),te=m.useCallback(()=>{D(!1),M(null)},[]),ue=m.useCallback(()=>Array.from(C.current.values()),[]),ge=m.useCallback(()=>{let be=null;return M(ye=>(be=ye,null)),be},[]),Ce=m.useCallback(be=>{M(be),D(!0)},[]),Se=m.useCallback((be,ye)=>{const Re=vr(be);if(!Re)return null;if(yO(Re)){const Ue=zz(Re);return{description:(Ue==null?void 0:Ue.description)??"Reserved built-in shortcut"}}for(const[Ue,rt]of Object.entries($))if(!(ye&&Ue===ye)&&rt===Re)return{kind:Ue};return null},[$]),ke=m.useCallback(async(be,ye)=>{const Re=vr(ye);if(!Re)throw new Error("Empty combo");const Ue=Se(Re,be);if(Ue){const Oe=Ue.description?`Reserved: ${Ue.description}`:`Already bound to "${Ue.kind}"`;throw new Error(Oe)}const rt={...K,[be]:Re};return await cN(rt),Re},[K,Se]),Be=m.useCallback(async be=>{if(!K[be])return;const ye={...K};delete ye[be],await cN(ye)},[K]);m.useEffect(()=>{T.current={phase:"idle"},_.current!==null&&(window.clearTimeout(_.current),_.current=null)},[n.pathname]),m.useEffect(()=>{function be(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 ye(){return!!(document.querySelector('[role="dialog"][data-state="open"]')||document.querySelector('[role="alertdialog"][data-state="open"]'))}function Re(){const Oe=A.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"),ht=Oe.key==="Escape",it=ot||St||ht;if(ye()&&!it||be(Oe.target)&&!it)return;const ce=T.current;if(ce.phase==="awaiting-second")if(Date.now()-ce.startedAt>uN)T.current={phase:"idle"},_.current!==null&&(window.clearTimeout(_.current),_.current=null);else{const Pe=Array.from(C.current.values());for(const Ve of Pe){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"},_.current!==null&&(window.clearTimeout(_.current),_.current=null),Ve.handler(Oe);return}}T.current={phase:"idle"},_.current!==null&&(window.clearTimeout(_.current),_.current=null)}const me=Array.from(C.current.values());for(const Ie of me){if(!Ue(Ie))continue;const Pe=Ie.keys.split(" ");if(Pe.length===1&&ap(Oe,Pe[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(Pe=>Ue(Pe)&&Pe.keys.startsWith("g "))&&(Oe.preventDefault(),T.current={phase:"awaiting-second",startedAt:Date.now()},_.current!==null&&window.clearTimeout(_.current),_.current=window.setTimeout(()=>{T.current={phase:"idle"},_.current=null},uN))}return window.addEventListener("keydown",rt),()=>{window.removeEventListener("keydown",rt),_.current!==null&&(window.clearTimeout(_.current),_.current=null)}},[]),m.useEffect(()=>{const be=V({keys:"Shift+t",handler:()=>t(),scope:"global",description:"Toggle light/dark theme"});return()=>L(be)},[V,L,t]),m.useEffect(()=>{const be=V({keys:"?",scope:"global",description:"Show keyboard shortcuts",handler:()=>J()});return()=>L(be)},[V,L,J]),m.useEffect(()=>{const be=V({keys:"Mod+k",scope:"global",description:"Open command palette",handler:()=>{if(P){Q();return}document.querySelector('[role="dialog"][data-state="open"], [role="alertdialog"][data-state="open"]')||H()}});return()=>L(be)},[V,L,H,Q,P]),m.useEffect(()=>{const be=V({keys:"Mod+Shift+k",scope:"global",description:"Open actions palette",handler:()=>{if(U){te();return}document.querySelector('[role="dialog"][data-state="open"], [role="alertdialog"][data-state="open"]')||oe()}});return()=>L(be)},[V,L,oe,te,U]),m.useEffect(()=>{const ye=[{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=>V({keys:`g ${Re.suffix}`,scope:"global",description:Re.desc,handler:()=>r(Fp(Re.basePath,o))}));return()=>ye.forEach(L)},[V,L,r,o]),m.useEffect(()=>{const be=[];for(const[ye,Re]of Object.entries($)){if(!Re)continue;const Ue=N.find(Oe=>Oe.bindableKind===ye),rt=Ue?`Custom: ${Ue.title}`:`Custom: ${ye}`;be.push(V({keys:Re,scope:"global",description:rt,handler:()=>{M(ye),D(!0)}}))}return()=>be.forEach(L)},[V,L,$,N]);const ie=m.useMemo(()=>({register:V,unregister:L,pushScope:B,popScope:Y,openPalette:H,closePalette:Q,paletteOpen:P,openCheatsheet:J,closeCheatsheet:Z,cheatsheetOpen:I,openActionsPalette:oe,closeActionsPalette:te,actionsPaletteOpen:U,listBindings:ue,wsPrefix:o,paletteEntries:y,actionEntries:N,userBindings:K,customBindings:$,bindAction:ke,unbindAction:Be,findConflict:Se,openActionsPaletteWithAction:Ce,pendingActionKind:F,consumePendingActionKind:ge}),[V,L,B,Y,H,Q,P,J,Z,I,oe,te,U,ue,o,y,N,K,$,ke,Be,Se,Ce,F,ge]);return s.jsxs(iR.Provider,{value:ie,children:[e,s.jsx($z,{entries:y}),s.jsx(Oz,{entries:N}),s.jsx(Hz,{})]})}function Ri(){const e=m.useContext(iR);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}=Ri(),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 Ai(e){const{pushScope:t,popScope:n}=Ri();m.useEffect(()=>(t(e),()=>n(e)),[t,n,e])}function zd(e,t){const[n,r]=m.useState(e.length===0?-1:0),o=rr();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 Yz(){return m.useSyncExternalStore(H5,F1,F1)}function Xz(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 Qz(){const e=Yz(),t=Xz(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 Jz({title:e,breadcrumbs:t,projectSlug:n,onOpenMobileNav:r}){const o=xn(),{resolvedTheme:i,toggleTheme:a}=Zv(),{openPalette:l}=Ri();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(O4,{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(Qz,{}),s.jsxs("button",{type:"button",onClick:l,className:"shell-action","aria-label":"Open command palette",children:[s.jsx(Ci,{className:"h-4 w-4"}),s.jsx("span",{className:"hidden sm:inline font-mono text-xs",children:eo("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(At,{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(At,{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(X4,{className:"h-4 w-4"}):s.jsx(F4,{className:"h-4 w-4"}),s.jsx("span",{className:"hidden sm:inline",children:i==="dark"?"Light":"Dark"})]})]})]})})}const Zz=4e3;function Wn(){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},Zz)},[]);return m.useEffect(()=>()=>{n.current!==null&&clearTimeout(n.current)},[]),{toast:e,showToast:o,dismissToast:r}}function Vn({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:ve("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 dN={review:0,blocked:0,question:0,"plan-approval":0};function aR(){const[e,t]=m.useState([]),[n,r]=m.useState(dN),[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??dN),i(typeof k.total=="number"?k.total:0),l(!1))}).catch(k=>{y||(f(k.message),l(!1))}),()=>{y=!0}},[p]),Ei(y=>{(y.type==="assignment-updated"||y.type==="project-updated")&&g()}),{items:e,counts:n,total:o,loading:a,error:u,refetch:g}}const lR="syntaur.sidebar.collapsed.v1";function cR(){try{return typeof window>"u"?null:window.localStorage}catch{return null}}function eB(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 tB(e,t){return{...e,[t]:!(e[t]??!1)}}function nB(){const e=cR();if(!e)return{};try{return eB(e.getItem(lR))}catch{return{}}}let Kp=nB();const Lb=new Set,rB={};function sB(e){const t=cR();if(t)try{t.setItem(lR,JSON.stringify(e))}catch{}}function oB(e){return Lb.add(e),()=>{Lb.delete(e)}}function iB(){return Kp}function aB(){return rB}function lB(e){Kp=tB(Kp,e),sB(Kp);for(const t of Lb)t()}function cB(){const e=m.useSyncExternalStore(oB,iB,aB);return{isCollapsed:(n,r=!1)=>e[n]??r,toggle:lB}}const gh="_ungrouped",uB=256;function dB(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>uB||/[\r\n]/.test(o)||t.has(o)||(t.add(o),n.push(o)))}return n}function fB(e,t){if(t.length===0)return[...e];const n=new Set(t);return e.filter(r=>!n.has(r))}function pB(e,t){return t.includes(e)}const Nw={hidden:[],custom:!1};let To=null,ea=null,cd=0;const Ob=new Set;function uR(e){To=e;for(const t of Ob)t(e)}function Sw(e){if(!e||typeof e!="object")return Nw;const t=e;return{hidden:dB(t.hidden),custom:t.custom===!0}}function hB(){if(To)return Promise.resolve({value:To,ok:!0});if(ea)return ea;const e=++cd;return ea=fetch("/api/config/workspace-visibility").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{ea=null;const n=Sw(t);return e!==cd?{value:To??n,ok:!0}:(To=n,{value:n,ok:!0})}).catch(()=>(ea=null,{value:Nw,ok:!1})),ea}function dR(){const[e,t]=m.useState(()=>To??Nw),[n,r]=m.useState(()=>To===null),[o,i]=m.useState(!1),[a,l]=m.useState(0);m.useEffect(()=>{let f=!1;return r(To===null),hB().then(p=>{f||(t(p.value),r(!1),i(!p.ok))}),Ob.add(t),()=>{f=!0,Ob.delete(t)}},[a]);function u(){mB(),l(f=>f+1)}return{...e,loading:n,error:o,reload:u}}function mB(){To=null,ea=null,++cd}async function gB(e){++cd;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=Sw(await t.json());return uR(n),n}async function xB(){++cd;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=Sw(await e.json());return uR(t),t}var yB=Symbol("radix.slottable");function bB(e){const t=({children:n})=>s.jsx(s.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=yB,t}var fR="AlertDialog",[vB]=Aa(fR,[PT]),Io=PT(),pR=e=>{const{__scopeAlertDialog:t,...n}=e,r=Io(t);return s.jsx(qT,{...r,...n,modal:!0})};pR.displayName=fR;var wB="AlertDialogTrigger",jB=m.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Io(n);return s.jsx(GT,{...o,...r,ref:t})});jB.displayName=wB;var kB="AlertDialogPortal",hR=e=>{const{__scopeAlertDialog:t,...n}=e,r=Io(t);return s.jsx(YT,{...r,...n})};hR.displayName=kB;var NB="AlertDialogOverlay",mR=m.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Io(n);return s.jsx(pw,{...o,...r,ref:t})});mR.displayName=NB;var Vl="AlertDialogContent",[SB,CB]=vB(Vl),EB=bB("AlertDialogContent"),gR=m.forwardRef((e,t)=>{const{__scopeAlertDialog:n,children:r,...o}=e,i=Io(n),a=m.useRef(null),l=nr(t,a),u=m.useRef(null);return s.jsx($6,{contentName:Vl,titleName:xR,docsSlug:"alert-dialog",children:s.jsx(SB,{scope:n,cancelRef:u,children:s.jsxs(hw,{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(EB,{children:r}),s.jsx(RB,{contentRef:a})]})})})});gR.displayName=Vl;var xR="AlertDialogTitle",yR=m.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Io(n);return s.jsx(mw,{...o,...r,ref:t})});yR.displayName=xR;var bR="AlertDialogDescription",vR=m.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Io(n);return s.jsx(gw,{...o,...r,ref:t})});vR.displayName=bR;var TB="AlertDialogAction",wR=m.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,o=Io(n);return s.jsx(xw,{...o,...r,ref:t})});wR.displayName=TB;var jR="AlertDialogCancel",kR=m.forwardRef((e,t)=>{const{__scopeAlertDialog:n,...r}=e,{cancelRef:o}=CB(jR,n),i=Io(n),a=nr(t,o);return s.jsx(xw,{...i,...r,ref:a})});kR.displayName=jR;var RB=({contentRef:e})=>{const t=`\`${Vl}\` requires a description for the component to be accessible for screen reader users.
611
+
612
+ You can add a description to the \`${Vl}\` by passing a \`${bR}\` component as a child, which also benefits sighted users by adding visible context to the dialog.
613
+
614
+ 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 \`${Vl}\`. 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.
615
+
616
+ 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},AB=pR,PB=hR,NR=mR,SR=gR,CR=wR,ER=kR,TR=yR,RR=vR;const _l=AB,_B=PB,AR=m.forwardRef(({className:e,...t},n)=>s.jsx(NR,{ref:n,className:ve("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm",e),...t}));AR.displayName=NR.displayName;const la=m.forwardRef(({className:e,...t},n)=>s.jsxs(_B,{children:[s.jsx(AR,{}),s.jsx(SR,{ref:n,className:ve("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=SR.displayName;function Dl({className:e,...t}){return s.jsx("div",{className:ve("flex flex-col space-y-2 text-left",e),...t})}function $l({className:e,...t}){return s.jsx("div",{className:ve("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...t})}const ca=m.forwardRef(({className:e,...t},n)=>s.jsx(TR,{ref:n,className:ve("text-lg font-semibold tracking-tight text-foreground",e),...t}));ca.displayName=TR.displayName;const ua=m.forwardRef(({className:e,...t},n)=>s.jsx(RR,{ref:n,className:ve("text-sm leading-6 text-muted-foreground",e),...t}));ua.displayName=RR.displayName;const yi=m.forwardRef(({className:e,...t},n)=>s.jsx(CR,{ref:n,className:ve(e),...t}));yi.displayName=CR.displayName;const ud=m.forwardRef(({className:e,...t},n)=>s.jsx(ER,{ref:n,className:ve(e),...t}));ud.displayName=ER.displayName;const DB=[{to:"/",label:"Overview",icon:v2},{to:"/inbox",label:"Needs me",icon:j2}],$B=[{id:"library",label:"Library",items:[{to:"/playbooks",label:"Playbooks",icon:g2},{to:"/memories",label:"Memories",icon:d4},{to:"/resources",label:"Resources",icon:_4}]},{id:"board",label:"Board",items:[{to:"/todos",label:"Todos",icon:ys},{to:"/views",label:"Saved Views",icon:k2},{to:"/archive",label:"Archive",icon:sm}]},{id:"operations",label:"Operations",items:[{to:"/inventories",label:"Inventories",icon:Hv},{to:"/schedules",label:"Schedules",icon:x2},{to:"/usage",label:"Usage",icon:lm}]}],IB=[{suffix:"/projects",label:"Projects",icon:Wv},{suffix:"/assignments",label:"Assignments",icon:I4},{suffix:"/servers",label:"Servers",icon:Yv},{suffix:"/agent-sessions",label:"Agent Sessions",icon:rm}],MB=[{to:"/help",label:"Help",icon:D4},{to:"/workflow",label:"Workflow",icon:T2},{to:"/settings",label:"Settings",icon:G4}];function LB({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(fN,{activeWorkspace:r})}),i?s.jsx("div",{className:"fixed inset-0 z-40 bg-overlay/40 lg:hidden",children:s.jsxs("div",{className:"flex h-full max-w-xs flex-col border-r border-border/70 bg-sidebar p-4 shadow-2xl",children:[s.jsxs("div",{className:"mb-4 flex shrink-0 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(Nc,{className:"h-4 w-4"})})]}),s.jsx("div",{className:"min-h-0 flex-1",children:s.jsx(fN,{activeWorkspace:r,onNavigate:()=>a(!1)})})]})}):null,s.jsxs("div",{className:"min-w-0",children:[s.jsx(Jz,{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 fN({activeWorkspace:e,onNavigate:t}){const{total:n}=aR(),r=DB.map(F=>F.to==="/inbox"?{...F,badge:n}:F),{data:o}=Ra(),i=(o==null?void 0:o.workspaces)??[],a=(o==null?void 0:o.hasUngrouped)??!1,{hidden:l}=dR(),u=rr(),{isCollapsed:f,toggle:p}=cB(),h=u.pathname.startsWith("/w/")?null:L2(u.pathname),[g,y]=m.useState(!1),[k,v]=m.useState(""),[b,j]=m.useState(null),[S,N]=m.useState(null),[C,A]=m.useState(null),[T,_]=m.useState(!1),O=Wt(),{toast:P,showToast:W,dismissToast:I}=Wn(),z=fB([...i,...a?[gh]:[]],l);async function U(F){if(S){_(!0);try{const M=`/api/workspaces/${encodeURIComponent(S)}${F?"?cascade=true":""}`,K=await fetch(M,{method:"DELETE"});if(K.status===409){const $=await K.json().catch(()=>({}));A(($==null?void 0:$.blockedBy)??{projects:[],standalones:[]});return}if(!K.ok){const $=await K.json().catch(()=>({}));throw new Error($.error||"Failed to delete workspace")}N(null),A(null)}catch(M){console.error(M),alert(M instanceof Error?M.message:"Failed to delete workspace")}finally{_(!1)}}}async function D(F,M){try{if(F.type==="project"){const K=await fetch(`/api/projects/${encodeURIComponent(F.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspace:M})});if(!K.ok){const $=await K.json().catch(()=>({}));throw new Error($.error||"Failed to move project")}return}if(F.type==="standalone-assignment"){const K=await fetch(`/api/assignments/${encodeURIComponent(F.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspaceGroup:M})});if(!K.ok){const $=await K.json().catch(()=>({}));throw new Error($.error||"Failed to move assignment")}return}if(F.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(Vn,{toast:P,onDismiss:I}),s.jsx("div",{className:"shrink-0 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:"flex min-h-0 flex-1 flex-col gap-3 overflow-y-auto",children:[s.jsxs("div",{className:"space-y-1",children:[s.jsx(O1,{items:r,onNavigate:t}),$B.map(F=>s.jsx(I5,{label:F.label,items:F.items,collapsed:f(F.id),onToggle:()=>p(F.id),containsActive:F.items.some(M=>M.to===h),onNavigate:t},F.id))]}),s.jsx("div",{className:"border-t border-border/40"}),s.jsxs("div",{className:"space-y-1",children:[z.length===0&&!g&&s.jsx("p",{className:"px-3 py-2 text-xs text-muted-foreground/60",children:"No workspaces yet"}),z.map(F=>{const M=F==="_ungrouped",K=M?"Ungrouped":mn(F),$=M?"/w/_ungrouped":`/w/${F}`,V=f(`ws:${F}`),L=e===F||e===null&&M&&u.pathname.startsWith("/w/_ungrouped"),B=b===F;return s.jsxs("div",{className:`rounded-md transition ${B?"bg-accent/40 ring-1 ring-ring/40":""}`,onDragOver:Y=>{Y.dataTransfer.types.includes("application/json")&&(Y.preventDefault(),Y.dataTransfer.dropEffect="move",j(F))},onDragLeave:Y=>{Y.currentTarget.contains(Y.relatedTarget)||j(H=>H===F?null:H)},onDrop:async Y=>{try{const H=Y.dataTransfer.getData("application/json");if(!H)return;Y.preventDefault();let Q;try{Q=JSON.parse(H)}catch{return}if(!(Q!=null&&Q.type)||!(Q!=null&&Q.id))return;await D(Q,M?null:F)}finally{j(null)}},children:[s.jsxs("div",{className:"group flex items-center",children:[s.jsxs("button",{type:"button",onClick:()=>p(`ws:${F}`),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(tr,{className:`h-3 w-3 transition-transform ${V?"-rotate-90":""}`}),K]}),M?null:s.jsx("button",{type:"button",onClick:Y=>{Y.stopPropagation(),N(F),A(null)},title:`Delete workspace "${F}"`,"aria-label":`Delete workspace "${F}"`,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(gn,{className:"h-3 w-3"})})]}),!V&&s.jsx("nav",{className:"ml-2 space-y-0.5",children:IB.map(Y=>{const H=`${$}${Y.suffix}`,Q=O2(u.pathname,Y.suffix)&&u.pathname.startsWith($),J=Y.icon;return s.jsxs($e,{to:H,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})]},H)})})]},F)}),g?s.jsx("form",{className:"px-3 py-1.5",onSubmit:async F=>{F.preventDefault();const M=k.trim().toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"");if(M){y(!1),v("");try{const K=await fetch("/api/workspaces",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:M})});if(!K.ok){const $=await K.json().catch(()=>null);W(($==null?void 0:$.error)||`HTTP ${K.status}`,"error");return}t==null||t(),O(`/w/${M}/projects`)}catch(K){W(K instanceof Error?K.message:"Failed to create workspace","error")}}},children:s.jsx("input",{autoFocus:!0,type:"text",value:k,onChange:F=>v(F.target.value),onKeyDown:F=>{F.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(At,{className:"h-3 w-3"}),"New Workspace"]})]})]}),s.jsx("div",{className:"shrink-0 border-t border-border/40"}),s.jsx("div",{className:"shrink-0",children:s.jsx(O1,{items:MB,onNavigate:t})}),s.jsx(_l,{open:S!==null,onOpenChange:F=>{T||F||(N(null),A(null))},children:s.jsxs(la,{children:[s.jsxs(Dl,{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(F=>s.jsx("li",{children:s.jsx($e,{to:`/projects/${F}`,className:"hover:underline",children:F})},F))})]}):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(F=>s.jsx("li",{children:s.jsx($e,{to:`/assignments/${F}`,className:"hover:underline",children:F})},F))})]}):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($l,{children:[s.jsx(ud,{disabled:T,className:"shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50",children:"Cancel"}),C?s.jsx(yi,{disabled:T,onClick:F=>{F.preventDefault(),U(!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(yi,{disabled:T,onClick:F=>{F.preventDefault(),U(!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 OB(){const e=rr(),{workspace:t}=Kt(),{title:n,breadcrumbs:r,projectSlug:o}=F2(e.pathname);return s.jsx(LB,{title:n,breadcrumbs:r,projectSlug:o,workspace:t??null,children:s.jsx(jL,{})})}function FB(){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 jm=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u";function Cc(e){const t=Object.prototype.toString.call(e);return t==="[object Window]"||t==="[object global]"}function Cw(e){return"nodeType"in e}function cr(e){var t,n;return e?Cc(e)?e:Cw(e)&&(t=(n=e.ownerDocument)==null?void 0:n.defaultView)!=null?t:window:window}function Ew(e){const{Document:t}=cr(e);return e instanceof t}function Bd(e){return Cc(e)?!1:e instanceof cr(e).HTMLElement}function PR(e){return e instanceof cr(e).SVGElement}function Ec(e){return e?Cc(e)?e.document:Cw(e)?Ew(e)?e:Bd(e)||PR(e)?e.ownerDocument:document:document:document}const ws=jm?m.useLayoutEffect:m.useEffect;function km(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 zB(){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 dd(e,t){t===void 0&&(t=[e]);const n=m.useRef(e);return ws(()=>{n.current!==e&&(n.current=e)},t),n}function Ud(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=km(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 yy={};function Hd(e,t){return m.useMemo(()=>{if(t)return t;const n=yy[e]==null?0:yy[e]+1;return yy[e]=n,e+"-"+n},[e,t])}function _R(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 Wl=_R(1),fd=_R(-1);function BB(e){return"clientX"in e&&"clientY"in e}function Nm(e){if(!e)return!1;const{KeyboardEvent:t}=cr(e.target);return t&&e instanceof t}function UB(e){if(!e)return!1;const{TouchEvent:t}=cr(e.target);return t&&e instanceof t}function bh(e){if(UB(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 BB(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}}}),pN="a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";function HB(e){return e.matches(pN)?e:e.querySelector(pN)}const VB={display:"none"};function WB(e){let{id:t,value:n}=e;return Ot.createElement("div",{id:t,style:VB},n)}function KB(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 qB(){const[e,t]=m.useState("");return{announce:m.useCallback(r=>{r!=null&&t(r)},[]),announcement:e}}const DR=m.createContext(null);function GB(e){const t=m.useContext(DR);m.useEffect(()=>{if(!t)throw new Error("useDndMonitor must be used within a children of <DndContext>");return t(e)},[e,t])}function YB(){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 XB={draggable:`
617
+ To pick up a draggable item, press the space bar.
618
+ While dragging, use the arrow keys to move the item.
619
+ Press space again to drop the item in its new position, or press escape to cancel.
620
+ `},QB={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 JB(e){let{announcements:t=QB,container:n,hiddenTextDescribedById:r,screenReaderInstructions:o=XB}=e;const{announce:i,announcement:a}=qB(),l=Hd("DndLiveRegion"),[u,f]=m.useState(!1);if(m.useEffect(()=>{f(!0)},[]),GB(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(WB,{id:r,value:o.draggable}),Ot.createElement(KB,{id:l,announcement:a}));return n?Xs.createPortal(p,n):p}var Dn;(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"})(Dn||(Dn={}));function vh(){}function ji(e,t){return m.useMemo(()=>({sensor:e,options:t??{}}),[e,t])}function Sm(){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 $R(e,t){return Math.sqrt(Math.pow(e.x-t.x,2)+Math.pow(e.y-t.y,2))}function ZB(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 IR(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function e8(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function hN(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 MR(e,t){if(!e||e.length===0)return null;const[n]=e;return n[t]}function mN(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 Cm=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=mN(t,t.left,t.top),i=[];for(const a of r){const{id:l}=a,u=n.get(l);if(u){const f=$R(mN(u),o);i.push({id:l,data:{droppableContainer:a,value:f}})}}return i.sort(IR)},t8=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e;const o=hN(t),i=[];for(const a of r){const{id:l}=a,u=n.get(l);if(u){const f=hN(u),p=o.reduce((g,y,k)=>g+$R(f[k],y),0),h=Number((p/4).toFixed(4));i.push({id:l,data:{droppableContainer:a,value:h}})}}return i.sort(IR)};function n8(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 r8=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=n8(l,t);u>0&&o.push({id:a,data:{droppableContainer:i,value:u}})}}return o.sort(e8)};function s8(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function LR(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:ks}function o8(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 i8=o8(1);function OR(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 a8(e,t,n){const r=OR(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 l8={ignoreTransform:!1};function Tc(e,t){t===void 0&&(t=l8);let n=e.getBoundingClientRect();if(t.ignoreTransform){const{transform:f,transformOrigin:p}=cr(e).getComputedStyle(e);f&&(n=a8(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 gN(e){return Tc(e,{ignoreTransform:!0})}function c8(e){const t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function u8(e,t){return t===void 0&&(t=cr(e).getComputedStyle(e)),t.position==="fixed"}function d8(e,t){t===void 0&&(t=cr(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 Em(e,t){const n=[];function r(o){if(t!=null&&n.length>=t||!o)return n;if(Ew(o)&&o.scrollingElement!=null&&!n.includes(o.scrollingElement))return n.push(o.scrollingElement),n;if(!Bd(o)||PR(o)||n.includes(o))return n;const i=cr(e).getComputedStyle(o);return o!==e&&d8(o,i)&&n.push(o),u8(o,i)?n:r(o.parentNode)}return e?r(e):n}function FR(e){const[t]=Em(e,1);return t??null}function by(e){return!jm||!e?null:Cc(e)?e:Cw(e)?Ew(e)||e===Ec(e).scrollingElement?window:Bd(e)?e:null:null}function zR(e){return Cc(e)?e.scrollX:e.scrollLeft}function BR(e){return Cc(e)?e.scrollY:e.scrollTop}function Fb(e){return{x:zR(e),y:BR(e)}}var Hn;(function(e){e[e.Forward=1]="Forward",e[e.Backward=-1]="Backward"})(Hn||(Hn={}));function UR(e){return!jm||!e?!1:e===document.scrollingElement}function HR(e){const t={x:0,y:0},n=UR(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 f8={x:.2,y:.2};function p8(e,t,n,r,o){let{top:i,left:a,right:l,bottom:u}=n;r===void 0&&(r=10),o===void 0&&(o=f8);const{isTop:f,isBottom:p,isLeft:h,isRight:g}=HR(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=Hn.Backward,k.y=r*Math.abs((t.top+v.height-i)/v.height)):!p&&u>=t.bottom-v.height&&(y.y=Hn.Forward,k.y=r*Math.abs((t.bottom-v.height-u)/v.height)),!g&&l>=t.right-v.width?(y.x=Hn.Forward,k.x=r*Math.abs((t.right-v.width-l)/v.width)):!h&&a<=t.left+v.width&&(y.x=Hn.Backward,k.x=r*Math.abs((t.left+v.width-a)/v.width)),{direction:y,speed:k}}function h8(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 VR(e){return e.reduce((t,n)=>Wl(t,Fb(n)),ks)}function m8(e){return e.reduce((t,n)=>t+zR(n),0)}function g8(e){return e.reduce((t,n)=>t+BR(n),0)}function WR(e,t){if(t===void 0&&(t=Tc),!e)return;const{top:n,left:r,bottom:o,right:i}=t(e);FR(e)&&(o<=0||i<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:"center",inline:"center"})}const x8=[["x",["left","right"],m8],["y",["top","bottom"],g8]];class Tw{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=Em(n),o=VR(r);this.rect={...t},this.width=t.width,this.height=t.height;for(const[i,a,l]of x8)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 Yu{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 y8(e){const{EventTarget:t}=cr(e);return e instanceof t?e:Ec(e)}function vy(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 Jr;(function(e){e.Click="click",e.DragStart="dragstart",e.Keydown="keydown",e.ContextMenu="contextmenu",e.Resize="resize",e.SelectionChange="selectionchange",e.VisibilityChange="visibilitychange"})(Jr||(Jr={}));function xN(e){e.preventDefault()}function b8(e){e.stopPropagation()}var Rt;(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"})(Rt||(Rt={}));const KR={start:[Rt.Space,Rt.Enter],cancel:[Rt.Esc],end:[Rt.Space,Rt.Enter,Rt.Tab]},v8=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case Rt.Right:return{...n,x:n.x+25};case Rt.Left:return{...n,x:n.x-25};case Rt.Down:return{...n,y:n.y+25};case Rt.Up:return{...n,y:n.y-25}}};class Rc{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 Yu(Ec(n)),this.windowListeners=new Yu(cr(n)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Jr.Resize,this.handleCancel),this.windowListeners.add(Jr.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Jr.Keydown,this.handleKeyDown))}handleStart(){const{activeNode:t,onStart:n}=this.props,r=t.node.current;r&&WR(r),n(ks)}handleKeyDown(t){if(Nm(t)){const{active:n,context:r,options:o}=this.props,{keyboardCodes:i=KR,coordinateGetter:a=v8,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=fd(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:A,minScroll:T}=HR(v),_=h8(v),O={x:Math.min(b===Rt.Right?_.right-_.width/2:_.right,Math.max(b===Rt.Right?_.left:_.left+_.width/2,h.x)),y:Math.min(b===Rt.Down?_.bottom-_.height/2:_.bottom,Math.max(b===Rt.Down?_.top:_.top+_.height/2,h.y))},P=b===Rt.Right&&!S||b===Rt.Left&&!N,W=b===Rt.Down&&!C||b===Rt.Up&&!j;if(P&&O.x!==h.x){const I=v.scrollLeft+g.x,z=b===Rt.Right&&I<=A.x||b===Rt.Left&&I>=T.x;if(z&&!g.y){v.scrollTo({left:I,behavior:l});return}z?y.x=v.scrollLeft-I:y.x=b===Rt.Right?v.scrollLeft-A.x:v.scrollLeft-T.x,y.x&&v.scrollBy({left:-y.x,behavior:l});break}else if(W&&O.y!==h.y){const I=v.scrollTop+g.y,z=b===Rt.Down&&I<=A.y||b===Rt.Up&&I>=T.y;if(z&&!g.x){v.scrollTo({top:I,behavior:l});return}z?y.y=v.scrollTop-I:y.y=b===Rt.Down?v.scrollTop-A.y:v.scrollTop-T.y,y.y&&v.scrollBy({top:-y.y,behavior:l});break}}this.handleMove(t,Wl(fd(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()}}Rc.activators=[{eventName:"onKeyDown",handler:(e,t,n)=>{let{keyboardCodes:r=KR,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 yN(e){return!!(e&&"distance"in e)}function bN(e){return!!(e&&"delay"in e)}class Rw{constructor(t,n,r){var o;r===void 0&&(r=y8(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=Ec(a),this.documentListeners=new Yu(this.document),this.listeners=new Yu(r),this.windowListeners=new Yu(cr(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(Jr.Resize,this.handleCancel),this.windowListeners.add(Jr.DragStart,xN),this.windowListeners.add(Jr.VisibilityChange,this.handleCancel),this.windowListeners.add(Jr.ContextMenu,xN),this.documentListeners.add(Jr.Keydown,this.handleKeydown),n){if(r!=null&&r({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(bN(n)){this.timeoutId=setTimeout(this.handleStart,n.delay),this.handlePending(n);return}if(yN(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(Jr.Click,b8,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Jr.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=fd(o,u);if(!r&&l){if(yN(l)){if(l.tolerance!=null&&vy(f,l.tolerance))return this.handleCancel();if(vy(f,l.distance))return this.handleStart()}if(bN(l)&&vy(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===Rt.Esc&&this.handleCancel()}removeTextSelection(){var t;(t=this.document.getSelection())==null||t.removeAllRanges()}}const w8={cancel:{name:"pointercancel"},move:{name:"pointermove"},end:{name:"pointerup"}};class Ac extends Rw{constructor(t){const{event:n}=t,r=Ec(n.target);super(t,w8,r)}}Ac.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 j8={move:{name:"mousemove"},end:{name:"mouseup"}};var zb;(function(e){e[e.RightClick=2]="RightClick"})(zb||(zb={}));class k8 extends Rw{constructor(t){super(t,j8,Ec(t.event.target))}}k8.activators=[{eventName:"onMouseDown",handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===zb.RightClick?!1:(r==null||r({event:n}),!0)}}];const wy={cancel:{name:"touchcancel"},move:{name:"touchmove"},end:{name:"touchend"}};class N8 extends Rw{constructor(t){super(t,wy)}static setup(){return window.addEventListener(wy.move.name,t,{capture:!1,passive:!1}),function(){window.removeEventListener(wy.move.name,t)};function t(){}}}N8.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 Xu;(function(e){e[e.Pointer=0]="Pointer",e[e.DraggableRect=1]="DraggableRect"})(Xu||(Xu={}));var wh;(function(e){e[e.TreeOrder=0]="TreeOrder",e[e.ReversedTreeOrder=1]="ReversedTreeOrder"})(wh||(wh={}));function S8(e){let{acceleration:t,activator:n=Xu.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=E8({delta:h,disabled:!i}),[k,v]=zB(),b=m.useRef({x:0,y:0}),j=m.useRef({x:0,y:0}),S=m.useMemo(()=>{switch(n){case Xu.Pointer:return u?{top:u.y,bottom:u.y,left:u.x,right:u.x}:null;case Xu.DraggableRect:return o}},[n,o,u]),N=m.useRef(null),C=m.useCallback(()=>{const T=N.current;if(!T)return;const _=b.current.x*j.current.x,O=b.current.y*j.current.y;T.scrollBy(_,O)},[]),A=m.useMemo(()=>l===wh.TreeOrder?[...f].reverse():f,[l,f]);m.useEffect(()=>{if(!i||!f.length||!S){v();return}for(const T of A){if((r==null?void 0:r(T))===!1)continue;const _=f.indexOf(T),O=p[_];if(!O)continue;const{direction:P,speed:W}=p8(T,O,S,t,g);for(const I of["x","y"])y[I][P[I]]||(W[I]=0,P[I]=0);if(W.x>0||W.y>0){v(),N.current=T,k(C,a),b.current=W,j.current=P;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,A,p,JSON.stringify(g)])}const C8={x:{[Hn.Backward]:!1,[Hn.Forward]:!1},y:{[Hn.Backward]:!1,[Hn.Forward]:!1}};function E8(e){let{delta:t,disabled:n}=e;const r=yh(t);return Ud(o=>{if(n||!r||!o)return C8;const i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[Hn.Backward]:o.x[Hn.Backward]||i.x===-1,[Hn.Forward]:o.x[Hn.Forward]||i.x===1},y:{[Hn.Backward]:o.y[Hn.Backward]||i.y===-1,[Hn.Forward]:o.y[Hn.Forward]||i.y===1}}},[n,t,r])}function T8(e,t){const n=t!=null?e.get(t):void 0,r=n?n.node.current:null;return Ud(o=>{var i;return t==null?null:(i=r??o)!=null?i:null},[r,t])}function R8(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 pd;(function(e){e[e.Always=0]="Always",e[e.BeforeDragging=1]="BeforeDragging",e[e.WhileDragging=2]="WhileDragging"})(pd||(pd={}));var Bb;(function(e){e.Optimized="optimized"})(Bb||(Bb={}));const vN=new Map;function A8(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=dd(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=Ud(j=>{if(h&&!n)return vN;if(!j||j===vN||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,A=C?new Tw(u(C),C):null;N.rect.current=A,A&&S.set(N.id,A)}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 pd.Always:return!1;case pd.BeforeDragging:return n;default:return!n}}}function Aw(e,t){return Ud(n=>e?n||(typeof t=="function"?t(e):e):null,[t,e])}function P8(e,t){return Aw(e,t)}function _8(e){let{callback:t,disabled:n}=e;const r=km(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 Tm(e){let{callback:t,disabled:n}=e;const r=km(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 D8(e){return new Tw(Tc(e),e)}function wN(e,t,n){t===void 0&&(t=D8);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=_8({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=Tm({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 $8(e){const t=Aw(e);return LR(e,t)}const jN=[];function I8(e){const t=m.useRef(e),n=Ud(r=>e?r&&r!==jN&&e&&t.current&&e.parentNode===t.current.parentNode?r:Em(e):jN,[e]);return m.useEffect(()=>{t.current=e},[e]),n}function M8(e){const[t,n]=m.useState(null),r=m.useRef(e),o=m.useCallback(i=>{const a=by(i.target);a&&n(l=>l?(l.set(a,Fb(a)),new Map(l)):null)},[]);return m.useEffect(()=>{const i=r.current;if(e!==i){a(i);const l=e.map(u=>{const f=by(u);return f?(f.addEventListener("scroll",o,{passive:!0}),[f,Fb(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=by(u);f==null||f.removeEventListener("scroll",o)})}},[o,e]),m.useMemo(()=>e.length?t?Array.from(t.values()).reduce((i,a)=>Wl(i,a),ks):VR(e):ks,[e,t])}function kN(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?fd(e,n.current):ks}function L8(e){m.useEffect(()=>{if(!jm)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 O8(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 qR(e){return m.useMemo(()=>e?c8(e):null,[e])}const NN=[];function F8(e,t){t===void 0&&(t=Tc);const[n]=e,r=qR(n?cr(n):null),[o,i]=m.useState(NN);function a(){i(()=>e.length?e.map(u=>UR(u)?r:new Tw(t(u),u)):NN)}const l=Tm({callback:a});return ws(()=>{l==null||l.disconnect(),a(),e.forEach(u=>l==null?void 0:l.observe(u))},[e]),o}function GR(e){if(!e)return null;if(e.children.length>1)return e;const t=e.children[0];return Bd(t)?t:e}function z8(e){let{measure:t}=e;const[n,r]=m.useState(null),o=m.useCallback(f=>{for(const{target:p}of f)if(Bd(p)){r(h=>{const g=t(p);return h?{...h,width:g.width,height:g.height}:g});break}},[t]),i=Tm({callback:o}),a=m.useCallback(f=>{const p=GR(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 B8=[{sensor:Ac,options:{}},{sensor:Rc,options:{}}],U8={current:{}},qp={draggable:{measure:gN},droppable:{measure:gN,strategy:pd.WhileDragging,frequency:Bb.Optimized},dragOverlay:{measure:Tc}};class Qu 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 H8={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new Qu,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:vh},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:qp,measureDroppableContainers:vh,windowRect:null,measuringScheduled:!1},YR={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:""},dispatch:vh,draggableNodes:new Map,over:null,measureDroppableContainers:vh},Vd=m.createContext(YR),XR=m.createContext(H8);function V8(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new Qu}}}function W8(e,t){switch(t.type){case Dn.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case Dn.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 Dn.DragEnd:case Dn.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case Dn.RegisterDroppable:{const{element:n}=t,{id:r}=n,o=new Qu(e.droppable.containers);return o.set(r,n),{...e,droppable:{...e.droppable,containers:o}}}case Dn.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 Qu(e.droppable.containers);return a.set(n,{...i,disabled:o}),{...e,droppable:{...e.droppable,containers:a}}}case Dn.UnregisterDroppable:{const{id:n,key:r}=t,o=e.droppable.containers.get(n);if(!o||r!==o.key)return e;const i=new Qu(e.droppable.containers);return i.delete(n),{...e,droppable:{...e.droppable,containers:i}}}default:return e}}function K8(e){let{disabled:t}=e;const{active:n,activatorEvent:r,draggableNodes:o}=m.useContext(Vd),i=yh(r),a=yh(n==null?void 0:n.id);return m.useEffect(()=>{if(!t&&!r&&i&&a!=null){if(!Nm(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=HB(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 q8(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 G8(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=LR(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=FR(f);g&&g.scrollBy({top:h.y,left:h.x})}},[t,a,l,r,n])}const Rm=m.createContext({...ks,scaleX:1,scaleY:1});var gi;(function(e){e[e.Uninitialized=0]="Uninitialized",e[e.Initializing=1]="Initializing",e[e.Initialized=2]="Initialized"})(gi||(gi={}));const Am=m.memo(function(t){var n,r,o,i;let{id:a,accessibility:l,autoScroll:u=!0,children:f,sensors:p=B8,collisionDetection:h=r8,measuring:g,modifiers:y,...k}=t;const v=m.useReducer(W8,void 0,V8),[b,j]=v,[S,N]=YB(),[C,A]=m.useState(gi.Uninitialized),T=C===gi.Initialized,{draggable:{active:_,nodes:O,translate:P},droppable:{containers:W}}=b,I=_!=null?O.get(_):null,z=m.useRef({initial:null,translated:null}),U=m.useMemo(()=>{var lt;return _!=null?{id:_,data:(lt=I==null?void 0:I.data)!=null?lt:U8,rect:z}:null},[_,I]),D=m.useRef(null),[F,M]=m.useState(null),[K,$]=m.useState(null),V=dd(k,Object.values(k)),L=Hd("DndDescribedBy",a),B=m.useMemo(()=>W.getEnabled(),[W]),Y=q8(g),{droppableRects:H,measureDroppableContainers:Q,measuringScheduled:J}=A8(B,{dragging:T,dependencies:[P.x,P.y],config:Y.droppable}),Z=T8(O,_),oe=m.useMemo(()=>K?bh(K):null,[K]),te=Fe(),ue=P8(Z,Y.draggable.measure);G8({activeNode:_!=null?O.get(_):null,config:te.layoutShiftCompensation,initialRect:ue,measure:Y.draggable.measure});const ge=wN(Z,Y.draggable.measure,ue),Ce=wN(Z?Z.parentElement:null),Se=m.useRef({activatorEvent:null,active:null,activeNode:Z,collisionRect:null,collisions:null,droppableRects:H,draggableNodes:O,draggingNode:null,draggingNodeRect:null,droppableContainers:W,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),ke=W.getNodeFor((n=Se.current.over)==null?void 0:n.id),Be=z8({measure:Y.dragOverlay.measure}),ie=(r=Be.nodeRef.current)!=null?r:Z,be=T?(o=Be.rect)!=null?o:ge:null,ye=!!(Be.nodeRef.current&&Be.rect),Re=$8(ye?null:ge),Ue=qR(ie?cr(ie):null),rt=I8(T?ke??Z:null),Oe=F8(rt),ot=QR(y,{transform:{x:P.x-Re.x,y:P.y-Re.y,scaleX:1,scaleY:1},activatorEvent:K,active:U,activeNodeRect:ge,containerNodeRect:Ce,draggingNodeRect:be,over:Se.current.over,overlayNodeRect:Be.rect,scrollableAncestors:rt,scrollableAncestorRects:Oe,windowRect:Ue}),St=oe?Wl(oe,P):null,ht=M8(rt),it=kN(ht),ce=kN(ht,[ge]),me=Wl(ot,it),Ie=be?i8(be,ot):null,Pe=U&&Ie?h({active:U,collisionRect:Ie,droppableRects:H,droppableContainers:B,pointerCoordinates:St}):null,Ve=MR(Pe,"id"),[pt,_e]=m.useState(null),Qe=ye?ot:Wl(ot,ce),Je=s8(Qe,(i=pt==null?void 0:pt.rect)!=null?i:null,ge),ut=m.useRef(null),fe=m.useCallback((lt,mt)=>{let{sensor:vt,options:nt}=mt;if(D.current==null)return;const _t=O.get(D.current);if(!_t)return;const Bt=lt.nativeEvent,Ut=new vt({active:D.current,activeNode:_t,event:Bt,options:nt,context:Se,onAbort(Ct){if(!O.get(Ct))return;const{onDragAbort:Ge}=V.current,at={id:Ct};Ge==null||Ge(at),S({type:"onDragAbort",event:at})},onPending(Ct,je,Ge,at){if(!O.get(Ct))return;const{onDragPending:le}=V.current,Ne={id:Ct,constraint:je,initialCoordinates:Ge,offset:at};le==null||le(Ne),S({type:"onDragPending",event:Ne})},onStart(Ct){const je=D.current;if(je==null)return;const Ge=O.get(je);if(!Ge)return;const{onDragStart:at}=V.current,Mt={activatorEvent:Bt,active:{id:je,data:Ge.data,rect:z}};Xs.unstable_batchedUpdates(()=>{at==null||at(Mt),A(gi.Initializing),j({type:Dn.DragStart,initialCoordinates:Ct,active:je}),S({type:"onDragStart",event:Mt}),M(ut.current),$(Bt)})},onMove(Ct){j({type:Dn.DragMove,coordinates:Ct})},onEnd:Tn(Dn.DragEnd),onCancel:Tn(Dn.DragCancel)});ut.current=Ut;function Tn(Ct){return async function(){const{active:Ge,collisions:at,over:Mt,scrollAdjustedTranslate:le}=Se.current;let Ne=null;if(Ge&&le){const{cancelDrop:et}=V.current;Ne={activatorEvent:Bt,active:Ge,collisions:at,delta:le,over:Mt},Ct===Dn.DragEnd&&typeof et=="function"&&await Promise.resolve(et(Ne))&&(Ct=Dn.DragCancel)}D.current=null,Xs.unstable_batchedUpdates(()=>{j({type:Ct}),A(gi.Uninitialized),_e(null),M(null),$(null),ut.current=null;const et=Ct===Dn.DragEnd?"onDragEnd":"onDragCancel";if(Ne){const Rn=V.current[et];Rn==null||Rn(Ne),S({type:et,event:Ne})}})}}},[O]),q=m.useCallback((lt,mt)=>(vt,nt)=>{const _t=vt.nativeEvent,Bt=O.get(nt);if(D.current!==null||!Bt||_t.dndKit||_t.defaultPrevented)return;const Ut={active:Bt};lt(vt,mt.options,Ut)===!0&&(_t.dndKit={capturedBy:mt.sensor},D.current=nt,fe(vt,mt))},[O,fe]),ne=R8(p,q);L8(p),ws(()=>{ge&&C===gi.Initializing&&A(gi.Initialized)},[ge,C]),m.useEffect(()=>{const{onDragMove:lt}=V.current,{active:mt,activatorEvent:vt,collisions:nt,over:_t}=Se.current;if(!mt||!vt)return;const Bt={active:mt,activatorEvent:vt,collisions:nt,delta:{x:me.x,y:me.y},over:_t};Xs.unstable_batchedUpdates(()=>{lt==null||lt(Bt),S({type:"onDragMove",event:Bt})})},[me.x,me.y]),m.useEffect(()=>{const{active:lt,activatorEvent:mt,collisions:vt,droppableContainers:nt,scrollAdjustedTranslate:_t}=Se.current;if(!lt||D.current==null||!mt||!_t)return;const{onDragOver:Bt}=V.current,Ut=nt.get(Ve),Tn=Ut&&Ut.rect.current?{id:Ut.id,rect:Ut.rect.current,data:Ut.data,disabled:Ut.disabled}:null,Ct={active:lt,activatorEvent:mt,collisions:vt,delta:{x:_t.x,y:_t.y},over:Tn};Xs.unstable_batchedUpdates(()=>{_e(Tn),Bt==null||Bt(Ct),S({type:"onDragOver",event:Ct})})},[Ve]),ws(()=>{Se.current={activatorEvent:K,active:U,activeNode:Z,collisionRect:Ie,collisions:Pe,droppableRects:H,draggableNodes:O,draggingNode:ie,draggingNodeRect:be,droppableContainers:W,over:pt,scrollableAncestors:rt,scrollAdjustedTranslate:me},z.current={initial:be,translated:Ie}},[U,Z,Pe,Ie,O,ie,be,H,W,pt,rt,me]),S8({...te,delta:P,draggingRect:Ie,pointerCoordinates:St,scrollableAncestors:rt,scrollableAncestorRects:Oe});const xe=m.useMemo(()=>({active:U,activeNode:Z,activeNodeRect:ge,activatorEvent:K,collisions:Pe,containerNodeRect:Ce,dragOverlay:Be,draggableNodes:O,droppableContainers:W,droppableRects:H,over:pt,measureDroppableContainers:Q,scrollableAncestors:rt,scrollableAncestorRects:Oe,measuringConfiguration:Y,measuringScheduled:J,windowRect:Ue}),[U,Z,ge,K,Pe,Ce,Be,O,W,H,pt,Q,rt,Oe,Y,J,Ue]),qe=m.useMemo(()=>({activatorEvent:K,activators:ne,active:U,activeNodeRect:ge,ariaDescribedById:{draggable:L},dispatch:j,draggableNodes:O,over:pt,measureDroppableContainers:Q}),[K,ne,U,ge,j,L,O,pt,Q]);return Ot.createElement(DR.Provider,{value:N},Ot.createElement(Vd.Provider,{value:qe},Ot.createElement(XR.Provider,{value:xe},Ot.createElement(Rm.Provider,{value:Je},f)),Ot.createElement(K8,{disabled:(l==null?void 0:l.restoreFocus)===!1})),Ot.createElement(JB,{...l,hiddenTextDescribedById:L}));function Fe(){const lt=(F==null?void 0:F.autoScrollEnabled)===!1,mt=typeof u=="object"?u.enabled===!1:u===!1,vt=T&&!lt&&!mt;return typeof u=="object"?{...u,enabled:vt}:{enabled:vt}}}),Y8=m.createContext(null),SN="button",X8="Draggable";function Q8(e){let{id:t,data:n,disabled:r=!1,attributes:o}=e;const i=Hd(X8),{activators:a,activatorEvent:l,active:u,activeNodeRect:f,ariaDescribedById:p,draggableNodes:h,over:g}=m.useContext(Vd),{role:y=SN,roleDescription:k="draggable",tabIndex:v=0}=o??{},b=(u==null?void 0:u.id)===t,j=m.useContext(b?Rm:Y8),[S,N]=xh(),[C,A]=xh(),T=O8(a,t),_=dd(n);ws(()=>(h.set(t,{id:t,key:i,node:S,activatorNode:C,data:_}),()=>{const P=h.get(t);P&&P.key===i&&h.delete(t)}),[h,t]);const O=m.useMemo(()=>({role:y,tabIndex:v,"aria-disabled":r,"aria-pressed":b&&y===SN?!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:O,isDragging:b,listeners:r?void 0:T,node:S,over:g,setNodeRef:N,setActivatorNodeRef:A,transform:j}}function JR(){return m.useContext(XR)}const J8="Droppable",Z8={timeout:25};function e7(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:o}=e;const i=Hd(J8),{active:a,dispatch:l,over:u,measureDroppableContainers:f}=m.useContext(Vd),p=m.useRef({disabled:n}),h=m.useRef(!1),g=m.useRef(null),y=m.useRef(null),{disabled:k,updateMeasurementsFor:v,timeout:b}={...Z8,...o},j=dd(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=Tm({callback:S,disabled:k||!a}),C=m.useCallback((O,P)=>{N&&(P&&(N.unobserve(P),h.current=!1),O&&N.observe(O))},[N]),[A,T]=xh(C),_=dd(t);return m.useEffect(()=>{!N||!A.current||(N.disconnect(),h.current=!1,N.observe(A.current))},[A,N]),m.useEffect(()=>(l({type:Dn.RegisterDroppable,element:{id:r,key:i,disabled:n,node:A,rect:g,data:_}}),()=>l({type:Dn.UnregisterDroppable,key:i,id:r})),[r]),m.useEffect(()=>{n!==p.current.disabled&&(l({type:Dn.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:A,over:u,setNodeRef:T}}function t7(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 n7={x:0,y:0,scaleX:1,scaleY:1};function r7(e){let{children:t}=e;return Ot.createElement(Vd.Provider,{value:YR},Ot.createElement(Rm.Provider,{value:n7},t))}const s7={position:"fixed",touchAction:"none"},o7=e=>Nm(e)?"transform 250ms ease":void 0,i7=m.forwardRef((e,t)=>{let{as:n,activatorEvent:r,adjustScale:o,children:i,className:a,rect:l,style:u,transform:f,transition:p=o7}=e;if(!l)return null;const h=o?f:{...f,scaleX:1,scaleY:1},g={...s7,width:l.width,height:l.height,top:l.top,left:l.left,transform:js.Transform.toString(h),transformOrigin:o&&r?ZB(r,l):void 0,transition:typeof p=="function"?p(r):p,...u};return Ot.createElement(n,{className:a,style:g,ref:t},i)}),a7=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)}},l7=e=>{let{transform:{initial:t,final:n}}=e;return[{transform:js.Transform.toString(t)},{transform:js.Transform.toString(n)}]},c7={duration:250,easing:"ease",keyframes:l7,sideEffects:a7({styles:{active:{opacity:"0"}}})};function u7(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:o}=e;return km((i,a)=>{if(t===null)return;const l=n.get(i);if(!l)return;const u=l.node.current;if(!u)return;const f=GR(a);if(!f)return;const{transform:p}=cr(a).getComputedStyle(a),h=OR(p);if(!h)return;const g=typeof t=="function"?t:d7(t);return WR(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 d7(e){const{duration:t,easing:n,sideEffects:r,keyframes:o}={...c7,...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 CN=0;function f7(e){return m.useMemo(()=>{if(e!=null)return CN++,CN},[e])}const p7=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:A}=JR(),T=m.useContext(Rm),_=f7(h==null?void 0:h.id),O=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:A}),P=Aw(g),W=u7({config:r,draggableNodes:k,droppableContainers:v,measuringConfiguration:S}),I=P?b.setRef:void 0;return Ot.createElement(r7,null,Ot.createElement(t7,{animation:W},h&&_?Ot.createElement(i7,{key:_,id:h.id,ref:I,as:l,activatorEvent:p,adjustScale:t,className:u,transition:i,rect:P,style:{zIndex:f,...o},transform:O},n):null))});function Pc(e,t,n){const r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function h7(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 m7(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 g7(e){return typeof e=="boolean"?{draggable:e,droppable:e}:e}const Pw=e=>{let{rects:t,activeIndex:n,overIndex:r,index:o}=e;const i=Pc(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},_w=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=x7(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 x7(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 ZR="Sortable",eA=Ot.createContext({activeIndex:-1,containerId:ZR,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:Pw,disabled:{draggable:!1,droppable:!1}});function Pm(e){let{children:t,id:n,items:r,strategy:o=Pw,disabled:i=!1}=e;const{active:a,dragOverlay:l,droppableRects:u,over:f,measureDroppableContainers:p}=JR(),h=Hd(ZR,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=!m7(y,j.current),N=b!==-1&&v===-1||S,C=g7(i);ws(()=>{S&&k&&p(y)},[S,y,k,p]),m.useEffect(()=>{j.current=y},[y]);const A=m.useMemo(()=>({activeIndex:v,containerId:h,disabled:C,disableTransforms:N,items:y,overIndex:b,useDragOverlay:g,sortedRects:h7(y,u),strategy:o}),[v,h,C.draggable,C.droppable,N,y,b,u,g,o]);return Ot.createElement(eA.Provider,{value:A},t)}const y7=e=>{let{id:t,items:n,activeIndex:r,overIndex:o}=e;return Pc(n,r,o).indexOf(t)},b7=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},v7={duration:200,easing:"ease"},tA="transform",w7=js.Transition.toString({property:tA,duration:0,easing:"linear"}),j7={roleDescription:"sortable"};function k7(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=Tc(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 _m(e){let{animateLayoutChanges:t=b7,attributes:n,disabled:r,data:o,getNewIndex:i=y7,id:a,strategy:l,resizeObserverConfig:u,transition:f=v7}=e;const{items:p,containerId:h,activeIndex:g,disabled:y,disableTransforms:k,sortedRects:v,overIndex:b,useDragOverlay:j,strategy:S}=m.useContext(eA),N=N7(r,y),C=p.indexOf(a),A=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:_,node:O,isOver:P,setNodeRef:W}=e7({id:a,data:A,disabled:N.droppable,resizeObserverConfig:{updateMeasurementsFor:T,...u}}),{active:I,activatorEvent:z,activeNodeRect:U,attributes:D,setNodeRef:F,listeners:M,isDragging:K,over:$,setActivatorNodeRef:V,transform:L}=Q8({id:a,data:A,attributes:{...j7,...n},disabled:N.draggable}),B=FB(W,F),Y=!!I,H=Y&&!k&&hp(g)&&hp(b),Q=!j&&K,J=Q&&H?L:null,oe=H?J??(l??S)({rects:v,activeNodeRect:U,activeIndex:g,overIndex:b,index:C}):null,te=hp(g)&&hp(b)?i({id:a,items:p,activeIndex:g,overIndex:b}):C,ue=I==null?void 0:I.id,ge=m.useRef({activeId:ue,items:p,newIndex:te,containerId:h}),Ce=p!==ge.current.items,Se=t({active:I,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=k7({disabled:!Se,index:C,node:O,rect:_});return m.useEffect(()=>{Y&&ge.current.newIndex!==te&&(ge.current.newIndex=te),h!==ge.current.containerId&&(ge.current.containerId=h),p!==ge.current.items&&(ge.current.items=p)},[Y,te,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:I,activeIndex:g,attributes:D,data:A,rect:_,index:C,newIndex:te,items:p,isOver:P,isSorting:Y,isDragging:K,listeners:M,node:O,overIndex:b,over:$,setNodeRef:B,setActivatorNodeRef:V,setDroppableNodeRef:W,setDraggableNodeRef:F,transform:ke??oe,transition:Be()};function Be(){if(ke||Ce&&ge.current.newIndex===C)return w7;if(!(Q&&!Nm(z)||!f)&&(Y||Se))return js.Transition.toString({...f,property:tA})}}function N7(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 S7=[Rt.Down,Rt.Right,Rt.Up,Rt.Left],nA=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:o,droppableContainers:i,over:a,scrollableAncestors:l}}=t;if(S7.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 Rt.Down:r.top<g.top&&u.push(h);break;case Rt.Up:r.top>g.top&&u.push(h);break;case Rt.Left:r.left>g.left&&u.push(h);break;case Rt.Right:r.left<g.left&&u.push(h);break}});const f=t8({collisionRect:r,droppableRects:o,droppableContainers:u});let p=MR(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=Em(k).some((T,_)=>l[_]!==T),j=rA(h,g),S=C7(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:fd(C,N)}}}};function rA(e,t){return!jh(e)||!jh(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function C7(e,t){return!jh(e)||!jh(t)||!rA(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 Tt({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(H4,{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:ve("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 E7({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 jy={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."},ma={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 T7(e,t){return e.replace(/\{(\w+)\}/g,(n,r)=>String(t[r]??`{${r}}`))}function R7({hero:e,itemsById:t}){const n=xn();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:ma.emptyStateCleanTitle}),s.jsx("h2",{id:"overview-hero-title",className:"mt-2 text-2xl font-semibold tracking-tight text-foreground",children:jy.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:ma.emptyStateCleanCTA})})]});const r=e.itemId?t[e.itemId]:void 0,o=(r==null?void 0:r.assignmentTitle)??"",i=jy[e.copyKey]??jy[e.kind],a=T7(i,{total:e.total,title:o}),l=r?A7(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 A7(e,t){return e.projectSlug?`${t}${e.href}`:e.href}const ky=["title","status","priority","assignee","dependencies","created","updated"],hd=24,sA=60;function P7(e){if(!e||typeof e!="object"||Array.isArray(e))return!1;const t=e;return Number.isInteger(t.w)&&t.w>=1&&t.w<=hd&&Number.isInteger(t.h)&&t.h>=1&&t.h<=sA}const _7={status:"all",priority:"all",assignee:"all",project:"all",activity:"all"},EN="2026-05-21T00:00:00Z";function Ny(e,t,n){return{id:e,name:t,workspace:null,entityType:"assignment",config:{viewMode:"list",filters:{..._7,...n},sortField:"updated",sortDirection:"desc",listSectionVisibility:{collapsed:[]},kanbanColumnVisibility:{hidden:[]},tableColumnVisibility:{hidden:[]}},createdAt:EN,updatedAt:EN}}const bi={version:1,views:[Ny("default-recently-updated","Recently updated",{}),Ny("default-high-priority","High priority",{priority:"high"}),Ny("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 oA(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&&Ku(a)===null;return r&&(!o||o==="all")&&!i&&!l}function iA(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?oA(e.config,t.slug):!1}}const aA=`syntaur.savedViews.cache.v${bi.version}`;let Kl=D7(),ta=null,Dw=null;const Ub=new Set,kh=new Set;let lA=0;function cA(){return++lA}function Hb(e){return e===lA}function D7(){if(typeof window>"u"||!window.localStorage)return null;try{const e=window.localStorage.getItem(aA);if(!e)return null;const t=JSON.parse(e);return t.version!==bi.version?null:t}catch{return null}}function $7(e){if(!(typeof window>"u"||!window.localStorage))try{window.localStorage.setItem(aA,JSON.stringify(e))}catch{}}function uA(e){Kl=e,Dw=null,$7(e);for(const t of Ub)t(e);for(const t of kh)t(null)}function I7(e){Dw=e;for(const t of kh)t(e)}function dA(e){if(!e||typeof e!="object")return bi;const t=e;return t.version!==bi.version||!Array.isArray(t.views)||!t.dashboard?bi:t}function TN(){if(ta)return ta;const e=cA();return ta=fetch("/api/saved-views").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{const n=dA(t);return Hb(e)&&uA(n),ta=null,Kl??n}).catch(t=>{const n=t instanceof Error?t:new Error(String(t));return Hb(e)&&I7(n),ta=null,Kl??bi}),ta}function $w(){const[e,t]=m.useState(()=>Kl??bi),[n,r]=m.useState(()=>Kl===null),[o,i]=m.useState(!1),[a,l]=m.useState(()=>Dw);return m.useEffect(()=>{let f=!1;Kl===null&&r(!0),TN().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 Ub.add(p),kh.add(h),()=>{f=!0,Ub.delete(p),kh.delete(h)}},[]),{file:e,loading:n,ready:o,error:a,refetch:()=>{ta=null,r(!0),l(null),i(!1),TN()}}}function Wd(){const{file:e,loading:t}=$w();return{views:e.views,loading:t}}function fA(){const{file:e,loading:t}=$w();return{layout:e.dashboard,loading:t}}function ki(e){const{file:t,loading:n,ready:r,error:o,refetch:i}=$w();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 Dm(e,t,n){const r=cA(),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=dA(await o.json());return Hb(r)&&uA(i),i}function rc(e){return Dm("POST","/api/saved-views",e)}function Nh(e,t){return Dm("PATCH",`/api/saved-views/${encodeURIComponent(e)}`,t)}function M7(e){return Dm("DELETE",`/api/saved-views/${encodeURIComponent(e)}`)}function Vb(e){return Dm("PUT","/api/dashboard",{slots:e})}const L7=["top","right","bottom","left"],Ni=Math.min,Mr=Math.max,Sh=Math.round,gp=Math.floor,to=e=>({x:e,y:e}),O7={left:"right",right:"left",bottom:"top",top:"bottom"};function Wb(e,t,n){return Mr(e,Ni(t,n))}function _o(e,t){return typeof e=="function"?e(t):e}function Do(e){return e.split("-")[0]}function _c(e){return e.split("-")[1]}function Iw(e){return e==="x"?"y":"x"}function Mw(e){return e==="y"?"height":"width"}function Qs(e){const t=e[0];return t==="t"||t==="b"?"y":"x"}function Lw(e){return Iw(Qs(e))}function F7(e,t,n){n===void 0&&(n=!1);const r=_c(e),o=Lw(e),i=Mw(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 z7(e){const t=Ch(e);return[Kb(e),t,Kb(t)]}function Kb(e){return e.includes("start")?e.replace("start","end"):e.replace("end","start")}const RN=["left","right"],AN=["right","left"],B7=["top","bottom"],U7=["bottom","top"];function H7(e,t,n){switch(e){case"top":case"bottom":return n?t?AN:RN:t?RN:AN;case"left":case"right":return t?B7:U7;default:return[]}}function V7(e,t,n,r){const o=_c(e);let i=H7(Do(e),n==="start",r);return o&&(i=i.map(a=>a+"-"+o),t&&(i=i.concat(i.map(Kb)))),i}function Ch(e){const t=Do(e);return O7[t]+e.slice(t.length)}function W7(e){return{top:0,right:0,bottom:0,left:0,...e}}function pA(e){return typeof e!="number"?W7(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 PN(e,t,n){let{reference:r,floating:o}=e;const i=Qs(t),a=Lw(t),l=Mw(a),u=Do(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(_c(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 K7(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}=_o(t,e),k=pA(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},A=Eh(i.convertOffsetParentRelativeRectToViewportRelativeRect?await i.convertOffsetParentRelativeRectToViewportRelativeRect({elements:l,rect:S,offsetParent:N,strategy:u}):S);return{top:(j.top-A.top+k.top)/C.y,bottom:(A.bottom-j.bottom+k.bottom)/C.y,left:(j.left-A.left+k.left)/C.x,right:(A.right-j.right+k.right)/C.x}}const q7=50,G7=async(e,t,n)=>{const{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:a}=n,l=a.detectOverflow?a:{...a,detectOverflow:K7},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}=PN(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:A,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],...A},T&&y<q7&&(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}=PN(f,g,u)),v=-1)}return{x:p,y:h,placement:g,strategy:o,middlewareData:k}},Y7=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}=_o(e,t)||{};if(f==null)return{};const h=pA(p),g={x:n,y:r},y=Lw(o),k=Mw(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],A=g[y]-i.reference[y],T=await(a.getOffsetParent==null?void 0:a.getOffsetParent(f));let _=T?T[N]:0;(!_||!await(a.isElement==null?void 0:a.isElement(T)))&&(_=l.floating[N]||i.floating[k]);const O=C/2-A/2,P=_/2-v[k]/2-1,W=Ni(h[j],P),I=Ni(h[S],P),z=W,U=_-v[k]-I,D=_/2-v[k]/2+O,F=Wb(z,D,U),M=!u.arrow&&_c(o)!=null&&D!==F&&i.reference[k]/2-(D<z?W:I)-v[k]/2<0,K=M?D<z?D-z:D-U:0;return{[y]:g[y]+K,data:{[y]:F,centerOffset:D-F-K,...M&&{alignmentOffset:K}},reset:M}}}),X7=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}=_o(e,t);if((n=i.arrow)!=null&&n.alignmentOffset)return{};const j=Do(o),S=Qs(l),N=Do(l)===l,C=await(u.isRTL==null?void 0:u.isRTL(f.floating)),A=g||(N||!v?[Ch(l)]:z7(l)),T=k!=="none";!g&&T&&A.push(...V7(l,v,k,C));const _=[l,...A],O=await u.detectOverflow(t,b),P=[];let W=((r=i.flip)==null?void 0:r.overflows)||[];if(p&&P.push(O[j]),h){const D=F7(o,a,C);P.push(O[D[0]],O[D[1]])}if(W=[...W,{placement:o,overflows:P}],!P.every(D=>D<=0)){var I,z;const D=(((I=i.flip)==null?void 0:I.index)||0)+1,F=_[D];if(F&&(!(h==="alignment"?S!==Qs(F):!1)||W.every($=>Qs($.placement)===S?$.overflows[0]>0:!0)))return{data:{index:D,overflows:W},reset:{placement:F}};let M=(z=W.filter(K=>K.overflows[0]<=0).sort((K,$)=>K.overflows[1]-$.overflows[1])[0])==null?void 0:z.placement;if(!M)switch(y){case"bestFit":{var U;const K=(U=W.filter($=>{if(T){const V=Qs($.placement);return V===S||V==="y"}return!0}).map($=>[$.placement,$.overflows.filter(V=>V>0).reduce((V,L)=>V+L,0)]).sort(($,V)=>$[1]-V[1])[0])==null?void 0:U[0];K&&(M=K);break}case"initialPlacement":M=l;break}if(o!==M)return{reset:{placement:M}}}return{}}}};function _N(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function DN(e){return L7.some(t=>e[t]>=0)}const Q7=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n,platform:r}=t,{strategy:o="referenceHidden",...i}=_o(e,t);switch(o){case"referenceHidden":{const a=await r.detectOverflow(t,{...i,elementContext:"reference"}),l=_N(a,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:DN(l)}}}case"escaped":{const a=await r.detectOverflow(t,{...i,altBoundary:!0}),l=_N(a,n.floating);return{data:{escapedOffsets:l,escaped:DN(l)}}}default:return{}}}}},hA=new Set(["left","top"]);async function J7(e,t){const{placement:n,platform:r,elements:o}=e,i=await(r.isRTL==null?void 0:r.isRTL(o.floating)),a=Do(n),l=_c(n),u=Qs(n)==="y",f=hA.has(a)?-1:1,p=i&&u?-1:1,h=_o(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 Z7=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 J7(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}}}}},eU=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}=_o(e,t),p={x:n,y:r},h=await i.detectOverflow(t,f),g=Qs(Do(o)),y=Iw(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=Wb(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=Wb(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}}}}}},tU=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}=_o(e,t),p={x:n,y:r},h=Qs(o),g=Iw(h);let y=p[g],k=p[h];const v=_o(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,A=i.reference[g]+i.reference[N]-b.mainAxis;y<C?y=C:y>A&&(y=A)}if(f){var j,S;const N=g==="y"?"width":"height",C=hA.has(Do(o)),A=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<A?k=A:k>T&&(k=T)}return{[g]:y,[h]:k}}}},nU=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}=_o(e,t),p=await a.detectOverflow(t,f),h=Do(o),g=_c(o),y=Qs(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=Ni(v-p[b],S),A=Ni(k-p[j],N),T=!t.middlewareData.shift;let _=C,O=A;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&(O=N),(r=t.middlewareData.shift)!=null&&r.enabled.y&&(_=S),T&&!g){const W=Mr(p.left,0),I=Mr(p.right,0),z=Mr(p.top,0),U=Mr(p.bottom,0);y?O=k-2*(W!==0||I!==0?W+I:Mr(p.left,p.right)):_=v-2*(z!==0||U!==0?z+U:Mr(p.top,p.bottom))}await u({...t,availableWidth:O,availableHeight:_});const P=await a.getDimensions(l.floating);return k!==P.width||v!==P.height?{reset:{rects:!0}}:{}}}};function $m(){return typeof window<"u"}function Dc(e){return mA(e)?(e.nodeName||"").toLowerCase():"#document"}function Br(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function io(e){var t;return(t=(mA(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function mA(e){return $m()?e instanceof Node||e instanceof Br(e).Node:!1}function Ns(e){return $m()?e instanceof Element||e instanceof Br(e).Element:!1}function Mo(e){return $m()?e instanceof HTMLElement||e instanceof Br(e).HTMLElement:!1}function $N(e){return!$m()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof Br(e).ShadowRoot}function Kd(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 rU(e){return/^(table|td|th)$/.test(Dc(e))}function Im(e){try{if(e.matches(":popover-open"))return!0}catch{}try{return e.matches(":modal")}catch{return!1}}const sU=/transform|translate|scale|rotate|perspective|filter/,oU=/paint|layout|strict|content/,Qi=e=>!!e&&e!=="none";let Sy;function Ow(e){const t=Ns(e)?Ss(e):e;return Qi(t.transform)||Qi(t.translate)||Qi(t.scale)||Qi(t.rotate)||Qi(t.perspective)||!Fw()&&(Qi(t.backdropFilter)||Qi(t.filter))||sU.test(t.willChange||"")||oU.test(t.contain||"")}function iU(e){let t=Si(e);for(;Mo(t)&&!sc(t);){if(Ow(t))return t;if(Im(t))return null;t=Si(t)}return null}function Fw(){return Sy==null&&(Sy=typeof CSS<"u"&&CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")),Sy}function sc(e){return/^(html|body|#document)$/.test(Dc(e))}function Ss(e){return Br(e).getComputedStyle(e)}function Mm(e){return Ns(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function Si(e){if(Dc(e)==="html")return e;const t=e.assignedSlot||e.parentNode||$N(e)&&e.host||io(e);return $N(t)?t.host:t}function gA(e){const t=Si(e);return sc(t)?e.ownerDocument?e.ownerDocument.body:e.body:Mo(t)&&Kd(t)?t:gA(t)}function md(e,t,n){var r;t===void 0&&(t=[]),n===void 0&&(n=!0);const o=gA(e),i=o===((r=e.ownerDocument)==null?void 0:r.body),a=Br(o);if(i){const l=qb(a);return t.concat(a,a.visualViewport||[],Kd(o)?o:[],l&&n?md(l):[])}else return t.concat(o,md(o,[],n))}function qb(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function xA(e){const t=Ss(e);let n=parseFloat(t.width)||0,r=parseFloat(t.height)||0;const o=Mo(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 zw(e){return Ns(e)?e:e.contextElement}function ql(e){const t=zw(e);if(!Mo(t))return to(1);const n=t.getBoundingClientRect(),{width:r,height:o,$:i}=xA(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 aU=to(0);function yA(e){const t=Br(e);return!Fw()||!t.visualViewport?aU:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function lU(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==Br(e)?!1:t}function ka(e,t,n,r){t===void 0&&(t=!1),n===void 0&&(n=!1);const o=e.getBoundingClientRect(),i=zw(e);let a=to(1);t&&(r?Ns(r)&&(a=ql(r)):a=ql(e));const l=lU(i,n,r)?yA(i):to(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=Br(i),y=r&&Ns(r)?Br(r):r;let k=g,v=qb(k);for(;v&&r&&y!==k;){const b=ql(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=Br(v),v=qb(k)}}return Eh({width:p,height:h,x:u,y:f})}function Lm(e,t){const n=Mm(e).scrollLeft;return t?t.left+n:ka(io(e)).left+n}function bA(e,t){const n=e.getBoundingClientRect(),r=n.left+t.scrollLeft-Lm(e,n),o=n.top+t.scrollTop;return{x:r,y:o}}function cU(e){let{elements:t,rect:n,offsetParent:r,strategy:o}=e;const i=o==="fixed",a=io(r),l=t?Im(t.floating):!1;if(r===a||l&&i)return n;let u={scrollLeft:0,scrollTop:0},f=to(1);const p=to(0),h=Mo(r);if((h||!h&&!i)&&((Dc(r)!=="body"||Kd(a))&&(u=Mm(r)),h)){const y=ka(r);f=ql(r),p.x=y.x+r.clientLeft,p.y=y.y+r.clientTop}const g=a&&!h&&!i?bA(a,u):to(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 uU(e){return Array.from(e.getClientRects())}function dU(e){const t=io(e),n=Mm(e),r=e.ownerDocument.body,o=Mr(t.scrollWidth,t.clientWidth,r.scrollWidth,r.clientWidth),i=Mr(t.scrollHeight,t.clientHeight,r.scrollHeight,r.clientHeight);let a=-n.scrollLeft+Lm(e);const l=-n.scrollTop;return Ss(r).direction==="rtl"&&(a+=Mr(t.clientWidth,r.clientWidth)-o),{width:o,height:i,x:a,y:l}}const IN=25;function fU(e,t){const n=Br(e),r=io(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=Fw();(!p||p&&t==="fixed")&&(l=o.offsetLeft,u=o.offsetTop)}const f=Lm(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<=IN&&(i-=k)}else f<=IN&&(i+=f);return{width:i,height:a,x:l,y:u}}function pU(e,t){const n=ka(e,!0,t==="fixed"),r=n.top+e.clientTop,o=n.left+e.clientLeft,i=Mo(e)?ql(e):to(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 MN(e,t,n){let r;if(t==="viewport")r=fU(e,n);else if(t==="document")r=dU(io(e));else if(Ns(t))r=pU(t,n);else{const o=yA(e);r={x:t.x-o.x,y:t.y-o.y,width:t.width,height:t.height}}return Eh(r)}function vA(e,t){const n=Si(e);return n===t||!Ns(n)||sc(n)?!1:Ss(n).position==="fixed"||vA(n,t)}function hU(e,t){const n=t.get(e);if(n)return n;let r=md(e,[],!1).filter(l=>Ns(l)&&Dc(l)!=="body"),o=null;const i=Ss(e).position==="fixed";let a=i?Si(e):e;for(;Ns(a)&&!sc(a);){const l=Ss(a),u=Ow(a);!u&&l.position==="fixed"&&(o=null),(i?!u&&!o:!u&&l.position==="static"&&!!o&&(o.position==="absolute"||o.position==="fixed")||Kd(a)&&!u&&vA(e,a))?r=r.filter(p=>p!==a):o=l,a=Si(a)}return t.set(e,r),r}function mU(e){let{element:t,boundary:n,rootBoundary:r,strategy:o}=e;const a=[...n==="clippingAncestors"?Im(t)?[]:hU(t,this._c):[].concat(n),r],l=MN(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=MN(t,a[g],o);u=Mr(y.top,u),f=Ni(y.right,f),p=Ni(y.bottom,p),h=Mr(y.left,h)}return{width:f-h,height:p-u,x:h,y:u}}function gU(e){const{width:t,height:n}=xA(e);return{width:t,height:n}}function xU(e,t,n){const r=Mo(t),o=io(t),i=n==="fixed",a=ka(e,!0,i,t);let l={scrollLeft:0,scrollTop:0};const u=to(0);function f(){u.x=Lm(o)}if(r||!r&&!i)if((Dc(t)!=="body"||Kd(o))&&(l=Mm(t)),r){const y=ka(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?bA(o,l):to(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 Cy(e){return Ss(e).position==="static"}function LN(e,t){if(!Mo(e)||Ss(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return io(e)===n&&(n=n.ownerDocument.body),n}function wA(e,t){const n=Br(e);if(Im(e))return n;if(!Mo(e)){let o=Si(e);for(;o&&!sc(o);){if(Ns(o)&&!Cy(o))return o;o=Si(o)}return n}let r=LN(e,t);for(;r&&rU(r)&&Cy(r);)r=LN(r,t);return r&&sc(r)&&Cy(r)&&!Ow(r)?n:r||iU(e)||n}const yU=async function(e){const t=this.getOffsetParent||wA,n=this.getDimensions,r=await n(e.floating);return{reference:xU(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:r.width,height:r.height}}};function bU(e){return Ss(e).direction==="rtl"}const vU={convertOffsetParentRelativeRectToViewportRelativeRect:cU,getDocumentElement:io,getClippingRect:mU,getOffsetParent:wA,getElementRects:yU,getClientRects:uU,getDimensions:gU,getScale:ql,isElement:Ns,isRTL:bU};function jA(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function wU(e,t){let n=null,r;const o=io(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:Mr(0,Ni(1,u))||1};let C=!0;function A(T){const _=T[0].intersectionRatio;if(_!==u){if(!C)return a();_?a(!1,_):r=setTimeout(()=>{a(!1,1e-7)},1e3)}_===1&&!jA(f,e.getBoundingClientRect())&&a(),C=!1}try{n=new IntersectionObserver(A,{...N,root:o.ownerDocument})}catch{n=new IntersectionObserver(A,N)}n.observe(e)}return a(!0),i}function jU(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=zw(e),p=o||i?[...f?md(f):[],...t?md(t):[]]:[];p.forEach(j=>{o&&j.addEventListener("scroll",n,{passive:!0}),i&&j.addEventListener("resize",n)});const h=f&&l?wU(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?ka(e):null;u&&b();function b(){const j=ka(e);v&&!jA(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 kU=Z7,NU=eU,SU=X7,CU=nU,EU=Q7,ON=Y7,TU=tU,RU=(e,t,n)=>{const r=new Map,o={platform:vU,...n},i={...o.platform,_c:r};return G7(e,t,{...o,platform:i})};var AU=typeof document<"u",PU=function(){},Yp=AU?m.useLayoutEffect:PU;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 kA(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function FN(e,t){const n=kA(e);return Math.round(t*n)/n}function Ey(e){const t=m.useRef(e);return Yp(()=>{t.current=e}),t}function _U(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($=>{$!==T.current&&(T.current=$,v($))},[]),N=m.useCallback($=>{$!==_.current&&(_.current=$,j($))},[]),C=i||k,A=a||b,T=m.useRef(null),_=m.useRef(null),O=m.useRef(p),P=u!=null,W=Ey(u),I=Ey(o),z=Ey(f),U=m.useCallback(()=>{if(!T.current||!_.current)return;const $={placement:t,strategy:n,middleware:g};I.current&&($.platform=I.current),RU(T.current,_.current,$).then(V=>{const L={...V,isPositioned:z.current!==!1};D.current&&!Th(O.current,L)&&(O.current=L,Xs.flushSync(()=>{h(L)}))})},[g,t,n,I,z]);Yp(()=>{f===!1&&O.current.isPositioned&&(O.current.isPositioned=!1,h($=>({...$,isPositioned:!1})))},[f]);const D=m.useRef(!1);Yp(()=>(D.current=!0,()=>{D.current=!1}),[]),Yp(()=>{if(C&&(T.current=C),A&&(_.current=A),C&&A){if(W.current)return W.current(C,A,U);U()}},[C,A,U,W,P]);const F=m.useMemo(()=>({reference:T,floating:_,setReference:S,setFloating:N}),[S,N]),M=m.useMemo(()=>({reference:C,floating:A}),[C,A]),K=m.useMemo(()=>{const $={position:n,left:0,top:0};if(!M.floating)return $;const V=FN(M.floating,p.x),L=FN(M.floating,p.y);return l?{...$,transform:"translate("+V+"px, "+L+"px)",...kA(M.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:V,top:L}},[n,l,M.floating,p.x,p.y]);return m.useMemo(()=>({...p,update:U,refs:F,elements:M,floatingStyles:K}),[p,U,F,M,K])}const DU=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?ON({element:r.current,padding:o}).fn(n):{}:r?ON({element:r,padding:o}).fn(n):{}}}},$U=(e,t)=>{const n=kU(e);return{name:n.name,fn:n.fn,options:[e,t]}},IU=(e,t)=>{const n=NU(e);return{name:n.name,fn:n.fn,options:[e,t]}},MU=(e,t)=>({fn:TU(e).fn,options:[e,t]}),LU=(e,t)=>{const n=SU(e);return{name:n.name,fn:n.fn,options:[e,t]}},OU=(e,t)=>{const n=CU(e);return{name:n.name,fn:n.fn,options:[e,t]}},FU=(e,t)=>{const n=EU(e);return{name:n.name,fn:n.fn,options:[e,t]}},zU=(e,t)=>{const n=DU(e);return{name:n.name,fn:n.fn,options:[e,t]}};var BU="Arrow",NA=m.forwardRef((e,t)=>{const{children:n,width:r=10,height:o=5,...i}=e;return s.jsx(Nn.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"})})});NA.displayName=BU;var UU=NA;function HU(e){const[t,n]=m.useState(void 0);return wi(()=>{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 Bw="Popper",[SA,CA]=Aa(Bw),[VU,EA]=SA(Bw),TA=e=>{const{__scopePopper:t,children:n}=e,[r,o]=m.useState(null);return s.jsx(VU,{scope:t,anchor:r,onAnchorChange:o,children:n})};TA.displayName=Bw;var RA="PopperAnchor",AA=m.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:r,...o}=e,i=EA(RA,n),a=m.useRef(null),l=nr(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(Nn.div,{...o,ref:l})});AA.displayName=RA;var Uw="PopperContent",[WU,KU]=SA(Uw),PA=m.forwardRef((e,t)=>{var oe,te,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=EA(Uw,n),[j,S]=m.useState(null),N=nr(t,ke=>S(ke)),[C,A]=m.useState(null),T=HU(C),_=(T==null?void 0:T.width)??0,O=(T==null?void 0:T.height)??0,P=r+(i!=="center"?"-"+i:""),W=typeof p=="number"?p:{top:0,right:0,bottom:0,left:0,...p},I=Array.isArray(f)?f:[f],z=I.length>0,U={padding:W,boundary:I.filter(GU),altBoundary:z},{refs:D,floatingStyles:F,placement:M,isPositioned:K,middlewareData:$}=_U({strategy:"fixed",placement:P,whileElementsMounted:(...ke)=>jU(...ke,{animationFrame:y==="always"}),elements:{reference:b.anchor},middleware:[$U({mainAxis:o+O,alignmentAxis:a}),u&&IU({mainAxis:!0,crossAxis:!1,limiter:h==="partial"?MU():void 0,...U}),u&&LU({...U}),OU({...U,apply:({elements:ke,rects:Be,availableWidth:ie,availableHeight:be})=>{const{width:ye,height:Re}=Be.reference,Ue=ke.floating.style;Ue.setProperty("--radix-popper-available-width",`${ie}px`),Ue.setProperty("--radix-popper-available-height",`${be}px`),Ue.setProperty("--radix-popper-anchor-width",`${ye}px`),Ue.setProperty("--radix-popper-anchor-height",`${Re}px`)}}),C&&zU({element:C,padding:l}),YU({arrowWidth:_,arrowHeight:O}),g&&FU({strategy:"referenceHidden",...U})]}),[V,L]=$A(M),B=wa(k);wi(()=>{K&&(B==null||B())},[K,B]);const Y=(oe=$.arrow)==null?void 0:oe.x,H=(te=$.arrow)==null?void 0:te.y,Q=((ue=$.arrow)==null?void 0:ue.centerOffset)!==0,[J,Z]=m.useState();return wi(()=>{j&&Z(window.getComputedStyle(j).zIndex)},[j]),s.jsx("div",{ref:D.setFloating,"data-radix-popper-content-wrapper":"",style:{...F,transform:K?F.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:J,"--radix-popper-transform-origin":[(ge=$.transformOrigin)==null?void 0:ge.x,(Ce=$.transformOrigin)==null?void 0:Ce.y].join(" "),...((Se=$.hide)==null?void 0:Se.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:s.jsx(WU,{scope:n,placedSide:V,onArrowChange:A,arrowX:Y,arrowY:H,shouldHideArrow:Q,children:s.jsx(Nn.div,{"data-side":V,"data-align":L,...v,ref:N,style:{...v.style,animation:K?void 0:"none"}})})})});PA.displayName=Uw;var _A="PopperArrow",qU={top:"bottom",right:"left",bottom:"top",left:"right"},DA=m.forwardRef(function(t,n){const{__scopePopper:r,...o}=t,i=KU(_A,r),a=qU[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(UU,{...o,ref:n,style:{...o.style,display:"block"}})})});DA.displayName=_A;function GU(e){return e!==null}var YU=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]=$A(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 $A(e){const[t,n="center"]=e.split("-");return[t,n]}var XU=TA,QU=AA,JU=PA,ZU=DA,eH=Symbol("radix.slottable");function tH(e){const t=({children:n})=>s.jsx(s.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=eH,t}var nH=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"}),rH="VisuallyHidden",IA=m.forwardRef((e,t)=>s.jsx(Nn.span,{...e,ref:t,style:{...nH,...e.style}}));IA.displayName=rH;var sH=IA,[Om]=Aa("Tooltip",[CA]),Fm=CA(),MA="TooltipProvider",oH=700,Gb="tooltip.open",[iH,Hw]=Om(MA),LA=e=>{const{__scopeTooltip:t,delayDuration:n=oH,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(iH,{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})};LA.displayName=MA;var gd="Tooltip",[aH,qd]=Om(gd),OA=e=>{const{__scopeTooltip:t,children:n,open:r,defaultOpen:o,onOpenChange:i,disableHoverableContent:a,delayDuration:l}=e,u=Hw(gd,e.__scopeTooltip),f=Fm(t),[p,h]=m.useState(null),g=Bl(),y=m.useRef(0),k=a??u.disableHoverableContent,v=l??u.delayDuration,b=m.useRef(!1),[j,S]=bm({prop:r,defaultProp:o??!1,onChange:_=>{_?(u.onOpen(),document.dispatchEvent(new CustomEvent(Gb))):u.onClose(),i==null||i(_)},caller:gd}),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]),A=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(XU,{...f,children:s.jsx(aH,{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?A():(window.clearTimeout(y.current),y.current=0)},[A,k]),onOpen:C,onClose:A,disableHoverableContent:k,children:n})})};OA.displayName=gd;var Yb="TooltipTrigger",FA=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=qd(Yb,n),i=Hw(Yb,n),a=Fm(n),l=m.useRef(null),u=nr(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(QU,{asChild:!0,...a,children:s.jsx(Nn.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)})})});FA.displayName=Yb;var Vw="TooltipPortal",[lH,cH]=Om(Vw,{forceMount:void 0}),zA=e=>{const{__scopeTooltip:t,forceMount:n,children:r,container:o}=e,i=qd(Vw,t);return s.jsx(lH,{scope:t,forceMount:n,children:s.jsx(Pa,{present:n||i.open,children:s.jsx(cw,{asChild:!0,container:o,children:r})})})};zA.displayName=Vw;var oc="TooltipContent",BA=m.forwardRef((e,t)=>{const n=cH(oc,e.__scopeTooltip),{forceMount:r=n.forceMount,side:o="top",...i}=e,a=qd(oc,e.__scopeTooltip);return s.jsx(Pa,{present:r||a.open,children:a.disableHoverableContent?s.jsx(UA,{side:o,...i,ref:t}):s.jsx(uH,{side:o,...i,ref:t})})}),uH=m.forwardRef((e,t)=>{const n=qd(oc,e.__scopeTooltip),r=Hw(oc,e.__scopeTooltip),o=m.useRef(null),i=nr(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=mH(j,b.getBoundingClientRect()),N=gH(j,S),C=xH(v.getBoundingClientRect()),A=bH([...N,...C]);l(A),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=!yH(j,a);S?g():N&&(g(),f())};return document.addEventListener("pointermove",k),()=>document.removeEventListener("pointermove",k)}},[u,p,a,f,g]),s.jsx(UA,{...e,ref:i})}),[dH,fH]=Om(gd,{isInside:!1}),pH=tH("TooltipContent"),UA=m.forwardRef((e,t)=>{const{__scopeTooltip:n,children:r,"aria-label":o,onEscapeKeyDown:i,onPointerDownOutside:a,...l}=e,u=qd(oc,n),f=Fm(n),{onClose:p}=u;return m.useEffect(()=>(document.addEventListener(Gb,p),()=>document.removeEventListener(Gb,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(lw,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:i,onPointerDownOutside:a,onFocusOutside:h=>h.preventDefault(),onDismiss:p,children:s.jsxs(JU,{"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(pH,{children:r}),s.jsx(dH,{scope:n,isInside:!0,children:s.jsx(sH,{id:u.contentId,role:"tooltip",children:o||r})})]})})});BA.displayName=oc;var HA="TooltipArrow",hH=m.forwardRef((e,t)=>{const{__scopeTooltip:n,...r}=e,o=Fm(n);return fH(HA,n).isInside?null:s.jsx(ZU,{...o,...r,ref:t})});hH.displayName=HA;function mH(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 gH(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 xH(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 yH(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 bH(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),vH(t)}function vH(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 wH=LA,jH=OA,kH=FA,NH=zA,VA=BA;const ga=wH,Lr=jH,Or=kH,br=m.forwardRef(({className:e,sideOffset:t=4,...n},r)=>s.jsx(NH,{children:s.jsx(VA,{ref:r,sideOffset:t,className:ve("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})}));br.displayName=VA.displayName;function Ww({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=ve("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(Nr,{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(Lr,{children:[s.jsx(Or,{asChild:!0,children:k}),s.jsx(br,{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(w4,{className:"h-4 w-4"})}),n&&s.jsx("div",{className:ve("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(ga,{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:ve("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(tr,{className:"h-4 w-4 shrink-0 text-muted-foreground","aria-hidden":"true"}):s.jsx(Vv,{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 zN(e){const t=Date.parse(e);return Number.isNaN(t)?!1:Date.now()-t>10080*60*1e3}const SH={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 CH(e){const[t,n,r]=e.split("-").map(Number);return new Date(t,n-1,r,0,0,0,0).getTime()}function EH(e){const[t,n,r]=e.split("-").map(Number);return new Date(t,n-1,r,23,59,59,999).getTime()}function TH(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=SH[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<CH(i)||a&&o>EH(a))}function RH(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"&&!zN(e.updated)||g==="fresh"&&zN(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(!TH(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 xd(e){return e.projectSlug===null?`/assignments/${e.id}`:`${e.projectWorkspace?`/w/${e.projectWorkspace}`:""}/projects/${e.projectSlug}/assignments/${e.slug}`}const BN={critical:0,high:1,medium:2,low:3};function xp(e){return Date.parse(e??"")||0}function Gd(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=(BN[o.priority]??99)-(BN[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 AH(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 WA(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=AH(l);return t.predicate(u,a)})}const zm={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 Bm(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 PH(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 Xb(e){const t=[],n=new Map;for(const r of Object.keys(zm))n.set(r,"built-in");for(const r of Object.keys(mm))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=Bm(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 _H(e){const t=new Set([...Object.keys(zm),...Object.keys(mm)]),n=[];for(const r of e){const o=Bm(r).registryKeys;if(!o.some(i=>t.has(i))){for(const i of o)t.add(i);n.push(r)}}return n}function KA(e,t){const n=Bm(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 Kw(e){const t={...zm};for(const n of e)KA(t,n);return t}function qA(e){const t={...mm};for(const n of e)KA(t,n);return t}function GA(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=Bm(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 ic='a, button, input, select, textarea, [contenteditable="true"], [role="button"], [data-no-drag]';function Um({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(M=>!b.has(M.id)),[e,b]),S=m.useMemo(()=>e.filter(M=>b.has(M.id)),[e,b]),[N,C]=m.useState(null),[A,T]=m.useState(null),_=m.useRef(null),O=m.useMemo(()=>new Map(t.map(M=>[n(M),M])),[n,t]),P=m.useMemo(()=>j.map(M=>({column:M,items:t.filter(K=>r(K)===M.id)})),[j,r,t]),W=N?O.get(N)??null:null;function I(M){if(!W)return{allowed:!1};const K=r(W);return(i==null?void 0:i({item:W,fromColumnId:K,toColumnId:M}))??{allowed:!0}}function z(){C(null),T(null)}function U(M,K,$){if(y)return;const V=(l==null?void 0:l(K))??null;!a&&!V||(M.dataTransfer.effectAllowed="move",M.dataTransfer.setData("text/plain",$),V&&M.dataTransfer.setData("application/json",JSON.stringify(V)),a&&C($))}function D(M,K,$){y||!a||!W||!I(K).allowed||(M.preventDefault(),M.dataTransfer.dropEffect="move",T(L=>(L==null?void 0:L.columnId)===K&&L.index===$?L:{columnId:K,index:$}))}async function F(M,K,$){var H;if(M.preventDefault(),y||!a||!W){z();return}const V=r(W),B=(((H=P.find(Q=>Q.column.id===V))==null?void 0:H.items)??[]).findIndex(Q=>n(Q)===n(W));if(!I(K).allowed||B<0){z();return}if(V===K&&($===B||$===B+1)){z();return}try{await a({item:W,fromColumnId:V,toColumnId:K,fromIndex:B,toIndex:$})}finally{z()}}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(M=>s.jsxs("button",{type:"button",onClick:()=>h(M.id),className:"rounded-full border border-dashed border-border/60 px-2 py-0.5 hover:border-border hover:text-foreground",title:`Restore "${M.title}" column`,children:[M.title," ×"]},M.id))]}):null,s.jsx("div",{className:ve("grid min-w-max grid-flow-col items-start gap-4",g?"auto-cols-[minmax(240px,280px)]":"auto-cols-[minmax(300px,360px)]"),children:P.map(({column:M,items:K})=>{const $=I(M.id),V=(A==null?void 0:A.columnId)===M.id;return s.jsxs("section",{className:ve("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]":"",W&&!$.allowed?"border-dashed opacity-65":"",W&&$.allowed?"border-primary/30 bg-accent/30":"",V?"ring-2 ring-ring/30":""),title:W&&!$.allowed?$.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:ve("font-semibold uppercase tracking-[0.16em] text-muted-foreground",g?"text-xs":"text-sm"),children:M.title}),M.description&&!g?s.jsx("p",{className:"text-sm leading-6 text-muted-foreground",children:M.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(M.id),className:"rounded-full border border-transparent px-1.5 py-0.5 text-xs text-muted-foreground hover:border-border hover:text-foreground",title:`Hide "${M.title}" column`,"aria-label":`Hide column ${M.title}`,children:"×"}):null]})]}),s.jsxs("div",{className:ve("flex flex-1 flex-col gap-3",v?"min-h-0 overflow-y-auto pr-1":""),onDragOver:L=>D(L,M.id,K.length),onDrop:L=>F(L,M.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(M):f}):s.jsx(DH,{active:(A==null?void 0:A.columnId)===M.id&&A.index===0,disabled:!!W&&!$.allowed,children:typeof f=="function"?f(M):f}):null,K.map((L,B)=>{const Y=n(L),H=N===Y;return s.jsxs(m.Fragment,{children:[s.jsx("div",{className:ve("h-2 rounded-full transition",(A==null?void 0:A.columnId)===M.id&&A.index===B?"bg-primary/70":"bg-transparent"),onDragOver:Q=>D(Q,M.id,B),onDrop:Q=>F(Q,M.id,B)}),s.jsx("div",{draggable:!y&&!!(a||l),onMouseDown:Q=>{_.current=Q.target},onDragStart:Q=>{const J=_.current;if(J!=null&&J.closest(ic)){Q.preventDefault();return}U(Q,L,Y)},onDragEnd:z,onContextMenu:Q=>{if(!u)return;const J=Q.target;J!=null&&J.closest(ic)||u(L,Q)},className:ve("transition",!y&&(a||l)?"cursor-grab active:cursor-grabbing":"",H?"scale-[0.98] opacity-50":""),children:o(L,{dragging:H})})]},Y)}),K.length>0&&!y?s.jsx("div",{className:ve("mt-1 rounded-md border border-dashed px-3 py-2 text-center text-xs text-muted-foreground transition",(A==null?void 0:A.columnId)===M.id&&A.index===K.length?"border-primary/50 bg-primary/10 text-foreground":"border-border/60",W&&!$.allowed?"opacity-40":""),children:"Drop here to place at the end"}):null]})]},M.id)})})]})}function DH({active:e,disabled:t,children:n}){return s.jsx("div",{className:ve("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 Ro="border-status-pending-foreground/30 bg-status-pending text-status-pending-foreground",Gl="border-status-in-progress-foreground/30 bg-status-in-progress text-status-in-progress-foreground",YA="border-status-blocked-foreground/30 bg-status-blocked text-status-blocked-foreground",Qb="border-status-review-foreground/30 bg-status-review text-status-review-foreground",XA="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",JA="border-status-archived-foreground/30 bg-status-archived text-status-archived-foreground",Xp=Ro,$H={draft:Ro,pending:Ro,ready_for_planning:Ro,ready_to_implement:Gl,in_progress:Gl,blocked:YA,review:Qb,code_review:Qb,completed:XA,failed:QA,active:Gl,stopped:Ro,archived:JA};function IH(e){return $H[e]??Xp}const MH={slate:Xp,gray:Xp,grey:Xp};function ZA(e){return e.replace(/_/g," ").replace(/\b\w/g,t=>t.toUpperCase())}function LH(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 OH(e,t){const n=t==null?void 0:t.trim();if(n)if(n.startsWith("#")){const r=LH(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=MH[n.toLowerCase()];if(r)return{className:r}}return{className:IH(e)}}function yd(e,t){const n=e.find(i=>i.id===t),{className:r,style:o}=OH(t,n==null?void 0:n.color);return{label:(n==null?void 0:n.label)??ZA(t),className:r,style:o,iconName:n==null?void 0:n.icon}}function Rh(e){return e?!!e.terminal||e.id==="completed"||e.id==="failed":!1}function eP(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)??ZA(a),terminal:Rh(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}function FH(e,t,n){return eP(e).map(r=>r.id===t?{id:r.id,label:r.label,disabled:!0,disabledReason:"Already in this status"}:r.terminal&&!(n??[]).find(i=>i.targetStatus===r.id&&!i.disabled)?{id:r.id,label:r.label,disabled:!0,disabledReason:`Reach ${r.label} via its transition when available`}:{id:r.id,label:r.label})}const tP={draft:{label:"Draft",description:"Just-created stub; not yet shaped.",className:Ro,icon:jc},pending:{label:"Pending",description:"Waiting to start or waiting on dependencies.",className:Ro,icon:m4},ready_for_planning:{label:"Ready for Planning",description:"Objective and acceptance criteria written; awaiting a plan.",className:Ro,icon:v2},ready_to_implement:{label:"Ready to Implement",description:"Plan written and approved; ready to start coding.",className:Gl,icon:z4},in_progress:{label:"In Progress",description:"Actively being worked on.",className:Gl,icon:Gv},blocked:{label:"Blocked",description:"Blocked by an explicit obstacle that needs intervention.",className:YA,icon:uh},review:{label:"Review",description:"Ready for inspection or approval.",className:Qb,icon:V4},completed:{label:"Completed",description:"Finished successfully.",className:XA,icon:am},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:Gl,icon:Nb},stopped:{label:"Stopped",description:"Session ended without completing.",className:Ro,icon:p4},archived:{label:"Archived",description:"Hidden from normal views; restorable from the Archive page.",className:JA,icon:Nb}},nP="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=tP[e])==null?void 0:t.icon)??Nb}function rP({progress:e,Icon:t}){const n=e&&e.total>0,r=n?Math.min(1,Math.max(0,e.checked/e.total)):0;return n?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-r)})]}),s.jsx(t,{className:"h-2.5 w-2.5"})]}):s.jsx(t,{className:"h-3.5 w-3.5 shrink-0"})}function ro({status:e,className:t,showIcon:n=!0,progress:r}){var g;const o=rs(),i=yd(o.statuses,e),a=Jb(e),l=i.label,u=((g=o.statuses.find(y=>y.id===e))==null?void 0:g.description)??Yd(e),p=r&&r.total>0?`${l} — ${u} (${r.checked}/${r.total} criteria)`:`${l} — ${u}`,h=n?s.jsx(rP,{progress:r,Icon:a}):null;return s.jsxs("span",{title:p,className:ve(nP,i.className,t),style:i.style,children:[h,s.jsx("span",{className:"min-w-0 truncate",children:l})]})}function Yd(e){var t;return((t=tP[e])==null?void 0:t.description)??`Status: ${e}`}function zH({currentStatus:e,availableTransitions:t,onSelect:n,overrideTargets:r,onOverride:o,progress:i,disabled:a=!1,className:l}){const[u,f]=m.useState(!1),[p,h]=m.useState(null),[g,y]=m.useState(0),k=m.useRef(null),v=m.useRef(null),b=m.useId(),j=rs(),S=yd(j.statuses,e),N=Jb(e),C=r??[],A=t.length+C.length,T=m.useCallback(z=>{f(!1),z&&requestAnimationFrame(()=>{var U;(U=k.current)==null||U.focus()})},[]),_=m.useCallback(()=>{var U;const z=(U=k.current)==null?void 0:U.getBoundingClientRect();z&&h({top:z.top,left:z.left,width:z.width,bottom:z.bottom})},[]);m.useLayoutEffect(()=>{u&&_()},[u,_]),m.useEffect(()=>{if(!u)return;const z=()=>_();return window.addEventListener("scroll",z,!0),window.addEventListener("resize",z),()=>{window.removeEventListener("scroll",z,!0),window.removeEventListener("resize",z)}},[u,_]),m.useEffect(()=>{if(!u)return;const z=U=>{var F,M;const D=U.target;D&&((F=v.current)!=null&&F.contains(D)||(M=k.current)!=null&&M.contains(D)||T(!1))};return document.addEventListener("mousedown",z),()=>document.removeEventListener("mousedown",z)},[u,T]),m.useEffect(()=>{u&&y(0)},[u,A]);function O(z){return!z.disabled&&z.id!==e}function P(z){if(z<t.length){const D=t[z];D&&(n(D),T(!0));return}const U=C[z-t.length];U&&O(U)&&(o==null||o(U.id),T(!0))}function W(z){(z.key==="Enter"||z.key===" "||z.key==="ArrowDown")&&(z.preventDefault(),f(!0))}function I(z){if(A===0){z.key==="Escape"&&(z.preventDefault(),T(!0));return}z.key==="ArrowDown"?(z.preventDefault(),y(U=>(U+1)%A)):z.key==="ArrowUp"?(z.preventDefault(),y(U=>(U-1+A)%A)):z.key==="Home"?(z.preventDefault(),y(0)):z.key==="End"?(z.preventDefault(),y(A-1)):z.key==="Enter"?(z.preventDefault(),P(g)):z.key==="Escape"&&(z.preventDefault(),T(!0))}return s.jsxs(s.Fragment,{children:[s.jsxs("button",{ref:k,type:"button","data-no-drag":!0,disabled:a,"aria-haspopup":"menu","aria-expanded":u,"aria-controls":u?b:void 0,onClick:()=>{a||f(z=>!z)},onKeyDown:W,title:`Status: ${S.label}. Click to change.`,style:S.style,className:ve(nP,S.className,l,"cursor-pointer transition hover:brightness-95 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/40",a&&"cursor-not-allowed opacity-60"),children:[s.jsx(rP,{progress:i,Icon:N}),s.jsx("span",{className:"min-w-0 truncate",children:S.label})]}),u&&p&&typeof document<"u"?Xs.createPortal(s.jsx("div",{ref:v,id:b,role:"menu",tabIndex:-1,autoFocus:!0,onKeyDown:I,style:{position:"fixed",top:p.bottom+6,left:p.left,minWidth:Math.max(p.width,180),zIndex:60},className:"rounded-md border border-border/70 bg-popover py-1 text-sm text-popover-foreground shadow-lg",children:A===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((z,U)=>{const D=Jb(z.targetStatus),F=U===g;return s.jsxs("button",{type:"button",role:"menuitem","data-no-drag":!0,onMouseEnter:()=>y(U),onClick:()=>P(U),title:z.warning||z.description,className:ve("flex w-full flex-col items-stretch gap-0.5 px-3 py-1.5 text-left text-sm transition",F?"bg-foreground/5":"hover:bg-foreground/5"),children:[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(D,{className:"h-3.5 w-3.5 flex-shrink-0 text-muted-foreground"}),s.jsx("span",{className:"truncate",children:z.label})]}),s.jsx("span",{className:"text-[10px] uppercase tracking-wide text-muted-foreground",children:es(j,z.targetStatus)})]}),z.warning?s.jsx("span",{className:"text-[11px] leading-snug text-warning-foreground",children:z.warning}):null]},`${z.command}:${z.targetStatus}`)}),C.length>0&&t.length>0?s.jsx("div",{className:"my-1 border-t border-border/60",role:"separator"}):null,C.map((z,U)=>{const D=t.length+U,F=D===g,M=!O(z),K=yd(j.statuses,z.id);return s.jsx("button",{type:"button",role:"menuitem","data-no-drag":!0,disabled:M,onMouseEnter:()=>y(D),onClick:()=>P(D),title:M?z.disabledReason??(z.id===e?"Already in this status":void 0):`Set status to ${z.label}`,className:ve("flex w-full items-center justify-between gap-2 px-3 py-1.5 text-left text-sm transition",M?"cursor-not-allowed text-muted-foreground/60":F?"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:ve("h-2.5 w-2.5 flex-shrink-0 rounded-full border border-border/40",K.style?void 0:K.className),style:K.style?{backgroundColor:K.style.color}:void 0}),s.jsxs("span",{className:"truncate",children:["Override → ",z.label]})]})},`override-${z.id}`)})]})}),document.body):null]})}function qw({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(Mn,{open:e,onOpenChange:g=>r?void 0:i(g),children:s.jsx(Sn,{className:"max-w-xl",children:s.jsxs("form",{className:"space-y-5",onSubmit:g=>{g.preventDefault(),o(h)},children:[s.jsxs(sr,{children:[s.jsx(Cn,{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(Hr,{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})]})]})})})}function na(e,t,n,r,o,i){let a=`syntaur://open?${e.kind}=${encodeURIComponent(e.id)}`;return e.kind==="session"&&t&&(a+=`&mode=${encodeURIComponent(t)}`),n&&(a+=`&terminal=${encodeURIComponent(n)}`),r&&e.kind==="assignment"&&(a+=`&agent=${encodeURIComponent(r)}`),o!==void 0&&(e.kind==="assignment"||e.kind==="standalone")&&(a+=`&prompt=${encodeURIComponent(o)}`),i&&e.kind==="assignment"&&(a+=`&agentName=${encodeURIComponent(i)}`),a}function BH(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 UH(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 Gw(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 Yw(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 HH(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 Xw(e){return e.requiresReason||e.command==="block"}async function sP(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 oP(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 VH(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 WH(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 Qw extends Error{constructor(t,n){super(t),this.stderr=n,this.name="CreateWorktreeError"}}async function Jw(e){const t=await e.json().catch(()=>null);return new Qw((t==null?void 0:t.error)||`HTTP ${e.status}`,t==null?void 0:t.stderr)}async function KH(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 qH(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 GH(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 Jw(r);return(await r.json()).assignment}async function YH(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 Jw(n);return(await n.json()).assignment}async function XH(e){const{url:t}=BH(e),n=await fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});if(!n.ok)throw await Jw(n);return await n.json()}async function Hm(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 QH(e,t,n){const r=await fetch(`/api/projects/${e}/assignments/${t}/repository-branches?repo=${encodeURIComponent(n)}`);return Hm(r)}async function JH(e,t){const n=await fetch(`/api/assignments/${e}/repository-branches?repo=${encodeURIComponent(t)}`);return Hm(n)}async function ZH(e,t){const n=await fetch(`/api/projects/${e}/assignments/${t}/source-assignments`);return(await Hm(n)).sourceAssignments}async function e9(e){const t=await fetch(`/api/assignments/${e}/source-assignments`);return(await Hm(t)).sourceAssignments}function Cs({id:e,slug:t,projectSlug:n,status:r,title:o,availableTransitions:i,progress:a,onChange:l,disabled:u,className:f,onSelectAction:p,onSelectOverride:h}){const g=rs(),{toast:y,showToast:k,dismissToast:v}=Wn(),[b,j]=m.useState(r);m.useEffect(()=>{j(r)},[r]);const[S,N]=m.useState(i??[]);m.useEffect(()=>{N(i??[])},[i]);const[C,A]=m.useState(!1),[T,_]=m.useState(null),O=!!(p&&h),P=FH(g,b,S);function W(){return n==null&&!e?(k("Cannot update status: assignment id is missing.","error"),!1):n!=null&&!t?(k("Cannot update status: assignment slug is missing.","error"),!1):!0}async function I($,V){const L={status:b,transitions:S};j($),A(!0);try{const B=await V();return j(B.status),N(B.availableTransitions),l==null||l(B),k(`Moved to ${es(g,B.status)}`,"success"),!0}catch(B){return j(L.status),N(L.transitions),k(B.message,"error"),!1}finally{A(!1)}}function z($,V){return I($.targetStatus,()=>n==null?sP(e,$,V):Gw(n,t,$,V))}function U($){return I($,()=>n==null?oP(e,$):Yw(n,t,$))}function D($){if($.disabled){k($.disabledReason||`Cannot move to ${es(g,$.targetStatus)}.`,"error");return}if(W()){if(Xw($)){_($);return}z($)}}function F($){const V=S.find(B=>B.targetStatus===$&&!B.disabled);if(V){D(V);return}const L=g.statuses.find(B=>B.id===$);if(Rh(L??{id:$})){k(`Reach “${es(g,$)}” through its complete/fail transition.`,"error");return}W()&&U($)}const M=p&&h?p:D,K=p&&h?h:F;return s.jsxs(s.Fragment,{children:[s.jsx(zH,{currentStatus:b,availableTransitions:S,onSelect:M,overrideTargets:P,onOverride:K,progress:a,disabled:u||C,className:f}),O?null:s.jsxs(s.Fragment,{children:[s.jsx(qw,{open:T!==null,action:T,assignmentTitle:o??t??b,loading:C,onConfirm:async $=>{if(!T)return;await z(T,$)&&_(null)},onOpenChange:$=>{$||_(null)}}),s.jsx(Vn,{toast:y,onDismiss:v})]})]})}function _a({type:e,className:t,compact:n=!1}){const r=Fd();if(!e)return null;const o=Az(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:ve("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 Xd(e){if(navigator.clipboard&&typeof navigator.clipboard.writeText=="function")try{return await navigator.clipboard.writeText(e),!0}catch{}return t9(e)}function t9(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 jr({value:e,label:t,disabled:n=!1,disabledReason:r,onError:o}){const[i,a]=m.useState(!1);async function l(){n||(await Xd(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(Nr,{className:"h-3 w-3 text-status-completed-foreground","aria-hidden":"true"}):s.jsx(dh,{className:"h-3 w-3","aria-hidden":"true"})})}function n9(e){return e.projectSlug===null?`/assignments/${e.id}`:`${e.projectWorkspace?`/w/${e.projectWorkspace}`:""}/projects/${e.projectSlug}/assignments/${e.slug}`}function r9({items:e,statusOrder:t,sortField:n,sortDirection:r,listSectionVisibility:o,compact:i=!1}){const a=rs(),[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:ve("space-y-2",i?"space-y-1.5":"space-y-3"),children:t.map(p=>{const h=Gd(e.filter(k=>k.status===p),n,r);if(h.length===0)return null;const g=!l.has(p),y=es(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:ve("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(tr,{className:ve("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:ve("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:ve("divide-y divide-border/40 border-t border-border/40",i?"text-xs":"text-sm"),children:h.map(k=>{const v=n9(k);return s.jsx("li",{children:s.jsxs($e,{to:v,className:ve("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:Xn(k.updated)})]})},`${k.projectSlug??"standalone"}:${k.id}`)})})]},p)})})}function s9(e){return e.projectSlug===null?`/assignments/${e.id}`:`${e.projectWorkspace?`/w/${e.projectWorkspace}`:""}/projects/${e.projectSlug}/assignments/${e.slug}`}function o9({items:e,sortField:t,sortDirection:n,tableColumnVisibility:r,compact:o=!1,onAssignmentChange:i}){const a=new Set(r.hidden);a.delete("title");const l=h=>!a.has(h),u=Gd(e,t,n),f=o?"py-2 pr-3":"py-3 pr-4",p=o?"text-xs":"text-sm";return s.jsx("div",{className:"overflow-x-auto",children:s.jsxs("table",{className:ve("w-full text-left",p),children:[s.jsx("thead",{children:s.jsxs("tr",{className:"border-b border-border/60 text-muted-foreground",children:[l("title")?s.jsx("th",{className:ve("font-medium",f),children:"Assignment"}):null,l("status")?s.jsx("th",{className:ve("font-medium",f),children:"Status"}):null,l("priority")?s.jsx("th",{className:ve("font-medium",f),children:"Priority"}):null,l("assignee")?s.jsx("th",{className:ve("font-medium",f),children:"Assignee"}):null,l("dependencies")?s.jsx("th",{className:ve("font-medium",f),children:"Dependencies"}):null,l("created")?s.jsx("th",{className:ve("font-medium",f),children:"Created"}):null,l("updated")?s.jsx("th",{className:ve("font-medium",f),children:"Updated"}):null]})}),s.jsx("tbody",{children:u.map(h=>{const g=s9(h),y=`${h.projectSlug??"standalone"}:${h.id}`;return s.jsxs("tr",{className:"border-b border-border/50 last:border-0",children:[l("title")?s.jsxs("td",{className:f,children:[s.jsx($e,{to:g,className:"font-semibold text-foreground hover:text-primary",children:h.title}),h.projectTitle?s.jsx("p",{className:"mt-0.5 text-xs text-muted-foreground",children:h.projectTitle}):null]}):null,l("status")?s.jsx("td",{className:f,children:s.jsx(Cs,{id:h.id,slug:h.slug,projectSlug:h.projectSlug,status:h.status,title:h.title,availableTransitions:h.availableTransitions,className:"max-w-[150px]",onChange:i})}):null,l("priority")?s.jsx("td",{className:ve("capitalize text-muted-foreground",f),children:h.priority}):null,l("assignee")?s.jsx("td",{className:ve("text-muted-foreground",f),children:h.assignee??"Unassigned"}):null,l("dependencies")?s.jsx("td",{className:ve("text-muted-foreground",f),children:h.dependsOn.length}):null,l("created")?s.jsx("td",{className:ve("text-muted-foreground",f),children:Xn(h.created)}):null,l("updated")?s.jsx("td",{className:ve("text-muted-foreground",f),children:Xn(h.updated)}):null]},y)})})]})})}function iP({view:e,compact:t,emptyDescription:n}){const{data:r,loading:o,error:i,refetch:a}=dm(),l=rs(),u=m.useMemo(()=>l.order.map(h=>({id:h,title:es(l,h),description:Yd(h)})),[l]),f=m.useMemo(()=>qA(l.factDeclarations),[l.factDeclarations]),p=m.useMemo(()=>{if(!r)return[];const h=e.config.filters.query??Wu(e.config.filters);let g=null;h.trim()!==""&&(g=nc(h,f).query);const y=WA(r.assignments,g,{workspace:e.workspace});return Gd(y,e.config.sortField,e.config.sortDirection)},[r,e,f]);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(p.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(Um,{compact:t,dragDisabled:!0,columns:u,items:p,getItemId:h=>h.slug||h.id,getColumnId:h=>h.status,hiddenColumnIds:e.config.kanbanColumnVisibility.hidden,renderCard:h=>t?s.jsx(i9,{item:h,onAssignmentChange:a}):s.jsx(a9,{item:h,onAssignmentChange:a})});case"list":return s.jsx(r9,{items:p,statusOrder:l.order,sortField:e.config.sortField,sortDirection:e.config.sortDirection,listSectionVisibility:e.config.listSectionVisibility,compact:t});case"table":return s.jsx(o9,{items:p,sortField:e.config.sortField,sortDirection:e.config.sortDirection,tableColumnVisibility:e.config.tableColumnVisibility,compact:t,onAssignmentChange:a})}}function i9({item:e,onAssignmentChange:t}){const n=xd(e);return s.jsxs("div",{className:ve("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:n,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(Cs,{id:e.id,slug:e.slug,projectSlug:e.projectSlug,status:e.status,title:e.title,availableTransitions:e.availableTransitions,className:"max-w-[150px]",onChange:t})]}),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:Xn(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(jr,{value:e.id})]}):null]})}function a9({item:e,onAssignmentChange:t}){const n=xd(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:n,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(Cs,{id:e.id,slug:e.slug,projectSlug:e.projectSlug,status:e.status,title:e.title,availableTransitions:e.availableTransitions,className:"max-w-[150px]",onChange:t})]}),s.jsxs("div",{className:"mt-2 flex items-center justify-between gap-2",children:[s.jsx(_a,{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:Xn(e.updated)})]})]})}function l9({viewId:e,onPickAnother:t}){const{view:n,loading:r,error:o,refetch:i}=ki(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(iP,{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 aP({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:ma.recentSessionsEmptyTitle}),s.jsx("p",{className:"mt-1 text-muted-foreground",children:ma.recentSessionsEmptyHint})]}):s.jsx("ul",{className:"divide-y divide-border/40",children:e.map(t=>s.jsx("li",{children:s.jsx(c9,{session:t})},t.sessionId))})]})}function c9({session:e}){const t=xn(),[n,r]=m.useState(!1),o=u9(e,t),i=d9(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," · ",Fu(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:ma.recentSessionsCopyFallbackHint})]}):null]}),s.jsx(jr,{value:e.path,label:ma.recentSessionsCopyPathLabel,disabled:a,disabledReason:ma.recentSessionsCopyPathDisabled,onError:()=>r(!0)})]})}function u9(e,t){return e.projectSlug&&e.assignmentSlug?`${t}/projects/${e.projectSlug}/assignments/${e.assignmentSlug}`:(!e.projectSlug&&e.assignmentSlug,"/agent-sessions")}function d9(e){return e.assignmentSlug&&e.projectSlug?`${e.projectSlug}/${e.assignmentSlug}`:e.assignmentSlug?`standalone/${e.assignmentSlug}`:"standalone"}const f9={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 p9(e,t,n=Date.now()){const r=ra(e);if(t.preset){const a=f9[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 h9(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&&!p9(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 m9(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 g9(e,t){return t==null||Number.isNaN(t)||t<=0?e:e.slice(0,t)}function x9({view:e,emptyDescription:t}){const{data:n,loading:r,error:o}=fm(),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=h9(a,f);return p=m9(p,l.sortField,l.sortDirection),p=g9(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(aP,{sessions:i})}function y9({activeViewId:e,onSelectView:t,onCreateNew:n}){const{views:r,loading:o}=Wd(),[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(tr,{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:ve("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(Nr,{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:ve("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(Nr,{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(At,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":"true"}),s.jsx("span",{children:"Create new view…"})]})]})]})}const b9={__unassigned__:"Unassigned",__standalone__:"No project"};function kn({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:b9[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,A=N.findIndex(_=>_===C);S.key==="ArrowDown"?(S.preventDefault(),b(A<0?0:A+1)):S.key==="ArrowUp"?(S.preventDefault(),b(A<0?g.length-1:A-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:ve("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(tr,{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:A=>{h.current[N]=A},type:"button",role:"menuitemcheckbox","aria-checked":C,tabIndex:-1,onClick:()=>v(S.value),className:ve("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:ve("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(Nr,{className:"h-3 w-3"}):null}),s.jsx("span",{className:"truncate",children:S.label})]},S.value)})]}):null]})}const UN={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"},v9=["updated","created"];function Vm({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}: ${UN[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:ve("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(tr,{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:v9.map(j=>s.jsx("button",{type:"button","aria-pressed":l===j,onClick:()=>y(j),className:ve("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(Ty,{label:"Any date",selected:!h,onClick:v}),ez.map(j=>s.jsx(Ty,{label:UN[j],selected:(e==null?void 0:e.preset)===j,onClick:()=>k(j)},j)),s.jsx(Ty,{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 Ty({label:e,selected:t,onClick:n}){return s.jsxs("button",{type:"button",onClick:n,className:ve("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(Nr,{className:"h-3.5 w-3.5 shrink-0","aria-hidden":"true"}):null]})}const w9=new Set(["status","type","priority","assignee","project","tags","activity","dateRange","search","query","sessionStatus","agent"]);function j9(e,t){const n={};for(const[r,o]of Object.entries(e))w9.has(r)||(n[r]=o);return{...n,...t}}function Ah(e,t,n){return{...e,viewMode:t.viewMode,filters:j9(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 k9(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 ac(e){const t={viewMode:e.state.viewMode,filters:k9(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 bl={viewMode:"kanban",sortField:"updated",sortDirection:"desc"},yp={sortField:"started",sortDirection:"desc"};function lP(e,t){const{config:n}=ac({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 Zw(e,t){const{config:n}=ac({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 xa(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 Wm(e){return e?{field:e.field,preset:e.preset??"",from:e.from??"",to:e.to??""}:null}function cP(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,Wm(n.filters.dateRange)),(h=t.setSearch)==null||h.call(t,n.filters.search??""),(g=t.setQuery)==null||g.call(t,n.filters.query??Wu(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 uP(e){return`${Qp(e.workspace)}/${encodeURIComponent(e.id)}`}function dP(e){const t=e.workspace?`/w/${e.workspace}`:"",n=He(e.config.filters.project);return n.length===1&&n[0]!=="__standalone__"&&oA(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"],S9={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 C9(e){if(e.preset)return`${e.field} ${S9[e.preset]??e.preset}`;const t=e.from??"…",n=e.to??"…";return`${e.field} ${t}→${n}`}function fP(e){var o,i;const t=(o=e.query)==null?void 0:o.trim();if(t&&Ku(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(C9(e.dateRange));const r=(i=e.search)==null?void 0:i.trim();return r&&n.push(`search="${r}"`),n.join(" · ")||"no filters"}const HN=80,E9=["started","lastActivity","projectName","agentName"],T9={started:"Start time",lastActivity:"Last updated",projectName:"Project",agentName:"Agent"},R9=[{value:"active",label:"Active"},{value:"ended",label:"Ended"},{value:"tracked",label:"Tracked"},{value:"untracked",label:"Untracked"}];function pP({open:e,onOpenChange:t,initialView:n,onSubmit:r}){const o=!!n,{data:i}=oo(),{data:a}=fm(),[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),[A,T]=m.useState(""),[_,O]=m.useState(!1),[P,W]=m.useState(null);function I(){p([]),g([]),k([]),b(null),S(yp.sortField),C(yp.sortDirection),T("")}m.useEffect(()=>{if(e)if(W(null),O(!1),n){const $=n.config.filters;u(n.name),p(He($.project)),g(He($.agent)),k(He($.sessionStatus)),b(Wm($.dateRange)),S(n.config.sortField),C(n.config.sortDirection),T(n.config.limit!==void 0?String(n.config.limit):"")}else u(""),I()},[e,n]);const z=m.useMemo(()=>[{value:"__standalone__",label:"No project"},...(i??[]).map(V=>({value:V.slug,label:V.title}))],[i]),U=m.useMemo(()=>{const $=new Set;for(const V of(a==null?void 0:a.sessions)??[])V.agent&&$.add(V.agent);return Array.from($).sort().map(V=>({value:V,label:V}))},[a]),D=l.trim(),F=D.length>0&&D.length<=HN,M=A.trim()===""?void 0:parseInt(A.trim(),10),K=A.trim()===""||Number.isFinite(M)&&M!==void 0&&M>0&&M<=500;return s.jsx(Mn,{open:e,onOpenChange:t,children:s.jsx(Sn,{className:"max-w-lg",children:s.jsxs("form",{className:"space-y-4",onSubmit:async $=>{if($.preventDefault(),!F||!K||_)return;O(!0),W(null);const V=xa(v),L=V?{...V,field:"started"}:void 0,B={filters:{project:f,agent:h,sessionStatus:y,dateRange:L},sortField:j,sortDirection:N,limit:M};try{await r(D,B)}catch(Y){W(Y instanceof Error?Y.message:String(Y)),O(!1)}},children:[s.jsx(sr,{children:s.jsx(Cn,{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:HN,onChange:$=>u($.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(vl,{label:"Date range (session start)",children:s.jsx(Vm,{className:"w-full",value:v,onChange:b})}),s.jsx(vl,{label:"Project",children:s.jsx(kn,{ariaLabel:"Project filter",className:"w-full",allLabel:"All projects",options:z,value:f,onChange:p})}),s.jsx(vl,{label:"Agent",children:s.jsx(kn,{ariaLabel:"Agent filter",className:"w-full",allLabel:"All agents",options:U,value:h,onChange:g})}),s.jsx(vl,{label:"Session status",children:s.jsx(kn,{ariaLabel:"Session status filter",className:"w-full",allLabel:"All statuses",options:R9,value:y,onChange:k})}),s.jsx(vl,{label:"Sort by",className:"sm:col-span-2",children:s.jsxs("div",{className:"flex gap-2",children:[s.jsx("select",{value:j,onChange:$=>S($.target.value),className:"editor-input w-full",children:E9.map($=>s.jsx("option",{value:$,children:T9[$]??$},$))}),s.jsx("button",{type:"button",onClick:()=>C($=>$==="asc"?"desc":"asc"),className:"shell-action shrink-0",title:N==="asc"?"Ascending":"Descending",children:N==="asc"?"Asc":"Desc"})]})}),s.jsxs(vl,{label:"Max results",className:"sm:col-span-2",children:[s.jsx("input",{type:"number",min:1,max:500,value:A,onChange:$=>T($.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"})]})]}),P?s.jsx("p",{className:"text-xs text-error-foreground",role:"alert",children:P}):null,s.jsxs(Hr,{className:"sm:justify-between",children:[s.jsx("button",{type:"button",onClick:I,className:"shell-action",disabled:_,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:_,children:"Cancel"}),s.jsx("button",{type:"submit",disabled:!F||!K||_,className:"shell-action shell-action--cta disabled:opacity-50",children:_?"Saving…":o?"Save changes":"Create view"})]})]})]})})})}function vl({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 Ry({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 A9({viewId:e,slotId:t,onPickAnother:n}){const{data:r,loading:o,error:i}=fm(),{view:a,loading:l,ready:u}=ki(e??null),{layout:f}=fA(),{showToast:p}=Wn(),[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 Vb(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}=Zw(j,null);try{const A=(await rc({name:b,workspace:S,config:N,entityType:"session"})).views.find(T=>T.name===b&&T.entityType==="session");A&&await y(A.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(Ry,{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(x9,{view:a,emptyDescription:"Adjust the view's filters to surface different sessions, or pick another widget for this slot."}):v=s.jsx(Ry,{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(Ry,{title:"Couldn't load sessions",message:i}):v=s.jsx(aP,{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(y9,{activeViewId:e??null,onSelectView:b=>void y(b),onCreateNew:()=>g(!0)})}):null,v,s.jsx(pP,{open:h,onOpenChange:g,workspace:null,onSubmit:k})]})}const P9=5;function _9(){const{data:e,loading:t,error:n}=tT();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,P9);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 VN({filters:e,metric:t}){const n=e??{},{data:r,loading:o,error:i}=cO(n),a=t==="cost"?"Spend":"Token Usage",l=`/usage?${Ab(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:tc(p)}:{label:"Total tokens",value:ec(f)},g=t==="cost"?{label:"Tokens",value:ec(f)}:{label:"Spend",value:tc(p)};u=s.jsxs("div",{className:"grid grid-cols-2 gap-3",children:[s.jsx(WN,{label:h.label,value:h.value,emphasize:!0}),s.jsx(WN,{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:B1(n),children:B1(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 WN({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 $9={"7d":"7 days","30d":"30 days","90d":"90 days",all:"All time",custom:"Custom"};function I9(e){return e.kind==="token-usage"||e.kind==="spend"?e.filters??{}:{}}const wl="bg-background border border-border rounded px-2 py-1 text-sm text-foreground";function KN({config:e,open:t,onSave:n,onCancel:r}){const o=e.kind==="spend"?"Configure Spend":"Configure Token Usage",{data:i}=oo(),{data:a}=Ra(),{data:l}=nT(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,A]=m.useState(""),[T,_]=m.useState(!1),[O,P]=m.useState(null);m.useEffect(()=>{if(!t)return;const F=I9(e);f(F.window??"30d"),h(F.since??""),y(F.until??""),v(F.project??""),j(F.workspace??""),N(F.model??""),A(F.tool??""),_(!1),P(null)},[t,e]);function W(){return Od({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 I(F){if(F.preventDefault(),T)return;const M=W(),K=J5(M);if(!K.ok){P(K.errors.join("; "));return}_(!0),P(null);const $=e.kind==="token-usage"?{kind:"token-usage",filters:M}:e.kind==="spend"?{kind:"spend",filters:M}:e;try{await n($)}catch(V){P(V instanceof Error?V.message:String(V)),_(!1)}}const z=(i==null?void 0:i.map(F=>F.slug))??[],U=(a==null?void 0:a.workspaces)??[],D=(a==null?void 0:a.hasUngrouped)??!1;return s.jsx(Mn,{open:t,onOpenChange:F=>{F||r()},children:s.jsx(Sn,{className:"max-w-md",children:s.jsxs("form",{onSubmit:I,children:[s.jsx(sr,{children:s.jsx(Cn,{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:um.map(F=>s.jsx("button",{type:"button",onClick:()=>f(F),className:"rounded px-2.5 py-1 text-sm border "+(F===u?"border-primary bg-primary/10 text-foreground":"border-border text-muted-foreground hover:text-foreground"),children:$9[F]},F))})]}),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:F=>h(F.target.value),className:wl})]}),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:F=>y(F.target.value),className:wl})]})]}):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:F=>{j(F.target.value),F.target.value&&v("")},className:wl,children:[s.jsx("option",{value:"",children:"All workspaces"}),D?s.jsx("option",{value:"_ungrouped",children:"(ungrouped)"}):null,U.map(F=>s.jsx("option",{value:F,children:F},F))]})]}),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:F=>{v(F.target.value),F.target.value&&j("")},className:wl,children:[s.jsx("option",{value:"",children:"All projects"}),z.map(F=>s.jsx("option",{value:F,children:F},F))]})]}),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:F=>N(F.target.value),className:wl,children:[s.jsx("option",{value:"",children:"All models"}),((l==null?void 0:l.models)??[]).map(F=>s.jsx("option",{value:F,children:F},F))]})]}),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:F=>A(F.target.value),className:wl,children:[s.jsx("option",{value:"",children:"All tools"}),((l==null?void 0:l.tools)??[]).map(F=>s.jsx("option",{value:F,children:F},F))]})]})]}),O?s.jsx("p",{className:"text-xs text-destructive",role:"alert",children:O}):null]}),s.jsxs(Hr,{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 e0={"saved-view":{title:"Saved view",icon:k2,render:(e,t)=>e.kind!=="saved-view"?null:m.createElement(l9,{viewId:e.viewId,onPickAnother:t.onPickAnother})},"agent-sessions":{title:"Agent sessions",icon:rm,render:(e,t)=>e.kind!=="agent-sessions"?null:m.createElement(A9,{viewId:e.viewId,slotId:t.slotId,onPickAnother:t.onPickAnother})},inventories:{title:"Inventories",icon:Hv,render:()=>m.createElement(_9)},"token-usage":{title:"Token Usage",icon:A4,render:e=>e.kind!=="token-usage"?null:m.createElement(VN,{filters:e.filters,metric:"tokens"}),ConfigEditor:KN},spend:{title:"Spend",icon:lm,render:e=>e.kind!=="spend"?null:m.createElement(VN,{filters:e.filters,metric:"cost"}),ConfigEditor:KN}},hP=50,Zb=16,M9=2,da=6,Ph=11,ev={w:6,h:2};function Jp(e,t,n){return Math.min(Math.max(e,t),n)}const L9=[{minWidth:1280,columns:24},{minWidth:1024,columns:16},{minWidth:768,columns:12},{minWidth:640,columns:6},{minWidth:0,columns:1}];function O9(e){if(!Number.isFinite(e)||e<0)return 1;for(const t of L9)if(e>=t.minWidth)return t.columns;return 1}function Zp(e,t){return t<=0?1:Jp(Math.round(e/hd*t),1,t)}function tv(e){if(P7(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:Ph};case"large":return{w:16,h:Ph};default:return{w:8,h:da}}}function F9(e,t){return t>0?Math.round(e/t):0}function z9(e,t=hP){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:Ph},{label:"Full tall",w:24,h:Ph}];function U9({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}=_m({id:e.id}),C=tv(e.size),A=p?p.renderW:Zp(C.w,t),T=p?p.h:C.h,_={transform:js.Translate.toString(j),transition:S,zIndex:N?50:void 0,position:N?"relative":void 0,gridColumn:`span ${A}`,gridRow:`span ${T}`};function O(M){g.current=null;try{M.currentTarget.releasePointerCapture(M.pointerId)}catch{}h(null)}function P(M){return{onPointerDown:K=>{if(g.current)return;K.preventDefault(),K.stopPropagation(),K.currentTarget.setPointerCapture(K.pointerId);const $=Zp(C.w,t);g.current={pointerId:K.pointerId,startX:K.clientX,startY:K.clientY,startRenderW:$,startH:C.h,axis:M,lastRenderW:$,lastH:C.h},h({renderW:$,h:C.h})},onPointerMove:K=>{const $=g.current;if(!$||K.pointerId!==$.pointerId)return;let V=$.startRenderW,L=$.startH;($.axis==="w"||$.axis==="both")&&(V=Jp($.startRenderW+F9(K.clientX-$.startX,n),1,t)),($.axis==="h"||$.axis==="both")&&(L=Jp($.startH+z9(K.clientY-$.startY),M9,sA)),$.lastRenderW=V,$.lastH=L,h({renderW:V,h:L})},onPointerUp:K=>{const $=g.current;if(!$||K.pointerId!==$.pointerId)return;const V=tv(e.size),B={w:$.axis==="h"?V.w:Jp(Math.round($.lastRenderW/t*hd),1,hd),h:$.lastH};O(K),(B.w!==V.w||B.h!==V.h)&&a(B)},onPointerCancel:K=>{const $=g.current;$&&K.pointerId===$.pointerId&&O(K)},onLostPointerCapture:K=>{const $=g.current;$&&K.pointerId===$.pointerId&&O(K)}}}const W="absolute z-10 touch-none rounded-sm bg-transparent transition hover:bg-primary/30",I=s.jsxs(s.Fragment,{children:[t>1?s.jsx("div",{"aria-hidden":"true",className:ve(W,"right-0 top-0 h-full w-1.5 cursor-ew-resize"),...P("w")}):null,s.jsx("div",{"aria-hidden":"true",className:ve(W,"bottom-0 left-0 h-1.5 w-full cursor-ns-resize"),...P("h")}),t>1?s.jsx("div",{"aria-hidden":"true",className:ve(W,"bottom-0 right-0 h-3 w-3 cursor-nwse-resize"),...P("both")}):null]}),z=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(wc,{className:"h-4 w-4","aria-hidden":"true"})});if(e.widget===null)return s.jsxs("div",{ref:v,style:{..._,gridColumn:`span ${Zp(ev.w,t)}`,gridRow:`span ${ev.h}`},className:ve("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:z}),s.jsx("button",{type:"button","aria-label":"Remove slot",onClick:i,onPointerDown:M=>M.stopPropagation(),className:"absolute right-2 top-2 z-10 text-muted-foreground/50 transition hover:text-destructive",children:s.jsx(gn,{className:"h-4 w-4"})}),s.jsxs("button",{type:"button",onClick:r,className:"shell-action inline-flex items-center gap-2",children:[s.jsx(At,{className:"h-4 w-4"}),"Add widget"]})]});const U=e0[e.widget.kind];if(!U)return s.jsxs("div",{ref:v,style:_,className:ve("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:[z,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]})]}),I]});const D=U.icon,F=U.ConfigEditor;return s.jsxs("div",{ref:v,style:_,className:ve("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:[z,s.jsx(D,{className:"h-3.5 w-3.5","aria-hidden":"true"}),s.jsx("span",{className:"truncate",children:s.jsx(V9,{slot:e,fallback:U.title})})]}),s.jsx(Ww,{items:[{key:"replace",label:"Replace…",icon:B4,onSelect:r},...U.ConfigEditor?[{key:"configure",label:"Configure…",icon:q4,onSelect:()=>f(!0)}]:[],{key:"size",label:"Size",icon:N2,submenu:B9.map(M=>({key:`size-${M.label}`,label:M.label,active:C.w===M.w&&C.h===M.h,onSelect:()=>a({w:M.w,h:M.h})}))},{key:"remove",label:"Remove",icon:gn,destructive:!0,onSelect:o}]})]}),s.jsx("div",{children:U.render(e.widget,{slotId:e.id,onPickAnother:r})}),F?s.jsx(F,{config:e.widget,open:u,onSave:async M=>{await l(M),f(!1)},onCancel:()=>f(!1)}):null,I]})}function H9({slot:e,activeColumns:t,colWidthPx:n}){const r=e.widget?e0[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(wc,{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 V9({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}=ki(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 W9=["agent-sessions","inventories","token-usage","spend"];function K9({open:e,onOpenChange:t,onSelect:n}){const{views:r,loading:o}=Wd();function i(a){n(a),t(!1)}return s.jsx(Mn,{open:e,onOpenChange:t,children:s.jsxs(Sn,{className:"max-w-xl",children:[s.jsxs(sr,{children:[s.jsx(Cn,{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:W9.map(a=>{const l=e0[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 q9=(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 G9(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 Y9(e,t){const n={id:G9(e),widget:null};return[...e,n]}function X9(e,t){return e.filter(n=>n.id!==t)}function Q9(){const{data:e,error:t,refetch:n}=tO(),{data:r}=J2(),{layout:o}=fA(),[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(hd),[S,N]=m.useState(0);m.useEffect(()=>{const K=v.current;if(!K)return;const $=new ResizeObserver(V=>{for(const L of V){const B=L.contentRect.width,Y=O9(B),H=Y>0?(B-(Y-1)*Zb)/Y:0;j(Y),N(H)}});return $.observe(K),()=>$.disconnect()},[]),m.useEffect(()=>{g(o.slots)},[o.slots]);const C=Sm(ji(Ac,{activationConstraint:{distance:8}}),ji(Rc,{coordinateGetter:q9}));Ai("list:overview"),en({keys:"r",description:"Refresh",scope:"list:overview",handler:()=>{n()}});const A=m.useCallback(K=>{u(K),a(!0)},[]),T=m.useCallback(async(K,$)=>{p(null),g(K);try{await Vb(K)}catch(V){g($),p(V instanceof Error?V.message:String(V))}},[]),_=m.useCallback(K=>{if(l===null)return;const $=h.map((V,L)=>L===l?{...V,widget:K}:V);u(null),T($,h)},[h,l,T]),O=m.useCallback(K=>{const $=h.map((V,L)=>L===K?{...V,widget:null,size:void 0}:V);T($,h)},[h,T]),P=m.useCallback(K=>{const $=X9(h,K);T($,h)},[h,T]),W=m.useCallback(()=>{const K=Y9(h);T(K,h)},[h,T]),I=m.useCallback((K,$)=>{const V=h.map((L,B)=>B===K?{...L,size:$}:L);T(V,h)},[h,T]),z=m.useCallback(K=>{const{active:$,over:V}=K;if(k(null),!V||$.id===V.id)return;const L=h.findIndex(H=>H.id===$.id),B=h.findIndex(H=>H.id===V.id);if(L===-1||B===-1)return;const Y=Pc(h,L,B);T(Y,h)},[h,T]),U=m.useCallback(K=>{k(String(K.active.id))},[]),D=h.find(K=>K.id===y)??null,F=m.useCallback(async(K,$)=>{const V=h,L=h.map((B,Y)=>Y===K?{...B,widget:$}:B);p(null),g(L);try{await Vb(L)}catch(B){g(V);const Y=B instanceof Error?B.message:String(B);throw p(Y),B instanceof Error?B:new Error(Y)}},[h]),M={};if(e)for(const K of Object.keys(e.segments))for(const $ of e.segments[K].items)M[$.id]=$;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(R7,{hero:e.hero,itemsById:M}):t?s.jsx(Tt,{error:t,onRetry:n}):s.jsx(bt,{label:"Loading overview…"}),e!=null&&e.firstRun?s.jsx(E7,{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(Am,{sensors:C,collisionDetection:Cm,onDragStart:U,onDragCancel:()=>k(null),onDragEnd:z,children:[s.jsx(Pm,{items:h.map(K=>K.id),strategy:Pw,children:s.jsx("div",{ref:v,style:{display:"grid",gridTemplateColumns:`repeat(${b}, minmax(0, 1fr))`,gridAutoRows:`${hP}px`,gridAutoFlow:"dense",gap:`${Zb}px`},children:h.map((K,$)=>s.jsx(U9,{slot:K,index:$,activeColumns:b,colWidthPx:S,onReplace:()=>A($),onRemove:()=>O($),onRemoveSlot:()=>P(K.id),onResize:V=>I($,V),onConfigChange:V=>F($,V)},K.id))})}),s.jsx(p7,{dropAnimation:null,children:D?s.jsx(H9,{slot:D,activeColumns:b,colWidthPx:S}):null})]}),s.jsxs("button",{type:"button",onClick:W,className:"shell-action inline-flex items-center gap-2",children:[s.jsx(At,{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(Yv,{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(K9,{open:i,onOpenChange:K=>{a(K),K||u(null)},onSelect:_})]})}const J9=["review","blocked","question","plan-approval"],Z9={review:"Review",blocked:"Blocked",question:"Questions","plan-approval":"Plan approval"};function eV(e){const t=[];for(const n of J9){const r=e.filter(o=>o.category===n).sort((o,i)=>i.ageMs-o.ageMs);r.length!==0&&t.push({category:n,label:Z9[n],count:r.length,items:r})}return t}function tV(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 mP(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 nV(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 rV(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 t0(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 sV(){const{items:e,total:t,loading:n,error:r,refetch:o}=aR(),{toast:i,showToast:a,dismissToast:l}=Wn();if(n&&e.length===0)return s.jsx(bt,{label:"Loading your inbox…"});if(r&&e.length===0)return s.jsx(Tt,{title:"Inbox unavailable",error:r,action:s.jsx("button",{type:"button",className:"shell-action",onClick:o,children:"Retry"})});const u=eV(e);return u.length===0?s.jsxs("div",{className:"space-y-4",children:[s.jsx(Vn,{toast:i,onDismiss:l}),s.jsx(qN,{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(Vn,{toast:i,onDismiss:l}),s.jsx(qN,{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(oV,{item:p,onMutated:o,onError:h=>a(h,"error"),onSuccess:h=>a(h,"success")},`${p.category}:${p.assignmentId}:${p.since}`))})},f.category))]})}function qN({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(j2,{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 _h(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 oV({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:t0(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:tV(e.ageMs)})]}),e.summary?s.jsx("p",{className:"text-sm text-muted-foreground",children:e.summary}):null,s.jsx(iV,{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(jr,{value:e.action.command,label:"Copy",onError:o=>n(o.message)})]})]})}function iV(e){switch(e.item.category){case"review":return s.jsx(aV,{...e});case"blocked":return s.jsx(lV,{...e});case"question":return s.jsx(cV,{...e});case"plan-approval":return s.jsx(uV,{...e});default:return null}}const ya="shell-action inline-flex items-center gap-1.5";function aV({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 _h(mP(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:ya,disabled:o!==null,onClick:()=>u(a,"Accepted"),children:[s.jsx(Nr,{className:"h-3.5 w-3.5"}),o===a?"Accepting…":"Accept"]}):null,l?s.jsxs("button",{type:"button",className:ya,disabled:o!==null,onClick:()=>u(l,"Reopened"),children:[s.jsx(vs,{className:"h-3.5 w-3.5"}),o===l?"Reopening…":"Reopen"]}):null]})}function lV({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 _h(mP(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:ya,disabled:a,onClick:u,children:[s.jsx(L4,{className:"h-3.5 w-3.5"}),a?"Unblocking…":"Unblock"]})]})}function cV({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 _h(nV(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 _h({...rV(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:t0(e,"comments"),className:ya,children:[s.jsx(im,{className:"h-3.5 w-3.5"}),"Open to answer"]}),s.jsxs("button",{type:"button",className:ya,disabled:a||!u,title:u?void 0:"Open the assignment to resolve this question.",onClick:p,children:[s.jsx(am,{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:ya,disabled:a||!o.trim(),onClick:f,children:[s.jsx(b2,{className:"h-3.5 w-3.5"}),a?"Posting…":"Reply"]})]})]})}function uV({item:e}){return s.jsx("div",{className:"flex flex-wrap items-center gap-2",children:s.jsxs($e,{to:t0(e,"plan"),className:ya,children:[s.jsx(im,{className:"h-3.5 w-3.5"}),"Review plan"]})})}function dV({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 fV(){const{data:e,loading:t,error:n}=J2(),{openCheatsheet:r}=Ri();return t?s.jsx(bt,{label:"Loading help…"}):n||!e?s.jsx(Tt,{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. ",eo("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(dV,{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(ro,{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 n0({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 Km=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(Ci,{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"})]}));Km.displayName="SearchInput";function qm({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:ve("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 pV={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"},GN=["bg-primary","bg-secondary","bg-accent-coral","bg-accent-teal","bg-accent-amber"];function Dh({progress:e,className:t,showLegend:n=!1}){const r=rs(),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:pV[f]??GN[a++%GN.length]}))},[r.order,e]).filter(a=>(e[a.key]??0)>0);return s.jsxs("div",{className:ve("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:`${mn(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:ve("h-2 w-2 rounded-full",a.className)}),s.jsx("span",{children:mn(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 hV=["pending","active","blocked","failed","completed"],r0=hV,mV=["draft","pending","ready_for_planning","ready_to_implement","in_progress","blocked","review","completed","failed"];function gP(e){return e&&e.length>0?e:[...mV]}function gV(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 xV=220,bp=8;function xP({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)??xV,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(ga,{delayDuration:200,children:t.map(a=>{const l=a.icon,u=ve("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(Lr,{children:[s.jsx(Or,{asChild:!0,children:p}),s.jsx(br,{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 yV="__ungrouped__";function s0({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}=Ra(),[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:yV,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(Mn,{open:e,onOpenChange:j=>p?void 0:t(j),children:s.jsxs(Sn,{children:[s.jsxs(sr,{children:[s.jsx(Cn,{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(Gv,{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:ve("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:ve("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(Nr,{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(Hr,{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 YN(){const{workspace:e}=Kt(),t=xn(),n=Wt(),{data:r,loading:o,error:i,refetch:a}=oo(),{toast:l,showToast:u,dismissToast:f}=Wn(),p=m.useRef(null);Ai("list:projects");const[h,g]=m.useState(""),[y,k]=m.useState("all"),[v,b]=m.useState("all"),[j,S]=m.useState("updated"),[N,C]=Rs(),A=N.get("view"),T=A==="table"||A==="kanban"?A:"cards",_=B=>{C(Y=>{const H=new URLSearchParams(Y);return B==="cards"?H.delete("view"):H.set("view",B),H})},[O,P]=m.useState({}),[W,I]=m.useState(null),[z,U]=m.useState(null),D=m.useMemo(()=>r?r.filter(B=>{if(e){if(e==="_ungrouped"){if(B.workspace!==null)return!1}else if(B.workspace!==e)return!1}return y!=="all"&&B.status!==y||v!=="all"&&!B.tags.includes(v)?!1:h.trim()?`${B.title} ${B.tags.join(" ")} ${B.slug}`.toLowerCase().includes(h.toLowerCase()):!0}).sort((B,Y)=>vV(B,Y,j)):[],[r,h,y,v,j,e]),F=D.map(B=>`${B.slug}:${B.status}`).join("|");m.useEffect(()=>{P(wV(D))},[F,j]);const M=m.useMemo(()=>{const B=new Map(D.map(Y=>[Y.slug,Y]));return r0.flatMap(Y=>(O[Y]??D.filter(Q=>Q.status===Y).map(Q=>Q.slug)).map(Q=>B.get(Q)).filter(Q=>!!Q))},[D,O]),{visibleItems:K,visibleIndexByKey:$}=m.useMemo(()=>{const B=T==="kanban"?M:D,Y=new Map;return B.forEach((H,Q)=>Y.set(H.slug,Q)),{visibleItems:B,visibleIndexByKey:Y}},[T,D,M]),{hotkeyRowProps:V}=zd(K,{scope:"list:projects",onOpen:B=>n(`${t}/projects/${B.slug}`)});if(en({keys:"/",scope:"list:projects",description:"Focus filter",handler:()=>{var B;return(B=p.current)==null?void 0:B.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(Tt,{error:i||"Project list is unavailable.",onRetry:a});const L=Array.from(new Set(r.flatMap(B=>B.tags))).sort();return s.jsxs("div",{className:"space-y-5",children:[s.jsx(Vn,{toast:l,onDismiss:f}),s.jsxs(n0,{children:[s.jsx(Km,{ref:p,value:h,onChange:g,placeholder:"Search by project title or tag"}),s.jsxs("select",{value:y,onChange:B=>k(B.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:B=>b(B.target.value),className:"editor-input max-w-[180px]",children:[s.jsx("option",{value:"all",children:"All tags"}),L.map(B=>s.jsx("option",{value:B,children:B},B))]}),s.jsxs("select",{value:j,onChange:B=>S(B.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(qm,{value:T,onChange:B=>_(B),options:[{value:"cards",label:"Cards"},{value:"table",label:"Table"},{value:"kanban",label:"Kanban"}]})]}),D.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:D.map((B,Y)=>s.jsxs($e,{to:`${t}/projects/${B.slug}`,className:"block rounded-lg border border-border/60 bg-card/90 p-3 shadow-sm transition hover:border-primary/40 hover:shadow-md",...V(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:B.title}),s.jsxs("p",{className:"text-sm text-muted-foreground",children:["Updated ",Xn(B.updated)]})]}),s.jsx(ro,{status:B.status})]}),s.jsxs("div",{className:"mt-4 space-y-3",children:[s.jsx(Dh,{progress:B.progress,showLegend:!0}),s.jsx("div",{className:"flex flex-wrap gap-2",children:B.tags.map(H=>s.jsx("span",{className:"rounded-full border border-border/60 bg-background/80 px-2.5 py-1 text-xs text-foreground",children:H},H))}),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:B.needsAttention.blockedCount+B.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:B.progress.total})]})]})]})]},B.slug))}):T==="table"?s.jsx(We,{title:`${D.length} project${D.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:D.map((B,Y)=>s.jsxs("tr",{className:"border-b border-border/50 last:border-0",...V(Y),children:[s.jsxs("td",{className:"py-4 pr-4",children:[s.jsx($e,{to:`${t}/projects/${B.slug}`,className:"font-semibold text-foreground hover:text-primary",children:B.title}),s.jsx("div",{className:"mt-1 flex flex-wrap gap-2",children:B.tags.map(H=>s.jsx("span",{className:"rounded-full border border-border/60 px-2 py-0.5 text-xs text-muted-foreground",children:H},H))})]}),s.jsx("td",{className:"py-4 pr-4",children:s.jsx(ro,{status:B.status})}),s.jsx("td",{className:"py-4 pr-4",children:s.jsx("div",{className:"min-w-[220px]",children:s.jsx(Dh,{progress:B.progress})})}),s.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:B.needsAttention.blockedCount+B.needsAttention.failedCount}),s.jsx("td",{className:"py-4 text-muted-foreground",children:Xn(B.updated)})]},B.slug))})]})})}):s.jsx(Um,{columns:XN,items:M,getItemId:B=>B.slug,getColumnId:B=>B.status,canDrop:({fromColumnId:B,toColumnId:Y})=>({allowed:!0,reason:B===Y?void 0:"This will set a manual status override on the project."}),onMove:async({item:B,fromColumnId:Y,toColumnId:H,fromIndex:Q,toIndex:J})=>{var Z;if(Y===H){const oe=O[Y]??D.filter(te=>te.status===Y).map(te=>te.slug);P(te=>({...te,[Y]:gV(oe,Q,J)}));return}try{const oe=await fetch(`/api/projects/${B.slug}/status-override`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:H})});if(!oe.ok){const ue=await oe.json().catch(()=>null);u((ue==null?void 0:ue.error)||`HTTP ${oe.status}`,"error");return}a();const te=((Z=XN.find(ue=>ue.id===H))==null?void 0:Z.title)??H;u(`Moved "${B.title}" to ${te}`,"success")}catch(oe){u(oe instanceof Error?oe.message:"Failed to move project","error")}},getExternalDragData:B=>({type:"project",id:B.slug}),onCardContextMenu:(B,Y)=>{Y.preventDefault(),I({project:B,anchor:{x:Y.clientX,y:Y.clientY}})},emptyMessage:B=>`No ${B.title.toLowerCase()} projects.`,renderCard:(B,{dragging:Y})=>{const H=$.get(B.slug)??-1;return s.jsx("div",{...H>=0?V(H):{},children:s.jsx(jV,{project:B,dragging:Y})})}}),s.jsx(xP,{anchor:(W==null?void 0:W.anchor)??null,items:W?[{key:"edit",label:"Edit",icon:jc,onSelect:()=>n(`${t}/projects/${W.project.slug}`)},{key:"move",label:"Move to workspace…",icon:om,onSelect:()=>U(W.project)}]:[],onClose:()=>I(null)}),s.jsx(s0,{open:z!==null,onOpenChange:B=>{B||U(null)},currentWorkspace:(z==null?void 0:z.workspace)??null,title:"Move project to workspace",onSubmit:async B=>{if(!z)return;const Y=await fetch(`/api/projects/${encodeURIComponent(z.slug)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspace:B})});if(!Y.ok){const H=await Y.json().catch(()=>({}));throw new Error(H.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(qv,{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 bV={pending:"Pending",active:"Active",blocked:"Blocked",failed:"Failed",completed:"Completed"},XN=r0.map(e=>({id:e,title:bV[e],description:Yd(e)}));function vV(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 wV(e){return Object.fromEntries(r0.map(t=>[t,e.filter(n=>n.status===t).map(n=>n.slug)]))}function jV({project:e,dragging:t}){const n=xn();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 ",Xn(e.updated)]})]}),s.jsx(ro,{status:e.status})]}),s.jsx("div",{className:"mt-4",children:s.jsx(Dh,{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 $h({title:e,description:t,actions:n,className:r}){return s.jsxs("div",{className:ve("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 kV(){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(sm,{className:"h-3 w-3"}),"Archived"]})}function JN(e){return e.projectSlug?`/projects/${e.projectSlug}/assignments/${e.slug}`:`/assignments/${e.id}`}function NV(){const{data:e,loading:t,error:n,refetch:r}=nO(),[o,i]=m.useState(null),[a,l]=m.useState(null),[u,f]=m.useState({}),{toast:p,showToast:h,dismissToast:g}=Wn();async function y(N,C,A){i(C),l(null);try{const T=await fetch(N,{method:"POST",headers:{"Content-Type":"application/json"}});if(!T.ok){const _=await T.json().catch(()=>null);throw new Error((_==null?void 0:_.error)||`HTTP ${T.status}`)}r(),h(A,"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(Tt,{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(Vn,{toast:p,onDismiss:g}),s.jsx($h,{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(A=>({...A,[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(tr,{className:"h-4 w-4"}):s.jsx(Vv,{className:"h-4 w-4"}),s.jsx(Wv,{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?Sr(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(A=>s.jsxs("li",{className:"flex flex-wrap items-center gap-2 text-sm",children:[s.jsx($e,{to:JN(A),className:"text-foreground hover:text-foreground/80",children:A.title}),s.jsx(ro,{status:A.status,showIcon:!1}),s.jsx("span",{className:"text-xs text-muted-foreground",children:A.archived?"Archived individually — stays archived after restore":"Hidden via project — returns on restore"})]},A.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:JN(N),className:"text-sm font-medium text-foreground hover:text-foreground/80",children:N.title}),s.jsx(ro,{status:N.status,showIcon:!1}),s.jsx(kV,{}),s.jsxs("span",{className:"text-xs text-muted-foreground",children:[N.projectTitle??"Standalone"," · Archived"," ",N.archivedAt?Sr(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 ZN="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",eS="block min-w-0 truncate";function yP({externalIds:e,className:t}){return e.length===0?null:s.jsx("span",{className:ve("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:ve(ZN,"transition-colors hover:text-foreground hover:border-foreground/40"),title:`Open ${o} in ${n.system}`,children:[s.jsx("span",{className:eS,children:o}),s.jsx(vc,{className:"h-2.5 w-2.5 shrink-0"})]},i):s.jsx("span",{className:ZN,title:o,children:s.jsx("span",{className:eS,children:o})},i)})})}const SV={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 Yn({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=ve(SV[(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 tS(e){const t=CV(e),n=m.forwardRef((r,o)=>{const{children:i,...a}=r,l=m.Children.toArray(i),u=l.find(TV);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 CV(e){const t=m.forwardRef((n,r)=>{const{children:o,...i}=n;if(m.isValidElement(o)){const a=AV(o),l=RV(i,o.props);return o.type!==m.Fragment&&(l.ref=r?ym(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 EV=Symbol("radix.slottable");function TV(e){return m.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===EV}function RV(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 AV(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 PV(e){const t=e+"CollectionProvider",[n,r]=Aa(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=tS(l),f=Ot.forwardRef((v,b)=>{const{scope:j,children:S}=v,N=i(l,j),C=nr(b,N.collectionRef);return s.jsx(u,{ref:C,children:S})});f.displayName=l;const p=e+"CollectionItemSlot",h="data-radix-collection-item",g=tS(p),y=Ot.forwardRef((v,b)=>{const{scope:j,children:S,...N}=v,C=Ot.useRef(null),A=nr(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:A,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,_)=>N.indexOf(T.ref.current)-N.indexOf(_.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:a,Slot:f,ItemSlot:y},k,r]}var _V=m.createContext(void 0);function bP(e){const t=m.useContext(_V);return e||t||"ltr"}var Ay="rovingFocusGroup.onEntryFocus",DV={bubbles:!1,cancelable:!0},Qd="RovingFocusGroup",[nv,vP,$V]=PV(Qd),[IV,wP]=Aa(Qd,[$V]),[MV,LV]=IV(Qd),jP=m.forwardRef((e,t)=>s.jsx(nv.Provider,{scope:e.__scopeRovingFocusGroup,children:s.jsx(nv.Slot,{scope:e.__scopeRovingFocusGroup,children:s.jsx(OV,{...e,ref:t})})}));jP.displayName=Qd;var OV=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=nr(t,g),k=bP(i),[v,b]=bm({prop:a,defaultProp:l??null,onChange:u,caller:Qd}),[j,S]=m.useState(!1),N=wa(f),C=vP(n),A=m.useRef(!1),[T,_]=m.useState(0);return m.useEffect(()=>{const O=g.current;if(O)return O.addEventListener(Ay,N),()=>O.removeEventListener(Ay,N)},[N]),s.jsx(MV,{scope:n,orientation:r,dir:k,loop:o,currentTabStopId:v,onItemFocus:m.useCallback(O=>b(O),[b]),onItemShiftTab:m.useCallback(()=>S(!0),[]),onFocusableItemAdd:m.useCallback(()=>_(O=>O+1),[]),onFocusableItemRemove:m.useCallback(()=>_(O=>O-1),[]),children:s.jsx(Nn.div,{tabIndex:j||T===0?-1:0,"data-orientation":r,...h,ref:y,style:{outline:"none",...e.style},onMouseDown:sn(e.onMouseDown,()=>{A.current=!0}),onFocus:sn(e.onFocus,O=>{const P=!A.current;if(O.target===O.currentTarget&&P&&!j){const W=new CustomEvent(Ay,DV);if(O.currentTarget.dispatchEvent(W),!W.defaultPrevented){const I=C().filter(M=>M.focusable),z=I.find(M=>M.active),U=I.find(M=>M.id===v),F=[z,U,...I].filter(Boolean).map(M=>M.ref.current);SP(F,p)}}A.current=!1}),onBlur:sn(e.onBlur,()=>S(!1))})})}),kP="RovingFocusGroupItem",NP=m.forwardRef((e,t)=>{const{__scopeRovingFocusGroup:n,focusable:r=!0,active:o=!1,tabStopId:i,children:a,...l}=e,u=Bl(),f=i||u,p=LV(kP,n),h=p.currentTabStopId===f,g=vP(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(Nn.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?UV(N,C+1):N.slice(C+1)}setTimeout(()=>SP(N))}}),children:typeof a=="function"?a({isCurrentTabStop:h,hasTabStop:v!=null}):a})})});NP.displayName=kP;var FV={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function zV(e,t){return t!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function BV(e,t,n){const r=zV(e.key,n);if(!(t==="vertical"&&["ArrowLeft","ArrowRight"].includes(r))&&!(t==="horizontal"&&["ArrowUp","ArrowDown"].includes(r)))return FV[r]}function SP(e,t=!1){const n=document.activeElement;for(const r of e)if(r===n||(r.focus({preventScroll:t}),document.activeElement!==n))return}function UV(e,t){return e.map((n,r)=>e[(t+r)%e.length])}var HV=jP,VV=NP,Gm="Tabs",[WV]=Aa(Gm,[wP]),CP=wP(),[KV,o0]=WV(Gm),EP=m.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,onValueChange:o,defaultValue:i,orientation:a="horizontal",dir:l,activationMode:u="automatic",...f}=e,p=bP(l),[h,g]=bm({prop:r,onChange:o,defaultProp:i??"",caller:Gm});return s.jsx(KV,{scope:n,baseId:Bl(),value:h,onValueChange:g,orientation:a,dir:p,activationMode:u,children:s.jsx(Nn.div,{dir:p,"data-orientation":a,...f,ref:t})})});EP.displayName=Gm;var TP="TabsList",RP=m.forwardRef((e,t)=>{const{__scopeTabs:n,loop:r=!0,...o}=e,i=o0(TP,n),a=CP(n);return s.jsx(HV,{asChild:!0,...a,orientation:i.orientation,dir:i.dir,loop:r,children:s.jsx(Nn.div,{role:"tablist","aria-orientation":i.orientation,...o,ref:t})})});RP.displayName=TP;var AP="TabsTrigger",PP=m.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,disabled:o=!1,...i}=e,a=o0(AP,n),l=CP(n),u=$P(a.baseId,r),f=IP(a.baseId,r),p=r===a.value;return s.jsx(VV,{asChild:!0,...l,focusable:!o,active:p,children:s.jsx(Nn.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)})})})});PP.displayName=AP;var _P="TabsContent",DP=m.forwardRef((e,t)=>{const{__scopeTabs:n,value:r,forceMount:o,children:i,...a}=e,l=o0(_P,n),u=$P(l.baseId,r),f=IP(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(Pa,{present:o||p,children:({present:g})=>s.jsx(Nn.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})})});DP.displayName=_P;function $P(e,t){return`${e}-trigger-${t}`}function IP(e,t){return`${e}-content-${t}`}var MP=EP,LP=RP,rv=PP,sv=DP;function Ym({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(MP,{value:e,onValueChange:t,className:r,children:[s.jsxs("div",{className:"relative",children:[s.jsx(LP,{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:ve("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 qV="modulepreload",GV=function(e){return"/"+e},nS={},YV=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=GV(f),f in nS)return;nS[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":qV,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 XV({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 YV(async()=>{const{default:v}=await import("./mermaid.core-BDa2cc2K.js").then(b=>b.bs);return{default:v}},[])).default;if(g.initialize({startOnLoad:!1,theme:"base",themeVariables:QV(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,JV(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:ve("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:ve("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 QV(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 JV(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 ZV(e,t){const n={};return(e[e.length-1]===""?[...e,""]:e).join((n.padRight?" ":"")+","+(n.padLeft===!1?"":" ")).trim()}const eW=/^[$_\p{ID_Start}][$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,tW=/^[$_\p{ID_Start}][-$_\u{200C}\u{200D}\p{ID_Continue}]*$/u,nW={};function rS(e,t){return(nW.jsx?tW:eW).test(e)}const rW=/[ \t\n\f\r]/g;function sW(e){return typeof e=="object"?e.type==="text"?sS(e.value):!1:sS(e)}function sS(e){return e.replace(rW,"")===""}class Jd{constructor(t,n,r){this.normal=n,this.property=t,r&&(this.space=r)}}Jd.prototype.normal={};Jd.prototype.property={};Jd.prototype.space=void 0;function OP(e,t){const n={},r={};for(const o of e)Object.assign(n,o.property),Object.assign(r,o.normal);return new Jd(n,r,t)}function ov(e){return e.toLowerCase()}class Cr{constructor(t,n){this.attribute=n,this.property=t}}Cr.prototype.attribute="";Cr.prototype.booleanish=!1;Cr.prototype.boolean=!1;Cr.prototype.commaOrSpaceSeparated=!1;Cr.prototype.commaSeparated=!1;Cr.prototype.defined=!1;Cr.prototype.mustUseProperty=!1;Cr.prototype.number=!1;Cr.prototype.overloadedBoolean=!1;Cr.prototype.property="";Cr.prototype.spaceSeparated=!1;Cr.prototype.space=void 0;let oW=0;const kt=Da(),wn=Da(),iv=Da(),Me=Da(),Gt=Da(),Yl=Da(),Dr=Da();function Da(){return 2**++oW}const av=Object.freeze(Object.defineProperty({__proto__:null,boolean:kt,booleanish:wn,commaOrSpaceSeparated:Dr,commaSeparated:Yl,number:Me,overloadedBoolean:iv,spaceSeparated:Gt},Symbol.toStringTag,{value:"Module"})),Py=Object.keys(av);class i0 extends Cr{constructor(t,n,r,o){let i=-1;if(super(t,n),oS(this,"space",o),typeof r=="number")for(;++i<Py.length;){const a=Py[i];oS(this,Py[i],(r&av[a])===av[a])}}}i0.prototype.defined=!0;function oS(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 i0(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 Jd(t,n,e.space)}const FP=$c({properties:{ariaActiveDescendant:null,ariaAtomic:wn,ariaAutoComplete:null,ariaBusy:wn,ariaChecked:wn,ariaColCount:Me,ariaColIndex:Me,ariaColSpan:Me,ariaControls:Gt,ariaCurrent:null,ariaDescribedBy:Gt,ariaDetails:null,ariaDisabled:wn,ariaDropEffect:Gt,ariaErrorMessage:null,ariaExpanded:wn,ariaFlowTo:Gt,ariaGrabbed:wn,ariaHasPopup:null,ariaHidden:wn,ariaInvalid:null,ariaKeyShortcuts:null,ariaLabel:null,ariaLabelledBy:Gt,ariaLevel:Me,ariaLive:null,ariaModal:wn,ariaMultiLine:wn,ariaMultiSelectable:wn,ariaOrientation:null,ariaOwns:Gt,ariaPlaceholder:null,ariaPosInSet:Me,ariaPressed:wn,ariaReadOnly:wn,ariaRelevant:null,ariaRequired:wn,ariaRoleDescription:Gt,ariaRowCount:Me,ariaRowIndex:Me,ariaRowSpan:Me,ariaSelected:wn,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 zP(e,t){return t in e?e[t]:t}function BP(e,t){return zP(e,t.toLowerCase())}const iW=$c({attributes:{acceptcharset:"accept-charset",classname:"class",htmlfor:"for",httpequiv:"http-equiv"},mustUseProperty:["checked","multiple","muted","selected"],properties:{abbr:null,accept:Yl,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:wn,controls:kt,controlsList:Gt,coords:Me|Yl,crossOrigin:null,data:null,dateTime:null,decoding:null,default:kt,defer:kt,dir:null,dirName:null,disabled:kt,download:iv,draggable:wn,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:wn,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:wn,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:wn,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:BP}),aW=$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:Dr,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:Yl,g2:Yl,glyphName:Yl,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:Dr,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:Dr,r:null,radius:null,referrerPolicy:null,refX:null,refY:null,rel:Dr,rev:Dr,renderingIntent:null,repeatCount:null,repeatDur:null,requiredExtensions:Dr,requiredFeatures:Dr,requiredFonts:Dr,requiredFormats:Dr,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:Dr,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:Dr,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:Dr,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:zP}),UP=$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()}}),HP=$c({attributes:{xmlnsxlink:"xmlns:xlink"},properties:{xmlnsXLink:null,xmlns:null},space:"xmlns",transform:BP}),VP=$c({properties:{xmlBase:null,xmlLang:null,xmlSpace:null},space:"xml",transform(e,t){return"xml:"+t.slice(3).toLowerCase()}}),lW={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"},cW=/[A-Z]/g,iS=/-[a-z]/g,uW=/^data[-\w.:]+$/i;function dW(e,t){const n=ov(t);let r=t,o=Cr;if(n in e.normal)return e.property[e.normal[n]];if(n.length>4&&n.slice(0,4)==="data"&&uW.test(t)){if(t.charAt(4)==="-"){const i=t.slice(5).replace(iS,pW);r="data"+i.charAt(0).toUpperCase()+i.slice(1)}else{const i=t.slice(4);if(!iS.test(i)){let a=i.replace(cW,fW);a.charAt(0)!=="-"&&(a="-"+a),t="data"+a}}o=i0}return new o(r,t)}function fW(e){return"-"+e.toLowerCase()}function pW(e){return e.charAt(1).toUpperCase()}const hW=OP([FP,iW,UP,HP,VP],"html"),a0=OP([FP,aW,UP,HP,VP],"svg");function mW(e){return e.join(" ").trim()}var jl={},_y,aS;function gW(){if(aS)return _y;aS=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=`
621
+ `,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(D){var F=D.match(t);F&&(S+=F.length);var M=D.lastIndexOf(u);N=~M?D.length-M:N+D.length}function A(){var D={line:S,column:N};return function(F){return F.position=new T(D),P(),F}}function T(D){this.start=D,this.end={line:S,column:N},this.source=j.source}T.prototype.content=b;function _(D){var F=new Error(j.source+":"+S+":"+N+": "+D);if(F.reason=D,F.filename=j.source,F.line=S,F.column=N,F.source=b,!j.silent)throw F}function O(D){var F=D.exec(b);if(F){var M=F[0];return C(M),b=b.slice(M.length),F}}function P(){O(n)}function W(D){var F;for(D=D||[];F=I();)F!==!1&&D.push(F);return D}function I(){var D=A();if(!(f!=b.charAt(0)||p!=b.charAt(1))){for(var F=2;h!=b.charAt(F)&&(p!=b.charAt(F)||f!=b.charAt(F+1));)++F;if(F+=2,h===b.charAt(F-1))return _("End of comment missing");var M=b.slice(2,F-2);return N+=2,C(M),b=b.slice(F),N+=2,D({type:g,comment:M})}}function z(){var D=A(),F=O(r);if(F){if(I(),!O(o))return _("property missing ':'");var M=O(i),K=D({type:y,property:v(F[0].replace(e,h)),value:M?v(M[0].replace(e,h)):h});return O(a),K}}function U(){var D=[];W(D);for(var F;F=z();)F!==!1&&(D.push(F),W(D));return D}return P(),U()}function v(b){return b?b.replace(l,h):h}return _y=k,_y}var lS;function xW(){if(lS)return jl;lS=1;var e=jl&&jl.__importDefault||function(r){return r&&r.__esModule?r:{default:r}};Object.defineProperty(jl,"__esModule",{value:!0}),jl.default=n;const t=e(gW());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 jl}var Nu={},cS;function yW(){if(cS)return Nu;cS=1,Object.defineProperty(Nu,"__esModule",{value:!0}),Nu.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 Nu.camelCase=u,Nu}var Su,uS;function bW(){if(uS)return Su;uS=1;var e=Su&&Su.__importDefault||function(o){return o&&o.__esModule?o:{default:o}},t=e(xW()),n=yW();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,Su=r,Su}var vW=bW();const wW=_d(vW),WP=KP("end"),l0=KP("start");function KP(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 jW(e){const t=l0(e),n=WP(e);if(t&&n)return{start:t,end:n}}function Ju(e){return!e||typeof e!="object"?"":"position"in e||"type"in e?dS(e.position):"start"in e||"end"in e?dS(e):"line"in e||"column"in e?lv(e):""}function lv(e){return fS(e&&e.line)+":"+fS(e&&e.column)}function dS(e){return lv(e&&e.start)+"-"+lv(e&&e.end)}function fS(e){return e&&typeof e=="number"?e:1}class or 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=Ju(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}}or.prototype.file="";or.prototype.name="";or.prototype.reason="";or.prototype.message="";or.prototype.stack="";or.prototype.column=void 0;or.prototype.line=void 0;or.prototype.ancestors=void 0;or.prototype.cause=void 0;or.prototype.fatal=void 0;or.prototype.place=void 0;or.prototype.ruleId=void 0;or.prototype.source=void 0;const c0={}.hasOwnProperty,kW=new Map,NW=/[A-Z]/g,SW=new Set(["table","tbody","thead","tfoot","tr"]),CW=new Set(["td","th"]),qP="https://github.com/syntax-tree/hast-util-to-jsx-runtime";function EW(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=IW(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=$W(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"?a0:hW,stylePropertyNameCase:t.stylePropertyNameCase||"dom",tableCellAlignToStyle:t.tableCellAlignToStyle!==!1},i=GP(o,e,void 0);return i&&typeof i!="string"?i:o.create(e,o.Fragment,{children:i||void 0},void 0)}function GP(e,t,n){if(t.type==="element")return TW(e,t,n);if(t.type==="mdxFlowExpression"||t.type==="mdxTextExpression")return RW(e,t);if(t.type==="mdxJsxFlowElement"||t.type==="mdxJsxTextElement")return PW(e,t,n);if(t.type==="mdxjsEsm")return AW(e,t);if(t.type==="root")return _W(e,t,n);if(t.type==="text")return DW(e,t)}function TW(e,t,n){const r=e.schema;let o=r;t.tagName.toLowerCase()==="svg"&&r.space==="html"&&(o=a0,e.schema=o),e.ancestors.push(t);const i=XP(e,t.tagName,!1),a=MW(e,t);let l=d0(e,t);return SW.has(t.tagName)&&(l=l.filter(function(u){return typeof u=="string"?!sW(u):!0})),YP(e,a,i,t),u0(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function RW(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)}bd(e,t.position)}function AW(e,t){if(t.data&&t.data.estree&&e.evaluater)return e.evaluater.evaluateProgram(t.data.estree);bd(e,t.position)}function PW(e,t,n){const r=e.schema;let o=r;t.name==="svg"&&r.space==="html"&&(o=a0,e.schema=o),e.ancestors.push(t);const i=t.name===null?e.Fragment:XP(e,t.name,!0),a=LW(e,t),l=d0(e,t);return YP(e,a,i,t),u0(a,l),e.ancestors.pop(),e.schema=r,e.create(t,i,a,n)}function _W(e,t,n){const r={};return u0(r,d0(e,t)),e.create(t,e.Fragment,r,n)}function DW(e,t){return t.value}function YP(e,t,n,r){typeof n!="string"&&n!==e.Fragment&&e.passNode&&(t.node=r)}function u0(e,t){if(t.length>0){const n=t.length>1?t:t[0];n&&(e.children=n)}}function $W(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 IW(e,t){return n;function n(r,o,i,a){const l=Array.isArray(i.children),u=l0(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 MW(e,t){const n={};let r,o;for(o in t.properties)if(o!=="children"&&c0.call(t.properties,o)){const i=OW(e,o,t.properties[o]);if(i){const[a,l]=i;e.tableCellAlignToStyle&&a==="align"&&typeof l=="string"&&CW.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 LW(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 bd(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 bd(e,t.position);else i=r.value===null?!0:r.value;n[o]=i}return n}function d0(e,t){const n=[];let r=-1;const o=e.passKeys?new Map:kW;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=GP(e,i,a);l!==void 0&&n.push(l)}return n}function OW(e,t,n){const r=dW(e.schema,t);if(!(n==null||typeof n=="number"&&Number.isNaN(n))){if(Array.isArray(n)&&(n=r.commaSeparated?ZV(n):mW(n)),r.property==="style"){let o=typeof n=="object"?n:FW(e,String(n));return e.stylePropertyNameCase==="css"&&(o=zW(o)),["style",o]}return[e.elementAttributeNameCase==="react"&&r.space?lW[r.property]||r.property:r.attribute,n]}}function FW(e,t){try{return wW(t,{reactCompat:!0})}catch(n){if(e.ignoreInvalidStyle)return{};const r=n,o=new or("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=qP+"#cannot-parse-style-attribute",o}}function XP(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=rS(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=rS(t)&&!/^[a-z]/.test(t)?{type:"Identifier",name:t}:{type:"Literal",value:t};if(r.type==="Literal"){const o=r.value;return c0.call(e.components,o)?e.components[o]:o}if(e.evaluater)return e.evaluater.evaluateExpression(r);bd(e)}function bd(e,t){const n=new or("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=qP+"#cannot-handle-mdx-estrees-without-createevaluater",n}function zW(e){const t={};let n;for(n in e)c0.call(e,n)&&(t[BW(n)]=e[n]);return t}function BW(e){let t=e.replace(NW,UW);return t.slice(0,3)==="ms-"&&(t="-"+t),t}function UW(e){return"-"+e.toLowerCase()}const Dy={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"]},HW={};function VW(e,t){const n=HW,r=typeof n.includeImageAlt=="boolean"?n.includeImageAlt:!0,o=typeof n.includeHtml=="boolean"?n.includeHtml:!0;return QP(e,r,o)}function QP(e,t,n){if(WW(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 pS(e.children,t,n)}return Array.isArray(e)?pS(e,t,n):""}function pS(e,t,n){const r=[];let o=-1;for(;++o<e.length;)r[o]=QP(e[o],t,n);return r.join("")}function WW(e){return!!(e&&typeof e=="object")}const hS=document.createElement("i");function f0(e){const t="&"+e+";";hS.innerHTML=t;const n=hS.textContent;return n.charCodeAt(n.length-1)===59&&e!=="semi"||n===t?!1:n}function so(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 Zr(e,t){return e.length>0?(so(e,e.length,0,t),e):t}const mS={}.hasOwnProperty;function KW(e){const t={};let n=-1;for(;++n<e.length;)qW(t,e[n]);return t}function qW(e,t){let n;for(n in t){const o=(mS.call(e,n)?e[n]:void 0)||(e[n]={}),i=t[n];let a;if(i)for(a in i){mS.call(o,a)||(o[a]=[]);const l=i[a];GW(o[a],Array.isArray(l)?l:l?[l]:[])}}}function GW(e,t){let n=-1;const r=[];for(;++n<t.length;)(t[n].add==="after"?e:r).push(t[n]);so(e,0,0,r)}function JP(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 Xl(e){return e.replace(/[\t\n\r ]+/g," ").replace(/^ | $/g,"").toLowerCase().toUpperCase()}const Ys=Pi(/[A-Za-z]/),zr=Pi(/[\dA-Za-z]/),YW=Pi(/[#-'*+\--9=?A-Z^-~]/);function cv(e){return e!==null&&(e<32||e===127)}const uv=Pi(/\d/),XW=Pi(/[\dA-Fa-f]/),QW=Pi(/[!-/:-@[-`{-~]/);function xt(e){return e!==null&&e<-2}function kr(e){return e!==null&&(e<0||e===32)}function zt(e){return e===-2||e===-1||e===32}const JW=Pi(new RegExp("\\p{P}|\\p{S}","u")),ZW=Pi(/\s/);function Pi(e){return t;function t(n){return n!==null&&n>-1&&e.test(String.fromCharCode(n))}}function Ic(e){const t=[];let n=-1,r=0,o=0;for(;++n<e.length;){const i=e.charCodeAt(n);let a="";if(i===37&&zr(e.charCodeAt(n+1))&&zr(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 eK={tokenize:tK};function tK(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 nK={tokenize:rK},gS={tokenize:sK};function rK(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 A=C,T;for(;A--;)if(t.events[A][0]==="exit"&&t.events[A][1].type==="chunkFlow"){T=t.events[A][1].end;break}j(r);let _=C;for(;_<t.events.length;)t.events[_][1].end={...T},_++;return so(t.events,A+1,0,t.events.slice(C)),t.events.length=_,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(gS,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(gS,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 A=t.sliceStream(N);if(C&&A.push(null),N.previous=i,i&&(i.next=N),i=N,o.defineSkip(N.start),o.write(A),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 _=t.events.length;let O=_,P,W;for(;O--;)if(t.events[O][0]==="exit"&&t.events[O][1].type==="chunkFlow"){if(P){W=t.events[O][1].end;break}P=!0}for(j(r),T=_;T<t.events.length;)t.events[T][1].end={...W},T++;so(t.events,O+1,0,t.events.slice(_)),t.events.length=T}}function j(N){let C=n.length;for(;C-- >N;){const A=n[C];t.containerState=A[1],A[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 sK(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 xS(e){if(e===null||kr(e)||ZW(e))return 1;if(JW(e))return 2}function p0(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:oK,tokenize:iK};function oK(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};yS(h,-u),yS(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=Zr(f,[["enter",e[r][1],t],["exit",e[r][1],t]])),f=Zr(f,[["enter",o,t],["enter",a,t],["exit",a,t],["enter",i,t]]),f=Zr(f,p0(t.parser.constructs.insideSpan.null,e.slice(r+1,n),t)),f=Zr(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=Zr(f,[["enter",e[n][1],t],["exit",e[n][1],t]])):p=0,so(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 iK(e,t){const n=this.parser.constructs.attentionMarkers.null,r=this.previous,o=xS(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=xS(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 yS(e,t){e.column+=t,e.offset+=t,e._bufferIndex+=t}const aK={name:"autolink",tokenize:lK};function lK(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 Ys(y)?(e.consume(y),a):y===64?n(y):f(y)}function a(y){return y===43||y===45||y===46||zr(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||zr(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):YW(y)?(e.consume(y),f):n(y)}function p(y){return zr(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||zr(y))&&r++<63){const k=y===45?g:h;return e.consume(y),k}return n(y)}}const Xm={partial:!0,tokenize:cK};function cK(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 ZP={continuation:{tokenize:dK},exit:fK,name:"blockQuote",tokenize:uK};function uK(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 dK(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(ZP,t,n)(a)}}function fK(e){e.exit("blockQuote")}const e_={name:"characterEscape",tokenize:pK};function pK(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 QW(i)?(e.enter("characterEscapeValue"),e.consume(i),e.exit("characterEscapeValue"),e.exit("characterEscape"),t):n(i)}}const t_={name:"characterReference",tokenize:hK};function hK(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=zr,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=XW,p):(e.enter("characterReferenceValue"),i=7,a=uv,p(h))}function p(h){if(h===59&&o){const g=e.exit("characterReferenceValue");return a===zr&&!f0(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 bS={partial:!0,tokenize:gK},vS={concrete:!0,name:"codeFenced",tokenize:mK};function mK(e,t,n){const r=this,o={partial:!0,tokenize:A};let i=0,a=0,l;return u;function u(T){return f(T)}function f(T){const _=r.events[r.events.length-1];return i=_&&_[1].type==="linePrefix"?_[2].sliceSerialize(_[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(bS,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(bS,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 A(T,_,O){let P=0;return W;function W(F){return T.enter("lineEnding"),T.consume(F),T.exit("lineEnding"),I}function I(F){return T.enter("codeFencedFence"),zt(F)?Yt(T,z,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(F):z(F)}function z(F){return F===l?(T.enter("codeFencedFenceSequence"),U(F)):O(F)}function U(F){return F===l?(P++,T.consume(F),U):P>=a?(T.exit("codeFencedFenceSequence"),zt(F)?Yt(T,D,"whitespace")(F):D(F)):O(F)}function D(F){return F===null||xt(F)?(T.exit("codeFencedFence"),_(F)):O(F)}}}function gK(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 $y={name:"codeIndented",tokenize:yK},xK={partial:!0,tokenize:bK};function yK(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(xK,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 bK(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 vK={name:"codeText",previous:jK,resolve:wK,tokenize:kK};function wK(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 jK(e){return e!==96||this.events[this.events.length-1][1].type==="characterEscape"}function kK(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&&Cu(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),Cu(this.left,t)}unshift(t){this.setCursor(0),this.right.push(t)}unshiftMany(t){this.setCursor(0),Cu(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);Cu(this.right,n.reverse())}else{const n=this.right.splice(this.left.length+this.right.length-t,Number.POSITIVE_INFINITY);Cu(this.left,n.reverse())}}}function Cu(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 n_(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,SK(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 so(e,0,Number.POSITIVE_INFINITY,p.slice(0)),!f}function SK(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 CK={resolve:TK,tokenize:RK},EK={partial:!0,tokenize:AK};function TK(e){return n_(e),e}function RK(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(EK,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 AK(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 r_(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||kr(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 s_(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 o_(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 Zu(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 PK={name:"definition",tokenize:DK},_K={partial:!0,tokenize:$K};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 s_.call(r,e,l,n,"definitionLabel","definitionLabelMarker","definitionLabelString")(y)}function l(y){return o=Xl(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 kr(y)?Zu(e,f)(y):f(y)}function f(y){return r_(e,p,n,"definitionDestination","definitionDestinationLiteral","definitionDestinationLiteralMarker","definitionDestinationRaw","definitionDestinationString")(y)}function p(y){return e.attempt(_K,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 $K(e,t,n){return r;function r(l){return kr(l)?Zu(e,o)(l):n(l)}function o(l){return o_(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 IK={name:"hardBreakEscape",tokenize:MK};function MK(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 LK={name:"headingAtx",resolve:OK,tokenize:FK};function OK(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"},so(e,r,n-r+1,[["enter",o,t],["enter",i,t],["exit",i,t],["exit",o,t]])),e}function FK(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||kr(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||kr(p)?(e.exit("atxHeadingText"),l(p)):(e.consume(p),f)}}const zK=["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"],wS=["pre","script","style","textarea"],BK={concrete:!0,name:"htmlFlow",resolveTo:VK,tokenize:WK},UK={partial:!0,tokenize:qK},HK={partial:!0,tokenize:KK};function VK(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 WK(e,t,n){const r=this;let o,i,a,l,u;return f;function f(H){return p(H)}function p(H){return e.enter("htmlFlow"),e.enter("htmlFlowData"),e.consume(H),h}function h(H){return H===33?(e.consume(H),g):H===47?(e.consume(H),i=!0,v):H===63?(e.consume(H),o=3,r.interrupt?t:L):Ys(H)?(e.consume(H),a=String.fromCharCode(H),b):n(H)}function g(H){return H===45?(e.consume(H),o=2,y):H===91?(e.consume(H),o=5,l=0,k):Ys(H)?(e.consume(H),o=4,r.interrupt?t:L):n(H)}function y(H){return H===45?(e.consume(H),r.interrupt?t:L):n(H)}function k(H){const Q="CDATA[";return H===Q.charCodeAt(l++)?(e.consume(H),l===Q.length?r.interrupt?t:z:k):n(H)}function v(H){return Ys(H)?(e.consume(H),a=String.fromCharCode(H),b):n(H)}function b(H){if(H===null||H===47||H===62||kr(H)){const Q=H===47,J=a.toLowerCase();return!Q&&!i&&wS.includes(J)?(o=1,r.interrupt?t(H):z(H)):zK.includes(a.toLowerCase())?(o=6,Q?(e.consume(H),j):r.interrupt?t(H):z(H)):(o=7,r.interrupt&&!r.parser.lazy[r.now().line]?n(H):i?S(H):N(H))}return H===45||zr(H)?(e.consume(H),a+=String.fromCharCode(H),b):n(H)}function j(H){return H===62?(e.consume(H),r.interrupt?t:z):n(H)}function S(H){return zt(H)?(e.consume(H),S):W(H)}function N(H){return H===47?(e.consume(H),W):H===58||H===95||Ys(H)?(e.consume(H),C):zt(H)?(e.consume(H),N):W(H)}function C(H){return H===45||H===46||H===58||H===95||zr(H)?(e.consume(H),C):A(H)}function A(H){return H===61?(e.consume(H),T):zt(H)?(e.consume(H),A):N(H)}function T(H){return H===null||H===60||H===61||H===62||H===96?n(H):H===34||H===39?(e.consume(H),u=H,_):zt(H)?(e.consume(H),T):O(H)}function _(H){return H===u?(e.consume(H),u=null,P):H===null||xt(H)?n(H):(e.consume(H),_)}function O(H){return H===null||H===34||H===39||H===47||H===60||H===61||H===62||H===96||kr(H)?A(H):(e.consume(H),O)}function P(H){return H===47||H===62||zt(H)?N(H):n(H)}function W(H){return H===62?(e.consume(H),I):n(H)}function I(H){return H===null||xt(H)?z(H):zt(H)?(e.consume(H),I):n(H)}function z(H){return H===45&&o===2?(e.consume(H),M):H===60&&o===1?(e.consume(H),K):H===62&&o===4?(e.consume(H),B):H===63&&o===3?(e.consume(H),L):H===93&&o===5?(e.consume(H),V):xt(H)&&(o===6||o===7)?(e.exit("htmlFlowData"),e.check(UK,Y,U)(H)):H===null||xt(H)?(e.exit("htmlFlowData"),U(H)):(e.consume(H),z)}function U(H){return e.check(HK,D,Y)(H)}function D(H){return e.enter("lineEnding"),e.consume(H),e.exit("lineEnding"),F}function F(H){return H===null||xt(H)?U(H):(e.enter("htmlFlowData"),z(H))}function M(H){return H===45?(e.consume(H),L):z(H)}function K(H){return H===47?(e.consume(H),a="",$):z(H)}function $(H){if(H===62){const Q=a.toLowerCase();return wS.includes(Q)?(e.consume(H),B):z(H)}return Ys(H)&&a.length<8?(e.consume(H),a+=String.fromCharCode(H),$):z(H)}function V(H){return H===93?(e.consume(H),L):z(H)}function L(H){return H===62?(e.consume(H),B):H===45&&o===2?(e.consume(H),L):z(H)}function B(H){return H===null||xt(H)?(e.exit("htmlFlowData"),Y(H)):(e.consume(H),B)}function Y(H){return e.exit("htmlFlow"),t(H)}}function KK(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 qK(e,t,n){return r;function r(o){return e.enter("lineEnding"),e.consume(o),e.exit("lineEnding"),e.attempt(Xm,t,n)}}const GK={name:"htmlText",tokenize:YK};function YK(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),A):L===63?(e.consume(L),N):Ys(L)?(e.consume(L),O):n(L)}function f(L){return L===45?(e.consume(L),p):L===91?(e.consume(L),i=0,k):Ys(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?M(L):L===45?g(L):h(L)}function k(L){const B="CDATA[";return L===B.charCodeAt(i++)?(e.consume(L),i===B.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?M(L):L===93?(e.consume(L),j):v(L)}function S(L){return L===null||L===62?M(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?M(L):N(L)}function A(L){return Ys(L)?(e.consume(L),T):n(L)}function T(L){return L===45||zr(L)?(e.consume(L),T):_(L)}function _(L){return xt(L)?(a=_,K(L)):zt(L)?(e.consume(L),_):M(L)}function O(L){return L===45||zr(L)?(e.consume(L),O):L===47||L===62||kr(L)?P(L):n(L)}function P(L){return L===47?(e.consume(L),M):L===58||L===95||Ys(L)?(e.consume(L),W):xt(L)?(a=P,K(L)):zt(L)?(e.consume(L),P):M(L)}function W(L){return L===45||L===46||L===58||L===95||zr(L)?(e.consume(L),W):I(L)}function I(L){return L===61?(e.consume(L),z):xt(L)?(a=I,K(L)):zt(L)?(e.consume(L),I):P(L)}function z(L){return L===null||L===60||L===61||L===62||L===96?n(L):L===34||L===39?(e.consume(L),o=L,U):xt(L)?(a=z,K(L)):zt(L)?(e.consume(L),z):(e.consume(L),D)}function U(L){return L===o?(e.consume(L),o=void 0,F):L===null?n(L):xt(L)?(a=U,K(L)):(e.consume(L),U)}function D(L){return L===null||L===34||L===39||L===60||L===61||L===96?n(L):L===47||L===62||kr(L)?P(L):(e.consume(L),D)}function F(L){return L===47||L===62||kr(L)?P(L):n(L)}function M(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"),$}function $(L){return zt(L)?Yt(e,V,"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(L):V(L)}function V(L){return e.enter("htmlTextData"),a(L)}}const h0={name:"labelEnd",resolveAll:ZK,resolveTo:eq,tokenize:tq},XK={tokenize:nq},QK={tokenize:rq},JK={tokenize:sq};function ZK(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&&so(e,0,e.length,n),e}function eq(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=Zr(l,e.slice(i+1,i+r+3)),l=Zr(l,[["enter",p,t]]),l=Zr(l,p0(t.parser.constructs.insideSpan.null,e.slice(i+r+4,a-3),t)),l=Zr(l,[["exit",p,t],e[a-2],e[a-1],["exit",f,t]]),l=Zr(l,e.slice(a+1)),l=Zr(l,[["exit",u,t]]),so(e,i,e.length,l),e}function tq(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(Xl(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(XK,p,a?p:h)(g):g===91?e.attempt(QK,p,a?f:h)(g):a?p(g):h(g)}function f(g){return e.attempt(JK,p,h)(g)}function p(g){return t(g)}function h(g){return i._balanced=!0,n(g)}}function nq(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 kr(h)?Zu(e,i)(h):i(h)}function i(h){return h===41?p(h):r_(e,a,l,"resourceDestination","resourceDestinationLiteral","resourceDestinationLiteralMarker","resourceDestinationRaw","resourceDestinationString",32)(h)}function a(h){return kr(h)?Zu(e,u)(h):p(h)}function l(h){return n(h)}function u(h){return h===34||h===39||h===40?o_(e,f,n,"resourceTitle","resourceTitleMarker","resourceTitleString")(h):p(h)}function f(h){return kr(h)?Zu(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 rq(e,t,n){const r=this;return o;function o(l){return s_.call(r,e,i,a,"reference","referenceMarker","referenceString")(l)}function i(l){return r.parser.defined.includes(Xl(r.sliceSerialize(r.events[r.events.length-1][1]).slice(1,-1)))?t(l):n(l)}function a(l){return n(l)}}function sq(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 oq={name:"labelStartImage",resolveAll:h0.resolveAll,tokenize:iq};function iq(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 aq={name:"labelStartLink",resolveAll:h0.resolveAll,tokenize:lq};function lq(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 Iy={name:"lineEnding",tokenize:cq};function cq(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:uq};function uq(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 xr={continuation:{tokenize:hq},exit:gq,name:"list",tokenize:pq},dq={partial:!0,tokenize:xq},fq={partial:!0,tokenize:mq};function pq(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(Xm,r.interrupt?n:p,e.attempt(dq,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 hq(e,t,n){const r=this;return r.containerState._closeFlow=void 0,e.check(Xm,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(fq,t,a)(l))}function a(l){return r.containerState._closeFlow=!0,r.interrupt=void 0,Yt(e,e.attempt(xr,t,n),"linePrefix",r.parser.constructs.disable.null.includes("codeIndented")?void 0:4)(l)}}function mq(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 gq(e){e.exit(this.containerState.type)}function xq(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 jS={name:"setextUnderline",resolveTo:yq,tokenize:bq};function yq(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 bq(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 vq={tokenize:wq};function wq(e){const t=this,n=e.attempt(Xm,r,e.attempt(this.parser.constructs.flowInitial,o,Yt(e,e.attempt(this.parser.constructs.flow,o,e.attempt(CK,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 jq={resolveAll:a_()},kq=i_("string"),Nq=i_("text");function i_(e){return{resolveAll:a_(e==="text"?Sq: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 a_(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 Sq(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 Cq={42:xr,43:xr,45:xr,48:xr,49:xr,50:xr,51:xr,52:xr,53:xr,54:xr,55:xr,56:xr,57:xr,62:ZP},Eq={91:PK},Tq={[-2]:$y,[-1]:$y,32:$y},Rq={35:LK,42:eh,45:[jS,eh],60:BK,61:jS,95:eh,96:vS,126:vS},Aq={38:t_,92:e_},Pq={[-5]:Iy,[-4]:Iy,[-3]:Iy,33:oq,38:t_,42:dv,60:[aK,GK],91:aq,92:[IK,e_],93:h0,95:dv,96:vK},_q={null:[dv,jq]},Dq={null:[42,95]},$q={null:[]},Iq=Object.freeze(Object.defineProperty({__proto__:null,attentionMarkers:Dq,contentInitial:Eq,disable:$q,document:Cq,flow:Rq,flowInitial:Tq,insideSpan:_q,string:Aq,text:Pq},Symbol.toStringTag,{value:"Module"}));function Mq(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:_(A),check:_(T),consume:S,enter:N,exit:C,interrupt:_(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(I){return a=Zr(a,I),b(),a[a.length-1]!==null?[]:(O(t,0),f.events=p0(i,f.events,f),f.events)}function g(I,z){return Oq(y(I),z)}function y(I){return Lq(a,I)}function k(){const{_bufferIndex:I,_index:z,line:U,column:D,offset:F}=r;return{_bufferIndex:I,_index:z,line:U,column:D,offset:F}}function v(I){o[I.line]=I.column,W()}function b(){let I;for(;r._index<a.length;){const z=a[r._index];if(typeof z=="string")for(I=r._index,r._bufferIndex<0&&(r._bufferIndex=0);r._index===I&&r._bufferIndex<z.length;)j(z.charCodeAt(r._bufferIndex));else j(z)}}function j(I){p=p(I)}function S(I){xt(I)?(r.line++,r.column=1,r.offset+=I===-3?2:1,W()):I!==-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=I}function N(I,z){const U=z||{};return U.type=I,U.start=k(),f.events.push(["enter",U,f]),l.push(U),U}function C(I){const z=l.pop();return z.end=k(),f.events.push(["exit",z,f]),z}function A(I,z){O(I,z.from)}function T(I,z){z.restore()}function _(I,z){return U;function U(D,F,M){let K,$,V,L;return Array.isArray(D)?Y(D):"tokenize"in D?Y([D]):B(D);function B(Z){return oe;function oe(te){const ue=te!==null&&Z[te],ge=te!==null&&Z.null,Ce=[...Array.isArray(ue)?ue:ue?[ue]:[],...Array.isArray(ge)?ge:ge?[ge]:[]];return Y(Ce)(te)}}function Y(Z){return K=Z,$=0,Z.length===0?M:H(Z[$])}function H(Z){return oe;function oe(te){return L=P(),V=Z,Z.partial||(f.currentConstruct=Z),Z.name&&f.parser.constructs.disable.null.includes(Z.name)?J():Z.tokenize.call(z?Object.assign(Object.create(f),z):f,u,Q,J)(te)}}function Q(Z){return I(V,L),F}function J(Z){return L.restore(),++$<K.length?H(K[$]):M}}}function O(I,z){I.resolveAll&&!i.includes(I)&&i.push(I),I.resolve&&so(f.events,z,f.events.length-z,I.resolve(f.events.slice(z),f)),I.resolveTo&&(f.events=I.resolveTo(f.events,f))}function P(){const I=k(),z=f.previous,U=f.currentConstruct,D=f.events.length,F=Array.from(l);return{from:D,restore:M};function M(){r=I,f.previous=z,f.currentConstruct=U,f.events.length=D,l=F,W()}}function W(){r.line in o&&r.column<2&&(r.column=o[r.line],r.offset+=o[r.line]-1)}}function Lq(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 Oq(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=`
622
+ `;break}case-3:{a=`\r
623
+ `;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 Fq(e){const r={constructs:KW([Iq,...(e||{}).extensions||[]]),content:o(eK),defined:[],document:o(nK),flow:o(vq),lazy:{},string:o(kq),text:o(Nq)};return r;function o(i){return a;function a(l){return Mq(r,i,l)}}}function zq(e){for(;!n_(e););return e}const kS=/[\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(kS.lastIndex=h,f=kS.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 Uq=/\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi;function Hq(e){return e.replace(Uq,Vq)}function Vq(e,t,n){if(t)return t;if(n.charCodeAt(0)===35){const o=n.charCodeAt(1),i=o===120||o===88;return JP(n.slice(i?2:1),i?16:10)}return f0(n)||e}const l_={}.hasOwnProperty;function Wq(e,t,n){return t&&typeof t=="object"&&(n=t,t=void 0),Kq(n)(zq(Fq(n).document().write(Bq()(e,t,!0))))}function Kq(e){const t={transforms:[],canContainEols:["emphasis","fragment","heading","paragraph","strong"],enter:{autolink:i(Ue),autolinkProtocol:P,autolinkEmail:P,atxHeading:i(ie),blockQuote:i(ge),characterEscape:P,characterReference:P,codeFenced:i(Ce),codeFencedFenceInfo:a,codeFencedFenceMeta:a,codeIndented:i(Ce,a),codeText:i(Se,a),codeTextData:P,data:P,codeFlowValue:P,definition:i(ke),definitionDestinationString:a,definitionLabelString:a,definitionTitleString:a,emphasis:i(Be),hardBreakEscape:i(be),hardBreakTrailing:i(be),htmlFlow:i(ye,a),htmlFlowData:P,htmlText:i(ye,a),htmlTextData:P,image:i(Re),label:a,link:i(Ue),listItem:i(Oe),listItemValue:g,listOrdered:i(rt,h),listUnordered:i(rt),paragraph:i(ot),reference:H,referenceString:a,resourceDestinationString:a,resourceTitleString:a,setextHeading:i(ie),strong:i(St),thematicBreak:i(it)},exit:{atxHeading:u(),atxHeadingSequence:A,autolink:u(),autolinkEmail:ue,autolinkProtocol:te,blockQuote:u(),characterEscapeValue:W,characterReferenceMarkerHexadecimal:J,characterReferenceMarkerNumeric:J,characterReferenceValue:Z,characterReference:oe,codeFenced:u(b),codeFencedFence:v,codeFencedFenceInfo:y,codeFencedFenceMeta:k,codeFlowValue:W,codeIndented:u(j),codeText:u(F),codeTextData:W,data:W,definition:u(),definitionDestinationString:C,definitionLabelString:S,definitionTitleString:N,emphasis:u(),hardBreakEscape:u(z),hardBreakTrailing:u(z),htmlFlow:u(U),htmlFlowData:W,htmlText:u(D),htmlTextData:W,image:u(K),label:V,labelText:$,lineEnding:I,link:u(M),listItem:u(),listOrdered:u(),listUnordered:u(),paragraph:u(),referenceString:Q,resourceDestinationString:L,resourceTitleString:B,resource:Y,setextHeading:u(O),setextHeadingLineSequence:_,setextHeadingText:T,strong:u(),thematicBreak:u()}};c_(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},Pe=[];let Ve=-1;for(;++Ve<ce.length;)if(ce[Ve][1].type==="listOrdered"||ce[Ve][1].type==="listUnordered")if(ce[Ve][0]==="enter")Pe.push(Ve);else{const pt=Pe.pop();Ve=o(ce,pt,Ve)}for(Ve=-1;++Ve<ce.length;){const pt=t[ce[Ve][0]];l_.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]||NS).call(Ie,void 0,pt[0])}for(me.position={start:ui(ce.length>0?ce[0][1].start:{line:1,column:1,offset:0}),end:ui(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 Pe=me-1,Ve=-1,pt=!1,_e,Qe,Je,ut;for(;++Pe<=Ie;){const fe=ce[Pe];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=Pe),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=Pe;for(Qe=void 0;q--;){const ne=ce[q];if(ne[1].type==="lineEnding"||ne[1].type==="lineEndingBlank"){if(ne[0]==="exit")continue;Qe&&(ce[Qe][1].type="lineEndingBlank",pt=!0),ne[1].type="lineEnding",Qe=q}else if(!(ne[1].type==="linePrefix"||ne[1].type==="blockQuotePrefix"||ne[1].type==="blockQuotePrefixWhitespace"||ne[1].type==="blockQuoteMarker"||ne[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||Pe,0,["exit",_e,fe[2]]),Pe++,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(Pe,0,["enter",q,fe[2]]),Pe++,Ie++,Je=void 0,ut=!0}}}return ce[me][1]._spread=pt,Ie}function i(ce,me){return Ie;function Ie(Pe){l.call(this,ce(Pe),Pe),me&&me.call(this,Pe)}}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:ui(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(),Pe=this.tokenStack.pop();if(Pe)Pe[0].type!==ce.type&&(me?me.call(this,ce,Pe[0]):(Pe[1]||NS).call(this,ce,Pe[0]));else throw new Error("Cannot close `"+ce.type+"` ("+Ju({start:ce.start,end:ce.end})+"): it’s not open");Ie.position.end=ui(ce.end)}function p(){return VW(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=Xl(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 A(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 _(ce){const me=this.stack[this.stack.length-1];me.depth=this.sliceSerialize(ce).codePointAt(0)===61?1:2}function O(){this.data.setextHeadingSlurpLineEnding=void 0}function P(ce){const Ie=this.stack[this.stack.length-1].children;let Pe=Ie[Ie.length-1];(!Pe||Pe.type!=="text")&&(Pe=ht(),Pe.position={start:ui(ce.start),end:void 0},Ie.push(Pe)),this.stack.push(Pe)}function W(ce){const me=this.stack.pop();me.value+=this.sliceSerialize(ce),me.position.end=ui(ce.end)}function I(ce){const me=this.stack[this.stack.length-1];if(this.data.atHardBreak){const Ie=me.children[me.children.length-1];Ie.position.end=ui(ce.end),this.data.atHardBreak=void 0;return}!this.data.setextHeadingSlurpLineEnding&&t.canContainEols.includes(me.type)&&(P.call(this,ce),W.call(this,ce))}function z(){this.data.atHardBreak=!0}function U(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.value=ce}function D(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.value=ce}function F(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.value=ce}function M(){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 $(ce){const me=this.sliceSerialize(ce),Ie=this.stack[this.stack.length-2];Ie.label=Hq(me),Ie.identifier=Xl(me).toLowerCase()}function V(){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 Pe=ce.children;Ie.children=Pe}else Ie.alt=me}function L(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.url=ce}function B(){const ce=this.resume(),me=this.stack[this.stack.length-1];me.title=ce}function Y(){this.data.inReference=void 0}function H(){this.data.referenceType="collapsed"}function Q(ce){const me=this.resume(),Ie=this.stack[this.stack.length-1];Ie.label=me,Ie.identifier=Xl(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 Pe;Ie?(Pe=JP(me,Ie==="characterReferenceMarkerNumeric"?10:16),this.data.characterReferenceType=void 0):Pe=f0(me);const Ve=this.stack[this.stack.length-1];Ve.value+=Pe}function oe(ce){const me=this.stack.pop();me.position.end=ui(ce.end)}function te(ce){W.call(this,ce);const me=this.stack[this.stack.length-1];me.url=this.sliceSerialize(ce)}function ue(ce){W.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 be(){return{type:"break"}}function ye(){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 ht(){return{type:"text",value:""}}function it(){return{type:"thematicBreak"}}}function ui(e){return{line:e.line,column:e.column,offset:e.offset}}function c_(e,t){let n=-1;for(;++n<t.length;){const r=t[n];Array.isArray(r)?c_(e,r):qq(e,r)}}function qq(e,t){let n;for(n in t)if(l_.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 NS(e,t){throw e?new Error("Cannot close `"+e.type+"` ("+Ju({start:e.start,end:e.end})+"): a different token (`"+t.type+"`, "+Ju({start:t.start,end:t.end})+") is open"):new Error("Cannot close document, a token (`"+t.type+"`, "+Ju({start:t.start,end:t.end})+") is still open")}function Gq(e){const t=this;t.parser=n;function n(r){return Wq(r,{...t.data("settings"),...e,extensions:t.data("micromarkExtensions")||[],mdastExtensions:t.data("fromMarkdownExtensions")||[]})}}function Yq(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 Xq(e,t){const n={type:"element",tagName:"br",properties:{},children:[]};return e.patch(t,n),[e.applyData(t,n),{type:"text",value:`
624
+ `}]}function Qq(e,t){const n=t.value?t.value+`
625
+ `:"",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 Jq(e,t){const n={type:"element",tagName:"del",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function Zq(e,t){const n={type:"element",tagName:"em",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function eG(e,t){const n=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",r=String(t.identifier).toUpperCase(),o=Ic(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 tG(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 nG(e,t){if(e.options.allowDangerousHtml){const n={type:"raw",value:t.value};return e.patch(t,n),e.applyData(t,n)}}function u_(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 rG(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return u_(e,t);const o={src:Ic(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 sG(e,t){const n={src:Ic(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 oG(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 iG(e,t){const n=String(t.identifier).toUpperCase(),r=e.definitionById.get(n);if(!r)return u_(e,t);const o={href:Ic(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 aG(e,t){const n={href:Ic(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 lG(e,t,n){const r=e.all(t),o=n?cG(n):d_(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:`
626
+ `}),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:`
627
+ `});const f={type:"element",tagName:"li",properties:i,children:a};return e.patch(t,f),e.applyData(t,f)}function cG(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=d_(n[r])}return t}function d_(e){const t=e.spread;return t??e.children.length>1}function uG(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 dG(e,t){const n={type:"element",tagName:"p",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function fG(e,t){const n={type:"root",children:e.wrap(e.all(t))};return e.patch(t,n),e.applyData(t,n)}function pG(e,t){const n={type:"element",tagName:"strong",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}function hG(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=l0(t.children[1]),u=WP(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 mG(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 gG(e,t){const n={type:"element",tagName:"td",properties:{},children:e.all(t)};return e.patch(t,n),e.applyData(t,n)}const SS=9,CS=32;function xG(e){const t=String(e),n=/\r?\n|\r/g;let r=n.exec(t),o=0;const i=[];for(;r;)i.push(ES(t.slice(o,r.index),o>0,!0),r[0]),o=r.index+r[0].length,r=n.exec(t);return i.push(ES(t.slice(o),o>0,!1)),i.join("")}function ES(e,t,n){let r=0,o=e.length;if(t){let i=e.codePointAt(r);for(;i===SS||i===CS;)r++,i=e.codePointAt(r)}if(n){let i=e.codePointAt(o-1);for(;i===SS||i===CS;)o--,i=e.codePointAt(o-1)}return o>r?e.slice(r,o):""}function yG(e,t){const n={type:"text",value:xG(String(t.value))};return e.patch(t,n),e.applyData(t,n)}function bG(e,t){const n={type:"element",tagName:"hr",properties:{},children:[]};return e.patch(t,n),e.applyData(t,n)}const vG={blockquote:Yq,break:Xq,code:Qq,delete:Jq,emphasis:Zq,footnoteReference:eG,heading:tG,html:nG,imageReference:rG,image:sG,inlineCode:oG,linkReference:iG,link:aG,listItem:lG,list:uG,paragraph:dG,root:fG,strong:pG,table:hG,tableCell:gG,tableRow:mG,text:yG,thematicBreak:bG,toml:vp,yaml:vp,definition:vp,footnoteDefinition:vp};function vp(){}const f_=-1,Qm=0,ed=1,Ih=2,m0=3,g0=4,x0=5,y0=6,p_=7,h_=8,TS=typeof self=="object"?self:globalThis,wG=(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 Qm:case f_:return n(a,o);case ed:{const l=n([],o);for(const u of a)l.push(r(u));return l}case Ih:{const l=n({},o);for(const[u,f]of a)l[r(u)]=r(f);return l}case m0:return n(new Date(a),o);case g0:{const{source:l,flags:u}=a;return n(new RegExp(l,u),o)}case x0:{const l=n(new Map,o);for(const[u,f]of a)l.set(r(u),r(f));return l}case y0:{const l=n(new Set,o);for(const u of a)l.add(r(u));return l}case p_:{const{name:l,message:u}=a;return n(new TS[l](u),o)}case h_: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 TS[i](a),o)};return r},RS=e=>wG(new Map,e)(0),kl="",{toString:jG}={},{keys:kG}=Object,Eu=e=>{const t=typeof e;if(t!=="object"||!e)return[Qm,t];const n=jG.call(e).slice(8,-1);switch(n){case"Array":return[ed,kl];case"Object":return[Ih,kl];case"Date":return[m0,kl];case"RegExp":return[g0,kl];case"Map":return[x0,kl];case"Set":return[y0,kl];case"DataView":return[ed,n]}return n.includes("Array")?[ed,n]:n.includes("Error")?[p_,n]:[Ih,n]},wp=([e,t])=>e===Qm&&(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]=Eu(a);switch(l){case Qm:{let p=a;switch(u){case"bigint":l=h_,p=a.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+u);p=null;break;case"undefined":return o([f_],a)}return o([l,p],a)}case ed:{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 Ih:{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 kG(a))(e||!wp(Eu(a[g])))&&p.push([i(g),i(a[g])]);return h}case m0:return o([l,a.toISOString()],a);case g0:{const{source:p,flags:h}=a;return o([l,{source:p,flags:h}],a)}case x0:{const p=[],h=o([l,p],a);for(const[g,y]of a)(e||!(wp(Eu(g))||wp(Eu(y))))&&p.push([i(g),i(y)]);return h}case y0:{const p=[],h=o([l,p],a);for(const g of a)(e||!wp(Eu(g)))&&p.push(i(g));return h}}const{message:f}=a;return o([l,{name:u,message:f}],a)};return i},AS=(e,{json:t,lossy:n}={})=>{const r=[];return NG(!(t||n),!!t,new Map,r)(e),r},Mh=typeof structuredClone=="function"?(e,t)=>t&&("json"in t||"lossy"in t)?RS(AS(e,t)):structuredClone(e):(e,t)=>RS(AS(e,t));function SG(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 CG(e,t){return"Back to reference "+(e+1)+(t>1?"-"+t:"")}function EG(e){const t=typeof e.options.clobberPrefix=="string"?e.options.clobberPrefix:"user-content-",n=e.options.footnoteBackContent||SG,r=e.options.footnoteBackLabel||CG,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=Ic(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:{...Mh(a),id:"footnote-label"},children:[{type:"text",value:o}]},{type:"text",value:`
628
+ `},{type:"element",tagName:"ol",properties:{},children:e.wrap(l,!0)},{type:"text",value:`
629
+ `}]}}const m_=(function(e){if(e==null)return PG;if(typeof e=="function")return Jm(e);if(typeof e=="object")return Array.isArray(e)?TG(e):RG(e);if(typeof e=="string")return AG(e);throw new Error("Expected function, string, or object as test")});function TG(e){const t=[];let n=-1;for(;++n<e.length;)t[n]=m_(e[n]);return Jm(r);function r(...o){let i=-1;for(;++i<t.length;)if(t[i].apply(this,o))return!0;return!1}}function RG(e){const t=e;return Jm(n);function n(r){const o=r;let i;for(i in e)if(o[i]!==t[i])return!1;return!0}}function AG(e){return Jm(t);function t(n){return n&&n.type===e}}function Jm(e){return t;function t(n,r,o){return!!(_G(n)&&e.call(this,n,typeof r=="number"?r:void 0,o||void 0))}}function PG(){return!0}function _G(e){return e!==null&&typeof e=="object"&&"type"in e}const g_=[],DG=!0,PS=!1,$G="skip";function IG(e,t,n,r){let o;typeof t=="function"&&typeof n!="function"?(r=n,n=t):o=t;const i=m_(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=g_,k,v,b;if((!t||i(u,f,p[p.length-1]||void 0))&&(y=MG(n(u,p)),y[0]===PS))return y;if("children"in u&&u.children){const j=u;if(j.children&&y[0]!==$G)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]===PS)return k;v=typeof k[1]=="number"?k[1]:v+a}}return y}}}function MG(e){return Array.isArray(e)?e:typeof e=="number"?[DG,e]:e==null?g_:[e]}function x_(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),IG(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,LG={};function OG(e,t){const n=t||LG,r=new Map,o=new Map,i=new Map,a={...vG,...n.handlers},l={all:f,applyData:zG,definitionById:r,footnoteById:o,footnoteCounts:i,footnoteOrder:[],handlers:a,one:u,options:n,patch:FG,wrap:UG};return x_(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=Mh(b);return j.children=l.all(p),j}return Mh(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=_S(k.value)),!Array.isArray(k)&&k.type==="element")){const v=k.children[0];v&&v.type==="text"&&(v.value=_S(v.value))}Array.isArray(k)?h.push(...k):h.push(k)}}}return h}}function FG(e,t){e.position&&(t.position=jW(e))}function zG(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,Mh(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 UG(e,t){const n=[];let r=-1;for(t&&n.push({type:"text",value:`
630
+ `});++r<e.length;)r&&n.push({type:"text",value:`
631
+ `}),n.push(e[r]);return t&&e.length>0&&n.push({type:"text",value:`
632
+ `}),n}function _S(e){let t=0,n=e.charCodeAt(t);for(;n===9||n===32;)t++,n=e.charCodeAt(t);return e.slice(t)}function DS(e,t){const n=OG(e,t),r=n.one(e,void 0),o=EG(n),i=Array.isArray(r)?{type:"root",children:r}:r||{type:"root",children:[]};return o&&i.children.push({type:"text",value:`
633
+ `},o),i}function HG(e,t){return e&&"run"in e?async function(n,r){const o=DS(n,{file:r,...t});await e.run(o,r)}:function(n,r){return DS(n,{file:r,...e||t})}}function $S(e){if(e)throw e}var My,IS;function VG(){if(IS)return My;IS=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 My=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},My}var WG=VG();const Ly=_d(WG);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 KG(){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?qG(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 qG(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 Ks={basename:GG,dirname:YG,extname:XG,join:QG,sep:"/"};function GG(e,t){if(t!==void 0&&typeof t!="string")throw new TypeError('"ext" argument must be a string');Zd(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 YG(e){if(Zd(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 XG(e){Zd(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 QG(...e){let t=-1,n;for(;++t<e.length;)Zd(e[t]),e[t]&&(n=n===void 0?e[t]:n+"/"+e[t]);return n===void 0?".":JG(n)}function JG(e){Zd(e);const t=e.codePointAt(0)===47;let n=ZG(e,!t);return n.length===0&&!t&&(n="."),n.length>0&&e.codePointAt(e.length-1)===47&&(n+="/"),t?"/"+n:n}function ZG(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 Zd(e){if(typeof e!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}const eY={cwd:tY};function tY(){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 nY(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 rY(e)}function rY(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 Oy=["history","path","basename","stem","extname","dirname"];class y_{constructor(t){let n;t?hv(t)?n={path:t}:typeof t=="string"||sY(t)?n={value:t}:n=t:n={},this.cwd="cwd"in n?"":eY.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let r=-1;for(;++r<Oy.length;){const i=Oy[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)Oy.includes(o)||(this[o]=n[o])}get basename(){return typeof this.path=="string"?Ks.basename(this.path):void 0}set basename(t){zy(t,"basename"),Fy(t,"basename"),this.path=Ks.join(this.dirname||"",t)}get dirname(){return typeof this.path=="string"?Ks.dirname(this.path):void 0}set dirname(t){MS(this.basename,"dirname"),this.path=Ks.join(t||"",this.basename)}get extname(){return typeof this.path=="string"?Ks.extname(this.path):void 0}set extname(t){if(Fy(t,"extname"),MS(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=Ks.join(this.dirname,this.stem+(t||""))}get path(){return this.history[this.history.length-1]}set path(t){hv(t)&&(t=nY(t)),zy(t,"path"),this.path!==t&&this.history.push(t)}get stem(){return typeof this.path=="string"?Ks.basename(this.path,this.extname):void 0}set stem(t){zy(t,"stem"),Fy(t,"stem"),this.path=Ks.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 or(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 Fy(e,t){if(e&&e.includes(Ks.sep))throw new Error("`"+t+"` cannot be a path: did not expect `"+Ks.sep+"`")}function zy(e,t){if(!e)throw new Error("`"+t+"` cannot be empty")}function MS(e,t){if(!e)throw new Error("Setting `"+t+"` requires `path` to be set too")}function sY(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const oY=(function(e){const r=this.constructor.prototype,o=r[e],i=function(){return o.apply(i,arguments)};return Object.setPrototypeOf(i,r),i}),iY={}.hasOwnProperty;class b0 extends oY{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=KG()}copy(){const t=new b0;let n=-1;for(;++n<this.attachers.length;){const r=this.attachers[n];t.use(...r)}return t.data(Ly(!0,{},this.namespace)),t}data(t,n){return typeof t=="string"?arguments.length===2?(Hy("data",this.frozen),this.namespace[t]=n,this):iY.call(this.namespace,t)&&this.namespace[t]||void 0:t?(Hy("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 By("parse",r),r(String(n),n)}process(t,n){const r=this;return this.freeze(),By("process",this.parser||this.Parser),Uy("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);cY(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(),By("processSync",this.parser||this.Parser),Uy("processSync",this.compiler||this.Compiler),this.process(t,o),OS("processSync","process",n),r;function o(i,a){n=!0,$S(i),r=a}}run(t,n,r){LS(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),OS("runSync","run",r),o;function i(a,l){$S(a),o=l,r=!0}}stringify(t,n){this.freeze();const r=jp(n),o=this.compiler||this.Compiler;return Uy("stringify",o),LS(t),o(t,r)}use(t,...n){const r=this.attachers,o=this.namespace;if(Hy("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=Ly(!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=Ly(!0,v,y)),r[g]=[f,y,...k]}}}}const aY=new b0().freeze();function By(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `parser`")}function Uy(e,t){if(typeof t!="function")throw new TypeError("Cannot `"+e+"` without `compiler`")}function Hy(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 LS(e){if(!pv(e)||typeof e.type!="string")throw new TypeError("Expected node, got `"+e+"`")}function OS(e,t,n){if(!n)throw new Error("`"+e+"` finished async. Use `"+t+"` instead")}function jp(e){return lY(e)?e:new y_(e)}function lY(e){return!!(e&&typeof e=="object"&&"message"in e&&"messages"in e)}function cY(e){return typeof e=="string"||uY(e)}function uY(e){return!!(e&&typeof e=="object"&&"byteLength"in e&&"byteOffset"in e)}const dY="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",FS=[],zS={allowDangerousHtml:!0},fY=/^(https?|ircs?|mailto|xmpp)$/i,pY=[{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 hY(e){const t=mY(e),n=gY(e);return xY(t.runSync(t.parse(n),n),e)}function mY(e){const t=e.rehypePlugins||FS,n=e.remarkPlugins||FS,r=e.remarkRehypeOptions?{...e.remarkRehypeOptions,...zS}:zS;return aY().use(Gq).use(n).use(HG,r).use(t)}function gY(e){const t=e.children||"",n=new y_;return typeof t=="string"&&(n.value=t),n}function xY(e,t){const n=t.allowedElements,r=t.allowElement,o=t.components,i=t.disallowedElements,a=t.skipHtml,l=t.unwrapDisallowed,u=t.urlTransform||yY;for(const p of pY)Object.hasOwn(t,p.from)&&(""+p.from+(p.to?"use `"+p.to+"` instead":"remove it")+dY+p.id,void 0);return t.className&&(e={type:"element",tagName:"div",properties:{className:t.className},children:e.type==="root"?e.children:[e]}),x_(e,f),EW(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 Dy)if(Object.hasOwn(Dy,y)&&Object.hasOwn(p.properties,y)){const k=p.properties[y],v=Dy[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 yY(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||fY.test(e.slice(0,t))?e:""}function Nl(e){return e.trim().toLowerCase().replace(/[^\w\s-]/g,"").replace(/\s+/g,"-").replace(/-+/g,"-").replace(/^-+|-+$/g,"")}function Eo(e){return e==null||typeof e=="boolean"?"":typeof e=="string"||typeof e=="number"?String(e):Array.isArray(e)?e.map(Eo).join(""):m.isValidElement(e)?Eo(e.props.children):m.Children.toArray(e).map(Eo).join("")}const bY={h1:({children:e,...t})=>s.jsx("h1",{id:Nl(Eo(e)),...t,children:e}),h2:({children:e,...t})=>s.jsx("h2",{id:Nl(Eo(e)),...t,children:e}),h3:({children:e,...t})=>s.jsx("h3",{id:Nl(Eo(e)),...t,children:e}),h4:({children:e,...t})=>s.jsx("h4",{id:Nl(Eo(e)),...t,children:e}),h5:({children:e,...t})=>s.jsx("h5",{id:Nl(Eo(e)),...t,children:e}),h6:({children:e,...t})=>s.jsx("h6",{id:Nl(Eo(e)),...t,children:e})};function jn({content:e,className:t,emptyState:n="No markdown content yet."}){const r=e.replace(/<!--[\s\S]*?-->/g,"");return r.trim()?s.jsx("div",{className:ve("prose-syntaur max-w-none",t),children:s.jsx(hY,{components:bY,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 ss(e){return`/api/projects/${encodeURIComponent(e)}/todos`}function vY(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(ss(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]),Ei(u=>{u.type==="todos-updated"&&u.projectSlug===e&&l()}),{data:t,loading:r,error:i,refetch:l}}async function wY(e,t,n){await $a(ss(e),{description:t,tags:n})}async function jY(e,t,n){await $a(`${ss(e)}/${t}/complete`,{summary:"Completed."})}async function kY(e,t,n){await $a(`${ss(e)}/${t}/block`,{reason:n})}async function NY(e,t,n){await $a(`${ss(e)}/${t}/start`,{session:n})}async function SY(e,t){await $a(`${ss(e)}/${t}/reopen`,{})}async function CY(e,t){await AY(`${ss(e)}/${t}`)}async function EY(e,t,n){const r=await fetch(`${ss(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 b_(e,t,n){return`${ss(e)}/${t}/attachments/${encodeURIComponent(n)}`}async function TY(e,t,n){for(const r of n){const o=await fetch(`${ss(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 RY(e,t,n){const r=await fetch(b_(e,t,n),{method:"DELETE"});if(!r.ok)throw new Error(await r.text().catch(()=>"")||`HTTP ${r.status}`)}async function $a(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 AY(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 PY(e,t){return await $a(`${ss(e)}/promote`,t)}async function _Y(e,t,n){await $a(`${ss(e)}/${t}/move`,{to:n})}function os({open:e,title:t,description:n,confirmLabel:r,cancelLabel:o="Cancel",loading:i=!1,destructive:a=!1,onConfirm:l,onOpenChange:u}){return s.jsx(_l,{open:e,onOpenChange:f=>i?void 0:u(f),children:s.jsxs(la,{children:[s.jsxs(Dl,{children:[s.jsx(ca,{children:t}),s.jsx(ua,{children:n})]}),s.jsxs($l,{children:[s.jsx(ud,{disabled:i,className:"shell-action mt-0 disabled:cursor-not-allowed disabled:opacity-50",children:o}),s.jsx(yi,{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 BS=[{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 v_({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=BS.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:BS.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 w_({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(v_,{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(j_,{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(LY,{item:e})]}),s.jsx(k_,{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(Nr,{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(om,{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(gn,{className:"h-3 w-3"})})]})]})}function j_({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:ve("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:ve("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 $Y(e){return e.startsWith("image/")&&e!=="image/svg+xml"}function IY(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 k_({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(MY,{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(S2,{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=IY(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 MY({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:[$Y(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(S2,{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(Nc,{className:"h-3 w-3"})})]})}function LY({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(ga,{delayDuration:120,children:s.jsxs(Lr,{children:[s.jsx(Or,{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(Kv,{className:"h-2.5 w-2.5"}),s.jsx("span",{className:"block min-w-0 max-w-[120px] truncate",children:e.branch})]})}),s.jsx(br,{children:e.branch})]})}):null,e.planDir?s.jsx(ga,{delayDuration:120,children:s.jsxs(Lr,{children:[s.jsx(Or,{asChild:!0,children:s.jsx("button",{type:"button","data-no-drag":!0,onClick:n=>{n.stopPropagation(),Xd(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(w2,{className:"h-2.5 w-2.5"})})}),s.jsxs(br,{children:["Plan: ",e.planDir]})]})}):null,e.worktreePath||e.createdAt||e.updatedAt?s.jsx(ga,{delayDuration:120,children:s.jsxs(Lr,{children:[s.jsx(Or,{asChild:!0,children:s.jsx("span",{className:"text-[10px] text-muted-foreground/60 cursor-default",children:"·"})}),s.jsx(br,{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 N_="__one_off__";function v0({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,A]=m.useState(""),[T,_]=m.useState(""),[O,P]=m.useState(""),[W,I]=m.useState(""),[z,U]=m.useState(""),[D,F]=m.useState(null),[M,K]=m.useState(!1),$=t.length>1;m.useEffect(()=>{if(!e){f("new"),y(null),N(""),A(""),_(""),P(""),I(""),U(""),F(null);return}N(i??""),A(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(!W){F(null);return}let Q=!1;return K(!0),(async()=>{try{const J=await fetch(`/api/projects/${encodeURIComponent(W)}/assignments`);if(!J.ok)throw new Error(`HTTP ${J.status}`);const Z=await J.json();Q||F(Z)}catch{Q||F([])}finally{Q||K(!1)}})(),()=>{Q=!0}},[W]);const V=m.useMemo(()=>k??[],[k]);async function L(Q){if(Q.preventDefault(),!S){y('Pick a target project (or "One-off").');return}if($&&!C.trim()){y("Title is required when promoting multiple todos.");return}const J=S===N_?{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:O||void 0};await H(oe);return}const Z={todoIds:t,mode:"new-assignment",target:J,title:C.trim()||void 0,type:T.trim()||void 0,priority:O||void 0};await Y(Z)}async function B(Q){if(Q.preventDefault(),n.kind==="aggregate"){y("Existing-assignment mode does not support cross-workspace selections yet.");return}if(!W||!z){y("Pick both project and assignment.");return}const J={todoIds:t,mode:"to-assignment",target:{assignment:`${W}/${z}`}};await Y(J)}async function Y(Q){h(!0),y(null);try{let J;if(n.kind==="workspace")J=await NO(n.workspace,Q);else if(n.kind==="project")J=await PY(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 H(Q){h(!0),y(null);try{const J=await SO(Q);o(J),r(!1)}catch(J){y(J instanceof Error?J.message:String(J))}finally{h(!1)}}return s.jsx(Mn,{open:e,onOpenChange:Q=>p?void 0:r(Q),children:s.jsxs(Sn,{className:"max-w-xl",children:[s.jsxs(sr,{children:[s.jsxs(Cn,{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(MP,{value:u,onValueChange:Q=>f(Q),children:[s.jsxs(LP,{className:"flex gap-2 rounded-md border border-border/70 bg-card/80 p-1 mb-4",children:[s.jsx(rv,{value:"new",className:ve("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:ve("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(Sl,{label:"Target project",children:s.jsx(US,{value:S,onChange:N,projects:V,error:b,disabled:p,allowOneOff:l})}),s.jsx(Sl,{label:$?"Title (required)":"Title (defaults to first todo)",children:s.jsx("input",{type:"text",value:C,onChange:Q=>A(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(Sl,{label:"Type",children:s.jsx("input",{type:"text",value:T,onChange:Q=>_(Q.target.value),placeholder:"feature",disabled:p,className:"editor-input bg-background/95 font-sans"})}),s.jsx(Sl,{label:"Priority",children:s.jsxs("select",{value:O,onChange:Q=>P(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(HS,{message:g}):null,s.jsx(VS,{onCancel:()=>r(!1),submitting:p,submitLabel:"Promote"})]})}),s.jsx(sv,{value:"existing",children:s.jsxs("form",{onSubmit:B,className:"space-y-4",children:[s.jsx(Sl,{label:"Project",children:s.jsx(US,{value:W,onChange:Q=>{I(Q),U("")},projects:V,error:b,disabled:p})}),s.jsx(Sl,{label:M?"Assignment (loading...)":"Assignment",children:s.jsxs("select",{value:z,onChange:Q=>U(Q.target.value),disabled:p||!W||M,className:"editor-input bg-background/95 font-sans",children:[s.jsx("option",{value:"",children:W?"Select assignment...":"Pick a project first"}),(D??[]).map(Q=>s.jsxs("option",{value:Q.slug,children:[Q.title," (",Q.status,")"]},Q.slug))]})}),g?s.jsx(HS,{message:g}):null,s.jsx(VS,{onCancel:()=>r(!1),submitting:p,submitLabel:"Promote"})]})})]})]})})}function Sl({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 US({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:N_,children:"One-off (no project)"}):null,n.map(a=>s.jsxs("option",{value:a.slug,children:[a.title," (",a.slug,")"]},a.slug))]})}function HS({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 VS({onCancel:e,submitting:t,submitLabel:n}){return s.jsxs(Hr,{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 S_({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 _=!1;return(async()=>{try{const O=await fetch("/api/projects");if(!O.ok)throw new Error(`HTTP ${O.status}`);const P=await O.json();_||S(P.filter(W=>!W.archived))}catch(O){_||b(O instanceof Error?O.message:String(O))}})(),()=>{_=!0}},[e]);const N=m.useMemo(()=>j?n.kind==="project"?j.filter(_=>_.slug!==n.projectId):j:[],[j,n]);function C(){if(i==="global")return{global:!0};if(i==="workspace"){const _=l.trim();return _?{workspace:_}:"Workspace name is required."}return f?{project:f}:"Pick a target project."}async function A(_,O){try{return n.kind==="workspace"?await CO(n.workspace,_,O):await _Y(n.projectId,_,O),{ok:!0}}catch(P){return{ok:!1,error:P instanceof Error?P.message:String(P)}}}async function T(_){_.preventDefault(),b(null);const O=C();if(typeof O=="string"){b(O);return}g(!0),k(null);const P=[],W=[];for(const I of t){const z=await A(I,O);z.ok?P.push(I):W.push({id:I,error:z.error})}g(!1),o(),W.length===0?r(!1):k({succeeded:P,failed:W})}return s.jsx(Mn,{open:e,onOpenChange:_=>h?void 0:r(_),children:s.jsx(Sn,{className:"max-w-xl",children:s.jsxs("form",{onSubmit:T,className:"space-y-4",children:[s.jsxs(sr,{children:[s.jsxs(Cn,{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(Vy,{kind:"project",checked:i==="project",onChange:()=>a("project"),label:"Project"}),s.jsx(Vy,{kind:"workspace",checked:i==="workspace",onChange:()=>a("workspace"),label:"Workspace"}),s.jsx(Vy,{kind:"global",checked:i==="global",onChange:()=>a("global"),label:"Global"})]}),i==="project"?s.jsx(WS,{label:"Target project",children:s.jsxs("select",{value:f,onChange:_=>p(_.target.value),disabled:h,className:"editor-textarea w-full bg-background/95 font-sans",children:[s.jsx("option",{value:"",children:"Select project..."}),N.map(_=>s.jsxs("option",{value:_.slug,children:[_.title," (",_.slug,")"]},_.slug))]})}):null,i==="workspace"?s.jsx(WS,{label:"Target workspace name",children:s.jsx("input",{type:"text",value:l,onChange:_=>u(_.target.value),disabled:h,placeholder:"e.g. syntaur",className:"editor-textarea w-full bg-background/95 font-sans"})}):null,v?s.jsx(OY,{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(_=>s.jsxs("li",{children:["[t:",_.id,"] ",_.error]},_.id))})]}):null,s.jsxs(Hr,{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 WS({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 Vy({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 OY({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 w0({label:e,count:t,expanded:n,onToggle:r,isDropTarget:o=!1,onDragOver:i,onDragLeave:a,onDrop:l,children:u}){return s.jsxs("div",{className:ve("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(tr,{className:ve("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 C_=[{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 Zm(e){switch(e){case"in_progress":return"in-progress";case"completed":return"done";case"open":case"blocked":default:return"open-blocked"}}function j0(e){const t={"open-blocked":[],"in-progress":[],done:[]};for(const n of e)t[Zm(n.status)].push(n);return C_.map(n=>({config:n,items:t[n.id]}))}const E_="syntaur.todos.sections.collapsed.v1",KS=Object.fromEntries(C_.map(e=>[e.id,e.defaultCollapsed]));function Wy(){if(typeof window>"u"||!window.localStorage)return{};try{const e=window.localStorage.getItem(E_);if(!e)return{};const t=JSON.parse(e);return t&&typeof t=="object"?t:{}}catch{return{}}}function FY(e){if(!(typeof window>"u"||!window.localStorage))try{window.localStorage.setItem(E_,JSON.stringify(e))}catch{}}function k0(e){const[t,n]=m.useState(()=>Wy()[e]??{});m.useEffect(()=>{n(Wy()[e]??{})},[e]);const r=m.useCallback(i=>t[i]??KS[i],[t]),o=m.useCallback(i=>{const a=Wy(),l=a[e]??{},u=l[i]??KS[i],f={...l,[i]:!u};a[e]=f,FY(a),n(f)},[e]);return{isCollapsed:r,toggle:o}}function zY({projectId:e}){var ut;const{data:t,loading:n,error:r,refetch:o}=vY(e),{toast:i,showToast:a,dismissToast:l}=Wn(),[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,A]=m.useState(null),[T,_]=m.useState(null),[O,P]=m.useState(new Set),[W,I]=m.useState(!1),[z,U]=m.useState(!1),[D,F]=m.useState(null),M=m.useRef(null);Ai("list:todos");const K=k0("project:"+e),[$,V]=m.useState(null),[L,B]=m.useState(null),Y=m.useRef(null);async function H(fe,q){fe.stopPropagation(),await Xd(q)&&(A(q),setTimeout(()=>A(ne=>ne===q?null:ne),1500))}const Q=m.useMemo(()=>{if(!(t!=null&&t.items))return[];const fe=new Set;for(const q of t.items)for(const ne of q.tags)fe.add(ne);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(ne=>ne.description.toLowerCase().includes(q)||ne.tags.some(xe=>xe.toLowerCase().includes(q))||ne.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(()=>{P(new Set)},[u,p,g,e]);const Z=m.useMemo(()=>J.filter(fe=>O.has(fe.id)).length,[J,O]),oe=J.length>0&&Z===J.length,te=Z>0&&!oe;function ue(fe){P(q=>{const ne=new Set(q);return ne.has(fe)?ne.delete(fe):ne.add(fe),ne})}function ge(){P(fe=>{const q=new Set(fe);if(oe)for(const ne of J)q.delete(ne.id);else for(const ne of J)q.add(ne.id);return q})}function Ce(){P(new Set)}const Se=D?[D]:Array.from(O);function ke(){P(new Set),F(null),o()}function Be(){P(new Set),o()}function ie(fe){a(fe instanceof Error?fe.message:"Action failed","error")}async function be(){if(k.trim())try{await wY(e,k.trim()),v(""),o()}catch(fe){ie(fe)}}function ye(fe,q,ne){fe.stopPropagation(),j({id:q,description:ne})}async function Re(fe,q){try{switch(q){case"open":await SY(e,fe);break;case"in_progress":await NY(e,fe);break;case"completed":await jY(e,fe);break;case"blocked":await kY(e,fe);break}o()}catch(ne){ie(ne)}}async function Ue(fe,q){try{await EY(e,fe,q),o()}catch(ne){throw ie(ne),ne}}async function rt(fe,q){try{await TY(e,fe,q),o()}catch(ne){ie(ne)}}async function Oe(fe,q){try{await RY(e,fe,q),o()}catch(ne){ie(ne)}}const ot=j0(J),St=ot.filter(fe=>!K.isCollapsed(fe.config.id)).flatMap(fe=>fe.items),{hotkeyRowProps:ht}=zd(St,{scope:"list:todos",bindO:!1,onOpen:fe=>_(fe.id)});en({keys:"/",scope:"list:todos",description:"Focus filter",handler:()=>{var fe;return(fe=M.current)==null?void 0:fe.focus()}}),en({keys:"r",scope:"list:todos",description:"Refresh",handler:()=>o()});const[it,ce]=Rs(),me=it.get("focus");m.useEffect(()=>{if(!me||!(t!=null&&t.items))return;const fe=t.items.find(ne=>ne.id===me);if(!fe)return;const q=Zm(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(ne=>{const xe=new URLSearchParams(ne);return xe.delete("focus"),xe},{replace:!0})},1500);return()=>window.clearTimeout(q)},[me,St.length,ce]);const Ie=$?(t==null?void 0:t.items.find(fe=>fe.id===$))??null:null;function Pe(fe,q){const ne=Y.current;if(ne!=null&&ne.closest(ic)){fe.preventDefault();return}fe.dataTransfer.effectAllowed="move",fe.dataTransfer.setData("text/plain",q),V(q)}function Ve(){V(null),B(null)}function pt(fe,q){!Ie||q.statuses.includes(Ie.status)||(fe.preventDefault(),fe.dataTransfer.dropEffect="move",B(q.id))}function _e(fe,q){L===q.id&&!fe.currentTarget.contains(fe.relatedTarget)&&B(null)}function Qe(fe,q){fe.preventDefault();const ne=Ie;Ve(),!(!ne||q.statuses.includes(ne.status))&&Re(ne.id,q.dropStatus)}if(n)return s.jsx(bt,{label:"Loading todos..."});if(r)return s.jsx(Tt,{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(Vn,{toast:i,onDismiss:l}),s.jsx(os,{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 CY(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(Yn,{label:"Open",value:Je.open,icon:ys}),s.jsx(Yn,{label:"In Progress",value:Je.in_progress,icon:ys,tone:"info"}),s.jsx(Yn,{label:"Blocked",value:Je.blocked,icon:kc,tone:"warn"}),s.jsx(Yn,{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()&&be()},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:be,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(At,{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(Ci,{"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:M,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))]})]}),O.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:[O.size," selected"]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{type:"button",onClick:()=>I(!0),className:"shell-action shell-action--cta",children:"Promote selected"}),s.jsx("button",{type:"button",onClick:()=>{F(null),U(!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=te)},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:ne})=>{const xe=!K.isCollapsed(q.id);return s.jsx(w0,{label:q.label,count:ne.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&&ne.map(qe=>(fe+=1,s.jsx(w_,{item:qe,copiedId:C,selected:O.has(qe.id),editing:T===qe.id,onBeginEdit:Fe=>_(Fe),onEndEdit:()=>_(null),onPatchDescription:Ue,onAddAttachments:rt,onDeleteAttachment:Oe,attachmentUrl:(Fe,lt)=>b_(e,Fe,lt),onToggleSelected:Fe=>ue(Fe),onMoveOne:(Fe,lt)=>{lt.stopPropagation(),F(Fe),U(!0)},onStatusChange:Re,onCopyId:H,onDelete:ye,hotkeyRowProps:ht(fe),onDragOrigin:Fe=>{Y.current=Fe.target},onDragStart:Pe,onDragEnd:Ve,isDragging:$===qe.id},qe.id)))},q.id)})})()}),s.jsx(v0,{open:W,selectedIds:Array.from(O),scope:{kind:"project",projectId:e},onOpenChange:I,onDone:Be}),s.jsx(S_,{open:z,selectedIds:Se,scope:{kind:"project",projectId:e},onOpenChange:fe=>{U(fe),fe||F(null)},onDone:ke})]})}const BY={title:"Assignment",status:"Status",priority:"Priority",assignee:"Assignee",dependencies:"Dependencies",created:"Created",updated:"Updated"},qS=new Set(["title"]);function T_({visibility:e,onChange:t}){const[n,r]=m.useState(!1);function o(a){if(qS.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(Mn,{open:n,onOpenChange:r,children:[s.jsx(O6,{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(b4,{className:"h-3.5 w-3.5","aria-hidden":"true"}),s.jsxs("span",{children:["Columns",i>0?` (${ky.length-i}/${ky.length})`:""]})]})}),s.jsxs(Sn,{className:"max-w-sm",children:[s.jsx(sr,{children:s.jsx(Cn,{children:"Columns"})}),s.jsx("div",{className:"space-y-2",children:ky.map(a=>{const l=e.hidden.includes(a),u=qS.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 Ql={...ld,custom:!1},R_=`view-prefs.cache.v${ld.version}`;let vd=UY(),Cl=null;const wd=new Set;let A_=0;function N0(){return++A_}function S0(e){return e===A_}function UY(){if(typeof window>"u"||!window.localStorage)return null;try{const e=window.localStorage.getItem(R_);if(!e)return null;const t=JSON.parse(e);return t.version!==ld.version?null:t}catch{return null}}function HY(e){if(!(typeof window>"u"||!window.localStorage))try{window.localStorage.setItem(R_,JSON.stringify(e))}catch{}}function C0(e){vd=e,HY(e);for(const t of wd)t(e)}function E0(e){if(!e||typeof e!="object")return Ql;const t=e;return t.version!==ld.version||!t.global||!t.projects?Ql:{version:ld.version,global:t.global,projects:t.projects,custom:t.custom===!0}}function T0(){if(Cl)return Cl;const e=N0();return Cl=fetch("/api/view-prefs").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{const n=E0(t);return S0(e)&&C0(n),Cl=null,vd??n}).catch(()=>(Cl=null,vd??Ql)),Cl}function P_(e){const[t,n]=m.useState(()=>vd??Ql);return m.useEffect(()=>{let r=!1;return T0().then(o=>{r||n(o)}),wd.add(n),()=>{r=!0,wd.delete(n)}},[]),ZT(t,e??null)}function VY(){const[e,t]=m.useState(()=>vd??Ql);return m.useEffect(()=>{let n=!1;return T0().then(r=>{n||t(r)}),wd.add(t),()=>{n=!0,wd.delete(t)}},[]),e}async function __(e){const t=N0(),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=E0(await n.json());return S0(t)&&C0(r),r}function D_(e){return __({global:e})}function $_(e,t){return __({projects:{[e]:t}})}async function WY(){const e=N0(),t=await fetch("/api/view-prefs",{method:"DELETE"});if(!t.ok)throw new Error(`HTTP ${t.status}`);const n=E0(await t.json());return S0(e)&&C0(n),n}const GS=80;function I_({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<=GS;return s.jsx(Mn,{open:e,onOpenChange:t,children:s.jsx(Sn,{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(sr,{children:s.jsx(Cn,{children:o})}),s.jsxs("div",{className:"space-y-2",children:[s.jsx("input",{type:"text",value:i,autoFocus:!0,required:!0,maxLength:GS,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(Hr,{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 M_({scope:e,loadedViewId:t,onApply:n,onOpenSaveDialog:r}){const{views:o,loading:i}=Wd(),[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=>iA(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(tr,{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:ve("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(Nr,{className:"h-3.5 w-3.5","aria-hidden":"true"}):null}),s.jsx("span",{className:"truncate",children:g.name})]},g.id)})})]})}const KY=new Set(["overview","assignments","todos","dependencies","knowledge"]),YS="__unknown_type__";function XS(){const{slug:e,workspace:t}=Kt(),n=xn(),r=Wt();Ai("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}=Z2(e),u=rs(),f=Fd(),{data:p}=Ra(),[h,g]=Rs(),y=h.get("tab"),k=y&&KY.has(y)?y:"overview";function v(le){g(Ne=>{const et=new URLSearchParams(Ne);return le==="overview"?et.delete("tab"):et.set("tab",le),et},{replace:!0})}const b=e?`p:${e}`:null,j=P_(b),[S,N]=m.useState(()=>gy(j.defaultView)),[C,A]=m.useState(()=>He(j.filters.status)),[T,_]=m.useState(()=>He(j.filters.assignee)),[O,P]=m.useState(()=>He(j.filters.priority)),[W,I]=m.useState(()=>He(j.filters.type)),[z,U]=m.useState(()=>He(j.filters.tags)),[D,F]=m.useState(null),[M,K]=m.useState(()=>j.grouping),[$,V]=m.useState(()=>j.sortField),[L,B]=m.useState(()=>j.sortDirection),[Y,H]=m.useState(()=>({collapsed:[]})),[Q,J]=m.useState(()=>({hidden:[]})),[Z,oe]=m.useState(()=>({hidden:[]})),[te,ue]=m.useState(null),[ge,Ce]=m.useState(!1),[Se,ke]=m.useState(!1),{toast:Be,showToast:ie,dismissToast:be}=Wn(),ye={kind:"project",slug:e??"",workspace:t??null},Re=h.get("loadView"),{view:Ue,loading:rt,error:Oe}=ki(Re),{view:ot,loading:St,error:ht}=ki(te),it=m.useRef(null);m.useEffect(()=>{te&&!St&&!ht&&!ot&&ue(null)},[ot,ht,te,St]),m.useEffect(()=>{ue(null),it.current=null,F(null)},[e,t]),m.useEffect(()=>{N(gy(j.defaultView)),A(He(j.filters.status)),_(He(j.filters.assignee)),P(He(j.filters.priority)),I(He(j.filters.type)),U(He(j.filters.tags)),K(j.grouping),V(j.sortField),B(j.sortDirection)},[e,j.defaultView,j.filters.status,j.filters.assignee,j.filters.priority,j.filters.type,j.filters.tags,j.grouping,j.sortField,j.sortDirection]);const ce=m.useCallback(le=>{b&&$_(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=>{A(le),ce({filters:{status:le}})},[ce]),Pe=m.useCallback(le=>{_(le),ce({filters:{assignee:le}})},[ce]),Ve=m.useCallback(le=>{P(le),ce({filters:{priority:le}})},[ce]),pt=m.useCallback(le=>{I(le),ce({filters:{type:le}})},[ce]),_e=m.useCallback(le=>{U(le),ce({filters:{tags:le}})},[ce]),Qe=m.useCallback(le=>{K(le),ce({grouping:le})},[ce]),Je=m.useCallback(le=>{V(le),ce({sortField:le})},[ce]),ut=m.useCallback(le=>{B(le),ce({sortDirection:le})},[ce]),fe=m.useCallback(()=>({viewMode:S,filters:{status:C,priority:O,type:W,assignee:T,tags:z,project:"all",activity:"all",dateRange:xa(D)},sortField:$,sortDirection:L,listSectionVisibility:Y,kanbanColumnVisibility:Q,tableColumnVisibility:Z}),[S,C,O,W,T,z,D,$,L,Y,Q,Z]),q=m.useCallback(le=>{cP(le,{setViewMode:Ne=>N(gy(Ne)),setStatusFilter:Ie,setPriorityFilter:Ve,setTypeFilter:pt,setAssigneeFilter:Pe,setTagsFilter:_e,setDateRange:F,setSortField:Je,setSortDirection:ut,setListSectionVisibility:H,setKanbanColumnVisibility:J,setTableColumnVisibility:oe}),ue(le.id)},[Ie,Ve,pt,Pe,_e,Je,ut]),ne=m.useCallback(le=>{q(le),it.current=le.id,g(Ne=>{const et=new URLSearchParams(Ne);return et.set("loadView",le.id),et},{replace:!0})},[q,g]),xe=m.useCallback(async le=>{try{const Ne=ac({name:le,context:{workspace:t??null,projectSlug:e??null},state:fe()}),et=await rc(Ne),Rn=et.views[et.views.length-1];ue((Rn==null?void 0:Rn.id)??null),Rn&&(it.current=Rn.id,g(Er=>{const lo=new URLSearchParams(Er);return lo.set("loadView",Rn.id),lo},{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(!(!te||!ot))try{const le=He(ot.config.filters.project)[0]??null,Ne=ac({name:ot.name,context:{workspace:t??null,projectSlug:le},state:fe()}),et=Ah(ot.config,Ne.config,Ne.config);await Nh(te,{config:et}),ie("View updated","success")}catch(le){ie(le instanceof Error?le.message:"Failed to update view","error")}},[fe,ot,te,ie,t]);m.useEffect(()=>{if(!Re){it.current=null;return}if(it.current!==Re&&(te&&te!==Re&&ue(null),!rt)){if(Oe){ie("Couldn't load saved view — try again","error");return}if(Ue){if(it.current=Re,!iA(Ue,{kind:"project",slug:e??"",workspace:t??null})){r(dP(Ue),{replace:!0});return}q(Ue),g(le=>{const Ne=new URLSearchParams(le);return Ne.delete("loadView"),Ne},{replace:!0});return}it.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,te,q,g,ie,r,e,t]);function Fe(le){$===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]),[mt,vt]=m.useState(!1);async function nt(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 et=await Ne.json().catch(()=>null);ie((et==null?void 0:et.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 _t(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 et=await Ne.json().catch(()=>null);ie((et==null?void 0:et.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 et=await Ne.json().catch(()=>null);ie((et==null?void 0:et.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(Tt,{error:a||"Project not found."});const Ut=(()=>{const le=new Set;for(const et of o.assignments)et.assignee&&le.add(et.assignee);const Ne=[{value:"__unassigned__",label:"Unassigned"}];for(const et of Array.from(le).sort())Ne.push({value:et,label:et});return Ne})(),Tn=Array.from(new Set(o.assignments.flatMap(le=>le.tags??[]))).sort().map(le=>({value:le,label:le})),Ct=o.assignments.filter(le=>RH(le,{status:C,priority:O,type:W,assignee:T,tags:z,dateRange:xa(D)})),je=Gd(Ct,$,L),Ge=new Set(f.definitions.map(le=>le.id)),at=M==="type"?[...f.definitions.map(le=>({id:le.id,title:Hl(f,le.id),description:le.description})),...Ct.some(le=>!le.type||!Ge.has(le.type))?[{id:YS,title:"Other",description:"Assignments with no recognized type."}]:[]]:gP(u.order).map(le=>({id:le,title:es(u,le),description:Yd(le)}));function Mt({field:le,children:Ne}){const et=$===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,et?L==="asc"?s.jsx(y2,{className:"h-3 w-3"}):s.jsx(tr,{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(ro,{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:()=>nt(null),disabled:mt,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:mt,onChange:le=>{le.target.value&&nt(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:()=>_t(!o.archived),disabled:mt,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:mt,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(ry,{className:"h-4 w-4"}),s.jsx("span",{children:"Edit Project"})]}),s.jsx(yP,{externalIds:o.externalIds}),s.jsxs("span",{className:"text-xs text-muted-foreground",children:["Created ",Xn(o.created),". Last source update ",Sr(o.updated),"."]})]}),s.jsxs("div",{className:"grid gap-3 grid-cols-2 sm:grid-cols-3 xl:grid-cols-5",children:[s.jsx(Yn,{label:"Assignments",value:o.progress.total}),s.jsx(Yn,{label:"In Progress",value:o.progress.in_progress??0,tone:"info"}),s.jsx(Yn,{label:"Review",value:o.progress.review??0,tone:"info"}),s.jsx(Yn,{label:"Blocked",value:o.progress.blocked??0,tone:"warn"}),s.jsx(Yn,{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(Ym,{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(jn,{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(ry,{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(kn,{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(kn,{ariaLabel:"Assignee filter",className:"max-w-[170px]",allLabel:"All assignees",options:Ut,value:T,onChange:Pe}),s.jsx(kn,{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:O,onChange:Ve}),s.jsx(kn,{ariaLabel:"Type filter",className:"max-w-[170px]",allLabel:"All types",options:f.definitions.map(le=>({value:le.id,label:Hl(f,le.id)})),value:W,onChange:pt}),s.jsx(kn,{ariaLabel:"Tags filter",className:"max-w-[170px]",allLabel:"Any tags",options:Tn,value:z,onChange:_e}),s.jsx(Vm,{className:"max-w-[190px]",value:D,onChange:F}),S==="kanban"&&s.jsxs("select",{value:M==="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(qm,{value:S,onChange:le=>me(le),options:[{value:"kanban",label:"Kanban"},{value:"table",label:"Table"}]}),s.jsx(M_,{scope:ye,loadedViewId:te,onApply:ne,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(Um,{columns:at,items:je,getItemId:le=>le.slug,getColumnId:le=>M==="type"?le.type&&Ge.has(le.type)?le.type:YS:le.status,dragDisabled:!0,boundedColumns:!0,renderCard:le=>s.jsx(qY,{projectSlug:o.slug,assignment:le,onAssignmentChange:()=>l()}),emptyMessage:le=>`No ${le.title.toLowerCase()} assignments.`,hiddenColumnIds:Q.hidden,onHideColumn:le=>J(Ne=>({hidden:Ne.hidden.includes(le)?Ne.hidden.filter(Rn=>Rn!==le):[...Ne.hidden,le]}))}):(()=>{const le=new Set(Z.hidden),Ne=et=>et==="title"||!le.has(et);return s.jsxs("div",{className:"overflow-x-auto",children:[s.jsx("div",{className:"mb-3 flex items-center justify-end",children:s.jsx(T_,{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(et=>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/${et.slug}`,className:"font-semibold text-foreground hover:text-primary",children:et.title})}):null,Ne("status")?s.jsx("td",{className:"py-4",children:s.jsx(Cs,{projectSlug:o.slug,slug:et.slug,status:et.status,title:et.title,className:"max-w-[150px]",onChange:()=>l()})}):null,s.jsx("td",{className:"py-4",children:s.jsx(_a,{type:et.type,compact:!0})}),Ne("priority")?s.jsx("td",{className:"py-4 capitalize text-muted-foreground",children:et.priority}):null,Ne("assignee")?s.jsx("td",{className:"py-4 text-muted-foreground",children:et.assignee??"—"}):null,Ne("dependencies")?s.jsx("td",{className:"py-4 text-muted-foreground",children:et.dependsOn.length}):null,Ne("created")?s.jsx("td",{className:"py-4 text-muted-foreground",children:Xn(et.created)}):null,Ne("updated")?s.jsx("td",{className:"py-4 text-muted-foreground",children:Xn(et.updated)}):null]},et.slug))})]})]})})()})})},{value:"todos",label:"Todos",content:s.jsx(zY,{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(XV,{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(At,{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(At,{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(Dh,{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(ry,{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(At,{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(u4,{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(Kv,{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?Sr(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(Vn,{toast:Be,onDismiss:be}),s.jsx(I_,{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 qY({projectSlug:e,assignment:t,onAssignmentChange:n}){const r=xn();return s.jsxs($e,{to:`${r}/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:o=>{o.preventDefault(),o.stopPropagation()},children:s.jsx(jr,{value:t.id})})]}),s.jsxs("p",{className:"text-sm text-muted-foreground",children:["Updated ",Xn(t.updated)]})]}),s.jsx("span",{onClick:o=>{o.preventDefault(),o.stopPropagation()},onPointerDown:o=>o.stopPropagation(),children:s.jsx(Cs,{projectSlug:e,slug:t.slug,status:t.status,title:t.title,className:"max-w-[150px]",onChange:n})})]}),s.jsxs("div",{className:"mt-4 flex flex-wrap gap-2",children:[s.jsx(_a,{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 L_(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]),Ei(y=>{p&&(y.type==="assignment-updated"||y.type==="project-updated")&&h()}),{events:n,loading:o,error:a,refetch:h}}function O_({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(I1,{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(Nr,{className:"h-3 w-3 text-status-completed-foreground","aria-hidden":"true"}):s.jsx(I1,{className:"h-3 w-3","aria-hidden":"true"})})}function F_(){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,_,O,P,W){if(!e){if(T.kind==="standalone"){window.location.href=na(T,_,void 0,O,P,W);return}t(!0);try{const I=await fetch("/api/launch/preflight",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({target:{kind:T.kind,id:T.id}})});if(!I.ok){window.location.href=na(T,_,void 0,O,P,W);return}const z=await I.json();if(z.ok){window.location.href=na(T,_,void 0,O,P,W);return}if(z.reason==="workspace-path-invalid"){z.recreate?(f(z.recreate),h({target:T,mode:_,agentId:O,prompt:P,agentName:W})):l(z.message);return}r(z),i({target:T,mode:_,agentId:O,prompt:P,agentName:W})}catch(I){console.warn("preflight failed, firing without override:",I),window.location.href=na(T,_,void 0,O,P,W)}finally{t(!1)}}}function N(){!n||!o||(window.location.href=na(o.target,o.mode,n.suggestedFallback,o.agentId,o.prompt,o.agentName),r(null),i(null))}async function C(){if(!(!u||!p||g)){y(!0),v(null);try{const T=await XH({kind:u.kind,id:u.id,projectSlug:u.projectSlug,assignmentSlug:u.assignmentSlug}),{target:_,mode:O,agentId:P,prompt:W,agentName:I}=p;f(null),h(null),window.location.href=na(_,O,void 0,P,W,I),!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 Qw&&T.stderr?`${T.message}
634
+ ${T.stderr}`:T instanceof Error?T.message:String(T))}finally{y(!1)}}}const A=s.jsxs(s.Fragment,{children:[s.jsx(_l,{open:n!==null,onOpenChange:T=>!T&&(r(null),i(null)),children:s.jsxs(la,{children:[s.jsxs(Dl,{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($l,{children:[s.jsx(ud,{className:"shell-action mt-0",children:"Cancel"}),s.jsxs(yi,{className:"shell-action mt-0 shell-action--cta",onClick:T=>{T.preventDefault(),N()},children:["Open in ",n==null?void 0:n.suggestedFallback]})]})]})}),s.jsx(_l,{open:a!==null,onOpenChange:T=>!T&&l(null),children:s.jsxs(la,{children:[s.jsxs(Dl,{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($l,{children:s.jsx(yi,{className:"shell-action mt-0 shell-action--cta",onClick:()=>l(null),children:"OK"})})]})}),s.jsx(_l,{open:u!==null,onOpenChange:T=>{!T&&!g&&(f(null),h(null),v(null))},children:s.jsxs(la,{children:[s.jsxs(Dl,{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($l,{children:[s.jsx(ud,{className:"shell-action mt-0",disabled:g,children:"No"}),s.jsx(yi,{className:"shell-action mt-0 shell-action--cta",disabled:g,onClick:T=>{T.preventDefault(),C()},children:g?"Recreating…":"Yes, recreate"})]})]})}),s.jsx(_l,{open:b!==null,onOpenChange:T=>!T&&j(null),children:s.jsxs(la,{children:[s.jsxs(Dl,{children:[s.jsx(ca,{children:"Worktree recreated"}),s.jsx(ua,{children:b})]}),s.jsx($l,{children:s.jsx(yi,{className:"shell-action mt-0 shell-action--cta",onClick:()=>j(null),children:"OK"})})]})})]});return{open:S,pending:e,dialogs:A}}function z_({session:e,onMarkStopped:t}){const n=F_(),r={kind:"session",id:e.sessionId},o="size-3.5",i=ve("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(ga,{delayDuration:200,children:s.jsxs("div",{className:"inline-flex items-center gap-1",children:[l&&s.jsxs(Lr,{children:[s.jsx(Or,{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(pa,{className:o}),s.jsx("span",{children:"Reopen"})]})})}),s.jsx(br,{side:"top",children:"Reopen unavailable — this agent has no resume/fork command configured"})]}),e.resumeSupported&&(e.isLive?s.jsxs(Lr,{children:[s.jsx(Or,{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(pa,{className:o}),s.jsx("span",{children:"Resume"})]})})}),s.jsx(br,{side:"top",children:"Session appears active — fork instead to avoid transcript corruption"})]}):s.jsxs(Lr,{children:[s.jsx(Or,{asChild:!0,children:s.jsxs("button",{type:"button",className:i,disabled:n.pending,onClick:()=>void n.open(r,"resume"),children:[s.jsx(pa,{className:o}),s.jsx("span",{children:"Resume"})]})}),s.jsx(br,{side:"top",children:"Continue this session in its agent (same session id, same transcript)"})]})),e.forkSupported&&s.jsxs(Lr,{children:[s.jsx(Or,{asChild:!0,children:s.jsxs("button",{type:"button",className:i,disabled:n.pending,onClick:()=>void n.open(r,"fork"),children:[s.jsx(T4,{className:o}),s.jsx("span",{children:"Fork"})]})}),s.jsx(br,{side:"top",children:"Branch a new session from this point — safe even when the original is still running"})]}),e.status==="active"&&s.jsxs(Lr,{children:[s.jsx(Or,{asChild:!0,children:s.jsxs("button",{type:"button",className:i,disabled:n.pending,onClick:()=>t(e.sessionId),children:[s.jsx(Xv,{className:o}),s.jsx("span",{children:"Mark stopped"})]})}),s.jsx(br,{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 GY(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 B_({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(rm,{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(jr,{value:i.sessionId,onError:r}),s.jsx(O_,{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(ro,{status:i.status}),s.jsx("span",{className:"text-xs text-muted-foreground",children:Sr(i.started)})]}),s.jsx(z_,{session:i,onMarkStopped:a=>GY(a).catch(l=>r==null?void 0:r(l instanceof Error?l:new Error(String(l))))})]},i.sessionId))})})}const Ky="Cost / Usage";function U_({summary:e,error:t}){return t&&!e?s.jsx(We,{title:Ky,children:s.jsx(Nt,{title:"Couldn't load usage",description:t})}):e?e.lastEventDay===null?s.jsx(We,{title:Ky,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:Ky,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:tc(e.totalCost)}),s.jsx(QS,{label:"Total tokens",value:ec(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(lm,{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:[ec(n.totalTokens)," · ",tc(n.totalCost)]})]},n.model))})]}):null,s.jsxs("p",{className:"text-xs text-muted-foreground",children:["Last usage recorded ",D5(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})]})}const YY=/^[a-z0-9][a-z0-9_-]*$/,H_=["first","last","none"];class V_ extends Error{constructor(n,r){super(n);qx(this,"fieldErrors");this.name="AgentsConfigError",this.fieldErrors=r}}const R0={agents:[],custom:!1};let Il=null,El=null,Lh=0;const mv=new Set;function W_(e){Il=e;for(const t of mv)t(e)}function XY(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"&&H_.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),typeof t.agentName=="string"&&(n.agentName=t.agentName),typeof t.workdir=="string"&&(n.workdir=t.workdir),n}function A0(e){if(!e||typeof e!="object")return R0;const t=e,n=Array.isArray(t.agents)?t.agents:[],r=[];for(const o of n){const i=XY(o);i&&r.push(i)}return{agents:r,custom:t.custom===!0}}function QY(){if(Il)return Promise.resolve(Il);if(El)return El;const e=++Lh;return El=fetch("/api/config/agents").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{El=null;const n=A0(t);return e!==Lh?Il??n:(Il=n,n)}).catch(()=>(El=null,R0)),El}function K_(){const[e,t]=m.useState(()=>Il??R0);return m.useEffect(()=>{let n=!1;return QY().then(r=>{n||t(r)}),mv.add(t),()=>{n=!0,mv.delete(t)}},[]),e}function q_(){const[e,t]=m.useState([]);return m.useEffect(()=>{let n=!1;return fetch("/api/config/agents/claude-discovered").then(r=>r.ok?r.json():{agents:[]}).then(r=>{if(n)return;const o=Array.isArray(r.agents)?r.agents:[],i=[];for(const a of o){if(!a||typeof a!="object")continue;const l=a;typeof l.name!="string"||!l.name||i.push({name:l.name,description:typeof l.description=="string"?l.description:void 0,model:typeof l.model=="string"?l.model:void 0,path:typeof l.path=="string"?l.path:""})}t(i)}).catch(()=>{n||t([])}),()=>{n=!0}},[]),e}async function G_(e){const t=await e.json().catch(()=>null),n=(t==null?void 0:t.error)??`HTTP ${e.status}`;return new V_(n,t==null?void 0:t.fieldErrors)}async function JY(e){++Lh;const t=await fetch("/api/config/agents",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({agents:e})});if(!t.ok)throw await G_(t);const n=A0(await t.json());return W_(n),n}async function ZY(){++Lh;const e=await fetch("/api/config/agents",{method:"DELETE"});if(!e.ok)throw await G_(e);const t=A0(await e.json());return W_(t),t}const JS=/[A-Za-z0-9_-]/,eX=/^[a-z0-9]+(-[a-z0-9]+)*$/,ZS=/(^|\s)@([A-Za-z0-9_-]+)/g,Y_=["assignment","worktree"];function X_(e,t){const n=Math.max(0,Math.min(t,e.length));let r=n;for(;r>0&&JS.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&&JS.test(e[i]);)i++;return{start:o,end:i,partial:e.slice(o+1,n)}}function Q_(e,t){const n=Y_,r=[...n,...t.filter(l=>!n.includes(l))],o=e.toLowerCase();if(o==="")return r;const i=[],a=[];for(const l of r){const u=l.toLowerCase();u.startsWith(o)?i.push(l):u.includes(o)&&a.push(l)}return[...i,...a]}function J_(e,t,n){const r=`@${n}`;return{text:e.slice(0,t.start)+r+e.slice(t.end),caret:t.start+r.length}}function Z_(e,t){const n=t instanceof Set?t:new Set(t),r=Y_,o=[];ZS.lastIndex=0;let i;for(;(i=ZS.exec(e))!==null;){const a=i[2];r.includes(a)||(eX.test(a)?n.has(a)||o.push(`Playbook "${a}" is not installed — "@${a}" will be left as literal text.`):o.push(`"@${a}" is not a valid playbook token — it will be left as literal text.`))}return o}const eC=2e3;function tX({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 D=!1;p(!0),g(null),S(!1);const F=new URLSearchParams({assignment:t});return n&&F.set("agent",n),fetch(`/api/launch/prompt?${F.toString()}`).then(async M=>{if(!M.ok){const K=await M.json().catch(()=>null);throw new Error((K==null?void 0:K.error)??`HTTP ${M.status}`)}return await M.json()}).then(M=>{D||(a(M.template??""),u(M.knownPlaybookSlugs??[]),k((M.template??"").length))}).catch(M=>{D||g(M instanceof Error?M.message:String(M))}).finally(()=>{D||p(!1)}),()=>{D=!0}},[e,t,n]);const C=X_(i,y),A=C?Q_(C.partial,l):[],T=e&&!f&&!j&&A.length>0,_=Z_(i,l),O=i.length>eC;function P(D){a(D.target.value),k(D.target.selectionStart??D.target.value.length),b(0),S(!1)}function W(D){k(D.currentTarget.selectionStart??i.length),b(0)}function I(D){if(!C||!D)return;const F=J_(i,C,D);a(F.text),k(F.caret),b(0),S(!0),requestAnimationFrame(()=>{const M=N.current;M&&(M.focus(),M.setSelectionRange(F.caret,F.caret))})}function z(D){T&&(D.key==="ArrowDown"?(D.preventDefault(),b(F=>Math.min(F+1,A.length-1))):D.key==="ArrowUp"?(D.preventDefault(),b(F=>Math.max(F-1,0))):(D.key==="Enter"||D.key==="Tab")&&(D.preventDefault(),I(A[v])))}function U(){O||f||(r(i),o(!1))}return s.jsx(Mn,{open:e,onOpenChange:o,children:s.jsxs(Sn,{onEscapeKeyDown:D=>{T&&(D.preventDefault(),S(!0))},children:[s.jsxs(sr,{children:[s.jsx(Cn,{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:P,onKeyDown:z,onKeyUp:W,onClick:W,className:ve("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",O&&"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:A.map((D,F)=>s.jsx("li",{children:s.jsxs("button",{type:"button",role:"option","aria-selected":F===v,onMouseDown:M=>{M.preventDefault(),I(D)},className:ve("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===v&&"bg-accent"),children:[s.jsx("span",{className:"text-muted-foreground",children:"@"}),s.jsx("span",{className:"truncate",children:D})]})},D))})]}),_.length>0&&!h&&s.jsx("ul",{className:"space-y-0.5 text-[11px] text-error-foreground",children:_.map(D=>s.jsx("li",{children:D},D))}),O&&s.jsxs("p",{className:"text-[11px] text-error-foreground",children:["Too long — keep it under ",eC," characters (",i.length,")."]}),s.jsxs(Hr,{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||O||h!==null,onClick:U,children:"Launch"})]})]})})}function e3({target:e,worktreePath:t=null,repository:n=null,size:r="default",title:o}){const i=e.kind==="assignment"&&!t&&!n,a=F_(),[l,u]=m.useState(null),p=K_().agents,h=q_(),g=p.find(I=>I.id==="claude"||/claude/i.test(I.command)),y=e.kind==="assignment"&&h.length>0&&!!g,[k,v]=m.useState(null);m.useEffect(()=>{p.length!==0&&v(I=>I&&p.some(U=>U.id===I)?I:(p.find(U=>U.default)??p[0]).id)},[p]);const b=e.kind==="assignment"&&(p.length>1||y),j=p.find(I=>I.id===k)??null,S=m.useRef(null),[N,C]=m.useState(!1);m.useEffect(()=>{if(!N)return;function I(U){S.current&&!S.current.contains(U.target)&&C(!1)}function z(U){U.key==="Escape"&&C(!1)}return document.addEventListener("mousedown",I),document.addEventListener("keydown",z),()=>{document.removeEventListener("mousedown",I),document.removeEventListener("keydown",z)}},[N]);function A(I){var z,U;if(e.kind==="assignment"){const D=p.find(M=>M.id===I)??p.find(M=>M.default)??p[0];!!((z=D==null?void 0:D.launchPrompt)!=null&&z.trim())||!!((U=D==null?void 0:D.playbook)!=null&&U.trim())?a.open(e,void 0,I):u({agentId:I})}else a.open(e,void 0,I)}function T(I){g&&(C(!1),a.open(e,void 0,g.id,void 0,I))}const _=e.kind==="assignment"?"Open this assignment in your configured terminal + agent":"Resume this session in its agent",O="Set a workspace path first — see the Workspace Before Code playbook",P=ve("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:O,className:P,"aria-disabled":!0,children:[s.jsx(pa,{className:"size-3.5"}),s.jsx("span",{children:"Open in agent"})]});const W=e.kind==="session"?"Open":"Open in agent";return s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:"relative inline-flex",ref:S,children:[s.jsxs("div",{className:"inline-flex items-stretch",children:[s.jsxs("button",{type:"button",onClick:()=>A(k??void 0),disabled:a.pending,title:(o??_)+(b&&j?` (${j.label})`:""),className:ve(P,b&&"rounded-r-none"),children:[s.jsx(pa,{className:"size-3.5"}),s.jsx("span",{children:W})]}),b&&s.jsx("button",{type:"button",onClick:()=>C(I=>!I),disabled:a.pending,"aria-haspopup":"menu","aria-expanded":N,"aria-label":"Choose which agent to launch",title:"Choose which agent to launch",className:ve(P,"-ml-px rounded-l-none",r==="compact"?"px-1":"px-1.5"),children:s.jsx(tr,{className:ve("size-3.5 opacity-70 transition-transform",N&&"rotate-180")})})]}),N&&b&&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(I=>s.jsxs("button",{type:"button",role:"menuitemradio","aria-checked":I.id===k,onClick:()=>{v(I.id),C(!1),A(I.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(Nr,{className:ve("size-3.5 shrink-0",I.id===k?"opacity-100":"opacity-0")}),s.jsx("span",{className:"truncate",children:I.label}),I.default&&s.jsx("span",{className:"ml-auto text-[10px] text-muted-foreground/60",children:"default"})]},I.id)),y&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"mt-1 border-t border-border/60 px-2.5 pb-1 pt-1.5 text-[10px] font-medium uppercase tracking-wide text-muted-foreground/70",children:"Run as Claude agent"}),h.map(I=>s.jsxs("button",{type:"button",role:"menuitem",onClick:()=>T(I.name),title:I.description??I.name,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("span",{className:"size-3.5 shrink-0"}),s.jsx("span",{className:"truncate",children:I.name}),I.model&&s.jsx("span",{className:"ml-auto text-[10px] text-muted-foreground/60",children:I.model})]},`claude-agent:${I.name}`))]})]})]}),a.dialogs,e.kind==="assignment"&&l&&s.jsx(tX,{open:!0,assignmentId:e.id,agentId:l.agentId,onConfirm:I=>{a.open(e,void 0,l.agentId,I)},onOpenChange:I=>{I||u(null)}})]})}const qy="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 t3({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(""),[A,T]=m.useState([]),[_,O]=m.useState(!1),[P,W]=m.useState(null),[I,z]=m.useState(""),[U,D]=m.useState(null),[F,M]=m.useState(null),[K,$]=m.useState(""),[V,L]=m.useState(r),[B,Y]=m.useState(!1),[H,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([]),O(!1),W(null),z(""),D(null),M(null),$(""),L(r),Q(null),(a.kind==="project-nested"?KH(a.projectSlug):qH(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"?ZH(a.projectSlug,a.assignmentSlug):e9(a.assignmentId)).then(Re=>{ie||D(Re)}).catch(Re=>{ie||(M(Re.message),D([]))}),()=>{ie=!0}},[l,r,o,e,t,n]);const J=f==="branch-off"?(U??[]).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([]),W(null),O(!1),z("");return}let ie=!1;return O(!0),W(null),z(""),(a.kind==="project-nested"?QH(a.projectSlug,a.assignmentSlug,Z):JH(a.assignmentId,Z)).then(ye=>{if(ie)return;T(ye.branches);const Re=(ye.defaultBranch&&ye.branches.includes(ye.defaultBranch)?ye.defaultBranch:ye.branches.includes(o)?o:ye.branches[0])??"";z(Re),O(!1)}).catch(ye=>{ie||(T([]),W(ye.message),O(!1))}),()=>{ie=!0}},[l,f,Z,o,e,t,n]);const oe=UH(V.trim()),te=m.useMemo(()=>!Z||!V.trim()?"":`${Z.replace(/\/+$/,"")}/.worktrees/${V.trim()}`,[Z,V]),ue=h!==null&&h.length===0,ge=U!==null&&U.length===0,Ce=ie=>{ie!==f&&(p(ie),$(""),Q(null),ie==="branch-off"&&(z(""),T([]),W(null),O(!1)))},Se=ie=>{$(ie);const be=(U??[]).find(ye=>ye.id===ie);z((be==null?void 0:be.branch)??"")},ke=B||oe!==null||!Z||!I.trim()||(f==="new-branch"?h===null||_:U===null||!K),Be=async()=>{Y(!0),Q(null);try{const ie={repository:Z,branch:V.trim(),parentBranch:I.trim()};a.kind==="project-nested"?await GH(a.projectSlug,a.assignmentSlug,ie):await YH(a.assignmentId,ie),u(!1),i()}catch(ie){ie instanceof Qw?Q({message:ie.message,stderr:ie.stderr}):ie instanceof Error?Q({message:ie.message}):Q({message:String(ie)})}finally{Y(!1)}};return s.jsxs(Mn,{open:l,onOpenChange:ie=>B?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(E4,{className:"h-3.5 w-3.5","aria-hidden":"true"}),s.jsx("span",{children:"Create worktree"})]}),s.jsxs(Sn,{children:[s.jsxs(sr,{children:[s.jsx(Cn,{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:B,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:B,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:qy,value:v,onChange:ie=>b(ie.target.value),disabled:B||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:B,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:B}):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:qy,value:I,onChange:ie=>z(ie.target.value),disabled:B||_||A.length===0,children:_?s.jsx("option",{value:"",children:"Loading branches…"}):A.length===0?s.jsx("option",{value:"",children:P?"Could not load branches":Z?"No branches found":"— pick a repository —"}):A.map(ie=>s.jsx("option",{value:ie,children:ie},ie))}),P?s.jsxs("span",{className:"text-[11px] text-error-foreground",children:["Could not load branches: ",P]}):null]})]}):s.jsxs(s.Fragment,{children:[F?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: ",F]}):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:qy,value:K,onChange:ie=>Se(ie.target.value),disabled:B||U===null,children:[s.jsx("option",{value:"",children:"— select an assignment —"}),(U??[]).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:V,onChange:ie=>L(ie.target.value),disabled:B}),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:te||s.jsx("span",{className:"opacity-60",children:"— pick a repo & branch —"})})]}),H?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:H.message}),H.stderr?s.jsx("pre",{className:"mt-2 whitespace-pre-wrap text-[11px] opacity-90",children:H.stderr}):null]}):null]}),s.jsxs(Hr,{children:[s.jsx(XT,{disabled:B,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:B?"Working…":"Create worktree"})]})]})]})}function nX(e){const t=e.split(`
635
+ `),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(`
636
+ `).replace(/\n{3,}/g,`
637
+
638
+ `).trim();return{acceptanceCriteria:o,summaryBody:i}}function rX(e){const t=e.split(`
639
+ `),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(`
640
+ `).replace(/<!--[\s\S]*?-->/g,"").replace(/\n{3,}/g,`
641
+
642
+ `).trim(),i=[...t.slice(0,n),...t.slice(r)].join(`
643
+ `).replace(/\n{3,}/g,`
644
+
645
+ `).trim();return{hasSection:!0,todosMarkdown:o,remaining:i}}function sX({projectSlug:e,dependencies:t,blockedReason:n,onAssignmentChange:r}){const[o,i]=m.useState(!1);if(t.length===0)return null;const a=t.filter(u=>u.status!=="completed"&&u.status!=="review"),l=a.length===0;return l&&!o?s.jsxs("button",{type:"button",onClick:()=>i(!0),className:"flex w-full items-center gap-2 rounded-lg border border-success-foreground/30 bg-success/70 px-4 py-2.5 text-left transition hover:bg-success",children:[s.jsx(am,{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(tr,{className:"ml-auto h-4 w-4 text-success-foreground"})]}):s.jsxs("div",{className:"space-y-3",children:[a.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:[a.length," ",a.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-a.length} of ${t.length} resolved`,actions:l?s.jsx("button",{type:"button",onClick:()=>i(!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(u=>s.jsxs($e,{to:`/projects/${e}/assignments/${u.slug}`,className:"flex items-center gap-3 px-1 py-2.5 transition hover:bg-muted/40 first:pt-0 last:pb-0",children:[s.jsx("span",{onClick:f=>{f.preventDefault(),f.stopPropagation()},onPointerDown:f=>f.stopPropagation(),children:s.jsx(Cs,{projectSlug:e,slug:u.slug,status:u.status,title:u.title,onChange:r})}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx("p",{className:"truncate text-sm font-medium text-foreground",children:u.title}),s.jsx("p",{className:"truncate text-xs text-muted-foreground",children:u.slug})]}),u.assignee&&s.jsx("span",{className:"hidden text-xs text-muted-foreground sm:inline",children:u.assignee}),s.jsx(ch,{className:"h-4 w-4 shrink-0 text-muted-foreground"})]},u.slug))})})]})}function oX({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:ve("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 iX({links:e,onAssignmentChange:t}){const n=xn();if(e.length===0)return null;const r=e.filter(i=>!i.isReverse),o=e.filter(i=>i.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:[r.map(i=>s.jsxs($e,{to:`${n}/projects/${i.projectSlug}/assignments/${i.assignmentSlug}`,className:"flex items-center gap-3 px-1 py-2.5 transition hover:bg-muted/40 first:pt-0 last:pb-0",children:[s.jsx(im,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),s.jsx("span",{onClick:a=>{a.preventDefault(),a.stopPropagation()},onPointerDown:a=>a.stopPropagation(),children:s.jsx(Cs,{projectSlug:i.projectSlug,slug:i.assignmentSlug,status:i.status,title:i.title,onChange:t})}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx("p",{className:"truncate text-sm font-medium text-foreground",children:i.title}),s.jsx("p",{className:"truncate text-xs text-muted-foreground",children:i.slug})]}),s.jsx(ch,{className:"h-4 w-4 shrink-0 text-muted-foreground"})]},`fwd-${i.slug}`)),o.map(i=>s.jsxs($e,{to:`${n}/projects/${i.projectSlug}/assignments/${i.assignmentSlug}`,className:"flex items-center gap-3 px-1 py-2.5 transition hover:bg-muted/40 first:pt-0 last:pb-0",children:[s.jsx(lh,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),s.jsx("span",{onClick:a=>{a.preventDefault(),a.stopPropagation()},onPointerDown:a=>a.stopPropagation(),children:s.jsx(Cs,{projectSlug:i.projectSlug,slug:i.assignmentSlug,status:i.status,title:i.title,onChange:t})}),s.jsxs("div",{className:"min-w-0 flex-1",children:[s.jsx("p",{className:"truncate text-sm font-medium text-foreground",children:i.title}),s.jsx("p",{className:"truncate text-xs text-muted-foreground",children:i.slug})]}),s.jsx(ch,{className:"h-4 w-4 shrink-0 text-muted-foreground"})]},`rev-${i.slug}`))]})})}function aX(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 lX(e,t){return e===null?`/api/assignments/${encodeURIComponent(t)}/comments`:`/api/projects/${encodeURIComponent(e)}/assignments/${encodeURIComponent(t)}/comments`}function n3({projectSlug:e,assignmentSlug:t,entries:n}){const[r,o]=m.useState(n);m.useEffect(()=>{o(n)},[n]);const i=m.useMemo(()=>aX(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(lX(e,t),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({body:a,type:u})});if(!C.ok){const _=await C.text();throw new Error(_||`HTTP ${C.status}`)}const A=await C.json().catch(()=>null),T=(N=A==null?void 0:A.comment)==null?void 0:N.id;o(_=>_.map(O=>O.id===j?{...O,id:T??O.id}:O)),l(""),window.dispatchEvent(new CustomEvent("syntaur-refresh"))}catch(C){y(C instanceof Error?C.message:String(C)),o(A=>A.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(r3,{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 r3({node:e,depth:t,onToggleResolved:n}){const{entry:r,replies:o}=e,i=r.type==="question";return s.jsxs("div",{className:ve("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:ve("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:ve("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(am,{className:"h-3 w-3"}):s.jsx(h4,{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(U4,{className:"h-3 w-3"}),r.replyTo]}):null]}),s.jsx(jn,{content:r.body}),o.length>0?s.jsx("div",{className:"space-y-2",children:o.map(a=>s.jsx(r3,{node:a,depth:t+1,onToggleResolved:n},a.entry.id))}):null]})}const cX={"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 uX(e){return cX[e]??mn(e)}function Tl(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 dX({event:e}){const{details:t}=e;if(!t)return null;const n=Tl(t,"from"),r=Tl(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=Tl(t,"name"),i=Tl(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=Tl(t,"reason");if(a!==null)return s.jsx("span",{className:"text-xs text-muted-foreground",children:a});const l=Tl(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 s3({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:uX(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:zl(r.at),children:Fu(r.at)})]}),s.jsx(dX,{event:r})]},r.event_id))})})}function fX({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:mn(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(jr,{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:zl(t.startedAt),children:Fu(t.startedAt)})]}),s.jsxs("div",{className:"text-xs text-muted-foreground",children:["Started"," ",s.jsx("span",{title:Fu(t.startedAt),children:zl(t.startedAt)})," ","· Ended"," ",t.endedAt?s.jsx("span",{title:Fu(t.endedAt),children:zl(t.endedAt)}):"in progress"," ","· ",$5(t.startedAt,t.endedAt)]})]},t.id)})})})}function o3(e){const t=rr();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 pX=["review","complete","shape","plan-ready","implement","unblock","start","block","fail","reopen"];function tC(){var xe,qe,Fe,lt,mt,vt,nt,_t,Bt,Ut,Tn,Ct;const{slug:e,aslug:t}=Kt(),n=Wt(),r=xn(),[o,i]=Rs(),[a,l]=m.useState(null),{toast:u,showToast:f,dismissToast:p}=Wn(),[h,g]=m.useState(null),[y,k]=m.useState(null),[v,b]=m.useState(null),[j,S]=m.useState(null),[N,C]=m.useState({}),[A,T]=m.useState(!1),[_,O]=m.useState(!1),[P,W]=m.useState(0),I=o.get("tab")??"summary";o3(I);const z=rs(),{data:U,loading:D,error:F,refetch:M}=rO(e,t),{data:K}=Z2(e),{data:$}=ew(),{data:V,loading:L,error:B}=oO(e,t),{data:Y,loading:H,error:Q}=aO(e,t),J=e&&t?`/api/projects/${e}/assignments/${t}/events`:null,{events:Z,loading:oe,error:te,refetch:ue}=L_(J),ge=m.useMemo(()=>{if(!U||!K)return[];const je=new Map(K.assignments.map(Ge=>[Ge.slug,Ge]));return U.dependsOn.map(Ge=>{const at=je.get(Ge);return{slug:Ge,title:(at==null?void 0:at.title)??Ge,status:(at==null?void 0:at.status)??"pending",priority:(at==null?void 0:at.priority)??"medium",assignee:(at==null?void 0:at.assignee)??null}})},[U,K]),Ce=ge.filter(je=>je.status!=="completed"&&je.status!=="review");Ai("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,be=`${r}/projects/${e}/assignments/${t}`;en({keys:"e",scope:"assignment",description:"Edit assignment",handler:()=>n(`${be}/edit`)}),en({keys:"p",scope:"assignment",description:"Edit plan",handler:()=>n(`${be}/plan/edit`)}),en({keys:"h",scope:"assignment",description:"Append handoff",handler:()=>n(`${be}/handoff/edit`)}),en({keys:"d",scope:"assignment",description:"Append decision record",handler:()=>n(`${be}/decision-record/edit`)}),en({keys:"s",scope:"assignment",description:"Edit scratchpad",handler:()=>n(`${be}/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 ye=m.useMemo(()=>U?nX(U.body):{acceptanceCriteria:[],summaryBody:""},[U]);m.useEffect(()=>{C({})},[U]);const Re=m.useMemo(()=>rX(ye.summaryBody),[ye.summaryBody]),Ue=ye.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(U){if(!St.current){ot.current=Oe,St.current=!0;return}Oe&&!ot.current&&W(je=>je+1),ot.current=Oe}},[Oe,U]),D)return s.jsx(bt,{label:"Loading assignment workspace…"});if(F||!U||!e||!t)return s.jsx(Tt,{error:F||"Assignment not found.",onRetry:M});const ht=e,it=t,ce=Ue.length>0?{checked:rt,total:Ue.length}:void 0,me=U.availableTransitions??[],Ie=me.filter(je=>!je.disabled&&je.targetStatus!==U.status),Pe=pX.map(je=>Ie.find(Ge=>Ge.command===je)).find(Boolean)??Ie[0]??null,Ve=[];if($!=null&&$.sessions)for(const je of $.sessions)for(const Ge of je.windows)for(const at of Ge.panes)((xe=at.assignment)==null?void 0:xe.project)===e&&((qe=at.assignment)==null?void 0:qe.slug)===t&&Ve.push({sessionName:je.name,command:at.command,urls:at.urls});async function pt(je){l(null);try{await Yw(ht,it,je),M(),ue()}catch(Ge){l(Ge.message)}}async function _e(je){l(null);try{const Ge=await fetch(`/api/projects/${ht}/assignments/${it}/${je?"archive":"unarchive"}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!Ge.ok){const at=await Ge.json().catch(()=>null);throw new Error((at==null?void 0:at.error)||`HTTP ${Ge.status}`)}M(),ue(),f(je?"Assignment archived":"Assignment restored","success")}catch(Ge){l(Ge.message)}}async function Qe(){O(!0);try{await HH(ht,it),n(`${r}/projects/${ht}`)}catch(je){l(je.message),O(!1),T(!1)}}async function Je(je,Ge){l(null),g(je.command);try{return await Gw(ht,it,je,Ge),M(),ue(),!0}catch(at){return l(at.message),!1}finally{g(null)}}function ut(je){if(Xw(je)){k(je);return}Je(je)}async function fe(je,Ge){b(null),S(je),C(at=>({...at,[je]:Ge}));try{const at=await fetch(`/api/projects/${ht}/assignments/${it}/acceptance-criteria/${je}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({checked:Ge})}),Mt=await at.json();if(!at.ok)throw new Error(Mt.error||`HTTP ${at.status}`);M()}catch(at){C(le=>{const Ne={...le};return delete Ne[je],Ne});const Mt=at.message;b(Mt),f(Mt||"Failed to update acceptance criterion","error")}finally{S(null)}}const q=[...Ie.filter(je=>je!==Pe).map(je=>({key:`transition-${je.command}`,label:je.label,onSelect:()=>ut(je),disabled:h===je.command})),...me.filter(je=>je.disabled||je.targetStatus===U.status).map(je=>({key:`transition-${je.command}`,label:je.label,disabled:!0,disabledReason:je.targetStatus===U.status?`Already ${U.status.replace(/_/g," ")}`:je.disabledReason??je.warning??je.description})),...z.statuses.map(je=>({key:`override-${je.id}`,label:`Override → ${je.label}`,onSelect:()=>pt(je.id),disabled:je.id===U.status,disabledReason:je.id===U.status?"Already in this status":void 0})),{key:"edit-assignment",label:"Edit assignment source",icon:k4,href:`${r}/projects/${e}/assignments/${t}/edit`},{key:"edit-plan",label:"Edit plan",icon:W4,href:`${r}/projects/${e}/assignments/${t}/plan/edit`},{key:"edit-scratchpad",label:"Edit scratchpad",icon:ny,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:R4,href:`${r}/projects/${e}/assignments/${t}/decision-record/edit`},{key:U.archived?"unarchive":"archive",label:U.archived?"Restore assignment":"Archive assignment",icon:U.archived?ah:sm,onSelect:()=>_e(!U.archived)},{key:"delete",label:"Delete assignment",icon:gn,destructive:!0,onSelect:()=>T(!0)}],ne=(Pe==null?void 0:Pe.command)==="review";return s.jsxs("div",{className:"space-y-5",children:[s.jsx(Vn,{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(Cs,{id:U.id,slug:it,projectSlug:ht,status:U.status,title:U.title,availableTransitions:U.availableTransitions,progress:ce,onChange:()=>M()}),s.jsx("h1",{className:"min-w-0 flex-1 truncate text-lg font-semibold text-foreground",title:U.title,children:U.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(e3,{target:{kind:"assignment",id:U.id},worktreePath:((Fe=U.workspace)==null?void 0:Fe.worktreePath)??null,repository:((lt=U.workspace)==null?void 0:lt.repository)??null}),!((mt=U.workspace)!=null&&mt.worktreePath)&&e&&t&&s.jsx(t3,{projectSlug:e,assignmentSlug:t,defaultBranch:`syntaur/${e}/${t}`,onCreated:()=>M()}),Pe&&s.jsx("button",{type:"button",title:Pe.warning||Pe.description,disabled:h===Pe.command,onClick:()=>ut(Pe),className:ve("shell-action disabled:cursor-not-allowed disabled:opacity-50",Pe.warning&&"border-warning-foreground/40",ne&&P>0&&"send-to-review-glow"),children:s.jsx("span",{children:h===Pe.command?"Working…":Pe.label})},ne?`review-${P}`:Pe.command),s.jsx(Ww,{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,U.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:"})," ",U.blockedReason]}):null,U.override&&U.derived&&U.derived.derivedStatus!==U.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 ",U.status]})," by ",U.override.source,U.override.reason?s.jsxs(s.Fragment,{children:[" — “",U.override.reason,"”"]}):null," · ","would otherwise be ",s.jsx("strong",{children:U.derived.derivedStatus})]}):null,(vt=U.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:"})," ",U.derived.nextAction]}):null]}),ge.length>0&&s.jsx(sX,{projectSlug:e,dependencies:ge,blockedReason:U.blockedReason,onAssignmentChange:()=>M()}),U.enrichedLinks&&U.enrichedLinks.length>0&&s.jsx(iX,{links:U.enrichedLinks,onAssignmentChange:()=>M()}),U.referencedBy&&U.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:U.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(Ym,{value:I,onValueChange:je=>i({tab:je}),items:[{value:"summary",label:"Summary",content:s.jsxs("div",{className:"space-y-5",children:[ye.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,ye.acceptanceCriteria.map((je,Ge)=>{const at=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:at,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(jn,{content:Re.todosMarkdown,emptyState:"No todos yet."})}):null,s.jsx(We,{title:"Assignment Summary",children:s.jsx(jn,{content:Re.remaining,emptyState:ye.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:U.plan?1:0,content:U.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(ny,{className:"h-4 w-4"}),s.jsx("span",{children:"Edit Plan"})]}),children:[s.jsx("div",{className:"mb-4",children:s.jsx(ro,{status:U.plan.status})}),s.jsx(jn,{content:U.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:U.scratchpad?1:0,content:U.scratchpad?s.jsx(We,{title:"Scratchpad",actions:s.jsxs($e,{className:"shell-action",to:`${r}/projects/${e}/assignments/${t}/scratchpad/edit`,children:[s.jsx(ny,{className:"h-4 w-4"}),s.jsx("span",{children:"Edit Scratchpad"})]}),children:s.jsx(jn,{content:U.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:((nt=U.handoff)==null?void 0:nt.handoffCount)??0,content:s.jsx("div",{className:"space-y-5",children:U.handoff?s.jsx(We,{children:s.jsx(jn,{content:U.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:((_t=U.progress)==null?void 0:_t.entryCount)??0,content:s.jsx("div",{className:"space-y-5",children:U.progress&&U.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:U.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(jn,{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=U.comments)==null?void 0:Bt.entryCount)??0,content:s.jsx("div",{className:"space-y-5",children:U.comments&&U.comments.entries.length>0?s.jsx(n3,{projectSlug:e,assignmentSlug:t,entries:U.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=U.decisionRecord)==null?void 0:Ut.decisionCount)??0,content:s.jsx("div",{className:"space-y-5",children:U.decisionRecord?s.jsx(We,{children:s.jsx(jn,{content:U.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(oX,{customFacts:(Tn=U.derived)==null?void 0:Tn.customFacts,attestations:(Ct=U.derived)==null?void 0:Ct.attestations}),s.jsx(s3,{events:Z,loading:oe,error:te})]})},{value:"session-activity",label:"Session Activity",count:U.engagements.length,content:s.jsx(fX,{engagements:U.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(No,{label:"ID",value:U.id,copyable:!0}),s.jsx(No,{label:"Priority",value:U.priority}),U.assignee&&s.jsx(No,{label:"Assignee",value:U.assignee}),U.type&&s.jsx(nC,{label:"Type",children:s.jsx(_a,{type:U.type,compact:!0})}),U.phase&&U.phase!==U.status&&s.jsx(No,{label:"Phase",value:U.phase}),U.disposition&&U.disposition!=="active"&&s.jsx(nC,{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:U.disposition})}),s.jsx(No,{label:"Updated",value:`${zl(U.updated)} · Created ${I2(U.created)}`}),U.workspace.repository&&s.jsx(No,{label:"Repository",value:U.workspace.repository,copyable:!0}),U.workspace.worktreePath&&s.jsx(No,{label:"Worktree",value:U.workspace.worktreePath,copyable:!0}),U.workspace.branch&&s.jsx(No,{label:"Branch",value:U.workspace.branch,copyable:!0}),U.workspace.parentBranch&&s.jsx(No,{label:"Parent branch",value:U.workspace.parentBranch,copyable:!0}),U.externalIds.map((je,Ge)=>s.jsx(hX,{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(at=>s.jsxs("a",{href:at,target:"_blank",rel:"noopener noreferrer",title:at,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:at.replace("http://localhost:",":")}),s.jsx(vc,{className:"h-2.5 w-2.5 shrink-0"})]},at))]},Ge))})}),s.jsx(B_,{sessions:V==null?void 0:V.sessions,loading:L,error:B,onError:je=>f(je.message,"error"),onNotice:je=>f(je,"success")}),s.jsx(U_,{summary:Y==null?void 0:Y.summary,loading:H,error:Q})]})]}),s.jsx(qw,{open:y!==null,action:y,assignmentTitle:U.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(os,{open:A,title:"Delete assignment?",description:`This will permanently delete "${U.title}" and all its files (plan, scratchpad, handoff, decision record). This cannot be undone.`,confirmLabel:"Delete Assignment",destructive:!0,loading:_,onOpenChange:je=>{je||T(!1)},onConfirm:Qe})]})}function No({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(jr,{value:t})]})]})}function nC({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 hX({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(vc,{className:"h-2.5 w-2.5 shrink-0"})]}):s.jsx("span",{className:"truncate min-w-0",title:e.id,children:e.id})})]})}function mX(){var I,z,U,D,F,M,K,$;const{id:e}=Kt(),[t,n]=Rs(),r=t.get("tab")??"summary";o3(r);const{data:o,loading:i,error:a,refetch:l}=sO(e),{data:u,loading:f,error:p}=iO(e),{data:h,loading:g,error:y}=lO(o==null?void 0:o.slug),k=e?`/api/standalone/assignments/${e}/events`:null,{events:v,loading:b,error:j,refetch:S}=L_(k),[N,C]=m.useState(!1),[A,T]=m.useState(null),{toast:_,showToast:O,dismissToast:P}=Wn();async function W(V){if(e){T(null);try{const L=await fetch(`/api/assignments/${e}/${V?"archive":"unarchive"}`,{method:"POST",headers:{"Content-Type":"application/json"}});if(!L.ok){const B=await L.json().catch(()=>null);throw new Error((B==null?void 0:B.error)||`HTTP ${L.status}`)}l(),S(),O(V?"Assignment archived":"Assignment restored","success")}catch(L){T(L instanceof Error?L.message:"Archive failed")}}}return i?s.jsx(bt,{}):a?s.jsx(Tt,{error:a}):o?s.jsxs("div",{className:"space-y-6",children:[s.jsx(Vn,{toast:_,onDismiss:P}),s.jsxs("header",{className:"space-y-2",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsx(Cs,{id:o.id,status:o.status,title:o.title,availableTransitions:o.availableTransitions,onChange:()=>l()}),s.jsx(_a,{type:o.type}),s.jsx("span",{className:"text-xs font-mono text-muted-foreground",children:o.id}),s.jsx(yP,{externalIds:o.externalIds}),s.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[s.jsx(e3,{target:{kind:"assignment",id:o.id},worktreePath:((I=o.workspace)==null?void 0:I.worktreePath)??null,repository:((z=o.workspace)==null?void 0:z.repository)??null,size:"compact"}),!((U=o.workspace)!=null&&U.worktreePath)&&s.jsx(t3,{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(om,{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:()=>W(!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(sm,{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,A?s.jsx("p",{className:"text-sm text-status-failed-foreground",children:A}):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(V=>s.jsxs("li",{className:"flex items-center gap-2 text-sm",children:[s.jsx($e,{to:V.sourceProjectSlug===null?`/assignments/${V.sourceId}`:`/projects/${V.sourceProjectSlug}/assignments/${V.sourceSlug}`,className:"text-foreground hover:text-primary",children:V.sourceTitle}),s.jsxs("span",{className:"text-xs text-muted-foreground",children:["(",V.mentions," mention",V.mentions===1?"":"s",")"]})]},V.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(Ym,{value:r,onValueChange:V=>n({tab:V}),items:[{value:"summary",label:"Summary",content:s.jsx("div",{className:"space-y-5",children:s.jsx(We,{title:"Assignment",children:s.jsx(jn,{content:o.body,emptyState:"This assignment does not have summary markdown yet."})})})},{value:"progress",label:"Progress",count:((D=o.progress)==null?void 0:D.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((V,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:V.timestamp}),s.jsx(jn,{content:V.body})]},`${V.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:((F=o.comments)==null?void 0:F.entryCount)??0,content:s.jsx("div",{className:"space-y-5",children:s.jsx(n3,{projectSlug:null,assignmentSlug:o.id,entries:((M=o.comments)==null?void 0:M.entries)??[]})})},{value:"plan",label:"Plan",content:s.jsx("div",{className:"space-y-5",children:o.plan?s.jsxs(We,{children:[s.jsx(jn,{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(jn,{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(jn,{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:(($=o.decisionRecord)==null?void 0:$.decisionCount)??0,content:s.jsx("div",{className:"space-y-5",children:o.decisionRecord?s.jsxs(We,{children:[s.jsx(jn,{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(s3,{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(di,{label:"ID",value:o.id,copyable:!0}),s.jsx(di,{label:"Priority",value:o.priority}),o.assignee&&s.jsx(di,{label:"Assignee",value:o.assignee}),s.jsx(di,{label:"Updated",value:`${zl(o.updated)} · Created ${I2(o.created)}`}),o.workspace.repository&&s.jsx(di,{label:"Repository",value:o.workspace.repository,copyable:!0}),o.workspace.worktreePath&&s.jsx(di,{label:"Worktree",value:o.workspace.worktreePath,copyable:!0}),o.workspace.branch&&s.jsx(di,{label:"Branch",value:o.workspace.branch,copyable:!0}),o.workspace.parentBranch&&s.jsx(di,{label:"Parent branch",value:o.workspace.parentBranch,copyable:!0}),o.externalIds.map((V,L)=>s.jsx(gX,{entry:V},`${V.system}:${V.id}:${L}`))]})}),s.jsx(B_,{sessions:u==null?void 0:u.sessions,loading:f,error:p,onError:V=>O(V.message,"error"),onNotice:V=>O(V,"success")}),s.jsx(U_,{summary:h==null?void 0:h.summary,loading:g,error:y})]})]}),s.jsx(s0,{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 V=>{const L=await fetch(`/api/assignments/${encodeURIComponent(o.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspaceGroup:V})});if(!L.ok){const B=await L.json().catch(()=>({}));throw new Error(B.error||"Failed to move assignment")}l()}})]}):s.jsx(Tt,{error:"Assignment not found"})}function di({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(jr,{value:t})]})]})}function gX({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(vc,{className:"h-2.5 w-2.5 shrink-0"})]}):s.jsx("span",{className:"truncate min-w-0",title:e.id,children:e.id})})]})}function i3({title:e,detailHref:t,onSave:n,disabled:r=!1}){const[o,i]=m.useState(!1);return o?s.jsx(xX,{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:ve("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(vc,{className:"h-3.5 w-3.5"})})]})}function xX({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:ve("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 a3(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(ic)||t(e)},[t,e]);return{containerRef:n,onMouseDown:o,onClick:i}}const rC=/[A-Za-z0-9_-]/;function sC(e,t){const n=Math.max(0,Math.min(t,e.length)),r=yX(e,n);if(r)return r;let o=n;for(;o>0&&rC.test(e[o-1]);)o--;let i=n;for(;i<e.length&&rC.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 yX(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 bX(e,t){const n=GA(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 vX(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 wX(e,t,n){let r;return t.kind==="field"?r=`${n}:`:r=vw(n),{text:e.slice(0,t.tokenStart)+r+e.slice(t.tokenEnd),caret:t.tokenStart+r.length}}const jX=180;function kX(e,t){const[n,r]=m.useState(e);return m.useEffect(()=>{const o=setTimeout(()=>r(e),t);return()=>clearTimeout(o)},[e,t]),n}function NX({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=kX(e,jX),[h,g]=m.useState([]),[y,k]=m.useState([]),[v,b]=m.useState("field"),[j,S]=m.useState(-1),[N,C]=m.useState(!1),A=m.useRef(e.length);m.useEffect(()=>{if(p.trim()===""){g([]),n==null||n(null);return}const D=nc(p,r);D.errors.length>0?(g(D.errors),n==null||n(null)):(g([]),n==null||n(D.query))},[p,r,n]);const T=m.useCallback((D,F)=>{const M=sC(D,F);if(!M){k([]),C(!1);return}if(M.kind==="field"){const K=bX(M.partial,o);k(K),b("field"),C(K.length>0)}else{const K=vX(M.field,M.partial,i,r);k(K),b("value"),C(K.length>0)}S(-1)},[o,i,r]),_=m.useCallback(D=>{const F=D.target.value,M=D.target.selectionStart??F.length;A.current=M,t(F),T(F,M)},[t,T]),O=m.useCallback(D=>{const F=u.current,M=(F==null?void 0:F.selectionStart)??A.current,K=sC(e,M);if(!K)return;const{text:$,caret:V}=wX(e,K,D);t($),C(!1),k([]),requestAnimationFrame(()=>{u.current&&(u.current.focus(),u.current.setSelectionRange(V,V),A.current=V)})},[e,t]),P=m.useCallback(D=>{if(!(!N||y.length===0))switch(D.key){case"ArrowDown":D.preventDefault(),S(F=>Math.min(F+1,y.length-1));break;case"ArrowUp":D.preventDefault(),S(F=>Math.max(F-1,-1));break;case"Enter":case"Tab":j>=0&&(D.preventDefault(),O(y[j]));break;case"Escape":C(!1),k([]);break}},[N,y,j,O]),W=m.useRef(null),I=m.useCallback(()=>{W.current=setTimeout(()=>C(!1),120)},[]);m.useEffect(()=>()=>{W.current!==null&&clearTimeout(W.current)},[]);const z=m.useCallback(()=>{var F;const D=((F=u.current)==null?void 0:F.selectionStart)??e.length;T(e,D)},[e,T]);m.useEffect(()=>{var D,F;N&&((F=(D=f.current)==null?void 0:D.querySelector('[aria-selected="true"]'))==null||F.scrollIntoView({block:"nearest"}))},[j,N]);const U=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:_,onKeyDown:P,onBlur:I,onFocus:z,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",U?"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((D,F)=>s.jsx("li",{role:"option","aria-selected":F===j,onMouseDown:M=>{M.preventDefault(),O(D)},className:["cursor-pointer px-3 py-1.5 font-mono text-sm",F===j?"bg-accent text-accent-foreground":"text-foreground hover:bg-accent/50"].join(" "),children:D},D))}),U&&s.jsx("ul",{className:"space-y-0.5",role:"status","aria-live":"polite",children:h.map((D,F)=>s.jsxs("li",{className:"font-mono text-xs text-destructive",children:["at ",D.pos,": ",D.message]},F))})]})}const oC=bw;function kp(e){return e==="1"?"stale":e==="0"?"fresh":"all"}function SX(e,t){return e.toString()===t.toString()}function iC(){const{workspace:e}=Kt(),t=xn(),n=Wt(),r=m.useRef(null);Ai("list:assignments");const{data:o,loading:i,error:a,refetch:l}=dm(),u=rs(),f=Fd(),[p,h]=Rs(),g=e?`w:${e}`:null,y=P_(g),k=m.useRef(void 0),v=m.useMemo(()=>gP(u.order),[u]),b=m.useMemo(()=>{const X={};for(const re of v)X[re]=es(u,re);return X},[v,u]),j=m.useMemo(()=>v.map(X=>({id:X,title:b[X]??X,description:Yd(X)})),[v,b]),S=m.useMemo(()=>f.definitions.map(X=>({id:X.id,title:Hl(f,X.id),description:X.description})),[f]),N="__unknown_type__",C=m.useMemo(()=>new Set(["all",...v]),[v]),A=p.get("view"),T=p.get("status"),_=p.get("stale"),O=A&&oC.includes(A)?A:"kanban";function P(X){if(!X)return[];const re=[];for(const we of X.split(",")){const ze=we.trim();!ze||ze==="all"||!C.has(ze)||re.includes(ze)||re.push(ze)}return re}const W=m.useCallback(X=>{h(re=>{const we=new URLSearchParams(re);return X==="kanban"?we.delete("view"):we.set("view",X),we})},[h]),[I,z]=m.useState(""),[U,D]=m.useState(()=>P(T)),[F,M]=m.useState(()=>He(y.filters.priority)),[K,$]=m.useState(()=>He(y.filters.type)),[V,L]=m.useState(()=>He(y.filters.assignee)),[B,Y]=m.useState(()=>He(y.filters.project)),[H,Q]=m.useState(()=>He(y.filters.tags)),[J,Z]=m.useState(null),[oe,te]=m.useState(()=>kp(_)),[ue,ge]=m.useState(()=>Wu({status:P(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(_)})),[Ce,Se]=m.useState(()=>y.sortField),[ke,Be]=m.useState(()=>y.sortDirection),[ie,be]=m.useState(()=>({hidden:[]})),[ye,Re]=m.useState(()=>({hidden:[]})),[Ue,rt]=m.useState(()=>y.grouping),Oe=Ue==="type"?"type":"status",[ot,St]=m.useState(()=>new Set),[ht,it]=m.useState([]),{toast:ce,showToast:me,dismissToast:Ie}=Wn(),[Pe,Ve]=m.useState(null),[pt,_e]=m.useState(null),[Qe,Je]=m.useState(null),[ut,fe]=m.useState(null),[q,ne]=m.useState(null),[xe,qe]=m.useState(null),[Fe,lt]=m.useState(null),[mt,vt]=m.useState(null),[nt,_t]=m.useState(null),[Bt,Ut]=m.useState(!1),[Tn,Ct]=m.useState(!1),je=e?{kind:"workspace",workspace:e}:{kind:"global"},Ge=p.get("loadView"),{view:at,loading:Mt,error:le}=ki(Ge),{view:Ne,loading:et,error:Rn}=ki(nt),Er=m.useRef(null);m.useEffect(()=>{it((o==null?void 0:o.assignments)??[])},[o]),m.useEffect(()=>{nt&&!et&&!Rn&&!Ne&&_t(null)},[Ne,Rn,nt,et]),m.useEffect(()=>{_t(null),Er.current=null,Z(null),z("")},[e]);const lo=m.useRef({status:T,stale:_});m.useEffect(()=>{const X=P(T),re=kp(_);tz(X,U)||D(X),re!==oe&&te(re);const we=lo.current,ze=we.status!==T||we.stale!==_;lo.current={status:T,stale:_},ze&&nn({status:X,activity:re})},[oe,_,U,T]),m.useEffect(()=>{k.current===g&&h(X=>{const re=new URLSearchParams(X);return U.length===0?re.delete("status"):re.set("status",U.join(",")),oe==="all"?re.delete("stale"):oe==="stale"?re.set("stale","1"):re.set("stale","0"),SX(X,re)?X:re})},[oe,g,h,U]),m.useEffect(()=>{M(He(y.filters.priority)),$(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 T0().then(re=>{if(X||k.current===g)return;const we=ZT(re,g),ze=we.defaultView,yt=He(we.filters.status),Dt=we.filters.activity??"all",$t=new URLSearchParams(window.location.search);let Fn=!1;const yn=new URLSearchParams($t);$t.get("view")===null&&ze!=="kanban"&&oC.includes(ze)&&(yn.set("view",ze),Fn=!0),$t.get("status")===null&&yt.length>0&&(yn.set("status",yt.join(",")),D(yt),Fn=!0),$t.get("stale")===null&&Dt!=="all"&&(yn.set("stale",Dt==="stale"?"1":"0"),te(Dt),Fn=!0),Fn&&h(yn,{replace:!0});const pn=P(yn.get("status")),Tr=yn.get("stale")===null?Dt:kp(yn.get("stale"));ge(Wu({status:pn,priority:He(we.filters.priority),type:He(we.filters.type),assignee:He(we.filters.assignee),project:He(we.filters.project),tags:He(we.filters.tags),activity:Tr==="fresh"||Tr==="stale"?Tr:"all"})),queueMicrotask(()=>{k.current=g})}),()=>{X=!0}},[g]);const wt=m.useCallback(X=>{(g===null?D_(X):$_(g,X)).catch(we=>{console.warn("Failed to persist view prefs:",we)})},[g]),_i=m.useCallback(X=>{W(X),wt({defaultView:X})},[W,wt]),Oo=m.useRef(null);Oo.current={status:U,priority:F,type:K,assignee:V,project:B,tags:H,activity:oe,dateRange:J,search:I};const Ma=m.useCallback((X={})=>{const re=Oo.current;return{status:re.status,priority:re.priority,type:re.type,assignee:re.assignee,project:re.project,tags:re.tags,activity:re.activity,dateRange:xa(re.dateRange),search:re.search,...X}},[]),nn=m.useCallback((X={})=>{ge(Wu(Ma(X)))},[Ma]),Fo=m.useCallback(X=>{D(X),wt({filters:{status:X}}),nn({status:X})},[wt,nn]),La=m.useCallback(X=>{M(X),wt({filters:{priority:X}}),nn({priority:X})},[wt,nn]),Oa=m.useCallback(X=>{$(X),wt({filters:{type:X}}),nn({type:X})},[wt,nn]),Bc=m.useCallback(X=>{L(X),wt({filters:{assignee:X}}),nn({assignee:X})},[wt,nn]),Fa=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]),Di=m.useCallback(X=>{te(X),wt({filters:{activity:X}}),nn({activity:X})},[wt,nn]),co=m.useCallback(X=>{z(X),nn({search:X})},[nn]),zo=m.useCallback(X=>{Z(X),nn({dateRange:xa(X)})},[nn]),Ds=m.useCallback(X=>{Se(X),wt({sortField:X})},[wt]),Bo=m.useCallback(X=>{Be(X),wt({sortDirection:X})},[wt]),za=m.useCallback(X=>{rt(X),wt({grouping:X})},[wt]),Uo=m.useCallback(()=>{co(""),Fo([]),Ht([]),zo(null),Di("all")},[co,Fo,Ht,zo,Di]),ir=m.useCallback(X=>{ge(X);const re=Ku(X);re&&(D(He(re.status)),M(He(re.priority)),$(He(re.type)),L(He(re.assignee)),Y(He(re.project)),Q(He(re.tags)),z(re.search??""),te(re.activity&&re.activity!=="all"?re.activity:"all"),Z(Wm(re.dateRange)))},[]),ur=m.useMemo(()=>Ku(ue)!==null,[ue]),Ln=m.useCallback(()=>{const re=Ku(ue)!==null?{status:U,priority:F,type:K,assignee:V,project:B,tags:H,activity:oe,dateRange:xa(J),search:I}:{};return{viewMode:O,filters:{...re,query:ue},sortField:Ce,sortDirection:ke,listSectionVisibility:{collapsed:[...ot]},kanbanColumnVisibility:ie,tableColumnVisibility:ye}},[O,ue,U,F,K,V,B,H,oe,J,I,Ce,ke,ot,ie,ye]),Ho=m.useCallback(X=>{cP(X,{setViewMode:W,setQuery:ge,setStatusFilter:re=>{D(re),wt({filters:{status:re}})},setPriorityFilter:re=>{M(re),wt({filters:{priority:re}})},setTypeFilter:re=>{$(re),wt({filters:{type:re}})},setAssigneeFilter:re=>{L(re),wt({filters:{assignee:re}})},setProjectFilter:re=>{Y(re),wt({filters:{project:re}})},setTagsFilter:re=>{Q(re),wt({filters:{tags:re}})},setActivityFilter:re=>{te(re),wt({filters:{activity:re}})},setDateRange:Z,setSearch:z,setSortField:Ds,setSortDirection:Bo,setListSectionVisibility:re=>St(new Set(re.collapsed)),setKanbanColumnVisibility:be,setTableColumnVisibility:Re}),_t(X.id)},[W,wt,Ds,Bo]),Uc=m.useCallback(X=>{Ho(X),Er.current=X.id,h(re=>{const we=new URLSearchParams(re);return we.set("loadView",X.id),we},{replace:!0})},[Ho,h]),Hc=m.useCallback(async X=>{try{const re=ac({name:X,context:{workspace:e??null,projectSlug:null},state:Ln()}),we=await rc(re),ze=we.views[we.views.length-1];_t((ze==null?void 0:ze.id)??null),ze&&(Er.current=ze.id,h(yt=>{const Dt=new URLSearchParams(yt);return Dt.set("loadView",ze.id),Dt},{replace:!0})),Ut(!1),Ct(!1),me(`Saved view "${X}"`,"success")}catch(re){throw me(re instanceof Error?re.message:"Failed to save view","error"),re}},[Ln,h,me,e]),Vo=m.useCallback(async()=>{if(!(!nt||!Ne))try{const X=ac({name:Ne.name,context:{workspace:e??null,projectSlug:null},state:Ln()}),re=Ah(Ne.config,X.config,X.config);await Nh(nt,{config:re}),me("View updated","success")}catch(X){me(X instanceof Error?X.message:"Failed to update view","error")}},[Ln,Ne,nt,me,e]);m.useEffect(()=>{if(!Ge){Er.current=null;return}if(Er.current!==Ge&&(nt&&nt!==Ge&&_t(null),!Mt)){if(le){me("Couldn't load saved view — try again","error");return}if(at){Er.current=Ge,Ho(at),h(X=>{const re=new URLSearchParams(X);return re.delete("loadView"),re},{replace:!0});return}Er.current=Ge,me("Saved view no longer exists","error"),h(X=>{const re=new URLSearchParams(X);return re.delete("loadView"),re},{replace:!0})}},[Ge,at,Mt,le,nt,Ho,h,me]);const Kn=m.useMemo(()=>ht.filter(X=>e?e==="_ungrouped"?X.projectWorkspace===null:X.projectWorkspace===e:!0),[ht,e]),uo=m.useMemo(()=>Array.from(new Set(Kn.map(X=>X.status))).sort(),[Kn]),Vr=m.useMemo(()=>Array.from(new Set(Kn.map(X=>X.priority))).sort(),[Kn]),Ba=m.useMemo(()=>Array.from(new Set(Kn.map(X=>X.assignee??"__unassigned__"))).sort(),[Kn]),$i=m.useMemo(()=>Array.from(new Map(Kn.filter(X=>X.projectSlug!==null).map(X=>[X.projectSlug,X.projectTitle]))).sort(([,X],[,re])=>X.localeCompare(re)),[Kn]),Wo=m.useMemo(()=>Array.from(new Set(Kn.flatMap(X=>X.tags??[]))).sort(),[Kn]),Ko=m.useMemo(()=>qA(u.factDeclarations),[u.factDeclarations]),$s=m.useMemo(()=>ue.trim()===""?null:nc(ue,Ko).query,[ue,Ko]),On=m.useMemo(()=>WA(ht,$s,{workspace:e}),[ht,$s,e]),An=m.useMemo(()=>Gd(On,Ce,ke),[On,Ce,ke]),Is=m.useMemo(()=>{if(Ue==="none")return[{id:"__all__",label:"All assignments",items:An}];if(Ue==="type"){const X=f.definitions.map(ze=>({id:ze.id,label:Hl(f,ze.id),items:An.filter(yt=>yt.type===ze.id)})),re=new Set(f.definitions.map(ze=>ze.id)),we=An.filter(ze=>!ze.type||!re.has(ze.type));return we.length>0&&X.push({id:N,label:"Other",items:we}),X}if(Ue==="priority")return["critical","high","medium","low"].map(re=>({id:re,label:re.charAt(0).toUpperCase()+re.slice(1),items:An.filter(we=>we.priority===re)}));if(Ue==="assignee")return Array.from(new Set(An.map(re=>re.assignee??"__unassigned__"))).sort().map(re=>({id:re,label:re==="__unassigned__"?"Unassigned":re,items:An.filter(we=>(we.assignee??"__unassigned__")===re)}));if(Ue==="project"){const X=new Map;for(const re of An){const we=re.projectSlug??"__standalone__",ze=re.projectTitle??"Standalone";X.has(we)||X.set(we,ze)}return Array.from(X.entries()).sort(([,re],[,we])=>re.localeCompare(we)).map(([re,we])=>({id:re,label:we,items:An.filter(ze=>(ze.projectSlug??"__standalone__")===re)}))}return v.map(X=>({id:X,label:b[X]??X,items:An.filter(re=>re.status===X)}))},[Ue,An,f,v,b]),Ft=m.useMemo(()=>{const X=new Set(f.definitions.map(we=>we.id));return On.some(we=>!we.type||!X.has(we.type))?[...S,{id:N,title:"Other",description:"Assignments with no recognized type."}]:S},[S,f,On]),{visibleItems:lf,visibleIndexByKey:Vc}=m.useMemo(()=>{let X;if(O==="table")X=An;else if(O==="kanban"){const we=new Set(f.definitions.map(ze=>ze.id));Oe==="type"?X=[...f.definitions.flatMap(ze=>On.filter(yt=>yt.type===ze.id)),...On.filter(ze=>!ze.type||!we.has(ze.type))]:X=v.flatMap(ze=>On.filter(yt=>yt.status===ze))}else X=Is.flatMap(we=>we.items);const re=new Map;return X.forEach((we,ze)=>re.set(vn(we),ze)),{visibleItems:X,visibleIndexByKey:re}},[O,An,Is,Oe,f,On,v]),{hotkeyRowProps:Ii}=zd(lf,{scope:"list:assignments",onOpen:X=>{if(X.projectSlug===null){n(`/assignments/${X.id}`);return}const re=X.projectWorkspace?`/w/${X.projectWorkspace}`:t;n(`${re}/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(Tt,{error:a||"Assignments board is unavailable.",onRetry:l});async function Wc({item:X,toColumnId:re,action:we,reason:ze}){if(!we){const Dt=u.statuses.find($t=>$t.id===re);if(Rh(Dt??{id:re}))return me(`Reach “${es(u,re)}” through its complete/fail transition.`,"error"),!1}Ve(vn(X));const yt=ht;it(Dt=>Dt.map($t=>vn($t)===vn(X)?{...$t,status:re,blockedReason:re==="blocked"?ze??$t.blockedReason:null}:$t));try{const Dt=X.projectSlug===null?we?await sP(X.id,we,ze):await oP(X.id,re):we?await Gw(X.projectSlug,X.slug,we,ze):await Yw(X.projectSlug,X.slug,re);return it($t=>$t.map(Fn=>vn(Fn)===vn(X)?{...Fn,status:Dt.status,blockedReason:Dt.blockedReason,availableTransitions:Dt.availableTransitions,updated:Dt.updated}:Fn)),l(),me(`Moved to ${es(u,Dt.status)}`,"success"),!0}catch(Dt){return it(yt),me(Dt.message,"error"),!1}finally{Ve(null)}}async function fo({item:X,toColumnId:re,action:we}){if(X.status===re)return;const ze=we??Tu(X,re);if(ze!=null&&ze.disabled){me(ze.disabledReason||`Cannot move this assignment to ${re}.`,"error");return}if(ze&&Xw(ze)){fe({item:X,toColumnId:re,action:ze});return}await Wc({item:X,toColumnId:re,action:ze})}function Kc(X,re){fo({item:X,toColumnId:re})}async function Mi(X,re){if(re===X.title)return;const we=vn(X),ze=ht;it(yt=>yt.map(Dt=>vn(Dt)===we?{...Dt,title:re}:Dt)),Ve(we);try{const yt=X.projectSlug===null?await WH({id:X.id,title:re}):await VH({projectSlug:X.projectSlug,assignmentSlug:X.slug,title:re});it(Dt=>Dt.map($t=>vn($t)===we?{...$t,title:yt.title,updated:yt.updated}:$t)),l()}catch(yt){throw it(ze),me(yt.message,"error"),yt}finally{Ve(null)}}function Ua(X){St(re=>{const we=new Set(re);return we.has(X)?we.delete(X):we.add(X),we})}function Ms(X){Ce===X?Bo(ke==="asc"?"desc":"asc"):(Ds(X),Bo("asc"))}const fn=pt?ht.find(X=>vn(X)===pt)??null:null;function Ls(X,re){X.dataTransfer.effectAllowed="move",X.dataTransfer.setData("text/plain",re),_e(re)}function po(){_e(null),Je(null)}function Li(X,re){if(!fn)return;const we=Tu(fn,re);fn.status===re||we!=null&&we.disabled||(X.preventDefault(),X.dataTransfer.dropEffect="move",Je(re))}function Os(X,re){Qe===re&&!X.currentTarget.contains(X.relatedTarget)&&Je(null)}function vg(X,re){if(X.preventDefault(),!fn||fn.status===re){po();return}po(),fo({item:fn,toColumnId:re})}function Fs({field:X,children:re}){const we=Ce===X;return s.jsx("th",{className:"pb-3 font-medium",children:s.jsxs("button",{type:"button",onClick:()=>Ms(X),className:"inline-flex items-center gap-1 hover:text-foreground",children:[re,we?ke==="asc"?s.jsx(y2,{className:"h-3 w-3"}):s.jsx(tr,{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(At,{className:"h-4 w-4"}),"New Assignment"]})}),s.jsxs(n0,{children:[s.jsx(NX,{className:"w-full md:min-w-[320px] md:flex-1",value:ue,onChange:ir,registry:Ko,declarations:u.factDeclarations,valueSources:{statuses:u.order,priorities:Vr,types:f.definitions.map(X=>X.id),assignees:Ba.filter(X=>X!=="__unassigned__"),projects:$i.map(([X])=>X),tags:Wo}}),ur?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(Km,{ref:r,value:I,onChange:ur?co:()=>{},placeholder:"Search assignments or projects"}),s.jsx(kn,{ariaLabel:"Status filter",className:"max-w-[180px]",allLabel:"All statuses",disabled:!ur,options:uo.map(X=>({value:X,label:b[X]??X})),value:U,onChange:Fo}),s.jsx(kn,{ariaLabel:"Priority filter",className:"max-w-[180px]",allLabel:"All priorities",disabled:!ur,options:Vr.map(X=>({value:X,label:X[0].toUpperCase()+X.slice(1)})),value:F,onChange:La}),s.jsx(kn,{ariaLabel:"Type filter",className:"max-w-[180px]",allLabel:"All types",disabled:!ur,options:f.definitions.map(X=>({value:X.id,label:Hl(f,X.id)})),value:K,onChange:Oa}),s.jsx(kn,{ariaLabel:"Assignee filter",className:"max-w-[180px]",allLabel:"All assignees",disabled:!ur,options:[{value:"__unassigned__",label:"Unassigned"},...Ba.filter(X=>X!=="__unassigned__").map(X=>({value:X,label:X}))],value:V,onChange:Bc}),s.jsx(kn,{ariaLabel:"Project filter",className:"max-w-[180px]",allLabel:"All projects",disabled:!ur,options:[{value:"__standalone__",label:"Standalone"},...$i.map(([X,re])=>({value:X,label:re}))],value:B,onChange:Fa}),s.jsx(kn,{ariaLabel:"Tags filter",className:"max-w-[180px]",allLabel:"Any tags",disabled:!ur,options:Wo.map(X=>({value:X,label:X})),value:H,onChange:Ht}),s.jsx(Vm,{className:"max-w-[200px]",value:J,onChange:ur?zo:()=>{}}),s.jsxs("select",{value:oe,disabled:!ur,onChange:X=>Di(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:O==="kanban"?Oe:Ue,onChange:X=>za(X.target.value),className:"editor-input max-w-[180px]",title:"Group by",children:Z6.map(X=>{const re=O==="kanban"&&X!=="status"&&X!=="type",we=X==="none"?"No grouping":`Group: ${X.charAt(0).toUpperCase()+X.slice(1)}`;return s.jsx("option",{value:X,disabled:re,children:re?`${we} (list only)`:we},X)})}),s.jsx(qm,{value:O,onChange:X=>_i(X),options:[{value:"table",label:"Table"},{value:"list",label:"List"},{value:"kanban",label:"Kanban"}]}),O==="table"?s.jsx(T_,{visibility:ye,onChange:Re}):null,s.jsx(M_,{scope:je,loadedViewId:nt,onApply:Uc,onOpenSaveDialog:()=>{Ct(!1),Ut(!0)}}),s.jsx("button",{type:"button",onClick:()=>{Ne?Vo():(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(Wv,{className:"h-4 w-4"}),s.jsx("span",{children:"Browse Projects"})]})}):On.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:Uo,className:"shell-action shell-action--cta",children:[s.jsx(N4,{className:"h-4 w-4"}),s.jsx("span",{children:"Clear all filters"})]})}):O==="table"?(()=>{const X=new Set(ye.hidden),re=we=>we==="title"||!X.has(we);return s.jsx(We,{title:`${An.length} assignment${An.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:[re("title")?s.jsx(Fs,{field:"title",children:"Assignment"}):null,re("status")?s.jsx(Fs,{field:"status",children:"Status"}):null,s.jsx("th",{className:"py-2 pr-4 text-xs font-medium uppercase tracking-wider",children:"Type"}),re("priority")?s.jsx(Fs,{field:"priority",children:"Priority"}):null,re("assignee")?s.jsx(Fs,{field:"assignee",children:"Assignee"}):null,re("dependencies")?s.jsx(Fs,{field:"dependencies",children:"Dependencies"}):null,re("created")?s.jsx(Fs,{field:"created",children:"Created"}):null,re("updated")?s.jsx(Fs,{field:"updated",children:"Updated"}):null]})}),s.jsx("tbody",{children:An.map((we,ze)=>s.jsxs(EX,{detailHref:xd(we),className:"cursor-pointer border-b border-border/50 transition hover:bg-muted/40 last:border-0",...Ii(ze),children:[re("title")?s.jsxs("td",{className:"py-4 pr-4",children:[s.jsx(i3,{title:we.title,detailHref:xd(we),onSave:yt=>Mi(we,yt),disabled:Pe===vn(we)}),s.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:we.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:we.id,children:[we.id.slice(0,8),s.jsx(jr,{value:we.id})]})]}):null,re("status")?s.jsx("td",{className:"py-4 pr-4",children:s.jsx("select",{value:we.status,disabled:Pe===vn(we),onChange:yt=>fo({item:we,toColumnId:yt.target.value}),className:ve("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")]`,yd(u.statuses,we.status).className,Pe===vn(we)&&"animate-pulse opacity-60"),style:yd(u.statuses,we.status).style,children:v.map(yt=>{const Dt=we.status===yt,$t=Dt?void 0:Tu(we,yt),Fn=u.statuses.find(Ha=>Ha.id===yt),yn=!Dt&&Rh(Fn??{id:yt})&&!$t,pn=(($t==null?void 0:$t.disabled)??!1)||yn,Tr=yn?`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?Tr:void 0,children:b[yt]},yt)})})}):null,s.jsx("td",{className:"py-4 pr-4",children:s.jsx(_a,{type:we.type,compact:!0})}),re("priority")?s.jsx("td",{className:"py-4 pr-4 capitalize text-muted-foreground",children:we.priority}):null,re("assignee")?s.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:we.assignee??"Unassigned"}):null,re("dependencies")?s.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:we.dependsOn.length}):null,re("created")?s.jsx("td",{className:"py-4 pr-4 text-muted-foreground",children:Xn(we.created)}):null,re("updated")?s.jsx("td",{className:"py-4 text-muted-foreground",children:Xn(we.updated)}):null]},vn(we)))})]})})})})():O==="list"?s.jsx("div",{className:"space-y-3",children:Is.map(({id:X,label:re,items:we})=>{var yn;if(we.length===0&&!(fn&&Ue==="status"))return null;const ze=!ot.has(X),yt=Ue==="status",Dt=yt&&fn?fn.status!==X&&!((yn=Tu(fn,X))!=null&&yn.disabled):!1,$t=yt&&fn?fn.status!==X&&!Dt:!1,Fn=yt&&Qe===X;return s.jsxs("div",{className:ve("rounded-lg border border-border/60 bg-card/90 transition",Fn&&Dt&&"ring-2 ring-ring/30",$t&&"border-dashed opacity-65"),onDragOver:yt?pn=>Li(pn,X):void 0,onDragLeave:yt?pn=>Os(pn,X):void 0,onDrop:yt?pn=>vg(pn,X):void 0,children:[s.jsxs("button",{type:"button",onClick:()=>Ua(X),className:"flex w-full items-center gap-2 px-4 py-3 text-left",children:[s.jsx(tr,{className:`h-4 w-4 text-muted-foreground transition-transform ${ze?"":"-rotate-90"}`}),s.jsx("span",{className:"font-semibold text-foreground",children:re}),s.jsx("span",{className:"rounded-full border border-border/60 px-2 py-0.5 text-xs text-muted-foreground",children:we.length})]}),ze&&we.length>0&&s.jsx("div",{className:"space-y-3 px-4 pb-4",children:we.map(pn=>{const Tr=vn(pn),Ha=pt===Tr,Va=Vc.get(Tr)??-1,ho=yt;return s.jsx("div",{draggable:ho,onDragStart:ho?Wr=>Ls(Wr,Tr):void 0,onDragEnd:ho?po:void 0,...Va>=0?Ii(Va):{},className:ve("transition",ho&&"cursor-grab active:cursor-grabbing",Ha&&"scale-[0.98] opacity-50"),children:s.jsx(aC,{assignment:pn,dragging:Ha,transitioning:Pe===Tr,onPillSelect:Wr=>void fo({item:pn,toColumnId:Wr.targetStatus,action:Wr}),onOverride:Wr=>Kc(pn,Wr),onRenameTitle:Wr=>Mi(pn,Wr)})},Tr)})})]},X)})}):s.jsx(Um,{columns:Oe==="type"?Ft:j,items:On,getItemId:vn,getColumnId:X=>Oe==="type"?X.type&&f.definitions.some(re=>re.id===X.type)?X.type:N:X.status,canDrop:({item:X,fromColumnId:re,toColumnId:we})=>{if(re===we)return{allowed:!0};const ze=Tu(X,we);return ze!=null&&ze.disabled?{allowed:!1,reason:ze.disabledReason||ze.description}:{allowed:!0,reason:ze?ze.warning||ze.description:`Move to ${we} (direct status change).`}},onMove:Oe==="type"?void 0:({item:X,toColumnId:re})=>fo({item:X,toColumnId:re}),dragDisabled:Oe==="type",getExternalDragData:X=>X.projectSlug===null?{type:"standalone-assignment",id:X.id}:{type:"project-assignment",id:X.id},onCardContextMenu:(X,re)=>{re.preventDefault(),ne({item:X,anchor:{x:re.clientX,y:re.clientY}})},emptyMessage:X=>`No ${X.title.toLowerCase()} assignments.`,hiddenColumnIds:ie.hidden,onHideColumn:X=>be(re=>({hidden:re.hidden.includes(X)?re.hidden.filter(ze=>ze!==X):[...re.hidden,X]})),renderCard:(X,{dragging:re})=>{const we=Vc.get(vn(X))??-1;return s.jsx("div",{...we>=0?Ii(we):{},children:s.jsx(aC,{assignment:X,dragging:re,transitioning:Pe===vn(X),onPillSelect:ze=>void fo({item:X,toColumnId:ze.targetStatus,action:ze}),onOverride:ze=>Kc(X,ze),onRenameTitle:ze=>Mi(X,ze)})})}}),s.jsx(Vn,{toast:ce,onDismiss:Ie}),s.jsx(I_,{open:Bt,onOpenChange:X=>{Ut(X),X||Ct(!1)},initialName:Tn&&Ne?`${Ne.name} (copy)`:"",title:Tn?"Save as new view":"Save view",onSubmit:Hc}),s.jsx(qw,{open:ut!==null,action:(ut==null?void 0:ut.action)??null,assignmentTitle:(ut==null?void 0:ut.item.title)??"Assignment",loading:Pe===(ut?vn(ut.item):null),onOpenChange:X=>{X||fe(null)},onConfirm:async X=>{if(!ut)return;const re=ut;await Wc({item:re.item,toColumnId:re.toColumnId,action:re.action,reason:X})&&fe(null)}}),s.jsx(xP,{anchor:(q==null?void 0:q.anchor)??null,items:q?CX(q.item,{onEdit:()=>{const X=q.item,re=X.projectSlug===null?`/assignments/${X.id}`:`${X.projectWorkspace?`/w/${X.projectWorkspace}`:t}/projects/${X.projectSlug}/assignments/${X.slug}`;n(re)},onDelete:()=>qe(q.item),onMove:()=>vt(q.item)}):[],onClose:()=>ne(null)}),s.jsx(os,{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=vn(xe);lt(X);try{const re=await fetch(`/api/projects/${encodeURIComponent(xe.projectSlug)}/assignments/${encodeURIComponent(xe.slug)}`,{method:"DELETE"});if(!re.ok){const we=await re.json().catch(()=>({}));throw new Error(we.error||"Failed to delete assignment")}qe(null),l(),me("Assignment deleted","success")}catch(re){me(re instanceof Error?re.message:"Failed to delete assignment","error")}finally{lt(null)}}}),s.jsx(s0,{open:mt!==null,onOpenChange:X=>{X||vt(null)},currentWorkspace:(mt==null?void 0:mt.projectWorkspace)??null,title:"Move assignment to workspace",description:"Standalone assignments belong to a project-workspace via the workspaceGroup frontmatter field.",onSubmit:async X=>{if(!mt)return;const re=await fetch(`/api/assignments/${encodeURIComponent(mt.id)}/move-workspace`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({workspaceGroup:X})});if(!re.ok){const we=await re.json().catch(()=>({}));throw new Error(we.error||"Failed to move assignment")}l()}})]})}function CX(e,t){const n=[{key:"edit",label:"Edit",icon:jc,onSelect:t.onEdit}];return e.projectSlug!==null?n.push({key:"delete",label:"Delete",icon:gn,destructive:!0,onSelect:t.onDelete}):n.push({key:"move",label:"Move to workspace…",icon:om,onSelect:t.onMove}),n}function EX({detailHref:e,children:t,className:n,...r}){const o=a3(e);return s.jsx("tr",{...r,ref:o.containerRef,className:n,onMouseDown:o.onMouseDown,onClick:o.onClick,children:t})}function aC({assignment:e,dragging:t,transitioning:n,onPillSelect:r,onOverride:o,onRenameTitle:i}){var f;const a=xd(e),l=!!(r&&i),u=a3(a);return s.jsxs("div",{ref:l?u.containerRef:void 0,className:ve("vp-card rounded-lg border border-border/60 bg-background/85 p-3 shadow-sm",l&&"cursor-pointer"),onMouseDown:l?u.onMouseDown:void 0,onClick:l?u.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:[l?s.jsx(i3,{title:e.title,detailHref:a,onSave:i,disabled:n}):s.jsx($e,{to:a,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:[(f=e.id)==null?void 0:f.slice(0,8),e.id&&s.jsx(jr,{value:e.id})]})]}),l?s.jsx(Cs,{id:e.id,slug:e.slug,projectSlug:e.projectSlug,status:e.status,availableTransitions:e.availableTransitions,title:e.title,disabled:n,className:"max-w-[150px]",onSelectAction:r,onSelectOverride:o}):s.jsx(ro,{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(_a,{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:Xn(e.updated)})]})]})}function Tu(e,t){return e.availableTransitions.find(n=>n.targetStatus===t)}function vn(e){return e.id||e.slug||"unknown"}function is(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(`
646
+ `),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 Mc(e){return`---
647
+ ${e.order.map(n=>e.blocks.get(n)).filter(n=>!!n).flat().join(`
648
+ `)}
649
+ ---
650
+
651
+ ${e.body.replace(/^\n+/,"")}`}const TX=/[:#{}[\],&*?|>!%@`]/;function gv(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 l3(e){return TX.test(e)||/^\s|\s$/.test(e)||/^["']|["']$/.test(e)?`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`:e}function $n(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"?"":gv(o)}function RX(e,t){return $n(e,t)==="true"}function AX(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 td(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?AX(o[1]).map(i=>gv(i.trim())).filter(i=>i.length>0):n.slice(1).map(i=>i.trim()).filter(i=>i.startsWith("- ")).map(i=>gv(i.slice(2).trim()))}function PX(e){return typeof e=="boolean"?e?"true":"false":e===null||e===""?"null":l3(e)}function In(e,t,n){e.blocks.has(t)||e.order.push(t),e.blocks.set(t,[`${t}: ${PX(n)}`])}function nd(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=>` - ${l3(r)}`)])}function rd(e){return e.split(",").map(t=>t.trim()).filter(Boolean)}function eg(e){const t=is(e);return{title:$n(t,"title"),slug:$n(t,"slug"),workspace:$n(t,"workspace"),archived:RX(t,"archived"),archivedAt:$n(t,"archivedAt"),archivedReason:$n(t,"archivedReason"),tags:td(t,"tags").join(", "),body:t.body}}function _X(e,t){const n=is(e),r={...eg(e),...t};return In(n,"title",r.title),In(n,"slug",r.slug),In(n,"workspace",r.workspace||null),In(n,"archived",r.archived),In(n,"archivedAt",r.archivedAt||null),In(n,"archivedReason",r.archivedReason||null),nd(n,"tags",rd(r.tags)),n.body=r.body,Mc(n)}function tg(e){const t=is(e);return{title:$n(t,"title"),slug:$n(t,"slug"),status:$n(t,"status"),priority:$n(t,"priority")||"medium",assignee:$n(t,"assignee"),dependsOn:td(t,"dependsOn").join(", "),links:td(t,"links").join(", "),blockedReason:$n(t,"blockedReason"),tags:td(t,"tags").join(", "),body:t.body}}function DX(e,t){const n=is(e),r={...tg(e),...t};return In(n,"title",r.title),In(n,"slug",r.slug),In(n,"status",r.status),In(n,"priority",r.priority),In(n,"assignee",r.assignee||null),nd(n,"dependsOn",rd(r.dependsOn)),nd(n,"links",rd(r.links)),In(n,"blockedReason",r.blockedReason||null),nd(n,"tags",rd(r.tags)),n.body=r.body,Mc(n)}function ng(e){const t=is(e);return{assignment:$n(t,"assignment"),status:$n(t,"status"),body:t.body}}function $X(e,t){const n=is(e),r={...ng(e),...t};return In(n,"assignment",r.assignment),In(n,"status",r.status),n.body=r.body,Mc(n)}function rg(e){const t=is(e);return{assignment:$n(t,"assignment"),body:t.body}}function IX(e,t){const n=is(e),r={...rg(e),...t};return In(n,"assignment",r.assignment),n.body=r.body,Mc(n)}function sg(e){const t=is(e);return{name:$n(t,"name"),slug:$n(t,"slug"),description:$n(t,"description"),whenToUse:$n(t,"when_to_use"),tags:td(t,"tags").join(", "),body:t.body}}function MX(e,t){const n=is(e),r={...sg(e),...t};return In(n,"name",r.name),In(n,"slug",r.slug),In(n,"description",r.description||null),In(n,"when_to_use",r.whenToUse||null),nd(n,"tags",rd(r.tags)),n.body=r.body,Mc(n)}function P0(e){return{body:is(e).body}}function c3(e){return P0(e)}function u3(e,t){const n=is(e);return t.body!==void 0&&(n.body=t.body),Mc(n)}function LX(e,t){return u3(e,t)}function Zt(e,t,n){switch(e){case"project":return _X(t,n);case"assignment":return DX(t,n);case"plan":return $X(t,n);case"scratchpad":return IX(t,n);case"playbook":return MX(t,n);case"memory":return u3(t,n);case"resource":return LX(t,n);default:return t}}function OX(e){return(e.metaKey||e.ctrlKey)&&e.key.toLowerCase()==="s"}function FX(e){return!e.saving&&e.validationErrorCount===0}function Lc({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=HX(t,g),N=g!==e,C=UX(t,g),A=N?"Unsaved changes":n==="create"?"Draft":"Saved",T=t!=="memory"&&t!=="resource",_=m.useRef({content:g,saving:o,validationErrorCount:S.length,onSave:r});return _.current={content:g,saving:o,validationErrorCount:S.length,onSave:r},m.useEffect(()=>{const O=P=>{if(!OX(P))return;P.preventDefault();const{content:W,saving:I,validationErrorCount:z,onSave:U}=_.current;FX({saving:I,validationErrorCount:z})&&U(W)};return window.addEventListener("keydown",O),()=>window.removeEventListener("keydown",O)},[]),m.useEffect(()=>{if(!N)return;const O=P=>{P.preventDefault(),P.returnValue=""};return window.addEventListener("beforeunload",O),()=>window.removeEventListener("beforeunload",O)},[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:A})]}),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(O=>!O),className:"shell-action",children:[s.jsx(j4,{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(cm,{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(O=>s.jsx("li",{children:O},O))})}):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(D1,{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:O=>y(O.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(zX,{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(D1,{className:"h-4 w-4 text-muted-foreground"}),s.jsx("h2",{className:"text-lg font-semibold text-foreground",children:"Preview"})]}),s.jsx(jn,{content:C,emptyState:"Write markdown body content to preview it here."})]})})]})]})}function zX({documentType:e,content:t,onChange:n,allowSlugEdit:r}){const o=rs();if(e==="project"){const a=eg(t);return s.jsxs("div",{className:"space-y-3",children:[s.jsxs(Ru,{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===$r(a.title)||!a.slug.trim())&&(f.slug=$r(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:$r(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(BX,{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=tg(t),l=eP(o),u=!l.some(f=>f.id===a.status);return s.jsxs("div",{className:"space-y-3",children:[s.jsxs(Ru,{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===$r(a.title)||!a.slug.trim())&&(h.slug=$r(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:$r(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:es(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=ng(t);return s.jsxs("div",{className:"space-y-3",children:[s.jsxs(Ru,{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=rg(t);return s.jsxs("div",{className:"space-y-3",children:[s.jsx(Ru,{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"?P0(t):c3(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=sg(t);return s.jsxs("div",{className:"space-y-3",children:[s.jsxs(Ru,{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===$r(i.name)||!i.slug.trim())&&(u.slug=$r(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:$r(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 Ru({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 BX({value:e,onChange:t}){const{data:n}=Ra(),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 UX(e,t){switch(e){case"project":return eg(t).body;case"assignment":return tg(t).body;case"plan":return ng(t).body;case"scratchpad":return rg(t).body;case"playbook":return sg(t).body;case"memory":return P0(t).body;case"resource":return c3(t).body}}function HX(e,t){switch(e){case"project":{const n=eg(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=tg(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 ng(t).assignment.trim()?[]:["Plan assignment is required."];case"scratchpad":return rg(t).assignment.trim()?[]:["Scratchpad assignment is required."];case"playbook":{const n=sg(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 lC(){const e=Wt(),{workspace:t}=Kt(),n=xn(),[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
652
+ 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(Tt,{error:f}):s.jsx(Lc,{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 cC(){const{slug:e}=Kt(),t=xn(),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(Tt,{error:f}):s.jsx(Lc,{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 uC(){const{workspace:e}=Kt(),t=xn(),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(Tt,{error:f}):s.jsx(Lc,{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 Oc({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}=eT(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(Tt,{error:h||`${r} is unavailable.`}):s.jsx(Lc,{initialContent:f.content,documentType:i,onSave:b,saving:g,error:k,title:r,description:o,onCancel:()=>u(n),helpTitle:a,helpBody:l})}function dC(){const{slug:e}=Kt(),t=xn(),n=e??"";return s.jsx(Oc,{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 Gy(){const{slug:e,aslug:t,id:n}=Kt(),r=xn(),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(Oc,{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 Yy(){const{slug:e,aslug:t,id:n}=Kt(),r=xn(),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(Oc,{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 Xy(){const{slug:e,aslug:t,id:n}=Kt(),r=xn(),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(Oc,{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 d3({loadUrl:e,saveUrl:t,redirectTo:n,title:r,description:o,helpTitle:i,helpBody:a}){const l=Wt(),{data:u,loading:f,error:p}=eT(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})}),A=await C.json();if(!C.ok){S(A.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(Tt,{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(jn,{content:u.content.replace(/^---[\s\S]*?---\n?/,""),emptyState:"No existing content."})})]})}function Qy(){const{slug:e,aslug:t,id:n}=Kt(),r=xn(),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(d3,{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 Jy(){const{slug:e,aslug:t,id:n}=Kt(),r=xn(),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(d3,{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 fC(){const{workspace:e}=Kt(),{data:t}=oo(),{data:n,loading:r,error:o,refetch:i}=ew(),{toast:a,showToast:l,dismissToast:u}=Wn(),[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=rr();m.useEffect(()=>{const P=N.hash.match(/^#server-(.+)/);if(!P)return;const W=decodeURIComponent(P[1]),I=document.querySelector(`[data-server-name="${window.CSS.escape(W)}"]`);if(!I)return;I.scrollIntoView({block:"nearest"}),I.classList.add("ring-2","ring-primary/60");const z=window.setTimeout(()=>I.classList.remove("ring-2","ring-primary/60"),1500);return()=>window.clearTimeout(z)},[N.hash,n]);const C=(()=>{if(!e||!n)return(n==null?void 0:n.sessions)??[];if(!t)return[];const P=new Set(t.filter(W=>e==="_ungrouped"?W.workspace===null:W.workspace===e).map(W=>W.slug));return n.sessions.filter(W=>W.windows.some(I=>I.panes.some(z=>z.assignment&&z.assignment.project!==null&&P.has(z.assignment.project))))})();async function A(P){if(P.preventDefault(),!!h.trim())try{const W=await fetch("/api/servers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:h.trim()})});if(!W.ok){const I=await W.json().catch(()=>null);l((I==null?void 0:I.error)||`HTTP ${W.status}`,"error");return}g(""),p(!1),i(),l(`Tracking "${h.trim()}"`,"success")}catch(W){l(W instanceof Error?W.message:"Failed to register session","error")}}async function T(){k(!0);try{const P=await fetch("/api/servers/refresh",{method:"POST"});if(!P.ok){const W=await P.json().catch(()=>null);l((W==null?void 0:W.error)||`HTTP ${P.status}`,"error");return}i()}catch(P){l(P instanceof Error?P.message:"Failed to refresh sessions","error")}finally{k(!1)}}async function _(P){S(!0);try{const W=await fetch(`/api/servers/${encodeURIComponent(P)}`,{method:"DELETE"});if(!W.ok){const I=await W.json().catch(()=>null);l((I==null?void 0:I.error)||`HTTP ${W.status}`,"error");return}b(null),i(),l(`Stopped tracking "${P}"`,"success")}catch(W){l(W instanceof Error?W.message:"Failed to remove session","error")}finally{S(!1)}}async function O(P){try{const W=await fetch(`/api/servers/${encodeURIComponent(P)}/refresh`,{method:"POST"});if(!W.ok){const I=await W.json().catch(()=>null);l((I==null?void 0:I.error)||`HTTP ${W.status}`,"error");return}i()}catch(W){l(W instanceof Error?W.message:"Failed to refresh session","error")}}return r?s.jsx(bt,{label:"Loading servers…"}):o?s.jsx(Tt,{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:A,className:"flex items-center gap-2",children:[s.jsx("input",{type:"text",value:h,onChange:P=>g(P.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(At,{className:"h-3.5 w-3.5"}),"Track Session"]}),s.jsxs("button",{className:"shell-action",onClick:T,disabled:y,children:[s.jsx(C2,{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(P=>s.jsx(VX,{session:P,onRefresh:()=>O(P.name),onRemove:()=>b(P.name),onRefetch:i},P.name))}),s.jsx(os,{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:P=>{!P&&!j&&b(null)},onConfirm:async()=>{v&&await _(v)}}),s.jsx(Vn,{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(pa,{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 VX({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(Yv,{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: ",Sr(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(C2,{className:"h-3.5 w-3.5"})}),s.jsx("button",{className:"shell-action",onClick:n,title:"Remove","aria-label":"Remove",children:s.jsx(gn,{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(WX,{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(K4,{className:"h-4 w-4"}),s.jsx("span",{children:e.kind==="process"?"Process no longer running":"Session no longer exists"})]})]})}function WX({pane:e,sessionName:t,windowIndex:n,onRefetch:r}){const o=xn(),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(jr,{value:e.cwd})]}),e.branch&&s.jsxs("span",{className:"flex shrink-0 items-center gap-1 text-xs text-muted-foreground",children:[s.jsx(Kv,{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(vc,{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($4,{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 f3(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 KX(e,t){const n=Date.parse(e),r=Math.floor((n-t)/1e3);return Number.isNaN(r)?"–":r<=0?"expired":f3(r)}function qX(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 GX(e){if(!e)return null;try{return JSON.parse(e)}catch{return null}}function pC(){const{data:e,loading:t,error:n,refetch:r}=tT(),[o,i]=m.useState(()=>Date.now()),[a,l]=m.useState(null),[u,f]=m.useState(!1),{toast:p,showToast:h,dismissToast:g}=Wn();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(Tt,{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(YX,{detail:k,now:o,onForceRelease:v=>l({slug:k.inventory.slug,lease:v})},k.inventory.slug))}),s.jsx(os,{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(Vn,{toast:p,onDismiss:g})]})}function YX({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(Hv,{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=",f3(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(XX,{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(QX,{lease:u,now:t,onForceRelease:()=>n(u)},u.lease_id))})]})]})}function XX({member:e}){const t=GX(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 ${qX(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 QX({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(g4,{className:"h-3 w-3"}),KX(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(Y4,{className:"h-3 w-3"}),"Force release"]})]})]})}function JX(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 ZX(){const e=await fetch("/api/schedules");if(!e.ok)throw new Error(`HTTP ${e.status}`);return(await e.json()).schedules}async function eQ(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 tQ(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 nQ(){const[e,t]=m.useState(null),[n,r]=m.useState(!0),[o,i]=m.useState(null),a=m.useCallback(async()=>{try{t(await ZX()),i(null)}catch(l){i(l instanceof Error?l.message:"Failed to fetch schedules")}finally{r(!1)}},[]);return m.useEffect(()=>{a()},[a]),Ei(l=>{l.type==="schedules-updated"&&a()}),{data:e,loading:n,error:o,refetch:a}}const rQ=[{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 sQ({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(""),[A,T]=m.useState("5"),[_,O]=m.useState("claude"),[P,W]=m.useState(""),[I,z]=m.useState("rolling-5h"),[U,D]=m.useState("ready_to_implement"),[F,M]=m.useState(""),[K,$]=m.useState(!1),[V,L]=m.useState(null);function B(){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(A)*36e5),anchorIso:new Date().toISOString()};case"after-reset":return{kind:l,provider:_,anchor:{windowStartIso:P||new Date().toISOString(),windowKind:I}};case"when-status":return{kind:l,status:U,...F?{assignmentId:F}:{}};case"when-plan-lands":return{kind:l,...F?{assignmentId:F}:{}}}}async function Y(){$(!0),L(null);try{const J={assignmentId:r.trim(),agentId:i.trim(),trigger:B(),unattended:f,terminalPreference:h.trim()||null,promptTemplate:y.trim()||null};if(!J.assignmentId)throw new Error("Assignment id is required");await eQ(J),n(),t(!1)}catch(J){L(J instanceof Error?J.message:"Create failed")}finally{$(!1)}}const H="w-full rounded border bg-background px-2 py-1 text-sm",Q="block text-xs font-medium text-muted-foreground";return s.jsx(Mn,{open:e,onOpenChange:t,children:s.jsxs(Sn,{className:"max-h-[90vh] overflow-y-auto",children:[s.jsxs(sr,{className:"flex-row items-center justify-between space-y-0",children:[s.jsx(Cn,{children:"New schedule"}),s.jsx(XT,{className:"text-muted-foreground transition hover:text-foreground","aria-label":"Close",children:s.jsx(Nc,{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:H,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:H,value:i,onChange:J=>a(J.target.value)})]}),s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Terminal (optional)"}),s.jsx("input",{className:H,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:H,value:l,onChange:J=>u(J.target.value),children:rQ.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:H,value:v,onChange:J=>b(J.target.value)})]}),s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Timezone (optional)"}),s.jsx("input",{className:H,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:H,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:H,type:"number",value:A,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:H,value:_,onChange:J=>O(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:H,value:I,onChange:J=>z(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:H,value:P,onChange:J=>W(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:H,value:U,onChange:J=>D(J.target.value)})]}),s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Watch assignment (optional)"}),s.jsx("input",{className:H,value:F,onChange:J=>M(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:H,value:F,onChange:J=>M(J.target.value),placeholder:"this assignment"})]}),s.jsxs("div",{children:[s.jsx("label",{className:Q,children:"Prompt template (optional)"}),s.jsx("input",{className:H,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)"]}),V&&s.jsx("p",{className:"text-sm text-destructive",children:V})]}),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 oQ=new Set(["completed","failed","launch_failed","cancelled","killed"]);function iQ(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 aQ(){const{data:e,loading:t,error:n,refetch:r}=nQ(),[o,i]=m.useState(!1),{toast:a,showToast:l,dismissToast:u}=Wn();if(t)return s.jsx(bt,{label:"Loading schedules…"});if(n)return s.jsx(Tt,{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 tQ(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(At,{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(x2,{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 ${iQ(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:[JX(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]})]})]}),!oQ.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(c4,{className:"h-3 w-3"}),"Cancel"]})]},p.id))}),s.jsx(Vn,{toast:a,onDismiss:u}),s.jsx(sQ,{open:o,onOpenChange:i,onCreated:r})]})}const lQ={"7d":"7 days","30d":"30 days","90d":"90 days",all:"All time",custom:"Custom"},fi="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 hC(){const[e,t]=Rs(),n=Z5(e),r=n.window??"30d",o=e.get("groupBy")==="assignment"?"assignment":"project",{data:i}=oo(),{data:a}=Ra(),{data:l}=nT(),[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=Ab({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 A=await C.json().catch(()=>({}));throw new Error(A.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=Ab(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(lm,{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:fi,children:um.map(S=>s.jsx("option",{value:S,children:lQ[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:fi})]}),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:fi})]})]}):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:fi,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:fi,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:fi,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:fi,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:fi,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(Tt,{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:ec(S.totalTokens)}),s.jsx("td",{className:"px-3 py-2 text-right tabular-nums",children:tc(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:ec(S.total_tokens)}),s.jsx("td",{className:"px-3 py-2 text-right tabular-nums",children:tc(S.total_cost)})]},N))})]})]})]})]})}function mC(){const{workspace:e}=Kt(),{data:t}=oo(),{data:n,loading:r,error:o}=fm(),[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),[A,T]=m.useState(null),_=(n==null?void 0:n.sessions.some(D=>D.status==="active"))??!1;m.useEffect(()=>{if(!_)return;const D=window.setInterval(()=>k(F=>F+1),3e4);return()=>window.clearInterval(D)},[_]),m.useEffect(()=>{b(D=>{if(D.size===0)return D;const F=new Set((n==null?void 0:n.sessions.map(K=>K.sessionId))??[]),M=new Set([...D].filter(K=>F.has(K)));return M.size===D.size?D:M})},[n]);const O=m.useMemo(()=>{if(!n)return[];if(e&&!t)return[];const D=i.trim().toLowerCase();return[...n.sessions.filter(M=>{var V;if(e&&t){const L=((V=t.find(B=>B.slug===M.projectSlug))==null?void 0:V.workspace)??null;if(e==="_ungrouped"){if(L!==null)return!1}else if(L!==e)return!1}const K=uQ(M.started);return l&&(!K||K<l)||f&&(!K||K>f)?!1:D?[M.projectSlug??"",M.assignmentSlug??"",M.agent,M.sessionId,M.path,M.description??"",M.transcriptPath??""].join(" ").toLowerCase().includes(D):!0})].sort((M,K)=>dQ(M,K,h))},[n,i,h,l,f,y,e,t]);function P(D){b(F=>{const M=new Set(F);return M.has(D)?M.delete(D):M.add(D),M})}function W(){v.size===O.length&&O.length>0?b(new Set):b(new Set(O.map(D=>D.sessionId)))}async function I(D){C(null),S(!0);try{const F=await fetch("/api/agent-sessions",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionIds:D})}),M=await F.json().catch(()=>null);if(!F.ok)throw new Error((M==null?void 0:M.error)||`HTTP ${F.status}`);b(K=>new Set([...K].filter($=>!D.includes($)))),T(null)}catch(F){C(F.message)}finally{S(!1)}}async function z(D){try{const F=await fetch(`/api/agent-sessions/${encodeURIComponent(D)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:"stopped"})});if(!F.ok){const M=await F.json().catch(()=>null);C((M==null?void 0:M.error)||`Failed to mark session stopped: HTTP ${F.status}`)}}catch(F){C(F.message)}}if(r)return s.jsx(bt,{label:"Loading agent sessions..."});if(o)return s.jsx(Tt,{error:o});if(!n)return null;const U=n.sessions.length>0;return s.jsxs(s.Fragment,{children:[s.jsxs(n0,{children:[s.jsx(Km,{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:D=>u(D.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:D=>p(D.target.value),className:"editor-input min-w-[150px]"})]}),s.jsxs("select",{value:h,onChange:D=>g(D.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(gn,{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"})]}),U?O.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:W,className:"text-muted-foreground hover:text-foreground",children:v.size===O.length&&O.length>0?s.jsx(ys,{className:"h-4 w-4"}):s.jsx(Xv,{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:O.map(D=>s.jsx(cQ,{session:D,selected:v.has(D.sessionId),onToggle:()=>P(D.sessionId),onDelete:()=>T({sessionIds:[D.sessionId],title:`Delete session ${D.sessionId.slice(0,8)}...?`,description:`Remove this ${D.agent} session record${D.assignmentSlug?` for ${D.assignmentSlug}`:""}. This cannot be undone.`,confirmLabel:"Delete Session"}),onMarkStopped:z,onCopyError:C},D.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(os,{open:A!==null,title:(A==null?void 0:A.title)??"Delete session?",description:(A==null?void 0:A.description)??"",confirmLabel:(A==null?void 0:A.confirmLabel)??"Delete",destructive:!0,loading:j,onOpenChange:D=>{D||T(null)},onConfirm:async()=>{A&&await I(A.sessionIds)}})]})}function cQ({session:e,selected:t,onToggle:n,onDelete:r,onMarkStopped:o,onCopyError:i}){const a=xn(),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(Xv,{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:mn(e.projectSlug),children:mn(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:mn(e.assignmentSlug),children:mn(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(rm,{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(jr,{value:e.sessionId}),s.jsx(O_,{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:Sr(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(jr,{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(jr,{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(z_,{session:e,onMarkStopped:o}),s.jsx("button",{onClick:r,className:"text-muted-foreground hover:text-destructive",title:"Delete session",children:s.jsx(gn,{className:"h-3.5 w-3.5"})})]})})]})}function uQ(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 dQ(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 fQ(){const{data:e,loading:t,error:n,refetch:r}=tw(),[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(Tt,{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(Ci,{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(At,{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(w2,{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(At,{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:gn,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(Ww,{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(g2,{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(E2,{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(os,{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 pQ(){const{slug:e}=Kt(),t=Wt(),{data:n,loading:r,error:o,refetch:i}=uO(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 A=$r(k),T=A.length>0&&zp(A)&&A!=="manifest",_=A!==e;async function O(){if(!(!e||!T||!_)){j(!0),N(null);try{const I=await fetch(`/api/playbooks/${encodeURIComponent(e)}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({newSlug:A})});if(!I.ok){const z=await I.json().catch(()=>({}));throw new Error(z.error||"Failed to rename playbook")}y(!1),t(`/playbooks/${A}`)}catch(I){N(I instanceof Error?I.message:"Failed to rename playbook")}finally{j(!1)}}}async function P(){if(e){f(!0);try{(await fetch(`/api/playbooks/${e}`,{method:"DELETE"})).ok&&t("/playbooks")}finally{f(!1)}}}async function W(){if(!(!e||!n)){h(!0);try{const I=n.enabled?"disable":"enable",z=await fetch(`/api/playbooks/${encodeURIComponent(e)}/${I}`,{method:"POST"});if(!z.ok){const U=await z.json().catch(()=>({}));throw new Error(U.error||`Failed to ${I} playbook`)}i()}catch(I){console.error(I),alert(I instanceof Error?I.message:"Failed to update playbook")}finally{h(!1)}}}return r?s.jsx(bt,{label:"Loading playbook..."}):o?s.jsx(Tt,{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 ",Sr(n.created)]}),s.jsxs("span",{children:["Updated ",Sr(n.updated)]})]}),n.tags.length>0?s.jsx("div",{className:"mt-2 flex flex-wrap gap-1.5",children:n.tags.map(I=>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(E2,{className:"h-3 w-3"}),I]},I))}):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:W,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(jc,{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(J4,{className:"h-3 w-3"}),"Rename"]}),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(gn,{className:"h-3 w-3"}),"Delete"]})]})]}),s.jsx("div",{className:"surface-panel p-4",children:s.jsx(jn,{content:n.body})}),s.jsx(Mn,{open:g,onOpenChange:I=>b?void 0:y(I),children:s.jsxs(Sn,{children:[s.jsxs(sr,{children:[s.jsx(Cn,{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:I=>v(I.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&&A!==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:A||"—"})]}):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(Hr,{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:O,disabled:b||!T||!_,className:"shell-action mt-0 shell-action--cta disabled:cursor-not-allowed disabled:opacity-50",children:b?"Renaming…":"Rename"})]})]})})]}):null}function hQ(){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(Tt,{error:l}):s.jsx(Lc,{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 mQ(){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(Tt,{error:u}):s.jsx(Lc,{initialContent:n||"",documentType:"playbook",mode:"edit",onSave:p,saving:a,error:u,title:"Edit Playbook",onCancel:()=>t(`/playbooks/${e}`)})}function gQ(){const{data:e,loading:t,error:n}=dO(),[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(Tt,{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(Ci,{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(At,{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(At,{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:Xn(b.updated)})]},`${b.projectSlug}/${b.slug}`))})]})})]})}function xQ(){const{slug:e,itemSlug:t}=Kt(),n=Wt(),{data:r,loading:o,error:i}=fO(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(Tt,{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 ",Sr(r.created)]}),s.jsxs("span",{children:["Updated ",Sr(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(jc,{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(gn,{className:"h-3 w-3"}),"Delete"]})]})]}),s.jsx("div",{className:"surface-panel p-4",children:s.jsx(jn,{content:r.body})})]}):null}function yQ(){const e=Wt(),[t]=Rs(),n=t.get("project"),{data:r,loading:o,error:i}=oo(),[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(Tt,{error:i}):!r||r.length===0?s.jsx(Tt,{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 bQ(){const{slug:e,itemSlug:t}=Kt();return s.jsx(Oc,{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 vQ(){const{data:e,loading:t,error:n}=pO(),[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(Tt,{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(Ci,{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(At,{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(At,{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:Xn(b.updated)})]},`${b.projectSlug}/${b.slug}`))})]})})]})}function wQ(){const{slug:e,itemSlug:t}=Kt(),n=Wt(),{data:r,loading:o,error:i}=hO(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(Tt,{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 ",Sr(r.created)]}),s.jsxs("span",{children:["Updated ",Sr(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(jc,{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(gn,{className:"h-3 w-3"}),"Delete"]})]})]}),s.jsx("div",{className:"surface-panel p-4",children:s.jsx(jn,{content:r.body})})]}):null}function jQ(){const e=Wt(),[t]=Rs(),n=t.get("project"),{data:r,loading:o,error:i}=oo(),[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(Tt,{error:i}):!r||r.length===0?s.jsx(Tt,{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 kQ(){const{slug:e,itemSlug:t}=Kt();return s.jsx(Oc,{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 xv=["projects","playbooks","todos","servers","config"];function NQ(e){const t=new Set;for(const n of e.split(",").map(r=>r.trim()))xv.includes(n)&&t.add(n);return t}function gC(e){return e?Sr(e):"never"}function SQ(){const[e,t]=m.useState(!0),[n,r]=m.useState(null),[o,i]=m.useState(""),[a,l]=m.useState(new Set(xv)),[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 O=await fetch("/api/backup");if(!O.ok)throw new Error(`HTTP ${O.status}`);const P=await O.json();r(P),i(P.repo??""),l(NQ(P.categories)),f(!1)}catch(O){v({type:"error",message:`Failed to load backup config: ${O instanceof Error?O.message:String(O)}`})}finally{t(!1)}},[]);m.useEffect(()=>{S()},[S]);function N(O){l(P=>{const W=new Set(P);return W.has(O)?W.delete(O):W.add(O),W}),f(!0)}async function C(){h(!0),v(null);try{const O=Array.from(a),P=await fetch("/api/backup/config",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({repo:o.trim()||null,categories:O})}),W=await P.json();if(!P.ok)throw new Error(W.error||`HTTP ${P.status}`);r(W),f(!1),v({type:"success",message:"Backup configuration saved."})}catch(O){v({type:"error",message:`Save failed: ${O instanceof Error?O.message:String(O)}`})}finally{h(!1)}}async function A(){y("push"),v(null);try{const O=await fetch("/api/backup/push",{method:"POST"}),P=await O.json();if(!O.ok||P.success===!1)throw new Error(P.error||P.message||`HTTP ${O.status}`);v({type:"success",message:P.message||"Backup complete."}),await S()}catch(O){v({type:"error",message:`Backup failed: ${O instanceof Error?O.message:String(O)}`})}finally{y(null)}}async function T(){y("pull"),v(null);try{const O=await fetch("/api/backup/pull",{method:"POST"}),P=await O.json();if(!O.ok||P.success===!1)throw new Error(P.error||P.message||`HTTP ${O.status}`);v({type:"success",message:P.message||"Restore complete."}),await S()}catch(O){v({type:"error",message:`Restore failed: ${O instanceof Error?O.message:String(O)}`})}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 _=!!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:O=>{i(O.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:xv.map(O=>{const P=a.has(O);return s.jsxs("button",{type:"button",onClick:()=>N(O),className:`shell-action text-xs ${P?"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 ${P?"bg-primary":"bg-muted-foreground/40"}`}),O]},O)})})]}),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: "}),gC((n==null?void 0:n.lastBackup)??null)]}),s.jsxs("div",{children:[s.jsx("span",{className:"font-medium text-foreground",children:"Last restore: "}),gC((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(cm,{className:"h-3.5 w-3.5"}),p?"Saving...":"Save Config"]}),s.jsxs("button",{className:"shell-action",onClick:A,disabled:!_,title:_?"Back up now":u?"Save config first":"Set repo and pick categories",children:[s.jsx(Z4,{className:"h-3.5 w-3.5"}),g==="push"?"Backing up...":"Back Up Now"]}),s.jsxs("button",{className:"shell-action",onClick:()=>j(!0),disabled:!_,title:_?"Restore from backup":u?"Save config first":"Set repo and pick categories",children:[s.jsx(v4,{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(x4,{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(os,{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:O=>{!O&&g!=="pull"&&j(!1)},onConfirm:async()=>{await T(),j(!1)}})]})}function CQ(){const{customBindings:e,userBindings:t,actionEntries:n,findConflict:r,bindAction:o,unbindAction:i}=Ri(),[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=rT(N.nativeEvent);if(!C)return;const A=r(C,a.kind);l({...a,combo:C,conflict:A,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 ${ku[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 ${ku[N]} binding`)}catch(C){y("error",C instanceof Error?C.message:"Failed to clear binding")}}async function S(){if(!p){h(!0);try{await Kz(),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:pm.map(N=>{var O,P;const C=n.find(W=>W.bindableKind===N),A=e[N],T=typeof t[N]=="string"&&!!t[N],_=(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(Sb,{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)??ku[N]}),C!=null&&C.subtitle?s.jsx("div",{className:"text-xs text-muted-foreground",children:C.subtitle}):null]}),A?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:eo(A)}),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:A?"Rebind":"Bind"}),T?s.jsxs("button",{type:"button",className:"shell-action text-xs",onClick:()=>void j(N),"aria-label":`Restore default ${ku[N]} binding`,children:[s.jsx(Nc,{className:"h-3 w-3"}),"Restore default"]}):null]}),_?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:eo(a.combo)}),(O=a.conflict)!=null&&O.description?s.jsxs("div",{className:"text-xs text-destructive",children:["Reserved: ",a.conflict.description]}):(P=a.conflict)!=null&&P.kind?s.jsxs("div",{className:"text-xs text-amber-500 dark:text-amber-400",children:['Already bound to "',ku[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 EQ={kanban:"Kanban",list:"List",table:"Table"},TQ={comfortable:"Comfortable",compact:"Compact"},RQ={title:"Title",status:"Status",priority:"Priority",assignee:"Assignee",dependencies:"Dependencies",created:"Created",updated:"Updated"},AQ={asc:"Ascending",desc:"Descending"};function PQ(){const e=VY(),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 D_({[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 WY(),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:bw.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:EQ[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:J6.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:TQ[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:JT.map(f=>s.jsx("option",{value:f,children:RQ[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:Q6.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:AQ[f]},f))})]})]})]})}function _Q({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=X_(e,f),j=b?Q_(b.partial,n):[],S=!y&&j.length>0,N=Math.min(h,Math.max(0,j.length-1)),C=P=>l?P.replace(/[\r\n]+/g," "):P;function A(P){t(C(P.target.value)),p(P.target.selectionStart??P.target.value.length),g(0),k(!1)}function T(P){p(P.currentTarget.selectionStart??e.length)}function _(P){if(!b||!P)return;const W=J_(e,b,P);t(C(W.text)),p(W.caret),g(0),k(!0),requestAnimationFrame(()=>{const I=v.current;I&&(I.focus(),I.setSelectionRange(W.caret,W.caret))})}function O(P){S&&(P.key==="ArrowDown"?(P.preventDefault(),g(W=>Math.min(W+1,j.length-1))):P.key==="ArrowUp"?(P.preventDefault(),g(W=>Math.max(W-1,0))):P.key==="Enter"||P.key==="Tab"?(P.preventDefault(),_(j[N])):P.key==="Escape"&&(P.preventDefault(),k(!0)))}return s.jsxs("div",{className:ve("relative",a),children:[s.jsx("textarea",{ref:v,value:e,rows:r,placeholder:o,"aria-label":u,onChange:A,onKeyDown:O,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((P,W)=>s.jsx("li",{children:s.jsxs("button",{type:"button",role:"option","aria-selected":W===N,onMouseDown:I=>{I.preventDefault(),_(P)},className:ve("flex w-full items-center gap-2 px-2.5 py-1.5 text-left font-mono text-sm transition-colors hover:bg-accent",W===N&&"bg-accent"),children:[s.jsx("span",{className:"text-muted-foreground",children:"@"}),s.jsx("span",{className:"truncate",children:P})]})},P))})]})}const DQ={first:"first",last:"last",none:"none"};function p3(){return`row_${Math.random().toString(36).slice(2,10)}_${Date.now().toString(36)}`}function Au(e){return e.map(t=>({rowKey:p3(),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??"",agentName:t.agentName??"",workdir:t.workdir??"",fieldErrors:{}}))}function $Q(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),t.agentName.trim()&&(n.agentName=t.agentName.trim()),t.workdir.trim()&&(n.workdir=t.workdir.trim()),n})}function IQ(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 MQ(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 LQ(e){return e.map(t=>Object.keys(t.fieldErrors).length===0?t:{...t,fieldErrors:{}})}function OQ(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||r.agentName!==o.agentName||r.workdir!==o.workdir)return!1}return!0}function FQ({row:e,index:t,canRemove:n,playbooks:r,discoveredClaude:o,dirty:i,onPatch:a,onSetDefault:l,onRemove:u,onLaunchStandalone:f}){const{attributes:p,listeners:h,setNodeRef:g,setActivatorNodeRef:y,transform:k,transition:v,isDragging:b}=_m({id:e.rowKey}),j={transform:js.Transform.toString(k),transition:v,zIndex:b?50:void 0,position:b?"relative":void 0};function S(M){const K={label:M};if(e.autoSlugFromLabel){const $=$r(M);$&&YY.test($)?K.id=$:K.id=`agent-${t+1}`}a(K)}function N(M){a({id:M,autoSlugFromLabel:!1})}const C=M=>e.fieldErrors[M]?"border-error-foreground/60":"",A=m.useMemo(()=>r.map(M=>M.slug),[r]),T=m.useMemo(()=>Z_(e.launchPrompt,A),[e.launchPrompt,A]),_=/claude/i.test(e.command)||e.id==="claude",[O,P]=m.useState(_?"agentName":"workdir"),W=e.agentName.trim()?"agentName":e.workdir.trim()?"workdir":O;function I(M){P(M),a(M==="agentName"?{workdir:""}:{agentName:""})}const z=m.useMemo(()=>{const M=o.map(K=>K.name);return e.agentName.trim()&&!M.includes(e.agentName.trim())?[e.agentName.trim(),...M]:M},[o,e.agentName]),U=m.useMemo(()=>{var M;return((M=o.find(K=>K.name===e.agentName.trim()))==null?void 0:M.model)??""},[o,e.agentName]),D=!!(e.agentName.trim()||e.workdir.trim()),F=!e.isNew&&!!e.workdir.trim()&&!i;return s.jsxs("div",{ref:g,style:j,className:`surface-panel space-y-2 px-3 py-2 ${b?"opacity-60 shadow-lg":""}`,children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{ref:y,...p,...h,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(wc,{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:l,className:"h-3 w-3 cursor-pointer accent-foreground"}),"Default"]}),D&&s.jsxs("span",{className:"inline-flex items-center gap-1 rounded bg-foreground/[0.06] px-1.5 py-0.5 text-[10px] text-muted-foreground",title:e.agentName.trim()?`Runs as Claude agent "${e.agentName.trim()}"`:`Launches from ${e.workdir.trim()}`,children:[s.jsx(S4,{className:"h-3 w-3"}),e.agentName.trim()?`agent:${e.agentName.trim()}`:"workdir"]}),s.jsxs("div",{className:"ml-auto flex items-center gap-2",children:[F&&s.jsxs("button",{type:"button",onClick:f,"aria-label":"Launch standalone (no assignment)",title:"Launch this directory-agent standalone (no assignment)",className:"inline-flex items-center gap-1 rounded px-1.5 py-1 text-[11px] text-muted-foreground/80 transition hover:bg-foreground/[0.04] hover:text-foreground",children:[s.jsx(pa,{className:"h-3.5 w-3.5"}),"Launch"]}),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:M=>N(M.target.value),className:`editor-input w-32 font-mono text-xs ${C("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:u,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(gn,{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:M=>S(M.target.value),className:`editor-input mt-0.5 w-full ${C("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:M=>a({command:M.target.value}),className:`editor-input mt-0.5 w-full font-mono ${C("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:M=>a({argsText:M.target.value}),className:`editor-input mt-0.5 w-full font-mono ${C("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:M=>a({promptArgPosition:M.target.value}),className:`editor-input mt-0.5 w-full ${C("promptArgPosition")}`,children:H_.map(M=>s.jsx("option",{value:M,children:DQ[M]},M))}),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:M=>a({model:M.target.value}),className:`editor-input mt-0.5 w-full font-mono ${C("model")}`}),e.fieldErrors.model&&s.jsx("p",{className:"mt-0.5 text-[11px] text-error-foreground",children:e.fieldErrors.model})]}),s.jsxs("div",{children:[s.jsx("label",{className:"text-[11px] uppercase tracking-wide text-muted-foreground/80",children:"Identity"}),s.jsxs("select",{value:W,onChange:M=>I(M.target.value),className:"editor-input mt-0.5 w-full","aria-label":"Identity kind",children:[s.jsx("option",{value:"agentName",children:"Run as agent (Claude --agent)"}),s.jsx("option",{value:"workdir",children:"Working directory (directory-agent)"})]})]}),W==="agentName"?s.jsxs("div",{children:[s.jsx("label",{className:"text-[11px] uppercase tracking-wide text-muted-foreground/80",children:"Run as agent (Claude --agent)"}),s.jsxs("select",{value:e.agentName,onChange:M=>a({agentName:M.target.value}),className:`editor-input mt-0.5 w-full ${C("agentName")}`,"aria-label":"Run as Claude agent",children:[s.jsx("option",{value:"",children:"(none)"}),z.map(M=>s.jsx("option",{value:M,children:M},M))]}),U&&s.jsxs("p",{className:"mt-0.5 text-[11px] text-muted-foreground/70",children:["model: ",s.jsx("span",{className:"font-mono",children:U})," (from agent definition)"]}),e.fieldErrors.agentName&&s.jsx("p",{className:"mt-0.5 text-[11px] text-error-foreground",children:e.fieldErrors.agentName})]}):s.jsxs("div",{children:[s.jsx("label",{className:"text-[11px] uppercase tracking-wide text-muted-foreground/80",children:"Working directory (directory-agent)"}),s.jsx("input",{type:"text",value:e.workdir,placeholder:"~/job-applier-agent (optional)",onChange:M=>a({workdir:M.target.value}),className:`editor-input mt-0.5 w-full font-mono ${C("workdir")}`,"aria-label":"Working directory"}),e.fieldErrors.workdir&&s.jsx("p",{className:"mt-0.5 text-[11px] text-error-foreground",children:e.fieldErrors.workdir})]}),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(_Q,{value:e.launchPrompt,onChange:M=>a({launchPrompt:M}),knownSlugs:A,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] ${C("launchPrompt")}`,"aria-label":"Launch prompt"}),e.fieldErrors.launchPrompt&&s.jsx("p",{className:"mt-0.5 text-[11px] text-error-foreground",children:e.fieldErrors.launchPrompt}),T.length>0&&!e.fieldErrors.launchPrompt&&s.jsx("ul",{className:"mt-0.5 space-y-0.5 text-[11px] text-error-foreground",children:T.map(M=>s.jsx("li",{children:M},M))})]}),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:M=>a({resolveFromShellAliases:M.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 zQ(){const e=K_(),t=q_(),n=tw(),r=m.useMemo(()=>{var I;return(((I=n.data)==null?void 0:I.playbooks)??[]).filter(z=>z.enabled).map(z=>({slug:z.slug,name:z.name}))},[n.data]),[o,i]=m.useState(()=>Au(e.agents)),[a,l]=m.useState(()=>Au(e.agents)),[u,f]=m.useState(!1),[p,h]=m.useState(null),[g,y]=m.useState(!1),[k,v]=m.useState(null);m.useEffect(()=>{const I=Au(e.agents);i(I),l(I),h(null)},[e.agents]);const b=m.useMemo(()=>!OQ(o,a),[o,a]),j=Sm(ji(Ac,{activationConstraint:{distance:8}}),ji(Rc));function S(I,z){v({type:I,message:z}),setTimeout(()=>v(null),2500)}function N(I,z){i(U=>U.map(D=>D.rowKey===I?{...D,...z,fieldErrors:BQ(D.fieldErrors,z)}:D))}function C(I){i(z=>z.map(U=>({...U,default:U.rowKey===I})))}function A(){i(I=>{const z=new Set(I.map($=>$.id)),U="new-agent";let D=U,F=1;for(;z.has(D);)F+=1,D=`${U}-${F}`;const M=F===1?"New Agent":`New Agent ${F}`,K={rowKey:p3(),id:D,originalId:null,isNew:!0,idEditable:!0,autoSlugFromLabel:!0,label:M,command:"",argsText:"",agentName:"",workdir:"",promptArgPosition:"first",resolveFromShellAliases:!0,default:!1,model:"",playbook:"",launchPrompt:"",fieldErrors:{}};return[...I,K]})}function T(I){i(z=>z.filter(U=>U.rowKey!==I))}async function _(){f(!0),h(null);try{const I=IQ(o),z=$Q(I),U=await JY(z),D=Au(U.agents);i(D),l(D),S("success","Agents saved")}catch(I){if(I instanceof V_)h(I.message),i(z=>MQ(LQ(z),I.fieldErrors)),S("error",I.message);else{const z=I instanceof Error?I.message:"Failed to save";h(z),S("error",z)}}finally{f(!1)}}function O(){i(a),h(null)}async function P(){if(e.custom){f(!0),h(null);try{const I=await ZY(),z=Au(I.agents);i(z),l(z),S("success","Reset to defaults")}catch(I){const z=I instanceof Error?I.message:"Failed to reset";h(z),S("error",z)}finally{f(!1)}}}function W(I){const{active:z,over:U}=I;!U||z.id===U.id||i(D=>{const F=D.findIndex(K=>K.rowKey===z.id),M=D.findIndex(K=>K.rowKey===U.id);return F===-1||M===-1?D:Pc(D,F,M)})}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:()=>y(!0),disabled:u,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(qv,{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"}),"."]})]}),k&&s.jsx("div",{className:`rounded-md border px-3 py-1.5 text-xs ${k.type==="success"?"border-success-foreground/30 bg-success text-success-foreground":"border-error-foreground/30 bg-error text-error-foreground"}`,children:k.message}),p&&(!k||k.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:p}),s.jsx(Am,{sensors:j,collisionDetection:Cm,onDragEnd:W,children:s.jsx(Pm,{items:o.map(I=>I.rowKey),strategy:_w,children:s.jsx("div",{className:"space-y-2",children:o.map((I,z)=>s.jsx(FQ,{row:I,index:z,canRemove:o.length>1,playbooks:r,discoveredClaude:t,dirty:b,onPatch:U=>N(I.rowKey,U),onSetDefault:()=>C(I.rowKey),onRemove:()=>T(I.rowKey),onLaunchStandalone:()=>{window.location.href=na({kind:"standalone",id:I.id})}},I.rowKey))})})}),s.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[s.jsxs("button",{type:"button",onClick:A,disabled:u,className:"shell-action text-xs",children:[s.jsx(At,{className:"h-3 w-3"}),"Add agent"]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{type:"button",onClick:O,disabled:!b||u,className:"shell-action text-xs",children:"Discard"}),s.jsxs("button",{type:"button",onClick:_,disabled:!b||u,className:"shell-action text-xs",children:[s.jsx(cm,{className:"h-3 w-3"}),"Save"]})]})]}),s.jsx(os,{open:g,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:u,onOpenChange:I=>{!I&&!u&&y(!1)},onConfirm:async()=>{await P(),y(!1)}})]})}function BQ(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 h3=["terminal-app","iterm","ghostty","alacritty","warp","kitty","cmux"],Oh={terminal:"terminal-app",custom:!1};let Ml=null,Rl=null,Fh=0;const yv=new Set;function m3(e){Ml=e;for(const t of yv)t(e)}function _0(e){if(!e||typeof e!="object")return Oh;const t=e;return{terminal:typeof t.terminal=="string"&&h3.includes(t.terminal)?t.terminal:Oh.terminal,custom:t.custom===!0}}function UQ(){if(Ml)return Promise.resolve(Ml);if(Rl)return Rl;const e=++Fh;return Rl=fetch("/api/config/terminal").then(t=>{if(!t.ok)throw new Error(`HTTP ${t.status}`);return t.json()}).then(t=>{Rl=null;const n=_0(t);return e!==Fh?Ml??n:(Ml=n,n)}).catch(()=>(Rl=null,Oh)),Rl}function HQ(){const[e,t]=m.useState(()=>Ml??Oh);return m.useEffect(()=>{let n=!1;return UQ().then(r=>{n||t(r)}),yv.add(t),()=>{n=!0,yv.delete(t)}},[]),e}async function VQ(e){++Fh;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=_0(await t.json());return m3(n),n}async function WQ(){++Fh;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=_0(await e.json());return m3(t),t}const Sp={"terminal-app":"Terminal (macOS built-in)",iterm:"iTerm2",ghostty:"Ghostty",alacritty:"Alacritty",warp:"Warp",kitty:"kitty",cmux:"cmux"};function KQ(){const{terminal:e,custom:t}=HQ(),[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 VQ(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 WQ();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:h3.map(f=>s.jsx("option",{value:f,children:Sp[f]},f))})]})]})}const xC={all:"Everything",assignment:"Assignments",project:"Projects",todo:"Todos",server:"Servers",playbook:"Playbooks"},qQ=["all",...hm];function Zy(e){return Object.entries(e).map(([t,n])=>({prefix:t,kind:n}))}function GQ(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=RO(n);return o.ok||t.push(...o.errors),{map:n,errors:t}}function YQ(){const{search:e,custom:t}=aw(),[n,r]=m.useState(e.defaultScope),[o,i]=m.useState(e.externalIds),[a,l]=m.useState(()=>Zy(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(Zy(e.aliases)))},[k]);const{map:v,errors:b}=GQ(a);function j(P){y(P),setTimeout(()=>y(null),2500)}function S(){l(P=>[...P,{prefix:"",kind:"assignment"}]),f(!0)}function N(P){l(W=>W.filter((I,z)=>z!==P)),f(!0)}function C(P,W){l(I=>I.map((z,U)=>U===P?{...z,...W}:z)),f(!0)}function A(P){r(P.defaultScope),i(P.externalIds),l(Zy(P.aliases)),f(!1)}async function T(){if(!(b.length>0)){h(!0);try{const P=await _O({defaultScope:n,aliases:v,externalIds:o});A(P.search),j({type:"success",message:"Search settings saved."})}catch(P){j({type:"error",message:P instanceof Error?P.message:"Save failed."})}finally{h(!1)}}}async function _(){h(!0);try{const P=await DO();A(P.search),j({type:"success",message:"Reset to defaults."})}catch(P){j({type:"error",message:P instanceof Error?P.message:"Reset failed."})}finally{h(!1)}}const O=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:_,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:P=>{r(P.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:qQ.map(P=>s.jsx("option",{value:P,children:xC[P]},P))}),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((P,W)=>s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("input",{type:"text",value:P.prefix,onChange:I=>C(W,{prefix:I.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:P.kind,onChange:I=>C(W,{kind:I.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:hm.map(I=>s.jsx("option",{value:I,children:xC[I]},I))}),s.jsx("button",{type:"button",onClick:()=>N(W),disabled:p,"aria-label":`Remove alias ${P.prefix}`,className:"rounded-md p-1 text-muted-foreground hover:bg-muted hover:text-foreground disabled:opacity-60",children:s.jsx(Nc,{className:"h-3.5 w-3.5"})})]},W))}),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(At,{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:P=>{i(P.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((P,W)=>s.jsx("li",{children:P},W))}),s.jsx("div",{children:s.jsx("button",{type:"button",onClick:T,disabled:!O,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 Pu(e){return e===gh?"Ungrouped":e}function XQ(){const{data:e,loading:t,error:n,refetch:r}=Ra(),{hidden:o,custom:i,loading:a,error:l,reload:u}=dR(),[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 gB(N),y({type:"success",message:S?`Showing "${Pu(j)}" in the left nav.`:`Hiding "${Pu(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 xB(),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=!pB(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:Pu(j),children:[Pu(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 "${Pu(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 QQ(){const{preset:e,setPreset:t,resetPreset:n}=Zv(),[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:B2.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(Nr,{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(CQ,{}),s.jsx(KQ,{}),s.jsx(YQ,{}),s.jsx(XQ,{}),s.jsx(zQ,{}),s.jsx(PQ,{}),s.jsx(SQ,{})]})}function JQ({open:e,affected:t,remaining:n,ruleReferences:r,headlineReferences:o,onResolve:i,onCancel:a}){var A,T;const[l,u]=m.useState(n.length>0?"remap":"delete"),[f,p]=m.useState(((A=n[0])==null?void 0:A.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 _,O;e&&(u(n.length>0?"remap":"delete"),p(((_=n[0])==null?void 0:_.id)??""),g(((O=n[0])==null?void 0:O.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(Mn,{open:e,onOpenChange:_=>_?void 0:a(),children:s.jsxs(Sn,{className:"max-w-xl",children:[s.jsxs(sr,{children:[s.jsxs(Cn,{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(_=>s.jsx("li",{children:s.jsx("span",{className:"font-mono text-xs text-muted-foreground",children:_.display})},`${_.projectSlug??"standalone"}/${_.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((_,O)=>s.jsxs("li",{children:[s.jsx("span",{className:"text-foreground",children:_.section}),s.jsx("span",{className:"mx-1",children:"·"}),_.detail]},O))}),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:_=>p(_.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(_=>s.jsxs("option",{value:_.id,children:[_.label," (",_.id,")"]},_.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:_=>g(_.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(_=>s.jsxs("option",{value:_.id,children:[_.label," (",_.id,")"]},_.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:_=>k(_.target.checked)}),s.jsxs("span",{className:"text-xs",children:["I understand this will permanently delete ",t.count," assignment",t.count===1?"":"s","."]})]})]})]})]}),s.jsxs(Hr,{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 ZQ({open:e,references:t,onConfirm:n,onCancel:r}){return s.jsx(Mn,{open:e,onOpenChange:o=>o?void 0:r(),children:s.jsxs(Sn,{className:"max-w-xl",children:[s.jsxs(sr,{children:[s.jsx(Cn,{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(Hr,{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 eJ({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 tJ({row:e,isSaved:t,onUpdate:n,onRemove:r}){const{attributes:o,listeners:i,setNodeRef:a,setActivatorNodeRef:l,transform:u,transition:f,isDragging:p}=_m({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(wc,{className:"h-4 w-4"})}),s.jsx("div",{className:"min-w-[8rem] flex-1",children:t?s.jsxs(Lr,{children:[s.jsx(Or,{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(br,{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(eJ,{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(Lr,{children:[s.jsx(Or,{asChild:!0,children:s.jsx("span",{className:"cursor-help text-xs text-muted-foreground underline decoration-dotted underline-offset-4",children:"Done"})}),s.jsx(br,{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(gn,{className:"h-3.5 w-3.5"})})]})}function nJ({statuses:e,savedStatusIds:t,onUpdate:n,onAdd:r,onRemove:o,onReorder:i}){const a=Sm(ji(Ac,{activationConstraint:{distance:8}}),ji(Rc,{coordinateGetter:nA}));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(Pc(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(At,{className:"h-3 w-3"}),"Add Status"]}),children:s.jsx(Am,{sensors:a,collisionDetection:Cm,onDragEnd:l,children:s.jsx(Pm,{items:e.map(u=>u.rowKey),strategy:_w,children:s.jsx("div",{className:"space-y-2",children:e.map((u,f)=>s.jsx(tJ,{row:u,isSaved:t.has(u.id),onUpdate:(p,h)=>n(f,p,h),onRemove:()=>o(f)},u.rowKey))})})})})}function rJ(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 sJ(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 oJ(e,t){return t.headline.parked===e||t.headline.blocked===e}function iJ(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 aJ(e,t,n){return e.map(r=>({...r,from:r.from===t?n:r.from,to:r.to===t?n:r.to}))}function lJ(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 cJ(e,t){return e.filter(n=>n.from!==t&&n.to!==t)}function uJ(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 yC(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 g3(){return`row_${Math.random().toString(36).slice(2,10)}_${Date.now().toString(36)}`}function dJ(e){const t=e.statuses.map(n=>({rowKey:g3(),id:n.id,label:n.label,description:n.description??"",color:n.color??"",terminal:n.terminal??!1}));return uJ(t,e.order)}function fJ(e){return Xb(e)}function bC(e){const t=new Map;for(const n of e)t.set(n,(t.get(n)??0)+1);return t}function pJ(e){const t=new Map;for(let n=0;n<e.length;n++){const r=bC(Xb(e.slice(0,n))),o=bC(Xb(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 hJ=[{value:"bool",label:"bool"},{value:"number",label:"number"},{value:"attestation",label:"attestation"}],mJ=[{value:"plan",label:"plan"},{value:"commit",label:"commit"},{value:"none",label:"none"}];function gJ(){return{name:"",type:"bool",binds:null}}function xJ({rows:e,onChange:t,saving:n}){const r=pJ(e),o=m.useCallback(()=>{t([...e,gJ()])},[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:hJ.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:mJ.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(Lr,{children:[s.jsx(Or,{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(br,{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(gn,{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(At,{className:"h-3.5 w-3.5"}),"Add fact"]})]})}function x3(e,t=zm){var r,o;if(e==="*")return null;const n=xm(e);if(!n.ast)return((r=n.errors[0])==null?void 0:r.message)??"unparseable condition";try{return Vu(n.ast,t),null}catch(i){if(i instanceof yr)return((o=i.errors[0])==null?void 0:o.message)??"invalid condition";throw i}}function eb(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 yJ(e){if(e.kind==="atom"){const t=eb(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=eb(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=eb(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 vC(e){const t=e.trim();if(t===""||t==="*")return null;const n=xm(t);return n.ast?yJ(n.ast):null}const bJ=/^[A-Za-z_][A-Za-z0-9_-]*$/;function vJ(e){return e===""||!bJ.test(e)||/^(and|or|not)$/i.test(e)}function wJ(e){return`"${e.replace(/\\/g,"\\\\").replace(/"/g,'\\"')}"`}function jJ(e){return e.valueType==="number"||e.valueType==="date"||e.valueType==="duration"?e.value:vJ(e.value)?wJ(e.value):e.value}function kJ(e){const t=jJ(e);return e.op===":"?`${e.field}:${t}`:`${e.field} ${e.op} ${t}`}function NJ(e){return e.groups.map(n=>{const r=n.comparisons.map(kJ).join(` ${n.join} `);return n.comparisons.length>1?`(${r})`:r}).join(` ${e.outerJoin} `)}function SJ(e,t){return e.trim()==="*"?null:e.trim()===""?"condition is empty":x3(e,t)}function CJ(e){return _H(PH(e))}function EJ(e){const t=Kw(e),n=[];for(const r of GA(e)){const o=t[r.toLowerCase()];o&&n.push({name:r,kind:o.kind})}return n}function y3(e){switch(e){case"bool":return"word";case"number":case"ordinal":case"duration":case"timestamp":return"number";default:return"string"}}function bv(e){switch(e){case"bool":return[":"];case"number":case"ordinal":case"duration":case"timestamp":return[":","=","!=","<","<=",">",">="];default:return[":","!="]}}function _u(e){const t=e[0];return{outerJoin:"AND",groups:[{join:"AND",comparisons:[t?{field:t.name,op:bv(t.kind)[0],value:t.kind==="bool"?"true":"",valueType:y3(t.kind)}:{field:"",op:":",value:""}]}]}}function b3({value:e,onChange:t,fieldOptions:n,registry:r,disabled:o}){const i=m.useMemo(()=>vC(e),[e]),a=e.trim()===""||i!==null,[l,u]=m.useState(a?"builder":"raw"),[f,p]=m.useState(()=>i??_u(n)),h=m.useRef(e);m.useEffect(()=>{if(e===h.current)return;const T=vC(e);T&&p(T),!(e.trim()===""||T)&&l==="builder"&&u("raw"),h.current=e},[e]);const g=SJ(e,r);function y(T){h.current=T,t(T)}function k(T){p(T),y(NJ(T))}function v(T){k({outerJoin:T,groups:f.groups.map(_=>({..._,join:T==="AND"?"OR":"AND"}))})}function b(T,_,O){const P=f.groups.map((W,I)=>I===T?{...W,comparisons:W.comparisons.map((z,U)=>U===_?{...z,...O}:z)}:W);k({...f,groups:P})}function j(T){const _=_u(n).groups[0].comparisons[0],O=f.groups.map((P,W)=>W===T?{...P,comparisons:[...P.comparisons,{..._}]}:P);k({...f,groups:O})}function S(T,_){let O=f.groups.map((P,W)=>W===T?{...P,comparisons:P.comparisons.filter((I,z)=>z!==_)}:P);O=O.filter(P=>P.comparisons.length>0),O.length===0&&(O=_u(n).groups),k({...f,groups:O})}function N(){const T=f.outerJoin==="AND"?"OR":"AND";k({...f,groups:[...f.groups,{join:T,comparisons:[_u(n).groups[0].comparisons[0]]}]})}function C(){if(l==="builder"){u("raw");return}a&&(p(i??_u(n)),u("builder"))}const A="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(y4,{className:"h-3 w-3"}):s.jsx(M4,{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:`${A} w-full font-mono`}):s.jsxs("div",{className:"space-y-2",children:[f.groups.map((T,_)=>s.jsxs("div",{children:[_>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((O,P)=>{const W=n.find(U=>U.name===O.field),I=(W==null?void 0:W.kind)??"string",z=bv(I);return s.jsxs("div",{className:"flex items-center gap-1.5",children:[P>0&&s.jsx("span",{className:"w-9 shrink-0 text-[10px] uppercase tracking-wide text-muted-foreground",children:T.join}),s.jsxs("select",{value:O.field,onChange:U=>{const D=n.find(K=>K.name===U.target.value),F=(D==null?void 0:D.kind)??"string",M=bv(F);b(_,P,{field:U.target.value,op:M.includes(O.op)?O.op:M[0],value:F==="bool"?"true":O.value,valueType:y3(F)})},disabled:o,className:`${A} font-mono`,children:[n.length===0&&s.jsx("option",{value:"",children:"(no fields)"}),!n.some(U=>U.name===O.field)&&O.field!==""&&s.jsx("option",{value:O.field,children:O.field}),n.map(U=>s.jsx("option",{value:U.name,children:U.name},U.name))]}),s.jsx("select",{value:O.op,onChange:U=>b(_,P,{op:U.target.value}),disabled:o,className:`${A} font-mono`,children:z.map(U=>s.jsx("option",{value:U,children:U},U))}),I==="bool"?s.jsxs("select",{value:O.value||"true",onChange:U=>b(_,P,{value:U.target.value}),disabled:o,className:`${A} font-mono`,children:[s.jsx("option",{value:"true",children:"true"}),s.jsx("option",{value:"false",children:"false"})]}):s.jsx("input",{type:"text",value:O.value,onChange:U=>b(_,P,{value:U.target.value}),disabled:o,placeholder:"value",className:`${A} w-24 font-mono`}),s.jsx("button",{type:"button",onClick:()=>S(_,P),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(gn,{className:"h-3.5 w-3.5"})})]},P)}),s.jsxs("button",{type:"button",onClick:()=>j(_),disabled:o,className:"shell-action text-xs inline-flex items-center gap-1",children:[s.jsx(At,{className:"h-3 w-3"}),T.join," condition"]})]})]},_)),s.jsxs("button",{type:"button",onClick:N,disabled:o,className:"shell-action text-xs inline-flex items-center gap-1",children:[s.jsx(At,{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 wC=0;function zh(){return wC+=1,`dr_${wC}_${Math.random().toString(36).slice(2,8)}`}function tb(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:zh(),phase:n.phase,when:n.when,next:n.next??""})),disposition:t.map(n=>({rowKey:zh(),when:n.when,is:n.is})),headline:{parked:e.headline.parked,blocked:e.headline.blocked}}}function vv(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 TJ(e){return e.findIndex(t=>t.when.trim()==="*")}function v3(e,t,n){return Ez(e,{statuses:t},r=>x3(r,n))}const jC=["active","blocked","parked"];function RJ({value:e,deriveCustom:t,statuses:n,acceptedFacts:r,onChange:o,onReset:i,disabled:a}){const l=m.useMemo(()=>Kw(r),[r]),u=m.useMemo(()=>EJ(r),[r]),f=Sm(ji(Ac,{activationConstraint:{distance:8}}),ji(Rc,{coordinateGetter:nA})),p=m.useMemo(()=>{try{return v3(vv(e),n,l)}catch{return["derive rules are malformed"]}},[e,n,l]),h=TJ(e.phaseLadder),g=h>=0?e.phaseLadder[h]:null,y=e.phaseLadder.filter((P,W)=>W!==h);function k(P,W){o({...e,phaseLadder:[...P?[P]:[],...W]})}function v(P,W){const I=e.phaseLadder.map(z=>z.rowKey===P?{...z,...W}:z);o({...e,phaseLadder:I})}function b(){var W;const P={rowKey:zh(),phase:((W=n[0])==null?void 0:W.id)??"",when:"",next:""};k(g,[...y,P])}function j(P){o({...e,phaseLadder:e.phaseLadder.filter(W=>W.rowKey!==P)})}function S(P){const{active:W,over:I}=P;if(!I||W.id===I.id)return;const z=y.findIndex(D=>D.rowKey===W.id),U=y.findIndex(D=>D.rowKey===I.id);z===-1||U===-1||k(g,Pc(y,z,U))}function N(P,W){o({...e,disposition:e.disposition.map(I=>I.rowKey===P?{...I,...W}:I)})}function C(){const P={rowKey:zh(),when:"",is:"active"},W=e.disposition.findIndex(z=>z.when===null),I=[...e.disposition];W>=0?I.splice(W,0,P):I.push(P),o({...e,disposition:I})}function A(P){o({...e,disposition:e.disposition.filter(W=>W.rowKey!==P)})}function T(P,W){o({...e,headline:{...e.headline,[P]:W}})}const _="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 O(P,W,I){return s.jsxs("select",{value:P,onChange:z=>W(z.target.value),disabled:a,"aria-label":I,className:`${_} font-mono`,children:[!n.some(z=>z.id===P)&&P!==""&&s.jsx("option",{value:P,children:P}),n.map(z=>s.jsxs("option",{value:z.id,children:[z.label," (",z.id,")"]},z.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((P,W)=>s.jsx("li",{children:P},W))})]}),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(wc,{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)"}),O(g.phase,P=>v(g.rowKey,{phase:P}),"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:P=>v(g.rowKey,{next:P.target.value}),disabled:a,className:`${_} w-full`})]})]}),s.jsx(Am,{sensors:f,collisionDetection:Cm,onDragEnd:S,children:s.jsx(Pm,{items:y.map(P=>P.rowKey),strategy:_w,children:s.jsx("div",{className:"space-y-2",children:y.map(P=>s.jsx(AJ,{rung:P,disabled:a,statusSelect:O,fieldOptions:u,registry:l,onUpdate:W=>v(P.rowKey,W),onRemove:()=>j(P.rowKey)},P.rowKey))})})}),s.jsxs("button",{type:"button",onClick:b,disabled:a,className:"shell-action text-xs inline-flex items-center gap-1",children:[s.jsx(At,{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(P=>P.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:P.is,onChange:W=>N(P.rowKey,{is:W.target.value}),disabled:a,className:`${_} font-mono`,children:jC.map(W=>s.jsx("option",{value:W,children:W},W))})]},P.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(b3,{value:P.when,onChange:W=>N(P.rowKey,{when:W}),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:P.is,onChange:W=>N(P.rowKey,{is:W.target.value}),disabled:a,className:`${_} font-mono`,children:jC.map(W=>s.jsx("option",{value:W,children:W},W))}),s.jsx("button",{type:"button",onClick:()=>A(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(gn,{className:"h-3.5 w-3.5"})})]})]},P.rowKey))}),s.jsxs("button",{type:"button",onClick:C,disabled:a,className:"shell-action text-xs inline-flex items-center gap-1",children:[s.jsx(At,{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"}),O(e.headline.parked,P=>T("parked",P),"Parked headline status")]}),s.jsxs("div",{className:"space-y-1",children:[s.jsx("label",{className:"text-xs text-muted-foreground",children:"When blocked, show"}),O(e.headline.blocked,P=>T("blocked",P),"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 AJ({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}=_m({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(wc,{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(b3,{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(gn,{className:"h-3.5 w-3.5"})})]})}const PJ=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 kC=0;function D0(){return kC+=1,`tr_${kC}_${Math.random().toString(36).slice(2,8)}`}function _J(e){return{rowKey:D0(),from:e.from,command:e.command,to:e.to,label:e.label??"",description:e.description??"",requiresReason:e.requiresReason??!1}}function wv(e){return e.map(_J)}function DJ(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 $J(e){return e.map(DJ)}function w3(){const e=[];for(const[t,n]of PJ){const r=t.indexOf(":");e.push({from:t.slice(0,r),command:t.slice(r+1),to:n})}return e}function IJ(e,t){return e.filter(n=>t.has(n.from)&&t.has(n.to))}function MJ(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 j3(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 k3(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 LJ(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 OJ(e,t){const n=new Set(t.map(l=>l.id)),r=k3(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 FJ(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 LJ(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=k3(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 En(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=En(e[n]))!==""&&(t+=(t&&" ")+r);else for(let n in e)e[n]&&(t+=(t&&" ")+n);return t}var zJ={value:()=>{}};function og(){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 BJ(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=og.prototype={constructor:th,on:function(e,t){var n=this._,r=BJ(e+"",n),o,i=-1,a=r.length;if(arguments.length<2){for(;++i<a;)if((o=(e=r[i]).type)&&(o=UJ(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]=NC(n[o],e.name,t);else if(t==null)for(o in n)n[o]=NC(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 UJ(e,t){for(var n=0,r=e.length,o;n<r;++n)if((o=e[n]).name===t)return o.value}function NC(e,t,n){for(var r=0,o=e.length;r<o;++r)if(e[r].name===t){e[r]=zJ,e=e.slice(0,r).concat(e.slice(r+1));break}return n!=null&&e.push({name:t,value:n}),e}var jv="http://www.w3.org/1999/xhtml";const SC={svg:"http://www.w3.org/2000/svg",xhtml:jv,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function ig(e){var t=e+="",n=t.indexOf(":");return n>=0&&(t=e.slice(0,n))!=="xmlns"&&(e=e.slice(n+1)),SC.hasOwnProperty(t)?{space:SC[t],local:e}:e}function HJ(e){return function(){var t=this.ownerDocument,n=this.namespaceURI;return n===jv&&t.documentElement.namespaceURI===jv?t.createElement(e):t.createElementNS(n,e)}}function VJ(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function N3(e){var t=ig(e);return(t.local?VJ:HJ)(t)}function WJ(){}function $0(e){return e==null?WJ:function(){return this.querySelector(e)}}function KJ(e){typeof e!="function"&&(e=$0(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 Ur(r,this._parents)}function qJ(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function GJ(){return[]}function S3(e){return e==null?GJ:function(){return this.querySelectorAll(e)}}function YJ(e){return function(){return qJ(e.apply(this,arguments))}}function XJ(e){typeof e=="function"?e=YJ(e):e=S3(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 Ur(r,o)}function C3(e){return function(){return this.matches(e)}}function E3(e){return function(t){return t.matches(e)}}var QJ=Array.prototype.find;function JJ(e){return function(){return QJ.call(this.children,e)}}function ZJ(){return this.firstElementChild}function eZ(e){return this.select(e==null?ZJ:JJ(typeof e=="function"?e:E3(e)))}var tZ=Array.prototype.filter;function nZ(){return Array.from(this.children)}function rZ(e){return function(){return tZ.call(this.children,e)}}function sZ(e){return this.selectAll(e==null?nZ:rZ(typeof e=="function"?e:E3(e)))}function oZ(e){typeof e!="function"&&(e=C3(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 Ur(r,this._parents)}function T3(e){return new Array(e.length)}function iZ(){return new Ur(this._enter||this._groups.map(T3),this._parents)}function Bh(e,t){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=t}Bh.prototype={constructor:Bh,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 aZ(e){return function(){return e}}function lZ(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 Bh(e,i[a]);for(;a<u;++a)(l=t[a])&&(o[a]=l)}function cZ(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 Bh(e,i[l]);for(l=0;l<p;++l)(u=t[l])&&f.get(g[l])===u&&(o[l]=u)}function uZ(e){return e.__data__}function dZ(e,t){if(!arguments.length)return Array.from(this,uZ);var n=t?cZ:lZ,r=this._parents,o=this._groups;typeof e!="function"&&(e=aZ(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=fZ(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,A;S<k;++S)if(C=v[S]){for(S>=N&&(N=S+1);!(A=b[N])&&++N<k;);C._next=A||null}}return a=new Ur(a,r),a._enter=l,a._exit=u,a}function fZ(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function pZ(){return new Ur(this._exit||this._groups.map(T3),this._parents)}function hZ(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 mZ(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 Ur(l,this._parents)}function gZ(){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 xZ(e){e||(e=yZ);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 Ur(o,this._parents).order()}function yZ(e,t){return e<t?-1:e>t?1:e>=t?0:NaN}function bZ(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function vZ(){return Array.from(this)}function wZ(){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 jZ(){let e=0;for(const t of this)++e;return e}function kZ(){return!this.node()}function NZ(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 SZ(e){return function(){this.removeAttribute(e)}}function CZ(e){return function(){this.removeAttributeNS(e.space,e.local)}}function EZ(e,t){return function(){this.setAttribute(e,t)}}function TZ(e,t){return function(){this.setAttributeNS(e.space,e.local,t)}}function RZ(e,t){return function(){var n=t.apply(this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}}function AZ(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 PZ(e,t){var n=ig(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?CZ:SZ:typeof t=="function"?n.local?AZ:RZ:n.local?TZ:EZ)(n,t))}function R3(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function _Z(e){return function(){this.style.removeProperty(e)}}function DZ(e,t,n){return function(){this.style.setProperty(e,t,n)}}function $Z(e,t,n){return function(){var r=t.apply(this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}}function IZ(e,t,n){return arguments.length>1?this.each((t==null?_Z:typeof t=="function"?$Z:DZ)(e,t,n??"")):lc(this.node(),e)}function lc(e,t){return e.style.getPropertyValue(t)||R3(e).getComputedStyle(e,null).getPropertyValue(t)}function MZ(e){return function(){delete this[e]}}function LZ(e,t){return function(){this[e]=t}}function OZ(e,t){return function(){var n=t.apply(this,arguments);n==null?delete this[e]:this[e]=n}}function FZ(e,t){return arguments.length>1?this.each((t==null?MZ:typeof t=="function"?OZ:LZ)(e,t)):this.node()[e]}function A3(e){return e.trim().split(/^|\s+/)}function I0(e){return e.classList||new P3(e)}function P3(e){this._node=e,this._names=A3(e.getAttribute("class")||"")}P3.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 _3(e,t){for(var n=I0(e),r=-1,o=t.length;++r<o;)n.add(t[r])}function D3(e,t){for(var n=I0(e),r=-1,o=t.length;++r<o;)n.remove(t[r])}function zZ(e){return function(){_3(this,e)}}function BZ(e){return function(){D3(this,e)}}function UZ(e,t){return function(){(t.apply(this,arguments)?_3:D3)(this,e)}}function HZ(e,t){var n=A3(e+"");if(arguments.length<2){for(var r=I0(this.node()),o=-1,i=n.length;++o<i;)if(!r.contains(n[o]))return!1;return!0}return this.each((typeof t=="function"?UZ:t?zZ:BZ)(n,t))}function VZ(){this.textContent=""}function WZ(e){return function(){this.textContent=e}}function KZ(e){return function(){var t=e.apply(this,arguments);this.textContent=t??""}}function qZ(e){return arguments.length?this.each(e==null?VZ:(typeof e=="function"?KZ:WZ)(e)):this.node().textContent}function GZ(){this.innerHTML=""}function YZ(e){return function(){this.innerHTML=e}}function XZ(e){return function(){var t=e.apply(this,arguments);this.innerHTML=t??""}}function QZ(e){return arguments.length?this.each(e==null?GZ:(typeof e=="function"?XZ:YZ)(e)):this.node().innerHTML}function JZ(){this.nextSibling&&this.parentNode.appendChild(this)}function ZZ(){return this.each(JZ)}function eee(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function tee(){return this.each(eee)}function nee(e){var t=typeof e=="function"?e:N3(e);return this.select(function(){return this.appendChild(t.apply(this,arguments))})}function ree(){return null}function see(e,t){var n=typeof e=="function"?e:N3(e),r=t==null?ree:typeof t=="function"?t:$0(t);return this.select(function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)})}function oee(){var e=this.parentNode;e&&e.removeChild(this)}function iee(){return this.each(oee)}function aee(){var e=this.cloneNode(!1),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function lee(){var e=this.cloneNode(!0),t=this.parentNode;return t?t.insertBefore(e,this.nextSibling):e}function cee(e){return this.select(e?lee:aee)}function uee(e){return arguments.length?this.property("__data__",e):this.node().__data__}function dee(e){return function(t){e.call(this,t,this.__data__)}}function fee(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 pee(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 hee(e,t,n){return function(){var r=this.__on,o,i=dee(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 mee(e,t,n){var r=fee(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?hee:pee,o=0;o<i;++o)this.each(l(r[o],t,n));return this}function $3(e,t,n){var r=R3(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 gee(e,t){return function(){return $3(this,e,t)}}function xee(e,t){return function(){return $3(this,e,t.apply(this,arguments))}}function yee(e,t){return this.each((typeof t=="function"?xee:gee)(e,t))}function*bee(){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 I3=[null];function Ur(e,t){this._groups=e,this._parents=t}function ef(){return new Ur([[document.documentElement]],I3)}function vee(){return this}Ur.prototype=ef.prototype={constructor:Ur,select:KJ,selectAll:XJ,selectChild:eZ,selectChildren:sZ,filter:oZ,data:dZ,enter:iZ,exit:pZ,join:hZ,merge:mZ,selection:vee,order:gZ,sort:xZ,call:bZ,nodes:vZ,node:wZ,size:jZ,empty:kZ,each:NZ,attr:PZ,style:IZ,property:FZ,classed:HZ,text:qZ,html:QZ,raise:ZZ,lower:tee,append:nee,insert:see,remove:iee,clone:cee,datum:uee,on:mee,dispatch:yee,[Symbol.iterator]:bee};function Fr(e){return typeof e=="string"?new Ur([[document.querySelector(e)]],[document.documentElement]):new Ur([[e]],I3)}function wee(e){let t;for(;t=e.sourceEvent;)e=t;return e}function hs(e,t){if(e=wee(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 jee={passive:!1},jd={capture:!0,passive:!1};function nb(e){e.stopImmediatePropagation()}function Jl(e){e.preventDefault(),e.stopImmediatePropagation()}function M3(e){var t=e.document.documentElement,n=Fr(e).on("dragstart.drag",Jl,jd);"onselectstart"in t?n.on("selectstart.drag",Jl,jd):(t.__noselect=t.style.MozUserSelect,t.style.MozUserSelect="none")}function L3(e,t){var n=e.document.documentElement,r=Fr(e).on("dragstart.drag",null);t&&(r.on("click.drag",Jl,jd),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 kv(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}})}kv.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function kee(e){return!e.ctrlKey&&!e.button}function Nee(){return this.parentNode}function See(e,t){return t??{x:e.x,y:e.y}}function Cee(){return navigator.maxTouchPoints||"ontouchstart"in this}function O3(){var e=kee,t=Nee,n=See,r=Cee,o={},i=og("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,jee).on("touchend.drag touchcancel.drag",S).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function y(C,A){if(!(p||!e.call(this,C,A))){var T=N(this,t.call(this,C,A),C,A,"mouse");T&&(Fr(C.view).on("mousemove.drag",k,jd).on("mouseup.drag",v,jd),M3(C.view),nb(C),f=!1,l=C.clientX,u=C.clientY,T("start",C))}}function k(C){if(Jl(C),!f){var A=C.clientX-l,T=C.clientY-u;f=A*A+T*T>h}o.mouse("drag",C)}function v(C){Fr(C.view).on("mousemove.drag mouseup.drag",null),L3(C.view,f),Jl(C),o.mouse("end",C)}function b(C,A){if(e.call(this,C,A)){var T=C.changedTouches,_=t.call(this,C,A),O=T.length,P,W;for(P=0;P<O;++P)(W=N(this,_,C,A,T[P].identifier,T[P]))&&(nb(C),W("start",C,T[P]))}}function j(C){var A=C.changedTouches,T=A.length,_,O;for(_=0;_<T;++_)(O=o[A[_].identifier])&&(Jl(C),O("drag",C,A[_]))}function S(C){var A=C.changedTouches,T=A.length,_,O;for(p&&clearTimeout(p),p=setTimeout(function(){p=null},500),_=0;_<T;++_)(O=o[A[_].identifier])&&(nb(C),O("end",C,A[_]))}function N(C,A,T,_,O,P){var W=i.copy(),I=hs(P||T,A),z,U,D;if((D=n.call(C,new kv("beforestart",{sourceEvent:T,target:g,identifier:O,active:a,x:I[0],y:I[1],dx:0,dy:0,dispatch:W}),_))!=null)return z=D.x-I[0]||0,U=D.y-I[1]||0,function F(M,K,$){var V=I,L;switch(M){case"start":o[O]=F,L=a++;break;case"end":delete o[O],--a;case"drag":I=hs($||K,A),L=a;break}W.call(M,C,new kv(M,{sourceEvent:K,subject:D,target:g,identifier:O,active:L,x:I[0]+z,y:I[1]+U,dx:I[0]-V[0],dy:I[1]-V[1],dispatch:W}),_)}}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 M0(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function F3(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function tf(){}var kd=.7,Uh=1/kd,Zl="\\s*([+-]?\\d+)\\s*",Nd="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",no="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Eee=/^#([0-9a-f]{3,8})$/,Tee=new RegExp(`^rgb\\(${Zl},${Zl},${Zl}\\)$`),Ree=new RegExp(`^rgb\\(${no},${no},${no}\\)$`),Aee=new RegExp(`^rgba\\(${Zl},${Zl},${Zl},${Nd}\\)$`),Pee=new RegExp(`^rgba\\(${no},${no},${no},${Nd}\\)$`),_ee=new RegExp(`^hsl\\(${Nd},${no},${no}\\)$`),Dee=new RegExp(`^hsla\\(${Nd},${no},${no},${Nd}\\)$`),CC={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};M0(tf,Na,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:EC,formatHex:EC,formatHex8:$ee,formatHsl:Iee,formatRgb:TC,toString:TC});function EC(){return this.rgb().formatHex()}function $ee(){return this.rgb().formatHex8()}function Iee(){return z3(this).formatHsl()}function TC(){return this.rgb().formatRgb()}function Na(e){var t,n;return e=(e+"").trim().toLowerCase(),(t=Eee.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?RC(t):n===3?new wr(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=Tee.exec(e))?new wr(t[1],t[2],t[3],1):(t=Ree.exec(e))?new wr(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Aee.exec(e))?Ep(t[1],t[2],t[3],t[4]):(t=Pee.exec(e))?Ep(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=_ee.exec(e))?_C(t[1],t[2]/100,t[3]/100,1):(t=Dee.exec(e))?_C(t[1],t[2]/100,t[3]/100,t[4]):CC.hasOwnProperty(e)?RC(CC[e]):e==="transparent"?new wr(NaN,NaN,NaN,0):null}function RC(e){return new wr(e>>16&255,e>>8&255,e&255,1)}function Ep(e,t,n,r){return r<=0&&(e=t=n=NaN),new wr(e,t,n,r)}function Mee(e){return e instanceof tf||(e=Na(e)),e?(e=e.rgb(),new wr(e.r,e.g,e.b,e.opacity)):new wr}function Nv(e,t,n,r){return arguments.length===1?Mee(e):new wr(e,t,n,r??1)}function wr(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}M0(wr,Nv,F3(tf,{brighter(e){return e=e==null?Uh:Math.pow(Uh,e),new wr(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?kd:Math.pow(kd,e),new wr(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new wr(ba(this.r),ba(this.g),ba(this.b),Hh(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:AC,formatHex:AC,formatHex8:Lee,formatRgb:PC,toString:PC}));function AC(){return`#${fa(this.r)}${fa(this.g)}${fa(this.b)}`}function Lee(){return`#${fa(this.r)}${fa(this.g)}${fa(this.b)}${fa((isNaN(this.opacity)?1:this.opacity)*255)}`}function PC(){const e=Hh(this.opacity);return`${e===1?"rgb(":"rgba("}${ba(this.r)}, ${ba(this.g)}, ${ba(this.b)}${e===1?")":`, ${e})`}`}function Hh(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function ba(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function fa(e){return e=ba(e),(e<16?"0":"")+e.toString(16)}function _C(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 z3(e){if(e instanceof ms)return new ms(e.h,e.s,e.l,e.opacity);if(e instanceof tf||(e=Na(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 Oee(e,t,n,r){return arguments.length===1?z3(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}M0(ms,Oee,F3(tf,{brighter(e){return e=e==null?Uh:Math.pow(Uh,e),new ms(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?kd:Math.pow(kd,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 wr(rb(e>=240?e-240:e+120,o,r),rb(e,o,r),rb(e<120?e+240:e-120,o,r),this.opacity)},clamp(){return new ms(DC(this.h),Tp(this.s),Tp(this.l),Hh(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=Hh(this.opacity);return`${e===1?"hsl(":"hsla("}${DC(this.h)}, ${Tp(this.s)*100}%, ${Tp(this.l)*100}%${e===1?")":`, ${e})`}`}}));function DC(e){return e=(e||0)%360,e<0?e+360:e}function Tp(e){return Math.max(0,Math.min(1,e||0))}function rb(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 ag=e=>()=>e;function B3(e,t){return function(n){return e+n*t}}function Fee(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 tce(e,t){var n=t-e;return n?B3(e,n>180||n<-180?n-360*Math.round(n/360):n):ag(isNaN(e)?t:e)}function zee(e){return(e=+e)==1?U3:function(t,n){return n-t?Fee(t,n,e):ag(isNaN(t)?n:t)}}function U3(e,t){var n=t-e;return n?B3(e,n):ag(isNaN(e)?t:e)}const Vh=(function e(t){var n=zee(t);function r(o,i){var a=n((o=Nv(o)).r,(i=Nv(i)).r),l=n(o.g,i.g),u=n(o.b,i.b),f=U3(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 Bee(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 Uee(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Hee(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]=sd(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 Vee(e,t){var n=new Date;return e=+e,t=+t,function(r){return n.setTime(e*(1-r)+t*r),n}}function qs(e,t){return e=+e,t=+t,function(n){return e*(1-n)+t*n}}function Wee(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]=sd(e[o],t[o]):r[o]=t[o];return function(i){for(o in n)r[o]=n[o](i);return r}}var Sv=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,sb=new RegExp(Sv.source,"g");function Kee(e){return function(){return e}}function qee(e){return function(t){return e(t)+""}}function H3(e,t){var n=Sv.lastIndex=sb.lastIndex=0,r,o,i,a=-1,l=[],u=[];for(e=e+"",t=t+"";(r=Sv.exec(e))&&(o=sb.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:qs(r,o)})),n=sb.lastIndex;return n<t.length&&(i=t.slice(n),l[a]?l[a]+=i:l[++a]=i),l.length<2?u[0]?qee(u[0].x):Kee(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 sd(e,t){var n=typeof t,r;return t==null||n==="boolean"?ag(t):(n==="number"?qs:n==="string"?(r=Na(t))?(t=r,Vh):H3:t instanceof Na?Vh:t instanceof Date?Vee:Uee(t)?Bee:Array.isArray(t)?Hee:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?Wee:qs)(e,t)}var $C=180/Math.PI,Cv={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function V3(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)*$C,skewX:Math.atan(u)*$C,scaleX:a,scaleY:l}}var Rp;function Gee(e){const t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?Cv:V3(t.a,t.b,t.c,t.d,t.e,t.f)}function Yee(e){return e==null||(Rp||(Rp=document.createElementNS("http://www.w3.org/2000/svg","g")),Rp.setAttribute("transform",e),!(e=Rp.transform.baseVal.consolidate()))?Cv:(e=e.matrix,V3(e.a,e.b,e.c,e.d,e.e,e.f))}function W3(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:qs(f,h)},{i:v-2,x:qs(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:qs(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:qs(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:qs(f,h)},{i:v-2,x:qs(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 Xee=W3(Gee,"px, ","px)","deg)"),Qee=W3(Yee,", ",")",")"),Jee=1e-12;function IC(e){return((e=Math.exp(e))+1/e)/2}function Zee(e){return((e=Math.exp(e))-1/e)/2}function ete(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<Jee)j=Math.log(g/f)/t,b=function(_){return[l+_*y,u+_*k,f*Math.exp(t*_*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),A=Math.log(Math.sqrt(N*N+1)-N),T=Math.log(Math.sqrt(C*C+1)-C);j=(T-A)/t,b=function(_){var O=_*j,P=IC(A),W=f/(n*S)*(P*ete(t*O+A)-Zee(A));return[l+W*y,u+W*k,f*P/IC(t*O+A)]}}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 cc=0,Mu=0,Du=0,K3=1e3,Wh,Lu,Kh=0,Sa=0,lg=0,Sd=typeof performance=="object"&&performance.now?performance:Date,q3=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function L0(){return Sa||(q3(tte),Sa=Sd.now()+lg)}function tte(){Sa=0}function qh(){this._call=this._time=this._next=null}qh.prototype=G3.prototype={constructor:qh,restart:function(e,t,n){if(typeof e!="function")throw new TypeError("callback is not a function");n=(n==null?L0():+n)+(t==null?0:+t),!this._next&&Lu!==this&&(Lu?Lu._next=this:Wh=this,Lu=this),this._call=e,this._time=n,Ev()},stop:function(){this._call&&(this._call=null,this._time=1/0,Ev())}};function G3(e,t,n){var r=new qh;return r.restart(e,t,n),r}function nte(){L0(),++cc;for(var e=Wh,t;e;)(t=Sa-e._time)>=0&&e._call.call(void 0,t),e=e._next;--cc}function MC(){Sa=(Kh=Sd.now())+lg,cc=Mu=0;try{nte()}finally{cc=0,ste(),Sa=0}}function rte(){var e=Sd.now(),t=e-Kh;t>K3&&(lg-=t,Kh=e)}function ste(){for(var e,t=Wh,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:Wh=n);Lu=e,Ev(r)}function Ev(e){if(!cc){Mu&&(Mu=clearTimeout(Mu));var t=e-Sa;t>24?(e<1/0&&(Mu=setTimeout(MC,e-Sd.now()-lg)),Du&&(Du=clearInterval(Du))):(Du||(Kh=Sd.now(),Du=setInterval(rte,K3)),cc=1,q3(MC))}}function LC(e,t,n){var r=new qh;return t=t==null?0:+t,r.restart(o=>{r.stop(),e(o+t)},t,n),r}var ote=og("start","end","cancel","interrupt"),ite=[],Y3=0,OC=1,Tv=2,rh=3,FC=4,Rv=5,sh=6;function cg(e,t,n,r,o,i){var a=e.__transition;if(!a)e.__transition={};else if(n in a)return;ate(e,n,{name:t,index:r,group:o,on:ote,tween:ite,time:i.time,delay:i.delay,duration:i.duration,ease:i.ease,timer:null,state:Y3})}function O0(e,t){var n=Ps(e,t);if(n.state>Y3)throw new Error("too late; already scheduled");return n}function ao(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 ate(e,t,n){var r=e.__transition,o;r[t]=n,n.timer=G3(i,0,n.time);function i(f){n.state=OC,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!==OC)return u();for(p in r)if(y=r[p],y.name===n.name){if(y.state===rh)return LC(a);y.state===FC?(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(LC(function(){n.state===rh&&(n.state=FC,n.timer.restart(l,n.delay,n.time),l(f))}),n.state=Tv,n.on.call("start",e,e.__data__,n.index,n.group),n.state===Tv){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=Rv,1),h=-1,g=o.length;++h<g;)o[h].call(e,p);n.state===Rv&&(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>Tv&&r.state<Rv,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 lte(e){return this.each(function(){oh(this,e)})}function cte(e,t){var n,r;return function(){var o=ao(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 ute(e,t,n){var r,o;if(typeof n!="function")throw new Error;return function(){var i=ao(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 dte(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?cte:ute)(n,e,t))}function F0(e,t,n){var r=e._id;return e.each(function(){var o=ao(this,r);(o.value||(o.value={}))[t]=n.apply(this,arguments)}),function(o){return Ps(o,r).value[t]}}function X3(e,t){var n;return(typeof t=="number"?qs:t instanceof Na?Vh:(n=Na(t))?(t=n,Vh):H3)(e,t)}function fte(e){return function(){this.removeAttribute(e)}}function pte(e){return function(){this.removeAttributeNS(e.space,e.local)}}function hte(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 mte(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 gte(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 xte(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 yte(e,t){var n=ig(e),r=n==="transform"?Qee:X3;return this.attrTween(e,typeof t=="function"?(n.local?xte:gte)(n,r,F0(this,"attr."+e,t)):t==null?(n.local?pte:fte)(n):(n.local?mte:hte)(n,r,t))}function bte(e,t){return function(n){this.setAttribute(e,t.call(this,n))}}function vte(e,t){return function(n){this.setAttributeNS(e.space,e.local,t.call(this,n))}}function wte(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&vte(e,i)),n}return o._value=t,o}function jte(e,t){var n,r;function o(){var i=t.apply(this,arguments);return i!==r&&(n=(r=i)&&bte(e,i)),n}return o._value=t,o}function kte(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=ig(e);return this.tween(n,(r.local?wte:jte)(r,t))}function Nte(e,t){return function(){O0(this,e).delay=+t.apply(this,arguments)}}function Ste(e,t){return t=+t,function(){O0(this,e).delay=t}}function Cte(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Nte:Ste)(t,e)):Ps(this.node(),t).delay}function Ete(e,t){return function(){ao(this,e).duration=+t.apply(this,arguments)}}function Tte(e,t){return t=+t,function(){ao(this,e).duration=t}}function Rte(e){var t=this._id;return arguments.length?this.each((typeof e=="function"?Ete:Tte)(t,e)):Ps(this.node(),t).duration}function Ate(e,t){if(typeof t!="function")throw new Error;return function(){ao(this,e).ease=t}}function Pte(e){var t=this._id;return arguments.length?this.each(Ate(t,e)):Ps(this.node(),t).ease}function _te(e,t){return function(){var n=t.apply(this,arguments);if(typeof n!="function")throw new Error;ao(this,e).ease=n}}function Dte(e){if(typeof e!="function")throw new Error;return this.each(_te(this._id,e))}function $te(e){typeof e!="function"&&(e=C3(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 Ite(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 Mte(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 Lte(e,t,n){var r,o,i=Mte(t)?O0:ao;return function(){var a=i(this,e),l=a.on;l!==r&&(o=(r=l).copy()).on(t,n),a.on=o}}function Ote(e,t){var n=this._id;return arguments.length<2?Ps(this.node(),n).on.on(e):this.each(Lte(n,e,t))}function Fte(e){return function(){var t=this.parentNode;for(var n in this.__transition)if(+n!==e)return;t&&t.removeChild(this)}}function zte(){return this.on("end.remove",Fte(this._id))}function Bte(e){var t=this._name,n=this._id;typeof e!="function"&&(e=$0(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,cg(f[g],t,n,g,f,Ps(p,n)));return new $o(i,this._parents,t,n)}function Ute(e){var t=this._name,n=this._id;typeof e!="function"&&(e=S3(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])&&cg(y,t,n,v,g,k);i.push(g),a.push(p)}return new $o(i,a,t,n)}var Hte=ef.prototype.constructor;function Vte(){return new Hte(this._groups,this._parents)}function Wte(e,t){var n,r,o;return function(){var i=lc(this,e),a=(this.style.removeProperty(e),lc(this,e));return i===a?null:i===n&&a===r?o:o=t(n=i,r=a)}}function Q3(e){return function(){this.style.removeProperty(e)}}function Kte(e,t,n){var r,o=n+"",i;return function(){var a=lc(this,e);return a===o?null:a===r?i:i=t(r=a,n)}}function qte(e,t,n){var r,o,i;return function(){var a=lc(this,e),l=n(this),u=l+"";return l==null&&(u=l=(this.style.removeProperty(e),lc(this,e))),a===u?null:a===r&&u===o?i:(o=u,i=t(r=a,l))}}function Gte(e,t){var n,r,o,i="style."+t,a="end."+i,l;return function(){var u=ao(this,e),f=u.on,p=u.value[i]==null?l||(l=Q3(t)):void 0;(f!==n||o!==p)&&(r=(n=f).copy()).on(a,o=p),u.on=r}}function Yte(e,t,n){var r=(e+="")=="transform"?Xee:X3;return t==null?this.styleTween(e,Wte(e,r)).on("end.style."+e,Q3(e)):typeof t=="function"?this.styleTween(e,qte(e,r,F0(this,"style."+e,t))).each(Gte(this._id,e)):this.styleTween(e,Kte(e,r,t),n).on("end.style."+e,null)}function Xte(e,t,n){return function(r){this.style.setProperty(e,t.call(this,r),n)}}function Qte(e,t,n){var r,o;function i(){var a=t.apply(this,arguments);return a!==o&&(r=(o=a)&&Xte(e,a,n)),r}return i._value=t,i}function Jte(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,Qte(e,t,n??""))}function Zte(e){return function(){this.textContent=e}}function ene(e){return function(){var t=e(this);this.textContent=t??""}}function tne(e){return this.tween("text",typeof e=="function"?ene(F0(this,"text",e)):Zte(e==null?"":e+""))}function nne(e){return function(t){this.textContent=e.call(this,t)}}function rne(e){var t,n;function r(){var o=e.apply(this,arguments);return o!==n&&(t=(n=o)&&nne(o)),t}return r._value=e,r}function sne(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,rne(e))}function one(){for(var e=this._name,t=this._id,n=J3(),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);cg(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 ine(){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=ao(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 ane=0;function $o(e,t,n,r){this._groups=e,this._parents=t,this._name=n,this._id=r}function J3(){return++ane}var So=ef.prototype;$o.prototype={constructor:$o,select:Bte,selectAll:Ute,selectChild:So.selectChild,selectChildren:So.selectChildren,filter:$te,merge:Ite,selection:Vte,transition:one,call:So.call,nodes:So.nodes,node:So.node,size:So.size,empty:So.empty,each:So.each,on:Ote,attr:yte,attrTween:kte,style:Yte,styleTween:Jte,text:tne,textTween:sne,remove:zte,tween:dte,delay:Cte,duration:Rte,ease:Pte,easeVarying:Dte,end:ine,[Symbol.iterator]:So[Symbol.iterator]};function lne(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var cne={time:null,delay:0,duration:250,ease:lne};function une(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 dne(e){var t,n;e instanceof $o?(t=e._id,e=e._name):(t=J3(),(n=cne).time=L0(),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])&&cg(u,e,t,f,a,n||une(u,t));return new $o(r,this._parents,e,t)}ef.prototype.interrupt=lte;ef.prototype.transition=dne;const Ap=e=>()=>e;function fne(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 Ao(e,t,n){this.k=e,this.x=t,this.y=n}Ao.prototype={constructor:Ao,scale:function(e){return e===1?this:new Ao(this.k*e,this.x,this.y)},translate:function(e,t){return e===0&t===0?this:new Ao(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 ug=new Ao(1,0,0);Z3.prototype=Ao.prototype;function Z3(e){for(;!e.__zoom;)if(!(e=e.parentNode))return ug;return e.__zoom}function ob(e){e.stopImmediatePropagation()}function $u(e){e.preventDefault(),e.stopImmediatePropagation()}function pne(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function hne(){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 zC(){return this.__zoom||ug}function mne(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function gne(){return navigator.maxTouchPoints||"ontouchstart"in this}function xne(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 eD(){var e=pne,t=hne,n=xne,r=mne,o=gne,i=[0,1/0],a=[[-1/0,-1/0],[1/0,1/0]],l=250,u=nh,f=og("start","zoom","end"),p,h,g,y=500,k=150,v=0,b=10;function j(D){D.property("__zoom",zC).on("wheel.zoom",O,{passive:!1}).on("mousedown.zoom",P).on("dblclick.zoom",W).filter(o).on("touchstart.zoom",I).on("touchmove.zoom",z).on("touchend.zoom touchcancel.zoom",U).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}j.transform=function(D,F,M,K){var $=D.selection?D.selection():D;$.property("__zoom",zC),D!==$?A(D,F,M,K):$.interrupt().each(function(){T(this,arguments).event(K).start().zoom(null,typeof F=="function"?F.apply(this,arguments):F).end()})},j.scaleBy=function(D,F,M,K){j.scaleTo(D,function(){var $=this.__zoom.k,V=typeof F=="function"?F.apply(this,arguments):F;return $*V},M,K)},j.scaleTo=function(D,F,M,K){j.transform(D,function(){var $=t.apply(this,arguments),V=this.__zoom,L=M==null?C($):typeof M=="function"?M.apply(this,arguments):M,B=V.invert(L),Y=typeof F=="function"?F.apply(this,arguments):F;return n(N(S(V,Y),L,B),$,a)},M,K)},j.translateBy=function(D,F,M,K){j.transform(D,function(){return n(this.__zoom.translate(typeof F=="function"?F.apply(this,arguments):F,typeof M=="function"?M.apply(this,arguments):M),t.apply(this,arguments),a)},null,K)},j.translateTo=function(D,F,M,K,$){j.transform(D,function(){var V=t.apply(this,arguments),L=this.__zoom,B=K==null?C(V):typeof K=="function"?K.apply(this,arguments):K;return n(ug.translate(B[0],B[1]).scale(L.k).translate(typeof F=="function"?-F.apply(this,arguments):-F,typeof M=="function"?-M.apply(this,arguments):-M),V,a)},K,$)};function S(D,F){return F=Math.max(i[0],Math.min(i[1],F)),F===D.k?D:new Ao(F,D.x,D.y)}function N(D,F,M){var K=F[0]-M[0]*D.k,$=F[1]-M[1]*D.k;return K===D.x&&$===D.y?D:new Ao(D.k,K,$)}function C(D){return[(+D[0][0]+ +D[1][0])/2,(+D[0][1]+ +D[1][1])/2]}function A(D,F,M,K){D.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 $=this,V=arguments,L=T($,V).event(K),B=t.apply($,V),Y=M==null?C(B):typeof M=="function"?M.apply($,V):M,H=Math.max(B[1][0]-B[0][0],B[1][1]-B[0][1]),Q=$.__zoom,J=typeof F=="function"?F.apply($,V):F,Z=u(Q.invert(Y).concat(H/Q.k),J.invert(Y).concat(H/J.k));return function(oe){if(oe===1)oe=J;else{var te=Z(oe),ue=H/te[2];oe=new Ao(ue,Y[0]-te[0]*ue,Y[1]-te[1]*ue)}L.zoom(null,oe)}})}function T(D,F,M){return!M&&D.__zooming||new _(D,F)}function _(D,F){this.that=D,this.args=F,this.active=0,this.sourceEvent=null,this.extent=t.apply(D,F),this.taps=0}_.prototype={event:function(D){return D&&(this.sourceEvent=D),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(D,F){return this.mouse&&D!=="mouse"&&(this.mouse[1]=F.invert(this.mouse[0])),this.touch0&&D!=="touch"&&(this.touch0[1]=F.invert(this.touch0[0])),this.touch1&&D!=="touch"&&(this.touch1[1]=F.invert(this.touch1[0])),this.that.__zoom=F,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(D){var F=Fr(this.that).datum();f.call(D,this.that,new fne(D,{sourceEvent:this.sourceEvent,target:j,transform:this.that.__zoom,dispatch:f}),F)}};function O(D,...F){if(!e.apply(this,arguments))return;var M=T(this,F).event(D),K=this.__zoom,$=Math.max(i[0],Math.min(i[1],K.k*Math.pow(2,r.apply(this,arguments)))),V=hs(D);if(M.wheel)(M.mouse[0][0]!==V[0]||M.mouse[0][1]!==V[1])&&(M.mouse[1]=K.invert(M.mouse[0]=V)),clearTimeout(M.wheel);else{if(K.k===$)return;M.mouse=[V,K.invert(V)],oh(this),M.start()}$u(D),M.wheel=setTimeout(L,k),M.zoom("mouse",n(N(S(K,$),M.mouse[0],M.mouse[1]),M.extent,a));function L(){M.wheel=null,M.end()}}function P(D,...F){if(g||!e.apply(this,arguments))return;var M=D.currentTarget,K=T(this,F,!0).event(D),$=Fr(D.view).on("mousemove.zoom",Y,!0).on("mouseup.zoom",H,!0),V=hs(D,M),L=D.clientX,B=D.clientY;M3(D.view),ob(D),K.mouse=[V,this.__zoom.invert(V)],oh(this),K.start();function Y(Q){if($u(Q),!K.moved){var J=Q.clientX-L,Z=Q.clientY-B;K.moved=J*J+Z*Z>v}K.event(Q).zoom("mouse",n(N(K.that.__zoom,K.mouse[0]=hs(Q,M),K.mouse[1]),K.extent,a))}function H(Q){$.on("mousemove.zoom mouseup.zoom",null),L3(Q.view,K.moved),$u(Q),K.event(Q).end()}}function W(D,...F){if(e.apply(this,arguments)){var M=this.__zoom,K=hs(D.changedTouches?D.changedTouches[0]:D,this),$=M.invert(K),V=M.k*(D.shiftKey?.5:2),L=n(N(S(M,V),K,$),t.apply(this,F),a);$u(D),l>0?Fr(this).transition().duration(l).call(A,L,K,D):Fr(this).call(j.transform,L,K,D)}}function I(D,...F){if(e.apply(this,arguments)){var M=D.touches,K=M.length,$=T(this,F,D.changedTouches.length===K).event(D),V,L,B,Y;for(ob(D),L=0;L<K;++L)B=M[L],Y=hs(B,this),Y=[Y,this.__zoom.invert(Y),B.identifier],$.touch0?!$.touch1&&$.touch0[2]!==Y[2]&&($.touch1=Y,$.taps=0):($.touch0=Y,V=!0,$.taps=1+!!p);p&&(p=clearTimeout(p)),V&&($.taps<2&&(h=Y[0],p=setTimeout(function(){p=null},y)),oh(this),$.start())}}function z(D,...F){if(this.__zooming){var M=T(this,F).event(D),K=D.changedTouches,$=K.length,V,L,B,Y;for($u(D),V=0;V<$;++V)L=K[V],B=hs(L,this),M.touch0&&M.touch0[2]===L.identifier?M.touch0[0]=B:M.touch1&&M.touch1[2]===L.identifier&&(M.touch1[0]=B);if(L=M.that.__zoom,M.touch1){var H=M.touch0[0],Q=M.touch0[1],J=M.touch1[0],Z=M.touch1[1],oe=(oe=J[0]-H[0])*oe+(oe=J[1]-H[1])*oe,te=(te=Z[0]-Q[0])*te+(te=Z[1]-Q[1])*te;L=S(L,Math.sqrt(oe/te)),B=[(H[0]+J[0])/2,(H[1]+J[1])/2],Y=[(Q[0]+Z[0])/2,(Q[1]+Z[1])/2]}else if(M.touch0)B=M.touch0[0],Y=M.touch0[1];else return;M.zoom("touch",n(N(L,B,Y),M.extent,a))}}function U(D,...F){if(this.__zooming){var M=T(this,F).event(D),K=D.changedTouches,$=K.length,V,L;for(ob(D),g&&clearTimeout(g),g=setTimeout(function(){g=null},y),V=0;V<$;++V)L=K[V],M.touch0&&M.touch0[2]===L.identifier?delete M.touch0:M.touch1&&M.touch1[2]===L.identifier&&delete M.touch1;if(M.touch1&&!M.touch0&&(M.touch0=M.touch1,delete M.touch1),M.touch0)M.touch0[1]=this.__zoom.invert(M.touch0[0]);else if(M.end(),M.taps===2&&(L=hs(L,this),Math.hypot(h[0]-L[0],h[1]-L[1])<b)){var B=Fr(this).on("dblclick.zoom");B&&B.apply(this,arguments)}}}return j.wheelDelta=function(D){return arguments.length?(r=typeof D=="function"?D:Ap(+D),j):r},j.filter=function(D){return arguments.length?(e=typeof D=="function"?D:Ap(!!D),j):e},j.touchable=function(D){return arguments.length?(o=typeof D=="function"?D:Ap(!!D),j):o},j.extent=function(D){return arguments.length?(t=typeof D=="function"?D:Ap([[+D[0][0],+D[0][1]],[+D[1][0],+D[1][1]]]),j):t},j.scaleExtent=function(D){return arguments.length?(i[0]=+D[0],i[1]=+D[1],j):[i[0],i[1]]},j.translateExtent=function(D){return arguments.length?(a[0][0]=+D[0][0],a[1][0]=+D[1][0],a[0][1]=+D[0][1],a[1][1]=+D[1][1],j):[[a[0][0],a[0][1]],[a[1][0],a[1][1]]]},j.constrain=function(D){return arguments.length?(n=D,j):n},j.duration=function(D){return arguments.length?(l=+D,j):l},j.interpolate=function(D){return arguments.length?(u=D,j):u},j.on=function(){var D=f.on.apply(f,arguments);return D===f?j:D},j.clickDistance=function(D){return arguments.length?(v=(D=+D)*D,j):Math.sqrt(v)},j.tapDistance=function(D){return arguments.length?(b=+D,j):b},j}const Es={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.`},Cd=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],tD=["Enter"," ","Escape"],nD={"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 uc;(function(e){e.Strict="strict",e.Loose="loose"})(uc||(uc={}));var va;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(va||(va={}));var Ed;(function(e){e.Partial="partial",e.Full="full"})(Ed||(Ed={}));const rD={inProgress:!1,isValid:null,from:null,fromHandle:null,fromPosition:null,fromNode:null,to:null,toHandle:null,toPosition:null,toNode:null,pointer:null};var xi;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(xi||(xi={}));var Gh;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Gh||(Gh={}));var ct;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(ct||(ct={}));const BC={[ct.Left]:ct.Right,[ct.Right]:ct.Left,[ct.Top]:ct.Bottom,[ct.Bottom]:ct.Top};function sD(e){return e===null?null:e?"valid":"invalid"}const oD=e=>"id"in e&&"source"in e&&"target"in e,yne=e=>"id"in e&&"position"in e&&!("source"in e)&&!("target"in e),z0=e=>"id"in e&&"internals"in e&&!("source"in e)&&!("target"in e),nf=(e,t=[0,0])=>{const{width:n,height:r}=Lo(e),o=e.origin??t,i=n*o[0],a=r*o[1];return{x:e.position.x-i,y:e.position.y-a}},bne=(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):z0(o)?o:t.nodeLookup.get(o.id));const l=a?Yh(a,t.nodeOrigin):{x:0,y:0,x2:0,y2:0};return dg(r,l)},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return fg(n)},rf=(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=dg(n,Yh(o)),r=!0)}),r?fg(n):{x:0,y:0,width:0,height:0}},B0=(e,t,[n,r,o]=[0,0,1],i=!1,a=!1)=>{const l={...Fc(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=Td(l,fc(f)),b=(y??0)*(k??0),j=i&&v>0;(!f.internals.handleBounds||j||v>=b||f.dragging)&&u.push(f)}return u},vne=(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 wne(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 jne({nodes:e,width:t,height:n,panZoom:r,minZoom:o,maxZoom:i},a){if(e.size===0)return!0;const l=wne(e,a),u=rf(l),f=H0(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 iD({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",Es.error005());else{const y=l.measured.width,k=l.measured.height;y&&k&&(h=[[u,f],[u+y,f+k]])}else l&&Ea(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=Ea(h)?Ca(t,h,a.measured):t;return(a.measured.width===void 0||a.measured.height===void 0)&&(i==null||i("015",Es.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 kne({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=vne(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 dc=(e,t=0,n=1)=>Math.min(Math.max(e,t),n),Ca=(e={x:0,y:0},t,n)=>({x:dc(e.x,t[0][0],t[1][0]-((n==null?void 0:n.width)??0)),y:dc(e.y,t[0][1],t[1][1]-((n==null?void 0:n.height)??0))});function aD(e,t,n){const{width:r,height:o}=Lo(n),{x:i,y:a}=n.internals.positionAbsolute;return Ca(e,[[i,a],[i+r,a+o]],t)}const UC=(e,t,n)=>e<t?dc(Math.abs(e-t),1,t)/t:e>n?-dc(Math.abs(e-n),1,t)/t:0,U0=(e,t,n=15,r=40)=>{const o=UC(e.x,r,t.width-r)*n,i=UC(e.y,r,t.height-r)*n;return[o,i]},dg=(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)}),Av=({x:e,y:t,width:n,height:r})=>({x:e,y:t,x2:e+n,y2:t+r}),fg=({x:e,y:t,x2:n,y2:r})=>({x:e,y:t,width:n-e,height:r-t}),fc=(e,t=[0,0])=>{var o,i;const{x:n,y:r}=z0(e)?e.internals.positionAbsolute:nf(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}},Yh=(e,t=[0,0])=>{var o,i;const{x:n,y:r}=z0(e)?e.internals.positionAbsolute:nf(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)}},lD=(e,t)=>fg(dg(Av(e),Av(t))),Td=(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)},HC=e=>gs(e.width)&&gs(e.height)&&gs(e.x)&&gs(e.y),gs=e=>!isNaN(e)&&isFinite(e),cD=(e,t)=>(n,r)=>{},sf=(e,t=[1,1])=>({x:t[0]*Math.round(e.x/t[0]),y:t[1]*Math.round(e.y/t[1])}),Fc=({x:e,y:t},[n,r,o],i=!1,a=[1,1])=>{const l={x:(e-n)/o,y:(t-r)/o};return i?sf(l,a):l},pc=({x:e,y:t},[n,r,o])=>({x:e*o+n,y:t*o+r});function Al(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 Nne(e,t,n){if(typeof e=="string"||typeof e=="number"){const r=Al(e,n),o=Al(e,t);return{top:r,right:o,bottom:r,left:o,x:o*2,y:r*2}}if(typeof e=="object"){const r=Al(e.top??e.y??0,n),o=Al(e.bottom??e.y??0,n),i=Al(e.left??e.x??0,t),a=Al(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 Sne(e,t,n,r,o,i){const{x:a,y:l}=pc(e,[t,n,r]),{x:u,y:f}=pc({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 H0=(e,t,n,r,o,i)=>{const a=Nne(i,t,n),l=(t-a.x)/e.width,u=(n-a.y)/e.height,f=Math.min(l,u),p=dc(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=Sne(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}},Rd=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0};function Ea(e){return e!=null&&e!=="parent"}function Lo(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 uD(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 dD(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 VC(e,t){if(e.size!==t.size)return!1;for(const n of e)if(!t.has(n))return!1;return!0}function Cne(){let e,t;return{promise:new Promise((r,o)=>{e=r,t=o}),resolve:e,reject:t}}function Ene(e){return{...nD,...e||{}}}function od(e,{snapGrid:t=[0,0],snapToGrid:n=!1,transform:r,containerBounds:o}){const{x:i,y:a}=xs(e),l=Fc({x:i-((o==null?void 0:o.left)??0),y:a-((o==null?void 0:o.top)??0)},r),{x:u,y:f}=n?sf(l,t):l;return{xSnapped:u,ySnapped:f,...l}}const V0=e=>({width:e.offsetWidth,height:e.offsetHeight}),fD=e=>{var t;return((t=e==null?void 0:e.getRootNode)==null?void 0:t.call(e))||(window==null?void 0:window.document)},Tne=["INPUT","SELECT","TEXTAREA"];function pD(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:Tne.includes(t.nodeName)||t.hasAttribute("contenteditable")||!!t.closest(".nokey")}const hD=e=>"clientX"in e,xs=(e,t)=>{var i,a;const n=hD(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)}},WC=(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,...V0(a)}})};function mD({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 KC({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 W0({sourceX:e,sourceY:t,sourcePosition:n=ct.Bottom,targetX:r,targetY:o,targetPosition:i=ct.Top,curvature:a=.25}){const[l,u]=KC({pos:n,x1:e,y1:t,x2:r,y2:o,c:a}),[f,p]=KC({pos:i,x1:r,y1:o,x2:e,y2:t,c:a}),[h,g,y,k]=mD({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 gD({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 Rne({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 Ane({sourceNode:e,targetNode:t,width:n,height:r,transform:o}){const i=dg(Yh(e),Yh(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 Td(a,fg(i))>0}const Pne=({source:e,sourceHandle:t,target:n,targetHandle:r})=>`xy-edge__${e}${t||""}-${n}${r||""}`,_ne=(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)),Dne=(e,t,n={})=>{var i;if(!e.source||!e.target)return(i=n.onError)==null||i.call(n,"006",Es.error006()),t;const r=n.getEdgeId||Pne;let o;return oD(e)?o={...e}:o={...e,id:r(e)},_ne(o,t)?t:(o.sourceHandle===null&&delete o.sourceHandle,o.targetHandle===null&&delete o.targetHandle,t.concat(o))};function xD({sourceX:e,sourceY:t,targetX:n,targetY:r}){const[o,i,a,l]=gD({sourceX:e,sourceY:t,targetX:n,targetY:r});return[`M ${e},${t}L ${n},${r}`,o,i,a,l]}const qC={[ct.Left]:{x:-1,y:0},[ct.Right]:{x:1,y:0},[ct.Top]:{x:0,y:-1},[ct.Bottom]:{x:0,y:1}},$ne=({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},GC=(e,t)=>Math.sqrt(Math.pow(t.x-e.x,2)+Math.pow(t.y-e.y,2));function Ine({source:e,sourcePosition:t=ct.Bottom,target:n,targetPosition:r=ct.Top,center:o,offset:i,stepPosition:a}){const l=qC[t],u=qC[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=$ne({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]=gD({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 O=[{x:v,y:f.y},{x:v,y:p.y}],P=[{x:f.x,y:b},{x:p.x,y:b}];l[g]===y?k=g==="x"?O:P:k=g==="x"?P:O}else{const O=[{x:f.x,y:p.y}],P=[{x:p.x,y:f.y}];if(g==="x"?k=l.x===y?P:O:k=l.y===y?O:P,t===r){const D=Math.abs(e[g]-n[g]);if(D<=i){const F=Math.min(i-1,i-D);l[g]===y?j[g]=(f[g]>e[g]?-1:1)*F:S[g]=(p[g]>n[g]?-1:1)*F}}if(t!==r){const D=g==="x"?"y":"x",F=l[g]===u[D],M=f[D]>p[D],K=f[D]<p[D];(l[g]===1&&(!F&&M||F&&K)||l[g]!==1&&(!F&&K||F&&M))&&(k=g==="x"?O:P)}const W={x:f.x+j.x,y:f.y+j.y},I={x:p.x+S.x,y:p.y+S.y},z=Math.max(Math.abs(W.x-k[0].x),Math.abs(I.x-k[0].x)),U=Math.max(Math.abs(W.y-k[0].y),Math.abs(I.y-k[0].y));z>=U?(v=(W.x+I.x)/2,b=k[0].y):(v=k[0].x,b=(W.y+I.y)/2)}const A={x:f.x+j.x,y:f.y+j.y},T={x:p.x+S.x,y:p.y+S.y};return[[e,...A.x!==k[0].x||A.y!==k[0].y?[A]:[],...k,...T.x!==k[k.length-1].x||T.y!==k[k.length-1].y?[T]:[],n],v,b,N,C]}function Mne(e,t,n,r){const o=Math.min(GC(e,t)/2,GC(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 Pv({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]=Ine({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+=Mne(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 YC(e){var t;return e&&!!(e.internals.handleBounds||(t=e.handles)!=null&&t.length)&&!!(e.measured.width||e.width||e.initialWidth)}function Lne(e){var h;const{sourceNode:t,targetNode:n}=e;if(!YC(t)||!YC(n))return null;const r=t.internals.handleBounds||XC(t.handles),o=n.internals.handleBounds||XC(n.handles),i=QC((r==null?void 0:r.source)??[],e.sourceHandle),a=QC(e.connectionMode===uc.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",Es.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=Ta(t,i,l),p=Ta(n,a,u);return{sourceX:f.x,sourceY:f.y,targetX:p.x,targetY:p.y,sourcePosition:l,targetPosition:u}}function XC(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 Ta(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??Lo(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 _v(e,t){return e?typeof e=="string"?e:`${t?`${t}__`:""}${Object.keys(e).sort().map(r=>`${r}=${e[r]}`).join("&")}`:""}function One(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=_v(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 yD=1e3,Fne=10,K0={nodeOrigin:[0,0],nodeExtent:Cd,elevateNodesOnSelect:!0,zIndexMode:"basic",defaults:{}},zne={...K0,checkEquality:!0};function q0(e,t){const n={...e};for(const r in t)t[r]!==void 0&&(n[r]=t[r]);return n}function Bne(e,t,n){const r=q0(K0,n);for(const o of e.values())if(o.parentId)Y0(o,e,t,r);else{const i=nf(o,r.nodeOrigin),a=Ea(o.extent)?o.extent:r.nodeExtent,l=Ca(i,a,Lo(o));o.internals.positionAbsolute=l}}function Une(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 G0(e){return e==="manual"}function Dv(e,t,n,r={}){var p,h;const o=q0(zne,r),i={i:0},a=new Map(t),l=o!=null&&o.elevateNodesOnSelect&&!G0(o.zIndexMode)?yD: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=nf(g,o.nodeOrigin),v=Ea(g.extent)?g.extent:o.nodeExtent,b=Ca(k,v,Lo(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:Une(g,y),z:bD(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&&Y0(y,t,n,r,i),f||(f=g.selected??!1)}return{nodesInitialized:u,hasSelectedNodes:f}}function Hne(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 Y0(e,t,n,r,o){const{elevateNodesOnSelect:i,nodeOrigin:a,nodeExtent:l,zIndexMode:u}=q0(K0,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}Hne(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*Fne),o&&p.internals.rootParentIndex!==void 0&&(o.i=p.internals.rootParentIndex);const h=i&&!G0(u)?yD:0,{x:g,y,z:k}=Vne(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 bD(e,t,n){const r=gs(e.zIndex)?e.zIndex:0;return G0(n)?r:r+(e.selected?t:0)}function Vne(e,t,n,r,o,i){const{x:a,y:l}=t.internals.positionAbsolute,u=Lo(e),f=nf(e,n),p=Ea(e.extent)?Ca(f,e.extent,u):f;let h=Ca({x:a+p.x,y:l+p.y},r,u);e.extent==="parent"&&(h=aD(h,u,t));const g=bD(e,o,i),y=t.internals.z??0;return{x:h.x,y:h.y,z:y>=g?y+1:g}}function X0(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)??fc(u),p=lD(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=Lo(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(A=>A.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 Wne(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=V0(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=Ea(k.extent)?k.extent:i;let{positionAbsolute:C}=k.internals;k.parentId&&k.extent==="parent"?C=aD(C,v,t.get(k.parentId)):N&&(C=Ca(C,N,v));const A={...k,measured:v,internals:{...k.internals,positionAbsolute:C,handleBounds:{source:WC("source",y.nodeElement,S,h,k.id),target:WC("target",y.nodeElement,S,h,k.id)}}};t.set(k.id,A),k.parentId&&Y0(A,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:fc(A,o)}))}}if(g.length>0){const y=X0(g,t,n,o);f.push(...y)}return{changes:f,updatedInternals:u}}async function Kne({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 JC(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 vD(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}`;JC("source",u,p,e,o,a),JC("target",u,f,e,i,l),t.set(r.id,r)}}function wD(e,t){if(!e.parentId)return!1;const n=t.get(e.parentId);return n?n.selected?!0:wD(n,t):!1}function ZC(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 qne(e,t,n,r){const o=new Map;for(const[i,a]of e)if((a.selected||a.id===r)&&(!a.parentId||!wD(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 ib({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 Gne({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=sf(i,t);return{x:a.x-i.x,y:a.y-i.y}}function Yne({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:A,nodeId:T,nodeClickDistance:_=0}){g=Fr(C);function O({x:z,y:U}){const{nodeLookup:D,nodeExtent:F,snapGrid:M,snapToGrid:K,nodeOrigin:$,onNodeDrag:V,onSelectionDrag:L,onError:B,updateNodePositions:Y}=t();i={x:z,y:U};let H=!1;const Q=l.size>1,J=Q&&F?Av(rf(l)):null,Z=Q&&K?Gne({dragItems:l,snapGrid:M,x:z,y:U}):null;for(const[oe,te]of l){if(!D.has(oe))continue;let ue={x:z-te.distance.x,y:U-te.distance.y};K&&(ue=Z?{x:Math.round(ue.x+Z.x),y:Math.round(ue.y+Z.y)}:sf(ue,M));let ge=null;if(Q&&F&&!te.extent&&J){const{positionAbsolute:ke}=te.internals,Be=ke.x-J.x+F[0][0],ie=ke.x+te.measured.width-J.x2+F[1][0],be=ke.y-J.y+F[0][1],ye=ke.y+te.measured.height-J.y2+F[1][1];ge=[[Be,be],[ie,ye]]}const{position:Ce,positionAbsolute:Se}=iD({nodeId:oe,nextPosition:ue,nodeLookup:D,nodeExtent:ge||F,nodeOrigin:$,onError:B});H=H||te.position.x!==Ce.x||te.position.y!==Ce.y,te.position=Ce,te.internals.positionAbsolute=Se}if(k=k||H,!!H&&(Y(l,!0),v&&(r||V||!T&&L))){const[oe,te]=ib({nodeId:T,dragItems:l,nodeLookup:D});r==null||r(v,l,oe,te),V==null||V(v,oe,te),T||L==null||L(v,te)}}async function P(){if(!p)return;const{transform:z,panBy:U,autoPanSpeed:D,autoPanOnNodeDrag:F}=t();if(!F){u=!1,cancelAnimationFrame(a);return}const[M,K]=U0(f,p,D);(M!==0||K!==0)&&(i.x=(i.x??0)-M/z[2],i.y=(i.y??0)-K/z[2],await U({x:M,y:K})&&O(i)),a=requestAnimationFrame(P)}function W(z){var Q;const{nodeLookup:U,multiSelectionActive:D,nodesDraggable:F,transform:M,snapGrid:K,snapToGrid:$,selectNodesOnDrag:V,onNodeDragStart:L,onSelectionDragStart:B,unselectNodesAndEdges:Y}=t();h=!0,(!V||!A)&&!D&&T&&((Q=U.get(T))!=null&&Q.selected||Y()),A&&V&&T&&(e==null||e(T));const H=od(z.sourceEvent,{transform:M,snapGrid:K,snapToGrid:$,containerBounds:p});if(i=H,l=qne(U,F,H,T),l.size>0&&(n||L||!T&&B)){const[J,Z]=ib({nodeId:T,dragItems:l,nodeLookup:U});n==null||n(z.sourceEvent,l,J,Z),L==null||L(z.sourceEvent,J,Z),T||B==null||B(z.sourceEvent,Z)}}const I=O3().clickDistance(_).on("start",z=>{const{domNode:U,nodeDragThreshold:D,transform:F,snapGrid:M,snapToGrid:K}=t();p=(U==null?void 0:U.getBoundingClientRect())||null,y=!1,k=!1,v=z.sourceEvent,D===0&&W(z),i=od(z.sourceEvent,{transform:F,snapGrid:M,snapToGrid:K,containerBounds:p}),f=xs(z.sourceEvent,p)}).on("drag",z=>{const{autoPanOnNodeDrag:U,transform:D,snapGrid:F,snapToGrid:M,nodeDragThreshold:K,nodeLookup:$}=t(),V=od(z.sourceEvent,{transform:D,snapGrid:F,snapToGrid:M,containerBounds:p});if(v=z.sourceEvent,(z.sourceEvent.type==="touchmove"&&z.sourceEvent.touches.length>1||T&&!$.has(T))&&(y=!0),!y){if(!u&&U&&h&&(u=!0,P()),!h){const L=xs(z.sourceEvent,p),B=L.x-f.x,Y=L.y-f.y;Math.sqrt(B*B+Y*Y)>K&&W(z)}(i.x!==V.xSnapped||i.y!==V.ySnapped)&&l&&h&&(f=xs(z.sourceEvent,p),O(V))}}).on("end",z=>{if(!h||y){y&&l.size>0&&t().updateNodePositions(l,!1);return}if(u=!1,h=!1,cancelAnimationFrame(a),l.size>0){const{nodeLookup:U,updateNodePositions:D,onNodeDragStop:F,onSelectionDragStop:M}=t();if(k&&(D(l,!1),k=!1),o||F||!T&&M){const[K,$]=ib({nodeId:T,dragItems:l,nodeLookup:U,dragging:!1});o==null||o(z.sourceEvent,l,K,$),F==null||F(z.sourceEvent,K,$),T||M==null||M(z.sourceEvent,$)}}}).filter(z=>{const U=z.target;return!z.button&&(!S||!ZC(U,`.${S}`,C))&&(!N||ZC(U,N,C))});g.call(I)}function j(){g==null||g.on(".drag",null)}return{update:b,destroy:j}}function Xne(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())Td(o,fc(i))>0&&r.push(i);return r}const Qne=250;function Jne(e,t,n,r){var l,u;let o=[],i=1/0;const a=Xne(e,n,t+Qne);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}=Ta(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 jD(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,...Ta(a,u,u.position,!0)}:u}function kD(e,t){return e||(t!=null&&t.classList.contains("target")?"target":t!=null&&t.classList.contains("source")?"source":null)}function Zne(e,t){let n=null;return t?n=!0:e&&!t&&(n=!1),n}const ND=()=>!0;function ere(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=ND,onReconnectEnd:S,updateConnection:N,getTransform:C,getFromHandle:A,autoPanSpeed:T,dragThreshold:_=1,handleDomNode:O}){const P=fD(e.target);let W=0,I;const{x:z,y:U}=xs(e),D=kD(i,O),F=l==null?void 0:l.getBoundingClientRect();let M=!1;if(!F||!D)return;const K=jD(o,D,r,u,t);if(!K)return;let $=xs(e,F),V=!1,L=null,B=!1,Y=null;function H(){if(!p||!F)return;const[Ce,Se]=U0($,F,T);g({x:Ce,y:Se}),W=requestAnimationFrame(H)}const Q={...K,nodeId:o,type:D,position:K.position},J=u.get(o);let oe={inProgress:!0,isValid:null,from:Ta(J,Q,ct.Left,!0),fromHandle:Q,fromPosition:Q.position,fromNode:J,to:$,toHandle:null,toPosition:BC[Q.position],toNode:null,pointer:$};function te(){M=!0,N(oe),k==null||k(e,{nodeId:o,handleId:r,handleType:D})}_===0&&te();function ue(Ce){if(!M){const{x:ye,y:Re}=xs(Ce),Ue=ye-z,rt=Re-U;if(!(Ue*Ue+rt*rt>_*_))return;te()}if(!A()||!Q){ge(Ce);return}const Se=C();$=xs(Ce,F),I=Jne(Fc($,Se,!1,[1,1]),n,u,Q),V||(H(),V=!0);const ke=SD(Ce,{handle:I,connectionMode:t,fromNodeId:o,fromHandleId:r,fromType:a?"target":"source",isValidConnection:j,doc:P,lib:f,flowId:h,nodeLookup:u});Y=ke.handleDomNode,L=ke.connection,B=Zne(!!I,ke.isValid);const Be=u.get(o),ie=Be?Ta(Be,Q,ct.Left,!0):oe.from,be={...oe,from:ie,isValid:B,to:ke.toHandle&&B?pc({x:ke.toHandle.x,y:ke.toHandle.y},Se):$,toHandle:ke.toHandle,toPosition:B&&ke.toHandle?ke.toHandle.position:BC[Q.position],toNode:ke.toHandle?u.get(ke.toHandle.nodeId):null,pointer:$};N(be),oe=be}function ge(Ce){if(!("touches"in Ce&&Ce.touches.length>0)){if(M){(I||Y)&&L&&B&&(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(W),V=!1,B=!1,L=null,Y=null,P.removeEventListener("mousemove",ue),P.removeEventListener("mouseup",ge),P.removeEventListener("touchmove",ue),P.removeEventListener("touchend",ge)}}P.addEventListener("mousemove",ue),P.addEventListener("mouseup",ge),P.addEventListener("touchmove",ue),P.addEventListener("touchend",ge)}function SD(e,{handle:t,connectionMode:n,fromNodeId:r,fromHandleId:o,fromType:i,doc:a,lib:l,flowId:u,isValidConnection:f=ND,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=kD(void 0,b),N=b.getAttribute("data-nodeid"),C=b.getAttribute("data-handleid"),A=b.classList.contains("connectable"),T=b.classList.contains("connectableend");if(!N||!S)return j;const _={source:h?N:r,sourceHandle:h?C:o,target:h?r:N,targetHandle:h?o:C};j.connection=_;const P=A&&T&&(n===uc.Strict?h&&S==="source"||!h&&S==="target":N!==r||C!==o);j.isValid=P&&f(_),j.toHandle=jD(N,S,C,p,n,!0)}return j}const $v={onPointerDown:ere,isValid:SD};function tre({domNode:e,panZoom:t,getTransform:n,getViewScale:r}){const o=Fr(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(),A=N.sourceEvent.ctrlKey&&Rd()?10:1,T=-N.sourceEvent.deltaY*(N.sourceEvent.deltaMode===1?.05:N.sourceEvent.deltaMode?1:.002)*p,_=C[2]*Math.pow(2,T*A);t.scaleTo(_)};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 A=[N.sourceEvent.clientX??N.sourceEvent.touches[0].clientX,N.sourceEvent.clientY??N.sourceEvent.touches[0].clientY],T=[A[0]-v[0],A[1]-v[1]];v=A;const _=r()*Math.max(C[2],Math.log(C[2]))*(y?-1:1),O={x:C[0]-T[0]*_,y:C[1]-T[1]*_},P=[[0,0],[u,f]];t.setViewportConstrained({x:O.x,y:O.y,zoom:C[2]},P,l)},S=eD().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 pg=e=>({x:e.x,y:e.y,zoom:e.k}),ab=({x:e,y:t,zoom:n})=>ug.translate(e,t).scale(n),Ll=(e,t)=>e.target.closest(`.${t}`),CD=(e,t)=>t===2&&Array.isArray(e)&&e.includes(2),nre=e=>((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2,lb=(e,t=0,n=nre,r=()=>{})=>{const o=typeof t=="number"&&t>0;return o||r(),o?e.transition().duration(t).ease(n).on("end",r):e},ED=e=>{const t=e.ctrlKey&&Rd()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*t};function rre({zoomPanValues:e,noWheelClassName:t,d3Selection:n,d3Zoom:r,panOnScrollMode:o,panOnScrollSpeed:i,zoomOnPinch:a,onPanZoomStart:l,onPanZoom:u,onPanZoomEnd:f}){return p=>{if(Ll(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=ED(p),S=h*Math.pow(2,j);r.scaleTo(n,S,b,p);return}const g=p.deltaMode===1?20:1;let y=o===va.Vertical?0:p.deltaX*g,k=o===va.Horizontal?0:p.deltaY*g;!Rd()&&p.shiftKey&&o!==va.Vertical&&(y=p.deltaY*g,k=0),r.translateBy(n,-(y/h)*i,-(k/h)*i,{internal:!0});const v=pg(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 sre({noWheelClassName:e,preventScrolling:t,d3ZoomHandler:n}){return function(r,o){const i=r.type==="wheel",a=!t&&i&&!r.ctrlKey,l=Ll(r,e);if(r.ctrlKey&&i&&l&&r.preventDefault(),a||l)return null;r.preventDefault(),n.call(this,r,o)}}function ore({zoomPanValues:e,onDraggingChange:t,onPanZoomStart:n}){return r=>{var i,a,l;if((i=r.sourceEvent)!=null&&i.internal)return;const o=pg(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 ire({zoomPanValues:e,panOnDrag:t,onPaneContextMenu:n,onTransformChange:r,onPanZoom:o}){return i=>{var a,l;e.usedRightMouseButton=!!(n&&CD(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,pg(i.transform)))}}function are({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&&CD(t,e.mouseButton??0)&&!e.usedRightMouseButton&&a.sourceEvent&&i(a.sourceEvent),e.usedRightMouseButton=!1,r(!1),o)){const u=pg(a.transform);e.prevViewport=u,clearTimeout(e.timerId),e.timerId=setTimeout(()=>{o==null||o(a.sourceEvent,u)},n?150:0)}}}function lre({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"&&(Ll(h,`${f}-flow__node`)||Ll(h,`${f}-flow__edge`)))return!0;if(!r&&!g&&!o&&!i&&!n||a||p&&!k||Ll(h,l)&&k||Ll(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 cre({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=eD().scaleExtent([t,n]).translateExtent(r),g=Fr(e).call(h);S({x:o.x,y:o.y,zoom:dc(o.zoom,t,n)},[[0,0],[p.width,p.height]],r);const y=g.on("wheel.zoom"),k=g.on("dblclick.zoom");h.wheelDelta(ED);async function v(I,z){return g?new Promise(U=>{h==null||h.interpolate((z==null?void 0:z.interpolate)==="linear"?sd:nh).transform(lb(g,z==null?void 0:z.duration,z==null?void 0:z.ease,()=>U(!0)),I)}):!1}function b({noWheelClassName:I,noPanClassName:z,onPaneContextMenu:U,userSelectionActive:D,panOnScroll:F,panOnDrag:M,panOnScrollMode:K,panOnScrollSpeed:$,preventScrolling:V,zoomOnPinch:L,zoomOnScroll:B,zoomOnDoubleClick:Y,zoomActivationKeyPressed:H,lib:Q,onTransformChange:J,connectionInProgress:Z,paneClickDistance:oe,selectionOnDrag:te}){D&&!f.isZoomingOrPanning&&j();const ue=F&&!H&&!D;h.clickDistance(te?1/0:!gs(oe)||oe<0?0:oe);const ge=ue?rre({zoomPanValues:f,noWheelClassName:I,d3Selection:g,d3Zoom:h,panOnScrollMode:K,panOnScrollSpeed:$,zoomOnPinch:L,onPanZoomStart:a,onPanZoom:i,onPanZoomEnd:l}):sre({noWheelClassName:I,preventScrolling:V,d3ZoomHandler:y});g.on("wheel.zoom",ge,{passive:!1});const Ce=ore({zoomPanValues:f,onDraggingChange:u,onPanZoomStart:a});h.on("start",Ce);const Se=ire({zoomPanValues:f,panOnDrag:M,onPaneContextMenu:!!U,onPanZoom:i,onTransformChange:J});h.on("zoom",Se);const ke=are({zoomPanValues:f,panOnDrag:M,panOnScroll:F,onPaneContextMenu:U,onPanZoomEnd:l,onDraggingChange:u});h.on("end",ke);const Be=lre({zoomActivationKeyPressed:H,panOnDrag:M,zoomOnScroll:B,panOnScroll:F,zoomOnDoubleClick:Y,zoomOnPinch:L,userSelectionActive:D,noPanClassName:z,noWheelClassName:I,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(I,z,U){const D=ab(I),F=h==null?void 0:h.constrain()(D,z,U);return F&&await v(F),F}async function N(I,z){const U=ab(I);return await v(U,z),U}function C(I){if(g){const z=ab(I),U=g.property("__zoom");(U.k!==I.zoom||U.x!==I.x||U.y!==I.y)&&(h==null||h.transform(g,z,null,{sync:!0}))}}function A(){const I=g?Z3(g.node()):{x:0,y:0,k:1};return{x:I.x,y:I.y,zoom:I.k}}async function T(I,z){return g?new Promise(U=>{h==null||h.interpolate((z==null?void 0:z.interpolate)==="linear"?sd:nh).scaleTo(lb(g,z==null?void 0:z.duration,z==null?void 0:z.ease,()=>U(!0)),I)}):!1}async function _(I,z){return g?new Promise(U=>{h==null||h.interpolate((z==null?void 0:z.interpolate)==="linear"?sd:nh).scaleBy(lb(g,z==null?void 0:z.duration,z==null?void 0:z.ease,()=>U(!0)),I)}):!1}function O(I){h==null||h.scaleExtent(I)}function P(I){h==null||h.translateExtent(I)}function W(I){const z=!gs(I)||I<0?0:I;h==null||h.clickDistance(z)}return{update:b,destroy:j,setViewport:N,setViewportConstrained:S,getViewport:A,scaleTo:T,scaleBy:_,setScaleExtent:O,setTranslateExtent:P,syncViewport:C,setClickDistance:W}}var hc;(function(e){e.Line="line",e.Handle="handle"})(hc||(hc={}));function ure({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 eE(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 pi(e,t){return Math.max(0,t-e)}function hi(e,t){return Math.max(0,e-t)}function _p(e,t,n){return Math.max(0,t-e,e-n)}function tE(e,t){return e?!t:t}function dre(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:A,height:T,aspectRatio:_}=e;let O=Math.floor(p?y-e.pointerX:0),P=Math.floor(h?k-e.pointerY:0);const W=A+(u?-O:O),I=T+(f?-P:P),z=-i[0]*A,U=-i[1]*T;let D=_p(W,v,b),F=_p(I,j,S);if(a){let $=0,V=0;u&&O<0?$=pi(N+O+z,a[0][0]):!u&&O>0&&($=hi(N+W+z,a[1][0])),f&&P<0?V=pi(C+P+U,a[0][1]):!f&&P>0&&(V=hi(C+I+U,a[1][1])),D=Math.max(D,$),F=Math.max(F,V)}if(l){let $=0,V=0;u&&O>0?$=hi(N+O,l[0][0]):!u&&O<0&&($=pi(N+W,l[1][0])),f&&P>0?V=hi(C+P,l[0][1]):!f&&P<0&&(V=pi(C+I,l[1][1])),D=Math.max(D,$),F=Math.max(F,V)}if(o){if(p){const $=_p(W/_,j,S)*_;if(D=Math.max(D,$),a){let V=0;!u&&!f||u&&!f&&g?V=hi(C+U+W/_,a[1][1])*_:V=pi(C+U+(u?O:-O)/_,a[0][1])*_,D=Math.max(D,V)}if(l){let V=0;!u&&!f||u&&!f&&g?V=pi(C+W/_,l[1][1])*_:V=hi(C+(u?O:-O)/_,l[0][1])*_,D=Math.max(D,V)}}if(h){const $=_p(I*_,v,b)/_;if(F=Math.max(F,$),a){let V=0;!u&&!f||f&&!u&&g?V=hi(N+I*_+z,a[1][0])/_:V=pi(N+(f?P:-P)*_+z,a[0][0])/_,F=Math.max(F,V)}if(l){let V=0;!u&&!f||f&&!u&&g?V=pi(N+I*_,l[1][0])/_:V=hi(N+(f?P:-P)*_,l[0][0])/_,F=Math.max(F,V)}}}P=P+(P<0?F:-F),O=O+(O<0?D:-D),o&&(g?W>I*_?P=(tE(u,f)?-O:O)/_:O=(tE(u,f)?-P:P)*_:p?(P=O/_,f=u):(O=P*_,u=f));const M=u?N+O:N,K=f?C+P:C;return{width:A+(u?-O:O),height:T+(f?-P:P),x:i[0]*O*(u?-1:1)+M,y:i[1]*P*(f?-1:1)+K}}const TD={width:0,height:0,x:0,y:0},fre={...TD,pointerX:0,pointerY:0,aspectRatio:1};function pre(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 hre({domNode:e,nodeId:t,getStoreItems:n,onChange:r,onEnd:o}){const i=Fr(e);let a={controlDirection:eE("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={...TD},S={...fre};a={boundaries:p,resizeDirection:g,keepAspectRatio:h,controlDirection:eE(f)};let N,C=null,A=[],T,_,O,P=!1;const W=O3().on("start",I=>{const{nodeLookup:z,transform:U,snapGrid:D,snapToGrid:F,nodeOrigin:M,paneDomNode:K}=n();if(N=z.get(t),!N)return;C=(K==null?void 0:K.getBoundingClientRect())??null;const{xSnapped:$,ySnapped:V}=od(I.sourceEvent,{transform:U,snapGrid:D,snapToGrid:F,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:$,pointerY:V,aspectRatio:j.width/j.height},T=void 0,_=Ea(N.extent)?N.extent:void 0,N.parentId&&(N.extent==="parent"||N.expandParent)&&(T=z.get(N.parentId)),T&&N.extent==="parent"&&(_=[[0,0],[T.measured.width,T.measured.height]]),A=[],O=void 0;for(const[L,B]of z)if(B.parentId===t&&(A.push({id:L,position:{...B.position},extent:B.extent}),B.extent==="parent"||B.expandParent)){const Y=pre(B,N,B.origin??M);O?O=[[Math.min(Y[0][0],O[0][0]),Math.min(Y[0][1],O[0][1])],[Math.max(Y[1][0],O[1][0]),Math.max(Y[1][1],O[1][1])]]:O=Y}y==null||y(I,{...j})}).on("drag",I=>{const{transform:z,snapGrid:U,snapToGrid:D,nodeOrigin:F}=n(),M=od(I.sourceEvent,{transform:z,snapGrid:U,snapToGrid:D,containerBounds:C}),K=[];if(!N)return;const{x:$,y:V,width:L,height:B}=j,Y={},H=N.origin??F,{width:Q,height:J,x:Z,y:oe}=dre(S,a.controlDirection,M,a.boundaries,a.keepAspectRatio,H,_,O),te=Q!==L,ue=J!==B,ge=Z!==$&&te,Ce=oe!==V&&ue;if(!ge&&!Ce&&!te&&!ue)return;if((ge||Ce||H[0]===1||H[1]===1)&&(Y.x=ge?Z:j.x,Y.y=Ce?oe:j.y,j.x=Y.x,j.y=Y.y,A.length>0)){const ie=Z-$,be=oe-V;for(const ye of A)ye.position={x:ye.position.x-ie+H[0]*(Q-L),y:ye.position.y-be+H[1]*(J-B)},K.push(ye)}if((te||ue)&&(Y.width=te&&(!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=H[0]*(Y.width??0);Y.x&&Y.x<ie&&(j.x=ie,S.x=S.x-(Y.x-ie));const be=H[1]*(Y.height??0);Y.y&&Y.y<be&&(j.y=be,S.y=S.y-(Y.y-be))}const Se=ure({width:j.width,prevWidth:L,height:j.height,prevHeight:B,affectsX:a.controlDirection.affectsX,affectsY:a.controlDirection.affectsY}),ke={...j,direction:Se};(b==null?void 0:b(I,ke))!==!1&&(P=!0,k==null||k(I,ke),r(Y,K))}).on("end",I=>{P&&(v==null||v(I,{...j}),o==null||o({...j}),P=!1)});i.call(W)}function u(){i.on(".drag",null)}return{update:l,destroy:u}}var cb={exports:{}},ub={},db={exports:{}},fb={};/**
653
+ * @license React
654
+ * use-sync-external-store-shim.production.js
655
+ *
656
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
657
+ *
658
+ * This source code is licensed under the MIT license found in the
659
+ * LICENSE file in the root directory of this source tree.
660
+ */var nE;function mre(){if(nE)return fb;nE=1;var e=Dd();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 fb.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:p,fb}var rE;function gre(){return rE||(rE=1,db.exports=mre()),db.exports}/**
661
+ * @license React
662
+ * use-sync-external-store-shim/with-selector.production.js
663
+ *
664
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
665
+ *
666
+ * This source code is licensed under the MIT license found in the
667
+ * LICENSE file in the root directory of this source tree.
668
+ */var sE;function xre(){if(sE)return ub;sE=1;var e=Dd(),t=gre();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 ub.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 _=v.value;if(y(_,T))return C=_}return C=T}if(_=C,r(N,T))return _;var O=g(T);return y!==void 0&&y(_,O)?(N=T,_):(N=T,C=O)}var S=!1,N,C,A=h===void 0?null:h;return[function(){return j(p())},A===null?void 0:function(){return j(A())}]},[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},ub}var oE;function yre(){return oE||(oE=1,cb.exports=xre()),cb.exports}var bre=yre();const vre=_d(bre),wre={},iE=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:()=>{(wre?"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},jre=e=>e?iE(e):iE,{useDebugValue:kre}=Ot,{useSyncExternalStoreWithSelector:Nre}=vre,Sre=e=>e;function RD(e,t=Sre,n){const r=Nre(e.subscribe,e.getState,e.getServerState||e.getInitialState,t,n);return kre(r),r}const aE=(e,t)=>{const n=jre(e),r=(o,i=t)=>RD(n,o,i);return Object.assign(r,n),r},Cre=(e,t)=>e?aE(e,t):aE;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 hg=m.createContext(null),Ere=hg.Provider,AD=Es.error001("react");function Pt(e,t){const n=m.useContext(hg);if(n===null)throw new Error(AD);return RD(n,e,t)}function an(){const e=m.useContext(hg);if(e===null)throw new Error(AD);return m.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe}),[e])}const lE={display:"none"},Tre={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},PD="react-flow__node-desc",_D="react-flow__edge-desc",Rre="react-flow__aria-live",Are=e=>e.ariaLiveMessage,Pre=e=>e.ariaLabelConfig;function _re({rfId:e}){const t=Pt(Are);return s.jsx("div",{id:`${Rre}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:Tre,children:t})}function Dre({rfId:e,disableKeyboardA11y:t}){const n=Pt(Pre);return s.jsxs(s.Fragment,{children:[s.jsx("div",{id:`${PD}-${e}`,style:lE,children:t?n["node.a11yDescription.default"]:n["node.a11yDescription.keyboardDisabled"]}),s.jsx("div",{id:`${_D}-${e}`,style:lE,children:n["edge.a11yDescription.default"]}),!t&&s.jsx(_re,{rfId:e})]})}const of=m.forwardRef(({position:e="top-left",children:t,className:n,style:r,...o},i)=>{const a=`${e}`.split("-");return s.jsx("div",{className:En(["react-flow__panel",n,...a]),style:r,ref:i,...o,children:t})});of.displayName="Panel";function $re({proOptions:e,position:t="bottom-right"}){return e!=null&&e.hideAttribution?null:s.jsx(of,{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 Ire=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 Mre(e,t){return on(e.selectedNodes.map(Dp),t.selectedNodes.map(Dp))&&on(e.selectedEdges.map(Dp),t.selectedEdges.map(Dp))}function Lre({onSelectionChange:e}){const t=an(),{selectedNodes:n,selectedEdges:r}=Pt(Ire,Mre);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 Ore=e=>!!e.onSelectionChangeHandlers;function Fre({onSelectionChange:e}){const t=Pt(Ore);return e||t?s.jsx(Lre,{onSelectionChange:e}):null}const DD=[0,0],zre={x:0,y:0,zoom:1},Bre=["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"],cE=[...Bre,"rfId"],Ure=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}),uE={translateExtent:Cd,nodeOrigin:DD,minZoom:.5,maxZoom:2,elementsSelectable:!0,noPanClassName:"nopan",rfId:"1"};function Hre(e){const{setNodes:t,setEdges:n,setMinZoom:r,setMaxZoom:o,setTranslateExtent:i,setNodeExtent:a,reset:l,setDefaultNodesAndEdges:u}=Pt(Ure,on),f=an();m.useEffect(()=>(u(e.defaultNodes,e.defaultEdges),()=>{p.current=uE,l()}),[]);const p=m.useRef(uE);return m.useEffect(()=>{for(const h of cE){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:Ene(g)}):h==="fitView"?f.setState({fitViewQueued:g}):h==="fitViewOptions"?f.setState({fitViewOptions:g}):f.setState({[h]:g})))}p.current=e},cE.map(h=>e[h])),null}function dE(){return typeof window>"u"||!window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}function Vre(e){var r;const[t,n]=m.useState(e==="system"?null:e);return m.useEffect(()=>{if(e!=="system"){n(e);return}const o=dE(),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=dE())!=null&&r.matches?"dark":"light"}const fE=typeof document<"u"?document:null;function Ad(e=null,t={target:fE,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("+",`
669
+ `).replace(`
670
+
671
+ `,`
672
+ +`).split(`
673
+ `)),p=f.reduce((h,g)=>h.concat(...g),[]);return[f,p]}return[[],[]]},[e]);return m.useEffect(()=>{const u=(t==null?void 0:t.target)??fE,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)&&pD(y))return!1;const v=hE(y.code,l);if(i.current.add(y[v]),pE(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=hE(y.code,l);pE(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 pE(e,t,n){return e.filter(r=>n||r.length===t.size).some(r=>r.every(o=>t.has(o)))}function hE(e,t){return t.includes(e)?"code":"key"}const Wre=()=>{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=H0(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 Fc(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=pc(t,n);return{x:a.x+o,y:a.y+i}}}),[])};function $D(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)Kre(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 Kre(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 ID(e,t){return $D(e,t)}function MD(e,t){return $D(e,t)}function sa(e,t){return{id:e,type:"select",selected:t}}function Ol(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 mE({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 gE(e){return{id:e.id,type:"remove"}}const qre=cD();function Gre(e,t,n={}){return Dne(e,t,{...n,onError:n.onError??qre})}const xE=e=>yne(e),Yre=e=>oD(e);function LD(e){return m.forwardRef(e)}const Xre=typeof window<"u"?m.useLayoutEffect:m.useEffect;function yE(e){const[t,n]=m.useState(BigInt(0)),[r]=m.useState(()=>Qre(()=>n(o=>o+BigInt(1))));return Xre(()=>{const o=r.get();o.length&&(e(o),r.reset())},[t]),r}function Qre(e){let t=[];return{get:()=>t,reset:()=>{t=[]},push:n=>{t.push(n),e()}}}const OD=m.createContext(null);function Jre({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=mE({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=yE(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(mE({items:y,lookup:g}))},[]),i=yE(o),a=m.useMemo(()=>({nodeQueue:r,edgeQueue:i}),[]);return s.jsx(OD.Provider,{value:a,children:e})}function Zre(){const e=m.useContext(OD);if(!e)throw new Error("useBatchContext must be used within a BatchProvider");return e}const ese=e=>!!e.panZoom;function mg(){const e=Wre(),t=an(),n=Zre(),r=Pt(ese),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=xE(h)?h:g.get(h.id),v=k.parentId?dD(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 fc(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&&xE(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&&Yre(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:A,edges:T}=await kne({nodesToRemove:h,edgesToRemove:g,nodes:y,edges:k,onBeforeDelete:C}),_=T.length>0,O=A.length>0;if(_){const P=T.map(gE);b==null||b(T),S(P)}if(O){const P=A.map(gE);v==null||v(A),j(P)}return(O||_)&&(N==null||N({nodes:A,edges:T})),{deletedNodes:A,deletedEdges:T}},getIntersectingNodes:(h,g=!0,y)=>{const k=HC(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=fc(b?j:S),C=Td(N,v);return g&&C>0||C>=N.width*N.height||C>=v.width*v.height}):[]},isNodeIntersecting:(h,g,y=!0)=>{const v=HC(h)?h:u(h);if(!v)return!1;const b=Td(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 bne(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??Cne();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 bE=e=>e.selected,tse=typeof window<"u"?window:void 0;function nse({deleteKeyCode:e,multiSelectionKeyCode:t}){const n=an(),{deleteElements:r}=mg(),o=Ad(e,{actInsideInputWithModifier:!1}),i=Ad(t,{target:tse});m.useEffect(()=>{if(o){const{edges:a,nodes:l}=n.getState();r({nodes:l.filter(bE),edges:a.filter(bE)}),n.setState({nodesSelectionActive:!1})}},[o]),m.useEffect(()=>{n.setState({multiSelectionActive:i})},[i])}function rse(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=V0(e.current);(r.height===0||r.width===0)&&((l=(a=t.getState()).onError)==null||l.call(a,"004",Es.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 gg={position:"absolute",width:"100%",height:"100%",top:0,left:0},sse=e=>({userSelectionActive:e.userSelectionActive,lib:e.lib,connectionInProgress:e.connection.inProgress});function ose({onPaneContextMenu:e,zoomOnScroll:t=!0,zoomOnPinch:n=!0,panOnScroll:r=!1,panOnScrollSpeed:o=.5,panOnScrollMode:i=va.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 A=an(),T=m.useRef(null),{userSelectionActive:_,lib:O,connectionInProgress:P}=Pt(sse,on),W=Ad(g),I=m.useRef();rse(T);const z=m.useCallback(U=>{j==null||j({x:U[0],y:U[1],zoom:U[2]}),S||A.setState({transform:U})},[j,S]);return m.useEffect(()=>{if(T.current){I.current=cre({domNode:T.current,minZoom:p,maxZoom:h,translateExtent:f,viewport:u,onDraggingChange:M=>A.setState(K=>K.paneDragging===M?K:{paneDragging:M}),onPanZoomStart:(M,K)=>{const{onViewportChangeStart:$,onMoveStart:V}=A.getState();V==null||V(M,K),$==null||$(K)},onPanZoom:(M,K)=>{const{onViewportChange:$,onMove:V}=A.getState();V==null||V(M,K),$==null||$(K)},onPanZoomEnd:(M,K)=>{const{onViewportChangeEnd:$,onMoveEnd:V}=A.getState();V==null||V(M,K),$==null||$(K)}});const{x:U,y:D,zoom:F}=I.current.getViewport();return A.setState({panZoom:I.current,transform:[U,D,F],domNode:T.current.closest(".react-flow")}),()=>{var M;(M=I.current)==null||M.destroy()}}},[]),m.useEffect(()=>{var U;(U=I.current)==null||U.update({onPaneContextMenu:e,zoomOnScroll:t,zoomOnPinch:n,panOnScroll:r,panOnScrollSpeed:o,panOnScrollMode:i,zoomOnDoubleClick:a,panOnDrag:l,zoomActivationKeyPressed:W,preventScrolling:y,noPanClassName:b,userSelectionActive:_,noWheelClassName:v,lib:O,onTransformChange:z,connectionInProgress:P,selectionOnDrag:C,paneClickDistance:N})},[e,t,n,r,o,i,a,l,W,y,b,_,v,O,z,P,C,N]),s.jsx("div",{className:"react-flow__renderer",ref:T,style:gg,children:k})}const ise=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function ase(){const{userSelectionActive:e,userSelectionRect:t}=Pt(ise,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 pb=(e,t)=>n=>{n.target===t.current&&(e==null||e(n))},lse=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,connectionInProgress:e.connection.inProgress,dragging:e.paneDragging,panBy:e.panBy,autoPanSpeed:e.autoPanSpeed});function cse({isSelecting:e,selectionKeyPressed:t,selectionMode:n=Ed.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:A,panBy:T,autoPanSpeed:_}=Pt(lse,on),O=N&&(e||S),P=m.useRef(null),W=m.useRef(),I=m.useRef(new Set),z=m.useRef(new Set),U=m.useRef(!1),D=m.useRef({x:0,y:0}),F=m.useRef(!1),M=te=>{if(U.current||A){U.current=!1;return}f==null||f(te),j.getState().resetSelectedElements(),j.setState({nodesSelectionActive:!1})},K=te=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){te.preventDefault();return}p==null||p(te)},$=h?te=>h(te):void 0,V=te=>{U.current&&(te.stopPropagation(),U.current=!1)},L=te=>{var ye,Re;const{domNode:ue,transform:ge}=j.getState();if(W.current=ue==null?void 0:ue.getBoundingClientRect(),!W.current)return;const Ce=te.target===P.current;if(!Ce&&!!te.target.closest(".nokey")||!e||!(a&&Ce||t)||te.button!==0||!te.isPrimary)return;(Re=(ye=te.target)==null?void 0:ye.setPointerCapture)==null||Re.call(ye,te.pointerId),U.current=!1;const{x:Be,y:ie}=xs(te.nativeEvent,W.current),be=Fc({x:Be,y:ie},ge);j.setState({userSelectionRect:{width:0,height:0,startX:be.x,startY:be.y,x:Be,y:ie}}),Ce||(te.stopPropagation(),te.preventDefault())};function B(te,ue){const{userSelectionRect:ge}=j.getState();if(!ge)return;const{transform:Ce,nodeLookup:Se,edgeLookup:ke,connectionLookup:Be,triggerNodeChanges:ie,triggerEdgeChanges:be,defaultEdgeOptions:ye}=j.getState(),Re={x:ge.startX,y:ge.startY},{x:Ue,y:rt}=pc(Re,Ce),Oe={startX:Re.x,startY:Re.y,x:te<Ue?te:Ue,y:ue<rt?ue:rt,width:Math.abs(te-Ue),height:Math.abs(ue-rt)},ot=I.current,St=z.current;I.current=new Set(B0(Se,Oe,Ce,n===Ed.Partial,!0).map(it=>it.id)),z.current=new Set;const ht=(ye==null?void 0:ye.selectable)??!0;for(const it of I.current){const ce=Be.get(it);if(ce)for(const{edgeId:me}of ce.values()){const Ie=ke.get(me);Ie&&(Ie.selectable??ht)&&z.current.add(me)}}if(!VC(ot,I.current)){const it=Ol(Se,I.current,!0);ie(it)}if(!VC(St,z.current)){const it=Ol(ke,z.current);be(it)}j.setState({userSelectionRect:Oe,userSelectionActive:!0,nodesSelectionActive:!1})}function Y(){if(!o||!W.current)return;const[te,ue]=U0(D.current,W.current,_);T({x:te,y:ue}).then(ge=>{if(!U.current||!ge){b.current=requestAnimationFrame(Y);return}const{x:Ce,y:Se}=D.current;B(Ce,Se),b.current=requestAnimationFrame(Y)})}const H=()=>{cancelAnimationFrame(b.current),b.current=0,F.current=!1};m.useEffect(()=>()=>H(),[]);const Q=te=>{const{userSelectionRect:ue,transform:ge,resetSelectedElements:Ce}=j.getState();if(!W.current||!ue)return;const{x:Se,y:ke}=xs(te.nativeEvent,W.current);D.current={x:Se,y:ke};const Be=pc({x:ue.startX,y:ue.startY},ge);if(!U.current){const ie=t?0:i;if(Math.hypot(Se-Be.x,ke-Be.y)<=ie)return;Ce(),l==null||l(te)}U.current=!0,F.current||(Y(),F.current=!0),B(Se,ke)},J=te=>{var ue,ge;te.button===0&&((ge=(ue=te.target)==null?void 0:ue.releasePointerCapture)==null||ge.call(ue,te.pointerId),!S&&te.target===P.current&&j.getState().userSelectionRect&&(M==null||M(te)),j.setState({userSelectionActive:!1,userSelectionRect:null}),U.current&&(u==null||u(te),j.setState({nodesSelectionActive:I.current.size>0})),H())},Z=te=>{var ue,ge;(ge=(ue=te.target)==null?void 0:ue.releasePointerCapture)==null||ge.call(ue,te.pointerId),H()},oe=r===!0||Array.isArray(r)&&r.includes(0);return s.jsxs("div",{className:En(["react-flow__pane",{draggable:oe,dragging:C,selection:e}]),onClick:O?void 0:pb(M,P),onContextMenu:pb(K,P),onWheel:pb($,P),onPointerEnter:O?void 0:g,onPointerMove:O?Q:y,onPointerUp:O?J:void 0,onPointerCancel:O?Z:void 0,onPointerDownCapture:O?L:void 0,onClickCapture:O?V:void 0,onPointerLeave:k,ref:P,style:gg,children:[v,s.jsx(ase,{})]})}function Iv({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",Es.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 FD({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=Yne({getStoreItems:()=>l.getState(),onNodeMouseDown:h=>{Iv({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 use=e=>t=>t.selected&&(t.draggable||e&&typeof t.draggable>"u");function zD(){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=use(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=sf(S,i));const{position:N,positionAbsolute:C}=iD({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 Q0=m.createContext(null),dse=Q0.Provider;Q0.Consumer;const BD=()=>m.useContext(Q0),fse=e=>({connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName,rfId:e.rfId}),pse=(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===uc.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 hse({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 F,M;const k=a||null,v=e==="target",b=an(),j=BD(),{connectOnClick:S,noPanClassName:N,rfId:C}=Pt(fse,on),{connectingFrom:A,connectingTo:T,clickConnecting:_,isPossibleEndHandle:O,connectionInProcess:P,clickConnectionInProcess:W,valid:I}=Pt(pse(j,k,e),on);j||(M=(F=b.getState()).onError)==null||M.call(F,"010",Es.error010());const z=K=>{const{defaultEdgeOptions:$,onConnect:V,hasDefaultEdges:L}=b.getState(),B={...$,...K};if(L){const{edges:Y,setEdges:H,onError:Q}=b.getState();H(Gre(B,Y,{onError:Q}))}V==null||V(B),l==null||l(B)},U=K=>{if(!j)return;const $=hD(K.nativeEvent);if(o&&($&&K.button===0||!$)){const V=b.getState();$v.onPointerDown(K.nativeEvent,{handleDomNode:K.currentTarget,autoPanOnConnect:V.autoPanOnConnect,connectionMode:V.connectionMode,connectionRadius:V.connectionRadius,domNode:V.domNode,nodeLookup:V.nodeLookup,lib:V.lib,isTarget:v,handleId:k,nodeId:j,flowId:V.rfId,panBy:V.panBy,cancelConnection:V.cancelConnection,onConnectStart:V.onConnectStart,onConnectEnd:(...L)=>{var B,Y;return(Y=(B=b.getState()).onConnectEnd)==null?void 0:Y.call(B,...L)},updateConnection:V.updateConnection,onConnect:z,isValidConnection:n||((...L)=>{var B,Y;return((Y=(B=b.getState()).isValidConnection)==null?void 0:Y.call(B,...L))??!0}),getTransform:()=>b.getState().transform,getFromHandle:()=>b.getState().connection.fromHandle,autoPanSpeed:V.autoPanSpeed,dragThreshold:V.connectionDragThreshold})}$?p==null||p(K):h==null||h(K)},D=K=>{const{onClickConnectStart:$,onClickConnectEnd:V,connectionClickStartHandle:L,connectionMode:B,isValidConnection:Y,lib:H,rfId:Q,nodeLookup:J,connection:Z}=b.getState();if(!j||!L&&!o)return;if(!L){$==null||$(K.nativeEvent,{nodeId:j,handleId:k,handleType:e}),b.setState({connectionClickStartHandle:{nodeId:j,type:e,id:k}});return}const oe=fD(K.target),te=n||Y,{connection:ue,isValid:ge}=$v.isValid(K.nativeEvent,{handle:{nodeId:j,id:k,type:e},connectionMode:B,fromNodeId:L.nodeId,fromHandleId:L.id||null,fromType:L.type,isValidConnection:te,flowId:Q,doc:oe,lib:H,nodeLookup:J});ge&&ue&&z(ue);const Ce=structuredClone(Z);delete Ce.inProgress,Ce.toPosition=Ce.toHandle?Ce.toHandle.position:null,V==null||V(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:En(["react-flow__handle",`react-flow__handle-${t}`,"nodrag",N,f,{source:!v,target:v,connectable:r,connectablestart:o,connectableend:i,clickconnecting:_,connectingfrom:A,connectingto:T,valid:I,connectionindicator:r&&(!P||O)&&(P||W?i:o)}]),onMouseDown:U,onTouchStart:U,onClick:S?D:void 0,ref:y,...g,children:u})}const mc=m.memo(LD(hse));function mse({data:e,isConnectable:t,sourcePosition:n=ct.Bottom}){return s.jsxs(s.Fragment,{children:[e==null?void 0:e.label,s.jsx(mc,{type:"source",position:n,isConnectable:t})]})}function gse({data:e,isConnectable:t,targetPosition:n=ct.Top,sourcePosition:r=ct.Bottom}){return s.jsxs(s.Fragment,{children:[s.jsx(mc,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label,s.jsx(mc,{type:"source",position:r,isConnectable:t})]})}function xse(){return null}function yse({data:e,isConnectable:t,targetPosition:n=ct.Top}){return s.jsxs(s.Fragment,{children:[s.jsx(mc,{type:"target",position:n,isConnectable:t}),e==null?void 0:e.label]})}const Xh={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}},vE={input:mse,default:gse,output:yse,group:xse};function bse(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 vse=e=>{const{width:t,height:n,x:r,y:o}=rf(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 wse({onSelectionContextMenu:e,noPanClassName:t,disableKeyboardA11y:n}){const r=an(),{width:o,height:i,transformString:a,userSelectionActive:l}=Pt(vse,on),u=zD(),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(FD({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(Xh,y.key)&&(y.preventDefault(),u({direction:Xh[y.key],factor:y.shiftKey?4:1}))};return s.jsx("div",{className:En(["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 wE=typeof window<"u"?window:void 0,jse=e=>({nodesSelectionActive:e.nodesSelectionActive,userSelectionActive:e.userSelectionActive});function UD({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:A,panOnScrollMode:T,zoomOnDoubleClick:_,panOnDrag:O,autoPanOnSelection:P,defaultViewport:W,translateExtent:I,minZoom:z,maxZoom:U,preventScrolling:D,onSelectionContextMenu:F,noWheelClassName:M,noPanClassName:K,disableKeyboardA11y:$,onViewportChange:V,isControlledViewport:L}){const{nodesSelectionActive:B,userSelectionActive:Y}=Pt(jse,on),H=Ad(f,{target:wE}),Q=Ad(v,{target:wE}),J=Q||O,Z=Q||C,oe=p&&J!==!0,te=H||Y||oe;return nse({deleteKeyCode:u,multiSelectionKeyCode:k}),s.jsx(ose,{onPaneContextMenu:i,elementsSelectable:j,zoomOnScroll:S,zoomOnPinch:N,panOnScroll:Z,panOnScrollSpeed:A,panOnScrollMode:T,zoomOnDoubleClick:_,panOnDrag:!H&&J,defaultViewport:W,translateExtent:I,minZoom:z,maxZoom:U,zoomActivationKeyCode:b,preventScrolling:D,noWheelClassName:M,noPanClassName:K,onViewportChange:V,isControlledViewport:L,paneClickDistance:l,selectionOnDrag:oe,children:s.jsxs(cse,{onSelectionStart:g,onSelectionEnd:y,onPaneClick:t,onPaneMouseEnter:n,onPaneMouseMove:r,onPaneMouseLeave:o,onPaneContextMenu:i,onPaneScroll:a,panOnDrag:J,autoPanOnSelection:P,isSelecting:!!te,selectionMode:h,selectionKeyPressed:H,paneClickDistance:l,selectionOnDrag:oe,children:[e,B&&s.jsx(wse,{onSelectionContextMenu:F,noPanClassName:K,disableKeyboardA11y:$})]})})}UD.displayName="FlowRenderer";const kse=m.memo(UD),Nse=e=>t=>e?B0(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 Sse(e){return Pt(m.useCallback(Nse(e),[e]),on)}const Cse=e=>e.updateNodeInternals;function Ese(){const e=Pt(Cse),[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 Tse({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 Rse({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:A}=Pt(te=>{const ue=te.nodeLookup.get(e),ge=te.parentLookup.has(e);return{node:ue,internals:ue.internals,isParent:ge}},on);let T=N.type||"default",_=(b==null?void 0:b[T])||vE[T];_===void 0&&(S==null||S("003",Es.error003(T)),T="default",_=(b==null?void 0:b.default)||vE.default);const O=!!(N.draggable||l&&typeof N.draggable>"u"),P=!!(N.selectable||u&&typeof N.selectable>"u"),W=!!(N.connectable||f&&typeof N.connectable>"u"),I=!!(N.focusable||p&&typeof N.focusable>"u"),z=an(),U=uD(N),D=Tse({node:N,nodeType:T,hasDimensions:U,resizeObserver:h}),F=FD({nodeRef:D,disabled:N.hidden||!O,noDragClassName:g,handleSelector:N.dragHandle,nodeId:e,isSelectable:P,nodeClickDistance:j}),M=zD();if(N.hidden)return null;const K=Lo(N),$=bse(N),V=P||O||t||n||r||o,L=n?te=>n(te,{...C.userNode}):void 0,B=r?te=>r(te,{...C.userNode}):void 0,Y=o?te=>o(te,{...C.userNode}):void 0,H=i?te=>i(te,{...C.userNode}):void 0,Q=a?te=>a(te,{...C.userNode}):void 0,J=te=>{const{selectNodesOnDrag:ue,nodeDragThreshold:ge}=z.getState();P&&(!ue||!O||ge>0)&&Iv({id:e,store:z,nodeRef:D}),t&&t(te,{...C.userNode})},Z=te=>{if(!(pD(te.nativeEvent)||k)){if(tD.includes(te.key)&&P){const ue=te.key==="Escape";Iv({id:e,store:z,unselect:ue,nodeRef:D})}else if(O&&N.selected&&Object.prototype.hasOwnProperty.call(Xh,te.key)){te.preventDefault();const{ariaLabelConfig:ue}=z.getState();z.setState({ariaLiveMessage:ue["node.a11yDescription.ariaLiveMessage"]({direction:te.key.replace("Arrow","").toLowerCase(),x:~~C.positionAbsolute.x,y:~~C.positionAbsolute.y})}),M({direction:Xh[te.key],factor:te.shiftKey?4:1})}}},oe=()=>{var Be;if(k||!((Be=D.current)!=null&&Be.matches(":focus-visible")))return;const{transform:te,width:ue,height:ge,autoPanOnNodeFocus:Ce,setCenter:Se}=z.getState();if(!Ce)return;B0(new Map([[e,N]]),{x:0,y:0,width:ue,height:ge},te,!0).length>0||Se(N.position.x+K.width/2,N.position.y+K.height/2,{zoom:te[2]})};return s.jsx("div",{className:En(["react-flow__node",`react-flow__node-${T}`,{[y]:O},N.className,{selected:N.selected,selectable:P,parent:A,draggable:O,dragging:F}]),ref:D,style:{zIndex:C.z,transform:`translate(${C.positionAbsolute.x}px,${C.positionAbsolute.y}px)`,pointerEvents:V?"all":"none",visibility:U?"visible":"hidden",...N.style,...$},"data-id":e,"data-testid":`rf__node-${e}`,onMouseEnter:L,onMouseMove:B,onMouseLeave:Y,onContextMenu:H,onClick:J,onDoubleClick:Q,onKeyDown:I?Z:void 0,tabIndex:I?0:void 0,onFocus:I?oe:void 0,role:N.ariaRole??(I?"group":void 0),"aria-roledescription":"node","aria-describedby":k?void 0:`${PD}-${v}`,"aria-label":N.ariaLabel,...N.domAttributes,children:s.jsx(dse,{value:e,children:s.jsx(_,{id:e,data:N.data,type:T,positionAbsoluteX:C.positionAbsolute.x,positionAbsoluteY:C.positionAbsolute.y,selected:N.selected??!1,selectable:P,draggable:O,deletable:N.deletable??!0,isConnectable:W,sourcePosition:N.sourcePosition,targetPosition:N.targetPosition,dragging:F,dragHandle:N.dragHandle,zIndex:C.z,parentId:N.parentId,...K})})})}var Ase=m.memo(Rse);const Pse=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,onError:e.onError});function HD(e){const{nodesDraggable:t,nodesConnectable:n,nodesFocusable:r,elementsSelectable:o,onError:i}=Pt(Pse,on),a=Sse(e.onlyRenderVisibleElements),l=Ese();return s.jsx("div",{className:"react-flow__nodes",style:gg,children:a.map(u=>s.jsx(Ase,{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))})}HD.displayName="NodeRenderer";const _se=m.memo(HD);function Dse(e){return Pt(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&&Ane({sourceNode:i,targetNode:a,width:n.width,height:n.height,transform:n.transform})&&r.push(o.id)}return r},[e]),on)}const $se=({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"})},Ise=({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"})},jE={[Gh.Arrow]:$se,[Gh.ArrowClosed]:Ise};function Mse(e){const t=an();return m.useMemo(()=>{var o,i;return Object.prototype.hasOwnProperty.call(jE,e)?jE[e]:((i=(o=t.getState()).onError)==null||i.call(o,"009",Es.error009(e)),null)},[e])}const Lse=({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=Mse(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},VD=({defaultColor:e,rfId:t})=>{const n=Pt(i=>i.edges),r=Pt(i=>i.defaultEdgeOptions),o=m.useMemo(()=>One(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(Lse,{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};VD.displayName="MarkerDefinitions";var Ose=m.memo(VD);function WD({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=En(["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}WD.displayName="EdgeText";const Fse=m.memo(WD);function af({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:En(["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(Fse,{x:t,y:n,label:r,labelStyle:o,labelShowBg:i,labelBgStyle:a,labelBgPadding:l,labelBgBorderRadius:u}):null]})}function kE({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 KD({sourceX:e,sourceY:t,sourcePosition:n=ct.Bottom,targetX:r,targetY:o,targetPosition:i=ct.Top}){const[a,l]=kE({pos:n,x1:e,y1:t,x2:r,y2:o}),[u,f]=kE({pos:i,x1:r,y1:o,x2:e,y2:t}),[p,h,g,y]=mD({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 qD(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]=KD({sourceX:n,sourceY:r,sourcePosition:a,targetX:o,targetY:i,targetPosition:l}),A=e.isInternal?void 0:t;return s.jsx(af,{id:A,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 zse=qD({isInternal:!1}),GD=qD({isInternal:!0});zse.displayName="SimpleBezierEdge";GD.displayName="SimpleBezierEdgeInternal";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,sourcePosition:y=ct.Bottom,targetPosition:k=ct.Top,markerEnd:v,markerStart:b,pathOptions:j,interactionWidth:S})=>{const[N,C,A]=Pv({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(af,{id:T,path:N,labelX:C,labelY:A,label:a,labelStyle:l,labelShowBg:u,labelBgStyle:f,labelBgPadding:p,labelBgBorderRadius:h,style:g,markerEnd:v,markerStart:b,interactionWidth:S})})}const XD=YD({isInternal:!1}),QD=YD({isInternal:!0});XD.displayName="SmoothStepEdge";QD.displayName="SmoothStepEdgeInternal";function JD(e){return m.memo(({id:t,...n})=>{var o;const r=e.isInternal?void 0:t;return s.jsx(XD,{...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 Bse=JD({isInternal:!1}),ZD=JD({isInternal:!0});Bse.displayName="StepEdge";ZD.displayName="StepEdgeInternal";function e$(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]=xD({sourceX:n,sourceY:r,targetX:o,targetY:i}),N=e.isInternal?void 0:t;return s.jsx(af,{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 Use=e$({isInternal:!1}),t$=e$({isInternal:!0});Use.displayName="StraightEdge";t$.displayName="StraightEdgeInternal";function n$(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,A]=W0({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(af,{id:T,path:N,labelX:C,labelY:A,label:u,labelStyle:f,labelShowBg:p,labelBgStyle:h,labelBgPadding:g,labelBgBorderRadius:y,style:k,markerEnd:v,markerStart:b,interactionWidth:S})})}const Hse=n$({isInternal:!1}),r$=n$({isInternal:!0});Hse.displayName="BezierEdge";r$.displayName="BezierEdgeInternal";const NE={default:r$,straight:t$,step:ZD,smoothstep:QD,simplebezier:GD},SE={sourceX:null,sourceY:null,targetX:null,targetY:null,sourcePosition:null,targetPosition:null},Vse=(e,t,n)=>n===ct.Left?e-t:n===ct.Right?e+t:e,Wse=(e,t,n)=>n===ct.Top?e-t:n===ct.Bottom?e+t:e,CE="react-flow__edgeupdater";function EE({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:En([CE,`${CE}-${l}`]),cx:Vse(t,r,e),cy:Wse(n,r,e),r,stroke:"transparent",fill:"transparent"})}function Kse({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,A)=>{if(C.button!==0)return;const{autoPanOnConnect:T,domNode:_,connectionMode:O,connectionRadius:P,lib:W,onConnectStart:I,cancelConnection:z,nodeLookup:U,rfId:D,panBy:F,updateConnection:M}=k.getState(),K=A.type==="target",$=(B,Y)=>{g(!1),h==null||h(B,n,A.type,Y)},V=B=>f==null?void 0:f(n,B),L=(B,Y)=>{g(!0),p==null||p(C,n,A.type),I==null||I(B,Y)};$v.onPointerDown(C.nativeEvent,{autoPanOnConnect:T,connectionMode:O,connectionRadius:P,domNode:_,handleId:A.id,nodeId:A.nodeId,nodeLookup:U,isTarget:K,edgeUpdaterType:A.type,lib:W,flowId:D,cancelConnection:z,panBy:F,isValidConnection:(...B)=>{var Y,H;return((H=(Y=k.getState()).isValidConnection)==null?void 0:H.call(Y,...B))??!0},onConnect:V,onConnectStart:L,onConnectEnd:(...B)=>{var Y,H;return(H=(Y=k.getState()).onConnectEnd)==null?void 0:H.call(Y,...B)},onReconnectEnd:$,updateConnection:M,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(EE,{position:l,centerX:r,centerY:o,radius:t,onMouseDown:b,onMouseEnter:S,onMouseOut:N,type:"source"}),(e===!0||e==="target")&&s.jsx(EE,{position:u,centerX:i,centerY:a,radius:t,onMouseDown:j,onMouseEnter:S,onMouseOut:N,type:"target"})]})}function qse({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=Pt(Se=>Se.edgeLookup.get(e));const C=Pt(Se=>Se.defaultEdgeOptions);N=C?{...C,...N}:N;let A=N.type||"default",T=(v==null?void 0:v[A])||NE[A];T===void 0&&(j==null||j("011",Es.error011(A)),A="default",T=(v==null?void 0:v.default)||NE.default);const _=!!(N.focusable||t&&typeof N.focusable>"u"),O=typeof h<"u"&&(N.reconnectable||n&&typeof N.reconnectable>"u"),P=!!(N.selectable||r&&typeof N.selectable>"u"),W=m.useRef(null),[I,z]=m.useState(!1),[U,D]=m.useState(!1),F=an(),{zIndex:M,sourceX:K,sourceY:$,targetX:V,targetY:L,sourcePosition:B,targetPosition:Y}=Pt(m.useCallback(Se=>{const ke=Se.nodeLookup.get(N.source),Be=Se.nodeLookup.get(N.target);if(!ke||!Be)return{zIndex:N.zIndex,...SE};const ie=Lne({id:e,sourceNode:ke,targetNode:Be,sourceHandle:N.sourceHandle||null,targetHandle:N.targetHandle||null,connectionMode:Se.connectionMode,onError:j});return{zIndex:Rne({selected:N.selected,zIndex:N.zIndex,sourceNode:ke,targetNode:Be,elevateOnSelect:Se.elevateEdgesOnSelect,zIndexMode:Se.zIndexMode}),...ie||SE}},[N.source,N.target,N.sourceHandle,N.targetHandle,N.selected,N.zIndex]),on),H=m.useMemo(()=>N.markerStart?`url('#${_v(N.markerStart,k)}')`:void 0,[N.markerStart,k]),Q=m.useMemo(()=>N.markerEnd?`url('#${_v(N.markerEnd,k)}')`:void 0,[N.markerEnd,k]);if(N.hidden||K===null||$===null||V===null||L===null)return null;const J=Se=>{var be;const{addSelectedEdges:ke,unselectNodesAndEdges:Be,multiSelectionActive:ie}=F.getState();P&&(F.setState({nodesSelectionActive:!1}),N.selected&&ie?(Be({nodes:[],edges:[N]}),(be=W.current)==null||be.blur()):ke([e])),o&&o(Se,N)},Z=i?Se=>{i(Se,{...N})}:void 0,oe=a?Se=>{a(Se,{...N})}:void 0,te=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&&tD.includes(Se.key)&&P){const{unselectNodesAndEdges:Be,addSelectedEdges:ie}=F.getState();Se.key==="Escape"?((ke=W.current)==null||ke.blur(),Be({edges:[N]})):ie([e])}};return s.jsx("svg",{style:{zIndex:M},children:s.jsxs("g",{className:En(["react-flow__edge",`react-flow__edge-${A}`,N.className,b,{selected:N.selected,animated:N.animated,inactive:!P&&!o,updating:I,selectable:P}]),onClick:J,onDoubleClick:Z,onContextMenu:oe,onMouseEnter:te,onMouseMove:ue,onMouseLeave:ge,onKeyDown:_?Ce:void 0,tabIndex:_?0:void 0,role:N.ariaRole??(_?"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":_?`${_D}-${k}`:void 0,ref:W,...N.domAttributes,children:[!U&&s.jsx(T,{id:e,source:N.source,target:N.target,type:N.type,selected:N.selected,animated:N.animated,selectable:P,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:$,targetX:V,targetY:L,sourcePosition:B,targetPosition:Y,data:N.data,style:N.style,sourceHandleId:N.sourceHandle,targetHandleId:N.targetHandle,markerStart:H,markerEnd:Q,pathOptions:"pathOptions"in N?N.pathOptions:void 0,interactionWidth:N.interactionWidth}),O&&s.jsx(Kse,{edge:N,isReconnectable:O,reconnectRadius:p,onReconnect:h,onReconnectStart:g,onReconnectEnd:y,sourceX:K,sourceY:$,targetX:V,targetY:L,sourcePosition:B,targetPosition:Y,setUpdateHover:z,setReconnecting:D})]})})}var Gse=m.memo(qse);const Yse=e=>({edgesFocusable:e.edgesFocusable,edgesReconnectable:e.edgesReconnectable,elementsSelectable:e.elementsSelectable,connectionMode:e.connectionMode,onError:e.onError});function s$({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}=Pt(Yse,on),C=Dse(t);return s.jsxs("div",{className:"react-flow__edges",children:[s.jsx(Ose,{defaultColor:e,rfId:n}),C.map(A=>s.jsx(Gse,{id:A,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},A))]})}s$.displayName="EdgeRenderer";const Xse=m.memo(s$),Qse=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function Jse({children:e}){const t=Pt(Qse);return s.jsx("div",{className:"react-flow__viewport xyflow__viewport react-flow__container",style:{transform:t},children:e})}function Zse(e){const t=mg(),n=m.useRef(!1);m.useEffect(()=>{!n.current&&t.viewportInitialized&&e&&(setTimeout(()=>e(t),1),n.current=!0)},[e,t.viewportInitialized])}const eoe=e=>{var t;return(t=e.panZoom)==null?void 0:t.syncViewport};function toe(e){const t=Pt(eoe),n=an();return m.useEffect(()=>{e&&(t==null||t(e),n.setState({transform:[e.x,e.y,e.zoom]}))},[e,t]),null}function noe(e){return e.connection.inProgress?{...e.connection,to:Fc(e.connection.to,e.transform)}:{...e.connection}}function roe(e){return noe}function soe(e){const t=roe();return Pt(t,on)}const ooe=e=>({nodesConnectable:e.nodesConnectable,isValid:e.connection.isValid,inProgress:e.connection.inProgress,width:e.width,height:e.height});function ioe({containerStyle:e,style:t,type:n,component:r}){const{nodesConnectable:o,width:i,height:a,isValid:l,inProgress:u}=Pt(ooe,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:En(["react-flow__connection",sD(l)]),children:s.jsx(o$,{style:t,type:n,CustomComponent:r,isValid:l})})})}const o$=({style:e,type:t=xi.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}=soe();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:sD(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 xi.Bezier:[k]=W0(v);break;case xi.SimpleBezier:[k]=KD(v);break;case xi.Step:[k]=Pv({...v,borderRadius:0});break;case xi.SmoothStep:[k]=Pv(v);break;default:[k]=xD(v)}return s.jsx("path",{d:k,fill:"none",className:"react-flow__connection-path",style:e})};o$.displayName="ConnectionLine";const aoe={};function TE(e=aoe){m.useRef(e),an(),m.useEffect(()=>{},[e])}function loe(){an(),m.useRef(!1),m.useEffect(()=>{},[])}function i$({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:A,panActivationKeyCode:T,zoomActivationKeyCode:_,deleteKeyCode:O,onlyRenderVisibleElements:P,elementsSelectable:W,defaultViewport:I,translateExtent:z,minZoom:U,maxZoom:D,preventScrolling:F,defaultMarkerColor:M,zoomOnScroll:K,zoomOnPinch:$,panOnScroll:V,panOnScrollSpeed:L,panOnScrollMode:B,zoomOnDoubleClick:Y,panOnDrag:H,autoPanOnSelection:Q,onPaneClick:J,onPaneMouseEnter:Z,onPaneMouseMove:oe,onPaneMouseLeave:te,onPaneScroll:ue,onPaneContextMenu:ge,paneClickDistance:Ce,nodeClickDistance:Se,onEdgeContextMenu:ke,onEdgeMouseEnter:Be,onEdgeMouseMove:ie,onEdgeMouseLeave:be,reconnectRadius:ye,onReconnect:Re,onReconnectStart:Ue,onReconnectEnd:rt,noDragClassName:Oe,noWheelClassName:ot,noPanClassName:St,disableKeyboardA11y:ht,nodeExtent:it,rfId:ce,viewport:me,onViewportChange:Ie}){return TE(e),TE(t),loe(),Zse(n),toe(me),s.jsx(kse,{onPaneClick:J,onPaneMouseEnter:Z,onPaneMouseMove:oe,onPaneMouseLeave:te,onPaneContextMenu:ge,onPaneScroll:ue,paneClickDistance:Ce,deleteKeyCode:O,selectionKeyCode:S,selectionOnDrag:N,selectionMode:C,onSelectionStart:g,onSelectionEnd:y,multiSelectionKeyCode:A,panActivationKeyCode:T,zoomActivationKeyCode:_,elementsSelectable:W,zoomOnScroll:K,zoomOnPinch:$,zoomOnDoubleClick:Y,panOnScroll:V,panOnScrollSpeed:L,panOnScrollMode:B,panOnDrag:H,autoPanOnSelection:Q,defaultViewport:I,translateExtent:z,minZoom:U,maxZoom:D,onSelectionContextMenu:h,preventScrolling:F,noDragClassName:Oe,noWheelClassName:ot,noPanClassName:St,disableKeyboardA11y:ht,onViewportChange:Ie,isControlledViewport:!!me,children:s.jsxs(Jse,{children:[s.jsx(Xse,{edgeTypes:t,onEdgeClick:o,onEdgeDoubleClick:a,onReconnect:Re,onReconnectStart:Ue,onReconnectEnd:rt,onlyRenderVisibleElements:P,onEdgeContextMenu:ke,onEdgeMouseEnter:Be,onEdgeMouseMove:ie,onEdgeMouseLeave:be,reconnectRadius:ye,defaultMarkerColor:M,noPanClassName:St,disableKeyboardA11y:ht,rfId:ce}),s.jsx(ioe,{style:v,type:k,component:b,containerStyle:j}),s.jsx("div",{className:"react-flow__edgelabel-renderer"}),s.jsx(_se,{nodeTypes:e,onNodeClick:r,onNodeDoubleClick:i,onNodeMouseEnter:l,onNodeMouseMove:u,onNodeMouseLeave:f,onNodeContextMenu:p,nodeClickDistance:Se,onlyRenderVisibleElements:P,noPanClassName:St,noDragClassName:Oe,disableKeyboardA11y:ht,nodeExtent:it,rfId:ce}),s.jsx("div",{className:"react-flow__viewport-portal"})]})})}i$.displayName="GraphView";const coe=m.memo(i$),uoe=cD(),RE=({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??Cd;vD(v,b,j);const{nodesInitialized:A}=Dv(S,y,k,{nodeOrigin:N,nodeExtent:C,zIndexMode:g});let T=[0,0,1];if(a&&o&&i){const _=rf(y,{filter:I=>!!((I.width||I.initialWidth)&&(I.height||I.initialHeight))}),{x:O,y:P,zoom:W}=H0(_,o,i,u,f,(l==null?void 0:l.padding)??.1);T=[O,P,W]}return{rfId:"1",width:o??0,height:i??0,transform:T,nodes:S,nodesInitialized:A,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:Cd,nodeExtent:C,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionMode:uc.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:{...rD},connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,autoPanOnNodeFocus:!0,autoPanSpeed:15,connectionRadius:20,onError:uoe,isValidConnection:void 0,onSelectionChangeHandlers:[],lib:"react",debug:!1,ariaLabelConfig:nD,zIndexMode:g,onNodesChangeMiddlewareMap:new Map,onEdgesChangeMiddlewareMap:new Map}},doe=({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})=>Cre((y,k)=>{async function v(){const{nodeLookup:b,panZoom:j,fitViewOptions:S,fitViewResolver:N,width:C,height:A,minZoom:T,maxZoom:_}=k();j&&(await jne({nodes:b,width:C,height:A,panZoom:j,minZoom:T,maxZoom:_},S),N==null||N.resolve(!0),y({fitViewResolver:null}))}return{...RE({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:A,zIndexMode:T,nodesSelectionActive:_}=k(),{nodesInitialized:O,hasSelectedNodes:P}=Dv(b,j,S,{nodeOrigin:N,nodeExtent:h,elevateNodesOnSelect:C,checkEquality:!0,zIndexMode:T}),W=_&&P;A&&O?(v(),y({nodes:b,nodesInitialized:O,fitViewQueued:!1,fitViewOptions:void 0,nodesSelectionActive:W})):y({nodes:b,nodesInitialized:O,nodesSelectionActive:W})},setEdges:b=>{const{connectionLookup:j,edgeLookup:S}=k();vD(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:A,nodeExtent:T,debug:_,fitViewQueued:O,zIndexMode:P}=k(),{changes:W,updatedInternals:I}=Wne(b,S,N,C,A,T,P);I&&(Bne(S,N,{nodeOrigin:A,nodeExtent:T,zIndexMode:P}),O?(v(),y({fitViewQueued:!1,fitViewOptions:void 0})):y({}),(W==null?void 0:W.length)>0&&(_&&console.log("React Flow: trigger node changes",W),j==null||j(W)))},updateNodePositions:(b,j=!1)=>{const S=[];let N=[];const{nodeLookup:C,triggerNodeChanges:A,connection:T,updateConnection:_,onNodesChangeMiddlewareMap:O}=k();for(const[P,W]of b){const I=C.get(P),z=!!(I!=null&&I.expandParent&&(I!=null&&I.parentId)&&(W!=null&&W.position)),U={id:P,type:"position",position:z?{x:Math.max(0,W.position.x),y:Math.max(0,W.position.y)}:W.position,dragging:j};if(I&&T.inProgress&&T.fromNode.id===I.id){const D=Ta(I,T.fromHandle,ct.Left,!0);_({...T,from:D})}z&&I.parentId&&S.push({id:P,parentId:I.parentId,rect:{...W.internals.positionAbsolute,width:W.measured.width??0,height:W.measured.height??0}}),N.push(U)}if(S.length>0){const{parentLookup:P,nodeOrigin:W}=k(),I=X0(S,C,P,W);N.push(...I)}for(const P of O.values())N=P(N);A(N)},triggerNodeChanges:b=>{const{onNodesChange:j,setNodes:S,nodes:N,hasDefaultNodes:C,debug:A}=k();if(b!=null&&b.length){if(C){const T=ID(b,N);S(T)}A&&console.log("React Flow: trigger node changes",b),j==null||j(b)}},triggerEdgeChanges:b=>{const{onEdgesChange:j,setEdges:S,edges:N,hasDefaultEdges:C,debug:A}=k();if(b!=null&&b.length){if(C){const T=MD(b,N);S(T)}A&&console.log("React Flow: trigger edge changes",b),j==null||j(b)}},addSelectedNodes:b=>{const{multiSelectionActive:j,edgeLookup:S,nodeLookup:N,triggerNodeChanges:C,triggerEdgeChanges:A}=k();if(j){const T=b.map(_=>sa(_,!0));C(T);return}C(Ol(N,new Set([...b]),!0)),A(Ol(S))},addSelectedEdges:b=>{const{multiSelectionActive:j,edgeLookup:S,nodeLookup:N,triggerNodeChanges:C,triggerEdgeChanges:A}=k();if(j){const T=b.map(_=>sa(_,!0));A(T);return}A(Ol(S,new Set([...b]))),C(Ol(N,new Set,!0))},unselectNodesAndEdges:({nodes:b,edges:j}={})=>{const{edges:S,nodes:N,nodeLookup:C,triggerNodeChanges:A,triggerEdgeChanges:T}=k(),_=b||N,O=j||S,P=[];for(const I of _){if(!I.selected)continue;const z=C.get(I.id);z&&(z.selected=!1),P.push(sa(I.id,!1))}const W=[];for(const I of O)I.selected&&W.push(sa(I.id,!1));A(P),T(W)},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 A=j.reduce((_,O)=>O.selected?[..._,sa(O.id,!1)]:_,[]),T=b.reduce((_,O)=>O.selected?[..._,sa(O.id,!1)]:_,[]);S(A),N(T)},setNodeExtent:b=>{const{nodes:j,nodeLookup:S,parentLookup:N,nodeOrigin:C,elevateNodesOnSelect:A,nodeExtent:T,zIndexMode:_}=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]||(Dv(j,S,N,{nodeOrigin:C,nodeExtent:b,elevateNodesOnSelect:A,checkEquality:!1,zIndexMode:_}),y({nodeExtent:b}))},panBy:b=>{const{transform:j,width:S,height:N,panZoom:C,translateExtent:A}=k();return Kne({delta:b,panZoom:C,transform:j,translateExtent:A,width:S,height:N})},setCenter:async(b,j,S)=>{const{width:N,height:C,maxZoom:A,panZoom:T}=k();if(!T)return!1;const _=typeof(S==null?void 0:S.zoom)<"u"?S.zoom:A;return await T.setViewport({x:N/2-b*_,y:C/2-j*_,zoom:_},{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:{...rD}})},updateConnection:b=>{y({connection:b})},reset:()=>y({...RE()})}},Object.is);function foe({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(()=>doe({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(Ere,{value:k,children:s.jsx(Jre,{children:y})})}function poe({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(hg)?s.jsx(s.Fragment,{children:e}):s.jsx(foe,{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 hoe={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0};function moe({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:A,onNodeDoubleClick:T,onNodeDragStart:_,onNodeDrag:O,onNodeDragStop:P,onNodesDelete:W,onEdgesDelete:I,onDelete:z,onSelectionChange:U,onSelectionDragStart:D,onSelectionDrag:F,onSelectionDragStop:M,onSelectionContextMenu:K,onSelectionStart:$,onSelectionEnd:V,onBeforeDelete:L,connectionMode:B,connectionLineType:Y=xi.Bezier,connectionLineStyle:H,connectionLineComponent:Q,connectionLineContainerStyle:J,deleteKeyCode:Z="Backspace",selectionKeyCode:oe="Shift",selectionOnDrag:te=!1,selectionMode:ue=Ed.Full,panActivationKeyCode:ge="Space",multiSelectionKeyCode:Ce=Rd()?"Meta":"Control",zoomActivationKeyCode:Se=Rd()?"Meta":"Control",snapToGrid:ke,snapGrid:Be,onlyRenderVisibleElements:ie=!1,selectNodesOnDrag:be,nodesDraggable:ye,autoPanOnNodeFocus:Re,nodesConnectable:Ue,nodesFocusable:rt,nodeOrigin:Oe=DD,edgesFocusable:ot,edgesReconnectable:St,elementsSelectable:ht=!0,defaultViewport:it=zre,minZoom:ce=.5,maxZoom:me=2,translateExtent:Ie=Cd,preventScrolling:Pe=!0,nodeExtent:Ve,defaultMarkerColor:pt="#b1b1b7",zoomOnScroll:_e=!0,zoomOnPinch:Qe=!0,panOnScroll:Je=!1,panOnScrollSpeed:ut=.5,panOnScrollMode:fe=va.Free,zoomOnDoubleClick:q=!0,panOnDrag:ne=!0,onPaneClick:xe,onPaneMouseEnter:qe,onPaneMouseMove:Fe,onPaneMouseLeave:lt,onPaneScroll:mt,onPaneContextMenu:vt,paneClickDistance:nt=1,nodeClickDistance:_t=0,children:Bt,onReconnect:Ut,onReconnectStart:Tn,onReconnectEnd:Ct,onEdgeContextMenu:je,onEdgeDoubleClick:Ge,onEdgeMouseEnter:at,onEdgeMouseMove:Mt,onEdgeMouseLeave:le,reconnectRadius:Ne=10,onNodesChange:et,onEdgesChange:Rn,noDragClassName:Er="nodrag",noWheelClassName:lo="nowheel",noPanClassName:wt="nopan",fitView:_i,fitViewOptions:Oo,connectOnClick:Ma,attributionPosition:nn,proOptions:Fo,defaultEdgeOptions:La,elevateNodesOnSelect:Oa=!0,elevateEdgesOnSelect:Bc=!1,disableKeyboardA11y:Fa=!1,autoPanOnConnect:Ht,autoPanOnNodeDrag:Di,autoPanOnSelection:co=!0,autoPanSpeed:zo,connectionRadius:Ds,isValidConnection:Bo,onError:za,style:Uo,id:ir,nodeDragThreshold:ur,connectionDragThreshold:Ln,viewport:Ho,onViewportChange:Uc,width:Hc,height:Vo,colorMode:Kn="light",debug:uo,onScroll:Vr,ariaLabelConfig:Ba,zIndexMode:$i="basic",...Wo},Ko){const $s=ir||"1",On=Vre(Kn),An=m.useCallback(Is=>{Is.currentTarget.scrollTo({top:0,left:0,behavior:"instant"}),Vr==null||Vr(Is)},[Vr]);return s.jsx("div",{"data-testid":"rf__wrapper",...Wo,onScroll:An,style:{...Uo,...hoe},ref:Ko,className:En(["react-flow",o,On]),id:ir,role:"application",children:s.jsxs(poe,{nodes:e,edges:t,width:Hc,height:Vo,fitView:_i,fitViewOptions:Oo,minZoom:ce,maxZoom:me,nodeOrigin:Oe,nodeExtent:Ve,zIndexMode:$i,children:[s.jsx(Hre,{nodes:e,edges:t,defaultNodes:n,defaultEdges:r,onConnect:y,onConnectStart:k,onConnectEnd:v,onClickConnectStart:b,onClickConnectEnd:j,nodesDraggable:ye,autoPanOnNodeFocus:Re,nodesConnectable:Ue,nodesFocusable:rt,edgesFocusable:ot,edgesReconnectable:St,elementsSelectable:ht,elevateNodesOnSelect:Oa,elevateEdgesOnSelect:Bc,minZoom:ce,maxZoom:me,nodeExtent:Ve,onNodesChange:et,onEdgesChange:Rn,snapToGrid:ke,snapGrid:Be,connectionMode:B,translateExtent:Ie,connectOnClick:Ma,defaultEdgeOptions:La,fitView:_i,fitViewOptions:Oo,onNodesDelete:W,onEdgesDelete:I,onDelete:z,onNodeDragStart:_,onNodeDrag:O,onNodeDragStop:P,onSelectionDrag:F,onSelectionDragStart:D,onSelectionDragStop:M,onMove:p,onMoveStart:h,onMoveEnd:g,noPanClassName:wt,nodeOrigin:Oe,rfId:$s,autoPanOnConnect:Ht,autoPanOnNodeDrag:Di,autoPanSpeed:zo,onError:za,connectionRadius:Ds,isValidConnection:Bo,selectNodesOnDrag:be,nodeDragThreshold:ur,connectionDragThreshold:Ln,onBeforeDelete:L,debug:uo,ariaLabelConfig:Ba,zIndexMode:$i}),s.jsx(coe,{onInit:f,onNodeClick:l,onEdgeClick:u,onNodeMouseEnter:S,onNodeMouseMove:N,onNodeMouseLeave:C,onNodeContextMenu:A,onNodeDoubleClick:T,nodeTypes:i,edgeTypes:a,connectionLineType:Y,connectionLineStyle:H,connectionLineComponent:Q,connectionLineContainerStyle:J,selectionKeyCode:oe,selectionOnDrag:te,selectionMode:ue,deleteKeyCode:Z,multiSelectionKeyCode:Ce,panActivationKeyCode:ge,zoomActivationKeyCode:Se,onlyRenderVisibleElements:ie,defaultViewport:it,translateExtent:Ie,minZoom:ce,maxZoom:me,preventScrolling:Pe,zoomOnScroll:_e,zoomOnPinch:Qe,zoomOnDoubleClick:q,panOnScroll:Je,panOnScrollSpeed:ut,panOnScrollMode:fe,panOnDrag:ne,autoPanOnSelection:co,onPaneClick:xe,onPaneMouseEnter:qe,onPaneMouseMove:Fe,onPaneMouseLeave:lt,onPaneScroll:mt,onPaneContextMenu:vt,paneClickDistance:nt,nodeClickDistance:_t,onSelectionContextMenu:K,onSelectionStart:$,onSelectionEnd:V,onReconnect:Ut,onReconnectStart:Tn,onReconnectEnd:Ct,onEdgeContextMenu:je,onEdgeDoubleClick:Ge,onEdgeMouseEnter:at,onEdgeMouseMove:Mt,onEdgeMouseLeave:le,reconnectRadius:Ne,defaultMarkerColor:pt,noDragClassName:Er,noWheelClassName:lo,noPanClassName:wt,rfId:$s,disableKeyboardA11y:Fa,nodeExtent:Ve,viewport:Ho,onViewportChange:Uc}),s.jsx(Fre,{onSelectionChange:U}),Bt,s.jsx($re,{proOptions:Fo,position:nn}),s.jsx(Dre,{rfId:$s,disableKeyboardA11y:Fa})]})})}var goe=LD(moe);const xoe=e=>{var t;return(t=e.domNode)==null?void 0:t.querySelector(".react-flow__edgelabel-renderer")};function yoe({children:e}){const t=Pt(xoe);return t?Xs.createPortal(e,t):null}function boe(e){const[t,n]=m.useState(e),r=m.useCallback(o=>n(i=>ID(o,i)),[]);return[t,n,r]}function voe(e){const[t,n]=m.useState(e),r=m.useCallback(o=>n(i=>MD(o,i)),[]);return[t,n,r]}function woe({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:En(["react-flow__background-pattern",n,r])})}function joe({radius:e,className:t}){return s.jsx("circle",{cx:e,cy:e,r:e,className:En(["react-flow__background-pattern","dots",t])})}var vi;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(vi||(vi={}));const koe={[vi.Dots]:1,[vi.Lines]:1,[vi.Cross]:6},Noe=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function a$({id:e,variant:t=vi.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}=Pt(Noe,on),k=r||koe[t],v=t===vi.Dots,b=t===vi.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],A=b?[N,N]:S,T=[C[0]*g[2]||1+A[0]/2,C[1]*g[2]||1+A[1]/2],_=`${y}${e||""}`;return s.jsxs("svg",{className:En(["react-flow__background",f]),style:{...u,...gg,"--xy-background-color-props":l,"--xy-background-pattern-color-props":a},ref:h,"data-testid":"rf__background",children:[s.jsx("pattern",{id:_,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(joe,{radius:N/2,className:p}):s.jsx(woe,{dimensions:A,lineWidth:o,variant:t,className:p})}),s.jsx("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${_})`})]})}a$.displayName="Background";const Soe=m.memo(a$);function Coe(){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 Eoe(){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 Toe(){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 Roe(){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 Aoe(){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:En(["react-flow__controls-button",t]),...n,children:e})}const Poe=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom,ariaLabelConfig:e.ariaLabelConfig});function l$({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}=Pt(Poe,on),{zoomIn:N,zoomOut:C,fitView:A}=mg(),T=()=>{N(),i==null||i()},_=()=>{C(),a==null||a()},O=()=>{A(o),l==null||l()},P=()=>{k.setState({nodesDraggable:!v,nodesConnectable:!v,elementsSelectable:!v}),u==null||u(!v)},W=g==="horizontal"?"horizontal":"vertical";return s.jsxs(of,{className:En(["react-flow__controls",W,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(Coe,{})}),s.jsx($p,{onClick:_,className:"react-flow__controls-zoomout",title:S["controls.zoomOut.ariaLabel"],"aria-label":S["controls.zoomOut.ariaLabel"],disabled:b,children:s.jsx(Eoe,{})})]}),n&&s.jsx($p,{className:"react-flow__controls-fitview",onClick:O,title:S["controls.fitView.ariaLabel"],"aria-label":S["controls.fitView.ariaLabel"],children:s.jsx(Toe,{})}),r&&s.jsx($p,{className:"react-flow__controls-interactive",onClick:P,title:S["controls.interactive.ariaLabel"],"aria-label":S["controls.interactive.ariaLabel"],children:v?s.jsx(Aoe,{}):s.jsx(Roe,{})}),p]})}l$.displayName="Controls";const _oe=m.memo(l$);function Doe({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:En(["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 $oe=m.memo(Doe),Ioe=e=>e.nodes.map(t=>t.id),hb=e=>e instanceof Function?e:()=>e;function Moe({nodeStrokeColor:e,nodeColor:t,nodeClassName:n="",nodeBorderRadius:r=5,nodeStrokeWidth:o,nodeComponent:i=$oe,onClick:a}){const l=Pt(Ioe,on),u=hb(t),f=hb(e),p=hb(n),h=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return s.jsx(s.Fragment,{children:l.map(g=>s.jsx(Ooe,{id:g,nodeColorFunc:u,nodeStrokeColorFunc:f,nodeClassNameFunc:p,nodeBorderRadius:r,nodeStrokeWidth:o,NodeComponent:i,onClick:a,shapeRendering:h},g))})}function Loe({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}=Pt(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}=Lo(b);return{node:b,x:j,y:S,width:N,height:C}},on);return!f||f.hidden||!uD(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 Ooe=m.memo(Loe);var Foe=m.memo(Moe);const zoe=200,Boe=150,Uoe=e=>!e.hidden,Hoe=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?lD(rf(e.nodeLookup,{filter:Uoe}),t):t,rfId:e.rfId,panZoom:e.panZoom,translateExtent:e.translateExtent,flowWidth:e.width,flowHeight:e.height,ariaLabelConfig:e.ariaLabelConfig}},Voe="react-flow__minimap-desc";function c$({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 A=an(),T=m.useRef(null),{boundingRect:_,viewBB:O,rfId:P,panZoom:W,translateExtent:I,flowWidth:z,flowHeight:U,ariaLabelConfig:D}=Pt(Hoe,on),F=(e==null?void 0:e.width)??zoe,M=(e==null?void 0:e.height)??Boe,K=_.width/F,$=_.height/M,V=Math.max(K,$),L=V*F,B=V*M,Y=C*V,H=_.x-(L-_.width)/2-Y,Q=_.y-(B-_.height)/2-Y,J=L+Y*2,Z=B+Y*2,oe=`${Voe}-${P}`,te=m.useRef(0),ue=m.useRef();te.current=V,m.useEffect(()=>{if(T.current&&W)return ue.current=tre({domNode:T.current,panZoom:W,getTransform:()=>A.getState().transform,getViewScale:()=>te.current}),()=>{var ke;(ke=ue.current)==null||ke.destroy()}},[W]),m.useEffect(()=>{var ke;(ke=ue.current)==null||ke.update({translateExtent:I,width:z,height:U,inversePan:S,pannable:v,zoomStep:N,zoomable:b})},[v,b,S,N,I,z,U]);const ge=y?ke=>{var be;const[Be,ie]=((be=ue.current)==null?void 0:be.pointer(ke))||[0,0];y(ke,{x:Be,y:ie})}:void 0,Ce=k?m.useCallback((ke,Be)=>{const ie=A.getState().nodeLookup.get(Be).internals.userNode;k(ke,ie)},[]):void 0,Se=j??D["minimap.ariaLabel"];return s.jsx(of,{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*V: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:En(["react-flow__minimap",t]),"data-testid":"rf__minimap",children:s.jsxs("svg",{width:F,height:M,viewBox:`${H} ${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(Foe,{onClick:Ce,nodeColor:r,nodeStrokeColor:n,nodeBorderRadius:i,nodeClassName:o,nodeStrokeWidth:a,nodeComponent:l}),s.jsx("path",{className:"react-flow__minimap-mask",d:`M${H-Y},${Q-Y}h${J+Y*2}v${Z+Y*2}h${-J-Y*2}z
674
+ M${O.x},${O.y}h${O.width}v${O.height}h${-O.width}z`,fillRule:"evenodd",pointerEvents:"none"})]})})}c$.displayName="MiniMap";m.memo(c$);const Woe=e=>t=>e?`${Math.max(1/t.transform[2],1)}`:void 0,Koe={[hc.Line]:"right",[hc.Handle]:"bottom-right"};function qoe({nodeId:e,position:t,variant:n=hc.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=BD(),N=typeof e=="string"?e:S,C=an(),A=m.useRef(null),T=n===hc.Handle,_=Pt(m.useCallback(Woe(T&&y),[T,y]),on),O=m.useRef(null),P=t??Koe[n];m.useEffect(()=>{if(!(!A.current||!N))return O.current||(O.current=hre({domNode:A.current,nodeId:N,getStoreItems:()=>{const{nodeLookup:I,transform:z,snapGrid:U,snapToGrid:D,nodeOrigin:F,domNode:M}=C.getState();return{nodeLookup:I,transform:z,snapGrid:U,snapToGrid:D,nodeOrigin:F,paneDomNode:M}},onChange:(I,z)=>{const{triggerNodeChanges:U,nodeLookup:D,parentLookup:F,nodeOrigin:M}=C.getState(),K=[],$={x:I.x,y:I.y},V=D.get(N);if(V&&V.expandParent&&V.parentId){const L=V.origin??M,B=I.width??V.measured.width??0,Y=I.height??V.measured.height??0,H={id:V.id,parentId:V.parentId,rect:{width:B,height:Y,...dD({x:I.x??V.position.x,y:I.y??V.position.y},{width:B,height:Y},V.parentId,D,L)}},Q=X0([H],D,F,M);K.push(...Q),$.x=I.x?Math.max(L[0]*B,I.x):void 0,$.y=I.y?Math.max(L[1]*Y,I.y):void 0}if($.x!==void 0&&$.y!==void 0){const L={id:N,type:"position",position:{...$}};K.push(L)}if(I.width!==void 0&&I.height!==void 0){const B={id:N,type:"dimensions",resizing:!0,setAttributes:g?g==="horizontal"?"width":"height":!0,dimensions:{width:I.width,height:I.height}};K.push(B)}for(const L of z){const B={...L,type:"position"};K.push(B)}U(K)},onEnd:({width:I,height:z})=>{const U={id:N,type:"dimensions",resizing:!1,dimensions:{width:I,height:z}};C.getState().triggerNodeChanges([U])}})),O.current.update({controlPosition:P,boundaries:{minWidth:l,minHeight:u,maxWidth:f,maxHeight:p},keepAspectRatio:h,resizeDirection:g,onResizeStart:v,onResize:b,onResizeEnd:j,shouldResize:k}),()=>{var I;(I=O.current)==null||I.destroy()}},[P,l,u,f,p,h,v,b,j,k]);const W=P.split("-");return s.jsx("div",{className:En(["react-flow__resize-control","nodrag",...W,n,r]),ref:A,style:{...o,scale:_,...a&&{[T?"backgroundColor":"borderColor"]:a}},children:i})}m.memo(qoe);var u$=Object.defineProperty,Goe=(e,t,n)=>t in e?u$(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,Yoe=(e,t)=>{for(var n in t)u$(e,n,{get:t[n],enumerable:!0})},Xoe=(e,t,n)=>Goe(e,t+"",n),d$={};Yoe(d$,{Graph:()=>_s,alg:()=>J0,json:()=>p$,version:()=>Zoe});var Qoe=Object.defineProperty,f$=(e,t)=>{for(var n in t)Qoe(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=Ou(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=Joe(this._isDirected,o,i,a);return o=p.v,i=p.w,Object.freeze(p),this._edgeObjs[f]=p,AE(this._preds[i],o),AE(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?mb(this._isDirected,e):Ou(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?mb(this._isDirected,e):Ou(this._isDirected,e,t,n))in this._edgeLabels}removeEdge(e,t,n){let r=arguments.length===1?mb(this._isDirected,e):Ou(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],PE(this._preds[a],i),PE(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 AE(e,t){e[t]?e[t]++:e[t]=1}function PE(e,t){e[t]!==void 0&&!--e[t]&&delete e[t]}function Ou(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 Joe(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 mb(e,t){return Ou(e,t.v,t.w,t.name)}var Zoe="4.0.1",p$={};f$(p$,{read:()=>rie,write:()=>eie});function eie(e){let t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:tie(e),edges:nie(e)},n=e.graph();return n!==void 0&&(t.value=structuredClone(n)),t}function tie(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 nie(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 rie(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 J0={};f$(J0,{CycleException:()=>Jh,bellmanFord:()=>h$,components:()=>iie,dijkstra:()=>Qh,dijkstraAll:()=>cie,findCycles:()=>uie,floydWarshall:()=>fie,isAcyclic:()=>hie,postorder:()=>gie,preorder:()=>xie,prim:()=>yie,shortestPaths:()=>bie,tarjan:()=>g$,topsort:()=>x$});var sie=()=>1;function h$(e,t,n,r){return oie(e,String(t),n||sie,r||function(o){return e.outEdges(o)})}function oie(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 iie(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 m$=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}},aie=()=>1;function Qh(e,t,n,r){let o=function(i){return e.outEdges(i)};return lie(e,String(t),n||aie,r||o)}function lie(e,t,n,r){let o={},i=new m$,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 cie(e,t,n){return e.nodes().reduce(function(r,o){return r[o]=Qh(e,o,t,n),r},{})}function g$(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 uie(e){return g$(e).filter(function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}var die=()=>1;function fie(e,t,n){return pie(e,t||die,n||function(r){return e.outEdges(r)})}function pie(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 Jh=class extends Error{constructor(...e){super(...e)}};function x$(e){let t={},n={},r=[];function o(i){if(i in n)throw new Jh;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 Jh;return r}function hie(e){try{x$(e)}catch(t){if(t instanceof Jh)return!1;throw t}return!0}function mie(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=y$(e,l,n==="post",a,i,r,o)}),o}function y$(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=y$(e,l,n,r,o,i,a)}),n&&(a=i(a,t))),a}function b$(e,t,n){return mie(e,t,n,function(r,o){return r.push(o),r},[])}function gie(e,t){return b$(e,t,"post")}function xie(e,t){return b$(e,t,"pre")}function yie(e,t){let n=new _s,r={},o=new m$,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 bie(e,t,n,r){return vie(e,t,n,r??(o=>{let i=e.outEdges(o);return i??[]}))}function vie(e,t,n,r){if(n===void 0)return Qh(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 h$(e,t,n,r)}return Qh(e,t,n,r)}function zc(e,t,n,r){let o=r;for(;e.hasNode(o);)o=Z0(r);return n.dummy=t,e.setNode(o,n),o}function wie(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 v$(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 _E(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 xg(e){let t=Pd(j$(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 jie(e){let t=e.nodes().map(r=>{let o=e.node(r).rank;return o===void 0?Number.MAX_VALUE:o}),n=Js(Math.min,t);e.nodes().forEach(r=>{let o=e.node(r);Object.hasOwn(o,"rank")&&(o.rank-=n)})}function kie(e){let t=e.nodes().map(a=>e.node(a).rank).filter(a=>a!==void 0),n=Js(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 DE(e,t,n,r){let o={width:0,height:0};return arguments.length>=4&&(o.rank=n,o.order=r),zc(e,"border",o,t)}function Nie(e,t=w$){let n=[];for(let r=0;r<e.length;r+=t){let o=e.slice(r,r+t);n.push(o)}return n}var w$=65535;function Js(e,t){if(t.length>w$){let n=Nie(t);return e(...n.map(r=>e(...r)))}else return e(...t)}function j$(e){let t=e.nodes().map(n=>{let r=e.node(n).rank;return r===void 0?Number.MIN_VALUE:r});return Js(Math.max,t)}function Sie(e,t){let n={lhs:[],rhs:[]};return e.forEach(r=>{t(r)?n.lhs.push(r):n.rhs.push(r)}),n}function Cie(e,t){let n=Date.now();try{return t()}finally{console.log(e+" time: "+(Date.now()-n)+"ms")}}function Eie(e,t){return t()}var Tie=0;function Z0(e){let t=++Tie;return e+(""+t)}function Pd(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 Zh(e,t){let n={};for(let r of t)e[r]!==void 0&&(n[r]=e[r]);return n}function yg(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 Rie(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}var bg="\0",Aie=class{constructor(){Xoe(this,"_sentinel");let e={};e._next=e._prev=e,this._sentinel=e}dequeue(){let e=this._sentinel,t=e._prev;if(t!==e)return $E(t),t}enqueue(e){let t=this._sentinel;e._prev&&e._next&&$E(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,Pie)),n=n._prev;return"["+e.join(", ")+"]"}};function $E(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function Pie(e,t){if(e!=="_next"&&e!=="_prev")return t}var _ie=Aie,Die=()=>1;function $ie(e,t){if(e.nodeCount()<=1)return[];let n=Mie(e,t||Die);return Iie(n.graph,n.buckets,n.zeroIdx).flatMap(r=>e.outEdges(r.v,r.w)||[])}function Iie(e,t,n){var r;let o=[],i=t[t.length-1],a=t[0],l;for(;e.nodeCount();){for(;l=a.dequeue();)gb(e,t,n,l);for(;l=i.dequeue();)gb(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(gb(e,t,n,l,!0)||[]);break}}}return o}function gb(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,Mv(t,n,f)}),(e.outEdges(r.v)||[]).forEach(l=>{let u=e.edge(l),f=l.w,p=e.node(f);p.in-=u,Mv(t,n,p)}),e.removeNode(r.v),a}function Mie(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=Lie(o+r+3).map(()=>new _ie),a=r+1;return n.nodes().forEach(l=>{Mv(i,a,n.node(l))}),{graph:n,buckets:i,zeroIdx:a}}function Mv(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 Lie(e){let t=[];for(let n=0;n<e;n++)t.push(n);return t}function Oie(e){(e.graph().acyclicer==="greedy"?$ie(e,t(e)):Fie(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,Z0("rev"))});function t(n){return r=>n.edge(r).weight}}function Fie(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 zie(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 Bie(e){e.graph().dummyChains=[],e.edges().forEach(t=>Uie(e,t))}function Uie(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=zc(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 Hie(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 ej(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=Js(Math.min,a);return l===Number.POSITIVE_INFINITY&&(l=0),o.rank=l}e.sources().forEach(n)}function gc(e,t){return e.node(t.w).rank-e.node(t.v).rank-e.edge(t).minlen}var k$=Vie;function Vie(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(;Wie(t,e)<o&&(i=Kie(t,e),!!i);)a=t.hasNode(i.v)?gc(e,i):-gc(e,i),qie(t,e,a);return t}function Wie(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)&&!gc(t,i)&&(e.setNode(l,{}),e.setEdge(r,l,{}),n(l))})}return e.nodes().forEach(n),e.nodeCount()}function Kie(e,t){return t.edges().reduce((n,r)=>{let o=Number.POSITIVE_INFINITY;return e.hasNode(r.v)!==e.hasNode(r.w)&&(o=gc(t,r)),o<n[0]?[o,r]:n},[Number.POSITIVE_INFINITY,null])[1]}function qie(e,t,n){e.nodes().forEach(r=>t.node(r).rank+=n)}var{preorder:Gie,postorder:Yie}=J0,Xie=Ia;Ia.initLowLimValues=nj;Ia.initCutValues=tj;Ia.calcCutValue=N$;Ia.leaveEdge=C$;Ia.enterEdge=E$;Ia.exchangeEdges=T$;function Ia(e){e=wie(e),ej(e);let t=k$(e);nj(t),tj(t,e);let n,r;for(;n=C$(t);)r=E$(t,e,n),T$(t,e,n,r)}function tj(e,t){let n=Yie(e,e.nodes());n=n.slice(0,n.length-1),n.forEach(r=>Qie(e,t,r))}function Qie(e,t,n){let r=e.node(n).parent,o=e.edge(n,r);o.cutvalue=N$(e,t,n)}function N$(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,Zie(e,n,p)){let y=e.edge(n,p).cutvalue;a+=h?-y:y}}}),a}function nj(e,t){arguments.length<2&&(t=e.nodes()[0]),S$(e,{},1,t)}function S$(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=S$(e,t,n,u,r))}),a.low=i,a.lim=n++,o?a.parent=o:delete a.parent,n}function C$(e){return e.edges().find(t=>e.edge(t).cutvalue<0)}function E$(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===IE(e,e.node(f.v),l)&&u!==IE(e,e.node(f.w),l)).reduce((f,p)=>gc(t,p)<gc(t,f)?p:f)}function T$(e,t,n,r){let o=n.v,i=n.w;e.removeEdge(o,i),e.setEdge(r.v,r.w,{}),nj(e),tj(e,t),Jie(e,t)}function Jie(e,t){let n=e.nodes().find(o=>!e.node(o).parent);if(!n)return;let r=Gie(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 Zie(e,t,n){return e.hasEdge(t,n)}function IE(e,t,n){return n.low<=t.lim&&t.lim<=n.lim}var eae=tae;function tae(e){let t=e.graph().ranker;if(typeof t=="function")return t(e);switch(t){case"network-simplex":ME(e);break;case"tight-tree":rae(e);break;case"longest-path":nae(e);break;case"none":break;default:ME(e)}}var nae=ej;function rae(e){ej(e),k$(e)}function ME(e){Xie(e)}var sae=oae;function oae(e){let t=aae(e);e.graph().dummyChains.forEach(n=>{let r=e.node(n),o=r.edgeObj,i=iae(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 iae(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 aae(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(bg).forEach(r),t}function lae(e){let t=zc(e,"root",{},"_root"),n=cae(e),r=Object.values(n),o=Js(Math.max,r)-1,i=2*o+1;e.graph().nestingRoot=t,e.edges().forEach(l=>e.edge(l).minlen*=i);let a=uae(e)+1;e.children(bg).forEach(l=>R$(e,t,i,a,o,n,l)),e.graph().nodeRankFactor=i}function R$(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=DE(e,"_bt"),p=DE(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;R$(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 cae(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(bg).forEach(r=>n(r,1)),t}function uae(e){return e.edges().reduce((t,n)=>t+e.edge(n).weight,0)}function dae(e){let t=e.graph();e.removeNode(t.nestingRoot),delete t.nestingRoot,e.edges().forEach(n=>{e.edge(n).nestingEdge&&e.removeEdge(n)})}var fae=pae;function pae(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)LE(e,"borderLeft","_bl",n,o,i),LE(e,"borderRight","_br",n,o,i)}}e.children(bg).forEach(t)}function LE(e,t,n,r,o,i){let a={width:0,height:0,rank:i,borderType:t},l=o[t][i-1],u=zc(e,"border",a,n);o[t][i]=u,e.setParent(u,r),l&&e.setEdge(l,u,{weight:1})}function hae(e){var t;let n=(t=e.graph().rankdir)==null?void 0:t.toLowerCase();(n==="lr"||n==="rl")&&A$(e)}function mae(e){var t;let n=(t=e.graph().rankdir)==null?void 0:t.toLowerCase();(n==="bt"||n==="rl")&&gae(e),(n==="lr"||n==="rl")&&(xae(e),A$(e))}function A$(e){e.nodes().forEach(t=>OE(e.node(t))),e.edges().forEach(t=>OE(e.edge(t)))}function OE(e){let t=e.width;e.width=e.height,e.height=t}function gae(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,"y")&&xb(r)})}function xb(e){e.y=-e.y}function xae(e){e.nodes().forEach(t=>yb(e.node(t))),e.edges().forEach(t=>{var n;let r=e.edge(t);(n=r.points)==null||n.forEach(yb),Object.hasOwn(r,"x")&&yb(r)})}function yb(e){let t=e.x;e.x=e.y,e.y=t}function yae(e){let t={},n=e.nodes().filter(l=>!e.children(l).length),r=n.map(l=>e.node(l).rank),o=Js(Math.max,r),i=Pd(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 bae(e,t){let n=0;for(let r=1;r<t.length;++r)n+=vae(e,t[r-1],t[r]);return n}function vae(e,t,n){let r=Rie(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 wae(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 jae(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 kae(r)}function kae(e){let t=[];function n(o){return i=>{i.merged||(i.barycenter===void 0||o.barycenter===void 0||i.barycenter>=o.barycenter)&&Nae(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=>Zh(o,["vs","i","barycenter","weight"]))}function Nae(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 Sae(e,t){let n=Sie(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(Cae(!!t)),u=FE(i,o,u),r.forEach(p=>{u+=p.vs.length,i.push(p.vs),a+=p.barycenter*p.weight,l+=p.weight,u=FE(i,o,u)});let f={vs:i.flat(1)};return l&&(f.barycenter=a/l,f.weight=l),f}function FE(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 Cae(e){return(t,n)=>t.barycenter<n.barycenter?-1:t.barycenter>n.barycenter?1:e?n.i-t.i:t.i-n.i}function P$(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=wae(e,o);f.forEach(g=>{if(e.children(g.v).length){let y=P$(e,g.v,n,r);u[g.v]=y,Object.hasOwn(y,"barycenter")&&Tae(g,y)}});let p=jae(f,n);Eae(p,u);let h=Sae(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 Eae(e,t){e.forEach(n=>{n.vs=n.vs.flatMap(r=>t[r]?t[r].vs:r)})}function Tae(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 Rae(e,t,n,r){r||(r=e.nodes());let o=Aae(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 Aae(e){let t;for(;e.hasNode(t=Z0("_root")););return t}function Pae(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,t={}){if(typeof t.customOrder=="function"){t.customOrder(e,_$);return}let n=j$(e),r=zE(e,Pd(1,n+1),"inEdges"),o=zE(e,Pd(n-1,-1,-1),"outEdges"),i=yae(e);if(BE(e,i),t.disableOptimalOrderHeuristic)return;let a=Number.POSITIVE_INFINITY,l,u=t.constraints||[];for(let f=0,p=0;p<4;++f,++p){_ae(f%2?r:o,f%4>=2,u),i=xg(e);let h=bae(e,i);h<a?(p=0,l=Object.assign({},i),a=h):h===a&&(l=structuredClone(i))}BE(e,l)}function zE(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 Rae(e,i,n,r.get(i)||[])})}function _ae(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=P$(o,i,r,t);a.vs.forEach((l,u)=>o.node(l).order=u),Pae(o,r,a.vs)})}function BE(e,t){Object.values(t).forEach(n=>n.forEach((r,o)=>e.node(r).order=o))}function Dae(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=Iae(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)&&D$(n,b,k)})}),l=h+1,a=y)}),i}return t.length&&t.reduce(r),n}function $ae(e,t){let n={};function r(i,a,l,u,f){Pd(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)&&D$(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 Iae(e,t){if(e.node(t).dummy){let n=e.predecessors(t);if(n)return n.find(r=>e.node(r).dummy)}}function D$(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 Mae(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 Lae(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&&!Mae(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 Oae(e,t,n,r,o=!1){let i={},a=Fae(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 Fae(e,t,n,r){let o=new _s,i=e.graph(),a=Vae(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 zae(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=Wae(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 Bae(e,t){let n=Object.values(t),r=Js(Math.min,n),o=Js(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-Js(Math.min,f);a!=="l"&&(p=o-Js(Math.max,f)),p&&(e[l]=yg(u,h=>h+p))})})}function Uae(e,t=void 0){let n=e.ul;return n?yg(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 Hae(e){let t=xg(e),n=Object.assign(Dae(e,t),$ae(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=Lae(e,o,n,p=>(a==="u"?e.predecessors(p):e.successors(p))||[]),f=Oae(e,o,u.root,u.align,l==="r");l==="r"&&(f=yg(f,p=>-p)),r[a+l]=f})});let i=zae(e,r);return Bae(r,i),Uae(r,e.graph().align)}function Vae(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 Wae(e,t){return e.node(t).width}function Kae(e){e=v$(e),qae(e),Object.entries(Hae(e)).forEach(([t,n])=>e.node(t).x=n)}function qae(e){let t=xg(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 Gae(e,t={}){let n=t.debugTiming?Cie:Eie;return n("layout",()=>{let r=n(" buildLayoutGraph",()=>sle(e));return n(" runLayout",()=>Yae(r,n,t)),n(" updateInputGraph",()=>Xae(e,r)),r})}function Yae(e,t,n){t(" makeSpaceForEdgeLabels",()=>ole(e)),t(" removeSelfEdges",()=>hle(e)),t(" acyclic",()=>Oie(e)),t(" nestingGraph.run",()=>lae(e)),t(" rank",()=>eae(v$(e))),t(" injectEdgeLabelProxies",()=>ile(e)),t(" removeEmptyRanks",()=>kie(e)),t(" nestingGraph.cleanup",()=>dae(e)),t(" normalizeRanks",()=>jie(e)),t(" assignRankMinMax",()=>ale(e)),t(" removeEdgeLabelProxies",()=>lle(e)),t(" normalize.run",()=>Bie(e)),t(" parentDummyChains",()=>sae(e)),t(" addBorderSegments",()=>fae(e)),t(" order",()=>_$(e,n)),t(" insertSelfEdges",()=>mle(e)),t(" adjustCoordinateSystem",()=>hae(e)),t(" position",()=>Kae(e)),t(" positionSelfEdges",()=>gle(e)),t(" removeBorderNodes",()=>ple(e)),t(" normalize.undo",()=>Hie(e)),t(" fixupEdgeLabelCoords",()=>dle(e)),t(" undoCoordinateSystem",()=>mae(e)),t(" translateGraph",()=>cle(e)),t(" assignNodeIntersects",()=>ule(e)),t(" reversePoints",()=>fle(e)),t(" acyclic.undo",()=>zie(e))}function Xae(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 Qae=["nodesep","edgesep","ranksep","marginx","marginy"],Jae={ranksep:50,edgesep:20,nodesep:50,rankdir:"TB",rankalign:"center"},Zae=["acyclicer","ranker","rankdir","align","rankalign"],ele=["width","height","rank"],UE={width:0,height:0},tle=["minlen","weight","width","height","labeloffset"],nle={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},rle=["labelpos"];function sle(e){let t=new _s({multigraph:!0,compound:!0}),n=vb(e.graph());return t.setGraph(Object.assign({},Jae,bb(n,Qae),Zh(n,Zae))),e.nodes().forEach(r=>{let o=vb(e.node(r)),i=bb(o,ele);Object.keys(UE).forEach(l=>{i[l]===void 0&&(i[l]=UE[l])}),t.setNode(r,i);let a=e.parent(r);a!==void 0&&t.setParent(r,a)}),e.edges().forEach(r=>{let o=vb(e.edge(r));t.setEdge(r,Object.assign({},nle,bb(o,tle),Zh(o,rle)))}),t}function ole(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 ile(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};zc(e,"edge-proxy",o,"_ep")}})}function ale(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 lle(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 cle(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 ule(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(_E(r,i)),n.points.push(_E(o,a))})}function dle(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 fle(e){e.edges().forEach(t=>{let n=e.edge(t);n.reversed&&n.points.reverse()})}function ple(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 hle(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 mle(e){xg(e).forEach(t=>{let n=0;t.forEach((r,o)=>{let i=e.node(r);i.order=o+n,(i.selfEdges||[]).forEach(a=>{zc(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 gle(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 bb(e,t){return yg(Zh(e,t),Number)}function vb(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 xle(e,t,n={}){const r=new Map;if(e.length===0)return r;const o=n.nodeWidth??150,i=n.nodeHeight??64,a=new d$.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);Gae(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 $$(e){const t=new Map;return e.forEach((n,r)=>{t.has(n.id)||t.set(n.id,r)}),t}const yle=new Set(["fail","block"]),ble=new Set(["reopen","unblock"]);function I$(e,t){if(yle.has(e.command))return"exception";if(ble.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 vle(e,t){const n=$$(t);return e.filter(r=>I$(r,n)!=="recovery").map(r=>({from:r.from,to:r.to}))}function wle(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 jle(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 kle({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:ve("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(mc,{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(b2,{className:"h-3 w-3 shrink-0","aria-label":"Undefined status"}),a&&!l&&s.jsx(kc,{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(C4,{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(mc,{type:"source",position:ct.Right,className:"!h-2 !w-2 !bg-muted-foreground"})]})}function Ws(e,t,n){return t?"oklch(var(--error-foreground))":n?"oklch(var(--primary))":e==="exception"?"oklch(var(--warning-foreground))":"oklch(var(--muted-foreground))"}function Nle({id:e,sourceX:t,sourceY:n,targetX:r,targetY:o,sourcePosition:i,targetPosition:a,data:l}){const u=l,[f,p,h]=W0({sourceX:t,sourceY:n,sourcePosition:i,targetX:r,targetY:o,targetPosition:a}),g=Ws(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(af,{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(yoe,{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(A=>{const T=A.rowKey===u.selectedRowKey;return s.jsxs("button",{type:"button",onClick:_=>{_.stopPropagation(),u.onSelectCommand(A.rowKey)},"aria-label":`Edit transition command ${A.command}`,className:ve("rounded border px-1 py-0.5 font-mono text-[10px] leading-none shadow-sm transition-colors",A.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:[A.command,A.requiresReason?" ⓡ":""]},A.rowKey)})})})]})}const Sle={status:kle},Cle={transition:Nle};function Ele(){const e=[{id:"arrow-forward",color:Ws("forward",!1,!1)},{id:"arrow-exception",color:Ws("exception",!1,!1)},{id:"arrow-recovery",color:Ws("recovery",!1,!1)},{id:"arrow-forward-undef",color:Ws("forward",!0,!1)},{id:"arrow-exception-undef",color:Ws("exception",!0,!1)},{id:"arrow-recovery-undef",color:Ws("recovery",!0,!1)},{id:"arrow-forward-sel",color:Ws("forward",!1,!0)},{id:"arrow-exception-sel",color:Ws("exception",!1,!0)},{id:"arrow-recovery-sel",color:Ws("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 Tle({onRelayout:e}){const{fitView:t}=mg();return s.jsx(of,{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(P4,{className:"h-3 w-3"}),"Re-layout"]})})}function Rle(e,t,n,r){let o=!1;for(const i of e){const a=I$({from:t,to:n,command:i.command},r);if(a==="exception")return"exception";a==="recovery"&&(o=!0)}return o?"recovery":"forward"}function Ale({nodes:e,edges:t,statuses:n,selectedRowKey:r,focusNodeId:o,editable:i,onSelectEdge:a,onFocusNode:l,onCreateEdge:u,onDeleteEdge:f}){const[p,h,g]=boe([]),[y,k]=voe([]),v=m.useRef(new Map),[b,j]=m.useState(0),[S,N]=m.useState(null),[C,A]=m.useState(null),T=m.useRef(null),_=m.useRef(null);m.useEffect(()=>{const H=T.current;if(!H||typeof ResizeObserver>"u")return;let Q=0;const J=new ResizeObserver(()=>{cancelAnimationFrame(Q),Q=requestAnimationFrame(()=>{var Z;return(Z=_.current)==null?void 0:Z.fitView({padding:.2})})});return J.observe(H),()=>{J.disconnect(),cancelAnimationFrame(Q)}},[]);const O=m.useMemo(()=>$$(n),[n]),P=m.useMemo(()=>wle(t),[t]),W=o??S,I=m.useMemo(()=>W?jle(W,t):null,[W,t]),z=m.useMemo(()=>JSON.stringify(e.map(H=>[H.id,H.label,H.color??"",H.terminal,H.orphan,H.missing])),[e]);m.useEffect(()=>{const H=xle(e,vle(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=H.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}}))},[z,b,h]),m.useEffect(()=>{h(H=>H.map(Q=>{const J=I?!I.nodeIds.has(Q.id):!1;return Q.data.dimmed===J?Q:{...Q,data:{...Q.data,dimmed:J}}}))},[I,h]);const U=m.useCallback(()=>{v.current.clear(),j(H=>H+1)},[]),D=m.useCallback(H=>a(H),[a]),F=m.useMemo(()=>P.map(H=>`${H.from}>${H.to}:${H.commands.map(Q=>`${Q.rowKey}/${Q.command}/${Q.requiresReason?1:0}/${Q.undefinedRef?1:0}`).join(",")}`).join("|"),[P]);m.useEffect(()=>{k(P.map(H=>{const Q=`${H.from}>${H.to}`,J=H.commands.map(Se=>Se.rowKey),Z=H.commands.some(Se=>Se.undefinedRef),oe=Rle(H.commands,H.from,H.to,O),te=r!=null&&J.includes(r),ue=I?J.some(Se=>I.edgeKeys.has(Se)):!1,ge=I?!ue:!1,Ce=te||ue||C===Q;return{id:Q,source:H.from,target:H.to,type:"transition",selected:te,deletable:i,data:{from:H.from,to:H.to,commands:H.commands,edgeClass:oe,undefinedRef:Z,selected:te,dimmed:ge,showChips:Ce,selectedRowKey:r,onSelectCommand:D}}}))},[F,r,I,C,i,O,k,D]);const M=m.useCallback(H=>{for(const Q of H)Q.type==="position"&&Q.position&&v.current.set(Q.id,Q.position);g(H)},[g]),K=m.useCallback(H=>{i&&H.source&&H.target&&u(H.source,H.target)},[i,u]),$=m.useCallback(H=>{if(!i)return;const Q=[];for(const J of H){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]),V=m.useCallback((H,Q)=>{const J=Q.data.commands[0];J&&a(J.rowKey)},[a]),L=m.useCallback(({edges:H})=>{if(H.length!==1)return;const Q=H[0].data.commands;if(r&&Q.some(Z=>Z.rowKey===r))return;const J=Q[0];J&&a(J.rowKey)},[a,r]),B=m.useCallback((H,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(Ele,{}),s.jsxs(goe,{onInit:H=>{_.current=H},nodes:p,edges:y,nodeTypes:Sle,edgeTypes:Cle,onNodesChange:M,onConnect:K,onEdgesDelete:$,onEdgeClick:V,onSelectionChange:L,onEdgeMouseEnter:(H,Q)=>A(Q.id),onEdgeMouseLeave:()=>A(null),onNodeClick:B,onNodeMouseEnter:(H,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(Soe,{gap:16}),s.jsx(_oe,{showInteractive:!1}),s.jsx(Tle,{onRelayout:U})]})]})}const xc="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 em({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:ve(xc,"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 M$({id:e,commands:t}){return s.jsx("datalist",{id:e,children:t.map(n=>s.jsx("option",{value:n},n))})}function L$({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:ve(xc,"font-mono",i)})}function O$({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:ve("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:ve("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 HE="transitions-table-commands";function Ple({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=MJ(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:D0(),from:N||g,command:n[0]??"",to:g,label:"",description:"",requiresReason:!1};a([...e,C]),l(C.rowKey),p(A=>new Set(A).add(C.rowKey))}function j(N){p(C=>{const A=new Set(C);return A.has(N)?A.delete(N):A.add(N),A})}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(At,{className:"h-3 w-3"}),"Add transition"]})]}):s.jsxs("div",{className:"space-y-4",children:[h.map(N=>{const C=t.find(A=>A.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(At,{className:"h-3 w-3"}),"Add"]})]}),s.jsx("div",{className:"space-y-2",children:N.rows.map(A=>{const T=i.get(A.rowKey)??[],_=f.has(A.rowKey),O=A.rowKey===r;return s.jsxs("div",{onClick:()=>l(A.rowKey),className:ve("surface-panel px-3 py-2 transition-colors",O&&"ring-2 ring-primary/50"),children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsx("button",{type:"button",onClick:P=>{P.stopPropagation(),j(A.rowKey)},"aria-label":_?"Collapse row":"Expand row (label & description)","aria-expanded":_,className:"text-muted-foreground/60 hover:text-muted-foreground",children:_?s.jsx(tr,{className:"h-4 w-4"}):s.jsx(Vv,{className:"h-4 w-4"})}),s.jsx(em,{value:A.from,onChange:P=>k({...A,from:P}),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(L$,{value:A.command,onChange:P=>k({...A,command:P}),listId:HE,disabled:y,className:"min-w-[7rem] flex-1"}),s.jsx("span",{className:"text-muted-foreground","aria-hidden":!0,children:"→"}),s.jsx(em,{value:A.to,onChange:P=>k({...A,to:P}),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:P=>P.stopPropagation(),children:[s.jsx(O$,{checked:A.requiresReason,onChange:P=>k({...A,requiresReason:P}),disabled:y}),"reason"]}),T.length>0&&s.jsx("span",{className:"inline-flex items-center text-warning-foreground",title:T.map(P=>P.message).join(`
675
+ `),"aria-label":`${T.length} issue${T.length>1?"s":""}`,children:s.jsx(kc,{className:"h-3.5 w-3.5"})}),!y&&s.jsx("button",{type:"button",onClick:P=>{P.stopPropagation(),v(A.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(gn,{className:"h-3.5 w-3.5"})})]}),_&&s.jsxs("div",{className:"mt-2 grid gap-2 pl-6 sm:grid-cols-2",onClick:P=>P.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:A.label,onChange:P=>k({...A,label:P.target.value}),disabled:y,placeholder:"label",className:ve(xc,"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:A.description,onChange:P=>k({...A,description:P.target.value}),disabled:y,placeholder:"description",className:ve(xc,"w-full")})]})]})]},A.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(At,{className:"h-3 w-3"}),"Add transition"]}),s.jsx(M$,{id:HE,commands:n})]})}const VE="transition-inspector-commands";function _le({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(gn,{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(em,{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(L$,{value:l.command,onChange:g=>h({command:g}),listId:VE,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(em,{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:`${xc} 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:`${xc} w-full resize-y`})]}),s.jsxs("label",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[s.jsx(O$,{checked:l.requiresReason,onChange:g=>h({requiresReason:g}),disabled:i}),"Requires a reason"]}),s.jsx(M$,{id:VE,commands:n})]})}function Dle({value:e,onChange:t}){const n=[{id:"table",label:"Table",Icon:Q4},{id:"graph",label:"Graph",Icon:T2}];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:ve("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 $le(){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 Ile({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(kc,{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 Mle({value:e,customizing:t,statuses:n,knownCommands:r,onChange:o,onCustomize:i,disabled:a}){var K;const l=m.useMemo(()=>new Set(n.map($=>$.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 $=V=>{V.key==="Escape"&&j(!1)};return window.addEventListener("keydown",$),()=>window.removeEventListener("keydown",$)},[b]);const S=m.useMemo(()=>wv(w3()),[]),N=!t&&e.length===0,C=N?S:e,A=!N,T=m.useMemo(()=>OJ(C,n),[C,n]),_=m.useMemo(()=>FJ(C,n),[C,n]),O=m.useMemo(()=>{const $=new Map;for(const V of _){if(!V.rowKey)continue;const L=$.get(V.rowKey);L?L.push(V):$.set(V.rowKey,[V])}return $},[_]),P=A&&t?j3(e,l):[],W=e.find($=>$.rowKey===u)??null,I=((K=n[0])==null?void 0:K.id)??"";function z($){o(e.map(V=>V.rowKey===$.rowKey?$:V))}function U($){const V=new Set($);o(e.filter(L=>!V.has(L.rowKey))),u&&V.has(u)&&f(null)}function D($,V){const L={rowKey:D0(),from:$,command:r[0]??"",to:V,label:"",description:"",requiresReason:!1};o([...e,L]),f(L.rowKey)}function F($){v(!1),$.rowKey?f($.rowKey):$.statusId&&(h("graph"),y($.statusId))}const M=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:M,actions:s.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[s.jsx(Dle,{value:p,onChange:h}),s.jsx(Ile,{issues:_,open:k,onToggle:()=>v($=>!$),onNavigate:F}),p==="graph"&&s.jsxs("button",{type:"button",onClick:()=>j($=>!$),"aria-pressed":b,title:b?"Exit fullscreen":"Fullscreen",className:"shell-action text-xs inline-flex items-center gap-1",children:[b?s.jsx($1,{className:"h-3 w-3"}):s.jsx(N2,{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(I,I),disabled:a||n.length===0,className:"shell-action text-xs inline-flex items-center gap-1 disabled:opacity-50",children:[s.jsx(At,{className:"h-3 w-3"}),"Add transition"]})]}),children:[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 transitions won't save until fixed:"}),s.jsx("ul",{className:"mt-1 list-disc space-y-0.5 pl-4",children:P.map(($,V)=>s.jsx("li",{children:$},V))})]}),p==="table"?s.jsx(Ple,{value:C,statuses:n,knownCommands:r,selectedRowKey:u,editable:A,issuesByRowKey:O,onChange:o,onSelectRow:f,disabled:a}):s.jsxs("div",{className:ve(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($le,{}),b&&s.jsxs("button",{type:"button",onClick:()=>j(!1),className:"shell-action text-xs inline-flex items-center gap-1",children:[s.jsx($1,{className:"h-3 w-3"}),"Exit fullscreen"]})]}),s.jsxs("div",{className:ve("relative w-full",b?"min-h-0 flex-1":"h-[72vh] min-h-[520px]"),children:[s.jsx(Ale,{nodes:T.nodes,edges:T.edges,statuses:n,selectedRowKey:u,focusNodeId:g,editable:A&&!a,onSelectEdge:f,onFocusNode:y,onCreateEdge:D,onDeleteEdge:U}),A&&W&&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(Nc,{className:"h-3.5 w-3.5"})}),s.jsx(_le,{transition:W,statuses:n,knownCommands:r,onChange:z,onDelete:$=>U([$]),disabled:a})]})})]})]})]})}function Lle(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 Ole(){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,A]=m.useState([]),[T,_]=m.useState([]),[O,P]=m.useState({open:!1}),[W,I]=m.useState(()=>tb(Vp)),[z,U]=m.useState(!1),[D,F]=m.useState(!1),[M,K]=m.useState(!1),[$,V]=m.useState([]),[L,B]=m.useState(!1),[Y,H]=m.useState([]),[Q,J]=m.useState("statuses"),Z=m.useCallback(_e=>{const Qe=dJ(_e);l(Qe),i(_e.custom),v(new Set(Qe.map(Je=>Je.id))),j(new Map),A(_e.rawFacts??[]),_([]),I(tb(_e.derive??Vp)),U(_e.deriveCustom??!1),F(!1),K(!1),V(wv(_e.transitions??[])),B(_e.transitionsCustom??!1),H(_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 te(){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(()=>CJ(C),[C]),Se=m.useMemo(()=>Kw(Ce),[Ce]),ke=m.useMemo(()=>fJ(C),[C]),Be=m.useMemo(()=>{try{return v3(vv(W),a,Se)}catch{return["derive rules are malformed"]}},[W,a,Se]),ie=m.useMemo(()=>L?j3($,ge):[],[$,L,ge]),be=ke.length+Be.length+ie.length,ye=m.useCallback(_e=>{A(_e),y(!0)},[]),Re=m.useCallback(_e=>{I(_e),F(!0),K(!1),U(!0),y(!0)},[]),Ue=m.useCallback(()=>{I(tb(Vp)),K(!0),F(!0),U(!1),y(!0)},[]),rt=m.useCallback(_e=>{V(_e),y(!0)},[]),Oe=m.useCallback(()=>{V(_e=>_e.length>0?_e:wv(IJ(w3(),ge))),B(!0),y(!0)},[ge]);async function ot(_e=T){f(!0),h(null);try{const{body:Qe}=rJ({statuses:a,order:a.map(q=>q.id),pendingResolutions:b,facts:C,factRemovalAcks:_e,derive:M?null:D?vv(W):void 0,transitions:L?$J($):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){P({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 ne=Array.isArray(q.unresolved)?q.unresolved.map(xe=>xe.id).join(", "):"";throw new Error(`Cannot save — these statuses have assignments that need a resolution: ${ne}. 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 ne=q.applied?` (${q.applied.remapped} remapped, ${q.applied.deleted} deleted before the conflict)`:"";h({type:"error",message:`Concurrent edit detected${ne}: ${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:ne,deleted:xe}=q.applied,qe=q.message?`: ${q.message}`:"";h({type:"error",message:`Resolutions applied (${ne} 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),aN();const fe=ut.applied?` (${ut.applied.remapped} remapped, ${ut.applied.deleted} deleted)`:"";h({type:"success",message:`Status config saved${fe}`}),te()}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),aN(),h({type:"success",message:"Reset to defaults"}),te()}catch(_e){h({type:"error",message:_e instanceof Error?_e.message:"Reset failed"})}finally{f(!1)}}function ht(_e,Qe,Je){l(ut=>{const fe=[...ut];return fe[_e]={...fe[_e],[Qe]:Je},fe}),y(!0)}function it(){const _e=`status_${a.length+1}`;l(Qe=>[...Qe,{rowKey:g3(),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=>yC(fe,ut)),Je}),y(!0)}async function me(_e){const Qe=a[_e].id,Je=sJ(Qe,W,$),ut=oJ(Qe,W);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"?(I(q=>iJ(q,Je,Qe)),V(q=>aJ(q,Je,Qe))):(I(q=>lJ(q,Je,Qe)),V(q=>cJ(q,Je))),fe.some(q=>q.section!=="transitions")&&(F(!0),U(!0)),l(q=>{const ne=q.filter(qe=>qe.id!==Je),xe=new Set(ne.map(qe=>qe.id));return j(qe=>{const Fe=yC(qe,xe),lt=new Map(Fe);return ut.count>0&&lt.set(Je,_e),lt}),ne}),y(!0),N({open:!1})}function Pe(){if(!O.open)return;const _e=O.references.map(Je=>Je.factName),Qe=Array.from(new Set([...T,..._e]));_(Qe),P({open:!1}),ot(Qe)}function Ve(){N({open:!1})}return e?s.jsx(bt,{label:"Loading workflow..."}):n?s.jsx(Tt,{error:n}):s.jsx(ga,{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(qv,{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(Ym,{value:Q,onValueChange:J,items:[{value:"statuses",label:"Statuses",content:s.jsx(nJ,{statuses:a,savedStatusIds:k,onUpdate:ht,onAdd:it,onRemove:me,onReorder:_e=>{l(_e),y(!0)}})},{value:"transitions",label:"Transitions",problemCount:ie.length,content:s.jsx(Mle,{value:$,customizing:L,statuses:ue,knownCommands:Y,onChange:rt,onCustomize:Oe,disabled:u})},{value:"derive",label:"Derive Rules",problemCount:Be.length,content:s.jsx(RJ,{value:W,deriveCustom:z,statuses:ue,acceptedFacts:Ce,onChange:Re,onReset:Ue,disabled:u})},{value:"facts",label:"Facts",problemCount:ke.length,content:s.jsx(xJ,{rows:C,onChange:ye,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||be>0,children:[s.jsx(cm,{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:Lle({transitions:ie.length,derive:Be.length,facts:ke.length}).message})]})]}),S.open&&s.jsx(JQ,{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(ZQ,{open:O.open,references:O.open?O.references:[],onConfirm:Pe,onCancel:()=>{P({open:!1}),f(!1)}})]})})}const Co=e=>`${e.workspace}::${e.id}`;function WE(e){if(e.includes("/")){const[t,n]=e.split("/");return`/projects/${t}/assignments/${n}`}return`/assignments/${e}`}function Fle(){var fe;const{data:e,loading:t,error:n,refetch:r}=sT(),{toast:o,showToast:i,dismissToast:a}=Wn(),l=Wt(),[u,f]=m.useState(""),p=m.useRef(null);Ai("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),[A,T]=m.useState(null),[_,O]=m.useState(new Set),[P,W]=m.useState(!1),I=m.useRef(null),[z,U]=m.useState(null),D=k0("all"),[F,M]=m.useState(null),[K,$]=m.useState(null),V=m.useRef(null);m.useEffect(()=>{let q=!1;return(async()=>{try{const ne=await fetch("/api/projects");if(!ne.ok)return;const xe=await ne.json();q||U(xe.filter(qe=>!qe.archived))}catch{}})(),()=>{q=!0}},[]);async function L(q,ne){q.stopPropagation(),await Xd(ne)&&(C(ne),setTimeout(()=>C(xe=>xe===ne?null:xe),1500))}const B=m.useMemo(()=>{if(!(e!=null&&e.workspaces))return[];const q=[];for(const ne of e.workspaces)for(const xe of ne.items)q.push({...xe,workspace:ne.workspace});return q},[e]),Y=m.useMemo(()=>{const q=new Set;for(const ne of B)for(const xe of ne.tags)q.add(xe);return Array.from(q).sort()},[B]),H=m.useMemo(()=>{let q=B;if(u.trim()){const ne=u.toLowerCase();q=q.filter(xe=>xe.description.toLowerCase().includes(ne)||xe.tags.some(qe=>qe.toLowerCase().includes(ne))||xe.id.includes(ne))}return h&&(q=q.filter(ne=>ne.status===h)),y&&(q=q.filter(ne=>ne.tags.includes(y))),q},[B,u,h,y]);m.useEffect(()=>{O(new Set),I.current=null},[u,h,y]);const Q=m.useMemo(()=>H.filter(q=>_.has(Co(q))),[H,_]),J=H.length>0&&Q.length===H.length,Z=Q.length>0&&!J,oe=m.useMemo(()=>{if(Q.length===0)return null;const q=new Set(Q.map(ne=>ne.workspace));return q.size===1?[...q][0]:null},[Q]),te=m.useMemo(()=>{if(!oe||!z)return;const q=z.filter(ne=>ne.workspace===oe);return q.length===1?q[0].slug:void 0},[oe,z]),ue=((fe=Q[0])==null?void 0:fe.description)??"",ge=m.useMemo(()=>{if(oe)return null;const q=new Map;for(const ne of Q)q.has(ne.workspace)||q.set(ne.workspace,[]),q.get(ne.workspace).push(ne.id);return Array.from(q,([ne,xe])=>({workspace:ne,todoIds:xe}))},[Q,oe]),Ce=oe?{kind:"workspace",workspace:oe}:{kind:"aggregate",groups:ge??[]};function Se(q,ne,xe){const qe=Co(q),Fe=!!(xe&&"shiftKey"in xe&&xe.shiftKey),lt=I.current?it.findIndex(mt=>Co(mt)===I.current):-1;if(Fe&&lt!==-1){const mt=Math.min(lt,ne),vt=Math.max(lt,ne);O(nt=>{const _t=new Set(nt);for(let Bt=mt;Bt<=vt;Bt++){const Ut=it[Bt];Ut&&_t.add(Co(Ut))}return _t})}else O(mt=>{const vt=new Set(mt);return vt.has(qe)?vt.delete(qe):vt.add(qe),vt});I.current=qe}function ke(){O(q=>{const ne=new Set(q);if(J)for(const xe of H)ne.delete(Co(xe));else for(const xe of H)ne.add(Co(xe));return ne})}function Be(){O(new Set),I.current=null}function ie(q){Be(),r(),q!=null&&q.assignmentRef&&l(WE(q.assignmentRef))}const be=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 ne of e.workspaces)q.open+=ne.counts.open,q.in_progress+=ne.counts.in_progress,q.completed+=ne.counts.completed,q.blocked+=ne.counts.blocked,q.total+=ne.counts.total;return q},[e]);function ye(q){i(q instanceof Error?q.message:"Action failed","error")}async function Re(){if(v.trim())try{await nw(j,v.trim()),b(""),r(),i("Todo added","success")}catch(q){ye(q)}}async function Ue(q,ne,xe){try{switch(xe){case"open":await lT(q,ne);break;case"in_progress":await aT(q,ne);break;case"completed":await oT(q,ne);break;case"blocked":await iT(q,ne);break}r(),i("Todo updated","success")}catch(qe){ye(qe)}}async function rt(q,ne){try{await cT(q,ne),r(),i("Todo deleted","success")}catch(xe){ye(xe)}}async function Oe(q,ne,xe){try{await uT(q,ne,xe),r(),i("Todo updated","success")}catch(qe){throw ye(qe),qe}}async function ot(q,ne,xe){try{await dT(q,ne,xe),r(),i(xe.length===1?"Attachment added":`${xe.length} attachments added`,"success")}catch(qe){ye(qe)}}async function St(q,ne,xe){try{await fT(q,ne,xe),r(),i("Attachment removed","success")}catch(qe){ye(qe)}}const ht=j0(H),it=ht.filter(q=>!D.isCollapsed(q.config.id)).flatMap(q=>q.items),{hotkeyRowProps:ce}=zd(it,{scope:"list:todos",bindO:!1,onOpen:q=>T(Co(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]=Rs(),Pe=me.get("focus");m.useEffect(()=>{if(!Pe)return;const q=B.find(xe=>xe.id===Pe);if(!q)return;const ne=Zm(q.status);D.isCollapsed(ne)&&D.toggle(ne)},[Pe,B]),m.useEffect(()=>{if(!Pe)return;const q=document.querySelector(`[data-todo-id="${CSS.escape(Pe)}"]`);if(!q)return;q.scrollIntoView({block:"nearest"}),q.classList.add("ring-2","ring-primary/60");const ne=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(ne)},[Pe,it.length,Ie]);const Ve=F?H.find(q=>Co(q)===F)??null:null;function pt(q,ne){const xe=V.current;if(xe!=null&&xe.closest(ic)){q.preventDefault();return}q.dataTransfer.effectAllowed="move",q.dataTransfer.setData("text/plain",ne),M(ne)}function _e(){M(null),$(null)}function Qe(q,ne){!Ve||ne.statuses.includes(Ve.status)||(q.preventDefault(),q.dataTransfer.dropEffect="move",$(ne.id))}function Je(q,ne){K===ne.id&&!q.currentTarget.contains(q.relatedTarget)&&$(null)}function ut(q,ne){q.preventDefault();const xe=Ve;_e(),!(!xe||ne.statuses.includes(xe.status))&&Ue(xe.workspace,xe.id,ne.dropStatus)}return t?s.jsx(bt,{label:"Loading todos..."}):n?s.jsx(Tt,{error:n}):s.jsxs("div",{className:"space-y-4",children:[s.jsx(Vn,{toast:o,onDismiss:a}),s.jsxs("div",{className:"grid gap-3 grid-cols-[repeat(auto-fill,minmax(140px,1fr))]",children:[s.jsx(Yn,{label:"Open",value:be.open,icon:ys}),s.jsx(Yn,{label:"In Progress",value:be.in_progress,icon:Gv,tone:"info"}),s.jsx(Yn,{label:"Blocked",value:be.blocked,icon:kc,tone:"warn"}),s.jsx(Yn,{label:"Completed",value:be.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(At,{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(Ci,{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:()=>W(!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,H.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 (",H.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 ht.map(({config:ne,items:xe})=>{const qe=!D.isCollapsed(ne.id);return s.jsx(w0,{label:ne.label,count:xe.length,expanded:qe,onToggle:()=>D.toggle(ne.id),isDropTarget:K===ne.id,onDragOver:Fe=>Qe(Fe,ne),onDragLeave:Fe=>Je(Fe,ne),onDrop:Fe=>ut(Fe,ne),children:qe&&xe.map(Fe=>{q+=1;const lt=q,mt=Co(Fe),vt=_.has(mt);return s.jsxs("div",{draggable:!0,"data-todo-id":Fe.id,...ce(lt),onMouseDown:nt=>{V.current=nt.target},onDragStart:nt=>pt(nt,mt),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":""} ${F===mt?"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:nt=>{nt.stopPropagation(),Se(Fe,lt,nt)},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(v_,{status:Fe.status,onChange:nt=>Ue(Fe.workspace,Fe.id,nt)})}),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(j_,{description:Fe.description,status:Fe.status,editing:A===mt,onBeginEdit:()=>T(mt),onEndEdit:()=>T(null),onSave:nt=>Oe(Fe.workspace,Fe.id,nt)}),Fe.tags.length>0&&s.jsx("span",{className:"text-xs text-muted-foreground",children:Fe.tags.map(nt=>`#${nt}`).join(" ")}),Fe.linkedAssignmentRef?s.jsxs($e,{to:WE(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:nt=>nt.stopPropagation(),children:[s.jsx(im,{className:"h-2.5 w-2.5"}),Fe.linkedAssignmentRef.includes("/")?Fe.linkedAssignmentRef:`oneoff:${Fe.linkedAssignmentRef.slice(0,8)}`]}):null]}),s.jsx(k_,{item:Fe,attachmentUrl:(nt,_t)=>rw(Fe.workspace,nt,_t),onAdd:nt=>ot(Fe.workspace,Fe.id,nt),onDelete:nt=>St(Fe.workspace,Fe.id,nt)})]}),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:nt=>nt.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(Nr,{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:nt=>L(nt,Fe.id),children:["t:",Fe.id]}),s.jsx("button",{className:"text-muted-foreground/40 hover:text-foreground transition",title:"Copy ID",onClick:nt=>L(nt,Fe.id),children:s.jsx(dh,{className:"h-3 w-3"})})]}),s.jsx("button",{onClick:nt=>{nt.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}`)})},ne.id)})})()}),s.jsx(v0,{open:P,selectedIds:Q.map(q=>q.id),scope:Ce,onOpenChange:W,onDone:ie,defaultProject:te,defaultTitle:ue,allowOneOff:!0})]})}const zle={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 Ble({bundle:e}){const t=zle[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 Ule({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(Ble,{bundle:n},n.id))]})}function Hle(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]),Ei(u=>{u.type==="todos-updated"&&!u.projectSlug&&l()}),{data:t,loading:r,error:i,refetch:l}}function Vle(){const{workspace:e}=Kt(),t=e||"_global",{data:n,loading:r,error:o,refetch:i}=jO(t),{toast:a,showToast:l,dismissToast:u}=Wn(),{data:f}=Hle(t),[p,h]=m.useState(""),[g,y]=m.useState(""),[k,v]=m.useState(""),[b,j]=m.useState(""),[S,N]=m.useState(null),[C,A]=m.useState(!1),[T,_]=m.useState(null),[O,P]=m.useState(null),[W,I]=m.useState(new Set),[z,U]=m.useState(!1),[D,F]=m.useState(!1),[M,K]=m.useState(null),$=m.useRef(null);Ai("list:todos");const V=k0("workspace:"+t),[L,B]=m.useState(null),[Y,H]=m.useState(null),Q=m.useRef(null);async function J(q,ne){q.stopPropagation(),await Xd(ne)&&(_(ne),setTimeout(()=>_(xe=>xe===ne?null:xe),1500))}const Z=m.useMemo(()=>{if(!(n!=null&&n.items))return[];const q=new Set;for(const ne of n.items)for(const xe of ne.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 ne=p.toLowerCase();q=q.filter(xe=>xe.description.toLowerCase().includes(ne)||xe.tags.some(qe=>qe.toLowerCase().includes(ne))||xe.id.includes(ne))}return g&&(q=q.filter(ne=>ne.status===g)),k&&(q=q.filter(ne=>ne.tags.includes(k))),q},[n,p,g,k]);m.useEffect(()=>{I(new Set)},[p,g,k,t]);const te=m.useMemo(()=>oe.filter(q=>W.has(q.id)).length,[oe,W]),ue=oe.length>0&&te===oe.length,ge=te>0&&!ue;function Ce(q){I(ne=>{const xe=new Set(ne);return xe.has(q)?xe.delete(q):xe.add(q),xe})}function Se(){I(q=>{const ne=new Set(q);if(ue)for(const xe of oe)ne.delete(xe.id);else for(const xe of oe)ne.add(xe.id);return ne})}function ke(){I(new Set)}const Be=M?[M]:Array.from(W);function ie(){I(new Set),K(null),i()}function be(){I(new Set),i()}function ye(q){l(q instanceof Error?q.message:"Action failed","error")}async function Re(){if(b.trim())try{await nw(t,b.trim()),j(""),i()}catch(q){ye(q)}}function Ue(q,ne,xe){q.stopPropagation(),N({id:ne,description:xe})}async function rt(q,ne){try{switch(ne){case"open":await lT(t,q);break;case"in_progress":await aT(t,q);break;case"completed":await oT(t,q);break;case"blocked":await iT(t,q);break}i()}catch(xe){ye(xe)}}async function Oe(q,ne){try{await uT(t,q,ne),i()}catch(xe){throw ye(xe),xe}}async function ot(q,ne){try{await dT(t,q,ne),i()}catch(xe){ye(xe)}}async function St(q,ne){try{await fT(t,q,ne),i()}catch(xe){ye(xe)}}const ht=j0(oe),it=ht.filter(q=>!V.isCollapsed(q.config.id)).flatMap(q=>q.items),{hotkeyRowProps:ce}=zd(it,{scope:"list:todos",bindO:!1,onOpen:q=>P(q.id)});en({keys:"/",scope:"list:todos",description:"Focus filter",handler:()=>{var q;return(q=$.current)==null?void 0:q.focus()}}),en({keys:"r",scope:"list:todos",description:"Refresh",handler:()=>i()});const[me,Ie]=Rs(),Pe=me.get("focus");m.useEffect(()=>{if(!Pe||!(n!=null&&n.items))return;const q=n.items.find(xe=>xe.id===Pe);if(!q)return;const ne=Zm(q.status);V.isCollapsed(ne)&&V.toggle(ne)},[Pe,n==null?void 0:n.items]),m.useEffect(()=>{if(!Pe)return;const q=document.querySelector(`[data-todo-id="${window.CSS.escape(Pe)}"]`);if(!q)return;q.scrollIntoView({block:"nearest"}),q.classList.add("ring-2","ring-primary/60");const ne=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(ne)},[Pe,it.length,Ie]);const Ve=L?(n==null?void 0:n.items.find(q=>q.id===L))??null:null;function pt(q,ne){const xe=Q.current;if(xe!=null&&xe.closest(ic)){q.preventDefault();return}q.dataTransfer.effectAllowed="move",q.dataTransfer.setData("text/plain",ne),B(ne)}function _e(){B(null),H(null)}function Qe(q,ne){!Ve||ne.statuses.includes(Ve.status)||(q.preventDefault(),q.dataTransfer.dropEffect="move",H(ne.id))}function Je(q,ne){Y===ne.id&&!q.currentTarget.contains(q.relatedTarget)&&H(null)}function ut(q,ne){q.preventDefault();const xe=Ve;_e(),!(!xe||ne.statuses.includes(xe.status))&&rt(xe.id,ne.dropStatus)}if(r)return s.jsx(bt,{label:"Loading todos..."});if(o)return s.jsx(Tt,{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(Vn,{toast:a,onDismiss:u}),s.jsx(os,{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){A(!0);try{await cT(t,S.id),i(),N(null)}catch(q){ye(q)}finally{A(!1)}}}}),s.jsxs("div",{className:"grid gap-3 grid-cols-[repeat(auto-fill,minmax(140px,1fr))]",children:[s.jsx(Yn,{label:"Open",value:fe.open,icon:ys}),s.jsx(Yn,{label:"In Progress",value:fe.in_progress,icon:ys,tone:"info"}),s.jsx(Yn,{label:"Blocked",value:fe.blocked,icon:kc,tone:"warn"}),s.jsx(Yn,{label:"Total",value:fe.total,icon:ys})]}),f&&s.jsx(Ule,{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(At,{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(Ci,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),s.jsx("input",{ref:$,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))]})]}),W.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:[W.size," selected"]}),s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("button",{type:"button",onClick:()=>U(!0),className:"shell-action shell-action--cta",children:"Promote selected"}),s.jsx("button",{type:"button",onClick:()=>{K(null),F(!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 ht.map(({config:ne,items:xe})=>{const qe=!V.isCollapsed(ne.id);return s.jsx(w0,{label:ne.label,count:xe.length,expanded:qe,onToggle:()=>V.toggle(ne.id),isDropTarget:Y===ne.id,onDragOver:Fe=>Qe(Fe,ne),onDragLeave:Fe=>Je(Fe,ne),onDrop:Fe=>ut(Fe,ne),children:qe&&xe.map(Fe=>(q+=1,s.jsx(w_,{item:Fe,copiedId:T,selected:W.has(Fe.id),editing:O===Fe.id,onBeginEdit:lt=>P(lt),onEndEdit:()=>P(null),onPatchDescription:Oe,onAddAttachments:ot,onDeleteAttachment:St,attachmentUrl:(lt,mt)=>rw(t,lt,mt),onToggleSelected:lt=>Ce(lt),onMoveOne:(lt,mt)=>{mt.stopPropagation(),K(lt),F(!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)))},ne.id)})})()}),s.jsx(v0,{open:z,selectedIds:Array.from(W),scope:{kind:"workspace",workspace:t},onOpenChange:U,onDone:be}),s.jsx(S_,{open:D,selectedIds:Be,scope:{kind:"workspace",workspace:t},onOpenChange:q=>{F(q),q||K(null)},onDone:ie})]})}function F$(){const{views:e}=Wd();async function t(i,a,l){const u=e.find(h=>h.id===i.id)??i,f=lP(l,u.workspace).config,p=Ah(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=Zw(l,u.workspace).config,p=Ah(u.config,f,u.config);await Nh(i.id,{name:a,config:p})}async function r(i){await rc({name:`${i.name} (copy)`,workspace:i.workspace,config:i.config,entityType:i.entityType})}async function o(i){await M7(i.id)}return{submitEdit:t,submitEditSession:n,duplicate:r,remove:o}}const KE=80,Wle={kanban:"Kanban",list:"List",table:"Table"},Kle={title:"Title",status:"Status",priority:"Priority",assignee:"Assignee",dependencies:"Dependencies",created:"Created",updated:"Updated"};function z$({open:e,onOpenChange:t,workspace:n,initialView:r,onSubmit:o}){const i=!!r,a=rs(),l=Fd(),{data:u}=oo(),{data:f}=dm(),[p,h]=m.useState(""),[g,y]=m.useState(bl.viewMode),[k,v]=m.useState([]),[b,j]=m.useState([]),[S,N]=m.useState([]),[C,A]=m.useState([]),[T,_]=m.useState([]),[O,P]=m.useState([]),[W,I]=m.useState("all"),[z,U]=m.useState(null),[D,F]=m.useState(""),[M,K]=m.useState(bl.sortField),[$,V]=m.useState(bl.sortDirection),[L,B]=m.useState(!1),[Y,H]=m.useState(null);function Q(){y(bl.viewMode),v([]),j([]),N([]),A([]),_([]),P([]),I("all"),U(null),F(""),K(bl.sortField),V(bl.sortDirection)}m.useEffect(()=>{if(e)if(H(null),B(!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)),A(He(ie.project)),_(He(ie.assignee)),P(He(ie.tags)),I(ie.activity??"all"),U(Wm(ie.dateRange)),F(ie.search??""),K(r.config.sortField),V(r.config.sortDirection)}else h(""),Q()},[e,r]);const J=ie=>be=>ie?ie==="_ungrouped"?be.projectWorkspace===null:be.projectWorkspace===ie:!0,Z=m.useMemo(()=>{const ie=ye=>n?n==="_ungrouped"?ye.workspace===null:ye.workspace===n:!0,be=(u??[]).filter(ie);return[{value:"__standalone__",label:"No project"},...be.map(ye=>({value:ye.slug,label:ye.title}))]},[u,n]),oe=m.useMemo(()=>{const ie=new Set,be=J(n);for(const Re of(f==null?void 0:f.assignments)??[])be(Re)&&Re.assignee&&ie.add(Re.assignee);const ye=[{value:"__unassigned__",label:"Unassigned"}];for(const Re of Array.from(ie).sort())ye.push({value:Re,label:Re});return ye},[f,n]),te=m.useMemo(()=>{const ie=new Set,be=J(n);for(const ye of(f==null?void 0:f.assignments)??[])if(be(ye))for(const Re of ye.tags??[])ie.add(Re);return Array.from(ie).sort().map(ye=>({value:ye,label:ye}))},[f,n]),ue=m.useMemo(()=>a.order.map(ie=>({value:ie,label:es(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:Hl(l,ie.id)})),[l]),Se=bw.map(ie=>({value:ie,label:Wle[ie]})),ke=p.trim(),Be=ke.length>0&&ke.length<=KE;return s.jsx(Mn,{open:e,onOpenChange:t,children:s.jsx(Sn,{className:"max-w-lg",children:s.jsxs("form",{className:"space-y-4",onSubmit:async ie=>{if(ie.preventDefault(),!Be||L)return;B(!0),H(null);const be={viewMode:g,filters:{status:k,priority:b,type:S,project:C,assignee:T,tags:O,activity:W,dateRange:xa(z),search:D},sortField:M,sortDirection:$};try{await o(ke,be)}catch(ye){H(ye instanceof Error?ye.message:String(ye)),B(!1)}},children:[s.jsx(sr,{children:s.jsx(Cn,{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:KE,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(qm,{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(Vs,{label:"Status",children:s.jsx(kn,{ariaLabel:"Status filter",className:"w-full",allLabel:"All statuses",options:ue,value:k,onChange:v})}),s.jsx(Vs,{label:"Priority",children:s.jsx(kn,{ariaLabel:"Priority filter",className:"w-full",allLabel:"All priorities",options:ge,value:b,onChange:j})}),s.jsx(Vs,{label:"Type",children:s.jsx(kn,{ariaLabel:"Type filter",className:"w-full",allLabel:"All types",options:Ce,value:S,onChange:N})}),s.jsx(Vs,{label:"Project",children:s.jsx(kn,{ariaLabel:"Project filter",className:"w-full",allLabel:"All projects",options:Z,value:C,onChange:A})}),s.jsx(Vs,{label:"Assignee",children:s.jsx(kn,{ariaLabel:"Assignee filter",className:"w-full",allLabel:"All assignees",options:oe,value:T,onChange:_})}),s.jsx(Vs,{label:"Tags",children:s.jsx(kn,{ariaLabel:"Tags filter",className:"w-full",allLabel:"Any tags",options:te,value:O,onChange:P})}),s.jsx(Vs,{label:"Activity",children:s.jsxs("select",{value:W,onChange:ie=>I(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(Vs,{label:"Date range",children:s.jsx(Vm,{className:"w-full",value:z,onChange:U})}),s.jsx(Vs,{label:"Search",className:"sm:col-span-2",children:s.jsx("input",{type:"text",value:D,onChange:ie=>F(ie.target.value),placeholder:"Title / slug / project contains…",className:"editor-input w-full"})}),s.jsx(Vs,{label:"Sort by",className:"sm:col-span-2",children:s.jsxs("div",{className:"flex gap-2",children:[s.jsx("select",{value:M,onChange:ie=>K(ie.target.value),className:"editor-input w-full",children:JT.map(ie=>s.jsx("option",{value:ie,children:Kle[ie]??ie},ie))}),s.jsx("button",{type:"button",onClick:()=>V(ie=>ie==="asc"?"desc":"asc"),className:"shell-action shrink-0",title:$==="asc"?"Ascending":"Descending",children:$==="asc"?"Asc":"Desc"})]})})]}),Y?s.jsx("p",{className:"text-xs text-error-foreground",role:"alert",children:Y}):null,s.jsxs(Hr,{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 Vs({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 qle={kanban:"Kanban",list:"List",table:"Table"},Gle={assignment:"Assignment",session:"Session"},Yle={assignment:"bg-muted text-muted-foreground",session:"bg-primary/10 text-primary"};function qE(){const{workspace:e}=Kt(),{views:t,loading:n}=Wd(),{submitEdit:r,submitEditSession:o,duplicate:i,remove:a}=F$(),{toast:l,showToast:u,dismissToast:f}=Wn(),[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(U,D){const{workspace:F,config:M}=lP(D,e??null);try{await rc({name:U,workspace:F,config:M}),v(!1),u(`Created view "${U}"`)}catch(K){throw u(K instanceof Error?K.message:"Failed to create saved view"),K}}async function A(U,D){const{workspace:F,config:M}=Zw(D,e??null);try{await rc({name:U,workspace:F,config:M,entityType:"session"}),j(!1),u(`Created session view "${U}"`)}catch(K){throw u(K instanceof Error?K.message:"Failed to create session view"),K}}async function T(U,D,F){try{await r(U,D,F),N(null),u(`Updated view "${D}"`)}catch(M){throw u(M instanceof Error?M.message:"Failed to update saved view"),M}}async function _(U,D,F){try{await o(U,D,F),N(null),u(`Updated session view "${D}"`)}catch(M){throw u(M instanceof Error?M.message:"Failed to update session view"),M}}async function O(U){try{await i(U),u(`Duplicated "${U.name}"`)}catch(D){u(D instanceof Error?D.message:"Failed to duplicate saved view")}}async function P(){if(p){y(!0);try{await a(p),h(null)}catch(U){u(U instanceof Error?U.message:"Failed to delete saved view")}finally{y(!1)}}}const W=s.jsxs("button",{type:"button",onClick:()=>v(!0),className:"shell-action inline-flex items-center gap-1.5 shell-action--cta",children:[s.jsx(At,{className:"h-4 w-4"}),"Create view"]}),I=s.jsxs("button",{type:"button",onClick:()=>j(!0),className:"shell-action inline-flex items-center gap-1.5",children:[s.jsx(At,{className:"h-4 w-4"}),"Create session view"]}),z=(S==null?void 0:S.entityType)==="session";return s.jsxs("div",{className:"space-y-4",children:[s.jsx($h,{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:[I,W]})}),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:[I,W]})}):s.jsx(We,{children:s.jsx("ul",{className:"divide-y divide-border/60",children:t.map(U=>s.jsx(Xle,{view:U,onRequestDelete:()=>h(U),onRequestEdit:()=>N(U),onRequestDuplicate:()=>void O(U)},U.id))})}),s.jsx(z$,{open:k||!z&&S!==null,onOpenChange:U=>{U||(v(!1),z||N(null))},workspace:S&&!z?S.workspace:e??null,initialView:S&&!z?S:null,onSubmit:S&&!z?(U,D)=>T(S,U,D):C}),s.jsx(pP,{open:b||z&&S!==null,onOpenChange:U=>{U||(j(!1),z&&N(null))},workspace:S&&z?S.workspace:e??null,initialView:S&&z?S:null,onSubmit:S&&z?(U,D)=>_(S,U,D):A}),s.jsx(os,{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:P,onOpenChange:U=>{!U&&!g&&h(null)}}),s.jsx(Vn,{toast:l,onDismiss:f})]})}function Xle({view:e,onRequestDelete:t,onRequestEdit:n,onRequestDuplicate:r}){const o=Wt(),i=()=>o(uP(e)),a=fP(e.config.filters),l=e.workspace?mn(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 ${Yle[u]??"bg-muted text-muted-foreground"}`,children:Gle[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:qle[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 Qle={kanban:"Kanban",list:"List",table:"Table"};function GE(){const{id:e,workspace:t}=Kt(),n=Wt(),{view:r,ready:o,error:i,refetch:a}=ki(e),{submitEdit:l,duplicate:u,remove:f}=F$(),{toast:p,showToast:h,dismissToast:g}=Wn(),[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(uP(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($h,{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?mn(r.workspace):null;async function C(_,O){const P=r;try{await l(P,_,O),k(!1),h(`Updated view "${_}"`)}catch(W){throw h(W instanceof Error?W.message:"Failed to update saved view"),W}}async function A(){const _=r;try{await u(_),h(`Duplicated "${_.name}"`)}catch(O){h(O instanceof Error?O.message:"Failed to duplicate saved view")}}async function T(){const _=r;S(!0);try{await f(_),b(!1),n(Qp(_.workspace))}catch(O){h(O instanceof Error?O.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($h,{title:r.name,description:fP(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:Qle[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 A(),className:"shell-action",children:"Duplicate"}),s.jsx("button",{type:"button",onClick:()=>n(dP(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(iP,{view:r}),y?s.jsx(z$,{open:y,onOpenChange:k,workspace:r.workspace,initialView:r,onSubmit:C}):null,s.jsx(os,{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:_=>{!_&&!j&&b(!1)}}),s.jsx(Vn,{toast:p,onDismiss:g})]})}function Jle(){return s.jsx(YL,{children:s.jsx(Gz,{children:s.jsx(NL,{children:s.jsxs(Ye,{element:s.jsx(OB,{}),children:[s.jsx(Ye,{path:"/",element:s.jsx(Q9,{})}),s.jsx(Ye,{path:"/inbox",element:s.jsx(sV,{})}),s.jsx(Ye,{path:"/projects",element:s.jsx(YN,{})}),s.jsx(Ye,{path:"/archive",element:s.jsx(NV,{})}),s.jsx(Ye,{path:"/assignments",element:s.jsx(iC,{})}),s.jsx(Ye,{path:"/assignments/new",element:s.jsx(uC,{})}),s.jsx(Ye,{path:"/assignments/:id",element:s.jsx(mX,{})}),s.jsx(Ye,{path:"/assignments/:id/edit",element:s.jsx(Gy,{})}),s.jsx(Ye,{path:"/assignments/:id/plan/edit",element:s.jsx(Yy,{})}),s.jsx(Ye,{path:"/assignments/:id/scratchpad/edit",element:s.jsx(Xy,{})}),s.jsx(Ye,{path:"/assignments/:id/handoff/edit",element:s.jsx(Qy,{})}),s.jsx(Ye,{path:"/assignments/:id/decision-record/edit",element:s.jsx(Jy,{})}),s.jsx(Ye,{path:"/servers",element:s.jsx(fC,{})}),s.jsx(Ye,{path:"/inventories",element:s.jsx(pC,{})}),s.jsx(Ye,{path:"/schedules",element:s.jsx(aQ,{})}),s.jsx(Ye,{path:"/usage",element:s.jsx(hC,{})}),s.jsx(Ye,{path:"/agent-sessions",element:s.jsx(mC,{})}),s.jsx(Ye,{path:"/playbooks",element:s.jsx(fQ,{})}),s.jsx(Ye,{path:"/playbooks/create",element:s.jsx(hQ,{})}),s.jsx(Ye,{path:"/playbooks/:slug",element:s.jsx(pQ,{})}),s.jsx(Ye,{path:"/playbooks/:slug/edit",element:s.jsx(mQ,{})}),s.jsx(Ye,{path:"/memories",element:s.jsx(gQ,{})}),s.jsx(Ye,{path:"/memories/new",element:s.jsx(yQ,{})}),s.jsx(Ye,{path:"/projects/:slug/memories/:itemSlug",element:s.jsx(xQ,{})}),s.jsx(Ye,{path:"/projects/:slug/memories/:itemSlug/edit",element:s.jsx(bQ,{})}),s.jsx(Ye,{path:"/resources",element:s.jsx(vQ,{})}),s.jsx(Ye,{path:"/resources/new",element:s.jsx(jQ,{})}),s.jsx(Ye,{path:"/projects/:slug/resources/:itemSlug",element:s.jsx(wQ,{})}),s.jsx(Ye,{path:"/projects/:slug/resources/:itemSlug/edit",element:s.jsx(kQ,{})}),s.jsx(Ye,{path:"/todos",element:s.jsx(Fle,{})}),s.jsx(Ye,{path:"/views",element:s.jsx(qE,{})}),s.jsx(Ye,{path:"/views/:id",element:s.jsx(GE,{})}),s.jsx(Ye,{path:"/help",element:s.jsx(fV,{})}),s.jsx(Ye,{path:"/settings",element:s.jsx(QQ,{})}),s.jsx(Ye,{path:"/workflow",element:s.jsx(Ole,{})}),s.jsx(Ye,{path:"/create/project",element:s.jsx(lC,{})}),s.jsx(Ye,{path:"/projects/:slug",element:s.jsx(XS,{})}),s.jsx(Ye,{path:"/projects/:slug/edit",element:s.jsx(dC,{})}),s.jsx(Ye,{path:"/projects/:slug/create/assignment",element:s.jsx(cC,{})}),s.jsx(Ye,{path:"/projects/:slug/assignments/:aslug",element:s.jsx(tC,{})}),s.jsx(Ye,{path:"/projects/:slug/assignments/:aslug/edit",element:s.jsx(Gy,{})}),s.jsx(Ye,{path:"/projects/:slug/assignments/:aslug/plan/edit",element:s.jsx(Yy,{})}),s.jsx(Ye,{path:"/projects/:slug/assignments/:aslug/scratchpad/edit",element:s.jsx(Xy,{})}),s.jsx(Ye,{path:"/projects/:slug/assignments/:aslug/handoff/edit",element:s.jsx(Qy,{})}),s.jsx(Ye,{path:"/projects/:slug/assignments/:aslug/decision-record/edit",element:s.jsx(Jy,{})}),s.jsx(Ye,{path:"/w/:workspace/projects",element:s.jsx(YN,{})}),s.jsx(Ye,{path:"/w/:workspace/assignments",element:s.jsx(iC,{})}),s.jsx(Ye,{path:"/w/:workspace/assignments/new",element:s.jsx(uC,{})}),s.jsx(Ye,{path:"/w/:workspace/servers",element:s.jsx(fC,{})}),s.jsx(Ye,{path:"/w/:workspace/inventories",element:s.jsx(pC,{})}),s.jsx(Ye,{path:"/w/:workspace/usage",element:s.jsx(hC,{})}),s.jsx(Ye,{path:"/w/:workspace/agent-sessions",element:s.jsx(mC,{})}),s.jsx(Ye,{path:"/w/:workspace/todos",element:s.jsx(Vle,{})}),s.jsx(Ye,{path:"/w/:workspace/views",element:s.jsx(qE,{})}),s.jsx(Ye,{path:"/w/:workspace/views/:id",element:s.jsx(GE,{})}),s.jsx(Ye,{path:"/w/:workspace/create/project",element:s.jsx(lC,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug",element:s.jsx(XS,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/edit",element:s.jsx(dC,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/create/assignment",element:s.jsx(cC,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/assignments/:aslug",element:s.jsx(tC,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/assignments/:aslug/edit",element:s.jsx(Gy,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/assignments/:aslug/plan/edit",element:s.jsx(Yy,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/assignments/:aslug/scratchpad/edit",element:s.jsx(Xy,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/assignments/:aslug/handoff/edit",element:s.jsx(Qy,{})}),s.jsx(Ye,{path:"/w/:workspace/projects/:slug/assignments/:aslug/decision-record/edit",element:s.jsx(Jy,{})})]})})})})}z5();NM.createRoot(document.getElementById("root")).render(s.jsx(m.StrictMode,{children:s.jsx(B5,{children:s.jsx(Jle,{})})}));export{tf as C,wr as R,YV as _,sd as a,ece as b,M0 as d,F3 as e,_d as g,tce as h,qs as i,U3 as n,Mee as r,Fr as s};