@tequila99/githuman 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/README.md +16 -0
  2. package/dist/web/assets/{AppPage-CiRB13sb.js → AppPage-BGcEFW_o.js} +1 -1
  3. package/dist/web/assets/{CreateReviewFabButton-DTvX9Psc.js → CreateReviewFabButton-CdUXVriU.js} +1 -1
  4. package/dist/web/assets/{IndexPage-hI7bcJ6L.js → IndexPage-OqgW0yH8.js} +1 -1
  5. package/dist/web/assets/MainLayout-Bi0JE3ER.js +11 -0
  6. package/dist/web/assets/{MainLayout-DCexR9_Y.css → MainLayout-DPkSlqMr.css} +1 -1
  7. package/dist/web/assets/{PdfPreview-D3HwZ7pH.js → PdfPreview-CIiKnzQN.js} +1 -1
  8. package/dist/web/assets/{QScrollArea-Cu8zdp0y.js → QScrollArea-C4BKutrt.js} +1 -1
  9. package/dist/web/assets/{QSelect-DQ_RRYIL.js → QSelect-BXUaq4ky.js} +1 -1
  10. package/dist/web/assets/QSpace-BMpRu3a-.js +13 -0
  11. package/dist/web/assets/{ReviewDetailPage-CayB2dtb.js → ReviewDetailPage-DlR7Vxkw.js} +1 -1
  12. package/dist/web/assets/{ReviewsPage-DWfEVjWO.js → ReviewsPage-DM8XtlUK.js} +1 -1
  13. package/dist/web/assets/{StatusSwitcher--zNcE2-Y.js → StatusSwitcher-Blg5JmAa.js} +1 -1
  14. package/dist/web/assets/{TerminalView-B11UHZv3.css → TerminalView-BurzSD2L.css} +1 -1
  15. package/dist/web/assets/TerminalView-Ch-ndYr6.js +19 -0
  16. package/dist/web/assets/{abnfDiagram-O67JEVCF-C5SYdl8k.js → abnfDiagram-O67JEVCF-Cab71FlB.js} +1 -1
  17. package/dist/web/assets/agent-store-CDuiBhST.js +1 -0
  18. package/dist/web/assets/app-info-store-BmD_P8q2.js +1 -0
  19. package/dist/web/assets/architecture-7GRP2DOG-DMgDJZyQ.js +1 -0
  20. package/dist/web/assets/{architectureDiagram-NJMV4G6O-Bx8KGjS_.js → architectureDiagram-NJMV4G6O-Dl1WKOEi.js} +1 -1
  21. package/dist/web/assets/{blockDiagram-BEXU5L5S-B4ybhPir.js → blockDiagram-BEXU5L5S-CZ3Lxybj.js} +1 -1
  22. package/dist/web/assets/{c4Diagram-YGBWAQC7-D2Fzm9Zx.js → c4Diagram-YGBWAQC7-ULi06PEd.js} +1 -1
  23. package/dist/web/assets/channel-BnUyOMnk.js +1 -0
  24. package/dist/web/assets/{chunk-3FUC2YCW-DLRX-HPs.js → chunk-3FUC2YCW-B1f60wx3.js} +1 -1
  25. package/dist/web/assets/{chunk-5DYCD2WN-6HcgVbfR.js → chunk-5DYCD2WN-f6Pcl3dF.js} +1 -1
  26. package/dist/web/assets/{chunk-742MDFTN-CfTGkhlJ.js → chunk-742MDFTN-szX1QirW.js} +1 -1
  27. package/dist/web/assets/{chunk-7INBJB4K-COfv2qWf.js → chunk-7INBJB4K-CP_ynmAQ.js} +1 -1
  28. package/dist/web/assets/{chunk-7M6MHVWA-D0FxecF4.js → chunk-7M6MHVWA-DPL74uZE.js} +1 -1
  29. package/dist/web/assets/{chunk-7PRAP22T-DFjSoEy0.js → chunk-7PRAP22T-DH9TawZY.js} +1 -1
  30. package/dist/web/assets/{chunk-GTNCS2PH-CGWGXDNO.js → chunk-GTNCS2PH-CKAuGvnf.js} +1 -1
  31. package/dist/web/assets/{chunk-GWA4HPMP-J0EaOPjD.js → chunk-GWA4HPMP-DTbHCHSN.js} +1 -1
  32. package/dist/web/assets/{chunk-MBY4JIJT-PzEUkWiy.js → chunk-MBY4JIJT-ClgvJMtC.js} +1 -1
  33. package/dist/web/assets/{chunk-NETBCI7D-DHHOcLF0.js → chunk-NETBCI7D-Dq5Z7z8S.js} +1 -1
  34. package/dist/web/assets/{chunk-O7XYJQB3-BHUId2wW.js → chunk-O7XYJQB3-C0By5mcm.js} +1 -1
  35. package/dist/web/assets/{chunk-UA2S7LBM-DXQ1DAj6.js → chunk-UA2S7LBM-BtquYpxe.js} +1 -1
  36. package/dist/web/assets/{chunk-WEXAMYUT-BMiibMha.js → chunk-WEXAMYUT-BlZL42XJ.js} +1 -1
  37. package/dist/web/assets/{chunk-Z7XXMR3K-BcgKYeJS.js → chunk-Z7XXMR3K-BbtQbAvv.js} +1 -1
  38. package/dist/web/assets/{chunk-ZIGJFQKS-D6psU74o.js → chunk-ZIGJFQKS-tC_YdRrm.js} +1 -1
  39. package/dist/web/assets/{classDiagram-v2-NBCMYWYE-6IwOSgSE.js → classDiagram-v2-NBCMYWYE-CvlA_A4N.js} +1 -1
  40. package/dist/web/assets/{cynefin-OW5HDTMX-C77WtKve.js → cynefin-OW5HDTMX-DFbhKkIi.js} +1 -1
  41. package/dist/web/assets/{cynefinDiagram-VND7K2PF-BvIp3Y9w.js → cynefinDiagram-VND7K2PF-DHGaLNQN.js} +1 -1
  42. package/dist/web/assets/{dagre-6A5THRUB-DN7jrLfY.js → dagre-6A5THRUB-Bk3Po5o5.js} +1 -1
  43. package/dist/web/assets/{diagram-22UHCM2B-DQUkKx9q.js → diagram-22UHCM2B-Djjo5ftL.js} +1 -1
  44. package/dist/web/assets/{diagram-3UASUU5V-CTzVKsCf.js → diagram-3UASUU5V-BcP7pJru.js} +1 -1
  45. package/dist/web/assets/{diagram-ATOU4E4O--Z3AVUjn.js → diagram-ATOU4E4O-o_vsc8em.js} +1 -1
  46. package/dist/web/assets/{diagram-CDSNMT55-BA-cRZ39.js → diagram-CDSNMT55-eyN9Aru8.js} +1 -1
  47. package/dist/web/assets/{diagram-MLGK6HIB-Bx_zLrYg.js → diagram-MLGK6HIB-Dfjipnvb.js} +1 -1
  48. package/dist/web/assets/{diagram-MPIPVDR6-CWKuh-e-.js → diagram-MPIPVDR6-C2chocRe.js} +1 -1
  49. package/dist/web/assets/{ebnfDiagram-ZINNZB2B-MyQLfQVI.js → ebnfDiagram-ZINNZB2B-CE58dwC-.js} +1 -1
  50. package/dist/web/assets/{elk-276RUBZZ-DBbqEAnd.js → elk-276RUBZZ-KyTn9aJi.js} +1 -1
  51. package/dist/web/assets/{erDiagram-OPXOYQCR-CbRo_Rnk.js → erDiagram-OPXOYQCR-D9aOi7ZD.js} +1 -1
  52. package/dist/web/assets/eventmodeling-NTZA5JFV-7YdTAmVS.js +1 -0
  53. package/dist/web/assets/flowDiagram-KWPJA3E3-eOIiY2oF.js +1 -0
  54. package/dist/web/assets/{ganttDiagram-FUAMR5RP-D1gJBc1W.js → ganttDiagram-FUAMR5RP-DRAI6xWM.js} +1 -1
  55. package/dist/web/assets/{gitGraph-4MIJSDKK-CIzz8UCs.js → gitGraph-4MIJSDKK-D1lAB6tr.js} +1 -1
  56. package/dist/web/assets/{gitGraphDiagram-X574FWY7-B5-RB5JZ.js → gitGraphDiagram-X574FWY7-77GVnwya.js} +1 -1
  57. package/dist/web/assets/i18n-C5Xnmkwe.js +1 -0
  58. package/dist/web/assets/{index-DEwYKvIG.js → index-BqedItFI.js} +2 -2
  59. package/dist/web/assets/{info-A6RAGUB7-DF-JCGlS.js → info-A6RAGUB7-Di1qRpwO.js} +1 -1
  60. package/dist/web/assets/{infoDiagram-VRGFBTTK-z0Xepdo0.js → infoDiagram-VRGFBTTK-gceHneJ0.js} +1 -1
  61. package/dist/web/assets/{init-app-DAsY3Joz.js → init-app-IHgDyoRH.js} +1 -1
  62. package/dist/web/assets/{ishikawaDiagram-OU5B5YK6-UqXiqAoe.js → ishikawaDiagram-OU5B5YK6-B9QDQoSG.js} +1 -1
  63. package/dist/web/assets/{journeyDiagram-ZHPQQLJL-CPGeWRg-.js → journeyDiagram-ZHPQQLJL-CVTMW0pg.js} +1 -1
  64. package/dist/web/assets/{kanban-definition-PNTS6WVX-CMq9WuD5.js → kanban-definition-PNTS6WVX-TNoWYrUr.js} +1 -1
  65. package/dist/web/assets/{line-cZB9xcQk.js → line-B_1CHIjZ.js} +1 -1
  66. package/dist/web/assets/{mermaid-parser.core-D8h1T47v.js → mermaid-parser.core-LAeoGxkL.js} +3 -3
  67. package/dist/web/assets/{mermaid.core-CdpJws-B.js → mermaid.core-DMppSzfM.js} +4 -4
  68. package/dist/web/assets/{mindmap-definition-NLK3R4M7-B01KHb5Z.js → mindmap-definition-NLK3R4M7-DJ-6nTWg.js} +1 -1
  69. package/dist/web/assets/{packet-AYTQ26CC-CagxQ791.js → packet-AYTQ26CC-B4tvN4nf.js} +1 -1
  70. package/dist/web/assets/{pegDiagram-GJSIUBJH-amhZRgGf.js → pegDiagram-GJSIUBJH-BwQ6jaVw.js} +1 -1
  71. package/dist/web/assets/{pie-WAS4IAKB-zv3udP2i.js → pie-WAS4IAKB-ZwlyCxls.js} +1 -1
  72. package/dist/web/assets/{pieDiagram-5QR66LMP-CjPzT-fa.js → pieDiagram-5QR66LMP-BDYLBnB1.js} +1 -1
  73. package/dist/web/assets/pinia-BKoxNmoW.js +1 -0
  74. package/dist/web/assets/{quadrantDiagram-O4NWA36T-7YpPBn0t.js → quadrantDiagram-O4NWA36T-CkmLCxOG.js} +1 -1
  75. package/dist/web/assets/{radar-RG4KPBEZ-DZ-nSYpA.js → radar-RG4KPBEZ-Ca7H5QOY.js} +1 -1
  76. package/dist/web/assets/{railroad-74A4TZTK-CoylUO-u.js → railroad-74A4TZTK-CX3Z2QYJ.js} +1 -1
  77. package/dist/web/assets/railroad-abnf-HS5TGJTU-DZSn8MK2.js +1 -0
  78. package/dist/web/assets/railroad-ebnf-LZEXJU2U-BVTJtDBq.js +1 -0
  79. package/dist/web/assets/railroad-peg-WCYAUIDC-DMzsNGzj.js +1 -0
  80. package/dist/web/assets/{railroadDiagram-XR7U4H2S-DlHZky0v.js → railroadDiagram-XR7U4H2S-D8ii6sM4.js} +1 -1
  81. package/dist/web/assets/{requirementDiagram-PLB6GJNP-Dn9whLhB.js → requirementDiagram-PLB6GJNP-iHY-tE7c.js} +1 -1
  82. package/dist/web/assets/{safe-storage-B3bJArYP.js → safe-storage-BCP757jk.js} +1 -1
  83. package/dist/web/assets/{sankeyDiagram-IPEJSGJF-jIf4UAnN.js → sankeyDiagram-IPEJSGJF-CBprSUZk.js} +1 -1
  84. package/dist/web/assets/{sequenceDiagram-PO4LG4MO-CJahxeyg.js → sequenceDiagram-PO4LG4MO-BkphpOQ_.js} +1 -1
  85. package/dist/web/assets/{stateDiagram-v2-GCMORJYK-DArbI5q3.js → stateDiagram-v2-GCMORJYK-HN1RwAPZ.js} +1 -1
  86. package/dist/web/assets/{swimlanes-2SLR337P-wyJPqm8c.js → swimlanes-2SLR337P-Cc8jyETz.js} +1 -1
  87. package/dist/web/assets/swimlanesDiagram-TC7HE7FX-BxXXHQ70.js +8 -0
  88. package/dist/web/assets/theme-CPoPdFci.js +1 -0
  89. package/dist/web/assets/{timeline-definition-EJHVYXUP-Bdh9ma4o.js → timeline-definition-EJHVYXUP-Bas0Ksw6.js} +1 -1
  90. package/dist/web/assets/{treeView-Q6P3EWNA-CEiXTwqS.js → treeView-Q6P3EWNA-Ck-xt3KO.js} +1 -1
  91. package/dist/web/assets/{treemap-WGGIJYW6-am0aIfU-.js → treemap-WGGIJYW6-k9Ay9d-c.js} +1 -1
  92. package/dist/web/assets/{use-app-theme-FYzHIigd.js → use-app-theme-BfRqhHi_.js} +1 -1
  93. package/dist/web/assets/{use-panel-width-e-yXva8i.js → use-panel-width-C9dWftsJ.js} +1 -1
  94. package/dist/web/assets/{usecaseDiagram-POWQR4AR-r3Qf5Bj-.js → usecaseDiagram-POWQR4AR-BlzYgvXB.js} +1 -1
  95. package/dist/web/assets/{vennDiagram-UO4OBE2U-eOWNPvLI.js → vennDiagram-UO4OBE2U-gjloIQdf.js} +1 -1
  96. package/dist/web/assets/{wardley-WFR3VGLG-BdipY77V.js → wardley-WFR3VGLG-BnsYd7B2.js} +1 -1
  97. package/dist/web/assets/{wardleyDiagram-VNRHLVJA-sFpl0u9C.js → wardleyDiagram-VNRHLVJA-ktflnFLZ.js} +1 -1
  98. package/dist/web/assets/{xychartDiagram-PMCCYNJV-CtLqW--F.js → xychartDiagram-PMCCYNJV-Ch5MYgz0.js} +1 -1
  99. package/dist/web/index.html +1 -1
  100. package/package.json +1 -1
  101. package/dist/web/assets/MainLayout-baVxjyeL.js +0 -11
  102. package/dist/web/assets/QSpace-CEuZSBS2.js +0 -13
  103. package/dist/web/assets/TerminalView-DvVbWk3f.js +0 -19
  104. package/dist/web/assets/agent-store-DX4gIEHa.js +0 -1
  105. package/dist/web/assets/app-info-store-Vy_Pq2yR.js +0 -1
  106. package/dist/web/assets/architecture-7GRP2DOG-Dpxe25D8.js +0 -1
  107. package/dist/web/assets/channel--0tdF_Sb.js +0 -1
  108. package/dist/web/assets/eventmodeling-NTZA5JFV-DMla2cPF.js +0 -1
  109. package/dist/web/assets/flowDiagram-KWPJA3E3-Bas61_mX.js +0 -1
  110. package/dist/web/assets/i18n-B1_G449i.js +0 -1
  111. package/dist/web/assets/pinia-DWj71cM9.js +0 -1
  112. package/dist/web/assets/railroad-abnf-HS5TGJTU-C20Z1OCq.js +0 -1
  113. package/dist/web/assets/railroad-ebnf-LZEXJU2U-BltGHYDI.js +0 -1
  114. package/dist/web/assets/railroad-peg-WCYAUIDC-BT3QI-zw.js +0 -1
  115. package/dist/web/assets/swimlanesDiagram-TC7HE7FX-DgRybibH.js +0 -8
  116. package/dist/web/assets/theme-CFC7Mb_O.js +0 -1
package/README.md CHANGED
@@ -184,6 +184,22 @@ MIT, см. [LICENSE](LICENSE).
184
184
 
185
185
  Сессии переживают обновление страницы и доступны из нескольких страниц браузера. История ограничена 5000 строками scrollback; после остановки сервера она теряется. Без подписчиков простаивающая сессия завершается через 15 минут, работающая или с неизвестным состоянием — не позднее часа.
186
186
 
187
+ Окна терминала и предпросмотра открываются из своих кнопок в доке и возвращаются к ним при сворачивании или закрытии. Переходы между размерами тоже плавные; системная настройка уменьшения движения отключает анимации.
188
+
189
+ | Сочетание | Действие |
190
+ | -------------- | ----------------------------------------------------------------- |
191
+ | Ctrl+Win+← / → | Левая / правая половина страницы |
192
+ | Ctrl+Win+↑ | Полный экран или возврат к обычному размеру |
193
+ | Ctrl+Win+↓ | Свернуть активное окно |
194
+ | Ctrl+Win+M | Свернуть все окна |
195
+ | Ctrl+Win+T | Новая вкладка терминала |
196
+ | Ctrl+Win+W | Закрыть активную вкладку; последняя вкладка закрывает окно |
197
+ | Win+Alt+Space | Голосовой ввод в выбранном чате агента, пока клавиши удерживаются |
198
+
199
+ Если активного окна нет, Ctrl+Win+↑ восстанавливает последнее свёрнутое окно в прежнем размере и положении и передаёт ему фокус.
200
+
201
+ Повтор команды текущей половины возвращает обычный размер и позицию. Перетаскивание заголовка из половины тоже возвращает обычный размер; ручной resize снимает режим половины. Сочетания работают при вводе в терминале и формах, но отключены в модальных диалогах. Win означает Super/Meta (на macOS — Command вместе с Ctrl). Системные сочетания ОС могут перехватываться до браузера.
202
+
187
203
  Если платформенный бинарник PTY недоступен, терминал работает в ограниченном режиме с баннером: команды вводятся в поле под выводом, Ctrl+C прерывает команду, Ctrl+D закрывает shell. `vim`, `less` и другие интерактивные программы требуют PTY. В LAN терминал отключён. Переключатель исходных цветов отключает минимальный контраст для программ со своей палитрой.
