@spencerboucher/switchyard 0.8.0 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/bridge/lines.js +33 -0
- package/dist/bridge/switchyard-terminal.js +59 -22
- package/dist/switchyard.mjs +9769 -7208
- package/dist/terminal/holder.js +172 -55
- package/package.json +1 -1
- package/web-dist/apple-touch-icon.png +0 -0
- package/web-dist/assets/AutomationView-BsTwLnMp.js +2 -0
- package/web-dist/assets/AutomationView-BsTwLnMp.js.map +1 -0
- package/web-dist/assets/Card-CAFxHoHd.js +2 -0
- package/web-dist/assets/Card-CAFxHoHd.js.map +1 -0
- package/web-dist/assets/Checkbox-rDvnQnxc.js +2 -0
- package/web-dist/assets/Checkbox-rDvnQnxc.js.map +1 -0
- package/web-dist/assets/Copy-D8xhl7eJ.js +2 -0
- package/web-dist/assets/Copy-D8xhl7eJ.js.map +1 -0
- package/web-dist/assets/DangerZone-og55TRug.js +2 -0
- package/web-dist/assets/DangerZone-og55TRug.js.map +1 -0
- package/web-dist/assets/Field-Dbg_8KTt.js +2 -0
- package/web-dist/assets/Field-Dbg_8KTt.js.map +1 -0
- package/web-dist/assets/InteractionCard-Yu5wgLC3.js +6 -0
- package/web-dist/assets/InteractionCard-Yu5wgLC3.js.map +1 -0
- package/web-dist/assets/Menu-euseM8yR.js +2 -0
- package/web-dist/assets/Menu-euseM8yR.js.map +1 -0
- package/web-dist/assets/Overlay-BNPvMjLX.js +2 -0
- package/web-dist/assets/Overlay-BNPvMjLX.js.map +1 -0
- package/web-dist/assets/Priority-Ca1B2yFr.js +2 -0
- package/web-dist/assets/Priority-Ca1B2yFr.js.map +1 -0
- package/web-dist/assets/{SegmentedControl-BZPzNU08.js → SegmentedControl-D2d-NEr-.js} +2 -2
- package/web-dist/assets/{SegmentedControl-BZPzNU08.js.map → SegmentedControl-D2d-NEr-.js.map} +1 -1
- package/web-dist/assets/Select-C9L1HKMm.js +2 -0
- package/web-dist/assets/Select-C9L1HKMm.js.map +1 -0
- package/web-dist/assets/StatusChip-BYuVxYS7.js +2 -0
- package/web-dist/assets/StatusChip-BYuVxYS7.js.map +1 -0
- package/web-dist/assets/Switch-DAcUcSbH.js +2 -0
- package/web-dist/assets/Switch-DAcUcSbH.js.map +1 -0
- package/web-dist/assets/Tabs-xtagjtA5.js +184 -0
- package/web-dist/assets/Tabs-xtagjtA5.js.map +1 -0
- package/web-dist/assets/TextArea-CKGHwURx.js +2 -0
- package/web-dist/assets/TextArea-CKGHwURx.js.map +1 -0
- package/web-dist/assets/TextLink-Bub7sMxr.js +2 -0
- package/web-dist/assets/TextLink-Bub7sMxr.js.map +1 -0
- package/web-dist/assets/arrow-down-C-iLrN8I.js +2 -0
- package/web-dist/assets/arrow-down-C-iLrN8I.js.map +1 -0
- package/web-dist/assets/arrow-up-Dj-VTKx4.js +2 -0
- package/web-dist/assets/arrow-up-Dj-VTKx4.js.map +1 -0
- package/web-dist/assets/attention-CI4dHY81.js +2 -0
- package/web-dist/assets/attention-CI4dHY81.js.map +1 -0
- package/web-dist/assets/auth-308hUVgi.js +2 -0
- package/web-dist/assets/auth-308hUVgi.js.map +1 -0
- package/web-dist/assets/automations-BzpsJoa3.js +2 -0
- package/web-dist/assets/automations-BzpsJoa3.js.map +1 -0
- package/web-dist/assets/bell-DSwa2PAb.js +2 -0
- package/web-dist/assets/bell-DSwa2PAb.js.map +1 -0
- package/web-dist/assets/board-CeJxBVHC.js +10 -0
- package/web-dist/assets/board-CeJxBVHC.js.map +1 -0
- package/web-dist/assets/code-DkNQvMI9.js +12 -0
- package/web-dist/assets/code-DkNQvMI9.js.map +1 -0
- package/web-dist/assets/describe-CVXeUClF.js +5 -0
- package/web-dist/assets/describe-CVXeUClF.js.map +1 -0
- package/web-dist/assets/enroll-jnKygG4L.js +2 -0
- package/web-dist/assets/enroll-jnKygG4L.js.map +1 -0
- package/web-dist/assets/index-BHGZTS2e.js +16 -0
- package/web-dist/assets/index-BHGZTS2e.js.map +1 -0
- package/web-dist/assets/index-D2ml031z.css +2 -0
- package/web-dist/assets/logic-B46fwD-8.js +2 -0
- package/web-dist/assets/logic-B46fwD-8.js.map +1 -0
- package/web-dist/assets/more-DvKHMdBk.js +2 -0
- package/web-dist/assets/more-DvKHMdBk.js.map +1 -0
- package/web-dist/assets/queue-B2Vl0uSh.js +2 -0
- package/web-dist/assets/queue-B2Vl0uSh.js.map +1 -0
- package/web-dist/assets/repo-BDS8RBxq.js +2 -0
- package/web-dist/assets/repo-BDS8RBxq.js.map +1 -0
- package/web-dist/assets/server-BqZ-w6M8.js +2 -0
- package/web-dist/assets/server-BqZ-w6M8.js.map +1 -0
- package/web-dist/assets/settings-CLt7x9u8.js +8 -0
- package/web-dist/assets/settings-CLt7x9u8.js.map +1 -0
- package/web-dist/assets/states-C773NlHo.js +56 -0
- package/web-dist/assets/states-C773NlHo.js.map +1 -0
- package/web-dist/assets/terminal-BOV_MXPZ.js +2 -0
- package/web-dist/assets/terminal-BOV_MXPZ.js.map +1 -0
- package/web-dist/assets/terminal-login-BK5UjUir.js +2 -0
- package/web-dist/assets/terminal-login-BK5UjUir.js.map +1 -0
- package/web-dist/assets/useBackTo-BIrCq3W2.js +2 -0
- package/web-dist/assets/useBackTo-BIrCq3W2.js.map +1 -0
- package/web-dist/assets/useBreakpoint-BphHBrzF.js +2 -0
- package/web-dist/assets/useBreakpoint-BphHBrzF.js.map +1 -0
- package/web-dist/assets/useNow-Cm-tdyod.js +2 -0
- package/web-dist/assets/useNow-Cm-tdyod.js.map +1 -0
- package/web-dist/assets/useResource-BBqCoY2q.js +2 -0
- package/web-dist/assets/useResource-BBqCoY2q.js.map +1 -0
- package/web-dist/icon-192.png +0 -0
- package/web-dist/icon-512.png +0 -0
- package/web-dist/icon.svg +20 -8
- package/web-dist/index.html +7 -4
- package/web-dist/manifest.webmanifest +1 -1
- package/web-dist/maskable-512.png +0 -0
- package/web-dist/sw.js +1 -1
- package/web-dist/sw.js.map +1 -1
- package/web-dist/assets/AutomationView-GCthHkym.js +0 -2
- package/web-dist/assets/AutomationView-GCthHkym.js.map +0 -1
- package/web-dist/assets/Badge-CEMI3YyI.js +0 -2
- package/web-dist/assets/Badge-CEMI3YyI.js.map +0 -1
- package/web-dist/assets/InteractionCard-DaLqafmA.js +0 -6
- package/web-dist/assets/InteractionCard-DaLqafmA.js.map +0 -1
- package/web-dist/assets/Menu-BcKiEc6X.js +0 -2
- package/web-dist/assets/Menu-BcKiEc6X.js.map +0 -1
- package/web-dist/assets/Tabs-COH5EMql.js +0 -184
- package/web-dist/assets/Tabs-COH5EMql.js.map +0 -1
- package/web-dist/assets/TextArea-CeMEPZn4.js +0 -2
- package/web-dist/assets/TextArea-CeMEPZn4.js.map +0 -1
- package/web-dist/assets/arrow-left-C6YWM6y6.js +0 -2
- package/web-dist/assets/arrow-left-C6YWM6y6.js.map +0 -1
- package/web-dist/assets/attention-BAdea2kA.js +0 -2
- package/web-dist/assets/attention-BAdea2kA.js.map +0 -1
- package/web-dist/assets/automations-DSFUzB0w.js +0 -2
- package/web-dist/assets/automations-DSFUzB0w.js.map +0 -1
- package/web-dist/assets/board-eQ3H8yCp.js +0 -10
- package/web-dist/assets/board-eQ3H8yCp.js.map +0 -1
- package/web-dist/assets/code-D7JmYMKe.js +0 -13
- package/web-dist/assets/code-D7JmYMKe.js.map +0 -1
- package/web-dist/assets/copy-oWgGHmkS.js +0 -2
- package/web-dist/assets/copy-oWgGHmkS.js.map +0 -1
- package/web-dist/assets/describe-C1YimBXJ.js +0 -5
- package/web-dist/assets/describe-C1YimBXJ.js.map +0 -1
- package/web-dist/assets/dist-B_RpNOcK.js +0 -56
- package/web-dist/assets/dist-B_RpNOcK.js.map +0 -1
- package/web-dist/assets/enroll-1OCy5r50.js +0 -2
- package/web-dist/assets/enroll-1OCy5r50.js.map +0 -1
- package/web-dist/assets/index-BhpEXLav.js +0 -11
- package/web-dist/assets/index-BhpEXLav.js.map +0 -1
- package/web-dist/assets/index-DUeOwDZ6.css +0 -2
- package/web-dist/assets/logic-CBvFOyIo.js +0 -2
- package/web-dist/assets/logic-CBvFOyIo.js.map +0 -1
- package/web-dist/assets/more-RjVyxPaz.js +0 -2
- package/web-dist/assets/more-RjVyxPaz.js.map +0 -1
- package/web-dist/assets/now-CDjeFSLD.js +0 -2
- package/web-dist/assets/now-CDjeFSLD.js.map +0 -1
- package/web-dist/assets/plus-BLP-wIYD.js +0 -2
- package/web-dist/assets/plus-BLP-wIYD.js.map +0 -1
- package/web-dist/assets/save-DEvZPWlS.js +0 -2
- package/web-dist/assets/save-DEvZPWlS.js.map +0 -1
- package/web-dist/assets/search-C6cn5WOo.js +0 -2
- package/web-dist/assets/search-C6cn5WOo.js.map +0 -1
- package/web-dist/assets/send-BKjswHxB.js +0 -2
- package/web-dist/assets/send-BKjswHxB.js.map +0 -1
- package/web-dist/assets/server-SxFxIScj.js +0 -2
- package/web-dist/assets/server-SxFxIScj.js.map +0 -1
- package/web-dist/assets/settings-tH4UuIfJ.js +0 -7
- package/web-dist/assets/settings-tH4UuIfJ.js.map +0 -1
- package/web-dist/assets/shared-CRX6KSBm.js +0 -3
- package/web-dist/assets/shared-CRX6KSBm.js.map +0 -1
- package/web-dist/assets/sliders-horizontal-DAoirila.js +0 -2
- package/web-dist/assets/sliders-horizontal-DAoirila.js.map +0 -1
- package/web-dist/assets/states-DXozulGZ.js +0 -2
- package/web-dist/assets/states-DXozulGZ.js.map +0 -1
- package/web-dist/assets/terminal-login-CW2rE50W.js +0 -2
- package/web-dist/assets/terminal-login-CW2rE50W.js.map +0 -1
- package/web-dist/assets/trash-C6X2OLrI.js +0 -2
- package/web-dist/assets/trash-C6X2OLrI.js.map +0 -1
- package/web-dist/assets/useNow-C_B7JgMM.js +0 -2
- package/web-dist/assets/useNow-C_B7JgMM.js.map +0 -1
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import{_ as e,d as t,f as n,i as r,m as i,n as a,t as o}from"./jsx-runtime-D13aM9HY.js";import{S as s,a as c,f as l,g as u,l as d,o as f,p,s as m,t as h,y as g}from"./StatusChip-BYuVxYS7.js";import{A as _,B as v,C as y,E as b,K as x,P as S,T as C,U as w,_ as T,bt as ee,c as E,d as D,f as O,g as te,h as ne,i as re,m as ie,n as ae,o as oe,p as k,q as se,t as A,u as ce,w as j,yt as M,z as N}from"./states-C773NlHo.js";import{a as le,i as ue,t as P}from"./Field-Dbg_8KTt.js";import{t as de}from"./bell-DSwa2PAb.js";import{i as fe,n as pe,r as me,t as F}from"./Menu-euseM8yR.js";import{t as he}from"./chevron-right-evVLS6hq.js";import{n as ge,r as _e}from"./Priority-Ca1B2yFr.js";import{c as ve,i as I,t as ye,u as L}from"./useBreakpoint-BphHBrzF.js";import{t as R}from"./external-link-3jjTxo92.js";import{A as be,C as xe,D as z,E as Se,F as Ce,I as we,M as Te,N as Ee,O as De,P as Oe,S as ke,T as Ae,_ as je,a as Me,b as Ne,c as Pe,d as Fe,f as Ie,g as Le,h as Re,i as ze,j as Be,k as Ve,l as He,m as Ue,n as We,o as Ge,p as B,r as Ke,s as qe,t as Je,u as Ye,v as Xe,w as Ze,x as Qe,y as $e}from"./useNow-Cm-tdyod.js";import{n as et,t as tt}from"./pencil-DI8QbCN8.js";import{t as nt}from"./link-2-CaMlUDRG.js";import{t as rt}from"./play-CjoDg3ws.js";import{i as it,r as at,t as ot}from"./useBackTo-BIrCq3W2.js";import{n as st,t as ct}from"./Checkbox-rDvnQnxc.js";import{t as lt}from"./server-BqZ-w6M8.js";import{C as ut,T as dt,_ as ft,b as pt,c as V,y as mt}from"./index-BHGZTS2e.js";import{i as ht,n as gt,o as _t,r as vt,t as yt}from"./Overlay-BNPvMjLX.js";import{n as bt,r as H}from"./TextArea-CKGHwURx.js";import{t as xt}from"./TextLink-Bub7sMxr.js";import{n as St,r as Ct,t as wt}from"./Tabs-xtagjtA5.js";import{t as Tt}from"./SegmentedControl-D2d-NEr-.js";import{r as Et}from"./useResource-BBqCoY2q.js";import{t as Dt}from"./Select-C9L1HKMm.js";var Ot={name:`arrow-right-left`,size:24,node:[[`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`}]]};Ot.node;var kt=a(Ot),At={name:`columns-3`,size:24,node:[[`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`}]],aliases:[`panels-left-right`]};At.node;var jt=a(At),Mt={name:`grip-vertical`,size:24,node:[[`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`}]]};Mt.node;var Nt=a(Mt),Pt={name:`list`,size:24,node:[[`path`,{d:`M3 5h.01`,key:`18ugdj`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M3 19h.01`,key:`noohij`}],[`path`,{d:`M8 5h13`,key:`1pao27`}],[`path`,{d:`M8 12h13`,key:`1za7za`}],[`path`,{d:`M8 19h13`,key:`m83p4d`}]]};Pt.node;var Ft=a(Pt),It={name:`message-square-warning`,size:24,node:[[`path`,{d:`M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z`,key:`18887p`}],[`path`,{d:`M12 15h.01`,key:`q59x07`}],[`path`,{d:`M12 7v4`,key:`xawao1`}]]};It.node;var Lt=a(It),Rt=s(),U=e(i()),zt=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function Bt(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function Vt(e){return`nodeType`in e}function W(e){return e?Bt(e)?e:Vt(e)?e.ownerDocument?.defaultView??window:window:window}function Ht(e){let{Document:t}=W(e);return e instanceof t}function Ut(e){return!Bt(e)&&e instanceof W(e).HTMLElement}function Wt(e){return e instanceof W(e).SVGElement}function Gt(e){return e?Bt(e)?e.document:Vt(e)?Ht(e)?e:Ut(e)||Wt(e)?e.ownerDocument:document:document:document}var G=zt?U.useLayoutEffect:U.useEffect;function Kt(e){let t=(0,U.useRef)(e);return G(()=>{t.current=e}),(0,U.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function qt(){let e=(0,U.useRef)(null);return[(0,U.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,U.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function Jt(e,t){t===void 0&&(t=[e]);let n=(0,U.useRef)(e);return G(()=>{n.current!==e&&(n.current=e)},t),n}function Yt(e,t){let n=(0,U.useRef)();return(0,U.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function Xt(e){let t=Kt(e),n=(0,U.useRef)(null);return[n,(0,U.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function Zt(e){let t=(0,U.useRef)();return(0,U.useEffect)(()=>{t.current=e},[e]),t.current}var Qt={};function $t(e,t){return(0,U.useMemo)(()=>{if(t)return t;let n=Qt[e]==null?0:Qt[e]+1;return Qt[e]=n,e+`-`+n},[e,t])}function en(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>{let r=Object.entries(n);for(let[n,i]of r){let r=t[n];r!=null&&(t[n]=r+e*i)}return t},{...t})}}var tn=en(1),nn=en(-1);function rn(e){return`clientX`in e&&`clientY`in e}function an(e){if(!e)return!1;let{KeyboardEvent:t}=W(e.target);return t&&e instanceof t}function on(e){if(!e)return!1;let{TouchEvent:t}=W(e.target);return t&&e instanceof t}function sn(e){if(on(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return rn(e)?{x:e.clientX,y:e.clientY}:null}var cn=Object.freeze({Translate:{toString(e){if(!e)return;let{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;let{scaleX:t,scaleY:n}=e;return`scaleX(`+t+`) scaleY(`+n+`)`}},Transform:{toString(e){if(e)return[cn.Translate.toString(e),cn.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),ln=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function un(e){return e.matches(ln)?e:e.querySelector(ln)}var dn={display:`none`};function fn(e){let{id:t,value:n}=e;return U.createElement(`div`,{id:t,style:dn},n)}function pn(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return U.createElement(`div`,{id:t,style:{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`},role:`status`,"aria-live":r,"aria-atomic":!0},n)}function mn(){let[e,t]=(0,U.useState)(``);return{announce:(0,U.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var hn=(0,U.createContext)(null);function gn(e){let t=(0,U.useContext)(hn);(0,U.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function _n(){let[e]=(0,U.useState)(()=>new Set),t=(0,U.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,U.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var vn={draggable:`
|
|
2
|
+
To pick up a draggable item, press the space bar.
|
|
3
|
+
While dragging, use the arrow keys to move the item.
|
|
4
|
+
Press space again to drop the item in its new position, or press escape to cancel.
|
|
5
|
+
`},yn={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 bn(e){let{announcements:t=yn,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=vn}=e,{announce:a,announcement:o}=mn(),s=$t(`DndLiveRegion`),[c,l]=(0,U.useState)(!1);if((0,U.useEffect)(()=>{l(!0)},[]),gn((0,U.useMemo)(()=>({onDragStart(e){let{active:n}=e;a(t.onDragStart({active:n}))},onDragMove(e){let{active:n,over:r}=e;t.onDragMove&&a(t.onDragMove({active:n,over:r}))},onDragOver(e){let{active:n,over:r}=e;a(t.onDragOver({active:n,over:r}))},onDragEnd(e){let{active:n,over:r}=e;a(t.onDragEnd({active:n,over:r}))},onDragCancel(e){let{active:n,over:r}=e;a(t.onDragCancel({active:n,over:r}))}}),[a,t])),!c)return null;let u=U.createElement(U.Fragment,null,U.createElement(fn,{id:r,value:i.draggable}),U.createElement(pn,{id:s,announcement:o}));return n?(0,Rt.createPortal)(u,n):u}var K;(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`})(K||={});function xn(){}function Sn(e,t){return(0,U.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function Cn(){var e=[...arguments];return(0,U.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var q=Object.freeze({x:0,y:0});function wn(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function Tn(e,t){let n=sn(e);if(!n)return`0 0`;let r={x:(n.x-t.left)/t.width*100,y:(n.y-t.top)/t.height*100};return r.x+`% `+r.y+`%`}function En(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function Dn(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function On(e){let{left:t,top:n,height:r,width:i}=e;return[{x:t,y:n},{x:t+i,y:n},{x:t,y:n+r},{x:t+i,y:n+r}]}function kn(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function An(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}}var jn=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=An(t,t.left,t.top),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=wn(An(r),i);a.push({id:t,data:{droppableContainer:e,value:n}})}}return a.sort(En)};function Mn(e,t){let n=Math.max(t.top,e.top),r=Math.max(t.left,e.left),i=Math.min(t.left+t.width,e.left+e.width),a=Math.min(t.top+t.height,e.top+e.height),o=i-r,s=a-n;if(r<i&&n<a){let n=t.width*t.height,r=e.width*e.height,i=o*s,a=i/(n+r-i);return Number(a.toFixed(4))}return 0}var Nn=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=[];for(let e of r){let{id:r}=e,a=n.get(r);if(a){let n=Mn(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(Dn)};function Pn(e,t){let{top:n,left:r,bottom:i,right:a}=t;return n<=e.y&&e.y<=i&&r<=e.x&&e.x<=a}var Fn=e=>{let{droppableContainers:t,droppableRects:n,pointerCoordinates:r}=e;if(!r)return[];let i=[];for(let e of t){let{id:t}=e,a=n.get(t);if(a&&Pn(r,a)){let n=On(a).reduce((e,t)=>e+wn(r,t),0),o=Number((n/4).toFixed(4));i.push({id:t,data:{droppableContainer:e,value:o}})}}return i.sort(En)};function In(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function Ln(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:q}function Rn(e){return function(t){return[...arguments].slice(1).reduce((t,n)=>({...t,top:t.top+e*n.y,bottom:t.bottom+e*n.y,left:t.left+e*n.x,right:t.right+e*n.x}),{...t})}}var zn=Rn(1);function Bn(e){if(e.startsWith(`matrix3d(`)){let t=e.slice(9,-1).split(/, /);return{x:+t[12],y:+t[13],scaleX:+t[0],scaleY:+t[5]}}if(e.startsWith(`matrix(`)){let t=e.slice(7,-1).split(/, /);return{x:+t[4],y:+t[5],scaleX:+t[0],scaleY:+t[3]}}return null}function Vn(e,t,n){let r=Bn(t);if(!r)return e;let{scaleX:i,scaleY:a,x:o,y:s}=r,c=e.left-o-(1-i)*parseFloat(n),l=e.top-s-(1-a)*parseFloat(n.slice(n.indexOf(` `)+1)),u=i?e.width/i:e.width,d=a?e.height/a:e.height;return{width:u,height:d,top:l,right:c+u,bottom:l+d,left:c}}var Hn={ignoreTransform:!1};function Un(e,t){t===void 0&&(t=Hn);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=W(e).getComputedStyle(e);t&&(n=Vn(n,t,r))}let{top:r,left:i,width:a,height:o,bottom:s,right:c}=n;return{top:r,left:i,width:a,height:o,bottom:s,right:c}}function Wn(e){return Un(e,{ignoreTransform:!0})}function Gn(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Kn(e,t){return t===void 0&&(t=W(e).getComputedStyle(e)),t.position===`fixed`}function qn(e,t){t===void 0&&(t=W(e).getComputedStyle(e));let n=/(auto|scroll|overlay)/;return[`overflow`,`overflowX`,`overflowY`].some(e=>{let r=t[e];return typeof r==`string`&&n.test(r)})}function Jn(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(Ht(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!Ut(i)||Wt(i)||n.includes(i))return n;let a=W(e).getComputedStyle(i);return i!==e&&qn(i,a)&&n.push(i),Kn(i,a)?n:r(i.parentNode)}return e?r(e):n}function Yn(e){let[t]=Jn(e,1);return t??null}function Xn(e){return!zt||!e?null:Bt(e)?e:Vt(e)?Ht(e)||e===Gt(e).scrollingElement?window:Ut(e)?e:null:null}function Zn(e){return Bt(e)?e.scrollX:e.scrollLeft}function Qn(e){return Bt(e)?e.scrollY:e.scrollTop}function $n(e){return{x:Zn(e),y:Qn(e)}}var J;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(J||={});function er(e){return!zt||!e?!1:e===document.scrollingElement}function tr(e){let t={x:0,y:0},n=er(e)?{height:window.innerHeight,width:window.innerWidth}:{height:e.clientHeight,width:e.clientWidth},r={x:e.scrollWidth-n.width,y:e.scrollHeight-n.height};return{isTop:e.scrollTop<=t.y,isLeft:e.scrollLeft<=t.x,isBottom:e.scrollTop>=r.y,isRight:e.scrollLeft>=r.x,maxScroll:r,minScroll:t}}var nr={x:.2,y:.2};function rr(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=nr);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=tr(e),p={x:0,y:0},m={x:0,y:0},h={height:t.height*i.y,width:t.width*i.x};return!l&&a<=t.top+h.height?(p.y=J.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=J.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=J.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=J.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function ir(e){if(e===document.scrollingElement){let{innerWidth:e,innerHeight:t}=window;return{top:0,left:0,right:e,bottom:t,width:e,height:t}}let{top:t,left:n,right:r,bottom:i}=e.getBoundingClientRect();return{top:t,left:n,right:r,bottom:i,width:e.clientWidth,height:e.clientHeight}}function ar(e){return e.reduce((e,t)=>tn(e,$n(t)),q)}function or(e){return e.reduce((e,t)=>e+Zn(t),0)}function sr(e){return e.reduce((e,t)=>e+Qn(t),0)}function cr(e,t){if(t===void 0&&(t=Un),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);Yn(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var lr=[[`x`,[`left`,`right`],or],[`y`,[`top`,`bottom`],sr]],ur=class{constructor(e,t){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;let n=Jn(t),r=ar(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of lr)for(let a of t)Object.defineProperty(this,a,{get:()=>{let t=i(n),o=r[e]-t;return this.rect[a]+o},enumerable:!0});Object.defineProperty(this,"rect",{enumerable:!1})}},dr=class{constructor(e){this.target=void 0,this.listeners=[],this.removeAll=()=>{this.listeners.forEach(e=>this.target?.removeEventListener(...e))},this.target=e}add(e,t,n){var r;(r=this.target)==null||r.addEventListener(e,t,n),this.listeners.push([e,t,n])}};function fr(e){let{EventTarget:t}=W(e);return e instanceof t?e:Gt(e)}function pr(e,t){let 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}var Y;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(Y||={});function mr(e){e.preventDefault()}function hr(e){e.stopPropagation()}var X;(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`})(X||={});var gr={start:[X.Space,X.Enter],cancel:[X.Esc],end:[X.Space,X.Enter,X.Tab]},_r=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case X.Right:return{...n,x:n.x+25};case X.Left:return{...n,x:n.x-25};case X.Down:return{...n,y:n.y+25};case X.Up:return{...n,y:n.y-25}}},vr=class{constructor(e){this.props=void 0,this.autoScrollEnabled=!1,this.referenceCoordinates=void 0,this.listeners=void 0,this.windowListeners=void 0,this.props=e;let{event:{target:t}}=e;this.props=e,this.listeners=new dr(Gt(t)),this.windowListeners=new dr(W(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(Y.Resize,this.handleCancel),this.windowListeners.add(Y.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(Y.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&cr(n),t(q)}handleKeyDown(e){if(an(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=gr,coordinateGetter:a=_r,scrollBehavior:o=`smooth`}=r,{code:s}=e;if(i.end.includes(s)){this.handleEnd(e);return}if(i.cancel.includes(s)){this.handleCancel(e);return}let{collisionRect:c}=n.current,l=c?{x:c.left,y:c.top}:q;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=nn(u,l),r={x:0,y:0},{scrollableAncestors:i}=n.current;for(let n of i){let i=e.code,{isTop:a,isRight:s,isLeft:c,isBottom:l,maxScroll:d,minScroll:f}=tr(n),p=ir(n),m={x:Math.min(i===X.Right?p.right-p.width/2:p.right,Math.max(i===X.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===X.Down?p.bottom-p.height/2:p.bottom,Math.max(i===X.Down?p.top:p.top+p.height/2,u.y))},h=i===X.Right&&!s||i===X.Left&&!c,g=i===X.Down&&!l||i===X.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===X.Right&&e<=d.x||i===X.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}r.x=a?n.scrollLeft-e:i===X.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===X.Down&&e<=d.y||i===X.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}r.y=a?n.scrollTop-e:i===X.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,tn(nn(u,this.referenceCoordinates),r))}}}handleMove(e,t){let{onMove:n}=this.props;e.preventDefault(),n(t)}handleEnd(e){let{onEnd:t}=this.props;e.preventDefault(),this.detach(),t()}handleCancel(e){let{onCancel:t}=this.props;e.preventDefault(),this.detach(),t()}detach(){this.listeners.removeAll(),this.windowListeners.removeAll()}};vr.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=gr,onActivation:i}=t,{active:a}=n,{code:o}=e.nativeEvent;if(r.start.includes(o)){let t=a.activatorNode.current;return t&&e.target!==t?!1:(e.preventDefault(),i?.({event:e.nativeEvent}),!0)}return!1}}];function yr(e){return!!(e&&`distance`in e)}function br(e){return!!(e&&`delay`in e)}var xr=class{constructor(e,t,n){n===void 0&&(n=fr(e.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=e,this.events=t;let{event:r}=e,{target:i}=r;this.props=e,this.events=t,this.document=Gt(i),this.documentListeners=new dr(this.document),this.listeners=new dr(n),this.windowListeners=new dr(W(i)),this.initialCoordinates=sn(r)??q,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(){let{events:e,props:{options:{activationConstraint:t,bypassActivationConstraint:n}}}=this;if(this.listeners.add(e.move.name,this.handleMove,{passive:!1}),this.listeners.add(e.end.name,this.handleEnd),e.cancel&&this.listeners.add(e.cancel.name,this.handleCancel),this.windowListeners.add(Y.Resize,this.handleCancel),this.windowListeners.add(Y.DragStart,mr),this.windowListeners.add(Y.VisibilityChange,this.handleCancel),this.windowListeners.add(Y.ContextMenu,mr),this.documentListeners.add(Y.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(br(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(yr(t)){this.handlePending(t);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(e,t){let{active:n,onPending:r}=this.props;r(n,e,this.initialCoordinates,t)}handleStart(){let{initialCoordinates:e}=this,{onStart:t}=this.props;e&&(this.activated=!0,this.documentListeners.add(Y.Click,hr,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(Y.SelectionChange,this.removeTextSelection),t(e))}handleMove(e){let{activated:t,initialCoordinates:n,props:r}=this,{onMove:i,options:{activationConstraint:a}}=r;if(!n)return;let o=sn(e)??q,s=nn(n,o);if(!t&&a){if(yr(a)){if(a.tolerance!=null&&pr(s,a.tolerance))return this.handleCancel();if(pr(s,a.distance))return this.handleStart()}if(br(a)&&pr(s,a.tolerance))return this.handleCancel();this.handlePending(a,s)}else e.cancelable&&e.preventDefault(),i(o)}handleEnd(){let{onAbort:e,onEnd:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleCancel(){let{onAbort:e,onCancel:t}=this.props;this.detach(),this.activated||e(this.props.active),t()}handleKeydown(e){e.code===X.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},Sr={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},Cr=class extends xr{constructor(e){let{event:t}=e,n=Gt(t.target);super(e,Sr,n)}};Cr.activators=[{eventName:`onPointerDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return!n.isPrimary||n.button!==0?!1:(r?.({event:n}),!0)}}];var wr={move:{name:`mousemove`},end:{name:`mouseup`}},Tr;(function(e){e[e.RightClick=2]=`RightClick`})(Tr||={});var Er=class extends xr{constructor(e){super(e,wr,Gt(e.event.target))}};Er.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button!==Tr.RightClick&&(r?.({event:n}),!0)}}];var Dr={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},Or=class extends xr{constructor(e){super(e,Dr)}static setup(){return window.addEventListener(Dr.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(Dr.move.name,e)};function e(){}}};Or.activators=[{eventName:`onTouchStart`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t,{touches:i}=n;return i.length>1?!1:(r?.({event:n}),!0)}}];var kr;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(kr||={});var Ar;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(Ar||={});function jr(e){let{acceleration:t,activator:n=kr.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=Ar.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=Nr({delta:d,disabled:!a}),[m,h]=qt(),g=(0,U.useRef)({x:0,y:0}),_=(0,U.useRef)({x:0,y:0}),v=(0,U.useMemo)(()=>{switch(n){case kr.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case kr.DraggableRect:return i}},[n,i,c]),y=(0,U.useRef)(null),b=(0,U.useCallback)(()=>{let e=y.current;if(!e)return;let t=g.current.x*_.current.x,n=g.current.y*_.current.y;e.scrollBy(t,n)},[]),x=(0,U.useMemo)(()=>s===Ar.TreeOrder?[...l].reverse():l,[s,l]);(0,U.useEffect)(()=>{if(!a||!l.length||!v)h();else{for(let e of x){if(r?.(e)===!1)continue;let n=l.indexOf(e),i=u[n];if(!i)continue;let{direction:a,speed:s}=rr(e,i,v,t,f);for(let e of[`x`,`y`])p[e][a[e]]||(s[e]=0,a[e]=0);if(s.x>0||s.y>0){h(),y.current=e,m(b,o),g.current=s,_.current=a;return}}g.current={x:0,y:0},_.current={x:0,y:0},h()}},[t,b,r,h,a,o,JSON.stringify(v),JSON.stringify(p),m,l,x,u,JSON.stringify(f)])}var Mr={x:{[J.Backward]:!1,[J.Forward]:!1},y:{[J.Backward]:!1,[J.Forward]:!1}};function Nr(e){let{delta:t,disabled:n}=e,r=Zt(t);return Yt(e=>{if(n||!r||!e)return Mr;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[J.Backward]:e.x[J.Backward]||i.x===-1,[J.Forward]:e.x[J.Forward]||i.x===1},y:{[J.Backward]:e.y[J.Backward]||i.y===-1,[J.Forward]:e.y[J.Forward]||i.y===1}}},[n,t,r])}function Pr(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return Yt(e=>t==null?null:r??e??null,[r,t])}function Fr(e,t){return(0,U.useMemo)(()=>e.reduce((e,n)=>{let{sensor:r}=n,i=r.activators.map(e=>({eventName:e.eventName,handler:t(e.handler,n)}));return[...e,...i]},[]),[e,t])}var Ir;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(Ir||={});var Lr;(function(e){e.Optimized=`optimized`})(Lr||={});var Rr=new Map;function zr(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,U.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,U.useRef)(e),d=g(),f=Jt(d),p=(0,U.useCallback)(function(e){e===void 0&&(e=[]),!f.current&&o(t=>t===null?e:t.concat(e.filter(e=>!t.includes(e))))},[f]),m=(0,U.useRef)(null),h=Yt(t=>{if(d&&!n)return Rr;if(!t||t===Rr||u.current!==e||a!=null){let t=new Map;for(let n of e){if(!n)continue;if(a&&a.length>0&&!a.includes(n.id)&&n.rect.current){t.set(n.id,n.rect.current);continue}let e=n.node.current,r=e?new ur(c(e),e):null;n.rect.current=r,r&&t.set(n.id,r)}return t}return t},[e,a,n,d,c]);return(0,U.useEffect)(()=>{u.current=e},[e]),(0,U.useEffect)(()=>{d||p()},[n,d]),(0,U.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,U.useEffect)(()=>{d||typeof s!=`number`||m.current!==null||(m.current=setTimeout(()=>{p(),m.current=null},s))},[s,d,p,...r]),{droppableRects:h,measureDroppableContainers:p,measuringScheduled:a!=null};function g(){switch(l){case Ir.Always:return!1;case Ir.BeforeDragging:return n;default:return!n}}}function Br(e,t){return Yt(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function Vr(e,t){return Br(e,t)}function Hr(e){let{callback:t,disabled:n}=e,r=Kt(t),i=(0,U.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,U.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Ur(e){let{callback:t,disabled:n}=e,r=Kt(t),i=(0,U.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,U.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Wr(e){return new ur(Un(e),e)}function Gr(e,t,n){t===void 0&&(t=Wr);let[r,i]=(0,U.useState)(null);function a(){i(r=>{if(!e)return null;if(e.isConnected===!1)return r??n??null;let i=t(e);return JSON.stringify(r)===JSON.stringify(i)?r:i})}let o=Hr({callback(t){if(e)for(let n of t){let{type:t,target:r}=n;if(t===`childList`&&r instanceof HTMLElement&&r.contains(e)){a();break}}}}),s=Ur({callback:a});return G(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function Kr(e){return Ln(e,Br(e))}var qr=[];function Jr(e){let t=(0,U.useRef)(e),n=Yt(n=>e?n&&n!==qr&&e&&t.current&&e.parentNode===t.current.parentNode?n:Jn(e):qr,[e]);return(0,U.useEffect)(()=>{t.current=e},[e]),n}function Yr(e){let[t,n]=(0,U.useState)(null),r=(0,U.useRef)(e),i=(0,U.useCallback)(e=>{let t=Xn(e.target);t&&n(e=>e?(e.set(t,$n(t)),new Map(e)):null)},[]);return(0,U.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=Xn(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,$n(t)]):null}).filter(e=>e!=null);n(o.length?new Map(o):null),r.current=e}return()=>{a(e),a(t)};function a(e){e.forEach(e=>{Xn(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,U.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>tn(e,t),q):ar(e):q,[e,t])}function Xr(e,t){t===void 0&&(t=[]);let n=(0,U.useRef)(null);return(0,U.useEffect)(()=>{n.current=null},t),(0,U.useEffect)(()=>{let t=e!==q;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?nn(e,n.current):q}function Zr(e){(0,U.useEffect)(()=>{if(!zt)return;let t=e.map(e=>{let{sensor:t}=e;return t.setup==null?void 0:t.setup()});return()=>{for(let e of t)e?.()}},e.map(e=>{let{sensor:t}=e;return t}))}function Qr(e,t){return(0,U.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function $r(e){return(0,U.useMemo)(()=>e?Gn(e):null,[e])}var ei=[];function ti(e,t){t===void 0&&(t=Un);let[n]=e,r=$r(n?W(n):null),[i,a]=(0,U.useState)(ei);function o(){a(()=>e.length?e.map(e=>er(e)?r:new ur(t(e),e)):ei)}let s=Ur({callback:o});return G(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function ni(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return Ut(t)?t:e}function ri(e){let{measure:t}=e,[n,r]=(0,U.useState)(null),i=Ur({callback:(0,U.useCallback)(e=>{for(let{target:n}of e)if(Ut(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=Xt((0,U.useCallback)(e=>{let n=ni(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,U.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var ii=[{sensor:Cr,options:{}},{sensor:vr,options:{}}],ai={current:{}},oi={draggable:{measure:Wn},droppable:{measure:Wn,strategy:Ir.WhileDragging,frequency:Lr.Optimized},dragOverlay:{measure:Un}},si=class extends Map{get(e){return e==null?void 0:super.get(e)??void 0}toArray(){return Array.from(this.values())}getEnabled(){return this.toArray().filter(e=>{let{disabled:t}=e;return!t})}getNodeFor(e){return this.get(e)?.node.current??void 0}},ci={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new si,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:xn},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:oi,measureDroppableContainers:xn,windowRect:null,measuringScheduled:!1},li={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:xn,draggableNodes:new Map,over:null,measureDroppableContainers:xn},ui=(0,U.createContext)(li),di=(0,U.createContext)(ci);function fi(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new si}}}function pi(e,t){switch(t.type){case K.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case K.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 K.DragEnd:case K.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case K.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new si(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case K.SetDroppableDisabled:{let{id:n,key:r,disabled:i}=t,a=e.droppable.containers.get(n);if(!a||r!==a.key)return e;let o=new si(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case K.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new si(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function mi(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,U.useContext)(ui),a=Zt(r),o=Zt(n?.id);return(0,U.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!an(a)||document.activeElement===a.target)return;let e=i.get(o);if(!e)return;let{activatorNode:t,node:n}=e;if(!t.current&&!n.current)return;requestAnimationFrame(()=>{for(let e of[t.current,n.current]){if(!e)continue;let t=un(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function hi(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function gi(e){return(0,U.useMemo)(()=>({draggable:{...oi.draggable,...e?.draggable},droppable:{...oi.droppable,...e?.droppable},dragOverlay:{...oi.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function _i(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,U.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;G(()=>{if(!o&&!s||!t){a.current=!1;return}if(a.current||!r)return;let e=t?.node.current;if(!e||e.isConnected===!1)return;let i=Ln(n(e),r);if(o||(i.x=0),s||(i.y=0),a.current=!0,Math.abs(i.x)>0||Math.abs(i.y)>0){let t=Yn(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var vi=(0,U.createContext)({...q,scaleX:1,scaleY:1}),yi;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})(yi||={});var bi=(0,U.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=ii,collisionDetection:o=Nn,measuring:s,modifiers:c,...l}=e,[u,d]=(0,U.useReducer)(pi,void 0,fi),[f,p]=_n(),[m,h]=(0,U.useState)(yi.Uninitialized),g=m===yi.Initialized,{draggable:{active:_,nodes:v,translate:y},droppable:{containers:b}}=u,x=_==null?null:v.get(_),S=(0,U.useRef)({initial:null,translated:null}),C=(0,U.useMemo)(()=>_==null?null:{id:_,data:x?.data??ai,rect:S},[_,x]),w=(0,U.useRef)(null),[T,ee]=(0,U.useState)(null),[E,D]=(0,U.useState)(null),O=Jt(l,Object.values(l)),te=$t(`DndDescribedBy`,t),ne=(0,U.useMemo)(()=>b.getEnabled(),[b]),re=gi(s),{droppableRects:ie,measureDroppableContainers:ae,measuringScheduled:oe}=zr(ne,{dragging:g,dependencies:[y.x,y.y],config:re.droppable}),k=Pr(v,_),se=(0,U.useMemo)(()=>E?sn(E):null,[E]),A=ke(),ce=Vr(k,re.draggable.measure);_i({activeNode:_==null?null:v.get(_),config:A.layoutShiftCompensation,initialRect:ce,measure:re.draggable.measure});let j=Gr(k,re.draggable.measure,ce),M=Gr(k?k.parentElement:null),N=(0,U.useRef)({activatorEvent:null,active:null,activeNode:k,collisionRect:null,collisions:null,droppableRects:ie,draggableNodes:v,draggingNode:null,draggingNodeRect:null,droppableContainers:b,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),le=b.getNodeFor(N.current.over?.id),ue=ri({measure:re.dragOverlay.measure}),P=ue.nodeRef.current??k,de=g?ue.rect??j:null,fe=!!(ue.nodeRef.current&&ue.rect),pe=Kr(fe?null:j),me=$r(P?W(P):null),F=Jr(g?le??k:null),he=ti(F),ge=hi(c,{transform:{x:y.x-pe.x,y:y.y-pe.y,scaleX:1,scaleY:1},activatorEvent:E,active:C,activeNodeRect:j,containerNodeRect:M,draggingNodeRect:de,over:N.current.over,overlayNodeRect:ue.rect,scrollableAncestors:F,scrollableAncestorRects:he,windowRect:me}),_e=se?tn(se,y):null,ve=Yr(F),I=Xr(ve),ye=Xr(ve,[j]),L=tn(ge,I),R=de?zn(de,ge):null,be=C&&R?o({active:C,collisionRect:R,droppableRects:ie,droppableContainers:ne,pointerCoordinates:_e}):null,xe=kn(be,`id`),[z,Se]=(0,U.useState)(null),Ce=In(fe?ge:tn(ge,ye),z?.rect??null,j),we=(0,U.useRef)(null),Te=(0,U.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(w.current==null)return;let i=v.get(w.current);if(!i)return;let a=e.nativeEvent,o=new n({active:w.current,activeNode:i,event:a,options:r,context:N,onAbort(e){if(!v.get(e))return;let{onDragAbort:t}=O.current,n={id:e};t?.(n),f({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!v.get(e))return;let{onDragPending:i}=O.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),f({type:`onDragPending`,event:a})},onStart(e){let t=w.current;if(t==null)return;let n=v.get(t);if(!n)return;let{onDragStart:r}=O.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:S}};(0,Rt.unstable_batchedUpdates)(()=>{r?.(i),h(yi.Initializing),d({type:K.DragStart,initialCoordinates:e,active:t}),f({type:`onDragStart`,event:i}),ee(we.current),D(a)})},onMove(e){d({type:K.DragMove,coordinates:e})},onEnd:s(K.DragEnd),onCancel:s(K.DragCancel)});we.current=o;function s(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=N.current,o=null;if(t&&i){let{cancelDrop:s}=O.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===K.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=K.DragCancel)}w.current=null,(0,Rt.unstable_batchedUpdates)(()=>{d({type:e}),h(yi.Uninitialized),Se(null),ee(null),D(null),we.current=null;let t=e===K.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=O.current[t];e?.(o),f({type:t,event:o})}})}}},[v]),Ee=Fr(a,(0,U.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=v.get(r);if(w.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},w.current=r,Te(n,t))},[v,Te]));Zr(a),G(()=>{j&&m===yi.Initializing&&h(yi.Initialized)},[j,m]),(0,U.useEffect)(()=>{let{onDragMove:e}=O.current,{active:t,activatorEvent:n,collisions:r,over:i}=N.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:L.x,y:L.y},over:i};(0,Rt.unstable_batchedUpdates)(()=>{e?.(a),f({type:`onDragMove`,event:a})})},[L.x,L.y]),(0,U.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=N.current;if(!e||w.current==null||!t||!i)return;let{onDragOver:a}=O.current,o=r.get(xe),s=o&&o.rect.current?{id:o.id,rect:o.rect.current,data:o.data,disabled:o.disabled}:null,c={active:e,activatorEvent:t,collisions:n,delta:{x:i.x,y:i.y},over:s};(0,Rt.unstable_batchedUpdates)(()=>{Se(s),a?.(c),f({type:`onDragOver`,event:c})})},[xe]),G(()=>{N.current={activatorEvent:E,active:C,activeNode:k,collisionRect:R,collisions:be,droppableRects:ie,draggableNodes:v,draggingNode:P,draggingNodeRect:de,droppableContainers:b,over:z,scrollableAncestors:F,scrollAdjustedTranslate:L},S.current={initial:de,translated:R}},[C,k,be,R,v,P,de,ie,b,z,F,L]),jr({...A,delta:y,draggingRect:R,pointerCoordinates:_e,scrollableAncestors:F,scrollableAncestorRects:he});let De=(0,U.useMemo)(()=>({active:C,activeNode:k,activeNodeRect:j,activatorEvent:E,collisions:be,containerNodeRect:M,dragOverlay:ue,draggableNodes:v,droppableContainers:b,droppableRects:ie,over:z,measureDroppableContainers:ae,scrollableAncestors:F,scrollableAncestorRects:he,measuringConfiguration:re,measuringScheduled:oe,windowRect:me}),[C,k,j,E,be,M,ue,v,b,ie,z,ae,F,he,re,oe,me]),Oe=(0,U.useMemo)(()=>({activatorEvent:E,activators:Ee,active:C,activeNodeRect:j,ariaDescribedById:{draggable:te},dispatch:d,draggableNodes:v,over:z,measureDroppableContainers:ae}),[E,Ee,C,j,d,te,v,z,ae]);return U.createElement(hn.Provider,{value:p},U.createElement(ui.Provider,{value:Oe},U.createElement(di.Provider,{value:De},U.createElement(vi.Provider,{value:Ce},i)),U.createElement(mi,{disabled:n?.restoreFocus===!1})),U.createElement(bn,{...n,hiddenTextDescribedById:te}));function ke(){let e=T?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=g&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),xi=(0,U.createContext)(null),Si=`button`,Ci=`Draggable`;function wi(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=$t(Ci),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,U.useContext)(ui),{role:p=Si,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,U.useContext)(g?vi:xi),[v,y]=Xt(),[b,x]=Xt(),S=Qr(o,t),C=Jt(n);return G(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:b,data:C}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,U.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===Si?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:S,node:v,over:f,setNodeRef:y,setActivatorNodeRef:x,transform:_}}function Ti(){return(0,U.useContext)(di)}var Ei=`Droppable`,Di={timeout:25};function Oi(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=$t(Ei),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,U.useContext)(ui),u=(0,U.useRef)({disabled:n}),d=(0,U.useRef)(!1),f=(0,U.useRef)(null),p=(0,U.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...Di,...i},_=Jt(h??r),v=Ur({callback:(0,U.useCallback)(()=>{d.current?(p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)):d.current=!0},[g]),disabled:m||!o}),[y,b]=Xt((0,U.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),x=Jt(t);return(0,U.useEffect)(()=>{v&&y.current&&(v.disconnect(),d.current=!1,v.observe(y.current))},[y,v]),(0,U.useEffect)(()=>(s({type:K.RegisterDroppable,element:{id:r,key:a,disabled:n,node:y,rect:f,data:x}}),()=>s({type:K.UnregisterDroppable,key:a,id:r})),[r]),(0,U.useEffect)(()=>{n!==u.current.disabled&&(s({type:K.SetDroppableDisabled,id:r,key:a,disabled:n}),u.current.disabled=n)},[r,a,n,s]),{active:o,rect:f,isOver:c?.id===r,node:y,over:c,setNodeRef:b}}function ki(e){let{animation:t,children:n}=e,[r,i]=(0,U.useState)(null),[a,o]=(0,U.useState)(null),s=Zt(n);return!n&&!r&&s&&i(s),G(()=>{if(!a)return;let e=r?.key,n=r?.props.id;e==null||n==null?i(null):Promise.resolve(t(n,a)).then(()=>{i(null)})},[t,r,a]),U.createElement(U.Fragment,null,n,r?(0,U.cloneElement)(r,{ref:o}):null)}var Ai={x:0,y:0,scaleX:1,scaleY:1};function ji(e){let{children:t}=e;return U.createElement(ui.Provider,{value:li},U.createElement(vi.Provider,{value:Ai},t))}var Mi={position:`fixed`,touchAction:`none`},Ni=e=>an(e)?`transform 250ms ease`:void 0,Pi=(0,U.forwardRef)((e,t)=>{let{as:n,activatorEvent:r,adjustScale:i,children:a,className:o,rect:s,style:c,transform:l,transition:u=Ni}=e;if(!s)return null;let d=i?l:{...l,scaleX:1,scaleY:1},f={...Mi,width:s.width,height:s.height,top:s.top,left:s.left,transform:cn.Transform.toString(d),transformOrigin:i&&r?Tn(r,s):void 0,transition:typeof u==`function`?u(r):u,...c};return U.createElement(n,{className:o,style:f,ref:t},a)}),Fi={duration:250,easing:`ease`,keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:cn.Transform.toString(t)},{transform:cn.Transform.toString(n)}]},sideEffects:(e=>t=>{let{active:n,dragOverlay:r}=t,i={},{styles:a,className:o}=e;if(a!=null&&a.active)for(let[e,t]of Object.entries(a.active))t!==void 0&&(i[e]=n.node.style.getPropertyValue(e),n.node.style.setProperty(e,t));if(a!=null&&a.dragOverlay)for(let[e,t]of Object.entries(a.dragOverlay))t!==void 0&&r.node.style.setProperty(e,t);return o!=null&&o.active&&n.node.classList.add(o.active),o!=null&&o.dragOverlay&&r.node.classList.add(o.dragOverlay),function(){for(let[e,t]of Object.entries(i))n.node.style.setProperty(e,t);o!=null&&o.active&&n.node.classList.remove(o.active)}})({styles:{active:{opacity:`0`}}})};function Ii(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:i}=e;return Kt((e,a)=>{if(t===null)return;let o=n.get(e);if(!o)return;let s=o.node.current;if(!s)return;let c=ni(a);if(!c)return;let{transform:l}=W(a).getComputedStyle(a),u=Bn(l);if(!u)return;let d=typeof t==`function`?t:Li(t);return cr(s,i.draggable.measure),d({active:{id:e,data:o.data,node:s,rect:i.draggable.measure(s)},draggableNodes:n,dragOverlay:{node:a,rect:i.dragOverlay.measure(c)},droppableContainers:r,measuringConfiguration:i,transform:u})})}function Li(e){let{duration:t,easing:n,sideEffects:r,keyframes:i}={...Fi,...e};return e=>{let{active:a,dragOverlay:o,transform:s,...c}=e;if(!t)return;let l={x:o.rect.left-a.rect.left,y:o.rect.top-a.rect.top},u={scaleX:s.scaleX===1?1:a.rect.width*s.scaleX/o.rect.width,scaleY:s.scaleY===1?1:a.rect.height*s.scaleY/o.rect.height},d={x:s.x-l.x,y:s.y-l.y,...u},f=i({...c,active:a,dragOverlay:o,transform:{initial:s,final:d}}),[p]=f,m=f[f.length-1];if(JSON.stringify(p)===JSON.stringify(m))return;let h=r?.({active:a,dragOverlay:o,...c}),g=o.node.animate(f,{duration:t,easing:n,fill:`forwards`});return new Promise(e=>{g.onfinish=()=>{h?.(),e()}})}}var Ri=0;function zi(e){return(0,U.useMemo)(()=>{if(e!=null)return Ri++,Ri},[e])}var Bi=U.memo(e=>{let{adjustScale:t=!1,children:n,dropAnimation:r,style:i,transition:a,modifiers:o,wrapperElement:s=`div`,className:c,zIndex:l=999}=e,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggableNodes:m,droppableContainers:h,dragOverlay:g,over:_,measuringConfiguration:v,scrollableAncestors:y,scrollableAncestorRects:b,windowRect:x}=Ti(),S=(0,U.useContext)(vi),C=zi(d?.id),w=hi(o,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggingNodeRect:g.rect,over:_,overlayNodeRect:g.rect,scrollableAncestors:y,scrollableAncestorRects:b,transform:S,windowRect:x}),T=Br(f),ee=Ii({config:r,draggableNodes:m,droppableContainers:h,measuringConfiguration:v}),E=T?g.setRef:void 0;return U.createElement(ji,null,U.createElement(ki,{animation:ee},d&&C?U.createElement(Pi,{key:C,id:d.id,ref:E,as:s,activatorEvent:u,adjustScale:t,className:c,transition:a,rect:T,style:{zIndex:l,...i},transform:w},n):null))}),Z=o(),Vi=(0,U.createContext)(null);function Hi(){let e=(0,U.useContext)(Vi);if(!e)throw Error(`useTaskMover must be used inside <MoveProvider>`);return e}var Ui=`Accepting marks the task Done. It does not merge or push.`;function Wi({children:e}){let[t,n]=(0,U.useState)({}),[r,i]=(0,U.useState)(null),[a,o]=(0,U.useState)(null),s=(0,U.useCallback)(async(e,t)=>{n(t=>({...t,[e]:!0}));try{await t()}finally{n(t=>{let{[e]:n,...r}=t;return r})}},[]),c=(0,U.useCallback)(async(e,t)=>{if(t===`ready`)try{let t=await Ve(e.id);I.success(`Moved to Ready. ${je(t)}.`)}catch{I.success(`Moved to Ready. The dispatcher starts it when it is eligible.`)}else I.success(`Moved "${e.title}" to ${B[t]}`)},[]),l=(0,U.useCallback)(async(e,t,n)=>{try{return await Be(e.id,{to:t,...n}),await c(e,t),!0}catch(r){return!n.onRunning&&Ee(r)?(i({kind:`choice`,task:e,to:t,position:n.position,reasons:[],carry:{confirm:n.confirm}}),!1):!n.confirm&&Te(r)?(i({kind:`confirm_done`,task:e,to:t,position:n.position,reasons:[M(r)],carry:{onRunning:n.onRunning}}),!1):(I.error(`Could not move "${e.title}": ${M(r)}`),!1)}},[c]),u=(0,U.useCallback)(e=>s(e.id,async()=>{try{await Ce(e.id,`run-now`),I.info(`Dispatch requested for "${e.title}". Waiting for the host to confirm.`)}catch(t){I.error(`Cannot run "${e.title}" now: ${M(t)}`)}}),[s]),d=(0,U.useCallback)(e=>s(e.id,async()=>{try{await Ce(e.id,`new-attempt`),I.info(`New attempt requested for "${e.title}".`)}catch(t){if(ee(t,`native_session_missing`)){i({kind:`fresh_attempt`,task:e,to:`in_progress`,reasons:[M(t)]});return}I.error(`Could not start a new attempt: ${M(t)}`)}}),[s]),f=(0,U.useCallback)(async(e,t,n={})=>{let r=e.currentRunId?N.getState().runs[e.currentRunId]:void 0,a=xe(e,t,r);switch(a.kind){case`noop`:return;case`invalid`:I.error(a.reason);return;case`run_now`:return u(e);case`new_attempt`:return d(e);case`choose_running`:i({kind:`choice`,task:e,to:t,position:n.position,reasons:[]});return;case`confirm_done`:i({kind:`confirm_done`,task:e,to:t,position:n.position,reasons:a.reasons});return;case`move`:await s(e.id,async()=>{await l(e,t,{position:n.position})})}},[u,d,l,s]),m=(0,U.useCallback)((e,t)=>s(e.id,async()=>{try{await we(e.id,{position:t})}catch(e){I.error(`Could not reorder: ${M(e)}`)}}),[s]),h=async e=>{if(!r)return;let t=r;o(e);try{if(t.kind===`fresh_attempt`)try{await Ce(t.task.id,`new-attempt`,{},`?fresh=true`),I.info(`New attempt in a fresh session requested for "${t.task.title}".`)}catch(e){I.error(`Could not start a new attempt: ${M(e)}`)}else t.via===`accept`?await s(t.task.id,async()=>{try{await Ce(t.task.id,`accept`,{confirm:!0}),I.success(`Accepted "${t.task.title}". It is Done.`)}catch(e){I.error(`Could not accept: ${M(e)}`)}}):await s(t.task.id,async()=>{await l(t.task,t.to,{position:t.position,...t.carry,...e===`confirm`?{confirm:!0}:{onRunning:e}})})}finally{o(null),i(e=>e===t?null:e)}},_=(0,U.useCallback)(e=>s(e.id,async()=>{try{await Ce(e.id,`accept`,{}),I.success(`Accepted "${e.title}". It is Done.`)}catch(t){if(Te(t)){i({kind:`confirm_done`,task:e,to:`done`,reasons:[M(t)],via:`accept`});return}I.error(`Could not accept: ${M(t)}`)}}),[s]),v=(0,U.useMemo)(()=>({move:f,runNow:u,newAttempt:d,reorder:m,accept:_,isBusy:e=>!!t[e]}),[f,u,d,m,_,t]),y=()=>{a||i(null)};return(0,Z.jsxs)(Vi.Provider,{value:v,children:[e,(0,Z.jsx)(gt,{open:r?.kind===`choice`,onClose:y,title:`This task is running`,description:r?`Moving "${r.task.title}" to ${B[r.to]} needs a decision about its active run. Nothing changes until you choose.`:void 0,footer:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(D,{onClick:y,disabled:!!a,children:`Keep running`}),(0,Z.jsx)(D,{icon:(0,Z.jsx)(g,{className:`size-4`}),busy:a===`pause`,disabled:!!a,onClick:()=>void h(`pause`),children:`Pause automation`}),(0,Z.jsx)(D,{variant:`danger`,icon:(0,Z.jsx)(p,{className:`size-4`}),busy:a===`stop`,disabled:!!a,onClick:()=>void h(`stop`),children:`Stop execution`})]}),children:(0,Z.jsxs)(`ul`,{className:`flex flex-col gap-2 text-sm`,children:[(0,Z.jsxs)(`li`,{children:[(0,Z.jsx)(`span`,{className:`font-medium`,children:`Pause automation`}),`: you take over the session. The agent keeps its current turn, and automatic continuations, retries and successor runs stop until you return it to automation.`]}),(0,Z.jsxs)(`li`,{children:[(0,Z.jsx)(`span`,{className:`font-medium`,children:`Stop execution`}),`: aborts the current run. The session and its workspace are kept.`]})]})}),(0,Z.jsxs)(yt,{open:r?.kind===`confirm_done`,onClose:y,title:`Accept and mark Done?`,description:Ui,danger:!1,confirmLabel:`Accept and mark Done`,busy:a===`confirm`,onConfirm:()=>void h(`confirm`),children:[(0,Z.jsx)(`p`,{className:`mb-2 text-sm`,children:`These items are unresolved:`}),(0,Z.jsx)(`ul`,{className:`list-disc space-y-1 pl-5 text-sm`,children:r?.reasons.map(e=>(0,Z.jsx)(`li`,{children:e},e))}),r&&r.task.acceptanceCriteria.length>0&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`p`,{className:`mt-3 mb-1 text-sm font-medium`,children:`Acceptance criteria`}),(0,Z.jsx)(`ul`,{className:`list-disc space-y-1 pl-5 text-sm text-muted`,children:r.task.acceptanceCriteria.map(e=>(0,Z.jsx)(`li`,{children:e},e))})]})]}),(0,Z.jsx)(yt,{open:r?.kind===`fresh_attempt`,onClose:y,title:`Start a fresh session?`,description:r?.reasons[0],danger:!1,confirmLabel:`Start fresh session`,busy:a===`confirm`,onConfirm:()=>void h(`confirm`),children:(0,Z.jsx)(`p`,{className:`text-sm`,children:`The previous Pi session is no longer available on the host, so the new attempt cannot continue it. A fresh session starts with the task objective and your review feedback.`})})]})}function Gi(e){let t=N(e=>e.runs),n=N(e=>e.hosts),r=N(e=>e.sessions),i=N(e=>e.workspaces),a=N(e=>e.projects),o=N(e=>e.attention),s=N(e=>e.interactions);return(0,U.useMemo)(()=>{if(!e)return{run:void 0,hostName:null,hostOffline:!1,branch:null,projectName:null,attention:[],pendingInteraction:void 0};let c=e.currentRunId?t[e.currentRunId]:void 0,l=e.sessionId?r[e.sessionId]:void 0,u=c?.hostId??l?.hostId??e.policy.hostId??null,d=u?n[u]:void 0,f=(l?.workspaceId?i[l.workspaceId]:void 0)?.branch??(e.policy.workspace.mode===`new_worktree`?e.policy.workspace.branch:null)??(e.policy.workspace.mode===`existing`?i[e.policy.workspace.workspaceId]?.branch??null:null),p=Object.values(o).filter(t=>x(t)&&(t.taskId===e.id||!!e.sessionId&&t.sessionId===e.sessionId)),m=e.sessionId?se(s,e.sessionId)[0]:void 0;return{run:c,hostName:d?.name??null,hostOffline:!!d&&d.connectivity!==`connected`,branch:f??null,projectName:a[e.projectId]?.name??null,attention:p,pendingInteraction:m}},[e,t,n,r,i,a,o,s])}function Ki(e,t,n){if(e.blocked)return{icon:C,text:`Blocked: ${e.blocked.reason}`,tone:`danger`};if(e.state===`in_progress`&&t){let e=c[t.state],n=t.controlMode===`human`?` · You have control`:``;return{icon:e.icon,text:`${e.label}${n}`,tone:e.tone,spin:e.spin,pulse:e.pulse}}return e.state===`ready`?n&&!n.eligible?{icon:ve,text:n.message||Ue[n.wait],tone:`warning`}:n?.eligible?{icon:ve,text:`Starting on ${n.hostName}`,tone:`info`}:{icon:ve,text:`Queued for dispatch`,tone:`neutral`}:e.state===`review`?e.review.changesRequested?{icon:C,text:`Changes requested`,tone:`warning`}:t?.outcome?{icon:c.succeeded.icon,text:t.outcome.summary||`Ready for review`,tone:`info`}:{icon:c.succeeded.icon,text:`Ready for review`,tone:`info`}:null}var qi=`Accepting marks the task Done. It does not merge or push.`;function Ji(e){return e.sessionId?`${V.session(e.sessionId)}?tab=changes`:null}function Yi(e){let t=!!e&&(e.state===`ready`||e.state===`backlog`),n=t?`${e.id}:${e.state}:${e.updatedAt}`:null,r=Et(n,t=>Ve(e.id,t)),i=N(e=>e.hosts),a=N(e=>e.tasks),o=N(e=>e.projects),s=N(e=>e.runs),c=N(e=>e.dispatchPaused),l=(0,U.useMemo)(()=>{if(!e)return;let t={};for(let e of Object.values(s)){if(!Xe(e))continue;let n=a[e.taskId]?.projectId;n&&(t[n]=(t[n]??0)+1)}return Ae({project:o[e.projectId],hostId:e.policy.hostId,dependencies:e.dependencies,notBefore:e.notBefore},{hosts:i,tasks:a,dispatchPaused:c,runningByProject:t})},[e,i,a,o,s,c]),u=r.data,d;return t?u?d=!u.eligible&&u.wait===`not_ready`?l:u:r.error&&(d=l):d=void 0,{eligibility:d,loading:r.loading&&!r.data,error:r.error,estimated:!!d&&d===l}}function Xi({title:e,children:t,action:n}){let r=(0,U.useId)();return(0,Z.jsxs)(`section`,{"aria-labelledby":r,className:`flex min-w-0 flex-col gap-2 border-b border-border py-4 last:border-b-0`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`h3`,{id:r,className:`min-w-0 flex-1 text-sm font-semibold`,children:e}),n]}),t]})}function Q({label:e,children:t}){return(0,Z.jsxs)(`div`,{className:`grid min-w-0 grid-cols-[minmax(7rem,auto)_1fr] gap-x-3 text-sm`,children:[(0,Z.jsx)(`dt`,{className:`text-muted`,children:e}),(0,Z.jsx)(`dd`,{className:`min-w-0 break-words`,children:t})]})}function Zi({task:e,eligibility:t,block:n}){let i=Hi(),a=i.isBusy(e.id),o=t?(0,Z.jsx)(Qi,{e:t,prefix:e.state===`backlog`?`If made ready: `:``}):null;switch(e.state){case`backlog`:return(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,Z.jsx)(D,{variant:`primary`,block:n,busy:a,icon:(0,Z.jsx)(rt,{className:`size-4`}),onClick:()=>void i.move(e,`ready`),children:`Make ready`}),o]});case`ready`:return(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,Z.jsx)(D,{variant:`primary`,block:n,busy:a,icon:(0,Z.jsx)(rt,{className:`size-4`}),onClick:()=>void i.runNow(e),children:`Run now`}),o]});case`in_progress`:return e.sessionId?(0,Z.jsxs)(r,{to:V.session(e.sessionId),className:O(`primary`,`md`,n?`w-full`:void 0),children:[(0,Z.jsx)(R,{"aria-hidden":!0,className:`size-4`}),`Open session`]}):(0,Z.jsx)(`p`,{className:`text-sm text-muted`,children:e.blocked?`No session is attached to this task.`:`The session is starting; Open session appears once the host confirms the launch.`});case`review`:{let t=Ji(e);return t?(0,Z.jsxs)(r,{to:t,className:O(`primary`,`md`,n?`w-full`:void 0),children:[(0,Z.jsx)(u,{"aria-hidden":!0,className:`size-4`}),`Review changes`]}):(0,Z.jsxs)(`a`,{href:`#task-review`,className:O(`primary`,`md`,n?`w-full`:void 0),children:[(0,Z.jsx)(u,{"aria-hidden":!0,className:`size-4`}),`Review changes`]})}case`done`:return(0,Z.jsx)(D,{variant:`primary`,block:n,busy:a,icon:(0,Z.jsx)(pe,{className:`size-4`}),onClick:()=>void i.move(e,`backlog`),children:`Reopen to Backlog`});case`canceled`:return(0,Z.jsx)(D,{variant:`primary`,block:n,busy:a,icon:(0,Z.jsx)(pe,{className:`size-4`}),onClick:()=>void i.move(e,`backlog`),children:`Restore to Backlog`})}}function Qi({e,prefix:t=``}){let n=e.eligible?L:ve;return(0,Z.jsxs)(`p`,{role:`status`,className:T(`flex items-start gap-1.5 text-sm`,e.eligible?`text-success`:`text-warning`),children:[(0,Z.jsx)(n,{"aria-hidden":!0,className:`mt-0.5 size-4 shrink-0`}),(0,Z.jsxs)(`span`,{className:`min-w-0 break-words text-text`,children:[t,je(e)]})]})}function $i({task:e,onDeleted:t}){let n=Gi(e),{eligibility:i,error:a}=Yi(e),o=N(e=>e.tasks),s=N(e=>e.hosts),c=N(e=>e.profiles),l=N(e=>e.projects),u=N(e=>e.workspaces),d=N(e=>e.runs),p=Et(`${e.id}:${e.currentRunId??``}`,t=>be(e.id,t)),m=(0,U.useMemo)(()=>{let t=new Map;for(let e of p.data??[])t.set(e.id,e);for(let n of b(d,e.id)){let e=t.get(n.id);(!e||e.updatedAt<=n.updatedAt)&&t.set(n.id,n)}return[...t.values()].sort((e,t)=>t.attempt-e.attempt||t.createdAt.localeCompare(e.createdAt))},[p.data,d,e.id]),[h,g]=(0,U.useState)(!1),_=l[e.projectId],v=n.run,y=Ki(e,v,i),x=e.policy.hostId??_?.defaultHostId??null,S=x?s[x]:void 0,T=v?.hostId?s[v.hostId]:void 0,E=T&&T.connectivity!==`connected`?T:void 0,k=e.policy.profileId??_?.defaultProfileId??null,se=N(t=>e.sessionId?w(t.interactions,e.sessionId):0);return(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col`,"data-testid":`task-detail`,children:[se>0&&e.sessionId&&n.pendingInteraction&&(0,Z.jsx)(oe,{count:se,to:V.interaction(e.sessionId,n.pendingInteraction.id),className:`mt-3`}),E&&(0,Z.jsx)(re,{compact:!0,className:`mt-3`,hostName:E.name,connectivity:E.connectivity===`reconnecting`?`reconnecting`:`unreachable`,lastSeenAt:E.lastSeenAt,detail:`The run keeps its last known state. Switchyard does not restart it on another host.`}),(0,Z.jsx)(Xi,{title:`Objective and acceptance criteria`,action:!h&&(0,Z.jsx)(D,{size:`sm`,variant:`ghost`,icon:(0,Z.jsx)(tt,{className:`size-3.5`}),onClick:()=>g(!0),children:`Edit`}),children:h?(0,Z.jsx)(ra,{task:e,onDone:()=>g(!1)}):(0,Z.jsxs)(Z.Fragment,{children:[e.objective.trim()?(0,Z.jsx)(Ct,{text:e.objective}):(0,Z.jsx)(`p`,{className:`text-sm text-muted`,children:`No objective yet. Edit the task to describe what done looks like.`}),(0,Z.jsx)(`h4`,{className:`pt-1 text-xs font-semibold tracking-wide text-muted uppercase`,children:`Acceptance criteria`}),e.acceptanceCriteria.length>0?(0,Z.jsx)(`ul`,{className:`list-disc space-y-1 pl-5 text-sm`,children:e.acceptanceCriteria.map(e=>(0,Z.jsx)(`li`,{className:`break-words`,children:e},e))}):(0,Z.jsx)(`p`,{className:`text-sm text-muted`,children:`No acceptance criteria.`})]})}),(0,Z.jsxs)(Xi,{title:`State`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsx)(f,{kind:`task`,value:e.state}),(0,Z.jsx)(ge,{priority:e.priority,suffix:` priority`,muted:!0,className:`text-sm`})]}),e.blocked&&(0,Z.jsxs)(`p`,{className:`flex items-start gap-1.5 rounded-md bg-danger-soft px-3 py-2 text-sm`,children:[(0,Z.jsx)(C,{"aria-hidden":!0,className:`mt-0.5 size-4 shrink-0 text-danger`}),(0,Z.jsxs)(`span`,{className:`min-w-0 break-words`,children:[(0,Z.jsx)(`span`,{className:`font-medium`,children:`Blocked:`}),` `,e.blocked.reason]})]}),y&&!e.blocked&&!(e.state===`ready`&&i)&&(0,Z.jsx)(`p`,{className:`text-sm text-muted`,children:y.text}),(e.state===`ready`||e.state===`backlog`)&&i&&(0,Z.jsx)(Qi,{e:i,prefix:e.state===`backlog`?`If made ready: `:``}),a!==null&&ee(a)&&a.status===404&&(0,Z.jsx)(`p`,{className:`text-xs text-muted`,children:`Eligibility is estimated on this device; the coordinator did not report it.`}),e.notBefore&&(0,Z.jsxs)(`p`,{className:`text-sm text-muted`,children:[`Not before `,te(e.notBefore)]})]}),(0,Z.jsxs)(Xi,{title:`Current run`,children:[v?(0,Z.jsxs)(`dl`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(Q,{label:`Status`,children:(0,Z.jsx)(f,{kind:`run`,value:v.state,size:`sm`})}),(0,Z.jsx)(Q,{label:`Attempt`,children:v.attempt}),(0,Z.jsx)(Q,{label:`Control`,children:v.controlMode===`human`?`You (taken over from automation)`:`Automation`}),T&&(0,Z.jsx)(Q,{label:`Host`,children:T.name}),v.startedAt&&(0,Z.jsx)(Q,{label:`Started`,children:ne(v.startedAt)}),(0,Z.jsx)(Q,{label:`Continuations`,children:v.continuationsUsed}),(0,Z.jsx)(Q,{label:`Usage`,children:v.usage.accounting===`available`?`${v.usage.tokens??0} tokens${v.usage.costUsd===null?``:` · $${v.usage.costUsd.toFixed(2)}`}`:v.usage.note??`Token/cost accounting not reported`}),v.outcome&&(0,Z.jsx)(Q,{label:`Outcome`,children:v.outcome.summary})]}):(0,Z.jsx)(`p`,{className:`text-sm text-muted`,children:`No run yet.`}),e.sessionId&&e.state!==`in_progress`&&e.state!==`review`&&(0,Z.jsx)(`div`,{children:(0,Z.jsxs)(r,{to:V.session(e.sessionId),className:O(`secondary`,`sm`),children:[(0,Z.jsx)(R,{"aria-hidden":!0,className:`size-3.5`}),`Open session`]})})]}),e.state===`review`&&(0,Z.jsx)(na,{task:e}),(0,Z.jsx)(Xi,{title:`Dependencies`,children:e.dependencies.length===0?(0,Z.jsx)(`p`,{className:`text-sm text-muted`,children:`No dependencies.`}):(0,Z.jsx)(`ul`,{className:`flex flex-col gap-1`,children:e.dependencies.map(e=>{let t=o[e];return(0,Z.jsx)(`li`,{className:`flex min-w-0 items-center gap-2 text-sm`,children:t?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(f,{kind:`task`,value:t.state,size:`sm`}),(0,Z.jsx)(xt,{to:V.task(e),variant:`action`,className:`truncate`,children:t.title})]}):(0,Z.jsx)(`span`,{className:`text-muted`,children:`A task that is no longer available`})},e)})})}),(0,Z.jsxs)(Xi,{title:`Host, profile and workspace`,children:[(0,Z.jsxs)(`dl`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(Q,{label:`Project`,children:_?.name??`Unknown project`}),(0,Z.jsx)(Q,{label:`Host`,children:e.policy.hostId?S?.name??`Unknown host`:`Project default${S?` (${S.name})`:``}`}),(0,Z.jsx)(Q,{label:`Profile`,children:e.policy.profileId?c[e.policy.profileId]?.name??`Unknown profile`:`Project default${k&&c[k]?` (${c[k].name})`:``}`}),(0,Z.jsx)(Q,{label:`Workspace`,children:e.policy.workspace.mode===`existing`?`Existing: ${u[e.policy.workspace.workspaceId]?.branch??u[e.policy.workspace.workspaceId]?.path??`unknown workspace`}`:`New worktree${e.policy.workspace.branch?` on ${e.policy.workspace.branch}`:``}${e.policy.workspace.base?` from ${e.policy.workspace.base}`:``}`}),_&&(0,Z.jsx)(Q,{label:`Sharing`,children:_.workspaceSharing===`single_writer`?`Single writer`:`Shared`})]}),S&&!S.piCompatible&&(0,Z.jsx)(ce,{capability:`Running on this host`,reason:`Pi ${S.piVersion??`(unknown version)`} on ${S.name} is not compatible with Switchyard.`})]}),(0,Z.jsxs)(Xi,{title:`Limits and completion`,children:[(0,Z.jsxs)(`dl`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(Q,{label:`Continuation`,children:e.policy.continuation.enabled?`Up to ${e.policy.continuation.maxContinuations} continuations within ${e.policy.continuation.maxElapsedMinutes} min${e.policy.continuation.maxTokens?`, ${e.policy.continuation.maxTokens} tokens`:``}${e.policy.continuation.maxCostUsd?`, $${e.policy.continuation.maxCostUsd}`:``}`:`Off`}),(0,Z.jsx)(Q,{label:`Checks`,children:e.policy.completion.checks===null?`Project default${_?.checks.length?` (${_.checks.join(`, `)})`:` (none)`}`:e.policy.completion.checks.length>0?e.policy.completion.checks.join(`, `):`None`}),(0,Z.jsx)(Q,{label:`Human review`,children:e.policy.completion.requireHumanReview?`Required`:`Not required`})]}),v&&v.checks.length>0&&(0,Z.jsx)(`ul`,{className:`flex flex-col gap-1 text-sm`,children:v.checks.map(e=>(0,Z.jsxs)(`li`,{className:`flex min-w-0 items-start gap-1.5`,children:[e.exitCode===0?(0,Z.jsx)(L,{"aria-hidden":!0,className:`mt-0.5 size-4 shrink-0 text-success`}):(0,Z.jsx)(C,{"aria-hidden":!0,className:`mt-0.5 size-4 shrink-0 text-danger`}),(0,Z.jsx)(`span`,{className:`min-w-0 break-all font-mono text-xs`,children:e.command}),(0,Z.jsx)(`span`,{className:`shrink-0 text-xs text-muted`,children:e.exitCode===0?`Passed`:`Failed (${e.exitCode??`no exit code`})`})]},e.command))})]}),(0,Z.jsxs)(Xi,{title:`Run history and activity`,children:[p.error!==null&&!p.data&&m.length===0&&(0,Z.jsx)(ae,{compact:!0,title:`Could not load run history`,error:M(p.error),onRetry:p.reload}),m.length===0?(0,Z.jsx)(`p`,{className:`text-sm text-muted`,children:p.loading?`Loading runs…`:`No runs yet.`}):(0,Z.jsx)(`ol`,{className:`flex flex-col gap-2`,children:m.map(e=>(0,Z.jsxs)(`li`,{className:`flex min-w-0 flex-col gap-0.5 rounded-md border border-border px-3 py-2 text-sm`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[(0,Z.jsxs)(`span`,{className:`font-medium`,children:[`Attempt `,e.attempt]}),(0,Z.jsx)(f,{kind:`run`,value:e.state,size:`sm`})]}),e.outcome&&(0,Z.jsx)(`p`,{className:`break-words text-muted`,children:e.outcome.summary}),(0,Z.jsxs)(`p`,{className:`text-xs text-subtle`,children:[e.startedAt?`Started ${te(e.startedAt)}`:`Created ${te(e.createdAt)}`,e.startedAt&&e.endedAt?` · ${ie(Date.parse(e.endedAt)-Date.parse(e.startedAt))}`:``,e.infraRetries>0?` · ${e.infraRetries} infrastructure retries`:``]})]},e.id))}),e.review.feedback.length>0&&(0,Z.jsxs)(`div`,{className:`text-sm`,children:[(0,Z.jsx)(`p`,{className:`font-medium`,children:`Review feedback`}),(0,Z.jsx)(`ul`,{className:`list-disc pl-5 text-muted`,children:e.review.feedback.map(e=>(0,Z.jsx)(`li`,{className:`break-words`,children:e},e))})]}),(0,Z.jsxs)(`p`,{className:`text-xs text-subtle`,children:[`Created `,te(e.createdAt),` · last activity `,ne(e.lastActivityAt),e.origin.kind===`automation`?` · created by an automation`:``]})]}),(0,Z.jsx)(ea,{task:e,onDeleted:t})]})}function ea({task:e,onDeleted:t}){let[n,r]=(0,U.useState)(!1),[i,a]=(0,U.useState)(!1);return e.state!==`backlog`&&e.state!==`canceled`&&e.state!==`done`?null:(0,Z.jsxs)(`div`,{className:`py-4`,children:[(0,Z.jsx)(D,{variant:`ghost`,size:`sm`,icon:(0,Z.jsx)(ue,{className:`size-4`}),className:`text-danger`,onClick:()=>r(!0),children:`Delete task`}),(0,Z.jsx)(yt,{open:n,onClose:()=>r(!1),title:`Delete this task?`,description:`"${e.title}" and its history are removed from the board. Sessions and workspaces are kept.`,confirmLabel:`Delete task`,busy:i,onConfirm:async()=>{a(!0);try{await De(e.id),I.success(`Deleted "${e.title}"`),r(!1),t?.()}catch(e){I.error(`Could not delete: ${M(e)}`)}finally{a(!1)}}})]})}var ta=e=>`sy:feedback:${e}`;function na({task:e}){let t=Hi(),[n,r]=(0,U.useState)(()=>sessionStorage.getItem(ta(e.id))??``),[i,a]=(0,U.useState)(null),o=(0,U.useId)();(0,U.useEffect)(()=>{n?sessionStorage.setItem(ta(e.id),n):sessionStorage.removeItem(ta(e.id))},[n,e.id]);let s=n.split(`
|
|
6
|
+
`).map(e=>e.replace(/^[-*]\s*/,``).trim()).filter(Boolean);return(0,Z.jsxs)(`section`,{id:`task-review`,"aria-labelledby":`${o}-h`,className:`flex min-w-0 flex-col gap-3 border-b border-border py-4`,children:[(0,Z.jsx)(`h3`,{id:`${o}-h`,className:`text-sm font-semibold`,children:`Review`}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`label`,{htmlFor:o,className:`text-sm font-medium`,children:`Feedback for the next attempt`}),(0,Z.jsx)(bt,{id:o,minRows:3,maxHeight:`40vh`,placeholder:`One change per line`,value:n,onChange:e=>r(e.target.value)}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Z.jsx)(D,{icon:(0,Z.jsx)(Lt,{className:`size-4`}),busy:i===`changes`,disabled:i!==null||s.length===0,onClick:async()=>{a(`changes`);try{await Oe(e.id,s),r(``),I.success(`Changes requested. Start a new attempt when ready.`)}catch(e){I.error(`Could not request changes: ${M(e)}`)}finally{a(null)}},children:`Request changes`}),(0,Z.jsx)(D,{icon:(0,Z.jsx)(pe,{className:`size-4`}),busy:t.isBusy(e.id),disabled:i!==null,onClick:()=>void t.newAttempt(e),children:`Start new attempt`})]}),s.length===0&&(0,Z.jsx)(`p`,{className:`text-xs text-muted`,children:`Write at least one line of feedback to request changes.`})]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(D,{variant:`primary`,icon:(0,Z.jsx)(L,{className:`size-4`}),busy:t.isBusy(e.id),disabled:i!==null,onClick:()=>void t.accept(e),children:`Accept task`}),(0,Z.jsx)(`p`,{className:`text-xs text-muted`,children:qi})]})]})}function ra({task:e,onDone:t}){let n=N(e=>e.tasks),[r,i]=(0,U.useState)(e.title),[a,o]=(0,U.useState)(e.objective),[s,c]=(0,U.useState)(e.acceptanceCriteria.join(`
|
|
7
|
+
`)),[l,u]=(0,U.useState)(e.priority),[d,f]=(0,U.useState)(e.dependencies),[p,m]=(0,U.useState)(!1),[h,g]=(0,U.useState)(null),_=(0,U.useId)(),v=Object.values(n).filter(t=>t.projectId===e.projectId&&t.id!==e.id&&t.state!==`canceled`&&!t.hiddenFromBoard).sort((e,t)=>e.title.localeCompare(t.title));return(0,Z.jsxs)(`form`,{className:`flex flex-col gap-3`,onSubmit:async n=>{if(n.preventDefault(),!r.trim())g(`Title is required.`);else{m(!0),g(null);try{await we(e.id,{title:r.trim(),objective:a,acceptanceCriteria:s.split(`
|
|
8
|
+
`).map(e=>e.trim()).filter(Boolean),priority:l,dependencies:d}),I.success(`Task saved`),t()}catch(e){g(M(e))}finally{m(!1)}}},children:[(0,Z.jsx)(P,{id:`${_}-title`,label:`Title`,children:(0,Z.jsx)(H,{id:`${_}-title`,value:r,onChange:e=>i(e.target.value),required:!0})}),(0,Z.jsx)(P,{id:`${_}-obj`,label:`Objective`,children:(0,Z.jsx)(bt,{id:`${_}-obj`,minRows:4,maxHeight:`40vh`,value:a,onChange:e=>o(e.target.value)})}),(0,Z.jsx)(P,{id:`${_}-crit`,label:`Acceptance criteria (one per line)`,children:(0,Z.jsx)(bt,{id:`${_}-crit`,minRows:2,maxHeight:`30vh`,value:s,onChange:e=>c(e.target.value)})}),(0,Z.jsx)(P,{id:`${_}-prio`,label:`Priority`,children:e=>(0,Z.jsx)(_e,{...e,value:l,onChange:u})}),(0,Z.jsx)(ia,{candidates:v,value:d,onChange:f}),h&&(0,Z.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:h}),(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(D,{type:`submit`,variant:`primary`,busy:p,children:`Save`}),(0,Z.jsx)(D,{onClick:t,disabled:p,children:`Cancel`})]})]})}function ia({candidates:e,value:t,onChange:n}){let[r,i]=(0,U.useState)(``),a=(0,U.useId)(),o=e.filter(e=>t.includes(e.id)||e.title.toLowerCase().includes(r.toLowerCase())).slice(0,50);return(0,Z.jsxs)(`fieldset`,{className:`flex min-w-0 flex-col gap-1`,children:[(0,Z.jsx)(`legend`,{className:`text-sm font-medium`,children:`Dependencies`}),e.length===0?(0,Z.jsx)(`p`,{className:`text-sm text-muted`,children:`No other tasks in this project.`}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`label`,{htmlFor:a,className:`sr-only`,children:`Filter tasks`}),(0,Z.jsx)(H,{id:a,placeholder:`Filter tasks`,value:r,onChange:e=>i(e.target.value)}),(0,Z.jsx)(`ul`,{className:`max-h-48 overflow-y-auto rounded-md border border-border`,children:o.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsx)(ct,{className:`w-full px-3 py-1.5 hover:bg-surface-2`,label:(0,Z.jsxs)(`span`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Z.jsx)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.title}),(0,Z.jsx)(`span`,{className:`shrink-0 text-xs text-muted`,children:B[e.state]})]}),checked:t.includes(e.id),onChange:r=>n(r?[...t,e.id]:t.filter(t=>t!==e.id))})},e.id))}),t.length>0&&(0,Z.jsxs)(`p`,{className:`text-xs text-muted`,children:[t.length,` selected. The task waits until they are Done.`]})]})]})}var aa=`sy:new-task-draft`;function oa(e){return{title:``,objective:``,projectId:e,advanced:!1,priority:2,dependencies:[],hostId:``,profileId:``,branch:``,criteria:``,continuation:!1,contObjective:``,maxContinuations:`3`,maxMinutes:`60`,maxTokens:``,maxCost:``,checks:``,checksMode:`default`,humanReview:!0}}function sa(e){try{let t=sessionStorage.getItem(aa);if(t)return{...oa(e),...JSON.parse(t)}}catch{}return oa(e)}var ca=e=>e.split(`
|
|
9
|
+
`).map(e=>e.trim()).filter(Boolean);function la(e){let t={},n={};if(e.hostId&&(n.hostId=e.hostId),e.profileId&&(n.profileId=e.profileId),e.branch.trim()&&(n.workspace={mode:`new_worktree`,branch:e.branch.trim(),base:null}),e.continuation){let r=Number(e.maxContinuations),i=Number(e.maxMinutes),a=e.maxTokens.trim()?Number(e.maxTokens):null,o=e.maxCost.trim()?Number(e.maxCost):null;e.contObjective.trim()||(t.contObjective=`Continuation needs an objective.`),(!Number.isInteger(r)||r<1||r>50)&&(t.maxContinuations=`Use 1 to 50.`),(!Number.isInteger(i)||i<1||i>1440)&&(t.maxMinutes=`Use 1 to 1440 minutes.`),a!==null&&(!Number.isInteger(a)||a<=0)&&(t.maxTokens=`Use a positive whole number.`),o!==null&&(!Number.isFinite(o)||o<=0)&&(t.maxCost=`Use a positive amount.`),n.continuation={enabled:!0,objective:e.contObjective.trim(),maxContinuations:r,maxElapsedMinutes:i,maxTokens:a,maxCostUsd:o}}return e.checksMode!==`custom`&&e.humanReview||(n.completion={checks:e.checksMode===`custom`?ca(e.checks):null,requireHumanReview:e.humanReview}),{policy:n,errors:t}}function ua({defaultProjectId:e,onCreated:t,onCancel:n}){let r=S(),i=_(),a=N(e=>e.profiles),o=N(e=>e.tasks),s=N(e=>e.runs),c=N(e=>e.hosts),l=N(e=>e.dispatchPaused),[u,d]=(0,U.useState)(()=>sa(e??r[0]?.id??``)),[f,p]=(0,U.useState)(null),[m,h]=(0,U.useState)({}),[g,v]=(0,U.useState)(null),y=(0,U.useId)(),b=(e,t)=>d(n=>({...n,[e]:t}));(0,U.useEffect)(()=>{!u.projectId&&r[0]&&d(e=>({...e,projectId:r[0].id}))},[u.projectId,r]),(0,U.useEffect)(()=>{sessionStorage.setItem(aa,JSON.stringify(u))},[u]);let x=r.find(e=>e.id===u.projectId),C=x?.defaultHostId?c[x.defaultHostId]:void 0,w=x?.defaultProfileId?a[x.defaultProfileId]:void 0,T=Object.values(o).filter(e=>e.projectId===u.projectId&&e.state!==`canceled`&&!e.hiddenFromBoard).sort((e,t)=>e.title.localeCompare(t.title)),ee=(0,U.useMemo)(()=>{let e={};for(let t of Object.values(s)){if(!Xe(t))continue;let n=o[t.taskId]?.projectId;n&&(e[n]=(e[n]??0)+1)}return Ae({project:x,hostId:u.hostId||null,dependencies:u.dependencies},{hosts:c,tasks:o,dispatchPaused:l,runningByProject:e})},[x,u.hostId,u.dependencies,c,o,s,l]),E=async e=>{let n={};u.title.trim()||(n.title=`Give the task a title.`),x||(n.projectId=`Choose a project.`);let{policy:r,errors:i}=la(u);if(Object.assign(n,i),h(n),Object.keys(n).length>0)Object.keys(i).length>0&&b(`advanced`,!0);else{p(e),v(null);try{let n=await z({projectId:u.projectId,title:u.title.trim(),objective:u.objective,acceptanceCriteria:ca(u.criteria),dependencies:u.dependencies,priority:u.priority,state:e,...Object.keys(r).length>0?{policy:r}:{}});if(sessionStorage.removeItem(aa),e===`ready`){let e=je(ee);try{e=je(await Ve(n.id))}catch{}I.success(`Created "${n.title}" in Ready. ${e}.`)}else I.success(`Created "${n.title}" in Backlog.`);t(n)}catch(e){v(M(e))}finally{p(null)}}};return(0,Z.jsxs)(`form`,{"data-testid":`new-task-form`,className:`flex min-w-0 flex-col gap-4`,onSubmit:e=>{e.preventDefault(),E(`backlog`)},children:[(0,Z.jsx)(P,{id:`${y}-title`,label:`Title`,error:m.title,children:e=>(0,Z.jsx)(H,{...e,value:u.title,autoFocus:!0,onChange:e=>b(`title`,e.target.value),placeholder:`What should be done?`})}),(0,Z.jsx)(P,{id:`${y}-objective`,label:`Objective`,children:(0,Z.jsx)(bt,{id:`${y}-objective`,minRows:3,maxHeight:`35vh`,value:u.objective,onChange:e=>b(`objective`,e.target.value),placeholder:`Context, constraints and what done looks like`})}),(0,Z.jsx)(P,{id:`${y}-project`,label:`Project`,error:m.projectId,children:e=>(0,Z.jsxs)(Dt,{...e,value:u.projectId,onChange:e=>d(t=>({...t,projectId:e.target.value,dependencies:[]})),children:[r.length===0&&(0,Z.jsx)(`option`,{value:``,children:`No projects yet`}),r.map(e=>(0,Z.jsx)(`option`,{value:e.id,children:e.name},e.id))]})}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(xt,{size:`sm`,"aria-expanded":u.advanced,"aria-controls":`${y}-adv`,icon:u.advanced?(0,Z.jsx)(fe,{"aria-hidden":!0,className:`size-4`}):(0,Z.jsx)(he,{"aria-hidden":!0,className:`size-4`}),onClick:()=>b(`advanced`,!u.advanced),children:`Advanced options`}),(0,Z.jsx)(`p`,{className:`text-xs text-muted`,children:`Unset options inherit the project defaults.`})]}),u.advanced&&(0,Z.jsxs)(`div`,{id:`${y}-adv`,className:`flex flex-col gap-4 rounded-lg border border-border p-3`,children:[(0,Z.jsx)(P,{id:`${y}-prio`,label:`Priority`,children:e=>(0,Z.jsx)(_e,{...e,value:u.priority,onChange:e=>b(`priority`,e)})}),(0,Z.jsx)(P,{id:`${y}-criteria`,label:`Acceptance criteria (one per line)`,children:(0,Z.jsx)(bt,{id:`${y}-criteria`,minRows:2,maxHeight:`25vh`,value:u.criteria,onChange:e=>b(`criteria`,e.target.value)})}),(0,Z.jsx)(ia,{candidates:T,value:u.dependencies,onChange:e=>b(`dependencies`,e)}),(0,Z.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,Z.jsx)(P,{id:`${y}-host`,label:`Host`,children:(0,Z.jsxs)(Dt,{id:`${y}-host`,value:u.hostId,onChange:e=>b(`hostId`,e.target.value),children:[(0,Z.jsxs)(`option`,{value:``,children:[`Project default`,C?` (${C.name})`:``]}),i.map(e=>(0,Z.jsxs)(`option`,{value:e.id,children:[e.name,e.connectivity===`connected`?``:` (offline)`]},e.id))]})}),(0,Z.jsx)(P,{id:`${y}-profile`,label:`Pi profile`,children:(0,Z.jsxs)(Dt,{id:`${y}-profile`,value:u.profileId,onChange:e=>b(`profileId`,e.target.value),children:[(0,Z.jsxs)(`option`,{value:``,children:[`Project default`,w?` (${w.name})`:``]}),Object.values(a).map(e=>(0,Z.jsx)(`option`,{value:e.id,children:e.name},e.id))]})})]}),(0,Z.jsx)(P,{id:`${y}-branch`,label:`Branch`,hint:`Work happens in a new worktree on this branch.`,children:e=>(0,Z.jsx)(H,{...e,value:u.branch,placeholder:`Generated from the title`,onChange:e=>b(`branch`,e.target.value)})}),(0,Z.jsxs)(`fieldset`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`legend`,{className:`text-sm font-medium`,children:`Continuation limits`}),(0,Z.jsx)(ct,{label:`Continue automatically until done (off by default)`,checked:u.continuation,onChange:e=>b(`continuation`,e)}),u.continuation&&(0,Z.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,Z.jsx)(P,{id:`${y}-cobj`,label:`Continuation objective`,error:m.contObjective,className:`sm:col-span-2`,children:e=>(0,Z.jsx)(H,{...e,value:u.contObjective,onChange:e=>b(`contObjective`,e.target.value)})}),(0,Z.jsx)(P,{id:`${y}-cmax`,label:`Max continuations`,error:m.maxContinuations,children:e=>(0,Z.jsx)(H,{...e,inputMode:`decimal`,value:u.maxContinuations,onChange:e=>b(`maxContinuations`,e.target.value)})}),(0,Z.jsx)(P,{id:`${y}-cmin`,label:`Max minutes`,error:m.maxMinutes,children:e=>(0,Z.jsx)(H,{...e,inputMode:`decimal`,value:u.maxMinutes,onChange:e=>b(`maxMinutes`,e.target.value)})}),(0,Z.jsx)(P,{id:`${y}-ctok`,label:`Max tokens (optional)`,error:m.maxTokens,children:e=>(0,Z.jsx)(H,{...e,inputMode:`decimal`,value:u.maxTokens,onChange:e=>b(`maxTokens`,e.target.value)})}),(0,Z.jsx)(P,{id:`${y}-ccost`,label:`Max cost USD (optional)`,error:m.maxCost,children:e=>(0,Z.jsx)(H,{...e,inputMode:`decimal`,value:u.maxCost,onChange:e=>b(`maxCost`,e.target.value)})}),(0,Z.jsx)(`p`,{className:`text-xs text-muted sm:col-span-2`,children:`Token and cost limits apply only when the Pi provider reports usage.`})]})]}),(0,Z.jsxs)(`fieldset`,{className:`flex flex-col gap-2`,children:[(0,Z.jsx)(`legend`,{className:`text-sm font-medium`,children:`Checks and review`}),(0,Z.jsx)(ct,{label:(0,Z.jsxs)(Z.Fragment,{children:[`Use custom checks instead of the project's`,x?.checks.length?` (${x.checks.join(`, `)})`:` (none)`]}),checked:u.checksMode===`custom`,onChange:e=>b(`checksMode`,e?`custom`:`default`)}),u.checksMode===`custom`&&(0,Z.jsx)(P,{id:`${y}-checks`,label:`Check commands (one per line; empty means no checks)`,children:(0,Z.jsx)(bt,{id:`${y}-checks`,minRows:2,className:`font-mono`,value:u.checks,onChange:e=>b(`checks`,e.target.value)})}),(0,Z.jsx)(ct,{label:`Require human review before Done`,checked:u.humanReview,onChange:e=>b(`humanReview`,e)})]})]}),g&&(0,Z.jsxs)(`p`,{role:`alert`,className:`rounded-md bg-danger-soft px-3 py-2 text-sm`,children:[`Could not create the task: `,g]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2 border-t border-border pt-3`,children:[(0,Z.jsx)(Qi,{e:ee,prefix:`Make ready: `}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Z.jsx)(D,{type:`submit`,icon:(0,Z.jsx)(j,{className:`size-4`}),busy:f===`backlog`,disabled:f!==null,children:`Save to Backlog`}),(0,Z.jsx)(D,{variant:`primary`,icon:(0,Z.jsx)(rt,{className:`size-4`}),busy:f===`ready`,disabled:f!==null,onClick:()=>void E(`ready`),children:`Make ready`}),(0,Z.jsx)(D,{variant:`ghost`,onClick:n,disabled:f!==null,children:`Cancel`})]}),(0,Z.jsx)(`p`,{className:`text-xs text-muted`,children:`Make ready authorizes dispatch. Nothing starts until the coordinator confirms.`})]})]})}function da({task:e,showProject:t,wait:i,onOpen:a,drag:o,full:s,selected:c}){let u=Gi(e),d=N(e=>e.tasks),f=Hi(),p=n(),m=f.isBusy(e.id),g=Ki(e,u.run,i),_=Le(e,d),v=u.attention[0],b=[{id:`open`,label:`Open details`,icon:(0,Z.jsx)(me,{className:`size-4`}),onSelect:()=>a(e)}];if(e.sessionId){let t=e.sessionId;b.push({id:`session`,label:`Open session`,icon:(0,Z.jsx)(R,{className:`size-4`}),onSelect:()=>p(V.session(t))})}b.push(`separator`);for(let t of Ne(e))b.push({id:`move-${t}`,label:ma(e.state,t),icon:(0,Z.jsx)(pa,{state:t}),onSelect:()=>void f.move(e,t)});return(0,Z.jsxs)(`article`,{ref:o?.setNodeRef,"data-testid":`task-card`,"data-task-id":e.id,"aria-label":e.title,"aria-busy":m||void 0,style:o?.style,...o?.cardProps,className:T(`group relative flex min-w-0 flex-col gap-1.5 rounded-lg border bg-surface p-3 text-sm shadow-sm`,c?`border-accent`:`border-border`,o?.dragging&&`opacity-60`,s?`w-full`:``),children:[(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-start gap-1`,children:[o&&(0,Z.jsx)(`button`,{type:`button`,ref:o.setHandleRef,...o.handleProps,"aria-label":`Drag ${e.title}`,title:`Drag to move (Space to pick up, arrows to move, Space to drop)`,className:`tap -ml-1.5 inline-flex h-7 w-5 shrink-0 cursor-grab items-center justify-center rounded text-subtle hover:bg-surface-2 hover:text-text`,children:(0,Z.jsx)(Nt,{"aria-hidden":!0,className:`size-4`})}),(0,Z.jsx)(`button`,{type:`button`,"data-card-open":e.id,onClick:()=>a(e),className:`tap min-w-0 flex-1 rounded text-left font-medium leading-snug`,children:(0,Z.jsx)(`span`,{className:`line-clamp-2 break-words`,children:e.title})}),m&&(0,Z.jsx)(k,{label:`Updating`,className:`mt-0.5 shrink-0`}),(0,Z.jsx)(F,{label:`Actions for ${e.title}`,items:b,trigger:t=>(0,Z.jsx)(`button`,{type:`button`,...t,"aria-label":`Move to… and other actions for ${e.title}`,title:`Move to…`,className:`tap -mr-1.5 inline-flex size-7 shrink-0 items-center justify-center rounded text-muted hover:bg-surface-2 hover:text-text`,children:(0,Z.jsx)(dt,{"aria-hidden":!0,className:`size-4`})})})]}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted`,children:[(0,Z.jsx)(ge,{priority:e.priority}),t&&u.projectName&&(0,Z.jsx)(`span`,{className:`min-w-0 truncate`,children:u.projectName})]}),g&&(0,Z.jsx)(fa,{icon:g.spin?(0,Z.jsx)(k,{className:`size-3.5`}):(0,Z.jsx)(g.icon,{"aria-hidden":!0,className:T(`size-3.5`,g.pulse&&`animate-pulse`)}),className:l[g.tone],children:g.text}),(u.hostName||u.branch)&&(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-3 gap-y-1 text-xs text-muted`,children:[u.hostName&&(0,Z.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1`,children:[(0,Z.jsx)(lt,{"aria-hidden":!0,className:`size-3.5 shrink-0`}),(0,Z.jsxs)(`span`,{className:`truncate`,children:[u.hostName,u.hostOffline?` (offline)`:``]})]}),u.branch&&(0,Z.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1`,children:[(0,Z.jsx)(et,{"aria-hidden":!0,className:`size-3.5 shrink-0`}),(0,Z.jsx)(`span`,{className:`truncate`,children:u.branch})]})]}),_&&(0,Z.jsx)(fa,{icon:(0,Z.jsx)(nt,{"aria-hidden":!0,className:`size-3.5`}),className:`text-muted`,children:_}),u.pendingInteraction&&e.sessionId?(0,Z.jsxs)(r,{to:V.interaction(e.sessionId,u.pendingInteraction.id),className:`tap inline-flex min-w-0 items-center gap-1 rounded text-xs font-medium text-warning hover:underline`,children:[(0,Z.jsx)(y,{"aria-hidden":!0,className:`size-3.5 shrink-0`}),(0,Z.jsxs)(`span`,{className:`truncate`,children:[`Needs input: `,u.pendingInteraction.title]})]}):v?(0,Z.jsxs)(fa,{icon:(0,Z.jsx)(de,{"aria-hidden":!0,className:`size-3.5`}),className:l[h[v.reason].tone],children:[h[v.reason].label,u.attention.length>1?` (+${u.attention.length-1})`:``]}):null,(0,Z.jsxs)(`div`,{className:`text-xs text-subtle`,children:[`Updated `,(0,Z.jsx)(`time`,{dateTime:e.lastActivityAt,children:ne(e.lastActivityAt)})]})]})}function fa({icon:e,children:t,className:n}){return(0,Z.jsxs)(`div`,{className:T(`flex min-w-0 items-start gap-1 text-xs`,n),children:[(0,Z.jsx)(`span`,{className:`mt-0.5 shrink-0`,children:e}),(0,Z.jsx)(`span`,{className:`min-w-0 break-words line-clamp-2`,children:t})]})}function pa({state:e,className:t}){let n=m[e].icon;return(0,Z.jsx)(n,{"aria-hidden":!0,className:T(`size-4`,t)})}function ma(e,t){return e===`ready`&&t===`in_progress`?`Run now (In progress)`:e===`review`&&t===`in_progress`?`Start new attempt (In progress)`:e===`backlog`&&t===`ready`?`Make ready`:(e===`done`||e===`canceled`)&&t!==`canceled`?`Reopen to ${B[t]}`:t===`canceled`?`Cancel task`:t===`done`?`Accept (Done)`:`Move to ${B[t]}`}function ha(){let e=pt(e=>e.filters.board),t=pt(e=>e.setFilter),n=pt(e=>e.selectedProjectId),r=pt(e=>e.set),i=(0,U.useMemo)(()=>Qe(e),[e]),a=N(e=>e.tasks),o=N(e=>e.runs),s=N(e=>e.attention),c=N(e=>e.projects),l=Je(),u=n&&c[n]?n:null,d=(0,U.useMemo)(()=>{let e=new Set(ke(s).keys());return Re(a,i,{projectId:u,runs:o,attentionTaskIds:e})},[a,i,u,o,s]),f=(0,U.useMemo)(()=>{let e=new Map;for(let t of l.data?.queued??[])e.set(t.taskId,t.eligibility);return e},[l.data]),p=(0,U.useMemo)(()=>l.data?l.data.queued.filter(e=>!u||a[e.taskId]?.projectId===u).length:Object.values(a).filter(e=>e.state===`ready`&&!e.hiddenFromBoard&&(!u||e.projectId===u)).length,[l.data,a,u]),m=Se(i),h=(0,U.useMemo)(()=>Object.values(a).filter(e=>!e.hiddenFromBoard&&(!u||e.projectId===u)).length,[a,u]),g=m.reduce((e,t)=>e+d[t].length,0);return{filters:i,setFilters:e=>t(`board`,e),projectId:u,setProjectId:e=>r(`selectedProjectId`,e),columns:d,states:m,waits:f,queueCount:p,now:l,showProject:!u&&Object.keys(c).length>1,totalTasks:h,visibleCount:g}}var $={mainScrollTop:0,boardScrollLeft:0,columnScroll:{},focusTaskId:null},ga=`col:`,_a=`card:`,va=`task:`,ya=(e,{currentCoordinates:t,context:n})=>{if(e.code===`ArrowDown`)return{...t,y:t.y+72};if(e.code===`ArrowUp`)return{...t,y:t.y-72};if(e.code!==`ArrowRight`&&e.code!==`ArrowLeft`)return;e.preventDefault();let r=n.droppableContainers.toArray().filter(e=>String(e.id).startsWith(ga)).map(e=>({id:e.id,rect:n.droppableRects.get(e.id)})).filter(e=>!!e.rect).sort((e,t)=>e.rect.left-t.rect.left);if(r.length===0)return;let i=n.collisionRect?.width??0,a=t.x+i/2,o=r.findIndex(e=>a>=e.rect.left&&a<=e.rect.left+e.rect.width);o<0&&(o=0);let s=r[Math.max(0,Math.min(r.length-1,o+(e.code===`ArrowRight`?1:-1)))];return{x:s.rect.left+(s.rect.width-i)/2,y:t.y}},ba=e=>{let t=Fn(e);if(t.length>0){let e=t.find(e=>String(e.id).startsWith(_a));return e?[e]:t}return jn(e)};function xa(e,t){if(e.startsWith(ga))return{state:e.slice(4),beforeId:null};if(e.startsWith(_a)){let n=t[e.slice(5)];return n?{state:n.state,beforeId:n.id}:null}return null}function Sa({taskId:e}){let t=ha(),r=N(e=>e.hydrated),i=N(e=>e.projects),a=N(e=>e.tasks),o=Hi(),s=n(),c=at(V.board),l=pt(e=>e.paneSizes.boardColumn),[u,d]=(0,U.useState)(null),[f,p]=(0,U.useState)(!1),m=Cn(Sn(Cr,{activationConstraint:{distance:6}}),Sn(vr,{coordinateGetter:ya,keyboardCodes:{start:[`Space`],cancel:[`Escape`],end:[`Space`,`Enter`]}})),h=(0,U.useCallback)(e=>{e&&(e.scrollLeft=$.boardScrollLeft)},[]);(0,U.useEffect)(()=>{if(e||!$.focusTaskId)return;let t=$.focusTaskId;$.focusTaskId=null,requestAnimationFrame(()=>document.querySelector(`[data-card-open="${CSS.escape(t)}"]`)?.focus({preventScroll:!1}))},[e]);let g=e=>{$.focusTaskId=e.id,s(V.task(e.id),{state:ot})},_=()=>{e&&($.focusTaskId=e),c()},v=e=>d(String(e.active.id).slice(5)),y=e=>{d(null);let n=String(e.active.id).slice(5),r=a[n];if(!r||!e.over)return;let i=xa(String(e.over.id),a);if(!i||i.beforeId===n)return;let s=t.columns[i.state],c=Ze(s,i.beforeId,n);i.state===r.state?t.filters.sort===`priority`&&o.reorder(r,c):o.move(r,i.state,{position:c})},b={onDragStart:({active:e})=>`Picked up ${wa(e.id,a)}.`,onDragOver:({active:e,over:t})=>t?`${wa(e.id,a)} is over ${Ta(String(t.id),a)}.`:void 0,onDragEnd:({active:e,over:t})=>t?`Dropped ${wa(e.id,a)} on ${Ta(String(t.id),a)}.`:`Dropped ${wa(e.id,a)}. It did not move.`,onDragCancel:({active:e})=>`Moving ${wa(e.id,a)} was canceled.`},x=u?a[u]:void 0,S=e?a[e]:void 0,C=r&&Object.keys(i).length===0,w=N(e=>e.runs),T=e=>{if(!x||e===x.state)return null;let t=x.currentRunId?w[x.currentRunId]:void 0;return xe(x,e,t).kind===`invalid`?`invalid`:`valid`};return(0,Z.jsxs)(`div`,{"data-testid":`board`,className:`absolute inset-0 flex min-w-0 flex-col`,children:[(0,Z.jsxs)(`header`,{className:`flex min-w-0 flex-wrap items-center gap-2 border-b border-border px-4 py-2.5`,children:[(0,Z.jsx)(`h1`,{className:`mr-2 text-lg font-semibold`,children:`Board`}),(0,Z.jsx)(Pe,{board:t}),(0,Z.jsx)(He,{board:t,className:`w-56 max-w-full`}),(0,Z.jsx)(Ge,{board:t}),(0,Z.jsxs)(`div`,{className:`ml-auto flex items-center gap-2`,children:[C&&(0,Z.jsx)(`span`,{className:`text-xs text-muted`,children:`Add a project first`}),(0,Z.jsx)(D,{variant:`primary`,icon:(0,Z.jsx)(it,{className:`size-4`}),onClick:()=>p(!0),disabled:C,children:`New task`})]})]}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-x-5 gap-y-2 border-b border-border px-4 py-2`,children:[(0,Z.jsx)(Me,{}),(0,Z.jsxs)(`span`,{className:`text-sm text-muted`,role:`status`,children:[t.queueCount,` queued`]}),(0,Z.jsx)(Ye,{board:t}),(0,Z.jsx)(Ke,{board:t}),(0,Z.jsx)(qe,{board:t})]}),(0,Z.jsx)(We,{board:t}),r?C?(0,Z.jsx)(A,{icon:(0,Z.jsx)(ut,{className:`size-8`}),title:`No projects yet`,description:`Tasks belong to a project. Add a project from a host checkout to start planning work.`,action:{label:`Add a project`,to:V.settings(`projects`)}}):t.totalTasks===0?(0,Z.jsx)(A,{icon:(0,Z.jsx)(ut,{className:`size-8`}),title:`No tasks yet`,description:`Create a task in Backlog, or make it ready so the dispatcher starts it.`,action:{label:`New task`,onClick:()=>p(!0)}}):(0,Z.jsxs)(bi,{sensors:m,collisionDetection:ba,onDragStart:v,onDragEnd:y,onDragCancel:()=>d(null),accessibility:{announcements:b,screenReaderInstructions:{draggable:`To move a task, press Space to pick it up, use the arrow keys to move between columns, then press Space to drop or Escape to cancel. The task menu offers Move to… without dragging.`}},children:[t.visibleCount===0&&(0,Z.jsxs)(`p`,{role:`status`,className:`px-4 pt-3 text-sm text-muted`,children:[`No tasks match the filters.`,` `,(0,Z.jsx)(xt,{onClick:()=>t.setFilters({...Ie,sort:t.filters.sort}),children:`Clear filters`})]}),(0,Z.jsx)(`section`,{ref:h,"aria-label":`Board columns`,onScroll:e=>{$.boardScrollLeft=e.currentTarget.scrollLeft},className:`min-h-0 flex-1 overflow-x-auto overflow-y-hidden overscroll-x-contain`,children:(0,Z.jsx)(`div`,{className:`flex h-full w-max gap-3 p-4`,children:t.states.map(n=>(0,Z.jsx)(Ea,{state:n,board:t,width:l,onOpen:g,selectedId:e,drop:T(n),onNew:()=>p(!0)},n))})}),(0,Z.jsx)(Bi,{dropAnimation:null,children:x&&(0,Z.jsx)(`div`,{className:`rotate-1 shadow-pop`,style:{width:`clamp(272px, ${l-16}px, 344px)`},children:(0,Z.jsx)(da,{task:x,showProject:t.showProject,wait:t.waits.get(x.id),onOpen:()=>void 0})})})]}):(0,Z.jsx)(E,{label:`Loading tasks…`}),(0,Z.jsx)(vt,{open:!!e,onClose:_,width:520,title:S?.title??(r?`Task not found`:`Loading task…`),description:S?B[S.state]:void 0,footer:S?(0,Z.jsx)(Ca,{task:S}):void 0,children:(0,Z.jsx)(`div`,{"data-testid":`task-drawer`,className:`min-w-0`,children:S?(0,Z.jsx)($i,{task:S,onDeleted:()=>s(V.board,{replace:!0})}):r?(0,Z.jsx)(A,{title:`Task not found`,description:`It may have been deleted, or this link is from another coordinator.`,action:{label:`Back to board`,to:V.board}}):(0,Z.jsx)(E,{label:`Loading task…`})})}),(0,Z.jsx)(gt,{open:f,onClose:()=>p(!1),title:`New task`,className:`max-w-xl`,children:(0,Z.jsx)(ua,{defaultProjectId:t.projectId,onCancel:()=>p(!1),onCreated:e=>{p(!1),$.focusTaskId=e.id,requestAnimationFrame(()=>document.querySelector(`[data-card-open="${CSS.escape(e.id)}"]`)?.focus())}})})]})}function Ca({task:e}){let{eligibility:t}=Yi(e),n=Hi(),r=N(t=>e.currentRunId?t.runs[e.currentRunId]:void 0),i=Fe.filter(t=>t!==e.state).map(t=>{let i=xe(e,t,r);return{id:`move-${t}`,label:ma(e.state,t),icon:(0,Z.jsx)(pa,{state:t}),disabled:i.kind===`invalid`,hint:$e(i)??void 0,onSelect:()=>void n.move(e,t)}});return(0,Z.jsxs)(`div`,{className:`flex w-full min-w-0 items-start gap-2`,children:[(0,Z.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,Z.jsx)(Zi,{task:e,eligibility:t})}),(0,Z.jsx)(F,{label:`Move ${e.title}`,side:`top`,align:`end`,items:i,trigger:e=>(0,Z.jsx)(D,{...e,icon:(0,Z.jsx)(kt,{className:`size-4`}),children:`Move to…`})})]})}function wa(e,t){let n=t[String(e).replace(va,``)];return n?`task ${n.title}`:`task`}function Ta(e,t){if(e.startsWith(ga))return`the ${B[e.slice(4)]} column`;let n=t[e.slice(5)];return n?`${n.title} in ${B[n.state]}`:`a task`}function Ea({state:e,board:t,width:n,onOpen:r,selectedId:i,drop:a,onNew:o}){let{setNodeRef:s,isOver:c}=Oi({id:`${ga}${e}`}),[l,u]=(0,U.useState)(!1),d=t.columns[e],f=m[e].icon,p=e===`done`&&!t.filters.showCompleted&&!l,h=`col-${e}-title`,g=(0,U.useCallback)(t=>{t&&(t.scrollTop=$.columnScroll[e]??0)},[e]);return(0,Z.jsx)(`section`,{ref:s,"data-testid":`column-${e}`,"aria-labelledby":h,style:{width:`clamp(288px, ${n}px, 360px)`},"data-drop":a??void 0,className:T(`flex h-full shrink-0 flex-col rounded-lg border bg-surface-2`,a===`invalid`?T(`border-dashed opacity-50`,c?`border-danger`:`border-border`):c?`border-accent`:`border-border`),children:(0,Z.jsxs)(`div`,{ref:g,"data-column-scroll":e,onScroll:t=>{$.columnScroll[e]=t.currentTarget.scrollTop},className:`min-h-0 flex-1 overflow-y-auto overscroll-y-contain`,children:[(0,Z.jsxs)(`h2`,{id:h,className:`sticky top-0 z-10 flex items-center gap-2 rounded-t-lg border-b border-border bg-surface-2 px-3 py-2 text-sm font-semibold`,children:[(0,Z.jsx)(f,{"aria-hidden":!0,className:`size-4 text-muted`}),(0,Z.jsx)(`span`,{className:`flex-1`,children:B[e]}),a===`invalid`&&(0,Z.jsx)(`span`,{className:`text-xs font-normal text-muted`,children:`Can't move here`}),(0,Z.jsxs)(`span`,{className:`rounded-full bg-surface px-2 text-xs font-medium text-muted tabular-nums`,children:[d.length,(0,Z.jsx)(`span`,{className:`sr-only`,children:` tasks`})]})]}),(0,Z.jsx)(`ul`,{className:`flex flex-col gap-2 p-2`,children:p?(0,Z.jsxs)(`li`,{className:`flex flex-col items-start gap-1 px-1 py-2 text-sm text-muted`,children:[d.length,` completed `,d.length===1?`task is`:`tasks are`,` hidden.`,d.length>0&&(0,Z.jsx)(xt,{onClick:()=>u(!0),children:`Show completed`})]}):d.length===0?(0,Z.jsx)(`li`,{className:`px-1 py-2 text-sm text-muted`,children:e===`backlog`?(0,Z.jsx)(xt,{icon:(0,Z.jsx)(it,{"aria-hidden":!0,className:`size-4`}),onClick:o,children:`New task`}):`No tasks`}):d.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsx)(Da,{task:e,board:t,onOpen:r,selected:e.id===i})},e.id))})]})})}function Da({task:e,board:t,onOpen:n,selected:r}){let i=wi({id:`${va}${e.id}`}),a=Oi({id:`${_a}${e.id}`,disabled:i.isDragging}),{onPointerDown:o,onKeyDown:s}=i.listeners??{},c={setNodeRef:e=>{i.setNodeRef(e),a.setNodeRef(e)},setHandleRef:i.setActivatorNodeRef,cardProps:{onPointerDown:o},handleProps:{...i.attributes,onKeyDown:s},dragging:i.isDragging,style:a.isOver?{boxShadow:`0 -3px 0 0 var(--sy-accent)`}:void 0};return(0,Z.jsx)(da,{task:e,showProject:t.showProject,wait:t.waits.get(e.id),onOpen:n,drag:c,selected:r})}var Oa=()=>document.getElementById(`main`);function ka(){let e=ha(),t=N(e=>e.hydrated),r=N(e=>e.projects),i=n(),[a,o]=mt(`board-mobile`,{tab:`ready`,layout:`column`}),[s,c]=(0,U.useState)(!1),l=(0,U.useId)(),[u,f]=(0,U.useState)(()=>e.filters.search!==``),p=u||e.filters.search!==``,h=e.states.includes(a.tab)?a.tab:`ready`;(0,U.useLayoutEffect)(()=>{if(!t)return;let e=Oa(),n=$.mainScrollTop;e&&(e.scrollTop=n);let r=requestAnimationFrame(()=>{r=requestAnimationFrame(()=>{e&&e.scrollTop<n&&(e.scrollTop=n)})}),i=$.focusTaskId;return $.focusTaskId=null,i&&requestAnimationFrame(()=>document.querySelector(`[data-card-open="${CSS.escape(i)}"]`)?.focus({preventScroll:!0})),()=>cancelAnimationFrame(r)},[t]);let g=e=>{$.mainScrollTop=Oa()?.scrollTop??0,$.focusTaskId=e.id,i(V.task(e.id),{state:ot})},_=t&&Object.keys(r).length===0,v=(t,n)=>t.length===0?(0,Z.jsxs)(`p`,{className:`px-1 py-3 text-sm text-muted`,children:[`No `,B[n],` tasks.`]}):(0,Z.jsx)(`ul`,{className:`flex flex-col gap-2`,children:t.map(t=>(0,Z.jsx)(`li`,{children:(0,Z.jsx)(da,{task:t,full:!0,showProject:e.showProject,wait:e.waits.get(t.id),onOpen:g})},t.id))});return(0,Z.jsxs)(`div`,{"data-testid":`board`,className:`flex min-w-0 flex-col`,children:[(0,Z.jsxs)(`header`,{"data-testid":`board-header`,className:`sticky top-0 z-20 flex min-w-0 flex-col border-b border-border bg-bg safe-pt`,children:[(0,Z.jsxs)(`div`,{className:`flex h-14 min-w-0 items-center gap-1 px-3`,children:[(0,Z.jsx)(`h1`,{className:`min-w-0 flex-1 truncate text-lg font-semibold`,children:`Board`}),(0,Z.jsx)(_t,{label:p?`Hide search`:`Show search`,"aria-expanded":p,"aria-controls":l,icon:(0,Z.jsx)(st,{className:`size-5`}),onClick:()=>{p?(e.setFilters({...e.filters,search:``}),f(!1)):f(!0)}}),(0,Z.jsx)(Ge,{board:e,mobile:!0,extraCount:+!!e.projectId,extra:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(Pe,{board:e,labelVisible:!0}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-medium`,children:`Layout`}),(0,Z.jsx)(Tt,{label:`Board layout`,block:!0,value:a.layout,onChange:e=>o({...a,layout:e}),options:[{value:`column`,label:`Columns`,icon:(0,Z.jsx)(jt,{"aria-hidden":!0,className:`size-4`})},{value:`list`,label:`List`,icon:(0,Z.jsx)(Ft,{"aria-hidden":!0,className:`size-4`})}]})]})]})}),(0,Z.jsx)(D,{variant:`primary`,size:`sm`,icon:(0,Z.jsx)(it,{className:`size-4`}),"aria-label":`New task`,onClick:()=>c(!0),disabled:_,children:`New`})]}),_&&(0,Z.jsx)(`p`,{className:`px-3 pb-2 text-xs text-muted`,children:`Add a project to create tasks.`}),p&&(0,Z.jsx)(`div`,{id:l,className:`px-3 pb-2`,children:(0,Z.jsx)(He,{board:e,autoFocus:u&&!e.filters.search})}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2 px-3 pb-2`,children:[(0,Z.jsx)(ze,{queueCount:e.queueCount}),(0,Z.jsx)(qe,{board:e})]}),a.layout===`column`&&(0,Z.jsx)(`div`,{"data-testid":`status-tabs`,className:`px-1`,children:(0,Z.jsx)(St,{label:`Task status`,idPrefix:`board-tab`,scrollable:!0,className:`border-b-0`,value:h,onChange:e=>o({...a,tab:e}),tabs:e.states.map(t=>{let n=m[t].icon;return{id:t,label:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(n,{"aria-hidden":!0,className:`size-4`}),B[t]]}),badge:(0,Z.jsx)(d,{label:`${e.columns[t].length} tasks`,children:e.columns[t].length})}})})})]}),(0,Z.jsx)(We,{board:e}),(0,Z.jsx)(`div`,{className:`flex min-w-0 flex-col gap-3 px-3 py-3`,children:t?_?(0,Z.jsx)(A,{icon:(0,Z.jsx)(ut,{className:`size-8`}),title:`No projects yet`,description:`Tasks belong to a project. Add a project from a host checkout first.`,action:{label:`Add a project`,to:V.settings(`projects`)}}):e.totalTasks===0?(0,Z.jsx)(A,{icon:(0,Z.jsx)(ut,{className:`size-8`}),title:`No tasks yet`,description:`Create a task in Backlog, or make it ready so the dispatcher starts it.`,action:{label:`New task`,onClick:()=>c(!0)}}):e.visibleCount===0?(0,Z.jsx)(A,{title:`No tasks match the filters`,action:{label:`Clear filters`,onClick:()=>e.setFilters({...Ie,sort:e.filters.sort})}}):a.layout===`column`?(0,Z.jsx)(wt,{idPrefix:`board-tab`,id:h,children:h===`done`&&!e.filters.showCompleted?(0,Z.jsxs)(`p`,{className:`text-sm text-muted`,children:[`Completed tasks are hidden.`,` `,(0,Z.jsx)(xt,{onClick:()=>e.setFilters({...e.filters,showCompleted:!0}),children:`Show completed`})]}):v(e.columns[h],h)}):e.states.filter(t=>t!==`done`||e.filters.showCompleted).map(t=>(0,Z.jsxs)(`section`,{"aria-labelledby":`grp-${t}`,"data-testid":`column-${t}`,className:`flex flex-col gap-2`,children:[(0,Z.jsxs)(`h2`,{id:`grp-${t}`,className:`flex items-center gap-2 pt-1 text-sm font-semibold`,children:[(0,Z.jsx)(pa,{state:t,className:`text-muted`}),B[t],(0,Z.jsxs)(`span`,{className:`text-muted`,children:[`(`,e.columns[t].length,`)`]})]}),v(e.columns[t],t)]},t)):(0,Z.jsx)(E,{label:`Loading tasks…`})}),(0,Z.jsx)(ht,{open:s,onClose:()=>c(!1),title:`New task`,children:(0,Z.jsx)(ua,{defaultProjectId:e.projectId,onCancel:()=>c(!1),onCreated:e=>{c(!1),o({...a,tab:e.state})}})})]})}function Aa({taskId:e}){ft();let t=v(e),n=N(e=>e.hydrated),[r,i]=(0,U.useState)(!1),{eligibility:a}=Yi(t),o=at(V.board);return(0,U.useLayoutEffect)(()=>{let e=Oa();e&&(e.scrollTop=0)},[]),(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col`,"data-testid":`task-page`,children:[(0,Z.jsxs)(`header`,{className:`sticky top-0 z-20 flex min-w-0 items-center gap-1 border-b border-border bg-surface px-1 pb-1 safe-pt-1`,children:[(0,Z.jsx)(_t,{label:`Back to board`,icon:(0,Z.jsx)(le,{className:`size-5`}),onClick:o}),(0,Z.jsx)(`h1`,{className:`min-w-0 flex-1 truncate text-base font-semibold`,children:t?.title??`Task`}),t&&(0,Z.jsx)(D,{size:`sm`,icon:(0,Z.jsx)(kt,{className:`size-4`}),onClick:()=>i(!0),children:`Move task`})]}),t?(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-col px-4 pt-3 pb-8`,children:[(0,Z.jsx)(`div`,{children:(0,Z.jsx)(Zi,{task:t,eligibility:a,block:!0})}),(0,Z.jsx)($i,{task:t,onDeleted:o}),(0,Z.jsx)(ja,{task:t,open:r,onClose:()=>i(!1)})]}):n?(0,Z.jsx)(A,{title:`Task not found`,description:`It may have been deleted.`,action:{label:`Back to board`,to:V.board}}):(0,Z.jsx)(E,{label:`Loading task…`})]})}function ja({task:e,open:t,onClose:n}){let r=Hi(),i=N(e=>e.runs),a=e.currentRunId?i[e.currentRunId]:void 0,o=new Set(Ne(e));return(0,Z.jsx)(ht,{open:t,onClose:n,title:`Move task`,description:`Currently ${B[e.state]}`,children:(0,Z.jsx)(`ul`,{"data-testid":`move-sheet`,className:`flex flex-col`,children:Fe.filter(t=>t!==e.state).map(t=>{let i=xe(e,t,a),s=$e(i);return(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`button`,{type:`button`,disabled:!o.has(t),onClick:()=>{n(),r.move(e,t)},className:`tap flex w-full items-start gap-3 rounded-md px-2 py-3 text-left hover:bg-surface-2 disabled:opacity-60`,children:[(0,Z.jsx)(pa,{state:t,className:`mt-0.5 text-muted`}),(0,Z.jsxs)(`span`,{className:`min-w-0 flex-1`,children:[(0,Z.jsx)(`span`,{className:`block font-medium`,children:ma(e.state,t)}),s&&(0,Z.jsx)(`span`,{className:`block text-sm text-muted`,children:s})]})]})},t)})})})}function Ma(){let e=ye(),n=t(`/tasks/:taskId`)?.params.taskId;return(0,Z.jsx)(Wi,{children:e===`mobile`?n?(0,Z.jsx)(Aa,{taskId:n},n):(0,Z.jsx)(ka,{}):(0,Z.jsx)(Sa,{taskId:n})})}export{Ma as default};
|
|
10
|
+
//# sourceMappingURL=board-CeJxBVHC.js.map
|