@loicngr/kobo 1.11.16 → 1.11.18

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 (175) hide show
  1. package/AGENTS.md +1 -1
  2. package/CHANGELOG.md +13 -0
  3. package/dist/mcp-server/kobo-tasks-server.js +8 -7
  4. package/dist/server/db/migrations.js +57 -0
  5. package/dist/server/db/schema.js +10 -39
  6. package/dist/server/index.js +55 -7
  7. package/dist/server/routes/git.js +8 -3
  8. package/dist/server/routes/health.js +19 -2
  9. package/dist/server/routes/settings.js +24 -0
  10. package/dist/server/routes/workspaces.js +379 -72
  11. package/dist/server/services/agent/engines/claude-code/engine.js +39 -35
  12. package/dist/server/services/agent/engines/codex/client.js +16 -4
  13. package/dist/server/services/agent/engines/codex/engine.js +23 -2
  14. package/dist/server/services/agent/engines/codex/jsonrpc/peer.js +44 -5
  15. package/dist/server/services/agent/engines/types.js +13 -0
  16. package/dist/server/services/agent/orchestrator.js +354 -133
  17. package/dist/server/services/agent/session-controller.js +27 -0
  18. package/dist/server/services/agent/{engines/codex/turn-liveness.js → turn-liveness.js} +6 -2
  19. package/dist/server/services/change-source-branch-service.js +115 -11
  20. package/dist/server/services/db-backup-service.js +27 -16
  21. package/dist/server/services/pr-watcher-service.js +17 -2
  22. package/dist/server/services/settings-service.js +39 -0
  23. package/dist/server/services/websocket-service.js +114 -48
  24. package/dist/server/services/workspace-service.js +54 -2
  25. package/dist/server/services/worktree-purge-service.js +19 -5
  26. package/dist/server/services/worktree-service.js +38 -1
  27. package/dist/server/services/ws-events-retention-service.js +133 -0
  28. package/dist/server/utils/git-ops.js +209 -14
  29. package/dist/server/utils/git-repo-lock.js +45 -0
  30. package/dist/server/utils/logger.js +108 -0
  31. package/dist/server/utils/script-runner.js +11 -0
  32. package/package.json +1 -1
  33. package/src/client/dist/pwa/assets/ActivityFeed-BlDBh5jB.js +8 -0
  34. package/src/client/dist/pwa/assets/ActivityFeed-tC8sR0GV.css +1 -0
  35. package/src/client/dist/pwa/assets/ChangelogPage-DACtknly.js +1 -0
  36. package/src/client/dist/pwa/assets/ChangelogPage-D_WOVByV.css +1 -0
  37. package/src/client/dist/pwa/assets/ClosePopup-DEy0yFXE.js +1 -0
  38. package/src/client/dist/pwa/assets/CreatePage-Bb-Qn-Rd.js +2 -0
  39. package/src/client/dist/pwa/assets/CreatePage-RMBX-Zjn.css +1 -0
  40. package/src/client/dist/pwa/assets/DiffViewer-DKt6gFi4.js +8 -0
  41. package/src/client/dist/pwa/assets/DiffViewer-ahWtFrRy.css +1 -0
  42. package/src/client/dist/pwa/assets/DocumentsPanel-B8QY7FTj.css +1 -0
  43. package/src/client/dist/pwa/assets/DocumentsPanel-DhP1jk11.js +1 -0
  44. package/src/client/dist/pwa/assets/DrawerToggleButton-CBdOJzVZ.js +1 -0
  45. package/src/client/dist/pwa/assets/GitPanel-BKrtkPrV.css +1 -0
  46. package/src/client/dist/pwa/assets/GitPanel-DNCCB0G_.js +3 -0
  47. package/src/client/dist/pwa/assets/HealthPage-B1J4-dOH.js +1 -0
  48. package/src/client/dist/pwa/assets/HealthPage-BbqLoFQj.css +1 -0
  49. package/src/client/dist/pwa/assets/MainLayout-F8ShDnAy.css +1 -0
  50. package/src/client/dist/pwa/assets/MainLayout-qWwDy1B5.js +2 -0
  51. package/src/client/dist/pwa/assets/QBadge-BgS0-MXB.js +1 -0
  52. package/src/client/dist/pwa/assets/QBanner-BoAbhM1O.js +1 -0
  53. package/src/client/dist/pwa/assets/QBtn-B7WFdfmy.js +1 -0
  54. package/src/client/dist/pwa/assets/QBtnGroup-BMQlX2YS.js +1 -0
  55. package/src/client/dist/pwa/assets/QBtnToggle-eMu_yinY.js +1 -0
  56. package/src/client/dist/pwa/assets/QChip-BzB_GF4Z.js +1 -0
  57. package/src/client/dist/pwa/assets/QExpansionItem-C8CWo-aP.js +1 -0
  58. package/src/client/dist/pwa/assets/QItemSection-CDBweQnA.js +1 -0
  59. package/src/client/dist/pwa/assets/QList-Ccqhimcb.js +1 -0
  60. package/src/client/dist/pwa/assets/QPage-RpDxx5ah.js +1 -0
  61. package/src/client/dist/pwa/assets/QSelect-D9bHHxAA.js +1 -0
  62. package/src/client/dist/pwa/assets/QSlideTransition-6lWJvjLP.js +1 -0
  63. package/src/client/dist/pwa/assets/QSpace-D3PNLwa4.js +1 -0
  64. package/src/client/dist/pwa/assets/QSpinnerDots-DWOFEezR.js +1 -0
  65. package/src/client/dist/pwa/assets/SchedulePanel-Brtqtz1H.js +1 -0
  66. package/src/client/dist/pwa/assets/SchedulePanel-BunlzsOY.css +1 -0
  67. package/src/client/dist/pwa/assets/SearchPage-CvZxJiJs.js +1 -0
  68. package/src/client/dist/pwa/assets/SearchPage-DdWM01rq.css +1 -0
  69. package/src/client/dist/pwa/assets/SettingsPage-JVje8OPs.js +16 -0
  70. package/src/client/dist/pwa/assets/SettingsPage-dMAg4JP8.css +1 -0
  71. package/src/client/dist/pwa/assets/TerminalPanel-B6xJJs8p.css +1 -0
  72. package/src/client/dist/pwa/assets/TerminalPanel-Dtc6B3US.js +18 -0
  73. package/src/client/dist/pwa/assets/TouchPan-DnEDaTFL.js +1 -0
  74. package/src/client/dist/pwa/assets/WorkspacePage-BVxtefbj.js +4 -0
  75. package/src/client/dist/pwa/assets/WorkspacePage-DN-A6XpI.css +1 -0
  76. package/src/client/dist/pwa/assets/build-path-tree-BU8Y8vRw.js +1 -0
  77. package/src/client/dist/pwa/assets/clipboard-t9qe6lK7.js +1 -0
  78. package/src/client/dist/pwa/assets/{cssMode-DNEi2cLH.js → cssMode-D_JDSbNP.js} +1 -1
  79. package/src/client/dist/pwa/assets/debounce-CDIE7CV6.js +1 -0
  80. package/src/client/dist/pwa/assets/documents-B6eOZeFK.js +1 -0
  81. package/src/client/dist/pwa/assets/{editor.api-_tFrtCR7.js → editor.api-Ccbr7NXr.js} +1 -1
  82. package/src/client/dist/pwa/assets/engineFeatures-DW9PydRL.js +1 -0
  83. package/src/client/dist/pwa/assets/expand-template-B4LAsXAF.css +1 -0
  84. package/src/client/dist/pwa/assets/expand-template-Xq6JwXsl.js +1 -0
  85. package/src/client/dist/pwa/assets/{freemarker2-kfVsFQjE.js → freemarker2-CUvQzJdx.js} +1 -1
  86. package/src/client/dist/pwa/assets/{handlebars-EwBi9SHt.js → handlebars-BXiAPlES.js} +1 -1
  87. package/src/client/dist/pwa/assets/{html-BOOCP_vn.js → html-CLmfyTMC.js} +1 -1
  88. package/src/client/dist/pwa/assets/{htmlMode-IN9oEIXW.js → htmlMode-DWYo6_e_.js} +1 -1
  89. package/src/client/dist/pwa/assets/i18n-CJclRByY.js +1 -0
  90. package/src/client/dist/pwa/assets/index-Bri8-39E.css +1 -0
  91. package/src/client/dist/pwa/assets/index-Dv1p-1sA.js +82 -0
  92. package/src/client/dist/pwa/assets/{javascript-CfV8qmeH.js → javascript-C9gWFLC_.js} +1 -1
  93. package/src/client/dist/pwa/assets/{jsonMode-C0b3m4VO.js → jsonMode-CbsjeFb8.js} +1 -1
  94. package/src/client/dist/pwa/assets/kobo-commands-DGygmOvc.js +9 -0
  95. package/src/client/dist/pwa/assets/layout-nWIyHeJf.js +1 -0
  96. package/src/client/dist/pwa/assets/{liquid-D3YK93J-.js → liquid-BqJ3SIha.js} +1 -1
  97. package/src/client/dist/pwa/assets/{lspLanguageFeatures-PklP2gEH.js → lspLanguageFeatures-BB0y1B51.js} +1 -1
  98. package/src/client/dist/pwa/assets/{mdx-DjZcevPS.js → mdx-rIxQLZDB.js} +1 -1
  99. package/src/client/dist/pwa/assets/network-auth-pzKTXRYP.js +1 -0
  100. package/src/client/dist/pwa/assets/notify-theme-D7RrwvJa.js +1 -0
  101. package/src/client/dist/pwa/assets/pending-diff-open-Cia8sndE.js +1 -0
  102. package/src/client/dist/pwa/assets/private.use-form-D8Yuc3aU.js +1 -0
  103. package/src/client/dist/pwa/assets/{project-color-Cc9yKGk3.js → project-color-Dur1z6Gn.js} +1 -1
  104. package/src/client/dist/pwa/assets/{python-BrgzhqrC.js → python-C6d5du9h.js} +1 -1
  105. package/src/client/dist/pwa/assets/{razor-g8NeeeQc.js → razor-Aek1yDc0.js} +1 -1
  106. package/src/client/dist/pwa/assets/{render-chat-markdown-CZyJL1-w.js → render-chat-markdown-B6sa44Xr.js} +2 -2
  107. package/src/client/dist/pwa/assets/skill-suite-prompts-DdoGRwhz.js +36 -0
  108. package/src/client/dist/pwa/assets/{tsMode-DAopv4hH.js → tsMode-rxNEyqyY.js} +1 -1
  109. package/src/client/dist/pwa/assets/{typescript-C2jZCVPF.js → typescript-DndxWYhC.js} +1 -1
  110. package/src/client/dist/pwa/assets/use-checkbox-z-Qs4ZHY.js +1 -0
  111. package/src/client/dist/pwa/assets/use-id-DlouqdB8.js +1 -0
  112. package/src/client/dist/pwa/assets/use-onboarding-BzSwN4xT.js +2 -0
  113. package/src/client/dist/pwa/assets/{vs-mk-rn9sP.js → vs-De8HKJ9r.js} +3 -3
  114. package/src/client/dist/pwa/assets/{workers-CP5iY9Kz.js → workers-DdNkyVm9.js} +1 -1
  115. package/src/client/dist/pwa/assets/{xml-D3pYNERH.js → xml-Cl1k1mQr.js} +1 -1
  116. package/src/client/dist/pwa/assets/{yaml-BTRPY5XP.js → yaml-C8G_k5TR.js} +1 -1
  117. package/src/client/dist/pwa/fonts/GEIST-LICENSE.txt +92 -0
  118. package/src/client/dist/pwa/fonts/Geist-Variable.woff2 +0 -0
  119. package/src/client/dist/pwa/fonts/GeistMono-Variable.woff2 +0 -0
  120. package/src/client/dist/pwa/index.html +7 -5
  121. package/src/client/dist/pwa/sw.js +1 -1
  122. package/src/mcp-server/kobo-tasks-server.ts +8 -7
  123. package/dist/server/utils/process-tracker.js +0 -49
  124. package/src/client/dist/pwa/assets/ActivityFeed-BrjeLlhi.css +0 -1
  125. package/src/client/dist/pwa/assets/ActivityFeed-WBBk7DgE.js +0 -8
  126. package/src/client/dist/pwa/assets/ChangelogPage-Cr5cW9Wx.js +0 -1
  127. package/src/client/dist/pwa/assets/ChangelogPage-DGhfnkax.css +0 -1
  128. package/src/client/dist/pwa/assets/ClosePopup-2KSSXX6P.js +0 -1
  129. package/src/client/dist/pwa/assets/CreatePage-Bl1Vjr27.css +0 -1
  130. package/src/client/dist/pwa/assets/CreatePage-DQk8TrUP.js +0 -2
  131. package/src/client/dist/pwa/assets/DiffViewer-C9xV8dh-.js +0 -8
  132. package/src/client/dist/pwa/assets/DiffViewer-CS3P9Ngi.css +0 -1
  133. package/src/client/dist/pwa/assets/DrawerToggleButton-CjM28eaw.js +0 -1
  134. package/src/client/dist/pwa/assets/HealthPage-BbLpLRjV.js +0 -1
  135. package/src/client/dist/pwa/assets/HealthPage-BqirO5le.css +0 -1
  136. package/src/client/dist/pwa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuYjalmUiAw-BCOjigVR.woff +0 -0
  137. package/src/client/dist/pwa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuZtalmUiAw-Ocp2tNig.woff +0 -0
  138. package/src/client/dist/pwa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWuaabVmUiAw-6jEn9xEl.woff +0 -0
  139. package/src/client/dist/pwa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWub2bVmUiAw-CCs8I9zJ.woff +0 -0
  140. package/src/client/dist/pwa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbFmUiAw-BLaboPi0.woff +0 -0
  141. package/src/client/dist/pwa/assets/KFOMCnqEu92Fr1ME7kSn66aGLdTylUAMQXC89YmC2DPNWubEbVmUiAw-DHuK6FBl.woff +0 -0
  142. package/src/client/dist/pwa/assets/MainLayout-BUril7SK.js +0 -19
  143. package/src/client/dist/pwa/assets/MainLayout-u-AM87m3.css +0 -1
  144. package/src/client/dist/pwa/assets/QBadge-DS9cpnyx.js +0 -1
  145. package/src/client/dist/pwa/assets/QBanner-tANb95XA.js +0 -1
  146. package/src/client/dist/pwa/assets/QBtn-DJGkBel8.js +0 -1
  147. package/src/client/dist/pwa/assets/QBtnToggle-D-Hsqmcb.js +0 -1
  148. package/src/client/dist/pwa/assets/QChip-iLXQ5Khf.js +0 -1
  149. package/src/client/dist/pwa/assets/QItemSection-B-5iFRBZ.js +0 -1
  150. package/src/client/dist/pwa/assets/QList-D-yd1vEv.js +0 -1
  151. package/src/client/dist/pwa/assets/QSelect-TFRaHbzG.js +0 -36
  152. package/src/client/dist/pwa/assets/QSeparator-C_2BuEw9.js +0 -1
  153. package/src/client/dist/pwa/assets/QSpace-BuMMeXnK.js +0 -1
  154. package/src/client/dist/pwa/assets/QSpinnerDots-C-tv95pD.js +0 -1
  155. package/src/client/dist/pwa/assets/SearchPage-CPM7L9_M.js +0 -1
  156. package/src/client/dist/pwa/assets/SearchPage-CngtAqls.css +0 -1
  157. package/src/client/dist/pwa/assets/SettingsPage-BRYycuYY.js +0 -16
  158. package/src/client/dist/pwa/assets/SettingsPage-D5BacmAr.css +0 -1
  159. package/src/client/dist/pwa/assets/TouchPan-79_u9-Fd.js +0 -1
  160. package/src/client/dist/pwa/assets/WorkspacePage-DB1n1bmg.js +0 -4
  161. package/src/client/dist/pwa/assets/WorkspacePage-hxEpXqBA.css +0 -1
  162. package/src/client/dist/pwa/assets/documents-BMvE9Q_U.js +0 -1
  163. package/src/client/dist/pwa/assets/engineFeatures-JkVb6hry.js +0 -1
  164. package/src/client/dist/pwa/assets/expand-template-D2yUa54D.css +0 -1
  165. package/src/client/dist/pwa/assets/expand-template-Dl4wUjF8.js +0 -1
  166. package/src/client/dist/pwa/assets/i18n-Dezgz2hU.js +0 -1
  167. package/src/client/dist/pwa/assets/index-B12jWMl8.js +0 -82
  168. package/src/client/dist/pwa/assets/index-CK1nk7qr.css +0 -1
  169. package/src/client/dist/pwa/assets/kobo-commands-DznaKlq6.js +0 -9
  170. package/src/client/dist/pwa/assets/layout-me0gwmBV.js +0 -1
  171. package/src/client/dist/pwa/assets/network-auth-BMTuTKHx.js +0 -1
  172. package/src/client/dist/pwa/assets/pending-diff-open-BG3IOnWw.js +0 -1
  173. package/src/client/dist/pwa/assets/use-checkbox-D-9LXk-S.js +0 -1
  174. package/src/client/dist/pwa/assets/use-is-mobile-DX2Fiee-.js +0 -1
  175. package/src/client/dist/pwa/assets/use-onboarding-BNo8mb65.js +0 -2
