@loicngr/kobo 1.11.18 → 1.11.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/package.json +1 -1
  3. package/src/client/dist/pwa/assets/{ActivityFeed-tC8sR0GV.css → ActivityFeed-DccO7DTb.css} +1 -1
  4. package/src/client/dist/pwa/assets/ActivityFeed-lkeL2lQi.js +8 -0
  5. package/src/client/dist/pwa/assets/{ChangelogPage-DACtknly.js → ChangelogPage-C2x8Y9Db.js} +1 -1
  6. package/src/client/dist/pwa/assets/{CreatePage-Bb-Qn-Rd.js → CreatePage-BkaOk8cP.js} +2 -2
  7. package/src/client/dist/pwa/assets/{DiffViewer-DKt6gFi4.js → DiffViewer-CfAoiuky.js} +3 -3
  8. package/src/client/dist/pwa/assets/{DocumentsPanel-DhP1jk11.js → DocumentsPanel-T-rRRWru.js} +1 -1
  9. package/src/client/dist/pwa/assets/GitPanel-DV8S3KFD.js +3 -0
  10. package/src/client/dist/pwa/assets/{HealthPage-B1J4-dOH.js → HealthPage-CumhcFln.js} +1 -1
  11. package/src/client/dist/pwa/assets/MainLayout-BCIURScy.css +1 -0
  12. package/src/client/dist/pwa/assets/MainLayout-_WMLKlQ5.js +2 -0
  13. package/src/client/dist/pwa/assets/SchedulePanel-DNAccoHC.js +1 -0
  14. package/src/client/dist/pwa/assets/{SearchPage-CvZxJiJs.js → SearchPage-zLztBgSJ.js} +1 -1
  15. package/src/client/dist/pwa/assets/SettingsPage-D7dz4XsR.js +16 -0
  16. package/src/client/dist/pwa/assets/{TerminalPanel-Dtc6B3US.js → TerminalPanel-BmVUy1id.js} +1 -1
  17. package/src/client/dist/pwa/assets/WorkspacePage-C94HHaL4.css +1 -0
  18. package/src/client/dist/pwa/assets/WorkspacePage-CsiPeq2V.js +4 -0
  19. package/src/client/dist/pwa/assets/build-path-tree-Wa8yj7QK.js +1 -0
  20. package/src/client/dist/pwa/assets/{cssMode-D_JDSbNP.js → cssMode-HhxDIsCM.js} +1 -1
  21. package/src/client/dist/pwa/assets/{editor.api-Ccbr7NXr.js → editor.api-B5MwI9d4.js} +1 -1
  22. package/src/client/dist/pwa/assets/efforts-CdYNf6hH.js +9 -0
  23. package/src/client/dist/pwa/assets/{engineFeatures-DW9PydRL.js → engineFeatures-D1YuJ-DC.js} +1 -1
  24. package/src/client/dist/pwa/assets/expand-template-waz-D9d1.js +1 -0
  25. package/src/client/dist/pwa/assets/{freemarker2-CUvQzJdx.js → freemarker2-jLQfsCvW.js} +1 -1
  26. package/src/client/dist/pwa/assets/{handlebars-BXiAPlES.js → handlebars-CVC4Zbcc.js} +1 -1
  27. package/src/client/dist/pwa/assets/{html-CLmfyTMC.js → html-B13Gq4HD.js} +1 -1
  28. package/src/client/dist/pwa/assets/{htmlMode-DWYo6_e_.js → htmlMode-zIxDJkV4.js} +1 -1
  29. package/src/client/dist/pwa/assets/i18n-CRyFzJ0j.js +1 -0
  30. package/src/client/dist/pwa/assets/{index-Dv1p-1sA.js → index-DTUtjyFL.js} +2 -2
  31. package/src/client/dist/pwa/assets/{javascript-C9gWFLC_.js → javascript-BH_oRQGk.js} +1 -1
  32. package/src/client/dist/pwa/assets/{jsonMode-CbsjeFb8.js → jsonMode-DEZXT4tt.js} +1 -1
  33. package/src/client/dist/pwa/assets/{liquid-BqJ3SIha.js → liquid-DupJ60S9.js} +1 -1
  34. package/src/client/dist/pwa/assets/{lspLanguageFeatures-BB0y1B51.js → lspLanguageFeatures-8WuKcueM.js} +1 -1
  35. package/src/client/dist/pwa/assets/{mdx-rIxQLZDB.js → mdx-krREYbpQ.js} +1 -1
  36. package/src/client/dist/pwa/assets/{network-auth-pzKTXRYP.js → network-auth-CimyJZRs.js} +1 -1
  37. package/src/client/dist/pwa/assets/{notify-theme-D7RrwvJa.js → notify-theme-Vqins57F.js} +1 -1
  38. package/src/client/dist/pwa/assets/pending-diff-open-Dzot60iG.js +1 -0
  39. package/src/client/dist/pwa/assets/permissionModes-CyTo3Uw7.js +36 -0
  40. package/src/client/dist/pwa/assets/{project-color-Dur1z6Gn.js → project-color-D2kPSvYd.js} +1 -1
  41. package/src/client/dist/pwa/assets/{python-C6d5du9h.js → python-CPyFKDpG.js} +1 -1
  42. package/src/client/dist/pwa/assets/{razor-Aek1yDc0.js → razor-DH0LB4f3.js} +1 -1
  43. package/src/client/dist/pwa/assets/{render-chat-markdown-B6sa44Xr.js → render-chat-markdown-DKNMRgai.js} +1 -1
  44. package/src/client/dist/pwa/assets/{tsMode-rxNEyqyY.js → tsMode-CU_5ct2k.js} +1 -1
  45. package/src/client/dist/pwa/assets/{typescript-DndxWYhC.js → typescript-cUNbTjV8.js} +1 -1
  46. package/src/client/dist/pwa/assets/{use-onboarding-BzSwN4xT.js → use-onboarding-DbIAv89p.js} +1 -1
  47. package/src/client/dist/pwa/assets/{vs-De8HKJ9r.js → vs-CDru4zWA.js} +3 -3
  48. package/src/client/dist/pwa/assets/{workers-DdNkyVm9.js → workers-CLWxCt-g.js} +1 -1
  49. package/src/client/dist/pwa/assets/{xml-Cl1k1mQr.js → xml-D2cBpO2j.js} +1 -1
  50. package/src/client/dist/pwa/assets/{yaml-C8G_k5TR.js → yaml-C1ITptUE.js} +1 -1
  51. package/src/client/dist/pwa/index.html +1 -1
  52. package/src/client/dist/pwa/sw.js +1 -1
  53. package/src/client/dist/pwa/assets/ActivityFeed-BlDBh5jB.js +0 -8
  54. package/src/client/dist/pwa/assets/GitPanel-DNCCB0G_.js +0 -3
  55. package/src/client/dist/pwa/assets/MainLayout-F8ShDnAy.css +0 -1
  56. package/src/client/dist/pwa/assets/MainLayout-qWwDy1B5.js +0 -2
  57. package/src/client/dist/pwa/assets/QExpansionItem-C8CWo-aP.js +0 -1
  58. package/src/client/dist/pwa/assets/QSelect-D9bHHxAA.js +0 -1
  59. package/src/client/dist/pwa/assets/QSlideTransition-6lWJvjLP.js +0 -1
  60. package/src/client/dist/pwa/assets/SchedulePanel-Brtqtz1H.js +0 -1
  61. package/src/client/dist/pwa/assets/SettingsPage-JVje8OPs.js +0 -16
  62. package/src/client/dist/pwa/assets/WorkspacePage-BVxtefbj.js +0 -4
  63. package/src/client/dist/pwa/assets/WorkspacePage-DN-A6XpI.css +0 -1
  64. package/src/client/dist/pwa/assets/build-path-tree-BU8Y8vRw.js +0 -1
  65. package/src/client/dist/pwa/assets/expand-template-Xq6JwXsl.js +0 -1
  66. package/src/client/dist/pwa/assets/i18n-CJclRByY.js +0 -1
  67. package/src/client/dist/pwa/assets/kobo-commands-DGygmOvc.js +0 -9
  68. package/src/client/dist/pwa/assets/pending-diff-open-Cia8sndE.js +0 -1
  69. package/src/client/dist/pwa/assets/permissionModes-6jhegAm-.js +0 -1
  70. package/src/client/dist/pwa/assets/skill-suite-prompts-DdoGRwhz.js +0 -36
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/DocumentsPanel-DhP1jk11.js","assets/vue-i18n-C3W5i7h6.js","assets/reactivity.esm-bundler-DtSZKRQB.js","assets/runtime-dom.esm-bundler-DgevF6KV.js","assets/QBtn-B7WFdfmy.js","assets/documents-B6eOZeFK.js","assets/use-id-DlouqdB8.js","assets/layout-nWIyHeJf.js","assets/render-chat-markdown-B6sa44Xr.js","assets/index-Dv1p-1sA.js","assets/debounce-CDIE7CV6.js","assets/private.use-form-D8Yuc3aU.js","assets/use-checkbox-z-Qs4ZHY.js","assets/index-Bri8-39E.css","assets/build-path-tree-BU8Y8vRw.js","assets/QSlideTransition-6lWJvjLP.js","assets/DocumentsPanel-B8QY7FTj.css","assets/GitPanel-DNCCB0G_.js","assets/QList-Ccqhimcb.js","assets/skill-suite-prompts-DdoGRwhz.js","assets/QSelect-D9bHHxAA.js","assets/QItemSection-CDBweQnA.js","assets/QChip-BzB_GF4Z.js","assets/ClosePopup-DEy0yFXE.js","assets/QBtnGroup-BMQlX2YS.js","assets/clipboard-t9qe6lK7.js","assets/GitPanel-BKrtkPrV.css","assets/SchedulePanel-Brtqtz1H.js","assets/QExpansionItem-C8CWo-aP.js","assets/QBadge-BgS0-MXB.js","assets/QBtnToggle-eMu_yinY.js","assets/SchedulePanel-BunlzsOY.css","assets/TerminalPanel-Dtc6B3US.js","assets/QSpace-D3PNLwa4.js","assets/TerminalPanel-B6xJJs8p.css"])))=>i.map(i=>d[i]);
2
- import{i as e,n as t}from"./vue-i18n-C3W5i7h6.js";import{B as n,C as r,St as i,m as a,wt as o,x as s,yt as c}from"./reactivity.esm-bundler-DtSZKRQB.js";import{$ as l,A as u,At as d,B as f,Bt as p,C as m,Et as h,H as g,It as _,Kt as v,Mt as y,Ot as b,Q as x,Rt as S,S as C,Tt as w,U as T,V as E,W as D,Wt as O,X as k,Z as A,_n as j,fn as M,st as N,ut as P,vt as F,w as I,yn as L}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{B as ee,F as R,L as z,M as B,P as V,R as H,S as te,X as ne,Z as re,b as ie,c as U,l as W,nt as ae,t as G,y as oe}from"./QBtn-B7WFdfmy.js";import{D as se,E as ce,O as le,k as ue,l as de,n as fe}from"./use-id-DlouqdB8.js";import{C as pe,_ as me,_t as K,b as he,c as ge,et as _e,f as ve,gt as ye,h as be,ht as xe,lt as Se,m as q,n as Ce,o as we,r as Te,s as Ee,t as De,tt as Oe,u as ke,v as Ae,vt as je,w as Me,y as Ne}from"./index-Dv1p-1sA.js";import{t as Pe}from"./QList-Ccqhimcb.js";import{d as Fe,s as Ie,u as Le}from"./skill-suite-prompts-DdoGRwhz.js";import{n as J,t as Y}from"./QItemSection-CDBweQnA.js";import{n as Re,r as ze,t as Be}from"./documents-B6eOZeFK.js";import{t as X}from"./ClosePopup-DEy0yFXE.js";import{a as Z,i as Q,n as Ve,r as He,t as Ue}from"./layout-nWIyHeJf.js";import{n as We}from"./render-chat-markdown-B6sa44Xr.js";import{t as Ge}from"./QBadge-BgS0-MXB.js";import{t as $}from"./QSpace-D3PNLwa4.js";import{t as Ke}from"./QChip-BzB_GF4Z.js";import{n as qe,r as Je}from"./kobo-commands-DGygmOvc.js";import{c as Ye,i as Xe,l as Ze,o as Qe,r as $e,s as et,u as tt}from"./engineFeatures-DW9PydRL.js";import{n as nt,t as rt}from"./use-onboarding-BzSwN4xT.js";import{t as it}from"./formatters-D0dU6VcA.js";import{a as at,i as ot,n as st,r as ct}from"./project-color-Dur1z6Gn.js";var lt={class:`acceptance-panel q-pa-md`},ut={class:`row items-center q-mb-sm`},dt={class:`text-caption text-uppercase text-weight-bold text-kobo-3`,style:{"letter-spacing":`0.05em`}},ft={key:0,class:`criterion-add-row row items-center q-mb-xs`},pt={key:1,class:`acceptance-list`},mt=[`onDblclick`],ht={key:2,class:`text-caption text-kobo-3`,style:{"font-size":`11px`}},gt=Q(l({__name:`AcceptancePanel`,props:{tasks:{}},setup(e){let{t:a}=t(),s=q(),l=ve();function d(){let e=s.selectedWorkspaceId;e&&qe(e,l,s)}let f=r(!1),p=r(``),h=r(null),_=r(``),v=r({});function y(e,t){if(t){let n=t.$el??t;v.value[e]=n}else delete v.value[e]}function b(e){switch(e){case`done`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function x(e){switch(e){case`done`:return`var(--kobo-success)`;case`in_progress`:return`var(--kobo-warning)`;default:return`var(--kobo-text-3)`}}async function C(e){let t=e.status===`done`?`pending`:`done`,n=e.workspaceId;try{let r=await fetch(`/api/workspaces/${e.workspaceId}/tasks/${e.id}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({status:t})});if(!r.ok)throw Error(`HTTP ${r.status}`);s.fetchWorkspaceDetails(n)}catch(e){console.error(`Failed to update task:`,e)}}function M(){f.value||(f.value=!0,p.value=``)}async function N(){let e=p.value.trim(),t=s.selectedWorkspace?.id;if(!(!e||!t))try{await s.createTask(t,e,!0),p.value=``,f.value=!1}catch{}}function P(){p.value=``,f.value=!1}function F(e){h.value=e.id,_.value=e.title,w(()=>{let t=v.value[e.id]?.querySelector(`input, textarea`);t?.focus(),t?.select()})}async function L(e){if(h.value!==e.id)return;let t=_.value.trim(),n=e.id;if(h.value=null,!t||t===e.title)return;let r=s.selectedWorkspace?.id;if(r)try{await s.updateTaskTitle(r,n,t)}catch{}}function ee(){h.value=null,_.value=``}async function R(e){let t=s.selectedWorkspace?.id;if(t)try{await s.deleteTask(t,e.id)}catch{}}return(t,r)=>(S(),D(`div`,lt,[E(`div`,ut,[E(`div`,dt,o(t.$t(`acceptance.title`)),1),A($),n(s).selectedWorkspace?(S(),g(G,{key:0,flat:``,dense:``,round:``,size:`xs`,icon:`fact_check`,color:`kobo-2`,onClick:d},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(t.$t(`tasks.askProgress`)),1)]),_:1})]),_:1})):T(``,!0),n(s).selectedWorkspace?(S(),g(G,{key:1,flat:``,dense:``,round:``,size:`xs`,icon:`add`,color:`primary`,onClick:M},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(t.$t(`tooltip.addCriterion`)),1)]),_:1})]),_:1})):T(``,!0)]),f.value?(S(),D(`div`,ft,[A(Oe,{modelValue:p.value,"onUpdate:modelValue":r[0]||=e=>p.value=e,dark:``,dense:``,borderless:``,autofocus:``,placeholder:t.$t(`acceptance.newCriterion`),class:`col criterion-input`,"input-class":`criterion-input-inner`,onKeydown:[m(I(N,[`prevent`]),[`enter`]),m(I(P,[`prevent`]),[`esc`])]},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):T(``,!0),e.tasks.length>0?(S(),D(`div`,pt,[(S(!0),D(u,null,O(e.tasks,e=>(S(),D(`div`,{key:e.id,class:`acceptance-item row items-center q-mb-xxs`},[A(W,{name:b(e.status),size:`16px`,style:i({color:x(e.status)}),class:`q-mr-xs cursor-pointer`,onClick:t=>C(e)},null,8,[`name`,`style`,`onClick`]),h.value===e.id?(S(),g(Oe,{key:0,ref_for:!0,ref:t=>y(e.id,t),modelValue:_.value,"onUpdate:modelValue":r[1]||=e=>_.value=e,dark:``,dense:``,borderless:``,class:`col criterion-input`,"input-class":`criterion-input-inner`,onKeydown:[m(I(t=>L(e),[`prevent`]),[`enter`]),m(I(ee,[`prevent`]),[`esc`])],onBlur:t=>L(e)},null,8,[`modelValue`,`onKeydown`,`onBlur`])):(S(),D(u,{key:1},[E(`span`,{class:c([`col acceptance-title text-caption`,{"text-strike":e.status===`done`}]),style:i({color:e.status===`done`?`var(--kobo-success)`:`var(--kobo-text-2)`}),onDblclick:t=>F(e)},o(e.title),47,mt),A(G,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,color:`kobo-3`,class:`criterion-delete-btn`,onClick:t=>R(e)},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(t.$t(`tooltip.removeCriterion`)),1)]),_:1})]),_:1},8,[`onClick`])],64))]))),128))])):f.value?T(``,!0):(S(),D(`div`,ht,o(t.$t(`acceptance.empty`)),1))]))}}),[[`__scopeId`,`data-v-9d9230ee`]]),_t={class:`notion-panel q-pa-md`},vt={class:`row items-center q-mb-sm`},yt={class:`text-caption text-uppercase text-weight-bold text-kobo-3`,style:{"letter-spacing":`0.05em`}},bt={key:0,class:`q-mb-sm`},xt={class:`text-caption text-kobo-3`,style:{"font-size":`11px`}},St={key:1,class:`text-caption text-kobo-3 q-mb-sm`,style:{"font-size":`11px`}},Ct={key:2,class:`task-add-row row items-center q-mb-xs`},wt={key:3,class:`tasks-list`},Tt=[`onDblclick`],Et={key:1,class:`text-caption text-kobo-3`},Dt=Q(l({__name:`TasksPanel`,props:{workspace:{},tasks:{}},setup(e){let n=e,{t:a}=t(),s=q(),l=ve();function d(){n.workspace?.id&&qe(n.workspace.id,l,s)}let p=f(()=>n.tasks.filter(e=>!e.isAcceptanceCriterion)),h=f(()=>p.value.filter(e=>e.status===`done`).length),_=f(()=>p.value.length),v=f(()=>_.value>0?h.value/_.value:0),y=r(!1),b=r(``),x=r(null),C=r(``),M=r({});function N(e,t){if(t){let n=t.$el??t;M.value[e]=n}else delete M.value[e]}function P(){y.value||(y.value=!0,b.value=``)}async function F(){let e=b.value.trim();if(!(!e||!n.workspace?.id))try{await s.createTask(n.workspace.id,e,!1),b.value=``,y.value=!1}catch{}}function L(){b.value=``,y.value=!1}function ee(e){x.value=e.id,C.value=e.title,w(()=>{let t=M.value[e.id]?.querySelector(`input, textarea`);t?.focus(),t?.select()})}async function R(e){if(x.value!==e.id)return;let t=C.value.trim(),r=e.id;if(x.value=null,!(!t||t===e.title)&&n.workspace?.id)try{await s.updateTaskTitle(n.workspace.id,r,t)}catch{}}function z(){x.value=null,C.value=``}async function B(e){if(n.workspace?.id)try{await s.deleteTask(n.workspace.id,e.id)}catch{}}async function V(e){if(!n.workspace?.id)return;let t=e.status===`done`?`pending`:`done`,r=e.workspaceId;try{let n=await fetch(`/api/workspaces/${e.workspaceId}/tasks/${e.id}`,{method:`PATCH`,headers:{"Content-Type":`application/json`},body:JSON.stringify({status:t})});if(!n.ok)throw Error(`HTTP ${n.status}`);s.fetchWorkspaceDetails(r)}catch(e){console.error(`Failed to toggle task:`,e)}}function H(e){switch(e){case`done`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function te(e){switch(e){case`done`:return`var(--kobo-success)`;case`in_progress`:return`var(--kobo-warning)`;default:return`var(--kobo-text-3)`}}return(t,n)=>(S(),D(`div`,_t,[E(`div`,vt,[E(`div`,yt,o(t.$t(`tasks.title`)),1),A($),e.workspace?(S(),g(G,{key:0,flat:``,dense:``,round:``,size:`xs`,icon:`fact_check`,color:`kobo-2`,onClick:d},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(t.$t(`tasks.askProgress`)),1)]),_:1})]),_:1})):T(``,!0),e.workspace?(S(),g(G,{key:1,flat:``,dense:``,round:``,size:`xs`,icon:`add`,color:`primary`,onClick:P},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(t.$t(`tooltip.addTask`)),1)]),_:1})]),_:1})):T(``,!0)]),e.workspace?(S(),D(u,{key:0},[_.value>0?(S(),D(`div`,bt,[A(ye,{value:v.value,color:`primary`,"track-color":`kobo-surface-2`,class:`q-mb-xs`,style:{height:`4px`,"border-radius":`2px`}},null,8,[`value`]),E(`div`,xt,o(t.$t(`notion.subtasks`,{done:h.value,total:_.value})),1)])):y.value?T(``,!0):(S(),D(`div`,St,o(t.$t(`notion.noTasks`)),1)),y.value?(S(),D(`div`,Ct,[A(Oe,{modelValue:b.value,"onUpdate:modelValue":n[0]||=e=>b.value=e,dark:``,dense:``,borderless:``,autofocus:``,placeholder:t.$t(`notion.newTask`),class:`col task-input`,"input-class":`task-input-inner`,onKeydown:[m(I(F,[`prevent`]),[`enter`]),m(I(L,[`prevent`]),[`esc`])]},null,8,[`modelValue`,`placeholder`,`onKeydown`])])):T(``,!0),p.value.length>0?(S(),D(`div`,wt,[(S(!0),D(u,null,O(p.value,e=>(S(),D(`div`,{key:e.id,class:`task-item row items-center q-py-xxs`},[A(W,{name:H(e.status),size:`14px`,style:i({color:te(e.status)}),class:`q-mr-xs cursor-pointer`,onClick:t=>V(e)},null,8,[`name`,`style`,`onClick`]),x.value===e.id?(S(),g(Oe,{key:0,ref_for:!0,ref:t=>N(e.id,t),modelValue:C.value,"onUpdate:modelValue":n[1]||=e=>C.value=e,dark:``,dense:``,borderless:``,class:`col task-input`,"input-class":`task-input-inner`,onKeydown:[m(I(t=>R(e),[`prevent`]),[`enter`]),m(I(z,[`prevent`]),[`esc`])],onBlur:t=>R(e)},null,8,[`modelValue`,`onKeydown`,`onBlur`])):(S(),D(u,{key:1},[E(`span`,{class:c([`col task-title text-caption`,{"text-strike":e.status===`done`}]),style:i({color:e.status===`done`?`var(--kobo-success)`:`var(--kobo-text-2)`}),onDblclick:t=>ee(e)},o(e.title),47,Tt),A(G,{flat:``,dense:``,round:``,size:`xs`,icon:`close`,color:`kobo-3`,class:`task-delete-btn`,onClick:t=>B(e)},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(t.$t(`tooltip.removeTask`)),1)]),_:1})]),_:1},8,[`onClick`])],64))]))),128))])):T(``,!0)],64)):(S(),D(`div`,Et,o(t.$t(`common.selectWorkspace`)),1))]))}}),[[`__scopeId`,`data-v-17987491`]]),Ot=0,kt=[`click`,`keydown`],At={icon:String,label:[Number,String],alert:[Boolean,String],alertIcon:String,name:{type:[Number,String],default:()=>`t_${Ot++}`},noCaps:Boolean,tabindex:[String,Number],disable:Boolean,contentClass:String,ripple:{type:[Boolean,Object],default:!0}};function jt(e,t,n,i){let a=F(z,B);if(a===B)return console.error(`QTab/QRouteTab component needs to be child of QTabs`),B;let{proxy:o}=N(),s=r(null),c=r(null),l=r(null),u=f(()=>e.disable||e.ripple===!1?!1:{keyCodes:[13,32],early:!0,...e.ripple===!0?{}:e.ripple}),d=f(()=>a.currentModel.value===e.name),p=f(()=>`q-tab relative-position self-stretch flex flex-center text-center`+(d.value?` q-tab--active`+(a.tabProps.value.activeClass?` `+a.tabProps.value.activeClass:``)+(a.tabProps.value.activeColor?` text-${a.tabProps.value.activeColor}`:``)+(a.tabProps.value.activeBgColor?` bg-${a.tabProps.value.activeBgColor}`:``):` q-tab--inactive`)+(e.icon&&e.label&&!a.tabProps.value.inlineLabel?` q-tab--full`:``)+(e.noCaps||a.tabProps.value.noCaps?` q-tab--no-caps`:``)+(e.disable?` disabled`:` q-focusable q-hoverable cursor-pointer`)+(i===void 0?``:i.linkClass.value)),m=f(()=>`q-tab__content self-stretch flex-center relative-position q-anchor--skip non-selectable `+(a.tabProps.value.inlineLabel?`row no-wrap q-tab__content--inline`:`column`)+(e.contentClass===void 0?``:` ${e.contentClass}`)),h=f(()=>e.disable||a.hasFocus.value||!d.value&&a.hasActiveTab.value?-1:e.tabindex||0);function g(t,r){if(!r&&!t?.qAvoidFocus&&s.value?.focus({preventScroll:!0}),e.disable){i?.hasRouterLink.value===!0&&ne(t);return}if(i===void 0){a.updateModel({name:e.name}),n(`click`,t);return}if(i.hasRouterLink.value){let r=(n={})=>{let r,o=n.to===void 0||je(n.to,e.to)?a.avoidRouteWatcher=fe():null;return i.navigateToRouterLink(t,{...n,returnRouterError:!0}).catch(e=>{r=e}).then(t=>{if(o===a.avoidRouteWatcher&&(a.avoidRouteWatcher=!1,r===void 0&&(t===void 0||t.message?.startsWith(`Avoided redundant navigation`)===!0)&&a.updateModel({name:e.name})),n.returnRouterError)return r===void 0?t:Promise.reject(r)})};n(`click`,t,r),t.defaultPrevented||r();return}n(`click`,t)}function _(e){H(e,[13,32])?g(e,!0):!ee(e)&&e.keyCode>=35&&e.keyCode<=40&&!e.altKey&&!e.metaKey&&a.onKbdNavigate(e.keyCode,o.$el)&&ne(e),n(`keydown`,e)}function v(){let n=a.tabProps.value.narrowIndicator,r=[],i=P(`div`,{ref:l,class:[`q-tab__indicator`,a.tabProps.value.indicatorClass]});e.icon!==void 0&&r.push(P(W,{class:`q-tab__icon`,name:e.icon})),e.label!==void 0&&r.push(P(`div`,{class:`q-tab__label`},e.label)),e.alert&&r.push(e.alertIcon===void 0?P(`div`,{class:`q-tab__alert`+(e.alert===!0?``:` text-${e.alert}`)}):P(W,{class:`q-tab__alert-icon`,color:e.alert===!0?void 0:e.alert,name:e.alertIcon})),n&&r.push(i);let o=[P(`div`,{class:`q-focus-helper`,tabindex:-1,ref:s}),P(`div`,{class:m.value},ie(t.default,r))];return n||o.push(i),o}let x={name:f(()=>e.name),rootRef:c,tabIndicatorRef:l,routeData:i};b(()=>{a.unregisterTab(x)}),y(()=>{a.registerTab(x)});function S(t,n){let r={ref:c,class:p.value,tabindex:h.value,role:`tab`,"aria-selected":d.value?`true`:`false`,"aria-disabled":e.disable?`true`:void 0,onClick:g,onKeydown:_,...n};return L(P(t,r,v()),[[U,u.value]])}return{renderTab:S,$tabs:a}}var Mt=re({name:`QTab`,props:At,emits:kt,setup(e,{slots:t,emit:n}){let{renderTab:r}=jt(e,t,n);return()=>r(`div`)}});function Nt(e,t,n){let r=n?[`left`,`right`]:[`top`,`bottom`];return`absolute-${t?r[0]:r[1]}${e?` text-${e}`:``}`}function Pt(e,t){for(let n in e)if(e[n]!==t[n])return!1;return!0}var Ft=[`left`,`center`,`right`,`justify`],It=re({name:`QTabs`,props:{modelValue:[Number,String],align:{type:String,default:`center`,validator:e=>Ft.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:t,emit:n}){let{proxy:i}=N(),{$q:a}=i,{registerTick:o}=ce(),{registerTick:s}=ce(),{registerTick:c}=ce(),{registerTimeout:l,removeTimeout:u}=se(),{registerTimeout:m,removeTimeout:g}=se(),_=r(null),v=r(null),y=r(e.modelValue),x=r(!1),S=r(!0),C=r(!1),w=r(!1),T=[],E=r(0),D=r(!1),O=null,k=null,A,j=f(()=>({activeClass:e.activeClass,activeColor:e.activeColor,activeBgColor:e.activeBgColor,indicatorClass:Nt(e.indicatorColor,e.switchIndicator,e.vertical),narrowIndicator:e.narrowIndicator,inlineLabel:e.inlineLabel,noCaps:e.noCaps})),F=f(()=>{let e=E.value,t=y.value;for(let n=0;n<e;n++)if(T[n].name.value===t)return!0;return!1}),I=f(()=>`q-tabs__content--align-${x.value?`left`:w.value?`justify`:e.align}`),L=f(()=>`q-tabs row no-wrap items-center q-tabs--${x.value?``:`not-`}scrollable q-tabs--${e.vertical?`vertical`:`horizontal`} q-tabs__arrows--${e.outsideArrows?`outside`:`inside`} q-tabs--mobile-with${e.mobileArrows?``:`out`}-arrows`+(e.dense?` q-tabs--dense`:``)+(e.shrink?` col-shrink`:``)+(e.stretch?` self-stretch`:``)),ee=f(()=>`q-tabs__content scroll--mobile row no-wrap items-center self-stretch hide-scrollbar relative-position `+I.value+(e.contentClass===void 0?``:` ${e.contentClass}`)),R=f(()=>e.vertical?{container:`height`,content:`offsetHeight`,scroll:`scrollHeight`}:{container:`width`,content:`offsetWidth`,scroll:`scrollWidth`}),B=f(()=>!e.vertical&&a.lang.rtl===!0),V=f(()=>!Fe&&B.value);M(B,ae),M(()=>e.modelValue,e=>{H({name:e,setCurrent:!0,skipEmit:!0})}),M(()=>e.outsideArrows,ne);function H({name:t,setCurrent:r,skipEmit:i}){y.value!==t&&(!i&&e[`onUpdate:modelValue`]!==void 0&&n(`update:modelValue`,t),(r||e[`onUpdate:modelValue`]===void 0)&&(ie(y.value,t),y.value=t))}function ne(){o(()=>{_.value&&re({width:_.value.offsetWidth,height:_.value.offsetHeight})})}function re(t){if(R.value===void 0||v.value===null)return;let n=t[R.value.container],r=Math.min(v.value[R.value.scroll],Array.prototype.reduce.call(v.value.children,(e,t)=>e+(t[R.value.content]||0),0)),i=n>0&&r>n;x.value=i,i&&s(ae),w.value=n<Number.parseInt(e.breakpoint,10)}function ie(t,n){let r=t!=null&&t!==``?T.find(e=>e.name.value===t):null,i=n!=null&&n!==``?T.find(e=>e.name.value===n):null;if(q)q=!1;else if(r&&i){let t=r.tabIndicatorRef.value,n=i.tabIndicatorRef.value;O!==null&&(clearTimeout(O),O=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?`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)`,c(()=>{O=setTimeout(()=>{O=null,n.style.transition=`transform .25s cubic-bezier(.4, 0, .2, 1)`,n.style.transform=`none`},70)})}i&&x.value&&U(i.rootRef.value)}function U(t){let{left:n,width:r,top:i,height:a}=v.value.getBoundingClientRect(),o=t.getBoundingClientRect(),s=e.vertical?o.top-i:o.left-n;if(s<0){v.value[e.vertical?`scrollTop`:`scrollLeft`]+=Math.floor(s),ae();return}s+=e.vertical?o.height-a:o.width-r,s>0&&(v.value[e.vertical?`scrollTop`:`scrollLeft`]+=Math.ceil(s),ae())}function ae(){let t=v.value;if(t===null)return;let n=t.getBoundingClientRect(),r=e.vertical?t.scrollTop:Math.abs(t.scrollLeft);B.value?(S.value=Math.ceil(r+n.width)<t.scrollWidth-1,C.value=r>0):(S.value=r>0,C.value=e.vertical?Math.ceil(r+n.height)<t.scrollHeight:Math.ceil(r+n.width)<t.scrollWidth)}function G(e){k!==null&&clearInterval(k),k=setInterval(()=>{pe(e)&&ue()},5)}function oe(){G(V.value?2**53-1:0)}function le(){G(V.value?0:2**53-1)}function ue(){k!==null&&(clearInterval(k),k=null)}function de(t,n){let r=Array.prototype.filter.call(v.value.children,e=>e===n||e.matches?.(`.q-tab.q-focusable`)),i=r.length;if(i===0)return;if(t===36)return U(r[0]),r[0].focus(),!0;if(t===35)return U(r[i-1]),r[i-1].focus(),!0;let a=t===(e.vertical?38:37),o=t===(e.vertical?40:39),s=a?-1:o?1:void 0;if(s!==void 0){let t=e.vertical!==!0&&B.value?-1:1,a=(r.indexOf(n)+s*t+i)%i;return U(r[a]),r[a].focus({preventScroll:!0}),!0}}let fe=f(()=>V.value?{get:e=>Math.abs(e.scrollLeft),set:(e,t)=>{e.scrollLeft=-t}}:e.vertical?{get:e=>e.scrollTop,set:(e,t)=>{e.scrollTop=t}}:{get:e=>e.scrollLeft,set:(e,t)=>{e.scrollLeft=t}});function pe(e){let t=v.value,{get:n,set:r}=fe.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),ae(),i}function me(){let e=null,t={matchedLen:0,queryDiff:9999,hrefLen:0},n=T.filter(e=>e.routeData?.hasRouterLink.value===!0),{hash:r,query:a}=i.$route,o=Object.keys(a).length;for(let i of n){let n=i.routeData.exact.value===!0;if(!i.routeData[n?`linkIsExactActive`:`linkIsActive`].value)continue;let{hash:s,query:c,matched:l,href:u}=i.routeData.resolvedLink.value,d=Object.keys(c).length;if(n){if(s!==r||d!==o||!Pt(a,c))continue;e=i.name.value;break}if(s!==``&&s!==r||d!==0&&!Pt(c,a))continue;let f={matchedLen:l.length,queryDiff:o-d,hrefLen:u.length-s.length};if(f.matchedLen>t.matchedLen){e=i.name.value,t=f;continue}if(f.matchedLen===t.matchedLen){if(f.queryDiff<t.queryDiff)e=i.name.value,t=f;else if(f.queryDiff!==t.queryDiff)continue;f.hrefLen>t.hrefLen&&(e=i.name.value,t=f)}}if(e===null&&T.some(e=>e.routeData===void 0&&e.name.value===y.value)){q=!1;return}H({name:e,setCurrent:!0})}function K(e){if(u(),!D.value&&_.value!==null&&e.target&&typeof e.target.closest==`function`){let t=e.target.closest(`.q-tab`);t&&_.value.contains(t)&&(D.value=!0,x.value&&U(t))}}function he(){l(()=>{D.value=!1},30)}function ge(){be.avoidRouteWatcher===!1?m(me):g()}function _e(){if(A===void 0){let e=M(()=>i.$route.fullPath,ge);A=()=>{e(),A=void 0}}}function ve(e){T.push(e),E.value++,ne(),e.routeData===void 0||i.$route===void 0?m(()=>{if(x.value){let e=y.value,t=e!=null&&e!==``?T.find(t=>t.name.value===e):null;t&&U(t.rootRef.value)}}):(_e(),e.routeData.hasRouterLink.value&&ge())}function ye(e){T.splice(T.indexOf(e),1),E.value--,ne(),A!==void 0&&e.routeData!==void 0&&(T.every(e=>e.routeData===void 0)&&A(),ge())}let be={currentModel:y,tabProps:j,hasFocus:D,hasActiveTab:F,registerTab:ve,unregisterTab:ye,verifyRouteModel:ge,updateModel:H,onKbdNavigate:de,avoidRouteWatcher:!1};p(z,be);function xe(){O!==null&&clearTimeout(O),ue(),A?.()}let Se=!1,q=!1;return b(xe),d(()=>{Se=A!==void 0,xe()}),h(()=>{Se&&(_e(),q=!0,ge()),ne()}),()=>P(`div`,{ref:_,class:L.value,role:`tablist`,"aria-orientation":e.vertical?`vertical`:`horizontal`,onFocusin:K,onFocusout:he},[P(ze,{onResize:re}),P(`div`,{ref:v,class:ee.value,onScroll:ae},te(t.default)),P(W,{class:`q-tabs__arrow q-tabs__arrow--left absolute q-tab__icon`+(S.value?``:` q-tabs__arrow--faded`),name:e.leftIcon||a.iconSet.tabs[e.vertical?`up`:`left`],onMousedownPassive:oe,onTouchstartPassive:oe,onMouseupPassive:ue,onMouseleavePassive:ue,onTouchendPassive:ue}),P(W,{class:`q-tabs__arrow q-tabs__arrow--right absolute q-tab__icon`+(C.value?``:` q-tabs__arrow--faded`),name:e.rightIcon||a.iconSet.tabs[e.vertical?`down`:`right`],onMousedownPassive:le,onTouchstartPassive:le,onMouseupPassive:ue,onMouseleavePassive:ue,onTouchendPassive:ue})])}}),Lt=re({name:`QTabPanel`,props:Ye,setup(e,{slots:t}){return()=>P(`div`,{class:`q-tab-panel`,role:`tabpanel`},te(t.default))}}),Rt=re({name:`QTabPanels`,props:{...tt,...ue},emits:Ze,setup(e,{slots:t}){let n=N(),r=le(e,n.proxy.$q),{updatePanelsList:i,getPanelContent:a,panelDirectives:o}=et(),s=f(()=>`q-tab-panels q-panel-parent`+(r.value?` q-tab-panels--dark q-dark`:``));return()=>(i(t),oe(`div`,{class:s.value},a(),`pan`,e.swipeable,()=>o.value))}});function zt(e){let t=[],n=[],r=[],i=[];for(let a of e){if(a.status!==`COMPLETED`){n.push(a);continue}a.conclusion===`FAILURE`||a.conclusion===`CANCELLED`||a.conclusion===`TIMED_OUT`?t.push(a):a.conclusion===`SUCCESS`?r.push(a):i.push(a)}let a=(e,t)=>e.name.localeCompare(t.name);return t.sort(a),n.sort(a),r.sort(a),i.sort(a),{failed:t,pending:n,passed:r,skipped:i}}var Bt=re({name:`QPageContainer`,setup(e,{slots:t}){let{proxy:{$q:n}}=N(),r=F(V,B);if(r===B)return console.error(`QPageContainer needs to be child of QLayout`),B;p(R,!0);let i=f(()=>{let e={};return r.header.space&&(e.paddingTop=`${r.header.size}px`),r.right.space&&(e[`padding${n.lang.rtl?`Left`:`Right`}`]=`${r.right.size}px`),r.footer.space&&(e.paddingBottom=`${r.footer.size}px`),r.left.space&&(e[`padding${n.lang.rtl?`Right`:`Left`}`]=`${r.left.size}px`),e});return()=>P(`div`,{class:`q-page-container`,style:i.value},te(t.default))}}),Vt=/^(h|l)h(h|r) lpr (f|l)f(f|r)$/,Ht=re({name:`QLayout`,props:{container:Boolean,view:{type:String,default:`hhh lpr fff`,validator:e=>Vt.test(e.toLowerCase())},onScroll:Function,onScrollHeight:Function,onResize:Function},setup(e,{slots:t,emit:n}){let{proxy:{$q:i}}=N(),a=r(null),o=r(i.screen.height),c=r(e.container?0:i.screen.width),l=r({position:0,direction:`down`,inflectionPoint:0}),u=r(0),d=r(ae.value?0:de()),m=f(()=>`q-layout q-layout--`+(e.container?`containerized`:`standard`)),h=f(()=>e.container?null:{minHeight:i.screen.height+`px`}),g=f(()=>d.value===0?null:{[i.lang.rtl?`left`:`right`]:`${d.value}px`}),v=f(()=>d.value===0?null:{[i.lang.rtl?`right`:`left`]:0,[i.lang.rtl?`left`:`right`]:`-${d.value}px`,width:`calc(100% + ${d.value}px)`});function y(t){if(e.container||!document.qScrollPrevented){let r={position:t.position.top,direction:t.direction,directionChanged:t.directionChanged,inflectionPoint:t.inflectionPoint.top,delta:t.delta.top};l.value=r,e.onScroll!==void 0&&n(`scroll`,r)}}function b(t){let{height:r,width:i}=t,a=!1;o.value!==r&&(a=!0,o.value=r,e.onScrollHeight!==void 0&&n(`scrollHeight`,r),S()),c.value!==i&&(a=!0,c.value=i),a&&e.onResize!==void 0&&n(`resize`,t)}function x({height:e}){u.value!==e&&(u.value=e,S())}function S(){if(e.container){let e=o.value>u.value?de():0;d.value!==e&&(d.value=e)}}let C=null,w={instances:{},view:f(()=>e.view),isContainer:f(()=>e.container),rootRef:a,height:o,containerHeight:u,scrollbarWidth:d,totalWidth:f(()=>c.value+d.value),rows:f(()=>{let t=e.view.toLowerCase().split(` `);return{top:[...t[0]],middle:[...t[1]],bottom:[...t[2]]}}),header:s({size:0,offset:0,space:!1}),right:s({size:300,offset:0,space:!1}),footer:s({size:0,offset:0,space:!1}),left:s({size:300,offset:0,space:!1}),scroll:l,animate(){C===null?document.body.classList.add(`q-body--layout-animate`):clearTimeout(C),C=setTimeout(()=>{C=null,document.body.classList.remove(`q-body--layout-animate`)},155)},update(e,t,n){w[e][t]=n}};if(p(V,w),de()>0){let t=null,n=document.body,r=()=>{t=null,n.classList.remove(`hide-scrollbar`)},a=()=>{if(t===null){if(n.scrollHeight>i.screen.height)return;n.classList.add(`hide-scrollbar`)}else clearTimeout(t);t=setTimeout(r,300)},o=e=>{t!==null&&e===`remove`&&(clearTimeout(t),r()),window[`${e}EventListener`](`resize`,a)};M(()=>e.container?`remove`:`add`,o),e.container||o(`add`),_(()=>{o(`remove`)})}return()=>{let n=ie(t.default,[P(Re,{onScroll:y}),P(ze,{onResize:b})]),r=P(`div`,{class:m.value,style:h.value,ref:e.container?void 0:a,tabindex:-1},n);return e.container?P(`div`,{class:`q-layout-container overflow-hidden`,ref:a},[P(ze,{onResize:x}),P(`div`,{class:`absolute-full`,style:g.value},[P(`div`,{class:`scroll`,style:v.value},[r])])]):r}}}),Ut={class:`agent-todos-panel q-pa-md`},Wt={class:`row items-center q-mb-sm`},Gt={class:`text-caption text-uppercase text-weight-bold text-kobo-3`,style:{"letter-spacing":`0.05em`}},Kt={key:0,class:`todos-list`},qt={key:1,class:`text-caption text-kobo-3`,style:{"font-size":`11px`}},Jt=Q(l({__name:`AgentTodosPanel`,setup(e){let{t:r}=t(),a=q();function s(e){switch(e){case`completed`:return`check_circle`;case`in_progress`:return`timelapse`;default:return`radio_button_unchecked`}}function l(e){switch(e){case`completed`:return`var(--kobo-success)`;case`in_progress`:return`var(--kobo-warning)`;default:return`var(--kobo-text-3)`}}return(e,t)=>(S(),D(`div`,Ut,[E(`div`,Wt,[E(`div`,Gt,o(e.$t(`agentTodos.title`)),1)]),n(a).currentAgentTodos.length>0?(S(),D(`div`,Kt,[(S(!0),D(u,null,O(n(a).currentAgentTodos,(e,t)=>(S(),D(`div`,{key:t,class:`todo-item row items-start q-py-xxs`},[A(W,{name:s(e.status),size:`14px`,style:i({color:l(e.status)}),class:`q-mr-xs q-mt-xxs`},null,8,[`name`,`style`]),E(`span`,{class:c([`col todo-title text-caption`,{"text-strike":e.status===`completed`}]),style:i({color:e.status===`completed`?`var(--kobo-success)`:`var(--kobo-text-2)`})},o(e.content),7)]))),128))])):(S(),D(`div`,qt,o(e.$t(`agentTodos.empty`)),1))]))}}),[[`__scopeId`,`data-v-722f7db5`]]),Yt=`kobo:pwa-install-banner-dismissed`;function Xt(){return localStorage.getItem(Yt)===`1`}function Zt(){localStorage.setItem(Yt,`1`)}var Qt={class:`text-caption col`},$t=Q(l({__name:`PwaStatusBanner`,setup(e){let t=r(null),n=r(Xt()),i=r(!navigator.onLine),a=r(!1),s=ve(),c=f(()=>!i.value&&s.reconnecting),l=r(null),u;function d(){document.documentElement.style.setProperty(`--kobo-pwa-banner-height`,`${l.value?.offsetHeight??0}px`)}M([i,c,t,n,a],()=>{w(d)});let p,m=!1;function h(e){e.preventDefault(),t.value=e}function v(){i.value=!navigator.onLine}async function b(){let e=t.value;e&&(await e.prompt(),await e.userChoice,t.value=null)}function x(){Zt(),n.value=!0,t.value=null}function C(){p?.waiting&&(m=!0,p.waiting.postMessage({type:`SKIP_WAITING`}))}return y(async()=>{window.addEventListener(`beforeinstallprompt`,h),window.addEventListener(`online`,v),window.addEventListener(`offline`,v),u=new ResizeObserver(d),l.value&&u.observe(l.value),d(),`serviceWorker`in navigator&&(p=await navigator.serviceWorker.getRegistration(),p&&(navigator.serviceWorker.addEventListener(`controllerchange`,()=>{m&&window.location.reload()}),a.value=!!p.waiting,p.addEventListener(`updatefound`,()=>{let e=p?.installing;e&&e.addEventListener(`statechange`,()=>{e.state===`installed`&&navigator.serviceWorker.controller&&(a.value=!0)})})))}),_(()=>{window.removeEventListener(`beforeinstallprompt`,h),window.removeEventListener(`online`,v),window.removeEventListener(`offline`,v),u?.disconnect(),document.documentElement.style.removeProperty(`--kobo-pwa-banner-height`)}),(e,r)=>i.value||c.value||t.value&&!n.value||a.value?(S(),D(`div`,{key:0,ref_key:`bannerRef`,ref:l,class:`pwa-status-banner row items-center q-gutter-sm q-px-md q-py-sm`},[A(W,{name:i.value?`cloud_off`:c.value?`sync`:a.value?`system_update`:`install_mobile`,size:`18px`,color:`primary`},null,8,[`name`]),E(`span`,Qt,o(i.value?e.$t(`pwa.offline`):c.value?e.$t(`pwa.reconnecting`):a.value?e.$t(`pwa.updateReady`):e.$t(`pwa.installReady`)),1),t.value&&!n.value?(S(),g(G,{key:0,dense:``,flat:``,"no-caps":``,color:`primary`,label:e.$t(`pwa.install`),onClick:b},null,8,[`label`])):T(``,!0),t.value&&!n.value?(S(),g(G,{key:1,dense:``,flat:``,"no-caps":``,color:`primary`,label:e.$t(`pwa.ignore`),onClick:x},null,8,[`label`])):T(``,!0),a.value?(S(),g(G,{key:2,dense:``,flat:``,"no-caps":``,color:`primary`,label:e.$t(`pwa.reload`),onClick:C},null,8,[`label`])):T(``,!0)],512)):T(``,!0)}}),[[`__scopeId`,`data-v-f7180c15`]]),en={class:`q-pa-sm`},tn={class:`row items-center q-mb-sm`},nn={class:`text-subtitle2`},rn={key:0,class:`row items-center q-gutter-sm q-mt-xs text-caption text-kobo-3`},an={key:0,class:`text-negative`},on=l({__name:`SessionTimelinePanel`,props:{workspaceId:{}},setup(e){let t=e,n=q(),i=f(()=>n.sessions),a=r([]),s=f(()=>new Map(a.value.map(e=>[e.sessionId,e]))),c=null,l=0;function d(){c&&clearTimeout(c),c=setTimeout(()=>void p(),350)}async function p(){c=null;let e=++l;try{let n=await fetch(`/api/workspaces/${t.workspaceId}/session-metrics`);if(!n.ok||e!==l)return;let r=await n.json();e===l&&(a.value=r.metrics??[])}catch{e===l&&(a.value=[])}}M(()=>[t.workspaceId,n.sessions.length,n.activityFeeds[t.workspaceId]?.length??0],d,{immediate:!0}),_(()=>{c&&clearTimeout(c)});function m(e){n.selectSession(e)}function h(e){let t=e.endedAt?new Date(e.endedAt).getTime():Date.now(),n=Math.max(0,t-new Date(e.startedAt).getTime());return`${Math.floor(n/6e4)}m ${Math.floor(n%6e4/1e3)}s`}function v(e){if(!e)return`0`;let t=e.inputTokens+e.outputTokens;return t>=1e3?`${(t/1e3).toFixed(t>=1e4?0:1)}k`:String(t)}async function y(){let e=await fetch(`/api/workspaces/${t.workspaceId}/diagnostic.json`);if(!e.ok)return;let n=URL.createObjectURL(await e.blob()),r=document.createElement(`a`);r.href=n,r.download=`kobo-diagnostic.json`,r.click(),URL.revokeObjectURL(n)}return(e,t)=>(S(),D(`div`,en,[E(`div`,tn,[E(`span`,nn,o(e.$t(`timeline.title`)),1),A($),A(G,{flat:``,dense:``,round:``,icon:`download`,"aria-label":e.$t(`timeline.export`),onClick:y},null,8,[`aria-label`])]),A(Pe,{dark:``,dense:``},{default:j(()=>[(S(!0),D(u,null,O(i.value,t=>(S(),g(J,{key:t.id,clickable:``,onClick:e=>m(t.id)},{default:j(()=>[A(Y,null,{default:j(()=>[A(Le,null,{default:j(()=>[k(o(t.name||t.model||e.$t(`timeline.unnamed`)),1)]),_:2},1024),A(Le,{caption:``},{default:j(()=>[k(o(t.status)+` · `+o(h(t)),1)]),_:2},1024),s.value.get(t.id)?(S(),D(`div`,rn,[E(`span`,null,[A(W,{name:`build`,size:`13px`,class:`q-mr-xs`}),k(o(e.$t(`timeline.tools`,{count:s.value.get(t.id)?.toolCalls??0})),1)]),E(`span`,null,[A(W,{name:`token`,size:`13px`,class:`q-mr-xs`}),k(o(v(s.value.get(t.id))),1)]),(s.value.get(t.id)?.errors??0)>0?(S(),D(`span`,an,[A(W,{name:`error_outline`,size:`13px`,class:`q-mr-xs`}),k(o(e.$t(`timeline.errors`,{count:s.value.get(t.id)?.errors??0})),1)])):T(``,!0)])):T(``,!0)]),_:2},1024)]),_:2},1032,[`onClick`]))),128))]),_:1})]))}}),sn={class:`subagents-panel q-pa-md`},cn={class:`text-caption text-uppercase text-weight-bold text-kobo-3 q-mb-sm`,style:{"letter-spacing":`0.05em`}},ln={key:0,class:`text-caption text-kobo-3`},un={class:`row items-center q-mb-xs`},dn={class:`text-caption text-weight-medium text-kobo-1 ellipsis`,style:{"max-width":`220px`}},fn={key:0,class:`text-caption text-kobo-3`,style:{"font-size":`10px`}},pn={class:`text-kobo-2`},mn={class:`row items-center q-gutter-xs q-mt-xs text-caption text-kobo-3`,style:{"font-size":`10px`}},hn={key:0},gn={key:1},_n={key:2},vn=Q(l({__name:`SubagentsPanel`,setup(e){let{t:n}=t(),r=q(),i=f(()=>[...r.currentSubagents].reverse());function a(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 s(e){return e?e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}k`:String(e):``}return(e,t)=>(S(),D(`div`,sn,[E(`div`,cn,o(e.$t(`subagents.title`)),1),i.value.length===0?(S(),D(`div`,ln,o(e.$t(`subagents.empty`)),1)):T(``,!0),(S(!0),D(u,null,O(i.value,t=>(S(),D(`div`,{key:t.toolUseId,class:`subagent-item q-mb-sm rounded-borders q-pa-sm`},[E(`div`,un,[A(W,{name:t.status===`running`?`play_circle`:`check_circle`,size:`14px`,color:t.status===`running`?`green-4`:`kobo-3`,class:`q-mr-xs`},null,8,[`name`,`color`]),E(`span`,dn,o(t.description||t.toolUseId),1)]),t.lastToolName?(S(),D(`div`,fn,[k(o(e.$t(`subagents.running`)),1),E(`span`,pn,o(t.lastToolName),1)])):T(``,!0),E(`div`,mn,[t.toolUses===void 0?T(``,!0):(S(),D(`span`,hn,o(e.$t(`subagents.tools`,{count:t.toolUses})),1)),t.totalTokens?(S(),D(`span`,gn,`· `+o(s(t.totalTokens))+` tok`,1)):T(``,!0),t.durationMs?(S(),D(`span`,_n,`· `+o(a(t.durationMs)),1)):T(``,!0)])]))),128))]))}}),[[`__scopeId`,`data-v-8d2af947`]]),yn={class:`column q-gutter-sm q-pa-sm`},bn=l({__name:`AutoLoopPanel`,setup(e){let{t:r}=t(),i=He(),a=q(),s=ve(),c=f(()=>a.selectedWorkspace),l=f(()=>c.value?a.autoLoopStates[c.value.id]??null:null),u=f(()=>a.tasks.length>0),d=f(()=>!!l.value?.auto_loop_ready),p=f(()=>!!l.value?.auto_loop),m=f(()=>d.value&&u.value),h=f(()=>be(c.value?.status)),_=f(()=>!!c.value?.archivedAt),v=f(()=>!m.value||_.value),y=f(()=>d.value?u.value?``:r(`autoLoop.noTasks`):r(`autoLoop.notReady`));async function b(){if(c.value)try{await a.enableAutoLoop(c.value.id)}catch(e){i.notify({type:`negative`,message:String(e),position:`top`,timeout:4e3})}}async function x(){if(c.value)try{await a.disableAutoLoop(c.value.id)}catch(e){i.notify({type:`negative`,message:String(e),position:`top`,timeout:4e3})}}function C(){c.value&&Je(c.value.id,s,a)}function w(){c.value&&i.dialog({title:r(`autoLoop.forceReady`),message:r(`autoLoop.forceReadyConfirm`),cancel:!0,persistent:!0}).onOk(async()=>{if(c.value)try{await a.forceAutoLoopReady(c.value.id)}catch(e){i.notify({type:`negative`,message:String(e),position:`top`,timeout:4e3})}})}return(e,t)=>(S(),D(`div`,yn,[p.value?(S(),g(G,{key:0,dense:``,"no-caps":``,color:`negative`,icon:`stop`,label:n(r)(`autoLoop.stop`),disable:_.value,onClick:x},null,8,[`label`,`disable`])):(S(),g(G,{key:1,dense:``,"no-caps":``,color:`primary`,icon:`play_arrow`,label:n(r)(`autoLoop.start`),disable:v.value,onClick:b},{default:j(()=>[v.value&&y.value?(S(),g(Z,{key:0},{default:j(()=>[k(o(y.value),1)]),_:1})):T(``,!0)]),_:1},8,[`label`,`disable`])),p.value?T(``,!0):(S(),g(G,{key:2,dense:``,"no-caps":``,outline:``,color:`primary`,icon:`build`,label:d.value?n(r)(`autoLoop.reprepare`):n(r)(`autoLoop.prepare`),disable:h.value||_.value,onClick:C},{default:j(()=>[h.value?(S(),g(Z,{key:0},{default:j(()=>[k(o(n(r)(`autoLoop.prepareBusy`)),1)]),_:1})):d.value?(S(),g(Z,{key:1},{default:j(()=>[k(o(n(r)(`autoLoop.reprepareTooltip`)),1)]),_:1})):T(``,!0)]),_:1},8,[`label`,`disable`])),d.value?T(``,!0):(S(),g(G,{key:3,dense:``,"no-caps":``,flat:``,size:`sm`,color:`kobo-2`,label:n(r)(`autoLoop.forceReady`),disable:h.value||_.value,onClick:w},{default:j(()=>[h.value?(S(),g(Z,{key:0},{default:j(()=>[k(o(n(r)(`autoLoop.prepareBusy`)),1)]),_:1})):T(``,!0)]),_:1},8,[`label`,`disable`]))]))}}),xn={class:`text-h6`},Sn={class:`log-text rounded-borders q-pa-md`},Cn=Q(l({__name:`DevServerLogDialog`,props:{modelValue:{type:Boolean},workspaceId:{}},emits:[`update:modelValue`],setup(e){let i=e,a=he(),{t:s}=t(),c=r(``),l=r(!1),u=r(null),d=null,f=0;async function p(){if(!i.workspaceId||l.value)return;let e=i.workspaceId,t=f;l.value=!0;try{let n=await a.fetchLogs(e);if(t!==f||e!==i.workspaceId||!i.modelValue)return;c.value=n,await w(),m()}finally{l.value=!1,y(t)}}function m(){u.value&&(u.value.scrollTop=u.value.scrollHeight)}function h(){v(),f++,p()}function v(){f++,d&&=(clearTimeout(d),null)}function y(e){e!==f||!i.modelValue||document.hidden||(d&&clearTimeout(d),d=setTimeout(()=>{d=null,p()},5e3))}function b(){i.modelValue&&(document.hidden?v():h())}return M(()=>i.modelValue,e=>{e?(p(),h()):v()}),M(()=>i.workspaceId,()=>{i.modelValue&&h()}),document.addEventListener(`visibilitychange`,b),_(()=>{v(),document.removeEventListener(`visibilitychange`,b)}),(t,r)=>(S(),g(Se,{"model-value":e.modelValue,"onUpdate:modelValue":r[1]||=e=>t.$emit(`update:modelValue`,e)},{default:j(()=>[A(xe,{class:`text-kobo-1`,style:{"min-width":`700px`,"max-width":`900px`,"max-height":`80vh`,background:`var(--kobo-surface)`}},{default:j(()=>[A(K,{class:`row items-center`},{default:j(()=>[E(`div`,xn,o(n(s)(`devServer.logDialog.title`)),1),A($),A(G,{flat:``,round:``,dense:``,icon:`refresh`,color:`kobo-2`,onClick:p,loading:l.value},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(t.$t(`tooltip.refreshLogs`)),1)]),_:1})]),_:1},8,[`loading`]),A(G,{flat:``,round:``,dense:``,icon:`close`,color:`kobo-2`,onClick:r[0]||=e=>t.$emit(`update:modelValue`,!1)},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(t.$t(`tooltip.closeDialog`)),1)]),_:1})]),_:1})]),_:1}),A(ke,{dark:``}),A(K,{class:`log-content`,ref_key:`logContainer`,ref:u},{default:j(()=>[E(`pre`,Sn,o(c.value||n(s)(`devServer.logDialog.empty`)),1)]),_:1},512)]),_:1})]),_:1},8,[`model-value`]))}}),[[`__scopeId`,`data-v-84d2c515`]]),wn={class:`dd-panel q-px-md q-py-sm`},Tn={class:`text-caption text-uppercase text-weight-bold text-kobo-2 q-mb-xs`},En={key:0,class:`text-caption text-kobo-3`},Dn={key:1,class:`text-caption text-kobo-3`},On={class:`row items-center q-mb-xs`},kn={key:0,class:`text-caption q-mb-xs`},An=[`href`],jn={key:1,class:`text-caption text-kobo-3`,style:{"font-size":`10px`}},Mn={key:2,class:`text-caption text-red-5`},Nn=Q(l({__name:`DevServerPanel`,props:{workspace:{}},setup(e){let n=e,{t:i}=t(),a=he(),s=Me(),c=r(!1),l=r(!1),d=r(!1),p=null,m=f(()=>n.workspace?.id??``),h=f(()=>n.workspace?!!s.getProjectByPath(n.workspace.projectPath)?.devServer?.startCommand:!1),b=f(()=>m.value?a.getStatus(m.value):null),x=f(()=>{switch(b.value?.status){case`running`:return`green-9`;case`starting`:case`stopping`:return`orange-9`;case`error`:return`red-9`;default:return`kobo-3`}}),C=f(()=>{switch(b.value?.status){case`running`:return i(`devServer.running`);case`starting`:return i(`devServer.starting`);case`stopping`:return i(`devServer.stopping`);case`error`:return i(`devServer.error`);case`stopped`:return i(`devServer.stopped`);default:return i(`devServer.unknown`)}}),w=f(()=>!!n.workspace?.archivedAt),O=f(()=>{if(w.value)return!1;let e=b.value?.status;return!e||e===`stopped`||e===`unknown`||e===`error`}),N=f(()=>{if(w.value)return!1;let e=b.value?.status;return e===`running`||e===`starting`});async function P(){if(m.value){l.value=!0;try{await a.startDevServer(m.value)}finally{l.value=!1}}}async function F(){if(m.value){d.value=!0;try{await a.stopDevServer(m.value)}finally{d.value=!1}}}function I(){m.value&&h.value&&a.fetchStatus(m.value)}function L(){ee(),p=setInterval(()=>{I()},3e4)}function ee(){p&&=(clearInterval(p),null)}return M(m,()=>{I(),L()}),y(()=>{I(),L()}),_(()=>{ee()}),(t,n)=>{let r=v(`router-link`);return S(),D(`div`,wn,[E(`div`,Tn,o(t.$t(`devServer.title`)),1),e.workspace?h.value?b.value?(S(),D(u,{key:2},[E(`div`,On,[A(Ge,{color:x.value,label:C.value,style:{"font-size":`10px`}},null,8,[`color`,`label`]),A($),O.value?(S(),g(G,{key:0,flat:``,round:``,dense:``,icon:`play_arrow`,size:`xs`,color:`green-5`,onClick:P,loading:l.value},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(t.$t(`tooltip.startDevServer`)),1)]),_:1})]),_:1},8,[`loading`])):T(``,!0),N.value?(S(),g(G,{key:1,flat:``,round:``,dense:``,icon:`stop`,size:`xs`,color:`red-5`,onClick:F,loading:d.value},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(t.$t(`tooltip.stopDevServer`)),1)]),_:1})]),_:1},8,[`loading`])):T(``,!0),A(G,{flat:``,round:``,dense:``,icon:`article`,size:`xs`,color:`kobo-2`,onClick:n[0]||=e=>c.value=!0},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(t.$t(`devServer.logs`)),1)]),_:1})]),_:1})]),b.value.status===`running`&&b.value.url?(S(),D(`div`,kn,[E(`a`,{href:b.value.url,target:`_blank`,style:{color:`var(--kobo-text-2)`}},o(b.value.url),9,An)])):T(``,!0),b.value.containers.length>0?(S(),D(`div`,jn,o(t.$t(`devServer.containers`,{count:b.value.containers.length},b.value.containers.length)),1)):T(``,!0),b.value.error?(S(),D(`div`,Mn,o(b.value.error),1)):T(``,!0)],64)):T(``,!0):(S(),D(`div`,Dn,[k(o(t.$t(`devServer.notConfigured`))+` `,1),A(r,{to:`/settings`,style:{color:`var(--kobo-text-2)`}},{default:j(()=>[k(o(t.$t(`devServer.goToSettings`)),1)]),_:1})])):(S(),D(`div`,En,o(t.$t(`devServer.noWorkspace`)),1)),m.value?(S(),g(Cn,{key:3,modelValue:c.value,"onUpdate:modelValue":n[1]||=e=>c.value=e,"workspace-id":m.value},null,8,[`modelValue`,`workspace-id`])):T(``,!0)])}}}),[[`__scopeId`,`data-v-e0c28b1f`]]),Pn={class:`text-h6`},Fn={class:`text-body2 text-kobo-2 q-mt-xs`},In={class:`text-caption text-kobo-3 q-mt-xs`},Ln=l({__name:`StartReviewDialog`,props:{modelValue:{type:Boolean},loading:{type:Boolean}},emits:[`update:modelValue`,`submit`],setup(e,{emit:t}){let n=e,i=t,a=r(``),s=r(!1);M(()=>n.modelValue,e=>{e&&(a.value=``,s.value=!1)});function c(){i(`update:modelValue`,!1)}function l(){i(`submit`,{additionalInstructions:a.value,newSession:s.value})}return(t,n)=>(S(),g(Se,{"model-value":e.modelValue,"onUpdate:modelValue":n[2]||=e=>i(`update:modelValue`,e)},{default:j(()=>[A(xe,{class:`text-kobo-1`,style:{"min-width":`480px`,background:`var(--kobo-surface)`}},{default:j(()=>[A(K,null,{default:j(()=>[E(`div`,Pn,o(t.$t(`review.title`)),1),E(`div`,Fn,o(t.$t(`review.subtitle`)),1)]),_:1}),A(ke,{dark:``}),A(K,{class:`q-pt-md`},{default:j(()=>[A(Oe,{modelValue:a.value,"onUpdate:modelValue":n[0]||=e=>a.value=e,type:`textarea`,label:t.$t(`review.additionalInstructions`),placeholder:t.$t(`review.additionalInstructionsPlaceholder`),rows:4,outlined:``,dark:``,color:`primary`},null,8,[`modelValue`,`label`,`placeholder`])]),_:1}),A(K,{class:`q-pt-none`},{default:j(()=>[A(Ee,{modelValue:s.value,"onUpdate:modelValue":n[1]||=e=>s.value=e,label:t.$t(`review.newSession`),color:`primary`,dark:``},null,8,[`modelValue`,`label`]),E(`div`,In,o(t.$t(`review.newSessionHint`)),1)]),_:1}),A(_e,{align:`right`,class:`q-pa-md`},{default:j(()=>[A(G,{flat:``,"no-caps":``,label:t.$t(`review.cancel`),color:`kobo-2`,onClick:c},null,8,[`label`]),A(G,{"no-caps":``,color:`primary`,label:t.$t(`review.start`),loading:e.loading,onClick:l},null,8,[`label`,`loading`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),Rn={class:`tools-panel`},zn={class:`q-px-md q-py-sm`},Bn={class:`text-caption text-uppercase text-weight-bold text-kobo-2 q-mb-xs`},Vn={key:0,class:`text-caption text-kobo-3`},Hn={key:6,class:`text-caption text-kobo-3`},Un=Q(l({__name:`ToolsPanel`,props:{workspace:{}},setup(e){let n=e,{t:i}=t(),a=He(),s=Me(),c=q(),l=r(!1),d=r(!1),p=r(!1),m=r(!1),h=r(!1),_=r(!1),y=r(!1),b=f(()=>{if(!n.workspace)return!1;let e=c.prSnapshots[n.workspace.id];return e?Ne(e):!1}),x=f(()=>n.workspace?.id??``),C=f(()=>n.workspace?!!s.getProjectByPath(n.workspace.projectPath)?.setupScript:!1),w=f(()=>!!s.global.editorCommand),O=f(()=>!!s.global.fileManagerCommand),M=f(()=>!!s.global.terminalCommand),N=f(()=>be(n.workspace?.status)),P=f(()=>!!n.workspace?.archivedAt);function F(){x.value&&a.dialog({title:i(`tools.runSetupScript`),message:i(`tools.runSetupScriptConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(async()=>{l.value=!0;try{let e=await fetch(`/api/workspaces/${x.value}/run-setup-script`,{method:`POST`}),t=await e.json();e.ok?a.notify({type:`positive`,message:i(`tools.setupScriptSuccess`),position:`top`,timeout:3e3}):a.notify({type:`negative`,message:t.error??i(`tools.setupScriptFailed`),position:`top`,timeout:6e3})}catch(e){let t=e instanceof Error?e.message:i(`tools.setupScriptFailed`);a.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{l.value=!1}})}async function I(){if(x.value){d.value=!0;try{let e=await fetch(`/api/workspaces/${x.value}/open-editor`,{method:`POST`});if(!e.ok){let t=await e.json();a.notify({type:`negative`,message:t.error??i(`git.openEditorFailed`),position:`top`,timeout:6e3})}}catch(e){let t=e instanceof Error?e.message:i(`git.openEditorFailed`);a.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{d.value=!1}}}async function L(){if(x.value){m.value=!0;try{let e=await fetch(`/api/workspaces/${x.value}/open-terminal`,{method:`POST`});if(!e.ok){let t=await e.json();a.notify({type:`negative`,message:t.error??i(`tools.openTerminalFailed`),position:`top`,timeout:6e3})}}catch(e){let t=e instanceof Error?e.message:i(`tools.openTerminalFailed`);a.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{m.value=!1}}}async function ee(){if(x.value){p.value=!0;try{let e=await fetch(`/api/workspaces/${x.value}/open-file-manager`,{method:`POST`});if(!e.ok){let t=await e.json();a.notify({type:`negative`,message:t.error??i(`tools.openFileManagerFailed`),position:`top`,timeout:6e3})}}catch(e){let t=e instanceof Error?e.message:i(`tools.openFileManagerFailed`);a.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{p.value=!1}}}function R(e){window.open(e,`_blank`,`noopener,noreferrer`)}async function z(){if(!(!x.value||y.value)){y.value=!0;try{let e=await fetch(`/api/workspaces/${x.value}/start-ci-fix`,{method:`POST`}),t=await e.json();if(!e.ok){a.notify({type:`negative`,message:t.error??i(`tools.fixCiFailed`),position:`top`,timeout:6e3});return}a.notify({type:`positive`,message:i(`tools.fixCiLaunched`),position:`top`,timeout:3e3})}catch(e){let t=e instanceof Error?e.message:i(`tools.fixCiFailed`);a.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{y.value=!1}}}async function B(e){if(x.value){_.value=!0;try{let t=await fetch(`/api/workspaces/${x.value}/start-review`,{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify(e)}),n=await t.json();if(!t.ok){a.notify({type:`negative`,message:n.error??i(`review.failed`),position:`top`,timeout:6e3});return}a.notify({type:`positive`,message:i(`review.launched`),position:`top`,timeout:3e3}),h.value=!1}catch(e){let t=e instanceof Error?e.message:i(`review.failed`);a.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{_.value=!1}}}return(t,n)=>{let r=v(`router-link`);return S(),D(`div`,Rn,[A(Nn,{workspace:e.workspace},null,8,[`workspace`]),A(ke,{dark:``}),E(`div`,zn,[E(`div`,Bn,o(t.$t(`tools.title`)),1),e.workspace?(S(),D(u,{key:1},[A(bn,{class:`q-mb-md`}),A(G,{"no-caps":``,dense:``,outline:``,color:`primary`,icon:`replay`,label:t.$t(`tools.runSetupScript`),loading:l.value,disable:!C.value||l.value||N.value||P.value,class:`full-width q-mb-xs`,onClick:F},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(N.value?t.$t(`tools.runSetupScriptBusy`):t.$t(`tools.runSetupScriptTooltip`)),1)]),_:1})]),_:1},8,[`label`,`loading`,`disable`]),w.value?(S(),g(G,{key:0,"no-caps":``,dense:``,outline:``,color:`primary`,icon:`open_in_new`,label:t.$t(`git.openEditor`),loading:d.value,class:`full-width q-mb-xs`,onClick:I},null,8,[`label`,`loading`])):T(``,!0),O.value?(S(),g(G,{key:1,"no-caps":``,dense:``,outline:``,color:`primary`,icon:`folder_open`,label:t.$t(`tools.openFileManager`),loading:p.value,class:`full-width q-mb-xs`,onClick:ee},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(t.$t(`tools.openFileManagerTooltip`)),1)]),_:1})]),_:1},8,[`label`,`loading`])):T(``,!0),M.value?(S(),g(G,{key:2,"no-caps":``,dense:``,outline:``,color:`primary`,icon:`terminal`,label:t.$t(`tools.openTerminal`),loading:m.value,class:`full-width q-mb-xs`,onClick:L},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(t.$t(`tools.openTerminalTooltip`)),1)]),_:1})]),_:1},8,[`label`,`loading`])):T(``,!0),A(G,{"no-caps":``,dense:``,outline:``,color:`primary`,icon:`rate_review`,label:t.$t(`tools.review`),loading:_.value,disable:!e.workspace||N.value||P.value,class:`full-width q-mb-xs`,onClick:n[0]||=e=>h.value=!0},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(N.value?t.$t(`tools.reviewBusy`):t.$t(`tools.reviewTooltip`)),1)]),_:1})]),_:1},8,[`label`,`loading`,`disable`]),b.value?(S(),g(G,{key:3,"no-caps":``,dense:``,unelevated:``,color:`red-7`,icon:`build_circle`,label:t.$t(`tools.fixCi`),loading:y.value,disable:!e.workspace||P.value||y.value,class:`full-width q-mb-xs`,onClick:z},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(t.$t(`tools.fixCiTooltip`)),1)]),_:1})]),_:1},8,[`label`,`loading`,`disable`])):T(``,!0),e.workspace?.notionUrl?(S(),g(G,{key:4,"no-caps":``,dense:``,outline:``,color:`primary`,icon:`open_in_new`,label:t.$t(`tools.openNotion`),class:`full-width q-mb-xs`,onClick:n[1]||=t=>R(e.workspace.notionUrl)},null,8,[`label`])):T(``,!0),e.workspace?.sentryUrl?(S(),g(G,{key:5,"no-caps":``,dense:``,outline:``,color:`primary`,icon:`open_in_new`,label:t.$t(`tools.openSentry`),class:`full-width q-mb-xs`,onClick:n[2]||=t=>R(e.workspace.sentryUrl)},null,8,[`label`])):T(``,!0),C.value?T(``,!0):(S(),D(`div`,Hn,[k(o(t.$t(`tools.noSetupScript`))+` `,1),A(r,{to:`/settings`,style:{color:`var(--kobo-text-2)`}},{default:j(()=>[k(o(t.$t(`devServer.goToSettings`)),1)]),_:1})]))],64)):(S(),D(`div`,Vn,o(t.$t(`devServer.noWorkspace`)),1))]),A(Ln,{modelValue:h.value,"onUpdate:modelValue":n[3]||=e=>h.value=e,loading:_.value,onSubmit:B},null,8,[`modelValue`,`loading`])])}}}),[[`__scopeId`,`data-v-c99d1a87`]]),Wn={class:`text-h6`},Gn={class:`text-subtitle2 text-kobo-2 q-mb-xs`},Kn=[`innerHTML`],qn=Q(l({__name:`WhatsNewDialog`,props:{modelValue:{type:Boolean},versions:{}},emits:[`update:modelValue`],setup(e){function t(e){return We(e)}return(n,r)=>(S(),g(Se,{"model-value":e.modelValue,"onUpdate:modelValue":r[0]||=e=>n.$emit(`update:modelValue`,e)},{default:j(()=>[A(xe,{class:`text-kobo-1`,style:{"min-width":`480px`,"max-width":`90vw`,background:`var(--kobo-surface)`}},{default:j(()=>[A(K,{class:`row items-center q-pb-none`},{default:j(()=>[A(W,{name:`auto_awesome`,size:`sm`,color:`primary`,class:`q-mr-sm`}),E(`div`,Wn,o(n.$t(`whatsNew.title`)),1),A($),L(A(G,{flat:``,dense:``,round:``,icon:`close`,color:`kobo-2`},null,512),[[X]])]),_:1}),A(K,{style:{"max-height":`60vh`,"overflow-y":`auto`}},{default:j(()=>[(S(!0),D(u,null,O(e.versions,e=>(S(),D(`div`,{key:e.version,class:`q-mb-md`},[E(`div`,Gn,o(e.version),1),E(`div`,{class:`whats-new-notes`,innerHTML:t(e.notes)},null,8,Kn)]))),128))]),_:1}),A(_e,{align:`right`},{default:j(()=>[L(A(G,{flat:``,label:n.$t(`common.close`),color:`primary`},null,8,[`label`]),[[X]])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),[[`__scopeId`,`data-v-074472c6`]]),Jn={class:`text-subtitle1`},Yn={class:`text-caption text-kobo-3 q-mt-xs`},Xn={key:1,class:`text-caption text-orange-5 q-mt-sm`},Zn={key:2,class:`text-kobo-3 text-caption`},Qn=l({__name:`ManageTagsDialog`,props:{modelValue:{type:Boolean},workspace:{}},emits:[`update:modelValue`],setup(e,{emit:n}){let i=e,a=n,{t:s}=t(),c=Me(),l=q(),u=He(),d=r([]),p=r(!1);M(()=>i.modelValue,e=>{e&&(d.value=[...i.workspace.tags])},{immediate:!0});let m=f(()=>{let e=c.global.tags??[],t=i.workspace.tags??[];return Array.from(new Set([...e,...t]))}),h=f(()=>{let e=new Set(c.global.tags??[]);return(i.workspace.tags??[]).filter(t=>!e.has(t))});async function _(){p.value=!0;try{await l.setWorkspaceTags(i.workspace.id,d.value),a(`update:modelValue`,!1)}catch(e){u.notify({type:`negative`,message:String(e),position:`top`,timeout:4e3})}finally{p.value=!1}}function v(){a(`update:modelValue`,!1)}return(t,n)=>(S(),g(Se,{"model-value":e.modelValue,"onUpdate:modelValue":n[1]||=e=>a(`update:modelValue`,e)},{default:j(()=>[A(xe,{dark:``,style:{"min-width":`360px`}},{default:j(()=>[A(K,null,{default:j(()=>[E(`div`,Jn,o(t.$t(`tags.manageTitle`)),1),E(`div`,Yn,o(e.workspace.name),1)]),_:1}),A(K,null,{default:j(()=>[m.value.length>0?(S(),g(we,{key:0,modelValue:d.value,"onUpdate:modelValue":n[0]||=e=>d.value=e,options:m.value.map(e=>({label:h.value.includes(e)?`${e}`:e,value:e})),type:`checkbox`,dense:``,dark:``},null,8,[`modelValue`,`options`])):T(``,!0),h.value.length>0?(S(),D(`div`,Xn,o(t.$t(`tags.orphanedHint`,{count:h.value.length})),1)):T(``,!0),m.value.length===0?(S(),D(`div`,Zn,o(t.$t(`tags.noTagsDefined`)),1)):T(``,!0)]),_:1}),A(_e,{align:`right`},{default:j(()=>[A(G,{flat:``,label:t.$t(`common.cancel`),onClick:v},null,8,[`label`]),A(G,{color:`primary`,label:t.$t(`common.save`),loading:p.value,onClick:_},null,8,[`label`,`loading`])]),_:1})]),_:1})]),_:1},8,[`model-value`]))}}),$n={"awaiting-user":{kind:`awaiting-user`,icon:`help`,color:`amber-5`},error:{kind:`error`,icon:`warning`,color:`red-5`},quota:{kind:`quota`,icon:`warning`,color:`red-5`}};function er(e,t){let n=[],r=$n[e.status];return r&&n.push(r),t&&Ne(t)&&!tr(e.prCiFailureDismissedAt,t)&&n.push({kind:`ci-failed`,icon:`cancel`,color:`red-5`}),t&&Ae(t)&&!tr(e.prChangesDismissedAt,t)&&n.push({kind:`changes-requested`,icon:`rate_review`,color:`red-5`}),t?.readyToMerge&&!be(e.status)&&n.push({kind:`ready-to-merge`,icon:`check_circle`,color:`green-5`}),n}function tr(e,t){return e?t.updatedAt<=e:!1}var nr={key:0,class:`text-caption q-mt-xs`},rr={key:1,class:`q-ml-xs text-kobo-3`},ir={key:1,class:`row items-center no-wrap ci-recap`},ar={class:`text-amber-5`},or={class:`text-kobo-2`},sr={class:`text-kobo-3`},cr={class:`text-red-5`},lr={class:`text-weight-medium text-amber-4 q-mb-xs row items-center no-wrap`},ur={key:0,class:`text-red-4 q-mt-xs`},dr={class:`text-kobo-2 q-mt-xs`},fr=Q(l({__name:`WorkspaceAttentionLabels`,props:{workspace:{},ciRecapOnly:{type:Boolean}},setup(e){let i=e,a=q(),s=He(),{t:l}=t(),{timeAgo:d}=it(),p=f(()=>er(i.workspace,a.prSnapshots[i.workspace.id])),m=f(()=>zt(a.prSnapshots[i.workspace.id]?.ci.checks??[])),h=f(()=>m.value.pending.length>0),_=r(!1);async function v(){if(!_.value){_.value=!0;try{let e=await fetch(`/api/workspaces/${i.workspace.id}/start-ci-fix`,{method:`POST`}),t=await e.json().catch(()=>({}));if(!e.ok){s.notify({type:`negative`,message:t.error??l(`tools.fixCiFailed`),position:`top`,timeout:6e3});return}s.notify({type:`positive`,message:l(`tools.fixCiLaunched`),position:`top`,timeout:3e3})}catch(e){let t=e instanceof Error?e.message:l(`tools.fixCiFailed`);s.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}finally{_.value=!1}}}function y(e){switch(e){case`awaiting-user`:return l(`workspaceStatus.awaitingUser`);case`ci-failed`:return l(`workspaceList.attentionCiFailed`);case`changes-requested`:return l(`workspaceList.attentionChangesRequested`);case`ready-to-merge`:return l(`workspaceList.attentionReadyToMerge`);default:return e}}return(t,r)=>!e.ciRecapOnly&&p.value.length>0||h.value?(S(),D(`div`,nr,[e.ciRecapOnly?T(``,!0):(S(!0),D(u,{key:0},O(p.value,(t,r)=>(S(),D(`div`,{key:t.kind,class:`row items-center no-wrap`},[A(W,{name:t.icon,size:`xs`,color:t.color,class:`q-mr-xs`},null,8,[`name`,`color`]),E(`span`,{class:c(`text-${t.color}`)},o(y(t.kind)),3),t.kind===`ci-failed`&&!e.workspace.archivedAt?(S(),g(G,{key:0,flat:``,dense:``,round:``,size:`xs`,color:`red-4`,icon:`build_circle`,class:`q-ml-xs`,loading:_.value,disable:_.value,onClick:I(v,[`stop`])},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(n(l)(`tools.fixCiTooltip`)),1)]),_:1})]),_:1},8,[`loading`,`disable`])):T(``,!0),r===p.value.length-1?(S(),D(`span`,rr,` · `+o(n(d)(e.workspace.updatedAt)),1)):T(``,!0)]))),128)),h.value?(S(),D(`div`,ir,[A(W,{name:`hourglass_empty`,size:`12px`,color:`amber-5`,class:`q-mr-xs`}),E(`span`,ar,o(n(l)(`git.pr.ci.pendingCount`,{n:m.value.pending.length})),1),r[2]||=E(`span`,{class:`q-mx-xs text-kobo-3`},`·`,-1),A(W,{name:`check_circle`,size:`12px`,color:`green-5`,class:`q-mr-xs`}),E(`span`,or,o(m.value.passed.length),1),m.value.skipped.length>0?(S(),D(u,{key:0},[r[0]||=E(`span`,{class:`q-mx-xs text-kobo-3`},`·`,-1),A(W,{name:`remove_circle_outline`,size:`12px`,color:`kobo-3`,class:`q-mr-xs`}),E(`span`,sr,o(m.value.skipped.length),1)],64)):T(``,!0),m.value.failed.length>0?(S(),D(u,{key:1},[r[1]||=E(`span`,{class:`q-mx-xs text-kobo-3`},`·`,-1),A(W,{name:`cancel`,size:`12px`,color:`red-5`,class:`q-mr-xs`}),E(`span`,cr,o(m.value.failed.length),1)],64)):T(``,!0),A(Z,{anchor:`bottom start`,self:`top start`,class:`ci-recap-tooltip`},{default:j(()=>[E(`div`,lr,[A(W,{name:`hourglass_empty`,size:`13px`,class:`q-mr-xs`}),k(` `+o(n(l)(`git.pr.ci.pendingCount`,{n:m.value.pending.length})),1)]),(S(!0),D(u,null,O(m.value.pending,e=>(S(),D(`div`,{key:e.name,class:`ci-recap-tooltip__job`},o(e.name),1))),128)),m.value.failed.length>0?(S(),D(`div`,ur,o(n(l)(`git.pr.ci.failedCount`,{n:m.value.failed.length})),1)):T(``,!0),E(`div`,dr,o(n(l)(`git.pr.ci.passedCount`,{n:m.value.passed.length}))+` · `+o(n(l)(`git.pr.ci.skippedCount`,{n:m.value.skipped.length})),1)]),_:1})])):T(``,!0)])):T(``,!0)}}),[[`__scopeId`,`data-v-6a1a42d8`]]),pr=l({__name:`WorkspaceContextMenu`,props:{workspace:{},archived:{type:Boolean,default:!1}},emits:[`rename`,`editDescription`,`copyPath`,`openEditor`,`openFileManager`,`runSetup`,`toggleFavorite`,`manageTags`,`archive`,`unarchive`,`purgeWorktree`,`delete`],setup(e,{emit:r}){let i=e,a=r;function s(e){window.open(e,`_blank`,`noopener,noreferrer`)}let c=He(),{t:l}=t();async function u(){let e=c.notify({spinner:!0,message:l(`contextMenu.exportingEvents`),timeout:pe,group:!1});try{let e=await fetch(`/api/workspaces/${i.workspace.id}/events.csv`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.blob(),n=URL.createObjectURL(t),r=i.workspace.name.toLowerCase().replace(/[^a-z0-9]+/g,`-`).replace(/^-+|-+$/g,``),a=document.createElement(`a`);a.href=n,a.download=`${r||`workspace`}-events.csv`,document.body.appendChild(a),a.click(),a.remove(),URL.revokeObjectURL(n)}catch(e){console.error(`[WorkspaceContextMenu] export events failed:`,e),c.notify({type:`negative`,message:l(`contextMenu.exportEventsError`),position:`top`})}finally{e()}}let d=Me(),p=q(),m=f(()=>p.gitStatsCache[i.workspace.id]?.prUrl??null),h=f(()=>p.prSnapshots[i.workspace.id]),_=f(()=>{let e=h.value;if(!e||!Ae(e))return!1;let t=i.workspace.prChangesDismissedAt;return!t||e.updatedAt>t}),v=f(()=>{let e=h.value;if(!e||!Ne(e))return!1;let t=i.workspace.prCiFailureDismissedAt;return!t||e.updatedAt>t}),y=f(()=>{let e=h.value;if(!e||!Ae(e))return!1;let t=i.workspace.prChangesDismissedAt;return!!t&&e.updatedAt<=t}),b=f(()=>{let e=h.value;if(!e||!Ne(e))return!1;let t=i.workspace.prCiFailureDismissedAt;return!!t&&e.updatedAt<=t});function x(e){p.dismissPrAttention(i.workspace.id,e)}function C(e){p.restorePrAttention(i.workspace.id,e)}function w(){p.togglePrWatch(i.workspace.id).catch(e=>{console.error(`[WorkspaceContextMenu] togglePrWatch failed:`,e),c.notify({type:`negative`,message:l(`contextMenu.prWatchToggleFailed`),position:`top`})})}return(t,r)=>(S(),g(Ie,{dark:``,"context-menu":``},{default:j(()=>[A(Pe,{dense:``,style:{"min-width":`180px`}},{default:j(()=>[L((S(),g(J,{clickable:``,onClick:r[0]||=t=>a(`rename`,e.workspace)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`edit`,size:`xs`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`contextMenu.rename`)),1)]),_:1})]),_:1})),[[X]]),L((S(),g(J,{clickable:``,onClick:r[1]||=t=>a(`editDescription`,e.workspace)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`description`,size:`xs`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`contextMenu.editDescription`)),1)]),_:1})]),_:1})),[[X]]),L((S(),g(J,{clickable:``,onClick:r[2]||=t=>a(`copyPath`,e.workspace)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`content_copy`,size:`xs`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`contextMenu.copyPath`)),1)]),_:1})]),_:1})),[[X]]),n(d).global.editorCommand?L((S(),g(J,{key:0,clickable:``,onClick:r[3]||=t=>a(`openEditor`,e.workspace)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`open_in_new`,size:`xs`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`contextMenu.openEditor`)),1)]),_:1})]),_:1})),[[X]]):T(``,!0),n(d).global.fileManagerCommand?L((S(),g(J,{key:1,clickable:``,onClick:r[4]||=t=>a(`openFileManager`,e.workspace)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`folder_open`,size:`xs`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`contextMenu.openFileManager`)),1)]),_:1})]),_:1})),[[X]]):T(``,!0),L((S(),g(J,{clickable:``,onClick:r[5]||=t=>a(`runSetup`,e.workspace)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`replay`,size:`xs`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`contextMenu.runSetup`)),1)]),_:1})]),_:1})),[[X]]),L((S(),g(J,{clickable:``,onClick:r[6]||=t=>a(`toggleFavorite`,e.workspace)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:e.workspace.favoritedAt?`star`:`star_outline`,size:`xs`},null,8,[`name`])]),_:1}),A(Y,null,{default:j(()=>[k(o(e.workspace.favoritedAt?t.$t(`workspace.unfavorite`):t.$t(`workspace.favorite`)),1)]),_:1})]),_:1})),[[X]]),L((S(),g(J,{clickable:``,onClick:w},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:e.workspace.prWatchDisabledAt?`visibility`:`visibility_off`,size:`xs`},null,8,[`name`])]),_:1}),A(Y,null,{default:j(()=>[k(o(e.workspace.prWatchDisabledAt?t.$t(`contextMenu.resumePrWatch`):t.$t(`contextMenu.ignorePrWatch`)),1)]),_:1})]),_:1})),[[X]]),L((S(),g(J,{clickable:``,onClick:r[7]||=t=>a(`manageTags`,e.workspace)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`label`,size:`xs`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`tags.manage`)),1)]),_:1})]),_:1})),[[X]]),e.workspace.notionUrl?L((S(),g(J,{key:2,clickable:``,onClick:r[8]||=t=>s(e.workspace.notionUrl)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`open_in_new`,size:`xs`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`contextMenu.openNotion`)),1)]),_:1})]),_:1})),[[X]]):T(``,!0),e.workspace.sentryUrl?L((S(),g(J,{key:3,clickable:``,onClick:r[9]||=t=>s(e.workspace.sentryUrl)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`open_in_new`,size:`xs`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`contextMenu.openSentry`)),1)]),_:1})]),_:1})),[[X]]):T(``,!0),m.value?L((S(),g(J,{key:4,clickable:``,onClick:r[10]||=e=>s(m.value)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`merge_type`,size:`xs`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`contextMenu.openPr`)),1)]),_:1})]),_:1})),[[X]]):T(``,!0),L((S(),g(J,{clickable:``,onClick:u},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`download`,size:`xs`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`contextMenu.exportEvents`)),1)]),_:1})]),_:1})),[[X]]),_.value?L((S(),g(J,{key:5,clickable:``,onClick:r[11]||=e=>x(`changes-requested`)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`visibility_off`,size:`xs`,color:`amber-5`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`contextMenu.dismissChangesRequested`)),1)]),_:1})]),_:1})),[[X]]):T(``,!0),v.value?L((S(),g(J,{key:6,clickable:``,onClick:r[12]||=e=>x(`ci-failed`)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`visibility_off`,size:`xs`,color:`amber-5`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`contextMenu.dismissCiFailure`)),1)]),_:1})]),_:1})),[[X]]):T(``,!0),y.value?L((S(),g(J,{key:7,clickable:``,onClick:r[13]||=e=>C(`changes-requested`)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`visibility`,size:`xs`,color:`green-5`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`contextMenu.restoreChangesRequested`)),1)]),_:1})]),_:1})),[[X]]):T(``,!0),b.value?L((S(),g(J,{key:8,clickable:``,onClick:r[14]||=e=>C(`ci-failed`)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`visibility`,size:`xs`,color:`green-5`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`contextMenu.restoreCiFailure`)),1)]),_:1})]),_:1})),[[X]]):T(``,!0),A(ke,{dark:``}),e.archived?L((S(),g(J,{key:9,clickable:!e.workspace.worktreePurgedAt,disable:!!e.workspace.worktreePurgedAt,onClick:r[15]||=t=>!e.workspace.worktreePurgedAt&&a(`unarchive`,e.workspace,t)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`unarchive`,size:`xs`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`common.unarchive`)),1)]),_:1}),e.workspace.worktreePurgedAt?(S(),g(Z,{key:0,anchor:`center left`,self:`center right`,"max-width":`280px`},{default:j(()=>[k(o(t.$t(`contextMenu.unarchiveDisabledPurged`)),1)]),_:1})):T(``,!0)]),_:1},8,[`clickable`,`disable`])),[[X,!e.workspace.worktreePurgedAt]]):L((S(),g(J,{key:10,clickable:``,onClick:r[16]||=t=>a(`archive`,e.workspace,t)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`archive`,size:`xs`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`common.archive`)),1)]),_:1})]),_:1})),[[X]]),!e.workspace.worktreePurgedAt&&e.workspace.worktreeOwned!==!1?L((S(),g(J,{key:11,clickable:``,class:`text-orange-5`,onClick:r[17]||=t=>a(`purgeWorktree`,e.workspace,t)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`cleaning_services`,size:`xs`,color:`orange-5`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`contextMenu.purgeWorktree`)),1)]),_:1}),A(Z,null,{default:j(()=>[k(o(t.$t(`contextMenu.purgeWorktreeTooltip`)),1)]),_:1})]),_:1})),[[X]]):T(``,!0),L((S(),g(J,{clickable:``,class:`text-red-5`,onClick:r[18]||=t=>a(`delete`,e.workspace,t)},{default:j(()=>[A(Y,{side:``},{default:j(()=>[A(W,{name:`delete_outline`,size:`xs`,color:`red-5`})]),_:1}),A(Y,null,{default:j(()=>[k(o(t.$t(`common.delete`)),1)]),_:1})]),_:1})),[[X]])]),_:1})]),_:1}))}}),mr={key:0,class:`dd-dot dd-dot--running`},hr=Q(l({__name:`WorkspaceDrawerIndicators`,props:{workspace:{}},setup(e){let r=e,i=he(),a=q(),{t:s}=t(),c=f(()=>a.autoLoopStates[r.workspace.id]?.crons_count??0),l=f(()=>a.prSnapshots[r.workspace.id]),d=f(()=>{let e=l.value;return e?Ne(e)?s(`workspaceList.attentionCiFailed`):Ae(e)?s(`workspaceList.prChangesRequested`,{n:e.number}):s(`workspaceList.prOpen`,{n:e.number}):``});function p(){let e=l.value?.url;e&&window.open(e,`_blank`,`noopener,noreferrer`)}return(t,r)=>(S(),D(u,null,[n(i).getStatus(e.workspace.id)?.status===`running`?(S(),D(`div`,mr)):T(``,!0),n(a).pendingWakeups[e.workspace.id]?(S(),g(W,{key:1,name:`schedule`,size:`14px`,color:`amber-4`},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(n(s)(`wakeup.pendingIndicator`)),1)]),_:1})]),_:1})):T(``,!0),c.value>0?(S(),g(W,{key:2,name:`event_repeat`,size:`14px`,color:`cyan-4`},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(n(s)(`cron.pendingIndicator`,{n:c.value})),1)]),_:1})]),_:1})):T(``,!0),l.value?.state===`OPEN`?(S(),g(W,{key:3,name:`merge_type`,size:`14px`,color:`green-5`,class:`cursor-pointer`,onClick:I(p,[`stop`])},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(d.value),1)]),_:1})]),_:1})):T(``,!0),e.workspace.prWatchDisabledAt?(S(),g(W,{key:4,name:`visibility_off`,size:`14px`,color:`kobo-3`},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(n(s)(`workspaceList.prWatchDisabledIndicator`)),1)]),_:1})]),_:1})):T(``,!0),n(a).autoLoopStates[e.workspace.id]?.auto_loop?(S(),g(W,{key:5,name:`autorenew`,size:`14px`,color:n(a).autoLoopStates[e.workspace.id]?.auto_loop_ready?`amber-4`:`primary`,class:`auto-loop-spin`},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(n(a).autoLoopStates[e.workspace.id]?.auto_loop_ready?n(s)(`autoLoop.running`):n(s)(`autoLoop.preparing`)),1)]),_:1})]),_:1},8,[`color`])):T(``,!0)],64))}}),[[`__scopeId`,`data-v-0532dff8`]]),gr=[`aria-selected`,`aria-label`],_r={class:`col`,style:{"min-width":`0`}},vr={class:`row items-center no-wrap q-gutter-xs`},yr=[`title`],br={key:1,class:`text-caption q-mt-xs`},xr={class:`text-green-4`},Sr={class:`q-ml-xs text-kobo-3`},Cr={key:2,class:`wl-item-meta text-caption text-kobo-3`},wr={key:3,class:`wl-item-meta text-caption text-kobo-3`},Tr={key:4,class:`row q-gutter-xs q-mt-xs`},Er=Q(l({__name:`WorkspaceCard`,props:{workspace:{},variant:{},selected:{type:Boolean},showProjectChip:{type:Boolean},borderColor:{}},emits:[`select`,`rename`,`editDescription`,`copyPath`,`openEditor`,`openFileManager`,`runSetup`,`toggleFavorite`,`manageTags`,`archive`,`unarchive`,`purgeWorktree`,`delete`],setup(e,{emit:r}){let a=e,s=r,{t:l}=t(),{timeAgo:d}=it(),p=f(()=>{let e=me(a.workspace.status);return e?l(e):a.workspace.status}),h=f(()=>a.variant===`archived`?{maxWidth:`400px`}:{fontWeight:a.workspace.hasUnread?700:400,opacity:a.workspace.hasUnread?1:.75,maxWidth:`400px`});return(t,r)=>(S(),D(`div`,{"data-testid":`workspace-card`,class:c([`wl-item cursor-pointer q-pa-sm q-mx-xs rounded-borders`,{"wl-item--selected":e.selected,"wl-item--archived":e.variant===`archived`}]),role:`option`,tabindex:`0`,"aria-selected":e.selected,"aria-label":n(l)(`workspaceList.a11y.card`,{name:e.workspace.name,status:p.value}),style:i([{borderLeft:`3px solid ${e.borderColor}`},e.workspace.favoritedAt?{borderBottom:`2px solid var(--kobo-warning)`}:{}]),onClick:r[12]||=t=>s(`select`,e.workspace.id),onKeydown:[r[13]||=m(I(t=>s(`select`,e.workspace.id),[`prevent`]),[`enter`]),r[14]||=m(I(t=>s(`select`,e.workspace.id),[`prevent`]),[`space`])],onContextmenu:r[15]||=I(()=>{},[`prevent`])},[A(pr,{workspace:e.workspace,archived:e.variant===`archived`,onRename:r[0]||=e=>s(`rename`,e),onEditDescription:r[1]||=e=>s(`editDescription`,e),onCopyPath:r[2]||=e=>s(`copyPath`,e),onOpenEditor:r[3]||=e=>s(`openEditor`,e),onOpenFileManager:r[4]||=e=>s(`openFileManager`,e),onRunSetup:r[5]||=e=>s(`runSetup`,e),onToggleFavorite:r[6]||=e=>s(`toggleFavorite`,e),onManageTags:r[7]||=e=>s(`manageTags`,e),onArchive:r[8]||=(e,t)=>s(`archive`,e,t),onUnarchive:r[9]||=(e,t)=>s(`unarchive`,e,t),onPurgeWorktree:r[10]||=(e,t)=>s(`purgeWorktree`,e,t),onDelete:r[11]||=(e,t)=>s(`delete`,e,t)},null,8,[`workspace`,`archived`]),E(`div`,_r,[E(`div`,vr,[A(hr,{workspace:e.workspace},null,8,[`workspace`]),E(`div`,{class:`wl-item-name text-body2 text-kobo-1 ellipsis`,style:i(h.value)},[k(o(e.workspace.name)+` `,1),A(Z,null,{default:j(()=>[k(o(e.workspace.name),1)]),_:1})],4)]),e.workspace.agentDescription||e.workspace.description?(S(),D(`div`,{key:0,class:`text-caption text-kobo-3 ellipsis q-mt-xs`,title:e.workspace.agentDescription||e.workspace.description||void 0,style:{"max-width":`100%`,"font-size":`11px`}},o(e.workspace.agentDescription||e.workspace.description),9,yr)):T(``,!0),A(Qe,{workspace:e.workspace,class:`q-mt-xs`},null,8,[`workspace`]),A(fr,{workspace:e.workspace,"ci-recap-only":e.variant!==`attention`},null,8,[`workspace`,`ci-recap-only`]),e.variant===`running`?(S(),D(`div`,br,[E(`span`,xr,o(p.value),1),E(`span`,Sr,`· `+o(n(d)(e.workspace.updatedAt)),1)])):e.variant===`idle`?(S(),D(`div`,Cr,o(n(d)(e.workspace.updatedAt)),1)):e.variant===`archived`?(S(),D(`div`,wr,o(n(l)(`workspaceList.archived`))+` `+o(n(d)(e.workspace.archivedAt)),1)):T(``,!0),e.showProjectChip||e.workspace.tags.length>0?(S(),D(`div`,Tr,[e.showProjectChip?(S(),g(Ke,{key:0,dense:``,size:`sm`,color:n(st)(e.workspace)??`kobo-hover`,"text-color":n(at)(e.workspace),label:n(ct)(e.workspace)},null,8,[`color`,`text-color`,`label`])):T(``,!0),(S(!0),D(u,null,O(e.workspace.tags,e=>(S(),g(Ke,{key:e,dense:``,size:`sm`,color:`kobo-hover`,"text-color":`kobo-1`,label:e},null,8,[`label`]))),128))])):T(``,!0)])],46,gr))}}),[[`__scopeId`,`data-v-474c5ab2`]]),Dr=[3,2,2,1.5,1,1];function Or(e){let t=e.replace(/[/\\]+$/,``),n=Math.max(t.lastIndexOf(`/`),t.lastIndexOf(`\\`));return n===-1?t:t.slice(n+1)}function kr(e){let t=e.agentDescription||e.description||``;return[e.name,e.workingBranch,t,e.tags.join(` `),Or(e.projectPath),e.sourceBranch].filter(e=>e.trim().length>0)}function Ar(e,t){let n=e.trim();if(n===``)return 0;let r=null,i=kr(t),a=[t.name,t.workingBranch,t.agentDescription||t.description||``,t.tags.join(` `),Or(t.projectPath),t.sourceBranch];for(let e=0;e<a.length;e++){let t=a[e]??``;if(t.trim().length===0||!i.includes(t))continue;let o=Xe(n,t);if(o===null)continue;let s=o*(Dr[e]??1);(r===null||s>r)&&(r=s)}return r}function jr(e,t){return e.trim()===``?t:t.map(t=>({item:t,score:Ar(e,t)})).filter(e=>e.score!==null).sort((e,t)=>t.score-e.score).map(e=>e.item)}var Mr={class:`workspace-list row column full-height`,"data-tour":`workspace-list`},Nr={class:`row items-center no-wrap q-pl-md q-pr-xs q-py-sm`},Pr={class:`text-caption text-uppercase text-weight-bold text-kobo-3 col ellipsis`},Fr={class:`col items-center justify-end row`},Ir={class:`q-px-md q-pb-sm row items-center no-wrap q-gutter-xs`},Lr=[`aria-label`],Rr={key:0,class:`wl-group q-mt-xs`},zr=[`aria-expanded`,`onKeydown`],Br={id:`wl-group-label-attention`,class:`text-caption text-weight-bold q-ml-xs text-red-5`},Vr={class:`wl-project-label q-px-md q-pt-xs`},Hr={key:1,class:`wl-group q-mt-xs`},Ur=[`aria-expanded`,`onKeydown`],Wr={id:`wl-group-label-running`,class:`text-caption text-weight-bold q-ml-xs text-green-4`},Gr={class:`wl-project-label q-px-md q-pt-xs`},Kr={key:2,class:`wl-group q-mt-xs`},qr=[`aria-expanded`,`onKeydown`],Jr={id:`wl-group-label-idle`,class:`text-caption text-weight-bold q-ml-xs text-kobo-3`},Yr={class:`wl-project-label q-px-md q-pt-xs`},Xr={key:3,class:`wl-group q-mt-xs`},Zr=[`aria-expanded`,`onKeydown`],Qr={id:`wl-group-label-archived`,class:`text-caption text-weight-bold q-ml-xs text-kobo-3`},$r={key:4,class:`q-pa-lg text-center`},ei={class:`text-caption text-negative q-mt-sm`},ti={class:`text-caption text-kobo-3 q-mt-xs`},ni={class:`text-caption text-kobo-3 q-mt-xs`},ri={key:5,class:`q-pa-lg text-center text-kobo-3 text-caption`},ii={class:`q-px-md q-py-xs text-caption text-kobo-3`},ai={class:`text-h6`},oi={class:`text-body2 q-mb-sm text-kobo-3`},si={class:`text-caption q-mb-md text-kobo-3`,style:{"font-family":`monospace`}},ci={class:`column q-gutter-xs`},li={key:0,class:`text-caption q-mt-sm text-red-5`},ui={class:`text-h6`},di={class:`text-body2 q-mb-md text-kobo-3`},fi={class:`column q-gutter-xs`},pi={key:0,class:`text-caption q-mt-sm text-red-5`},mi=`kobo:workspace-search`,hi=15e3,gi=Q(l({__name:`WorkspaceList`,setup(e){let{t:i}=t(),a=He(),s=q(),l=ve(),d=he(),p=Me(),h=Te(),_=Ue(),{isDrawerCollapsed:v}=Ve();function x(e){let t=er(e,s.prSnapshots[e.id]);return t.some(e=>e.color===`red-5`)?`var(--kobo-danger)`:t.length>0&&t.every(e=>e.kind===`ready-to-merge`)?`var(--kobo-success)`:`var(--kobo-warning)`}let w=null,N=r(localStorage.getItem(mi)??``);M(N,e=>localStorage.setItem(mi,e));let P=r(localStorage.getItem(`kobo:favorites-filter`)===`1`);M(P,e=>localStorage.setItem(`kobo:favorites-filter`,e?`1`:`0`));let F=r(localStorage.getItem(`kobo:search-archived`)===`1`);M(F,e=>localStorage.setItem(`kobo:search-archived`,e?`1`:`0`));let ee=r(!1),R=r(null);function z(e){R.value=e,ee.value=!0}function B(e){let t=new Map;for(let n of e){let e=n.projectPath;t.has(e)||t.set(e,[]),t.get(e).push(n)}return[...t.entries()].map(([e,t])=>({projectPath:e,projectName:ot(e),projectColor:p.getProjectByPath(e)?.color??null,workspaces:t}))}let V=f(()=>jr(N.value,s.needsAttention).filter(e=>!P.value||e.favoritedAt!==null)),H=f(()=>jr(N.value,s.running).filter(e=>!P.value||e.favoritedAt!==null)),te=f(()=>jr(N.value,s.idle).filter(e=>!P.value||e.favoritedAt!==null)),ne=f(()=>B(V.value)),re=f(()=>B(H.value)),ie=f(()=>B(te.value)),U=f(()=>p.global.flattenWorkspaceList??!1),ae=f(()=>V.value),oe=f(()=>H.value),se=f(()=>te.value),ce=f(()=>(F.value?jr(N.value,s.archived):s.archived).filter(e=>!P.value||e.favoritedAt!==null)),le=f(()=>F.value&&N.value.length>0&&ce.value.length>0),ue=f(()=>s.workspaces.length),de=f(()=>s.running.length),fe=r(!0),me=r(!0),ye=r(!0),Ce=r(!1);function we(){fe.value=!fe.value}function Ee(){me.value=!me.value}function De(){ye.value=!ye.value}async function Ae(){Ce.value=!Ce.value,Ce.value&&!s.archivedLoaded&&await s.fetchArchivedWorkspaces()}let je=r(!1),Ne=r(null),Pe=r(!1),Fe=r(!1),Ie=r(!1),Le=r(!1),J=r(!1),Y=r(!1),Re=r(!1);function ze(e,t){t.stopPropagation(),Ne.value=e,Pe.value=!0,Fe.value=!1,je.value=!0}async function Be(){if(!Ne.value)return;let e=Ne.value.id;Ie.value=!0;try{let{warnings:t}=await s.deleteWorkspace(e,{deleteLocalBranch:Pe.value,deleteRemoteBranch:Fe.value});l.unsubscribe(e),je.value=!1,s.selectedWorkspaceId===null&&h.push({name:`workspace`});for(let e of t)a.notify({type:`warning`,message:e,position:`top`,timeout:pe,multiLine:!0,classes:`workspace-delete-warning`,actions:[{icon:`content_copy`,color:`white`,round:!0,handler:()=>{navigator.clipboard.writeText(e)}},{label:i(`common.ok`),color:`white`,handler:()=>void 0}]})}catch(e){console.error(`Delete failed:`,e)}finally{Ie.value=!1}}function X(){J.value=!1,Y.value=!1,Le.value=!0}async function Q(){Re.value=!0;try{let{warnings:e,ids:t}=await s.deleteAllArchived({deleteLocalBranch:J.value,deleteRemoteBranch:Y.value});for(let e of t)l.unsubscribe(e);Le.value=!1,s.selectedWorkspaceId===null&&h.push({name:`workspace`});for(let t of e)a.notify({type:`warning`,message:t,position:`top`,timeout:pe,multiLine:!0,classes:`workspace-delete-warning`,actions:[{icon:`content_copy`,color:`white`,round:!0,handler:()=>{navigator.clipboard.writeText(t)}},{label:i(`common.ok`),color:`white`,handler:()=>void 0}]})}catch(e){console.error(`Bulk delete archived failed:`,e)}finally{Re.value=!1}}async function We(e,t){t.stopPropagation();try{await s.archiveWorkspace(e.id),s.selectedWorkspaceId===null&&h.push({name:`workspace`}),a.notify({type:`info`,message:i(`workspaceList.archivedToast`,{name:e.name}),position:`top`,timeout:pe,actions:[{label:i(`workspaceList.archivedUndo`),color:`white`,handler:()=>{s.unarchiveWorkspace(e.id).catch(()=>a.notify({type:`negative`,message:i(`workspaceList.unarchiveFailed`),position:`top`}))}}]})}catch(e){console.error(`Archive failed:`,e)}}function $(e,t){t.stopPropagation(),a.dialog({title:i(`contextMenu.purgeWorktreeDialogTitle`),message:i(`contextMenu.purgeWorktreeDialogMessage`,{name:e.name}),cancel:{flat:!0,label:i(`common.cancel`),color:`kobo-2`},ok:{unelevated:!0,label:i(`contextMenu.purgeWorktreeDialogConfirm`),color:`orange-7`},persistent:!0,dark:!0}).onOk(async()=>{let t=await s.purgeWorktree(e.id);if(!t.ok){a.notify({type:`negative`,message:t.error,position:`top`,timeout:6e3});return}if(t.warnings.length===0)a.notify({type:`positive`,message:i(`contextMenu.purgeWorktreeSuccess`),position:`top`});else for(let e of t.warnings)a.notify({type:`warning`,message:e,position:`top`,timeout:pe,multiLine:!0,classes:`workspace-delete-warning`,actions:[{icon:`content_copy`,color:`white`,round:!0,handler:()=>{navigator.clipboard.writeText(e)}},{label:i(`common.ok`),color:`white`,handler:()=>void 0}]});s.selectedWorkspaceId===null&&h.push({name:`workspace`})})}async function Ke(e,t){t.stopPropagation();try{await s.unarchiveWorkspace(e.id),p.getProjectByPath(e.projectPath)?.devServer?.startCommand&&d.fetchStatus(e.id)}catch(e){console.error(`Unarchive failed:`,e),e?.code===`worktree-purged`&&a.notify({type:`warning`,message:i(`workspaceList.unarchiveBlockedPurged`),position:`top`,timeout:6e3,multiLine:!0})}}function qe(e){s.selectWorkspace(e),h.push({name:`workspace`,params:{id:e}}),v.value&&_.setLeft(!1)}function Je(e){let t=Array.from(document.querySelectorAll(`.workspace-list [data-testid="workspace-card"]`));if(t.length===0)return;let n=t.indexOf(document.activeElement);t[n===-1?0:(n+e+t.length)%t.length]?.focus()}function Ye(e){navigator.clipboard.writeText(e.worktreePath).catch(()=>{})}function Xe(e){a.dialog({title:i(`contextMenu.rename`),dark:!0,prompt:{model:e.name,isValid:e=>e.trim().length>0,type:`text`},cancel:{flat:!0,label:i(`common.cancel`),color:`kobo-2`},ok:{unelevated:!0,label:i(`common.save`),color:`primary`}}).onOk(async t=>{let n=t.trim();if(!(!n||n===e.name))try{await s.renameWorkspace(e.id,n)}catch(e){let t=e instanceof Error?e.message:String(e);a.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}})}function Ze(e){a.dialog({title:i(`contextMenu.editDescription`),message:i(`workspace.descriptionDialogHint`),dark:!0,prompt:{model:e.description??``,isValid:e=>e.length<=200,type:`textarea`},cancel:{flat:!0,label:i(`common.cancel`),color:`kobo-2`},ok:{unelevated:!0,label:i(`common.save`),color:`primary`}}).onOk(async t=>{let n=t.trim(),r=n.length>0?n:null;if(r!==(e.description??null))try{await s.updateWorkspaceDescription(e.id,r)}catch(e){let t=e instanceof Error?e.message:String(e);a.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}})}async function Qe(e){try{let t=await fetch(`/api/workspaces/${e.id}/open-editor`,{method:`POST`});if(!t.ok){let e=await t.json();console.error(`[workspace-list] open-editor failed:`,e.error)}}catch(e){console.error(`[workspace-list] open-editor failed:`,e)}}async function $e(e){try{let t=await fetch(`/api/workspaces/${e.id}/open-file-manager`,{method:`POST`});if(!t.ok){let e=await t.json().catch(()=>({}));a.notify({type:`negative`,message:e.error??i(`tools.openFileManagerFailed`),position:`top`,timeout:6e3})}}catch(e){let t=e instanceof Error?e.message:i(`tools.openFileManagerFailed`);a.notify({type:`negative`,message:t,position:`top`,timeout:6e3})}}function et(e){s.toggleFavorite(e.id).catch(e=>{a.notify({type:`negative`,message:String(e),position:`top`,timeout:4e3})})}function tt(e){if(be(e.status)){a.notify({type:`warning`,message:i(`tools.runSetupScriptBusy`),position:`top`,timeout:4e3});return}a.dialog({title:i(`tools.runSetupScript`),message:i(`tools.runSetupScriptConfirm`),cancel:!0,persistent:!0,dark:!0}).onOk(async()=>{try{await fetch(`/api/workspaces/${e.id}/run-setup-script`,{method:`POST`})}catch(e){console.error(`[workspace-list] run-setup-script failed:`,e)}})}function nt(){h.push({name:`create`})}function rt(){h.push({name:`settings`})}function it(){h.push({name:`search`})}function at(){h.push({name:`health`})}function st(){h.push({name:`changelog`})}function ct(){document.visibilityState!==`hidden`&&s.fetchWorkspacesInfo()}function lt(){document.visibilityState===`visible`&&s.fetchWorkspacesInfo()}return y(async()=>{await s.fetchWorkspaces(),await s.fetchArchivedWorkspaces(),s.fetchPrSnapshots(),s.fetchAutoLoopStates(),await p.fetchSettings();for(let e of s.workspaces)l.subscribe(e.id),p.getProjectByPath(e.projectPath)?.devServer?.startCommand&&d.fetchStatus(e.id);s.fetchWorkspacesInfo(),w=setInterval(ct,hi),document.addEventListener(`visibilitychange`,lt)}),b(()=>{document.removeEventListener(`visibilitychange`,lt),w&&=(clearInterval(w),null)}),(e,t)=>(S(),D(u,null,[E(`div`,Mr,[E(`div`,Nr,[E(`span`,Pr,o(e.$t(`workspaceList.title`)),1),E(`div`,Fr,[n(l).connected?(S(),g(Ge,{key:0,rounded:``,color:`positive`,class:`q-ml-xs`})):(S(),g(Ge,{key:1,rounded:``,color:`negative`,class:`q-ml-xs`})),A(G,{flat:``,round:``,dense:``,icon:`search`,class:`q-ml-xs`,size:`sm`,color:`kobo-2`,"aria-label":e.$t(`search.tooltip`),onClick:it},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`search.tooltip`)),1)]),_:1})]),_:1},8,[`aria-label`]),A(G,{flat:``,round:``,dense:``,icon:`monitor_heart`,class:`q-ml-xs`,size:`sm`,color:`kobo-2`,"data-tour":`health`,"aria-label":e.$t(`health.tooltip`),onClick:at},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`health.tooltip`)),1)]),_:1})]),_:1},8,[`aria-label`]),A(G,{flat:``,round:``,dense:``,icon:`history_edu`,class:`q-ml-xs`,size:`sm`,color:`kobo-2`,"data-tour":`changelog`,"aria-label":e.$t(`changelog.tooltip`),onClick:st},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`changelog.tooltip`)),1)]),_:1})]),_:1},8,[`aria-label`]),A(G,{flat:``,round:``,dense:``,icon:`settings`,class:`q-ml-xs`,size:`sm`,color:`kobo-2`,"data-tour":`settings`,"aria-label":e.$t(`settings.title`),onClick:rt},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`settings.title`)),1)]),_:1})]),_:1},8,[`aria-label`]),A(G,{flat:``,round:``,dense:``,icon:`add`,size:`sm`,color:`kobo-2`,"data-tour":`create-workspace`,"aria-label":e.$t(`createPage.title`),onClick:nt},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`createPage.title`)),1)]),_:1})]),_:1},8,[`aria-label`])])]),E(`div`,Ir,[A(Oe,{modelValue:N.value,"onUpdate:modelValue":t[0]||=e=>N.value=e,dense:``,dark:``,placeholder:e.$t(`common.search`),class:`wl-search rounded-borders col`,borderless:``,"data-tour":`search`},{prepend:j(()=>[A(W,{name:`search`,size:`xs`,color:`kobo-3`})]),_:1},8,[`modelValue`,`placeholder`]),A(G,{icon:P.value?`star`:`star_outline`,color:P.value?`amber-7`:`kobo-3`,flat:``,dense:``,round:``,size:`sm`,"aria-label":e.$t(`workspace.showFavoritesOnly`),"aria-pressed":P.value,onClick:t[1]||=e=>P.value=!P.value},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`workspace.showFavoritesOnly`)),1)]),_:1})]),_:1},8,[`icon`,`color`,`aria-label`,`aria-pressed`]),A(G,{icon:`inventory_2`,color:F.value?`primary`:`kobo-3`,flat:``,dense:``,round:``,size:`sm`,"aria-label":e.$t(`workspace.searchArchivedToggle`),"aria-pressed":F.value,onClick:t[2]||=e=>F.value=!F.value},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`workspace.searchArchivedToggle`)),1)]),_:1})]),_:1},8,[`color`,`aria-label`,`aria-pressed`])]),A(ke,{dark:``}),E(`div`,{class:`col overflow-auto`,role:`listbox`,"aria-label":e.$t(`workspaceList.a11y.list`),onKeydown:[t[4]||=m(I(e=>Je(1),[`prevent`]),[`down`]),t[5]||=m(I(e=>Je(-1),[`prevent`]),[`up`])]},[V.value.length>0?(S(),D(`div`,Rr,[E(`div`,{class:`wl-group-header row items-center q-px-md q-py-xs cursor-pointer non-selectable`,role:`group`,tabindex:`0`,"aria-expanded":fe.value,"aria-labelledby":`wl-group-label-attention wl-group-count-attention`,onClick:we,onKeydown:[m(I(we,[`prevent`]),[`enter`]),m(I(we,[`prevent`]),[`space`])]},[A(W,{name:fe.value?`expand_more`:`chevron_right`,size:`xs`,color:`red-5`},null,8,[`name`]),E(`span`,Br,o(e.$t(`workspaceList.needsAttention`)),1),A(Ge,{id:`wl-group-count-attention`,label:V.value.length,color:`red-9`,"text-color":`white`,class:`q-ml-auto`,style:{"font-size":`10px`}},null,8,[`label`])],40,zr),L(E(`div`,null,[U.value?(S(!0),D(u,{key:1},O(ae.value,e=>(S(),g(Er,{key:e.id,workspace:e,variant:`attention`,selected:e.id===n(s).selectedWorkspaceId,"show-project-chip":U.value,"border-color":x(e),onSelect:qe,onRename:Xe,onEditDescription:Ze,onCopyPath:Ye,onOpenEditor:Qe,onOpenFileManager:$e,onRunSetup:tt,onToggleFavorite:et,onManageTags:z,onArchive:We,onUnarchive:Ke,onPurgeWorktree:$,onDelete:ze},null,8,[`workspace`,`selected`,`show-project-chip`,`border-color`]))),128)):(S(!0),D(u,{key:0},O(ne.value,e=>(S(),D(`div`,{key:e.projectPath,class:`wl-project-group`},[E(`div`,Vr,[A(W,{name:`folder`,size:`12px`,color:e.projectColor??`kobo-3`,class:`q-mr-xs`},null,8,[`color`]),E(`span`,{class:c([`text-caption`,e.projectColor?`text-${e.projectColor}`:`text-kobo-3`])},o(e.projectName),3)]),(S(!0),D(u,null,O(e.workspaces,e=>(S(),g(Er,{key:e.id,workspace:e,variant:`attention`,selected:e.id===n(s).selectedWorkspaceId,"show-project-chip":!1,"border-color":x(e),onSelect:qe,onRename:Xe,onEditDescription:Ze,onCopyPath:Ye,onOpenEditor:Qe,onOpenFileManager:$e,onRunSetup:tt,onToggleFavorite:et,onManageTags:z,onArchive:We,onUnarchive:Ke,onPurgeWorktree:$,onDelete:ze},null,8,[`workspace`,`selected`,`border-color`]))),128))]))),128))],512),[[C,fe.value]])])):T(``,!0),H.value.length>0?(S(),D(`div`,Hr,[E(`div`,{class:`wl-group-header row items-center q-px-md q-py-xs cursor-pointer non-selectable`,role:`group`,tabindex:`0`,"aria-expanded":me.value,"aria-labelledby":`wl-group-label-running wl-group-count-running`,onClick:Ee,onKeydown:[m(I(Ee,[`prevent`]),[`enter`]),m(I(Ee,[`prevent`]),[`space`])]},[A(W,{name:me.value?`expand_more`:`chevron_right`,size:`xs`,color:`green-5`},null,8,[`name`]),E(`span`,Wr,o(e.$t(`workspaceList.running`)),1),A(Ge,{id:`wl-group-count-running`,label:H.value.length,color:`green-9`,"text-color":`white`,class:`q-ml-auto`,style:{"font-size":`10px`}},null,8,[`label`])],40,Ur),L(E(`div`,null,[U.value?(S(!0),D(u,{key:1},O(oe.value,e=>(S(),g(Er,{key:e.id,workspace:e,variant:`running`,selected:e.id===n(s).selectedWorkspaceId,"show-project-chip":U.value,"border-color":`var(--kobo-success)`,onSelect:qe,onRename:Xe,onEditDescription:Ze,onCopyPath:Ye,onOpenEditor:Qe,onOpenFileManager:$e,onRunSetup:tt,onToggleFavorite:et,onManageTags:z,onArchive:We,onUnarchive:Ke,onPurgeWorktree:$,onDelete:ze},null,8,[`workspace`,`selected`,`show-project-chip`]))),128)):(S(!0),D(u,{key:0},O(re.value,e=>(S(),D(`div`,{key:e.projectPath,class:`wl-project-group`},[E(`div`,Gr,[A(W,{name:`folder`,size:`12px`,color:e.projectColor??`kobo-3`,class:`q-mr-xs`},null,8,[`color`]),E(`span`,{class:c([`text-caption`,e.projectColor?`text-${e.projectColor}`:`text-kobo-3`])},o(e.projectName),3)]),(S(!0),D(u,null,O(e.workspaces,e=>(S(),g(Er,{key:e.id,workspace:e,variant:`running`,selected:e.id===n(s).selectedWorkspaceId,"show-project-chip":!1,"border-color":`var(--kobo-success)`,onSelect:qe,onRename:Xe,onEditDescription:Ze,onCopyPath:Ye,onOpenEditor:Qe,onOpenFileManager:$e,onRunSetup:tt,onToggleFavorite:et,onManageTags:z,onArchive:We,onUnarchive:Ke,onPurgeWorktree:$,onDelete:ze},null,8,[`workspace`,`selected`]))),128))]))),128))],512),[[C,me.value]])])):T(``,!0),te.value.length>0?(S(),D(`div`,Kr,[E(`div`,{class:`wl-group-header row items-center q-px-md q-py-xs cursor-pointer non-selectable`,role:`group`,tabindex:`0`,"aria-expanded":ye.value,"aria-labelledby":`wl-group-label-idle wl-group-count-idle`,onClick:De,onKeydown:[m(I(De,[`prevent`]),[`enter`]),m(I(De,[`prevent`]),[`space`])]},[A(W,{name:ye.value?`expand_more`:`chevron_right`,size:`xs`,color:`kobo-3`},null,8,[`name`]),E(`span`,Jr,o(e.$t(`workspaceList.idle`)),1),A(Ge,{id:`wl-group-count-idle`,label:te.value.length,color:`kobo-hover`,"text-color":`kobo-2`,class:`q-ml-auto`,style:{"font-size":`10px`}},null,8,[`label`])],40,qr),L(E(`div`,null,[U.value?(S(!0),D(u,{key:1},O(se.value,e=>(S(),g(Er,{key:e.id,workspace:e,variant:`idle`,selected:e.id===n(s).selectedWorkspaceId,"show-project-chip":U.value,"border-color":`var(--kobo-border-strong)`,onSelect:qe,onRename:Xe,onEditDescription:Ze,onCopyPath:Ye,onOpenEditor:Qe,onOpenFileManager:$e,onRunSetup:tt,onToggleFavorite:et,onManageTags:z,onArchive:We,onUnarchive:Ke,onPurgeWorktree:$,onDelete:ze},null,8,[`workspace`,`selected`,`show-project-chip`]))),128)):(S(!0),D(u,{key:0},O(ie.value,e=>(S(),D(`div`,{key:e.projectPath,class:`wl-project-group`},[E(`div`,Yr,[A(W,{name:`folder`,size:`12px`,color:e.projectColor??`kobo-3`,class:`q-mr-xs`},null,8,[`color`]),E(`span`,{class:c([`text-caption`,e.projectColor?`text-${e.projectColor}`:`text-kobo-3`])},o(e.projectName),3)]),(S(!0),D(u,null,O(e.workspaces,e=>(S(),g(Er,{key:e.id,workspace:e,variant:`idle`,selected:e.id===n(s).selectedWorkspaceId,"show-project-chip":!1,"border-color":`var(--kobo-border-strong)`,onSelect:qe,onRename:Xe,onEditDescription:Ze,onCopyPath:Ye,onOpenEditor:Qe,onOpenFileManager:$e,onRunSetup:tt,onToggleFavorite:et,onManageTags:z,onArchive:We,onUnarchive:Ke,onPurgeWorktree:$,onDelete:ze},null,8,[`workspace`,`selected`]))),128))]))),128))],512),[[C,ye.value]])])):T(``,!0),ce.value.length>0||Ce.value?(S(),D(`div`,Xr,[E(`div`,{class:`wl-group-header row items-center q-px-md q-py-xs cursor-pointer non-selectable`,role:`group`,tabindex:`0`,"aria-expanded":Ce.value||le.value,"aria-labelledby":`wl-group-label-archived wl-group-count-archived`,onClick:Ae,onKeydown:[m(I(Ae,[`prevent`]),[`enter`]),m(I(Ae,[`prevent`]),[`space`])]},[A(W,{name:Ce.value||le.value?`expand_more`:`chevron_right`,size:`xs`,color:`kobo-3`},null,8,[`name`]),A(W,{name:`inventory_2`,size:`xs`,color:`kobo-3`,class:`q-ml-xs`}),E(`span`,Qr,o(e.$t(`workspaceList.archived`)),1),ce.value.length>0?(S(),g(Ge,{key:0,id:`wl-group-count-archived`,label:ce.value.length,color:`kobo-surface-2`,"text-color":`kobo-2`,class:`q-ml-auto`,style:{"font-size":`10px`}},null,8,[`label`])):T(``,!0),ce.value.length>0?(S(),g(G,{key:1,flat:``,dense:``,round:``,size:`xs`,icon:`delete_sweep`,color:`kobo-3`,class:`q-ml-xs`,onClick:I(X,[`stop`])},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`workspaceList.deleteArchivedDialog.tooltip`)),1)]),_:1})]),_:1})):T(``,!0)],40,Zr),L(E(`div`,null,[(S(!0),D(u,null,O(ce.value,e=>(S(),g(Er,{key:e.id,workspace:e,variant:`archived`,selected:e.id===n(s).selectedWorkspaceId,"show-project-chip":U.value,"border-color":`var(--kobo-border)`,onSelect:qe,onRename:Xe,onEditDescription:Ze,onCopyPath:Ye,onOpenEditor:Qe,onOpenFileManager:$e,onRunSetup:tt,onToggleFavorite:et,onManageTags:z,onArchive:We,onUnarchive:Ke,onPurgeWorktree:$,onDelete:ze},null,8,[`workspace`,`selected`,`show-project-chip`]))),128))],512),[[C,Ce.value||le.value]])])):T(``,!0),n(s).listLoadError?(S(),D(`div`,$r,[A(W,{name:`cloud_off`,size:`28px`,class:`text-negative`}),E(`div`,ei,o(e.$t(`workspaceList.loadFailed`)),1),E(`div`,ti,o(n(s).listLoadError),1),E(`div`,ni,o(e.$t(`workspaceList.loadFailedHint`)),1),A(G,{dense:``,flat:``,"no-caps":``,class:`q-mt-sm`,icon:`refresh`,label:e.$t(`common.retry`),onClick:t[3]||=e=>n(s).retryLoadWorkspaces()},null,8,[`label`])])):V.value.length===0&&H.value.length===0&&te.value.length===0&&ce.value.length===0?(S(),D(`div`,ri,[n(s).loading?(S(),D(u,{key:0},[k(o(e.$t(`common.loading`)),1)],64)):N.value?(S(),D(u,{key:1},[k(o(e.$t(`common.noResults`,{query:N.value})),1)],64)):(S(),D(u,{key:2},[k(o(e.$t(`workspaceList.noWorkspaces`)),1)],64))])):T(``,!0)],40,Lr),A(ke,{dark:``}),E(`div`,ii,o(e.$t(`workspaceList.footer`,{count:ue.value},ue.value))+` · `+o(e.$t(`workspaceList.footerRunning`,{count:de.value})),1)]),A(Se,{modelValue:je.value,"onUpdate:modelValue":t[9]||=e=>je.value=e,persistent:``},{default:j(()=>[A(xe,{class:`text-kobo-1`,style:{"min-width":`360px`,background:`var(--kobo-surface)`}},{default:j(()=>[A(K,null,{default:j(()=>[E(`div`,ai,o(e.$t(`workspaceList.deleteDialog.title`)),1)]),_:1}),A(K,{class:`q-pt-none`},{default:j(()=>[E(`div`,oi,o(Ne.value?.name),1),E(`div`,si,o(Ne.value?.workingBranch),1),E(`div`,ci,[A(ge,{modelValue:Pe.value,"onUpdate:modelValue":t[6]||=e=>Pe.value=e,label:e.$t(`workspaceList.deleteDialog.deleteLocal`),dark:``,dense:``,color:`red-5`},null,8,[`modelValue`,`label`]),A(ge,{modelValue:Fe.value,"onUpdate:modelValue":t[7]||=e=>Fe.value=e,disable:!Pe.value,label:e.$t(`workspaceList.deleteDialog.deleteRemote`),dark:``,dense:``,color:`red-5`},null,8,[`modelValue`,`disable`,`label`])]),Fe.value?(S(),D(`div`,li,o(e.$t(`workspaceList.deleteDialog.warning`)),1)):T(``,!0)]),_:1}),A(_e,{align:`right`},{default:j(()=>[A(G,{flat:``,label:e.$t(`common.cancel`),color:`kobo-2`,onClick:t[8]||=e=>je.value=!1,disable:Ie.value},null,8,[`label`,`disable`]),A(G,{flat:``,label:e.$t(`common.delete`),color:`red-5`,loading:Ie.value,onClick:Be},null,8,[`label`,`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),A(Se,{modelValue:Le.value,"onUpdate:modelValue":t[13]||=e=>Le.value=e,persistent:``},{default:j(()=>[A(xe,{class:`text-kobo-1`,style:{"min-width":`360px`,background:`var(--kobo-surface)`}},{default:j(()=>[A(K,null,{default:j(()=>[E(`div`,ui,o(e.$t(`workspaceList.deleteArchivedDialog.title`)),1)]),_:1}),A(K,{class:`q-pt-none`},{default:j(()=>[E(`div`,di,o(e.$t(`workspaceList.deleteArchivedDialog.message`,{count:n(s).archived.length})),1),E(`div`,fi,[A(ge,{modelValue:J.value,"onUpdate:modelValue":t[10]||=e=>J.value=e,label:e.$t(`workspaceList.deleteDialog.deleteLocal`),dark:``,dense:``,color:`red-5`},null,8,[`modelValue`,`label`]),A(ge,{modelValue:Y.value,"onUpdate:modelValue":t[11]||=e=>Y.value=e,disable:!J.value,label:e.$t(`workspaceList.deleteDialog.deleteRemote`),dark:``,dense:``,color:`red-5`},null,8,[`modelValue`,`disable`,`label`])]),Y.value?(S(),D(`div`,pi,o(e.$t(`workspaceList.deleteDialog.warning`)),1)):T(``,!0)]),_:1}),A(_e,{align:`right`},{default:j(()=>[A(G,{flat:``,label:e.$t(`common.cancel`),color:`kobo-2`,disable:Re.value,onClick:t[12]||=e=>Le.value=!1},null,8,[`label`,`disable`]),A(G,{flat:``,label:e.$t(`common.delete`),color:`red-5`,loading:Re.value,onClick:Q},null,8,[`label`,`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]),R.value?(S(),g(Qn,{key:0,modelValue:ee.value,"onUpdate:modelValue":t[14]||=e=>ee.value=e,workspace:R.value},null,8,[`modelValue`,`workspace`])):T(``,!0)],64))}}),[[`__scopeId`,`data-v-d28f2ba1`]]);function _i(e,t){let n=e=>e.split(`.`).map(e=>Number.parseInt(e,10)||0),r=n(e),i=n(t),a=Math.max(r.length,i.length);for(let e=0;e<a;e++){let t=(r[e]??0)-(i[e]??0);if(t!==0)return t}return 0}var vi=`kobo:last-seen-version`;function yi(){let e=r(!1),t=r([]);async function n(){try{let n=await fetch(`/api/changelog`);if(!n.ok)return;let r=await n.json(),i=r.currentVersion;if(!i)return;let a=localStorage.getItem(vi);if(!a){localStorage.setItem(vi,i);return}if(a===i)return;let o=(r.versions??[]).filter(e=>_i(e.version,a)>0&&_i(e.version,i)<=0).sort((e,t)=>_i(t.version,e.version));localStorage.setItem(vi,i),o.length>0&&(t.value=o,e.value=!0)}catch{}}return{showDialog:e,newVersions:t,checkForUpdate:n}}function bi(e,t,n,r=50){return n?Math.min(e,Math.max(0,t-r)):e}var xi={class:`column no-wrap`,style:{position:`absolute`,inset:`0`,overflow:`hidden`}},Si={class:`col`,style:{overflow:`auto`}},Ci=`kobo:rightTab`,wi=1023,Ti=`at-left-drawer-width`,Ei=`kobo:rightDrawerWidth`,Di=240,Oi=800,ki=`kobo:rightDrawerSplit`,Ai=l({__name:`MainLayout`,setup(e){let t=x(()=>De(()=>import(`./DocumentsPanel-DhP1jk11.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]))),s=x(()=>De(()=>import(`./GitPanel-DNCCB0G_.js`),__vite__mapDeps([17,1,2,3,4,6,9,10,11,12,13,18,19,7,20,21,22,23,24,25,26]))),c=x(()=>De(()=>import(`./SchedulePanel-Brtqtz1H.js`),__vite__mapDeps([27,1,2,3,4,9,10,6,11,12,13,20,19,7,21,22,28,15,29,30,24,31]))),l=x(()=>De(()=>import(`./TerminalPanel-Dtc6B3US.js`),__vite__mapDeps([32,1,2,3,4,9,10,6,11,12,13,7,33,34]))),{maybeStartOnFirstVisit:u}=rt(),{showDialog:d,newVersions:m,checkForUpdate:h}=yi();y(()=>{u(),h()});let b=[`git`,`timeline`,`tasks`,`subagents`,`documents`,`schedule`],C=localStorage.getItem(Ci),O=r(C&&b.includes(C)?C:`git`);function N(e){O.value=e,localStorage.setItem(Ci,e)}async function P(e){I.setRight(!0),N(`git`),await w(),window.dispatchEvent(new CustomEvent(`kobo:select-diff`,{detail:e.detail}))}y(()=>window.addEventListener(`kobo:open-diff`,P)),_(()=>window.removeEventListener(`kobo:open-diff`,P));let F=Be();M(()=>F.requestOpen,()=>N(`documents`));let I=Ue(),L=He();M(()=>L.screen.lt.md,e=>I.applyScreenSize(e),{immediate:!0});let ee=parseInt(localStorage.getItem(Ti)??`260`,10),R=r(Math.min(500,Math.max(140,ee))),z=r(!1),B=parseInt(localStorage.getItem(Ei)??`300`,10),V=r(Math.min(Oi,Math.max(Di,B))),H=r(!1),te=f(()=>bi(R.value,L.screen.width,L.screen.lt.md)),ne=f(()=>bi(V.value,L.screen.width,L.screen.lt.md));function re(e){e.preventDefault(),z.value=!0;let t=e=>{let t=Math.min(500,Math.max(140,e.clientX));R.value=t},n=()=>{z.value=!1,localStorage.setItem(Ti,String(R.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)}function ie(e){e.preventDefault(),H.value=!0;let t=e=>{let t=Math.min(Oi,Math.max(Di,window.innerWidth-e.clientX));V.value=t},n=()=>{H.value=!1,localStorage.setItem(Ei,String(V.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 U=Ce(),W=q(),ae=f(()=>$e(W.selectedWorkspace?.engine));M(ae,e=>{!e&&O.value===`subagents`&&N(`tasks`)}),M(()=>W.selectedWorkspaceId,e=>{e&&F.fetchDocuments(e)},{immediate:!0}),M(()=>U.name,e=>{e!==`workspace`&&W.selectedWorkspaceId&&(W.selectedWorkspaceId=null,W.selectedSessionId=null)},{immediate:!0});let G=f(()=>U.name===`workspace`);p(`openDrawerTab`,e=>{I.setRight(!0),N(e)});let oe=parseInt(localStorage.getItem(ki)??`60`,10),se=r(Math.min(80,Math.max(20,oe))),ce=r(!1),le=r(`tools`);function ue(e){e.preventDefault(),ce.value=!0;let t=e.target.closest(`.q-drawer`);if(!t)return;let n=e=>{let n=t.getBoundingClientRect(),r=e.clientY-n.top,i=Math.round(r/n.height*100);se.value=Math.min(80,Math.max(20,i))},r=()=>{ce.value=!1,localStorage.setItem(ki,String(se.value)),document.removeEventListener(`mousemove`,n),document.removeEventListener(`mouseup`,r),document.body.style.cursor=``,document.body.style.userSelect=``};document.body.style.cursor=`row-resize`,document.body.style.userSelect=`none`,document.addEventListener(`mousemove`,n),document.addEventListener(`mouseup`,r)}return(e,r)=>{let u=v(`router-view`);return S(),g(Ht,{view:`lHh LpR lFf`},{default:j(()=>[A(nt,{modelValue:n(I).leftDrawerOpen,"onUpdate:modelValue":r[0]||=e=>n(I).leftDrawerOpen=e,width:te.value,breakpoint:wi,bordered:``,class:`bg-dark`},{default:j(()=>[A(gi),n(L).screen.lt.md?T(``,!0):(S(),D(`div`,{key:0,class:`resize-handle`,onMousedown:re},null,32))]),_:1},8,[`modelValue`,`width`]),A(nt,{"model-value":G.value&&n(I).rightDrawerOpen,side:`right`,width:ne.value,breakpoint:wi,bordered:``,class:`bg-dark`,"onUpdate:modelValue":n(I).setRight},{default:j(()=>[n(L).screen.lt.md?T(``,!0):(S(),D(`div`,{key:0,class:`resize-handle resize-handle--right`,onMousedown:ie},null,32)),E(`div`,xi,[E(`div`,{style:i([{flex:`${se.value} 1 0%`},{overflow:`hidden`}]),class:`column no-wrap`},[A(It,{"model-value":O.value,dense:``,dark:``,"active-color":`primary`,"indicator-color":`primary`,"narrow-indicator":``,"onUpdate:modelValue":N},{default:j(()=>[A(Mt,{name:`git`,icon:`commit`,"aria-label":e.$t(`git.title`)},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`git.title`)),1)]),_:1})]),_:1},8,[`aria-label`]),A(Mt,{name:`timeline`,icon:`timeline`,"aria-label":e.$t(`timeline.title`)},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`timeline.title`)),1)]),_:1})]),_:1},8,[`aria-label`]),A(Mt,{name:`tasks`,icon:`checklist`,"aria-label":e.$t(`tasks.title`)},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`tasks.title`)),1)]),_:1})]),_:1},8,[`aria-label`]),ae.value?(S(),g(Mt,{key:0,name:`subagents`,icon:`smart_toy`,"aria-label":e.$t(`subagents.title`)},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`subagents.title`)),1)]),_:1})]),_:1},8,[`aria-label`])):T(``,!0),A(Mt,{name:`documents`,icon:`description`,"aria-label":e.$t(`documents.title`)},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`documents.title`)),1)]),_:1})]),_:1},8,[`aria-label`]),A(Mt,{name:`schedule`,icon:`event`,"aria-label":e.$t(`schedule.tabLabel`)},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`schedule.tabLabel`)),1)]),_:1})]),_:1},8,[`aria-label`])]),_:1},8,[`model-value`]),A(ke,{dark:``}),E(`div`,Si,[A(Rt,{modelValue:O.value,"onUpdate:modelValue":r[1]||=e=>O.value=e,animated:``,"keep-alive":``},{default:j(()=>[A(Lt,{name:`git`,class:`q-pa-none`},{default:j(()=>[A(n(s),{workspace:n(W).selectedWorkspace},null,8,[`workspace`])]),_:1}),A(Lt,{name:`timeline`,class:`q-pa-none`},{default:j(()=>[n(W).selectedWorkspaceId?(S(),g(on,{key:0,"workspace-id":n(W).selectedWorkspaceId},null,8,[`workspace-id`])):T(``,!0)]),_:1}),A(Lt,{name:`tasks`,class:`q-pa-none`},{default:j(()=>[A(Dt,{workspace:n(W).selectedWorkspace,tasks:n(W).tasks},null,8,[`workspace`,`tasks`]),A(ke,{dark:``}),A(gt,{tasks:n(W).acceptanceCriteria},null,8,[`tasks`]),A(ke,{dark:``}),A(Jt)]),_:1}),ae.value?(S(),g(Lt,{key:0,name:`subagents`,class:`q-pa-none`},{default:j(()=>[A(vn)]),_:1})):T(``,!0),A(Lt,{name:`documents`,class:`q-pa-none`},{default:j(()=>[A(n(t),{workspace:n(W).selectedWorkspace},null,8,[`workspace`])]),_:1}),A(Lt,{name:`schedule`,class:`q-pa-none`},{default:j(()=>[n(W).selectedWorkspaceId?(S(),g(n(c),{key:0,"workspace-id":n(W).selectedWorkspaceId},null,8,[`workspace-id`])):T(``,!0)]),_:1})]),_:1},8,[`modelValue`])])],4),n(L).screen.lt.md?T(``,!0):(S(),D(`div`,{key:0,class:`vertical-resize-handle`,onMousedown:ue},null,32)),E(`div`,{style:i([{flex:`${100-se.value} 1 0%`},{overflow:`hidden`}]),class:`column no-wrap`},[A(It,{modelValue:le.value,"onUpdate:modelValue":r[2]||=e=>le.value=e,dense:``,dark:``,"active-color":`primary`,"indicator-color":`primary`,"narrow-indicator":``},{default:j(()=>[A(Mt,{name:`tools`,icon:`build`,"aria-label":e.$t(`tools.title`)},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`tools.title`)),1)]),_:1})]),_:1},8,[`aria-label`]),A(Mt,{name:`terminal`,icon:`terminal`,"aria-label":e.$t(`terminal.title`)},{default:j(()=>[A(Z,null,{default:j(()=>[k(o(e.$t(`terminal.title`)),1)]),_:1})]),_:1},8,[`aria-label`])]),_:1},8,[`modelValue`]),A(ke,{dark:``}),A(Rt,{modelValue:le.value,"onUpdate:modelValue":r[3]||=e=>le.value=e,animated:``,"keep-alive":``,class:`col`,style:{overflow:`hidden`}},{default:j(()=>[A(Lt,{name:`tools`,class:`q-pa-none`,style:{overflow:`auto`}},{default:j(()=>[A(Un,{workspace:n(W).selectedWorkspace},null,8,[`workspace`])]),_:1}),A(Lt,{name:`terminal`,class:`q-pa-none`,style:{height:`100%`}},{default:j(()=>[A(n(l))]),_:1})]),_:1},8,[`modelValue`])],4)])]),_:1},8,[`model-value`,`width`,`onUpdate:modelValue`]),A(Bt,{class:`bg-dark`},{default:j(()=>[A($t),A(u)]),_:1}),A(qn,{modelValue:n(d),"onUpdate:modelValue":r[4]||=e=>a(d)?d.value=e:null,versions:n(m)},null,8,[`modelValue`,`versions`])]),_:1})}}}),ji=e({default:()=>Mi}),Mi=Q(Ai,[[`__scopeId`,`data-v-e7eb571e`]]);export{It as a,gt as c,Mi as default,Lt as i,zt as n,Mt as o,Rt as r,Dt as s,ji as t};
@@ -1 +0,0 @@
1
- import{C as e,T as t}from"./reactivity.esm-bundler-DtSZKRQB.js";import{B as n,Ot as r,S as i,fn as a,st as o,ut as s,yn as c}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{S as l,X as u,Z as d,a as f,l as p}from"./QBtn-B7WFdfmy.js";import{C as m,O as h,T as g,k as _,n as v,t as y,w as b}from"./use-id-DlouqdB8.js";import{u as x}from"./index-Dv1p-1sA.js";import{u as S}from"./skill-suite-prompts-DdoGRwhz.js";import{n as C,t as w}from"./QItemSection-CDBweQnA.js";import{t as T}from"./QSlideTransition-6lWJvjLP.js";var E=t({});function D(e){e.keyCode===32&&u(e)}var O=Object.keys(f),k=d({name:`QExpansionItem`,props:{...f,...g,..._,icon:String,label:String,labelLines:[Number,String],caption:String,captionLines:[Number,String],dense:Boolean,toggleAriaLabel:String,expandIcon:String,expandedIcon:String,expandIconClass:[Array,String,Object],duration:{},headerInsetLevel:Number,contentInsetLevel:Number,expandSeparator:Boolean,defaultOpened:Boolean,hideExpandIcon:Boolean,expandIconToggle:Boolean,switchToggleSide:Boolean,denseToggle:Boolean,group:String,popup:Boolean,headerStyle:[Array,String,Object],headerClass:[Array,String,Object]},emits:[...b,`click`,`afterShow`,`afterHide`],setup(t,{slots:d,emit:f}){let{proxy:{$q:g}}=o(),_=h(t,g),b=e(t.modelValue===null?t.defaultOpened:t.modelValue),k=e(null),A=y(),{show:j,hide:M,toggle:N}=m({showing:b}),P,F,I=n(()=>`q-expansion-item q-item-type q-expansion-item--${b.value?`expanded`:`collapsed`} q-expansion-item--${t.popup?`popup`:`standard`}`),L=n(()=>t.contentInsetLevel===void 0?null:{[`padding`+(g.lang.rtl?`Right`:`Left`)]:t.contentInsetLevel*56+`px`}),R=n(()=>!t.disable&&(t.href!==void 0||t.to!==void 0&&t.to!==null&&t.to!==``)),z=n(()=>{let e={};return O.forEach(n=>{e[n]=t[n]}),e}),B=n(()=>R.value||!t.expandIconToggle),V=n(()=>t.expandedIcon!==void 0&&b.value?t.expandedIcon:t.expandIcon||g.iconSet.expansionItem[t.denseToggle?`denseIcon`:`icon`]),H=n(()=>!t.disable&&(R.value||t.expandIconToggle)),U=n(()=>({expanded:b.value,detailsId:A.value,toggle:N,show:j,hide:M})),W=n(()=>{let e=t.toggleAriaLabel===void 0?g.lang.label[b.value?`collapse`:`expand`](t.label):t.toggleAriaLabel;return{role:`button`,"aria-expanded":b.value?`true`:`false`,"aria-controls":A.value,"aria-label":e}});a(()=>t.group,e=>{F?.(),e!==void 0&&X()});function G(e){R.value||N(e),f(`click`,e)}function K(e){[13,32].includes(e.keyCode)&&q(e,!0)}function q(e,t){!t&&!e.qAvoidFocus&&k.value?.focus({preventScroll:!0}),N(e),u(e)}function J(){f(`afterShow`)}function Y(){f(`afterHide`)}function X(){P===void 0&&(P=v()),b.value&&(E[t.group]=P);let e=a(b,e=>{e?E[t.group]=P:E[t.group]===P&&delete E[t.group]}),n=a(()=>E[t.group],(e,t)=>{t===P&&e!==void 0&&e!==P&&M()});F=()=>{e(),n(),E[t.group]===P&&delete E[t.group],F=void 0}}function Z(){let e={class:[`q-focusable relative-position cursor-pointer${t.denseToggle&&t.switchToggleSide?` items-end`:``}`,t.expandIconClass],side:!t.switchToggleSide,avatar:t.switchToggleSide},n=[s(p,{class:`q-expansion-item__toggle-icon`+(t.expandedIcon===void 0&&b.value?` q-expansion-item__toggle-icon--rotated`:``),name:V.value})];return H.value&&(Object.assign(e,{tabindex:0,...W.value,onClick:q,onKeydown:D,onKeyup:K}),n.unshift(s(`div`,{ref:k,class:`q-expansion-item__toggle-focus q-icon q-focus-helper q-focus-helper--rounded`,tabindex:-1}))),s(w,e,()=>n)}function Q(){let e;return d.header===void 0?(e=[s(w,()=>[s(S,{lines:t.labelLines},()=>t.label||``),t.caption?s(S,{lines:t.captionLines,caption:!0},()=>t.caption):null])],t.icon&&e[t.switchToggleSide?`push`:`unshift`](s(w,{side:t.switchToggleSide,avatar:!t.switchToggleSide},()=>s(p,{name:t.icon})))):e=[d.header(U.value)].flat(),!t.disable&&!t.hideExpandIcon&&e[t.switchToggleSide?`unshift`:`push`](Z()),e}function $(){let e={ref:`item`,style:t.headerStyle,class:t.headerClass,dark:_.value,disable:t.disable,dense:t.dense,insetLevel:t.headerInsetLevel};return B.value&&(e.clickable=!0,e.onClick=G,Object.assign(e,R.value?z.value:W.value)),s(C,e,Q)}function ee(){return c(s(`div`,{key:`e-content`,class:`q-expansion-item__content relative-position`,style:L.value,id:A.value},l(d.default)),[[i,b.value]])}function te(){let e=[$(),s(T,{duration:t.duration,onShow:J,onHide:Y},ee)];return t.expandSeparator&&e.push(s(x,{class:`q-expansion-item__border q-expansion-item__border--top absolute-top`,dark:_.value}),s(x,{class:`q-expansion-item__border q-expansion-item__border--bottom absolute-bottom`,dark:_.value})),e}return t.group!==void 0&&X(),r(()=>{F?.()}),()=>s(`div`,{class:I.value},[s(`div`,{class:`q-expansion-item__container relative-position`},te())])}});export{k as t};
@@ -1 +0,0 @@
1
- import{C as e}from"./reactivity.esm-bundler-DtSZKRQB.js";import{At as t,B as n,Dt as r,Et as i,Lt as a,Ot as o,Tt as s,fn as c,kt as l,st as u,ut as d}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{B as ee,G as f,R as p,X as m,Y as h,Z as g,b as _,l as v,q as y}from"./QBtn-B7WFdfmy.js";import{t as b}from"./debounce-CDIE7CV6.js";import{i as x,r as S}from"./private.use-form-D8Yuc3aU.js";import{at as C,it as w,lt as T,nt as E,ot as D,rt as O,st as k,vt as A}from"./index-Dv1p-1sA.js";import{d as j,l as te,s as ne,u as re}from"./skill-suite-prompts-DdoGRwhz.js";import{n as ie,t as ae}from"./QItemSection-CDBweQnA.js";import{t as oe}from"./QChip-BzB_GF4Z.js";var M=1e3,N=[`start`,`center`,`end`,`start-force`,`center-force`,`end-force`],P=Array.prototype.filter,se=window.getComputedStyle(document.body).overflowAnchor===void 0?f:function(e,t){e!==null&&(e._qOverflowAnimationFrame!==void 0&&cancelAnimationFrame(e._qOverflowAnimationFrame),e._qOverflowAnimationFrame=requestAnimationFrame(()=>{if(e===null)return;e._qOverflowAnimationFrame=void 0;let n=e.children||[];P.call(n,e=>e.dataset&&e.dataset.qVsAnchor!==void 0).forEach(e=>{delete e.dataset.qVsAnchor});let r=n[t];r?.dataset&&(r.dataset.qVsAnchor=``)}))};function F(e,t){return e+t}function I(e,t,n,r,i,a,o,s){let c=e===window?document.scrollingElement||document.documentElement:e,l=i?`offsetWidth`:`offsetHeight`,u={scrollStart:0,scrollViewSize:-o-s,scrollMaxSize:0,offsetStart:-o,offsetEnd:-s};if(i?(e===window?(u.scrollStart=window.pageXOffset||window.scrollX||document.body.scrollLeft||0,u.scrollViewSize+=document.documentElement.clientWidth):(u.scrollStart=c.scrollLeft,u.scrollViewSize+=c.clientWidth),u.scrollMaxSize=c.scrollWidth,a&&(u.scrollStart=(j?u.scrollMaxSize-u.scrollViewSize:0)-u.scrollStart)):(e===window?(u.scrollStart=window.pageYOffset||window.scrollY||document.body.scrollTop||0,u.scrollViewSize+=document.documentElement.clientHeight):(u.scrollStart=c.scrollTop,u.scrollViewSize+=c.clientHeight),u.scrollMaxSize=c.scrollHeight),n!==null)for(let e=n.previousElementSibling;e!==null;e=e.previousElementSibling)e.classList.contains(`q-virtual-scroll--skip`)||(u.offsetStart+=e[l]);if(r!==null)for(let e=r.nextElementSibling;e!==null;e=e.nextElementSibling)e.classList.contains(`q-virtual-scroll--skip`)||(u.offsetEnd+=e[l]);if(t!==e){let n=c.getBoundingClientRect(),r=t.getBoundingClientRect();i?(u.offsetStart+=r.left-n.left,u.offsetEnd-=r.width):(u.offsetStart+=r.top-n.top,u.offsetEnd-=r.height),e!==window&&(u.offsetStart+=u.scrollStart),u.offsetEnd+=u.scrollMaxSize-u.offsetStart}return u}function L(e,t,n,r){t===`end`&&(t=(e===window?document.body:e)[n?`scrollWidth`:`scrollHeight`]),e===window?n?(r&&(t=(j?document.body.scrollWidth-document.documentElement.clientWidth:0)-t),window.scrollTo(t,window.pageYOffset||window.scrollY||document.body.scrollTop||0)):window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,t):n?(r&&(t=(j?e.scrollWidth-e.offsetWidth:0)-t),e.scrollLeft=t):e.scrollTop=t}function R(e,t,n,r){if(n>=r)return 0;let i=t.length,a=Math.floor(n/M),o=Math.floor((r-1)/M)+1,s=e.slice(a,o).reduce(F,0);return n%M!==0&&(s-=t.slice(a*M,n).reduce(F,0)),r%M!==0&&r!==i&&(s-=t.slice(r,o*M).reduce(F,0)),s}var z={virtualScrollSliceSize:{type:[Number,String],default:10},virtualScrollSliceRatioBefore:{type:[Number,String],default:1},virtualScrollSliceRatioAfter:{type:[Number,String],default:1},virtualScrollItemSize:{type:[Number,String],default:24},virtualScrollStickySizeStart:{type:[Number,String],default:0},virtualScrollStickySizeEnd:{type:[Number,String],default:0},tableColspan:[Number,String]};Object.keys(z);var B={virtualScrollHorizontal:Boolean,onVirtualScroll:Function,...z};function ce({virtualScrollLength:a,getVirtualScrollTarget:l,getVirtualScrollEl:ee,virtualScrollItemSizeComputed:f}){let{props:p,emit:m,proxy:h}=u(),{$q:g}=h,_,v,y,x=[],S,C=e(0),w=e(0),T=e({}),E=e(null),D=e(null),O=e(null),k=e({from:0,to:0}),A=n(()=>p.tableColspan===void 0?100:p.tableColspan);f===void 0&&(f=n(()=>p.virtualScrollItemSize));let j=n(()=>f.value+`;`+p.virtualScrollHorizontal),te=n(()=>j.value+`;`+p.virtualScrollSliceRatioBefore+`;`+p.virtualScrollSliceRatioAfter);c(te,()=>{V()}),c(j,ne);function ne(){ce(v,!0)}function re(e){ce(e===void 0?v:e)}function ie(e,t){let n=l();if(n==null||n.nodeType===8)return;let r=I(n,ee(),E.value,D.value,p.virtualScrollHorizontal,g.lang.rtl,p.virtualScrollStickySizeStart,p.virtualScrollStickySizeEnd);y!==r.scrollViewSize&&V(r.scrollViewSize),oe(n,r,Math.min(a.value-1,Math.max(0,Number.parseInt(e,10)||0)),0,N.includes(t)?t:v!==-1&&e>v?`end`:`start`)}function ae(){let e=l();if(e==null||e.nodeType===8)return;let t=I(e,ee(),E.value,D.value,p.virtualScrollHorizontal,g.lang.rtl,p.virtualScrollStickySizeStart,p.virtualScrollStickySizeEnd),n=a.value-1,r=t.scrollMaxSize-t.offsetStart-t.offsetEnd-w.value;if(_===t.scrollStart)return;if(t.scrollMaxSize<=0){oe(e,t,0,0);return}y!==t.scrollViewSize&&V(t.scrollViewSize),z(k.value.from);let i=Math.floor(t.scrollMaxSize-Math.max(t.scrollViewSize,t.offsetEnd)-Math.min(S[n],t.scrollViewSize/2));if(i>0&&Math.ceil(t.scrollStart)>=i){oe(e,t,n,t.scrollMaxSize-t.offsetEnd-x.reduce(F,0));return}let o=0,s=t.scrollStart-t.offsetStart,c=s;if(s<=r&&s+t.scrollViewSize>=C.value)s-=C.value,o=k.value.from,c=s;else for(let e=0;s>=x[e]&&o<n;e++)s-=x[e],o+=M;for(;s>0&&o<n;)s-=S[o],s>-t.scrollViewSize?(o++,c=s):c=S[o]+s;oe(e,t,o,c)}function oe(e,t,n,r,i){let o=typeof i==`string`&&i.includes(`-force`),s=o?i.replace(`-force`,``):i,c=s===void 0?`start`:s,l=Math.max(0,n-T.value[c]),u=l+T.value.total;u>a.value&&(u=a.value,l=Math.max(0,u-T.value.total)),_=t.scrollStart;let d=l!==k.value.from||u!==k.value.to;if(!d&&s===void 0){ue(n);return}let{activeElement:ee}=document,f=O.value;d&&f!==null&&f!==ee&&f.contains(ee)&&(f.addEventListener(`focusout`,B),setTimeout(()=>{f?.removeEventListener(`focusout`,B)},0)),se(f,n-l);let m=s===void 0?0:S.slice(l,n).reduce(F,0);if(d){let e=u>=k.value.from&&l<=k.value.to?k.value.to:u;k.value={from:l,to:e},C.value=R(x,S,0,l),w.value=R(x,S,u,a.value),requestAnimationFrame(()=>{k.value.to!==u&&_===t.scrollStart&&(k.value={from:k.value.from,to:u},w.value=R(x,S,u,a.value))})}requestAnimationFrame(()=>{if(_!==t.scrollStart)return;d&&z(l);let i=S.slice(l,n).reduce(F,0),a=i+t.offsetStart+C.value,c=a+S[n],u=a+r;if(s!==void 0){let e=i-m,r=t.scrollStart+e;u=!o&&r<a&&c<r+t.scrollViewSize?r:s===`end`?c-t.scrollViewSize:a-(s===`start`?0:Math.round((t.scrollViewSize-S[n])/2))}_=u,L(e,u,p.virtualScrollHorizontal,g.lang.rtl),ue(n)})}function z(e){let t=O.value;if(t){let n=P.call(t.children,e=>e.classList&&!e.classList.contains(`q-virtual-scroll--skip`)),r=n.length,i=p.virtualScrollHorizontal?e=>e.getBoundingClientRect().width:e=>e.offsetHeight,a=e,o,s;for(let e=0;e<r;){for(o=i(n[e]),e++;e<r&&n[e].classList.contains(`q-virtual-scroll--with-prev`);)o+=i(n[e]),e++;s=o-S[a],s!==0&&(S[a]+=s,x[Math.floor(a/M)]+=s),a++}}}function B(){O.value?.focus({preventScroll:!0})}function ce(e,t){let n=Number(f.value);(t||!Array.isArray(S))&&(S=[]);let r=S.length;S.length=a.value;for(let e=a.value-1;e>=r;e--)S[e]=n;let i=Math.floor((a.value-1)/M);x=[];for(let e=0;e<=i;e++){let t=0,n=Math.min((e+1)*M,a.value);for(let r=e*M;r<n;r++)t+=S[r];x.push(t)}v=-1,_=void 0,C.value=R(x,S,0,k.value.from),w.value=R(x,S,k.value.to,a.value),e>=0?(z(k.value.from),s(()=>{ie(e)})):de()}function V(e){if(e===void 0&&typeof window<`u`){let t=l();t!=null&&t.nodeType!==8&&(e=I(t,ee(),E.value,D.value,p.virtualScrollHorizontal,g.lang.rtl,p.virtualScrollStickySizeStart,p.virtualScrollStickySizeEnd).scrollViewSize)}y=e;let t=Number.parseFloat(p.virtualScrollSliceRatioBefore)||0,n=Number.parseFloat(p.virtualScrollSliceRatioAfter)||0,r=1+t+n,i=e===void 0||e<=0?1:Math.ceil(e/f.value),a=Math.max(1,i,Math.ceil((p.virtualScrollSliceSize>0?p.virtualScrollSliceSize:10)/r));T.value={total:Math.ceil(a*r),start:Math.ceil(a*t),center:Math.ceil(a*(.5+t)),end:Math.ceil(a*(1+t)),view:i}}function le(e,t){let n=p.virtualScrollHorizontal?`width`:`height`,r={[`--q-virtual-scroll-item-`+n]:f.value+`px`};return[e===`tbody`?d(e,{class:`q-virtual-scroll__padding`,key:`before`,ref:E},[d(`tr`,[d(`td`,{style:{[n]:`${C.value}px`,...r},colspan:A.value})])]):d(e,{class:`q-virtual-scroll__padding`,key:`before`,ref:E,style:{[n]:`${C.value}px`,...r}}),d(e,{class:`q-virtual-scroll__content`,key:`content`,ref:O,tabindex:-1},t.flat()),e===`tbody`?d(e,{class:`q-virtual-scroll__padding`,key:`after`,ref:D},[d(`tr`,[d(`td`,{style:{[n]:`${w.value}px`,...r},colspan:A.value})])]):d(e,{class:`q-virtual-scroll__padding`,key:`after`,ref:D,style:{[n]:`${w.value}px`,...r}})]}function ue(e){v!==e&&(p.onVirtualScroll!==void 0&&m(`virtualScroll`,{index:e,from:k.value.from,to:k.value.to-1,direction:e<v?`decrease`:`increase`,ref:h}),v=e)}V();let de=b(ae,g.platform.is.ios?120:35);r(()=>{V()});let fe=!1;return t(()=>{fe=!0}),i(()=>{if(!fe)return;let e=l();_!==void 0&&e!=null&&e.nodeType!==8?L(e,_,p.virtualScrollHorizontal,g.lang.rtl):ie(v)}),o(()=>{de.cancel()}),Object.assign(h,{scrollTo:ie,reset:ne,refresh:re}),{virtualScrollSliceRange:k,virtualScrollSliceSizeComputed:T,setVirtualScrollSize:V,onVirtualScrollEvt:de,localResetVirtualScroll:ce,padVirtualScroll:le,scrollTo:ie,reset:ne,refresh:re}}var V=g({name:`QField`,inheritAttrs:!1,props:{...D,tag:{type:String,default:`label`}},emits:C,setup(){return w(k({tagProp:!0}))}}),le=e=>[`add`,`add-unique`,`toggle`].includes(e),ue=".*+?^${}()|[]\\",de=Object.keys(D);function fe(e,t){if(typeof e==`function`)return e;let n=e===void 0?t:e;return e=>typeof e==`object`&&e&&n in e?e[n]:e}var pe=g({name:`QSelect`,inheritAttrs:!1,props:{...B,...x,...D,modelValue:{required:!0},multiple:Boolean,displayValue:[String,Number],displayValueHtml:Boolean,dropdownIcon:String,options:{type:Array,default:()=>[]},optionValue:[Function,String],optionLabel:[Function,String],optionDisable:[Function,String],hideSelected:Boolean,hideDropdownIcon:Boolean,fillInput:Boolean,maxValues:[Number,String],optionsDense:Boolean,optionsDark:{type:Boolean,default:null},optionsSelectedClass:String,optionsHtml:Boolean,optionsCover:Boolean,menuShrink:Boolean,menuAnchor:String,menuSelf:String,menuOffset:Array,popupContentClass:String,popupContentStyle:[String,Array,Object],popupNoRouteDismiss:Boolean,useInput:Boolean,useChips:Boolean,newValueMode:{type:String,validator:le},mapOptions:Boolean,emitValue:Boolean,disableTabSelection:Boolean,inputDebounce:{type:[Number,String],default:500},inputClass:[Array,String,Object],inputStyle:[Array,String,Object],tabindex:{type:[String,Number],default:0},autocomplete:String,transitionShow:{},transitionHide:{},transitionDuration:{},behavior:{type:String,validator:e=>[`default`,`menu`,`dialog`].includes(e),default:`default`},virtualScrollItemSize:B.virtualScrollItemSize.type,onNewValue:Function,onFilter:Function},emits:[...C,`add`,`remove`,`inputValue`,`keyup`,`keypress`,`keydown`,`popupShow`,`popupHide`,`filterAbort`],setup(t,{slots:r,emit:i}){let{proxy:f}=u(),{$q:g}=f,b=e(!1),x=e(!1),C=e(-1),D=e(``),j=e(!1),M=e(!1),N=null,P=null,se,F,I,L=null,R,z,B,pe,me=e(null),H=e(null),he=e(null),ge=e(null),_e=e(null),ve=S(t),ye=E(ut),U=n(()=>Array.isArray(t.options)?t.options.length:0),{virtualScrollSliceRange:be,virtualScrollSliceSizeComputed:xe,localResetVirtualScroll:Se,padVirtualScroll:Ce,onVirtualScrollEvt:we,scrollTo:Te,setVirtualScrollSize:Ee}=ce({virtualScrollLength:U,getVirtualScrollTarget:ot,getVirtualScrollEl:at,virtualScrollItemSizeComputed:n(()=>t.virtualScrollItemSize===void 0?t.optionsDense?24:48:t.virtualScrollItemSize)}),W=k(),G=n(()=>{let e=t.mapOptions&&!t.multiple,n=t.modelValue!==void 0&&(t.modelValue!==null||e)?t.multiple&&Array.isArray(t.modelValue)?t.modelValue:[t.modelValue]:[];if(t.mapOptions&&Array.isArray(t.options)){let r=t.mapOptions&&se!==void 0?se:[],i=n.map(e=>Qe(e,r));return t.modelValue===null&&e?i.filter(e=>e!==null):i}return n}),De=n(()=>{let e={};return de.forEach(n=>{let r=t[n];r!==void 0&&(e[n]=r)}),e}),Oe=n(()=>t.optionsDark===null?W.isDark.value:t.optionsDark),ke=n(()=>O(G.value)),Ae=n(()=>{let e=`q-field__input q-placeholder col`;return t.hideSelected||G.value.length===0?[e,t.inputClass]:(e+=` q-field__input--padding`,t.inputClass===void 0?e:[e,t.inputClass])}),je=n(()=>(t.virtualScrollHorizontal?`q-virtual-scroll--horizontal`:``)+(t.popupContentClass?` `+t.popupContentClass:``)),Me=n(()=>U.value===0),Ne=n(()=>G.value.map(e=>q.value(e)).join(`, `)),Pe=n(()=>t.displayValue===void 0?Ne.value:t.displayValue),Fe=n(()=>t.optionsHtml?()=>!0:e=>e?.html===!0),Ie=n(()=>t.displayValueHtml||t.displayValue===void 0&&(t.optionsHtml||G.value.some(Fe.value))),Le=n(()=>W.focused.value?t.tabindex:-1),Re=n(()=>{let e={tabindex:t.tabindex,role:`combobox`,"aria-label":t.label,"aria-readonly":t.readonly?`true`:`false`,"aria-autocomplete":t.useInput?`list`:`none`,"aria-expanded":b.value?`true`:`false`,"aria-controls":`${W.targetUid.value}_lb`};return C.value>=0&&(e[`aria-activedescendant`]=`${W.targetUid.value}_${C.value}`),e}),ze=n(()=>({id:`${W.targetUid.value}_lb`,role:`listbox`,"aria-multiselectable":t.multiple?`true`:`false`})),Be=n(()=>G.value.map((e,t)=>({index:t,opt:e,html:Fe.value(e),selected:!0,removeAtIndex:Ye,toggleOption:Y,tabindex:Le.value}))),Ve=n(()=>{if(U.value===0)return[];let{from:e,to:n}=be.value;return t.options.slice(e,n).map((n,r)=>{let i=J.value(n)===!0,a=$e(n),o=e+r,s={clickable:!0,active:a,activeClass:We.value,manualFocus:!0,focused:!1,disable:i,tabindex:-1,dense:t.optionsDense,dark:Oe.value,role:`option`,"aria-selected":a?`true`:`false`,id:`${W.targetUid.value}_${o}`,onClick:()=>{Y(n)}};return i||(C.value===o&&(s.focused=!0),g.platform.is.desktop&&(s.onMousemove=()=>{b.value&&X(o)})),{index:o,opt:n,html:Fe.value(n),label:q.value(n),selected:s.active,focused:s.focused,toggleOption:Y,setOptionIndex:X,itemProps:s}})}),He=n(()=>t.dropdownIcon===void 0?g.iconSet.arrow.dropdown:t.dropdownIcon),Ue=n(()=>!t.optionsCover&&!t.outlined&&!t.standout&&!t.borderless&&!t.rounded),We=n(()=>t.optionsSelectedClass===void 0?t.color===void 0?``:`text-${t.color}`:t.optionsSelectedClass),K=n(()=>fe(t.optionValue,`value`)),q=n(()=>fe(t.optionLabel,`label`)),J=n(()=>fe(t.optionDisable,`disable`)),Ge=n(()=>G.value.map(K.value)),Ke=n(()=>{let e={onInput:ut,onChange:ye,onKeydown:it,onKeyup:nt,onKeypress:rt,onFocus:et,onClick(e){F&&h(e)}};return e.onCompositionstart=e.onCompositionupdate=e.onCompositionend=ye,e});c(G,e=>{se=e,t.useInput&&t.fillInput&&!t.multiple&&!W.innerLoading.value&&(!x.value&&!b.value||!ke.value)&&(I||Ct(),(x.value||b.value)&&Z(``))},{immediate:!0}),c(()=>t.fillInput,Ct),c(b,wt),c(U,Tt);function qe(e){return t.emitValue?K.value(e):e}function Je(e){if(e!==-1&&e<G.value.length){if(t.multiple){let n=[...t.modelValue];i(`remove`,{index:e,value:n.splice(e,1)[0]}),i(`update:modelValue`,n)}else i(`update:modelValue`,null)}}function Ye(e){Je(e),W.focus()}function Xe(e,n){let r=qe(e);if(!t.multiple){t.fillInput&&ft(q.value(e),!0,!0),i(`update:modelValue`,r);return}if(G.value.length===0){i(`add`,{index:0,value:r}),i(`update:modelValue`,t.multiple?[r]:r);return}if(n&&$e(e)||t.maxValues!==void 0&&t.modelValue.length>=t.maxValues)return;let a=[...t.modelValue];i(`add`,{index:a.length,value:r}),a.push(r),i(`update:modelValue`,a)}function Y(e,n){if(!W.editable.value||e===void 0||J.value(e)===!0)return;let r=K.value(e);if(!t.multiple){n||(ft(t.fillInput?q.value(e):``,!0,!0),$()),H.value?.focus(),(G.value.length===0||!A(K.value(G.value[0]),r))&&i(`update:modelValue`,t.emitValue?r:e);return}if((!F||j.value)&&W.focus(),et(),G.value.length===0){let n=t.emitValue?r:e;i(`add`,{index:0,value:n}),i(`update:modelValue`,t.multiple?[n]:n);return}let a=[...t.modelValue],o=Ge.value.findIndex(e=>A(e,r));if(o!==-1)i(`remove`,{index:o,value:a.splice(o,1)[0]});else{if(t.maxValues!==void 0&&a.length>=t.maxValues)return;let n=t.emitValue?r:e;i(`add`,{index:a.length,value:n}),a.push(n)}i(`update:modelValue`,a)}function X(e){if(!g.platform.is.desktop)return;let t=e!==-1&&e<U.value?e:-1;C.value!==t&&(C.value=t)}function Ze(e=1,n){if(b.value){let r=C.value;do r=te(r+e,-1,U.value-1);while(r!==-1&&r!==C.value&&J.value(t.options[r])===!0);C.value!==r&&(X(r),Te(r),!n&&t.useInput&&t.fillInput&&dt(r>=0?q.value(t.options[r]):R,!0))}}function Qe(e,n){let r=t=>A(K.value(t),e);return t.options.find(r)||n.find(r)||e}function $e(e){let t=K.value(e);return Ge.value.find(e=>A(e,t))!==void 0}function et(e){t.useInput&&H.value!==null&&(e===void 0||H.value===e.target&&e.target.value===Ne.value)&&H.value.select()}function tt(e){p(e,27)&&b.value&&(h(e),$(),Ct()),i(`keyup`,e)}function nt(e){let{value:n}=e.target;if(e.keyCode!==void 0){tt(e);return}if(e.target.value=``,N!==null&&(clearTimeout(N),N=null),P!==null&&(clearTimeout(P),P=null),Ct(),typeof n==`string`&&n.length!==0){let e=n.toLocaleLowerCase(),r=n=>{let r=t.options.find(t=>String(n.value(t)).toLocaleLowerCase()===e);return r!==void 0&&(G.value.includes(r)?$():Y(r),!0)},i=e=>{!r(K)&&!e&&!r(q)&&Z(n,!0,()=>i(!0))};i()}else W.clearValue(e)}function rt(e){i(`keypress`,e)}function it(e){if(i(`keydown`,e),ee(e))return;let n=D.value.length!==0&&(t.newValueMode!==void 0||t.onNewValue!==void 0),r=!e.shiftKey&&!t.disableTabSelection&&!t.multiple&&(C.value!==-1||n);if(e.keyCode===27){y(e);return}if(e.keyCode===9&&!r){Q();return}if(e.target===void 0||e.target.id!==W.targetUid.value||!W.editable.value)return;if(e.keyCode===40&&!W.innerLoading.value&&!b.value){m(e),St();return}if(e.keyCode===8&&(t.useChips||t.clearable)&&!t.hideSelected&&D.value.length===0){t.multiple&&Array.isArray(t.modelValue)?Je(t.modelValue.length-1):!t.multiple&&t.modelValue!==null&&i(`update:modelValue`,null);return}(e.keyCode===35||e.keyCode===36)&&(typeof D.value!=`string`||D.value.length===0)&&(m(e),C.value=-1,Ze(e.keyCode===36?1:-1,t.multiple)),(e.keyCode===33||e.keyCode===34)&&xe.value!==void 0&&(m(e),C.value=Math.max(-1,Math.min(U.value,C.value+(e.keyCode===33?-1:1)*xe.value.view)),Ze(e.keyCode===33?1:-1,t.multiple)),(e.keyCode===38||e.keyCode===40)&&(m(e),Ze(e.keyCode===38?-1:1,t.multiple));let a=U.value;if((B===void 0||pe<Date.now())&&(B=``),a>0&&!t.useInput&&e.key!==void 0&&e.key.length===1&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&(e.keyCode!==32||B.length!==0)){b.value||St(e);let n=e.key.toLocaleLowerCase(),r=B.length===1&&B[0]===n;pe=Date.now()+1500,r||(m(e),B+=n);let i=RegExp(`^`+[...B].map(e=>ue.includes(e)?`\\`+e:e).join(`.*`),`i`),o=C.value;if(r||o<0||!i.test(q.value(t.options[o])))do o=te(o+1,-1,a-1);while(o!==C.value&&(J.value(t.options[o])===!0||!i.test(q.value(t.options[o]))));C.value!==o&&s(()=>{X(o),Te(o),o>=0&&t.useInput&&t.fillInput&&dt(q.value(t.options[o]),!0)});return}if(!(e.keyCode!==13&&(e.keyCode!==32||t.useInput||B!==``)&&(e.keyCode!==9||!r))){if(e.keyCode!==9&&m(e),C.value!==-1&&C.value<a){Y(t.options[C.value]);return}if(n){let e=(e,n)=>{if(n){if(!le(n))return}else n=t.newValueMode;ft(``,!t.multiple,!0),e!=null&&((n===`toggle`?Y:Xe)(e,n===`add-unique`),t.multiple||(H.value?.focus(),$()))};if(t.onNewValue===void 0?e(D.value):i(`newValue`,D.value,e),!t.multiple)return}b.value?Q():W.innerLoading.value||St()}}function at(){return F?_e.value:he.value!==null&&he.value.contentEl!==null?he.value.contentEl:void 0}function ot(){return at()}function st(){return t.hideSelected?[]:r[`selected-item`]===void 0?r.selected===void 0?t.useChips?Be.value.map((e,n)=>d(oe,{key:`option-`+n,removable:W.editable.value&&J.value(e.opt)!==!0,dense:!0,textColor:t.color,tabindex:Le.value,onRemove(){e.removeAtIndex(n)}},()=>d(`span`,{class:`ellipsis`,[e.html?`innerHTML`:`textContent`]:q.value(e.opt)}))):[d(`span`,{class:`ellipsis`,[Ie.value?`innerHTML`:`textContent`]:Pe.value})]:[r.selected()].flat():Be.value.map(e=>r[`selected-item`](e))}function ct(){if(Me.value)return r[`no-option`]===void 0?void 0:r[`no-option`]({inputValue:D.value});let e=r.option===void 0?e=>d(ie,{key:e.index,...e.itemProps},()=>d(ae,()=>d(re,()=>d(`span`,{[e.html?`innerHTML`:`textContent`]:e.label})))):r.option,t=Ce(`div`,Ve.value.map(e));return r[`before-options`]!==void 0&&(t=[r[`before-options`](),...t].flat()),_(r[`after-options`],t)}function lt(e,n){let r=n?{...Re.value,...W.splitAttrs.attributes.value}:void 0,i={ref:n?H:void 0,key:`i_t`,class:Ae.value,style:t.inputStyle,value:D.value===void 0?``:D.value,type:`search`,...r,id:n?W.targetUid.value:void 0,maxlength:t.maxlength,autocomplete:t.autocomplete,"data-autofocus":e===!0||t.autofocus||void 0,disabled:t.disable,readonly:t.readonly,...Ke.value};return!e&&F&&(Array.isArray(i.class)?i.class=[...i.class,`no-pointer-events`]:i.class+=` no-pointer-events`),d(`input`,i)}function ut(e){N!==null&&(clearTimeout(N),N=null),P!==null&&(clearTimeout(P),P=null),!e?.target?.qComposing&&(dt(e.target.value||``),I=!0,R=D.value,!W.focused.value&&(!F||j.value)&&W.focus(),t.onFilter!==void 0&&(N=setTimeout(()=>{N=null,Z(D.value)},t.inputDebounce)))}function dt(e,n){D.value!==e&&(P!==null&&(clearTimeout(P),P=null),D.value=e,n||t.inputDebounce===0||t.inputDebounce===`0`?i(`inputValue`,e):P=setTimeout(()=>{P=null,i(`inputValue`,e)},t.inputDebounce))}function ft(e,n,r){I=r!==!0,t.useInput&&(dt(e,!0),(n||I)&&(R=e),n||Z(e))}function Z(e,n,r){if(t.onFilter===void 0||!n&&!W.focused.value)return;W.innerLoading.value?i(`filterAbort`):(W.innerLoading.value=!0,M.value=!0),e!==``&&!t.multiple&&G.value.length!==0&&!I&&e===q.value(G.value[0])&&(e=``);let a=setTimeout(()=>{b.value&&=!1},10);L!==null&&clearTimeout(L),L=a,i(`filter`,e,(e,t)=>{(n||W.focused.value)&&L===a&&(clearTimeout(L),typeof e==`function`&&e(),M.value=!1,s(()=>{W.innerLoading.value=!1,W.editable.value&&(n?b.value&&$():b.value?wt(!0):b.value=!0),typeof t==`function`&&s(()=>{t(f)}),typeof r==`function`&&s(()=>{r(f)})}))},()=>{W.focused.value&&L===a&&(clearTimeout(L),W.innerLoading.value=!1,M.value=!1),b.value&&=!1})}function pt(){return d(ne,{ref:he,class:je.value,style:t.popupContentStyle,modelValue:b.value,fit:!t.menuShrink,cover:t.optionsCover&&!Me.value&&!t.useInput,anchor:t.menuAnchor,self:t.menuSelf,offset:t.menuOffset,dark:Oe.value,noParentEvent:!0,noRefocus:!0,noFocus:!0,noRouteDismiss:t.popupNoRouteDismiss,square:Ue.value,transitionShow:t.transitionShow,transitionHide:t.transitionHide,transitionDuration:t.transitionDuration,separateClosePopup:!0,...ze.value,onScrollPassive:we,onBeforeShow:Dt,onBeforeHide:mt,onShow:ht},ct)}function mt(e){Ot(e),Q()}function ht(){Ee()}function gt(e){h(e),H.value?.focus(),j.value=!0,window.scrollTo(window.pageXOffset||window.scrollX||document.body.scrollLeft||0,0)}function _t(e){h(e),s(()=>{j.value=!1})}function vt(){let e=[d(V,{class:`col-auto ${W.fieldClass.value}`,...De.value,for:W.targetUid.value,dark:Oe.value,square:!0,loading:M.value,itemAligned:!1,filled:!0,stackLabel:D.value.length!==0,...W.splitAttrs.listeners.value,onFocus:gt,onBlur:_t},{...r,rawControl:()=>W.getControl(!0),before:void 0,after:void 0})];return b.value&&e.push(d(`div`,{ref:_e,class:je.value+` scroll`,style:t.popupContentStyle,...ze.value,onClick:y,onScrollPassive:we},ct())),d(T,{ref:ge,modelValue:x.value,position:t.useInput?`top`:void 0,transitionShow:z,transitionHide:t.transitionHide,transitionDuration:t.transitionDuration,noRouteDismiss:t.popupNoRouteDismiss,onBeforeShow:Dt,onBeforeHide:yt,onHide:bt,onShow:xt},()=>d(`div`,{class:`q-select__dialog`+(Oe.value?` q-select__dialog--dark q-dark`:``)+(j.value?` q-select__dialog--focused`:``)},e))}function yt(e){Ot(e),ge.value!==null&&ge.value.__updateRefocusTarget(W.rootRef.value.querySelector(`.q-field__native > [tabindex]:last-child`)),W.focused.value=!1}function bt(e){$(),W.focused.value||i(`blur`,e),Ct()}function xt(){let e=document.activeElement;(e===null||e.id!==W.targetUid.value)&&H.value!==null&&H.value!==e&&H.value.focus(),Ee()}function Q(){x.value||(C.value=-1,b.value&&=!1,W.focused.value||(L!==null&&(clearTimeout(L),L=null),W.innerLoading.value&&(i(`filterAbort`),W.innerLoading.value=!1,M.value=!1)))}function St(e){W.editable.value&&(F?(W.onControlFocusin(e),x.value=!0,s(()=>{W.focus()})):W.focus(),t.onFilter===void 0?(!Me.value||r[`no-option`]!==void 0)&&(b.value=!0):Z(D.value))}function $(){x.value=!1,Q()}function Ct(){t.useInput&&ft(!t.multiple&&t.fillInput&&G.value.length!==0&&q.value(G.value[0])||``,!0,!0)}function wt(e){let n=-1;if(e){if(G.value.length!==0){let e=K.value(G.value[0]);n=t.options.findIndex(t=>A(K.value(t),e))}Se(n)}X(n)}function Tt(e,t){b.value&&!W.innerLoading.value&&(Se(-1,!0),s(()=>{b.value&&!W.innerLoading.value&&(e>t?Se():wt(!0))}))}function Et(){x.value||he.value?.updatePosition()}function Dt(e){e!==void 0&&h(e),i(`popupShow`,e),W.hasPopupOpen=!0,W.onControlFocusin(e)}function Ot(e){e!==void 0&&h(e),i(`popupHide`,e),W.hasPopupOpen=!1,W.onControlFocusout(e)}function kt(){F=!g.platform.is.mobile&&t.behavior!==`dialog`?!1:t.behavior!==`menu`&&(!t.useInput||r[`no-option`]!==void 0||t.onFilter!==void 0||!Me.value),z=g.platform.is.ios&&F&&t.useInput?`fade`:t.transitionShow}return l(kt),a(Et),kt(),o(()=>{N!==null&&clearTimeout(N),P!==null&&clearTimeout(P)}),Object.assign(f,{showPopup:St,hidePopup:$,removeAtIndex:Je,add:Xe,toggleOption:Y,getOptionIndex:()=>C.value,setOptionIndex:X,moveOptionSelection:Ze,filter:Z,updateMenuPosition:Et,updateInputValue:ft,isOptionSelected:$e,getEmittingOptionValue:qe,isOptionDisabled:(...e)=>J.value(...e)===!0,getOptionValue:(...e)=>K.value(...e),getOptionLabel:(...e)=>q.value(...e)}),Object.assign(W,{innerValue:G,fieldClass:n(()=>`q-select q-field--auto-height q-select--with${t.useInput?``:`out`}-input q-select--with${t.useChips?``:`out`}-chips q-select--${t.multiple?`multiple`:`single`}`),inputRef:me,targetRef:H,hasValue:ke,showPopup:St,floatingLabel:n(()=>!t.hideSelected&&ke.value||typeof D.value==`number`||D.value.length!==0||O(t.displayValue)),getControlChild:()=>{if(W.editable.value&&(x.value||!Me.value||r[`no-option`]!==void 0))return F?vt():pt();W.hasPopupOpen&&=!1},controlEvents:{onFocusin(e){W.onControlFocusin(e)},onFocusout(e){W.onControlFocusout(e,()=>{Ct(),Q()})},onClick(e){if(y(e),!F&&b.value){Q(),H.value?.focus();return}St(e)}},getControl:e=>{let n=st(),r=e===!0||!x.value||!F;if(t.useInput)n.push(lt(e,r));else if(W.editable.value){let i=r?Re.value:void 0;n.push(d(`input`,{ref:r?H:void 0,key:`d_t`,class:`q-select__focus-target`,id:r?W.targetUid.value:void 0,value:Pe.value,readonly:!0,"data-autofocus":e===!0||t.autofocus||void 0,...i,onKeydown:it,onKeyup:tt,onKeypress:rt})),r&&typeof t.autocomplete==`string`&&t.autocomplete.length!==0&&n.push(d(`input`,{class:`q-select__autocomplete-input`,autocomplete:t.autocomplete,tabindex:-1,onKeyup:nt}))}if(ve.value!==void 0&&!t.disable&&Ge.value.length!==0){let e=Ge.value.map(e=>d(`option`,{value:e,selected:!0}));n.push(d(`select`,{class:`hidden`,name:ve.value,multiple:t.multiple},e))}let i=t.useInput||!r?void 0:W.splitAttrs.attributes.value;return d(`div`,{class:`q-field__native row items-center`,...i,...W.splitAttrs.listeners.value},n)},getInnerAppend:()=>!t.loading&&!M.value&&!t.hideDropdownIcon?[d(v,{class:`q-select__dropdown-icon`+(b.value?` rotate-180`:``),name:He.value})]:null}),w(W)}});export{B as i,V as n,ce as r,pe as t};
@@ -1 +0,0 @@
1
- import{Ot as e,t,ut as n}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{Z as r}from"./QBtn-B7WFdfmy.js";var i=r({name:`QSlideTransition`,props:{appear:Boolean,duration:{type:Number,default:300}},emits:[`show`,`hide`],setup(r,{slots:i,emit:a}){let o=!1,s,c,l=null,u=null,d,f;function p(){s?.(),s=null,o=!1,l!==null&&(clearTimeout(l),l=null),u!==null&&(clearTimeout(u),u=null),c?.removeEventListener(`transitionend`,d),d=null}function m(e,t,n){t!==void 0&&(e.style.height=`${t}px`),e.style.transition=`height ${r.duration}ms cubic-bezier(.25, .8, .50, 1)`,o=!0,s=n}function h(e,t){e.style.overflowY=null,e.style.height=null,e.style.transition=null,p(),t!==f&&a(t)}function g(e,t){let n=0;c=e,o?(p(),n=e.offsetHeight===e.scrollHeight?0:void 0):(f=`hide`,e.style.overflowY=`hidden`),m(e,n,t),l=setTimeout(()=>{l=null,e.style.height=`${e.scrollHeight}px`,d=t=>{(Object(t)!==t||t.target===e)&&h(e,`show`)},e.addEventListener(`transitionend`,d),u=setTimeout(d,r.duration*1.1)},100)}function _(e,t){let n;c=e,o?p():(f=`show`,e.style.overflowY=`hidden`,n=e.scrollHeight),m(e,n,t),l=setTimeout(()=>{l=null,e.style.height=0,d=t=>{(Object(t)!==t||t.target===e)&&h(e,`hide`)},e.addEventListener(`transitionend`,d),u=setTimeout(d,r.duration*1.1)},100)}return e(()=>{o&&p()}),()=>n(t,{css:!1,appear:r.appear,onEnter:g,onLeave:_},i.default)}});export{i as t};
@@ -1 +0,0 @@
1
- import{n as e}from"./vue-i18n-C3W5i7h6.js";import{B as t,C as n,wt as r}from"./reactivity.esm-bundler-DtSZKRQB.js";import{$ as i,A as a,B as o,H as s,Rt as c,U as l,V as u,W as d,Wt as ee,X as te,Z as f,_n as p,fn as ne}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{l as m,t as h}from"./QBtn-B7WFdfmy.js";import{_t as g,ht as _,m as re,s as ie,tt as v}from"./index-Dv1p-1sA.js";import{t as ae}from"./QSelect-D9bHHxAA.js";import{t as oe}from"./QExpansionItem-C8CWo-aP.js";import{i as y,r as se}from"./layout-nWIyHeJf.js";import{t as ce}from"./QBadge-BgS0-MXB.js";import{t as le}from"./QChip-BzB_GF4Z.js";import{t as b}from"./QBtnToggle-eMu_yinY.js";function ue(e,t){let n=Math.max(1,Math.floor(t));switch(e){case`minutes`:return`*/${n} * * * *`;case`hours`:return`0 */${n} * * *`;case`days`:return`0 0 */${n} * *`}}function de(e){return Math.max(1,Math.floor(e))>1}var fe={class:`column q-pa-md q-gutter-lg`},pe={class:`row items-center no-wrap q-gutter-sm`},me={class:`schedule-header__icon`},he={class:`text-subtitle1 text-weight-medium`},ge={class:`text-caption text-kobo-3`},_e={class:`row items-center justify-between q-mb-sm`},ve={class:`text-subtitle2`},ye={class:`text-body2 text-weight-medium`},be={class:`text-caption text-kobo-3`},xe={key:1,class:`column q-gutter-sm`},Se={class:`row items-start no-wrap q-gutter-sm`},x={class:`schedule-item__icon schedule-item__icon--wakeup`},S={class:`col min-width-zero`},C={class:`text-caption text-kobo-3`},w={class:`text-body2 text-weight-medium`},T={key:0,class:`prompt-preview schedule-item__prompt`},E={class:`row items-start no-wrap q-gutter-sm`},D={class:`schedule-item__icon schedule-item__icon--cron`},O={class:`col min-width-zero`},k={class:`text-body2 text-weight-medium ellipsis`},A={class:`text-caption text-kobo-3`},j={class:`row items-center q-gutter-xs q-mt-sm`},Ce={key:0,class:`text-caption text-kobo-3`},we={class:`prompt-preview schedule-item__prompt`},Te={class:`row items-center justify-between q-mb-sm`},Ee={class:`text-subtitle2`},De={class:`text-caption text-kobo-3`},Oe={class:`text-body2 text-weight-medium`},ke={class:`text-caption text-kobo-3`},Ae={class:`column q-gutter-y-xs`},je={class:`field-label`},Me={class:`text-body2 text-weight-medium`},Ne={class:`text-caption text-kobo-3`},Pe={class:`column q-gutter-y-xs`},Fe={class:`field-label`},Ie={class:`row items-center no-wrap q-gutter-sm`},Le={class:`text-body2 text-kobo-2`},Re={key:0,class:`text-caption text-warning`},ze={class:`column q-gutter-y-xs`},Be={class:`field-label`},Ve={class:`one-shot-option row items-center justify-between no-wrap q-pa-sm`},He={class:`text-body2`},Ue={class:`text-caption text-kobo-3`},M=y(i({__name:`SchedulePanel`,props:{workspaceId:{}},setup(i){let y=i,{t:M}=e(),N=se(),P=re(),F=o(()=>P.pendingWakeups[y.workspaceId]??null),I=o(()=>P.crons[y.workspaceId]??[]),L=o(()=>I.value.length+ +!!F.value);ne(()=>y.workspaceId,e=>{e&&P.fetchCrons(e)},{immediate:!0});function R(e){return new Date(e).toLocaleString(void 0,{weekday:`short`,day:`numeric`,month:`short`,hour:`2-digit`,minute:`2-digit`})}function We(e){let t=Date.now()-new Date(e).getTime();if(Number.isNaN(t)||t<0)return`—`;let n=new Intl.RelativeTimeFormat(void 0,{numeric:`auto`}),r=Math.floor(t/1e3);if(r<60)return n.format(-r,`second`);let i=Math.floor(r/60);if(i<60)return n.format(-i,`minute`);let a=Math.floor(i/60);return a<24?n.format(-a,`hour`):n.format(-Math.floor(a/24),`day`)}async function Ge(){try{let e=await fetch(`/api/workspaces/${y.workspaceId}/pending-wakeup`,{method:`DELETE`});if(!e.ok)throw Error(`HTTP ${e.status}`)}catch(e){N.notify({type:`negative`,message:String(e),position:`top`,timeout:4e3})}}async function Ke(e){try{await P.cancelCron(y.workspaceId,e)}catch(e){N.notify({type:`negative`,message:String(e),position:`top`,timeout:4e3})}}let z=n(`wakeup`),B=n(15),V=n(`minutes`),H=n(``),U=n(``),W=n(``),G=n(`fresh`),K=n(!1),q=n(!1),qe=o(()=>[{label:M(`schedule.typeWakeup`),value:`wakeup`,icon:`alarm`},{label:M(`schedule.typeRecurring`),value:`cron`,icon:`event_repeat`}]),J=o(()=>[{label:M(`schedule.modeFresh`),value:`fresh`,icon:`add_comment`},{label:M(`schedule.modeResume`),value:`resume`,icon:`history`}]),Je=o(()=>[{label:M(`schedule.unitMinutes`),value:`minutes`},{label:M(`schedule.unitHours`),value:`hours`},{label:M(`schedule.unitDays`),value:`days`}]);async function Y(){if(!(!U.value.trim()||q.value)){q.value=!0;try{let e=H.value.trim()||ue(V.value,B.value);await P.createCron(y.workspaceId,{expression:e,prompt:U.value,label:W.value.trim()||void 0,mode:G.value,oneShot:K.value}),U.value=``,W.value=``,H.value=``,N.notify({type:`positive`,message:M(`schedule.cronCreated`),position:`top`,timeout:2500})}catch(e){N.notify({type:`negative`,message:String(e instanceof Error?e.message:e),position:`top`,timeout:5e3})}finally{q.value=!1}}}let X=n(15),Z=n(``),Q=n(`fresh`),$=n(!1);async function Ye(){if(!(!Z.value.trim()||!(X.value>0)||$.value)){$.value=!0;try{await P.scheduleManualWakeup(y.workspaceId,{delaySeconds:Math.round(X.value*60),prompt:Z.value,mode:Q.value}),Z.value=``,N.notify({type:`positive`,message:M(`schedule.wakeupCreated`),position:`top`,timeout:2500})}catch(e){N.notify({type:`negative`,message:String(e instanceof Error?e.message:e),position:`top`,timeout:5e3})}finally{$.value=!1}}}return(e,n)=>(c(),d(`div`,fe,[u(`header`,pe,[u(`div`,me,[f(m,{name:`calendar_month`,size:`22px`})]),u(`div`,null,[u(`div`,he,r(e.$t(`schedule.panelTitle`)),1),u(`div`,ge,r(e.$t(`schedule.panelDescription`)),1)])]),u(`section`,null,[u(`div`,_e,[u(`div`,ve,r(e.$t(`schedule.activeTitle`)),1),L.value>0?(c(),s(ce,{key:0,rounded:``,color:`primary`,label:L.value},null,8,[`label`])):l(``,!0)]),L.value===0?(c(),s(_,{key:0,dark:``,flat:``,bordered:``,class:`empty-state row items-center q-gutter-sm q-pa-md`},{default:p(()=>[f(m,{name:`event_available`,size:`24px`,color:`kobo-3`}),u(`div`,null,[u(`div`,ye,r(e.$t(`schedule.emptyTitle`)),1),u(`div`,be,r(e.$t(`schedule.emptyDescription`)),1)])]),_:1})):(c(),d(`div`,xe,[F.value?(c(),s(_,{key:0,dark:``,flat:``,bordered:``,class:`schedule-item schedule-item--wakeup`},{default:p(()=>[f(g,null,{default:p(()=>[u(`div`,Se,[u(`div`,x,[f(m,{name:`alarm`,size:`18px`})]),u(`div`,S,[u(`div`,C,r(e.$t(`schedule.wakeupTitle`)),1),u(`div`,w,r(R(F.value.targetAt)),1)]),f(h,{flat:``,dense:``,round:``,icon:`delete_outline`,size:`sm`,color:`kobo-2`,title:e.$t(`schedule.cancelWakeup`),onClick:Ge},null,8,[`title`])]),F.value.reason?(c(),d(`div`,T,r(F.value.reason),1)):l(``,!0)]),_:1})]),_:1})):l(``,!0),(c(!0),d(a,null,ee(I.value,t=>(c(),s(_,{key:t.id,dark:``,flat:``,bordered:``,class:`schedule-item`},{default:p(()=>[f(g,null,{default:p(()=>[u(`div`,E,[u(`div`,D,[f(m,{name:`event_repeat`,size:`18px`})]),u(`div`,O,[u(`div`,k,r(t.label||t.expression),1),u(`div`,A,r(e.$t(`schedule.nextFireAt`,{time:R(t.nextFireAt)})),1)]),f(h,{flat:``,dense:``,round:``,icon:`delete_outline`,size:`sm`,color:`kobo-2`,title:e.$t(`schedule.cancelCron`),onClick:e=>Ke(t.id)},null,8,[`title`,`onClick`])]),u(`div`,j,[f(le,{dense:``,square:``,color:`blue-grey-9`,"text-color":`kobo-2`,size:`sm`},{default:p(()=>[te(r(t.expression),1)]),_:2},1024),t.lastFiredAt?(c(),d(`span`,Ce,r(e.$t(`schedule.lastFiredAt`,{time:We(t.lastFiredAt)})),1)):l(``,!0)]),u(`div`,we,r(t.prompt),1)]),_:2},1024)]),_:2},1024))),128))]))]),u(`section`,null,[u(`div`,Te,[u(`div`,null,[u(`div`,Ee,r(e.$t(`schedule.createTitle`)),1),u(`div`,De,r(e.$t(`schedule.createDescription`)),1)])]),f(_,{dark:``,flat:``,bordered:``,class:`create-card`},{default:p(()=>[f(b,{modelValue:z.value,"onUpdate:modelValue":n[0]||=e=>z.value=e,spread:``,"no-caps":``,unelevated:``,"toggle-color":`primary`,color:`blue-grey-10`,"text-color":`kobo-2`,options:qe.value,class:`type-toggle`},null,8,[`modelValue`,`options`]),z.value===`wakeup`?(c(),s(g,{key:0,class:`column q-gutter-y-md`},{default:p(()=>[u(`div`,null,[u(`div`,Oe,r(e.$t(`schedule.addWakeupTitle`)),1),u(`div`,ke,r(e.$t(`schedule.wakeupDescription`)),1)]),f(v,{modelValue:X.value,"onUpdate:modelValue":n[1]||=e=>X.value=e,modelModifiers:{number:!0},type:`number`,dense:``,dark:``,outlined:``,min:`1`,label:e.$t(`schedule.delayMinutes`)},{prepend:p(()=>[f(m,{name:`timer`,size:`18px`})]),_:1},8,[`modelValue`,`label`]),f(v,{modelValue:Z.value,"onUpdate:modelValue":n[2]||=e=>Z.value=e,type:`textarea`,autogrow:``,dense:``,dark:``,outlined:``,label:e.$t(`schedule.promptLabel`),hint:e.$t(`schedule.promptHint`)},null,8,[`modelValue`,`label`,`hint`]),u(`div`,Ae,[u(`div`,je,r(e.$t(`schedule.sessionModeTitle`)),1),f(b,{modelValue:Q.value,"onUpdate:modelValue":n[3]||=e=>Q.value=e,spread:``,"no-caps":``,unelevated:``,"toggle-color":`blue-grey-7`,color:`transparent`,"text-color":`kobo-2`,options:J.value,class:`session-toggle`},null,8,[`modelValue`,`options`])]),f(h,{"no-caps":``,unelevated:``,color:`primary`,icon:`alarm_add`,loading:$.value,disable:!Z.value.trim()||!(X.value>0),label:e.$t(`schedule.addWakeupBtn`),class:`full-width action-button`,onClick:Ye},null,8,[`loading`,`disable`,`label`])]),_:1})):(c(),s(g,{key:1,class:`column q-gutter-y-md`},{default:p(()=>[u(`div`,null,[u(`div`,Me,r(e.$t(`schedule.addCronTitle`)),1),u(`div`,Ne,r(e.$t(`schedule.cronDescription`)),1)]),f(v,{modelValue:W.value,"onUpdate:modelValue":n[4]||=e=>W.value=e,dense:``,dark:``,outlined:``,label:e.$t(`schedule.labelOptional`)},null,8,[`modelValue`,`label`]),u(`div`,Pe,[u(`div`,Fe,r(e.$t(`schedule.frequencyTitle`)),1),u(`div`,Ie,[u(`span`,Le,r(e.$t(`schedule.every`)),1),f(v,{modelValue:B.value,"onUpdate:modelValue":n[5]||=e=>B.value=e,modelModifiers:{number:!0},type:`number`,dense:``,dark:``,outlined:``,min:`1`,class:`frequency-value`},null,8,[`modelValue`]),f(ae,{modelValue:V.value,"onUpdate:modelValue":n[6]||=e=>V.value=e,options:Je.value,dense:``,dark:``,outlined:``,"options-dense":``,"emit-value":``,"map-options":``,class:`col min-width-zero`},null,8,[`modelValue`,`options`])]),V.value===`days`&&t(de)(B.value)?(c(),d(`div`,Re,r(e.$t(`schedule.daysDriftWarning`)),1)):l(``,!0)]),f(v,{modelValue:U.value,"onUpdate:modelValue":n[7]||=e=>U.value=e,type:`textarea`,autogrow:``,dense:``,dark:``,outlined:``,label:e.$t(`schedule.promptLabel`),hint:e.$t(`schedule.promptHint`)},null,8,[`modelValue`,`label`,`hint`]),f(oe,{dense:``,"dense-toggle":``,"switch-toggle-side":``,icon:`code`,label:e.$t(`schedule.advancedExpression`),caption:e.$t(`schedule.advancedDescription`),class:`advanced-section`},{default:p(()=>[f(v,{modelValue:H.value,"onUpdate:modelValue":n[8]||=e=>H.value=e,dense:``,dark:``,outlined:``,label:e.$t(`schedule.cronExpressionLabel`),hint:e.$t(`schedule.advancedHint`),class:`q-mt-sm`},null,8,[`modelValue`,`label`,`hint`])]),_:1},8,[`label`,`caption`]),u(`div`,ze,[u(`div`,Be,r(e.$t(`schedule.sessionModeTitle`)),1),f(b,{modelValue:G.value,"onUpdate:modelValue":n[9]||=e=>G.value=e,spread:``,"no-caps":``,unelevated:``,"toggle-color":`blue-grey-7`,color:`transparent`,"text-color":`kobo-2`,options:J.value,class:`session-toggle`},null,8,[`modelValue`,`options`])]),u(`div`,Ve,[u(`div`,null,[u(`div`,He,r(e.$t(`schedule.oneShot`)),1),u(`div`,Ue,r(e.$t(`schedule.oneShotHint`)),1)]),f(ie,{modelValue:K.value,"onUpdate:modelValue":n[10]||=e=>K.value=e,dense:``},null,8,[`modelValue`])]),f(h,{"no-caps":``,unelevated:``,color:`primary`,icon:`add_task`,loading:q.value,disable:!U.value.trim(),label:e.$t(`schedule.addCronBtn`),class:`full-width action-button`,onClick:Y},null,8,[`loading`,`disable`,`label`])]),_:1}))]),_:1})])]))}}),[[`__scopeId`,`data-v-127c3cf8`]]);export{M as default};