@wjarka/cezarion 0.14.9-dev.901 → 0.14.9-dev.911
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 +1 -0
- package/dist/ci-wait/controller.d.ts +12 -12
- package/dist/server/server.d.ts +58 -58
- package/dist/skills-remote.d.ts +30 -5
- package/dist/skills-remote.js +122 -32
- package/dist/skills-remote.js.map +1 -1
- package/package.json +3 -3
- package/web/dist/assets/{agent-accounts-DOFEs7OK.js → agent-accounts-Bh1l3ZSb.js} +1 -1
- package/web/dist/assets/centered-state-kOb8j_BL.js +43 -0
- package/web/dist/assets/{collapsible-CH3UzMt8.js → collapsible-KSKVv9J9.js} +1 -1
- package/web/dist/assets/{commit-list-BF4myGkq.js → commit-list-na9G1rHG.js} +1 -1
- package/web/dist/assets/{compare-variants-DNX6SniB.js → compare-variants-CG8saweC.js} +1 -1
- package/web/dist/assets/{diff-controls-1iZN3L9z.js → diff-controls-D_kgpdoa.js} +1 -1
- package/web/dist/assets/{dropdown-menu-JK2oEKtU.js → dropdown-menu-78Ug-7x2.js} +1 -1
- package/web/dist/assets/{git-toolbar-Czc2eDts.js → git-toolbar-DFC6bS8a.js} +1 -1
- package/web/dist/assets/github-BiUjSaov.js +1 -0
- package/web/dist/assets/index-D-m3edXI.js +7 -0
- package/web/dist/assets/index-D5NkwqY7.css +1 -0
- package/web/dist/assets/{markdown-CbMH76QP.js → markdown-DlvW2wEx.js} +1 -1
- package/web/dist/assets/pill-0JHCf1v8.js +1 -0
- package/web/dist/assets/{project-router-5lOBnHn-.js → project-router-CS_oeLqi.js} +1 -1
- package/web/dist/assets/{prompt-templates-CinGNbS4.js → prompt-templates-BgXzCOlY.js} +1 -1
- package/web/dist/assets/{repo-git-CwEH2IXE.js → repo-git-CMFUWUJo.js} +1 -1
- package/web/dist/assets/{run-diff-3peOAX9l.js → run-diff-xym-7QHm.js} +1 -1
- package/web/dist/assets/run-header-BSKELRnz.js +1 -0
- package/web/dist/assets/skills-7nEXnFFc.js +1 -0
- package/web/dist/assets/{tab-link-KwnZekGX.js → tab-link-D6eAdJez.js} +1 -1
- package/web/dist/assets/task-changes-CjsEtUjh.js +1 -0
- package/web/dist/assets/{task-commits-CLHTP-nL.js → task-commits-CeALoVuD.js} +1 -1
- package/web/dist/assets/{task-files-BbQ3zTG5.js → task-files-Csb6CCIr.js} +2 -2
- package/web/dist/assets/task-thread-B-e9ZDoy.js +9 -0
- package/web/dist/assets/{textarea-CP5yQwcP.js → textarea-D2Gx4GDI.js} +1 -1
- package/web/dist/assets/thread-loading-hVlcCLdm.js +1 -0
- package/web/dist/assets/{token-metrics-BjlJ1WUf.js → token-metrics-BQvw6Yoj.js} +1 -1
- package/web/dist/assets/{workflows-BPYflHS1.js → workflows-CGbU1HdX.js} +3 -3
- package/web/dist/index.html +12 -12
- package/web/dist/assets/centered-state-BrRPODjj.js +0 -43
- package/web/dist/assets/github-BOYBHSuU.js +0 -1
- package/web/dist/assets/index-CaQiR7tg.js +0 -7
- package/web/dist/assets/index-Cp146nCD.css +0 -1
- package/web/dist/assets/pill-i0LDDqPl.js +0 -1
- package/web/dist/assets/run-header-DDuQGG2F.js +0 -1
- package/web/dist/assets/skills-Cd35zfc2.js +0 -1
- package/web/dist/assets/task-changes-BRAnOBnv.js +0 -1
- package/web/dist/assets/task-thread-BzPJy_YC.js +0 -9
- package/web/dist/assets/thread-loading-DRqt03Zs.js +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,r as n,t as r}from"./react-runtime-CCIEwYL0.js";import{
|
|
1
|
+
import{r as e}from"./rolldown-runtime-QTnfLwEv.js";import{i as t,r as n,t as r}from"./react-runtime-CCIEwYL0.js";import{Ai as i,Ba as a,Cr as o,G as s,Ga as c,H as l,It as u,Jt as d,Oi as f,Qt as p,Ra as m,Rt as h,Ut as g,X as _,Xt as v,Y as y,Yt as b,Zi as x,a as ee,br as S,c as C,ct as te,d as w,ea as T,gr as ne,i as E,in as re,it as ie,l as D,o as O,ot as ae,r as oe,s as k,st as se,t as ce,tn as le,u as A,ui as ue,ya as j}from"./centered-state-kOb8j_BL.js";import{t as M}from"./utils-BW1-Ibnd.js";import{i as N,l as de,r as P,t as fe}from"./dropdown-menu-78Ug-7x2.js";import{i as pe,n as me,o as he,r as ge,s as _e,t as ve}from"./textarea-D2Gx4GDI.js";import{i as ye,l as be,s as xe}from"./skills-DFBiAuJG.js";import{h as Se,i as Ce}from"./index-D-m3edXI.js";import{n as we}from"./skill-empty-hint-oOtzR3v0.js";var F=e(n()),I=e(t());function Te(){var e=[...arguments];return(0,I.useMemo)(()=>t=>{e.forEach(e=>e(t))},e)}var L=typeof window<`u`&&window.document!==void 0&&window.document.createElement!==void 0;function R(e){let t=Object.prototype.toString.call(e);return t===`[object Window]`||t===`[object global]`}function Ee(e){return`nodeType`in e}function z(e){return e?R(e)?e:Ee(e)?e.ownerDocument?.defaultView??window:window:window}function B(e){let{Document:t}=z(e);return e instanceof t}function V(e){return!R(e)&&e instanceof z(e).HTMLElement}function De(e){return e instanceof z(e).SVGElement}function Oe(e){return e?R(e)?e.document:Ee(e)?B(e)?e:V(e)||De(e)?e.ownerDocument:document:document:document}var H=L?I.useLayoutEffect:I.useEffect;function ke(e){let t=(0,I.useRef)(e);return H(()=>{t.current=e}),(0,I.useCallback)(function(){var e=[...arguments];return t.current==null?void 0:t.current(...e)},[])}function Ae(){let e=(0,I.useRef)(null);return[(0,I.useCallback)((t,n)=>{e.current=setInterval(t,n)},[]),(0,I.useCallback)(()=>{e.current!==null&&(clearInterval(e.current),e.current=null)},[])]}function U(e,t){t===void 0&&(t=[e]);let n=(0,I.useRef)(e);return H(()=>{n.current!==e&&(n.current=e)},t),n}function je(e,t){let n=(0,I.useRef)();return(0,I.useMemo)(()=>{let t=e(n.current);return n.current=t,t},[...t])}function Me(e){let t=ke(e),n=(0,I.useRef)(null);return[n,(0,I.useCallback)(e=>{e!==n.current&&t?.(e,n.current),n.current=e},[])]}function Ne(e){let t=(0,I.useRef)();return(0,I.useEffect)(()=>{t.current=e},[e]),t.current}var Pe={};function Fe(e,t){return(0,I.useMemo)(()=>{if(t)return t;let n=Pe[e]==null?0:Pe[e]+1;return Pe[e]=n,e+`-`+n},[e,t])}function Ie(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 W=Ie(1),Le=Ie(-1);function Re(e){return`clientX`in e&&`clientY`in e}function ze(e){if(!e)return!1;let{KeyboardEvent:t}=z(e.target);return t&&e instanceof t}function Be(e){if(!e)return!1;let{TouchEvent:t}=z(e.target);return t&&e instanceof t}function Ve(e){if(Be(e)){if(e.touches&&e.touches.length){let{clientX:t,clientY:n}=e.touches[0];return{x:t,y:n}}else if(e.changedTouches&&e.changedTouches.length){let{clientX:t,clientY:n}=e.changedTouches[0];return{x:t,y:n}}}return Re(e)?{x:e.clientX,y:e.clientY}:null}var G=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[G.Translate.toString(e),G.Scale.toString(e)].join(` `)}},Transition:{toString(e){let{property:t,duration:n,easing:r}=e;return t+` `+n+`ms `+r}}}),He=`a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]`;function Ue(e){return e.matches(He)?e:e.querySelector(He)}var K={display:`none`};function We(e){let{id:t,value:n}=e;return I.createElement(`div`,{id:t,style:K},n)}function Ge(e){let{id:t,announcement:n,ariaLiveType:r=`assertive`}=e;return I.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 Ke(){let[e,t]=(0,I.useState)(``);return{announce:(0,I.useCallback)(e=>{e!=null&&t(e)},[]),announcement:e}}var qe=(0,I.createContext)(null);function Je(e){let t=(0,I.useContext)(qe);(0,I.useEffect)(()=>{if(!t)throw Error(`useDndMonitor must be used within a children of <DndContext>`);return t(e)},[e,t])}function Ye(){let[e]=(0,I.useState)(()=>new Set),t=(0,I.useCallback)(t=>(e.add(t),()=>e.delete(t)),[e]);return[(0,I.useCallback)(t=>{let{type:n,event:r}=t;e.forEach(e=>e[n]?.call(e,r))},[e]),t]}var Xe={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.
|
|
5
5
|
`},Ze={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 Qe(e){let{announcements:t=Ze,container:n,hiddenTextDescribedById:r,screenReaderInstructions:i=Xe}=e,{announce:a,announcement:o}=Ke(),s=Fe(`DndLiveRegion`),[c,l]=(0,I.useState)(!1);if((0,I.useEffect)(()=>{l(!0)},[]),Je((0,I.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=I.createElement(I.Fragment,null,I.createElement(We,{id:r,value:i.draggable}),I.createElement(Ge,{id:s,announcement:o}));return n?(0,F.createPortal)(u,n):u}var q;(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`})(q||={});function $e(){}function et(e,t){return(0,I.useMemo)(()=>({sensor:e,options:t??{}}),[e,t])}function tt(){var e=[...arguments];return(0,I.useMemo)(()=>[...e].filter(e=>e!=null),[...e])}var J=Object.freeze({x:0,y:0});function nt(e,t){return Math.sqrt((e.x-t.x)**2+(e.y-t.y)**2)}function rt(e,t){let n=Ve(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 it(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return n-r}function at(e,t){let{data:{value:n}}=e,{data:{value:r}}=t;return r-n}function ot(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 st(e,t){if(!e||e.length===0)return null;let[n]=e;return t?n[t]:n}function ct(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 lt=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=ct(t,t.left,t.top),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=nt(ct(r),i);a.push({id:t,data:{droppableContainer:e,value:n}})}}return a.sort(it)},ut=e=>{let{collisionRect:t,droppableRects:n,droppableContainers:r}=e,i=ot(t),a=[];for(let e of r){let{id:t}=e,r=n.get(t);if(r){let n=ot(r),o=i.reduce((e,t,r)=>e+nt(n[r],t),0),s=Number((o/4).toFixed(4));a.push({id:t,data:{droppableContainer:e,value:s}})}}return a.sort(it)};function dt(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 ft=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=dt(a,t);n>0&&i.push({id:r,data:{droppableContainer:e,value:n}})}}return i.sort(at)};function pt(e,t,n){return{...e,scaleX:t&&n?t.width/n.width:1,scaleY:t&&n?t.height/n.height:1}}function mt(e,t){return e&&t?{x:e.left-t.left,y:e.top-t.top}:J}function ht(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 gt=ht(1);function _t(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]}}else 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 vt(e,t,n){let r=_t(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 yt={ignoreTransform:!1};function bt(e,t){t===void 0&&(t=yt);let n=e.getBoundingClientRect();if(t.ignoreTransform){let{transform:t,transformOrigin:r}=z(e).getComputedStyle(e);t&&(n=vt(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 xt(e){return bt(e,{ignoreTransform:!0})}function St(e){let t=e.innerWidth,n=e.innerHeight;return{top:0,left:0,right:t,bottom:n,width:t,height:n}}function Ct(e,t){return t===void 0&&(t=z(e).getComputedStyle(e)),t.position===`fixed`}function wt(e,t){t===void 0&&(t=z(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 Tt(e,t){let n=[];function r(i){if(t!=null&&n.length>=t||!i)return n;if(B(i)&&i.scrollingElement!=null&&!n.includes(i.scrollingElement))return n.push(i.scrollingElement),n;if(!V(i)||De(i)||n.includes(i))return n;let a=z(e).getComputedStyle(i);return i!==e&&wt(i,a)&&n.push(i),Ct(i,a)?n:r(i.parentNode)}return e?r(e):n}function Et(e){let[t]=Tt(e,1);return t??null}function Dt(e){return!L||!e?null:R(e)?e:Ee(e)?B(e)||e===Oe(e).scrollingElement?window:V(e)?e:null:null}function Ot(e){return R(e)?e.scrollX:e.scrollLeft}function kt(e){return R(e)?e.scrollY:e.scrollTop}function At(e){return{x:Ot(e),y:kt(e)}}var Y;(function(e){e[e.Forward=1]=`Forward`,e[e.Backward=-1]=`Backward`})(Y||={});function jt(e){return!L||!e?!1:e===document.scrollingElement}function Mt(e){let t={x:0,y:0},n=jt(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 Nt={x:.2,y:.2};function Pt(e,t,n,r,i){let{top:a,left:o,right:s,bottom:c}=n;r===void 0&&(r=10),i===void 0&&(i=Nt);let{isTop:l,isBottom:u,isLeft:d,isRight:f}=Mt(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=Y.Backward,m.y=r*Math.abs((t.top+h.height-a)/h.height)):!u&&c>=t.bottom-h.height&&(p.y=Y.Forward,m.y=r*Math.abs((t.bottom-h.height-c)/h.height)),!f&&s>=t.right-h.width?(p.x=Y.Forward,m.x=r*Math.abs((t.right-h.width-s)/h.width)):!d&&o<=t.left+h.width&&(p.x=Y.Backward,m.x=r*Math.abs((t.left+h.width-o)/h.width)),{direction:p,speed:m}}function Ft(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 It(e){return e.reduce((e,t)=>W(e,At(t)),J)}function Lt(e){return e.reduce((e,t)=>e+Ot(t),0)}function Rt(e){return e.reduce((e,t)=>e+kt(t),0)}function zt(e,t){if(t===void 0&&(t=bt),!e)return;let{top:n,left:r,bottom:i,right:a}=t(e);Et(e)&&(i<=0||a<=0||n>=window.innerHeight||r>=window.innerWidth)&&e.scrollIntoView({block:`center`,inline:`center`})}var Bt=[[`x`,[`left`,`right`],Lt],[`y`,[`top`,`bottom`],Rt]],Vt=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=Tt(t),r=It(n);this.rect={...e},this.width=e.width,this.height=e.height;for(let[e,t,i]of Bt)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})}},Ht=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 Ut(e){let{EventTarget:t}=z(e);return e instanceof t?e:Oe(e)}function Wt(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 X;(function(e){e.Click=`click`,e.DragStart=`dragstart`,e.Keydown=`keydown`,e.ContextMenu=`contextmenu`,e.Resize=`resize`,e.SelectionChange=`selectionchange`,e.VisibilityChange=`visibilitychange`})(X||={});function Gt(e){e.preventDefault()}function Kt(e){e.stopPropagation()}var Z;(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`})(Z||={});var qt={start:[Z.Space,Z.Enter],cancel:[Z.Esc],end:[Z.Space,Z.Enter,Z.Tab]},Jt=(e,t)=>{let{currentCoordinates:n}=t;switch(e.code){case Z.Right:return{...n,x:n.x+25};case Z.Left:return{...n,x:n.x-25};case Z.Down:return{...n,y:n.y+25};case Z.Up:return{...n,y:n.y-25}}},Yt=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 Ht(Oe(t)),this.windowListeners=new Ht(z(t)),this.handleKeyDown=this.handleKeyDown.bind(this),this.handleCancel=this.handleCancel.bind(this),this.attach()}attach(){this.handleStart(),this.windowListeners.add(X.Resize,this.handleCancel),this.windowListeners.add(X.VisibilityChange,this.handleCancel),setTimeout(()=>this.listeners.add(X.Keydown,this.handleKeyDown))}handleStart(){let{activeNode:e,onStart:t}=this.props,n=e.node.current;n&&zt(n),t(J)}handleKeyDown(e){if(ze(e)){let{active:t,context:n,options:r}=this.props,{keyboardCodes:i=qt,coordinateGetter:a=Jt,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}:J;this.referenceCoordinates||=l;let u=a(e,{active:t,context:n.current,currentCoordinates:l});if(u){let t=Le(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}=Mt(n),p=Ft(n),m={x:Math.min(i===Z.Right?p.right-p.width/2:p.right,Math.max(i===Z.Right?p.left:p.left+p.width/2,u.x)),y:Math.min(i===Z.Down?p.bottom-p.height/2:p.bottom,Math.max(i===Z.Down?p.top:p.top+p.height/2,u.y))},h=i===Z.Right&&!s||i===Z.Left&&!c,g=i===Z.Down&&!l||i===Z.Up&&!a;if(h&&m.x!==u.x){let e=n.scrollLeft+t.x,a=i===Z.Right&&e<=d.x||i===Z.Left&&e>=f.x;if(a&&!t.y){n.scrollTo({left:e,behavior:o});return}a?r.x=n.scrollLeft-e:r.x=i===Z.Right?n.scrollLeft-d.x:n.scrollLeft-f.x,r.x&&n.scrollBy({left:-r.x,behavior:o});break}else if(g&&m.y!==u.y){let e=n.scrollTop+t.y,a=i===Z.Down&&e<=d.y||i===Z.Up&&e>=f.y;if(a&&!t.x){n.scrollTo({top:e,behavior:o});return}a?r.y=n.scrollTop-e:r.y=i===Z.Down?n.scrollTop-d.y:n.scrollTop-f.y,r.y&&n.scrollBy({top:-r.y,behavior:o});break}}this.handleMove(e,W(Le(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()}};Yt.activators=[{eventName:`onKeyDown`,handler:(e,t,n)=>{let{keyboardCodes:r=qt,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 Xt(e){return!!(e&&`distance`in e)}function Zt(e){return!!(e&&`delay`in e)}var Qt=class{constructor(e,t,n){n===void 0&&(n=Ut(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=Oe(i),this.documentListeners=new Ht(this.document),this.listeners=new Ht(n),this.windowListeners=new Ht(z(i)),this.initialCoordinates=Ve(r)??J,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(X.Resize,this.handleCancel),this.windowListeners.add(X.DragStart,Gt),this.windowListeners.add(X.VisibilityChange,this.handleCancel),this.windowListeners.add(X.ContextMenu,Gt),this.documentListeners.add(X.Keydown,this.handleKeydown),t){if(n!=null&&n({event:this.props.event,activeNode:this.props.activeNode,options:this.props.options}))return this.handleStart();if(Zt(t)){this.timeoutId=setTimeout(this.handleStart,t.delay),this.handlePending(t);return}if(Xt(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(X.Click,Kt,{capture:!0}),this.removeTextSelection(),this.documentListeners.add(X.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=Ve(e)??J,s=Le(n,o);if(!t&&a){if(Xt(a)){if(a.tolerance!=null&&Wt(s,a.tolerance))return this.handleCancel();if(Wt(s,a.distance))return this.handleStart()}if(Zt(a)&&Wt(s,a.tolerance))return this.handleCancel();this.handlePending(a,s);return}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===Z.Esc&&this.handleCancel()}removeTextSelection(){var e;(e=this.document.getSelection())==null||e.removeAllRanges()}},$t={cancel:{name:`pointercancel`},move:{name:`pointermove`},end:{name:`pointerup`}},en=class extends Qt{constructor(e){let{event:t}=e,n=Oe(t.target);super(e,$t,n)}};en.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 tn={move:{name:`mousemove`},end:{name:`mouseup`}},nn;(function(e){e[e.RightClick=2]=`RightClick`})(nn||={});var rn=class extends Qt{constructor(e){super(e,tn,Oe(e.event.target))}};rn.activators=[{eventName:`onMouseDown`,handler:(e,t)=>{let{nativeEvent:n}=e,{onActivation:r}=t;return n.button===nn.RightClick?!1:(r?.({event:n}),!0)}}];var an={cancel:{name:`touchcancel`},move:{name:`touchmove`},end:{name:`touchend`}},on=class extends Qt{constructor(e){super(e,an)}static setup(){return window.addEventListener(an.move.name,e,{capture:!1,passive:!1}),function(){window.removeEventListener(an.move.name,e)};function e(){}}};on.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 sn;(function(e){e[e.Pointer=0]=`Pointer`,e[e.DraggableRect=1]=`DraggableRect`})(sn||={});var cn;(function(e){e[e.TreeOrder=0]=`TreeOrder`,e[e.ReversedTreeOrder=1]=`ReversedTreeOrder`})(cn||={});function ln(e){let{acceleration:t,activator:n=sn.Pointer,canScroll:r,draggingRect:i,enabled:a,interval:o=5,order:s=cn.TreeOrder,pointerCoordinates:c,scrollableAncestors:l,scrollableAncestorRects:u,delta:d,threshold:f}=e,p=dn({delta:d,disabled:!a}),[m,h]=Ae(),g=(0,I.useRef)({x:0,y:0}),_=(0,I.useRef)({x:0,y:0}),v=(0,I.useMemo)(()=>{switch(n){case sn.Pointer:return c?{top:c.y,bottom:c.y,left:c.x,right:c.x}:null;case sn.DraggableRect:return i}},[n,i,c]),y=(0,I.useRef)(null),b=(0,I.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,I.useMemo)(()=>s===cn.TreeOrder?[...l].reverse():l,[s,l]);(0,I.useEffect)(()=>{if(!a||!l.length||!v){h();return}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}=Pt(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 un={x:{[Y.Backward]:!1,[Y.Forward]:!1},y:{[Y.Backward]:!1,[Y.Forward]:!1}};function dn(e){let{delta:t,disabled:n}=e,r=Ne(t);return je(e=>{if(n||!r||!e)return un;let i={x:Math.sign(t.x-r.x),y:Math.sign(t.y-r.y)};return{x:{[Y.Backward]:e.x[Y.Backward]||i.x===-1,[Y.Forward]:e.x[Y.Forward]||i.x===1},y:{[Y.Backward]:e.y[Y.Backward]||i.y===-1,[Y.Forward]:e.y[Y.Forward]||i.y===1}}},[n,t,r])}function fn(e,t){let n=t==null?void 0:e.get(t),r=n?n.node.current:null;return je(e=>t==null?null:r??e??null,[r,t])}function pn(e,t){return(0,I.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 mn;(function(e){e[e.Always=0]=`Always`,e[e.BeforeDragging=1]=`BeforeDragging`,e[e.WhileDragging=2]=`WhileDragging`})(mn||={});var hn;(function(e){e.Optimized=`optimized`})(hn||={});var gn=new Map;function _n(e,t){let{dragging:n,dependencies:r,config:i}=t,[a,o]=(0,I.useState)(null),{frequency:s,measure:c,strategy:l}=i,u=(0,I.useRef)(e),d=g(),f=U(d),p=(0,I.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,I.useRef)(null),h=je(t=>{if(d&&!n)return gn;if(!t||t===gn||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 Vt(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,I.useEffect)(()=>{u.current=e},[e]),(0,I.useEffect)(()=>{d||p()},[n,d]),(0,I.useEffect)(()=>{a&&a.length>0&&o(null)},[JSON.stringify(a)]),(0,I.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 mn.Always:return!1;case mn.BeforeDragging:return n;default:return!n}}}function vn(e,t){return je(n=>e?n||(typeof t==`function`?t(e):e):null,[t,e])}function yn(e,t){return vn(e,t)}function bn(e){let{callback:t,disabled:n}=e,r=ke(t),i=(0,I.useMemo)(()=>{if(n||typeof window>`u`||window.MutationObserver===void 0)return;let{MutationObserver:e}=window;return new e(r)},[r,n]);return(0,I.useEffect)(()=>()=>i?.disconnect(),[i]),i}function xn(e){let{callback:t,disabled:n}=e,r=ke(t),i=(0,I.useMemo)(()=>{if(n||typeof window>`u`||window.ResizeObserver===void 0)return;let{ResizeObserver:e}=window;return new e(r)},[n]);return(0,I.useEffect)(()=>()=>i?.disconnect(),[i]),i}function Sn(e){return new Vt(bt(e),e)}function Cn(e,t,n){t===void 0&&(t=Sn);let[r,i]=(0,I.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=bn({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=xn({callback:a});return H(()=>{a(),e?(s?.observe(e),o?.observe(document.body,{childList:!0,subtree:!0})):(s?.disconnect(),o?.disconnect())},[e]),r}function wn(e){return mt(e,vn(e))}var Tn=[];function En(e){let t=(0,I.useRef)(e),n=je(n=>e?n&&n!==Tn&&e&&t.current&&e.parentNode===t.current.parentNode?n:Tt(e):Tn,[e]);return(0,I.useEffect)(()=>{t.current=e},[e]),n}function Dn(e){let[t,n]=(0,I.useState)(null),r=(0,I.useRef)(e),i=(0,I.useCallback)(e=>{let t=Dt(e.target);t&&n(e=>e?(e.set(t,At(t)),new Map(e)):null)},[]);return(0,I.useEffect)(()=>{let t=r.current;if(e!==t){a(t);let o=e.map(e=>{let t=Dt(e);return t?(t.addEventListener(`scroll`,i,{passive:!0}),[t,At(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=>{Dt(e)?.removeEventListener(`scroll`,i)})}},[i,e]),(0,I.useMemo)(()=>e.length?t?Array.from(t.values()).reduce((e,t)=>W(e,t),J):It(e):J,[e,t])}function On(e,t){t===void 0&&(t=[]);let n=(0,I.useRef)(null);return(0,I.useEffect)(()=>{n.current=null},t),(0,I.useEffect)(()=>{let t=e!==J;t&&!n.current&&(n.current=e),!t&&n.current&&(n.current=null)},[e]),n.current?Le(e,n.current):J}function kn(e){(0,I.useEffect)(()=>{if(!L)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 An(e,t){return(0,I.useMemo)(()=>e.reduce((e,n)=>{let{eventName:r,handler:i}=n;return e[r]=e=>{i(e,t)},e},{}),[e,t])}function jn(e){return(0,I.useMemo)(()=>e?St(e):null,[e])}var Mn=[];function Nn(e,t){t===void 0&&(t=bt);let[n]=e,r=jn(n?z(n):null),[i,a]=(0,I.useState)(Mn);function o(){a(()=>e.length?e.map(e=>jt(e)?r:new Vt(t(e),e)):Mn)}let s=xn({callback:o});return H(()=>{s?.disconnect(),o(),e.forEach(e=>s?.observe(e))},[e]),i}function Pn(e){if(!e)return null;if(e.children.length>1)return e;let t=e.children[0];return V(t)?t:e}function Fn(e){let{measure:t}=e,[n,r]=(0,I.useState)(null),i=xn({callback:(0,I.useCallback)(e=>{for(let{target:n}of e)if(V(n)){r(e=>{let r=t(n);return e?{...e,width:r.width,height:r.height}:r});break}},[t])}),[a,o]=Me((0,I.useCallback)(e=>{let n=Pn(e);i?.disconnect(),n&&i?.observe(n),r(n?t(n):null)},[t,i]));return(0,I.useMemo)(()=>({nodeRef:a,rect:n,setRef:o}),[n,a,o])}var In=[{sensor:en,options:{}},{sensor:Yt,options:{}}],Ln={current:{}},Rn={draggable:{measure:xt},droppable:{measure:xt,strategy:mn.WhileDragging,frequency:hn.Optimized},dragOverlay:{measure:bt}},zn=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}},Bn={activatorEvent:null,active:null,activeNode:null,activeNodeRect:null,collisions:null,containerNodeRect:null,draggableNodes:new Map,droppableRects:new Map,droppableContainers:new zn,over:null,dragOverlay:{nodeRef:{current:null},rect:null,setRef:$e},scrollableAncestors:[],scrollableAncestorRects:[],measuringConfiguration:Rn,measureDroppableContainers:$e,windowRect:null,measuringScheduled:!1},Vn={activatorEvent:null,activators:[],active:null,activeNodeRect:null,ariaDescribedById:{draggable:``},dispatch:$e,draggableNodes:new Map,over:null,measureDroppableContainers:$e},Hn=(0,I.createContext)(Vn),Un=(0,I.createContext)(Bn);function Wn(){return{draggable:{active:null,initialCoordinates:{x:0,y:0},nodes:new Map,translate:{x:0,y:0}},droppable:{containers:new zn}}}function Gn(e,t){switch(t.type){case q.DragStart:return{...e,draggable:{...e.draggable,initialCoordinates:t.initialCoordinates,active:t.active}};case q.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 q.DragEnd:case q.DragCancel:return{...e,draggable:{...e.draggable,active:null,initialCoordinates:{x:0,y:0},translate:{x:0,y:0}}};case q.RegisterDroppable:{let{element:n}=t,{id:r}=n,i=new zn(e.droppable.containers);return i.set(r,n),{...e,droppable:{...e.droppable,containers:i}}}case q.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 zn(e.droppable.containers);return o.set(n,{...a,disabled:i}),{...e,droppable:{...e.droppable,containers:o}}}case q.UnregisterDroppable:{let{id:n,key:r}=t,i=e.droppable.containers.get(n);if(!i||r!==i.key)return e;let a=new zn(e.droppable.containers);return a.delete(n),{...e,droppable:{...e.droppable,containers:a}}}default:return e}}function Kn(e){let{disabled:t}=e,{active:n,activatorEvent:r,draggableNodes:i}=(0,I.useContext)(Hn),a=Ne(r),o=Ne(n?.id);return(0,I.useEffect)(()=>{if(!t&&!r&&a&&o!=null){if(!ze(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=Ue(e);if(t){t.focus();break}}})}},[r,t,i,o,a]),null}function qn(e,t){let{transform:n,...r}=t;return e!=null&&e.length?e.reduce((e,t)=>t({transform:e,...r}),n):n}function Jn(e){return(0,I.useMemo)(()=>({draggable:{...Rn.draggable,...e?.draggable},droppable:{...Rn.droppable,...e?.droppable},dragOverlay:{...Rn.dragOverlay,...e?.dragOverlay}}),[e?.draggable,e?.droppable,e?.dragOverlay])}function Yn(e){let{activeNode:t,measure:n,initialRect:r,config:i=!0}=e,a=(0,I.useRef)(!1),{x:o,y:s}=typeof i==`boolean`?{x:i,y:i}:i;H(()=>{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=mt(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=Et(e);t&&t.scrollBy({top:i.y,left:i.x})}},[t,o,s,r,n])}var Xn=(0,I.createContext)({...J,scaleX:1,scaleY:1}),Zn;(function(e){e[e.Uninitialized=0]=`Uninitialized`,e[e.Initializing=1]=`Initializing`,e[e.Initialized=2]=`Initialized`})(Zn||={});var Qn=(0,I.memo)(function(e){let{id:t,accessibility:n,autoScroll:r=!0,children:i,sensors:a=In,collisionDetection:o=ft,measuring:s,modifiers:c,...l}=e,[u,d]=(0,I.useReducer)(Gn,void 0,Wn),[f,p]=Ye(),[m,h]=(0,I.useState)(Zn.Uninitialized),g=m===Zn.Initialized,{draggable:{active:_,nodes:v,translate:y},droppable:{containers:b}}=u,x=_==null?null:v.get(_),ee=(0,I.useRef)({initial:null,translated:null}),S=(0,I.useMemo)(()=>_==null?null:{id:_,data:x?.data??Ln,rect:ee},[_,x]),C=(0,I.useRef)(null),[te,w]=(0,I.useState)(null),[T,ne]=(0,I.useState)(null),E=U(l,Object.values(l)),re=Fe(`DndDescribedBy`,t),ie=(0,I.useMemo)(()=>b.getEnabled(),[b]),D=Jn(s),{droppableRects:O,measureDroppableContainers:ae,measuringScheduled:oe}=_n(ie,{dragging:g,dependencies:[y.x,y.y],config:D.droppable}),k=fn(v,_),se=(0,I.useMemo)(()=>T?Ve(T):null,[T]),ce=Ae(),le=yn(k,D.draggable.measure);Yn({activeNode:_==null?null:v.get(_),config:ce.layoutShiftCompensation,initialRect:le,measure:D.draggable.measure});let A=Cn(k,D.draggable.measure,le),ue=Cn(k?k.parentElement:null),j=(0,I.useRef)({activatorEvent:null,active:null,activeNode:k,collisionRect:null,collisions:null,droppableRects:O,draggableNodes:v,draggingNode:null,draggingNodeRect:null,droppableContainers:b,over:null,scrollableAncestors:[],scrollAdjustedTranslate:null}),M=b.getNodeFor(j.current.over?.id),N=Fn({measure:D.dragOverlay.measure}),de=N.nodeRef.current??k,P=g?N.rect??A:null,fe=!!(N.nodeRef.current&&N.rect),pe=wn(fe?null:A),me=jn(de?z(de):null),he=En(g?M??k:null),ge=Nn(he),_e=qn(c,{transform:{x:y.x-pe.x,y:y.y-pe.y,scaleX:1,scaleY:1},activatorEvent:T,active:S,activeNodeRect:A,containerNodeRect:ue,draggingNodeRect:P,over:j.current.over,overlayNodeRect:N.rect,scrollableAncestors:he,scrollableAncestorRects:ge,windowRect:me}),ve=se?W(se,y):null,ye=Dn(he),be=On(ye),xe=On(ye,[A]),Se=W(_e,be),Ce=P?gt(P,_e):null,we=S&&Ce?o({active:S,collisionRect:Ce,droppableRects:O,droppableContainers:ie,pointerCoordinates:ve}):null,Te=st(we,`id`),[L,R]=(0,I.useState)(null),Ee=pt(fe?_e:W(_e,xe),L?.rect??null,A),B=(0,I.useRef)(null),V=(0,I.useCallback)((e,t)=>{let{sensor:n,options:r}=t;if(C.current==null)return;let i=v.get(C.current);if(!i)return;let a=e.nativeEvent,o=new n({active:C.current,activeNode:i,event:a,options:r,context:j,onAbort(e){if(!v.get(e))return;let{onDragAbort:t}=E.current,n={id:e};t?.(n),f({type:`onDragAbort`,event:n})},onPending(e,t,n,r){if(!v.get(e))return;let{onDragPending:i}=E.current,a={id:e,constraint:t,initialCoordinates:n,offset:r};i?.(a),f({type:`onDragPending`,event:a})},onStart(e){let t=C.current;if(t==null)return;let n=v.get(t);if(!n)return;let{onDragStart:r}=E.current,i={activatorEvent:a,active:{id:t,data:n.data,rect:ee}};(0,F.unstable_batchedUpdates)(()=>{r?.(i),h(Zn.Initializing),d({type:q.DragStart,initialCoordinates:e,active:t}),f({type:`onDragStart`,event:i}),w(B.current),ne(a)})},onMove(e){d({type:q.DragMove,coordinates:e})},onEnd:s(q.DragEnd),onCancel:s(q.DragCancel)});B.current=o;function s(e){return async function(){let{active:t,collisions:n,over:r,scrollAdjustedTranslate:i}=j.current,o=null;if(t&&i){let{cancelDrop:s}=E.current;o={activatorEvent:a,active:t,collisions:n,delta:i,over:r},e===q.DragEnd&&typeof s==`function`&&await Promise.resolve(s(o))&&(e=q.DragCancel)}C.current=null,(0,F.unstable_batchedUpdates)(()=>{d({type:e}),h(Zn.Uninitialized),R(null),w(null),ne(null),B.current=null;let t=e===q.DragEnd?`onDragEnd`:`onDragCancel`;if(o){let e=E.current[t];e?.(o),f({type:t,event:o})}})}}},[v]),De=pn(a,(0,I.useCallback)((e,t)=>(n,r)=>{let i=n.nativeEvent,a=v.get(r);if(C.current!==null||!a||i.dndKit||i.defaultPrevented)return;let o={active:a};e(n,t.options,o)===!0&&(i.dndKit={capturedBy:t.sensor},C.current=r,V(n,t))},[v,V]));kn(a),H(()=>{A&&m===Zn.Initializing&&h(Zn.Initialized)},[A,m]),(0,I.useEffect)(()=>{let{onDragMove:e}=E.current,{active:t,activatorEvent:n,collisions:r,over:i}=j.current;if(!t||!n)return;let a={active:t,activatorEvent:n,collisions:r,delta:{x:Se.x,y:Se.y},over:i};(0,F.unstable_batchedUpdates)(()=>{e?.(a),f({type:`onDragMove`,event:a})})},[Se.x,Se.y]),(0,I.useEffect)(()=>{let{active:e,activatorEvent:t,collisions:n,droppableContainers:r,scrollAdjustedTranslate:i}=j.current;if(!e||C.current==null||!t||!i)return;let{onDragOver:a}=E.current,o=r.get(Te),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,F.unstable_batchedUpdates)(()=>{R(s),a?.(c),f({type:`onDragOver`,event:c})})},[Te]),H(()=>{j.current={activatorEvent:T,active:S,activeNode:k,collisionRect:Ce,collisions:we,droppableRects:O,draggableNodes:v,draggingNode:de,draggingNodeRect:P,droppableContainers:b,over:L,scrollableAncestors:he,scrollAdjustedTranslate:Se},ee.current={initial:P,translated:Ce}},[S,k,we,Ce,v,de,P,O,b,L,he,Se]),ln({...ce,delta:y,draggingRect:Ce,pointerCoordinates:ve,scrollableAncestors:he,scrollableAncestorRects:ge});let Oe=(0,I.useMemo)(()=>({active:S,activeNode:k,activeNodeRect:A,activatorEvent:T,collisions:we,containerNodeRect:ue,dragOverlay:N,draggableNodes:v,droppableContainers:b,droppableRects:O,over:L,measureDroppableContainers:ae,scrollableAncestors:he,scrollableAncestorRects:ge,measuringConfiguration:D,measuringScheduled:oe,windowRect:me}),[S,k,A,T,we,ue,N,v,b,O,L,ae,he,ge,D,oe,me]),ke=(0,I.useMemo)(()=>({activatorEvent:T,activators:De,active:S,activeNodeRect:A,ariaDescribedById:{draggable:re},dispatch:d,draggableNodes:v,over:L,measureDroppableContainers:ae}),[T,De,S,A,d,re,v,L,ae]);return I.createElement(qe.Provider,{value:p},I.createElement(Hn.Provider,{value:ke},I.createElement(Un.Provider,{value:Oe},I.createElement(Xn.Provider,{value:Ee},i)),I.createElement(Kn,{disabled:n?.restoreFocus===!1})),I.createElement(Qe,{...n,hiddenTextDescribedById:re}));function Ae(){let e=te?.autoScrollEnabled===!1,t=typeof r==`object`?r.enabled===!1:r===!1,n=g&&!e&&!t;return typeof r==`object`?{...r,enabled:n}:{enabled:n}}}),$n=(0,I.createContext)(null),er=`button`,tr=`Draggable`;function nr(e){let{id:t,data:n,disabled:r=!1,attributes:i}=e,a=Fe(tr),{activators:o,activatorEvent:s,active:c,activeNodeRect:l,ariaDescribedById:u,draggableNodes:d,over:f}=(0,I.useContext)(Hn),{role:p=er,roleDescription:m=`draggable`,tabIndex:h=0}=i??{},g=c?.id===t,_=(0,I.useContext)(g?Xn:$n),[v,y]=Me(),[b,x]=Me(),ee=An(o,t),S=U(n);return H(()=>(d.set(t,{id:t,key:a,node:v,activatorNode:b,data:S}),()=>{let e=d.get(t);e&&e.key===a&&d.delete(t)}),[d,t]),{active:c,activatorEvent:s,activeNodeRect:l,attributes:(0,I.useMemo)(()=>({role:p,tabIndex:h,"aria-disabled":r,"aria-pressed":g&&p===er?!0:void 0,"aria-roledescription":m,"aria-describedby":u.draggable}),[r,p,h,g,m,u.draggable]),isDragging:g,listeners:r?void 0:ee,node:v,over:f,setNodeRef:y,setActivatorNodeRef:x,transform:_}}function rr(){return(0,I.useContext)(Un)}var ir=`Droppable`,ar={timeout:25};function or(e){let{data:t,disabled:n=!1,id:r,resizeObserverConfig:i}=e,a=Fe(ir),{active:o,dispatch:s,over:c,measureDroppableContainers:l}=(0,I.useContext)(Hn),u=(0,I.useRef)({disabled:n}),d=(0,I.useRef)(!1),f=(0,I.useRef)(null),p=(0,I.useRef)(null),{disabled:m,updateMeasurementsFor:h,timeout:g}={...ar,...i},_=U(h??r),v=xn({callback:(0,I.useCallback)(()=>{if(!d.current){d.current=!0;return}p.current!=null&&clearTimeout(p.current),p.current=setTimeout(()=>{l(Array.isArray(_.current)?_.current:[_.current]),p.current=null},g)},[g]),disabled:m||!o}),[y,b]=Me((0,I.useCallback)((e,t)=>{v&&(t&&(v.unobserve(t),d.current=!1),e&&v.observe(e))},[v])),x=U(t);return(0,I.useEffect)(()=>{!v||!y.current||(v.disconnect(),d.current=!1,v.observe(y.current))},[y,v]),(0,I.useEffect)(()=>(s({type:q.RegisterDroppable,element:{id:r,key:a,disabled:n,node:y,rect:f,data:x}}),()=>s({type:q.UnregisterDroppable,key:a,id:r})),[r]),(0,I.useEffect)(()=>{n!==u.current.disabled&&(s({type:q.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 sr(e){let{animation:t,children:n}=e,[r,i]=(0,I.useState)(null),[a,o]=(0,I.useState)(null),s=Ne(n);return!n&&!r&&s&&i(s),H(()=>{if(!a)return;let e=r?.key,n=r?.props.id;if(e==null||n==null){i(null);return}Promise.resolve(t(n,a)).then(()=>{i(null)})},[t,r,a]),I.createElement(I.Fragment,null,n,r?(0,I.cloneElement)(r,{ref:o}):null)}var cr={x:0,y:0,scaleX:1,scaleY:1};function lr(e){let{children:t}=e;return I.createElement(Hn.Provider,{value:Vn},I.createElement(Xn.Provider,{value:cr},t))}var ur={position:`fixed`,touchAction:`none`},dr=e=>ze(e)?`transform 250ms ease`:void 0,fr=(0,I.forwardRef)((e,t)=>{let{as:n,activatorEvent:r,adjustScale:i,children:a,className:o,rect:s,style:c,transform:l,transition:u=dr}=e;if(!s)return null;let d=i?l:{...l,scaleX:1,scaleY:1},f={...ur,width:s.width,height:s.height,top:s.top,left:s.left,transform:G.Transform.toString(d),transformOrigin:i&&r?rt(r,s):void 0,transition:typeof u==`function`?u(r):u,...c};return I.createElement(n,{className:o,style:f,ref:t},a)}),pr={duration:250,easing:`ease`,keyframes:e=>{let{transform:{initial:t,final:n}}=e;return[{transform:G.Transform.toString(t)},{transform:G.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 mr(e){let{config:t,draggableNodes:n,droppableContainers:r,measuringConfiguration:i}=e;return ke((e,a)=>{if(t===null)return;let o=n.get(e);if(!o)return;let s=o.node.current;if(!s)return;let c=Pn(a);if(!c)return;let{transform:l}=z(a).getComputedStyle(a),u=_t(l);if(!u)return;let d=typeof t==`function`?t:hr(t);return zt(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 hr(e){let{duration:t,easing:n,sideEffects:r,keyframes:i}={...pr,...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 gr=0;function _r(e){return(0,I.useMemo)(()=>{if(e!=null)return gr++,gr},[e])}var vr=I.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}=rr(),ee=(0,I.useContext)(Xn),S=_r(d?.id),C=qn(o,{activatorEvent:u,active:d,activeNodeRect:f,containerNodeRect:p,draggingNodeRect:g.rect,over:_,overlayNodeRect:g.rect,scrollableAncestors:y,scrollableAncestorRects:b,transform:ee,windowRect:x}),te=vn(f),w=mr({config:r,draggableNodes:m,droppableContainers:h,measuringConfiguration:v}),T=te?g.setRef:void 0;return I.createElement(lr,null,I.createElement(sr,{animation:w},d&&S?I.createElement(fr,{key:S,id:d.id,ref:T,as:s,activatorEvent:u,adjustScale:t,className:c,transition:a,rect:te,style:{zIndex:l,...i},transform:C},n):null))});function yr(e,t,n){let r=e.slice();return r.splice(n<0?r.length+n:n,0,r.splice(t,1)[0]),r}function br(e,t){return e.reduce((e,n,r)=>{let i=t.get(n);return i&&(e[r]=i),e},Array(e.length))}function xr(e){return e!==null&&e>=0}function Sr(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Cr(e){return typeof e==`boolean`?{draggable:e,droppable:e}:e}var wr=e=>{let{rects:t,activeIndex:n,overIndex:r,index:i}=e,a=yr(t,r,n),o=t[i],s=a[i];return!s||!o?null:{x:s.left-o.left,y:s.top-o.top,scaleX:s.width/o.width,scaleY:s.height/o.height}},Tr={scaleX:1,scaleY:1},Er=e=>{let{activeIndex:t,activeNodeRect:n,index:r,rects:i,overIndex:a}=e,o=i[t]??n;if(!o)return null;if(r===t){let e=i[a];return e?{x:0,y:t<a?e.top+e.height-(o.top+o.height):e.top-o.top,...Tr}:null}let s=Dr(i,r,t);return r>t&&r<=a?{x:0,y:-o.height-s,...Tr}:r<t&&r>=a?{x:0,y:o.height+s,...Tr}:{x:0,y:0,...Tr}};function Dr(e,t,n){let r=e[t],i=e[t-1],a=e[t+1];return r?n<t?i?r.top-(i.top+i.height):a?a.top-(r.top+r.height):0:a?a.top-(r.top+r.height):i?r.top-(i.top+i.height):0:0}var Or=`Sortable`,kr=I.createContext({activeIndex:-1,containerId:Or,disableTransforms:!1,items:[],overIndex:-1,useDragOverlay:!1,sortedRects:[],strategy:wr,disabled:{draggable:!1,droppable:!1}});function Ar(e){let{children:t,id:n,items:r,strategy:i=wr,disabled:a=!1}=e,{active:o,dragOverlay:s,droppableRects:c,over:l,measureDroppableContainers:u}=rr(),d=Fe(Or,n),f=s.rect!==null,p=(0,I.useMemo)(()=>r.map(e=>typeof e==`object`&&`id`in e?e.id:e),[r]),m=o!=null,h=o?p.indexOf(o.id):-1,g=l?p.indexOf(l.id):-1,_=(0,I.useRef)(p),v=!Sr(p,_.current),y=g!==-1&&h===-1||v,b=Cr(a);H(()=>{v&&m&&u(p)},[v,p,m,u]),(0,I.useEffect)(()=>{_.current=p},[p]);let x=(0,I.useMemo)(()=>({activeIndex:h,containerId:d,disabled:b,disableTransforms:y,items:p,overIndex:g,useDragOverlay:f,sortedRects:br(p,c),strategy:i}),[h,d,b.draggable,b.droppable,y,p,g,c,f,i]);return I.createElement(kr.Provider,{value:x},t)}var jr=e=>{let{id:t,items:n,activeIndex:r,overIndex:i}=e;return yr(n,r,i).indexOf(t)},Mr=e=>{let{containerId:t,isSorting:n,wasDragging:r,index:i,items:a,newIndex:o,previousItems:s,previousContainerId:c,transition:l}=e;return!l||!r||s!==a&&i===o?!1:n?!0:o!==i&&t===c},Nr={duration:200,easing:`ease`},Pr=`transform`,Fr=G.Transition.toString({property:Pr,duration:0,easing:`linear`}),Ir={roleDescription:`sortable`};function Lr(e){let{disabled:t,index:n,node:r,rect:i}=e,[a,o]=(0,I.useState)(null),s=(0,I.useRef)(n);return H(()=>{if(!t&&n!==s.current&&r.current){let e=i.current;if(e){let t=bt(r.current,{ignoreTransform:!0}),n={x:e.left-t.left,y:e.top-t.top,scaleX:e.width/t.width,scaleY:e.height/t.height};(n.x||n.y)&&o(n)}}n!==s.current&&(s.current=n)},[t,n,r,i]),(0,I.useEffect)(()=>{a&&o(null)},[a]),a}function Rr(e){let{animateLayoutChanges:t=Mr,attributes:n,disabled:r,data:i,getNewIndex:a=jr,id:o,strategy:s,resizeObserverConfig:c,transition:l=Nr}=e,{items:u,containerId:d,activeIndex:f,disabled:p,disableTransforms:m,sortedRects:h,overIndex:g,useDragOverlay:_,strategy:v}=(0,I.useContext)(kr),y=zr(r,p),b=u.indexOf(o),x=(0,I.useMemo)(()=>({sortable:{containerId:d,index:b,items:u},...i}),[d,i,b,u]),ee=(0,I.useMemo)(()=>u.slice(u.indexOf(o)),[u,o]),{rect:S,node:C,isOver:te,setNodeRef:w}=or({id:o,data:x,disabled:y.droppable,resizeObserverConfig:{updateMeasurementsFor:ee,...c}}),{active:T,activatorEvent:ne,activeNodeRect:E,attributes:re,setNodeRef:ie,listeners:D,isDragging:O,over:ae,setActivatorNodeRef:oe,transform:k}=nr({id:o,data:x,attributes:{...Ir,...n},disabled:y.draggable}),se=Te(w,ie),ce=!!T,le=ce&&!m&&xr(f)&&xr(g),A=!_&&O,ue=le?(A&&le?k:null)??(s??v)({rects:h,activeNodeRect:E,activeIndex:f,overIndex:g,index:b}):null,j=xr(f)&&xr(g)?a({id:o,items:u,activeIndex:f,overIndex:g}):b,M=T?.id,N=(0,I.useRef)({activeId:M,items:u,newIndex:j,containerId:d}),de=u!==N.current.items,P=t({active:T,containerId:d,isDragging:O,isSorting:ce,id:o,index:b,items:u,newIndex:N.current.newIndex,previousItems:N.current.items,previousContainerId:N.current.containerId,transition:l,wasDragging:N.current.activeId!=null}),fe=Lr({disabled:!P,index:b,node:C,rect:S});return(0,I.useEffect)(()=>{ce&&N.current.newIndex!==j&&(N.current.newIndex=j),d!==N.current.containerId&&(N.current.containerId=d),u!==N.current.items&&(N.current.items=u)},[ce,j,d,u]),(0,I.useEffect)(()=>{if(M===N.current.activeId)return;if(M!=null&&N.current.activeId==null){N.current.activeId=M;return}let e=setTimeout(()=>{N.current.activeId=M},50);return()=>clearTimeout(e)},[M]),{active:T,activeIndex:f,attributes:re,data:x,rect:S,index:b,newIndex:j,items:u,isOver:te,isSorting:ce,isDragging:O,listeners:D,node:C,overIndex:g,over:ae,setNodeRef:se,setActivatorNodeRef:oe,setDroppableNodeRef:w,setDraggableNodeRef:ie,transform:fe??ue,transition:pe()};function pe(){if(fe||de&&N.current.newIndex===b)return Fr;if(!(A&&!ze(ne)||!l)&&(ce||P))return G.Transition.toString({...l,property:Pr})}}function zr(e,t){return typeof e==`boolean`?{draggable:e,droppable:!1}:{draggable:e?.draggable??t.draggable,droppable:e?.droppable??t.droppable}}function Br(e){if(!e)return!1;let t=e.data.current;return!!(t&&`sortable`in t&&typeof t.sortable==`object`&&`containerId`in t.sortable&&`items`in t.sortable&&`index`in t.sortable)}var Vr=[Z.Down,Z.Right,Z.Up,Z.Left],Hr=(e,t)=>{let{context:{active:n,collisionRect:r,droppableRects:i,droppableContainers:a,over:o,scrollableAncestors:s}}=t;if(Vr.includes(e.code)){if(e.preventDefault(),!n||!r)return;let t=[];a.getEnabled().forEach(n=>{if(!n||n!=null&&n.disabled)return;let a=i.get(n.id);if(a)switch(e.code){case Z.Down:r.top<a.top&&t.push(n);break;case Z.Up:r.top>a.top&&t.push(n);break;case Z.Left:r.left>a.left&&t.push(n);break;case Z.Right:r.left<a.left&&t.push(n);break}});let c=ut({active:n,collisionRect:r,droppableRects:i,droppableContainers:t,pointerCoordinates:null}),l=st(c,`id`);if(l===o?.id&&c.length>1&&(l=c[1].id),l!=null){let e=a.get(n.id),t=a.get(l),o=t?i.get(t.id):null,c=t?.node.current;if(c&&o&&e&&t){let n=Tt(c).some((e,t)=>s[t]!==e),i=Ur(e,t),a=Wr(e,t),l=n||!i?{x:0,y:0}:{x:a?r.width-o.width:0,y:a?r.height-o.height:0},u={x:o.left,y:o.top};return l.x&&l.y?u:Le(u,l)}}}};function Ur(e,t){return!Br(e)||!Br(t)?!1:e.data.current.sortable.containerId===t.data.current.sortable.containerId}function Wr(e,t){return!Br(e)||!Br(t)||!Ur(e,t)?!1:e.data.current.sortable.index<t.data.current.sortable.index}function Gr(e){let t=[];for(let n of e){if(n.command||!n.skill||n.prompt!==void 0&&n.prompt!==`{{task}}`||n.name!==void 0&&n.name!==n.skill||n.model||n.effort!==void 0||n.runner||n.agentProfile||n.allowedTools||n.bashAllowlist||n.onFail)return null;t.push(n.skill)}return t.length?t:null}function Kr(e,t){let n=new Set(t.map(e=>e.id)),r=e;for(let t=2;n.has(r);t++)r=`${e}-${t}`;return{id:r,name:e,skill:e,prompt:`{{task}}`}}function qr(e,t,n){let r=[...e];return r.splice(Math.max(0,Math.min(n,r.length)),0,t),r}function Jr(e,t,n){if(t===n||t<0||t>=e.length||n<0||n>=e.length)return[...e];let r=[...e],[i]=r.splice(t,1);return i===void 0?[...e]:(r.splice(n,0,i),r)}function Yr(e,t){return e.filter((e,n)=>n!==t)}function Q(e){let t=String(e),n=/^[A-Za-z0-9._][A-Za-z0-9 ._/-]*$/.test(t)&&!t.endsWith(` `),r=/^(true|false|yes|no|on|off|null|~)$/i.test(t)||/^[-+.]?\d/.test(t);return n&&!r?t:JSON.stringify(t)}function Xr(e,t,n){let r=` `.repeat(n);return t.includes(`
|
|
6
6
|
`)?[`${r}${e}: |`,...t.split(`
|
|
7
7
|
`).map(e=>`${r} ${e}`)]:[`${r}${e}: ${Q(t)}`]}function Zr(e,t,n){let r=[`name: ${Q(e.trim()||`my-workflow`)}`];t.trim()&&r.push(...Xr(`description`,t.trim(),0));let i=Gr(n);if(i){r.push(`skills:`);for(let e of i)r.push(` - ${Q(e)}`)}else if(n.length){r.push(`steps:`);for(let e of n)r.push(` - id: ${Q(e.id)}`),e.name&&e.name!==e.id&&r.push(` name: ${Q(e.name)}`),e.skill&&r.push(` skill: ${Q(e.skill)}`),e.prompt&&r.push(...Xr(`prompt`,e.prompt,4)),e.model&&r.push(` model: ${Q(e.model)}`),e.effort!==void 0&&r.push(` effort: ${Q(e.effort)}`),e.runner&&r.push(` runner: ${Q(e.runner)}`),e.agentProfile&&r.push(` agentProfile: ${Q(e.agentProfile)}`),e.allowedTools&&r.push(` allowedTools: [${e.allowedTools.map(Q).join(`, `)}]`),e.bashAllowlist&&r.push(` bashAllowlist: [${e.bashAllowlist.map(Q).join(`, `)}]`),e.command&&r.push(...Xr(`command`,e.command,4)),e.onFail&&r.push(` onFail:`,` retry: ${Q(e.onFail.retry)}`,` max: ${e.onFail.max??2}`)}else r.push(`skills: []`);return`${r.join(`
|
|
8
|
-
`)}\n`}function Qr(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||`workflow`}function $r(e){let t=Gr(e)?`skill`:`step`;return`${e.length} ${t}${e.length===1?``:`s`}`}function ei(e,t){let n=new Set,r=[];for(let t of e.steps.slice(0,8)){let e=t.id||`step`,i=e;for(let t=2;n.has(i);t++)i=`${e}-${t}`;n.add(i),r.push({...t,id:i})}return{name:e.name?.trim()||t,steps:r}}function ti(e,t,n){let r=Gr(n);return{name:e.trim(),...t.trim()?{description:t.trim()}:{},...r?{skills:r}:{steps:[...n]}}}var $=r(),ni=`wb-canvas`;function ri(){return{name:`my-workflow`,description:``,steps:[]}}function ii(e){return{name:e.name,description:e.description??``,steps:structuredClone(e.steps??[])}}function ai(){let{name:e}=
|
|
8
|
+
`)}\n`}function Qr(e){return e.trim().toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``)||`workflow`}function $r(e){let t=Gr(e)?`skill`:`step`;return`${e.length} ${t}${e.length===1?``:`s`}`}function ei(e,t){let n=new Set,r=[];for(let t of e.steps.slice(0,8)){let e=t.id||`step`,i=e;for(let t=2;n.has(i);t++)i=`${e}-${t}`;n.add(i),r.push({...t,id:i})}return{name:e.name?.trim()||t,steps:r}}function ti(e,t,n){let r=Gr(n);return{name:e.trim(),...t.trim()?{description:t.trim()}:{},...r?{skills:r}:{steps:[...n]}}}var $=r(),ni=`wb-canvas`;function ri(){return{name:`my-workflow`,description:``,steps:[]}}function ii(e){return{name:e.name,description:e.description??``,steps:structuredClone(e.steps??[])}}function ai(){let{name:e}=m();return(0,$.jsx)(oi,{routeName:e},e??``)}function oi({routeName:e}){let t=o(),n=ne(),r=S(),s=c(),[l,m]=(0,I.useState)(null),[ie,se]=(0,I.useState)(``),[M,N]=(0,I.useState)(!1),[de,P]=(0,I.useState)(``),[fe,ye]=(0,I.useState)(null),[we,F]=(0,I.useState)(!1),[Te,L]=(0,I.useState)(``),[R,Ee]=(0,I.useState)(``),[z,B]=(0,I.useState)(!1),[V,De]=(0,I.useState)(``),[Oe,H]=(0,I.useState)(!1),[ke,Ae]=(0,I.useState)(!1),[U,je]=(0,I.useState)(null),[Me,Ne]=(0,I.useState)(null),Pe=(0,I.useRef)(null),Fe=(0,I.useRef)(null),Ie=t.data?.workflows??[],W=n.data??[],Le=xe(W,r.data?.skillUsage),Re=be(Le,de,r.data?.skillUsage);(0,I.useEffect)(()=>{if(l!==null||t.data===void 0)return;let n=t.data.workflows,r=(e?n.find(t=>t.name===e):void 0)??n.find(e=>e.source===`file`);m(r?ii(r):ri())},[l,t.data,e]);let ze=e=>m(t=>t===null?t:{...t,steps:e}),Be=a({mutationFn:e=>x(e),onSuccess:e=>{m({name:e.name,description:e.description??``,steps:e.steps}),F(!1),L(``),Ee(``),j(`Imported "${e.name}" — review, then Save.`)},onError:e=>Ee(e.message)}),Ve=a({mutationFn:e=>T(e),onSuccess:e=>{m(t=>{let n=t??ri(),{name:r,steps:i}=ei(e,n.name);return{...n,name:r,steps:i}}),B(!1),De(``),j(e.fallback?`Planner unavailable — added a single step. Edit, then Save.`:`Built "${e.name??l?.name??`workflow`}" — review, tweak, then Save.`,e.fallback?{tone:`danger`}:void 0)},onError:e=>j(e instanceof Error?e.message:String(e),{tone:`danger`})}),G=a({mutationFn:e=>f({...ti(l?.name??``,l?.description??``,l?.steps??[]),...e?{overwrite:!0}:{}}),onSuccess:e=>{H(!1),j(`Saved — ${e.path.split(`/`).pop()??e.path}`),s.invalidateQueries({queryKey:re.workflows})},onError:e=>{e instanceof ue&&e.exists===!0?H(!0):j(e instanceof Error?e.message:String(e),{tone:`danger`})}}),He=a({mutationFn:e=>i(e),onSuccess:(e,t)=>{Ae(!1),j(`Deleted "${t}".`),m(ri()),s.invalidateQueries({queryKey:re.workflows})},onError:e=>{Ae(!1),j(e instanceof Error?e.message:String(e),{tone:`danger`})}}),Ue=tt(et(en,{activationConstraint:{distance:4}}),et(Yt,{coordinateGetter:Hr}));if(t.isError)return(0,$.jsx)(`div`,{"data-route":`workflows`,className:`@container mx-auto min-h-full w-full px-[18px] py-6 md:p-9`,children:(0,$.jsx)(ce,{icon:(0,$.jsx)(b,{}),tone:`danger`,title:`Could not load workflows`,subtitle:t.error.message})});if(l===null)return(0,$.jsx)(Ce,{});let K=l.steps,We=l.name.trim(),Ge=Ie.find(e=>e.name===We&&e.source===`file`),Ke=Zr(l.name,l.description,K),qe=(e,t=K.length)=>{if(K.length>=8){j(`A workflow holds at most 8 steps.`,{tone:`danger`});return}ze(qr(K,Kr(e,K),t))},Je=e=>{let t=e.active.data.current;je(t??null)},Ye=e=>{Ne(e.over?String(e.over.id):null)},Xe=e=>{je(null),Ne(null);let{active:t,over:n}=e;if(n===null)return;let r=t.data.current;if(r?.type===`palette`){let e=n.id===ni?K.length:K.findIndex(e=>e.id===n.id);qe(r.skill,e===-1?K.length:e);return}if(n.id===t.id)return;let i=K.findIndex(e=>e.id===t.id),a=K.findIndex(e=>e.id===n.id);i!==-1&&a!==-1&&ze(Jr(K,i,a))},Ze=()=>{let e=Te.trim();e!==``&&Be.mutate(e)},Qe=()=>{let e=V.trim();e===``||Ve.isPending||Ve.mutate(e)};return(0,$.jsxs)(`div`,{"data-route":`workflows`,className:`@container mx-auto min-h-full w-full px-[18px] py-6 md:p-9`,children:[(0,$.jsxs)(`header`,{className:`mb-[22px] flex flex-wrap items-center justify-between gap-4`,children:[(0,$.jsxs)(`div`,{children:[(0,$.jsx)(`h1`,{className:`text-[25px] font-semibold md:text-[30px]`,children:`Workflows`}),(0,$.jsx)(`p`,{className:`mt-2 text-xs text-muted-foreground md:text-[13px]`,children:`Portable skill chains. Steps run from top to bottom.`})]}),(0,$.jsxs)(w,{variant:`primary`,"data-slot":`wb-new`,className:`min-h-11`,onClick:()=>m(ri()),children:[(0,$.jsx)(u,{"aria-hidden":`true`,className:`size-4`}),`New workflow`]})]}),(0,$.jsxs)(Qn,{sensors:Ue,collisionDetection:lt,onDragStart:Je,onDragOver:Ye,onDragEnd:Xe,onDragCancel:()=>{je(null),Ne(null)},children:[(0,$.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-[22px] pb-[calc(32px+env(safe-area-inset-bottom))]`,children:[(0,$.jsxs)(`section`,{"data-slot":`wb-metadata`,className:`flex min-w-0 flex-col gap-3`,children:[(0,$.jsxs)(`div`,{"data-slot":`wb-load`,className:`flex flex-col items-start gap-2`,children:[(0,$.jsx)(`label`,{htmlFor:`workflow-load`,className:`text-xs text-muted-foreground`,children:`Load an existing workflow`}),(0,$.jsxs)(`div`,{className:`relative max-w-full`,children:[(0,$.jsx)(_,{"aria-hidden":`true`,className:`pointer-events-none absolute left-3 top-3.5 size-4 text-muted-foreground`}),(0,$.jsxs)(`select`,{id:`workflow-load`,value:Ie.some(e=>e.name===We)?We:``,onChange:e=>{let t=Ie.find(t=>t.name===e.target.value);t&&m(ii(t))},className:`h-11 max-w-full rounded-lg border border-border bg-card pl-9 pr-3 text-xs font-medium appearance-none focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,$.jsx)(`option`,{value:``,disabled:!0,children:`Choose a workflow`}),Ie.map(e=>(0,$.jsx)(`option`,{value:e.name,"data-slot":`wb-load-option`,"data-name":e.name,children:e.name},e.name))]})]})]}),(0,$.jsx)(`label`,{htmlFor:`workflow-name`,className:`text-xs font-semibold`,children:`Workflow name`}),(0,$.jsx)(Se,{id:`workflow-name`,ref:Pe,"data-slot":`wb-name`,"aria-label":`Workflow name`,spellCheck:!1,value:l.name,onChange:e=>m({...l,name:e.target.value}),className:`h-12 bg-card text-sm`}),(0,$.jsx)(`label`,{htmlFor:`workflow-description`,className:`text-xs font-semibold`,children:`Description`}),(0,$.jsx)(ve,{id:`workflow-description`,"data-slot":`wb-description`,"aria-label":`Description`,value:l.description,onChange:e=>m({...l,description:e.target.value}),className:`min-h-[72px] bg-card p-3.5 text-sm`})]}),(0,$.jsxs)(`div`,{"data-slot":`wb-actions`,className:`grid grid-cols-[max-content_max-content] items-center justify-start gap-2 sm:flex sm:flex-wrap [&_button]:min-h-11 [&_button]:border [&_button]:border-border [&_button]:bg-card`,children:[(0,$.jsxs)(w,{type:`button`,variant:`ghost`,size:`sm`,"data-slot":`wb-import`,className:`col-span-2 justify-self-start`,onClick:()=>{Ee(``),B(!1),F(e=>!e)},children:[(0,$.jsx)(v,{"aria-hidden":`true`,className:`size-3`}),`Import`]}),(0,$.jsxs)(w,{type:`button`,variant:`ghost`,size:`sm`,"data-slot":`wb-export`,className:`col-span-2 justify-self-start`,title:`Download workflow.yaml`,onClick:()=>{let e=new Blob([Ke],{type:`text/yaml`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`${Qr(l.name)}.yaml`,document.body.appendChild(n),n.click(),n.remove(),setTimeout(()=>URL.revokeObjectURL(t),1e3)},children:[(0,$.jsx)(ae,{"aria-hidden":`true`,className:`size-3`}),`Export`]}),(0,$.jsxs)(w,{type:`button`,variant:`ghost`,size:`sm`,"data-slot":`wb-auto`,"aria-expanded":z,title:`Describe a chain — the agent builds it`,onClick:()=>{F(!1),B(e=>!e)},children:[(0,$.jsx)(p,{"aria-hidden":`true`,className:`size-3`}),`Auto`]}),Ge?(0,$.jsxs)(w,{type:`button`,variant:`ghost`,size:`sm`,"data-slot":`wb-delete`,className:`text-danger hover:text-danger`,title:`Delete the saved workflow file`,onClick:()=>Ae(!0),children:[(0,$.jsx)(d,{"aria-hidden":`true`,className:`size-3`}),`Delete`]}):null]}),z?(0,$.jsxs)(`div`,{"data-slot":`wb-auto-panel`,className:`rounded-xl border border-border bg-card p-5 [&_button]:min-h-11`,children:[(0,$.jsx)(`h2`,{className:`text-lg font-normal`,children:`Build a chain from a prompt`}),(0,$.jsx)(`p`,{className:`mt-4 text-[13px] leading-relaxed text-muted-foreground`,children:`Describe the outcome. An agent proposes a title and ordered skill/check steps. Review the result, edit it, then Save.`}),(0,$.jsx)(ve,{"data-slot":`wb-auto-text`,"aria-label":`Describe the chain to build`,rows:3,autoFocus:!0,placeholder:`e.g. Fix the bug, run the tests, then review the diff for regressions.`,value:V,onChange:e=>De(e.target.value),onKeyDown:e=>{(e.metaKey||e.ctrlKey)&&e.key===`Enter`&&(e.preventDefault(),Qe())},className:`mt-4 min-h-[108px] bg-background p-4 text-sm`}),(0,$.jsxs)(`div`,{className:`mt-3 flex items-center gap-1.5`,children:[(0,$.jsxs)(w,{type:`button`,variant:`primary`,size:`sm`,"data-slot":`wb-auto-run`,disabled:Ve.isPending||V.trim()===``,onClick:Qe,children:[(0,$.jsx)(p,{"aria-hidden":`true`,className:`size-3`}),Ve.isPending?`Building…`:`Build chain`]}),(0,$.jsxs)(w,{type:`button`,variant:`ghost`,size:`sm`,"data-slot":`wb-auto-cancel`,onClick:()=>{B(!1),De(``)},children:[(0,$.jsx)(le,{"aria-hidden":`true`,className:`size-4`}),`Cancel`]})]}),(0,$.jsx)(`p`,{className:`mt-4 text-xs text-muted-foreground`,children:`Creates an editable draft. Review the generated name and steps before saving.`})]}):null,(0,$.jsx)(me,{open:we,onOpenChange:F,children:(0,$.jsxs)(ge,{showCloseButton:!1,"data-slot":`wb-import-panel`,className:`max-md:translate-x-0 max-md:translate-y-0 sm:max-w-[660px] rounded-xl border border-border bg-card p-5 [&_button]:min-h-11`,children:[(0,$.jsx)(_e,{className:`text-xl font-normal`,children:`Import workflow YAML`}),(0,$.jsx)(pe,{className:`sr-only`,children:`Paste a portable workflow definition to import.`}),(0,$.jsx)(ve,{"data-slot":`wb-import-text`,"aria-label":`Workflow YAML to import`,rows:4,spellCheck:!1,placeholder:`name: my-flow
|
|
9
9
|
skills:
|
|
10
10
|
- test-conventions
|
|
11
|
-
- commit-style`,value:Te,onChange:e=>L(e.target.value),className:`mt-4 min-h-[124px] bg-background p-4 font-mono text-[13px] leading-relaxed`}),(0,$.jsx)(`p`,{className:`mt-4 text-[13px] text-muted-foreground`,children:`Paste a portable workflow definition. Imported steps appear in execution order.`}),R===``?null:(0,$.jsx)(`p`,{"data-slot":`wb-import-error`,role:`alert`,className:`mt-2 text-xs text-danger`,children:R}),(0,$.jsxs)(`div`,{className:`mt-3 flex items-center gap-1.5`,children:[(0,$.jsx)(w,{type:`button`,variant:`primary`,size:`sm`,"data-slot":`wb-import-run`,disabled:Be.isPending,onClick:Ze,children:`Import`}),(0,$.jsx)(w,{type:`button`,variant:`ghost`,size:`sm`,"data-slot":`wb-import-cancel`,onClick:()=>{F(!1),L(``),Ee(``)},children:`Cancel`})]})]})}),(0,$.jsxs)(`div`,{className:`grid min-w-0 items-start gap-[22px] @min-[700px]:grid-cols-[minmax(0,1fr)_300px]`,children:[(0,$.jsxs)(`section`,{"data-slot":`wb-main`,className:`min-w-0 rounded-xl border border-border bg-card p-5`,children:[(0,$.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Steps · `,K.length,` of `,8,(0,$.jsx)(`span`,{"data-slot":`wb-count`,className:`sr-only`,children:$r(K)})]}),(0,$.jsx)(si,{steps:K,skills:W,dragging:U!==null,overId:Me,activeStepId:U?.type===`step`?U.step.id:null,onRemove:e=>ze(Yr(K,e)),onMove:(e,t)=>ze(Jr(K,e,t))}),(0,$.jsxs)(w,{ref:Fe,variant:`outline`,className:`mt-4 min-h-11`,onClick:()=>{ye(null),P(``),N(!0)},children:[(0,$.jsx)(d,{"aria-hidden":`true`,className:`size-4`}),`Add step`]}),(0,$.jsxs)(`p`,{className:`mt-4 text-xs leading-relaxed text-muted-foreground`,children:[(0,$.jsx)(`span`,{className:`hidden @min-[900px]:inline`,children:`Drag to reorder. The agent follows this sequence from top to bottom.`}),(0,$.jsx)(`span`,{className:`@min-[900px]:hidden`,children:`Use Move up / Move down to reorder without dragging.`})]}),(0,$.jsxs)(`footer`,{className:`mt-4 flex flex-wrap items-center justify-between gap-4 border-t border-border pt-4`,children:[(0,$.jsx)(`p`,{className:`text-xs leading-relaxed text-muted-foreground`,children:`Review the name and steps, then save to a workflow file.`}),(0,$.jsxs)(w,{type:`button`,variant:`primary`,size:`sm`,className:`min-h-11 max-sm:w-full`,"data-slot":`wb-save`,disabled:G.isPending,onClick:()=>{if(We===``){Pe.current?.focus();return}if(K.length===0){j(`Add at least one step first.`,{tone:`danger`});return}G.mutate(!1)},children:[(0,$.jsx)(b,{"aria-hidden":`true`,className:`size-3`}),`Save`]})]})]}),(0,$.jsxs)(`aside`,{"data-slot":`wb-aside`,className:`min-w-0 rounded-xl border border-border bg-card p-5`,children:[(0,$.jsx)(`h2`,{className:`text-[16px] font-semibold`,children:`Available skills`}),(0,$.jsxs)(`div`,{className:`sw-search relative mt-4`,children:[(0,$.jsx)(h,{"aria-hidden":`true`,className:`pointer-events-none absolute left-3 top-3.5 size-4 text-muted-foreground`}),(0,$.jsx)(Se,{"data-slot":`wb-filter`,placeholder:`Find a skill…`,"aria-label":`Filter skills`,value:re,onChange:e=>ce(e.target.value),className:`h-11 pl-9 text-xs`})]}),(0,$.jsx)(ui,{skills:Le,query:re,error:n.isError?n.error.message:null,inFlow:new Set(K.map(e=>e.skill).filter(e=>!!e)),onAdd:e=>qe(e)}),(0,$.jsx)(`h3`,{className:`mt-5 text-sm font-semibold`,children:`workflow.yaml`}),(0,$.jsx)(`p`,{className:`mt-3 text-xs leading-relaxed text-muted-foreground`,children:`Export the workflow to use this chain in another project.`}),(0,$.jsxs)(`details`,{className:`mt-4 min-w-0`,children:[(0,$.jsxs)(`summary`,{"data-slot":`wb-yaml-toggle`,className:`inline-flex min-h-[44px] cursor-pointer items-center rounded-lg border border-border px-3 text-xs font-medium focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,$.jsx)(te,{"aria-hidden":`true`,className:`mr-2 size-4`}),`View YAML`]}),(0,$.jsx)(`div`,{className:`mt-3 flex justify-end`,children:(0,$.jsx)(fi,{yaml:Ke})}),(0,$.jsx)(`pre`,{"data-slot":`wb-yaml`,className:`mt-2 max-h-96 overflow-auto rounded-lg border border-border bg-background p-3 font-mono text-[11px] leading-relaxed whitespace-pre text-muted-foreground`,children:Ke})]})]})]})]}),(0,$.jsx)(vr,{children:U?.type===`palette`?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-border bg-card px-2.5 py-1.5 font-mono text-[13px] font-medium shadow-md`,children:[(0,$.jsx)(g,{"aria-hidden":`true`,className:`size-3.5 text-link-foreground`}),U.skill]}):U?.type===`step`?(0,$.jsx)(li,{step:U.step,index:K.findIndex(e=>e.id===U.step.id),skills:W,overlay:!0}):null})]}),(0,$.jsx)(me,{open:M,onOpenChange:N,children:(0,$.jsxs)(ge,{"data-slot":`wb-add-dialog`,onCloseAutoFocus:e=>{e.preventDefault(),Fe.current?.focus()},className:`max-h-[85dvh] overflow-y-auto sm:max-w-[660px] [&_button]:min-h-11`,children:[(0,$.jsxs)(he,{children:[(0,$.jsx)(_e,{className:`text-xl font-normal`,children:`Add step`}),(0,$.jsx)(pe,{className:`sr-only`,children:`Choose a skill to append to this workflow.`})]}),(0,$.jsx)(Se,{"aria-label":`Filter skills`,placeholder:`Filter skills…`,value:de,onChange:e=>P(e.target.value)}),n.isError?(0,$.jsxs)(`p`,{role:`alert`,className:`text-sm text-danger`,children:[`Could not load skills: `,n.error.message]}):(0,$.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Available skills`,className:`grid max-h-80 gap-2 overflow-y-auto`,children:[Re.map(e=>(0,$.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3 rounded-lg py-2 has-[:checked]:bg-accent-strong/10 has-[:focus-visible]:outline-2`,children:[(0,$.jsx)(`input`,{type:`radio`,name:`workflow-add-skill`,className:`sr-only`,value:e.name,checked:fe===e.name,onChange:()=>ye(e.name)}),(0,$.jsxs)(`span`,{className:`min-w-0 break-words text-sm`,children:[(0,$.jsx)(`span`,{className:`block`,children:e.name}),(0,$.jsx)(`span`,{className:`mt-2 block text-xs text-muted-foreground`,children:e.description})]})]},e.name)),Re.length===0?(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:W.length===0?`No skills available in this project.`:`No matching skills.`}):null]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,$.jsx)(w,{variant:`outline`,onClick:()=>N(!1),children:`Cancel`}),(0,$.jsx)(w,{variant:`primary`,disabled:!fe||K.length>=8,onClick:()=>{fe&&(qe(fe),N(!1))},children:`Add selected skill`})]}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Append the selected skill, then reorder it in the existing canvas.`}),K.length>=8?(0,$.jsxs)(`p`,{role:`status`,className:`text-sm text-muted-foreground`,children:[`A workflow can contain up to `,8,` steps. Remove a step before adding another.`]}):null]})}),(0,$.jsx)(k,{open:Oe,onOpenChange:e=>!e&&H(!1),children:(0,$.jsxs)(ae,{"data-slot":`wb-overwrite-dialog`,className:`sw-workflow-confirm sm:max-w-[660px]`,children:[(0,$.jsxs)(D,{children:[(0,$.jsxs)(ue,{children:[`“`,We,`” already exists`]}),(0,$.jsx)(se,{children:`Saving overwrites the existing workflow file. There is no undo.`})]}),(0,$.jsxs)(C,{children:[(0,$.jsx)(ee,{children:`Keep the file`}),(0,$.jsx)(ne,{"data-slot":`wb-overwrite-confirm`,className:`bg-danger text-danger-foreground`,onClick:()=>G.mutate(!0),children:`Overwrite`})]})]})}),(0,$.jsx)(k,{open:ke,onOpenChange:e=>!e&&Ae(!1),children:(0,$.jsxs)(ae,{"data-slot":`wb-delete-dialog`,className:`sw-workflow-confirm sm:max-w-[660px]`,children:[(0,$.jsxs)(D,{children:[(0,$.jsxs)(ue,{children:[`Delete workflow “`,We,`”?`]}),(0,$.jsxs)(se,{children:[`Removes `,Ge?.path?.split(`/`).pop()??`the saved file`,` from`,` `,(0,$.jsx)(`span`,{className:`font-mono`,children:`.ai/cezar/workflows/`}),`. There is no undo.`]})]}),(0,$.jsxs)(C,{children:[(0,$.jsx)(ee,{children:`Keep the file`}),(0,$.jsx)(ne,{"data-slot":`wb-delete-confirm`,className:`bg-danger text-danger-foreground hover:brightness-[0.96]`,onClick:()=>He.mutate(We),children:`Delete workflow`})]})]})})]})}function si({steps:e,skills:t,dragging:n,overId:r,activeStepId:i,onRemove:a,onMove:o}){let{setNodeRef:s,isOver:c}=or({id:ni}),l=n&&r===ni;return(0,$.jsx)(`div`,{ref:s,"data-slot":`wb-steps`,"data-dragging":n||void 0,className:M(`relative mt-4 rounded-lg transition-colors`,c?`border-accent-strong/60 bg-accent-strong/5`:`border-muted-foreground/25`),children:e.length===0?(0,$.jsx)(`p`,{className:M(`rounded-md px-3 py-10 text-center text-[13px] transition-colors`,c?`text-link-foreground`:`text-muted-foreground`),children:`Drop a skill here — or Import a workflow.yaml`}):(0,$.jsxs)(Ar,{items:e.map(e=>e.id),strategy:Er,children:[(0,$.jsx)(`ol`,{className:`flex flex-col gap-4`,children:e.map((s,c)=>(0,$.jsx)(ci,{step:s,index:c,skills:t,dragging:n,insertBefore:n&&r===s.id&&i!==s.id,onRemove:()=>a(c),onMoveUp:c>0?()=>o(c,c-1):void 0,onMoveDown:c<e.length-1?()=>o(c,c+1):void 0},s.id))}),(0,$.jsx)(`div`,{"aria-hidden":`true`,className:M(`absolute inset-x-0 mt-1 h-[3px] rounded-full transition-colors`,l?`bg-accent-strong`:`bg-transparent`)})]})})}function ci({step:e,index:t,skills:n,dragging:r,insertBefore:i,onRemove:a,onMoveUp:o,onMoveDown:s}){let{attributes:c,listeners:l,setNodeRef:u,transform:d,transition:f,isDragging:p}=Rr({id:e.id,data:{type:`step`,step:e}});return(0,$.jsxs)(`li`,{ref:u,style:{transform:G.Transform.toString(d),transition:f},className:M(`relative`,p&&`opacity-40`),children:[i?(0,$.jsx)(`span`,{"aria-hidden":`true`,"data-slot":`wb-drop-line`,className:`pointer-events-none absolute -top-[7px] right-0 left-0 h-[3px] rounded-full bg-accent-strong`}):null,(0,$.jsx)(li,{step:e,index:t,skills:n,onRemove:a,onMoveUp:o,onMoveDown:s,gripProps:{...c,...l}})]})}function li({step:e,index:t,skills:n,onRemove:r,gripProps:i,onMoveUp:a,onMoveDown:o,overlay:s=!1}){let u=n.find(t=>t.name===e.skill),d=!!e.command,p=e.name??e.skill??e.id,m=e.prompt?.trim()===`{{task}}`?void 0:e.prompt?.trim(),h=d?`$ ${e.command}${e.onFail?` — on fail retry from "${e.onFail.retry}" (×${e.onFail.max??2})`:``}`:e.skill?m||u?.description||`Not in this repo or the team skills — the step runs on its plain prompt.`:e.prompt??``,g=e.skill&&!u?`unknown`:null;return(0,$.jsxs)(`div`,{"data-slot":`wb-step`,"data-id":e.id,"data-index":t,className:M(`rounded-lg border border-border bg-background p-4`,s&&`shadow-md`),children:[(0,$.jsxs)(`div`,{"data-slot":`wb-step-heading`,className:`flex min-w-0 items-center gap-2.5`,children:[(0,$.jsx)(`button`,{type:`button`,"data-slot":`wb-step-grip`,"aria-label":`Reorder step ${t+1}: ${p}`,className:`inline-flex size-[26px] shrink-0 cursor-grab items-center justify-center rounded-md text-muted-foreground transition-colors outline-none hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50`,...i,children:(0,$.jsx)(`span`,{className:`rounded bg-accent-strong/10 px-2 py-1 font-mono text-[12px] text-link-foreground`,children:String(t+1).padStart(2,`0`)})}),(0,$.jsx)(`div`,{className:`min-w-0 flex-1 break-words text-sm font-medium [overflow-wrap:anywhere]`,children:p}),g?(0,$.jsx)(`span`,{"data-slot":`wb-step-badge`,className:M(`shrink-0 rounded-full border px-2 py-px font-mono text-[11px]`,g===`unknown`&&`border-danger/35 text-danger`),children:g}):null,r?(0,$.jsxs)(fe,{children:[(0,$.jsx)(de,{asChild:!0,children:(0,$.jsx)(w,{"data-slot":`wb-step-actions`,variant:`ghost`,size:`icon`,className:`size-[26px]`,"aria-label":`Step ${t+1} actions: ${p}`,children:(0,$.jsx)(ce,{"aria-hidden":`true`,className:`size-4`})})}),(0,$.jsx)(P,{align:`end`,children:(0,$.jsxs)(N,{"data-slot":`wb-step-remove`,"aria-label":`Remove step ${t+1}: ${p}`,onSelect:r,children:[(0,$.jsx)(f,{"aria-hidden":`true`}),` Remove step`]})})]}):null]}),h?(0,$.jsx)(`div`,{"data-slot":`wb-step-summary`,className:`mt-3 break-words text-xs leading-relaxed text-muted-foreground`,children:h}):null,(0,$.jsx)(`p`,{"data-slot":`wb-step-kind`,className:`mt-3 text-[12px] text-link-foreground`,children:d?`Command step${e.onFail?` · Retry ×${e.onFail.max??2}`:``}`:e.skill?`Skill step`:`Prompt step`}),s?null:(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2 @min-[900px]:hidden`,children:[(0,$.jsxs)(w,{variant:`outline`,size:`sm`,className:`min-h-11`,"aria-label":`Move step ${t+1} up`,disabled:!a,onClick:a,children:[(0,$.jsx)(c,{"aria-hidden":`true`,className:`size-4`}),`Move up`]}),(0,$.jsxs)(w,{variant:`outline`,size:`sm`,className:`min-h-11`,"aria-label":`Move step ${t+1} down`,disabled:!o,onClick:o,children:[(0,$.jsx)(l,{"aria-hidden":`true`,className:`size-4`}),`Move down`]})]})]})}function ui({skills:e,query:t,error:n,inFlow:r,onAdd:i}){if(n!==null)return(0,$.jsxs)(`p`,{"data-slot":`wb-palette`,className:`mt-2.5 text-xs text-danger`,children:[`Could not load skills: `,n]});let a=be(e,t);return(0,$.jsx)(`div`,{"data-slot":`wb-palette`,className:`mt-2.5 flex flex-col gap-1`,children:a.length>0?a.map(e=>(0,$.jsx)(di,{skill:e,inFlow:r.has(e.name),onAdd:i},e.path)):(0,$.jsx)(`p`,{className:`py-1 text-xs leading-relaxed text-soft-foreground`,children:e.length>0?`No skills match.`:(0,$.jsx)(we,{})})})}function di({skill:e,inFlow:t,onAdd:n}){let{attributes:r,listeners:i,setNodeRef:a,isDragging:o}=nr({id:`palette:${e.name}`,data:{type:`palette`,skill:e.name}});return(0,$.jsxs)(`div`,{ref:a,"data-slot":`wb-skill`,"data-skill":e.name,"data-in-flow":t||void 0,title:e.description??``,className:M(`flex min-h-11 cursor-grab items-center gap-2 rounded-md py-1 transition-colors hover:bg-muted`,o&&`opacity-40`),...r,...i,children:[(0,$.jsx)(`span`,{className:M(`min-w-0 flex-1 break-words text-xs`,ye(e)?`font-semibold text-foreground`:`font-medium text-muted-foreground`),children:e.name}),(0,$.jsx)(`button`,{type:`button`,"data-slot":`wb-skill-add`,"aria-label":`Add ${e.name} to the flow`,title:`Add to the flow`,onClick:()=>n(e.name),className:`inline-flex size-11 shrink-0 items-center justify-center rounded-md text-link-foreground transition-colors outline-none hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50`,children:(0,$.jsx)(d,{"aria-hidden":`true`,className:`size-3.5`})})]})}function fi({yaml:e}){let[t,n]=(0,I.useState)(!1),r=(0,I.useRef)(null);return(0,I.useEffect)(()=>()=>{r.current!==null&&clearTimeout(r.current)},[]),(0,$.jsx)(`button`,{type:`button`,"data-slot":`wb-copy`,title:`Copy the YAML`,onClick:()=>{navigator.clipboard?.writeText(e).catch(()=>{}),n(!0),r.current!==null&&clearTimeout(r.current),r.current=setTimeout(()=>n(!1),1600)},className:`flex items-center gap-1 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground`,children:t?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(b,{"aria-hidden":`true`,className:`size-3 text-success`}),`Copied`]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(re,{"aria-hidden":`true`,className:`size-3`}),`Copy`]})})}export{ai as WorkflowsRoute};
|
|
11
|
+
- commit-style`,value:Te,onChange:e=>L(e.target.value),className:`mt-4 min-h-[124px] bg-background p-4 font-mono text-[13px] leading-relaxed`}),(0,$.jsx)(`p`,{className:`mt-4 text-[13px] text-muted-foreground`,children:`Paste a portable workflow definition. Imported steps appear in execution order.`}),R===``?null:(0,$.jsx)(`p`,{"data-slot":`wb-import-error`,role:`alert`,className:`mt-2 text-xs text-danger`,children:R}),(0,$.jsxs)(`div`,{className:`mt-3 flex items-center gap-1.5`,children:[(0,$.jsx)(w,{type:`button`,variant:`primary`,size:`sm`,"data-slot":`wb-import-run`,disabled:Be.isPending,onClick:Ze,children:`Import`}),(0,$.jsx)(w,{type:`button`,variant:`ghost`,size:`sm`,"data-slot":`wb-import-cancel`,onClick:()=>{F(!1),L(``),Ee(``)},children:`Cancel`})]})]})}),(0,$.jsxs)(`div`,{className:`grid min-w-0 items-start gap-[22px] @min-[700px]:grid-cols-[minmax(0,1fr)_300px]`,children:[(0,$.jsxs)(`section`,{"data-slot":`wb-main`,className:`min-w-0 rounded-xl border border-border bg-card p-5`,children:[(0,$.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Steps · `,K.length,` of `,8,(0,$.jsx)(`span`,{"data-slot":`wb-count`,className:`sr-only`,children:$r(K)})]}),(0,$.jsx)(si,{steps:K,skills:W,dragging:U!==null,overId:Me,activeStepId:U?.type===`step`?U.step.id:null,onRemove:e=>ze(Yr(K,e)),onMove:(e,t)=>ze(Jr(K,e,t))}),(0,$.jsxs)(w,{ref:Fe,variant:`outline`,className:`mt-4 min-h-11`,onClick:()=>{ye(null),P(``),N(!0)},children:[(0,$.jsx)(u,{"aria-hidden":`true`,className:`size-4`}),`Add step`]}),(0,$.jsxs)(`p`,{className:`mt-4 text-xs leading-relaxed text-muted-foreground`,children:[(0,$.jsx)(`span`,{className:`hidden @min-[900px]:inline`,children:`Drag to reorder. The agent follows this sequence from top to bottom.`}),(0,$.jsx)(`span`,{className:`@min-[900px]:hidden`,children:`Use Move up / Move down to reorder without dragging.`})]}),(0,$.jsxs)(`footer`,{className:`mt-4 flex flex-wrap items-center justify-between gap-4 border-t border-border pt-4`,children:[(0,$.jsx)(`p`,{className:`text-xs leading-relaxed text-muted-foreground`,children:`Review the name and steps, then save to a workflow file.`}),(0,$.jsxs)(w,{type:`button`,variant:`primary`,size:`sm`,className:`min-h-11 max-sm:w-full`,"data-slot":`wb-save`,disabled:G.isPending,onClick:()=>{if(We===``){Pe.current?.focus();return}if(K.length===0){j(`Add at least one step first.`,{tone:`danger`});return}G.mutate(!1)},children:[(0,$.jsx)(y,{"aria-hidden":`true`,className:`size-3`}),`Save`]})]})]}),(0,$.jsxs)(`aside`,{"data-slot":`wb-aside`,className:`min-w-0 rounded-xl border border-border bg-card p-5`,children:[(0,$.jsx)(`h2`,{className:`text-[16px] font-semibold`,children:`Available skills`}),(0,$.jsxs)(`div`,{className:`sw-search relative mt-4`,children:[(0,$.jsx)(h,{"aria-hidden":`true`,className:`pointer-events-none absolute left-3 top-3.5 size-4 text-muted-foreground`}),(0,$.jsx)(Se,{"data-slot":`wb-filter`,placeholder:`Find a skill…`,"aria-label":`Filter skills`,value:ie,onChange:e=>se(e.target.value),className:`h-11 pl-9 text-xs`})]}),(0,$.jsx)(ui,{skills:Le,query:ie,error:n.isError?n.error.message:null,inFlow:new Set(K.map(e=>e.skill).filter(e=>!!e)),onAdd:e=>qe(e)}),(0,$.jsx)(`h3`,{className:`mt-5 text-sm font-semibold`,children:`workflow.yaml`}),(0,$.jsx)(`p`,{className:`mt-3 text-xs leading-relaxed text-muted-foreground`,children:`Export the workflow to use this chain in another project.`}),(0,$.jsxs)(`details`,{className:`mt-4 min-w-0`,children:[(0,$.jsxs)(`summary`,{"data-slot":`wb-yaml-toggle`,className:`inline-flex min-h-[44px] cursor-pointer items-center rounded-lg border border-border px-3 text-xs font-medium focus-visible:outline-2 focus-visible:outline-ring`,children:[(0,$.jsx)(te,{"aria-hidden":`true`,className:`mr-2 size-4`}),`View YAML`]}),(0,$.jsx)(`div`,{className:`mt-3 flex justify-end`,children:(0,$.jsx)(fi,{yaml:Ke})}),(0,$.jsx)(`pre`,{"data-slot":`wb-yaml`,className:`mt-2 max-h-96 overflow-auto rounded-lg border border-border bg-background p-3 font-mono text-[11px] leading-relaxed whitespace-pre text-muted-foreground`,children:Ke})]})]})]})]}),(0,$.jsx)(vr,{children:U?.type===`palette`?(0,$.jsxs)(`div`,{className:`flex items-center gap-2 rounded-md border border-border bg-card px-2.5 py-1.5 font-mono text-[13px] font-medium shadow-md`,children:[(0,$.jsx)(g,{"aria-hidden":`true`,className:`size-3.5 text-link-foreground`}),U.skill]}):U?.type===`step`?(0,$.jsx)(li,{step:U.step,index:K.findIndex(e=>e.id===U.step.id),skills:W,overlay:!0}):null})]}),(0,$.jsx)(me,{open:M,onOpenChange:N,children:(0,$.jsxs)(ge,{"data-slot":`wb-add-dialog`,onCloseAutoFocus:e=>{e.preventDefault(),Fe.current?.focus()},className:`max-h-[85dvh] overflow-y-auto sm:max-w-[660px] [&_button]:min-h-11`,children:[(0,$.jsxs)(he,{children:[(0,$.jsx)(_e,{className:`text-xl font-normal`,children:`Add step`}),(0,$.jsx)(pe,{className:`sr-only`,children:`Choose a skill to append to this workflow.`})]}),(0,$.jsx)(Se,{"aria-label":`Filter skills`,placeholder:`Filter skills…`,value:de,onChange:e=>P(e.target.value)}),n.isError?(0,$.jsxs)(`p`,{role:`alert`,className:`text-sm text-danger`,children:[`Could not load skills: `,n.error.message]}):(0,$.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Available skills`,className:`grid max-h-80 gap-2 overflow-y-auto`,children:[Re.map(e=>(0,$.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3 rounded-lg py-2 has-[:checked]:bg-accent-strong/10 has-[:focus-visible]:outline-2`,children:[(0,$.jsx)(`input`,{type:`radio`,name:`workflow-add-skill`,className:`sr-only`,value:e.name,checked:fe===e.name,onChange:()=>ye(e.name)}),(0,$.jsxs)(`span`,{className:`min-w-0 break-words text-sm`,children:[(0,$.jsx)(`span`,{className:`block`,children:e.name}),(0,$.jsx)(`span`,{className:`mt-2 block text-xs text-muted-foreground`,children:e.description})]})]},e.name)),Re.length===0?(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:W.length===0?`No skills available in this project.`:`No matching skills.`}):null]}),(0,$.jsxs)(`div`,{className:`flex flex-wrap gap-3`,children:[(0,$.jsx)(w,{variant:`outline`,onClick:()=>N(!1),children:`Cancel`}),(0,$.jsx)(w,{variant:`primary`,disabled:!fe||K.length>=8,onClick:()=>{fe&&(qe(fe),N(!1))},children:`Add selected skill`})]}),(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Append the selected skill, then reorder it in the existing canvas.`}),K.length>=8?(0,$.jsxs)(`p`,{role:`status`,className:`text-sm text-muted-foreground`,children:[`A workflow can contain up to `,8,` steps. Remove a step before adding another.`]}):null]})}),(0,$.jsx)(oe,{open:Oe,onOpenChange:e=>!e&&H(!1),children:(0,$.jsxs)(O,{"data-slot":`wb-overwrite-dialog`,className:`sw-workflow-confirm sm:max-w-[660px]`,children:[(0,$.jsxs)(D,{children:[(0,$.jsxs)(A,{children:[`“`,We,`” already exists`]}),(0,$.jsx)(k,{children:`Saving overwrites the existing workflow file. There is no undo.`})]}),(0,$.jsxs)(C,{children:[(0,$.jsx)(ee,{children:`Keep the file`}),(0,$.jsx)(E,{"data-slot":`wb-overwrite-confirm`,className:`bg-danger text-danger-foreground`,onClick:()=>G.mutate(!0),children:`Overwrite`})]})]})}),(0,$.jsx)(oe,{open:ke,onOpenChange:e=>!e&&Ae(!1),children:(0,$.jsxs)(O,{"data-slot":`wb-delete-dialog`,className:`sw-workflow-confirm sm:max-w-[660px]`,children:[(0,$.jsxs)(D,{children:[(0,$.jsxs)(A,{children:[`Delete workflow “`,We,`”?`]}),(0,$.jsxs)(k,{children:[`Removes `,Ge?.path?.split(`/`).pop()??`the saved file`,` from`,` `,(0,$.jsx)(`span`,{className:`font-mono`,children:`.ai/cezar/workflows/`}),`. There is no undo.`]})]}),(0,$.jsxs)(C,{children:[(0,$.jsx)(ee,{children:`Keep the file`}),(0,$.jsx)(E,{"data-slot":`wb-delete-confirm`,className:`bg-danger text-danger-foreground hover:brightness-[0.96]`,onClick:()=>He.mutate(We),children:`Delete workflow`})]})]})})]})}function si({steps:e,skills:t,dragging:n,overId:r,activeStepId:i,onRemove:a,onMove:o}){let{setNodeRef:s,isOver:c}=or({id:ni}),l=n&&r===ni;return(0,$.jsx)(`div`,{ref:s,"data-slot":`wb-steps`,"data-dragging":n||void 0,className:M(`relative mt-4 rounded-lg transition-colors`,c?`border-accent-strong/60 bg-accent-strong/5`:`border-muted-foreground/25`),children:e.length===0?(0,$.jsx)(`p`,{className:M(`rounded-md px-3 py-10 text-center text-[13px] transition-colors`,c?`text-link-foreground`:`text-muted-foreground`),children:`Drop a skill here — or Import a workflow.yaml`}):(0,$.jsxs)(Ar,{items:e.map(e=>e.id),strategy:Er,children:[(0,$.jsx)(`ol`,{className:`flex flex-col gap-4`,children:e.map((s,c)=>(0,$.jsx)(ci,{step:s,index:c,skills:t,dragging:n,insertBefore:n&&r===s.id&&i!==s.id,onRemove:()=>a(c),onMoveUp:c>0?()=>o(c,c-1):void 0,onMoveDown:c<e.length-1?()=>o(c,c+1):void 0},s.id))}),(0,$.jsx)(`div`,{"aria-hidden":`true`,className:M(`absolute inset-x-0 mt-1 h-[3px] rounded-full transition-colors`,l?`bg-accent-strong`:`bg-transparent`)})]})})}function ci({step:e,index:t,skills:n,dragging:r,insertBefore:i,onRemove:a,onMoveUp:o,onMoveDown:s}){let{attributes:c,listeners:l,setNodeRef:u,transform:d,transition:f,isDragging:p}=Rr({id:e.id,data:{type:`step`,step:e}});return(0,$.jsxs)(`li`,{ref:u,style:{transform:G.Transform.toString(d),transition:f},className:M(`relative`,p&&`opacity-40`),children:[i?(0,$.jsx)(`span`,{"aria-hidden":`true`,"data-slot":`wb-drop-line`,className:`pointer-events-none absolute -top-[7px] right-0 left-0 h-[3px] rounded-full bg-accent-strong`}):null,(0,$.jsx)(li,{step:e,index:t,skills:n,onRemove:a,onMoveUp:o,onMoveDown:s,gripProps:{...c,...l}})]})}function li({step:e,index:t,skills:n,onRemove:r,gripProps:i,onMoveUp:a,onMoveDown:o,overlay:c=!1}){let u=n.find(t=>t.name===e.skill),f=!!e.command,p=e.name??e.skill??e.id,m=e.prompt?.trim()===`{{task}}`?void 0:e.prompt?.trim(),h=f?`$ ${e.command}${e.onFail?` — on fail retry from "${e.onFail.retry}" (×${e.onFail.max??2})`:``}`:e.skill?m||u?.description||`Not in this repo or the team skills — the step runs on its plain prompt.`:e.prompt??``,g=e.skill&&!u?`unknown`:null;return(0,$.jsxs)(`div`,{"data-slot":`wb-step`,"data-id":e.id,"data-index":t,className:M(`rounded-lg border border-border bg-background p-4`,c&&`shadow-md`),children:[(0,$.jsxs)(`div`,{"data-slot":`wb-step-heading`,className:`flex min-w-0 items-center gap-2.5`,children:[(0,$.jsx)(`button`,{type:`button`,"data-slot":`wb-step-grip`,"aria-label":`Reorder step ${t+1}: ${p}`,className:`inline-flex size-[26px] shrink-0 cursor-grab items-center justify-center rounded-md text-muted-foreground transition-colors outline-none hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50`,...i,children:(0,$.jsx)(`span`,{className:`rounded bg-accent-strong/10 px-2 py-1 font-mono text-[12px] text-link-foreground`,children:String(t+1).padStart(2,`0`)})}),(0,$.jsx)(`div`,{className:`min-w-0 flex-1 break-words text-sm font-medium [overflow-wrap:anywhere]`,children:p}),g?(0,$.jsx)(`span`,{"data-slot":`wb-step-badge`,className:M(`shrink-0 rounded-full border px-2 py-px font-mono text-[11px]`,g===`unknown`&&`border-danger/35 text-danger`),children:g}):null,r?(0,$.jsxs)(fe,{children:[(0,$.jsx)(de,{asChild:!0,children:(0,$.jsx)(w,{"data-slot":`wb-step-actions`,variant:`ghost`,size:`icon`,className:`size-[26px]`,"aria-label":`Step ${t+1} actions: ${p}`,children:(0,$.jsx)(se,{"aria-hidden":`true`,className:`size-4`})})}),(0,$.jsx)(P,{align:`end`,children:(0,$.jsxs)(N,{"data-slot":`wb-step-remove`,"aria-label":`Remove step ${t+1}: ${p}`,onSelect:r,children:[(0,$.jsx)(d,{"aria-hidden":`true`}),` Remove step`]})})]}):null]}),h?(0,$.jsx)(`div`,{"data-slot":`wb-step-summary`,className:`mt-3 break-words text-xs leading-relaxed text-muted-foreground`,children:h}):null,(0,$.jsx)(`p`,{"data-slot":`wb-step-kind`,className:`mt-3 text-[12px] text-link-foreground`,children:f?`Command step${e.onFail?` · Retry ×${e.onFail.max??2}`:``}`:e.skill?`Skill step`:`Prompt step`}),c?null:(0,$.jsxs)(`div`,{className:`mt-3 flex flex-wrap gap-2 @min-[900px]:hidden`,children:[(0,$.jsxs)(w,{variant:`outline`,size:`sm`,className:`min-h-11`,"aria-label":`Move step ${t+1} up`,disabled:!a,onClick:a,children:[(0,$.jsx)(s,{"aria-hidden":`true`,className:`size-4`}),`Move up`]}),(0,$.jsxs)(w,{variant:`outline`,size:`sm`,className:`min-h-11`,"aria-label":`Move step ${t+1} down`,disabled:!o,onClick:o,children:[(0,$.jsx)(l,{"aria-hidden":`true`,className:`size-4`}),`Move down`]})]})]})}function ui({skills:e,query:t,error:n,inFlow:r,onAdd:i}){if(n!==null)return(0,$.jsxs)(`p`,{"data-slot":`wb-palette`,className:`mt-2.5 text-xs text-danger`,children:[`Could not load skills: `,n]});let a=be(e,t);return(0,$.jsx)(`div`,{"data-slot":`wb-palette`,className:`mt-2.5 flex flex-col gap-1`,children:a.length>0?a.map(e=>(0,$.jsx)(di,{skill:e,inFlow:r.has(e.name),onAdd:i},e.path)):(0,$.jsx)(`p`,{className:`py-1 text-xs leading-relaxed text-soft-foreground`,children:e.length>0?`No skills match.`:(0,$.jsx)(we,{})})})}function di({skill:e,inFlow:t,onAdd:n}){let{attributes:r,listeners:i,setNodeRef:a,isDragging:o}=nr({id:`palette:${e.name}`,data:{type:`palette`,skill:e.name}});return(0,$.jsxs)(`div`,{ref:a,"data-slot":`wb-skill`,"data-skill":e.name,"data-in-flow":t||void 0,title:e.description??``,className:M(`flex min-h-11 cursor-grab items-center gap-2 rounded-md py-1 transition-colors hover:bg-muted`,o&&`opacity-40`),...r,...i,children:[(0,$.jsx)(`span`,{className:M(`min-w-0 flex-1 break-words text-xs`,ye(e)?`font-semibold text-foreground`:`font-medium text-muted-foreground`),children:e.name}),(0,$.jsx)(`button`,{type:`button`,"data-slot":`wb-skill-add`,"aria-label":`Add ${e.name} to the flow`,title:`Add to the flow`,onClick:()=>n(e.name),className:`inline-flex size-11 shrink-0 items-center justify-center rounded-md text-link-foreground transition-colors outline-none hover:text-foreground focus-visible:ring-[3px] focus-visible:ring-ring/50`,children:(0,$.jsx)(u,{"aria-hidden":`true`,className:`size-3.5`})})]})}function fi({yaml:e}){let[t,n]=(0,I.useState)(!1),r=(0,I.useRef)(null);return(0,I.useEffect)(()=>()=>{r.current!==null&&clearTimeout(r.current)},[]),(0,$.jsx)(`button`,{type:`button`,"data-slot":`wb-copy`,title:`Copy the YAML`,onClick:()=>{navigator.clipboard?.writeText(e).catch(()=>{}),n(!0),r.current!==null&&clearTimeout(r.current),r.current=setTimeout(()=>n(!1),1600)},className:`flex items-center gap-1 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground`,children:t?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(y,{"aria-hidden":`true`,className:`size-3 text-success`}),`Copied`]}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(ie,{"aria-hidden":`true`,className:`size-3`}),`Copy`]})})}export{ai as WorkflowsRoute};
|
package/web/dist/index.html
CHANGED
|
@@ -47,33 +47,33 @@
|
|
|
47
47
|
}
|
|
48
48
|
})()
|
|
49
49
|
</script>
|
|
50
|
-
<script type="module" crossorigin src="/assets/index-
|
|
50
|
+
<script type="module" crossorigin src="/assets/index-D-m3edXI.js"></script>
|
|
51
51
|
<link rel="modulepreload" crossorigin href="/assets/rolldown-runtime-QTnfLwEv.js">
|
|
52
52
|
<link rel="modulepreload" crossorigin href="/assets/react-runtime-CCIEwYL0.js">
|
|
53
53
|
<link rel="modulepreload" crossorigin href="/assets/bundle-mjs-BT31bpU6.js">
|
|
54
54
|
<link rel="modulepreload" crossorigin href="/assets/utils-BW1-Ibnd.js">
|
|
55
|
-
<link rel="modulepreload" crossorigin href="/assets/centered-state-
|
|
56
|
-
<link rel="modulepreload" crossorigin href="/assets/dropdown-menu-
|
|
57
|
-
<link rel="modulepreload" crossorigin href="/assets/agent-accounts-
|
|
58
|
-
<link rel="modulepreload" crossorigin href="/assets/textarea-
|
|
55
|
+
<link rel="modulepreload" crossorigin href="/assets/centered-state-kOb8j_BL.js">
|
|
56
|
+
<link rel="modulepreload" crossorigin href="/assets/dropdown-menu-78Ug-7x2.js">
|
|
57
|
+
<link rel="modulepreload" crossorigin href="/assets/agent-accounts-Bh1l3ZSb.js">
|
|
58
|
+
<link rel="modulepreload" crossorigin href="/assets/textarea-D2Gx4GDI.js">
|
|
59
59
|
<link rel="modulepreload" crossorigin href="/assets/createLucideIcon-BHp8sXmF.js">
|
|
60
60
|
<link rel="modulepreload" crossorigin href="/assets/external-link-BE6y205O.js">
|
|
61
61
|
<link rel="modulepreload" crossorigin href="/assets/square-terminal-B6RYYieR.js">
|
|
62
|
-
<link rel="modulepreload" crossorigin href="/assets/pill-
|
|
62
|
+
<link rel="modulepreload" crossorigin href="/assets/pill-0JHCf1v8.js">
|
|
63
63
|
<link rel="modulepreload" crossorigin href="/assets/chevron-right-BENZ-1ZN.js">
|
|
64
|
-
<link rel="modulepreload" crossorigin href="/assets/prompt-templates-
|
|
65
|
-
<link rel="modulepreload" crossorigin href="/assets/project-router-
|
|
64
|
+
<link rel="modulepreload" crossorigin href="/assets/prompt-templates-BgXzCOlY.js">
|
|
65
|
+
<link rel="modulepreload" crossorigin href="/assets/project-router-CS_oeLqi.js">
|
|
66
66
|
<link rel="modulepreload" crossorigin href="/assets/search-x-I9Q8pgUa.js">
|
|
67
67
|
<link rel="modulepreload" crossorigin href="/assets/lib-BxQXEXDF.js">
|
|
68
68
|
<link rel="modulepreload" crossorigin href="/assets/chunk-BO2N2NFS-DE6qKn3r.js">
|
|
69
69
|
<link rel="modulepreload" crossorigin href="/assets/highlighter-CdHqIwFr.js">
|
|
70
|
-
<link rel="modulepreload" crossorigin href="/assets/markdown-
|
|
70
|
+
<link rel="modulepreload" crossorigin href="/assets/markdown-DlvW2wEx.js">
|
|
71
71
|
<link rel="modulepreload" crossorigin href="/assets/skills-DFBiAuJG.js">
|
|
72
72
|
<link rel="modulepreload" crossorigin href="/assets/use-submit-shortcut-KWJsC906.js">
|
|
73
|
-
<link rel="modulepreload" crossorigin href="/assets/thread-loading-
|
|
73
|
+
<link rel="modulepreload" crossorigin href="/assets/thread-loading-hVlcCLdm.js">
|
|
74
74
|
<link rel="modulepreload" crossorigin href="/assets/diff-stat-C3Id3W_C.js">
|
|
75
|
-
<link rel="modulepreload" crossorigin href="/assets/token-metrics-
|
|
76
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
75
|
+
<link rel="modulepreload" crossorigin href="/assets/token-metrics-BQvw6Yoj.js">
|
|
76
|
+
<link rel="stylesheet" crossorigin href="/assets/index-D5NkwqY7.css">
|
|
77
77
|
</head>
|
|
78
78
|
<body>
|
|
79
79
|
<div id="root"></div>
|