188
204
 
189
205
  Для разработки на другом порту backend можно передать `GITHUMAN_DEV_API=http://localhost:3848` при запуске Quasar dev-сервера.
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/typescript-Utq2Cl8c.js","assets/typescript-j_1H8WHN.js","assets/javascript-Yelw-5ZN.js","assets/javascript-BzbQS41l.js","assets/vue-CSBlZ1UP.js","assets/css-LbU1hoFO.js","assets/html-BcACZWSP.js","assets/json-B88Oqtu5.js","assets/json-CaljABEy.js","assets/css-CdtkT07m.js","assets/scss-DHtrkMkT.js","assets/html-DDNsd9lV.js","assets/core-C37KF-j0.js","assets/rolldown-runtime-Dd_uD5pT.js","assets/engine-oniguruma-B4iNeJbd.js"])))=>i.map(i=>d[i]);
2
- import{J as e,L as t,P as n,S as r,_ as i,b as a,ct as o,l as s,ot as c,pt as l,s as u,w as d}from"./runtime-core.esm-bundler-BKFI1w28.js";import{D as f,O as p,_ as m,j as h,t as g}from"./QBtn-CzrOO1zA.js";import{t as _}from"./create-BSmXD9Zr.js";import{F as v}from"./index-DEwYKvIG.js";import{n as y}from"./vue-i18n.runtime-BpRrzZrT.js";import{n as b}from"./pinia-DCsnCHsH.js";import{d as x,f as S,l as C,o as ee,s as w,u as T}from"./use-server-events-znzHKZZx.js";function E(e){if(e.length<2||e[0]!==`"`||e[e.length-1]!==`"`)return e;let t=e.slice(1,-1),n=[];for(let e=0;e<t.length;e++){let r=t[e];r===`\\`&&/^[0-7]{3}$/.test(t.slice(e+1,e+4))?(n.push(parseInt(t.slice(e+1,e+4),8)),e+=3):r===`\\`&&t[e+1]===`"`?(n.push(34),e+=1):r===`\\`&&t[e+1]===`\\`?(n.push(92),e+=1):n.push((r??``).charCodeAt(0))}return new TextDecoder(`utf-8`).decode(new Uint8Array(n))}function D(e){return e.newPath||e.oldPath}function O(e,t){return`${e}:${t}`}function k(e,t){let n=new Map,r=0;function i(e){let t=n.get(e);if(t)return n.delete(e),n.set(e,t),t.value}function a(i,a){o(i);let s=t(a);n.set(i,{value:a,weight:s}),r+=s;for(let[t,i]of n){if(r<=e||n.size<=1)break;n.delete(t),r-=i.weight}}function o(e){let t=n.get(e);t&&(n.delete(e),r-=t.weight)}return{get:i,set:a,remove:o,size:()=>n.size}}var A={typescript:()=>v(()=>import(`./typescript-Utq2Cl8c.js`),__vite__mapDeps([0,1])),tsx:()=>v(()=>import(`./tsx-udAQXfEw.js`),[]),javascript:()=>v(()=>import(`./javascript-Yelw-5ZN.js`),__vite__mapDeps([2,3])),jsx:()=>v(()=>import(`./jsx-Bz0zcwM4.js`),[]),vue:()=>v(()=>import(`./vue-CSBlZ1UP.js`),__vite__mapDeps([4,5,3,6,7,1])),json:()=>v(()=>import(`./json-CaljABEy.js`),__vite__mapDeps([8,7])),markdown:()=>v(()=>import(`./markdown-BYOwaDjH.js`),[]),css:()=>v(()=>import(`./css-CdtkT07m.js`),__vite__mapDeps([9,5])),scss:()=>v(()=>import(`./scss-DHtrkMkT.js`),__vite__mapDeps([10,5])),html:()=>v(()=>import(`./html-DDNsd9lV.js`),__vite__mapDeps([11,6,5,3])),yaml:()=>v(()=>import(`./yaml-rwi0_p6S.js`),[]),bash:()=>v(()=>import(`./bash-CLZ0U2zV.js`),[]),python:()=>v(()=>import(`./python-gzcpVVnB.js`),[]),go:()=>v(()=>import(`./go-rLFTqkRN.js`),[]),rust:()=>v(()=>import(`./rust-Cfkwpbl8.js`),[]),java:()=>v(()=>import(`./java-BXcb2rRD.js`),[]),kotlin:()=>v(()=>import(`./kotlin-DhhofPvG.js`),[])},j={light:()=>v(()=>import(`./github-light-EUqPIrTm.js`),[]),dark:()=>v(()=>import(`./github-dark-C-LZuMrd.js`),[])},te={light:`github-light`,dark:`github-dark`},M=null,N=new Set,P=new Map;function F(e){return A[e]!==void 0}async function ne(e,t){try{await e.loadLanguage(A[t]()),N.add(t)}finally{P.delete(t)}}async function re(e){M||=(async()=>{let[{createHighlighterCore:e},{createOnigurumaEngine:t}]=await Promise.all([v(()=>import(`./core-C37KF-j0.js`),__vite__mapDeps([12,13])),v(()=>import(`./engine-oniguruma-B4iNeJbd.js`),__vite__mapDeps([14,13]))]);return e({themes:[j.light(),j.dark()],langs:[],engine:t(()=>v(()=>import(`./wasm-BnjxR4X6.js`),[]))})})();let t=await M;if(!N.has(e)){let n=P.get(e);n||(n=ne(t,e),P.set(e,n)),await n}return t}async function ie(e,t,n={}){if(!F(e)||t.length===0)return`failed`;let r=n.documents??[{length:t.length,skip:0}];if(r.reduce((e,t)=>e+t.length,0)!==t.length)return`failed`;let{signal:i}=n;try{let a=await re(e),o=0,s=0,c=!0;for(let l of r){let r,u=Math.max(1,n.sliceSize??l.length);for(let d=0;d<l.length;d+=u){if(c||await n.yieldBetween?.(),c=!1,i?.aborted)return`aborted`;let f=Math.min(d+u,l.length),p=a.codeToTokensWithThemes(t.slice(o+d,o+f).join(`
2
+ import{J as e,L as t,P as n,S as r,_ as i,b as a,ct as o,l as s,ot as c,pt as l,s as u,w as d}from"./runtime-core.esm-bundler-BKFI1w28.js";import{D as f,O as p,_ as m,j as h,t as g}from"./QBtn-CzrOO1zA.js";import{t as _}from"./create-BSmXD9Zr.js";import{F as v}from"./index-BqedItFI.js";import{n as y}from"./vue-i18n.runtime-BpRrzZrT.js";import{n as b}from"./pinia-DCsnCHsH.js";import{d as x,f as S,l as C,o as ee,s as w,u as T}from"./use-server-events-znzHKZZx.js";function E(e){if(e.length<2||e[0]!==`"`||e[e.length-1]!==`"`)return e;let t=e.slice(1,-1),n=[];for(let e=0;e<t.length;e++){let r=t[e];r===`\\`&&/^[0-7]{3}$/.test(t.slice(e+1,e+4))?(n.push(parseInt(t.slice(e+1,e+4),8)),e+=3):r===`\\`&&t[e+1]===`"`?(n.push(34),e+=1):r===`\\`&&t[e+1]===`\\`?(n.push(92),e+=1):n.push((r??``).charCodeAt(0))}return new TextDecoder(`utf-8`).decode(new Uint8Array(n))}function D(e){return e.newPath||e.oldPath}function O(e,t){return`${e}:${t}`}function k(e,t){let n=new Map,r=0;function i(e){let t=n.get(e);if(t)return n.delete(e),n.set(e,t),t.value}function a(i,a){o(i);let s=t(a);n.set(i,{value:a,weight:s}),r+=s;for(let[t,i]of n){if(r<=e||n.size<=1)break;n.delete(t),r-=i.weight}}function o(e){let t=n.get(e);t&&(n.delete(e),r-=t.weight)}return{get:i,set:a,remove:o,size:()=>n.size}}var A={typescript:()=>v(()=>import(`./typescript-Utq2Cl8c.js`),__vite__mapDeps([0,1])),tsx:()=>v(()=>import(`./tsx-udAQXfEw.js`),[]),javascript:()=>v(()=>import(`./javascript-Yelw-5ZN.js`),__vite__mapDeps([2,3])),jsx:()=>v(()=>import(`./jsx-Bz0zcwM4.js`),[]),vue:()=>v(()=>import(`./vue-CSBlZ1UP.js`),__vite__mapDeps([4,5,3,6,7,1])),json:()=>v(()=>import(`./json-CaljABEy.js`),__vite__mapDeps([8,7])),markdown:()=>v(()=>import(`./markdown-BYOwaDjH.js`),[]),css:()=>v(()=>import(`./css-CdtkT07m.js`),__vite__mapDeps([9,5])),scss:()=>v(()=>import(`./scss-DHtrkMkT.js`),__vite__mapDeps([10,5])),html:()=>v(()=>import(`./html-DDNsd9lV.js`),__vite__mapDeps([11,6,5,3])),yaml:()=>v(()=>import(`./yaml-rwi0_p6S.js`),[]),bash:()=>v(()=>import(`./bash-CLZ0U2zV.js`),[]),python:()=>v(()=>import(`./python-gzcpVVnB.js`),[]),go:()=>v(()=>import(`./go-rLFTqkRN.js`),[]),rust:()=>v(()=>import(`./rust-Cfkwpbl8.js`),[]),java:()=>v(()=>import(`./java-BXcb2rRD.js`),[]),kotlin:()=>v(()=>import(`./kotlin-DhhofPvG.js`),[])},j={light:()=>v(()=>import(`./github-light-EUqPIrTm.js`),[]),dark:()=>v(()=>import(`./github-dark-C-LZuMrd.js`),[])},te={light:`github-light`,dark:`github-dark`},M=null,N=new Set,P=new Map;function F(e){return A[e]!==void 0}async function ne(e,t){try{await e.loadLanguage(A[t]()),N.add(t)}finally{P.delete(t)}}async function re(e){M||=(async()=>{let[{createHighlighterCore:e},{createOnigurumaEngine:t}]=await Promise.all([v(()=>import(`./core-C37KF-j0.js`),__vite__mapDeps([12,13])),v(()=>import(`./engine-oniguruma-B4iNeJbd.js`),__vite__mapDeps([14,13]))]);return e({themes:[j.light(),j.dark()],langs:[],engine:t(()=>v(()=>import(`./wasm-BnjxR4X6.js`),[]))})})();let t=await M;if(!N.has(e)){let n=P.get(e);n||(n=ne(t,e),P.set(e,n)),await n}return t}async function ie(e,t,n={}){if(!F(e)||t.length===0)return`failed`;let r=n.documents??[{length:t.length,skip:0}];if(r.reduce((e,t)=>e+t.length,0)!==t.length)return`failed`;let{signal:i}=n;try{let a=await re(e),o=0,s=0,c=!0;for(let l of r){let r,u=Math.max(1,n.sliceSize??l.length);for(let d=0;d<l.length;d+=u){if(c||await n.yieldBetween?.(),c=!1,i?.aborted)return`aborted`;let f=Math.min(d+u,l.length),p=a.codeToTokensWithThemes(t.slice(o+d,o+f).join(`
3
3
  `),{lang:e,themes:te,...r?{grammarState:r}:{}});r=a.getLastGrammarState(p);let m=Math.max(d,l.skip);f<=m||(n.onSlice?.(p.slice(m-d).map(e=>e.map(e=>({content:e.content,colorLight:e.variants.light?.color,colorDark:e.variants.dark?.color}))),s),s+=f-m)}o+=l.length}return`done`}catch{return`failed`}}var I=null,L=!1,ae=1,R=new Map;function z(){return typeof Worker<`u`&&!L}function oe(){let e=new Worker(new URL(`/assets/highlight.worker-BHCdEX06.js`,``+import.meta.url),{type:`module`});return e.addEventListener(`message`,e=>{let t=e.data,n=R.get(t.id);n&&(t.type===`slice`?n.onSlice(t.tokens,t.start):(R.delete(t.id),n.finish(t.ok?`done`:`failed`)))}),e.addEventListener(`error`,t=>{console.error(`The highlight worker failed, the main thread does the work now`,t),L=!0;for(let e of R.values())e.finish(`failed`);R.clear(),e.terminate(),I=null}),e}function B(e,t){e.postMessage(t)}function se(e,t,n){let{signal:r}=n;if(r?.aborted)return Promise.resolve(`aborted`);if(!I)try{I=oe()}catch(e){return console.error(`The highlight worker did not start`,e),L=!0,Promise.resolve(`unsent`)}let i=I;return new Promise(a=>{let o=ae++,s=()=>{R.delete(o)&&(I&&B(I,{type:`cancel`,id:o}),a(`aborted`))};R.set(o,{onSlice:(e,t)=>n.onSlice?.(e,t),finish:e=>{r?.removeEventListener(`abort`,s),a(e)}});try{B(i,{type:`tokenize`,id:o,lang:e,lines:Array.from(t),...n.documents?{documents:n.documents.map(e=>({...e}))}:{},sliceSize:n.sliceSize})}catch(e){console.error(`The highlight worker did not get the request`,e),R.delete(o),a(`unsent`);return}r?.addEventListener(`abort`,s,{once:!0})})}function ce(){return typeof MessageChannel>`u`?new Promise(e=>setTimeout(e,0)):new Promise(e=>{let{port1:t,port2:n}=new MessageChannel;t.addEventListener(`message`,()=>{t.close(),e()},{once:!0}),t.start(),n.postMessage(null)})}var V=`import { ref, type Ref } from 'vue'
4
4
  import * as path from 'node:path'
5
5
  // A comment with a TODO and a URL: https://example.com
@@ -1 +1 @@
1
- import{C as e,F as t,J as n,K as r,P as i,S as a,U as o,Y as s,_ as c,b as l,c as u,ct as d,d as f,h as p,kt as m,l as h,ot as g,pt as _,r as v,s as y,v as b,w as x}from"./runtime-core.esm-bundler-BKFI1w28.js";import{D as S,H as C,O as w,_ as T,d as E,h as D,j as O,k,t as A}from"./QBtn-CzrOO1zA.js";import{t as j}from"./create-BSmXD9Zr.js";import{_ as M,ct as N,f as P,m as F,n as I,ot as L,p as R,q as ee,st as te}from"./index-DEwYKvIG.js";import{n as ne}from"./vue-i18n.runtime-BpRrzZrT.js";import{n as z,r as B}from"./pinia-DCsnCHsH.js";import{f as V,s as H,u as U}from"./use-server-events-znzHKZZx.js";import{t as W}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as G,o as K,r as q,u as J}from"./QScrollArea-Cu8zdp0y.js";import{a as Y,i as X,n as Z,o as re,r as ie}from"./AppPage-CiRB13sb.js";var ae=c({__name:`SearchInput`,props:{modelValue:{},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=o(e,`modelValue`);return(e,r)=>(i(),h(I,x({modelValue:t.value,"onUpdate:modelValue":r[0]||=e=>t.value=e},e.$attrs,{dense:``,outlined:``,clearable:``}),{prepend:n(()=>[p(E,{name:`search`,size:`xs`})]),_:1},16,[`modelValue`]))}}),oe=[`top`,`right`,`bottom`,`left`],Q={type:{type:String,default:`a`},outline:Boolean,push:Boolean,flat:Boolean,unelevated:Boolean,color:String,textColor:String,glossy:Boolean,square:Boolean,padding:String,label:{type:[String,Number],default:``},labelPosition:{type:String,default:`right`,validator:e=>oe.includes(e)},externalLabel:Boolean,hideLabel:{type:Boolean},labelClass:[Array,String,Object],labelStyle:[Array,String,Object],disable:Boolean,tabindex:[Number,String]},se=[`label`],ce=Object.keys(Q).filter(e=>!se.includes(e)&&A.props[e]!==void 0);function le(e){let t={};for(let n of ce)t[n]=e[n];return t}function ue(e,t){return{formClass:y(()=>`q-fab--form-${e.square?`square`:`rounded`}`),stacked:y(()=>!e.externalLabel&&[`top`,`bottom`].includes(e.labelPosition)),labelProps:y(()=>{if(e.externalLabel){let n=e.hideLabel===null?!t.value:e.hideLabel;return{action:`push`,data:{class:[e.labelClass,`q-fab__label q-tooltip--style q-fab__label--external q-fab__label--external-${e.labelPosition}`+(n?` q-fab__label--external-hidden`:``)],style:e.labelStyle}}}return{action:[`left`,`top`].includes(e.labelPosition)?`unshift`:`push`,data:{class:[e.labelClass,`q-fab__label q-fab__label--internal q-fab__label--internal-${e.labelPosition}`+(e.hideLabel?` q-fab__label--internal-hidden`:``)],style:e.labelStyle}}})}}var de=[`up`,`right`,`down`,`left`],fe=[`left`,`center`,`right`],pe=180,me=j({name:`QFab`,props:{...Q,...N,icon:String,activeIcon:String,hideIcon:Boolean,hideLabel:{...Q.hideLabel,default:null},direction:{type:String,default:`right`,validator:e=>de.includes(e)},...K,persistent:Boolean,stagger:{type:Number,default:40},verticalActionsAlign:{type:String,default:`center`,validator:e=>fe.includes(e)}},emits:te,setup(e,{slots:n}){let i=d(null),a=g(e.modelValue===!0),o=ee(),s=S(),{formClass:c,stacked:u,labelProps:f}=ue(e,a),p=y(()=>!e.persistent),{show:m,hide:h,toggle:_}=L({showing:a,hideOnRouteChange:p}),v=0,{clearHoverTimer:b,hoverShow:x,hoverHide:C}=G({props:e,canShow:()=>!a.value,show:e=>{v=Date.now(),m(e)},canHide:()=>a.value,hide:h});r(a,b);function w(e){a.value&&Date.now()-v<pe||_(e)}let O=y(()=>({opened:a.value})),j=y(()=>`q-fab z-fab row inline justify-center q-fab--align-${e.verticalActionsAlign} ${c.value}`+(a.value?` q-fab--opened`:` q-fab--closed`)),M=y(()=>`q-fab__actions flex no-wrap inline q-fab__actions--${e.direction} q-fab__actions--${a.value?`opened`:`closed`}`),N=y(()=>e.hover?{onPointerenter:x,onPointerleave:C}:{}),P=y(()=>{let t={id:o.value,style:`--q-fab-stagger: ${e.stagger}ms`};return a.value||(t[`aria-hidden`]=`true`),t}),F=y(()=>`q-fab__icon-holder q-fab__icon-holder--${a.value?`opened`:`closed`}`);function I(t,r){let i=n[t],a=`q-fab__${t} absolute-full`;return i===void 0?l(E,{class:a,name:e[r]||s.iconSet.fab[r]}):l(`div`,{class:a},i(O.value))}function R(){let t=[];return e.hideIcon||t.push(l(`div`,{class:F.value},[I(`icon`,`icon`),I(`active-icon`,`activeIcon`)])),(e.label!==``||n.label!==void 0)&&t[f.value.action](l(`div`,f.value.data,n.label===void 0?[e.label]:n.label(O.value))),D(n.tooltip,t)}return t(k,{showing:a,onChildClick(e){h(e),e?.qAvoidFocus!==!0&&i.value?.$el.focus()}}),()=>l(`div`,{class:j.value,...N.value},[l(A,{ref:i,class:c.value,...le(e),noWrap:!0,stack:u.value,noCaps:!0,fab:!0,"aria-expanded":a.value?`true`:`false`,"aria-controls":o.value,onClick:w},R),l(`div`,{class:M.value,...P.value},T(n.default))])}}),he={position:{type:String,default:`bottom-right`,validator:e=>[`top-right`,`top-left`,`bottom-right`,`bottom-left`,`top`,`right`,`bottom`,`left`].includes(e)},offset:{type:Array,validator:e=>e.length===2},expand:Boolean};function ge(){let{props:e}=b(),t=S(),n=a(O,w);if(n===w)return console.error(`QPageSticky needs to be child of QLayout`),w;let r=y(()=>{let t=e.position;return{top:t.includes(`top`),right:t.includes(`right`),bottom:t.includes(`bottom`),left:t.includes(`left`),vertical:t===`top`||t===`bottom`,horizontal:t===`left`||t===`right`}}),i=y(()=>n.header.offset),o=y(()=>n.right.offset),s=y(()=>n.footer.offset),c=y(()=>n.left.offset),u=y(()=>{let n=0,a=0,l=r.value,u=t.lang.rtl?-1:1;l.top&&i.value!==0?a=`${i.value}px`:l.bottom&&s.value!==0&&(a=`${-s.value}px`),l.left&&c.value!==0?n=`${u*c.value}px`:l.right&&o.value!==0&&(n=`${-u*o.value}px`);let d={transform:`translate(${n}, ${a})`};return e.offset&&(d.margin=`${e.offset[1]}px ${e.offset[0]}px`),l.vertical?(c.value!==0&&(d[t.lang.rtl?`right`:`left`]=`${c.value}px`),o.value!==0&&(d[t.lang.rtl?`left`:`right`]=`${o.value}px`)):l.horizontal&&(i.value!==0&&(d.top=`${i.value}px`),s.value!==0&&(d.bottom=`${s.value}px`)),d}),d=y(()=>`q-page-sticky row flex-center fixed-${e.position} q-page-sticky--${e.expand?`expand`:`shrink`}`);function f(t){let n=T(t.default);return l(`div`,{class:d.value,style:u.value},e.expand?n:[l(`div`,n)])}return{$layout:n,getStickyContent:f}}var _e=j({name:`QPageSticky`,props:he,setup(e,{slots:t}){let{getStickyContent:n}=ge();return()=>n(t)}});function ve(e){let t=new URLSearchParams;e.search&&t.set(`search`,e.search),e.createdFrom&&t.set(`createdFrom`,e.createdFrom),e.createdTo&&t.set(`createdTo`,e.createdTo),e.files&&e.files.length>0&&t.set(`files`,e.files.join(`,`));let n=t.toString();return n?`?${n}`:``}var $=z(`reviews`,()=>{let e=g([]),t=g(!1),n=g(null);async function r(r={}){t.value=!0,n.value=null;try{e.value=await U(`/api/reviews${ve(r)}`)}catch(t){e.value=[],n.value=H(t)}finally{t.value=!1}}async function i(t){let n=await V(`/api/reviews`,t);return e.value=[Y(n),...e.value],n}return{reviews:e,loading:t,error:n,fetchReviews:r,createReview:i}}),ye={class:`text-h6`},be=W(c({__name:`ReviewCreateDialog`,props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:e([`created`,`hide`],[`update:modelValue`]),setup(e,{emit:t}){let r=o(e,`modelValue`),a=t,{t:c}=ne(),l=$(),d=g(``),f=g(!1),v=g(null);function y(){d.value=``,f.value=!1,v.value=null}async function b(){f.value=!0,v.value=null;try{let e=d.value.trim(),t=await l.createReview(e?{name:e}:{});r.value=!1,y(),a(`created`,t)}catch(e){v.value=H(e)}finally{f.value=!1}}function x(){y(),a(`hide`)}return(e,t)=>(i(),h(M,{modelValue:r.value,"onUpdate:modelValue":t[1]||=e=>r.value=e,onHide:x},{default:n(()=>[p(F,{class:`review-create-dialog`},{default:n(()=>[p(R,null,{default:n(()=>[u(`div`,ye,m(_(c)(`reviews.create.title`)),1)]),_:1}),p(R,{class:`q-gutter-y-md`},{default:n(()=>[p(I,{modelValue:d.value,"onUpdate:modelValue":t[0]||=e=>d.value=e,dense:``,outlined:``,label:_(c)(`reviews.create.nameLabel`),hint:_(c)(`reviews.create.nameHint`),error:!!v.value,"error-message":v.value??void 0,onKeyup:C(b,[`enter`])},null,8,[`modelValue`,`label`,`hint`,`error`,`error-message`])]),_:1}),p(P,{align:`right`},{default:n(()=>[s(p(ie,null,null,512),[[q]]),p(Z,{loading:f.value,onClick:b},null,8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]))}}),[[`__scopeId`,`data-v-095646d6`]]),xe=c({__name:`CreateReviewFabButton`,emits:[`created`],setup(e,{emit:t}){let r=t,a=X(),o=re(),{activeReview:c}=B(a),{changedPaths:l}=B(o),u=g(!1),d=g(!1),m=g([18,18]),h=g(!1),_=y(()=>l.value.length===0||c.value!==null);function b(e){h.value=e.isFirst!==!0&&e.isFinal!==!0,m.value=[m.value[0]-(e.delta?.x??0),m.value[1]-(e.delta?.y??0)]}function x(e){a.setActiveReview(e),r(`created`,e)}return(e,t)=>(i(),f(v,null,[p(_e,{position:`bottom-right`,offset:m.value},{default:n(()=>[s(p(me,{modelValue:d.value,"onUpdate:modelValue":t[0]||=e=>d.value=e,icon:`add`,color:`accent`,disable:_.value||h.value,onClick:t[1]||=e=>u.value=!0},null,8,[`modelValue`,`disable`]),[[J,b,void 0,{prevent:!0,mouse:!0}]])]),_:1},8,[`offset`]),p(be,{modelValue:u.value,"onUpdate:modelValue":t[2]||=e=>u.value=e,onCreated:x,onHide:t[3]||=e=>d.value=!1},null,8,[`modelValue`])],64))}});export{$ as n,ae as r,xe as t};
1
+ import{C as e,F as t,J as n,K as r,P as i,S as a,U as o,Y as s,_ as c,b as l,c as u,ct as d,d as f,h as p,kt as m,l as h,ot as g,pt as _,r as v,s as y,v as b,w as x}from"./runtime-core.esm-bundler-BKFI1w28.js";import{D as S,H as C,O as w,_ as T,d as E,h as D,j as O,k,t as A}from"./QBtn-CzrOO1zA.js";import{t as j}from"./create-BSmXD9Zr.js";import{_ as M,ct as N,f as P,m as F,n as I,ot as L,p as R,q as ee,st as te}from"./index-BqedItFI.js";import{n as ne}from"./vue-i18n.runtime-BpRrzZrT.js";import{n as z,r as B}from"./pinia-DCsnCHsH.js";import{f as V,s as H,u as U}from"./use-server-events-znzHKZZx.js";import{t as W}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{a as G,o as K,r as q,u as J}from"./QScrollArea-C4BKutrt.js";import{a as Y,i as X,n as Z,o as re,r as ie}from"./AppPage-BGcEFW_o.js";var ae=c({__name:`SearchInput`,props:{modelValue:{},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=o(e,`modelValue`);return(e,r)=>(i(),h(I,x({modelValue:t.value,"onUpdate:modelValue":r[0]||=e=>t.value=e},e.$attrs,{dense:``,outlined:``,clearable:``}),{prepend:n(()=>[p(E,{name:`search`,size:`xs`})]),_:1},16,[`modelValue`]))}}),oe=[`top`,`right`,`bottom`,`left`],Q={type:{type:String,default:`a`},outline:Boolean,push:Boolean,flat:Boolean,unelevated:Boolean,color:String,textColor:String,glossy:Boolean,square:Boolean,padding:String,label:{type:[String,Number],default:``},labelPosition:{type:String,default:`right`,validator:e=>oe.includes(e)},externalLabel:Boolean,hideLabel:{type:Boolean},labelClass:[Array,String,Object],labelStyle:[Array,String,Object],disable:Boolean,tabindex:[Number,String]},se=[`label`],ce=Object.keys(Q).filter(e=>!se.includes(e)&&A.props[e]!==void 0);function le(e){let t={};for(let n of ce)t[n]=e[n];return t}function ue(e,t){return{formClass:y(()=>`q-fab--form-${e.square?`square`:`rounded`}`),stacked:y(()=>!e.externalLabel&&[`top`,`bottom`].includes(e.labelPosition)),labelProps:y(()=>{if(e.externalLabel){let n=e.hideLabel===null?!t.value:e.hideLabel;return{action:`push`,data:{class:[e.labelClass,`q-fab__label q-tooltip--style q-fab__label--external q-fab__label--external-${e.labelPosition}`+(n?` q-fab__label--external-hidden`:``)],style:e.labelStyle}}}return{action:[`left`,`top`].includes(e.labelPosition)?`unshift`:`push`,data:{class:[e.labelClass,`q-fab__label q-fab__label--internal q-fab__label--internal-${e.labelPosition}`+(e.hideLabel?` q-fab__label--internal-hidden`:``)],style:e.labelStyle}}})}}var de=[`up`,`right`,`down`,`left`],fe=[`left`,`center`,`right`],pe=180,me=j({name:`QFab`,props:{...Q,...N,icon:String,activeIcon:String,hideIcon:Boolean,hideLabel:{...Q.hideLabel,default:null},direction:{type:String,default:`right`,validator:e=>de.includes(e)},...K,persistent:Boolean,stagger:{type:Number,default:40},verticalActionsAlign:{type:String,default:`center`,validator:e=>fe.includes(e)}},emits:te,setup(e,{slots:n}){let i=d(null),a=g(e.modelValue===!0),o=ee(),s=S(),{formClass:c,stacked:u,labelProps:f}=ue(e,a),p=y(()=>!e.persistent),{show:m,hide:h,toggle:_}=L({showing:a,hideOnRouteChange:p}),v=0,{clearHoverTimer:b,hoverShow:x,hoverHide:C}=G({props:e,canShow:()=>!a.value,show:e=>{v=Date.now(),m(e)},canHide:()=>a.value,hide:h});r(a,b);function w(e){a.value&&Date.now()-v<pe||_(e)}let O=y(()=>({opened:a.value})),j=y(()=>`q-fab z-fab row inline justify-center q-fab--align-${e.verticalActionsAlign} ${c.value}`+(a.value?` q-fab--opened`:` q-fab--closed`)),M=y(()=>`q-fab__actions flex no-wrap inline q-fab__actions--${e.direction} q-fab__actions--${a.value?`opened`:`closed`}`),N=y(()=>e.hover?{onPointerenter:x,onPointerleave:C}:{}),P=y(()=>{let t={id:o.value,style:`--q-fab-stagger: ${e.stagger}ms`};return a.value||(t[`aria-hidden`]=`true`),t}),F=y(()=>`q-fab__icon-holder q-fab__icon-holder--${a.value?`opened`:`closed`}`);function I(t,r){let i=n[t],a=`q-fab__${t} absolute-full`;return i===void 0?l(E,{class:a,name:e[r]||s.iconSet.fab[r]}):l(`div`,{class:a},i(O.value))}function R(){let t=[];return e.hideIcon||t.push(l(`div`,{class:F.value},[I(`icon`,`icon`),I(`active-icon`,`activeIcon`)])),(e.label!==``||n.label!==void 0)&&t[f.value.action](l(`div`,f.value.data,n.label===void 0?[e.label]:n.label(O.value))),D(n.tooltip,t)}return t(k,{showing:a,onChildClick(e){h(e),e?.qAvoidFocus!==!0&&i.value?.$el.focus()}}),()=>l(`div`,{class:j.value,...N.value},[l(A,{ref:i,class:c.value,...le(e),noWrap:!0,stack:u.value,noCaps:!0,fab:!0,"aria-expanded":a.value?`true`:`false`,"aria-controls":o.value,onClick:w},R),l(`div`,{class:M.value,...P.value},T(n.default))])}}),he={position:{type:String,default:`bottom-right`,validator:e=>[`top-right`,`top-left`,`bottom-right`,`bottom-left`,`top`,`right`,`bottom`,`left`].includes(e)},offset:{type:Array,validator:e=>e.length===2},expand:Boolean};function ge(){let{props:e}=b(),t=S(),n=a(O,w);if(n===w)return console.error(`QPageSticky needs to be child of QLayout`),w;let r=y(()=>{let t=e.position;return{top:t.includes(`top`),right:t.includes(`right`),bottom:t.includes(`bottom`),left:t.includes(`left`),vertical:t===`top`||t===`bottom`,horizontal:t===`left`||t===`right`}}),i=y(()=>n.header.offset),o=y(()=>n.right.offset),s=y(()=>n.footer.offset),c=y(()=>n.left.offset),u=y(()=>{let n=0,a=0,l=r.value,u=t.lang.rtl?-1:1;l.top&&i.value!==0?a=`${i.value}px`:l.bottom&&s.value!==0&&(a=`${-s.value}px`),l.left&&c.value!==0?n=`${u*c.value}px`:l.right&&o.value!==0&&(n=`${-u*o.value}px`);let d={transform:`translate(${n}, ${a})`};return e.offset&&(d.margin=`${e.offset[1]}px ${e.offset[0]}px`),l.vertical?(c.value!==0&&(d[t.lang.rtl?`right`:`left`]=`${c.value}px`),o.value!==0&&(d[t.lang.rtl?`left`:`right`]=`${o.value}px`)):l.horizontal&&(i.value!==0&&(d.top=`${i.value}px`),s.value!==0&&(d.bottom=`${s.value}px`)),d}),d=y(()=>`q-page-sticky row flex-center fixed-${e.position} q-page-sticky--${e.expand?`expand`:`shrink`}`);function f(t){let n=T(t.default);return l(`div`,{class:d.value,style:u.value},e.expand?n:[l(`div`,n)])}return{$layout:n,getStickyContent:f}}var _e=j({name:`QPageSticky`,props:he,setup(e,{slots:t}){let{getStickyContent:n}=ge();return()=>n(t)}});function ve(e){let t=new URLSearchParams;e.search&&t.set(`search`,e.search),e.createdFrom&&t.set(`createdFrom`,e.createdFrom),e.createdTo&&t.set(`createdTo`,e.createdTo),e.files&&e.files.length>0&&t.set(`files`,e.files.join(`,`));let n=t.toString();return n?`?${n}`:``}var $=z(`reviews`,()=>{let e=g([]),t=g(!1),n=g(null);async function r(r={}){t.value=!0,n.value=null;try{e.value=await U(`/api/reviews${ve(r)}`)}catch(t){e.value=[],n.value=H(t)}finally{t.value=!1}}async function i(t){let n=await V(`/api/reviews`,t);return e.value=[Y(n),...e.value],n}return{reviews:e,loading:t,error:n,fetchReviews:r,createReview:i}}),ye={class:`text-h6`},be=W(c({__name:`ReviewCreateDialog`,props:{modelValue:{type:Boolean,required:!0},modelModifiers:{}},emits:e([`created`,`hide`],[`update:modelValue`]),setup(e,{emit:t}){let r=o(e,`modelValue`),a=t,{t:c}=ne(),l=$(),d=g(``),f=g(!1),v=g(null);function y(){d.value=``,f.value=!1,v.value=null}async function b(){f.value=!0,v.value=null;try{let e=d.value.trim(),t=await l.createReview(e?{name:e}:{});r.value=!1,y(),a(`created`,t)}catch(e){v.value=H(e)}finally{f.value=!1}}function x(){y(),a(`hide`)}return(e,t)=>(i(),h(M,{modelValue:r.value,"onUpdate:modelValue":t[1]||=e=>r.value=e,onHide:x},{default:n(()=>[p(F,{class:`review-create-dialog`},{default:n(()=>[p(R,null,{default:n(()=>[u(`div`,ye,m(_(c)(`reviews.create.title`)),1)]),_:1}),p(R,{class:`q-gutter-y-md`},{default:n(()=>[p(I,{modelValue:d.value,"onUpdate:modelValue":t[0]||=e=>d.value=e,dense:``,outlined:``,label:_(c)(`reviews.create.nameLabel`),hint:_(c)(`reviews.create.nameHint`),error:!!v.value,"error-message":v.value??void 0,onKeyup:C(b,[`enter`])},null,8,[`modelValue`,`label`,`hint`,`error`,`error-message`])]),_:1}),p(P,{align:`right`},{default:n(()=>[s(p(ie,null,null,512),[[q]]),p(Z,{loading:f.value,onClick:b},null,8,[`loading`])]),_:1})]),_:1})]),_:1},8,[`modelValue`]))}}),[[`__scopeId`,`data-v-095646d6`]]),xe=c({__name:`CreateReviewFabButton`,emits:[`created`],setup(e,{emit:t}){let r=t,a=X(),o=re(),{activeReview:c}=B(a),{changedPaths:l}=B(o),u=g(!1),d=g(!1),m=g([18,18]),h=g(!1),_=y(()=>l.value.length===0||c.value!==null);function b(e){h.value=e.isFirst!==!0&&e.isFinal!==!0,m.value=[m.value[0]-(e.delta?.x??0),m.value[1]-(e.delta?.y??0)]}function x(e){a.setActiveReview(e),r(`created`,e)}return(e,t)=>(i(),f(v,null,[p(_e,{position:`bottom-right`,offset:m.value},{default:n(()=>[s(p(me,{modelValue:d.value,"onUpdate:modelValue":t[0]||=e=>d.value=e,icon:`add`,color:`accent`,disable:_.value||h.value,onClick:t[1]||=e=>u.value=!0},null,8,[`modelValue`,`disable`]),[[J,b,void 0,{prevent:!0,mouse:!0}]])]),_:1},8,[`offset`]),p(be,{modelValue:u.value,"onUpdate:modelValue":t[2]||=e=>u.value=e,onCreated:x,onHide:t[3]||=e=>d.value=!1},null,8,[`modelValue`])],64))}});export{$ as n,ae as r,xe as t};
@@ -1 +1 @@
1
- import{C as e,Dt as t,F as n,I as r,J as i,K as a,L as o,M as s,O as c,Ot as l,P as u,R as d,T as f,U as p,W as m,Y as h,_ as g,b as _,c as v,ct as y,d as b,ft as x,h as S,j as C,kt as w,l as T,m as E,ot as D,pt as O,r as k,rt as A,s as j,tt as M,u as N}from"./runtime-core.esm-bundler-BKFI1w28.js";import{D as P,U as F,_ as I,d as L,h as ee,o as R,s as z,t as B}from"./QBtn-CzrOO1zA.js";import{u as te}from"./event-rR76ioXz.js";import{t as ne}from"./create-BSmXD9Zr.js";import{R as V,d as H,g as re,h as ie,q as ae,t as oe}from"./index-DEwYKvIG.js";import{n as U}from"./vue-i18n.runtime-BpRrzZrT.js";import{n as se,r as W}from"./pinia-DCsnCHsH.js";import{f as ce,n as le,o as ue,p as de,s as fe,u as pe}from"./use-server-events-znzHKZZx.js";import{t as me}from"./agent-store-DX4gIEHa.js";import{t as he}from"./safe-storage-B3bJArYP.js";import{t as G}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{c as K,l as q,n as ge,t as _e,u as ve}from"./QScrollArea-Cu8zdp0y.js";import{i as ye,n as be,t as xe}from"./QSpace-CEuZSBS2.js";import{a as Se,i as J,n as Ce,o as we,t as Te}from"./use-panel-width-e-yXva8i.js";import{r as Ee}from"./use-virtual-scroll-CIwaJCUj.js";import{f as De,i as Y,m as Oe,o as X,p as Z,t as ke}from"./AppPage-CiRB13sb.js";import{C as Ae,S as je,_ as Me,a as Ne,b as Pe,c as Fe,d as Ie,f as Le,g as Re,h as ze,i as Be,l as Ve,m as He,n as Ue,o as We,p as Ge,r as Ke,s as qe,t as Je,u as Ye,v as Xe,x as Ze,y as Qe}from"./StatusSwitcher--zNcE2-Y.js";import{r as $e,t as et}from"./CreateReviewFabButton-DTvX9Psc.js";var tt=8,nt=12,rt=20;function Q(e,t){return tt+e*nt+(t?rt:0)}function it(e){return e.toSorted((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1).map(e=>({...e,children:e.children?it(e.children):void 0}))}function at(e,t){let n=[],r=new Map,i=e=>{let t=r.get(e);return t||(t=new Map,r.set(e,t)),t};for(let r of e){let e=r.split(`/`),a=n,o=``;for(let n=0;n<e.length;n++){let s=e[n];if(!s)continue;let c=n===e.length-1;o=o===``?s:`${o}/${s}`;let l=`${c?`f`:`d`}:${s}`,u=i(a),d=u.get(l);d||(d={name:s,path:c?r:o,type:c?`file`:`directory`,isChanged:c?t.has(r):!1,children:c?void 0:[]},a.push(d),u.set(l,d)),!c&&d.children&&(a=d.children)}}return it(n)}function ot(e,t){if(!t.trim())return e;let n=t.toLowerCase(),r=e=>{if(e.type===`file`)return e.path.toLowerCase().includes(n)?e:null;let t=e.children?.map(r).filter(e=>e!==null);return t&&t.length>0?{...e,children:t}:e.name.toLowerCase().includes(n)?e:null};return e.map(r).filter(e=>e!==null)}function st(e,t,n){let r=[],i=(e,a)=>{for(let o of e){if(o.type===`file`){r.push({kind:`file`,path:o.path,name:o.name,depth:a});continue}let e=o,s=[e.path],c=[e.name];for(;e.children?.length===1&&e.children[0]?.type===`directory`;)e=e.children[0],s.push(e.path),c.push(e.name);let l=n||!s.some(e=>t.has(e));r.push({kind:`folder`,path:e.path,paths:s,name:c.join(`/`),depth:a,expanded:l}),l&&i(e.children??[],a+1)}};return i(e,0),r}function ct(){let e=D([]),t=D(!1),n=D(!1),r=D(null),i=j(()=>!n.value),a=0;async function o(i,o=[]){let s=++a;t.value=!0;try{let t=await pe(`/api/git/tree/${encodeURIComponent(i)}`);if(s!==a)return;e.value=at(t.files.map(Oe),new Set(o)),r.value=null}catch(e){if(s!==a)return;r.value=fe(e)}finally{s===a&&(t.value=!1,n.value=!0)}}function s(){++a,e.value=[],t.value=!1,n.value=!1,r.value=null}return{tree:e,loading:t,initialLoading:i,error:r,fetchTree:o,reset:s}}var lt=`githuman.diffListMode`;function ut(){return he.get(lt)===`tree`?`tree`:`list`}function dt(e,t=new Set){for(let n of e)n.type===`directory`&&(t.add(n.path),dt(n.children??[],t));return t}function ft(e){return e.type===`file`?e.isChanged:e.children?.some(ft)??!1}var $=se(`file-explorer`,()=>{let e=X(),{tree:t,initialLoading:n,error:r,fetchTree:i,reset:o}=ct(),{lines:s,isBinary:c,loading:l,error:u,fetchContent:d,reset:f}=je(),p=D(`unstaged`),m=D(!1),h=D(``),g=D(null),_=D(new Set),v=D(new Set),y=D(ut()),b=D(new Set),x=D(null),S=D(0),C=j(()=>p.value===`staged`?e.stagedFiles:e.unstagedFiles),w=j(()=>new Map(C.value.map(e=>[Z(e),e]))),T=j(()=>y.value===`tree`?at(C.value.map(Z),new Set):[]),E=j(()=>{let e=C.value;if(y.value===`list`)return e;let t=w.value,n=st(T.value,new Set,!0).flatMap(e=>e.kind===`file`?t.get(e.path)??[]:[]),r=new Set(n);return[...n,...e.filter(e=>!r.has(e))]}),O=j(()=>(h.value??``).trim()!==``),k=j(()=>{let e=(h.value??``).trim().toLowerCase();return e?E.value.filter(t=>Z(t).toLowerCase().includes(e)):E.value}),A=j(()=>{let e=w.value;return st(ot(T.value,(h.value??``).trim()),b.value,O.value).flatMap(t=>{if(t.kind===`folder`)return[t];let n=e.get(t.path);return n?[{...t,file:n}]:[]})}),M=j(()=>ot(t.value,h.value??``)),N=j(()=>{let e=0,n=t=>{for(let r of t)r.type===`file`?e++:r.children&&n(r.children)};return n(t.value),e});a(t,e=>{let t=new Set,n=e=>{for(let r of e)r.type===`directory`&&r.children&&(ft(r)&&t.add(r.path),n(r.children))};n(e),_.value=t},{immediate:!0}),a(p,()=>{g.value=null,v.value=new Set,b.value=new Set,x.value=null,S.value++}),a(T,e=>{if(y.value!==`tree`||b.value.size===0)return;let t=dt(e),n=[...b.value].filter(e=>t.has(e));n.length<b.value.size&&(b.value=new Set(n))}),a(g,e=>{if(m.value){if(!e){f();return}d(e,`WORKTREE`)}}),a(y,e=>{he.set(lt,e),g.value&&!m.value&&te(g.value)});function P(e){let t=new Set(b.value),n=e.some(e=>t.has(e));for(let r of e)n?t.delete(r):t.add(r);b.value=t}function F(e){let t=new Set(_.value);t.has(e)?t.delete(e):t.add(e),_.value=t}function I(e){let t=new Set(v.value);t.has(e)?t.delete(e):t.add(e),v.value=t}function L(e){g.value=e,I(e)}function ee(e){g.value=e,v.value.has(e)||(v.value=new Set(v.value).add(e))}function R(){v.value=new Set(E.value.map(Z)),S.value++}function z(){v.value=new Set,S.value++}function B(e){g.value=e,!m.value&&(v.value.has(e)||(v.value=new Set(v.value).add(e)),te(e))}function te(e){let t=E.value.findIndex(t=>Z(t)===e);t<0||(x.value={path:e,index:t,seq:(x.value?.seq??0)+1})}let ne=0,V=D(!1),H=ue(async()=>{V.value=!0;try{await e.fetchDiff(),m.value&&(await i(`WORKTREE`,e.changedPaths),g.value&&await d(g.value,`WORKTREE`))}finally{V.value=!1}});a(m,e=>{h.value=``,g.value=null,e?H():(o(),f())});async function re(){ne=Date.now(),await H()}async function ie(){Date.now()-ne<400||await H()}return{source:p,browseMode:m,filter:h,selectedPath:g,expandedFolders:_,expandedFiles:v,diffListMode:y,collapsedDiffFolders:b,scrollRequest:x,layoutVersion:S,tree:t,treeInitialLoading:n,treeError:r,refreshing:V,browseFileLines:s,browseFileIsBinary:c,browseFileLoading:l,browseFileError:u,diffFiles:E,filtering:O,filteredDiffFiles:k,diffTreeRows:A,filteredTree:M,totalTreeFiles:N,toggleFolder:F,toggleDiffFolder:P,toggleFileCard:I,handleCardToggle:L,expandFile:ee,expandAllFiles:R,collapseAllFiles:z,selectFile:B,refresh:re,refreshFromServerEvent:ie}}),pt=ne({name:`QSplitter`,props:{...re,modelValue:{type:Number,required:!0},reverse:Boolean,unit:{type:String,default:`%`,validator:e=>[`%`,`px`].includes(e)},limits:{type:Array,validator:e=>e.length!==2||typeof e[0]!=`number`||typeof e[1]!=`number`?!1:e[0]>=0&&e[0]<=e[1]},emitImmediately:Boolean,horizontal:Boolean,disable:Boolean,beforeClass:[Array,String,Object],afterClass:[Array,String,Object],separatorClass:[Array,String,Object],separatorStyle:[Array,String,Object],separatorAriaLabel:String},emits:[`update:modelValue`],setup(e,{slots:t,emit:n}){let r=P(),i=ie(e,r),o=y(null),s={before:y(null),after:y(null)},c=ae(),l=j(()=>`q-splitter no-wrap ${e.horizontal?`q-splitter--horizontal column`:`q-splitter--vertical row`} q-splitter--${e.disable?`disabled`:`workable`}`+(i()?` q-splitter--dark`:``)),u=j(()=>e.horizontal?`height`:`width`),d=j(()=>e.reverse?`after`:`before`),p=j(()=>e.limits===void 0?e.unit===`%`?[10,90]:[50,1/0]:e.limits);function m(t){return(e.unit===`%`?t:Math.round(t))+e.unit}let g=j(()=>({[d.value]:{[u.value]:m(e.modelValue)}})),v,b,x,S,C;function w(t){if(t.isFirst){let t=o.value.getBoundingClientRect()[u.value];v=e.horizontal?`up`:`left`,b=e.unit===`%`?100:t,x=Math.min(b,p.value[1],Math.max(p.value[0],e.modelValue)),S=(e.reverse?-1:1)*(e.horizontal?1:r.lang.rtl?-1:1)*(e.unit===`%`?t===0?0:100/t:1),o.value.classList.add(`q-splitter--active`);return}if(t.isFinal){C!==e.modelValue&&n(`update:modelValue`,C),o.value.classList.remove(`q-splitter--active`);return}let i=x+S*(t.direction===v?-1:1)*t.distance[e.horizontal?`y`:`x`];C=Math.min(b,p.value[1],Math.max(p.value[0],i)),s[d.value].value.style[u.value]=m(C),e.emitImmediately&&e.modelValue!==C&&n(`update:modelValue`,C)}let T=j(()=>[[ve,e.disable?void 0:w,void 0,{[e.horizontal?`vertical`:`horizontal`]:!0,prevent:!0,stop:!0,mouse:!0,mouseAllDir:!0}]]),E=j(()=>{let t={role:`separator`,"aria-orientation":e.horizontal?`horizontal`:`vertical`,"aria-label":e.separatorAriaLabel||r.lang.label.resize};if(e.disable)t[`aria-disabled`]=`true`;else{let n=p.value;t.tabindex=0,t[`aria-controls`]=c.value,t[`aria-valuemin`]=n[0],n[1]!==1/0&&(t[`aria-valuemax`]=n[1]),t[`aria-valuenow`]=Math.round(e.modelValue*100)/100}return t}),D=null;function O(t){let{keyCode:i}=t,a=e.horizontal?[38,40]:[37,39];if(i!==13&&i!==36&&i!==35&&!a.includes(i))return;te(t);let s=p.value,c=e.unit===`%`?100:o.value.getBoundingClientRect()[u.value],l;if(i===13)e.modelValue===s[0]?l=D===null?e.modelValue:D:(D=e.modelValue,l=s[0]);else if(i===36)l=s[0];else if(i===35)l=s[1];else{let t=(i===a[0]?-1:1)*(e.reverse?-1:1)*(e.horizontal?1:r.lang.rtl?-1:1);l=e.modelValue+t*(e.unit===`%`?1:10)}let d=Math.min(c,s[1],Math.max(s[0],l));d!==e.modelValue&&n(`update:modelValue`,d)}function k(e,t){e<t[0]?n(`update:modelValue`,t[0]):e>t[1]&&n(`update:modelValue`,t[1])}return a(()=>e.modelValue,e=>{k(e,p.value)}),a(()=>e.limits,()=>{f(()=>{k(e.modelValue,p.value)})}),()=>{let n=[_(`div`,{ref:s.before,id:d.value===`before`?c.value:void 0,class:[`q-splitter__panel q-splitter__before`+(e.reverse?` col`:``),e.beforeClass],style:g.value.before},I(t.before)),_(`div`,{class:[`q-splitter__separator`,e.separatorClass],style:e.separatorStyle,...E.value,onKeydown:e.disable?void 0:O},[h(_(`div`,{class:`q-splitter__separator-area absolute-full`},I(t.separator)),T.value)]),_(`div`,{ref:s.after,id:d.value===`after`?c.value:void 0,class:[`q-splitter__panel q-splitter__after`+(e.reverse?``:` col`),e.afterClass],style:g.value.after},I(t.after))];return _(`div`,{class:l.value,ref:o},ee(t.default,n))}}}),mt=`githuman.fileListWidth`,ht=260,gt=220,_t=600,vt=G(g({__name:`PanelResize`,setup(e){let t=D(Ce(mt,gt,_t)??ht),n=j(()=>[gt,_t]);function r(e){de(e)&&(t.value=Te(e,gt,_t),he.set(mt,String(t.value)))}return(e,a)=>(u(),T(pt,{"model-value":t.value,limits:n.value,unit:`px`,class:`file-explorer`,"before-class":`file-explorer__panel`,"after-class":`file-explorer__content`,"onUpdate:modelValue":r},{before:i(()=>[o(e.$slots,`panel`,{},void 0,!0)]),after:i(()=>[o(e.$slots,`content`,{},void 0,!0)]),_:3},8,[`model-value`,`limits`]))}}),[[`__scopeId`,`data-v-d0bbc6dd`]]),yt={class:`row items-center no-wrap q-gutter-x-xs`},bt={class:`row items-center no-wrap q-gutter-x-xs`},xt=g({__name:`FileExplorerTabs`,props:e({stagedFilesLength:{},unstagedFilesLength:{}},{modelValue:{default:`unstaged`},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=p(e,`modelValue`),{t:n}=U();return(r,a)=>(u(),T(Se,{modelValue:t.value,"onUpdate:modelValue":a[0]||=e=>t.value=e,dense:``,"no-caps":``,align:`left`,"narrow-indicator":``,class:`text-primary q-mb-sm`},{default:i(()=>[S(we,{name:`unstaged`},{default:i(()=>[v(`div`,yt,[v(`span`,null,w(O(n)(`changes.unstaged`)),1),S(ge,{color:`warning`,rounded:``},{default:i(()=>[E(w(e.unstagedFilesLength),1)]),_:1})])]),_:1}),S(we,{name:`staged`},{default:i(()=>[v(`div`,bt,[v(`span`,null,w(O(n)(`changes.staged`)),1),S(ge,{color:`positive`,rounded:``},{default:i(()=>[E(w(e.stagedFilesLength),1)]),_:1})])]),_:1})]),_:1},8,[`modelValue`]))}}),St={class:`file-tree-node`},Ct={class:`row items-center no-wrap q-gutter-x-xs`},wt=[`data-tooltip`],Tt=[`data-tooltip`],Et={key:2},Dt=G(g({__name:`FileTreeNode`,props:{node:{},selectedPath:{},expandedFolders:{},level:{}},emits:[`toggle-folder`,`file-select`],setup(e,{emit:n}){let a=n;return(n,o)=>{let s=d(`FileTreeNode`,!0);return u(),b(`div`,St,[e.node.type===`directory`?h((u(),T(K,{key:0,clickable:``,dense:``,style:l({paddingLeft:`${O(Q)(e.level,!1)}px`}),onClick:o[0]||=t=>a(`toggle-folder`,e.node.path)},{default:i(()=>[S(q,{avatar:``,class:`file-tree-node__icon-section`},{default:i(()=>[v(`div`,Ct,[S(L,{name:`chevron_right`,size:`xs`,class:t([`file-tree-node__chevron`,{"file-tree-node__chevron--expanded":e.expandedFolders.has(e.node.path)}])},null,8,[`class`]),S(L,{name:e.expandedFolders.has(e.node.path)?`folder_open`:`folder`,size:`xs`,color:`warning`},null,8,[`name`])])]),_:1}),S(q,{class:`text-mono`},{default:i(()=>[v(`div`,{class:`ellipsis file-tree-node__label`,"data-tooltip":e.node.path},w(e.node.name),9,wt)]),_:1}),e.node.children?(u(),T(q,{key:0,side:``,class:`text-caption text-grey-6`},{default:i(()=>[E(w(e.node.children.length),1)]),_:1})):N(``,!0)]),_:1},8,[`style`])),[[R]]):h((u(),T(K,{key:1,clickable:``,dense:``,active:e.node.path===e.selectedPath,"active-class":`file-tree-node--selected`,style:l({paddingLeft:`${O(Q)(e.level,!0)}px`}),onClick:o[1]||=t=>a(`file-select`,e.node.path)},{default:i(()=>[S(q,{avatar:``,class:`file-tree-node__icon-section`},{default:i(()=>[S(L,{name:`insert_drive_file`,size:`xs`,color:`grey-6`})]),_:1}),S(q,{class:`text-mono`},{default:i(()=>[v(`div`,{class:`ellipsis file-tree-node__label`,"data-tooltip":e.node.path},w(e.node.name),9,Tt)]),_:1}),e.node.isChanged?(u(),T(q,{key:0,side:``},{default:i(()=>[S(L,{name:`fiber_manual_record`,size:`8px`,color:`warning`})]),_:1})):N(``,!0)]),_:1},8,[`active`,`style`])),[[R]]),e.node.type===`directory`&&e.expandedFolders.has(e.node.path)&&e.node.children?(u(),b(`div`,Et,[(u(!0),b(k,null,r(e.node.children,t=>(u(),T(s,{key:t.path,node:t,"selected-path":e.selectedPath,"expanded-folders":e.expandedFolders,level:e.level+1,onToggleFolder:o[2]||=e=>a(`toggle-folder`,e),onFileSelect:o[3]||=e=>a(`file-select`,e)},null,8,[`node`,`selected-path`,`expanded-folders`,`level`]))),128))])):N(``,!0)])}}}),[[`__scopeId`,`data-v-ef4a1d44`]]);function Ot(){let e=P(),{t}=U(),n=ye(),r=$(),i=Y();async function a(e,i,a){try{await ce(i,{paths:[e]}),await r.refresh()}catch(e){n(t(a),e)}}function o(n){let r=(i.commentsByFile.get(n)??[]).filter(e=>!e.resolved).length;if(r===0)return a(n,`/api/git/stage`,`changes.actions.stageError`);e.dialog({title:t(`changes.actions.stageUnresolvedTitle`),message:t(`changes.actions.stageUnresolvedMessage`,{path:n,count:r}),persistent:!0,ok:{label:t(`changes.actions.stageUnresolvedOk`),flat:!0},cancel:{label:t(`changes.actions.discardConfirmCancel`),flat:!0}}).onOk(()=>{a(n,`/api/git/stage`,`changes.actions.stageError`)})}function s(e){return a(e,`/api/git/unstage`,`changes.actions.unstageError`)}function c(n){e.dialog({title:t(`changes.actions.discardConfirmTitle`),message:t(`changes.actions.discardConfirmMessage`,{path:n}),persistent:!0,ok:{label:t(`changes.actions.discardConfirmOk`),color:`negative`,flat:!0},cancel:{label:t(`changes.actions.discardConfirmCancel`),flat:!0}}).onOk(()=>{a(n,`/api/git/discard`,`changes.actions.discardError`)})}return{stage:o,unstage:s,discard:c}}var kt={class:`file-list-item__path-row row no-wrap items-center`},At=[`data-tooltip`],jt={class:`text-caption`},Mt={class:`text-positive`},Nt={class:`text-negative q-ml-xs`},Pt=G(g({__name:`FileListItem`,props:{file:{},selected:{type:Boolean},source:{},label:{},depth:{}},emits:[`click`],setup(e){let n={added:`A`,modified:`M`,deleted:`D`,renamed:`R`},r={added:`positive`,modified:`warning`,deleted:`negative`,renamed:`purple`},a=e,{t:o}=U(),{stage:s,unstage:c,discard:d}=Ot(),f=Y(),p=j(()=>Z(a.file)),m=j(()=>f.commentsByFile.get(p.value)?.length??0);return(a,f)=>h((u(),T(K,{clickable:``,dense:``,class:`file-list-item`,active:e.selected,"active-class":`file-list-item--selected`,"aria-label":e.label===void 0?void 0:p.value,style:l(e.depth===void 0?void 0:{paddingLeft:`${O(Q)(e.depth,!0)}px`}),onClick:f[3]||=e=>a.$emit(`click`)},{default:i(()=>[S(q,{avatar:``,class:`file-list-item__icon-section`},{default:i(()=>[v(`span`,{class:t([`text-caption text-weight-bold text-mono`,`text-${r[e.file.status]}`])},w(n[e.file.status]),3)]),_:1}),S(q,{class:`text-mono`},{default:i(()=>[v(`div`,kt,[v(`span`,{class:`ellipsis file-list-item__path-label`,"data-tooltip":p.value},w(e.label??p.value),9,At),m.value>0?(u(),T(Ze,{key:0,compact:``,class:`file-list-item__badge`,count:m.value},null,8,[`count`])):N(``,!0)])]),_:1}),S(q,{side:``,class:`file-list-item__stats`},{default:i(()=>[v(`span`,jt,[v(`span`,Mt,`+`+w(e.file.additions),1),v(`span`,Nt,`-`+w(e.file.deletions),1)])]),_:1}),S(q,{side:``,class:`file-list-item__actions`},{default:i(()=>[e.source===`unstaged`?(u(),b(k,{key:0},[h(S(B,{flat:``,dense:``,round:``,size:`sm`,icon:`undo`,"aria-label":O(o)(`changes.actions.discard`),"data-tooltip":O(o)(`changes.actions.discard`),onClick:f[0]||=F(e=>O(d)(p.value),[`stop`])},null,8,[`aria-label`,`data-tooltip`]),[[R]]),h(S(B,{flat:``,dense:``,round:``,size:`sm`,icon:`add`,"aria-label":O(o)(`changes.actions.stage`),"data-tooltip":O(o)(`changes.actions.stage`),onClick:f[1]||=F(e=>O(s)(p.value),[`stop`])},null,8,[`aria-label`,`data-tooltip`]),[[R]])],64)):h((u(),T(B,{key:1,flat:``,dense:``,round:``,size:`sm`,icon:`remove`,"aria-label":O(o)(`changes.actions.unstage`),"data-tooltip":O(o)(`changes.actions.unstage`),onClick:f[2]||=F(e=>O(c)(p.value),[`stop`])},null,8,[`aria-label`,`data-tooltip`])),[[R]])]),_:1})]),_:1},8,[`active`,`aria-label`,`style`])),[[R]])}}),[[`__scopeId`,`data-v-a94df6a5`]]),Ft=g({__name:`BrowseModeToggle`,props:{modelValue:{type:Boolean,default:!1},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=p(e,`modelValue`),{t:n}=U();return(e,r)=>(u(),T(K,null,{default:i(()=>[S(q,null,{default:i(()=>[S(Ee,null,{default:i(()=>[E(w(O(n)(`browse.toggle`)),1)]),_:1})]),_:1}),S(q,{side:``},{default:i(()=>[S(oe,{modelValue:t.value,"onUpdate:modelValue":r[0]||=e=>t.value=e,dense:``,size:`xs`},null,8,[`modelValue`])]),_:1})]),_:1}))}}),It={class:`row items-center no-wrap q-gutter-x-xs`},Lt=[`data-tooltip`],Rt=G(g({__name:`DiffTreeFolderRow`,props:{name:{},path:{},depth:{},expanded:{type:Boolean},locked:{type:Boolean}},emits:[`toggle`],setup(e){let{t:n}=U();return(r,a)=>h((u(),T(K,{clickable:!e.locked,dense:``,class:`file-list-item diff-tree-folder-row`,style:l({paddingLeft:`${O(Q)(e.depth,!1)}px`}),"aria-expanded":e.locked?void 0:e.expanded,"aria-label":e.locked?void 0:O(n)(`changes.listMode.folder`,{path:e.path}),onClick:a[0]||=e=>r.$emit(`toggle`)},{default:i(()=>[S(q,{avatar:``,class:`diff-tree-folder-row__icons`},{default:i(()=>[v(`div`,It,[S(L,{name:`chevron_right`,size:`xs`,class:t([`diff-tree-folder-row__chevron`,{"diff-tree-folder-row__chevron--expanded":e.expanded,invisible:e.locked}])},null,8,[`class`]),S(L,{name:e.expanded?`folder_open`:`folder`,size:`xs`,color:`warning`},null,8,[`name`])])]),_:1}),S(q,{class:`text-mono`},{default:i(()=>[v(`span`,{class:`ellipsis`,"data-tooltip":e.path},w(e.name),9,Lt)]),_:1})]),_:1},8,[`clickable`,`style`,`aria-expanded`,`aria-label`])),[[R,!e.locked]])}}),[[`__scopeId`,`data-v-e82c6cd4`]]),zt={class:`file-list-panel__header q-pa-sm`},Bt={key:1,class:`text-subtitle2 q-mb-sm`},Vt={key:0,class:`text-primary`},Ht={class:`row no-wrap items-center q-gutter-x-xs`},Ut={key:0,class:`row justify-center q-pa-lg`},Wt={key:0,class:`text-caption text-grey-6 q-px-md q-py-sm`},Gt={key:0,class:`text-caption text-grey-6 q-px-md q-py-sm`},Kt=32,qt=G(g({__name:`FileListPanel`,setup(e){let{t}=U(),{stagedFiles:n,unstagedFiles:a,initialLoading:o,error:s}=W(X()),c=$(),{source:l,browseMode:d,filter:f,selectedPath:p,expandedFolders:m,treeInitialLoading:h,treeError:g,filteredDiffFiles:_,diffTreeRows:y,diffListMode:x,filtering:C,filteredTree:A,totalTreeFiles:P}=W(c),F=D(null),I=j(()=>F.value?.getScrollTarget()??null);return(e,D)=>(u(),b(k,null,[v(`div`,zt,[O(d)?(u(),b(`div`,Bt,[E(w(O(t)(`browse.allFiles`))+` `,1),O(P)>0||!O(g)?(u(),b(`span`,Vt,`(`+w(O(P))+`)`,1)):N(``,!0)])):(u(),T(xt,{key:0,modelValue:O(l),"onUpdate:modelValue":D[0]||=e=>M(l)?l.value=e:null,"staged-files-length":O(n).length,"unstaged-files-length":O(a).length},null,8,[`modelValue`,`staged-files-length`,`unstaged-files-length`])),v(`div`,Ht,[S($e,{modelValue:O(f),"onUpdate:modelValue":D[1]||=e=>M(f)?f.value=e:null,class:`col`,placeholder:O(d)?O(t)(`browse.searchPlaceholder`):O(t)(`changes.filterPlaceholder`)},null,8,[`modelValue`,`placeholder`]),O(d)?N(``,!0):(u(),T(B,{key:0,flat:``,dense:``,round:``,size:`sm`,icon:`account_tree`,color:O(x)===`tree`?`primary`:void 0,"aria-label":O(t)(`changes.listMode.tree`),"aria-pressed":O(x)===`tree`,onClick:D[2]||=e=>x.value=O(x)===`tree`?`list`:`tree`},{default:i(()=>[S(V,{delay:O(500)},{default:i(()=>[E(w(O(t)(`changes.listMode.tree`)),1)]),_:1},8,[`delay`])]),_:1},8,[`color`,`aria-label`,`aria-pressed`]))])]),S(H),S(_e,{ref_key:`scrollArea`,ref:F,class:`col file-list-panel__scroll`,"content-style":`padding: 4px 0`,"content-active-style":`padding: 4px 0`},{default:i(()=>[(O(d)?O(h):O(o))?(u(),b(`div`,Ut,[S(z,{color:`primary`,size:`2em`})])):O(d)?(u(),b(k,{key:1},[O(A).length===0&&(!O(g)||O(f)&&O(P)>0)?(u(),b(`p`,Wt,w(O(f)?O(t)(`browse.noMatchingFiles`):O(t)(`browse.noFiles`)),1)):N(``,!0),(u(!0),b(k,null,r(O(A),e=>(u(),T(Dt,{key:e.path,node:e,"selected-path":O(p),"expanded-folders":O(m),level:0,onToggleFolder:O(c).toggleFolder,onFileSelect:O(c).selectFile},null,8,[`node`,`selected-path`,`expanded-folders`,`onToggleFolder`,`onFileSelect`]))),128))],64)):(u(),b(k,{key:2},[O(_).length===0&&(O(f)||!O(s))?(u(),b(`p`,Gt,w(O(f)?O(t)(`browse.noMatchingFiles`):O(t)(`changes.emptyFileList`)),1)):N(``,!0),I.value&&O(x)===`tree`?(u(),T(J,{key:`${O(l)}:tree`,"scroll-target":I.value,items:O(y),"virtual-scroll-item-size":Kt},{default:i(({item:e})=>[e.kind===`folder`?(u(),T(Rt,{key:`d:${e.path}`,name:e.name,path:e.path,depth:e.depth,expanded:e.expanded,locked:O(C),onToggle:t=>O(c).toggleDiffFolder(e.paths)},null,8,[`name`,`path`,`depth`,`expanded`,`locked`,`onToggle`])):(u(),T(Pt,{key:`f:${e.path}`,file:e.file,label:e.name,depth:e.depth,selected:O(p)===e.path,source:O(l),onClick:t=>O(c).selectFile(e.path)},null,8,[`file`,`label`,`depth`,`selected`,`source`,`onClick`]))]),_:1},8,[`scroll-target`,`items`])):I.value?(u(),T(J,{key:`${O(l)}:list`,"scroll-target":I.value,items:O(_),"virtual-scroll-item-size":Kt},{default:i(({item:e})=>[(u(),T(Pt,{key:O(Z)(e),file:e,selected:O(p)===O(Z)(e),source:O(l),onClick:t=>O(c).selectFile(O(Z)(e))},null,8,[`file`,`selected`,`source`,`onClick`]))]),_:1},8,[`scroll-target`,`items`])):N(``,!0)],64))]),_:1},512),S(H),S(Ft,{modelValue:O(d),"onUpdate:modelValue":D[3]||=e=>M(d)?d.value=e:null},null,8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-bdc095b7`]]),Jt=[`wheel`,`pointerdown`,`keydown`,`touchstart`];function Yt(e){let t=e.inputTarget??(typeof document>`u`?null:document),n=e.follow??Xe,r=null,i;function o(){r=x(e.request),i?.(),i=void 0}for(let e of Jt)t?.addEventListener(e,o,{capture:!0,passive:!0});let s=a([()=>x(e.request),()=>x(e.list),()=>x(e.root)],([t,a,o],s,c)=>{if(!t||t===r||!a||!o)return;let l=!1,u,d=()=>{l=!0,u?.(),u=void 0};i=d,c(()=>{d(),x(e.request)===t&&(r=t),i===d&&(i=void 0)}),f().then(()=>{l||t===r||(a.scrollTo(t.index,`start`),u=n({root:o,target:()=>e.target?e.target(t):document.getElementById(`diff-file-${t.path}`)}))})},{immediate:!0,flush:`post`});A(()=>{s(),i?.();for(let e of Jt)t?.removeEventListener(e,o,!0)})}var Xt={class:`diff-status-bar row items-center q-gutter-x-md q-pa-sm text-body2`},Zt={class:`text-weight-medium`},Qt={class:`text-positive`},$t={class:`text-negative`},en={key:0,class:`text-grey-6`},tn={key:1,class:`text-grey-6`},nn={key:2,class:`text-grey-6`},rn={key:3,class:`text-grey-6`},an=g({__name:`DiffStatusBar`,props:{files:{}},emits:[`expand-all`,`collapse-all`],setup(e,{emit:t}){let n=e,r=t,{t:i}=U(),a=j(()=>{let e=n.files.reduce((e,t)=>e+t.additions,0),t=n.files.reduce((e,t)=>e+t.deletions,0),r=n.files.filter(e=>e.status===`added`).length,i=n.files.filter(e=>e.status===`modified`).length,a=n.files.filter(e=>e.status===`deleted`).length,o=n.files.filter(e=>e.status===`renamed`).length;return{total:n.files.length,additions:e,deletions:t,added:r,modified:i,deleted:a,renamed:o}});return(e,t)=>(u(),b(`div`,Xt,[v(`span`,Zt,w(O(i)(`changes.filesChanged`,{count:a.value.total})),1),v(`span`,Qt,` +`+w(a.value.additions)+` `+w(O(i)(`changes.additions`)),1),v(`span`,$t,` -`+w(a.value.deletions)+` `+w(O(i)(`changes.deletions`)),1),a.value.added?(u(),b(`span`,en,w(a.value.added)+` `+w(O(i)(`changes.added`)),1)):N(``,!0),a.value.modified?(u(),b(`span`,tn,w(a.value.modified)+` `+w(O(i)(`changes.modified`)),1)):N(``,!0),a.value.deleted?(u(),b(`span`,nn,w(a.value.deleted)+` `+w(O(i)(`changes.deletedPlural`)),1)):N(``,!0),a.value.renamed?(u(),b(`span`,rn,w(a.value.renamed)+` `+w(O(i)(`changes.renamed`)),1)):N(``,!0),S(xe),S(B,{dense:``,flat:``,"no-caps":``,size:`sm`,icon:`unfold_more`,label:O(i)(`changes.expandAll`),onClick:t[0]||=e=>r(`expand-all`)},null,8,[`label`]),S(B,{dense:``,flat:``,"no-caps":``,size:`sm`,icon:`unfold_less`,label:O(i)(`changes.collapseAll`),onClick:t[1]||=e=>r(`collapse-all`)},null,8,[`label`])]))}}),on=6e3,sn=40;function cn(e,t,n){let r=y(n(t())?.clientWidth??0),i=j(()=>JSON.stringify([e.version,r.value])),a=Ge({get minHeight(){return e.minHeight},get heightOwner(){return e.owner},heightKey:`card-reserve`,get heightVersion(){return i.value},get cacheHeight(){return e.cacheHeight},get keep(){return e.keep},cost:sn,mountMargin:on},t),o;function s(){let e=n(t());e&&(r.value=e.clientWidth,o=He(e,()=>{r.value=e.clientWidth})),a.start(e)}function c(){a.stop(),o?.(),o=void 0}return A(c),{mounted:a.mounted,height:a.height,start:s,stop:c}}var ln={key:1,class:`card-shell-placeholder__title text-mono`,"aria-busy":`true`},un=G(g({__name:`ChangesFileCard`,props:{file:{}},setup(e){let n=e,r=$(),i=X(),a=Y(),{expandedFiles:o}=W(r),{activeReview:s,commentsByFile:d}=W(a),f=j(()=>Z(n.file)),p=j(()=>De(r.source,f.value)),h=j(()=>i.hunksOf(r.source,n.file)),g=j(()=>i.hunksFresh(r.source,n.file)),_=j(()=>i.hunksError(r.source,n.file)),v=j(()=>o.value.has(f.value)),y=j(()=>d.value.get(f.value)),x=j(()=>!!s.value),S={key:p.value},E=Le(`wrap`,()=>Ve(f.value),S),D=Le(`viewMode`,()=>`diff`,S),k=Ie(S),A=Ye(S),M=j(()=>D.value===`full`?A.value:k.value),N=j(()=>46+(v.value?Me(n.file,h.value)+Re(y.value??[],D.value)+(M.value?90:0):0)),P=j(()=>JSON.stringify([v.value,D.value,E.value,x.value,M.value?[M.value.column,M.value.startKey,M.value.endKey]:null,y.value?.map(e=>[e.id,e.lineType,e.lineNumberEnd,e.content,e.suggestion,e.resolved])])),F=m(`el`),{mounted:I,height:L,start:ee,stop:R}=cn({get minHeight(){return N.value},get owner(){return h.value??n.file},get version(){return P.value},get cacheHeight(){return v.value&&g.value&&D.value===`diff`&&!E.value&&!y.value?.length&&!M.value},get keep(){return!!M.value}},()=>F.value,Pe());C(ee),c(R);function z(){i.ensureHunks(r.source,n.file)}function B(){i.retryHunks(r.source,n.file)}return(n,a)=>(u(),b(`div`,{ref_key:`el`,ref:F,class:t({"card-shell-placeholder":!O(I)}),style:l(O(I)?void 0:{height:`${O(L)}px`})},[O(I)?(u(),T(Ue,{key:0,file:e.file,"state-key":p.value,detail:h.value,"hunks-loaded":g.value,"hunks-error":_.value,expanded:v.value,"agent-source":O(r).source,commentable:x.value,"comments-editable":x.value,comments:y.value,onLoadHunks:z,onRetryHunks:B,onClearHunksError:a[0]||=t=>O(i).clearHunksError(O(r).source,e.file),onToggle:a[1]||=e=>O(r).handleCardToggle(f.value),onExpand:a[2]||=e=>O(r).expandFile(f.value)},null,8,[`file`,`state-key`,`detail`,`hunks-loaded`,`hunks-error`,`expanded`,`agent-source`,`commentable`,`comments-editable`,`comments`])):(u(),b(`div`,ln,w(f.value),1))],6))}}),[[`__scopeId`,`data-v-c1bd4d06`]]),dn={key:0,class:`active-review-bar row items-center q-gutter-x-sm q-px-sm no-wrap`},fn={class:`text-body2 ellipsis`},pn=G(g({__name:`ActiveReviewBar`,setup(e){let{t}=U(),n=ye(),r=Y(),{activeReview:i}=W(r),a=me(),o=Ne();function s(e){r.setStatus(e).catch(e=>{n(t(`reviews.comments.error`),e)})}return(e,n)=>O(i)?(u(),b(`div`,dn,[S(L,{name:`rate_review`,size:`18px`,color:`primary`}),v(`span`,fn,w(O(i).name??O(t)(`reviews.list.unnamed`)),1),S(xe),O(a).enabled?(u(),T(B,{key:0,flat:``,dense:``,"no-caps":``,size:`sm`,icon:O(be),label:O(t)(`agent.context.addReview`),onClick:n[0]||=e=>O(o)({kind:`review`,reviewId:O(i).id})},null,8,[`icon`,`label`])):N(``,!0),S(Je,{status:O(i).status,onChange:s},null,8,[`status`])])):N(``,!0)}}),[[`__scopeId`,`data-v-2b6e4bdd`]]),mn={key:1,class:`q-pa-md text-grey-6`},hn=12,gn=1.5,_n=2,vn=G(g({__name:`DiffPanel`,setup(e){let{t}=U(),r=$(),{diffFiles:o}=W(r),{error:s,loading:c}=W(X()),l=Y(),{activeReview:d}=W(l);ze({create:e=>l.createComment(e),edit:(e,t)=>l.editComment(e,t),remove:e=>l.deleteComment(e),resolve:e=>l.resolveComment(e),unresolve:e=>l.unresolveComment(e)});let p=D(null),m=j(()=>p.value?.getScrollTarget()??null);n(Qe,()=>m.value);let h=D(null);return Yt({request:()=>r.scrollRequest,list:h,root:m}),a(()=>r.layoutVersion,async()=>{await f(),h.value?.reset()}),a(o,async(e,t)=>{Ae(e,t,(e,t)=>Z(e)===Z(t))||(await f(),h.value?.reset())}),(e,n)=>(u(),b(k,null,[O(s)?(u(),T(qe,{key:0,title:O(t)(`changes.loadError`),message:O(s),loading:O(c),onRetry:n[0]||=e=>O(r).refresh()},null,8,[`title`,`message`,`loading`])):N(``,!0),O(o).length===0&&!O(s)?(u(),b(`div`,mn,w(O(t)(`changes.emptyDiffPanel`)),1)):O(o).length>0?(u(),b(k,{key:2},[S(pn),O(d)?(u(),T(H,{key:0})):N(``,!0),S(an,{files:O(o),onExpandAll:O(r).expandAllFiles,onCollapseAll:O(r).collapseAllFiles},null,8,[`files`,`onExpandAll`,`onCollapseAll`]),S(H),S(_e,{ref_key:`scrollArea`,ref:p,class:`col sticky-header-scroll`,"content-style":`padding: 8px; width: 100%; max-width: 100%`,"content-active-style":`padding: 8px; width: 100%; max-width: 100%`},{default:i(()=>[m.value?(u(),T(J,{key:O(r).source,ref_key:`virtualScroll`,ref:h,"scroll-target":m.value,items:O(o),"virtual-scroll-item-size":O(46),"virtual-scroll-slice-size":hn,"virtual-scroll-slice-ratio-before":gn,"virtual-scroll-slice-ratio-after":_n},{default:i(({item:e})=>[(u(),b(`div`,{key:O(Z)(e),class:`diff-virtual-slot`},[S(un,{file:e},null,8,[`file`])]))]),_:1},8,[`scroll-target`,`items`,`virtual-scroll-item-size`])):N(``,!0)]),_:1},512)],64)):N(``,!0),!O(d)&&O(o).length>0?(u(),T(et,{key:3})):N(``,!0)],64))}}),[[`__scopeId`,`data-v-44aabadb`]]),yn={key:1,class:`q-pa-md text-grey-6`},bn={key:0,class:`row justify-center q-pa-lg`},xn={key:1,class:`q-pa-md text-grey-6`},Sn={class:`text-caption`},Cn={key:2,class:`q-pa-md text-grey-6`},wn=g({__name:`FileContentPanel`,setup(e){let{t}=U(),n=$(),{selectedPath:r,browseFileLines:o,browseFileIsBinary:s,browseFileLoading:c,browseFileError:l,treeError:d,refreshing:f}=W(n),{error:p}=W(X()),m=j(()=>p.value?{title:t(`changes.loadError`),message:p.value}:d.value?{title:t(`browse.treeLoadError`),message:d.value}:null),h=D(!1);return a(r,e=>{h.value=e?Ve(e):!1},{immediate:!0}),(e,a)=>(u(),b(k,null,[m.value?(u(),T(qe,{key:0,title:m.value.title,message:m.value.message,loading:O(f),onRetry:a[0]||=e=>O(n).refresh()},null,8,[`title`,`message`,`loading`])):N(``,!0),O(r)?(u(),T(Ke,{key:2,class:`col`},{header:i(()=>[S(We,{path:O(r)},{default:i(()=>[S(Be,{modelValue:h.value,"onUpdate:modelValue":a[1]||=e=>h.value=e,path:O(r)},null,8,[`modelValue`,`path`])]),_:1},8,[`path`])]),default:i(()=>[O(c)&&O(o).length===0&&!O(l)?(u(),b(`div`,bn,[S(z,{color:`primary`,size:`2em`})])):O(l)?(u(),b(`div`,xn,[E(w(O(t)(`changes.fullFileLoadError`))+` `,1),v(`div`,Sn,w(O(l)),1),S(B,{flat:``,dense:``,color:`primary`,class:`q-mt-sm`,label:O(t)(`changes.retry`),loading:O(f),onClick:a[2]||=e=>O(n).refresh()},null,8,[`label`,`loading`])])):O(s)?(u(),b(`div`,Cn,w(O(t)(`changes.binaryFile`)),1)):(u(),T(_e,{key:3,class:`col`,"content-style":`padding: 8px`,"content-active-style":`padding: 8px`},{default:i(()=>[S(Fe,{path:O(r),lines:O(o),wrap:h.value},null,8,[`path`,`lines`,`wrap`])]),_:1}))]),_:1})):(u(),b(`div`,yn,w(O(t)(`browse.selectFile`)),1))],64))}}),Tn=g({__name:`FileExplorer`,setup(e){let t=$(),n=Y(),{browseMode:r}=W(t);C(()=>{t.refresh(),n.refresh()});let a=le([`files:changed`],()=>void t.refreshFromServerEvent());s(()=>a.close());let o=le([`review:created`,`review:updated`,`review:deleted`,`comment:created`,`comment:updated`,`comment:deleted`],()=>void n.refresh());return s(()=>o.close()),(e,t)=>(u(),T(vt,null,{panel:i(()=>[S(qt)]),content:i(()=>[O(r)?(u(),T(wn,{key:0})):(u(),T(vn,{key:1}))]),_:1}))}}),En=g({__name:`IndexPage`,setup(e){return(e,t)=>(u(),T(ke,null,{default:i(()=>[S(Tn)]),_:1}))}});export{En as default};
1
+ import{C as e,Dt as t,F as n,I as r,J as i,K as a,L as o,M as s,O as c,Ot as l,P as u,R as d,T as f,U as p,W as m,Y as h,_ as g,b as _,c as v,ct as y,d as b,ft as x,h as S,j as C,kt as w,l as T,m as E,ot as D,pt as O,r as k,rt as A,s as j,tt as M,u as N}from"./runtime-core.esm-bundler-BKFI1w28.js";import{D as P,U as F,_ as I,d as L,h as ee,o as R,s as z,t as B}from"./QBtn-CzrOO1zA.js";import{u as te}from"./event-rR76ioXz.js";import{t as ne}from"./create-BSmXD9Zr.js";import{R as V,d as H,g as re,h as ie,q as ae,t as oe}from"./index-BqedItFI.js";import{n as U}from"./vue-i18n.runtime-BpRrzZrT.js";import{n as se,r as W}from"./pinia-DCsnCHsH.js";import{f as ce,n as le,o as ue,p as de,s as fe,u as pe}from"./use-server-events-znzHKZZx.js";import{t as me}from"./agent-store-CDuiBhST.js";import{t as he}from"./safe-storage-BCP757jk.js";import{t as G}from"./_plugin-vue_export-helper-BDNMzG2s.js";import{c as K,l as q,n as ge,t as _e,u as ve}from"./QScrollArea-C4BKutrt.js";import{i as ye,n as be,t as xe}from"./QSpace-BMpRu3a-.js";import{a as Se,i as J,n as Ce,o as we,t as Te}from"./use-panel-width-C9dWftsJ.js";import{r as Ee}from"./use-virtual-scroll-CIwaJCUj.js";import{f as De,i as Y,m as Oe,o as X,p as Z,t as ke}from"./AppPage-BGcEFW_o.js";import{C as Ae,S as je,_ as Me,a as Ne,b as Pe,c as Fe,d as Ie,f as Le,g as Re,h as ze,i as Be,l as Ve,m as He,n as Ue,o as We,p as Ge,r as Ke,s as qe,t as Je,u as Ye,v as Xe,x as Ze,y as Qe}from"./StatusSwitcher-Blg5JmAa.js";import{r as $e,t as et}from"./CreateReviewFabButton-CdUXVriU.js";var tt=8,nt=12,rt=20;function Q(e,t){return tt+e*nt+(t?rt:0)}function it(e){return e.toSorted((e,t)=>e.type===t.type?e.name.localeCompare(t.name):e.type===`directory`?-1:1).map(e=>({...e,children:e.children?it(e.children):void 0}))}function at(e,t){let n=[],r=new Map,i=e=>{let t=r.get(e);return t||(t=new Map,r.set(e,t)),t};for(let r of e){let e=r.split(`/`),a=n,o=``;for(let n=0;n<e.length;n++){let s=e[n];if(!s)continue;let c=n===e.length-1;o=o===``?s:`${o}/${s}`;let l=`${c?`f`:`d`}:${s}`,u=i(a),d=u.get(l);d||(d={name:s,path:c?r:o,type:c?`file`:`directory`,isChanged:c?t.has(r):!1,children:c?void 0:[]},a.push(d),u.set(l,d)),!c&&d.children&&(a=d.children)}}return it(n)}function ot(e,t){if(!t.trim())return e;let n=t.toLowerCase(),r=e=>{if(e.type===`file`)return e.path.toLowerCase().includes(n)?e:null;let t=e.children?.map(r).filter(e=>e!==null);return t&&t.length>0?{...e,children:t}:e.name.toLowerCase().includes(n)?e:null};return e.map(r).filter(e=>e!==null)}function st(e,t,n){let r=[],i=(e,a)=>{for(let o of e){if(o.type===`file`){r.push({kind:`file`,path:o.path,name:o.name,depth:a});continue}let e=o,s=[e.path],c=[e.name];for(;e.children?.length===1&&e.children[0]?.type===`directory`;)e=e.children[0],s.push(e.path),c.push(e.name);let l=n||!s.some(e=>t.has(e));r.push({kind:`folder`,path:e.path,paths:s,name:c.join(`/`),depth:a,expanded:l}),l&&i(e.children??[],a+1)}};return i(e,0),r}function ct(){let e=D([]),t=D(!1),n=D(!1),r=D(null),i=j(()=>!n.value),a=0;async function o(i,o=[]){let s=++a;t.value=!0;try{let t=await pe(`/api/git/tree/${encodeURIComponent(i)}`);if(s!==a)return;e.value=at(t.files.map(Oe),new Set(o)),r.value=null}catch(e){if(s!==a)return;r.value=fe(e)}finally{s===a&&(t.value=!1,n.value=!0)}}function s(){++a,e.value=[],t.value=!1,n.value=!1,r.value=null}return{tree:e,loading:t,initialLoading:i,error:r,fetchTree:o,reset:s}}var lt=`githuman.diffListMode`;function ut(){return he.get(lt)===`tree`?`tree`:`list`}function dt(e,t=new Set){for(let n of e)n.type===`directory`&&(t.add(n.path),dt(n.children??[],t));return t}function ft(e){return e.type===`file`?e.isChanged:e.children?.some(ft)??!1}var $=se(`file-explorer`,()=>{let e=X(),{tree:t,initialLoading:n,error:r,fetchTree:i,reset:o}=ct(),{lines:s,isBinary:c,loading:l,error:u,fetchContent:d,reset:f}=je(),p=D(`unstaged`),m=D(!1),h=D(``),g=D(null),_=D(new Set),v=D(new Set),y=D(ut()),b=D(new Set),x=D(null),S=D(0),C=j(()=>p.value===`staged`?e.stagedFiles:e.unstagedFiles),w=j(()=>new Map(C.value.map(e=>[Z(e),e]))),T=j(()=>y.value===`tree`?at(C.value.map(Z),new Set):[]),E=j(()=>{let e=C.value;if(y.value===`list`)return e;let t=w.value,n=st(T.value,new Set,!0).flatMap(e=>e.kind===`file`?t.get(e.path)??[]:[]),r=new Set(n);return[...n,...e.filter(e=>!r.has(e))]}),O=j(()=>(h.value??``).trim()!==``),k=j(()=>{let e=(h.value??``).trim().toLowerCase();return e?E.value.filter(t=>Z(t).toLowerCase().includes(e)):E.value}),A=j(()=>{let e=w.value;return st(ot(T.value,(h.value??``).trim()),b.value,O.value).flatMap(t=>{if(t.kind===`folder`)return[t];let n=e.get(t.path);return n?[{...t,file:n}]:[]})}),M=j(()=>ot(t.value,h.value??``)),N=j(()=>{let e=0,n=t=>{for(let r of t)r.type===`file`?e++:r.children&&n(r.children)};return n(t.value),e});a(t,e=>{let t=new Set,n=e=>{for(let r of e)r.type===`directory`&&r.children&&(ft(r)&&t.add(r.path),n(r.children))};n(e),_.value=t},{immediate:!0}),a(p,()=>{g.value=null,v.value=new Set,b.value=new Set,x.value=null,S.value++}),a(T,e=>{if(y.value!==`tree`||b.value.size===0)return;let t=dt(e),n=[...b.value].filter(e=>t.has(e));n.length<b.value.size&&(b.value=new Set(n))}),a(g,e=>{if(m.value){if(!e){f();return}d(e,`WORKTREE`)}}),a(y,e=>{he.set(lt,e),g.value&&!m.value&&te(g.value)});function P(e){let t=new Set(b.value),n=e.some(e=>t.has(e));for(let r of e)n?t.delete(r):t.add(r);b.value=t}function F(e){let t=new Set(_.value);t.has(e)?t.delete(e):t.add(e),_.value=t}function I(e){let t=new Set(v.value);t.has(e)?t.delete(e):t.add(e),v.value=t}function L(e){g.value=e,I(e)}function ee(e){g.value=e,v.value.has(e)||(v.value=new Set(v.value).add(e))}function R(){v.value=new Set(E.value.map(Z)),S.value++}function z(){v.value=new Set,S.value++}function B(e){g.value=e,!m.value&&(v.value.has(e)||(v.value=new Set(v.value).add(e)),te(e))}function te(e){let t=E.value.findIndex(t=>Z(t)===e);t<0||(x.value={path:e,index:t,seq:(x.value?.seq??0)+1})}let ne=0,V=D(!1),H=ue(async()=>{V.value=!0;try{await e.fetchDiff(),m.value&&(await i(`WORKTREE`,e.changedPaths),g.value&&await d(g.value,`WORKTREE`))}finally{V.value=!1}});a(m,e=>{h.value=``,g.value=null,e?H():(o(),f())});async function re(){ne=Date.now(),await H()}async function ie(){Date.now()-ne<400||await H()}return{source:p,browseMode:m,filter:h,selectedPath:g,expandedFolders:_,expandedFiles:v,diffListMode:y,collapsedDiffFolders:b,scrollRequest:x,layoutVersion:S,tree:t,treeInitialLoading:n,treeError:r,refreshing:V,browseFileLines:s,browseFileIsBinary:c,browseFileLoading:l,browseFileError:u,diffFiles:E,filtering:O,filteredDiffFiles:k,diffTreeRows:A,filteredTree:M,totalTreeFiles:N,toggleFolder:F,toggleDiffFolder:P,toggleFileCard:I,handleCardToggle:L,expandFile:ee,expandAllFiles:R,collapseAllFiles:z,selectFile:B,refresh:re,refreshFromServerEvent:ie}}),pt=ne({name:`QSplitter`,props:{...re,modelValue:{type:Number,required:!0},reverse:Boolean,unit:{type:String,default:`%`,validator:e=>[`%`,`px`].includes(e)},limits:{type:Array,validator:e=>e.length!==2||typeof e[0]!=`number`||typeof e[1]!=`number`?!1:e[0]>=0&&e[0]<=e[1]},emitImmediately:Boolean,horizontal:Boolean,disable:Boolean,beforeClass:[Array,String,Object],afterClass:[Array,String,Object],separatorClass:[Array,String,Object],separatorStyle:[Array,String,Object],separatorAriaLabel:String},emits:[`update:modelValue`],setup(e,{slots:t,emit:n}){let r=P(),i=ie(e,r),o=y(null),s={before:y(null),after:y(null)},c=ae(),l=j(()=>`q-splitter no-wrap ${e.horizontal?`q-splitter--horizontal column`:`q-splitter--vertical row`} q-splitter--${e.disable?`disabled`:`workable`}`+(i()?` q-splitter--dark`:``)),u=j(()=>e.horizontal?`height`:`width`),d=j(()=>e.reverse?`after`:`before`),p=j(()=>e.limits===void 0?e.unit===`%`?[10,90]:[50,1/0]:e.limits);function m(t){return(e.unit===`%`?t:Math.round(t))+e.unit}let g=j(()=>({[d.value]:{[u.value]:m(e.modelValue)}})),v,b,x,S,C;function w(t){if(t.isFirst){let t=o.value.getBoundingClientRect()[u.value];v=e.horizontal?`up`:`left`,b=e.unit===`%`?100:t,x=Math.min(b,p.value[1],Math.max(p.value[0],e.modelValue)),S=(e.reverse?-1:1)*(e.horizontal?1:r.lang.rtl?-1:1)*(e.unit===`%`?t===0?0:100/t:1),o.value.classList.add(`q-splitter--active`);return}if(t.isFinal){C!==e.modelValue&&n(`update:modelValue`,C),o.value.classList.remove(`q-splitter--active`);return}let i=x+S*(t.direction===v?-1:1)*t.distance[e.horizontal?`y`:`x`];C=Math.min(b,p.value[1],Math.max(p.value[0],i)),s[d.value].value.style[u.value]=m(C),e.emitImmediately&&e.modelValue!==C&&n(`update:modelValue`,C)}let T=j(()=>[[ve,e.disable?void 0:w,void 0,{[e.horizontal?`vertical`:`horizontal`]:!0,prevent:!0,stop:!0,mouse:!0,mouseAllDir:!0}]]),E=j(()=>{let t={role:`separator`,"aria-orientation":e.horizontal?`horizontal`:`vertical`,"aria-label":e.separatorAriaLabel||r.lang.label.resize};if(e.disable)t[`aria-disabled`]=`true`;else{let n=p.value;t.tabindex=0,t[`aria-controls`]=c.value,t[`aria-valuemin`]=n[0],n[1]!==1/0&&(t[`aria-valuemax`]=n[1]),t[`aria-valuenow`]=Math.round(e.modelValue*100)/100}return t}),D=null;function O(t){let{keyCode:i}=t,a=e.horizontal?[38,40]:[37,39];if(i!==13&&i!==36&&i!==35&&!a.includes(i))return;te(t);let s=p.value,c=e.unit===`%`?100:o.value.getBoundingClientRect()[u.value],l;if(i===13)e.modelValue===s[0]?l=D===null?e.modelValue:D:(D=e.modelValue,l=s[0]);else if(i===36)l=s[0];else if(i===35)l=s[1];else{let t=(i===a[0]?-1:1)*(e.reverse?-1:1)*(e.horizontal?1:r.lang.rtl?-1:1);l=e.modelValue+t*(e.unit===`%`?1:10)}let d=Math.min(c,s[1],Math.max(s[0],l));d!==e.modelValue&&n(`update:modelValue`,d)}function k(e,t){e<t[0]?n(`update:modelValue`,t[0]):e>t[1]&&n(`update:modelValue`,t[1])}return a(()=>e.modelValue,e=>{k(e,p.value)}),a(()=>e.limits,()=>{f(()=>{k(e.modelValue,p.value)})}),()=>{let n=[_(`div`,{ref:s.before,id:d.value===`before`?c.value:void 0,class:[`q-splitter__panel q-splitter__before`+(e.reverse?` col`:``),e.beforeClass],style:g.value.before},I(t.before)),_(`div`,{class:[`q-splitter__separator`,e.separatorClass],style:e.separatorStyle,...E.value,onKeydown:e.disable?void 0:O},[h(_(`div`,{class:`q-splitter__separator-area absolute-full`},I(t.separator)),T.value)]),_(`div`,{ref:s.after,id:d.value===`after`?c.value:void 0,class:[`q-splitter__panel q-splitter__after`+(e.reverse?``:` col`),e.afterClass],style:g.value.after},I(t.after))];return _(`div`,{class:l.value,ref:o},ee(t.default,n))}}}),mt=`githuman.fileListWidth`,ht=260,gt=220,_t=600,vt=G(g({__name:`PanelResize`,setup(e){let t=D(Ce(mt,gt,_t)??ht),n=j(()=>[gt,_t]);function r(e){de(e)&&(t.value=Te(e,gt,_t),he.set(mt,String(t.value)))}return(e,a)=>(u(),T(pt,{"model-value":t.value,limits:n.value,unit:`px`,class:`file-explorer`,"before-class":`file-explorer__panel`,"after-class":`file-explorer__content`,"onUpdate:modelValue":r},{before:i(()=>[o(e.$slots,`panel`,{},void 0,!0)]),after:i(()=>[o(e.$slots,`content`,{},void 0,!0)]),_:3},8,[`model-value`,`limits`]))}}),[[`__scopeId`,`data-v-d0bbc6dd`]]),yt={class:`row items-center no-wrap q-gutter-x-xs`},bt={class:`row items-center no-wrap q-gutter-x-xs`},xt=g({__name:`FileExplorerTabs`,props:e({stagedFilesLength:{},unstagedFilesLength:{}},{modelValue:{default:`unstaged`},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=p(e,`modelValue`),{t:n}=U();return(r,a)=>(u(),T(Se,{modelValue:t.value,"onUpdate:modelValue":a[0]||=e=>t.value=e,dense:``,"no-caps":``,align:`left`,"narrow-indicator":``,class:`text-primary q-mb-sm`},{default:i(()=>[S(we,{name:`unstaged`},{default:i(()=>[v(`div`,yt,[v(`span`,null,w(O(n)(`changes.unstaged`)),1),S(ge,{color:`warning`,rounded:``},{default:i(()=>[E(w(e.unstagedFilesLength),1)]),_:1})])]),_:1}),S(we,{name:`staged`},{default:i(()=>[v(`div`,bt,[v(`span`,null,w(O(n)(`changes.staged`)),1),S(ge,{color:`positive`,rounded:``},{default:i(()=>[E(w(e.stagedFilesLength),1)]),_:1})])]),_:1})]),_:1},8,[`modelValue`]))}}),St={class:`file-tree-node`},Ct={class:`row items-center no-wrap q-gutter-x-xs`},wt=[`data-tooltip`],Tt=[`data-tooltip`],Et={key:2},Dt=G(g({__name:`FileTreeNode`,props:{node:{},selectedPath:{},expandedFolders:{},level:{}},emits:[`toggle-folder`,`file-select`],setup(e,{emit:n}){let a=n;return(n,o)=>{let s=d(`FileTreeNode`,!0);return u(),b(`div`,St,[e.node.type===`directory`?h((u(),T(K,{key:0,clickable:``,dense:``,style:l({paddingLeft:`${O(Q)(e.level,!1)}px`}),onClick:o[0]||=t=>a(`toggle-folder`,e.node.path)},{default:i(()=>[S(q,{avatar:``,class:`file-tree-node__icon-section`},{default:i(()=>[v(`div`,Ct,[S(L,{name:`chevron_right`,size:`xs`,class:t([`file-tree-node__chevron`,{"file-tree-node__chevron--expanded":e.expandedFolders.has(e.node.path)}])},null,8,[`class`]),S(L,{name:e.expandedFolders.has(e.node.path)?`folder_open`:`folder`,size:`xs`,color:`warning`},null,8,[`name`])])]),_:1}),S(q,{class:`text-mono`},{default:i(()=>[v(`div`,{class:`ellipsis file-tree-node__label`,"data-tooltip":e.node.path},w(e.node.name),9,wt)]),_:1}),e.node.children?(u(),T(q,{key:0,side:``,class:`text-caption text-grey-6`},{default:i(()=>[E(w(e.node.children.length),1)]),_:1})):N(``,!0)]),_:1},8,[`style`])),[[R]]):h((u(),T(K,{key:1,clickable:``,dense:``,active:e.node.path===e.selectedPath,"active-class":`file-tree-node--selected`,style:l({paddingLeft:`${O(Q)(e.level,!0)}px`}),onClick:o[1]||=t=>a(`file-select`,e.node.path)},{default:i(()=>[S(q,{avatar:``,class:`file-tree-node__icon-section`},{default:i(()=>[S(L,{name:`insert_drive_file`,size:`xs`,color:`grey-6`})]),_:1}),S(q,{class:`text-mono`},{default:i(()=>[v(`div`,{class:`ellipsis file-tree-node__label`,"data-tooltip":e.node.path},w(e.node.name),9,Tt)]),_:1}),e.node.isChanged?(u(),T(q,{key:0,side:``},{default:i(()=>[S(L,{name:`fiber_manual_record`,size:`8px`,color:`warning`})]),_:1})):N(``,!0)]),_:1},8,[`active`,`style`])),[[R]]),e.node.type===`directory`&&e.expandedFolders.has(e.node.path)&&e.node.children?(u(),b(`div`,Et,[(u(!0),b(k,null,r(e.node.children,t=>(u(),T(s,{key:t.path,node:t,"selected-path":e.selectedPath,"expanded-folders":e.expandedFolders,level:e.level+1,onToggleFolder:o[2]||=e=>a(`toggle-folder`,e),onFileSelect:o[3]||=e=>a(`file-select`,e)},null,8,[`node`,`selected-path`,`expanded-folders`,`level`]))),128))])):N(``,!0)])}}}),[[`__scopeId`,`data-v-ef4a1d44`]]);function Ot(){let e=P(),{t}=U(),n=ye(),r=$(),i=Y();async function a(e,i,a){try{await ce(i,{paths:[e]}),await r.refresh()}catch(e){n(t(a),e)}}function o(n){let r=(i.commentsByFile.get(n)??[]).filter(e=>!e.resolved).length;if(r===0)return a(n,`/api/git/stage`,`changes.actions.stageError`);e.dialog({title:t(`changes.actions.stageUnresolvedTitle`),message:t(`changes.actions.stageUnresolvedMessage`,{path:n,count:r}),persistent:!0,ok:{label:t(`changes.actions.stageUnresolvedOk`),flat:!0},cancel:{label:t(`changes.actions.discardConfirmCancel`),flat:!0}}).onOk(()=>{a(n,`/api/git/stage`,`changes.actions.stageError`)})}function s(e){return a(e,`/api/git/unstage`,`changes.actions.unstageError`)}function c(n){e.dialog({title:t(`changes.actions.discardConfirmTitle`),message:t(`changes.actions.discardConfirmMessage`,{path:n}),persistent:!0,ok:{label:t(`changes.actions.discardConfirmOk`),color:`negative`,flat:!0},cancel:{label:t(`changes.actions.discardConfirmCancel`),flat:!0}}).onOk(()=>{a(n,`/api/git/discard`,`changes.actions.discardError`)})}return{stage:o,unstage:s,discard:c}}var kt={class:`file-list-item__path-row row no-wrap items-center`},At=[`data-tooltip`],jt={class:`text-caption`},Mt={class:`text-positive`},Nt={class:`text-negative q-ml-xs`},Pt=G(g({__name:`FileListItem`,props:{file:{},selected:{type:Boolean},source:{},label:{},depth:{}},emits:[`click`],setup(e){let n={added:`A`,modified:`M`,deleted:`D`,renamed:`R`},r={added:`positive`,modified:`warning`,deleted:`negative`,renamed:`purple`},a=e,{t:o}=U(),{stage:s,unstage:c,discard:d}=Ot(),f=Y(),p=j(()=>Z(a.file)),m=j(()=>f.commentsByFile.get(p.value)?.length??0);return(a,f)=>h((u(),T(K,{clickable:``,dense:``,class:`file-list-item`,active:e.selected,"active-class":`file-list-item--selected`,"aria-label":e.label===void 0?void 0:p.value,style:l(e.depth===void 0?void 0:{paddingLeft:`${O(Q)(e.depth,!0)}px`}),onClick:f[3]||=e=>a.$emit(`click`)},{default:i(()=>[S(q,{avatar:``,class:`file-list-item__icon-section`},{default:i(()=>[v(`span`,{class:t([`text-caption text-weight-bold text-mono`,`text-${r[e.file.status]}`])},w(n[e.file.status]),3)]),_:1}),S(q,{class:`text-mono`},{default:i(()=>[v(`div`,kt,[v(`span`,{class:`ellipsis file-list-item__path-label`,"data-tooltip":p.value},w(e.label??p.value),9,At),m.value>0?(u(),T(Ze,{key:0,compact:``,class:`file-list-item__badge`,count:m.value},null,8,[`count`])):N(``,!0)])]),_:1}),S(q,{side:``,class:`file-list-item__stats`},{default:i(()=>[v(`span`,jt,[v(`span`,Mt,`+`+w(e.file.additions),1),v(`span`,Nt,`-`+w(e.file.deletions),1)])]),_:1}),S(q,{side:``,class:`file-list-item__actions`},{default:i(()=>[e.source===`unstaged`?(u(),b(k,{key:0},[h(S(B,{flat:``,dense:``,round:``,size:`sm`,icon:`undo`,"aria-label":O(o)(`changes.actions.discard`),"data-tooltip":O(o)(`changes.actions.discard`),onClick:f[0]||=F(e=>O(d)(p.value),[`stop`])},null,8,[`aria-label`,`data-tooltip`]),[[R]]),h(S(B,{flat:``,dense:``,round:``,size:`sm`,icon:`add`,"aria-label":O(o)(`changes.actions.stage`),"data-tooltip":O(o)(`changes.actions.stage`),onClick:f[1]||=F(e=>O(s)(p.value),[`stop`])},null,8,[`aria-label`,`data-tooltip`]),[[R]])],64)):h((u(),T(B,{key:1,flat:``,dense:``,round:``,size:`sm`,icon:`remove`,"aria-label":O(o)(`changes.actions.unstage`),"data-tooltip":O(o)(`changes.actions.unstage`),onClick:f[2]||=F(e=>O(c)(p.value),[`stop`])},null,8,[`aria-label`,`data-tooltip`])),[[R]])]),_:1})]),_:1},8,[`active`,`aria-label`,`style`])),[[R]])}}),[[`__scopeId`,`data-v-a94df6a5`]]),Ft=g({__name:`BrowseModeToggle`,props:{modelValue:{type:Boolean,default:!1},modelModifiers:{}},emits:[`update:modelValue`],setup(e){let t=p(e,`modelValue`),{t:n}=U();return(e,r)=>(u(),T(K,null,{default:i(()=>[S(q,null,{default:i(()=>[S(Ee,null,{default:i(()=>[E(w(O(n)(`browse.toggle`)),1)]),_:1})]),_:1}),S(q,{side:``},{default:i(()=>[S(oe,{modelValue:t.value,"onUpdate:modelValue":r[0]||=e=>t.value=e,dense:``,size:`xs`},null,8,[`modelValue`])]),_:1})]),_:1}))}}),It={class:`row items-center no-wrap q-gutter-x-xs`},Lt=[`data-tooltip`],Rt=G(g({__name:`DiffTreeFolderRow`,props:{name:{},path:{},depth:{},expanded:{type:Boolean},locked:{type:Boolean}},emits:[`toggle`],setup(e){let{t:n}=U();return(r,a)=>h((u(),T(K,{clickable:!e.locked,dense:``,class:`file-list-item diff-tree-folder-row`,style:l({paddingLeft:`${O(Q)(e.depth,!1)}px`}),"aria-expanded":e.locked?void 0:e.expanded,"aria-label":e.locked?void 0:O(n)(`changes.listMode.folder`,{path:e.path}),onClick:a[0]||=e=>r.$emit(`toggle`)},{default:i(()=>[S(q,{avatar:``,class:`diff-tree-folder-row__icons`},{default:i(()=>[v(`div`,It,[S(L,{name:`chevron_right`,size:`xs`,class:t([`diff-tree-folder-row__chevron`,{"diff-tree-folder-row__chevron--expanded":e.expanded,invisible:e.locked}])},null,8,[`class`]),S(L,{name:e.expanded?`folder_open`:`folder`,size:`xs`,color:`warning`},null,8,[`name`])])]),_:1}),S(q,{class:`text-mono`},{default:i(()=>[v(`span`,{class:`ellipsis`,"data-tooltip":e.path},w(e.name),9,Lt)]),_:1})]),_:1},8,[`clickable`,`style`,`aria-expanded`,`aria-label`])),[[R,!e.locked]])}}),[[`__scopeId`,`data-v-e82c6cd4`]]),zt={class:`file-list-panel__header q-pa-sm`},Bt={key:1,class:`text-subtitle2 q-mb-sm`},Vt={key:0,class:`text-primary`},Ht={class:`row no-wrap items-center q-gutter-x-xs`},Ut={key:0,class:`row justify-center q-pa-lg`},Wt={key:0,class:`text-caption text-grey-6 q-px-md q-py-sm`},Gt={key:0,class:`text-caption text-grey-6 q-px-md q-py-sm`},Kt=32,qt=G(g({__name:`FileListPanel`,setup(e){let{t}=U(),{stagedFiles:n,unstagedFiles:a,initialLoading:o,error:s}=W(X()),c=$(),{source:l,browseMode:d,filter:f,selectedPath:p,expandedFolders:m,treeInitialLoading:h,treeError:g,filteredDiffFiles:_,diffTreeRows:y,diffListMode:x,filtering:C,filteredTree:A,totalTreeFiles:P}=W(c),F=D(null),I=j(()=>F.value?.getScrollTarget()??null);return(e,D)=>(u(),b(k,null,[v(`div`,zt,[O(d)?(u(),b(`div`,Bt,[E(w(O(t)(`browse.allFiles`))+` `,1),O(P)>0||!O(g)?(u(),b(`span`,Vt,`(`+w(O(P))+`)`,1)):N(``,!0)])):(u(),T(xt,{key:0,modelValue:O(l),"onUpdate:modelValue":D[0]||=e=>M(l)?l.value=e:null,"staged-files-length":O(n).length,"unstaged-files-length":O(a).length},null,8,[`modelValue`,`staged-files-length`,`unstaged-files-length`])),v(`div`,Ht,[S($e,{modelValue:O(f),"onUpdate:modelValue":D[1]||=e=>M(f)?f.value=e:null,class:`col`,placeholder:O(d)?O(t)(`browse.searchPlaceholder`):O(t)(`changes.filterPlaceholder`)},null,8,[`modelValue`,`placeholder`]),O(d)?N(``,!0):(u(),T(B,{key:0,flat:``,dense:``,round:``,size:`sm`,icon:`account_tree`,color:O(x)===`tree`?`primary`:void 0,"aria-label":O(t)(`changes.listMode.tree`),"aria-pressed":O(x)===`tree`,onClick:D[2]||=e=>x.value=O(x)===`tree`?`list`:`tree`},{default:i(()=>[S(V,{delay:O(500)},{default:i(()=>[E(w(O(t)(`changes.listMode.tree`)),1)]),_:1},8,[`delay`])]),_:1},8,[`color`,`aria-label`,`aria-pressed`]))])]),S(H),S(_e,{ref_key:`scrollArea`,ref:F,class:`col file-list-panel__scroll`,"content-style":`padding: 4px 0`,"content-active-style":`padding: 4px 0`},{default:i(()=>[(O(d)?O(h):O(o))?(u(),b(`div`,Ut,[S(z,{color:`primary`,size:`2em`})])):O(d)?(u(),b(k,{key:1},[O(A).length===0&&(!O(g)||O(f)&&O(P)>0)?(u(),b(`p`,Wt,w(O(f)?O(t)(`browse.noMatchingFiles`):O(t)(`browse.noFiles`)),1)):N(``,!0),(u(!0),b(k,null,r(O(A),e=>(u(),T(Dt,{key:e.path,node:e,"selected-path":O(p),"expanded-folders":O(m),level:0,onToggleFolder:O(c).toggleFolder,onFileSelect:O(c).selectFile},null,8,[`node`,`selected-path`,`expanded-folders`,`onToggleFolder`,`onFileSelect`]))),128))],64)):(u(),b(k,{key:2},[O(_).length===0&&(O(f)||!O(s))?(u(),b(`p`,Gt,w(O(f)?O(t)(`browse.noMatchingFiles`):O(t)(`changes.emptyFileList`)),1)):N(``,!0),I.value&&O(x)===`tree`?(u(),T(J,{key:`${O(l)}:tree`,"scroll-target":I.value,items:O(y),"virtual-scroll-item-size":Kt},{default:i(({item:e})=>[e.kind===`folder`?(u(),T(Rt,{key:`d:${e.path}`,name:e.name,path:e.path,depth:e.depth,expanded:e.expanded,locked:O(C),onToggle:t=>O(c).toggleDiffFolder(e.paths)},null,8,[`name`,`path`,`depth`,`expanded`,`locked`,`onToggle`])):(u(),T(Pt,{key:`f:${e.path}`,file:e.file,label:e.name,depth:e.depth,selected:O(p)===e.path,source:O(l),onClick:t=>O(c).selectFile(e.path)},null,8,[`file`,`label`,`depth`,`selected`,`source`,`onClick`]))]),_:1},8,[`scroll-target`,`items`])):I.value?(u(),T(J,{key:`${O(l)}:list`,"scroll-target":I.value,items:O(_),"virtual-scroll-item-size":Kt},{default:i(({item:e})=>[(u(),T(Pt,{key:O(Z)(e),file:e,selected:O(p)===O(Z)(e),source:O(l),onClick:t=>O(c).selectFile(O(Z)(e))},null,8,[`file`,`selected`,`source`,`onClick`]))]),_:1},8,[`scroll-target`,`items`])):N(``,!0)],64))]),_:1},512),S(H),S(Ft,{modelValue:O(d),"onUpdate:modelValue":D[3]||=e=>M(d)?d.value=e:null},null,8,[`modelValue`])],64))}}),[[`__scopeId`,`data-v-bdc095b7`]]),Jt=[`wheel`,`pointerdown`,`keydown`,`touchstart`];function Yt(e){let t=e.inputTarget??(typeof document>`u`?null:document),n=e.follow??Xe,r=null,i;function o(){r=x(e.request),i?.(),i=void 0}for(let e of Jt)t?.addEventListener(e,o,{capture:!0,passive:!0});let s=a([()=>x(e.request),()=>x(e.list),()=>x(e.root)],([t,a,o],s,c)=>{if(!t||t===r||!a||!o)return;let l=!1,u,d=()=>{l=!0,u?.(),u=void 0};i=d,c(()=>{d(),x(e.request)===t&&(r=t),i===d&&(i=void 0)}),f().then(()=>{l||t===r||(a.scrollTo(t.index,`start`),u=n({root:o,target:()=>e.target?e.target(t):document.getElementById(`diff-file-${t.path}`)}))})},{immediate:!0,flush:`post`});A(()=>{s(),i?.();for(let e of Jt)t?.removeEventListener(e,o,!0)})}var Xt={class:`diff-status-bar row items-center q-gutter-x-md q-pa-sm text-body2`},Zt={class:`text-weight-medium`},Qt={class:`text-positive`},$t={class:`text-negative`},en={key:0,class:`text-grey-6`},tn={key:1,class:`text-grey-6`},nn={key:2,class:`text-grey-6`},rn={key:3,class:`text-grey-6`},an=g({__name:`DiffStatusBar`,props:{files:{}},emits:[`expand-all`,`collapse-all`],setup(e,{emit:t}){let n=e,r=t,{t:i}=U(),a=j(()=>{let e=n.files.reduce((e,t)=>e+t.additions,0),t=n.files.reduce((e,t)=>e+t.deletions,0),r=n.files.filter(e=>e.status===`added`).length,i=n.files.filter(e=>e.status===`modified`).length,a=n.files.filter(e=>e.status===`deleted`).length,o=n.files.filter(e=>e.status===`renamed`).length;return{total:n.files.length,additions:e,deletions:t,added:r,modified:i,deleted:a,renamed:o}});return(e,t)=>(u(),b(`div`,Xt,[v(`span`,Zt,w(O(i)(`changes.filesChanged`,{count:a.value.total})),1),v(`span`,Qt,` +`+w(a.value.additions)+` `+w(O(i)(`changes.additions`)),1),v(`span`,$t,` -`+w(a.value.deletions)+` `+w(O(i)(`changes.deletions`)),1),a.value.added?(u(),b(`span`,en,w(a.value.added)+` `+w(O(i)(`changes.added`)),1)):N(``,!0),a.value.modified?(u(),b(`span`,tn,w(a.value.modified)+` `+w(O(i)(`changes.modified`)),1)):N(``,!0),a.value.deleted?(u(),b(`span`,nn,w(a.value.deleted)+` `+w(O(i)(`changes.deletedPlural`)),1)):N(``,!0),a.value.renamed?(u(),b(`span`,rn,w(a.value.renamed)+` `+w(O(i)(`changes.renamed`)),1)):N(``,!0),S(xe),S(B,{dense:``,flat:``,"no-caps":``,size:`sm`,icon:`unfold_more`,label:O(i)(`changes.expandAll`),onClick:t[0]||=e=>r(`expand-all`)},null,8,[`label`]),S(B,{dense:``,flat:``,"no-caps":``,size:`sm`,icon:`unfold_less`,label:O(i)(`changes.collapseAll`),onClick:t[1]||=e=>r(`collapse-all`)},null,8,[`label`])]))}}),on=6e3,sn=40;function cn(e,t,n){let r=y(n(t())?.clientWidth??0),i=j(()=>JSON.stringify([e.version,r.value])),a=Ge({get minHeight(){return e.minHeight},get heightOwner(){return e.owner},heightKey:`card-reserve`,get heightVersion(){return i.value},get cacheHeight(){return e.cacheHeight},get keep(){return e.keep},cost:sn,mountMargin:on},t),o;function s(){let e=n(t());e&&(r.value=e.clientWidth,o=He(e,()=>{r.value=e.clientWidth})),a.start(e)}function c(){a.stop(),o?.(),o=void 0}return A(c),{mounted:a.mounted,height:a.height,start:s,stop:c}}var ln={key:1,class:`card-shell-placeholder__title text-mono`,"aria-busy":`true`},un=G(g({__name:`ChangesFileCard`,props:{file:{}},setup(e){let n=e,r=$(),i=X(),a=Y(),{expandedFiles:o}=W(r),{activeReview:s,commentsByFile:d}=W(a),f=j(()=>Z(n.file)),p=j(()=>De(r.source,f.value)),h=j(()=>i.hunksOf(r.source,n.file)),g=j(()=>i.hunksFresh(r.source,n.file)),_=j(()=>i.hunksError(r.source,n.file)),v=j(()=>o.value.has(f.value)),y=j(()=>d.value.get(f.value)),x=j(()=>!!s.value),S={key:p.value},E=Le(`wrap`,()=>Ve(f.value),S),D=Le(`viewMode`,()=>`diff`,S),k=Ie(S),A=Ye(S),M=j(()=>D.value===`full`?A.value:k.value),N=j(()=>46+(v.value?Me(n.file,h.value)+Re(y.value??[],D.value)+(M.value?90:0):0)),P=j(()=>JSON.stringify([v.value,D.value,E.value,x.value,M.value?[M.value.column,M.value.startKey,M.value.endKey]:null,y.value?.map(e=>[e.id,e.lineType,e.lineNumberEnd,e.content,e.suggestion,e.resolved])])),F=m(`el`),{mounted:I,height:L,start:ee,stop:R}=cn({get minHeight(){return N.value},get owner(){return h.value??n.file},get version(){return P.value},get cacheHeight(){return v.value&&g.value&&D.value===`diff`&&!E.value&&!y.value?.length&&!M.value},get keep(){return!!M.value}},()=>F.value,Pe());C(ee),c(R);function z(){i.ensureHunks(r.source,n.file)}function B(){i.retryHunks(r.source,n.file)}return(n,a)=>(u(),b(`div`,{ref_key:`el`,ref:F,class:t({"card-shell-placeholder":!O(I)}),style:l(O(I)?void 0:{height:`${O(L)}px`})},[O(I)?(u(),T(Ue,{key:0,file:e.file,"state-key":p.value,detail:h.value,"hunks-loaded":g.value,"hunks-error":_.value,expanded:v.value,"agent-source":O(r).source,commentable:x.value,"comments-editable":x.value,comments:y.value,onLoadHunks:z,onRetryHunks:B,onClearHunksError:a[0]||=t=>O(i).clearHunksError(O(r).source,e.file),onToggle:a[1]||=e=>O(r).handleCardToggle(f.value),onExpand:a[2]||=e=>O(r).expandFile(f.value)},null,8,[`file`,`state-key`,`detail`,`hunks-loaded`,`hunks-error`,`expanded`,`agent-source`,`commentable`,`comments-editable`,`comments`])):(u(),b(`div`,ln,w(f.value),1))],6))}}),[[`__scopeId`,`data-v-c1bd4d06`]]),dn={key:0,class:`active-review-bar row items-center q-gutter-x-sm q-px-sm no-wrap`},fn={class:`text-body2 ellipsis`},pn=G(g({__name:`ActiveReviewBar`,setup(e){let{t}=U(),n=ye(),r=Y(),{activeReview:i}=W(r),a=me(),o=Ne();function s(e){r.setStatus(e).catch(e=>{n(t(`reviews.comments.error`),e)})}return(e,n)=>O(i)?(u(),b(`div`,dn,[S(L,{name:`rate_review`,size:`18px`,color:`primary`}),v(`span`,fn,w(O(i).name??O(t)(`reviews.list.unnamed`)),1),S(xe),O(a).enabled?(u(),T(B,{key:0,flat:``,dense:``,"no-caps":``,size:`sm`,icon:O(be),label:O(t)(`agent.context.addReview`),onClick:n[0]||=e=>O(o)({kind:`review`,reviewId:O(i).id})},null,8,[`icon`,`label`])):N(``,!0),S(Je,{status:O(i).status,onChange:s},null,8,[`status`])])):N(``,!0)}}),[[`__scopeId`,`data-v-2b6e4bdd`]]),mn={key:1,class:`q-pa-md text-grey-6`},hn=12,gn=1.5,_n=2,vn=G(g({__name:`DiffPanel`,setup(e){let{t}=U(),r=$(),{diffFiles:o}=W(r),{error:s,loading:c}=W(X()),l=Y(),{activeReview:d}=W(l);ze({create:e=>l.createComment(e),edit:(e,t)=>l.editComment(e,t),remove:e=>l.deleteComment(e),resolve:e=>l.resolveComment(e),unresolve:e=>l.unresolveComment(e)});let p=D(null),m=j(()=>p.value?.getScrollTarget()??null);n(Qe,()=>m.value);let h=D(null);return Yt({request:()=>r.scrollRequest,list:h,root:m}),a(()=>r.layoutVersion,async()=>{await f(),h.value?.reset()}),a(o,async(e,t)=>{Ae(e,t,(e,t)=>Z(e)===Z(t))||(await f(),h.value?.reset())}),(e,n)=>(u(),b(k,null,[O(s)?(u(),T(qe,{key:0,title:O(t)(`changes.loadError`),message:O(s),loading:O(c),onRetry:n[0]||=e=>O(r).refresh()},null,8,[`title`,`message`,`loading`])):N(``,!0),O(o).length===0&&!O(s)?(u(),b(`div`,mn,w(O(t)(`changes.emptyDiffPanel`)),1)):O(o).length>0?(u(),b(k,{key:2},[S(pn),O(d)?(u(),T(H,{key:0})):N(``,!0),S(an,{files:O(o),onExpandAll:O(r).expandAllFiles,onCollapseAll:O(r).collapseAllFiles},null,8,[`files`,`onExpandAll`,`onCollapseAll`]),S(H),S(_e,{ref_key:`scrollArea`,ref:p,class:`col sticky-header-scroll`,"content-style":`padding: 8px; width: 100%; max-width: 100%`,"content-active-style":`padding: 8px; width: 100%; max-width: 100%`},{default:i(()=>[m.value?(u(),T(J,{key:O(r).source,ref_key:`virtualScroll`,ref:h,"scroll-target":m.value,items:O(o),"virtual-scroll-item-size":O(46),"virtual-scroll-slice-size":hn,"virtual-scroll-slice-ratio-before":gn,"virtual-scroll-slice-ratio-after":_n},{default:i(({item:e})=>[(u(),b(`div`,{key:O(Z)(e),class:`diff-virtual-slot`},[S(un,{file:e},null,8,[`file`])]))]),_:1},8,[`scroll-target`,`items`,`virtual-scroll-item-size`])):N(``,!0)]),_:1},512)],64)):N(``,!0),!O(d)&&O(o).length>0?(u(),T(et,{key:3})):N(``,!0)],64))}}),[[`__scopeId`,`data-v-44aabadb`]]),yn={key:1,class:`q-pa-md text-grey-6`},bn={key:0,class:`row justify-center q-pa-lg`},xn={key:1,class:`q-pa-md text-grey-6`},Sn={class:`text-caption`},Cn={key:2,class:`q-pa-md text-grey-6`},wn=g({__name:`FileContentPanel`,setup(e){let{t}=U(),n=$(),{selectedPath:r,browseFileLines:o,browseFileIsBinary:s,browseFileLoading:c,browseFileError:l,treeError:d,refreshing:f}=W(n),{error:p}=W(X()),m=j(()=>p.value?{title:t(`changes.loadError`),message:p.value}:d.value?{title:t(`browse.treeLoadError`),message:d.value}:null),h=D(!1);return a(r,e=>{h.value=e?Ve(e):!1},{immediate:!0}),(e,a)=>(u(),b(k,null,[m.value?(u(),T(qe,{key:0,title:m.value.title,message:m.value.message,loading:O(f),onRetry:a[0]||=e=>O(n).refresh()},null,8,[`title`,`message`,`loading`])):N(``,!0),O(r)?(u(),T(Ke,{key:2,class:`col`},{header:i(()=>[S(We,{path:O(r)},{default:i(()=>[S(Be,{modelValue:h.value,"onUpdate:modelValue":a[1]||=e=>h.value=e,path:O(r)},null,8,[`modelValue`,`path`])]),_:1},8,[`path`])]),default:i(()=>[O(c)&&O(o).length===0&&!O(l)?(u(),b(`div`,bn,[S(z,{color:`primary`,size:`2em`})])):O(l)?(u(),b(`div`,xn,[E(w(O(t)(`changes.fullFileLoadError`))+` `,1),v(`div`,Sn,w(O(l)),1),S(B,{flat:``,dense:``,color:`primary`,class:`q-mt-sm`,label:O(t)(`changes.retry`),loading:O(f),onClick:a[2]||=e=>O(n).refresh()},null,8,[`label`,`loading`])])):O(s)?(u(),b(`div`,Cn,w(O(t)(`changes.binaryFile`)),1)):(u(),T(_e,{key:3,class:`col`,"content-style":`padding: 8px`,"content-active-style":`padding: 8px`},{default:i(()=>[S(Fe,{path:O(r),lines:O(o),wrap:h.value},null,8,[`path`,`lines`,`wrap`])]),_:1}))]),_:1})):(u(),b(`div`,yn,w(O(t)(`browse.selectFile`)),1))],64))}}),Tn=g({__name:`FileExplorer`,setup(e){let t=$(),n=Y(),{browseMode:r}=W(t);C(()=>{t.refresh(),n.refresh()});let a=le([`files:changed`],()=>void t.refreshFromServerEvent());s(()=>a.close());let o=le([`review:created`,`review:updated`,`review:deleted`,`comment:created`,`comment:updated`,`comment:deleted`],()=>void n.refresh());return s(()=>o.close()),(e,t)=>(u(),T(vt,null,{panel:i(()=>[S(qt)]),content:i(()=>[O(r)?(u(),T(wn,{key:0})):(u(),T(vn,{key:1}))]),_:1}))}}),En=g({__name:`IndexPage`,setup(e){return(e,t)=>(u(),T(ke,null,{default:i(()=>[S(Tn)]),_:1}))}});export{En as default};