vibe-pal 0.42.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 (664) hide show
  1. package/.next/BUILD_ID +1 -0
  2. package/.next/app-path-routes-manifest.json +32 -0
  3. package/.next/build-manifest.json +21 -0
  4. package/.next/export-marker.json +6 -0
  5. package/.next/fallback-build-manifest.json +12 -0
  6. package/.next/images-manifest.json +67 -0
  7. package/.next/next-minimal-server.js.nft.json +1 -0
  8. package/.next/next-server.js.nft.json +1 -0
  9. package/.next/package.json +1 -0
  10. package/.next/prerender-manifest.json +258 -0
  11. package/.next/required-server-files.js +343 -0
  12. package/.next/required-server-files.json +343 -0
  13. package/.next/routes-manifest.json +233 -0
  14. package/.next/server/app/_global-error/page/app-paths-manifest.json +3 -0
  15. package/.next/server/app/_global-error/page/build-manifest.json +18 -0
  16. package/.next/server/app/_global-error/page/next-font-manifest.json +6 -0
  17. package/.next/server/app/_global-error/page/react-loadable-manifest.json +1 -0
  18. package/.next/server/app/_global-error/page/server-reference-manifest.json +4 -0
  19. package/.next/server/app/_global-error/page.js +10 -0
  20. package/.next/server/app/_global-error/page.js.map +5 -0
  21. package/.next/server/app/_global-error/page.js.nft.json +1 -0
  22. package/.next/server/app/_global-error/page_client-reference-manifest.js +2 -0
  23. package/.next/server/app/_global-error.html +2 -0
  24. package/.next/server/app/_global-error.meta +15 -0
  25. package/.next/server/app/_global-error.rsc +12 -0
  26. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +5 -0
  27. package/.next/server/app/_global-error.segments/_full.segment.rsc +12 -0
  28. package/.next/server/app/_global-error.segments/_head.segment.rsc +5 -0
  29. package/.next/server/app/_global-error.segments/_index.segment.rsc +4 -0
  30. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  31. package/.next/server/app/_not-found/page/app-paths-manifest.json +3 -0
  32. package/.next/server/app/_not-found/page/build-manifest.json +18 -0
  33. package/.next/server/app/_not-found/page/next-font-manifest.json +11 -0
  34. package/.next/server/app/_not-found/page/react-loadable-manifest.json +1 -0
  35. package/.next/server/app/_not-found/page/server-reference-manifest.json +4 -0
  36. package/.next/server/app/_not-found/page.js +15 -0
  37. package/.next/server/app/_not-found/page.js.map +5 -0
  38. package/.next/server/app/_not-found/page.js.nft.json +1 -0
  39. package/.next/server/app/_not-found/page_client-reference-manifest.js +2 -0
  40. package/.next/server/app/_not-found.html +54 -0
  41. package/.next/server/app/_not-found.meta +16 -0
  42. package/.next/server/app/_not-found.rsc +73 -0
  43. package/.next/server/app/_not-found.segments/_full.segment.rsc +73 -0
  44. package/.next/server/app/_not-found.segments/_head.segment.rsc +6 -0
  45. package/.next/server/app/_not-found.segments/_index.segment.rsc +61 -0
  46. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +5 -0
  47. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +4 -0
  48. package/.next/server/app/_not-found.segments/_tree.segment.rsc +4 -0
  49. package/.next/server/app/api/component-source/resolve/route/app-paths-manifest.json +3 -0
  50. package/.next/server/app/api/component-source/resolve/route/build-manifest.json +11 -0
  51. package/.next/server/app/api/component-source/resolve/route/server-reference-manifest.json +4 -0
  52. package/.next/server/app/api/component-source/resolve/route.js +8 -0
  53. package/.next/server/app/api/component-source/resolve/route.js.map +5 -0
  54. package/.next/server/app/api/component-source/resolve/route.js.nft.json +1 -0
  55. package/.next/server/app/api/component-source/resolve/route_client-reference-manifest.js +2 -0
  56. package/.next/server/app/api/credentials/github/repos/route/app-paths-manifest.json +3 -0
  57. package/.next/server/app/api/credentials/github/repos/route/build-manifest.json +11 -0
  58. package/.next/server/app/api/credentials/github/repos/route/server-reference-manifest.json +4 -0
  59. package/.next/server/app/api/credentials/github/repos/route.js +8 -0
  60. package/.next/server/app/api/credentials/github/repos/route.js.map +5 -0
  61. package/.next/server/app/api/credentials/github/repos/route.js.nft.json +1 -0
  62. package/.next/server/app/api/credentials/github/repos/route_client-reference-manifest.js +2 -0
  63. package/.next/server/app/api/credentials/route/app-paths-manifest.json +3 -0
  64. package/.next/server/app/api/credentials/route/build-manifest.json +11 -0
  65. package/.next/server/app/api/credentials/route/server-reference-manifest.json +4 -0
  66. package/.next/server/app/api/credentials/route.js +8 -0
  67. package/.next/server/app/api/credentials/route.js.map +5 -0
  68. package/.next/server/app/api/credentials/route.js.nft.json +1 -0
  69. package/.next/server/app/api/credentials/route_client-reference-manifest.js +2 -0
  70. package/.next/server/app/api/custom-scripts/route/app-paths-manifest.json +3 -0
  71. package/.next/server/app/api/custom-scripts/route/build-manifest.json +11 -0
  72. package/.next/server/app/api/custom-scripts/route/server-reference-manifest.json +4 -0
  73. package/.next/server/app/api/custom-scripts/route.js +10 -0
  74. package/.next/server/app/api/custom-scripts/route.js.map +5 -0
  75. package/.next/server/app/api/custom-scripts/route.js.nft.json +1 -0
  76. package/.next/server/app/api/custom-scripts/route_client-reference-manifest.js +2 -0
  77. package/.next/server/app/api/file-thumbnail/route/app-paths-manifest.json +3 -0
  78. package/.next/server/app/api/file-thumbnail/route/build-manifest.json +11 -0
  79. package/.next/server/app/api/file-thumbnail/route/server-reference-manifest.json +4 -0
  80. package/.next/server/app/api/file-thumbnail/route.js +6 -0
  81. package/.next/server/app/api/file-thumbnail/route.js.map +5 -0
  82. package/.next/server/app/api/file-thumbnail/route.js.nft.json +1 -0
  83. package/.next/server/app/api/file-thumbnail/route_client-reference-manifest.js +2 -0
  84. package/.next/server/app/api/fs/open/route/app-paths-manifest.json +3 -0
  85. package/.next/server/app/api/fs/open/route/build-manifest.json +11 -0
  86. package/.next/server/app/api/fs/open/route/server-reference-manifest.json +4 -0
  87. package/.next/server/app/api/fs/open/route.js +8 -0
  88. package/.next/server/app/api/fs/open/route.js.map +5 -0
  89. package/.next/server/app/api/fs/open/route.js.nft.json +1 -0
  90. package/.next/server/app/api/fs/open/route_client-reference-manifest.js +2 -0
  91. package/.next/server/app/api/fs/open-terminal/route/app-paths-manifest.json +3 -0
  92. package/.next/server/app/api/fs/open-terminal/route/build-manifest.json +11 -0
  93. package/.next/server/app/api/fs/open-terminal/route/server-reference-manifest.json +4 -0
  94. package/.next/server/app/api/fs/open-terminal/route.js +8 -0
  95. package/.next/server/app/api/fs/open-terminal/route.js.map +5 -0
  96. package/.next/server/app/api/fs/open-terminal/route.js.nft.json +1 -0
  97. package/.next/server/app/api/fs/open-terminal/route_client-reference-manifest.js +2 -0
  98. package/.next/server/app/api/git/action/route/app-paths-manifest.json +3 -0
  99. package/.next/server/app/api/git/action/route/build-manifest.json +11 -0
  100. package/.next/server/app/api/git/action/route/server-reference-manifest.json +4 -0
  101. package/.next/server/app/api/git/action/route.js +10 -0
  102. package/.next/server/app/api/git/action/route.js.map +5 -0
  103. package/.next/server/app/api/git/action/route.js.nft.json +1 -0
  104. package/.next/server/app/api/git/action/route_client-reference-manifest.js +2 -0
  105. package/.next/server/app/api/git/branches/route/app-paths-manifest.json +3 -0
  106. package/.next/server/app/api/git/branches/route/build-manifest.json +11 -0
  107. package/.next/server/app/api/git/branches/route/server-reference-manifest.json +4 -0
  108. package/.next/server/app/api/git/branches/route.js +10 -0
  109. package/.next/server/app/api/git/branches/route.js.map +5 -0
  110. package/.next/server/app/api/git/branches/route.js.nft.json +1 -0
  111. package/.next/server/app/api/git/branches/route_client-reference-manifest.js +2 -0
  112. package/.next/server/app/api/git/diff/route/app-paths-manifest.json +3 -0
  113. package/.next/server/app/api/git/diff/route/build-manifest.json +11 -0
  114. package/.next/server/app/api/git/diff/route/server-reference-manifest.json +4 -0
  115. package/.next/server/app/api/git/diff/route.js +9 -0
  116. package/.next/server/app/api/git/diff/route.js.map +5 -0
  117. package/.next/server/app/api/git/diff/route.js.nft.json +1 -0
  118. package/.next/server/app/api/git/diff/route_client-reference-manifest.js +2 -0
  119. package/.next/server/app/api/git/log/route/app-paths-manifest.json +3 -0
  120. package/.next/server/app/api/git/log/route/build-manifest.json +11 -0
  121. package/.next/server/app/api/git/log/route/server-reference-manifest.json +4 -0
  122. package/.next/server/app/api/git/log/route.js +10 -0
  123. package/.next/server/app/api/git/log/route.js.map +5 -0
  124. package/.next/server/app/api/git/log/route.js.nft.json +1 -0
  125. package/.next/server/app/api/git/log/route_client-reference-manifest.js +2 -0
  126. package/.next/server/app/api/git/status/route/app-paths-manifest.json +3 -0
  127. package/.next/server/app/api/git/status/route/build-manifest.json +11 -0
  128. package/.next/server/app/api/git/status/route/server-reference-manifest.json +4 -0
  129. package/.next/server/app/api/git/status/route.js +10 -0
  130. package/.next/server/app/api/git/status/route.js.map +5 -0
  131. package/.next/server/app/api/git/status/route.js.nft.json +1 -0
  132. package/.next/server/app/api/git/status/route_client-reference-manifest.js +2 -0
  133. package/.next/server/app/api/notifications/route/app-paths-manifest.json +3 -0
  134. package/.next/server/app/api/notifications/route/build-manifest.json +11 -0
  135. package/.next/server/app/api/notifications/route/server-reference-manifest.json +4 -0
  136. package/.next/server/app/api/notifications/route.js +8 -0
  137. package/.next/server/app/api/notifications/route.js.map +5 -0
  138. package/.next/server/app/api/notifications/route.js.nft.json +1 -0
  139. package/.next/server/app/api/notifications/route_client-reference-manifest.js +2 -0
  140. package/.next/server/app/api/notifications/socket/route/app-paths-manifest.json +3 -0
  141. package/.next/server/app/api/notifications/socket/route/build-manifest.json +11 -0
  142. package/.next/server/app/api/notifications/socket/route/server-reference-manifest.json +4 -0
  143. package/.next/server/app/api/notifications/socket/route.js +8 -0
  144. package/.next/server/app/api/notifications/socket/route.js.map +5 -0
  145. package/.next/server/app/api/notifications/socket/route.js.nft.json +1 -0
  146. package/.next/server/app/api/notifications/socket/route_client-reference-manifest.js +2 -0
  147. package/.next/server/app/api/preview-proxy/start/route/app-paths-manifest.json +3 -0
  148. package/.next/server/app/api/preview-proxy/start/route/build-manifest.json +11 -0
  149. package/.next/server/app/api/preview-proxy/start/route/server-reference-manifest.json +4 -0
  150. package/.next/server/app/api/preview-proxy/start/route.js +8 -0
  151. package/.next/server/app/api/preview-proxy/start/route.js.map +5 -0
  152. package/.next/server/app/api/preview-proxy/start/route.js.nft.json +1 -0
  153. package/.next/server/app/api/preview-proxy/start/route_client-reference-manifest.js +2 -0
  154. package/.next/server/app/api/repos/clone/route/app-paths-manifest.json +3 -0
  155. package/.next/server/app/api/repos/clone/route/build-manifest.json +11 -0
  156. package/.next/server/app/api/repos/clone/route/server-reference-manifest.json +4 -0
  157. package/.next/server/app/api/repos/clone/route.js +9 -0
  158. package/.next/server/app/api/repos/clone/route.js.map +5 -0
  159. package/.next/server/app/api/repos/clone/route.js.nft.json +1 -0
  160. package/.next/server/app/api/repos/clone/route_client-reference-manifest.js +2 -0
  161. package/.next/server/app/api/repos/route/app-paths-manifest.json +3 -0
  162. package/.next/server/app/api/repos/route/build-manifest.json +11 -0
  163. package/.next/server/app/api/repos/route/server-reference-manifest.json +4 -0
  164. package/.next/server/app/api/repos/route.js +9 -0
  165. package/.next/server/app/api/repos/route.js.map +5 -0
  166. package/.next/server/app/api/repos/route.js.nft.json +1 -0
  167. package/.next/server/app/api/repos/route_client-reference-manifest.js +2 -0
  168. package/.next/server/app/api/settings/route/app-paths-manifest.json +3 -0
  169. package/.next/server/app/api/settings/route/build-manifest.json +11 -0
  170. package/.next/server/app/api/settings/route/server-reference-manifest.json +4 -0
  171. package/.next/server/app/api/settings/route.js +8 -0
  172. package/.next/server/app/api/settings/route.js.map +5 -0
  173. package/.next/server/app/api/settings/route.js.nft.json +1 -0
  174. package/.next/server/app/api/settings/route_client-reference-manifest.js +2 -0
  175. package/.next/server/app/credentials/page/app-paths-manifest.json +3 -0
  176. package/.next/server/app/credentials/page/build-manifest.json +18 -0
  177. package/.next/server/app/credentials/page/next-font-manifest.json +11 -0
  178. package/.next/server/app/credentials/page/react-loadable-manifest.json +1 -0
  179. package/.next/server/app/credentials/page/server-reference-manifest.json +110 -0
  180. package/.next/server/app/credentials/page.js +18 -0
  181. package/.next/server/app/credentials/page.js.map +5 -0
  182. package/.next/server/app/credentials/page.js.nft.json +1 -0
  183. package/.next/server/app/credentials/page_client-reference-manifest.js +2 -0
  184. package/.next/server/app/credentials.html +54 -0
  185. package/.next/server/app/credentials.meta +15 -0
  186. package/.next/server/app/credentials.rsc +79 -0
  187. package/.next/server/app/credentials.segments/_full.segment.rsc +79 -0
  188. package/.next/server/app/credentials.segments/_head.segment.rsc +6 -0
  189. package/.next/server/app/credentials.segments/_index.segment.rsc +61 -0
  190. package/.next/server/app/credentials.segments/_tree.segment.rsc +6 -0
  191. package/.next/server/app/credentials.segments/credentials/__PAGE__.segment.rsc +9 -0
  192. package/.next/server/app/credentials.segments/credentials.segment.rsc +4 -0
  193. package/.next/server/app/git/changes/page/app-paths-manifest.json +3 -0
  194. package/.next/server/app/git/changes/page/build-manifest.json +18 -0
  195. package/.next/server/app/git/changes/page/next-font-manifest.json +11 -0
  196. package/.next/server/app/git/changes/page/react-loadable-manifest.json +1 -0
  197. package/.next/server/app/git/changes/page/server-reference-manifest.json +4 -0
  198. package/.next/server/app/git/changes/page.js +18 -0
  199. package/.next/server/app/git/changes/page.js.map +5 -0
  200. package/.next/server/app/git/changes/page.js.nft.json +1 -0
  201. package/.next/server/app/git/changes/page_client-reference-manifest.js +2 -0
  202. package/.next/server/app/git/changes.html +54 -0
  203. package/.next/server/app/git/changes.meta +16 -0
  204. package/.next/server/app/git/changes.rsc +83 -0
  205. package/.next/server/app/git/changes.segments/_full.segment.rsc +83 -0
  206. package/.next/server/app/git/changes.segments/_head.segment.rsc +6 -0
  207. package/.next/server/app/git/changes.segments/_index.segment.rsc +61 -0
  208. package/.next/server/app/git/changes.segments/_tree.segment.rsc +7 -0
  209. package/.next/server/app/git/changes.segments/git/changes/__PAGE__.segment.rsc +10 -0
  210. package/.next/server/app/git/changes.segments/git/changes.segment.rsc +4 -0
  211. package/.next/server/app/git/changes.segments/git.segment.rsc +7 -0
  212. package/.next/server/app/git/custom-scripts/page/app-paths-manifest.json +3 -0
  213. package/.next/server/app/git/custom-scripts/page/build-manifest.json +18 -0
  214. package/.next/server/app/git/custom-scripts/page/next-font-manifest.json +11 -0
  215. package/.next/server/app/git/custom-scripts/page/react-loadable-manifest.json +1 -0
  216. package/.next/server/app/git/custom-scripts/page/server-reference-manifest.json +4 -0
  217. package/.next/server/app/git/custom-scripts/page.js +18 -0
  218. package/.next/server/app/git/custom-scripts/page.js.map +5 -0
  219. package/.next/server/app/git/custom-scripts/page.js.nft.json +1 -0
  220. package/.next/server/app/git/custom-scripts/page_client-reference-manifest.js +2 -0
  221. package/.next/server/app/git/custom-scripts.html +54 -0
  222. package/.next/server/app/git/custom-scripts.meta +16 -0
  223. package/.next/server/app/git/custom-scripts.rsc +82 -0
  224. package/.next/server/app/git/custom-scripts.segments/_full.segment.rsc +82 -0
  225. package/.next/server/app/git/custom-scripts.segments/_head.segment.rsc +6 -0
  226. package/.next/server/app/git/custom-scripts.segments/_index.segment.rsc +61 -0
  227. package/.next/server/app/git/custom-scripts.segments/_tree.segment.rsc +6 -0
  228. package/.next/server/app/git/custom-scripts.segments/git/custom-scripts/__PAGE__.segment.rsc +9 -0
  229. package/.next/server/app/git/custom-scripts.segments/git/custom-scripts.segment.rsc +4 -0
  230. package/.next/server/app/git/custom-scripts.segments/git.segment.rsc +7 -0
  231. package/.next/server/app/git/history/page/app-paths-manifest.json +3 -0
  232. package/.next/server/app/git/history/page/build-manifest.json +18 -0
  233. package/.next/server/app/git/history/page/next-font-manifest.json +11 -0
  234. package/.next/server/app/git/history/page/react-loadable-manifest.json +1 -0
  235. package/.next/server/app/git/history/page/server-reference-manifest.json +20 -0
  236. package/.next/server/app/git/history/page.js +19 -0
  237. package/.next/server/app/git/history/page.js.map +5 -0
  238. package/.next/server/app/git/history/page.js.nft.json +1 -0
  239. package/.next/server/app/git/history/page_client-reference-manifest.js +2 -0
  240. package/.next/server/app/git/history.html +54 -0
  241. package/.next/server/app/git/history.meta +16 -0
  242. package/.next/server/app/git/history.rsc +83 -0
  243. package/.next/server/app/git/history.segments/_full.segment.rsc +83 -0
  244. package/.next/server/app/git/history.segments/_head.segment.rsc +6 -0
  245. package/.next/server/app/git/history.segments/_index.segment.rsc +61 -0
  246. package/.next/server/app/git/history.segments/_tree.segment.rsc +7 -0
  247. package/.next/server/app/git/history.segments/git/history/__PAGE__.segment.rsc +10 -0
  248. package/.next/server/app/git/history.segments/git/history.segment.rsc +4 -0
  249. package/.next/server/app/git/history.segments/git.segment.rsc +7 -0
  250. package/.next/server/app/git/page/app-paths-manifest.json +3 -0
  251. package/.next/server/app/git/page/build-manifest.json +18 -0
  252. package/.next/server/app/git/page/next-font-manifest.json +11 -0
  253. package/.next/server/app/git/page/react-loadable-manifest.json +1 -0
  254. package/.next/server/app/git/page/server-reference-manifest.json +20 -0
  255. package/.next/server/app/git/page.js +19 -0
  256. package/.next/server/app/git/page.js.map +5 -0
  257. package/.next/server/app/git/page.js.nft.json +1 -0
  258. package/.next/server/app/git/page_client-reference-manifest.js +2 -0
  259. package/.next/server/app/git/stashes/page/app-paths-manifest.json +3 -0
  260. package/.next/server/app/git/stashes/page/build-manifest.json +18 -0
  261. package/.next/server/app/git/stashes/page/next-font-manifest.json +11 -0
  262. package/.next/server/app/git/stashes/page/react-loadable-manifest.json +1 -0
  263. package/.next/server/app/git/stashes/page/server-reference-manifest.json +4 -0
  264. package/.next/server/app/git/stashes/page.js +18 -0
  265. package/.next/server/app/git/stashes/page.js.map +5 -0
  266. package/.next/server/app/git/stashes/page.js.nft.json +1 -0
  267. package/.next/server/app/git/stashes/page_client-reference-manifest.js +2 -0
  268. package/.next/server/app/git/stashes.html +54 -0
  269. package/.next/server/app/git/stashes.meta +16 -0
  270. package/.next/server/app/git/stashes.rsc +83 -0
  271. package/.next/server/app/git/stashes.segments/_full.segment.rsc +83 -0
  272. package/.next/server/app/git/stashes.segments/_head.segment.rsc +6 -0
  273. package/.next/server/app/git/stashes.segments/_index.segment.rsc +61 -0
  274. package/.next/server/app/git/stashes.segments/_tree.segment.rsc +7 -0
  275. package/.next/server/app/git/stashes.segments/git/stashes/__PAGE__.segment.rsc +10 -0
  276. package/.next/server/app/git/stashes.segments/git/stashes.segment.rsc +4 -0
  277. package/.next/server/app/git/stashes.segments/git.segment.rsc +7 -0
  278. package/.next/server/app/git.html +54 -0
  279. package/.next/server/app/git.meta +15 -0
  280. package/.next/server/app/git.rsc +82 -0
  281. package/.next/server/app/git.segments/_full.segment.rsc +82 -0
  282. package/.next/server/app/git.segments/_head.segment.rsc +6 -0
  283. package/.next/server/app/git.segments/_index.segment.rsc +61 -0
  284. package/.next/server/app/git.segments/_tree.segment.rsc +7 -0
  285. package/.next/server/app/git.segments/git/__PAGE__.segment.rsc +10 -0
  286. package/.next/server/app/git.segments/git.segment.rsc +7 -0
  287. package/.next/server/app/icon.png/route/app-paths-manifest.json +3 -0
  288. package/.next/server/app/icon.png/route/build-manifest.json +11 -0
  289. package/.next/server/app/icon.png/route.js +8 -0
  290. package/.next/server/app/icon.png/route.js.map +5 -0
  291. package/.next/server/app/icon.png/route.js.nft.json +1 -0
  292. package/.next/server/app/icon.png.body +0 -0
  293. package/.next/server/app/icon.png.meta +1 -0
  294. package/.next/server/app/index.html +54 -0
  295. package/.next/server/app/index.meta +14 -0
  296. package/.next/server/app/index.rsc +78 -0
  297. package/.next/server/app/index.segments/__PAGE__.segment.rsc +9 -0
  298. package/.next/server/app/index.segments/_full.segment.rsc +78 -0
  299. package/.next/server/app/index.segments/_head.segment.rsc +6 -0
  300. package/.next/server/app/index.segments/_index.segment.rsc +61 -0
  301. package/.next/server/app/index.segments/_tree.segment.rsc +6 -0
  302. package/.next/server/app/new/page/app-paths-manifest.json +3 -0
  303. package/.next/server/app/new/page/build-manifest.json +18 -0
  304. package/.next/server/app/new/page/next-font-manifest.json +11 -0
  305. package/.next/server/app/new/page/react-loadable-manifest.json +1 -0
  306. package/.next/server/app/new/page/server-reference-manifest.json +440 -0
  307. package/.next/server/app/new/page.js +19 -0
  308. package/.next/server/app/new/page.js.map +5 -0
  309. package/.next/server/app/new/page.js.nft.json +1 -0
  310. package/.next/server/app/new/page_client-reference-manifest.js +2 -0
  311. package/.next/server/app/page/app-paths-manifest.json +3 -0
  312. package/.next/server/app/page/build-manifest.json +18 -0
  313. package/.next/server/app/page/next-font-manifest.json +11 -0
  314. package/.next/server/app/page/react-loadable-manifest.json +1 -0
  315. package/.next/server/app/page/server-reference-manifest.json +440 -0
  316. package/.next/server/app/page.js +19 -0
  317. package/.next/server/app/page.js.map +5 -0
  318. package/.next/server/app/page.js.nft.json +1 -0
  319. package/.next/server/app/page_client-reference-manifest.js +2 -0
  320. package/.next/server/app/session/[sessionId]/page/app-paths-manifest.json +3 -0
  321. package/.next/server/app/session/[sessionId]/page/build-manifest.json +18 -0
  322. package/.next/server/app/session/[sessionId]/page/next-font-manifest.json +11 -0
  323. package/.next/server/app/session/[sessionId]/page/react-loadable-manifest.json +1 -0
  324. package/.next/server/app/session/[sessionId]/page/server-reference-manifest.json +305 -0
  325. package/.next/server/app/session/[sessionId]/page.js +18 -0
  326. package/.next/server/app/session/[sessionId]/page.js.map +5 -0
  327. package/.next/server/app/session/[sessionId]/page.js.nft.json +1 -0
  328. package/.next/server/app/session/[sessionId]/page_client-reference-manifest.js +2 -0
  329. package/.next/server/app-paths-manifest.json +32 -0
  330. package/.next/server/chunks/07f91_next_9d45f6d5._.js +17 -0
  331. package/.next/server/chunks/07f91_next_9d45f6d5._.js.map +1 -0
  332. package/.next/server/chunks/07f91_next_dist_esm_build_templates_app-route_46f1593d.js +3 -0
  333. package/.next/server/chunks/07f91_next_dist_esm_build_templates_app-route_46f1593d.js.map +1 -0
  334. package/.next/server/chunks/07f91_next_dist_esm_build_templates_app-route_90bd67a9.js +3 -0
  335. package/.next/server/chunks/07f91_next_dist_esm_build_templates_app-route_90bd67a9.js.map +1 -0
  336. package/.next/server/chunks/07f91_next_dist_esm_build_templates_app-route_f20df18e.js +3 -0
  337. package/.next/server/chunks/07f91_next_dist_esm_build_templates_app-route_f20df18e.js.map +1 -0
  338. package/.next/server/chunks/07f91_zod_v4_classic_external_d5e5e58f.js +39 -0
  339. package/.next/server/chunks/07f91_zod_v4_classic_external_d5e5e58f.js.map +1 -0
  340. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_credentials_route_actions_26ba0a95.js +3 -0
  341. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_credentials_route_actions_26ba0a95.js.map +1 -0
  342. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_fs_open_route_actions_032a4104.js +3 -0
  343. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_fs_open_route_actions_032a4104.js.map +1 -0
  344. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_git_action_route_actions_be1fb514.js +3 -0
  345. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_git_action_route_actions_be1fb514.js.map +1 -0
  346. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_git_branches_route_actions_82f3fb01.js +3 -0
  347. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_git_branches_route_actions_82f3fb01.js.map +1 -0
  348. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_git_diff_route_actions_2e33c2ae.js +3 -0
  349. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_git_diff_route_actions_2e33c2ae.js.map +1 -0
  350. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_git_log_route_actions_f07c3897.js +3 -0
  351. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_git_log_route_actions_f07c3897.js.map +1 -0
  352. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_git_status_route_actions_f81eb7b9.js +3 -0
  353. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_git_status_route_actions_f81eb7b9.js.map +1 -0
  354. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_repos_clone_route_actions_25fa7ec8.js +3 -0
  355. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_repos_clone_route_actions_25fa7ec8.js.map +1 -0
  356. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_repos_route_actions_bfe1f1f8.js +3 -0
  357. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_repos_route_actions_bfe1f1f8.js.map +1 -0
  358. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_settings_route_actions_21365dd0.js +3 -0
  359. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_api_settings_route_actions_21365dd0.js.map +1 -0
  360. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_icon_png_route_actions_6ca1b9f2.js +3 -0
  361. package/.next/server/chunks/6c7f9_projects_viba__next-internal_server_app_icon_png_route_actions_6ca1b9f2.js.map +1 -0
  362. package/.next/server/chunks/[externals]__4610b07e._.js +3 -0
  363. package/.next/server/chunks/[externals]__4610b07e._.js.map +1 -0
  364. package/.next/server/chunks/[externals]_keytar_be364400._.js +3 -0
  365. package/.next/server/chunks/[externals]_keytar_be364400._.js.map +1 -0
  366. package/.next/server/chunks/[externals]_next_dist_a6d89067._.js +3 -0
  367. package/.next/server/chunks/[externals]_next_dist_a6d89067._.js.map +1 -0
  368. package/.next/server/chunks/[root-of-the-server]__03cff574._.js +3 -0
  369. package/.next/server/chunks/[root-of-the-server]__03cff574._.js.map +1 -0
  370. package/.next/server/chunks/[root-of-the-server]__13277fdb._.js +3 -0
  371. package/.next/server/chunks/[root-of-the-server]__13277fdb._.js.map +1 -0
  372. package/.next/server/chunks/[root-of-the-server]__1e250bd8._.js +3 -0
  373. package/.next/server/chunks/[root-of-the-server]__1e250bd8._.js.map +1 -0
  374. package/.next/server/chunks/[root-of-the-server]__3bd99321._.js +4 -0
  375. package/.next/server/chunks/[root-of-the-server]__3bd99321._.js.map +1 -0
  376. package/.next/server/chunks/[root-of-the-server]__4425ca0b._.js +3 -0
  377. package/.next/server/chunks/[root-of-the-server]__4425ca0b._.js.map +1 -0
  378. package/.next/server/chunks/[root-of-the-server]__534c2265._.js +7 -0
  379. package/.next/server/chunks/[root-of-the-server]__534c2265._.js.map +1 -0
  380. package/.next/server/chunks/[root-of-the-server]__5e629757._.js +3 -0
  381. package/.next/server/chunks/[root-of-the-server]__5e629757._.js.map +1 -0
  382. package/.next/server/chunks/[root-of-the-server]__6f61c772._.js +5 -0
  383. package/.next/server/chunks/[root-of-the-server]__6f61c772._.js.map +1 -0
  384. package/.next/server/chunks/[root-of-the-server]__7382f924._.js +519 -0
  385. package/.next/server/chunks/[root-of-the-server]__7382f924._.js.map +1 -0
  386. package/.next/server/chunks/[root-of-the-server]__747b62e9._.js +3 -0
  387. package/.next/server/chunks/[root-of-the-server]__747b62e9._.js.map +1 -0
  388. package/.next/server/chunks/[root-of-the-server]__75dd8619._.js +3 -0
  389. package/.next/server/chunks/[root-of-the-server]__75dd8619._.js.map +1 -0
  390. package/.next/server/chunks/[root-of-the-server]__8303caaa._.js +7 -0
  391. package/.next/server/chunks/[root-of-the-server]__8303caaa._.js.map +1 -0
  392. package/.next/server/chunks/[root-of-the-server]__86bb1f97._.js +3 -0
  393. package/.next/server/chunks/[root-of-the-server]__86bb1f97._.js.map +1 -0
  394. package/.next/server/chunks/[root-of-the-server]__9535c729._.js +3 -0
  395. package/.next/server/chunks/[root-of-the-server]__9535c729._.js.map +1 -0
  396. package/.next/server/chunks/[root-of-the-server]__9fdd5d22._.js +3 -0
  397. package/.next/server/chunks/[root-of-the-server]__9fdd5d22._.js.map +1 -0
  398. package/.next/server/chunks/[root-of-the-server]__bb058465._.js +3 -0
  399. package/.next/server/chunks/[root-of-the-server]__bb058465._.js.map +1 -0
  400. package/.next/server/chunks/[root-of-the-server]__d0cd49f6._.js +3 -0
  401. package/.next/server/chunks/[root-of-the-server]__d0cd49f6._.js.map +1 -0
  402. package/.next/server/chunks/[root-of-the-server]__df538917._.js +3 -0
  403. package/.next/server/chunks/[root-of-the-server]__df538917._.js.map +1 -0
  404. package/.next/server/chunks/[root-of-the-server]__e0fe0ef3._.js +3 -0
  405. package/.next/server/chunks/[root-of-the-server]__e0fe0ef3._.js.map +1 -0
  406. package/.next/server/chunks/[root-of-the-server]__e70b4dcf._.js +3 -0
  407. package/.next/server/chunks/[root-of-the-server]__e70b4dcf._.js.map +1 -0
  408. package/.next/server/chunks/[root-of-the-server]__f09d5069._.js +3 -0
  409. package/.next/server/chunks/[root-of-the-server]__f09d5069._.js.map +1 -0
  410. package/.next/server/chunks/[root-of-the-server]__fa82312c._.js +3 -0
  411. package/.next/server/chunks/[root-of-the-server]__fa82312c._.js.map +1 -0
  412. package/.next/server/chunks/[turbopack]_runtime.js +795 -0
  413. package/.next/server/chunks/[turbopack]_runtime.js.map +10 -0
  414. package/.next/server/chunks/bea2c_viba__next-internal_server_app_api_custom-scripts_route_actions_246e6a14.js +3 -0
  415. package/.next/server/chunks/bea2c_viba__next-internal_server_app_api_custom-scripts_route_actions_246e6a14.js.map +1 -0
  416. package/.next/server/chunks/bea2c_viba__next-internal_server_app_api_file-thumbnail_route_actions_3d4e18bd.js +3 -0
  417. package/.next/server/chunks/bea2c_viba__next-internal_server_app_api_file-thumbnail_route_actions_3d4e18bd.js.map +1 -0
  418. package/.next/server/chunks/bea2c_viba__next-internal_server_app_api_fs_open-terminal_route_actions_64251327.js +3 -0
  419. package/.next/server/chunks/bea2c_viba__next-internal_server_app_api_fs_open-terminal_route_actions_64251327.js.map +1 -0
  420. package/.next/server/chunks/bea2c_viba__next-internal_server_app_api_notifications_route_actions_2a3fb889.js +3 -0
  421. package/.next/server/chunks/bea2c_viba__next-internal_server_app_api_notifications_route_actions_2a3fb889.js.map +1 -0
  422. package/.next/server/chunks/bea2c_viba__next-internal_server_app_api_notifications_socket_route_actions_2dfcbdcd.js +3 -0
  423. package/.next/server/chunks/bea2c_viba__next-internal_server_app_api_notifications_socket_route_actions_2dfcbdcd.js.map +1 -0
  424. package/.next/server/chunks/bea2c_viba__next-internal_server_app_api_preview-proxy_start_route_actions_70ba3b43.js +3 -0
  425. package/.next/server/chunks/bea2c_viba__next-internal_server_app_api_preview-proxy_start_route_actions_70ba3b43.js.map +1 -0
  426. package/.next/server/chunks/daa62__next-internal_server_app_api_component-source_resolve_route_actions_fbcf9527.js +3 -0
  427. package/.next/server/chunks/daa62__next-internal_server_app_api_component-source_resolve_route_actions_fbcf9527.js.map +1 -0
  428. package/.next/server/chunks/daa62__next-internal_server_app_api_credentials_github_repos_route_actions_50499a50.js +3 -0
  429. package/.next/server/chunks/daa62__next-internal_server_app_api_credentials_github_repos_route_actions_50499a50.js.map +1 -0
  430. package/.next/server/chunks/ssr/07f91_854b7f96._.js +5 -0
  431. package/.next/server/chunks/ssr/07f91_854b7f96._.js.map +1 -0
  432. package/.next/server/chunks/ssr/07f91_8f9c8869._.js +5 -0
  433. package/.next/server/chunks/ssr/07f91_8f9c8869._.js.map +1 -0
  434. package/.next/server/chunks/ssr/07f91_956ea508._.js +6 -0
  435. package/.next/server/chunks/ssr/07f91_956ea508._.js.map +1 -0
  436. package/.next/server/chunks/ssr/07f91_a8df8b0c._.js +3 -0
  437. package/.next/server/chunks/ssr/07f91_a8df8b0c._.js.map +1 -0
  438. package/.next/server/chunks/ssr/07f91_c074daa5._.js +5 -0
  439. package/.next/server/chunks/ssr/07f91_c074daa5._.js.map +1 -0
  440. package/.next/server/chunks/ssr/07f91_next_dist_43e2f24c._.js +10 -0
  441. package/.next/server/chunks/ssr/07f91_next_dist_43e2f24c._.js.map +1 -0
  442. package/.next/server/chunks/ssr/07f91_next_dist_7d0992b2._.js +3 -0
  443. package/.next/server/chunks/ssr/07f91_next_dist_7d0992b2._.js.map +1 -0
  444. package/.next/server/chunks/ssr/07f91_next_dist_847902a0._.js +4 -0
  445. package/.next/server/chunks/ssr/07f91_next_dist_847902a0._.js.map +1 -0
  446. package/.next/server/chunks/ssr/07f91_next_dist_9854b44b._.js +3 -0
  447. package/.next/server/chunks/ssr/07f91_next_dist_9854b44b._.js.map +1 -0
  448. package/.next/server/chunks/ssr/07f91_next_dist_afbe6819._.js +3 -0
  449. package/.next/server/chunks/ssr/07f91_next_dist_afbe6819._.js.map +1 -0
  450. package/.next/server/chunks/ssr/07f91_next_dist_client_components_4ae0ede8._.js +3 -0
  451. package/.next/server/chunks/ssr/07f91_next_dist_client_components_4ae0ede8._.js.map +1 -0
  452. package/.next/server/chunks/ssr/07f91_next_dist_client_components_builtin_forbidden_c3ca8aa4.js +3 -0
  453. package/.next/server/chunks/ssr/07f91_next_dist_client_components_builtin_forbidden_c3ca8aa4.js.map +1 -0
  454. package/.next/server/chunks/ssr/07f91_next_dist_client_components_builtin_global-error_cf183d39.js +3 -0
  455. package/.next/server/chunks/ssr/07f91_next_dist_client_components_builtin_global-error_cf183d39.js.map +1 -0
  456. package/.next/server/chunks/ssr/07f91_next_dist_client_components_builtin_unauthorized_b89fa42f.js +3 -0
  457. package/.next/server/chunks/ssr/07f91_next_dist_client_components_builtin_unauthorized_b89fa42f.js.map +1 -0
  458. package/.next/server/chunks/ssr/07f91_next_dist_esm_build_templates_app-page_ea68f183.js +4 -0
  459. package/.next/server/chunks/ssr/07f91_next_dist_esm_build_templates_app-page_ea68f183.js.map +1 -0
  460. package/.next/server/chunks/ssr/07f91_next_dist_esm_f542aeaf._.js +6 -0
  461. package/.next/server/chunks/ssr/07f91_next_dist_esm_f542aeaf._.js.map +1 -0
  462. package/.next/server/chunks/ssr/07f91_next_dist_f989a591._.js +3 -0
  463. package/.next/server/chunks/ssr/07f91_next_dist_f989a591._.js.map +1 -0
  464. package/.next/server/chunks/ssr/6c7f9_projects_viba__next-internal_server_app__global-error_page_actions_12a76065.js +3 -0
  465. package/.next/server/chunks/ssr/6c7f9_projects_viba__next-internal_server_app__global-error_page_actions_12a76065.js.map +1 -0
  466. package/.next/server/chunks/ssr/6c7f9_projects_viba__next-internal_server_app__not-found_page_actions_8eddae2d.js +3 -0
  467. package/.next/server/chunks/ssr/6c7f9_projects_viba__next-internal_server_app__not-found_page_actions_8eddae2d.js.map +1 -0
  468. package/.next/server/chunks/ssr/6c7f9_projects_viba__next-internal_server_app_git_changes_page_actions_b65abe22.js +3 -0
  469. package/.next/server/chunks/ssr/6c7f9_projects_viba__next-internal_server_app_git_changes_page_actions_b65abe22.js.map +1 -0
  470. package/.next/server/chunks/ssr/6c7f9_projects_viba__next-internal_server_app_git_stashes_page_actions_5ca1e320.js +3 -0
  471. package/.next/server/chunks/ssr/6c7f9_projects_viba__next-internal_server_app_git_stashes_page_actions_5ca1e320.js.map +1 -0
  472. package/.next/server/chunks/ssr/6c7f9_projects_viba_src_app_session_[sessionId]_SessionPageClient_tsx_9a60a43f._.js +3 -0
  473. package/.next/server/chunks/ssr/6c7f9_projects_viba_src_app_session_[sessionId]_SessionPageClient_tsx_9a60a43f._.js.map +1 -0
  474. package/.next/server/chunks/ssr/Downloads_projects_viba_023b240f._.js +3 -0
  475. package/.next/server/chunks/ssr/Downloads_projects_viba_023b240f._.js.map +1 -0
  476. package/.next/server/chunks/ssr/Downloads_projects_viba_2e71073c._.js +3 -0
  477. package/.next/server/chunks/ssr/Downloads_projects_viba_2e71073c._.js.map +1 -0
  478. package/.next/server/chunks/ssr/Downloads_projects_viba_36a9a2a6._.js +4 -0
  479. package/.next/server/chunks/ssr/Downloads_projects_viba_36a9a2a6._.js.map +1 -0
  480. package/.next/server/chunks/ssr/Downloads_projects_viba_441ff8fc._.js +3 -0
  481. package/.next/server/chunks/ssr/Downloads_projects_viba_441ff8fc._.js.map +1 -0
  482. package/.next/server/chunks/ssr/Downloads_projects_viba_4575bb25._.js +4 -0
  483. package/.next/server/chunks/ssr/Downloads_projects_viba_4575bb25._.js.map +1 -0
  484. package/.next/server/chunks/ssr/Downloads_projects_viba_491c66b5._.js +3 -0
  485. package/.next/server/chunks/ssr/Downloads_projects_viba_491c66b5._.js.map +1 -0
  486. package/.next/server/chunks/ssr/Downloads_projects_viba_5b83b11b._.js +4 -0
  487. package/.next/server/chunks/ssr/Downloads_projects_viba_5b83b11b._.js.map +1 -0
  488. package/.next/server/chunks/ssr/Downloads_projects_viba_5f81da3d._.js +4 -0
  489. package/.next/server/chunks/ssr/Downloads_projects_viba_5f81da3d._.js.map +1 -0
  490. package/.next/server/chunks/ssr/Downloads_projects_viba_737eaea2._.js +3 -0
  491. package/.next/server/chunks/ssr/Downloads_projects_viba_737eaea2._.js.map +1 -0
  492. package/.next/server/chunks/ssr/Downloads_projects_viba_8321a620._.js +3 -0
  493. package/.next/server/chunks/ssr/Downloads_projects_viba_8321a620._.js.map +1 -0
  494. package/.next/server/chunks/ssr/Downloads_projects_viba_86e2b7ee._.js +4 -0
  495. package/.next/server/chunks/ssr/Downloads_projects_viba_86e2b7ee._.js.map +1 -0
  496. package/.next/server/chunks/ssr/Downloads_projects_viba_886b5c21._.js +4 -0
  497. package/.next/server/chunks/ssr/Downloads_projects_viba_886b5c21._.js.map +1 -0
  498. package/.next/server/chunks/ssr/Downloads_projects_viba_91e6563b._.js +3 -0
  499. package/.next/server/chunks/ssr/Downloads_projects_viba_91e6563b._.js.map +1 -0
  500. package/.next/server/chunks/ssr/Downloads_projects_viba_a4a069bf._.js +4 -0
  501. package/.next/server/chunks/ssr/Downloads_projects_viba_a4a069bf._.js.map +1 -0
  502. package/.next/server/chunks/ssr/Downloads_projects_viba_a7330c23._.js +3 -0
  503. package/.next/server/chunks/ssr/Downloads_projects_viba_a7330c23._.js.map +1 -0
  504. package/.next/server/chunks/ssr/Downloads_projects_viba_a947365f._.js +3 -0
  505. package/.next/server/chunks/ssr/Downloads_projects_viba_a947365f._.js.map +1 -0
  506. package/.next/server/chunks/ssr/Downloads_projects_viba_bbe91f86._.js +4 -0
  507. package/.next/server/chunks/ssr/Downloads_projects_viba_bbe91f86._.js.map +1 -0
  508. package/.next/server/chunks/ssr/Downloads_projects_viba_d76b8119._.js +3 -0
  509. package/.next/server/chunks/ssr/Downloads_projects_viba_d76b8119._.js.map +1 -0
  510. package/.next/server/chunks/ssr/Downloads_projects_viba_e0cfd1bd._.js +3 -0
  511. package/.next/server/chunks/ssr/Downloads_projects_viba_e0cfd1bd._.js.map +1 -0
  512. package/.next/server/chunks/ssr/Downloads_projects_viba_e12bbfe7._.js +3 -0
  513. package/.next/server/chunks/ssr/Downloads_projects_viba_e12bbfe7._.js.map +1 -0
  514. package/.next/server/chunks/ssr/Downloads_projects_viba_f5bcd322._.js +4 -0
  515. package/.next/server/chunks/ssr/Downloads_projects_viba_f5bcd322._.js.map +1 -0
  516. package/.next/server/chunks/ssr/Downloads_projects_viba_src_60d6e4a8._.js +3 -0
  517. package/.next/server/chunks/ssr/Downloads_projects_viba_src_60d6e4a8._.js.map +1 -0
  518. package/.next/server/chunks/ssr/Downloads_projects_viba_src_7080dcd5._.js +3 -0
  519. package/.next/server/chunks/ssr/Downloads_projects_viba_src_7080dcd5._.js.map +1 -0
  520. package/.next/server/chunks/ssr/Downloads_projects_viba_src_902b4f97._.js +3 -0
  521. package/.next/server/chunks/ssr/Downloads_projects_viba_src_902b4f97._.js.map +1 -0
  522. package/.next/server/chunks/ssr/Downloads_projects_viba_src_app_credentials_page_tsx_feca31b0._.js +3 -0
  523. package/.next/server/chunks/ssr/Downloads_projects_viba_src_app_credentials_page_tsx_feca31b0._.js.map +1 -0
  524. package/.next/server/chunks/ssr/Downloads_projects_viba_src_app_f00671d8._.js +3 -0
  525. package/.next/server/chunks/ssr/Downloads_projects_viba_src_app_f00671d8._.js.map +1 -0
  526. package/.next/server/chunks/ssr/Downloads_projects_viba_src_app_git_changes_page_tsx_2ddb49ff._.js +5 -0
  527. package/.next/server/chunks/ssr/Downloads_projects_viba_src_app_git_changes_page_tsx_2ddb49ff._.js.map +1 -0
  528. package/.next/server/chunks/ssr/Downloads_projects_viba_src_app_providers_tsx_1935a601._.js +3 -0
  529. package/.next/server/chunks/ssr/Downloads_projects_viba_src_app_providers_tsx_1935a601._.js.map +1 -0
  530. package/.next/server/chunks/ssr/Downloads_projects_viba_src_components_GitRepoSelector_tsx_12f84b24._.js +11 -0
  531. package/.next/server/chunks/ssr/Downloads_projects_viba_src_components_GitRepoSelector_tsx_12f84b24._.js.map +1 -0
  532. package/.next/server/chunks/ssr/Downloads_projects_viba_src_components_git_719ec297._.js +3 -0
  533. package/.next/server/chunks/ssr/Downloads_projects_viba_src_components_git_719ec297._.js.map +1 -0
  534. package/.next/server/chunks/ssr/Downloads_projects_viba_src_components_git_grouped-diff-viewer_tsx_c6c96363._.js +20 -0
  535. package/.next/server/chunks/ssr/Downloads_projects_viba_src_components_git_grouped-diff-viewer_tsx_c6c96363._.js.map +1 -0
  536. package/.next/server/chunks/ssr/Downloads_projects_viba_src_components_git_history-view_tsx_da929479._.js +10 -0
  537. package/.next/server/chunks/ssr/Downloads_projects_viba_src_components_git_history-view_tsx_da929479._.js.map +1 -0
  538. package/.next/server/chunks/ssr/[externals]_keytar_be364400._.js +3 -0
  539. package/.next/server/chunks/ssr/[externals]_keytar_be364400._.js.map +1 -0
  540. package/.next/server/chunks/ssr/[root-of-the-server]__042e77f3._.js +3 -0
  541. package/.next/server/chunks/ssr/[root-of-the-server]__042e77f3._.js.map +1 -0
  542. package/.next/server/chunks/ssr/[root-of-the-server]__0da720c2._.js +4 -0
  543. package/.next/server/chunks/ssr/[root-of-the-server]__0da720c2._.js.map +1 -0
  544. package/.next/server/chunks/ssr/[root-of-the-server]__11f96c04._.js +3 -0
  545. package/.next/server/chunks/ssr/[root-of-the-server]__11f96c04._.js.map +1 -0
  546. package/.next/server/chunks/ssr/[root-of-the-server]__14783fb7._.js +3 -0
  547. package/.next/server/chunks/ssr/[root-of-the-server]__14783fb7._.js.map +1 -0
  548. package/.next/server/chunks/ssr/[root-of-the-server]__15e62f6d._.js +4 -0
  549. package/.next/server/chunks/ssr/[root-of-the-server]__15e62f6d._.js.map +1 -0
  550. package/.next/server/chunks/ssr/[root-of-the-server]__32a09bd5._.js +3 -0
  551. package/.next/server/chunks/ssr/[root-of-the-server]__32a09bd5._.js.map +1 -0
  552. package/.next/server/chunks/ssr/[root-of-the-server]__34682e2a._.js +4 -0
  553. package/.next/server/chunks/ssr/[root-of-the-server]__34682e2a._.js.map +1 -0
  554. package/.next/server/chunks/ssr/[root-of-the-server]__3e589204._.js +3 -0
  555. package/.next/server/chunks/ssr/[root-of-the-server]__3e589204._.js.map +1 -0
  556. package/.next/server/chunks/ssr/[root-of-the-server]__477bb0b6._.js +3 -0
  557. package/.next/server/chunks/ssr/[root-of-the-server]__477bb0b6._.js.map +1 -0
  558. package/.next/server/chunks/ssr/[root-of-the-server]__4a454aa7._.js +3 -0
  559. package/.next/server/chunks/ssr/[root-of-the-server]__4a454aa7._.js.map +1 -0
  560. package/.next/server/chunks/ssr/[root-of-the-server]__539b91c4._.js +4 -0
  561. package/.next/server/chunks/ssr/[root-of-the-server]__539b91c4._.js.map +1 -0
  562. package/.next/server/chunks/ssr/[root-of-the-server]__5e9108d1._.js +3 -0
  563. package/.next/server/chunks/ssr/[root-of-the-server]__5e9108d1._.js.map +1 -0
  564. package/.next/server/chunks/ssr/[root-of-the-server]__70d9971b._.js +3 -0
  565. package/.next/server/chunks/ssr/[root-of-the-server]__70d9971b._.js.map +1 -0
  566. package/.next/server/chunks/ssr/[root-of-the-server]__7982c07d._.js +3 -0
  567. package/.next/server/chunks/ssr/[root-of-the-server]__7982c07d._.js.map +1 -0
  568. package/.next/server/chunks/ssr/[root-of-the-server]__86283715._.js +3 -0
  569. package/.next/server/chunks/ssr/[root-of-the-server]__86283715._.js.map +1 -0
  570. package/.next/server/chunks/ssr/[root-of-the-server]__890874d7._.js +3 -0
  571. package/.next/server/chunks/ssr/[root-of-the-server]__890874d7._.js.map +1 -0
  572. package/.next/server/chunks/ssr/[root-of-the-server]__99444007._.js +3 -0
  573. package/.next/server/chunks/ssr/[root-of-the-server]__99444007._.js.map +1 -0
  574. package/.next/server/chunks/ssr/[root-of-the-server]__9f9c4c2a._.js +3 -0
  575. package/.next/server/chunks/ssr/[root-of-the-server]__9f9c4c2a._.js.map +1 -0
  576. package/.next/server/chunks/ssr/[root-of-the-server]__a4cce383._.js +3 -0
  577. package/.next/server/chunks/ssr/[root-of-the-server]__a4cce383._.js.map +1 -0
  578. package/.next/server/chunks/ssr/[root-of-the-server]__a7d02cf0._.js +4 -0
  579. package/.next/server/chunks/ssr/[root-of-the-server]__a7d02cf0._.js.map +1 -0
  580. package/.next/server/chunks/ssr/[root-of-the-server]__a895bef0._.js +3 -0
  581. package/.next/server/chunks/ssr/[root-of-the-server]__a895bef0._.js.map +1 -0
  582. package/.next/server/chunks/ssr/[root-of-the-server]__bbbc1dcd._.js +3 -0
  583. package/.next/server/chunks/ssr/[root-of-the-server]__bbbc1dcd._.js.map +1 -0
  584. package/.next/server/chunks/ssr/[root-of-the-server]__c6036d32._.js +3 -0
  585. package/.next/server/chunks/ssr/[root-of-the-server]__c6036d32._.js.map +1 -0
  586. package/.next/server/chunks/ssr/[root-of-the-server]__d2fd5c45._.js +56 -0
  587. package/.next/server/chunks/ssr/[root-of-the-server]__d2fd5c45._.js.map +1 -0
  588. package/.next/server/chunks/ssr/[root-of-the-server]__e980891e._.js +3 -0
  589. package/.next/server/chunks/ssr/[root-of-the-server]__e980891e._.js.map +1 -0
  590. package/.next/server/chunks/ssr/[root-of-the-server]__ebae5f25._.js +3 -0
  591. package/.next/server/chunks/ssr/[root-of-the-server]__ebae5f25._.js.map +1 -0
  592. package/.next/server/chunks/ssr/[root-of-the-server]__f4a7b848._.js +3 -0
  593. package/.next/server/chunks/ssr/[root-of-the-server]__f4a7b848._.js.map +1 -0
  594. package/.next/server/chunks/ssr/[root-of-the-server]__f96af125._.js +3 -0
  595. package/.next/server/chunks/ssr/[root-of-the-server]__f96af125._.js.map +1 -0
  596. package/.next/server/chunks/ssr/[root-of-the-server]__fbf4e5d6._.js +4 -0
  597. package/.next/server/chunks/ssr/[root-of-the-server]__fbf4e5d6._.js.map +1 -0
  598. package/.next/server/chunks/ssr/[turbopack]_runtime.js +795 -0
  599. package/.next/server/chunks/ssr/[turbopack]_runtime.js.map +10 -0
  600. package/.next/server/chunks/ssr/bea2c_viba__next-internal_server_app_git_custom-scripts_page_actions_a5c460bd.js +3 -0
  601. package/.next/server/chunks/ssr/bea2c_viba__next-internal_server_app_git_custom-scripts_page_actions_a5c460bd.js.map +1 -0
  602. package/.next/server/functions-config-manifest.json +12 -0
  603. package/.next/server/interception-route-rewrite-manifest.js +1 -0
  604. package/.next/server/middleware-build-manifest.js +22 -0
  605. package/.next/server/middleware-manifest.json +6 -0
  606. package/.next/server/next-font-manifest.js +1 -0
  607. package/.next/server/next-font-manifest.json +47 -0
  608. package/.next/server/pages/404.html +54 -0
  609. package/.next/server/pages/500.html +2 -0
  610. package/.next/server/pages-manifest.json +4 -0
  611. package/.next/server/server-reference-manifest.js +1 -0
  612. package/.next/server/server-reference-manifest.json +999 -0
  613. package/.next/static/4Ptt2Q-nwEMnEyBKuchtV/_buildManifest.js +15 -0
  614. package/.next/static/4Ptt2Q-nwEMnEyBKuchtV/_clientMiddlewareManifest.json +1 -0
  615. package/.next/static/4Ptt2Q-nwEMnEyBKuchtV/_ssgManifest.js +1 -0
  616. package/.next/static/chunks/065655f25ed22132.css +1 -0
  617. package/.next/static/chunks/16162035a1262102.js +3 -0
  618. package/.next/static/chunks/1b4e8e45df39fdf3.js +1 -0
  619. package/.next/static/chunks/1d78f85c04265bde.js +9 -0
  620. package/.next/static/chunks/2473c16c0c2f6b5f.css +2 -0
  621. package/.next/static/chunks/2dc27b124db2f6a9.js +4 -0
  622. package/.next/static/chunks/3e473d64e3c1431e.js +1 -0
  623. package/.next/static/chunks/420b7135218137d0.js +1 -0
  624. package/.next/static/chunks/4e0c5fc850347be6.js +3 -0
  625. package/.next/static/chunks/569b2039db4d4590.js +1 -0
  626. package/.next/static/chunks/6bccf66f04746085.js +1 -0
  627. package/.next/static/chunks/6e4ef91f4fe56ee8.js +1 -0
  628. package/.next/static/chunks/76695fea59118edb.js +8 -0
  629. package/.next/static/chunks/7c3e3b5c3bc4f99f.js +3 -0
  630. package/.next/static/chunks/91220a448294b75d.js +18 -0
  631. package/.next/static/chunks/9177eac6e25015f8.js +1 -0
  632. package/.next/static/chunks/9ba08e490fcd45b8.js +1 -0
  633. package/.next/static/chunks/a3f8b5278efb004c.js +1 -0
  634. package/.next/static/chunks/a6dad97d9634a72d.js +1 -0
  635. package/.next/static/chunks/a6dad97d9634a72d.js.map +1 -0
  636. package/.next/static/chunks/b9562dbba593a710.js +1 -0
  637. package/.next/static/chunks/be3f519ecde0dfd6.js +2 -0
  638. package/.next/static/chunks/bfd59950e8067110.js +1 -0
  639. package/.next/static/chunks/c1a983df0a5e5f3a.css +1 -0
  640. package/.next/static/chunks/d8fd59ffef2546e2.js +1 -0
  641. package/.next/static/chunks/e2058ce506df05d9.js +1 -0
  642. package/.next/static/chunks/e57609679806b605.js +3 -0
  643. package/.next/static/chunks/eacff8cb21733ad6.js +3 -0
  644. package/.next/static/chunks/f85b7c5a018ca0e1.js +1 -0
  645. package/.next/static/chunks/turbopack-ec0a0bd80d5d46df.js +4 -0
  646. package/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
  647. package/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
  648. package/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
  649. package/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
  650. package/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
  651. package/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
  652. package/.next/static/media/icon.9a6971e1.png +0 -0
  653. package/README.md +92 -0
  654. package/bin/viba.mjs +489 -0
  655. package/next.config.mjs +25 -0
  656. package/package.json +72 -0
  657. package/public/file.svg +1 -0
  658. package/public/github.png +0 -0
  659. package/public/globe.svg +1 -0
  660. package/public/next.svg +1 -0
  661. package/public/palx-icon.png +0 -0
  662. package/public/vercel.svg +1 -0
  663. package/public/window.svg +1 -0
  664. package/src/lib/cli-args.mjs +41 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../Downloads/projects/viba/src/app/credentials/page.tsx","../../../../../../../Downloads/projects/viba/src/app/actions/data%3Ab4cc14%20%3Ctext/javascript%3E","../../../../../../../Downloads/projects/viba/src/app/actions/data%3A2d2861%20%3Ctext/javascript%3E","../../../../../../../Downloads/projects/viba/src/app/actions/data%3A81292e%20%3Ctext/javascript%3E","../../../../../../../Downloads/projects/viba/src/app/actions/data%3A59572e%20%3Ctext/javascript%3E","../../../../../../../Downloads/projects/viba/src/app/actions/data%3A69197d%20%3Ctext/javascript%3E"],"sourcesContent":["'use client';\n\nimport {\n listAgentApiCredentials,\n listCredentials,\n removeAgentApiCredential,\n removeCredential,\n saveAgentApiCredential,\n saveGitHubCredential,\n saveGitLabCredential,\n} from '@/app/actions/credentials';\nimport type {\n AgentApiCredential,\n AgentApiCredentialAgent,\n} from '@/lib/agent-api-credentials';\nimport type { Credential, CredentialType, GitLabCredential } from '@/lib/credentials';\nimport { ChevronRight, KeyRound, Trash2 } from 'lucide-react';\nimport Image from 'next/image';\nimport { useRouter } from 'next/navigation';\nimport { useEffect, useMemo, useState } from 'react';\n\nconst DEFAULT_GITLAB_SERVER_URL = 'https://gitlab.com';\nconst PROVIDER_ICON_URLS = {\n github: 'https://www.google.com/s2/favicons?domain=github.com&sz=64',\n gitlab: 'https://www.google.com/s2/favicons?domain=gitlab.com&sz=64',\n} as const;\nconst AGENT_API_LABELS: Record<AgentApiCredentialAgent, string> = {\n codex: 'Codex CLI',\n};\nconst AGENT_API_KEY_PLACEHOLDERS: Record<AgentApiCredentialAgent, string> = {\n codex: 'sk-...',\n};\nconst AGENT_API_PROXY_PLACEHOLDERS: Record<AgentApiCredentialAgent, string> = {\n codex: 'https://proxy.example.com/v1',\n};\nconst AGENT_API_ORDER: AgentApiCredentialAgent[] = ['codex'];\n\ntype FlashMessage = {\n tone: 'success' | 'error';\n text: string;\n} | null;\n\nfunction formatCredentialSubtitle(credential: Credential): string {\n if (credential.type === 'gitlab') {\n return `${credential.username} @ ${credential.serverUrl}`;\n }\n return credential.username;\n}\n\nfunction formatProviderLabel(type: CredentialType): string {\n return type === 'github' ? 'GitHub' : 'GitLab';\n}\n\nfunction ProviderIcon({ type }: { type: CredentialType }) {\n return (\n <Image\n src={PROVIDER_ICON_URLS[type]}\n alt={`${formatProviderLabel(type)} icon`}\n width={20}\n height={20}\n className=\"h-5 w-5 rounded-sm\"\n unoptimized\n />\n );\n}\n\nexport default function CredentialsPage() {\n const router = useRouter();\n\n const [credentials, setCredentials] = useState<Credential[]>([]);\n const [agentApiCredentials, setAgentApiCredentials] = useState<AgentApiCredential[]>([]);\n const [loading, setLoading] = useState(true);\n\n const [githubToken, setGitHubToken] = useState('');\n const [gitlabToken, setGitLabToken] = useState('');\n const [gitlabServerUrl, setGitLabServerUrl] = useState(DEFAULT_GITLAB_SERVER_URL);\n const [agentApiKeyInputs, setAgentApiKeyInputs] = useState<Record<AgentApiCredentialAgent, string>>({\n codex: '',\n });\n const [agentApiProxyInputs, setAgentApiProxyInputs] = useState<Record<AgentApiCredentialAgent, string>>({\n codex: '',\n });\n\n const [savingType, setSavingType] = useState<CredentialType | null>(null);\n const [savingAgent, setSavingAgent] = useState<AgentApiCredentialAgent | null>(null);\n const [deletingId, setDeletingId] = useState<string | null>(null);\n const [deletingAgent, setDeletingAgent] = useState<AgentApiCredentialAgent | null>(null);\n const [flashMessage, setFlashMessage] = useState<FlashMessage>(null);\n\n const githubCredentials = useMemo(\n () => credentials.filter((credential) => credential.type === 'github'),\n [credentials],\n );\n\n const gitlabCredentials = useMemo(\n () => credentials.filter((credential) => credential.type === 'gitlab') as GitLabCredential[],\n [credentials],\n );\n\n const agentApiCredentialMap = useMemo(() => {\n return new Map(agentApiCredentials.map((credential) => [credential.agent, credential]));\n }, [agentApiCredentials]);\n\n const reloadCredentials = async () => {\n const [gitResult, agentResult] = await Promise.all([\n listCredentials(),\n listAgentApiCredentials(),\n ]);\n\n if (!gitResult.success) {\n setFlashMessage({ tone: 'error', text: gitResult.error });\n setLoading(false);\n return;\n }\n\n if (!agentResult.success) {\n setFlashMessage({ tone: 'error', text: agentResult.error });\n setLoading(false);\n return;\n }\n\n setCredentials(gitResult.credentials);\n setAgentApiCredentials(agentResult.credentials);\n setAgentApiProxyInputs((previous) => {\n const next = { ...previous };\n for (const agent of AGENT_API_ORDER) {\n next[agent] = agentResult.credentials.find((credential) => credential.agent === agent)?.apiProxy || '';\n }\n return next;\n });\n setLoading(false);\n };\n\n useEffect(() => {\n let isActive = true;\n\n void (async () => {\n const [gitResult, agentResult] = await Promise.all([\n listCredentials(),\n listAgentApiCredentials(),\n ]);\n if (!isActive) return;\n\n if (!gitResult.success) {\n setFlashMessage({ tone: 'error', text: gitResult.error });\n setLoading(false);\n return;\n }\n\n if (!agentResult.success) {\n setFlashMessage({ tone: 'error', text: agentResult.error });\n setLoading(false);\n return;\n }\n\n setCredentials(gitResult.credentials);\n setAgentApiCredentials(agentResult.credentials);\n setAgentApiProxyInputs((previous) => {\n const next = { ...previous };\n for (const agent of AGENT_API_ORDER) {\n next[agent] = agentResult.credentials.find((credential) => credential.agent === agent)?.apiProxy || '';\n }\n return next;\n });\n setLoading(false);\n })();\n\n return () => {\n isActive = false;\n };\n }, []);\n\n const handleSaveGitHub = async () => {\n setFlashMessage(null);\n setSavingType('github');\n\n const result = await saveGitHubCredential(githubToken);\n if (!result.success) {\n setFlashMessage({ tone: 'error', text: result.error });\n setSavingType(null);\n return;\n }\n\n setGitHubToken('');\n setFlashMessage({ tone: 'success', text: 'GitHub credential added.' });\n await reloadCredentials();\n setSavingType(null);\n };\n\n const handleSaveGitLab = async () => {\n setFlashMessage(null);\n setSavingType('gitlab');\n\n const result = await saveGitLabCredential(gitlabServerUrl, gitlabToken);\n if (!result.success) {\n setFlashMessage({ tone: 'error', text: result.error });\n setSavingType(null);\n return;\n }\n\n setGitLabToken('');\n setFlashMessage({ tone: 'success', text: 'GitLab credential added.' });\n await reloadCredentials();\n setSavingType(null);\n };\n\n const handleSaveAgentApi = async (agent: AgentApiCredentialAgent) => {\n setFlashMessage(null);\n setSavingAgent(agent);\n\n const result = await saveAgentApiCredential(\n agent,\n agentApiKeyInputs[agent],\n agentApiProxyInputs[agent],\n );\n if (!result.success) {\n setFlashMessage({ tone: 'error', text: result.error });\n setSavingAgent(null);\n return;\n }\n\n setAgentApiKeyInputs((previous) => ({ ...previous, [agent]: '' }));\n setAgentApiProxyInputs((previous) => ({ ...previous, [agent]: result.credential.apiProxy || '' }));\n setFlashMessage({ tone: 'success', text: `${AGENT_API_LABELS[agent]} credential saved.` });\n await reloadCredentials();\n setSavingAgent(null);\n };\n\n const handleDelete = async (credential: Credential) => {\n const providerLabel = formatProviderLabel(credential.type);\n const confirmed = confirm(`Delete this ${providerLabel} credential for ${formatCredentialSubtitle(credential)}?`);\n if (!confirmed) return;\n\n setFlashMessage(null);\n setDeletingId(credential.id);\n\n const result = await removeCredential(credential.id);\n if (!result.success) {\n setFlashMessage({ tone: 'error', text: result.error });\n setDeletingId(null);\n return;\n }\n\n setFlashMessage({ tone: 'success', text: `${providerLabel} credential deleted.` });\n await reloadCredentials();\n setDeletingId(null);\n };\n\n const handleDeleteAgentApi = async (agent: AgentApiCredentialAgent) => {\n const confirmed = confirm(`Delete the saved ${AGENT_API_LABELS[agent]} API credential?`);\n if (!confirmed) return;\n\n setFlashMessage(null);\n setDeletingAgent(agent);\n\n const result = await removeAgentApiCredential(agent);\n if (!result.success) {\n setFlashMessage({ tone: 'error', text: result.error });\n setDeletingAgent(null);\n return;\n }\n\n setAgentApiKeyInputs((previous) => ({ ...previous, [agent]: '' }));\n setAgentApiProxyInputs((previous) => ({ ...previous, [agent]: '' }));\n setFlashMessage({ tone: 'success', text: `${AGENT_API_LABELS[agent]} credential deleted.` });\n await reloadCredentials();\n setDeletingAgent(null);\n };\n\n const panelClass = 'overflow-hidden rounded-xl border border-slate-200 bg-white shadow-sm dark:border-slate-700/50 dark:bg-slate-800 dark:shadow-[0_12px_30px_-18px_rgba(2,6,23,0.9)]';\n const sectionHeaderClass = 'flex flex-col gap-3 border-b border-slate-200 bg-white px-6 py-5 md:flex-row md:items-center md:justify-between dark:border-slate-700/50 dark:bg-slate-800';\n const inputClass = 'block w-full rounded-lg border border-slate-200 bg-slate-50 px-3 py-2.5 text-sm text-slate-900 placeholder-slate-400 transition-all focus:border-primary focus:outline-none focus:ring-2 focus:ring-primary/20 disabled:cursor-not-allowed disabled:opacity-60 dark:border-slate-700 dark:bg-slate-900/50 dark:text-white dark:placeholder-slate-500 dark:focus:border-primary/50 dark:focus:bg-slate-900';\n const primaryButtonClass = 'inline-flex items-center justify-center gap-2 rounded-lg bg-primary px-4 py-2 text-sm font-medium text-white shadow-lg shadow-blue-900/20 transition-colors hover:bg-blue-700 disabled:cursor-not-allowed disabled:opacity-60';\n const secondaryButtonClass = 'inline-flex items-center justify-center gap-2 rounded-lg border border-slate-200 bg-white px-4 py-2 text-sm font-medium text-slate-700 shadow-sm transition-colors hover:bg-slate-50 disabled:cursor-not-allowed disabled:opacity-60 dark:border-slate-600 dark:bg-slate-800 dark:text-slate-200 dark:hover:bg-slate-700';\n const rowActionButtonClass = 'inline-flex h-8 w-8 items-center justify-center rounded-lg text-slate-400 transition-all hover:bg-red-50 hover:text-red-500 dark:text-slate-400 dark:hover:bg-red-900/30 dark:hover:text-red-400';\n\n return (\n <main className=\"min-h-screen bg-[#f6f6f8] px-4 py-8 md:px-8 md:py-12 dark:bg-[#0f1117]\">\n <div className=\"mx-auto w-full max-w-4xl space-y-8\">\n <div className=\"mb-8\">\n <div className=\"mb-2 flex items-center gap-4\">\n <button\n type=\"button\"\n className=\"flex h-10 w-10 items-center justify-center rounded-lg text-slate-500 transition-colors hover:bg-white hover:text-slate-900 dark:text-slate-400 dark:hover:bg-slate-800 dark:hover:text-white\"\n onClick={() => router.push('/')}\n aria-label=\"Back to home\"\n >\n <ChevronRight className=\"h-6 w-6 rotate-180\" />\n </button>\n <h1 className=\"text-3xl font-black tracking-[-0.02em] text-slate-900 md:text-4xl dark:text-white\">Credential Management</h1>\n </div>\n <p className=\"ml-14 text-sm text-slate-500 md:text-base dark:text-slate-400\">\n Manage your API keys and access tokens for third-party services safely.\n </p>\n </div>\n\n {flashMessage && (\n <div\n className={`rounded-lg border px-4 py-3 text-sm ${\n flashMessage.tone === 'error'\n ? 'border-red-200 bg-red-50 text-red-700 dark:border-red-500/40 dark:bg-red-900/30 dark:text-red-200'\n : 'border-emerald-200 bg-emerald-50 text-emerald-700 dark:border-emerald-500/40 dark:bg-emerald-900/30 dark:text-emerald-200'\n }`}\n >\n {flashMessage.text}\n </div>\n )}\n\n {loading ? (\n <div className={`${panelClass} p-10`}>\n <div className=\"flex flex-col items-center gap-3\">\n <span className=\"loading loading-spinner loading-md text-primary\"></span>\n <p className=\"text-sm text-slate-500 dark:text-slate-400\">Loading credentials...</p>\n </div>\n </div>\n ) : (\n <div className=\"space-y-6\">\n <section className={panelClass}>\n <div className={sectionHeaderClass}>\n <div>\n <h2 className=\"text-lg font-bold text-slate-900 dark:text-white\">GitHub Credentials</h2>\n <p className=\"mt-1 text-sm text-slate-500 dark:text-slate-400\">Access private repositories and Gists.</p>\n </div>\n <button\n className={primaryButtonClass}\n onClick={() => void handleSaveGitHub()}\n disabled={savingType === 'github'}\n >\n {savingType === 'github' ? <span className=\"loading loading-spinner loading-xs\"></span> : <KeyRound className=\"h-4 w-4\" />}\n Add Token\n </button>\n </div>\n\n <div className=\"border-b border-slate-100 bg-slate-50/40 px-6 py-4 dark:border-slate-700/50 dark:bg-slate-900/35\">\n <label className=\"mb-2 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400\">\n Personal Access Token\n </label>\n <input\n type=\"password\"\n className={inputClass}\n placeholder=\"ghp_xxx\"\n value={githubToken}\n onChange={(event) => setGitHubToken(event.target.value)}\n disabled={savingType === 'github'}\n />\n </div>\n\n {githubCredentials.length === 0 ? (\n <div className=\"px-6 py-6 text-sm text-slate-500 dark:text-slate-400\">No GitHub credentials saved.</div>\n ) : (\n <div className=\"divide-y divide-slate-100 dark:divide-slate-700/50\">\n {githubCredentials.map((credential) => (\n <div\n key={credential.id}\n className=\"group flex items-center justify-between gap-4 px-6 py-5 transition-colors hover:bg-slate-50 dark:hover:bg-slate-800/50\"\n >\n <div className=\"flex min-w-0 items-center gap-4\">\n <div className=\"flex h-10 w-10 items-center justify-center rounded-lg bg-slate-100 dark:bg-slate-700/60\">\n <ProviderIcon type=\"github\" />\n </div>\n <div className=\"min-w-0\">\n <div className=\"truncate text-sm font-semibold text-slate-900 dark:text-white\">{credential.username}</div>\n <div className=\"mt-0.5 text-xs text-slate-500 dark:text-slate-400\">\n Updated {new Date(credential.updatedAt).toLocaleString()}\n </div>\n </div>\n </div>\n <button\n className={`${rowActionButtonClass} opacity-0 group-hover:opacity-100 disabled:opacity-40`}\n onClick={() => void handleDelete(credential)}\n disabled={deletingId === credential.id}\n title=\"Delete\"\n >\n {deletingId === credential.id ? <span className=\"loading loading-spinner loading-xs\"></span> : <Trash2 className=\"h-4 w-4\" />}\n </button>\n </div>\n ))}\n </div>\n )}\n </section>\n\n <section className={panelClass}>\n <div className={sectionHeaderClass}>\n <div>\n <h2 className=\"text-lg font-bold text-slate-900 dark:text-white\">GitLab Credentials</h2>\n <p className=\"mt-1 text-sm text-slate-500 dark:text-slate-400\">Connect to self-hosted or cloud GitLab instances.</p>\n </div>\n <button\n className={secondaryButtonClass}\n onClick={() => void handleSaveGitLab()}\n disabled={savingType === 'gitlab'}\n >\n {savingType === 'gitlab' ? <span className=\"loading loading-spinner loading-xs\"></span> : <KeyRound className=\"h-4 w-4\" />}\n Add Instance\n </button>\n </div>\n\n <div className=\"space-y-4 border-b border-slate-100 bg-slate-50/40 px-6 py-4 dark:border-slate-700/50 dark:bg-slate-900/35\">\n <div>\n <label className=\"mb-2 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400\">\n Server URL\n </label>\n <input\n type=\"url\"\n className={inputClass}\n placeholder={DEFAULT_GITLAB_SERVER_URL}\n value={gitlabServerUrl}\n onChange={(event) => setGitLabServerUrl(event.target.value)}\n disabled={savingType === 'gitlab'}\n />\n </div>\n <div>\n <label className=\"mb-2 block text-xs font-semibold uppercase tracking-wide text-slate-500 dark:text-slate-400\">\n Personal Access Token\n </label>\n <input\n type=\"password\"\n className={inputClass}\n placeholder=\"glpat-xxx\"\n value={gitlabToken}\n onChange={(event) => setGitLabToken(event.target.value)}\n disabled={savingType === 'gitlab'}\n />\n </div>\n </div>\n\n {gitlabCredentials.length === 0 ? (\n <div className=\"px-6 py-6 text-sm text-slate-500 dark:text-slate-400\">No GitLab credentials saved.</div>\n ) : (\n <div className=\"divide-y divide-slate-100 dark:divide-slate-700/50\">\n {gitlabCredentials.map((credential) => (\n <div\n key={credential.id}\n className=\"group flex items-center justify-between gap-4 px-6 py-5 transition-colors hover:bg-slate-50 dark:hover:bg-slate-800/50\"\n >\n <div className=\"flex min-w-0 items-center gap-4\">\n <div className=\"flex h-10 w-10 items-center justify-center rounded-lg bg-orange-50 dark:border dark:border-orange-500/20 dark:bg-orange-500/10\">\n <ProviderIcon type=\"gitlab\" />\n </div>\n <div className=\"min-w-0\">\n <div className=\"truncate text-sm font-semibold text-slate-900 dark:text-white\">{credential.username}</div>\n <div className=\"truncate text-xs text-slate-500 dark:text-slate-400\">{credential.serverUrl}</div>\n <div className=\"mt-0.5 text-xs text-slate-500 dark:text-slate-400\">\n Updated {new Date(credential.updatedAt).toLocaleString()}\n </div>\n </div>\n </div>\n <button\n className={`${rowActionButtonClass} opacity-0 group-hover:opacity-100 disabled:opacity-40`}\n onClick={() => void handleDelete(credential)}\n disabled={deletingId === credential.id}\n title=\"Delete\"\n >\n {deletingId === credential.id ? <span className=\"loading loading-spinner loading-xs\"></span> : <Trash2 className=\"h-4 w-4\" />}\n </button>\n </div>\n ))}\n </div>\n )}\n </section>\n\n {AGENT_API_ORDER.map((agent) => {\n const configuredCredential = agentApiCredentialMap.get(agent);\n const isSaving = savingAgent === agent;\n const isDeleting = deletingAgent === agent;\n\n return (\n <section key={agent} className={panelClass}>\n <div className={sectionHeaderClass}>\n <div className=\"flex items-center gap-3\">\n <div className=\"rounded-lg bg-emerald-100 p-1.5 text-emerald-600 dark:border dark:border-emerald-500/20 dark:bg-emerald-500/10 dark:text-emerald-400\">\n <KeyRound className=\"h-5 w-5\" />\n </div>\n <div>\n <h2 className=\"text-lg font-bold text-slate-900 dark:text-white\">{AGENT_API_LABELS[agent]} Configuration</h2>\n <p className=\"text-sm text-slate-500 dark:text-slate-400\">Configure access for LLM capabilities.</p>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n {configuredCredential && (\n <button\n className={secondaryButtonClass}\n onClick={() => void handleDeleteAgentApi(agent)}\n disabled={isSaving || isDeleting}\n >\n {isDeleting ? <span className=\"loading loading-spinner loading-xs\"></span> : <Trash2 className=\"h-4 w-4\" />}\n Remove\n </button>\n )}\n <button\n className={primaryButtonClass}\n onClick={() => void handleSaveAgentApi(agent)}\n disabled={isSaving || isDeleting}\n >\n {isSaving ? <span className=\"loading loading-spinner loading-xs\"></span> : <KeyRound className=\"h-4 w-4\" />}\n {configuredCredential ? 'Save Changes' : 'Save'}\n </button>\n </div>\n </div>\n\n <div className=\"space-y-6 p-6\">\n <div className=\"max-w-2xl space-y-4\">\n <div>\n <label className=\"mb-2 block text-sm font-medium text-slate-700 dark:text-slate-300\">API Key</label>\n <input\n type=\"password\"\n className={inputClass}\n placeholder={AGENT_API_KEY_PLACEHOLDERS[agent]}\n value={agentApiKeyInputs[agent]}\n onChange={(event) =>\n setAgentApiKeyInputs((previous) => ({ ...previous, [agent]: event.target.value }))\n }\n disabled={isSaving || isDeleting}\n />\n <p className=\"mt-1 text-xs text-slate-500 dark:text-slate-400\">\n Your API key is stored locally and never shared.\n </p>\n </div>\n\n <div>\n <label className=\"mb-2 block text-sm font-medium text-slate-700 dark:text-slate-300\">\n API Proxy <span className=\"font-normal text-slate-400 dark:text-slate-500\">(Optional)</span>\n </label>\n <input\n type=\"url\"\n className={inputClass}\n placeholder={AGENT_API_PROXY_PLACEHOLDERS[agent]}\n value={agentApiProxyInputs[agent]}\n onChange={(event) =>\n setAgentApiProxyInputs((previous) => ({ ...previous, [agent]: event.target.value }))\n }\n disabled={isSaving || isDeleting}\n />\n <p className=\"mt-1 text-xs text-slate-500 dark:text-slate-400\">\n Override this when using a proxy or a compatible endpoint.\n </p>\n </div>\n </div>\n\n <div className=\"rounded-lg border border-slate-200 bg-slate-50 p-3 text-xs text-slate-600 dark:border-slate-700 dark:bg-slate-900/40 dark:text-slate-300\">\n {configuredCredential ? (\n <div className=\"space-y-1\">\n <div>API key configured.</div>\n <div>Updated {new Date(configuredCredential.updatedAt).toLocaleString()}</div>\n <div>Proxy {configuredCredential.apiProxy ? configuredCredential.apiProxy : 'not set'}</div>\n </div>\n ) : (\n <div>No API credential saved.</div>\n )}\n </div>\n </div>\n </section>\n );\n })}\n\n <div className=\"pb-2 pt-4 text-center text-xs text-slate-400 dark:text-slate-500\">\n Credentials are encrypted at rest using your system keychain.\n </div>\n </div>\n )}\n </div>\n </main>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"407c96ca4ba5bd24be8887252f61c0e2364c606365\":\"removeAgentApiCredential\"},\"Downloads/projects/viba/src/app/actions/credentials.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_6=/*#__PURE__*/createServerReference(\"407c96ca4ba5bd24be8887252f61c0e2364c606365\",callServer,void 0,findSourceMapURL,\"removeAgentApiCredential\");export{$$RSC_SERVER_ACTION_6 as removeAgentApiCredential};","/* __next_internal_action_entry_do_not_use__ [{\"4082e4c269bb79962d6ea42dc5084f64dc7dbdabb8\":\"removeCredential\"},\"Downloads/projects/viba/src/app/actions/credentials.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_5=/*#__PURE__*/createServerReference(\"4082e4c269bb79962d6ea42dc5084f64dc7dbdabb8\",callServer,void 0,findSourceMapURL,\"removeCredential\");export{$$RSC_SERVER_ACTION_5 as removeCredential};","/* __next_internal_action_entry_do_not_use__ [{\"70b7afe2c0a2f6d6eddab7bca16522ddb38d4abf40\":\"saveAgentApiCredential\"},\"Downloads/projects/viba/src/app/actions/credentials.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_4=/*#__PURE__*/createServerReference(\"70b7afe2c0a2f6d6eddab7bca16522ddb38d4abf40\",callServer,void 0,findSourceMapURL,\"saveAgentApiCredential\");export{$$RSC_SERVER_ACTION_4 as saveAgentApiCredential};","/* __next_internal_action_entry_do_not_use__ [{\"40b485480e8f63bf69c7d3ccb52778a60d39349dbd\":\"saveGitHubCredential\"},\"Downloads/projects/viba/src/app/actions/credentials.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_1=/*#__PURE__*/createServerReference(\"40b485480e8f63bf69c7d3ccb52778a60d39349dbd\",callServer,void 0,findSourceMapURL,\"saveGitHubCredential\");export{$$RSC_SERVER_ACTION_1 as saveGitHubCredential};","/* __next_internal_action_entry_do_not_use__ [{\"605f61938bf5e427ed5388e455820dd042e2f3d2c0\":\"saveGitLabCredential\"},\"Downloads/projects/viba/src/app/actions/credentials.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_2=/*#__PURE__*/createServerReference(\"605f61938bf5e427ed5388e455820dd042e2f3d2c0\",callServer,void 0,findSourceMapURL,\"saveGitLabCredential\");export{$$RSC_SERVER_ACTION_2 as saveGitLabCredential};"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ module.exports=[65612,a=>{a.v("/_next/static/media/icon.9a6971e1.png")},13314,a=>{"use strict";let b={src:a.i(65612).default,width:256,height:256};a.s(["default",0,b])}];
2
+
3
+ //# sourceMappingURL=Downloads_projects_viba_src_app_f00671d8._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../Downloads/projects/viba/src/app/icon.png.mjs%20%28structured%20image%20object%29"],"sourcesContent":["import src from \"IMAGE\";\nexport default { src, width: 256, height: 256 }\n"],"names":[],"mappings":"qGACe,CAAE,IADjB,AACiB,EADjB,CAAA,CAAA,OACiB,OAAG,CAAE,MAAO,IAAK,OAAQ,GAAI"}
@@ -0,0 +1,5 @@
1
+ module.exports=[59630,a=>{"use strict";var b=a.i(44287),c=a.i(81081),d=a.i(67128),e=a.i(89812),f=a.i(53522),g=a.i(88520),h=a.i(59556);let i=[];function j(a,b){let c=a.trim(),d=b.replace(/\r\n/g,"\n");return d.trim()?`${c}
2
+
3
+ ${d}`:c}function k(a){let b={name:"",path:"",children:new Map};for(let c of a){let a=c.split("/").filter(Boolean),d=b,e="";for(let b=0;b<a.length;b++){let f=a[b];e=e?`${e}/${f}`:f,d.children.has(f)||d.children.set(f,{name:f,path:e,children:new Map}),d=d.children.get(f),b===a.length-1&&(d.filePath=c)}}return b}function l(a){let b=[];return Array.from(a.children.values()).forEach(a=>{a.children.size>0&&(b.push(a.path),b.push(...l(a)))}),b}function m(a){let b=a.split("/").filter(Boolean),c=[];for(let a=1;a<b.length;a++)c.push(b.slice(0,a).join("/"));return c}function n({node:a,selectedFile:c,expandedFolders:d,onToggleFolder:e,onSelectFile:g,onActionPaths:h,actionType:i,actionPending:j,depth:k=0}){let l=Array.from(a.children.values()).sort((a,b)=>{let c=a.children.size>0,d=b.children.size>0;return c&&!d?-1:!c&&d?1:a.name.localeCompare(b.name)});return(0,b.jsx)(b.Fragment,{children:l.map(a=>{if(a.children.size>0){let l=d.has(a.path),m=function a(b){let c=[];return b.children.forEach(b=>{b.filePath&&c.push(b.filePath),b.children.size>0&&c.push(...a(b))}),c}(a);return(0,b.jsxs)("div",{className:"group",children:[(0,b.jsxs)("div",{className:"flex items-center gap-1 px-2 py-1.5 text-xs rounded cursor-pointer text-slate-600 dark:text-slate-400 hover:bg-slate-100 dark:hover:bg-slate-800/70 transition-colors",style:{paddingLeft:`${12*k+8}px`},onClick:()=>e(a.path),title:a.path,children:[(0,b.jsx)("span",{className:"text-[10px] opacity-70",children:l?"▼":"▶"}),(0,b.jsx)("i",{className:"iconoir-folder text-[14px] opacity-70","aria-hidden":"true"}),(0,b.jsx)("span",{className:"truncate flex-1",children:a.name}),(0,b.jsx)("button",{className:(0,f.cn)("btn btn-ghost btn-xs btn-square opacity-0 group-hover:opacity-100 transition-opacity","stage"===i?"text-success hover:bg-success/10":"text-error hover:bg-error/10"),onClick:a=>{a.stopPropagation(),h(m)},disabled:j||0===m.length,title:"stage"===i?`Stage all in ${a.path}`:`Unstage all in ${a.path}`,children:(0,b.jsx)("i",{className:(0,f.cn)("text-[14px]","stage"===i?"iconoir-plus-circle":"iconoir-minus-circle"),"aria-hidden":"true"})})]}),l&&(0,b.jsx)(n,{node:a,selectedFile:c,expandedFolders:d,onToggleFolder:e,onSelectFile:g,onActionPaths:h,actionType:i,actionPending:j,depth:k+1})]},a.path)}let l=a.filePath;return l?(0,b.jsxs)("div",{className:(0,f.cn)("flex items-center justify-between gap-2 px-2 py-1.5 rounded-md cursor-pointer group hover:bg-slate-100 dark:hover:bg-slate-800/70 transition-colors text-sm",c===l&&"bg-slate-100 dark:bg-slate-800/70 font-medium text-primary"),style:{paddingLeft:`${12*k+8}px`},onClick:()=>g(l),title:l,children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 min-w-0 flex-1",children:[(0,b.jsx)("i",{className:"iconoir-page text-[14px] opacity-70 shrink-0","aria-hidden":"true"}),(0,b.jsx)("span",{className:"truncate flex-1 font-mono text-xs",children:a.name})]}),(0,b.jsx)("button",{className:(0,f.cn)("btn btn-ghost btn-xs btn-square opacity-0 group-hover:opacity-100 transition-opacity","stage"===i?"text-success hover:bg-success/10":"text-error hover:bg-error/10"),onClick:a=>{a.stopPropagation(),h([l])},disabled:j,children:(0,b.jsx)("i",{className:(0,f.cn)("text-[14px]","stage"===i?"iconoir-plus-circle":"iconoir-minus-circle"),"aria-hidden":"true"})})]},l):null})})}function o({repoPath:a}){let{data:c,isLoading:o,isError:p,error:q,refetch:r}=(0,d.useGitStatus)(a),{data:s}=(0,d.useGitBranches)(a),t=(0,d.useGitAction)(),[u,v]=(0,e.useState)(""),[w,x]=(0,e.useState)(""),[y,z]=(0,e.useState)(null),[A,B]=(0,e.useState)(!1),[C,D]=(0,e.useState)(""),[E,F]=(0,e.useState)(!1),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)("main"),[K,L]=(0,e.useState)(new Set),[M,N]=(0,e.useState)(new Set),[O,P]=(0,e.useState)(250),[Q,R]=(0,e.useState)(!1),S=(0,e.useRef)(null);(0,e.useEffect)(()=>{let a=a=>{if(!Q||!S.current)return;let b=S.current.startY-a.clientY;P(Math.max(150,Math.min(800,S.current.startHeight+b)))},b=()=>{R(!1),S.current=null,document.body.style.cursor="default",document.body.style.userSelect="auto"};return Q&&(window.addEventListener("mousemove",a),window.addEventListener("mouseup",b),document.body.style.cursor="ns-resize",document.body.style.userSelect="none"),()=>{window.removeEventListener("mousemove",a),window.removeEventListener("mouseup",b),document.body.style.cursor="default",document.body.style.userSelect="auto"}},[Q]);let T=c?.files??i,U=!!s&&0===s.branches.length,{staged:V,changes:W}=(0,e.useMemo)(()=>{let a=[],b=[];return T.forEach(c=>{" "!==c.index&&"?"!==c.index&&a.push(c.path),(" "!==c.working_dir||"?"===c.index)&&b.push(c.path)}),{staged:a,changes:b}},[T]),X=(0,e.useMemo)(()=>k(W),[W]),Y=(0,e.useMemo)(()=>k(V),[V]),Z=(0,e.useMemo)(()=>l(X),[X]),$=(0,e.useMemo)(()=>l(Y),[Y]),_=(0,e.useMemo)(()=>{let a=new Set;return Z.forEach(b=>{K.has(b)||a.add(b)}),y&&m(y).forEach(b=>a.add(b)),a},[Z,K,y]),aa=(0,e.useMemo)(()=>{let a=new Set;return $.forEach(b=>{M.has(b)||a.add(b)}),y&&m(y).forEach(b=>a.add(b)),a},[$,M,y]),ab=(0,e.useCallback)(a=>{L(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),ac=(0,e.useCallback)(a=>{N(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),ad=async b=>{0!==b.length&&await t.mutateAsync({repoPath:a,action:"stage",data:{files:b}})},ae=async b=>{0!==b.length&&await t.mutateAsync({repoPath:a,action:"unstage",data:{files:b}})},af=async()=>{await t.mutateAsync({repoPath:a,action:"stage",data:{files:["."]}})},ag=async()=>{await t.mutateAsync({repoPath:a,action:"unstage",data:{files:V}})},ah=async()=>{await t.mutateAsync({repoPath:a,action:"stash",data:{message:C||void 0}}),B(!1),D(""),z(null)},ai=async()=>{await t.mutateAsync({repoPath:a,action:"discard",data:{includeUntracked:!0}}),F(!1),z(null)},aj=async()=>{let b=u.trim();if(b){if(U)return void H(!0);await t.mutateAsync({repoPath:a,action:"commit",data:{message:j(b,w)}}),v(""),x(""),z(null)}},ak=async()=>{let b=u.trim(),c=I.trim();b&&c&&(await t.mutateAsync({repoPath:a,action:"commit",data:{message:j(b,w),initialBranch:c}}),v(""),x(""),z(null),H(!1))};(0,h.useEscapeDismiss)(A,()=>B(!1),()=>{t.isPending||ah()}),(0,h.useEscapeDismiss)(E,()=>F(!1),()=>{t.isPending||ai()}),(0,h.useEscapeDismiss)(G,()=>H(!1),()=>{!t.isPending&&I.trim()&&ak()});let al=a=>{(a.metaKey||a.ctrlKey)&&"Enter"===a.key&&(a.preventDefault(),V.length>0&&u.trim()&&!t.isPending&&aj())};return o?(0,b.jsx)("div",{className:"flex items-center justify-center h-64",children:(0,b.jsx)("span",{className:"loading loading-spinner text-base-content/50"})}):p?(0,b.jsxs)("div",{className:"flex items-center justify-center h-64 flex-col gap-4",children:[(0,b.jsx)("p",{className:"text-error font-bold",children:"Error Loading Status"}),(0,b.jsx)("p",{className:"text-sm opacity-70",children:q?.message||"An unknown error occurred"}),(0,b.jsxs)("button",{onClick:()=>r(),className:"btn btn-outline btn-sm",children:[(0,b.jsx)("i",{className:"iconoir-refresh-circle text-[16px] mr-1","aria-hidden":"true"}),"Try Again"]})]}):c?(0,b.jsxs)("div",{className:"flex h-full overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex flex-1 min-w-0 flex-col gap-2 overflow-hidden",children:[(0,b.jsxs)("div",{className:"flex min-h-[57px] shrink-0 items-center justify-between gap-2 rounded-xl border border-slate-200 bg-white px-4 py-2 dark:border-slate-800 dark:bg-slate-900",children:[(0,b.jsx)("h1",{className:"font-bold text-lg text-slate-900 dark:text-slate-100",children:"Changes"}),(0,b.jsxs)("button",{className:"flex h-8 items-center gap-1.5 rounded-md border border-slate-200 bg-white px-3 text-sm font-medium text-slate-600 transition-colors hover:bg-slate-50 hover:text-slate-900 disabled:cursor-not-allowed disabled:opacity-50 dark:border-slate-700 dark:bg-slate-900 dark:text-slate-300 dark:hover:bg-slate-800 dark:hover:text-slate-100",onClick:()=>r(),disabled:t.isPending,title:"Refresh status",children:[t.isPending?(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"}):(0,b.jsx)("i",{className:"iconoir-refresh-circle text-[16px]","aria-hidden":"true"}),"Refresh"]})]}),(0,b.jsxs)("div",{className:"flex flex-1 overflow-hidden rounded-xl border border-slate-200 bg-white dark:border-slate-800 dark:bg-slate-900",children:[(0,b.jsx)("div",{className:"w-64 border-r border-slate-200 dark:border-slate-800 flex flex-col bg-slate-50/70 dark:bg-slate-900/70",children:(0,b.jsxs)("div",{className:"flex-1 overflow-y-auto",children:[(0,b.jsxs)("div",{className:"p-2",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between px-2 py-2 mb-1",children:[(0,b.jsxs)("h3",{className:"text-xs font-bold uppercase tracking-wider opacity-70",children:["Changes (",W.length,")"]}),(0,b.jsxs)("div",{className:"flex items-center gap-0.5",children:[0===W.length&&V.length>0?(0,b.jsx)("button",{className:"btn btn-ghost btn-xs btn-square",onClick:ag,title:"Unstage All",children:(0,b.jsx)("i",{className:"iconoir-arrow-up text-[16px]","aria-hidden":"true"})}):(0,b.jsx)("button",{className:"btn btn-ghost btn-xs btn-square",onClick:af,disabled:0===W.length,title:"Stage All",children:(0,b.jsx)("i",{className:"iconoir-arrow-down text-[16px]","aria-hidden":"true"})}),(0,b.jsx)("button",{className:"btn btn-ghost btn-xs btn-square",onClick:()=>B(!0),disabled:0===W.length&&0===V.length,title:"Stash",children:(0,b.jsx)("i",{className:"iconoir-download-square text-[16px]","aria-hidden":"true"})}),(0,b.jsx)("button",{className:"btn btn-ghost btn-xs btn-square text-error hover:bg-error/10",onClick:()=>F(!0),disabled:0===W.length,title:"Discard All",children:(0,b.jsx)("i",{className:"iconoir-trash text-[16px]","aria-hidden":"true"})})]})]}),(0,b.jsxs)("div",{className:"space-y-0.5",children:[0===W.length&&(0,b.jsx)("p",{className:"px-2 py-2 text-xs opacity-50 italic",children:"No changes"}),W.length>0&&(0,b.jsx)(n,{node:X,selectedFile:y,expandedFolders:_,onToggleFolder:ab,onSelectFile:z,onActionPaths:ad,actionType:"stage",actionPending:t.isPending})]})]}),(0,b.jsx)("div",{className:"h-px bg-slate-200 dark:bg-slate-800 mx-4 my-2"}),(0,b.jsxs)("div",{className:"p-2",children:[(0,b.jsx)("div",{className:"flex items-center justify-between px-2 py-2 mb-1",children:(0,b.jsxs)("h3",{className:"text-xs font-bold uppercase tracking-wider opacity-70",children:["Staged (",V.length,")"]})}),(0,b.jsxs)("div",{className:"space-y-0.5",children:[0===V.length&&(0,b.jsx)("p",{className:"px-2 py-2 text-xs opacity-50 italic",children:"No staged changes"}),V.length>0&&(0,b.jsx)(n,{node:Y,selectedFile:y,expandedFolders:aa,onToggleFolder:ac,onSelectFile:z,onActionPaths:ae,actionType:"unstage",actionPending:t.isPending})]})]})]})}),(0,b.jsxs)("div",{className:"flex-1 flex flex-col bg-white dark:bg-slate-900 overflow-hidden",children:[(0,b.jsx)("div",{className:"flex-1 overflow-hidden flex flex-col min-h-0",children:y?(0,b.jsx)("div",{className:"h-full flex flex-col",children:(0,b.jsx)(g.DiffView,{repoPath:a,filePath:y})}):(0,b.jsxs)("div",{className:"flex-1 flex flex-col items-center justify-center opacity-50",children:[(0,b.jsx)("div",{className:"p-8 rounded-full bg-slate-100 dark:bg-slate-800/60 mb-4 text-4xl",children:(0,b.jsx)("i",{className:"iconoir-refresh-circle text-[32px]","aria-hidden":"true"})}),(0,b.jsx)("p",{className:"text-sm font-bold",children:"Select a file to view changes"})]})}),(0,b.jsx)("div",{className:"h-1.5 cursor-ns-resize flex items-center justify-center hover:bg-slate-100 dark:hover:bg-slate-800/60 transition-colors group shrink-0 border-t border-slate-200 dark:border-slate-800",onMouseDown:a=>{a.preventDefault(),R(!0),S.current={startY:a.clientY,startHeight:O}},children:(0,b.jsx)("div",{className:"w-8 h-1 rounded-full bg-base-300 group-hover:bg-base-content/20 transition-colors"})}),(0,b.jsx)("div",{className:"flex flex-col border-t border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-900 shrink-0",style:{height:O},children:(0,b.jsxs)("div",{className:"flex-1 p-4 overflow-y-auto",children:[(0,b.jsx)("input",{type:"text",placeholder:"Commit subject...",value:u,onChange:a=>v(a.target.value),onKeyDown:al,className:"input input-bordered w-full text-sm mb-2 font-sans"}),(0,b.jsx)("textarea",{placeholder:"Commit message body (optional)...",value:w,onChange:a=>x(a.target.value),onKeyDown:al,className:"textarea textarea-bordered w-full text-sm resize-none mb-3 font-sans flex-1",style:{minHeight:"80px",height:"calc(100% - 90px)"}}),(0,b.jsxs)("button",{className:"btn btn-primary w-full btn-sm",onClick:aj,disabled:0===V.length||!u.trim()||t.isPending,children:[t.isPending?(0,b.jsx)("span",{className:"loading loading-spinner loading-xs mr-2"}):(0,b.jsx)("span",{className:"mr-2",children:"✅"}),"Commit Changes"]})]})})]})]})]}),A&&(0,b.jsxs)("dialog",{className:"modal modal-open",children:[(0,b.jsxs)("div",{className:"modal-box",children:[(0,b.jsx)("h3",{className:"font-bold text-lg",children:"Stash Changes"}),(0,b.jsx)("p",{className:"py-4 opacity-70",children:"Save your local modifications to a new stash entry."}),(0,b.jsx)("div",{className:"py-2",children:(0,b.jsx)("input",{type:"text",placeholder:"Stash message (optional)",value:C,onChange:a=>D(a.target.value),autoFocus:!0,onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),ah())},className:"input input-bordered w-full"})}),(0,b.jsxs)("div",{className:"modal-action",children:[(0,b.jsx)("button",{className:"btn",onClick:()=>B(!1),children:"Cancel"}),(0,b.jsxs)("button",{className:"btn btn-primary",onClick:ah,disabled:t.isPending,children:[t.isPending&&(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Stash"]})]})]}),(0,b.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,b.jsx)("button",{onClick:()=>B(!1),children:"close"})})]}),E&&(0,b.jsxs)("dialog",{className:"modal modal-open",children:[(0,b.jsxs)("div",{className:"modal-box",children:[(0,b.jsx)("h3",{className:"font-bold text-lg",children:"Discard Changes"}),(0,b.jsx)("p",{className:"py-4",children:"Are you sure you want to discard all unstaged changes and new files? This action cannot be undone."}),(0,b.jsxs)("div",{className:"modal-action",children:[(0,b.jsx)("button",{className:"btn",onClick:()=>F(!1),children:"Cancel"}),(0,b.jsxs)("button",{className:"btn btn-error",onClick:ai,disabled:t.isPending,children:[t.isPending&&(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Discard"]})]})]}),(0,b.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,b.jsx)("button",{onClick:()=>F(!1),children:"close"})})]}),G&&(0,b.jsxs)("dialog",{className:"modal modal-open",children:[(0,b.jsxs)("div",{className:"modal-box",children:[(0,b.jsx)("h3",{className:"font-bold text-lg",children:"First Commit Branch"}),(0,b.jsx)("p",{className:"py-4 opacity-70",children:"This repository has no commits yet. Choose the branch name for the first commit."}),(0,b.jsx)("div",{className:"py-2",children:(0,b.jsx)("input",{type:"text",placeholder:"Branch name",value:I,onChange:a=>J((0,f.sanitizeBranchName)(a.target.value)),autoFocus:!0,onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),ak())},className:"input input-bordered w-full"})}),(0,b.jsxs)("div",{className:"modal-action",children:[(0,b.jsx)("button",{className:"btn",onClick:()=>H(!1),children:"Cancel"}),(0,b.jsxs)("button",{className:"btn btn-primary",onClick:ak,disabled:!I.trim()||t.isPending,children:[t.isPending&&(0,b.jsx)("span",{className:"loading loading-spinner loading-xs"}),"Commit to Branch"]})]})]}),(0,b.jsx)("form",{method:"dialog",className:"modal-backdrop",children:(0,b.jsx)("button",{onClick:()=>H(!1),children:"close"})})]})]}):(0,b.jsx)("div",{className:"flex items-center justify-center h-64 opacity-70",children:"No status data available"})}var p=a.i(90135);function q(){let a=(0,c.useSearchParams)().get("path");return((0,p.useWorkspaceTitle)(a,"Changes"),a)?(0,b.jsx)(o,{repoPath:a}):(0,b.jsx)("div",{className:"p-8",children:"No repository path specified."})}function r(){return(0,b.jsx)(e.Suspense,{fallback:(0,b.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,b.jsx)("span",{className:"loading loading-spinner"})}),children:(0,b.jsx)(q,{})})}a.s(["default",()=>r],59630)}];
4
+
5
+ //# sourceMappingURL=Downloads_projects_viba_src_app_git_changes_page_tsx_2ddb49ff._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../Downloads/projects/viba/src/app/git/changes/page.tsx","../../../../../../../Downloads/projects/viba/src/components/git/status-view.tsx"],"sourcesContent":["'use client';\n\nimport { useSearchParams } from 'next/navigation';\nimport { StatusView } from '@/components/git/status-view';\nimport { Suspense } from 'react';\nimport { useWorkspaceTitle } from '@/hooks/use-workspace-title';\n\nfunction WorkspaceChangesContent() {\n const searchParams = useSearchParams();\n const repoPath = searchParams.get('path');\n\n useWorkspaceTitle(repoPath, 'Changes');\n\n if (!repoPath) {\n return <div className=\"p-8\">No repository path specified.</div>;\n }\n\n return <StatusView repoPath={repoPath} />;\n}\n\nexport default function WorkspaceChangesPage() {\n return (\n <Suspense fallback={<div className=\"flex items-center justify-center h-full\"><span className=\"loading loading-spinner\"></span></div>}>\n <WorkspaceChangesContent />\n </Suspense>\n );\n}\n","'use client';\n\nimport { useGitStatus, useGitAction, useGitBranches } from '@/hooks/use-git';\nimport { useCallback, useMemo, useState, useEffect, useRef } from 'react';\nimport { cn, sanitizeBranchName } from '@/lib/utils';\nimport { DiffView } from './diff-view';\nimport { useEscapeDismiss } from '@/hooks/use-escape-dismiss';\n\nconst EMPTY_FILES: Array<{ path: string; index: string; working_dir: string }> = [];\n\nfunction buildCommitMessage(subject: string, body: string): string {\n const trimmedSubject = subject.trim();\n const normalizedBody = body.replace(/\\r\\n/g, '\\n');\n return normalizedBody.trim() ? `${trimmedSubject}\\n\\n${normalizedBody}` : trimmedSubject;\n}\n\ninterface StatusFileTreeNode {\n name: string;\n path: string;\n filePath?: string;\n children: Map<string, StatusFileTreeNode>;\n}\n\nfunction buildStatusFileTree(paths: string[]): StatusFileTreeNode {\n const root: StatusFileTreeNode = {\n name: '',\n path: '',\n children: new Map(),\n };\n\n for (const filePath of paths) {\n const parts = filePath.split('/').filter(Boolean);\n let current = root;\n let currentPath = '';\n\n for (let i = 0; i < parts.length; i++) {\n const part = parts[i];\n currentPath = currentPath ? `${currentPath}/${part}` : part;\n\n if (!current.children.has(part)) {\n current.children.set(part, {\n name: part,\n path: currentPath,\n children: new Map(),\n });\n }\n\n current = current.children.get(part)!;\n\n if (i === parts.length - 1) {\n current.filePath = filePath;\n }\n }\n }\n\n return root;\n}\n\nfunction collectFolderPaths(node: StatusFileTreeNode): string[] {\n const paths: string[] = [];\n const children = Array.from(node.children.values());\n\n children.forEach((child) => {\n if (child.children.size > 0) {\n paths.push(child.path);\n paths.push(...collectFolderPaths(child));\n }\n });\n\n return paths;\n}\n\nfunction getParentPaths(filePath: string): string[] {\n const parts = filePath.split('/').filter(Boolean);\n const parentPaths: string[] = [];\n\n for (let i = 1; i < parts.length; i++) {\n parentPaths.push(parts.slice(0, i).join('/'));\n }\n\n return parentPaths;\n}\n\nfunction collectFilePaths(node: StatusFileTreeNode): string[] {\n const filePaths: string[] = [];\n\n node.children.forEach((child) => {\n if (child.filePath) {\n filePaths.push(child.filePath);\n }\n\n if (child.children.size > 0) {\n filePaths.push(...collectFilePaths(child));\n }\n });\n\n return filePaths;\n}\n\nfunction StatusFileTreeItem({\n node,\n selectedFile,\n expandedFolders,\n onToggleFolder,\n onSelectFile,\n onActionPaths,\n actionType,\n actionPending,\n depth = 0,\n}: {\n node: StatusFileTreeNode;\n selectedFile: string | null;\n expandedFolders: Set<string>;\n onToggleFolder: (path: string) => void;\n onSelectFile: (path: string) => void;\n onActionPaths: (paths: string[]) => Promise<void>;\n actionType: 'stage' | 'unstage';\n actionPending: boolean;\n depth?: number;\n}) {\n const children = Array.from(node.children.values()).sort((a, b) => {\n const aIsFolder = a.children.size > 0;\n const bIsFolder = b.children.size > 0;\n\n if (aIsFolder && !bIsFolder) return -1;\n if (!aIsFolder && bIsFolder) return 1;\n return a.name.localeCompare(b.name);\n });\n\n return (\n <>\n {children.map((child) => {\n const isFolder = child.children.size > 0;\n\n if (isFolder) {\n const isExpanded = expandedFolders.has(child.path);\n const filePaths = collectFilePaths(child);\n\n return (\n <div key={child.path} className=\"group\">\n <div\n className=\"flex items-center gap-1 px-2 py-1.5 text-xs rounded cursor-pointer text-slate-600 dark:text-slate-400 hover:bg-slate-100 dark:hover:bg-slate-800/70 transition-colors\"\n style={{ paddingLeft: `${depth * 12 + 8}px` }}\n onClick={() => onToggleFolder(child.path)}\n title={child.path}\n >\n <span className=\"text-[10px] opacity-70\">{isExpanded ? '▼' : '▶'}</span>\n <i className=\"iconoir-folder text-[14px] opacity-70\" aria-hidden=\"true\" />\n <span className=\"truncate flex-1\">{child.name}</span>\n <button\n className={cn(\n 'btn btn-ghost btn-xs btn-square opacity-0 group-hover:opacity-100 transition-opacity',\n actionType === 'stage'\n ? 'text-success hover:bg-success/10'\n : 'text-error hover:bg-error/10'\n )}\n onClick={(e) => {\n e.stopPropagation();\n void onActionPaths(filePaths);\n }}\n disabled={actionPending || filePaths.length === 0}\n title={actionType === 'stage' ? `Stage all in ${child.path}` : `Unstage all in ${child.path}`}\n >\n <i\n className={cn(\n 'text-[14px]',\n actionType === 'stage' ? 'iconoir-plus-circle' : 'iconoir-minus-circle'\n )}\n aria-hidden=\"true\"\n />\n </button>\n </div>\n {isExpanded && (\n <StatusFileTreeItem\n node={child}\n selectedFile={selectedFile}\n expandedFolders={expandedFolders}\n onToggleFolder={onToggleFolder}\n onSelectFile={onSelectFile}\n onActionPaths={onActionPaths}\n actionType={actionType}\n actionPending={actionPending}\n depth={depth + 1}\n />\n )}\n </div>\n );\n }\n\n const filePath = child.filePath;\n if (!filePath) return null;\n\n return (\n <div\n key={filePath}\n className={cn(\n 'flex items-center justify-between gap-2 px-2 py-1.5 rounded-md cursor-pointer group hover:bg-slate-100 dark:hover:bg-slate-800/70 transition-colors text-sm',\n selectedFile === filePath && 'bg-slate-100 dark:bg-slate-800/70 font-medium text-primary'\n )}\n style={{ paddingLeft: `${depth * 12 + 8}px` }}\n onClick={() => onSelectFile(filePath)}\n title={filePath}\n >\n <div className=\"flex items-center gap-2 min-w-0 flex-1\">\n <i className=\"iconoir-page text-[14px] opacity-70 shrink-0\" aria-hidden=\"true\" />\n <span className=\"truncate flex-1 font-mono text-xs\">{child.name}</span>\n </div>\n <button\n className={cn(\n 'btn btn-ghost btn-xs btn-square opacity-0 group-hover:opacity-100 transition-opacity',\n actionType === 'stage'\n ? 'text-success hover:bg-success/10'\n : 'text-error hover:bg-error/10'\n )}\n onClick={(e) => {\n e.stopPropagation();\n void onActionPaths([filePath]);\n }}\n disabled={actionPending}\n >\n <i\n className={cn(\n 'text-[14px]',\n actionType === 'stage' ? 'iconoir-plus-circle' : 'iconoir-minus-circle'\n )}\n aria-hidden=\"true\"\n />\n </button>\n </div>\n );\n })}\n </>\n );\n}\n\nexport function StatusView({ repoPath }: { repoPath: string }) {\n const { data: status, isLoading, isError, error, refetch } = useGitStatus(repoPath);\n const { data: branches } = useGitBranches(repoPath);\n const action = useGitAction();\n const [subject, setSubject] = useState('');\n const [body, setBody] = useState('');\n const [selectedFile, setSelectedFile] = useState<string | null>(null);\n const [stashDialogOpen, setStashDialogOpen] = useState(false);\n const [stashMessage, setStashMessage] = useState('');\n const [discardDialogOpen, setDiscardDialogOpen] = useState(false);\n const [firstCommitDialogOpen, setFirstCommitDialogOpen] = useState(false);\n const [initialBranchName, setInitialBranchName] = useState('main');\n const [collapsedChangeFolders, setCollapsedChangeFolders] = useState<Set<string>>(new Set());\n const [collapsedStagedFolders, setCollapsedStagedFolders] = useState<Set<string>>(new Set());\n \n // Resize logic for commit box\n const [commitBoxHeight, setCommitBoxHeight] = useState(250);\n const [isResizing, setIsResizing] = useState(false);\n const resizeRef = useRef<{ startY: number; startHeight: number } | null>(null);\n\n useEffect(() => {\n const handleMouseMove = (e: MouseEvent) => {\n if (!isResizing || !resizeRef.current) return;\n const delta = resizeRef.current.startY - e.clientY;\n const newHeight = Math.max(150, Math.min(800, resizeRef.current.startHeight + delta));\n setCommitBoxHeight(newHeight);\n };\n\n const handleMouseUp = () => {\n setIsResizing(false);\n resizeRef.current = null;\n document.body.style.cursor = 'default';\n document.body.style.userSelect = 'auto';\n };\n\n if (isResizing) {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n document.body.style.cursor = 'ns-resize';\n document.body.style.userSelect = 'none';\n }\n\n return () => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n document.body.style.cursor = 'default';\n document.body.style.userSelect = 'auto';\n };\n }, [isResizing]);\n\n const handleResizeStart = (e: React.MouseEvent) => {\n e.preventDefault();\n setIsResizing(true);\n resizeRef.current = { startY: e.clientY, startHeight: commitBoxHeight };\n };\n\n const files = status?.files ?? EMPTY_FILES;\n const isFirstCommit = !!branches && branches.branches.length === 0;\n\n // Group files\n const { staged, changes } = useMemo(() => {\n const stagedFiles: string[] = [];\n const changedFiles: string[] = [];\n\n files.forEach((file) => {\n if (file.index !== ' ' && file.index !== '?') {\n stagedFiles.push(file.path);\n }\n if (file.working_dir !== ' ' || file.index === '?') {\n changedFiles.push(file.path);\n }\n });\n\n return {\n staged: stagedFiles,\n changes: changedFiles,\n };\n }, [files]);\n\n const changesTree = useMemo(() => buildStatusFileTree(changes), [changes]);\n const stagedTree = useMemo(() => buildStatusFileTree(staged), [staged]);\n const allChangeFolderPaths = useMemo(() => collectFolderPaths(changesTree), [changesTree]);\n const allStagedFolderPaths = useMemo(() => collectFolderPaths(stagedTree), [stagedTree]);\n\n const expandedChangeFolders = useMemo(() => {\n const expanded = new Set<string>();\n\n allChangeFolderPaths.forEach((path) => {\n if (!collapsedChangeFolders.has(path)) {\n expanded.add(path);\n }\n });\n\n if (selectedFile) {\n getParentPaths(selectedFile).forEach((path) => expanded.add(path));\n }\n\n return expanded;\n }, [allChangeFolderPaths, collapsedChangeFolders, selectedFile]);\n\n const expandedStagedFolders = useMemo(() => {\n const expanded = new Set<string>();\n\n allStagedFolderPaths.forEach((path) => {\n if (!collapsedStagedFolders.has(path)) {\n expanded.add(path);\n }\n });\n\n if (selectedFile) {\n getParentPaths(selectedFile).forEach((path) => expanded.add(path));\n }\n\n return expanded;\n }, [allStagedFolderPaths, collapsedStagedFolders, selectedFile]);\n\n const handleToggleChangeFolder = useCallback((path: string) => {\n setCollapsedChangeFolders((prev) => {\n const next = new Set(prev);\n if (next.has(path)) {\n next.delete(path);\n } else {\n next.add(path);\n }\n return next;\n });\n }, []);\n\n const handleToggleStagedFolder = useCallback((path: string) => {\n setCollapsedStagedFolders((prev) => {\n const next = new Set(prev);\n if (next.has(path)) {\n next.delete(path);\n } else {\n next.add(path);\n }\n return next;\n });\n }, []);\n\n const handleStagePaths = async (paths: string[]) => {\n if (paths.length === 0) return;\n await action.mutateAsync({ repoPath, action: 'stage', data: { files: paths } });\n };\n\n const handleUnstagePaths = async (paths: string[]) => {\n if (paths.length === 0) return;\n await action.mutateAsync({ repoPath, action: 'unstage', data: { files: paths } });\n };\n\n const handleStageAll = async () => {\n await action.mutateAsync({ repoPath, action: 'stage', data: { files: ['.'] } });\n }\n\n const handleUnstageAll = async () => {\n await action.mutateAsync({ repoPath, action: 'unstage', data: { files: staged } });\n }\n\n const handleStash = async () => {\n await action.mutateAsync({ repoPath, action: 'stash', data: { message: stashMessage || undefined } });\n setStashDialogOpen(false);\n setStashMessage('');\n setSelectedFile(null);\n }\n\n const handleDiscard = async () => {\n await action.mutateAsync({ repoPath, action: 'discard', data: { includeUntracked: true } });\n setDiscardDialogOpen(false);\n setSelectedFile(null);\n }\n\n const handleCommit = async () => {\n const trimmedSubject = subject.trim();\n if (!trimmedSubject) return;\n\n if (isFirstCommit) {\n setFirstCommitDialogOpen(true);\n return;\n }\n\n await action.mutateAsync({\n repoPath,\n action: 'commit',\n data: { message: buildCommitMessage(trimmedSubject, body) },\n });\n setSubject('');\n setBody('');\n setSelectedFile(null);\n };\n\n const handleFirstCommitConfirm = async () => {\n const trimmedSubject = subject.trim();\n const trimmedBranchName = initialBranchName.trim();\n if (!trimmedSubject || !trimmedBranchName) return;\n\n await action.mutateAsync({\n repoPath,\n action: 'commit',\n data: {\n message: buildCommitMessage(trimmedSubject, body),\n initialBranch: trimmedBranchName,\n },\n });\n\n setSubject('');\n setBody('');\n setSelectedFile(null);\n setFirstCommitDialogOpen(false);\n };\n\n useEscapeDismiss(stashDialogOpen, () => setStashDialogOpen(false), () => {\n if (action.isPending) {\n return;\n }\n void handleStash();\n });\n useEscapeDismiss(discardDialogOpen, () => setDiscardDialogOpen(false), () => {\n if (action.isPending) {\n return;\n }\n void handleDiscard();\n });\n useEscapeDismiss(firstCommitDialogOpen, () => setFirstCommitDialogOpen(false), () => {\n if (action.isPending || !initialBranchName.trim()) {\n return;\n }\n void handleFirstCommitConfirm();\n });\n\n const handleCommitShortcut = (e: React.KeyboardEvent<HTMLInputElement | HTMLTextAreaElement>) => {\n if ((e.metaKey || e.ctrlKey) && e.key === 'Enter') {\n e.preventDefault();\n if (staged.length > 0 && subject.trim() && !action.isPending) {\n handleCommit();\n }\n }\n };\n\n if (isLoading) {\n return <div className=\"flex items-center justify-center h-64\"><span className=\"loading loading-spinner text-base-content/50\"></span></div>;\n }\n\n if (isError) {\n return (\n <div className=\"flex items-center justify-center h-64 flex-col gap-4\">\n <p className=\"text-error font-bold\">Error Loading Status</p>\n <p className=\"text-sm opacity-70\">{(error as Error)?.message || 'An unknown error occurred'}</p>\n <button onClick={() => refetch()} className=\"btn btn-outline btn-sm\">\n <i className=\"iconoir-refresh-circle text-[16px] mr-1\" aria-hidden=\"true\" />\n Try Again\n </button>\n </div>\n );\n }\n\n if (!status) return <div className=\"flex items-center justify-center h-64 opacity-70\">No status data available</div>;\n\n const headerActionButtonClass =\n \"flex h-8 items-center gap-1.5 rounded-md border border-slate-200 bg-white px-3 text-sm font-medium text-slate-600 transition-colors hover:bg-slate-50 hover:text-slate-900 disabled:cursor-not-allowed disabled:opacity-50 dark:border-slate-700 dark:bg-slate-900 dark:text-slate-300 dark:hover:bg-slate-800 dark:hover:text-slate-100\";\n\n return (\n <div className=\"flex h-full overflow-hidden\">\n <div className=\"flex flex-1 min-w-0 flex-col gap-2 overflow-hidden\">\n <div className=\"flex min-h-[57px] shrink-0 items-center justify-between gap-2 rounded-xl border border-slate-200 bg-white px-4 py-2 dark:border-slate-800 dark:bg-slate-900\">\n <h1 className=\"font-bold text-lg text-slate-900 dark:text-slate-100\">Changes</h1>\n <button className={headerActionButtonClass} onClick={() => refetch()} disabled={action.isPending} title=\"Refresh status\">\n {action.isPending ? <span className=\"loading loading-spinner loading-xs\"></span> : <i className=\"iconoir-refresh-circle text-[16px]\" aria-hidden=\"true\" />}\n Refresh\n </button>\n </div>\n\n <div className=\"flex flex-1 overflow-hidden rounded-xl border border-slate-200 bg-white dark:border-slate-800 dark:bg-slate-900\">\n {/* Left Panel: File List */}\n <div className=\"w-64 border-r border-slate-200 dark:border-slate-800 flex flex-col bg-slate-50/70 dark:bg-slate-900/70\">\n <div className=\"flex-1 overflow-y-auto\">\n {/* Unstaged Changes */}\n <div className=\"p-2\">\n <div className=\"flex items-center justify-between px-2 py-2 mb-1\">\n <h3 className=\"text-xs font-bold uppercase tracking-wider opacity-70\">Changes ({changes.length})</h3>\n <div className=\"flex items-center gap-0.5\">\n {changes.length === 0 && staged.length > 0 ? (\n <button className=\"btn btn-ghost btn-xs btn-square\" onClick={handleUnstageAll} title=\"Unstage All\">\n <i className=\"iconoir-arrow-up text-[16px]\" aria-hidden=\"true\" />\n </button>\n ) : (\n <button className=\"btn btn-ghost btn-xs btn-square\" onClick={handleStageAll} disabled={changes.length === 0} title=\"Stage All\">\n <i className=\"iconoir-arrow-down text-[16px]\" aria-hidden=\"true\" />\n </button>\n )}\n <button className=\"btn btn-ghost btn-xs btn-square\" onClick={() => setStashDialogOpen(true)} disabled={changes.length === 0 && staged.length === 0} title=\"Stash\">\n <i className=\"iconoir-download-square text-[16px]\" aria-hidden=\"true\" />\n </button>\n <button className=\"btn btn-ghost btn-xs btn-square text-error hover:bg-error/10\" onClick={() => setDiscardDialogOpen(true)} disabled={changes.length === 0} title=\"Discard All\">\n <i className=\"iconoir-trash text-[16px]\" aria-hidden=\"true\" />\n </button>\n </div>\n </div>\n <div className=\"space-y-0.5\">\n {changes.length === 0 && <p className=\"px-2 py-2 text-xs opacity-50 italic\">No changes</p>}\n {changes.length > 0 && (\n <StatusFileTreeItem\n node={changesTree}\n selectedFile={selectedFile}\n expandedFolders={expandedChangeFolders}\n onToggleFolder={handleToggleChangeFolder}\n onSelectFile={setSelectedFile}\n onActionPaths={handleStagePaths}\n actionType=\"stage\"\n actionPending={action.isPending}\n />\n )}\n </div>\n </div>\n\n <div className=\"h-px bg-slate-200 dark:bg-slate-800 mx-4 my-2\" />\n\n {/* Staged Changes */}\n <div className=\"p-2\">\n <div className=\"flex items-center justify-between px-2 py-2 mb-1\">\n <h3 className=\"text-xs font-bold uppercase tracking-wider opacity-70\">Staged ({staged.length})</h3>\n </div>\n <div className=\"space-y-0.5\">\n {staged.length === 0 && <p className=\"px-2 py-2 text-xs opacity-50 italic\">No staged changes</p>}\n {staged.length > 0 && (\n <StatusFileTreeItem\n node={stagedTree}\n selectedFile={selectedFile}\n expandedFolders={expandedStagedFolders}\n onToggleFolder={handleToggleStagedFolder}\n onSelectFile={setSelectedFile}\n onActionPaths={handleUnstagePaths}\n actionType=\"unstage\"\n actionPending={action.isPending}\n />\n )}\n </div>\n </div>\n </div>\n </div>\n\n {/* Right Panel: Diff View & Commit Box */}\n <div className=\"flex-1 flex flex-col bg-white dark:bg-slate-900 overflow-hidden\">\n {/* Diff View Area */}\n <div className=\"flex-1 overflow-hidden flex flex-col min-h-0\">\n {selectedFile ? (\n <div className=\"h-full flex flex-col\">\n <DiffView repoPath={repoPath} filePath={selectedFile} />\n </div>\n ) : (\n <div className=\"flex-1 flex flex-col items-center justify-center opacity-50\">\n <div className=\"p-8 rounded-full bg-slate-100 dark:bg-slate-800/60 mb-4 text-4xl\">\n <i className=\"iconoir-refresh-circle text-[32px]\" aria-hidden=\"true\" />\n </div>\n <p className=\"text-sm font-bold\">Select a file to view changes</p>\n </div>\n )}\n </div>\n\n {/* Resize Handle */}\n <div\n className=\"h-1.5 cursor-ns-resize flex items-center justify-center hover:bg-slate-100 dark:hover:bg-slate-800/60 transition-colors group shrink-0 border-t border-slate-200 dark:border-slate-800\"\n onMouseDown={handleResizeStart}\n >\n <div className=\"w-8 h-1 rounded-full bg-base-300 group-hover:bg-base-content/20 transition-colors\" />\n </div>\n\n {/* Commit Box */}\n <div\n className=\"flex flex-col border-t border-slate-200 dark:border-slate-800 bg-white dark:bg-slate-900 shrink-0\"\n style={{ height: commitBoxHeight }}\n >\n <div className=\"flex-1 p-4 overflow-y-auto\">\n <input\n type=\"text\"\n placeholder=\"Commit subject...\"\n value={subject}\n onChange={e => setSubject(e.target.value)}\n onKeyDown={handleCommitShortcut}\n className=\"input input-bordered w-full text-sm mb-2 font-sans\"\n />\n <textarea\n placeholder=\"Commit message body (optional)...\"\n value={body}\n onChange={e => setBody(e.target.value)}\n onKeyDown={handleCommitShortcut}\n className=\"textarea textarea-bordered w-full text-sm resize-none mb-3 font-sans flex-1\"\n style={{ minHeight: '80px', height: 'calc(100% - 90px)' }}\n />\n <button className=\"btn btn-primary w-full btn-sm\" onClick={handleCommit} disabled={staged.length === 0 || !subject.trim() || action.isPending}>\n {action.isPending ? <span className=\"loading loading-spinner loading-xs mr-2\"></span> : <span className=\"mr-2\">✅</span>}\n Commit Changes\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Stash Dialog */}\n {stashDialogOpen && (\n <dialog className=\"modal modal-open\">\n <div className=\"modal-box\">\n <h3 className=\"font-bold text-lg\">Stash Changes</h3>\n <p className=\"py-4 opacity-70\">Save your local modifications to a new stash entry.</p>\n <div className=\"py-2\">\n <input\n type=\"text\"\n placeholder=\"Stash message (optional)\"\n value={stashMessage}\n onChange={(e) => setStashMessage(e.target.value)}\n autoFocus\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleStash();\n }\n }}\n className=\"input input-bordered w-full\"\n />\n </div>\n <div className=\"modal-action\">\n <button className=\"btn\" onClick={() => setStashDialogOpen(false)}>Cancel</button>\n <button className=\"btn btn-primary\" onClick={handleStash} disabled={action.isPending}>\n {action.isPending && <span className=\"loading loading-spinner loading-xs\"></span>}\n Stash\n </button>\n </div>\n </div>\n <form method=\"dialog\" className=\"modal-backdrop\">\n <button onClick={() => setStashDialogOpen(false)}>close</button>\n </form>\n </dialog>\n )}\n\n {/* Discard Dialog */}\n {discardDialogOpen && (\n <dialog className=\"modal modal-open\">\n <div className=\"modal-box\">\n <h3 className=\"font-bold text-lg\">Discard Changes</h3>\n <p className=\"py-4\">\n Are you sure you want to discard all unstaged changes and new files? This action cannot be undone.\n </p>\n <div className=\"modal-action\">\n <button className=\"btn\" onClick={() => setDiscardDialogOpen(false)}>Cancel</button>\n <button className=\"btn btn-error\" onClick={handleDiscard} disabled={action.isPending}>\n {action.isPending && <span className=\"loading loading-spinner loading-xs\"></span>}\n Discard\n </button>\n </div>\n </div>\n <form method=\"dialog\" className=\"modal-backdrop\">\n <button onClick={() => setDiscardDialogOpen(false)}>close</button>\n </form>\n </dialog>\n )}\n\n {firstCommitDialogOpen && (\n <dialog className=\"modal modal-open\">\n <div className=\"modal-box\">\n <h3 className=\"font-bold text-lg\">First Commit Branch</h3>\n <p className=\"py-4 opacity-70\">\n This repository has no commits yet. Choose the branch name for the first commit.\n </p>\n <div className=\"py-2\">\n <input\n type=\"text\"\n placeholder=\"Branch name\"\n value={initialBranchName}\n onChange={(e) => setInitialBranchName(sanitizeBranchName(e.target.value))}\n autoFocus\n onKeyDown={(e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleFirstCommitConfirm();\n }\n }}\n className=\"input input-bordered w-full\"\n />\n </div>\n <div className=\"modal-action\">\n <button className=\"btn\" onClick={() => setFirstCommitDialogOpen(false)}>\n Cancel\n </button>\n <button className=\"btn btn-primary\" onClick={handleFirstCommitConfirm} disabled={!initialBranchName.trim() || action.isPending}>\n {action.isPending && <span className=\"loading loading-spinner loading-xs\"></span>}\n Commit to Branch\n </button>\n </div>\n </div>\n <form method=\"dialog\" className=\"modal-backdrop\">\n <button onClick={() => setFirstCommitDialogOpen(false)}>close</button>\n </form>\n </dialog>\n )}\n </div>\n );\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ module.exports=[32468,a=>{"use strict";var b=a.i(44287),c=a.i(34616),d=a.i(78358),e=a.i(38908),f=a.i(70971),g=class extends f.Subscribable{constructor(a={}){super(),this.config=a,this.#a=new Map}#a;build(a,b,e){let f=b.queryKey,g=b.queryHash??(0,c.hashQueryKeyByOptions)(f,b),h=this.get(g);return h||(h=new d.Query({client:a,queryKey:f,queryHash:g,options:a.defaultQueryOptions(b),state:e,defaultOptions:a.getQueryDefaults(f)}),this.add(h)),h}add(a){this.#a.has(a.queryHash)||(this.#a.set(a.queryHash,a),this.notify({type:"added",query:a}))}remove(a){let b=this.#a.get(a.queryHash);b&&(a.destroy(),b===a&&this.#a.delete(a.queryHash),this.notify({type:"removed",query:a}))}clear(){e.notifyManager.batch(()=>{this.getAll().forEach(a=>{this.remove(a)})})}get(a){return this.#a.get(a)}getAll(){return[...this.#a.values()]}find(a){let b={exact:!0,...a};return this.getAll().find(a=>(0,c.matchQuery)(b,a))}findAll(a={}){let b=this.getAll();return Object.keys(a).length>0?b.filter(b=>(0,c.matchQuery)(a,b)):b}notify(a){e.notifyManager.batch(()=>{this.listeners.forEach(b=>{b(a)})})}onFocus(){e.notifyManager.batch(()=>{this.getAll().forEach(a=>{a.onFocus()})})}onOnline(){e.notifyManager.batch(()=>{this.getAll().forEach(a=>{a.onOnline()})})}},h=a.i(15113),i=f,j=class extends i.Subscribable{constructor(a={}){super(),this.config=a,this.#b=new Set,this.#c=new Map,this.#d=0}#b;#c;#d;build(a,b,c){let d=new h.Mutation({client:a,mutationCache:this,mutationId:++this.#d,options:a.defaultMutationOptions(b),state:c});return this.add(d),d}add(a){this.#b.add(a);let b=k(a);if("string"==typeof b){let c=this.#c.get(b);c?c.push(a):this.#c.set(b,[a])}this.notify({type:"added",mutation:a})}remove(a){if(this.#b.delete(a)){let b=k(a);if("string"==typeof b){let c=this.#c.get(b);if(c)if(c.length>1){let b=c.indexOf(a);-1!==b&&c.splice(b,1)}else c[0]===a&&this.#c.delete(b)}}this.notify({type:"removed",mutation:a})}canRun(a){let b=k(a);if("string"!=typeof b)return!0;{let c=this.#c.get(b),d=c?.find(a=>"pending"===a.state.status);return!d||d===a}}runNext(a){let b=k(a);if("string"!=typeof b)return Promise.resolve();{let c=this.#c.get(b)?.find(b=>b!==a&&b.state.isPaused);return c?.continue()??Promise.resolve()}}clear(){e.notifyManager.batch(()=>{this.#b.forEach(a=>{this.notify({type:"removed",mutation:a})}),this.#b.clear(),this.#c.clear()})}getAll(){return Array.from(this.#b)}find(a){let b={exact:!0,...a};return this.getAll().find(a=>(0,c.matchMutation)(b,a))}findAll(a={}){return this.getAll().filter(b=>(0,c.matchMutation)(a,b))}notify(a){e.notifyManager.batch(()=>{this.listeners.forEach(b=>{b(a)})})}resumePausedMutations(){let a=this.getAll().filter(a=>a.state.isPaused);return e.notifyManager.batch(()=>Promise.all(a.map(a=>a.continue().catch(c.noop))))}};function k(a){return a.options.scope?.id}var l=a.i(61319),m=a.i(46787);function n(a){return{onFetch:(b,d)=>{let e=b.options,f=b.fetchOptions?.meta?.fetchMore?.direction,g=b.state.data?.pages||[],h=b.state.data?.pageParams||[],i={pages:[],pageParams:[]},j=0,k=async()=>{let d=!1,k=(0,c.ensureQueryFn)(b.options,b.fetchOptions),l=async(a,e,f)=>{let g;if(d)return Promise.reject();if(null==e&&a.pages.length)return Promise.resolve(a);let h=(g={client:b.client,queryKey:b.queryKey,pageParam:e,direction:f?"backward":"forward",meta:b.options.meta},(0,c.addConsumeAwareSignal)(g,()=>b.signal,()=>d=!0),g),i=await k(h),{maxPages:j}=b.options,l=f?c.addToStart:c.addToEnd;return{pages:l(a.pages,i,j),pageParams:l(a.pageParams,e,j)}};if(f&&g.length){let a="backward"===f,b={pages:g,pageParams:h},c=(a?function(a,{pages:b,pageParams:c}){return b.length>0?a.getPreviousPageParam?.(b[0],b,c[0],c):void 0}:o)(e,b);i=await l(b,c,a)}else{let b=a??g.length;do{let a=0===j?h[0]??e.initialPageParam:o(e,i);if(j>0&&null==a)break;i=await l(i,a),j++}while(j<b)}return i};b.options.persister?b.fetchFn=()=>b.options.persister?.(k,{client:b.client,queryKey:b.queryKey,meta:b.options.meta,signal:b.signal},d):b.fetchFn=k}}}function o(a,{pages:b,pageParams:c}){let d=b.length-1;return b.length>0?a.getNextPageParam(b[d],b,c[d],c):void 0}var p=class{#e;#f;#g;#h;#i;#j;#k;#l;constructor(a={}){this.#e=a.queryCache||new g,this.#f=a.mutationCache||new j,this.#g=a.defaultOptions||{},this.#h=new Map,this.#i=new Map,this.#j=0}mount(){this.#j++,1===this.#j&&(this.#k=l.focusManager.subscribe(async a=>{a&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#l=m.onlineManager.subscribe(async a=>{a&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#j--,0===this.#j&&(this.#k?.(),this.#k=void 0,this.#l?.(),this.#l=void 0)}isFetching(a){return this.#e.findAll({...a,fetchStatus:"fetching"}).length}isMutating(a){return this.#f.findAll({...a,status:"pending"}).length}getQueryData(a){let b=this.defaultQueryOptions({queryKey:a});return this.#e.get(b.queryHash)?.state.data}ensureQueryData(a){let b=this.defaultQueryOptions(a),d=this.#e.build(this,b),e=d.state.data;return void 0===e?this.fetchQuery(a):(a.revalidateIfStale&&d.isStaleByTime((0,c.resolveStaleTime)(b.staleTime,d))&&this.prefetchQuery(b),Promise.resolve(e))}getQueriesData(a){return this.#e.findAll(a).map(({queryKey:a,state:b})=>[a,b.data])}setQueryData(a,b,d){let e=this.defaultQueryOptions({queryKey:a}),f=this.#e.get(e.queryHash),g=f?.state.data,h=(0,c.functionalUpdate)(b,g);if(void 0!==h)return this.#e.build(this,e).setData(h,{...d,manual:!0})}setQueriesData(a,b,c){return e.notifyManager.batch(()=>this.#e.findAll(a).map(({queryKey:a})=>[a,this.setQueryData(a,b,c)]))}getQueryState(a){let b=this.defaultQueryOptions({queryKey:a});return this.#e.get(b.queryHash)?.state}removeQueries(a){let b=this.#e;e.notifyManager.batch(()=>{b.findAll(a).forEach(a=>{b.remove(a)})})}resetQueries(a,b){let c=this.#e;return e.notifyManager.batch(()=>(c.findAll(a).forEach(a=>{a.reset()}),this.refetchQueries({type:"active",...a},b)))}cancelQueries(a,b={}){let d={revert:!0,...b};return Promise.all(e.notifyManager.batch(()=>this.#e.findAll(a).map(a=>a.cancel(d)))).then(c.noop).catch(c.noop)}invalidateQueries(a,b={}){return e.notifyManager.batch(()=>(this.#e.findAll(a).forEach(a=>{a.invalidate()}),a?.refetchType==="none")?Promise.resolve():this.refetchQueries({...a,type:a?.refetchType??a?.type??"active"},b))}refetchQueries(a,b={}){let d={...b,cancelRefetch:b.cancelRefetch??!0};return Promise.all(e.notifyManager.batch(()=>this.#e.findAll(a).filter(a=>!a.isDisabled()&&!a.isStatic()).map(a=>{let b=a.fetch(void 0,d);return d.throwOnError||(b=b.catch(c.noop)),"paused"===a.state.fetchStatus?Promise.resolve():b}))).then(c.noop)}fetchQuery(a){let b=this.defaultQueryOptions(a);void 0===b.retry&&(b.retry=!1);let d=this.#e.build(this,b);return d.isStaleByTime((0,c.resolveStaleTime)(b.staleTime,d))?d.fetch(b):Promise.resolve(d.state.data)}prefetchQuery(a){return this.fetchQuery(a).then(c.noop).catch(c.noop)}fetchInfiniteQuery(a){return a.behavior=n(a.pages),this.fetchQuery(a)}prefetchInfiniteQuery(a){return this.fetchInfiniteQuery(a).then(c.noop).catch(c.noop)}ensureInfiniteQueryData(a){return a.behavior=n(a.pages),this.ensureQueryData(a)}resumePausedMutations(){return m.onlineManager.isOnline()?this.#f.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#f}getDefaultOptions(){return this.#g}setDefaultOptions(a){this.#g=a}setQueryDefaults(a,b){this.#h.set((0,c.hashKey)(a),{queryKey:a,defaultOptions:b})}getQueryDefaults(a){let b=[...this.#h.values()],d={};return b.forEach(b=>{(0,c.partialMatchKey)(a,b.queryKey)&&Object.assign(d,b.defaultOptions)}),d}setMutationDefaults(a,b){this.#i.set((0,c.hashKey)(a),{mutationKey:a,defaultOptions:b})}getMutationDefaults(a){let b=[...this.#i.values()],d={};return b.forEach(b=>{(0,c.partialMatchKey)(a,b.mutationKey)&&Object.assign(d,b.defaultOptions)}),d}defaultQueryOptions(a){if(a._defaulted)return a;let b={...this.#g.queries,...this.getQueryDefaults(a.queryKey),...a,_defaulted:!0};return b.queryHash||(b.queryHash=(0,c.hashQueryKeyByOptions)(b.queryKey,b)),void 0===b.refetchOnReconnect&&(b.refetchOnReconnect="always"!==b.networkMode),void 0===b.throwOnError&&(b.throwOnError=!!b.suspense),!b.networkMode&&b.persister&&(b.networkMode="offlineFirst"),b.queryFn===c.skipToken&&(b.enabled=!1),b}defaultMutationOptions(a){return a?._defaulted?a:{...this.#g.mutations,...a?.mutationKey&&this.getMutationDefaults(a.mutationKey),...a,_defaulted:!0}}clear(){this.#e.clear(),this.#f.clear()}},q=a.i(45160),r=a.i(89812),s=a.i(29759),t=a.i(20006);function u(){let{toasts:a}=(0,t.useToast)(),[c,d]=(0,r.useState)(!1);return((0,r.useEffect)(()=>{d(!0)},[]),c)?(0,b.jsx)("div",{className:"toast toast-bottom toast-end pointer-events-none z-50 p-4 gap-2",children:a.map(a=>{let c="alert-info";return"success"===a.type?c="alert-success":"warning"===a.type||"warning"===a.variant?c="alert-warning":("error"===a.type||"destructive"===a.variant)&&(c="alert-error"),(0,b.jsxs)("div",{className:`alert ${c} pointer-events-auto shadow-lg max-w-md w-auto flex-col items-start gap-1 p-3 text-sm animate-in fade-in slide-in-from-bottom-2 duration-300`,children:[(0,b.jsxs)("div",{className:"w-full",children:[a.title&&(0,b.jsx)("h3",{className:"font-bold",children:a.title}),a.description&&(0,b.jsx)("div",{className:"opacity-90 break-words",children:a.description})]}),a.action&&(0,b.jsx)("div",{className:"mt-2 w-full",children:a.action})]},a.id)})}):null}var v=a.i(81081),w=a.i(67128),x=a.i(53522),y=a.i(59556);function z(a,b){return new Date(b.lastOpenedAt||0).getTime()-new Date(a.lastOpenedAt||0).getTime()}function A(){let a=(0,v.useRouter)(),{data:c}=(0,w.useRepositories)(),[d,e]=(0,r.useState)(!1),[f,g]=(0,r.useState)(""),[h,i]=(0,r.useState)(0),j=(0,r.useRef)(null),k=(0,r.useMemo)(()=>(c||[]).filter(a=>!!a.lastOpenedAt).sort(z).slice(0,5),[c]),l=(0,r.useMemo)(()=>{let a=f.trim().toLowerCase();return a?k.filter(b=>{let c=(0,x.getRepositoryDisplayName)(b).toLowerCase(),d=b.path.toLowerCase();return c.includes(a)||d.includes(a)}):k},[f,k]),m=(0,r.useCallback)(()=>{e(!1),g(""),i(0)},[]),n=0===l.length?-1:Math.min(h,l.length-1),o=(0,r.useCallback)(b=>{m(),a.push(`/git?path=${encodeURIComponent(b)}`)},[m,a]);return((0,r.useEffect)(()=>{let a=a=>{(a.metaKey||a.ctrlKey)&&"k"===a.key.toLowerCase()&&(a.preventDefault(),e(!0))};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[]),(0,y.useEscapeDismiss)(d,m),(0,r.useEffect)(()=>{d&&requestAnimationFrame(()=>j.current?.focus())},[d]),d)?(0,b.jsx)("div",{className:"fixed inset-0 z-50 bg-black/40 px-4 py-16",onMouseDown:m,role:"dialog","aria-modal":"true","aria-label":"Command palette",children:(0,b.jsxs)("div",{className:"mx-auto w-full max-w-2xl overflow-hidden rounded-xl border border-base-300 bg-base-100 shadow-2xl",onMouseDown:a=>a.stopPropagation(),children:[(0,b.jsx)("div",{className:"border-b border-base-300 p-3",children:(0,b.jsx)("input",{ref:j,type:"text",value:f,onChange:a=>{g(a.target.value),i(0)},onKeyDown:a=>{if("ArrowDown"===a.key){a.preventDefault(),l.length>0&&i(a=>(a+1)%l.length);return}if("ArrowUp"===a.key){a.preventDefault(),l.length>0&&i(a=>a<=0?l.length-1:a-1);return}if("Enter"===a.key){a.preventDefault();let b=n>=0?l[n]:null;b&&o(b.path)}},placeholder:"Type a command...",className:"input input-ghost w-full text-base focus:outline-none"})}),(0,b.jsxs)("div",{className:"max-h-80 overflow-y-auto py-2",children:[(0,b.jsx)("div",{className:"px-4 pb-2 text-xs font-semibold uppercase tracking-wider opacity-60",children:"Recent repositories"}),0===k.length&&(0,b.jsx)("div",{className:"px-4 py-6 text-sm opacity-60",children:"No recently opened repositories yet."}),k.length>0&&0===l.length&&(0,b.jsx)("div",{className:"px-4 py-6 text-sm opacity-60",children:"No matching repositories."}),l.map((a,c)=>{let d=(0,x.getRepositoryDisplayName)(a);return(0,b.jsxs)("button",{type:"button",className:(0,x.cn)("flex w-full items-center justify-between gap-4 px-4 py-3 text-left",n===c?"bg-base-200":"hover:bg-base-200/70"),onMouseEnter:()=>i(c),onClick:()=>o(a.path),children:[(0,b.jsxs)("div",{className:"min-w-0",children:[(0,b.jsx)("div",{className:"truncate text-sm font-medium",children:d}),(0,b.jsx)("div",{className:"truncate text-xs opacity-65",children:a.path})]}),(0,b.jsx)("span",{className:"text-xs opacity-60",children:"Open"})]},a.path)})]}),(0,b.jsx)("div",{className:"border-t border-base-300 px-4 py-2 text-xs opacity-60",children:"Use ↑ ↓ to navigate, Enter to open, Esc to close."})]})}):null}function B({children:a}){let[c]=(0,r.useState)(()=>new p);return(0,b.jsx)(q.QueryClientProvider,{client:c,children:(0,b.jsxs)(s.ThemeProvider,{attribute:"data-theme",defaultTheme:"system",enableSystem:!0,children:[a,(0,b.jsx)(A,{}),(0,b.jsx)(u,{})]})})}a.s(["Providers",()=>B],32468)}];
2
+
3
+ //# sourceMappingURL=Downloads_projects_viba_src_app_providers_tsx_1935a601._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../Downloads/projects/viba/src/components/toaster.tsx","../../../../../../../Downloads/projects/viba/src/components/command-palette.tsx","../../../../../../../Downloads/projects/viba/node_modules/%40tanstack/query-core/build/modern/queryClient.js","../../../../../../../Downloads/projects/viba/src/app/providers.tsx","../../../../../../../Downloads/projects/viba/node_modules/%40tanstack/query-core/build/modern/mutationCache.js","../../../../../../../Downloads/projects/viba/node_modules/%40tanstack/query-core/build/modern/queryCache.js","../../../../../../../Downloads/projects/viba/node_modules/%40tanstack/query-core/build/modern/infiniteQueryBehavior.js"],"sourcesContent":["'use client';\n\nimport { useToast } from '@/hooks/use-toast';\nimport { useEffect, useState } from 'react';\n\nexport function Toaster() {\n const { toasts } = useToast();\n const [mounted, setMounted] = useState(false);\n\n useEffect(() => {\n setMounted(true);\n }, []);\n\n if (!mounted) return null;\n\n return (\n <div className=\"toast toast-bottom toast-end pointer-events-none z-50 p-4 gap-2\">\n {toasts.map((toast) => {\n let alertClass = 'alert-info';\n if (toast.type === 'success') alertClass = 'alert-success';\n else if (toast.type === 'warning' || toast.variant === 'warning') alertClass = 'alert-warning';\n else if (toast.type === 'error' || toast.variant === 'destructive') alertClass = 'alert-error';\n\n return (\n <div key={toast.id} className={`alert ${alertClass} pointer-events-auto shadow-lg max-w-md w-auto flex-col items-start gap-1 p-3 text-sm animate-in fade-in slide-in-from-bottom-2 duration-300`}>\n <div className=\"w-full\">\n {toast.title && <h3 className=\"font-bold\">{toast.title}</h3>}\n {toast.description && <div className=\"opacity-90 break-words\">{toast.description}</div>}\n </div>\n {toast.action && <div className=\"mt-2 w-full\">{toast.action}</div>}\n </div>\n )\n })}\n </div>\n );\n}\n","'use client';\n\nimport { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useRouter } from 'next/navigation';\nimport { Repository } from '@/lib/types';\nimport { useRepositories } from '@/hooks/use-git';\nimport { cn, getRepositoryDisplayName } from '@/lib/utils';\nimport { useEscapeDismiss } from '@/hooks/use-escape-dismiss';\n\nfunction sortByLastOpenedDesc(a: Repository, b: Repository) {\n return new Date(b.lastOpenedAt || 0).getTime() - new Date(a.lastOpenedAt || 0).getTime();\n}\n\nexport function CommandPalette() {\n const router = useRouter();\n const { data: repositories } = useRepositories();\n const [isOpen, setIsOpen] = useState(false);\n const [query, setQuery] = useState('');\n const [selectedIndex, setSelectedIndex] = useState(0);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const recentRepositories = useMemo(\n () =>\n (repositories || [])\n .filter((repo) => Boolean(repo.lastOpenedAt))\n .sort(sortByLastOpenedDesc)\n .slice(0, 5),\n [repositories]\n );\n\n const filteredRepositories = useMemo(() => {\n const keyword = query.trim().toLowerCase();\n if (!keyword) return recentRepositories;\n\n return recentRepositories.filter((repo) => {\n const name = getRepositoryDisplayName(repo).toLowerCase();\n const repoPath = repo.path.toLowerCase();\n return name.includes(keyword) || repoPath.includes(keyword);\n });\n }, [query, recentRepositories]);\n\n const closePalette = useCallback(() => {\n setIsOpen(false);\n setQuery('');\n setSelectedIndex(0);\n }, []);\n\n const activeIndex =\n filteredRepositories.length === 0\n ? -1\n : Math.min(selectedIndex, filteredRepositories.length - 1);\n\n const openRepository = useCallback(\n (repoPath: string) => {\n closePalette();\n router.push(`/git?path=${encodeURIComponent(repoPath)}`);\n },\n [closePalette, router]\n );\n\n useEffect(() => {\n const onGlobalKeyDown = (event: KeyboardEvent) => {\n const isCommandOpenShortcut = (event.metaKey || event.ctrlKey) && event.key.toLowerCase() === 'k';\n if (isCommandOpenShortcut) {\n event.preventDefault();\n setIsOpen(true);\n }\n };\n\n window.addEventListener('keydown', onGlobalKeyDown);\n return () => window.removeEventListener('keydown', onGlobalKeyDown);\n }, []);\n\n useEscapeDismiss(isOpen, closePalette);\n\n useEffect(() => {\n if (!isOpen) return;\n requestAnimationFrame(() => inputRef.current?.focus());\n }, [isOpen]);\n\n if (!isOpen) return null;\n\n return (\n <div\n className=\"fixed inset-0 z-50 bg-black/40 px-4 py-16\"\n onMouseDown={closePalette}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Command palette\"\n >\n <div\n className=\"mx-auto w-full max-w-2xl overflow-hidden rounded-xl border border-base-300 bg-base-100 shadow-2xl\"\n onMouseDown={(event) => event.stopPropagation()}\n >\n <div className=\"border-b border-base-300 p-3\">\n <input\n ref={inputRef}\n type=\"text\"\n value={query}\n onChange={(event) => {\n setQuery(event.target.value);\n setSelectedIndex(0);\n }}\n onKeyDown={(event) => {\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n if (filteredRepositories.length > 0) {\n setSelectedIndex((current) => (current + 1) % filteredRepositories.length);\n }\n return;\n }\n\n if (event.key === 'ArrowUp') {\n event.preventDefault();\n if (filteredRepositories.length > 0) {\n setSelectedIndex((current) =>\n current <= 0 ? filteredRepositories.length - 1 : current - 1\n );\n }\n return;\n }\n\n if (event.key === 'Enter') {\n event.preventDefault();\n const selectedRepo = activeIndex >= 0 ? filteredRepositories[activeIndex] : null;\n if (selectedRepo) {\n openRepository(selectedRepo.path);\n }\n }\n }}\n placeholder=\"Type a command...\"\n className=\"input input-ghost w-full text-base focus:outline-none\"\n />\n </div>\n\n <div className=\"max-h-80 overflow-y-auto py-2\">\n <div className=\"px-4 pb-2 text-xs font-semibold uppercase tracking-wider opacity-60\">\n Recent repositories\n </div>\n\n {recentRepositories.length === 0 && (\n <div className=\"px-4 py-6 text-sm opacity-60\">No recently opened repositories yet.</div>\n )}\n\n {recentRepositories.length > 0 && filteredRepositories.length === 0 && (\n <div className=\"px-4 py-6 text-sm opacity-60\">No matching repositories.</div>\n )}\n\n {filteredRepositories.map((repo, index) => {\n const repoDisplayName = getRepositoryDisplayName(repo);\n return (\n <button\n key={repo.path}\n type=\"button\"\n className={cn(\n 'flex w-full items-center justify-between gap-4 px-4 py-3 text-left',\n activeIndex === index ? 'bg-base-200' : 'hover:bg-base-200/70'\n )}\n onMouseEnter={() => setSelectedIndex(index)}\n onClick={() => openRepository(repo.path)}\n >\n <div className=\"min-w-0\">\n <div className=\"truncate text-sm font-medium\">{repoDisplayName}</div>\n <div className=\"truncate text-xs opacity-65\">{repo.path}</div>\n </div>\n <span className=\"text-xs opacity-60\">Open</span>\n </button>\n );\n })}\n </div>\n\n <div className=\"border-t border-base-300 px-4 py-2 text-xs opacity-60\">\n Use ↑ ↓ to navigate, Enter to open, Esc to close.\n </div>\n </div>\n </div>\n );\n}\n","// src/queryClient.ts\nimport {\n functionalUpdate,\n hashKey,\n hashQueryKeyByOptions,\n noop,\n partialMatchKey,\n resolveStaleTime,\n skipToken\n} from \"./utils.js\";\nimport { QueryCache } from \"./queryCache.js\";\nimport { MutationCache } from \"./mutationCache.js\";\nimport { focusManager } from \"./focusManager.js\";\nimport { onlineManager } from \"./onlineManager.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { infiniteQueryBehavior } from \"./infiniteQueryBehavior.js\";\nvar QueryClient = class {\n #queryCache;\n #mutationCache;\n #defaultOptions;\n #queryDefaults;\n #mutationDefaults;\n #mountCount;\n #unsubscribeFocus;\n #unsubscribeOnline;\n constructor(config = {}) {\n this.#queryCache = config.queryCache || new QueryCache();\n this.#mutationCache = config.mutationCache || new MutationCache();\n this.#defaultOptions = config.defaultOptions || {};\n this.#queryDefaults = /* @__PURE__ */ new Map();\n this.#mutationDefaults = /* @__PURE__ */ new Map();\n this.#mountCount = 0;\n }\n mount() {\n this.#mountCount++;\n if (this.#mountCount !== 1) return;\n this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {\n if (focused) {\n await this.resumePausedMutations();\n this.#queryCache.onFocus();\n }\n });\n this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {\n if (online) {\n await this.resumePausedMutations();\n this.#queryCache.onOnline();\n }\n });\n }\n unmount() {\n this.#mountCount--;\n if (this.#mountCount !== 0) return;\n this.#unsubscribeFocus?.();\n this.#unsubscribeFocus = void 0;\n this.#unsubscribeOnline?.();\n this.#unsubscribeOnline = void 0;\n }\n isFetching(filters) {\n return this.#queryCache.findAll({ ...filters, fetchStatus: \"fetching\" }).length;\n }\n isMutating(filters) {\n return this.#mutationCache.findAll({ ...filters, status: \"pending\" }).length;\n }\n /**\n * Imperative (non-reactive) way to retrieve data for a QueryKey.\n * Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.\n *\n * Hint: Do not use this function inside a component, because it won't receive updates.\n * Use `useQuery` to create a `QueryObserver` that subscribes to changes.\n */\n getQueryData(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(options.queryHash)?.state.data;\n }\n ensureQueryData(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n const query = this.#queryCache.build(this, defaultedOptions);\n const cachedData = query.state.data;\n if (cachedData === void 0) {\n return this.fetchQuery(options);\n }\n if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {\n void this.prefetchQuery(defaultedOptions);\n }\n return Promise.resolve(cachedData);\n }\n getQueriesData(filters) {\n return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n setQueryData(queryKey, updater, options) {\n const defaultedOptions = this.defaultQueryOptions({ queryKey });\n const query = this.#queryCache.get(\n defaultedOptions.queryHash\n );\n const prevData = query?.state.data;\n const data = functionalUpdate(updater, prevData);\n if (data === void 0) {\n return void 0;\n }\n return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });\n }\n setQueriesData(filters, updater, options) {\n return notifyManager.batch(\n () => this.#queryCache.findAll(filters).map(({ queryKey }) => [\n queryKey,\n this.setQueryData(queryKey, updater, options)\n ])\n );\n }\n getQueryState(queryKey) {\n const options = this.defaultQueryOptions({ queryKey });\n return this.#queryCache.get(\n options.queryHash\n )?.state;\n }\n removeQueries(filters) {\n const queryCache = this.#queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n queryCache.remove(query);\n });\n });\n }\n resetQueries(filters, options) {\n const queryCache = this.#queryCache;\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach((query) => {\n query.reset();\n });\n return this.refetchQueries(\n {\n type: \"active\",\n ...filters\n },\n options\n );\n });\n }\n cancelQueries(filters, cancelOptions = {}) {\n const defaultedCancelOptions = { revert: true, ...cancelOptions };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))\n );\n return Promise.all(promises).then(noop).catch(noop);\n }\n invalidateQueries(filters, options = {}) {\n return notifyManager.batch(() => {\n this.#queryCache.findAll(filters).forEach((query) => {\n query.invalidate();\n });\n if (filters?.refetchType === \"none\") {\n return Promise.resolve();\n }\n return this.refetchQueries(\n {\n ...filters,\n type: filters?.refetchType ?? filters?.type ?? \"active\"\n },\n options\n );\n });\n }\n refetchQueries(filters, options = {}) {\n const fetchOptions = {\n ...options,\n cancelRefetch: options.cancelRefetch ?? true\n };\n const promises = notifyManager.batch(\n () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled() && !query.isStatic()).map((query) => {\n let promise = query.fetch(void 0, fetchOptions);\n if (!fetchOptions.throwOnError) {\n promise = promise.catch(noop);\n }\n return query.state.fetchStatus === \"paused\" ? Promise.resolve() : promise;\n })\n );\n return Promise.all(promises).then(noop);\n }\n fetchQuery(options) {\n const defaultedOptions = this.defaultQueryOptions(options);\n if (defaultedOptions.retry === void 0) {\n defaultedOptions.retry = false;\n }\n const query = this.#queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(\n resolveStaleTime(defaultedOptions.staleTime, query)\n ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n prefetchQuery(options) {\n return this.fetchQuery(options).then(noop).catch(noop);\n }\n fetchInfiniteQuery(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.fetchQuery(options);\n }\n prefetchInfiniteQuery(options) {\n return this.fetchInfiniteQuery(options).then(noop).catch(noop);\n }\n ensureInfiniteQueryData(options) {\n options.behavior = infiniteQueryBehavior(options.pages);\n return this.ensureQueryData(options);\n }\n resumePausedMutations() {\n if (onlineManager.isOnline()) {\n return this.#mutationCache.resumePausedMutations();\n }\n return Promise.resolve();\n }\n getQueryCache() {\n return this.#queryCache;\n }\n getMutationCache() {\n return this.#mutationCache;\n }\n getDefaultOptions() {\n return this.#defaultOptions;\n }\n setDefaultOptions(options) {\n this.#defaultOptions = options;\n }\n setQueryDefaults(queryKey, options) {\n this.#queryDefaults.set(hashKey(queryKey), {\n queryKey,\n defaultOptions: options\n });\n }\n getQueryDefaults(queryKey) {\n const defaults = [...this.#queryDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(queryKey, queryDefault.queryKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n setMutationDefaults(mutationKey, options) {\n this.#mutationDefaults.set(hashKey(mutationKey), {\n mutationKey,\n defaultOptions: options\n });\n }\n getMutationDefaults(mutationKey) {\n const defaults = [...this.#mutationDefaults.values()];\n const result = {};\n defaults.forEach((queryDefault) => {\n if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {\n Object.assign(result, queryDefault.defaultOptions);\n }\n });\n return result;\n }\n defaultQueryOptions(options) {\n if (options._defaulted) {\n return options;\n }\n const defaultedOptions = {\n ...this.#defaultOptions.queries,\n ...this.getQueryDefaults(options.queryKey),\n ...options,\n _defaulted: true\n };\n if (!defaultedOptions.queryHash) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(\n defaultedOptions.queryKey,\n defaultedOptions\n );\n }\n if (defaultedOptions.refetchOnReconnect === void 0) {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== \"always\";\n }\n if (defaultedOptions.throwOnError === void 0) {\n defaultedOptions.throwOnError = !!defaultedOptions.suspense;\n }\n if (!defaultedOptions.networkMode && defaultedOptions.persister) {\n defaultedOptions.networkMode = \"offlineFirst\";\n }\n if (defaultedOptions.queryFn === skipToken) {\n defaultedOptions.enabled = false;\n }\n return defaultedOptions;\n }\n defaultMutationOptions(options) {\n if (options?._defaulted) {\n return options;\n }\n return {\n ...this.#defaultOptions.mutations,\n ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n clear() {\n this.#queryCache.clear();\n this.#mutationCache.clear();\n }\n};\nexport {\n QueryClient\n};\n//# sourceMappingURL=queryClient.js.map","'use client';\n\nimport { QueryClient, QueryClientProvider } from '@tanstack/react-query';\nimport { useState } from 'react';\nimport { ThemeProvider } from 'next-themes';\nimport { Toaster } from '@/components/toaster';\nimport { CommandPalette } from '@/components/command-palette';\n\nexport function Providers({ children }: { children: React.ReactNode }) {\n const [queryClient] = useState(() => new QueryClient());\n\n return (\n <QueryClientProvider client={queryClient}>\n <ThemeProvider attribute=\"data-theme\" defaultTheme=\"system\" enableSystem>\n {children}\n <CommandPalette />\n <Toaster />\n </ThemeProvider>\n </QueryClientProvider>\n );\n}\n","// src/mutationCache.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Mutation } from \"./mutation.js\";\nimport { matchMutation, noop } from \"./utils.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar MutationCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#mutations = /* @__PURE__ */ new Set();\n this.#scopes = /* @__PURE__ */ new Map();\n this.#mutationId = 0;\n }\n #mutations;\n #scopes;\n #mutationId;\n build(client, options, state) {\n const mutation = new Mutation({\n client,\n mutationCache: this,\n mutationId: ++this.#mutationId,\n options: client.defaultMutationOptions(options),\n state\n });\n this.add(mutation);\n return mutation;\n }\n add(mutation) {\n this.#mutations.add(mutation);\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n scopedMutations.push(mutation);\n } else {\n this.#scopes.set(scope, [mutation]);\n }\n }\n this.notify({ type: \"added\", mutation });\n }\n remove(mutation) {\n if (this.#mutations.delete(mutation)) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const scopedMutations = this.#scopes.get(scope);\n if (scopedMutations) {\n if (scopedMutations.length > 1) {\n const index = scopedMutations.indexOf(mutation);\n if (index !== -1) {\n scopedMutations.splice(index, 1);\n }\n } else if (scopedMutations[0] === mutation) {\n this.#scopes.delete(scope);\n }\n }\n }\n }\n this.notify({ type: \"removed\", mutation });\n }\n canRun(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const mutationsWithSameScope = this.#scopes.get(scope);\n const firstPendingMutation = mutationsWithSameScope?.find(\n (m) => m.state.status === \"pending\"\n );\n return !firstPendingMutation || firstPendingMutation === mutation;\n } else {\n return true;\n }\n }\n runNext(mutation) {\n const scope = scopeFor(mutation);\n if (typeof scope === \"string\") {\n const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);\n return foundMutation?.continue() ?? Promise.resolve();\n } else {\n return Promise.resolve();\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.#mutations.forEach((mutation) => {\n this.notify({ type: \"removed\", mutation });\n });\n this.#mutations.clear();\n this.#scopes.clear();\n });\n }\n getAll() {\n return Array.from(this.#mutations);\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (mutation) => matchMutation(defaultedFilters, mutation)\n );\n }\n findAll(filters = {}) {\n return this.getAll().filter((mutation) => matchMutation(filters, mutation));\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n resumePausedMutations() {\n const pausedMutations = this.getAll().filter((x) => x.state.isPaused);\n return notifyManager.batch(\n () => Promise.all(\n pausedMutations.map((mutation) => mutation.continue().catch(noop))\n )\n );\n }\n};\nfunction scopeFor(mutation) {\n return mutation.options.scope?.id;\n}\nexport {\n MutationCache\n};\n//# sourceMappingURL=mutationCache.js.map","// src/queryCache.ts\nimport { hashQueryKeyByOptions, matchQuery } from \"./utils.js\";\nimport { Query } from \"./query.js\";\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Subscribable } from \"./subscribable.js\";\nvar QueryCache = class extends Subscribable {\n constructor(config = {}) {\n super();\n this.config = config;\n this.#queries = /* @__PURE__ */ new Map();\n }\n #queries;\n build(client, options, state) {\n const queryKey = options.queryKey;\n const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n if (!query) {\n query = new Query({\n client,\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n return query;\n }\n add(query) {\n if (!this.#queries.has(query.queryHash)) {\n this.#queries.set(query.queryHash, query);\n this.notify({\n type: \"added\",\n query\n });\n }\n }\n remove(query) {\n const queryInMap = this.#queries.get(query.queryHash);\n if (queryInMap) {\n query.destroy();\n if (queryInMap === query) {\n this.#queries.delete(query.queryHash);\n }\n this.notify({ type: \"removed\", query });\n }\n }\n clear() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n this.remove(query);\n });\n });\n }\n get(queryHash) {\n return this.#queries.get(queryHash);\n }\n getAll() {\n return [...this.#queries.values()];\n }\n find(filters) {\n const defaultedFilters = { exact: true, ...filters };\n return this.getAll().find(\n (query) => matchQuery(defaultedFilters, query)\n );\n }\n findAll(filters = {}) {\n const queries = this.getAll();\n return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;\n }\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach((listener) => {\n listener(event);\n });\n });\n }\n onFocus() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onFocus();\n });\n });\n }\n onOnline() {\n notifyManager.batch(() => {\n this.getAll().forEach((query) => {\n query.onOnline();\n });\n });\n }\n};\nexport {\n QueryCache\n};\n//# sourceMappingURL=queryCache.js.map","// src/infiniteQueryBehavior.ts\nimport {\n addConsumeAwareSignal,\n addToEnd,\n addToStart,\n ensureQueryFn\n} from \"./utils.js\";\nfunction infiniteQueryBehavior(pages) {\n return {\n onFetch: (context, query) => {\n const options = context.options;\n const direction = context.fetchOptions?.meta?.fetchMore?.direction;\n const oldPages = context.state.data?.pages || [];\n const oldPageParams = context.state.data?.pageParams || [];\n let result = { pages: [], pageParams: [] };\n let currentPage = 0;\n const fetchFn = async () => {\n let cancelled = false;\n const addSignalProperty = (object) => {\n addConsumeAwareSignal(\n object,\n () => context.signal,\n () => cancelled = true\n );\n };\n const queryFn = ensureQueryFn(context.options, context.fetchOptions);\n const fetchPage = async (data, param, previous) => {\n if (cancelled) {\n return Promise.reject();\n }\n if (param == null && data.pages.length) {\n return Promise.resolve(data);\n }\n const createQueryFnContext = () => {\n const queryFnContext2 = {\n client: context.client,\n queryKey: context.queryKey,\n pageParam: param,\n direction: previous ? \"backward\" : \"forward\",\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext2);\n return queryFnContext2;\n };\n const queryFnContext = createQueryFnContext();\n const page = await queryFn(queryFnContext);\n const { maxPages } = context.options;\n const addTo = previous ? addToStart : addToEnd;\n return {\n pages: addTo(data.pages, page, maxPages),\n pageParams: addTo(data.pageParams, param, maxPages)\n };\n };\n if (direction && oldPages.length) {\n const previous = direction === \"backward\";\n const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;\n const oldData = {\n pages: oldPages,\n pageParams: oldPageParams\n };\n const param = pageParamFn(options, oldData);\n result = await fetchPage(oldData, param, previous);\n } else {\n const remainingPages = pages ?? oldPages.length;\n do {\n const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);\n if (currentPage > 0 && param == null) {\n break;\n }\n result = await fetchPage(result, param);\n currentPage++;\n } while (currentPage < remainingPages);\n }\n return result;\n };\n if (context.options.persister) {\n context.fetchFn = () => {\n return context.options.persister?.(\n fetchFn,\n {\n client: context.client,\n queryKey: context.queryKey,\n meta: context.options.meta,\n signal: context.signal\n },\n query\n );\n };\n } else {\n context.fetchFn = fetchFn;\n }\n }\n };\n}\nfunction getNextPageParam(options, { pages, pageParams }) {\n const lastIndex = pages.length - 1;\n return pages.length > 0 ? options.getNextPageParam(\n pages[lastIndex],\n pages,\n pageParams[lastIndex],\n pageParams\n ) : void 0;\n}\nfunction getPreviousPageParam(options, { pages, pageParams }) {\n return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;\n}\nfunction hasNextPage(options, data) {\n if (!data) return false;\n return getNextPageParam(options, data) != null;\n}\nfunction hasPreviousPage(options, data) {\n if (!data || !options.getPreviousPageParam) return false;\n return getPreviousPageParam(options, data) != null;\n}\nexport {\n hasNextPage,\n hasPreviousPage,\n infiniteQueryBehavior\n};\n//# sourceMappingURL=infiniteQueryBehavior.js.map"],"names":[],"mappings":"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","ignoreList":[2,4,5,6]}