@loicngr/kobo 1.2.0 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/server/db/migrations.js +61 -10
- package/dist/server/db/schema.js +1 -0
- package/dist/server/index.js +7 -4
- package/dist/server/routes/workspaces.js +56 -19
- package/dist/server/services/agent-manager.js +77 -3
- package/dist/server/services/pr-watcher-service.js +61 -0
- package/dist/server/services/settings-service.js +41 -22
- package/dist/server/services/workspace-service.js +7 -0
- package/dist/server/utils/git-ops.js +28 -0
- package/package.json +1 -1
- package/src/client/dist/spa/assets/{ActivityFeed-CPfYmybV.js → ActivityFeed-Bie-lcn7.js} +9 -9
- package/src/client/dist/spa/assets/ActivityFeed-D88GOO2z.css +1 -0
- package/src/client/dist/spa/assets/{CreatePage-C_c3Gr0F.js → CreatePage-OC-fnNGP.js} +1 -1
- package/src/client/dist/spa/assets/MainLayout-91cUoVYa.css +1 -0
- package/src/client/dist/spa/assets/MainLayout-BIQNJixM.js +1 -0
- package/src/client/dist/spa/assets/{QBadge-CNojh9Rl.js → QBadge-DbE3eSf1.js} +1 -1
- package/src/client/dist/spa/assets/{QDialog-DgR7t6Vf.js → QDialog-Cd_4PvgW.js} +1 -1
- package/src/client/dist/spa/assets/{QExpansionItem-VVjlYOIT.js → QExpansionItem-pMQDDRMv.js} +1 -1
- package/src/client/dist/spa/assets/{QPage-DX4g-Dpe.js → QPage-lhV4XbI2.js} +1 -1
- package/src/client/dist/spa/assets/{QSpinnerDots-DeCf9Lr-.js → QSpinnerDots-ByNZaBWw.js} +1 -1
- package/src/client/dist/spa/assets/{QTooltip-DKYJ8kVW.js → QTooltip-6GSFtFKP.js} +1 -1
- package/src/client/dist/spa/assets/SettingsPage-BPH70mno.css +1 -0
- package/src/client/dist/spa/assets/SettingsPage-s2WJBreM.js +1 -0
- package/src/client/dist/spa/assets/{WorkspacePage-DkM58caD.css → WorkspacePage-Dhkuuhf8.css} +1 -1
- package/src/client/dist/spa/assets/WorkspacePage-XT26aCJE.js +2 -0
- package/src/client/dist/spa/assets/{_plugin-vue_export-helper-C6NdfBK4.js → _plugin-vue_export-helper-B6FaNy4R.js} +1 -1
- package/src/client/dist/spa/assets/{index-C4WDJfjD.js → index-BoQWbZtE.js} +4 -4
- package/src/client/dist/spa/assets/{nodes-irfhA8FK.js → nodes-CXdiSdC2.js} +1 -1
- package/src/client/dist/spa/assets/{use-checkbox-BS9cbwg_.js → use-checkbox-Z9pfihkw.js} +1 -1
- package/src/client/dist/spa/assets/use-quasar-CtCe3LQU.js +1 -0
- package/src/client/dist/spa/index.html +2 -2
- package/src/client/dist/spa/assets/ActivityFeed-DBljh9rq.css +0 -1
- package/src/client/dist/spa/assets/MainLayout-BMxEROm4.css +0 -1
- package/src/client/dist/spa/assets/MainLayout-QtbVbbnd.js +0 -1
- package/src/client/dist/spa/assets/SettingsPage-DjWKsLC-.js +0 -1
- package/src/client/dist/spa/assets/SettingsPage-Yv31Z9aG.css +0 -1
- package/src/client/dist/spa/assets/WorkspacePage-EAh91w9s.js +0 -2
- package/src/client/dist/spa/assets/use-quasar-CH0pSHUf.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{B as e,C as t,Ct as n,E as r,Et as i,F as a,H as o,I as s,It as c,J as l,K as u,L as d,N as f,Nt as p,Ot as m,Q as h,Rt as g,T as _,V as v,Vt as y,W as b,Wt as x,Z as S,b as C,bt as w,et as T,f as E,kt as D,o as O,q as k,st as A,ut as j,wt as M,x as N,xt as P,y as F,yt as I,z as ee}from"./nodes-irfhA8FK.js";import{l as te,m as ne,u as L}from"./index-C4WDJfjD.js";import{h as R,k as re,m as z}from"./_plugin-vue_export-helper-C6NdfBK4.js";import{C as B,S as V,c as H,u as U,v as ie,y as W}from"./QDialog-DgR7t6Vf.js";var G={left:!0,right:!0,up:!0,down:!0,horizontal:!0,vertical:!0},ae=Object.keys(G);G.all=!0;function K(e){let t={};for(let n of ae)e[n]===!0&&(t[n]=!0);return Object.keys(t).length===0?G:(t.horizontal===!0?t.left=t.right=!0:t.left===!0&&t.right===!0&&(t.horizontal=!0),t.vertical===!0?t.up=t.down=!0:t.up===!0&&t.down===!0&&(t.vertical=!0),t.horizontal===!0&&t.vertical===!0&&(t.all=!0),t)}var q=[`INPUT`,`TEXTAREA`];function J(e,t){return t.event===void 0&&e.target!==void 0&&e.target.draggable!==!0&&typeof t.handler==`function`&&q.includes(e.target.nodeName.toUpperCase())===!1&&(e.qClonedBy===void 0||e.qClonedBy.indexOf(t.uid)===-1)}var oe=0,se=[`click`,`keydown`],Y={icon:String,label:[Number,String],alert:[Boolean,String],alertIcon:String,name:{type:[Number,String],default:()=>`t_${oe++}`},noCaps:Boolean,tabindex:[String,Number],disable:Boolean,contentClass:String,ripple:{type:[Boolean,Object],default:!0}};function ce(e,t,n,r){let o=P(ne,L);if(o===L)return console.error(`QTab/QRouteTab component needs to be child of QTabs`),L;let{proxy:s}=I(),c=y(null),l=y(null),d=y(null),p=j(()=>e.disable===!0||e.ripple===!1?!1:Object.assign({keyCodes:[13,32],early:!0},e.ripple===!0?{}:e.ripple)),m=j(()=>o.currentModel.value===e.name),h=j(()=>`q-tab relative-position self-stretch flex flex-center text-center`+(m.value===!0?` q-tab--active`+(o.tabProps.value.activeClass?` `+o.tabProps.value.activeClass:``)+(o.tabProps.value.activeColor?` text-${o.tabProps.value.activeColor}`:``)+(o.tabProps.value.activeBgColor?` bg-${o.tabProps.value.activeBgColor}`:``):` q-tab--inactive`)+(e.icon&&e.label&&o.tabProps.value.inlineLabel===!1?` q-tab--full`:``)+(e.noCaps===!0||o.tabProps.value.noCaps===!0?` q-tab--no-caps`:``)+(e.disable===!0?` disabled`:` q-focusable q-hoverable cursor-pointer`)+(r===void 0?``:r.linkClass.value)),_=j(()=>`q-tab__content self-stretch flex-center relative-position q-anchor--skip non-selectable `+(o.tabProps.value.inlineLabel===!0?`row no-wrap q-tab__content--inline`:`column`)+(e.contentClass===void 0?``:` ${e.contentClass}`)),v=j(()=>e.disable===!0||o.hasFocus.value===!0||m.value===!1&&o.hasActiveTab.value===!0?-1:e.tabindex||0);function b(t,i){if(i!==!0&&t?.qAvoidFocus!==!0&&c.value?.focus(),e.disable===!0){r?.hasRouterLink.value===!0&&u(t);return}if(r===void 0){o.updateModel({name:e.name}),n(`click`,t);return}if(r.hasRouterLink.value===!0){let i=(n={})=>{let i,a=n.to===void 0||te(n.to,e.to)===!0?o.avoidRouteWatcher=W():null;return r.navigateToRouterLink(t,{...n,returnRouterError:!0}).catch(e=>{i=e}).then(t=>{if(a===o.avoidRouteWatcher&&(o.avoidRouteWatcher=!1,i===void 0&&(t===void 0||t.message?.startsWith(`Avoided redundant navigation`)===!0)&&o.updateModel({name:e.name})),n.returnRouterError===!0)return i===void 0?t:Promise.reject(i)})};n(`click`,t,i),t.defaultPrevented!==!0&&i();return}n(`click`,t)}function x(e){f(e,[13,32])?b(e,!0):a(e)!==!0&&e.keyCode>=35&&e.keyCode<=40&&e.altKey!==!0&&e.metaKey!==!0&&o.onKbdNavigate(e.keyCode,s.$el)===!0&&u(e),n(`keydown`,e)}function S(){let n=o.tabProps.value.narrowIndicator,r=[],i=w(`div`,{ref:d,class:[`q-tab__indicator`,o.tabProps.value.indicatorClass]});e.icon!==void 0&&r.push(w(F,{class:`q-tab__icon`,name:e.icon})),e.label!==void 0&&r.push(w(`div`,{class:`q-tab__label`},e.label)),e.alert!==!1&&r.push(e.alertIcon===void 0?w(`div`,{class:`q-tab__alert`+(e.alert===!0?``:` text-${e.alert}`)}):w(F,{class:`q-tab__alert-icon`,color:e.alert===!0?void 0:e.alert,name:e.alertIcon})),n===!0&&r.push(i);let a=[w(`div`,{class:`q-focus-helper`,tabindex:-1,ref:c}),w(`div`,{class:_.value},N(t.default,r))];return n===!1&&a.push(i),a}let C={name:j(()=>e.name),rootRef:l,tabIndicatorRef:d,routeData:r};i(()=>{o.unregisterTab(C)}),D(()=>{o.registerTab(C)});function T(t,n){return g(w(t,{ref:l,class:h.value,tabindex:v.value,role:`tab`,"aria-selected":m.value===!0?`true`:`false`,"aria-disabled":e.disable===!0?`true`:void 0,onClick:b,onKeydown:x,...n},S()),[[E,p.value]])}return{renderTab:T,$tabs:o}}var le=k({name:`QTab`,props:Y,emits:se,setup(e,{slots:t,emit:n}){let{renderTab:r}=ce(e,t,n);return()=>r(`div`)}});function ue(){let e=y(!h.value);return e.value===!1&&D(()=>{e.value=!0}),{isHydrated:e}}var X=typeof ResizeObserver<`u`,de=X===!0?{}:{style:`display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;`,url:`about:blank`},fe=k({name:`QResizeObserver`,props:{debounce:{type:[String,Number],default:100}},emits:[`resize`],setup(t,{emit:r}){let a=null,o,s={width:-1,height:-1};function c(e){e===!0||t.debounce===0||t.debounce===`0`?l():a===null&&(a=setTimeout(l,t.debounce))}function l(){if(a!==null&&(clearTimeout(a),a=null),o){let{offsetWidth:e,offsetHeight:t}=o;(e!==s.width||t!==s.height)&&(s={width:e,height:t},r(`resize`,s))}}let{proxy:u}=I();if(u.trigger=c,X===!0){let e,t=r=>{o=u.$el.parentNode,o?(e=new ResizeObserver(c),e.observe(o),l()):r!==!0&&n(()=>{t(!0)})};return D(()=>{t()}),i(()=>{a!==null&&clearTimeout(a),e!==void 0&&(e.disconnect===void 0?o&&e.unobserve(o):e.disconnect())}),v}else{let{isHydrated:t}=ue(),r;function s(){a!==null&&(clearTimeout(a),a=null),r!==void 0&&(r.removeEventListener!==void 0&&r.removeEventListener(`resize`,c,e.passive),r=void 0)}function d(){s(),o?.contentDocument&&(r=o.contentDocument.defaultView,r.addEventListener(`resize`,c,e.passive),l())}return D(()=>{n(()=>{o=u.$el,o&&d()})}),i(s),()=>{if(t.value===!0)return w(`object`,{class:`q--avoid-card-border`,style:de.style,tabindex:-1,type:`text/html`,data:de.url,"aria-hidden":`true`,onLoad:d})}}}});function pe(e,t,n){let r=n===!0?[`left`,`right`]:[`top`,`bottom`];return`absolute-${t===!0?r[0]:r[1]}${e?` text-${e}`:``}`}var me=[`left`,`center`,`right`,`justify`],he=k({name:`QTabs`,props:{modelValue:[Number,String],align:{type:String,default:`center`,validator:e=>me.includes(e)},breakpoint:{type:[String,Number],default:600},vertical:Boolean,shrink:Boolean,stretch:Boolean,activeClass:String,activeColor:String,activeBgColor:String,indicatorColor:String,leftIcon:String,rightIcon:String,outsideArrows:Boolean,mobileArrows:Boolean,switchIndicator:Boolean,narrowIndicator:Boolean,inlineLabel:Boolean,noCaps:Boolean,dense:Boolean,contentClass:String,"onUpdate:modelValue":[Function,Array]},setup(e,{slots:n,emit:r}){let{proxy:a}=I(),{$q:o}=a,{registerTick:s}=R(),{registerTick:l}=R(),{registerTick:u}=R(),{registerTimeout:d,removeTimeout:f}=z(),{registerTimeout:h,removeTimeout:g}=z(),_=y(null),v=y(null),b=y(e.modelValue),x=y(!1),S=y(!0),C=y(!1),T=y(!1),E=[],D=y(0),O=y(!1),k=null,A=null,N,P=j(()=>({activeClass:e.activeClass,activeColor:e.activeColor,activeBgColor:e.activeBgColor,indicatorClass:pe(e.indicatorColor,e.switchIndicator,e.vertical),narrowIndicator:e.narrowIndicator,inlineLabel:e.inlineLabel,noCaps:e.noCaps})),ee=j(()=>{let e=D.value,t=b.value;for(let n=0;n<e;n++)if(E[n].name.value===t)return!0;return!1}),te=j(()=>`q-tabs__content--align-${x.value===!0?`left`:T.value===!0?`justify`:e.align}`),L=j(()=>`q-tabs row no-wrap items-center q-tabs--${x.value===!0?``:`not-`}scrollable q-tabs--${e.vertical===!0?`vertical`:`horizontal`} q-tabs__arrows--${e.outsideArrows===!0?`outside`:`inside`} q-tabs--mobile-with${e.mobileArrows===!0?``:`out`}-arrows`+(e.dense===!0?` q-tabs--dense`:``)+(e.shrink===!0?` col-shrink`:``)+(e.stretch===!0?` self-stretch`:``)),re=j(()=>`q-tabs__content scroll--mobile row no-wrap items-center self-stretch hide-scrollbar relative-position `+te.value+(e.contentClass===void 0?``:` ${e.contentClass}`)),B=j(()=>e.vertical===!0?{container:`height`,content:`offsetHeight`,scroll:`scrollHeight`}:{container:`width`,content:`offsetWidth`,scroll:`scrollWidth`}),V=j(()=>e.vertical!==!0&&o.lang.rtl===!0),H=j(()=>ie===!1&&V.value===!0);c(V,q),c(()=>e.modelValue,e=>{U({name:e,setCurrent:!0,skipEmit:!0})}),c(()=>e.outsideArrows,W);function U({name:t,setCurrent:n,skipEmit:i}){b.value!==t&&(i!==!0&&e[`onUpdate:modelValue`]!==void 0&&r(`update:modelValue`,t),(n===!0||e[`onUpdate:modelValue`]===void 0)&&(ae(b.value,t),b.value=t))}function W(){s(()=>{_.value&&G({width:_.value.offsetWidth,height:_.value.offsetHeight})})}function G(t){if(B.value===void 0||v.value===null)return;let n=t[B.value.container],r=Math.min(v.value[B.value.scroll],Array.prototype.reduce.call(v.value.children,(e,t)=>e+(t[B.value.content]||0),0)),i=n>0&&r>n;x.value=i,i===!0&&l(q),T.value=n<parseInt(e.breakpoint,10)}function ae(t,n){let r=t!=null&&t!==``?E.find(e=>e.name.value===t):null,i=n!=null&&n!==``?E.find(e=>e.name.value===n):null;if($===!0)$=!1;else if(r&&i){let t=r.tabIndicatorRef.value,n=i.tabIndicatorRef.value;k!==null&&(clearTimeout(k),k=null),t.style.transition=`none`,t.style.transform=`none`,n.style.transition=`none`,n.style.transform=`none`;let a=t.getBoundingClientRect(),o=n.getBoundingClientRect();n.style.transform=e.vertical===!0?`translate3d(0,${a.top-o.top}px,0) scale3d(1,${o.height?a.height/o.height:1},1)`:`translate3d(${a.left-o.left}px,0,0) scale3d(${o.width?a.width/o.width:1},1,1)`,u(()=>{k=setTimeout(()=>{k=null,n.style.transition=`transform .25s cubic-bezier(.4, 0, .2, 1)`,n.style.transform=`none`},70)})}i&&x.value===!0&&K(i.rootRef.value)}function K(t){let{left:n,width:r,top:i,height:a}=v.value.getBoundingClientRect(),o=t.getBoundingClientRect(),s=e.vertical===!0?o.top-i:o.left-n;if(s<0){v.value[e.vertical===!0?`scrollTop`:`scrollLeft`]+=Math.floor(s),q();return}s+=e.vertical===!0?o.height-a:o.width-r,s>0&&(v.value[e.vertical===!0?`scrollTop`:`scrollLeft`]+=Math.ceil(s),q())}function q(){let t=v.value;if(t===null)return;let n=t.getBoundingClientRect(),r=e.vertical===!0?t.scrollTop:Math.abs(t.scrollLeft);V.value===!0?(S.value=Math.ceil(r+n.width)<t.scrollWidth-1,C.value=r>0):(S.value=r>0,C.value=e.vertical===!0?Math.ceil(r+n.height)<t.scrollHeight:Math.ceil(r+n.width)<t.scrollWidth)}function J(e){A!==null&&clearInterval(A),A=setInterval(()=>{ue(e)===!0&&Y()},5)}function oe(){J(H.value===!0?2**53-1:0)}function se(){J(H.value===!0?0:2**53-1)}function Y(){A!==null&&(clearInterval(A),A=null)}function ce(t,n){let r=Array.prototype.filter.call(v.value.children,e=>e===n||e.matches&&e.matches(`.q-tab.q-focusable`)===!0),i=r.length;if(i===0)return;if(t===36)return K(r[0]),r[0].focus(),!0;if(t===35)return K(r[i-1]),r[i-1].focus(),!0;let a=t===(e.vertical===!0?38:37),o=t===(e.vertical===!0?40:39),s=a===!0?-1:o===!0?1:void 0;if(s!==void 0){let e=V.value===!0?-1:1,t=r.indexOf(n)+s*e;return t>=0&&t<i&&(K(r[t]),r[t].focus({preventScroll:!0})),!0}}let le=j(()=>H.value===!0?{get:e=>Math.abs(e.scrollLeft),set:(e,t)=>{e.scrollLeft=-t}}:e.vertical===!0?{get:e=>e.scrollTop,set:(e,t)=>{e.scrollTop=t}}:{get:e=>e.scrollLeft,set:(e,t)=>{e.scrollLeft=t}});function ue(e){let t=v.value,{get:n,set:r}=le.value,i=!1,a=n(t),o=e<a?-1:1;return a+=o*5,a<0?(i=!0,a=0):(o===-1&&a<=e||o===1&&a>=e)&&(i=!0,a=e),r(t,a),q(),i}function X(e,t){for(let n in e)if(e[n]!==t[n])return!1;return!0}function de(){let e=null,t={matchedLen:0,queryDiff:9999,hrefLen:0},n=E.filter(e=>e.routeData?.hasRouterLink.value===!0),{hash:r,query:i}=a.$route,o=Object.keys(i).length;for(let a of n){let n=a.routeData.exact.value===!0;if(a.routeData[n===!0?`linkIsExactActive`:`linkIsActive`].value!==!0)continue;let{hash:s,query:c,matched:l,href:u}=a.routeData.resolvedLink.value,d=Object.keys(c).length;if(n===!0){if(s!==r||d!==o||X(i,c)===!1)continue;e=a.name.value;break}if(s!==``&&s!==r||d!==0&&X(c,i)===!1)continue;let f={matchedLen:l.length,queryDiff:o-d,hrefLen:u.length-s.length};if(f.matchedLen>t.matchedLen){e=a.name.value,t=f;continue}else if(f.matchedLen!==t.matchedLen)continue;if(f.queryDiff<t.queryDiff)e=a.name.value,t=f;else if(f.queryDiff!==t.queryDiff)continue;f.hrefLen>t.hrefLen&&(e=a.name.value,t=f)}if(e===null&&E.some(e=>e.routeData===void 0&&e.name.value===b.value)===!0){$=!1;return}U({name:e,setCurrent:!0})}function me(e){if(f(),O.value!==!0&&_.value!==null&&e.target&&typeof e.target.closest==`function`){let t=e.target.closest(`.q-tab`);t&&_.value.contains(t)===!0&&(O.value=!0,x.value===!0&&K(t))}}function he(){d(()=>{O.value=!1},30)}function Z(){Q.avoidRouteWatcher===!1?h(de):g()}function ge(){if(N===void 0){let e=c(()=>a.$route.fullPath,Z);N=()=>{e(),N=void 0}}}function _e(e){E.push(e),D.value++,W(),e.routeData===void 0||a.$route===void 0?h(()=>{if(x.value===!0){let e=b.value,t=e!=null&&e!==``?E.find(t=>t.name.value===e):null;t&&K(t.rootRef.value)}}):(ge(),e.routeData.hasRouterLink.value===!0&&Z())}function ve(e){E.splice(E.indexOf(e),1),D.value--,W(),N!==void 0&&e.routeData!==void 0&&(E.every(e=>e.routeData===void 0)===!0&&N(),Z())}let Q={currentModel:b,tabProps:P,hasFocus:O,hasActiveTab:ee,registerTab:_e,unregisterTab:ve,verifyRouteModel:Z,updateModel:U,onKbdNavigate:ce,avoidRouteWatcher:!1};p(ne,Q);function ye(){k!==null&&clearTimeout(k),Y(),N?.()}let be,$;return i(ye),m(()=>{be=N!==void 0,ye()}),M(()=>{be===!0&&(ge(),$=!0,Z()),W()}),()=>w(`div`,{ref:_,class:L.value,role:`tablist`,onFocusin:me,onFocusout:he},[w(fe,{onResize:G}),w(`div`,{ref:v,class:re.value,onScroll:q},t(n.default)),w(F,{class:`q-tabs__arrow q-tabs__arrow--left absolute q-tab__icon`+(S.value===!0?``:` q-tabs__arrow--faded`),name:e.leftIcon||o.iconSet.tabs[e.vertical===!0?`up`:`left`],onMousedownPassive:oe,onTouchstartPassive:oe,onMouseupPassive:Y,onMouseleavePassive:Y,onTouchendPassive:Y}),w(F,{class:`q-tabs__arrow q-tabs__arrow--right absolute q-tab__icon`+(C.value===!0?``:` q-tabs__arrow--faded`),name:e.rightIcon||o.iconSet.tabs[e.vertical===!0?`down`:`right`],onMousedownPassive:se,onTouchstartPassive:se,onMouseupPassive:Y,onMouseleavePassive:Y,onTouchendPassive:Y})])}});function Z(e){let t=[.06,6,50];return typeof e==`string`&&e.length&&e.split(`:`).forEach((e,n)=>{let r=parseFloat(e);r&&(t[n]=r)}),t}var ge=l({name:`touch-swipe`,beforeMount(e,{value:t,arg:n,modifiers:r}){if(r.mouse!==!0&&S.has.touch!==!0)return;let i=r.mouseCapture===!0?`Capture`:``,a={handler:t,sensitivity:Z(n),direction:K(r),noop:v,mouseStart(e){J(e,a)&&ee(e)&&(s(a,`temp`,[[document,`mousemove`,`move`,`notPassive${i}`],[document,`mouseup`,`end`,`notPassiveCapture`]]),a.start(e,!0))},touchStart(e){if(J(e,a)){let t=e.target;s(a,`temp`,[[t,`touchmove`,`move`,`notPassiveCapture`],[t,`touchcancel`,`end`,`notPassiveCapture`],[t,`touchend`,`end`,`notPassiveCapture`]]),a.start(e)}},start(t,n){S.is.firefox===!0&&b(e,!0);let r=o(t);a.event={x:r.left,y:r.top,time:Date.now(),mouse:n===!0,dir:!1}},move(e){if(a.event===void 0)return;if(a.event.dir!==!1){u(e);return}let t=Date.now()-a.event.time;if(t===0)return;let n=o(e),r=n.left-a.event.x,i=Math.abs(r),s=n.top-a.event.y,c=Math.abs(s);if(a.event.mouse!==!0){if(i<a.sensitivity[1]&&c<a.sensitivity[1]){a.end(e);return}}else if(window.getSelection().toString()!==``){a.end(e);return}else if(i<a.sensitivity[2]&&c<a.sensitivity[2])return;let l=i/t,d=c/t;a.direction.vertical===!0&&i<c&&i<100&&d>a.sensitivity[0]&&(a.event.dir=s<0?`up`:`down`),a.direction.horizontal===!0&&i>c&&c<100&&l>a.sensitivity[0]&&(a.event.dir=r<0?`left`:`right`),a.direction.up===!0&&i<c&&s<0&&i<100&&d>a.sensitivity[0]&&(a.event.dir=`up`),a.direction.down===!0&&i<c&&s>0&&i<100&&d>a.sensitivity[0]&&(a.event.dir=`down`),a.direction.left===!0&&i>c&&r<0&&c<100&&l>a.sensitivity[0]&&(a.event.dir=`left`),a.direction.right===!0&&i>c&&r>0&&c<100&&l>a.sensitivity[0]&&(a.event.dir=`right`),a.event.dir===!1?a.end(e):(u(e),a.event.mouse===!0&&(document.body.classList.add(`no-pointer-events--children`),document.body.classList.add(`non-selectable`),re(),a.styleCleanup=e=>{a.styleCleanup=void 0,document.body.classList.remove(`non-selectable`);let t=()=>{document.body.classList.remove(`no-pointer-events--children`)};e===!0?setTimeout(t,50):t()}),a.handler({evt:e,touch:a.event.mouse!==!0,mouse:a.event.mouse,direction:a.event.dir,duration:t,distance:{x:i,y:c}}))},end(t){a.event!==void 0&&(d(a,`temp`),S.is.firefox===!0&&b(e,!1),a.styleCleanup?.(!0),t!==void 0&&a.event.dir!==!1&&u(t),a.event=void 0)}};e.__qtouchswipe=a,r.mouse===!0&&s(a,`main`,[[e,`mousedown`,`mouseStart`,`passive${r.mouseCapture===!0||r.mousecapture===!0?`Capture`:``}`]]),S.has.touch===!0&&s(a,`main`,[[e,`touchstart`,`touchStart`,`passive${r.capture===!0?`Capture`:``}`],[e,`touchmove`,`noop`,`notPassiveCapture`]])},updated(e,t){let n=e.__qtouchswipe;n!==void 0&&(t.oldValue!==t.value&&(typeof t.value!=`function`&&n.end(),n.handler=t.value),n.direction=K(t.modifiers))},beforeUnmount(e){let t=e.__qtouchswipe;t!==void 0&&(d(t,`main`),d(t,`temp`),S.is.firefox===!0&&b(e,!1),t.styleCleanup?.(),delete e.__qtouchswipe)}});function _e(){let e=Object.create(null);return{getCache:(t,n)=>e[t]===void 0?e[t]=typeof n==`function`?n():n:e[t],setCache(t,n){e[t]=n},hasCache(t){return Object.hasOwnProperty.call(e,t)},clearCache(t){t===void 0?e=Object.create(null):delete e[t]}}}var ve={name:{required:!0},disable:Boolean},Q={setup(e,{slots:n}){return()=>w(`div`,{class:`q-panel scroll`,role:`tabpanel`},t(n.default))}},ye={modelValue:{required:!0},animated:Boolean,infinite:Boolean,swipeable:Boolean,vertical:Boolean,transitionPrev:String,transitionNext:String,transitionDuration:{type:[String,Number],default:300},keepAlive:Boolean,keepAliveInclude:[String,Array,RegExp],keepAliveExclude:[String,Array,RegExp],keepAliveMax:Number},be=[`update:modelValue`,`beforeTransition`,`transition`];function $(){let{props:e,emit:n,proxy:r}=I(),{getCache:i}=_e(),{registerTimeout:a}=z(),o,s,l=y(null),u={value:null};function d(t){let n=e.vertical===!0?`up`:`left`;M((r.$q.lang.rtl===!0?-1:1)*(t.direction===n?1:-1))}let f=j(()=>[[ge,d,void 0,{horizontal:e.vertical!==!0,vertical:e.vertical,mouse:!0}]]),p=j(()=>e.transitionPrev||`slide-${e.vertical===!0?`down`:`right`}`),m=j(()=>e.transitionNext||`slide-${e.vertical===!0?`up`:`left`}`),h=j(()=>`--q-transition-duration: ${e.transitionDuration}ms`),g=j(()=>typeof e.modelValue==`string`||typeof e.modelValue==`number`?e.modelValue:String(e.modelValue)),_=j(()=>({include:e.keepAliveInclude,exclude:e.keepAliveExclude,max:e.keepAliveMax})),v=j(()=>e.keepAliveInclude!==void 0||e.keepAliveExclude!==void 0);c(()=>e.modelValue,(t,r)=>{let i=C(t)===!0?E(t):-1;s!==!0&&k(i===-1?0:i<E(r)?-1:1),u.value!==i&&(u.value=i,n(`beforeTransition`,t,r),a(()=>{n(`transition`,t,r)},e.transitionDuration))});function b(){M(1)}function x(){M(-1)}function S(e){n(`update:modelValue`,e)}function C(e){return e!=null&&e!==``}function E(e){return o.findIndex(t=>t.props.name===e&&t.props.disable!==``&&t.props.disable!==!0)}function D(){return o.filter(e=>e.props.disable!==``&&e.props.disable!==!0)}function k(t){let n=t!==0&&e.animated===!0&&u.value!==-1?`q-transition--`+(t===-1?p.value:m.value):null;l.value!==n&&(l.value=n)}function M(t,r=u.value){let i=r+t;for(;i!==-1&&i<o.length;){let e=o[i];if(e!==void 0&&e.props.disable!==``&&e.props.disable!==!0){k(t),s=!0,n(`update:modelValue`,e.props.name),setTimeout(()=>{s=!1});return}i+=t}e.infinite===!0&&o.length!==0&&r!==-1&&r!==o.length&&M(t,t===-1?o.length:-1)}function N(){let t=E(e.modelValue);return u.value!==t&&(u.value=t),!0}function P(){let t=C(e.modelValue)===!0&&N()&&o[u.value];return e.keepAlive===!0?[w(A,_.value,[w(v.value===!0?i(g.value,()=>({...Q,name:g.value})):Q,{key:g.value,style:h.value},()=>t)])]:[w(`div`,{class:`q-panel scroll`,style:h.value,key:g.value,role:`tabpanel`},[t])]}function F(){if(o.length!==0)return e.animated===!0?[w(T,{name:l.value},P)]:P()}function ee(e){return o=O(t(e.default,[])).filter(e=>e.props!==null&&e.props.slot===void 0&&C(e.props.name)===!0),o.length}function te(){return o}return Object.assign(r,{next:b,previous:x,goTo:S}),{panelIndex:u,panelDirectives:f,updatePanelsList:ee,updatePanelIndex:N,getPanelContent:F,getEnabledPanels:D,getPanels:te,isValidPanelName:C,keepAliveProps:_,needsUniqueKeepAliveWrapper:v,goToPanelByOffset:M,goToPanel:S,nextPanel:b,previousPanel:x}}var xe=k({name:`QTabPanel`,props:ve,setup(e,{slots:n}){return()=>w(`div`,{class:`q-tab-panel`,role:`tabpanel`},t(n.default))}}),Se=k({name:`QTabPanels`,props:{...ye,...B},emits:be,setup(e,{slots:t}){let n=V(e,I().proxy.$q),{updatePanelsList:r,getPanelContent:i,panelDirectives:a}=$(),o=j(()=>`q-tab-panels q-panel-parent`+(n.value===!0?` q-tab-panels--dark q-dark`:``));return()=>(r(t),C(`div`,{class:o.value},i(),`pan`,e.swipeable,()=>a.value))}});function Ce(e,t){let n=y(null),r=j(()=>e.disable===!0?null:w(`span`,{ref:n,class:`no-outline`,tabindex:-1}));function i(e){let r=t.value;e?.qAvoidFocus!==!0&&(e?.type.indexOf(`key`)===0?document.activeElement!==r&&r?.contains(document.activeElement)===!0&&r.focus():n.value!==null&&(e===void 0||r?.contains(e.target)===!0)&&n.value.focus())}return{refocusTargetEl:r,refocusTarget:i}}var we={xs:30,sm:35,md:40,lg:50,xl:60},Te={...B,...r,...U,modelValue:{required:!0,default:null},val:{},trueValue:{default:!0},falseValue:{default:!1},indeterminateValue:{default:null},checkedIcon:String,uncheckedIcon:String,indeterminateIcon:String,toggleOrder:{type:String,validator:e=>e===`tf`||e===`ft`},toggleIndeterminate:Boolean,label:String,leftLabel:Boolean,color:String,keepColor:Boolean,dense:Boolean,disable:Boolean,tabindex:[String,Number]},Ee=[`update:modelValue`];function De(e,n){let{props:r,slots:i,emit:a,proxy:o}=I(),{$q:s}=o,c=V(r,s),l=y(null),{refocusTargetEl:d,refocusTarget:f}=Ce(r,l),p=_(r,we),m=j(()=>r.val!==void 0&&Array.isArray(r.modelValue)),h=j(()=>{let e=x(r.val);return m.value===!0?r.modelValue.findIndex(t=>x(t)===e):-1}),g=j(()=>m.value===!0?h.value!==-1:x(r.modelValue)===x(r.trueValue)),v=j(()=>m.value===!0?h.value===-1:x(r.modelValue)===x(r.falseValue)),b=j(()=>g.value===!1&&v.value===!1),S=j(()=>r.disable===!0?-1:r.tabindex||0),C=j(()=>`q-${e} cursor-pointer no-outline row inline no-wrap items-center`+(r.disable===!0?` disabled`:``)+(c.value===!0?` q-${e}--dark`:``)+(r.dense===!0?` q-${e}--dense`:``)+(r.leftLabel===!0?` reverse`:``)),T=j(()=>`q-${e}__inner relative-position non-selectable q-${e}__inner--${g.value===!0?`truthy`:v.value===!0?`falsy`:`indet`}${r.color!==void 0&&(r.keepColor===!0||(e===`toggle`?g.value===!0:v.value!==!0))?` text-${r.color}`:``}`),E=H(j(()=>{let e={type:`checkbox`};return r.name!==void 0&&Object.assign(e,{".checked":g.value,"^checked":g.value===!0?`checked`:void 0,name:r.name,value:m.value===!0?r.val:r.trueValue}),e})),D=j(()=>{let t={tabindex:S.value,role:e===`toggle`?`switch`:`checkbox`,"aria-label":r.label,"aria-checked":b.value===!0?`mixed`:g.value===!0?`true`:`false`};return r.disable===!0&&(t[`aria-disabled`]=`true`),t});function O(e){e!==void 0&&(u(e),f(e)),r.disable!==!0&&a(`update:modelValue`,k(),e)}function k(){if(m.value===!0){if(g.value===!0){let e=r.modelValue.slice();return e.splice(h.value,1),e}return r.modelValue.concat([r.val])}if(g.value===!0){if(r.toggleOrder!==`ft`||r.toggleIndeterminate===!1)return r.falseValue}else if(v.value===!0){if(r.toggleOrder===`ft`||r.toggleIndeterminate===!1)return r.trueValue}else return r.toggleOrder===`ft`?r.falseValue:r.trueValue;return r.indeterminateValue}function A(e){(e.keyCode===13||e.keyCode===32)&&u(e)}function M(e){(e.keyCode===13||e.keyCode===32)&&O(e)}let P=n(g,b);return Object.assign(o,{toggle:O}),()=>{let n=P();r.disable!==!0&&E(n,`unshift`,` q-${e}__native absolute q-ma-none q-pa-none`);let a=[w(`div`,{class:T.value,style:p.value,"aria-hidden":`true`},n)];d.value!==null&&a.push(d.value);let o=r.label===void 0?t(i.default):N(i.default,[r.label]);return o!==void 0&&a.push(w(`div`,{class:`q-${e}__label q-anchor--skip`},o)),w(`div`,{ref:l,class:C.value,...D.value,onClick:O,onKeydown:A,onKeyup:M},a)}}export{xe as a,le as c,Se as i,K as l,Ee as n,he as o,Te as r,fe as s,De as t,J as u};
|
|
1
|
+
import{B as e,C as t,Ct as n,E as r,Et as i,F as a,H as o,I as s,It as c,J as l,K as u,L as d,N as f,Nt as p,Ot as m,Q as h,Rt as g,T as _,V as v,Vt as y,W as b,Wt as x,Z as S,b as C,bt as w,et as T,f as E,kt as D,o as O,q as k,st as A,ut as j,wt as M,x as N,xt as P,y as F,yt as I,z as ee}from"./nodes-CXdiSdC2.js";import{l as te,m as ne,u as L}from"./index-BoQWbZtE.js";import{h as R,k as re,m as z}from"./_plugin-vue_export-helper-B6FaNy4R.js";import{C as B,S as V,c as H,u as U,v as ie,y as W}from"./QDialog-Cd_4PvgW.js";var G={left:!0,right:!0,up:!0,down:!0,horizontal:!0,vertical:!0},ae=Object.keys(G);G.all=!0;function K(e){let t={};for(let n of ae)e[n]===!0&&(t[n]=!0);return Object.keys(t).length===0?G:(t.horizontal===!0?t.left=t.right=!0:t.left===!0&&t.right===!0&&(t.horizontal=!0),t.vertical===!0?t.up=t.down=!0:t.up===!0&&t.down===!0&&(t.vertical=!0),t.horizontal===!0&&t.vertical===!0&&(t.all=!0),t)}var q=[`INPUT`,`TEXTAREA`];function J(e,t){return t.event===void 0&&e.target!==void 0&&e.target.draggable!==!0&&typeof t.handler==`function`&&q.includes(e.target.nodeName.toUpperCase())===!1&&(e.qClonedBy===void 0||e.qClonedBy.indexOf(t.uid)===-1)}var oe=0,se=[`click`,`keydown`],Y={icon:String,label:[Number,String],alert:[Boolean,String],alertIcon:String,name:{type:[Number,String],default:()=>`t_${oe++}`},noCaps:Boolean,tabindex:[String,Number],disable:Boolean,contentClass:String,ripple:{type:[Boolean,Object],default:!0}};function ce(e,t,n,r){let o=P(ne,L);if(o===L)return console.error(`QTab/QRouteTab component needs to be child of QTabs`),L;let{proxy:s}=I(),c=y(null),l=y(null),d=y(null),p=j(()=>e.disable===!0||e.ripple===!1?!1:Object.assign({keyCodes:[13,32],early:!0},e.ripple===!0?{}:e.ripple)),m=j(()=>o.currentModel.value===e.name),h=j(()=>`q-tab relative-position self-stretch flex flex-center text-center`+(m.value===!0?` q-tab--active`+(o.tabProps.value.activeClass?` `+o.tabProps.value.activeClass:``)+(o.tabProps.value.activeColor?` text-${o.tabProps.value.activeColor}`:``)+(o.tabProps.value.activeBgColor?` bg-${o.tabProps.value.activeBgColor}`:``):` q-tab--inactive`)+(e.icon&&e.label&&o.tabProps.value.inlineLabel===!1?` q-tab--full`:``)+(e.noCaps===!0||o.tabProps.value.noCaps===!0?` q-tab--no-caps`:``)+(e.disable===!0?` disabled`:` q-focusable q-hoverable cursor-pointer`)+(r===void 0?``:r.linkClass.value)),_=j(()=>`q-tab__content self-stretch flex-center relative-position q-anchor--skip non-selectable `+(o.tabProps.value.inlineLabel===!0?`row no-wrap q-tab__content--inline`:`column`)+(e.contentClass===void 0?``:` ${e.contentClass}`)),v=j(()=>e.disable===!0||o.hasFocus.value===!0||m.value===!1&&o.hasActiveTab.value===!0?-1:e.tabindex||0);function b(t,i){if(i!==!0&&t?.qAvoidFocus!==!0&&c.value?.focus(),e.disable===!0){r?.hasRouterLink.value===!0&&u(t);return}if(r===void 0){o.updateModel({name:e.name}),n(`click`,t);return}if(r.hasRouterLink.value===!0){let i=(n={})=>{let i,a=n.to===void 0||te(n.to,e.to)===!0?o.avoidRouteWatcher=W():null;return r.navigateToRouterLink(t,{...n,returnRouterError:!0}).catch(e=>{i=e}).then(t=>{if(a===o.avoidRouteWatcher&&(o.avoidRouteWatcher=!1,i===void 0&&(t===void 0||t.message?.startsWith(`Avoided redundant navigation`)===!0)&&o.updateModel({name:e.name})),n.returnRouterError===!0)return i===void 0?t:Promise.reject(i)})};n(`click`,t,i),t.defaultPrevented!==!0&&i();return}n(`click`,t)}function x(e){f(e,[13,32])?b(e,!0):a(e)!==!0&&e.keyCode>=35&&e.keyCode<=40&&e.altKey!==!0&&e.metaKey!==!0&&o.onKbdNavigate(e.keyCode,s.$el)===!0&&u(e),n(`keydown`,e)}function S(){let n=o.tabProps.value.narrowIndicator,r=[],i=w(`div`,{ref:d,class:[`q-tab__indicator`,o.tabProps.value.indicatorClass]});e.icon!==void 0&&r.push(w(F,{class:`q-tab__icon`,name:e.icon})),e.label!==void 0&&r.push(w(`div`,{class:`q-tab__label`},e.label)),e.alert!==!1&&r.push(e.alertIcon===void 0?w(`div`,{class:`q-tab__alert`+(e.alert===!0?``:` text-${e.alert}`)}):w(F,{class:`q-tab__alert-icon`,color:e.alert===!0?void 0:e.alert,name:e.alertIcon})),n===!0&&r.push(i);let a=[w(`div`,{class:`q-focus-helper`,tabindex:-1,ref:c}),w(`div`,{class:_.value},N(t.default,r))];return n===!1&&a.push(i),a}let C={name:j(()=>e.name),rootRef:l,tabIndicatorRef:d,routeData:r};i(()=>{o.unregisterTab(C)}),D(()=>{o.registerTab(C)});function T(t,n){return g(w(t,{ref:l,class:h.value,tabindex:v.value,role:`tab`,"aria-selected":m.value===!0?`true`:`false`,"aria-disabled":e.disable===!0?`true`:void 0,onClick:b,onKeydown:x,...n},S()),[[E,p.value]])}return{renderTab:T,$tabs:o}}var le=k({name:`QTab`,props:Y,emits:se,setup(e,{slots:t,emit:n}){let{renderTab:r}=ce(e,t,n);return()=>r(`div`)}});function ue(){let e=y(!h.value);return e.value===!1&&D(()=>{e.value=!0}),{isHydrated:e}}var X=typeof ResizeObserver<`u`,de=X===!0?{}:{style:`display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;`,url:`about:blank`},fe=k({name:`QResizeObserver`,props:{debounce:{type:[String,Number],default:100}},emits:[`resize`],setup(t,{emit:r}){let a=null,o,s={width:-1,height:-1};function c(e){e===!0||t.debounce===0||t.debounce===`0`?l():a===null&&(a=setTimeout(l,t.debounce))}function l(){if(a!==null&&(clearTimeout(a),a=null),o){let{offsetWidth:e,offsetHeight:t}=o;(e!==s.width||t!==s.height)&&(s={width:e,height:t},r(`resize`,s))}}let{proxy:u}=I();if(u.trigger=c,X===!0){let e,t=r=>{o=u.$el.parentNode,o?(e=new ResizeObserver(c),e.observe(o),l()):r!==!0&&n(()=>{t(!0)})};return D(()=>{t()}),i(()=>{a!==null&&clearTimeout(a),e!==void 0&&(e.disconnect===void 0?o&&e.unobserve(o):e.disconnect())}),v}else{let{isHydrated:t}=ue(),r;function s(){a!==null&&(clearTimeout(a),a=null),r!==void 0&&(r.removeEventListener!==void 0&&r.removeEventListener(`resize`,c,e.passive),r=void 0)}function d(){s(),o?.contentDocument&&(r=o.contentDocument.defaultView,r.addEventListener(`resize`,c,e.passive),l())}return D(()=>{n(()=>{o=u.$el,o&&d()})}),i(s),()=>{if(t.value===!0)return w(`object`,{class:`q--avoid-card-border`,style:de.style,tabindex:-1,type:`text/html`,data:de.url,"aria-hidden":`true`,onLoad:d})}}}});function pe(e,t,n){let r=n===!0?[`left`,`right`]:[`top`,`bottom`];return`absolute-${t===!0?r[0]:r[1]}${e?` text-${e}`:``}`}var me=[`left`,`center`,`right`,`justify`],he=k({name:`QTabs`,props:{modelValue:[Number,String],align:{type:String,default:`center`,validator:e=>me.includes(e)},breakpoint:{type:[String,Number],default:600},vertical:Boolean,shrink:Boolean,stretch:Boolean,activeClass:String,activeColor:String,activeBgColor:String,indicatorColor:String,leftIcon:String,rightIcon:String,outsideArrows:Boolean,mobileArrows:Boolean,switchIndicator:Boolean,narrowIndicator:Boolean,inlineLabel:Boolean,noCaps:Boolean,dense:Boolean,contentClass:String,"onUpdate:modelValue":[Function,Array]},setup(e,{slots:n,emit:r}){let{proxy:a}=I(),{$q:o}=a,{registerTick:s}=R(),{registerTick:l}=R(),{registerTick:u}=R(),{registerTimeout:d,removeTimeout:f}=z(),{registerTimeout:h,removeTimeout:g}=z(),_=y(null),v=y(null),b=y(e.modelValue),x=y(!1),S=y(!0),C=y(!1),T=y(!1),E=[],D=y(0),O=y(!1),k=null,A=null,N,P=j(()=>({activeClass:e.activeClass,activeColor:e.activeColor,activeBgColor:e.activeBgColor,indicatorClass:pe(e.indicatorColor,e.switchIndicator,e.vertical),narrowIndicator:e.narrowIndicator,inlineLabel:e.inlineLabel,noCaps:e.noCaps})),ee=j(()=>{let e=D.value,t=b.value;for(let n=0;n<e;n++)if(E[n].name.value===t)return!0;return!1}),te=j(()=>`q-tabs__content--align-${x.value===!0?`left`:T.value===!0?`justify`:e.align}`),L=j(()=>`q-tabs row no-wrap items-center q-tabs--${x.value===!0?``:`not-`}scrollable q-tabs--${e.vertical===!0?`vertical`:`horizontal`} q-tabs__arrows--${e.outsideArrows===!0?`outside`:`inside`} q-tabs--mobile-with${e.mobileArrows===!0?``:`out`}-arrows`+(e.dense===!0?` q-tabs--dense`:``)+(e.shrink===!0?` col-shrink`:``)+(e.stretch===!0?` self-stretch`:``)),re=j(()=>`q-tabs__content scroll--mobile row no-wrap items-center self-stretch hide-scrollbar relative-position `+te.value+(e.contentClass===void 0?``:` ${e.contentClass}`)),B=j(()=>e.vertical===!0?{container:`height`,content:`offsetHeight`,scroll:`scrollHeight`}:{container:`width`,content:`offsetWidth`,scroll:`scrollWidth`}),V=j(()=>e.vertical!==!0&&o.lang.rtl===!0),H=j(()=>ie===!1&&V.value===!0);c(V,q),c(()=>e.modelValue,e=>{U({name:e,setCurrent:!0,skipEmit:!0})}),c(()=>e.outsideArrows,W);function U({name:t,setCurrent:n,skipEmit:i}){b.value!==t&&(i!==!0&&e[`onUpdate:modelValue`]!==void 0&&r(`update:modelValue`,t),(n===!0||e[`onUpdate:modelValue`]===void 0)&&(ae(b.value,t),b.value=t))}function W(){s(()=>{_.value&&G({width:_.value.offsetWidth,height:_.value.offsetHeight})})}function G(t){if(B.value===void 0||v.value===null)return;let n=t[B.value.container],r=Math.min(v.value[B.value.scroll],Array.prototype.reduce.call(v.value.children,(e,t)=>e+(t[B.value.content]||0),0)),i=n>0&&r>n;x.value=i,i===!0&&l(q),T.value=n<parseInt(e.breakpoint,10)}function ae(t,n){let r=t!=null&&t!==``?E.find(e=>e.name.value===t):null,i=n!=null&&n!==``?E.find(e=>e.name.value===n):null;if($===!0)$=!1;else if(r&&i){let t=r.tabIndicatorRef.value,n=i.tabIndicatorRef.value;k!==null&&(clearTimeout(k),k=null),t.style.transition=`none`,t.style.transform=`none`,n.style.transition=`none`,n.style.transform=`none`;let a=t.getBoundingClientRect(),o=n.getBoundingClientRect();n.style.transform=e.vertical===!0?`translate3d(0,${a.top-o.top}px,0) scale3d(1,${o.height?a.height/o.height:1},1)`:`translate3d(${a.left-o.left}px,0,0) scale3d(${o.width?a.width/o.width:1},1,1)`,u(()=>{k=setTimeout(()=>{k=null,n.style.transition=`transform .25s cubic-bezier(.4, 0, .2, 1)`,n.style.transform=`none`},70)})}i&&x.value===!0&&K(i.rootRef.value)}function K(t){let{left:n,width:r,top:i,height:a}=v.value.getBoundingClientRect(),o=t.getBoundingClientRect(),s=e.vertical===!0?o.top-i:o.left-n;if(s<0){v.value[e.vertical===!0?`scrollTop`:`scrollLeft`]+=Math.floor(s),q();return}s+=e.vertical===!0?o.height-a:o.width-r,s>0&&(v.value[e.vertical===!0?`scrollTop`:`scrollLeft`]+=Math.ceil(s),q())}function q(){let t=v.value;if(t===null)return;let n=t.getBoundingClientRect(),r=e.vertical===!0?t.scrollTop:Math.abs(t.scrollLeft);V.value===!0?(S.value=Math.ceil(r+n.width)<t.scrollWidth-1,C.value=r>0):(S.value=r>0,C.value=e.vertical===!0?Math.ceil(r+n.height)<t.scrollHeight:Math.ceil(r+n.width)<t.scrollWidth)}function J(e){A!==null&&clearInterval(A),A=setInterval(()=>{ue(e)===!0&&Y()},5)}function oe(){J(H.value===!0?2**53-1:0)}function se(){J(H.value===!0?0:2**53-1)}function Y(){A!==null&&(clearInterval(A),A=null)}function ce(t,n){let r=Array.prototype.filter.call(v.value.children,e=>e===n||e.matches&&e.matches(`.q-tab.q-focusable`)===!0),i=r.length;if(i===0)return;if(t===36)return K(r[0]),r[0].focus(),!0;if(t===35)return K(r[i-1]),r[i-1].focus(),!0;let a=t===(e.vertical===!0?38:37),o=t===(e.vertical===!0?40:39),s=a===!0?-1:o===!0?1:void 0;if(s!==void 0){let e=V.value===!0?-1:1,t=r.indexOf(n)+s*e;return t>=0&&t<i&&(K(r[t]),r[t].focus({preventScroll:!0})),!0}}let le=j(()=>H.value===!0?{get:e=>Math.abs(e.scrollLeft),set:(e,t)=>{e.scrollLeft=-t}}:e.vertical===!0?{get:e=>e.scrollTop,set:(e,t)=>{e.scrollTop=t}}:{get:e=>e.scrollLeft,set:(e,t)=>{e.scrollLeft=t}});function ue(e){let t=v.value,{get:n,set:r}=le.value,i=!1,a=n(t),o=e<a?-1:1;return a+=o*5,a<0?(i=!0,a=0):(o===-1&&a<=e||o===1&&a>=e)&&(i=!0,a=e),r(t,a),q(),i}function X(e,t){for(let n in e)if(e[n]!==t[n])return!1;return!0}function de(){let e=null,t={matchedLen:0,queryDiff:9999,hrefLen:0},n=E.filter(e=>e.routeData?.hasRouterLink.value===!0),{hash:r,query:i}=a.$route,o=Object.keys(i).length;for(let a of n){let n=a.routeData.exact.value===!0;if(a.routeData[n===!0?`linkIsExactActive`:`linkIsActive`].value!==!0)continue;let{hash:s,query:c,matched:l,href:u}=a.routeData.resolvedLink.value,d=Object.keys(c).length;if(n===!0){if(s!==r||d!==o||X(i,c)===!1)continue;e=a.name.value;break}if(s!==``&&s!==r||d!==0&&X(c,i)===!1)continue;let f={matchedLen:l.length,queryDiff:o-d,hrefLen:u.length-s.length};if(f.matchedLen>t.matchedLen){e=a.name.value,t=f;continue}else if(f.matchedLen!==t.matchedLen)continue;if(f.queryDiff<t.queryDiff)e=a.name.value,t=f;else if(f.queryDiff!==t.queryDiff)continue;f.hrefLen>t.hrefLen&&(e=a.name.value,t=f)}if(e===null&&E.some(e=>e.routeData===void 0&&e.name.value===b.value)===!0){$=!1;return}U({name:e,setCurrent:!0})}function me(e){if(f(),O.value!==!0&&_.value!==null&&e.target&&typeof e.target.closest==`function`){let t=e.target.closest(`.q-tab`);t&&_.value.contains(t)===!0&&(O.value=!0,x.value===!0&&K(t))}}function he(){d(()=>{O.value=!1},30)}function Z(){Q.avoidRouteWatcher===!1?h(de):g()}function ge(){if(N===void 0){let e=c(()=>a.$route.fullPath,Z);N=()=>{e(),N=void 0}}}function _e(e){E.push(e),D.value++,W(),e.routeData===void 0||a.$route===void 0?h(()=>{if(x.value===!0){let e=b.value,t=e!=null&&e!==``?E.find(t=>t.name.value===e):null;t&&K(t.rootRef.value)}}):(ge(),e.routeData.hasRouterLink.value===!0&&Z())}function ve(e){E.splice(E.indexOf(e),1),D.value--,W(),N!==void 0&&e.routeData!==void 0&&(E.every(e=>e.routeData===void 0)===!0&&N(),Z())}let Q={currentModel:b,tabProps:P,hasFocus:O,hasActiveTab:ee,registerTab:_e,unregisterTab:ve,verifyRouteModel:Z,updateModel:U,onKbdNavigate:ce,avoidRouteWatcher:!1};p(ne,Q);function ye(){k!==null&&clearTimeout(k),Y(),N?.()}let be,$;return i(ye),m(()=>{be=N!==void 0,ye()}),M(()=>{be===!0&&(ge(),$=!0,Z()),W()}),()=>w(`div`,{ref:_,class:L.value,role:`tablist`,onFocusin:me,onFocusout:he},[w(fe,{onResize:G}),w(`div`,{ref:v,class:re.value,onScroll:q},t(n.default)),w(F,{class:`q-tabs__arrow q-tabs__arrow--left absolute q-tab__icon`+(S.value===!0?``:` q-tabs__arrow--faded`),name:e.leftIcon||o.iconSet.tabs[e.vertical===!0?`up`:`left`],onMousedownPassive:oe,onTouchstartPassive:oe,onMouseupPassive:Y,onMouseleavePassive:Y,onTouchendPassive:Y}),w(F,{class:`q-tabs__arrow q-tabs__arrow--right absolute q-tab__icon`+(C.value===!0?``:` q-tabs__arrow--faded`),name:e.rightIcon||o.iconSet.tabs[e.vertical===!0?`down`:`right`],onMousedownPassive:se,onTouchstartPassive:se,onMouseupPassive:Y,onMouseleavePassive:Y,onTouchendPassive:Y})])}});function Z(e){let t=[.06,6,50];return typeof e==`string`&&e.length&&e.split(`:`).forEach((e,n)=>{let r=parseFloat(e);r&&(t[n]=r)}),t}var ge=l({name:`touch-swipe`,beforeMount(e,{value:t,arg:n,modifiers:r}){if(r.mouse!==!0&&S.has.touch!==!0)return;let i=r.mouseCapture===!0?`Capture`:``,a={handler:t,sensitivity:Z(n),direction:K(r),noop:v,mouseStart(e){J(e,a)&&ee(e)&&(s(a,`temp`,[[document,`mousemove`,`move`,`notPassive${i}`],[document,`mouseup`,`end`,`notPassiveCapture`]]),a.start(e,!0))},touchStart(e){if(J(e,a)){let t=e.target;s(a,`temp`,[[t,`touchmove`,`move`,`notPassiveCapture`],[t,`touchcancel`,`end`,`notPassiveCapture`],[t,`touchend`,`end`,`notPassiveCapture`]]),a.start(e)}},start(t,n){S.is.firefox===!0&&b(e,!0);let r=o(t);a.event={x:r.left,y:r.top,time:Date.now(),mouse:n===!0,dir:!1}},move(e){if(a.event===void 0)return;if(a.event.dir!==!1){u(e);return}let t=Date.now()-a.event.time;if(t===0)return;let n=o(e),r=n.left-a.event.x,i=Math.abs(r),s=n.top-a.event.y,c=Math.abs(s);if(a.event.mouse!==!0){if(i<a.sensitivity[1]&&c<a.sensitivity[1]){a.end(e);return}}else if(window.getSelection().toString()!==``){a.end(e);return}else if(i<a.sensitivity[2]&&c<a.sensitivity[2])return;let l=i/t,d=c/t;a.direction.vertical===!0&&i<c&&i<100&&d>a.sensitivity[0]&&(a.event.dir=s<0?`up`:`down`),a.direction.horizontal===!0&&i>c&&c<100&&l>a.sensitivity[0]&&(a.event.dir=r<0?`left`:`right`),a.direction.up===!0&&i<c&&s<0&&i<100&&d>a.sensitivity[0]&&(a.event.dir=`up`),a.direction.down===!0&&i<c&&s>0&&i<100&&d>a.sensitivity[0]&&(a.event.dir=`down`),a.direction.left===!0&&i>c&&r<0&&c<100&&l>a.sensitivity[0]&&(a.event.dir=`left`),a.direction.right===!0&&i>c&&r>0&&c<100&&l>a.sensitivity[0]&&(a.event.dir=`right`),a.event.dir===!1?a.end(e):(u(e),a.event.mouse===!0&&(document.body.classList.add(`no-pointer-events--children`),document.body.classList.add(`non-selectable`),re(),a.styleCleanup=e=>{a.styleCleanup=void 0,document.body.classList.remove(`non-selectable`);let t=()=>{document.body.classList.remove(`no-pointer-events--children`)};e===!0?setTimeout(t,50):t()}),a.handler({evt:e,touch:a.event.mouse!==!0,mouse:a.event.mouse,direction:a.event.dir,duration:t,distance:{x:i,y:c}}))},end(t){a.event!==void 0&&(d(a,`temp`),S.is.firefox===!0&&b(e,!1),a.styleCleanup?.(!0),t!==void 0&&a.event.dir!==!1&&u(t),a.event=void 0)}};e.__qtouchswipe=a,r.mouse===!0&&s(a,`main`,[[e,`mousedown`,`mouseStart`,`passive${r.mouseCapture===!0||r.mousecapture===!0?`Capture`:``}`]]),S.has.touch===!0&&s(a,`main`,[[e,`touchstart`,`touchStart`,`passive${r.capture===!0?`Capture`:``}`],[e,`touchmove`,`noop`,`notPassiveCapture`]])},updated(e,t){let n=e.__qtouchswipe;n!==void 0&&(t.oldValue!==t.value&&(typeof t.value!=`function`&&n.end(),n.handler=t.value),n.direction=K(t.modifiers))},beforeUnmount(e){let t=e.__qtouchswipe;t!==void 0&&(d(t,`main`),d(t,`temp`),S.is.firefox===!0&&b(e,!1),t.styleCleanup?.(),delete e.__qtouchswipe)}});function _e(){let e=Object.create(null);return{getCache:(t,n)=>e[t]===void 0?e[t]=typeof n==`function`?n():n:e[t],setCache(t,n){e[t]=n},hasCache(t){return Object.hasOwnProperty.call(e,t)},clearCache(t){t===void 0?e=Object.create(null):delete e[t]}}}var ve={name:{required:!0},disable:Boolean},Q={setup(e,{slots:n}){return()=>w(`div`,{class:`q-panel scroll`,role:`tabpanel`},t(n.default))}},ye={modelValue:{required:!0},animated:Boolean,infinite:Boolean,swipeable:Boolean,vertical:Boolean,transitionPrev:String,transitionNext:String,transitionDuration:{type:[String,Number],default:300},keepAlive:Boolean,keepAliveInclude:[String,Array,RegExp],keepAliveExclude:[String,Array,RegExp],keepAliveMax:Number},be=[`update:modelValue`,`beforeTransition`,`transition`];function $(){let{props:e,emit:n,proxy:r}=I(),{getCache:i}=_e(),{registerTimeout:a}=z(),o,s,l=y(null),u={value:null};function d(t){let n=e.vertical===!0?`up`:`left`;M((r.$q.lang.rtl===!0?-1:1)*(t.direction===n?1:-1))}let f=j(()=>[[ge,d,void 0,{horizontal:e.vertical!==!0,vertical:e.vertical,mouse:!0}]]),p=j(()=>e.transitionPrev||`slide-${e.vertical===!0?`down`:`right`}`),m=j(()=>e.transitionNext||`slide-${e.vertical===!0?`up`:`left`}`),h=j(()=>`--q-transition-duration: ${e.transitionDuration}ms`),g=j(()=>typeof e.modelValue==`string`||typeof e.modelValue==`number`?e.modelValue:String(e.modelValue)),_=j(()=>({include:e.keepAliveInclude,exclude:e.keepAliveExclude,max:e.keepAliveMax})),v=j(()=>e.keepAliveInclude!==void 0||e.keepAliveExclude!==void 0);c(()=>e.modelValue,(t,r)=>{let i=C(t)===!0?E(t):-1;s!==!0&&k(i===-1?0:i<E(r)?-1:1),u.value!==i&&(u.value=i,n(`beforeTransition`,t,r),a(()=>{n(`transition`,t,r)},e.transitionDuration))});function b(){M(1)}function x(){M(-1)}function S(e){n(`update:modelValue`,e)}function C(e){return e!=null&&e!==``}function E(e){return o.findIndex(t=>t.props.name===e&&t.props.disable!==``&&t.props.disable!==!0)}function D(){return o.filter(e=>e.props.disable!==``&&e.props.disable!==!0)}function k(t){let n=t!==0&&e.animated===!0&&u.value!==-1?`q-transition--`+(t===-1?p.value:m.value):null;l.value!==n&&(l.value=n)}function M(t,r=u.value){let i=r+t;for(;i!==-1&&i<o.length;){let e=o[i];if(e!==void 0&&e.props.disable!==``&&e.props.disable!==!0){k(t),s=!0,n(`update:modelValue`,e.props.name),setTimeout(()=>{s=!1});return}i+=t}e.infinite===!0&&o.length!==0&&r!==-1&&r!==o.length&&M(t,t===-1?o.length:-1)}function N(){let t=E(e.modelValue);return u.value!==t&&(u.value=t),!0}function P(){let t=C(e.modelValue)===!0&&N()&&o[u.value];return e.keepAlive===!0?[w(A,_.value,[w(v.value===!0?i(g.value,()=>({...Q,name:g.value})):Q,{key:g.value,style:h.value},()=>t)])]:[w(`div`,{class:`q-panel scroll`,style:h.value,key:g.value,role:`tabpanel`},[t])]}function F(){if(o.length!==0)return e.animated===!0?[w(T,{name:l.value},P)]:P()}function ee(e){return o=O(t(e.default,[])).filter(e=>e.props!==null&&e.props.slot===void 0&&C(e.props.name)===!0),o.length}function te(){return o}return Object.assign(r,{next:b,previous:x,goTo:S}),{panelIndex:u,panelDirectives:f,updatePanelsList:ee,updatePanelIndex:N,getPanelContent:F,getEnabledPanels:D,getPanels:te,isValidPanelName:C,keepAliveProps:_,needsUniqueKeepAliveWrapper:v,goToPanelByOffset:M,goToPanel:S,nextPanel:b,previousPanel:x}}var xe=k({name:`QTabPanel`,props:ve,setup(e,{slots:n}){return()=>w(`div`,{class:`q-tab-panel`,role:`tabpanel`},t(n.default))}}),Se=k({name:`QTabPanels`,props:{...ye,...B},emits:be,setup(e,{slots:t}){let n=V(e,I().proxy.$q),{updatePanelsList:r,getPanelContent:i,panelDirectives:a}=$(),o=j(()=>`q-tab-panels q-panel-parent`+(n.value===!0?` q-tab-panels--dark q-dark`:``));return()=>(r(t),C(`div`,{class:o.value},i(),`pan`,e.swipeable,()=>a.value))}});function Ce(e,t){let n=y(null),r=j(()=>e.disable===!0?null:w(`span`,{ref:n,class:`no-outline`,tabindex:-1}));function i(e){let r=t.value;e?.qAvoidFocus!==!0&&(e?.type.indexOf(`key`)===0?document.activeElement!==r&&r?.contains(document.activeElement)===!0&&r.focus():n.value!==null&&(e===void 0||r?.contains(e.target)===!0)&&n.value.focus())}return{refocusTargetEl:r,refocusTarget:i}}var we={xs:30,sm:35,md:40,lg:50,xl:60},Te={...B,...r,...U,modelValue:{required:!0,default:null},val:{},trueValue:{default:!0},falseValue:{default:!1},indeterminateValue:{default:null},checkedIcon:String,uncheckedIcon:String,indeterminateIcon:String,toggleOrder:{type:String,validator:e=>e===`tf`||e===`ft`},toggleIndeterminate:Boolean,label:String,leftLabel:Boolean,color:String,keepColor:Boolean,dense:Boolean,disable:Boolean,tabindex:[String,Number]},Ee=[`update:modelValue`];function De(e,n){let{props:r,slots:i,emit:a,proxy:o}=I(),{$q:s}=o,c=V(r,s),l=y(null),{refocusTargetEl:d,refocusTarget:f}=Ce(r,l),p=_(r,we),m=j(()=>r.val!==void 0&&Array.isArray(r.modelValue)),h=j(()=>{let e=x(r.val);return m.value===!0?r.modelValue.findIndex(t=>x(t)===e):-1}),g=j(()=>m.value===!0?h.value!==-1:x(r.modelValue)===x(r.trueValue)),v=j(()=>m.value===!0?h.value===-1:x(r.modelValue)===x(r.falseValue)),b=j(()=>g.value===!1&&v.value===!1),S=j(()=>r.disable===!0?-1:r.tabindex||0),C=j(()=>`q-${e} cursor-pointer no-outline row inline no-wrap items-center`+(r.disable===!0?` disabled`:``)+(c.value===!0?` q-${e}--dark`:``)+(r.dense===!0?` q-${e}--dense`:``)+(r.leftLabel===!0?` reverse`:``)),T=j(()=>`q-${e}__inner relative-position non-selectable q-${e}__inner--${g.value===!0?`truthy`:v.value===!0?`falsy`:`indet`}${r.color!==void 0&&(r.keepColor===!0||(e===`toggle`?g.value===!0:v.value!==!0))?` text-${r.color}`:``}`),E=H(j(()=>{let e={type:`checkbox`};return r.name!==void 0&&Object.assign(e,{".checked":g.value,"^checked":g.value===!0?`checked`:void 0,name:r.name,value:m.value===!0?r.val:r.trueValue}),e})),D=j(()=>{let t={tabindex:S.value,role:e===`toggle`?`switch`:`checkbox`,"aria-label":r.label,"aria-checked":b.value===!0?`mixed`:g.value===!0?`true`:`false`};return r.disable===!0&&(t[`aria-disabled`]=`true`),t});function O(e){e!==void 0&&(u(e),f(e)),r.disable!==!0&&a(`update:modelValue`,k(),e)}function k(){if(m.value===!0){if(g.value===!0){let e=r.modelValue.slice();return e.splice(h.value,1),e}return r.modelValue.concat([r.val])}if(g.value===!0){if(r.toggleOrder!==`ft`||r.toggleIndeterminate===!1)return r.falseValue}else if(v.value===!0){if(r.toggleOrder===`ft`||r.toggleIndeterminate===!1)return r.trueValue}else return r.toggleOrder===`ft`?r.falseValue:r.trueValue;return r.indeterminateValue}function A(e){(e.keyCode===13||e.keyCode===32)&&u(e)}function M(e){(e.keyCode===13||e.keyCode===32)&&O(e)}let P=n(g,b);return Object.assign(o,{toggle:O}),()=>{let n=P();r.disable!==!0&&E(n,`unshift`,` q-${e}__native absolute q-ma-none q-pa-none`);let a=[w(`div`,{class:T.value,style:p.value,"aria-hidden":`true`},n)];d.value!==null&&a.push(d.value);let o=r.label===void 0?t(i.default):N(i.default,[r.label]);return o!==void 0&&a.push(w(`div`,{class:`q-${e}__label q-anchor--skip`},o)),w(`div`,{ref:l,class:C.value,...D.value,onClick:O,onKeydown:A,onKeyup:M},a)}}export{xe as a,le as c,Se as i,K as l,Ee as n,he as o,Te as r,fe as s,De as t,J as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{xt as e}from"./nodes-CXdiSdC2.js";function t(){return e(`_q_`)}export{t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><title>Kōbō</title><meta charset=utf-8><meta name=description content="Kōbō — multi-workspace agent manager for Claude Code"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width,height=device-height"> <script type="module" crossorigin src="/assets/index-
|
|
2
|
-
<link rel="modulepreload" crossorigin href="/assets/nodes-
|
|
1
|
+
<!DOCTYPE html><html><head><title>Kōbō</title><meta charset=utf-8><meta name=description content="Kōbō — multi-workspace agent manager for Claude Code"><meta name=format-detection content="telephone=no"><meta name=msapplication-tap-highlight content=no><meta name=viewport content="user-scalable=no,initial-scale=1,maximum-scale=1,minimum-scale=1,width=device-width,height=device-height"> <script type="module" crossorigin src="/assets/index-BoQWbZtE.js"></script>
|
|
2
|
+
<link rel="modulepreload" crossorigin href="/assets/nodes-CXdiSdC2.js">
|
|
3
3
|
<link rel="stylesheet" crossorigin href="/assets/index-BThMCiY7.css">
|
|
4
4
|
</head><body><div id=q-app></div></body></html>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.activity-feed[data-v-8181e3e3]{flex-direction:column;gap:4px;display:flex;position:relative;overflow:hidden auto}.af-item[data-v-8181e3e3]{word-break:break-word;overflow-wrap:break-word;flex-shrink:0;padding:6px 10px;overflow-x:hidden}.af-time[data-v-8181e3e3]{color:#555;flex-shrink:0;font-size:10px}.af-tool-label[data-v-8181e3e3]{font-family:Roboto Mono,monospace;font-size:11px}.af-tool-desc[data-v-8181e3e3]{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.af-ask-option-item[data-v-8181e3e3]{padding:2px 0}.af-tool-args[data-v-8181e3e3]{background-color:#ffffff0a;padding:6px 8px;overflow-x:auto}.af-args-pre[data-v-8181e3e3]{color:#888;white-space:pre-wrap;word-break:break-word;margin:0;font-family:Roboto Mono,monospace;font-size:10px}.af-item--text[data-v-8181e3e3]{background-color:#1a2a3a;border-left:3px solid #3b82f6}.af-item--user[data-v-8181e3e3]{background-color:#1a2a1a;border-left:3px solid #22c55e}.af-item--prompt[data-v-8181e3e3]{background-color:#1a1a2e;border-left:3px solid #6c63ff}.af-text-content[data-v-8181e3e3]{color:#d0d0d0;word-break:break-word;line-height:1.5}.af-markdown[data-v-8181e3e3] p{margin:0 0 8px}.af-markdown[data-v-8181e3e3] p:last-child{margin-bottom:0}.af-markdown[data-v-8181e3e3] h1,.af-markdown[data-v-8181e3e3] h2,.af-markdown[data-v-8181e3e3] h3{color:#e0e0e0;margin:12px 0 6px}.af-markdown[data-v-8181e3e3] h1{font-size:16px}.af-markdown[data-v-8181e3e3] h2{font-size:14px}.af-markdown[data-v-8181e3e3] h3{font-size:13px}.af-markdown[data-v-8181e3e3] ul,.af-markdown[data-v-8181e3e3] ol{margin:4px 0;padding-left:20px}.af-markdown[data-v-8181e3e3] li{margin:2px 0}.af-markdown[data-v-8181e3e3] code{background-color:#ffffff14;border-radius:3px;padding:1px 4px;font-family:Roboto Mono,monospace;font-size:11px}.af-markdown[data-v-8181e3e3] pre{background-color:#0000004d;border-radius:4px;margin:6px 0;padding:8px;overflow-x:auto}.af-markdown[data-v-8181e3e3] pre code{background:0 0;padding:0}.af-markdown[data-v-8181e3e3] strong{color:#fff}.af-markdown[data-v-8181e3e3] a{color:#6c63ff}.af-markdown[data-v-8181e3e3] blockquote{color:#aaa;border-left:3px solid #6c63ff;margin:6px 0;padding:4px 12px}.af-markdown[data-v-8181e3e3] table{border-collapse:collapse;margin:6px 0;font-size:11px}.af-markdown[data-v-8181e3e3] table th,.af-markdown[data-v-8181e3e3] table td{border:1px solid #2a2a4a;padding:4px 8px}.af-markdown[data-v-8181e3e3] table th{background-color:#ffffff0d}.af-item--system[data-v-8181e3e3]{background-color:#2a2a1a;border-left:3px solid #f59e0b}.af-system-details[data-v-8181e3e3]{background-color:#ffffff0a;padding:6px 8px;overflow-x:auto}.af-system-content[data-v-8181e3e3]{white-space:pre-wrap}.af-item--error[data-v-8181e3e3]{background-color:#2a1a1a;border-left:3px solid #ef4444}.af-item--raw[data-v-8181e3e3]{white-space:pre-wrap;font-family:Roboto Mono,monospace}.scroll-to-user-btn[data-v-8181e3e3]{opacity:.7;align-self:flex-end;margin-right:8px;transition:opacity .15s;position:sticky;bottom:8px}.scroll-to-user-btn[data-v-8181e3e3]:hover{opacity:1}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.acceptance-item[data-v-b9e5e638]{padding:2px 0}.acceptance-item[data-v-b9e5e638]:hover{background-color:#ffffff08}.acceptance-item:hover .criterion-delete-btn[data-v-b9e5e638]{opacity:1}.criterion-delete-btn[data-v-b9e5e638]{opacity:0;transition:opacity .15s}.acceptance-title[data-v-b9e5e638]{word-break:break-word;cursor:text;line-height:1.4}.text-strike[data-v-b9e5e638]{opacity:.7;text-decoration:line-through}.criterion-input[data-v-b9e5e638] .q-field__control{height:22px;min-height:22px;padding:0}.criterion-input[data-v-b9e5e638] input{color:#e0e0e0;font-size:12px}.criterion-input[data-v-b9e5e638] input::placeholder{color:#555}.criterion-add-row[data-v-b9e5e638]{padding:2px 0}.log-content[data-v-c1509b16]{max-height:60vh;overflow-y:auto}.log-text[data-v-c1509b16]{color:#ccc;white-space:pre-wrap;word-break:break-all;background:#0d0d1a;margin:0;font-family:JetBrains Mono,Fira Code,monospace;font-size:11px}.dd-panel[data-v-8c173889]{min-height:48px}.git-btn[data-v-5a52aa16]{padding:2px 10px;font-size:11px}.notion-link[data-v-5f29da43]{text-decoration:none;display:inline-flex}.notion-link[data-v-5f29da43]:hover{text-decoration:underline}.task-item[data-v-5f29da43]{padding:2px 0}.task-item[data-v-5f29da43]:hover{background-color:#ffffff08}.task-item:hover .task-delete-btn[data-v-5f29da43]{opacity:1}.task-delete-btn[data-v-5f29da43]{opacity:0;transition:opacity .15s}.task-title[data-v-5f29da43]{word-break:break-word;cursor:text;line-height:1.4}.text-strike[data-v-5f29da43]{opacity:.7;text-decoration:line-through}.task-input[data-v-5f29da43] .q-field__control{height:22px;min-height:22px;padding:0}.task-input[data-v-5f29da43] input{color:#e0e0e0;font-size:12px}.task-input[data-v-5f29da43] input::placeholder{color:#555}.task-add-row[data-v-5f29da43]{padding:2px 0}.subagents-panel[data-v-b76be59d]{overflow-y:auto}.subagent-item[data-v-b76be59d]{background:#1e1e3a;border:1px solid #2a2a4a}.workspace-list[data-v-9d4c8886]{background-color:#16162a;overflow-x:hidden}.wl-search[data-v-9d4c8886]{background-color:#224;padding:0 8px}.wl-search[data-v-9d4c8886] .q-field__control{height:32px}.wl-search[data-v-9d4c8886] input{color:#ccc;font-size:12px}.wl-group-header[data-v-9d4c8886]:hover{background-color:#ffffff08}.wl-item[data-v-9d4c8886]{background-color:#224;transition:background-color .15s;position:relative}.wl-item[data-v-9d4c8886]:hover{background-color:#2a2a4a}.wl-item--selected[data-v-9d4c8886]{background-color:#2a2a4a;outline:1px solid #6c63ff66}.wl-item-action[data-v-9d4c8886]{opacity:0;transition:opacity .15s;position:absolute;top:50%;transform:translateY(-50%)}.wl-item-delete[data-v-9d4c8886]{right:4px}.wl-item-archive[data-v-9d4c8886],.wl-item-unarchive[data-v-9d4c8886]{right:28px}.wl-item:hover .wl-item-action[data-v-9d4c8886]{opacity:1}.wl-item--archived[data-v-9d4c8886]{opacity:.6;background-color:#1a1a30}.wl-item--archived[data-v-9d4c8886]:hover{opacity:.85}.wl-item--archived.wl-item--selected[data-v-9d4c8886]{opacity:1}.dd-dot[data-v-9d4c8886]{border-radius:50%;flex-shrink:0;width:6px;height:6px}.dd-dot--running[data-v-9d4c8886]{background-color:#22c55e;box-shadow:0 0 4px #22c55e80}.left-sidebar[data-v-513173db],.right-sidebar[data-v-513173db]{background-color:#16162a!important;border-color:#2a2a4a!important;overflow-x:hidden!important}[data-v-513173db] .q-drawer__content{overflow-x:hidden!important}.drawer-content[data-v-513173db]{overflow-y:auto}.drawer-header[data-v-513173db]{min-height:48px}.letter-spacing-wide[data-v-513173db]{letter-spacing:.05em}.right-tabs[data-v-513173db]{background-color:#16162a;flex-shrink:0}.right-tab-panels[data-v-513173db]{overflow-y:auto;background:0 0!important}[data-v-513173db] .q-tab-panel{padding:0}.main-content[data-v-513173db]{background-color:#1a1a2e}.resize-handle[data-v-513173db]{cursor:col-resize;z-index:10;width:4px;height:100%;transition:background-color .15s;position:absolute;top:0;right:-2px}.resize-handle[data-v-513173db]:hover,.resize-handle[data-v-513173db]:active{background-color:#6c63ff80}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{At as e,B as t,Bt as n,C as r,Ct as i,D as a,E as o,Et as s,Ft as c,G as l,Gt as u,H as d,I as f,It as p,J as m,Jt as h,K as g,Kt as _,L as v,Lt as y,Mt as b,Nt as x,Pt as S,Q as C,Rt as w,T,U as E,V as D,Vt as O,W as k,Z as A,at as j,b as ee,bt as M,d as N,dt as P,ft as F,gt as I,ht as L,it as R,kt as te,mt as z,ot as B,pt as V,q as H,qt as ne,r as U,rt as re,u as ie,ut as W,vt as G,x as ae,xt as oe,y as K,yt as se,z as ce}from"./nodes-irfhA8FK.js";import{a as le,c as ue,f as de,i as fe,o as q,p as pe,r as J,u as me}from"./index-C4WDJfjD.js";import{A as Y,C as he,S as ge,c as _e,d as ve,k as ye,l as be,m as xe,p as X,t as Z,u as Se,w as Ce}from"./_plugin-vue_export-helper-C6NdfBK4.js";import{t as Q}from"./QTooltip-DKYJ8kVW.js";import{C as we,S as Te,T as Ee,_ as De,b as Oe,o as ke,t as Ae,w as je}from"./QDialog-DgR7t6Vf.js";import{a as Me,c as Ne,i as Pe,l as Fe,n as Ie,o as Le,r as Re,s as ze,t as Be,u as Ve}from"./use-checkbox-BS9cbwg_.js";import{t as $}from"./QBadge-CNojh9Rl.js";import{t as He}from"./use-quasar-CH0pSHUf.js";function Ue(e,t,n){let r=d(e),i,a=r.left-t.event.x,o=r.top-t.event.y,s=Math.abs(a),c=Math.abs(o),l=t.direction;l.horizontal===!0&&l.vertical!==!0?i=a<0?`left`:`right`:l.horizontal!==!0&&l.vertical===!0?i=o<0?`up`:`down`:l.up===!0&&o<0?(i=`up`,s>c&&(l.left===!0&&a<0?i=`left`:l.right===!0&&a>0&&(i=`right`))):l.down===!0&&o>0?(i=`down`,s>c&&(l.left===!0&&a<0?i=`left`:l.right===!0&&a>0&&(i=`right`))):l.left===!0&&a<0?(i=`left`,s<c&&(l.up===!0&&o<0?i=`up`:l.down===!0&&o>0&&(i=`down`))):l.right===!0&&a>0&&(i=`right`,s<c&&(l.up===!0&&o<0?i=`up`:l.down===!0&&o>0&&(i=`down`)));let u=!1;if(i===void 0&&n===!1){if(t.event.isFirst===!0||t.event.lastDir===void 0)return{};i=t.event.lastDir,u=!0,i===`left`||i===`right`?(r.left-=a,s=0,a=0):(r.top-=o,c=0,o=0)}return{synthetic:u,payload:{evt:e,touch:t.event.mouse!==!0,mouse:t.event.mouse===!0,position:r,direction:i,isFirst:t.event.isFirst,isFinal:n===!0,duration:Date.now()-t.event.time,distance:{x:s,y:c},offset:{x:a,y:o},delta:{x:r.left-t.event.lastX,y:r.top-t.event.lastY}}}}var We=0,Ge=m({name:`touch-pan`,beforeMount(e,{value:t,modifiers:n}){if(n.mouse!==!0&&A.has.touch!==!0)return;function r(e,t){n.mouse===!0&&t===!0?g(e):(n.stop===!0&&l(e),n.prevent===!0&&E(e))}let i={uid:`qvtp_`+ We++,handler:t,modifiers:n,direction:Fe(n),noop:D,mouseStart(e){Ve(e,i)&&ce(e)&&(f(i,`temp`,[[document,`mousemove`,`move`,`notPassiveCapture`],[document,`mouseup`,`end`,`passiveCapture`]]),i.start(e,!0))},touchStart(e){if(Ve(e,i)){let t=e.target;f(i,`temp`,[[t,`touchmove`,`move`,`notPassiveCapture`],[t,`touchcancel`,`end`,`passiveCapture`],[t,`touchend`,`end`,`passiveCapture`]]),i.start(e)}},start(t,r){if(A.is.firefox===!0&&k(e,!0),i.lastEvt=t,r===!0||n.stop===!0){if(i.direction.all!==!0&&(r!==!0||i.modifiers.mouseAllDir!==!0&&i.modifiers.mousealldir!==!0)){let e=t.type.indexOf(`mouse`)===-1?new TouchEvent(t.type,t):new MouseEvent(t.type,t);t.defaultPrevented===!0&&E(e),t.cancelBubble===!0&&l(e),Object.assign(e,{qKeyEvent:t.qKeyEvent,qClickOutside:t.qClickOutside,qAnchorHandled:t.qAnchorHandled,qClonedBy:t.qClonedBy===void 0?[i.uid]:t.qClonedBy.concat(i.uid)}),i.initialEvent={target:t.target,event:e}}l(t)}let{left:a,top:o}=d(t);i.event={x:a,y:o,time:Date.now(),mouse:r===!0,detected:!1,isFirst:!0,isFinal:!1,lastX:a,lastY:o}},move(e){if(i.event===void 0)return;let t=d(e),a=t.left-i.event.x,o=t.top-i.event.y;if(a===0&&o===0)return;i.lastEvt=e;let s=i.event.mouse===!0,c=()=>{r(e,s);let t;n.preserveCursor!==!0&&n.preservecursor!==!0&&(t=document.documentElement.style.cursor||``,document.documentElement.style.cursor=`grabbing`),s===!0&&document.body.classList.add(`no-pointer-events--children`),document.body.classList.add(`non-selectable`),ye(),i.styleCleanup=e=>{if(i.styleCleanup=void 0,t!==void 0&&(document.documentElement.style.cursor=t),document.body.classList.remove(`non-selectable`),s===!0){let t=()=>{document.body.classList.remove(`no-pointer-events--children`)};e===void 0?t():setTimeout(()=>{t(),e()},50)}else e!==void 0&&e()}};if(i.event.detected===!0){i.event.isFirst!==!0&&r(e,i.event.mouse);let{payload:t,synthetic:n}=Ue(e,i,!1);t!==void 0&&(i.handler(t)===!1?i.end(e):(i.styleCleanup===void 0&&i.event.isFirst===!0&&c(),i.event.lastX=t.position.left,i.event.lastY=t.position.top,i.event.lastDir=n===!0?void 0:t.direction,i.event.isFirst=!1));return}if(i.direction.all===!0||s===!0&&(i.modifiers.mouseAllDir===!0||i.modifiers.mousealldir===!0)){c(),i.event.detected=!0,i.move(e);return}let l=Math.abs(a),u=Math.abs(o);l!==u&&(i.direction.horizontal===!0&&l>u||i.direction.vertical===!0&&l<u||i.direction.up===!0&&l<u&&o<0||i.direction.down===!0&&l<u&&o>0||i.direction.left===!0&&l>u&&a<0||i.direction.right===!0&&l>u&&a>0?(i.event.detected=!0,i.move(e)):i.end(e,!0))},end(t,n){if(i.event!==void 0){if(v(i,`temp`),A.is.firefox===!0&&k(e,!1),n===!0)i.styleCleanup?.(),i.event.detected!==!0&&i.initialEvent!==void 0&&i.initialEvent.target.dispatchEvent(i.initialEvent.event);else if(i.event.detected===!0){i.event.isFirst===!0&&i.handler(Ue(t===void 0?i.lastEvt:t,i).payload);let{payload:e}=Ue(t===void 0?i.lastEvt:t,i,!0),n=()=>{i.handler(e)};i.styleCleanup===void 0?n():i.styleCleanup(n)}i.event=void 0,i.initialEvent=void 0,i.lastEvt=void 0}}};e.__qtouchpan=i,n.mouse===!0&&f(i,`main`,[[e,`mousedown`,`mouseStart`,`passive${n.mouseCapture===!0||n.mousecapture===!0?`Capture`:``}`]]),A.has.touch===!0&&f(i,`main`,[[e,`touchstart`,`touchStart`,`passive${n.capture===!0?`Capture`:``}`],[e,`touchmove`,`noop`,`notPassiveCapture`]])},updated(e,t){let n=e.__qtouchpan;n!==void 0&&(t.oldValue!==t.value&&(typeof value!=`function`&&n.end(),n.handler=t.value),n.direction=Fe(t.modifiers))},beforeUnmount(e){let t=e.__qtouchpan;t!==void 0&&(t.event!==void 0&&t.end(),v(t,`main`),v(t,`temp`),A.is.firefox===!0&&k(e,!1),t.styleCleanup?.(),delete e.__qtouchpan)}}),Ke=150,qe=H({name:`QDrawer`,inheritAttrs:!1,props:{...Ce,...we,side:{type:String,default:`left`,validator:e=>[`left`,`right`].includes(e)},width:{type:Number,default:300},mini:Boolean,miniToOverlay:Boolean,miniWidth:{type:Number,default:57},noMiniAnimation:Boolean,breakpoint:{type:Number,default:1023},showIfAbove:Boolean,behavior:{type:String,validator:e=>[`default`,`desktop`,`mobile`].includes(e),default:`default`},bordered:Boolean,elevated:Boolean,overlay:Boolean,persistent:Boolean,noSwipeOpen:Boolean,noSwipeClose:Boolean,noSwipeBackdrop:Boolean},emits:[...he,`onLayout`,`miniState`],setup(e,{slots:t,emit:n,attrs:a}){let o=se(),{proxy:{$q:c}}=o,l=Te(e,c),{preventBodyScroll:u}=je(),{registerTimeout:d,removeTimeout:f}=xe(),m=oe(de,me);if(m===me)return console.error(`QDrawer needs to be child of QLayout`),me;let h,g=null,_,v=O(e.behavior===`mobile`||e.behavior!==`desktop`&&m.totalWidth.value<=e.breakpoint),y=W(()=>e.mini===!0&&v.value!==!0),b=W(()=>y.value===!0?e.miniWidth:e.width),x=O(e.showIfAbove===!0&&v.value===!1?!0:e.modelValue===!0),S=W(()=>e.persistent!==!0&&(v.value===!0||ne.value===!0));function C(e,t){if(k(),e!==!1&&m.animate(),J(0),v.value===!0){let e=m.instances[z.value];e?.belowBreakpoint===!0&&e.hide(!1),Y(1),m.isContainer.value!==!0&&u(!0)}else Y(0),e!==!1&&he(!1);d(()=>{e!==!1&&he(!0),t!==!0&&n(`show`,e)},Ke)}function T(e,t){A(),e!==!1&&m.animate(),Y(0),J(P.value*b.value),be(),t===!0?f():d(()=>{n(`hide`,e)},Ke)}let{show:E,hide:D}=ge({showing:x,hideOnRouteChange:S,handleShow:C,handleHide:T}),{addToHistory:k,removeFromHistory:A}=Ee(x,D,S),j={belowBreakpoint:v,hide:D},N=W(()=>e.side===`right`),P=W(()=>(c.lang.rtl===!0?-1:1)*(N.value===!0?1:-1)),F=O(0),I=O(!1),L=O(!1),R=O(b.value*P.value),z=W(()=>N.value===!0?`left`:`right`),B=W(()=>x.value===!0&&v.value===!1&&e.overlay===!1?e.miniToOverlay===!0?e.miniWidth:b.value:0),V=W(()=>e.overlay===!0||e.miniToOverlay===!0||m.view.value.indexOf(N.value?`R`:`L`)!==-1||c.platform.is.ios===!0&&m.isContainer.value===!0),H=W(()=>e.overlay===!1&&x.value===!0&&v.value===!1),ne=W(()=>e.overlay===!0&&x.value===!0&&v.value===!1),U=W(()=>`fullscreen q-drawer__backdrop`+(x.value===!1&&I.value===!1?` hidden`:``)),re=W(()=>({backgroundColor:`rgba(0,0,0,${F.value*.4})`})),ie=W(()=>N.value===!0?m.rows.value.top[2]===`r`:m.rows.value.top[0]===`l`),G=W(()=>N.value===!0?m.rows.value.bottom[2]===`r`:m.rows.value.bottom[0]===`l`),ae=W(()=>{let e={};return m.header.space===!0&&ie.value===!1&&(V.value===!0?e.top=`${m.header.offset}px`:m.header.space===!0&&(e.top=`${m.header.size}px`)),m.footer.space===!0&&G.value===!1&&(V.value===!0?e.bottom=`${m.footer.offset}px`:m.footer.space===!0&&(e.bottom=`${m.footer.size}px`)),e}),K=W(()=>{let e={width:`${b.value}px`,transform:`translateX(${R.value}px)`};return v.value===!0?e:Object.assign(e,ae.value)}),ce=W(()=>`q-drawer__content fit `+(m.isContainer.value===!0?`overflow-auto`:`scroll`)),le=W(()=>`q-drawer q-drawer--${e.side}`+(L.value===!0?` q-drawer--mini-animate`:``)+(e.bordered===!0?` q-drawer--bordered`:``)+(l.value===!0?` q-drawer--dark q-dark`:``)+(I.value===!0?` no-transition`:x.value===!0?``:` q-layout--prevent-focus`)+(v.value===!0?` fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding`:` q-drawer--${y.value===!0?`mini`:`standard`}`+(V.value===!0||H.value!==!0?` fixed`:``)+(e.overlay===!0||e.miniToOverlay===!0?` q-drawer--on-top`:``)+(ie.value===!0?` q-drawer--top-padding`:``))),ue=W(()=>[[Ge,ve,void 0,{[c.lang.rtl===!0?e.side:z.value]:!0,mouse:!0}]]),fe=W(()=>[[Ge,ye,void 0,{[c.lang.rtl===!0?z.value:e.side]:!0,mouse:!0}]]),q=W(()=>[[Ge,ye,void 0,{[c.lang.rtl===!0?z.value:e.side]:!0,mouse:!0,mouseAllDir:!0}]]);function pe(){Z(v,e.behavior===`mobile`||e.behavior!==`desktop`&&m.totalWidth.value<=e.breakpoint)}p(v,t=>{t===!0?(h=x.value,x.value===!0&&D(!1)):e.overlay===!1&&e.behavior!==`mobile`&&h!==!1&&(x.value===!0?(J(0),Y(0),be()):E(!1))}),p(()=>e.side,(e,t)=>{m.instances[t]===j&&(m.instances[t]=void 0,m[t].space=!1,m[t].offset=0),m.instances[e]=j,m[e].size=b.value,m[e].space=H.value,m[e].offset=B.value}),p(m.totalWidth,()=>{(m.isContainer.value===!0||document.qScrollPrevented!==!0)&&pe()}),p(()=>e.behavior+e.breakpoint,pe),p(m.isContainer,e=>{x.value===!0&&u(e!==!0),e===!0&&pe()}),p(m.scrollbarWidth,()=>{J(x.value===!0?0:void 0)}),p(B,e=>{X(`offset`,e)}),p(H,e=>{n(`onLayout`,e),X(`space`,e)}),p(N,()=>{J()}),p(b,t=>{J(),Se(e.miniToOverlay,t)}),p(()=>e.miniToOverlay,e=>{Se(e,b.value)}),p(()=>c.lang.rtl,()=>{J()}),p(()=>e.mini,()=>{e.noMiniAnimation||e.modelValue===!0&&(_e(),m.animate())}),p(y,e=>{n(`miniState`,e)});function J(e){e===void 0?i(()=>{e=x.value===!0?0:b.value,J(P.value*e)}):(m.isContainer.value===!0&&N.value===!0&&(v.value===!0||Math.abs(e)===b.value)&&(e+=P.value*m.scrollbarWidth.value),R.value=e)}function Y(e){F.value=e}function he(e){let t=e===!0?`remove`:m.isContainer.value===!0?``:`add`;t!==``&&document.body.classList[t](`q-body--drawer-toggle`)}function _e(){g!==null&&clearTimeout(g),o.proxy&&o.proxy.$el&&o.proxy.$el.classList.add(`q-drawer--mini-animate`),L.value=!0,g=setTimeout(()=>{g=null,L.value=!1,o?.proxy?.$el?.classList.remove(`q-drawer--mini-animate`)},150)}function ve(e){if(x.value!==!1)return;let t=b.value,n=Oe(e.distance.x,0,t);if(e.isFinal===!0){n>=Math.min(75,t)?E():(m.animate(),Y(0),J(P.value*t)),I.value=!1;return}J((c.lang.rtl===!0?N.value!==!0:N.value)?Math.max(t-n,0):Math.min(0,n-t)),Y(Oe(n/t,0,1)),e.isFirst===!0&&(I.value=!0)}function ye(t){if(x.value!==!0)return;let n=b.value,r=t.direction===e.side,i=(c.lang.rtl===!0?r!==!0:r)?Oe(t.distance.x,0,n):0;if(t.isFinal===!0){Math.abs(i)<Math.min(75,n)?(m.animate(),Y(1),J(0)):D(),I.value=!1;return}J(P.value*i),Y(Oe(1-i/n,0,1)),t.isFirst===!0&&(I.value=!0)}function be(){u(!1),he(!0)}function X(t,n){m.update(e.side,t,n)}function Z(e,t){e.value!==t&&(e.value=t)}function Se(t,n){X(`size`,t===!0?e.miniWidth:n)}return m.instances[e.side]=j,Se(e.miniToOverlay,b.value),X(`space`,H.value),X(`offset`,B.value),e.showIfAbove===!0&&e.modelValue!==!0&&x.value===!0&&e[`onUpdate:modelValue`]!==void 0&&n(`update:modelValue`,!0),te(()=>{n(`onLayout`,H.value),n(`miniState`,y.value),h=e.showIfAbove===!0;let t=()=>{(x.value===!0?C:T)(!1,!0)};if(m.totalWidth.value!==0){i(t);return}_=p(m.totalWidth,()=>{_(),_=void 0,x.value===!1&&e.showIfAbove===!0&&v.value===!1?E(!1):t()})}),s(()=>{_?.(),g!==null&&(clearTimeout(g),g=null),x.value===!0&&be(),m.instances[e.side]===j&&(m.instances[e.side]=void 0,X(`size`,0),X(`offset`,0),X(`space`,!1))}),()=>{let n=[];v.value===!0&&(e.noSwipeOpen===!1&&n.push(w(M(`div`,{key:`open`,class:`q-drawer__opener fixed-${e.side}`,"aria-hidden":`true`}),ue.value)),n.push(ee(`div`,{ref:`backdrop`,class:U.value,style:re.value,"aria-hidden":`true`,onClick:D},void 0,`backdrop`,e.noSwipeBackdrop!==!0&&x.value===!0,()=>q.value)));let i=y.value===!0&&t.mini!==void 0,o=[M(`div`,{...a,key:String(i),class:[ce.value,a.class]},i===!0?t.mini():r(t.default))];return e.elevated===!0&&x.value===!0&&o.push(M(`div`,{class:`q-layout__shadow absolute-full overflow-hidden no-pointer-events`})),n.push(ee(`aside`,{ref:`content`,class:le.value,style:K.value},o,`contentclose`,e.noSwipeClose!==!0&&v.value===!0,()=>fe.value)),M(`div`,{class:`q-drawer-container`},n)}}}),Je=H({name:`QPageContainer`,setup(e,{slots:t}){let{proxy:{$q:n}}=se(),i=oe(de,me);if(i===me)return console.error(`QPageContainer needs to be child of QLayout`),me;x(pe,!0);let a=W(()=>{let e={};return i.header.space===!0&&(e.paddingTop=`${i.header.size}px`),i.right.space===!0&&(e[`padding${n.lang.rtl===!0?`Left`:`Right`}`]=`${i.right.size}px`),i.footer.space===!0&&(e.paddingBottom=`${i.footer.size}px`),i.left.space===!0&&(e[`padding${n.lang.rtl===!0?`Right`:`Left`}`]=`${i.left.size}px`),e});return()=>M(`div`,{class:`q-page-container`,style:a.value},r(t.default))}}),{passive:Ye}=t,Xe=[`both`,`horizontal`,`vertical`],Ze=H({name:`QScrollObserver`,props:{axis:{type:String,validator:e=>Xe.includes(e),default:`vertical`},debounce:[String,Number],scrollTarget:X},emits:[`scroll`],setup(e,{emit:t}){let n={position:{top:0,left:0},direction:`down`,directionChanged:!1,delta:{top:0,left:0},inflectionPoint:{top:0,left:0}},r=null,i,a;p(()=>e.scrollTarget,()=>{l(),c()});function o(){r?.();let a=Math.max(0,ve(i)),o=_e(i),s={top:a-n.position.top,left:o-n.position.left};if(e.axis===`vertical`&&s.top===0||e.axis===`horizontal`&&s.left===0)return;let c=Math.abs(s.top)>=Math.abs(s.left)?s.top<0?`up`:`down`:s.left<0?`left`:`right`;n.position={top:a,left:o},n.directionChanged=n.direction!==c,n.delta=s,n.directionChanged===!0&&(n.direction=c,n.inflectionPoint=n.position),t(`scroll`,{...n})}function c(){i=be(a,e.scrollTarget),i.addEventListener(`scroll`,u,Ye),u(!0)}function l(){i!==void 0&&(i.removeEventListener(`scroll`,u,Ye),i=void 0)}function u(t){if(t===!0||e.debounce===0||e.debounce===`0`)o();else if(r===null){let[t,n]=e.debounce?[setTimeout(o,e.debounce),clearTimeout]:[requestAnimationFrame(o),cancelAnimationFrame];r=()=>{n(t),r=null}}}let{proxy:d}=se();return p(()=>d.$q.lang.rtl,o),te(()=>{a=d.$el.parentNode,c()}),s(()=>{r?.(),l()}),Object.assign(d,{trigger:u,getPosition:()=>n}),D}}),Qe=H({name:`QLayout`,props:{container:Boolean,view:{type:String,default:`hhh lpr fff`,validator:e=>/^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(e.toLowerCase())},onScroll:Function,onScrollHeight:Function,onResize:Function},setup(t,{slots:r,emit:i}){let{proxy:{$q:a}}=se(),o=O(null),s=O(a.screen.height),c=O(t.container===!0?0:a.screen.width),l=O({position:0,direction:`down`,inflectionPoint:0}),u=O(0),d=O(C.value===!0?0:Se()),f=W(()=>`q-layout q-layout--`+(t.container===!0?`containerized`:`standard`)),m=W(()=>t.container===!1?{minHeight:a.screen.height+`px`}:null),h=W(()=>d.value===0?null:{[a.lang.rtl===!0?`left`:`right`]:`${d.value}px`}),g=W(()=>d.value===0?null:{[a.lang.rtl===!0?`right`:`left`]:0,[a.lang.rtl===!0?`left`:`right`]:`-${d.value}px`,width:`calc(100% + ${d.value}px)`});function _(e){if(t.container===!0||document.qScrollPrevented!==!0){let n={position:e.position.top,direction:e.direction,directionChanged:e.directionChanged,inflectionPoint:e.inflectionPoint.top,delta:e.delta.top};l.value=n,t.onScroll!==void 0&&i(`scroll`,n)}}function v(e){let{height:n,width:r}=e,a=!1;s.value!==n&&(a=!0,s.value=n,t.onScrollHeight!==void 0&&i(`scrollHeight`,n),b()),c.value!==r&&(a=!0,c.value=r),a===!0&&t.onResize!==void 0&&i(`resize`,e)}function y({height:e}){u.value!==e&&(u.value=e,b())}function b(){if(t.container===!0){let e=s.value>u.value?Se():0;d.value!==e&&(d.value=e)}}let S=null,w={instances:{},view:W(()=>t.view),isContainer:W(()=>t.container),rootRef:o,height:s,containerHeight:u,scrollbarWidth:d,totalWidth:W(()=>c.value+d.value),rows:W(()=>{let e=t.view.toLowerCase().split(` `);return{top:e[0].split(``),middle:e[1].split(``),bottom:e[2].split(``)}}),header:n({size:0,offset:0,space:!1}),right:n({size:300,offset:0,space:!1}),footer:n({size:0,offset:0,space:!1}),left:n({size:300,offset:0,space:!1}),scroll:l,animate(){S===null?document.body.classList.add(`q-body--layout-animate`):clearTimeout(S),S=setTimeout(()=>{S=null,document.body.classList.remove(`q-body--layout-animate`)},155)},update(e,t,n){w[e][t]=n}};if(x(de,w),Se()>0){let n=null,r=document.body;function i(){n=null,r.classList.remove(`hide-scrollbar`)}function o(){if(n===null){if(r.scrollHeight>a.screen.height)return;r.classList.add(`hide-scrollbar`)}else clearTimeout(n);n=setTimeout(i,300)}function s(e){n!==null&&e===`remove`&&(clearTimeout(n),i()),window[`${e}EventListener`](`resize`,o)}p(()=>t.container===!0?`remove`:`add`,s),t.container!==!0&&s(`add`),e(()=>{s(`remove`)})}return()=>{let e=ae(r.default,[M(Ze,{onScroll:_}),M(ze,{onResize:v})]),n=M(`div`,{class:f.value,style:m.value,ref:t.container===!0?void 0:o,tabindex:-1},e);return t.container===!0?M(`div`,{class:`q-layout-container overflow-hidden`,ref:o},[M(ze,{onResize:y}),M(`div`,{class:`absolute-full`,style:h.value},[M(`div`,{class:`scroll`,style:g.value},[n])])]):n}}}),$e={class:`acceptance-panel q-pa-md`},et={class:`row items-center q-mb-sm`},tt={key:0,class:`criterion-add-row row items-center q-mb-xs`},nt={key:1,class:`acceptance-list`},rt=[`onDblclick`],it={key:2,class:`text-caption text-grey-8`,style:{"font-size":`11px`}},at=Z(G({__name:`AcceptancePanel`,props:{tasks:{}},setup(e){let t=q(),n=O(!1),r=O(``),a=O(null),o=O(``),s=O({});function c(e,t){if(t){let n=t.$el??t;s.value[e]=n}else delete s.value[e]}function l(e){switch(e){case`done`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function d(e){switch(e){case`done`:return`#4ade80`;case`in_progress`:return`#f59e0b`;default:return`#888`}}async function f(e){let n=e.status===`done`?`pending`:`done`;try{let r=await fetch(`/api/workspaces/${e.workspaceId}/tasks/${e.id}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({status:n})});if(!r.ok)throw Error(`HTTP ${r.status}`);t.selectedWorkspaceId&&t.fetchWorkspaceDetails(t.selectedWorkspaceId)}catch(e){console.error(`Failed to update task:`,e)}}function p(){n.value=!0,r.value=``}async function m(){let e=r.value.trim(),i=t.selectedWorkspace?.id;if(!(!e||!i))try{await t.createTask(i,e,!0),r.value=``,n.value=!1}catch{}}function g(){r.value=``,n.value=!1}function v(e){a.value=e.id,o.value=e.title,i(()=>{let t=s.value[e.id]?.querySelector(`input, textarea`);t?.focus(),t?.select()})}async function y(e){if(a.value!==e.id)return;let n=o.value.trim(),r=e.id;if(a.value=null,!n||n===e.title)return;let i=t.selectedWorkspace?.id;if(i)try{await t.updateTaskTitle(i,r,n)}catch{}}function x(){a.value=null,o.value=``}async function C(e){let n=t.selectedWorkspace?.id;if(n)try{await t.deleteTask(n,e.id)}catch{}}return(i,s)=>(b(),z(`div`,$e,[P(`div`,et,[s[2]||=P(`div`,{class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},` Acceptance Criteria `,-1),I(Y),u(t).selectedWorkspace?(b(),F(U,{key:0,flat:``,dense:``,round:``,size:`xs`,icon:`add`,color:`indigo-4`,title:`Add criterion`,onClick:p})):V(``,!0)]),n.value?(b(),z(`div`,tt,[I(ke,{modelValue:r.value,"onUpdate:modelValue":s[0]||=e=>r.value=e,dark:``,dense:``,borderless:``,autofocus:``,placeholder:`New criterion... (Enter to add, Esc to cancel)`,class:`col criterion-input`,"input-class":`criterion-input-inner`,onKeydown:[R(j(m,[`prevent`]),[`enter`]),R(j(g,[`prevent`]),[`esc`])]},null,8,[`modelValue`,`onKeydown`])])):V(``,!0),e.tasks.length>0?(b(),z(`div`,nt,[(b(!0),z(B,null,S(e.tasks,e=>(b(),z(`div`,{key:e.id,class:`acceptance-item row items-center q-mb-xxs`},[I(K,{name:l(e.status),size:`16px`,style:ne({color:d(e.status)}),class:`q-mr-xs cursor-pointer`,onClick:t=>f(e)},null,8,[`name`,`style`,`onClick`]),a.value===e.id?(b(),F(ke,{key:0,ref_for:!0,ref:t=>c(e.id,t),modelValue:o.value,"onUpdate:modelValue":s[1]||=e=>o.value=e,dark:``,dense:``,borderless:``,class:`col criterion-input`,"input-class":`criterion-input-inner`,onKeydown:[R(j(t=>y(e),[`prevent`]),[`enter`]),R(j(x,[`prevent`]),[`esc`])],onBlur:t=>y(e)},null,8,[`modelValue`,`onKeydown`,`onBlur`])):(b(),z(B,{key:1},[P(`span`,{class:_([`col acceptance-title text-caption`,{"text-strike":e.status===`done`}]),style:ne({color:e.status===`done`?`#4ade80`:`#ccc`}),onDblclick:t=>v(e)},h(e.title),47,rt),I(U,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,color:`grey-6`,class:`criterion-delete-btn`,onClick:t=>C(e)},null,8,[`onClick`])],64))]))),128))])):n.value?V(``,!0):(b(),z(`div`,it,` No acceptance criteria `))]))}}),[[`__scopeId`,`data-v-b9e5e638`]]),ot=H({name:`QCardSection`,props:{tag:{type:String,default:`div`},horizontal:Boolean},setup(e,{slots:t}){let n=W(()=>`q-card__section q-card__section--${e.horizontal===!0?`horiz row no-wrap`:`vert`}`);return()=>M(e.tag,{class:n.value},r(t.default))}}),st=H({name:`QCard`,props:{...we,tag:{type:String,default:`div`},square:Boolean,flat:Boolean,bordered:Boolean},setup(e,{slots:t}){let{proxy:{$q:n}}=se(),i=Te(e,n),a=W(()=>`q-card`+(i.value===!0?` q-card--dark q-dark`:``)+(e.bordered===!0?` q-card--bordered`:``)+(e.square===!0?` q-card--square no-border-radius`:``)+(e.flat===!0?` q-card--flat no-shadow`:``));return()=>M(e.tag,{class:a.value},r(t.default))}}),ct={class:`log-text rounded-borders q-pa-md`},lt=Z(G({__name:`DevServerLogDialog`,props:{modelValue:{type:Boolean},workspaceId:{}},emits:[`update:modelValue`],setup(t){let n=t,r=ue(),a=O(``),o=O(!1),s=O(null),c=null;async function l(){if(n.workspaceId){o.value=!0;try{a.value=await r.fetchLogs(n.workspaceId),await i(),u()}finally{o.value=!1}}}function u(){s.value&&(s.value.scrollTop=s.value.scrollHeight)}function d(){f(),c=setInterval(()=>{l()},5e3)}function f(){c&&=(clearInterval(c),null)}return p(()=>n.modelValue,e=>{e?(l(),d()):f()}),e(()=>{f()}),(e,n)=>(b(),F(Ae,{"model-value":t.modelValue,"onUpdate:modelValue":n[1]||=t=>e.$emit(`update:modelValue`,t)},{default:y(()=>[I(st,{class:`text-grey-3`,style:{"min-width":`700px`,"max-width":`900px`,"max-height":`80vh`,background:`#1e1e3a`}},{default:y(()=>[I(ot,{class:`row items-center`},{default:y(()=>[n[2]||=P(`div`,{class:`text-h6`},`Logs Dev Server`,-1),I(Y),I(U,{flat:``,round:``,dense:``,icon:`refresh`,color:`grey-5`,onClick:l,loading:o.value},null,8,[`loading`]),I(U,{flat:``,round:``,dense:``,icon:`close`,color:`grey-5`,onClick:n[0]||=t=>e.$emit(`update:modelValue`,!1)})]),_:1}),I(De,{dark:``}),I(ot,{class:`log-content`,ref_key:`logContainer`,ref:s},{default:y(()=>[P(`pre`,ct,h(a.value||`No logs available`),1)]),_:1},512)]),_:1})]),_:1},8,[`model-value`]))}}),[[`__scopeId`,`data-v-c1509b16`]]),ut={class:`dd-panel q-px-md q-py-sm`},dt={key:0,class:`text-caption text-grey-8`},ft={key:1,class:`text-caption text-grey-8`},pt={class:`row items-center q-mb-xs`},mt={key:0,class:`text-caption q-mb-xs`},ht=[`href`],gt={key:1,class:`text-caption text-grey-7`,style:{"font-size":`10px`}},_t={key:2,class:`text-caption text-red-5`},vt=Z(G({__name:`DevServerPanel`,props:{workspace:{}},setup(t){let n=t,r=ue(),i=a(),o=O(!1),s=O(!1),l=O(!1),u=null,d=W(()=>n.workspace?.id??``),f=W(()=>n.workspace?!!i.getProjectByPath(n.workspace.projectPath)?.devServer?.startCommand:!1),m=W(()=>d.value?r.getStatus(d.value):null),g=W(()=>{switch(m.value?.status){case`running`:return`green-9`;case`starting`:case`stopping`:return`orange-9`;case`error`:return`red-9`;default:return`grey-8`}}),_=W(()=>{switch(m.value?.status){case`running`:return`Running`;case`starting`:return`Starting`;case`stopping`:return`Stopping`;case`error`:return`Error`;case`stopped`:return`Stopped`;default:return`Unknown`}}),v=W(()=>{let e=m.value?.status;return!e||e===`stopped`||e===`unknown`||e===`error`}),x=W(()=>{let e=m.value?.status;return e===`running`||e===`starting`});async function S(){if(d.value){s.value=!0;try{await r.startDevServer(d.value)}finally{s.value=!1}}}async function C(){if(d.value){l.value=!0;try{await r.stopDevServer(d.value)}finally{l.value=!1}}}function w(){d.value&&f.value&&r.fetchStatus(d.value)}function T(){E(),u=setInterval(()=>{w()},3e4)}function E(){u&&=(clearInterval(u),null)}return p(d,()=>{w(),T()}),te(()=>{w(),T()}),e(()=>{E()}),(e,n)=>{let r=c(`router-link`);return b(),z(`div`,ut,[n[5]||=P(`div`,{class:`text-caption text-uppercase text-weight-bold text-grey-5 q-mb-xs`},` Dev Server `,-1),t.workspace?f.value?m.value?(b(),z(B,{key:2},[P(`div`,pt,[I($,{color:g.value,label:_.value,style:{"font-size":`10px`}},null,8,[`color`,`label`]),I(Y),v.value?(b(),F(U,{key:0,flat:``,round:``,dense:``,icon:`play_arrow`,size:`xs`,color:`green-5`,onClick:S,loading:s.value},null,8,[`loading`])):V(``,!0),x.value?(b(),F(U,{key:1,flat:``,round:``,dense:``,icon:`stop`,size:`xs`,color:`red-5`,onClick:C,loading:l.value},null,8,[`loading`])):V(``,!0),I(U,{flat:``,round:``,dense:``,icon:`article`,size:`xs`,color:`grey-5`,onClick:n[0]||=e=>o.value=!0},{default:y(()=>[I(Q,null,{default:y(()=>[...n[4]||=[L(`Logs`,-1)]]),_:1})]),_:1})]),m.value.status===`running`&&m.value.url?(b(),z(`div`,mt,[P(`a`,{href:m.value.url,target:`_blank`,style:{color:`#6c63ff`}},h(m.value.url),9,ht)])):V(``,!0),m.value.containers.length>0?(b(),z(`div`,gt,h(m.value.containers.length)+` container`+h(m.value.containers.length>1?`s`:``),1)):V(``,!0),m.value.error?(b(),z(`div`,_t,h(m.value.error),1)):V(``,!0)],64)):V(``,!0):(b(),z(`div`,ft,[n[3]||=L(` Not configured — `,-1),I(r,{to:`/settings`,style:{color:`#6c63ff`}},{default:y(()=>[...n[2]||=[L(`Settings`,-1)]]),_:1})])):(b(),z(`div`,dt,` No workspace selected `)),d.value?(b(),F(lt,{key:3,modelValue:o.value,"onUpdate:modelValue":n[1]||=e=>o.value=e,"workspace-id":d.value},null,8,[`modelValue`,`workspace-id`])):V(``,!0)])}}}),[[`__scopeId`,`data-v-8c173889`]]),yt={class:`git-panel q-pa-md`},bt={class:`row items-center justify-between q-mb-sm`},xt={class:`row items-center q-mb-sm`},St={class:`text-caption text-grey-3`},Ct={class:`row items-center q-mb-sm`},wt={class:`text-caption text-grey-4`,style:{"font-family":`'Roboto Mono', monospace`,"font-size":`11px`}},Tt={class:`text-caption q-mb-sm text-grey-8`,style:{"font-size":`11px`}},Et={class:`row items-center q-mb-xs`},Dt={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},Ot={class:`row items-center q-mb-md`},kt={class:`text-caption text-grey-4`,style:{"font-size":`11px`}},At={key:0,class:`text-caption q-ml-xs`,style:{"font-size":`11px`,color:`#4ade80`}},jt={key:1,class:`text-caption q-ml-xs`,style:{"font-size":`11px`,color:`#f87171`}},Mt={key:1,class:`q-mb-md`},Nt={class:`row q-gutter-xs`},Pt={key:1,class:`text-caption text-grey-8`},Ft=Z(G({__name:`GitPanel`,props:{workspace:{}},setup(e){let t=e,n=He(),r=q(),i=O(!1),a=O(!1),o=O(null),s=O(!1),c=W(()=>{if(!t.workspace?.projectPath)return`-`;let e=t.workspace.projectPath.replace(/\\/g,`/`).split(`/`);return e[e.length-1]||e[e.length-2]||`-`});async function l(){if(!t.workspace){o.value=null;return}s.value=!0;try{o.value=await r.fetchGitStats(t.workspace.id)}catch{o.value=null}finally{s.value=!1}}p(()=>t.workspace?.id,()=>l(),{immediate:!0});async function u(){if(t.workspace){i.value=!0;try{await r.pushBranch(t.workspace.id),n.notify({type:`positive`,message:`Branch pushed`,position:`top`}),l()}catch(e){let t=e instanceof Error?e.message:`Push failed`;n.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{i.value=!1}}}async function d(){if(t.workspace){a.value=!0;try{let e=await r.openPullRequest(t.workspace.id);e.messageSent===!1&&e.warning?n.notify({type:`warning`,message:`PR #${e.prNumber} opened — agent not active, message not sent`,caption:e.prUrl,position:`top`,timeout:6e3}):n.notify({type:`positive`,message:`PR #${e.prNumber} opened`,caption:e.prUrl,position:`top`,timeout:5e3})}catch(e){if(e instanceof le&&e.code===`branch_not_pushed`){n.notify({type:`warning`,message:`Branch is not on remote. Click Push first.`,position:`top`,timeout:6e3});return}if(e instanceof le&&e.code===`unpushed_commits`){n.notify({type:`warning`,message:`Local commits are not pushed. Click Push first.`,position:`top`,timeout:6e3});return}let t=e instanceof Error?e.message:`Open PR failed`;n.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{a.value=!1}}}return(t,n)=>(b(),z(`div`,yt,[P(`div`,bt,[n[1]||=P(`div`,{class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},` Git `,-1),e.workspace?(b(),F(U,{key:0,flat:``,round:``,dense:``,size:`xs`,icon:`refresh`,color:`grey-6`,loading:s.value,onClick:l},null,8,[`loading`])):V(``,!0)]),e.workspace?(b(),z(B,{key:0},[P(`div`,xt,[I(K,{name:`folder`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),P(`span`,St,h(c.value),1)]),P(`div`,Ct,[n[2]||=P(`span`,{style:{width:`8px`,height:`8px`,"border-radius":`50%`,"background-color":`#4ade80`,display:`inline-block`},class:`q-mr-xs`},null,-1),P(`span`,wt,h(e.workspace.workingBranch),1)]),P(`div`,Tt,` from `+h(e.workspace.sourceBranch)+` · local only `,1),o.value&&(o.value.commitCount>0||o.value.filesChanged>0)?(b(),z(B,{key:0},[P(`div`,Et,[I(K,{name:`commit`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),P(`span`,Dt,h(o.value.commitCount)+` commit`+h(o.value.commitCount===1?``:`s`),1)]),P(`div`,Ot,[I(K,{name:`insert_drive_file`,size:`14px`,color:`grey-6`,class:`q-mr-xs`}),P(`span`,kt,h(o.value.filesChanged)+` file`+h(o.value.filesChanged===1?``:`s`),1),o.value.insertions>0?(b(),z(`span`,At,` +`+h(o.value.insertions),1)):V(``,!0),o.value.deletions>0?(b(),z(`span`,jt,` -`+h(o.value.deletions),1)):V(``,!0)])],64)):(b(),z(`div`,Mt)),P(`div`,Nt,[o.value?.prUrl?(b(),F(U,{key:0,dense:``,"no-caps":``,size:`sm`,outline:``,color:`green-4`,label:`View PR`,icon:`open_in_new`,class:`git-btn`,onClick:n[0]||=e=>t.window.open(o.value.prUrl,`_blank`)})):V(``,!0),I(U,{dense:``,"no-caps":``,size:`sm`,color:`primary`,label:`Open PR`,class:`git-btn`,loading:a.value,disable:!e.workspace||i.value,onClick:d},null,8,[`loading`,`disable`]),I(U,{dense:``,"no-caps":``,size:`sm`,outline:``,color:`grey-5`,label:`Push`,class:`git-btn`,loading:i.value,disable:!e.workspace||a.value,onClick:u},null,8,[`loading`,`disable`])])],64)):(b(),z(`div`,Pt,` Select a workspace `))]))}}),[[`__scopeId`,`data-v-5a52aa16`]]),It={xs:2,sm:4,md:6,lg:10,xl:14};function Lt(e,t,n){return{transform:t===!0?`translateX(${n.lang.rtl===!0?`-`:``}100%) scale3d(${-e},1,1)`:`scale3d(${e},1,1)`}}var Rt=H({name:`QLinearProgress`,props:{...we,...o,value:{type:Number,default:0},buffer:Number,color:String,trackColor:String,reverse:Boolean,stripe:Boolean,indeterminate:Boolean,query:Boolean,rounded:Boolean,animationSpeed:{type:[String,Number],default:2100},instantFeedback:Boolean},setup(e,{slots:t}){let{proxy:n}=se(),r=Te(e,n.$q),i=T(e,It),a=W(()=>e.indeterminate===!0||e.query===!0),o=W(()=>e.reverse!==e.query),s=W(()=>({...i.value===null?{}:i.value,"--q-linear-progress-speed":`${e.animationSpeed}ms`})),c=W(()=>`q-linear-progress`+(e.color===void 0?``:` text-${e.color}`)+(e.reverse===!0||e.query===!0?` q-linear-progress--reverse`:``)+(e.rounded===!0?` rounded-borders`:``)),l=W(()=>Lt(e.buffer===void 0?1:e.buffer,o.value,n.$q)),u=W(()=>`with${e.instantFeedback===!0?`out`:``}-transition`),d=W(()=>`q-linear-progress__track absolute-full q-linear-progress__track--${u.value} q-linear-progress__track--${r.value===!0?`dark`:`light`}`+(e.trackColor===void 0?``:` bg-${e.trackColor}`)),f=W(()=>Lt(a.value===!0?1:e.value,o.value,n.$q)),p=W(()=>`q-linear-progress__model absolute-full q-linear-progress__model--${u.value} q-linear-progress__model--${a.value===!0?`in`:``}determinate`),m=W(()=>({width:`${e.value*100}%`})),h=W(()=>`q-linear-progress__stripe absolute-${e.reverse===!0?`right`:`left`} q-linear-progress__stripe--${u.value}`);return()=>{let n=[M(`div`,{class:d.value,style:l.value}),M(`div`,{class:p.value,style:f.value})];return e.stripe===!0&&a.value===!1&&n.push(M(`div`,{class:h.value,style:m.value})),M(`div`,{class:c.value,style:s.value,role:`progressbar`,"aria-valuemin":0,"aria-valuemax":1,"aria-valuenow":e.indeterminate===!0?void 0:e.value},ae(t.default,n))}}}),zt={class:`notion-panel q-pa-md`},Bt={class:`row items-center q-mb-sm`},Vt={key:0,class:`q-mb-sm`},Ht=[`href`],Ut={key:1,class:`text-caption q-mb-sm text-grey-8`},Wt={key:3,class:`q-mb-sm`},Gt={class:`text-caption text-grey-7`,style:{"font-size":`11px`}},Kt={key:4,class:`text-caption text-grey-8 q-mb-sm`,style:{"font-size":`11px`}},qt={key:5,class:`task-add-row row items-center q-mb-xs`},Jt={key:6,class:`tasks-list`},Yt=[`onDblclick`],Xt={key:1,class:`text-caption text-grey-8`},Zt=Z(G({__name:`NotionPanel`,props:{workspace:{},tasks:{}},setup(e){let t=e,n=q(),r=O(!1),a=W(()=>t.tasks.filter(e=>!e.isAcceptanceCriterion)),o=W(()=>a.value.filter(e=>e.status===`done`).length),s=W(()=>a.value.length),c=W(()=>s.value>0?o.value/s.value:0),l=O(!1),u=O(``),d=O(null),f=O(``),p=O({});function m(e,t){if(t){let n=t.$el??t;p.value[e]=n}else delete p.value[e]}async function g(){if(!(!t.workspace?.id||!t.workspace.notionUrl)){r.value=!0;try{let e=await fetch(`/api/workspaces/${t.workspace.id}/refresh-notion`,{method:`POST`});if(!e.ok)throw Error(`HTTP ${e.status}`);n.fetchWorkspaceDetails(t.workspace.id)}catch(e){console.error(`Failed to refresh from Notion:`,e)}finally{r.value=!1}}}function v(){l.value=!0,u.value=``}async function y(){let e=u.value.trim();if(!(!e||!t.workspace?.id))try{await n.createTask(t.workspace.id,e,!1),u.value=``,l.value=!1}catch{}}function x(){u.value=``,l.value=!1}function C(e){d.value=e.id,f.value=e.title,i(()=>{let t=p.value[e.id]?.querySelector(`input, textarea`);t?.focus(),t?.select()})}async function w(e){if(d.value!==e.id)return;let r=f.value.trim(),i=e.id;if(d.value=null,!(!r||r===e.title)&&t.workspace?.id)try{await n.updateTaskTitle(t.workspace.id,i,r)}catch{}}function T(){d.value=null,f.value=``}async function E(e){if(t.workspace?.id)try{await n.deleteTask(t.workspace.id,e.id)}catch{}}async function D(e){if(!t.workspace?.id)return;let r=e.status===`done`?`pending`:`done`;try{let i=await fetch(`/api/workspaces/${e.workspaceId}/tasks/${e.id}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({status:r})});if(!i.ok)throw Error(`HTTP ${i.status}`);n.fetchWorkspaceDetails(t.workspace.id)}catch(e){console.error(`Failed to toggle task:`,e)}}function k(e){switch(e){case`done`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function A(e){switch(e){case`done`:return`#4ade80`;case`in_progress`:return`#f59e0b`;default:return`#888`}}return(t,n)=>(b(),z(`div`,zt,[P(`div`,Bt,[n[2]||=P(`div`,{class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},` Notion `,-1),I(Y),e.workspace?(b(),F(U,{key:0,flat:``,dense:``,round:``,size:`xs`,icon:`add`,color:`indigo-4`,title:`Add task`,onClick:v})):V(``,!0)]),e.workspace?(b(),z(B,{key:0},[e.workspace.notionUrl?(b(),z(`div`,Vt,[P(`a`,{href:e.workspace.notionUrl,target:`_blank`,rel:`noopener noreferrer`,class:`notion-link text-caption items-center text-blue-4`},[I(K,{name:`open_in_new`,size:`12px`,class:`q-mr-xs`}),n[3]||=L(` Open in Notion `,-1)],8,Ht)])):(b(),z(`div`,Ut,` No Notion URL `)),e.workspace.notionUrl?(b(),F(U,{key:2,flat:``,dense:``,"no-caps":``,size:`xs`,icon:`refresh`,label:`Refresh`,color:`grey-6`,class:`q-mb-sm`,loading:r.value,onClick:g},null,8,[`loading`])):V(``,!0),s.value>0?(b(),z(`div`,Wt,[I(Rt,{value:c.value,color:`primary`,"track-color":`grey-9`,class:`q-mb-xs`,style:{height:`4px`,"border-radius":`2px`}},null,8,[`value`]),P(`div`,Gt,h(o.value)+`/`+h(s.value)+` subtasks `,1)])):l.value?V(``,!0):(b(),z(`div`,Kt,` No tasks `)),l.value?(b(),z(`div`,qt,[I(ke,{modelValue:u.value,"onUpdate:modelValue":n[0]||=e=>u.value=e,dark:``,dense:``,borderless:``,autofocus:``,placeholder:`New task... (Enter to add, Esc to cancel)`,class:`col task-input`,"input-class":`task-input-inner`,onKeydown:[R(j(y,[`prevent`]),[`enter`]),R(j(x,[`prevent`]),[`esc`])]},null,8,[`modelValue`,`onKeydown`])])):V(``,!0),a.value.length>0?(b(),z(`div`,Jt,[(b(!0),z(B,null,S(a.value,e=>(b(),z(`div`,{key:e.id,class:`task-item row items-center q-py-xxs`},[I(K,{name:k(e.status),size:`14px`,style:ne({color:A(e.status)}),class:`q-mr-xs cursor-pointer`,onClick:t=>D(e)},null,8,[`name`,`style`,`onClick`]),d.value===e.id?(b(),F(ke,{key:0,ref_for:!0,ref:t=>m(e.id,t),modelValue:f.value,"onUpdate:modelValue":n[1]||=e=>f.value=e,dark:``,dense:``,borderless:``,class:`col task-input`,"input-class":`task-input-inner`,onKeydown:[R(j(t=>w(e),[`prevent`]),[`enter`]),R(j(T,[`prevent`]),[`esc`])],onBlur:t=>w(e)},null,8,[`modelValue`,`onKeydown`,`onBlur`])):(b(),z(B,{key:1},[P(`span`,{class:_([`col task-title text-caption`,{"text-strike":e.status===`done`}]),style:ne({color:e.status===`done`?`#4ade80`:`#ccc`}),onDblclick:t=>C(e)},h(e.title),47,Yt),I(U,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,color:`grey-6`,class:`task-delete-btn`,onClick:t=>E(e)},null,8,[`onClick`])],64))]))),128))])):V(``,!0)],64)):(b(),z(`div`,Xt,` Select a workspace `))]))}}),[[`__scopeId`,`data-v-5f29da43`]]),Qt={class:`subagents-panel q-pa-md`},$t={key:0,class:`text-caption text-grey-8`},en={class:`row items-center q-mb-xs`},tn={class:`text-caption text-weight-medium text-grey-3 ellipsis`,style:{"max-width":`220px`}},nn={key:0,class:`text-caption text-grey-6`,style:{"font-size":`10px`}},rn={class:`text-grey-4`},an={class:`row items-center q-gutter-xs q-mt-xs text-caption text-grey-7`,style:{"font-size":`10px`}},on={key:0},sn={key:1},cn={key:2},ln=Z(G({__name:`SubagentsPanel`,setup(e){let t=q(),n=W(()=>t.currentSubagents);function r(e){return e?e<1e3?`${e}ms`:e<6e4?`${(e/1e3).toFixed(1)}s`:`${Math.floor(e/6e4)}m ${Math.floor(e%6e4/1e3)}s`:``}function i(e){return e?e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e):``}return(e,t)=>(b(),z(`div`,Qt,[t[1]||=P(`div`,{class:`text-caption text-uppercase text-weight-bold text-grey-6 q-mb-sm`,style:{"letter-spacing":`0.05em`}},` Sub-agents `,-1),n.value.length===0?(b(),z(`div`,$t,` No sub-agent activity yet `)):V(``,!0),(b(!0),z(B,null,S(n.value,e=>(b(),z(`div`,{key:e.toolUseId,class:`subagent-item q-mb-sm rounded-borders q-pa-sm`},[P(`div`,en,[I(K,{name:e.status===`running`?`play_circle`:`check_circle`,size:`14px`,color:e.status===`running`?`green-4`:`grey-6`,class:`q-mr-xs`},null,8,[`name`,`color`]),P(`span`,tn,h(e.description||e.toolUseId),1)]),e.lastToolName?(b(),z(`div`,nn,[t[0]||=L(` Running: `,-1),P(`span`,rn,h(e.lastToolName),1)])):V(``,!0),P(`div`,an,[e.toolUses===void 0?V(``,!0):(b(),z(`span`,on,h(e.toolUses)+` tools`,1)),e.totalTokens?(b(),z(`span`,sn,`· `+h(i(e.totalTokens))+` tok`,1)):V(``,!0),e.durationMs?(b(),z(`span`,cn,`· `+h(r(e.durationMs)),1)):V(``,!0)])]))),128))]))}}),[[`__scopeId`,`data-v-b76be59d`]]),un=()=>M(`div`,{key:`svg`,class:`q-checkbox__bg absolute`},[M(`svg`,{class:`q-checkbox__svg fit absolute-full`,viewBox:`0 0 24 24`},[M(`path`,{class:`q-checkbox__truthy`,fill:`none`,d:`M1.73,12.91 8.1,19.28 22.79,4.59`}),M(`path`,{class:`q-checkbox__indet`,d:`M4,14H20V10H4`})])]),dn=H({name:`QCheckbox`,props:Re,emits:Ie,setup(e){let t=un();function n(n,r){let i=W(()=>(n.value===!0?e.checkedIcon:r.value===!0?e.indeterminateIcon:e.uncheckedIcon)||null);return()=>i.value===null?[t]:[M(`div`,{key:`icon`,class:`q-checkbox__icon-container absolute-full flex flex-center no-wrap`},[M(K,{class:`q-checkbox__icon`,name:i.value})])]}return Be(`checkbox`,n)}}),fn=H({name:`QCardActions`,props:{...N,vertical:Boolean},setup(e,{slots:t}){let n=ie(e),i=W(()=>`q-card__actions ${n.value} q-card__actions--${e.vertical===!0?`vert column`:`horiz row`}`);return()=>M(`div`,{class:i.value},r(t.default))}}),pn={class:`workspace-list column full-height`},mn={class:`wl-header row items-center justify-between q-px-md q-py-sm`},hn={class:`row items-center q-gutter-xs`},gn={class:`q-px-md q-pb-sm`},_n={class:`col overflow-auto`},vn={key:0,class:`wl-group q-mt-xs`},yn=[`onClick`],bn={class:`col`,style:{"min-width":`0`}},xn={class:`row items-center no-wrap q-gutter-xs`},Sn={key:0,class:`dd-dot dd-dot--running`},Cn={class:`wl-item-name text-body2 text-weight-medium text-grey-3 ellipsis`},wn={class:`text-caption q-mt-xs`},Tn={class:`text-red-5`},En={class:`q-ml-xs text-grey-8`},Dn={key:1,class:`wl-group q-mt-xs`},On=[`onClick`],kn={class:`col`,style:{"min-width":`0`}},An={class:`row items-center no-wrap q-gutter-xs`},jn={key:0,class:`dd-dot dd-dot--running`},Mn={class:`wl-item-name text-body2 text-weight-medium text-grey-3 ellipsis`},Nn={class:`text-caption q-mt-xs`},Pn={class:`text-green-4`},Fn={class:`q-ml-xs text-grey-8`},In={key:2,class:`wl-group q-mt-xs`},Ln=[`onClick`],Rn={class:`col`,style:{"min-width":`0`}},zn={class:`row items-center no-wrap q-gutter-xs`},Bn={key:0,class:`dd-dot dd-dot--running`},Vn={class:`wl-item-name text-body2 text-weight-medium text-grey-3 ellipsis`},Hn={class:`wl-item-meta text-caption text-grey-8`},Un={key:3,class:`wl-group q-mt-xs`},Wn={class:`col`,style:{"min-width":`0`}},Gn={class:`wl-item-name text-body2 text-grey-5 ellipsis`},Kn={class:`wl-item-meta text-caption text-grey-8`},qn={key:4,class:`q-pa-lg text-center text-grey-6 text-caption`},Jn={class:`q-px-md q-py-xs text-caption text-grey-8`},Yn={class:`text-body2 q-mb-sm text-grey-6`},Xn={class:`text-caption q-mb-md text-grey-7`,style:{"font-family":`monospace`}},Zn={class:`column q-gutter-xs`},Qn={key:0,class:`text-caption q-mt-sm text-red-5`},$n=Z(G({__name:`WorkspaceList`,setup(e){let t=q(),n=fe(),r=ue(),i=a(),o=J(),s=O(``),c=W(()=>t.needsAttention.filter(e=>e.name.toLowerCase().includes(s.value.toLowerCase()))),l=W(()=>t.running.filter(e=>e.name.toLowerCase().includes(s.value.toLowerCase()))),d=W(()=>t.idle.filter(e=>e.name.toLowerCase().includes(s.value.toLowerCase()))),f=W(()=>t.workspaces.length),p=W(()=>t.running.length),m=O(!0),g=O(!0),v=O(!0),x=O(!1);async function C(){x.value=!x.value,x.value&&!t.archivedLoaded&&await t.fetchArchivedWorkspaces()}let T=O(!1),E=O(null),D=O(!1),k=O(!1),A=O(!1);function j(e,t){t.stopPropagation(),E.value=e,D.value=!0,k.value=!1,T.value=!0}async function ee(){if(!E.value)return;let e=E.value.id;A.value=!0;try{await t.deleteWorkspace(e,{deleteLocalBranch:D.value,deleteRemoteBranch:k.value}),n.unsubscribe(e),T.value=!1,t.selectedWorkspaceId===null&&o.push({name:`workspace`})}catch(e){console.error(`Delete failed:`,e)}finally{A.value=!1}}async function M(e,n){n.stopPropagation();try{await t.archiveWorkspace(e.id),t.selectedWorkspaceId===null&&o.push({name:`workspace`})}catch(e){console.error(`Archive failed:`,e)}}async function N(e,n){n.stopPropagation();try{await t.unarchiveWorkspace(e.id),i.getProjectByPath(e.projectPath)?.devServer?.startCommand&&r.fetchStatus(e.id)}catch(e){console.error(`Unarchive failed:`,e)}}function R(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/6e4);if(n<1)return`just now`;if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}function H(e){t.selectWorkspace(e),o.push({name:`workspace`,params:{id:e}})}function ne(){o.push({name:`create`})}function ie(){o.push({name:`settings`})}return te(async()=>{await t.fetchWorkspaces(),await t.fetchArchivedWorkspaces(),await i.fetchSettings();for(let e of t.workspaces)n.subscribe(e.id),i.getProjectByPath(e.projectPath)?.devServer?.startCommand&&r.fetchStatus(e.id)}),(e,i)=>(b(),z(B,null,[P(`div`,pn,[P(`div`,mn,[i[8]||=P(`span`,{class:`text-caption text-uppercase text-weight-bold text-grey-6`,style:{"letter-spacing":`0.05em`}},` Workspaces `,-1),P(`div`,hn,[u(n).connected?(b(),F($,{key:0,rounded:``,color:`positive`,style:{width:`8px`,height:`8px`,"min-width":`8px`,padding:`0`}})):(b(),F($,{key:1,rounded:``,color:`negative`,style:{width:`8px`,height:`8px`,"min-width":`8px`,padding:`0`}})),I(U,{flat:``,round:``,dense:``,icon:`settings`,size:`sm`,color:`grey-5`,onClick:ie}),I(U,{flat:``,round:``,dense:``,icon:`add`,size:`sm`,color:`grey-5`,onClick:ne})])]),P(`div`,gn,[I(ke,{modelValue:s.value,"onUpdate:modelValue":i[0]||=e=>s.value=e,dense:``,dark:``,placeholder:`Search...`,class:`wl-search rounded-borders`,borderless:``},{prepend:y(()=>[I(K,{name:`search`,size:`xs`,color:`grey-6`})]),_:1},8,[`modelValue`])]),I(De,{dark:``}),P(`div`,_n,[c.value.length>0?(b(),z(`div`,vn,[P(`div`,{class:`wl-group-header row items-center q-px-md q-py-xs cursor-pointer non-selectable`,onClick:i[1]||=e=>m.value=!m.value},[I(K,{name:m.value?`expand_more`:`chevron_right`,size:`xs`,color:`red-5`},null,8,[`name`]),i[9]||=P(`span`,{class:`text-caption text-weight-bold q-ml-xs text-red-5`},` Needs Attention `,-1),I($,{label:c.value.length,color:`red-9`,"text-color":`white`,class:`q-ml-auto`,style:{"font-size":`10px`}},null,8,[`label`])]),w(P(`div`,null,[(b(!0),z(B,null,S(c.value,e=>(b(),z(`div`,{key:e.id,class:_([`wl-item cursor-pointer q-pa-sm q-mx-xs rounded-borders`,{"wl-item--selected":e.id===u(t).selectedWorkspaceId}]),style:{"border-left":`3px solid #ef4444`},onClick:t=>H(e.id)},[P(`div`,bn,[P(`div`,xn,[u(r).getStatus(e.id)?.status===`running`?(b(),z(`div`,Sn)):V(``,!0),P(`div`,Cn,h(e.name),1)]),P(`div`,wn,[I(K,{name:`warning`,size:`xs`,color:`red-5`,class:`q-mr-xs`}),P(`span`,Tn,h(e.status),1),P(`span`,En,`· `+h(R(e.updatedAt)),1)])]),I(U,{flat:``,round:``,dense:``,icon:`archive`,size:`xs`,color:`grey-6`,class:`wl-item-action wl-item-archive`,onClick:t=>M(e,t)},{default:y(()=>[I(Q,null,{default:y(()=>[...i[10]||=[L(`Archive`,-1)]]),_:1})]),_:1},8,[`onClick`]),I(U,{flat:``,round:``,dense:``,icon:`delete_outline`,size:`xs`,color:`grey-6`,class:`wl-item-action wl-item-delete`,onClick:t=>j(e,t)},{default:y(()=>[I(Q,null,{default:y(()=>[...i[11]||=[L(`Delete`,-1)]]),_:1})]),_:1},8,[`onClick`])],10,yn))),128))],512),[[re,m.value]])])):V(``,!0),l.value.length>0?(b(),z(`div`,Dn,[P(`div`,{class:`wl-group-header row items-center q-px-md q-py-xs cursor-pointer non-selectable`,onClick:i[2]||=e=>g.value=!g.value},[I(K,{name:g.value?`expand_more`:`chevron_right`,size:`xs`,color:`green-5`},null,8,[`name`]),i[12]||=P(`span`,{class:`text-caption text-weight-bold q-ml-xs text-green-4`},` Running `,-1),I($,{label:l.value.length,color:`green-9`,"text-color":`white`,class:`q-ml-auto`,style:{"font-size":`10px`}},null,8,[`label`])]),w(P(`div`,null,[(b(!0),z(B,null,S(l.value,e=>(b(),z(`div`,{key:e.id,class:_([`wl-item cursor-pointer q-pa-sm q-mx-xs rounded-borders`,{"wl-item--selected":e.id===u(t).selectedWorkspaceId}]),style:{"border-left":`3px solid #4ade80`},onClick:t=>H(e.id)},[P(`div`,kn,[P(`div`,An,[u(r).getStatus(e.id)?.status===`running`?(b(),z(`div`,jn)):V(``,!0),P(`div`,Mn,h(e.name),1)]),P(`div`,Nn,[P(`span`,Pn,h(e.status),1),P(`span`,Fn,`· `+h(R(e.updatedAt)),1)])]),I(U,{flat:``,round:``,dense:``,icon:`archive`,size:`xs`,color:`grey-6`,class:`wl-item-action wl-item-archive`,onClick:t=>M(e,t)},{default:y(()=>[I(Q,null,{default:y(()=>[...i[13]||=[L(`Archive`,-1)]]),_:1})]),_:1},8,[`onClick`]),I(U,{flat:``,round:``,dense:``,icon:`delete_outline`,size:`xs`,color:`grey-6`,class:`wl-item-action wl-item-delete`,onClick:t=>j(e,t)},{default:y(()=>[I(Q,null,{default:y(()=>[...i[14]||=[L(`Delete`,-1)]]),_:1})]),_:1},8,[`onClick`])],10,On))),128))],512),[[re,g.value]])])):V(``,!0),d.value.length>0?(b(),z(`div`,In,[P(`div`,{class:`wl-group-header row items-center q-px-md q-py-xs cursor-pointer non-selectable`,onClick:i[3]||=e=>v.value=!v.value},[I(K,{name:v.value?`expand_more`:`chevron_right`,size:`xs`,color:`grey-6`},null,8,[`name`]),i[15]||=P(`span`,{class:`text-caption text-weight-bold q-ml-xs text-grey-6`},` Idle `,-1),I($,{label:d.value.length,color:`grey-8`,"text-color":`grey-4`,class:`q-ml-auto`,style:{"font-size":`10px`}},null,8,[`label`])]),w(P(`div`,null,[(b(!0),z(B,null,S(d.value,e=>(b(),z(`div`,{key:e.id,class:_([`wl-item cursor-pointer q-pa-sm q-mx-xs rounded-borders`,{"wl-item--selected":e.id===u(t).selectedWorkspaceId}]),style:{"border-left":`3px solid #666`},onClick:t=>H(e.id)},[P(`div`,Rn,[P(`div`,zn,[u(r).getStatus(e.id)?.status===`running`?(b(),z(`div`,Bn)):V(``,!0),P(`div`,Vn,h(e.name),1)]),P(`div`,Hn,h(R(e.updatedAt)),1)]),I(U,{flat:``,round:``,dense:``,icon:`archive`,size:`xs`,color:`grey-6`,class:`wl-item-action wl-item-archive`,onClick:t=>M(e,t)},{default:y(()=>[I(Q,null,{default:y(()=>[...i[16]||=[L(`Archive`,-1)]]),_:1})]),_:1},8,[`onClick`]),I(U,{flat:``,round:``,dense:``,icon:`delete_outline`,size:`xs`,color:`grey-6`,class:`wl-item-action wl-item-delete`,onClick:t=>j(e,t)},{default:y(()=>[I(Q,null,{default:y(()=>[...i[17]||=[L(`Delete`,-1)]]),_:1})]),_:1},8,[`onClick`])],10,Ln))),128))],512),[[re,v.value]])])):V(``,!0),u(t).archived.length>0||x.value?(b(),z(`div`,Un,[P(`div`,{class:`wl-group-header row items-center q-px-md q-py-xs cursor-pointer non-selectable`,onClick:C},[I(K,{name:x.value?`expand_more`:`chevron_right`,size:`xs`,color:`grey-7`},null,8,[`name`]),I(K,{name:`inventory_2`,size:`xs`,color:`grey-7`,class:`q-ml-xs`}),i[18]||=P(`span`,{class:`text-caption text-weight-bold q-ml-xs text-grey-7`},` Archived `,-1),u(t).archived.length>0?(b(),F($,{key:0,label:u(t).archived.length,color:`grey-9`,"text-color":`grey-5`,class:`q-ml-auto`,style:{"font-size":`10px`}},null,8,[`label`])):V(``,!0)]),w(P(`div`,null,[(b(!0),z(B,null,S(u(t).archived,e=>(b(),z(`div`,{key:e.id,class:`wl-item wl-item--archived q-pa-sm q-mx-xs rounded-borders`,style:{"border-left":`3px solid #555`}},[P(`div`,Wn,[P(`div`,Gn,h(e.name),1),P(`div`,Kn,` Archived `+h(R(e.archivedAt)),1)]),I(U,{flat:``,round:``,dense:``,icon:`unarchive`,size:`xs`,color:`grey-6`,class:`wl-item-action wl-item-unarchive`,onClick:t=>N(e,t)},{default:y(()=>[I(Q,null,{default:y(()=>[...i[19]||=[L(`Unarchive`,-1)]]),_:1})]),_:1},8,[`onClick`]),I(U,{flat:``,round:``,dense:``,icon:`delete_outline`,size:`xs`,color:`grey-6`,class:`wl-item-action wl-item-delete`,onClick:t=>j(e,t)},{default:y(()=>[I(Q,null,{default:y(()=>[...i[20]||=[L(`Delete`,-1)]]),_:1})]),_:1},8,[`onClick`])]))),128))],512),[[re,x.value]])])):V(``,!0),c.value.length===0&&l.value.length===0&&d.value.length===0&&u(t).archived.length===0?(b(),z(`div`,qn,[u(t).loading?(b(),z(B,{key:0},[L(`Loading...`)],64)):s.value?(b(),z(B,{key:1},[L(`No results for "`+h(s.value)+`"`,1)],64)):(b(),z(B,{key:2},[L(`No workspaces yet`)],64))])):V(``,!0)]),I(De,{dark:``}),P(`div`,Jn,h(f.value)+` workspace`+h(f.value===1?``:`s`)+` · `+h(p.value)+` running `,1)]),I(Ae,{modelValue:T.value,"onUpdate:modelValue":i[7]||=e=>T.value=e,persistent:``},{default:y(()=>[I(st,{class:`text-grey-3`,style:{"min-width":`360px`,background:`#1e1e3a`}},{default:y(()=>[I(ot,null,{default:y(()=>[...i[21]||=[P(`div`,{class:`text-h6`},`Delete workspace?`,-1)]]),_:1}),I(ot,{class:`q-pt-none`},{default:y(()=>[P(`div`,Yn,h(E.value?.name),1),P(`div`,Xn,h(E.value?.workingBranch),1),P(`div`,Zn,[I(dn,{modelValue:D.value,"onUpdate:modelValue":i[4]||=e=>D.value=e,label:`Delete local branch`,dark:``,dense:``,color:`red-5`},null,8,[`modelValue`]),I(dn,{modelValue:k.value,"onUpdate:modelValue":i[5]||=e=>k.value=e,disable:!D.value,label:`Delete remote branch`,dark:``,dense:``,color:`red-5`},null,8,[`modelValue`,`disable`])]),k.value?(b(),z(`div`,Qn,` Warning: this action is irreversible on the remote. `)):V(``,!0)]),_:1}),I(fn,{align:`right`},{default:y(()=>[I(U,{flat:``,label:`Cancel`,color:`grey-5`,onClick:i[6]||=e=>T.value=!1,disable:A.value},null,8,[`disable`]),I(U,{flat:``,label:`Delete`,color:`red-5`,loading:A.value,onClick:ee},null,8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-9d4c8886`]]),er={class:`drawer-content column full-height`},tr=`at-left-drawer-width`,nr=Z(G({__name:`MainLayout`,setup(e){let t=O(`git`),n=O(!0),r=O(!0),i=parseInt(localStorage.getItem(tr)??`260`,10),a=O(Math.min(500,Math.max(200,i))),o=O(!1);function s(e){e.preventDefault(),o.value=!0;let t=e=>{a.value=Math.min(500,Math.max(200,e.clientX))},n=()=>{o.value=!1,localStorage.setItem(tr,String(a.value)),document.removeEventListener(`mousemove`,t),document.removeEventListener(`mouseup`,n),document.body.style.cursor=``,document.body.style.userSelect=``};document.body.style.cursor=`col-resize`,document.body.style.userSelect=`none`,document.addEventListener(`mousemove`,t),document.addEventListener(`mouseup`,n)}let l=q();return(e,i)=>{let o=c(`router-view`);return b(),F(Qe,{view:`lHh LpR lFf`},{default:y(()=>[I(qe,{modelValue:n.value,"onUpdate:modelValue":i[0]||=e=>n.value=e,width:a.value,breakpoint:0,persistent:``,bordered:``,class:`left-sidebar`},{default:y(()=>[I($n),P(`div`,{class:`resize-handle`,onMousedown:s},null,32)]),_:1},8,[`modelValue`,`width`]),I(qe,{modelValue:r.value,"onUpdate:modelValue":i[3]||=e=>r.value=e,side:`right`,width:300,breakpoint:0,persistent:``,bordered:``,class:`right-sidebar`},{default:y(()=>[P(`div`,er,[I(Le,{modelValue:t.value,"onUpdate:modelValue":i[1]||=e=>t.value=e,dense:``,dark:``,"active-color":`indigo-4`,"indicator-color":`indigo-4`,"narrow-indicator":``,align:`justify`,class:`right-tabs`},{default:y(()=>[I(Ne,{name:`git`,icon:`commit`}),I(Ne,{name:`server`,icon:`dns`}),I(Ne,{name:`tasks`,icon:`checklist`}),I(Ne,{name:`subagents`,icon:`smart_toy`})]),_:1},8,[`modelValue`]),I(De,{dark:``}),I(Pe,{modelValue:t.value,"onUpdate:modelValue":i[2]||=e=>t.value=e,animated:``,class:`col right-tab-panels`},{default:y(()=>[I(Me,{name:`git`,class:`q-pa-none`},{default:y(()=>[I(Ft,{workspace:u(l).selectedWorkspace},null,8,[`workspace`])]),_:1}),I(Me,{name:`server`,class:`q-pa-none`},{default:y(()=>[I(vt,{workspace:u(l).selectedWorkspace},null,8,[`workspace`])]),_:1}),I(Me,{name:`tasks`,class:`q-pa-none`},{default:y(()=>[I(Zt,{workspace:u(l).selectedWorkspace,tasks:u(l).tasks},null,8,[`workspace`,`tasks`]),I(De,{dark:``}),I(at,{tasks:u(l).acceptanceCriteria},null,8,[`tasks`])]),_:1}),I(Me,{name:`subagents`,class:`q-pa-none`},{default:y(()=>[I(ln)]),_:1})]),_:1},8,[`modelValue`])])]),_:1},8,[`modelValue`]),I(Je,{class:`main-content`},{default:y(()=>[I(o)]),_:1})]),_:1})}}}),[[`__scopeId`,`data-v-513173db`]]);export{nr as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,D as t,Gt as n,It as r,Jt as i,Kt as a,Lt as o,Mt as s,Pt as c,Vt as l,bt as u,dt as d,ft as f,gt as p,ht as m,kt as ee,mt as h,ot as g,pt as _,q as v,r as y,ut as b,vt as x,y as S,yt as C}from"./nodes-irfhA8FK.js";import{A as te,t as w}from"./_plugin-vue_export-helper-C6NdfBK4.js";import{C as T,S as E,_ as D,o as O}from"./QDialog-DgR7t6Vf.js";import{a as k,c as A,i as ne,n as j,o as re,r as M,t as N}from"./use-checkbox-BS9cbwg_.js";import{t as ie}from"./use-quasar-CH0pSHUf.js";import{a as P,i as F,n as I,r as L,t as ae}from"./QPage-DX4g-Dpe.js";import{t as oe}from"./QExpansionItem-VVjlYOIT.js";var se=v({name:`QToggle`,props:{...M,icon:String,iconColor:String},emits:j,setup(e){function t(t,n){let r=b(()=>(t.value===!0?e.checkedIcon:n.value===!0?e.indeterminateIcon:e.uncheckedIcon)||e.icon),i=b(()=>t.value===!0?e.iconColor:null);return()=>[u(`div`,{class:`q-toggle__track`}),u(`div`,{class:`q-toggle__thumb absolute flex flex-center no-wrap`},r.value===void 0?void 0:[u(S,{name:r.value,color:i.value})])]}return N(`toggle`,t)}}),R=[`ul`,`ol`],z=v({name:`QList`,props:{...T,bordered:Boolean,dense:Boolean,separator:Boolean,padding:Boolean,tag:{type:String,default:`div`}},setup(t,{slots:n}){let r=E(t,C().proxy.$q),i=b(()=>R.includes(t.tag)?null:`list`),a=b(()=>`q-list`+(t.bordered===!0?` q-list--bordered`:``)+(t.dense===!0?` q-list--dense`:``)+(t.separator===!0?` q-list--separator`:``)+(r.value===!0?` q-list--dark`:``)+(t.padding===!0?` q-list--padding`:``));return()=>u(t.tag,{class:a.value,role:i.value},e(n.default))}}),ce={class:`settings-inner`},le={class:`settings-header row items-center q-mb-lg`},ue={class:`settings-card rounded-borders q-pa-lg`},B={class:`q-mb-lg`},V={class:`q-mb-lg`},H={class:`q-mb-md`},U={class:`q-mb-lg`},de={class:`q-mb-lg`},fe={class:`row justify-end`},pe={class:`row q-gutter-md`,style:{"min-height":`500px`}},me={class:`project-list-col`},he={class:`settings-card rounded-borders`,style:{height:`100%`}},ge={key:0,class:`q-pa-md text-center text-caption text-grey-8`},_e={class:`q-pa-sm`},ve={class:`project-form-col`},ye={class:`settings-card rounded-borders q-pa-lg`,style:{height:`100%`}},be={class:`text-subtitle1 text-weight-medium q-mb-md text-grey-3`},xe={class:`q-mb-md`},Se={class:`q-mb-md`},Ce={class:`q-mb-md`},we={class:`q-mb-md`},Te={class:`q-mb-md`},Ee={class:`q-mb-md`},De={class:`q-mb-lg`},Oe={class:`q-mb-md`},ke={class:`row items-center q-gutter-sm`},Ae={key:1,class:`column items-center justify-center`,style:{height:`100%`,"min-height":`300px`}},W=w(x({__name:`SettingsPage`,setup(e){let u=ie(),v=t(),x=l(`global`),C=l(`auto`),w=l(``),T=l(``),E=l(!1),j=l(-1),M=l(!1),N=l({path:``,displayName:``,defaultSourceBranch:``,defaultModel:``,prPromptTemplate:``,gitConventions:``,devServer:{startCommand:``,stopCommand:``}}),R=l([]),W=l(!1),G=l(!1),K=l(!1),q=[{label:`Auto`,value:`auto`},{label:`Opus 4.6`,value:`claude-opus-4-6`},{label:`Sonnet 4.6`,value:`claude-sonnet-4-6`},{label:`Haiku 4.5`,value:`claude-haiku-4-5-20251001`}],je=[{label:`Use global`,value:``},...q],J=[{name:`{{pr_number}}`,description:`PR number (e.g., 42)`},{name:`{{pr_url}}`,description:`Full URL of the created PR`},{name:`{{branch_name}}`,description:`Working branch name`},{name:`{{source_branch}}`,description:`Source branch the PR targets`},{name:`{{workspace_name}}`,description:`Workspace name`},{name:`{{project_name}}`,description:`Last segment of the project path`},{name:`{{notion_url}}`,description:`Notion URL if set, empty otherwise`},{name:`{{commits}}`,description:`Bulleted commit list between source and head`},{name:`{{diff_stats}}`,description:`Git shortstat summary (files, insertions, deletions)`},{name:`{{tasks}}`,description:`Regular tasks as a checkbox list`},{name:`{{acceptance_criteria}}`,description:`Acceptance criteria as a checkbox list`}],Y=b(()=>j.value<0||j.value>=v.projects.length?null:v.projects[j.value]??null);function Me(){C.value=v.global.defaultModel,w.value=v.global.prPromptTemplate,T.value=v.global.gitConventions}function X(e){if(!e){N.value={path:``,displayName:``,defaultSourceBranch:``,defaultModel:``,prPromptTemplate:``,gitConventions:``,devServer:{startCommand:``,stopCommand:``}},R.value=[];return}N.value={path:e.path,displayName:e.displayName,defaultSourceBranch:e.defaultSourceBranch,defaultModel:e.defaultModel,prPromptTemplate:e.prPromptTemplate,gitConventions:e.gitConventions??``,devServer:{startCommand:e.devServer?.startCommand??``,stopCommand:e.devServer?.stopCommand??``}},e.path&&Z(e.path)}async function Z(e){if(!e.trim()){R.value=[];return}W.value=!0;try{let t=await fetch(`/api/git/branches?path=${encodeURIComponent(e.trim())}`);if(!t.ok)throw Error(`HTTP ${t.status}`);let n=await t.json();R.value=n.local??n.branches??[]}catch{R.value=[]}finally{W.value=!1}}let Q=null;r(()=>N.value.path,e=>{Q&&clearTimeout(Q),Q=setTimeout(()=>{Z(e)},500)}),r(j,()=>{M.value=!1,X(Y.value)});async function Ne(){E.value=!0;try{await v.updateGlobal({defaultModel:C.value,prPromptTemplate:w.value,gitConventions:T.value}),u.notify({type:`positive`,message:`Global settings saved.`,position:`top`})}catch{u.notify({type:`negative`,message:`Error saving settings.`,position:`top`})}finally{E.value=!1}}async function Pe(){if(!N.value.path.trim()){u.notify({type:`negative`,message:`Project path is required.`,position:`top`});return}G.value=!0;try{await v.upsertProject(N.value.path.trim(),{displayName:N.value.displayName,defaultSourceBranch:N.value.defaultSourceBranch,defaultModel:N.value.defaultModel,prPromptTemplate:N.value.prPromptTemplate,gitConventions:N.value.gitConventions,devServer:N.value.devServer}),M.value=!1;let e=v.projects.findIndex(e=>e.path===N.value.path.trim());e>=0&&(j.value=e),u.notify({type:`positive`,message:`Project saved.`,position:`top`})}catch{u.notify({type:`negative`,message:`Error saving project.`,position:`top`})}finally{G.value=!1}}async function Fe(){if(Y.value){K.value=!0;try{await v.deleteProject(Y.value.path),j.value=-1,M.value=!1,X(null),u.notify({type:`positive`,message:`Project deleted.`,position:`top`})}catch{u.notify({type:`negative`,message:`Error deleting project.`,position:`top`})}finally{K.value=!1}}}function Ie(){j.value=-1,M.value=!0,X(null)}function Le(e){M.value=!1,j.value=e}function Re(e){if(e.displayName)return e.displayName;let t=e.path.split(`/`);return t[t.length-1]??e.path}let $=l([]);function ze(e,t){t(()=>{$.value=e?R.value.filter(t=>t.toLowerCase().includes(e.toLowerCase())):R.value})}return ee(async()=>{await v.fetchSettings(),Me()}),(e,t)=>(s(),f(ae,{class:`settings-page`},{default:o(()=>[d(`div`,ce,[d(`div`,le,[p(S,{name:`settings`,size:`24px`,color:`indigo-4`,class:`q-mr-sm`}),t[14]||=d(`span`,{class:`text-h5 text-weight-medium text-grey-3`},`Settings`,-1)]),p(re,{modelValue:x.value,"onUpdate:modelValue":t[0]||=e=>x.value=e,dense:``,"active-color":`indigo-4`,"indicator-color":`indigo-4`,class:`settings-tabs q-mb-lg`,align:`left`,"narrow-indicator":``},{default:o(()=>[p(A,{name:`global`,label:`Global`}),p(A,{name:`projects`,label:`Projects`})]),_:1},8,[`modelValue`]),p(ne,{modelValue:x.value,"onUpdate:modelValue":t[13]||=e=>x.value=e,animated:``,class:`settings-panels`},{default:o(()=>[p(k,{name:`global`,class:`q-pa-none`},{default:o(()=>[d(`div`,ue,[t[21]||=d(`div`,{class:`text-subtitle1 text-weight-medium q-mb-md text-grey-3`},` Global Settings `,-1),p(D,{dark:``,class:`q-mb-md`}),d(`div`,B,[t[15]||=d(`div`,{class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},`Default model`,-1),p(I,{modelValue:C.value,"onUpdate:modelValue":t[1]||=e=>C.value=e,options:q,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`])]),d(`div`,V,[t[16]||=d(`div`,{class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},`Activity feed`,-1),p(se,{"model-value":n(v).showVerboseSystemMessages,label:`Show verbose system messages (task_progress, task_started)`,dark:``,dense:``,color:`indigo-4`,class:`text-grey-5 text-caption`,"onUpdate:modelValue":t[2]||=e=>n(v).toggleVerboseSystemMessages()},null,8,[`model-value`])]),d(`div`,H,[p(oe,{dense:``,dark:``,icon:`code`,label:`Available variables in PR prompt template`,class:`variables-panel rounded-borders`},{default:o(()=>[p(z,{dense:``,dark:``,class:`q-pa-sm`},{default:o(()=>[(s(),h(g,null,c(J,e=>p(P,{key:e.name,dense:``},{default:o(()=>[p(F,null,{default:o(()=>[p(L,{class:`text-caption`,style:{"font-family":`monospace`}},{default:o(()=>[m(i(e.name),1)]),_:2},1024),p(L,{caption:``,class:`text-grey-7`},{default:o(()=>[m(i(e.description),1)]),_:2},1024)]),_:2},1024)]),_:2},1024)),64))]),_:1})]),_:1})]),d(`div`,U,[t[17]||=d(`div`,{class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},`PR prompt template`,-1),p(O,{modelValue:w.value,"onUpdate:modelValue":t[3]||=e=>w.value=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:8,autogrow:``,placeholder:`Instructions for the agent when creating GitHub PRs...`,class:`settings-input mono-textarea`},null,8,[`modelValue`]),t[18]||=d(`div`,{class:`text-caption text-grey-7 q-mt-xs`},[m(`Use `),d(`code`,null,`{{variable}}`),m(` placeholders. See "Available variables" above.`)],-1)]),d(`div`,de,[t[19]||=d(`div`,{class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},`Git conventions (global)`,-1),p(O,{modelValue:T.value,"onUpdate:modelValue":t[4]||=e=>T.value=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:8,autogrow:``,placeholder:`# Git conventions...`,class:`settings-input mono-textarea`},null,8,[`modelValue`]),t[20]||=d(`div`,{class:`text-caption text-grey-7 q-mt-xs`},[m(`These conventions are written to `),d(`code`,null,`.ai/git-conventions.md`),m(` in each new workspace and must be followed by the agent before any git operation. Overridden by per-project conventions if defined.`)],-1)]),d(`div`,fe,[p(y,{label:`Save`,"no-caps":``,unelevated:``,color:`primary`,loading:E.value,onClick:Ne},null,8,[`loading`])])])]),_:1}),p(k,{name:`projects`,class:`q-pa-none`},{default:o(()=>[d(`div`,pe,[d(`div`,me,[d(`div`,he,[t[22]||=d(`div`,{class:`q-pa-sm`},[d(`div`,{class:`text-caption text-uppercase text-weight-bold q-px-sm q-py-xs text-grey-6`,style:{"letter-spacing":`0.05em`}},` Configured projects `)],-1),p(D,{dark:``}),p(z,{dark:``,dense:``,class:`q-py-xs`},{default:o(()=>[(s(!0),h(g,null,c(n(v).projects,(e,t)=>(s(),f(P,{key:e.path,clickable:``,active:j.value===t&&!M.value,"active-class":`project-item--active`,class:`project-item q-mx-xs rounded-borders`,style:{"min-height":`40px`},onClick:e=>Le(t)},{default:o(()=>[p(F,null,{default:o(()=>[p(L,{class:`text-body2 text-grey-3`},{default:o(()=>[m(i(Re(e)),1)]),_:2},1024),p(L,{caption:``,class:`text-grey-7 ellipsis`,style:{"font-size":`11px`,"font-family":`monospace`}},{default:o(()=>[m(i(e.path),1)]),_:2},1024)]),_:2},1024)]),_:2},1032,[`active`,`onClick`]))),128))]),_:1}),n(v).projects.length===0&&!n(v).loading?(s(),h(`div`,ge,` No projects configured `)):_(``,!0),p(D,{dark:``}),d(`div`,_e,[p(y,{label:`Add project`,icon:`add`,"no-caps":``,flat:``,dense:``,class:`full-width`,color:`indigo-4`,onClick:Ie})])])]),d(`div`,ve,[d(`div`,ye,[Y.value||M.value?(s(),h(g,{key:0},[d(`div`,be,i(M.value?`New project`:`Edit project`),1),p(D,{dark:``,class:`q-mb-md`}),d(`div`,xe,[t[23]||=d(`div`,{class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},`Project path`,-1),p(O,{modelValue:N.value.path,"onUpdate:modelValue":t[5]||=e=>N.value.path=e,dense:``,dark:``,outlined:``,readonly:!M.value,placeholder:`/path/to/project`,class:a([`settings-input`,{"readonly-input":!M.value}])},null,8,[`modelValue`,`readonly`,`class`])]),d(`div`,Se,[t[24]||=d(`div`,{class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},`Display name`,-1),p(O,{modelValue:N.value.displayName,"onUpdate:modelValue":t[6]||=e=>N.value.displayName=e,dense:``,dark:``,outlined:``,placeholder:`My project`,class:`settings-input`},null,8,[`modelValue`])]),d(`div`,Ce,[t[25]||=d(`div`,{class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},`Default source branch`,-1),p(I,{modelValue:N.value.defaultSourceBranch,"onUpdate:modelValue":t[7]||=e=>N.value.defaultSourceBranch=e,options:$.value,dense:``,dark:``,outlined:``,"use-input":``,"emit-value":``,loading:W.value,class:`settings-input`,placeholder:`main`,onFilter:ze},{"no-option":o(()=>[p(P,null,{default:o(()=>[p(F,{class:`text-grey-6 text-caption`},{default:o(()=>[m(i(N.value.path.trim()?`No branches found`:`Enter the project path`),1)]),_:1})]),_:1})]),_:1},8,[`modelValue`,`options`,`loading`])]),d(`div`,we,[t[26]||=d(`div`,{class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},`Default model`,-1),p(I,{modelValue:N.value.defaultModel,"onUpdate:modelValue":t[8]||=e=>N.value.defaultModel=e,options:je,"emit-value":``,"map-options":``,"option-value":`value`,"option-label":`label`,dense:``,dark:``,outlined:``,class:`settings-input`},null,8,[`modelValue`])]),d(`div`,Te,[t[27]||=d(`div`,{class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},`PR prompt template`,-1),p(O,{modelValue:N.value.prPromptTemplate,"onUpdate:modelValue":t[9]||=e=>N.value.prPromptTemplate=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:4,placeholder:`Project-specific instructions for PR creation...`,class:`settings-input mono-textarea`},null,8,[`modelValue`])]),d(`div`,Ee,[t[28]||=d(`div`,{class:`field-label text-body2 text-weight-medium q-mb-xs text-grey-6`},`Git conventions (project override)`,-1),p(O,{modelValue:N.value.gitConventions,"onUpdate:modelValue":t[10]||=e=>N.value.gitConventions=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:6,autogrow:``,placeholder:`Leave empty to use the global conventions.`,class:`settings-input mono-textarea`},null,8,[`modelValue`]),t[29]||=d(`div`,{class:`text-caption text-grey-7 q-mt-xs`},`Leave empty to use the global conventions.`,-1)]),d(`div`,De,[t[32]||=d(`div`,{class:`field-label text-body2 text-weight-medium q-mb-sm text-grey-6`},`Dev server`,-1),d(`div`,Oe,[t[30]||=d(`div`,{class:`field-label-sub text-caption q-mb-xs text-grey-7`},`Script start`,-1),p(O,{modelValue:N.value.devServer.startCommand,"onUpdate:modelValue":t[11]||=e=>N.value.devServer.startCommand=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:3,placeholder:`npm run dev`,class:`settings-input mono-textarea`},null,8,[`modelValue`])]),d(`div`,null,[t[31]||=d(`div`,{class:`field-label-sub text-caption q-mb-xs text-grey-7`},`Script stop`,-1),p(O,{modelValue:N.value.devServer.stopCommand,"onUpdate:modelValue":t[12]||=e=>N.value.devServer.stopCommand=e,type:`textarea`,dense:``,dark:``,outlined:``,rows:3,placeholder:`Optional — the process will be killed automatically if empty`,class:`settings-input mono-textarea`},null,8,[`modelValue`])])]),d(`div`,ke,[M.value?_(``,!0):(s(),f(y,{key:0,label:`Delete`,"no-caps":``,flat:``,color:`red-5`,loading:K.value,onClick:Fe},null,8,[`loading`])),p(te),p(y,{label:`Save`,"no-caps":``,unelevated:``,color:`primary`,loading:G.value,onClick:Pe},null,8,[`loading`])])],64)):(s(),h(`div`,Ae,[p(S,{name:`folder_open`,size:`48px`,color:`grey-7`,class:`q-mb-md`}),t[33]||=d(`div`,{class:`text-body2 text-grey-8`},` Select a project or add a new one `,-1)]))])])])]),_:1})]),_:1},8,[`modelValue`])])]),_:1}))}}),[[`__scopeId`,`data-v-60620626`]]);export{W as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.settings-page[data-v-60620626]{background-color:#1a1a2e;min-height:100%;padding:32px 24px}.settings-inner[data-v-60620626]{width:100%;max-width:900px;margin:0 auto}.settings-header[data-v-60620626]{min-height:48px}.settings-tabs[data-v-60620626] .q-tab{color:#888;text-transform:none;font-weight:500}.settings-tabs[data-v-60620626] .q-tab--active{color:#6c63ff}.settings-panels[data-v-60620626]{background:0 0}.settings-card[data-v-60620626]{background:#224;border:1px solid #2a2a4a}.settings-input[data-v-60620626] .q-field__control{background:#1a1a2e;border-color:#2a2a4a}.settings-input[data-v-60620626] .q-field__native,.settings-input[data-v-60620626] input,.settings-input[data-v-60620626] textarea{color:#e0e0e0}.settings-input[data-v-60620626] .q-field__label{color:#888}.mono-textarea[data-v-60620626] textarea{font-family:JetBrains Mono,Fira Code,monospace;font-size:13px}.readonly-input[data-v-60620626] .q-field__control{background:#16162a}.readonly-input[data-v-60620626] input{color:#888}.project-list-col[data-v-60620626]{flex-shrink:0;width:30%;min-width:200px;max-width:280px;overflow:hidden}.project-form-col[data-v-60620626]{flex:1;min-width:0}.project-item[data-v-60620626]:hover{background-color:#ffffff08}.project-item--active[data-v-60620626]{border-left:3px solid #6c63ff;background-color:#2a2a4a!important}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ActivityFeed-CPfYmybV.js","assets/index-C4WDJfjD.js","assets/nodes-irfhA8FK.js","assets/index-BThMCiY7.css","assets/_plugin-vue_export-helper-C6NdfBK4.js","assets/QSpinnerDots-DeCf9Lr-.js","assets/QTooltip-DKYJ8kVW.js","assets/ActivityFeed-DBljh9rq.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{Gt as e,It as t,Jt as n,Kt as r,Lt as i,Mt as a,Pt as o,Vt as s,_t as c,ct as ee,dt as l,ft as u,gt as d,ht as te,kt as f,mt as p,ot as m,pt as h,r as g,ut as _,vt as v,y}from"./nodes-irfhA8FK.js";import{i as b,n as x,o as S,r as C,t as w}from"./index-C4WDJfjD.js";import{t as T}from"./QSpinnerDots-DeCf9Lr-.js";import{A as E,t as D}from"./_plugin-vue_export-helper-C6NdfBK4.js";import{t as O}from"./QTooltip-DKYJ8kVW.js";import{_ as k,o as A}from"./QDialog-DgR7t6Vf.js";import{t as j}from"./QBadge-CNojh9Rl.js";import{n as M,t as N}from"./QPage-DX4g-Dpe.js";var P={key:0,class:`row items-center q-gutter-xs q-mb-xs q-px-xs`,style:{"flex-wrap":`wrap`}},F={class:`text-caption image-tag-label`},I={key:1,class:`skills-popup rounded-borders`},L=[`onClick`,`onMouseenter`],R={class:`text-caption`},ne={class:`row items-end q-gutter-sm`},z=D(v({__name:`ChatInput`,props:{workspaceId:{}},setup(e){let c=e,ee=S(),v=b(),x=s(``),C=s([]),w=s(!1),E=s(``),D=s(0),k=_(()=>{if(!E.value)return C.value;let e=E.value.toLowerCase();return C.value.filter(t=>t.toLowerCase().includes(e))}),j=s([]),M=s(null),N=s(!1),z=[`image/png`,`image/jpeg`,`image/gif`,`image/webp`];async function B(e){if(!z.includes(e.type))return;let t=crypto.randomUUID(),n={tempId:t,originalName:e.name||`pasted-image.png`,status:`uploading`};j.value.push(n);try{let n=new FormData;n.append(`image`,e);let r=await fetch(`/api/workspaces/${c.workspaceId}/images`,{method:`POST`,body:n});if(!r.ok){let e=await r.json();throw Error(e.error||`Upload failed`)}let i=await r.json(),a=j.value.find(e=>e.tempId===t);a&&(a.uid=i.uid,a.path=i.path,a.status=`ready`)}catch{let e=j.value.find(e=>e.tempId===t);e&&(e.status=`error`)}}async function V(e){let t=j.value.find(t=>t.tempId===e);if(t?.uid)try{await fetch(`/api/workspaces/${c.workspaceId}/images/${t.uid}`,{method:`DELETE`})}catch{}j.value=j.value.filter(t=>t.tempId!==e)}function H(e){if(e.clipboardData){for(let t of Array.from(e.clipboardData.items))if(t.type.startsWith(`image/`)){let e=t.getAsFile();e&&B(e)}}}function U(e){if(e.preventDefault(),N.value=!1,e.dataTransfer)for(let t of Array.from(e.dataTransfer.files))z.includes(t.type)&&B(t)}function W(e){e.preventDefault(),N.value=!0}function G(){N.value=!1}function re(e){let t=e.target;if(t.files){for(let e of Array.from(t.files))B(e);t.value=``}}let K=_(()=>j.value.some(e=>e.status===`uploading`)),q=0;async function J(){let e=Date.now();if(!(e-q<5e3)){q=e;try{let e=await fetch(`/api/skills`);e.ok&&(C.value=await e.json())}catch{}}}f(J),t(x,async e=>{e.startsWith(`/`)?(await J(),E.value=e.substring(1),w.value=!0,D.value=0):w.value=!1});function Y(e){x.value=`/${e} `,w.value=!1}let X=_(()=>!c.workspaceId),Z=s(JSON.parse(localStorage.getItem(`kobo:chatHistory`)??`[]`)),Q=s(-1),$=s(``);function ie(e){e&&Z.value[0]!==e&&(Z.value.unshift(e),Z.value.length>50&&Z.value.pop(),localStorage.setItem(`kobo:chatHistory`,JSON.stringify(Z.value)))}function ae(){Q.value=-1,$.value=``}function oe(){let e=x.value.trim();if(!e&&j.value.length===0||X.value||K.value)return;let t=j.value.filter(e=>e.status===`ready`&&e.path).map(e=>`[image: ${e.path}]`).join(` `),n=t?`${e} ${t}`.trim():e;v.sendChatMessage(c.workspaceId,n),ee.addActivityItem(c.workspaceId,{id:`user-${Date.now()}`,type:`text`,content:n,timestamp:new Date().toISOString(),meta:{sender:`user`,pending:!0}}),ie(e),ae(),x.value=``,j.value=[]}function se(e){if(w.value&&k.value.length>0){if(e.key===`ArrowDown`){e.preventDefault(),D.value=Math.min(D.value+1,k.value.length-1);return}if(e.key===`ArrowUp`){e.preventDefault(),D.value=Math.max(D.value-1,0);return}if(e.key===`Tab`||e.key===`Enter`&&!e.shiftKey){e.preventDefault(),Y(k.value[D.value]);return}if(e.key===`Escape`){w.value=!1;return}}if(e.key===`ArrowUp`&&Z.value.length>0){e.preventDefault(),Q.value===-1&&($.value=x.value),Q.value<Z.value.length-1&&(Q.value++,x.value=Z.value[Q.value]);return}if(e.key===`ArrowDown`&&Q.value>=0){e.preventDefault(),Q.value--,x.value=Q.value>=0?Z.value[Q.value]:$.value;return}e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),oe())}return(e,t)=>(a(),p(`div`,{class:r([`chat-input-container column q-pa-sm`,{"chat-input-dragging":N.value}]),onDragover:W,onDragleave:G,onDrop:U},[j.value.length>0?(a(),p(`div`,P,[(a(!0),p(m,null,o(j.value,e=>(a(),p(`div`,{key:e.tempId,class:r([`image-tag row items-center q-px-sm q-py-xs rounded-borders`,{"image-tag--uploading":e.status===`uploading`,"image-tag--ready":e.status===`ready`,"image-tag--error":e.status===`error`}])},[e.status===`uploading`?(a(),u(T,{key:0,size:`14px`,color:`grey-6`,class:`q-mr-xs`})):e.status===`ready`?(a(),u(y,{key:1,name:`image`,size:`14px`,color:`green-6`,class:`q-mr-xs`})):(a(),u(y,{key:2,name:`error`,size:`14px`,color:`red-6`,class:`q-mr-xs`})),l(`span`,F,n(e.status===`uploading`?`Uploading...`:e.path||e.originalName),1),d(g,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,class:`q-ml-xs image-tag-close`,onClick:t=>V(e.tempId)},null,8,[`onClick`])],2))),128))])):h(``,!0),w.value&&k.value.length>0?(a(),p(`div`,I,[t[2]||=l(`div`,{class:`skills-header text-caption text-weight-bold text-grey-6 q-px-sm q-py-xs`},` Skills `,-1),(a(!0),p(m,null,o(k.value.slice(0,12),(e,t)=>(a(),p(`div`,{key:e,class:r([`skill-item row items-center q-px-sm q-py-xs cursor-pointer`,{"skill-item--active":t===D.value}]),onClick:t=>Y(e),onMouseenter:e=>D.value=t},[d(y,{name:`bolt`,size:`12px`,color:`indigo-4`,class:`q-mr-xs`}),l(`span`,R,n(e),1)],42,L))),128))])):h(``,!0),l(`div`,ne,[d(A,{modelValue:x.value,"onUpdate:modelValue":t[0]||=e=>x.value=e,dense:``,dark:``,borderless:``,autogrow:``,placeholder:`Message... (/ for skills)`,class:`chat-input col rounded-borders`,disable:X.value,onKeydown:se,onPaste:H},null,8,[`modelValue`,`disable`]),l(`input`,{ref_key:`fileInputRef`,ref:M,type:`file`,accept:`image/png,image/jpeg,image/gif,image/webp`,multiple:``,style:{display:`none`},onChange:re},null,544),d(g,{flat:``,dense:``,icon:`attach_file`,color:`grey-6`,disable:X.value,onClick:t[1]||=e=>M.value?.click()},{default:i(()=>[d(O,null,{default:i(()=>[...t[3]||=[te(`Attach image`,-1)]]),_:1})]),_:1},8,[`disable`]),d(g,{flat:``,dense:``,icon:`send`,color:`primary`,disable:X.value||!x.value.trim()&&j.value.length===0||K.value,onClick:oe},null,8,[`disable`])])],34))}}),[[`__scopeId`,`data-v-6ce4098b`]]),B={class:`wp-header row items-center q-px-md q-py-sm no-wrap`},V={class:`text-body1 text-weight-medium text-grey-3 ellipsis`},H={class:`row items-center no-wrap text-caption text-grey-5`},U={key:1,class:`text-body2 text-grey-8`},W={class:`col column items-center justify-center`},G=D(v({__name:`WorkspacePage`,setup(r){let o=c(()=>Promise.all([w(()=>import(`./ActivityFeed-CPfYmybV.js`),__vite__mapDeps([0,1,2,3,4,5,6,7])),new Promise(e=>setTimeout(e,500))]).then(([e])=>e)),s=S(),v=[{label:`Auto`,value:`auto`},{label:`Opus 4.6`,value:`claude-opus-4-6`},{label:`Sonnet 4.6`,value:`claude-sonnet-4-6`},{label:`Haiku 4.5`,value:`claude-haiku-4-5-20251001`}],b=_({get:()=>s.selectedWorkspace?.model??`auto`,set:e=>{s.selectedWorkspaceId&&s.updateModel(s.selectedWorkspaceId,e)}}),D=x(),O=C(),A=_(()=>s.selectedWorkspaceId),P=_(()=>s.selectedWorkspace),F=_(()=>s.sessions),I=_({get:()=>s.selectedSessionId,set:e=>{s.selectSession(e);let t={...D.query};e?t.session=e:delete t.session,O.replace({query:t})}}),L=_(()=>[{label:`All sessions`,value:null,caption:``},...s.sessions.map((e,t)=>({label:`Session #${s.sessions.length-t}`,value:e.claudeSessionId,caption:R(e.startedAt)}))]);function R(e){let t=Date.now()-new Date(e).getTime(),n=Math.floor(t/6e4);if(n<1)return`just now`;if(n<60)return`${n}m ago`;let r=Math.floor(n/60);return r<24?`${r}h ago`:`${Math.floor(r/24)}d ago`}return f(()=>{let e=D.params.id;e&&s.selectWorkspace(e);let t=D.query.session;t&&s.selectSession(t)}),t(()=>D.params.id,e=>{e&&e!==s.selectedWorkspaceId&&s.selectWorkspace(e)}),(t,r)=>(a(),u(N,{class:`column no-wrap`,style:{height:`100vh`}},{default:i(()=>[l(`div`,B,[P.value?(a(),p(m,{key:0},[l(`span`,V,n(P.value.name),1),d(j,{label:P.value.status,color:[`error`,`quota`].includes(P.value.status)?`red-9`:[`extracting`,`brainstorming`,`executing`].includes(P.value.status)?`green-9`:`grey-8`,class:`q-ml-sm`,style:{"font-size":`10px`}},null,8,[`label`,`color`]),F.value.length>0?(a(),u(M,{key:0,modelValue:I.value,"onUpdate:modelValue":r[0]||=e=>I.value=e,options:L.value,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,class:`q-ml-sm`,style:{"min-width":`160px`,"max-width":`220px`,"font-size":`11px`}},null,8,[`modelValue`,`options`])):h(``,!0),d(E),d(M,{modelValue:b.value,"onUpdate:modelValue":r[1]||=e=>b.value=e,options:v,"emit-value":``,"map-options":``,dense:``,dark:``,borderless:``,"options-dense":``,class:`q-mr-sm model-select`,style:{"min-width":`100px`,"max-width":`160px`,"font-size":`11px`}},{selected:i(()=>[l(`span`,H,[d(y,{name:`auto_awesome`,size:`12px`,color:`indigo-4`,class:`q-mr-xs`}),te(` `+n(v.find(e=>e.value===b.value)?.label??b.value),1)])]),_:1},8,[`modelValue`]),[`created`,`idle`,`completed`,`error`,`quota`].includes(P.value.status)?(a(),u(g,{key:1,dense:``,"no-caps":``,size:`sm`,color:`positive`,icon:`play_arrow`,label:`Start`,class:`q-mr-xs`,onClick:r[2]||=t=>e(s).startWorkspace(P.value.id)})):h(``,!0),[`extracting`,`brainstorming`,`executing`].includes(P.value.status)?(a(),u(g,{key:2,dense:``,"no-caps":``,size:`sm`,color:`negative`,icon:`stop`,label:`Stop`,class:`q-mr-xs`,onClick:r[3]||=t=>e(s).stopWorkspace(P.value.id)})):h(``,!0)],64)):(a(),p(`span`,U,` Select a workspace to begin `))]),d(k,{dark:``}),(a(),u(ee,null,{fallback:i(()=>[l(`div`,W,[d(T,{size:`40px`,color:`indigo-4`}),r[4]||=l(`div`,{class:`text-grey-6 text-caption q-mt-sm`},`Loading...`,-1)])]),default:i(()=>[d(e(o),{class:`col`,style:{"min-height":`0`}})]),_:1})),A.value?(a(),u(z,{key:0,"workspace-id":A.value},null,8,[`workspace-id`])):h(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-0f320df9`]]);export{G as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{xt as e}from"./nodes-irfhA8FK.js";function t(){return e(`_q_`)}export{t};
|