@spencerboucher/switchyard 0.7.0 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/README.md +1 -1
  2. package/dist/bridge/switchyard-terminal.js +96 -1
  3. package/dist/switchyard.mjs +463 -126
  4. package/package.json +1 -1
  5. package/web-dist/assets/{AutomationView-BIW_pO0M.js → AutomationView-GCthHkym.js} +2 -2
  6. package/web-dist/assets/{AutomationView-BIW_pO0M.js.map → AutomationView-GCthHkym.js.map} +1 -1
  7. package/web-dist/assets/{Badge-BiDp7NKI.js → Badge-CEMI3YyI.js} +2 -2
  8. package/web-dist/assets/{Badge-BiDp7NKI.js.map → Badge-CEMI3YyI.js.map} +1 -1
  9. package/web-dist/assets/{InteractionCard-CWxyDv81.js → InteractionCard-DaLqafmA.js} +2 -2
  10. package/web-dist/assets/{InteractionCard-CWxyDv81.js.map → InteractionCard-DaLqafmA.js.map} +1 -1
  11. package/web-dist/assets/{Menu-BDt1bxwz.js → Menu-BcKiEc6X.js} +2 -2
  12. package/web-dist/assets/{Menu-BDt1bxwz.js.map → Menu-BcKiEc6X.js.map} +1 -1
  13. package/web-dist/assets/{SegmentedControl-D-2BCZzd.js → SegmentedControl-BZPzNU08.js} +2 -2
  14. package/web-dist/assets/{SegmentedControl-D-2BCZzd.js.map → SegmentedControl-BZPzNU08.js.map} +1 -1
  15. package/web-dist/assets/{Tabs-ByiPklAw.js → Tabs-COH5EMql.js} +2 -2
  16. package/web-dist/assets/{Tabs-ByiPklAw.js.map → Tabs-COH5EMql.js.map} +1 -1
  17. package/web-dist/assets/{TextArea-BYr88SnV.js → TextArea-CeMEPZn4.js} +2 -2
  18. package/web-dist/assets/{TextArea-BYr88SnV.js.map → TextArea-CeMEPZn4.js.map} +1 -1
  19. package/web-dist/assets/{attention-Bya8XHKI.js → attention-BAdea2kA.js} +2 -2
  20. package/web-dist/assets/{attention-Bya8XHKI.js.map → attention-BAdea2kA.js.map} +1 -1
  21. package/web-dist/assets/{automations-DiXKRcnE.js → automations-DSFUzB0w.js} +2 -2
  22. package/web-dist/assets/{automations-DiXKRcnE.js.map → automations-DSFUzB0w.js.map} +1 -1
  23. package/web-dist/assets/{board-BrLaJwLJ.js → board-eQ3H8yCp.js} +2 -2
  24. package/web-dist/assets/{board-BrLaJwLJ.js.map → board-eQ3H8yCp.js.map} +1 -1
  25. package/web-dist/assets/code-D7JmYMKe.js +13 -0
  26. package/web-dist/assets/code-D7JmYMKe.js.map +1 -0
  27. package/web-dist/assets/{describe-DnvH6_fl.js → describe-C1YimBXJ.js} +2 -2
  28. package/web-dist/assets/{describe-DnvH6_fl.js.map → describe-C1YimBXJ.js.map} +1 -1
  29. package/web-dist/assets/dist-B_RpNOcK.js +56 -0
  30. package/web-dist/assets/dist-B_RpNOcK.js.map +1 -0
  31. package/web-dist/assets/{enroll-DUDpbJoB.js → enroll-1OCy5r50.js} +2 -2
  32. package/web-dist/assets/{enroll-DUDpbJoB.js.map → enroll-1OCy5r50.js.map} +1 -1
  33. package/web-dist/assets/{index-vIzH1m8u.js → index-BhpEXLav.js} +4 -4
  34. package/web-dist/assets/{index-vIzH1m8u.js.map → index-BhpEXLav.js.map} +1 -1
  35. package/web-dist/assets/index-DUeOwDZ6.css +2 -0
  36. package/web-dist/assets/{logic-xb-QF00E.js → logic-CBvFOyIo.js} +2 -2
  37. package/web-dist/assets/{logic-xb-QF00E.js.map → logic-CBvFOyIo.js.map} +1 -1
  38. package/web-dist/assets/{more-BP5x45cs.js → more-RjVyxPaz.js} +2 -2
  39. package/web-dist/assets/{more-BP5x45cs.js.map → more-RjVyxPaz.js.map} +1 -1
  40. package/web-dist/assets/{now--XjJC37b.js → now-CDjeFSLD.js} +2 -2
  41. package/web-dist/assets/{now--XjJC37b.js.map → now-CDjeFSLD.js.map} +1 -1
  42. package/web-dist/assets/{settings-D8T1esWq.js → settings-tH4UuIfJ.js} +2 -2
  43. package/web-dist/assets/{settings-D8T1esWq.js.map → settings-tH4UuIfJ.js.map} +1 -1
  44. package/web-dist/assets/{shared-CZ7fcu_B.js → shared-CRX6KSBm.js} +2 -2
  45. package/web-dist/assets/{shared-CZ7fcu_B.js.map → shared-CRX6KSBm.js.map} +1 -1
  46. package/web-dist/assets/states-DXozulGZ.js +2 -0
  47. package/web-dist/assets/states-DXozulGZ.js.map +1 -0
  48. package/web-dist/assets/{terminal-login-BJxV78au.js → terminal-login-CW2rE50W.js} +2 -2
  49. package/web-dist/assets/{terminal-login-BJxV78au.js.map → terminal-login-CW2rE50W.js.map} +1 -1
  50. package/web-dist/assets/{useNow-jxdoOC_1.js → useNow-C_B7JgMM.js} +2 -2
  51. package/web-dist/assets/{useNow-jxdoOC_1.js.map → useNow-C_B7JgMM.js.map} +1 -1
  52. package/web-dist/index.html +4 -4
  53. package/web-dist/sw.js +1 -1
  54. package/web-dist/assets/code-DKLO8bzz.js +0 -11
  55. package/web-dist/assets/code-DKLO8bzz.js.map +0 -1
  56. package/web-dist/assets/dist-BE_V9dwJ.js +0 -56
  57. package/web-dist/assets/dist-BE_V9dwJ.js.map +0 -1
  58. package/web-dist/assets/index-DvRcMGEe.css +0 -2
  59. package/web-dist/assets/states--geW2Ntl.js +0 -2
  60. package/web-dist/assets/states--geW2Ntl.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import{_ as e,d as t,f as n,i as r,m as i,n as a,t as o,u as s}from"./jsx-runtime-D13aM9HY.js";import{i as c,t as l}from"./Badge-BiDp7NKI.js";import{A as u,E as d,F as f,G as p,P as m,S as h,W as g,a as _,b as v,c as y,d as b,f as x,h as S,i as C,l as w,m as T,n as E,o as D,p as ee,t as O,u as k,x as te,y as A}from"./states--geW2Ntl.js";import{i as j,n as M,r as N,t as P}from"./Menu-BDt1bxwz.js";import{t as ne}from"./arrow-left-C6YWM6y6.js";import{c as re,n as ie,r as F,t as ae}from"./Tabs-ByiPklAw.js";import{t as oe}from"./server-SxFxIScj.js";import{t as se}from"./chevron-right-evVLS6hq.js";import{t as I}from"./external-link-3jjTxo92.js";import{A as ce,C as le,D as ue,E as de,M as fe,N as L,O as pe,P as me,S as he,T as ge,_ as _e,a as ve,b as ye,c as R,d as be,f as z,g as B,h as xe,i as Se,j as Ce,k as we,l as Te,m as Ee,n as De,o as Oe,p as ke,r as Ae,s as je,t as Me,u as Ne,v as Pe,w as Fe,x as Ie,y as Le}from"./useNow-jxdoOC_1.js";import{n as Re,t as ze}from"./pencil-DI8QbCN8.js";import{t as Be}from"./link-2-CaMlUDRG.js";import{t as Ve}from"./play-CjoDg3ws.js";import{t as He}from"./plus-BLP-wIYD.js";import{t as Ue}from"./trash-C6X2OLrI.js";import{D as We,F as Ge,P as Ke,T as qe,a as Je,c as Ye,d as Xe,f as Ze,j as Qe,l as V,p as $e,r as et,s as tt,t as H,u as nt,v as rt,w as it,y as at}from"./index-vIzH1m8u.js";import{a as ot,i as st,n as ct,r as lt,s as ut,t as dt}from"./TextArea-BYr88SnV.js";import{c as ft}from"./dist-BE_V9dwJ.js";import{t as pt}from"./SegmentedControl-D-2BCZzd.js";var mt={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`}]]};mt.node;var ht=a(mt),gt={name:`chevrons-up`,size:24,node:[[`path`,{d:`m17 11-5-5-5 5`,key:`e8nh98`}],[`path`,{d:`m17 18-5-5-5 5`,key:`2avn1x`}]]};gt.node;var _t=a(gt),vt={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`]};vt.node;var yt=a(vt),bt={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`}]]};bt.node;var xt=a(bt),St={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`}]]};St.node;var Ct=a(St),wt={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`}]]};wt.node;var Tt=a(wt),Et={name:`minus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]};Et.node;var Dt=a(Et),Ot={name:`rotate-ccw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]};Ot.node;var kt=a(Ot),At=c(),U=e(i()),jt=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function Mt(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function Nt(e){return`nodeType`in e}function W(e){return e?Mt(e)?e:Nt(e)?e.ownerDocument?.defaultView??window:window:window}function Pt(e){let{Document:t}=W(e);return e instanceof t}function Ft(e){return!Mt(e)&&e instanceof W(e).HTMLElement}function It(e){return e instanceof W(e).SVGElement}function Lt(e){return e?Mt(e)?e.document:Nt(e)?Pt(e)?e:Ft(e)||It(e)?e.ownerDocument:document:document:document}var G=jt?U.useLayoutEffect:U.useEffect;function Rt(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 zt(){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 Bt(e,t){t===void 0&&(t=[e]);let n=(0,U.useRef)(e);return G(()=>{n.current!==e&&(n.current=e)},t),n}function Vt(e,t){let n=(0,U.useRef)();return(0,U.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function Ht(e){let t=Rt(e),n=(0,U.useRef)(null);return[n,(0,U.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function Ut(e){let t=(0,U.useRef)();return(0,U.useEffect)(()=>{t.current=e},[e]),t.current}var Wt={};function Gt(e,t){return(0,U.useMemo)(()=>{if(t)return t;let n=Wt[e]==null?0:Wt[e]+1;return Wt[e]=n,e+`-`+n},[e,t])}function Kt(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 qt=Kt(1),Jt=Kt(-1);function Yt(e){return`clientX`in e&&`clientY`in e}function Xt(e){if(!e)return!1;let{KeyboardEvent:t}=W(e.target);return t&&e instanceof t}function Zt(e){if(!e)return!1;let{TouchEvent:t}=W(e.target);return t&&e instanceof t}function Qt(e){if(Zt(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 Yt(e)?{x:e.clientX,y:e.clientY}:null}var $t=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[$t.Translate.toString(e),$t.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),en=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function tn(e){return e.matches(en)?e:e.querySelector(en)}var nn={display:`none`};function rn(e){let{id:t,value:n}=e;return U.createElement(`div`,{id:t,style:nn},n)}function an(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 on(){let[e,t]=(0,U.useState)(``);return{announce:(0,U.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var sn=(0,U.createContext)(null);function cn(e){let t=(0,U.useContext)(sn);(0,U.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function ln(){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 un={draggable:`
1
+ import{_ as e,d as t,f as n,i as r,m as i,n as a,t as o,u as s}from"./jsx-runtime-D13aM9HY.js";import{i as c,t as l}from"./Badge-CEMI3YyI.js";import{A as u,E as d,F as f,G as p,P as m,S as h,W as g,a as _,b as v,c as y,d as b,f as x,h as S,i as C,l as w,m as T,n as E,o as D,p as ee,t as O,u as k,x as te,y as A}from"./states-DXozulGZ.js";import{i as j,n as M,r as N,t as P}from"./Menu-BcKiEc6X.js";import{t as ne}from"./arrow-left-C6YWM6y6.js";import{c as re,n as ie,r as F,t as ae}from"./Tabs-COH5EMql.js";import{t as oe}from"./server-SxFxIScj.js";import{t as se}from"./chevron-right-evVLS6hq.js";import{t as I}from"./external-link-3jjTxo92.js";import{A as ce,C as le,D as ue,E as de,M as fe,N as L,O as pe,P as me,S as he,T as ge,_ as _e,a as ve,b as ye,c as R,d as be,f as z,g as B,h as xe,i as Se,j as Ce,k as we,l as Te,m as Ee,n as De,o as Oe,p as ke,r as Ae,s as je,t as Me,u as Ne,v as Pe,w as Fe,x as Ie,y as Le}from"./useNow-C_B7JgMM.js";import{n as Re,t as ze}from"./pencil-DI8QbCN8.js";import{t as Be}from"./link-2-CaMlUDRG.js";import{t as Ve}from"./play-CjoDg3ws.js";import{t as He}from"./plus-BLP-wIYD.js";import{t as Ue}from"./trash-C6X2OLrI.js";import{D as We,F as Ge,P as Ke,T as qe,a as Je,c as Ye,d as Xe,f as Ze,j as Qe,l as V,p as $e,r as et,s as tt,t as H,u as nt,v as rt,w as it,y as at}from"./index-BhpEXLav.js";import{a as ot,i as st,n as ct,r as lt,s as ut,t as dt}from"./TextArea-CeMEPZn4.js";import{c as ft}from"./dist-B_RpNOcK.js";import{t as pt}from"./SegmentedControl-BZPzNU08.js";var mt={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`}]]};mt.node;var ht=a(mt),gt={name:`chevrons-up`,size:24,node:[[`path`,{d:`m17 11-5-5-5 5`,key:`e8nh98`}],[`path`,{d:`m17 18-5-5-5 5`,key:`2avn1x`}]]};gt.node;var _t=a(gt),vt={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`]};vt.node;var yt=a(vt),bt={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`}]]};bt.node;var xt=a(bt),St={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`}]]};St.node;var Ct=a(St),wt={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`}]]};wt.node;var Tt=a(wt),Et={name:`minus`,size:24,node:[[`path`,{d:`M5 12h14`,key:`1ays0h`}]]};Et.node;var Dt=a(Et),Ot={name:`rotate-ccw`,size:24,node:[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]};Ot.node;var kt=a(Ot),At=c(),U=e(i()),jt=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function Mt(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function Nt(e){return`nodeType`in e}function W(e){return e?Mt(e)?e:Nt(e)?e.ownerDocument?.defaultView??window:window:window}function Pt(e){let{Document:t}=W(e);return e instanceof t}function Ft(e){return!Mt(e)&&e instanceof W(e).HTMLElement}function It(e){return e instanceof W(e).SVGElement}function Lt(e){return e?Mt(e)?e.document:Nt(e)?Pt(e)?e:Ft(e)||It(e)?e.ownerDocument:document:document:document}var G=jt?U.useLayoutEffect:U.useEffect;function Rt(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 zt(){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 Bt(e,t){t===void 0&&(t=[e]);let n=(0,U.useRef)(e);return G(()=>{n.current!==e&&(n.current=e)},t),n}function Vt(e,t){let n=(0,U.useRef)();return(0,U.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function Ht(e){let t=Rt(e),n=(0,U.useRef)(null);return[n,(0,U.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function Ut(e){let t=(0,U.useRef)();return(0,U.useEffect)(()=>{t.current=e},[e]),t.current}var Wt={};function Gt(e,t){return(0,U.useMemo)(()=>{if(t)return t;let n=Wt[e]==null?0:Wt[e]+1;return Wt[e]=n,e+`-`+n},[e,t])}function Kt(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 qt=Kt(1),Jt=Kt(-1);function Yt(e){return`clientX`in e&&`clientY`in e}function Xt(e){if(!e)return!1;let{KeyboardEvent:t}=W(e.target);return t&&e instanceof t}function Zt(e){if(!e)return!1;let{TouchEvent:t}=W(e.target);return t&&e instanceof t}function Qt(e){if(Zt(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 Yt(e)?{x:e.clientX,y:e.clientY}:null}var $t=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[$t.Translate.toString(e),$t.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),en=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function tn(e){return e.matches(en)?e:e.querySelector(en)}var nn={display:`none`};function rn(e){let{id:t,value:n}=e;return U.createElement(`div`,{id:t,style:nn},n)}function an(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 on(){let[e,t]=(0,U.useState)(``);return{announce:(0,U.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var sn=(0,U.createContext)(null);function cn(e){let t=(0,U.useContext)(sn);(0,U.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function ln(){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 un={draggable:`
2
2
  To pick up a draggable item, press the space bar.
3
3
  While dragging, use the arrow keys to move the item.
4
4
  Press space again to drop the item in its new position, or press escape to cancel.
@@ -7,4 +7,4 @@ import{_ as e,d as t,f as n,i as r,m as i,n as a,t as o,u as s}from"./jsx-runtim
7
7
  `)),[l,u]=(0,U.useState)(e.priority),[d,f]=(0,U.useState)(e.dependencies),[p,h]=(0,U.useState)(!1),[_,v]=(0,U.useState)(null),y=(0,U.useId)(),b=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())v(`Title is required.`);else{h(!0),v(null);try{await me(e.id,{title:r.trim(),objective:a,acceptanceCriteria:s.split(`
8
8
  `).map(e=>e.trim()).filter(Boolean),priority:l,dependencies:d}),V.success(`Task saved`),t()}catch(e){v(g(e))}finally{h(!1)}}},children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`label`,{htmlFor:`${y}-title`,className:`text-sm font-medium`,children:`Title`}),(0,Z.jsx)(ct,{id:`${y}-title`,value:r,onChange:e=>i(e.target.value),required:!0})]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`label`,{htmlFor:`${y}-obj`,className:`text-sm font-medium`,children:`Objective`}),(0,Z.jsx)(dt,{id:`${y}-obj`,minRows:4,maxHeight:`40vh`,value:a,onChange:e=>o(e.target.value)})]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`label`,{htmlFor:`${y}-crit`,className:`text-sm font-medium`,children:`Acceptance criteria (one per line)`}),(0,Z.jsx)(dt,{id:`${y}-crit`,minRows:2,maxHeight:`30vh`,value:s,onChange:e=>c(e.target.value)})]}),(0,Z.jsx)(Zi,{id:`${y}-prio`,value:l,onChange:u}),(0,Z.jsx)(Qi,{candidates:b,value:d,onChange:f}),_&&(0,Z.jsx)(`p`,{role:`alert`,className:`text-sm text-danger`,children:_}),(0,Z.jsxs)(`div`,{className:`flex gap-2`,children:[(0,Z.jsx)(w,{type:`submit`,variant:`primary`,busy:p,children:`Save`}),(0,Z.jsx)(w,{onClick:t,disabled:p,children:`Cancel`})]})]})}function Zi({id:e,value:t,onChange:n}){return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`label`,{htmlFor:e,className:`text-sm font-medium`,children:`Priority`}),(0,Z.jsx)(`select`,{id:e,value:t,onChange:e=>n(Number(e.target.value)),className:`tap h-9 rounded-md border border-border bg-surface px-2 text-base md:text-sm`,children:ft.map((e,t)=>(0,Z.jsx)(`option`,{value:t,children:e},e))})]})}function Qi({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)(ct,{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.jsxs)(`label`,{className:`tap flex min-w-0 items-center gap-2 px-3 py-1.5 text-sm hover:bg-surface-2`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:t.includes(e.id),onChange:r=>n(r.target.checked?[...t,e.id]:t.filter(t=>t!==e.id))}),(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:z[e.state]})]})},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 $i=`sy:new-task-draft`;function ea(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 ta(e){try{let t=sessionStorage.getItem($i);if(t)return{...ea(e),...JSON.parse(t)}}catch{}return ea(e)}var na=e=>e.split(`
9
9
  `).map(e=>e.trim()).filter(Boolean);function ra(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`?na(e.checks):null,requireHumanReview:e.humanReview}),{policy:n,errors:t}}function ia({defaultProjectId:e,onCreated:t,onCancel:n}){let r=u(),i=d(),a=m(e=>e.profiles),o=m(e=>e.tasks),s=m(e=>e.runs),c=m(e=>e.hosts),l=m(e=>e.dispatchPaused),[f,p]=(0,U.useState)(()=>ta(e??r[0]?.id??``)),[h,_]=(0,U.useState)(null),[y,b]=(0,U.useState)({}),[x,S]=(0,U.useState)(null),C=(0,U.useId)(),T=(e,t)=>p(n=>({...n,[e]:t}));(0,U.useEffect)(()=>{!f.projectId&&r[0]&&p(e=>({...e,projectId:r[0].id}))},[f.projectId,r]),(0,U.useEffect)(()=>{sessionStorage.setItem($i,JSON.stringify(f))},[f]);let E=r.find(e=>e.id===f.projectId),D=E?.defaultHostId?c[E.defaultHostId]:void 0,ee=E?.defaultProfileId?a[E.defaultProfileId]:void 0,O=Object.values(o).filter(e=>e.projectId===f.projectId&&e.state!==`canceled`&&!e.hiddenFromBoard).sort((e,t)=>e.title.localeCompare(t.title)),k=(0,U.useMemo)(()=>{let e={};for(let t of Object.values(s)){if(!_e(t))continue;let n=o[t.taskId]?.projectId;n&&(e[n]=(e[n]??0)+1)}return le({project:E,hostId:f.hostId||null,dependencies:f.dependencies},{hosts:c,tasks:o,dispatchPaused:l,runningByProject:e})},[E,f.hostId,f.dependencies,c,o,s,l]),te=async e=>{let n={};f.title.trim()||(n.title=`Give the task a title.`),E||(n.projectId=`Choose a project.`);let{policy:r,errors:i}=ra(f);if(Object.assign(n,i),b(n),Object.keys(n).length>0)Object.keys(i).length>0&&T(`advanced`,!0);else{_(e),S(null);try{let n=await ge({projectId:f.projectId,title:f.title.trim(),objective:f.objective,acceptanceCriteria:na(f.criteria),dependencies:f.dependencies,priority:f.priority,state:e,...Object.keys(r).length>0?{policy:r}:{}});if(sessionStorage.removeItem($i),e===`ready`){let e=B(k);try{e=B(await ue(n.id))}catch{}V.success(`Created "${n.title}" in Ready. ${e}.`)}else V.success(`Created "${n.title}" in Backlog.`);t(n)}catch(e){S(g(e))}finally{_(null)}}},A=e=>y[e]?(0,Z.jsx)(`p`,{id:`${C}-${e}-err`,className:`text-xs text-danger`,children:y[e]}):null,j=`tap h-9 w-full rounded-md border border-border bg-surface px-2 text-base md:text-sm`;return(0,Z.jsxs)(`form`,{"data-testid":`new-task-form`,className:`flex min-w-0 flex-col gap-4`,onSubmit:e=>{e.preventDefault(),te(`backlog`)},children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`label`,{htmlFor:`${C}-title`,className:`text-sm font-medium`,children:`Title`}),(0,Z.jsx)(ct,{id:`${C}-title`,value:f.title,autoFocus:!0,"aria-invalid":!!y.title,"aria-describedby":y.title?`${C}-title-err`:void 0,onChange:e=>T(`title`,e.target.value),placeholder:`What should be done?`}),A(`title`)]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`label`,{htmlFor:`${C}-objective`,className:`text-sm font-medium`,children:`Objective`}),(0,Z.jsx)(dt,{id:`${C}-objective`,minRows:3,maxHeight:`35vh`,value:f.objective,onChange:e=>T(`objective`,e.target.value),placeholder:`Context, constraints and what done looks like`})]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`label`,{htmlFor:`${C}-project`,className:`text-sm font-medium`,children:`Project`}),(0,Z.jsxs)(`select`,{id:`${C}-project`,className:j,value:f.projectId,"aria-invalid":!!y.projectId,onChange:e=>p(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))]}),A(`projectId`)]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsxs)(`button`,{type:`button`,className:`tap inline-flex items-center gap-1 rounded text-sm font-medium text-accent`,"aria-expanded":f.advanced,"aria-controls":`${C}-adv`,onClick:()=>T(`advanced`,!f.advanced),children:[f.advanced?(0,Z.jsx)(N,{"aria-hidden":!0,className:`size-4`}):(0,Z.jsx)(se,{"aria-hidden":!0,className:`size-4`}),`Advanced options`]}),(0,Z.jsx)(`p`,{className:`text-xs text-muted`,children:`Unset options inherit the project defaults.`})]}),f.advanced&&(0,Z.jsxs)(`div`,{id:`${C}-adv`,className:`flex flex-col gap-4 rounded-lg border border-border p-3`,children:[(0,Z.jsx)(Zi,{id:`${C}-prio`,value:f.priority,onChange:e=>T(`priority`,e)}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`label`,{htmlFor:`${C}-criteria`,className:`text-sm font-medium`,children:`Acceptance criteria (one per line)`}),(0,Z.jsx)(dt,{id:`${C}-criteria`,minRows:2,maxHeight:`25vh`,value:f.criteria,onChange:e=>T(`criteria`,e.target.value)})]}),(0,Z.jsx)(Qi,{candidates:O,value:f.dependencies,onChange:e=>T(`dependencies`,e)}),(0,Z.jsxs)(`div`,{className:`grid gap-4 sm:grid-cols-2`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`label`,{htmlFor:`${C}-host`,className:`text-sm font-medium`,children:`Host`}),(0,Z.jsxs)(`select`,{id:`${C}-host`,className:j,value:f.hostId,onChange:e=>T(`hostId`,e.target.value),children:[(0,Z.jsxs)(`option`,{value:``,children:[`Project default`,D?` (${D.name})`:``]}),i.map(e=>(0,Z.jsxs)(`option`,{value:e.id,children:[e.name,e.connectivity===`connected`?``:` (offline)`]},e.id))]})]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`label`,{htmlFor:`${C}-profile`,className:`text-sm font-medium`,children:`Pi profile`}),(0,Z.jsxs)(`select`,{id:`${C}-profile`,className:j,value:f.profileId,onChange:e=>T(`profileId`,e.target.value),children:[(0,Z.jsxs)(`option`,{value:``,children:[`Project default`,ee?` (${ee.name})`:``]}),Object.values(a).map(e=>(0,Z.jsx)(`option`,{value:e.id,children:e.name},e.id))]})]})]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`label`,{htmlFor:`${C}-branch`,className:`text-sm font-medium`,children:`Branch`}),(0,Z.jsx)(ct,{id:`${C}-branch`,value:f.branch,placeholder:`Generated from the title`,onChange:e=>T(`branch`,e.target.value)}),(0,Z.jsx)(`p`,{className:`text-xs text-muted`,children:`Work happens in a new worktree on this branch.`})]}),(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.jsxs)(`label`,{className:`tap flex items-center gap-2 text-sm`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:f.continuation,onChange:e=>T(`continuation`,e.target.checked)}),`Continue automatically until done (off by default)`]}),f.continuation&&(0,Z.jsxs)(`div`,{className:`grid gap-3 sm:grid-cols-2`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1 sm:col-span-2`,children:[(0,Z.jsx)(`label`,{htmlFor:`${C}-cobj`,className:`text-sm`,children:`Continuation objective`}),(0,Z.jsx)(ct,{id:`${C}-cobj`,value:f.contObjective,"aria-invalid":!!y.contObjective,onChange:e=>T(`contObjective`,e.target.value)}),A(`contObjective`)]}),(0,Z.jsx)(aa,{id:`${C}-cmax`,label:`Max continuations`,value:f.maxContinuations,onChange:e=>T(`maxContinuations`,e),error:A(`maxContinuations`)}),(0,Z.jsx)(aa,{id:`${C}-cmin`,label:`Max minutes`,value:f.maxMinutes,onChange:e=>T(`maxMinutes`,e),error:A(`maxMinutes`)}),(0,Z.jsx)(aa,{id:`${C}-ctok`,label:`Max tokens (optional)`,value:f.maxTokens,onChange:e=>T(`maxTokens`,e),error:A(`maxTokens`)}),(0,Z.jsx)(aa,{id:`${C}-ccost`,label:`Max cost USD (optional)`,value:f.maxCost,onChange:e=>T(`maxCost`,e),error:A(`maxCost`)}),(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.jsxs)(`label`,{className:`tap flex items-center gap-2 text-sm`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:f.checksMode===`custom`,onChange:e=>T(`checksMode`,e.target.checked?`custom`:`default`)}),`Use custom checks instead of the project's`,E?.checks.length?` (${E.checks.join(`, `)})`:` (none)`]}),f.checksMode===`custom`&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`label`,{htmlFor:`${C}-checks`,className:`text-sm`,children:`Check commands (one per line; empty means no checks)`}),(0,Z.jsx)(dt,{id:`${C}-checks`,minRows:2,className:`font-mono`,value:f.checks,onChange:e=>T(`checks`,e.target.value)})]}),(0,Z.jsxs)(`label`,{className:`tap flex items-center gap-2 text-sm`,children:[(0,Z.jsx)(`input`,{type:`checkbox`,checked:f.humanReview,onChange:e=>T(`humanReview`,e.target.checked)}),`Require human review before Done`]})]})]}),x&&(0,Z.jsxs)(`p`,{role:`alert`,className:`rounded-md bg-danger-soft px-3 py-2 text-sm`,children:[`Could not create the task: `,x]}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2 border-t border-border pt-3`,children:[(0,Z.jsx)(Gi,{e:k,prefix:`Make ready: `}),(0,Z.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,Z.jsx)(w,{type:`submit`,icon:(0,Z.jsx)(v,{className:`size-4`}),busy:h===`backlog`,disabled:h!==null,children:`Save to Backlog`}),(0,Z.jsx)(w,{variant:`primary`,icon:(0,Z.jsx)(Ve,{className:`size-4`}),busy:h===`ready`,disabled:h!==null,onClick:()=>void te(`ready`),children:`Make ready`}),(0,Z.jsx)(w,{variant:`ghost`,onClick:n,disabled:h!==null,children:`Cancel`})]}),(0,Z.jsx)(`p`,{className:`text-xs text-muted`,children:`Make ready authorizes dispatch. Nothing starts until the coordinator confirms.`})]})]})}function aa({id:e,label:t,value:n,onChange:r,error:i}){return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1`,children:[(0,Z.jsx)(`label`,{htmlFor:e,className:`text-sm`,children:t}),(0,Z.jsx)(ct,{id:e,inputMode:`decimal`,value:n,onChange:e=>r(e.target.value)}),i]})}var oa={neutral:`text-muted`,info:`text-info`,success:`text-success`,warning:`text-warning`,danger:`text-danger`,accent:`text-accent`};function sa({task:e,showProject:t,wait:i,onOpen:a,drag:o,full:s,selected:c}){let l=Ri(e),u=m(e=>e.tasks),d=Pi(),f=n(),p=d.isBusy(e.id),h=Li[e.priority],g=h.icon,_=zi(e,l.run,i),v=xe(e,u),y=l.attention[0],x=[{id:`open`,label:`Open details`,icon:(0,Z.jsx)(M,{className:`size-4`}),onSelect:()=>a(e)}];if(e.sessionId){let t=e.sessionId;x.push({id:`session`,label:`Open session`,icon:(0,Z.jsx)(I,{className:`size-4`}),onSelect:()=>f(H.session(t))})}x.push(`separator`);for(let t of Pe(e))x.push({id:`move-${t}`,label:ua(e.state,t),icon:(0,Z.jsx)(la,{state:t}),onSelect:()=>void d.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":p||void 0,style:o?.style,...o?.cardProps,className:S(`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)(xt,{"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})}),p&&(0,Z.jsx)(b,{label:`Updating`,className:`mt-0.5 shrink-0`}),(0,Z.jsx)(P,{label:`Actions for ${e.title}`,items:x,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)(qe,{"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.jsxs)(`span`,{className:S(`inline-flex items-center gap-1`,oa[h.tone]),children:[(0,Z.jsx)(g,{"aria-hidden":!0,className:`size-3.5`}),h.label]}),t&&l.projectName&&(0,Z.jsx)(`span`,{className:`min-w-0 truncate`,children:l.projectName})]}),_&&(0,Z.jsx)(ca,{icon:_.spin?(0,Z.jsx)(b,{className:`size-3.5`}):(0,Z.jsx)(_.icon,{"aria-hidden":!0,className:S(`size-3.5`,_.pulse&&`animate-pulse`)}),className:oa[_.tone],children:_.text}),(l.hostName||l.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:[l.hostName&&(0,Z.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1`,children:[(0,Z.jsx)(oe,{"aria-hidden":!0,className:`size-3.5 shrink-0`}),(0,Z.jsxs)(`span`,{className:`truncate`,children:[l.hostName,l.hostOffline?` (offline)`:``]})]}),l.branch&&(0,Z.jsxs)(`span`,{className:`inline-flex min-w-0 items-center gap-1`,children:[(0,Z.jsx)(Re,{"aria-hidden":!0,className:`size-3.5 shrink-0`}),(0,Z.jsx)(`span`,{className:`truncate`,children:l.branch})]})]}),v&&(0,Z.jsx)(ca,{icon:(0,Z.jsx)(Be,{"aria-hidden":!0,className:`size-3.5`}),className:`text-muted`,children:v}),l.pendingInteraction&&e.sessionId?(0,Z.jsxs)(r,{to:H.interaction(e.sessionId,l.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)(A,{"aria-hidden":!0,className:`size-3.5 shrink-0`}),(0,Z.jsxs)(`span`,{className:`truncate`,children:[`Needs input: `,l.pendingInteraction.title]})]}):y?(0,Z.jsxs)(ca,{icon:(0,Z.jsx)(Ge,{"aria-hidden":!0,className:`size-3.5`}),className:oa[nt[y.reason].tone],children:[nt[y.reason].label,l.attention.length>1?` (+${l.attention.length-1})`:``]}):null,(0,Z.jsxs)(`div`,{className:`text-xs text-subtle`,children:[`Updated `,(0,Z.jsx)(`time`,{dateTime:e.lastActivityAt,children:ee(e.lastActivityAt)})]})]})}function ca({icon:e,children:t,className:n}){return(0,Z.jsxs)(`div`,{className:S(`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 la({state:e,className:t}){let n=$e[e].icon;return(0,Z.jsx)(n,{"aria-hidden":!0,className:S(`size-4`,t)})}function ua(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 ${z[t]}`:t===`canceled`?`Cancel task`:t===`done`?`Accept (Done)`:`Move to ${z[t]}`}function da(){let e=Ye(e=>e.filters.board),t=Ye(e=>e.setFilter),n=Ye(e=>e.selectedProjectId),r=Ye(e=>e.set),i=(0,U.useMemo)(()=>Le(e),[e]),a=m(e=>e.tasks),o=m(e=>e.runs),s=m(e=>e.attention),c=m(e=>e.projects),l=Me(),u=n&&c[n]?n:null,d=(0,U.useMemo)(()=>{let e=new Set(ye(s).keys());return Ee(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]),h=Fe(i),g=(0,U.useMemo)(()=>Object.values(a).filter(e=>!e.hiddenFromBoard&&(!u||e.projectId===u)).length,[a,u]),_=h.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:h,waits:f,queueCount:p,now:l,showProject:!u&&Object.keys(c).length>1,totalTasks:g,visibleCount:_}}var $={mainScrollTop:0,boardScrollLeft:0,columnScroll:{},focusTaskId:null},fa=`col:`,pa=`card:`,ma=`task:`,ha=(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(fa)).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}},ga=e=>{let t=Dn(e);if(t.length>0){let e=t.find(e=>String(e.id).startsWith(pa));return e?[e]:t}return Cn(e)};function _a(e,t){if(e.startsWith(fa))return{state:e.slice(4),beforeId:null};if(e.startsWith(pa)){let n=t[e.slice(5)];return n?{state:n.state,beforeId:n.id}:null}return null}function va({taskId:e}){let t=da(),r=m(e=>e.hydrated),i=m(e=>e.projects),a=m(e=>e.tasks),o=Pi(),c=n(),l=s(),u=Ye(e=>e.paneSizes.boardColumn),[d,f]=(0,U.useState)(null),[p,h]=(0,U.useState)(!1),g=hn(mn(hr,{activationConstraint:{distance:6}}),mn(ur,{coordinateGetter:ha,keyboardCodes:{start:[`Space`],cancel:[`Escape`],end:[`Space`,`Enter`]}})),_=(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 v=e=>{$.focusTaskId=e.id,c(H.task(e.id),{state:{fromBoard:!0}})},y=()=>{e&&($.focusTaskId=e),l.state?.fromBoard?c(-1):c(H.board)},b=e=>f(String(e.active.id).slice(5)),x=e=>{f(null);let n=String(e.active.id).slice(5),r=a[n];if(!r||!e.over)return;let i=_a(String(e.over.id),a);if(!i||i.beforeId===n)return;let s=t.columns[i.state],c=he(s,i.beforeId,n);i.state===r.state?t.filters.sort===`priority`&&o.reorder(r,c):o.move(r,i.state,{position:c})},S={onDragStart:({active:e})=>`Picked up ${ba(e.id,a)}.`,onDragOver:({active:e,over:t})=>t?`${ba(e.id,a)} is over ${xa(String(t.id),a)}.`:void 0,onDragEnd:({active:e,over:t})=>t?`Dropped ${ba(e.id,a)} on ${xa(String(t.id),a)}.`:`Dropped ${ba(e.id,a)}. It did not move.`,onDragCancel:({active:e})=>`Moving ${ba(e.id,a)} was canceled.`},C=d?a[d]:void 0,T=e?a[e]:void 0,E=r&&Object.keys(i).length===0;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)(R,{board:t}),(0,Z.jsx)(Te,{board:t,className:`w-56 max-w-full`}),(0,Z.jsx)(Oe,{board:t}),(0,Z.jsx)(`div`,{className:`ml-auto`,children:(0,Z.jsx)(w,{variant:`primary`,icon:(0,Z.jsx)(He,{className:`size-4`}),onClick:()=>h(!0),disabled:E,title:E?`Add a project first`:void 0,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)(ve,{}),(0,Z.jsxs)(`span`,{className:`text-sm text-muted`,role:`status`,children:[t.queueCount,` queued`]}),(0,Z.jsx)(Ne,{board:t}),(0,Z.jsx)(Se,{board:t}),(0,Z.jsx)(je,{board:t})]}),(0,Z.jsx)(Ae,{board:t}),r?E?(0,Z.jsx)(O,{icon:(0,Z.jsx)(at,{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:H.settings(`projects`)}}):t.totalTasks===0?(0,Z.jsx)(O,{icon:(0,Z.jsx)(at,{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:()=>h(!0)}}):(0,Z.jsxs)(fi,{sensors:g,collisionDetection:ga,onDragStart:b,onDragEnd:x,onDragCancel:()=>f(null),accessibility:{announcements:S,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)(`button`,{type:`button`,className:`tap font-medium text-accent`,onClick:()=>t.setFilters({...be,sort:t.filters.sort}),children:`Clear filters`})]}),(0,Z.jsx)(`section`,{ref:_,"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)(Sa,{state:n,board:t,width:u,onOpen:v,selectedId:e,onNew:()=>h(!0)},n))})}),(0,Z.jsx)(Mi,{dropAnimation:null,children:C&&(0,Z.jsx)(`div`,{className:`rotate-1 shadow-pop`,style:{width:`clamp(272px, ${u-16}px, 344px)`},children:(0,Z.jsx)(sa,{task:C,showProject:t.showProject,wait:t.waits.get(C.id),onOpen:()=>void 0})})})]}):(0,Z.jsx)(D,{label:`Loading tasks…`}),(0,Z.jsx)(st,{open:!!e,onClose:y,width:520,title:T?.title??(r?`Task not found`:`Loading task…`),description:T?z[T.state]:void 0,footer:T?(0,Z.jsx)(ya,{task:T}):void 0,children:(0,Z.jsx)(`div`,{"data-testid":`task-drawer`,className:`min-w-0`,children:T?(0,Z.jsx)(Ki,{task:T,onDeleted:()=>c(H.board,{replace:!0})}):r?(0,Z.jsx)(O,{title:`Task not found`,description:`It may have been deleted, or this link is from another coordinator.`,action:{label:`Back to board`,to:H.board}}):(0,Z.jsx)(D,{label:`Loading task…`})})}),(0,Z.jsx)(lt,{open:p,onClose:()=>h(!1),title:`New task`,className:`max-w-xl`,children:(0,Z.jsx)(ia,{defaultProjectId:t.projectId,onCancel:()=>h(!1),onCreated:e=>{h(!1),$.focusTaskId=e.id,requestAnimationFrame(()=>document.querySelector(`[data-card-open="${CSS.escape(e.id)}"]`)?.focus())}})})]})}function ya({task:e}){let{eligibility:t}=Hi(e);return(0,Z.jsx)(`div`,{className:`w-full min-w-0`,children:(0,Z.jsx)(Wi,{task:e,eligibility:t})})}function ba(e,t){let n=t[String(e).replace(ma,``)];return n?`task ${n.title}`:`task`}function xa(e,t){if(e.startsWith(fa))return`the ${z[e.slice(4)]} column`;let n=t[e.slice(5)];return n?`${n.title} in ${z[n.state]}`:`a task`}function Sa({state:e,board:t,width:n,onOpen:r,selectedId:i,onNew:a}){let{setNodeRef:o,isOver:s}=bi({id:`${fa}${e}`}),[c,l]=(0,U.useState)(!1),u=t.columns[e],d=$e[e].icon,f=e===`done`&&!t.filters.showCompleted&&!c,p=`col-${e}-title`,m=(0,U.useCallback)(t=>{t&&(t.scrollTop=$.columnScroll[e]??0)},[e]);return(0,Z.jsx)(`section`,{ref:o,"data-testid":`column-${e}`,"aria-labelledby":p,style:{width:`clamp(288px, ${n}px, 360px)`},className:`flex h-full shrink-0 flex-col rounded-lg border bg-surface-2 ${s?`border-accent`:`border-border`}`,children:(0,Z.jsxs)(`div`,{ref:m,"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:p,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)(d,{"aria-hidden":!0,className:`size-4 text-muted`}),(0,Z.jsx)(`span`,{className:`flex-1`,children:z[e]}),(0,Z.jsxs)(`span`,{className:`rounded-full bg-surface px-2 text-xs font-medium text-muted tabular-nums`,children:[u.length,(0,Z.jsx)(`span`,{className:`sr-only`,children:` tasks`})]})]}),(0,Z.jsx)(`ul`,{className:`flex flex-col gap-2 p-2`,children:f?(0,Z.jsxs)(`li`,{className:`flex flex-col items-start gap-1 px-1 py-2 text-sm text-muted`,children:[u.length,` completed `,u.length===1?`task is`:`tasks are`,` hidden.`,u.length>0&&(0,Z.jsx)(`button`,{type:`button`,className:`tap font-medium text-accent`,onClick:()=>l(!0),children:`Show completed`})]}):u.length===0?(0,Z.jsx)(`li`,{className:`px-1 py-2 text-sm text-muted`,children:e===`backlog`?(0,Z.jsxs)(`button`,{type:`button`,className:`tap inline-flex items-center gap-1 font-medium text-accent`,onClick:a,children:[(0,Z.jsx)(He,{"aria-hidden":!0,className:`size-4`}),` New task`]}):`No tasks`}):u.map(e=>(0,Z.jsx)(`li`,{children:(0,Z.jsx)(Ca,{task:e,board:t,onOpen:r,selected:e.id===i})},e.id))})]})})}function Ca({task:e,board:t,onOpen:n,selected:r}){let i=gi({id:`${ma}${e.id}`}),a=bi({id:`${pa}${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)(sa,{task:e,showProject:t.showProject,wait:t.waits.get(e.id),onOpen:n,drag:c,selected:r})}var wa=()=>document.getElementById(`main`);function Ta(){let e=da(),t=m(e=>e.hydrated),r=m(e=>e.projects),i=n(),[a,o]=tt(`board-mobile`,{tab:`ready`,layout:`column`}),[s,c]=(0,U.useState)(!1),u=e.states.includes(a.tab)?a.tab:`ready`;(0,U.useLayoutEffect)(()=>{if(!t)return;let e=wa(),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 d=e=>{$.mainScrollTop=wa()?.scrollTop??0,$.focusTaskId=e.id,i(H.task(e.id),{state:{fromBoard:!0}})},f=t&&Object.keys(r).length===0,p=(t,n)=>t.length===0?(0,Z.jsxs)(`p`,{className:`px-1 py-3 text-sm text-muted`,children:[`No `,z[n],` tasks.`]}):(0,Z.jsx)(`ul`,{className:`flex flex-col gap-2`,children:t.map(t=>(0,Z.jsx)(`li`,{children:(0,Z.jsx)(sa,{task:t,full:!0,showProject:e.showProject,wait:e.waits.get(t.id),onOpen:d})},t.id))});return(0,Z.jsxs)(`div`,{"data-testid":`board`,className:`flex min-w-0 flex-col`,children:[(0,Z.jsxs)(`header`,{className:`flex min-w-0 flex-col gap-2 border-b border-border bg-bg px-3 pt-3 pb-0 safe-pt`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(`h1`,{className:`flex-1 text-lg font-semibold`,children:`Board`}),(0,Z.jsx)(w,{variant:`primary`,icon:(0,Z.jsx)(He,{className:`size-4`}),onClick:()=>c(!0),disabled:f,children:`New task`})]}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,Z.jsx)(R,{board:e,className:`min-w-0 flex-1`}),(0,Z.jsx)(Oe,{board:e,mobile:!0})]}),(0,Z.jsx)(Te,{board:e}),(0,Z.jsx)(je,{board:e}),(0,Z.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center justify-between gap-2`,children:[(0,Z.jsx)(ve,{compact:!0}),(0,Z.jsxs)(`span`,{className:`text-sm text-muted`,children:[e.queueCount,` queued`]})]}),(0,Z.jsx)(pt,{label:`Board layout`,block:!0,value:a.layout,onChange:e=>o({...a,layout:e}),options:[{value:`column`,label:`Columns`,icon:(0,Z.jsx)(yt,{"aria-hidden":!0,className:`size-4`})},{value:`list`,label:`List`,icon:(0,Z.jsx)(Ct,{"aria-hidden":!0,className:`size-4`})}]}),a.layout===`column`&&(0,Z.jsx)(`div`,{"data-testid":`status-tabs`,className:`-mx-3 px-1`,children:(0,Z.jsx)(ie,{label:`Task status`,idPrefix:`board-tab`,scrollable:!0,className:`border-b-0`,value:u,onChange:e=>o({...a,tab:e}),tabs:e.states.map(t=>{let n=$e[t].icon;return{id:t,label:(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(n,{"aria-hidden":!0,className:`size-4`}),z[t]]}),badge:(0,Z.jsx)(l,{label:`${e.columns[t].length} tasks`,children:e.columns[t].length})}})})})]}),(0,Z.jsx)(Ae,{board:e}),(0,Z.jsx)(`div`,{className:`flex min-w-0 flex-col gap-3 px-3 py-3`,children:t?f?(0,Z.jsx)(O,{icon:(0,Z.jsx)(at,{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:H.settings(`projects`)}}):e.totalTasks===0?(0,Z.jsx)(O,{icon:(0,Z.jsx)(at,{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)(O,{title:`No tasks match the filters`,action:{label:`Clear filters`,onClick:()=>e.setFilters({...be,sort:e.filters.sort})}}):a.layout===`column`?(0,Z.jsx)(ae,{idPrefix:`board-tab`,id:u,children:u===`done`&&!e.filters.showCompleted?(0,Z.jsxs)(`p`,{className:`text-sm text-muted`,children:[`Completed tasks are hidden.`,` `,(0,Z.jsx)(`button`,{type:`button`,className:`tap font-medium text-accent`,onClick:()=>e.setFilters({...e.filters,showCompleted:!0}),children:`Show completed`})]}):p(e.columns[u],u)}):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)(la,{state:t,className:`text-muted`}),z[t],(0,Z.jsxs)(`span`,{className:`text-muted`,children:[`(`,e.columns[t].length,`)`]})]}),p(e.columns[t],t)]},t)):(0,Z.jsx)(D,{label:`Loading tasks…`})}),(0,Z.jsx)(ot,{open:s,onClose:()=>c(!1),title:`New task`,children:(0,Z.jsx)(ia,{defaultProjectId:e.projectId,onCancel:()=>c(!1),onCreated:e=>{c(!1),o({...a,tab:e.state})}})})]})}function Ea({taskId:e}){Je();let t=f(e),r=m(e=>e.hydrated),i=n(),a=s(),[o,c]=(0,U.useState)(!1),{eligibility:l}=Hi(t);return(0,U.useLayoutEffect)(()=>{let e=wa();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 py-1 safe-pt`,children:[(0,Z.jsx)(ut,{label:`Back to board`,icon:(0,Z.jsx)(ne,{className:`size-5`}),onClick:()=>{a.state?.fromBoard?i(-1):i(H.board)}}),(0,Z.jsx)(`h1`,{className:`min-w-0 flex-1 truncate text-base font-semibold`,children:t?.title??`Task`}),t&&(0,Z.jsx)(w,{size:`sm`,icon:(0,Z.jsx)(ht,{className:`size-4`}),onClick:()=>c(!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)(Wi,{task:t,eligibility:l,block:!0})}),(0,Z.jsx)(Ki,{task:t,onDeleted:()=>i(H.board,{replace:!0})}),(0,Z.jsx)(Da,{task:t,open:o,onClose:()=>c(!1)})]}):r?(0,Z.jsx)(O,{title:`Task not found`,description:`It may have been deleted.`,action:{label:`Back to board`,to:H.board}}):(0,Z.jsx)(D,{label:`Loading task…`})]})}function Da({task:e,open:t,onClose:n}){let r=Pi(),i=m(e=>e.runs),a=e.currentRunId?i[e.currentRunId]:void 0,o=[`backlog`,`ready`,`in_progress`,`review`,`done`,`canceled`],s=new Set(Pe(e));return(0,Z.jsx)(ot,{open:t,onClose:n,title:`Move task`,description:`Currently ${z[e.state]}`,children:(0,Z.jsx)(`ul`,{"data-testid":`move-sheet`,className:`flex flex-col`,children:o.filter(t=>t!==e.state).map(t=>{let i=Ie(e,t,a),o=i.kind===`invalid`?i.reason:i.kind===`choose_running`?`Asks whether to pause automation or stop execution.`:i.kind===`confirm_done`?`Asks you to confirm acceptance.`:i.kind===`run_now`?`Starts now if the task is eligible.`:null;return(0,Z.jsx)(`li`,{children:(0,Z.jsxs)(`button`,{type:`button`,disabled:!s.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)(la,{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:ua(e.state,t)}),o&&(0,Z.jsx)(`span`,{className:`block text-sm text-muted`,children:o})]})]})},t)})})})}function Oa(){let e=et(),n=t(`/tasks/:taskId`)?.params.taskId;return(0,Z.jsx)(Ii,{children:e===`mobile`?n?(0,Z.jsx)(Ea,{taskId:n},n):(0,Z.jsx)(Ta,{}):(0,Z.jsx)(va,{taskId:n})})}export{Oa as default};
10
- //# sourceMappingURL=board-BrLaJwLJ.js.map
10
+ //# sourceMappingURL=board-eQ3H8yCp.js.map