@@ -0,0 +1,2 @@
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};
@@ -0,0 +1 @@
1
+ import{B as e,ut as t}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{Z as n,b as r}from"./QBtn-B7WFdfmy.js";var i=[`top`,`middle`,`bottom`],a=n({name:`QBadge`,props:{color:String,textColor:String,floating:Boolean,transparent:Boolean,multiLine:Boolean,outline:Boolean,rounded:Boolean,label:[Number,String],align:{type:String,validator:e=>i.includes(e)}},setup(n,{slots:i}){let a=e(()=>n.align===void 0?null:{verticalAlign:n.align}),o=e(()=>{let e=n.outline&&n.color||n.textColor;return`q-badge flex inline items-center no-wrap q-badge--${n.multiLine?`multi`:`single`}-line`+(n.outline?` q-badge--outline`:n.color===void 0?``:` bg-${n.color}`)+(e===void 0?``:` text-${e}`)+(n.floating?` q-badge--floating`:``)+(n.rounded?` q-badge--rounded`:``)+(n.transparent?` q-badge--transparent`:``)});return()=>t(`div`,{class:o.value,style:a.value,role:`status`,"aria-label":n.label},r(i.default,n.label===void 0?[]:[n.label]))}});export{a as t};
@@ -0,0 +1 @@
1
+ import{B as e,st as t,ut as n}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{S as r,Z as i}from"./QBtn-B7WFdfmy.js";import{O as a,k as o}from"./use-id-DlouqdB8.js";var s=i({name:`QBanner`,props:{...o,inlineActions:Boolean,dense:Boolean,rounded:Boolean},setup(i,{slots:o}){let{proxy:{$q:s}}=t(),c=a(i,s),l=e(()=>`q-banner row items-center`+(i.dense?` q-banner--dense`:``)+(c.value?` q-banner--dark q-dark`:``)+(i.rounded?` rounded-borders`:``)),u=e(()=>`q-banner__actions row items-center justify-end col-${i.inlineActions?`auto`:`all`}`);return()=>{let e=[n(`div`,{class:`q-banner__avatar col-auto row items-center self-start`},r(o.avatar)),n(`div`,{class:`q-banner__content col text-body2`},r(o.default))],t=r(o.action);return t!==void 0&&e.push(n(`div`,{class:u.value},t)),n(`div`,{class:l.value+(!i.inlineActions&&t!==void 0?` q-banner--top-padding`:``),role:`alert`},e)}}});export{s as t};
@@ -0,0 +1 @@
1
+ import{B as e,C as t,g as n,x as r}from"./reactivity.esm-bundler-DtSZKRQB.js";import{$ as i,B as a,Ot as o,st as s,t as c,ut as l,yn as u}from"./runtime-dom.esm-bundler-DgevF6KV.js";function d(e,t,n,r){return Object.defineProperty(e,t,{get:n,set:r,enumerable:!0}),e}var f=t(!1),p,m=512;function h(e){return typeof e==`string`?e.slice(0,m).toLowerCase():``}var g=/(?:^|\s)version\/([\w.]+)/,_=/(?:^|\s)applewebkit\/[\w.]+/,v=/(?:^|\s)safari\/[\w.]+/;function y(e){let t=g.exec(e);return t!==null&&_.test(e)&&v.test(e)?{browser:`safari`,version:t[1]}:null}var b=/(?:^|\s)opera\/([\w.]+)/,x=/(?:^|\s)version\/([\w.]+)/;function S(e){let t=b.exec(e);return t===null?null:{browser:`opera`,version:x.exec(e)?.[1]||t[1]}}var C=/(edg|edge|edga|edgios)\/([\w.]+)/,w=/(opr)[\/]([\w.]+)/,T=/(vivaldi)[\/]([\w.]+)/,ee=/(chrome|crios)[\/]([\w.]+)/,te=/(firefox|fxios)[\/]([\w.]+)/,ne=/(webkit)[\/]([\w.]+)/;function re(e,t){let n=C.exec(e)||w.exec(e)||T.exec(e)||ee.exec(e);if(n===null){let r=y(e);if(r!==null)return{...r,platform:t[0]||``};if(n=te.exec(e)||ne.exec(e),n===null){let r=S(e);if(r!==null)return{...r,platform:t[0]||``};n=[]}}return{browser:n[5]||n[3]||n[1]||``,version:n[4]||n[2]||`0`,platform:t[0]||``}}var ie=/(ipad)/,E=/(ipod)/,D=/(iphone)/,ae=/(windows phone)/,oe=/(kindle)/,O=/(silk)/,k=/(android)/,se=/(win)/,ce=/(mac)/,le=/(linux)/,ue=/(cros)/;function de(e){return ie.exec(e)||E.exec(e)||ae.exec(e)||D.exec(e)||oe.exec(e)||O.exec(e)||k.exec(e)||se.exec(e)||ce.exec(e)||le.exec(e)||ue.exec(e)||[]}var fe=`ontouchstart`in window||window.navigator.maxTouchPoints>0;function pe(e){let t=h(e),n=re(t,de(t)),r={mobile:!1,desktop:!1,cordova:!1,capacitor:!1,nativeMobile:!1,electron:!1,bex:!1,linux:!1,mac:!1,win:!1,cros:!1,chrome:!1,firefox:!1,opera:!1,safari:!1,vivaldi:!1,edge:!1,edgeChromium:!1,ie:!1,webkit:!1,android:!1,ios:!1,ipad:!1,iphone:!1,ipod:!1,kindle:!1,winphone:!1,silk:!1};n.browser&&(r[n.browser]=!0,r.version=n.version,r.versionNumber=Number.parseInt(n.version,10)),n.platform&&(r[n.platform]=!0),r[`windows phone`]&&(r.winphone=!0,delete r[`windows phone`]);let i=r.android||r.ios||r.ipad||r.iphone||r.ipod||r.kindle||r.silk||r.winphone;if(i===!0||t.includes(`mobile`)?r.mobile=!0:r.desktop=!0,r.edga||r.edgios||r.edg?(r.edge=!0,n.browser=`edge`):r.crios?(r.chrome=!0,n.browser=`chrome`):r.fxios&&(r.firefox=!0,n.browser=`firefox`),(r.ipod||r.ipad||r.iphone)&&(r.ios=!0),r.vivaldi&&=(n.browser=`vivaldi`,!0),(r.chrome||r.opr||r.safari||r.vivaldi||r.mobile&&!r.ios&&!i)&&(r.webkit=!0),r.opr&&(n.browser=`opera`,r.opera=!0),r.safari&&(r.android?(n.browser=`android`,r.android=!0):r.kindle?(n.browser=`kindle`,r.kindle=!0):r.silk&&=(n.browser=`silk`,!0)),r.name=n.browser,r.platform=n.platform,t.includes(`electron`))r.electron=!0;else if(document.location.href.includes(`-extension://`))r.bex=!0;else{if(window.Capacitor===void 0?(window._cordovaNative!==void 0||window.cordova!==void 0)&&(r.cordova=!0,r.nativeMobile=!0,r.nativeMobileWrapper=`cordova`):(r.capacitor=!0,r.nativeMobile=!0,r.nativeMobileWrapper=`capacitor`),f.value&&(p={is:{...r}}),fe&&r.mac&&(r.desktop&&r.safari||r.nativeMobile&&!r.android&&!r.ios&&!r.ipad)){delete r.mac,delete r.desktop;let e=Math.min(window.innerHeight,window.innerWidth)>414?`ipad`:`iphone`;Object.assign(r,{mobile:!0,ios:!0,platform:e,[e]:!0})}!r.mobile&&window.navigator.userAgentData&&window.navigator.userAgentData.mobile&&(delete r.desktop,r.mobile=!0)}return r}var me=navigator.userAgent||navigator.vendor||window.opera,he={has:{touch:!1,webStorage:!1},within:{iframe:!1}},A={userAgent:me,is:pe(me),has:{touch:fe},within:{iframe:window.self!==window.top}},j={install(e){let{$q:t}=e;f.value?(e.onSSRHydrated.push(()=>{Object.assign(t.platform,A),f.value=!1}),t.platform=r(this)):t.platform=this}};{let e;d(A.has,`webStorage`,()=>{if(e!==void 0)return e;try{if(window.localStorage)return e=!0,!0}catch{}return e=!1,!1}),Object.assign(j,A),f.value&&(Object.assign(j,p,he),p=null)}function M(e){return n(i(e))}function ge(e){return n(e)}var _e=(e,t)=>{let n=r(e);for(let r in e)d(t,r,()=>n[r],e=>{n[r]=e});return t},N={hasPassive:!1,passiveCapture:!0,notPassiveCapture:!0};try{let e=Object.defineProperty({},"passive",{get(){Object.assign(N,{hasPassive:!0,passive:{passive:!0},notPassive:{passive:!1},passiveCapture:{passive:!0,capture:!0},notPassiveCapture:{passive:!1,capture:!0}})}});window.addEventListener(`qtest`,null,e),window.removeEventListener(`qtest`,null,e)}catch{}function ve(){}function ye(e){return e.button===0}function P(e){return e.touches&&e.touches[0]?e=e.touches[0]:e.changedTouches&&e.changedTouches[0]?e=e.changedTouches[0]:e.targetTouches&&e.targetTouches[0]&&(e=e.targetTouches[0]),{top:e.clientY,left:e.clientX}}function F(e){e.stopPropagation()}function I(e){e.cancelable!==!1&&e.preventDefault()}function L(e){e.cancelable!==!1&&e.preventDefault(),e.stopPropagation()}function be(e,t){if(e===void 0||t&&e.__dragPrevented)return;t?e.__dragPrevented=!0:delete e.__dragPrevented;let n=t?e=>{e.__dragPrevented=!0,e.addEventListener(`dragstart`,I,N.notPassiveCapture)}:e=>{delete e.__dragPrevented,e.removeEventListener(`dragstart`,I,N.notPassiveCapture)};e.querySelectorAll(`a, img`).forEach(n)}function xe(e,t,n){let r=`__q_${t}_evt`;e[r]=[...e[r]??[],...n],n.forEach(t=>{t[0].addEventListener(t[1],e[t[2]],N[t[3]])})}function Se(e,t){let n=`__q_${t}_evt`;e[n]!==void 0&&(e[n].forEach(t=>{t[0].removeEventListener(t[1],e[t[2]],N[t[3]])}),e[n]=void 0)}var Ce=!1;function we(e){Ce=e.isComposing===!0}function Te(e){return Ce||e!==Object(e)||e.isComposing||e.qKeyEvent}function R(e,t){return!Te(e)&&[t].flat().includes(e.keyCode)}var Ee=`_q_s_`,De=`_q_l_`,Oe=`_q_pc_`,ke=`_q_fo_`,Ae=`_q_tabs_`;function je(){}var z={},Me=!1;function Ne(){Me=!0}var B={xs:18,sm:24,md:32,lg:38,xl:46},V={size:String};function H(e,t=B){return a(()=>e.size===void 0?null:{fontSize:e.size in t?`${t[e.size]}px`:e.size})}var Pe={size:{type:[String,Number],default:`1em`},color:String};function Fe(e){return{cSize:a(()=>e.size in B?`${B[e.size]}px`:e.size),classes:a(()=>`q-spinner`+(e.color?` text-${e.color}`:``))}}var Ie=M({name:`QSpinner`,props:{...Pe,thickness:{type:Number,default:5}},setup(e){let{cSize:t,classes:n}=Fe(e);return()=>l(`svg`,{class:n.value+` q-spinner-mat`,width:t.value,height:t.value,viewBox:`25 25 50 50`},[l(`circle`,{class:`path`,cx:`50`,cy:`50`,r:`20`,fill:`none`,stroke:`currentColor`,"stroke-width":e.thickness,"stroke-miterlimit":`10`})])}});function U(e,t){return e===void 0?t:e()||t}function Le(e,t){if(e!==void 0){let t=e();if(t!=null)return[...t]}return t}function W(e,t){return e===void 0?t:t.concat(e())}function Re(e,t){return e===void 0?t:t===void 0?e():t.concat(e())}function ze(e,t,n,r,i,a){t.key=r+i;let o=l(e,t,n);return i?u(o,a()):o}function Be(e){if(Object(e.$parent)===e.$parent)return e.$parent;let{parent:t}=e.$;for(;Object(t)===t;){if(Object(t.proxy)===t.proxy)return t.proxy;t=t.parent}}function Ve(e,t){typeof t.type==`symbol`?Array.isArray(t.children)&&t.children.forEach(t=>{Ve(e,t)}):e.add(t)}function He(e){let t=new Set;return e.forEach(e=>{Ve(t,e)}),[...t]}function Ue(e){return e.appContext.config.globalProperties.$router!==void 0}function We(e){return e.isUnmounted===!0||e.isDeactivated===!0}var G=[],Ge=[],Ke=1,qe=document.body;function Je(e,t){let n=document.createElement(`div`);if(n.id=t===void 0?e:`q-portal--${t}--${Ke++}`,z.globalNodes!==void 0){let e=z.globalNodes.class;e!==void 0&&(n.className=e)}return qe.append(n),G.push(n),Ge.push(t),n}function Ye(e){let t=G.indexOf(e);t!==-1&&(G.splice(t,1),Ge.splice(t,1)),e.remove()}function Xe(e,t){let n=e.style;for(let e in t)n[e]=t[e]}function Ze(t){if(t==null)return;if(typeof t==`string`)try{return document.querySelector(t)||void 0}catch{return}let n=e(t);if(n)return n.$el||n}function Qe(e,t){if(e==null||e.contains(t))return!0;for(let n=e.nextElementSibling;n!==null;n=n.nextElementSibling)if(n.contains(t))return!0;return!1}var $e=`0 0 24 24`,K=e=>e,q=e=>`ionicons ${e}`,et={"mdi-":e=>`mdi ${e}`,"icon-":K,"bt-":e=>`bt ${e}`,"eva-":e=>`eva ${e}`,"ion-md":q,"ion-ios":q,"ion-logo":q,"iconfont ":K,"ti-":e=>`themify-icon ${e}`,"bi-":e=>`bootstrap-icons ${e}`,"i-":K},tt={o_:`-outlined`,r_:`-round`,s_:`-sharp`},nt={sym_o_:`-outlined`,sym_r_:`-rounded`,sym_s_:`-sharp`},rt=RegExp(`^(`+Object.keys(et).join(`|`)+`)`),it=RegExp(`^(`+Object.keys(tt).join(`|`)+`)`),at=RegExp(`^(`+Object.keys(nt).join(`|`)+`)`),ot=/^[Mm]\s?[-+]?\.?\d/,st=/^img:/,ct=/^svguse:/,lt=/^ion-/,ut=/^(fa-(classic|sharp|solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /,J=M({name:`QIcon`,props:{...V,tag:{type:String,default:`i`},name:String,color:String,left:Boolean,right:Boolean},setup(e,{slots:t}){let{proxy:{$q:n}}=s(),r=H(e),i=a(()=>`q-icon`+(e.left?` on-left`:``)+(e.right?` on-right`:``)+(e.color===void 0?``:` text-${e.color}`)),o=a(()=>{let t,r=e.name;if(r===`none`||!r)return{none:!0};if(n.iconMapFn!==null){let e=n.iconMapFn(r);if(e!==void 0){if(e.icon!==void 0){if(r=e.icon,r===`none`||!r)return{none:!0}}else return{cls:e.cls,content:e.content===void 0?` `:e.content}}}if(ot.test(r)){let[e,t=$e]=r.split(`|`);return{svg:!0,viewBox:t,nodes:e.split(`&&`).map(e=>{let[t,n,r]=e.split(`@@`);return l(`path`,{style:n,d:t,transform:r})})}}if(st.test(r))return{img:!0,src:r.slice(4)};if(ct.test(r)){let[e,t=$e]=r.split(`|`);return{svguse:!0,src:e.slice(7),viewBox:t}}let i=` `,a=r.match(rt);if(a!==null)t=et[a[1]](r);else if(ut.test(r))t=r;else if(lt.test(r))t=`ionicons ion-${n.platform.is.ios?`ios`:`md`}${r.slice(3)}`;else if(at.test(r)){t=`notranslate material-symbols`;let e=r.match(at);e!==null&&(r=r.slice(6),t+=nt[e[1]]),i=r}else{t=`notranslate material-icons`;let e=r.match(it);e!==null&&(r=r.slice(2),t+=tt[e[1]]),i=r}return{cls:t,content:i}});return()=>{let n={class:i.value,style:r.value,"aria-hidden":`true`};return o.value.none?l(e.tag,n,U(t.default)):o.value.img?l(e.tag,n,W(t.default,[l(`img`,{src:o.value.src})])):o.value.svg?l(e.tag,n,W(t.default,[l(`svg`,{viewBox:o.value.viewBox||`0 0 24 24`},o.value.nodes)])):o.value.svguse?l(e.tag,n,W(t.default,[l(`svg`,{viewBox:o.value.viewBox},[l(`use`,{"xlink:href":o.value.src})])])):(o.value.cls!==void 0&&(n.class+=` `+o.value.cls),l(e.tag,n,W(t.default,[o.value.content])))}}});function dt(e,t=250){let n=!1,r;return function(...i){return n||(n=!0,setTimeout(()=>{n=!1},t),r=e.apply(this,i)),r}}function ft(e,t,n,r){n.modifiers.stop&&F(e);let i=n.modifiers.color,a=n.modifiers.center||r===!0,o=document.createElement(`span`),s=document.createElement(`span`),c=P(e),{left:l,top:u,width:d,height:f}=t.getBoundingClientRect(),p=Math.hypot(d,f),m=p/2,h=`${(d-p)/2}px`,g=a?h:`${c.left-l-m}px`,_=`${(f-p)/2}px`,v=a?_:`${c.top-u-m}px`;s.className=`q-ripple__inner`,Xe(s,{height:`${p}px`,width:`${p}px`,transform:`translate3d(${g},${v},0) scale3d(.2,.2,1)`,opacity:0}),o.className=`q-ripple${i?` text-`+i:``}`,o.setAttribute(`dir`,`ltr`),o.append(s),t.append(o);let y=()=>{o.remove(),clearTimeout(b)};n.abort.push(y);let b=setTimeout(()=>{s.classList.add(`q-ripple__inner--enter`),s.style.transform=`translate3d(${h},${_},0) scale3d(1,1,1)`,s.style.opacity=.2,b=setTimeout(()=>{s.classList.remove(`q-ripple__inner--enter`),s.classList.add(`q-ripple__inner--leave`),s.style.opacity=0,b=setTimeout(()=>{o.remove(),n.abort.splice(n.abort.indexOf(y),1)},275)},250)},50)}function pt(e,{modifiers:t,value:n,arg:r}){let i={...e.cfg.ripple,...t,...n};e.modifiers={early:i.early===!0,stop:i.stop===!0,center:i.center===!0,color:i.color||r,keyCodes:[i.keyCodes||13].flat()}}var mt=ge({name:`ripple`,beforeMount(e,t){let n=t.instance.$.appContext.config.globalProperties.$q.config||{};if(n.ripple===!1)return;let r={cfg:n,enabled:t.value!==!1,modifiers:{},abort:[],start(t){r.enabled&&!t.qSkipRipple&&t.type===(r.modifiers.early?`pointerdown`:`click`)&&ft(t,e,r,t.qKeyEvent===!0)},keystart:dt(t=>{r.enabled&&!t.qSkipRipple&&R(t,r.modifiers.keyCodes)&&t.type===`key${r.modifiers.early?`down`:`up`}`&&ft(t,e,r,!0)},300)};pt(r,t),e.__qripple=r,xe(r,`main`,[[e,`pointerdown`,`start`,`passive`],[e,`click`,`start`,`passive`],[e,`keydown`,`keystart`,`passive`],[e,`keyup`,`keystart`,`passive`]])},updated(e,t){if(t.oldValue!==t.value){let n=e.__qripple;n!==void 0&&(n.enabled=t.value!==!1,n.enabled&&Object(t.value)===t.value&&pt(n,t))}},beforeUnmount(e){let t=e.__qripple;t!==void 0&&(t.abort.forEach(e=>{e()}),Se(t,`main`),delete e.__qripple)}}),ht={left:`start`,center:`center`,right:`end`,between:`between`,around:`around`,evenly:`evenly`,stretch:`stretch`},gt=Object.keys(ht),_t={align:{type:String,validator:e=>gt.includes(e)}};function vt(e){return a(()=>{let t=e.align===void 0?e.vertical?`stretch`:`left`:e.align;return`${e.vertical?`items`:`justify`}-${ht[t]}`})}function yt(e){return e?e.aliasOf?e.aliasOf.path:e.path:``}function bt(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xt(e,t){for(let n in t){let r=t[n],i=e[n];if(typeof r==`string`){if(r!==i)return!1}else if(!Array.isArray(i)||i.length!==r.length||r.some((e,t)=>e!==i[t]))return!1}return!0}function St(e,t){return Array.isArray(t)?e.length===t.length&&e.every((e,n)=>e===t[n]):e.length===1&&e[0]===t}function Ct(e,t){return Array.isArray(e)?St(e,t):Array.isArray(t)?St(t,e):e===t}function wt(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(!Ct(e[n],t[n]))return!1;return!0}var Tt={to:[String,Object],replace:Boolean,href:String,target:String,disable:Boolean},Et={...Tt,exact:Boolean,activeClass:{type:String,default:`q-router-link--active`},exactActiveClass:{type:String,default:`q-router-link--exact-active`}};function Dt({fallbackTag:e,useDisableForRouterLinkProps:t=!0}={}){let n=s(),{props:r,proxy:i,emit:o}=n,c=Ue(n),l=a(()=>!r.disable&&r.href!==void 0),u=a(t?()=>c&&!r.disable&&!l.value&&r.to!==void 0&&r.to!==null&&r.to!==``:()=>c&&!l.value&&r.to!==void 0&&r.to!==null&&r.to!==``),d=a(()=>u.value?b(r.to):null),f=a(()=>d.value!==null),p=a(()=>l.value||f.value),m=a(()=>r.type===`a`||p.value?`a`:r.tag||e||`div`),h=a(()=>l.value?{href:r.href,target:r.target}:f.value?{href:d.value.href,target:r.target}:{}),g=a(()=>{if(!f.value)return-1;let{matched:e}=d.value,{length:t}=e,n=e[t-1];if(n===void 0)return-1;let r=i.$route.matched;if(r.length===0)return-1;let a=r.findIndex(bt.bind(null,n));if(a!==-1)return a;let o=yt(e[t-2]);return t>1&&yt(n)===o&&r.at(-1).path!==o?r.findIndex(bt.bind(null,e[t-2])):a}),_=a(()=>f.value&&g.value!==-1&&xt(i.$route.params,d.value.params)),v=a(()=>_.value&&g.value===i.$route.matched.length-1&&wt(i.$route.params,d.value.params)),y=a(()=>f.value?v.value?` ${r.exactActiveClass} ${r.activeClass}`:r.exact?``:_.value?` ${r.activeClass}`:``:``);function b(e){try{return i.$router.resolve(e)}catch{}return null}function x(e,{returnRouterError:t,to:n=r.to,replace:a=r.replace}={}){if(r.disable)return e.preventDefault(),Promise.resolve(!1);if(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey||e.button!==void 0&&e.button!==0||r.target===`_blank`)return Promise.resolve(!1);e.preventDefault();let o=i.$router[a?`replace`:`push`](n);return t?o:o.then(()=>{}).catch(()=>{})}function S(e){if(f.value){let t=t=>x(e,t);o(`click`,e,t),e.defaultPrevented||t()}else o(`click`,e)}return{hasRouterLink:f,hasHrefLink:l,hasLink:p,linkTag:m,resolvedLink:d,linkIsActive:_,linkIsExactActive:v,linkClass:y,linkAttrs:h,getLink:b,navigateToRouterLink:x,navigateOnClick:S}}var Ot={none:0,xs:4,sm:8,md:16,lg:24,xl:32},kt={xs:8,sm:10,md:14,lg:20,xl:24},At=[`button`,`submit`,`reset`],jt=/[^\s]\/[^\s]/,Mt=[`flat`,`outline`,`push`,`unelevated`];function Nt(e,t){return e.flat?`flat`:e.outline?`outline`:e.push?`push`:e.unelevated?`unelevated`:t}function Pt(e){let t=Nt(e);return t===void 0?{}:{[t]:!0}}var Ft={...V,...Tt,type:{type:String,default:`button`},label:[Number,String],icon:String,iconRight:String,...Mt.reduce((e,t)=>(e[t]=Boolean)&&e,{}),square:Boolean,rounded:Boolean,glossy:Boolean,size:String,fab:Boolean,fabMini:Boolean,padding:String,color:String,textColor:String,noCaps:Boolean,noWrap:Boolean,dense:Boolean,tabindex:[Number,String],ripple:{type:[Boolean,Object],default:!0},align:{..._t.align,default:`center`},stack:Boolean,stretch:Boolean,loading:{type:Boolean,default:null},disable:Boolean},It={...Ft,round:Boolean};function Lt(e){let t=H(e,kt),n=vt(e),{hasRouterLink:r,hasLink:i,linkTag:o,linkAttrs:s,navigateOnClick:c}=Dt({fallbackTag:`button`}),l=a(()=>{let n=e.fab||e.fabMini?{}:t.value;return e.padding===void 0?n:{...n,padding:e.padding.split(/\s+/).map(e=>e in Ot?Ot[e]+`px`:e).join(` `),minWidth:`0`,minHeight:`0`}}),u=a(()=>e.rounded||e.fab||e.fabMini),d=a(()=>!e.disable&&!e.loading),f=a(()=>d.value?e.tabindex||0:-1),p=a(()=>Nt(e,`standard`)),m=a(()=>{let t={tabindex:f.value};return i.value?Object.assign(t,s.value):At.includes(e.type)&&(t.type=e.type),o.value===`a`?(e.disable?t[`aria-disabled`]=`true`:t.href===void 0&&(t.role=`button`),!r.value&&jt.test(e.type)&&(t.type=e.type)):e.disable&&(t.disabled=``,t[`aria-disabled`]=`true`),e.loading&&e.percentage!==void 0&&Object.assign(t,{role:`progressbar`,"aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":e.percentage}),t});return{classes:a(()=>{let t;e.color===void 0?e.textColor&&(t=`text-${e.textColor}`):t=e.flat||e.outline?`text-${e.textColor||e.color}`:`bg-${e.color} text-${e.textColor||`white`}`;let n=e.round?`round`:`rectangle${u.value?` q-btn--rounded`:e.square?` q-btn--square`:``}`;return`q-btn--${p.value} q-btn--${n}`+(t===void 0?``:` `+t)+(d.value?` q-btn--actionable q-focusable q-hoverable`:e.disable?` disabled`:``)+(e.fab?` q-btn--fab`:e.fabMini?` q-btn--fab-mini`:``)+(e.noCaps?` q-btn--no-uppercase`:``)+(e.dense?` q-btn--dense`:``)+(e.stretch?` no-border-radius self-stretch`:``)+(e.glossy?` glossy`:``)+(e.square?` q-btn--square`:``)}),style:l,innerClasses:a(()=>n.value+(e.stack?` column`:` row`)+(e.noWrap?` no-wrap text-no-wrap`:``)+(e.loading?` q-btn__content--hidden`:``)),attributes:m,hasLink:i,linkTag:o,navigateOnClick:c,isActionable:d}}var{passiveCapture:Y}=N,X=null,Z=null,Q=null;function $(e){L(e),e.qSkipRipple=!0}var Rt=M({name:`QBtn`,props:{...It,percentage:Number,darkPercentage:Boolean,onTouchstart:[Function,Array]},emits:[`click`,`keydown`,`mousedown`,`keyup`],setup(e,{slots:n,emit:r}){let{proxy:i}=s(),{classes:d,style:f,innerClasses:p,attributes:m,hasLink:h,linkTag:g,navigateOnClick:_,isActionable:v}=Lt(e),y=t(null),b=t(null),x=null,S,C=null,w=null,T=a(()=>e.label!==void 0&&e.label!==null&&e.label!==``),ee=a(()=>e.disable||e.ripple===!1?!1:{keyCodes:h.value?[13,32]:[13],...e.ripple===!0?{}:e.ripple}),te=a(()=>({center:e.round})),ne=a(()=>{let t=Math.max(0,Math.min(100,e.percentage));return t>0?{transition:`transform 0.6s`,transform:`translateX(${t-100}%)`}:{}}),re=a(()=>{if(e.loading)return{onMousedown:$,onTouchstart:$,onClick:$,onKeydown:$,onKeyup:$};if(v.value){let t={onClick:E,onKeydown:D,onMousedown:oe};if(i.$q.platform.has.touch){let n=e.onTouchstart===void 0?`Passive`:``;t[`onTouchstart${n}`]=ae}return t}return{onClick:L}}),ie=a(()=>({ref:y,class:`q-btn q-btn-item non-selectable no-outline `+d.value,style:f.value,...m.value,...re.value}));function E(t){if(y.value!==null){if(t!==void 0){if(t.defaultPrevented)return;let n=document.activeElement;if(e.type===`submit`&&n!==document.body&&!y.value.contains(n)&&!n.contains(y.value)){t.qAvoidFocus||y.value.focus();let e=()=>{w=null,document.removeEventListener(`keydown`,L,!0),document.removeEventListener(`keyup`,e,Y),y.value?.removeEventListener(`blur`,e,Y)};w=e,document.addEventListener(`keydown`,L,!0),document.addEventListener(`keyup`,e,Y),y.value.addEventListener(`blur`,e,Y)}}_(t)}}function D(e){y.value!==null&&(r(`keydown`,e),R(e,[13,32])&&Z!==y.value&&(Z!==null&&k(),e.defaultPrevented||(e.qAvoidFocus||y.value.focus(),Z=y.value,y.value.classList.add(`q-btn--active`),document.addEventListener(`keyup`,O,!0),y.value.addEventListener(`blur`,O,Y)),L(e)))}function ae(e){y.value!==null&&(r(`touchstart`,e),!e.defaultPrevented&&(X!==y.value&&(X!==null&&k(),X=y.value,x=e.target,x.addEventListener(`touchcancel`,O,Y),x.addEventListener(`touchend`,O,Y)),S=!0,C!==null&&clearTimeout(C),C=setTimeout(()=>{C=null,S=!1},200)))}function oe(e){y.value!==null&&(e.qSkipRipple=S===!0,r(`mousedown`,e),!e.defaultPrevented&&Q!==y.value&&(Q!==null&&k(),Q=y.value,y.value.classList.add(`q-btn--active`),document.addEventListener(`mouseup`,O,Y)))}function O(e){if(y.value!==null&&(e?.type!==`blur`||document.activeElement!==y.value)){if(e?.type===`keyup`){if(Z===y.value&&R(e,[13,32])){let t=new MouseEvent(`click`,e);t.qKeyEvent=!0,e.defaultPrevented&&I(t),e.cancelBubble&&F(t),y.value.dispatchEvent(t),L(e),e.qKeyEvent=!0}r(`keyup`,e)}k()}}function k(e){w?.();let t=b.value;!e&&(X===y.value||Q===y.value)&&t!==null&&t!==document.activeElement&&(t.setAttribute(`tabindex`,-1),t.focus({preventScroll:!0})),X===y.value&&(x!==null&&(x.removeEventListener(`touchcancel`,O,Y),x.removeEventListener(`touchend`,O,Y)),X=x=null),Q===y.value&&(document.removeEventListener(`mouseup`,O,Y),Q=null),Z===y.value&&(document.removeEventListener(`keyup`,O,!0),y.value?.removeEventListener(`blur`,O,Y),Z=null),y.value?.classList.remove(`q-btn--active`)}return o(()=>{k(!0)}),Object.assign(i,{click:e=>{v.value&&E(e)}}),()=>{let t=[];e.icon!==void 0&&t.push(l(J,{name:e.icon,left:!e.stack&&T.value,role:`img`})),T.value&&t.push(l(`span`,{class:`block`},[e.label])),t=W(n.default,t),e.iconRight!==void 0&&!e.round&&t.push(l(J,{name:e.iconRight,right:!e.stack&&T.value,role:`img`}));let r=[l(`span`,{class:`q-focus-helper`,ref:b})];return e.loading&&e.percentage!==void 0&&r.push(l(`span`,{class:`q-btn__progress absolute-full overflow-hidden`+(e.darkPercentage?` q-btn__progress--dark`:``)},[l(`span`,{class:`q-btn__progress-indicator fit block`,style:ne.value})])),r.push(l(`span`,{class:`q-btn__content text-center col items-center q-anchor--skip `+p.value},t)),e.loading!==null&&r.push(l(c,{name:`q-transition--fade`},()=>e.loading?[l(`span`,{key:`loading`,class:`absolute-full flex flex-center`},n.loading===void 0?[l(Ie)]:n.loading())]:null)),u(l(g.value,ie.value,r),[[mt,ee.value,void 0,te.value]])}}});export{_e as $,z as A,Te as B,Le as C,H as D,Pe as E,Oe as F,ve as G,Se as H,Ee as I,be as J,P as K,Ae as L,je as M,ke as N,V as O,De as P,ge as Q,R,U as S,Fe as T,ye as U,xe as V,N as W,L as X,F as Y,M as Z,Ue as _,Et as a,W as b,mt as c,Xe as d,j as et,Ze as f,Be as g,He as h,Dt as i,Me as j,Ne as k,J as l,Ye as m,Pt as n,f as nt,vt as o,Je as p,I as q,Ft as r,d as rt,_t as s,Rt as t,A as tt,Qe as u,We as v,Ie as w,Re as x,ze as y,we as z};
@@ -0,0 +1 @@
1
+ import{B as e,ut as t}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{S as n,Z as r}from"./QBtn-B7WFdfmy.js";var i=r({name:`QBtnGroup`,props:{unelevated:Boolean,outline:Boolean,flat:Boolean,rounded:Boolean,square:Boolean,push:Boolean,stretch:Boolean,glossy:Boolean,spread:Boolean},setup(r,{slots:i}){let a=e(()=>{let e=[`unelevated`,`outline`,`flat`,`rounded`,`square`,`push`,`stretch`,`glossy`].filter(e=>r[e]).map(e=>`q-btn-group--${e}`).join(` `);return`q-btn-group row no-wrap${e.length===0?``:` `+e}`+(r.spread?` q-btn-group--spread`:` inline`)});return()=>t(`div`,{class:a.value},n(i.default))}});export{i as t};
@@ -0,0 +1 @@
1
+ import{B as e,ut as t}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{Z as n,b as r,n as i,t as a}from"./QBtn-B7WFdfmy.js";import{i as o,n as s}from"./private.use-form-D8Yuc3aU.js";import{t as c}from"./QBtnGroup-BMQlX2YS.js";var l=n({name:`QBtnToggle`,props:{...o,modelValue:{required:!0},options:{type:Array,required:!0,validator:e=>e.every(e=>(`label`in e||`icon`in e||`slot`in e)&&`value`in e)},color:String,textColor:String,toggleColor:{type:String,default:`primary`},toggleTextColor:String,outline:Boolean,flat:Boolean,unelevated:Boolean,rounded:Boolean,push:Boolean,glossy:Boolean,size:String,padding:String,noCaps:Boolean,noWrap:Boolean,dense:Boolean,readonly:Boolean,disable:Boolean,stack:Boolean,stretch:Boolean,spread:Boolean,clearable:Boolean,ripple:{type:[Boolean,Object],default:!0}},emits:[`update:modelValue`,`clear`,`click`],setup(n,{slots:o,emit:l}){let u=e(()=>n.options.find(e=>e.value===n.modelValue)!==void 0),d=e(()=>({type:`hidden`,name:n.name,value:n.modelValue})),f=s(d),p=e(()=>i(n)),m=e(()=>({rounded:n.rounded,dense:n.dense,...p.value})),h=e(()=>n.options.map((e,t)=>{let{attrs:r,value:i,slot:a,...o}=e;return{slot:a,props:{key:t,"aria-pressed":i===n.modelValue?`true`:`false`,...r,...o,...m.value,disable:n.disable||o.disable===!0,color:i===n.modelValue?_(o,`toggleColor`):_(o,`color`),textColor:i===n.modelValue?_(o,`toggleTextColor`):_(o,`textColor`),noCaps:_(o,`noCaps`)===!0,noWrap:_(o,`noWrap`)===!0,size:_(o,`size`),padding:_(o,`padding`),ripple:_(o,`ripple`),stack:_(o,`stack`)===!0,stretch:_(o,`stretch`)===!0,onClick(t){g(i,e,t)}}}}));function g(e,t,r){n.readonly||(n.modelValue===e?n.clearable&&(l(`update:modelValue`,null,null),l(`clear`)):l(`update:modelValue`,e,t),l(`click`,r))}function _(e,t){return e[t]===void 0?n[t]:e[t]}function v(){let e=h.value.map(e=>t(a,e.props,e.slot===void 0?void 0:o[e.slot]));return n.name!==void 0&&!n.disable&&u.value&&f(e,`push`),r(o.default,e)}return()=>t(c,{class:`q-btn-toggle`,...p.value,rounded:n.rounded,stretch:n.stretch,glossy:n.glossy,spread:n.spread},v)}});export{l as t};
@@ -0,0 +1 @@
1
+ import{B as e,st as t,ut as n}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{D as r,O as i,X as a,Z as o,c as s,l as c,x as l,y as u}from"./QBtn-B7WFdfmy.js";import{O as d,k as f}from"./use-id-DlouqdB8.js";function p(e){e.keyCode===32&&a(e)}var m={xs:8,sm:10,md:14,lg:20,xl:24},h=o({name:`QChip`,props:{...f,...i,dense:Boolean,icon:String,iconRight:String,iconRemove:String,iconSelected:String,label:[String,Number],color:String,textColor:String,modelValue:{type:Boolean,default:!0},selected:{type:Boolean,default:null},square:Boolean,outline:Boolean,clickable:Boolean,removable:Boolean,removeAriaLabel:String,tabindex:[String,Number],disable:Boolean,ripple:{type:[Boolean,Object],default:!0}},emits:[`update:modelValue`,`update:selected`,`remove`,`click`],setup(i,{slots:o,emit:f}){let{proxy:{$q:h}}=t(),g=d(i,h),_=r(i,m),v=e(()=>i.selected||i.icon!==void 0),y=e(()=>i.selected?i.iconSelected||h.iconSet.chip.selected:i.icon),b=e(()=>i.iconRemove||h.iconSet.chip.remove),x=e(()=>!i.disable&&(i.clickable||i.selected!==null)),S=e(()=>{let e=i.outline&&i.color||i.textColor;return`q-chip row inline no-wrap items-center`+(!i.outline&&i.color!==void 0?` bg-${i.color}`:``)+(e?` text-${e} q-chip--colored`:``)+(i.disable?` disabled`:``)+(i.dense?` q-chip--dense`:``)+(i.outline?` q-chip--outline`:``)+(i.selected?` q-chip--selected`:``)+(x.value?` q-chip--clickable cursor-pointer non-selectable q-hoverable`:``)+(i.square?` q-chip--square`:``)+(g.value?` q-chip--dark q-dark`:``)}),C=e(()=>{let e=i.disable?{tabindex:-1,"aria-disabled":`true`}:{tabindex:i.tabindex||0,role:`button`,"aria-pressed":i.selected?`true`:`false`};return{chip:e,remove:{...e,role:`button`,"aria-hidden":`false`,"aria-label":i.removeAriaLabel||h.lang.label.remove}}});function w(e){[13,32].includes(e.keyCode)&&(T(e),a(e))}function T(e){i.disable||(f(`update:selected`,!i.selected),f(`click`,e))}function E(e){(e.keyCode===void 0||[13,32].includes(e.keyCode))&&(a(e),i.disable||(f(`update:modelValue`,!1),f(`remove`)))}function D(){let e=[];x.value&&e.push(n(`div`,{class:`q-focus-helper`})),v.value&&e.push(n(c,{class:`q-chip__icon q-chip__icon--left`,name:y.value}));let t=i.label===void 0?void 0:[n(`div`,{class:`ellipsis`},[i.label])];return e.push(n(`div`,{class:`q-chip__content col row no-wrap items-center q-anchor--skip`},l(o.default,t))),i.iconRight&&e.push(n(c,{class:`q-chip__icon q-chip__icon--right`,name:i.iconRight})),i.removable&&e.push(n(c,{class:`q-chip__icon q-chip__icon--remove cursor-pointer`,name:b.value,...C.value.remove,onClick:E,onKeydown:p,onKeyup:E})),e}return()=>{if(!i.modelValue)return;let e={class:S.value,style:_.value};return x.value&&Object.assign(e,C.value.chip,{onClick:T,onKeydown:p,onKeyup:w}),u(`div`,e,D(),`ripple`,i.ripple!==!1&&!i.disable,()=>[[s,i.ripple]])}}});export{h as t};
@@ -0,0 +1 @@
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};
@@ -0,0 +1 @@
1
+ import{C as e}from"./reactivity.esm-bundler-DtSZKRQB.js";import{B as t,st as n,ut as r}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{C as i,R as a,S as o,X as s,Z as c,a as l,i as u}from"./QBtn-B7WFdfmy.js";import{O as d,k as f}from"./use-id-DlouqdB8.js";var p=c({name:`QItem`,props:{...f,...l,tag:{type:String,default:`div`},active:{type:Boolean,default:null},clickable:Boolean,dense:Boolean,insetLevel:Number,tabindex:[String,Number],focused:Boolean,manualFocus:Boolean},emits:[`click`,`keyup`],setup(o,{slots:c,emit:l}){let{proxy:{$q:f}}=n(),p=d(o,f),{hasLink:m,linkAttrs:h,linkClass:g,linkTag:_,navigateOnClick:v}=u(),y=e(null),b=e(null),x=t(()=>o.clickable||m.value||o.tag===`label`),S=t(()=>!o.disable&&x.value),C=t(()=>`q-item q-item-type row no-wrap`+(o.dense?` q-item--dense`:``)+(p.value?` q-item--dark`:``)+(m.value&&o.active===null?g.value:o.active?` q-item--active${o.activeClass===void 0?``:` ${o.activeClass}`}`:``)+(o.disable?` disabled`:``)+(S.value?` q-item--clickable q-link cursor-pointer `+(o.manualFocus?`q-manual-focusable`:`q-focusable q-hoverable`)+(o.focused?` q-manual-focusable--focused`:``):``)),w=t(()=>o.insetLevel===void 0?null:{[`padding`+(f.lang.rtl?`Right`:`Left`)]:16+o.insetLevel*56+`px`});function T(e){S.value&&(b.value!==null&&!e.qAvoidFocus&&(!e.qKeyEvent&&document.activeElement===y.value?b.value.focus({preventScroll:!0}):document.activeElement===b.value&&y.value.focus({preventScroll:!0})),v(e))}function E(e){if(S.value&&a(e,[13,32])){s(e),e.qKeyEvent=!0;let t=new MouseEvent(`click`,e);t.qKeyEvent=!0,y.value.dispatchEvent(t)}l(`keyup`,e)}function D(e){S.value&&e.keyCode===32&&s(e)}function O(){let e=i(c.default,[]);return S.value&&e.unshift(r(`div`,{class:`q-focus-helper`,tabindex:-1,ref:b})),e}return()=>{let e={ref:y,class:C.value,style:w.value,role:m.value?void 0:S.value?`button`:`listitem`,onClick:T,onKeydown:D,onKeyup:E};return S.value?(e.tabindex=o.tabindex||`0`,Object.assign(e,h.value)):x.value&&(e[`aria-disabled`]=`true`),r(_.value,e,O())}}}),m=c({name:`QItemSection`,props:{avatar:Boolean,thumbnail:Boolean,side:Boolean,top:Boolean,noWrap:Boolean},setup(e,{slots:n}){let i=t(()=>`q-item__section column q-item__section--${e.avatar||e.side||e.thumbnail?`side`:`main`}`+(e.top?` q-item__section--top justify-start`:` justify-center`)+(e.avatar?` q-item__section--avatar`:``)+(e.thumbnail?` q-item__section--thumbnail`:``)+(e.noWrap?` q-item__section--nowrap`:``));return()=>r(`div`,{class:i.value},o(n.default))}});export{p as n,m as t};
@@ -0,0 +1 @@
1
+ import{B as e,st as t,ut as n}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{S as r,Z as i}from"./QBtn-B7WFdfmy.js";import{O as a,k as o}from"./use-id-DlouqdB8.js";var s=[`ul`,`ol`],c=i({name:`QList`,props:{...o,bordered:Boolean,dense:Boolean,separator:Boolean,padding:Boolean,tag:{type:String,default:`div`}},setup(i,{slots:o}){let c=t(),l=a(i,c.proxy.$q),u=e(()=>s.includes(i.tag)?null:`list`),d=e(()=>`q-list`+(i.bordered?` q-list--bordered`:``)+(i.dense?` q-list--dense`:``)+(i.separator?` q-list--separator`:``)+(l.value?` q-list--dark`:``)+(i.padding?` q-list--padding`:``));return()=>n(i.tag,{class:d.value,role:u.value},r(o.default))}});export{c as t};
@@ -0,0 +1 @@
1
+ import{B as e,st as t,ut as n,vt as r}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{M as i,P as a,S as o,Z as s}from"./QBtn-B7WFdfmy.js";var c=s({name:`QPage`,props:{padding:Boolean,styleFn:Function},setup(s,{slots:c}){let{proxy:{$q:l}}=t(),u=r(a,i);if(u===i)return console.error(`QPage needs to be a deep child of QLayout`),i;if(r(`_q_pc_`,i)===i)return console.error(`QPage needs to be child of QPageContainer`),i;let d=e(()=>{let e=(u.header.space?u.header.size:0)+(u.footer.space?u.footer.size:0);if(typeof s.styleFn==`function`){let t=u.isContainer.value?u.containerHeight.value:l.screen.height;return s.styleFn(e,t)}return{minHeight:u.isContainer.value?u.containerHeight.value-e+`px`:l.screen.height===0?e===0?`100vh`:`calc(100vh - ${e}px)`:l.screen.height-e+`px`}}),f=e(()=>`q-page${s.padding?` q-layout-padding`:``}`);return()=>n(`main`,{class:f.value,style:d.value},o(c.default))}});export{c as t};
@@ -0,0 +1 @@
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};
@@ -0,0 +1 @@
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};
@@ -0,0 +1 @@
1
+ import{ut as e}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{Z as t}from"./QBtn-B7WFdfmy.js";var n=t({name:`QSpace`,setup(){let t=e(`div`,{class:`q-space`});return()=>t}});export{n as t};
@@ -0,0 +1 @@
1
+ import{ut as e}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{E as t,T as n,Z as r}from"./QBtn-B7WFdfmy.js";var i=`<circle cx="15" cy="15" r="15"><animate attributeName="r" from="15" to="15" begin="0s" dur="0.8s" values="15;9;15" calcMode="linear" repeatCount="indefinite"></animate><animate attributeName="fill-opacity" from="1" to="1" begin="0s" dur="0.8s" values="1;.5;1" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="60" cy="15" r="9" fill-opacity=".3"><animate attributeName="r" from="9" to="9" begin="0s" dur="0.8s" values="9;15;9" calcMode="linear" repeatCount="indefinite"></animate><animate attributeName="fill-opacity" from=".5" to=".5" begin="0s" dur="0.8s" values=".5;1;.5" calcMode="linear" repeatCount="indefinite"></animate></circle><circle cx="105" cy="15" r="15"><animate attributeName="r" from="15" to="15" begin="0s" dur="0.8s" values="15;9;15" calcMode="linear" repeatCount="indefinite"></animate><animate attributeName="fill-opacity" from="1" to="1" begin="0s" dur="0.8s" values="1;.5;1" calcMode="linear" repeatCount="indefinite"></animate></circle>`,a=r({name:`QSpinnerDots`,props:t,setup(t){let{cSize:r,classes:a}=n(t);return()=>e(`svg`,{class:a.value,fill:`currentColor`,width:r.value,height:r.value,viewBox:`0 0 120 30`,xmlns:`http://www.w3.org/2000/svg`,innerHTML:i})}});export{a as t};
@@ -0,0 +1 @@
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};
@@ -0,0 +1 @@
1
+ .schedule-header__icon[data-v-127c3cf8]{width:38px;height:38px;color:var(--kobo-text-2);background:#665fdd1f;border:1px solid #665fdd59;border-radius:10px;flex:0 0 38px;place-items:center;display:grid}.empty-state[data-v-127c3cf8]{background:#ffffff04;border-style:dashed}.schedule-item[data-v-127c3cf8]{background:#ffffff06}.schedule-item--wakeup[data-v-127c3cf8]{border-color:#fbbf2447}.schedule-item__icon[data-v-127c3cf8]{border-radius:8px;flex:0 0 32px;place-items:center;width:32px;height:32px;display:grid}.schedule-item__icon--wakeup[data-v-127c3cf8]{color:var(--kobo-warning);background:#fbbf241f}.schedule-item__icon--cron[data-v-127c3cf8]{color:var(--kobo-accent);background:#22d3ee1a}.schedule-item__prompt[data-v-127c3cf8]{color:var(--kobo-text-3);background:#00000029;border-radius:6px;margin-top:8px;padding:8px 10px;font-size:12px;line-height:1.45}.min-width-zero[data-v-127c3cf8]{min-width:0}.create-card[data-v-127c3cf8]{background:#ffffff06;overflow:hidden}.type-toggle[data-v-127c3cf8]{border-bottom:1px solid #ffffff17;gap:6px;padding:6px}.type-toggle[data-v-127c3cf8] .q-btn{border-radius:7px;min-height:38px}.field-label[data-v-127c3cf8]{color:var(--kobo-text-2);font-size:12px;font-weight:500}.frequency-value[data-v-127c3cf8]{flex:0 0 72px;width:72px}.session-toggle[data-v-127c3cf8]{border:1px solid #ffffff24;border-radius:7px;overflow:hidden}.session-toggle[data-v-127c3cf8] .q-btn{min-height:36px}.advanced-section[data-v-127c3cf8]{background:#00000014;border:1px solid #ffffff1a;border-radius:7px}.advanced-section[data-v-127c3cf8] .q-expansion-item__content{padding:0 12px 12px}.one-shot-option[data-v-127c3cf8]{border:1px solid #ffffff1a;border-radius:7px}.action-button[data-v-127c3cf8]{min-height:40px}.prompt-preview[data-v-127c3cf8]{white-space:pre-wrap;word-break:break-word;margin:0}
@@ -0,0 +1 @@
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,H as o,Rt as s,U as c,V as l,W as u,Wt as d,Z as f,_n as p,fn as m}from"./runtime-dom.esm-bundler-DgevF6KV.js";import{l as h}from"./QBtn-B7WFdfmy.js";import{i as g}from"./use-id-DlouqdB8.js";import{r as _,s as v,tt as y,u as b}from"./index-Dv1p-1sA.js";import{i as x}from"./layout-nWIyHeJf.js";import{t as S}from"./QBadge-BgS0-MXB.js";import{t as C}from"./QSpace-D3PNLwa4.js";import{t as w}from"./formatters-D0dU6VcA.js";import{t as T}from"./QPage-RpDxx5ah.js";import{t as E}from"./DrawerToggleButton-CBdOJzVZ.js";var D=g(`search`,{state:()=>({query:``,includeArchived:!1,results:[],loading:!1,error:``,_requestToken:0}),actions:{async search(){let e=this.query.trim();if(!e){this._requestToken++,this.results=[],this.error=``,this.loading=!1;return}let t=++this._requestToken;this.loading=!0,this.error=``;try{let n=new URLSearchParams({q:e});this.includeArchived&&n.set(`includeArchived`,`true`);let r=await fetch(`/api/search?${n.toString()}`);if(!r.ok){let e=`HTTP ${r.status}`;try{let t=await r.json();t?.error&&(e=t.error)}catch{}throw Error(e)}let i=await r.json();if(t!==this._requestToken)return;this.results=i}catch(e){if(t!==this._requestToken)return;this.error=e instanceof Error?e.message:String(e),this.results=[]}finally{t===this._requestToken&&(this.loading=!1)}},clear(){this._requestToken++,this.query=``,this.results=[],this.error=``,this.loading=!1}}}),O={class:`search-header`},k={class:`row items-center`},A={class:`text-h5 q-mb-md`},j={class:`row items-center q-mt-sm q-gutter-sm`},M={key:0,class:`text-caption text-kobo-3`},N={key:0,class:`text-kobo-3 text-caption`},P={key:1,class:`text-negative text-caption`},F={key:2,class:`text-kobo-3 text-caption`},I={key:3,class:`search-results`},L=[`onClick`],R={class:`row items-center q-mb-xs text-caption`},z={class:`text-kobo-2 text-weight-medium`},B={class:`text-kobo-3`},V={class:`search-snippet text-body2 text-kobo-2`},H=x(i({__name:`SearchPage`,setup(i){let g=D(),x=_(),{t:H}=e(),{timeAgo:U}=w(),W=n(null),G=null;function K(){G&&clearTimeout(G),G=setTimeout(()=>{g.search()},250)}m(()=>g.includeArchived,()=>{g.query.trim().length>0&&g.search()});function q(e){x.push({name:`workspace`,params:{id:e.workspaceId},query:{eventId:e.eventId,...e.sessionId?{session:e.sessionId}:{}}})}function J(e){return e===`user:message`?H(`search.eventType.userMessage`):e===`agent:output`?H(`search.eventType.agentOutput`):e}return(e,n)=>(s(),o(T,{class:`q-pa-md search-page`},{default:p(()=>[l(`div`,O,[l(`div`,k,[f(E,{class:`q-mr-sm`}),l(`h2`,A,r(e.$t(`search.title`)),1)]),f(y,{ref_key:`inputEl`,ref:W,modelValue:t(g).query,"onUpdate:modelValue":[n[0]||=e=>t(g).query=e,K],dense:``,dark:``,outlined:``,clearable:``,autofocus:``,placeholder:e.$t(`search.placeholder`),onClear:n[1]||=e=>t(g).clear()},{prepend:p(()=>[f(h,{name:`search`})]),_:1},8,[`modelValue`,`placeholder`]),l(`div`,j,[f(v,{modelValue:t(g).includeArchived,"onUpdate:modelValue":n[2]||=e=>t(g).includeArchived=e,label:e.$t(`search.includeArchived`),dense:``,dark:``,color:`primary`,size:`sm`},null,8,[`modelValue`,`label`]),f(C),t(g).results.length>0?(s(),u(`span`,M,r(e.$t(`search.resultCount`,{n:t(g).results.length})),1)):c(``,!0)])]),f(b,{dark:``,class:`q-my-md`}),t(g).loading?(s(),u(`div`,N,r(e.$t(`search.loading`)),1)):t(g).error?(s(),u(`div`,P,r(e.$t(`search.error`,{message:t(g).error})),1)):t(g).query.trim().length>0&&t(g).results.length===0?(s(),u(`div`,F,r(e.$t(`search.noResults`)),1)):t(g).results.length>0?(s(),u(`div`,I,[(s(!0),u(a,null,d(t(g).results,(n,i)=>(s(),u(`div`,{key:`${n.workspaceId}-${n.timestamp}-${i}`,class:`search-result q-pa-sm q-mb-sm cursor-pointer`,onClick:e=>q(n)},[l(`div`,R,[l(`span`,z,r(n.workspaceName),1),n.archived?(s(),o(S,{key:0,color:`kobo-3`,class:`q-ml-xs`,label:e.$t(`common.archive`)},null,8,[`label`])):c(``,!0),f(C),f(S,{color:n.type===`user:message`?`blue-grey-7`:`primary`,class:`q-mr-sm`,label:J(n.type)},null,8,[`color`,`label`]),l(`span`,B,r(t(U)(n.timestamp)),1)]),l(`div`,V,r(n.snippet),1)],8,L))),128))])):c(``,!0)]),_:1}))}}),[[`__scopeId`,`data-v-14eefe01`]]);export{H as default};
@@ -0,0 +1 @@
1
+ .search-page[data-v-14eefe01]{max-width:900px;margin:0 auto}.search-result[data-v-14eefe01]{background-color:var(--kobo-surface-2);border:1px solid var(--kobo-border-subtle);border-radius:6px;transition:border-color .12s}.search-result[data-v-14eefe01]:hover{border-color:var(--kobo-accent)}.search-snippet[data-v-14eefe01]{white-space:pre-wrap;word-break:break-word;line-height:1.4}