vibedoc 1.6.1 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (297) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +2 -0
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +39 -11
  5. package/.next/routes-manifest.json +12 -0
  6. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  7. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  8. package/.next/server/app/(app)/board/page.js.nft.json +1 -1
  9. package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/(app)/chat/page/app-paths-manifest.json +3 -0
  11. package/.next/server/app/(app)/chat/page/build-manifest.json +20 -0
  12. package/.next/server/app/(app)/chat/page/next-font-manifest.json +11 -0
  13. package/.next/server/app/(app)/chat/page/react-loadable-manifest.json +1 -0
  14. package/.next/server/app/(app)/chat/page/server-reference-manifest.json +4 -0
  15. package/.next/server/app/(app)/chat/page.js +15 -0
  16. package/.next/server/app/(app)/chat/page.js.map +5 -0
  17. package/.next/server/app/(app)/chat/page.js.nft.json +1 -0
  18. package/.next/server/app/(app)/chat/page_client-reference-manifest.js +3 -0
  19. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  20. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  21. package/.next/server/app/(app)/explorer/page.js.nft.json +1 -1
  22. package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
  24. package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/(app)/roadmap/page.js.nft.json +1 -1
  26. package/.next/server/app/(app)/roadmap/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  28. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
  30. package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
  31. package/.next/server/app/_global-error.html +1 -1
  32. package/.next/server/app/_global-error.rsc +1 -1
  33. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  34. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  35. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  36. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  37. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/_not-found.html +1 -1
  39. package/.next/server/app/_not-found.rsc +2 -2
  40. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  41. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  42. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  43. package/.next/server/app/activity.html +1 -1
  44. package/.next/server/app/activity.rsc +22 -23
  45. package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +9 -10
  46. package/.next/server/app/activity.segments/_full.segment.rsc +22 -23
  47. package/.next/server/app/activity.segments/_tree.segment.rsc +2 -2
  48. package/.next/server/app/api/activity/route.js.nft.json +1 -1
  49. package/.next/server/app/api/backlinks/route.js.nft.json +1 -1
  50. package/.next/server/app/api/chat/route.js.nft.json +1 -1
  51. package/.next/server/app/api/context/route.js.nft.json +1 -1
  52. package/.next/server/app/api/conversations/route/app-paths-manifest.json +3 -0
  53. package/.next/server/app/api/conversations/route/build-manifest.json +12 -0
  54. package/.next/server/app/api/conversations/route/server-reference-manifest.json +4 -0
  55. package/.next/server/app/api/conversations/route.js +9 -0
  56. package/.next/server/app/api/conversations/route.js.map +5 -0
  57. package/.next/server/app/api/conversations/route.js.nft.json +1 -0
  58. package/.next/server/app/api/conversations/route_client-reference-manifest.js +3 -0
  59. package/.next/server/app/api/decisions/route.js.nft.json +1 -1
  60. package/.next/server/app/api/docs/route.js.nft.json +1 -1
  61. package/.next/server/app/api/explorer/route.js.nft.json +1 -1
  62. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  63. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  64. package/.next/server/app/api/plan/apply/route.js.nft.json +1 -1
  65. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  66. package/.next/server/app/api/registry/route.js.nft.json +1 -1
  67. package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
  68. package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
  69. package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
  70. package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
  71. package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
  72. package/.next/server/app/api/roadmap/update/route.js.nft.json +1 -1
  73. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  74. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  75. package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
  76. package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
  77. package/.next/server/app/api/summary/route.js.nft.json +1 -1
  78. package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
  79. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  80. package/.next/server/app/board.html +1 -1
  81. package/.next/server/app/board.rsc +22 -23
  82. package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +9 -10
  83. package/.next/server/app/board.segments/_full.segment.rsc +22 -23
  84. package/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  85. package/.next/server/app/chat.html +1 -0
  86. package/.next/server/app/chat.meta +31 -0
  87. package/.next/server/app/chat.rsc +29 -0
  88. package/.next/server/app/chat.segments/!KGFwcCk/chat/__PAGE__.segment.rsc +31 -0
  89. package/.next/server/app/chat.segments/_full.segment.rsc +29 -0
  90. package/.next/server/app/chat.segments/_tree.segment.rsc +4 -0
  91. package/.next/server/app/docs.html +1 -1
  92. package/.next/server/app/docs.rsc +22 -27
  93. package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +6 -6
  94. package/.next/server/app/docs.segments/_full.segment.rsc +22 -27
  95. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  96. package/.next/server/app/explorer.html +1 -1
  97. package/.next/server/app/explorer.rsc +22 -23
  98. package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +9 -10
  99. package/.next/server/app/explorer.segments/_full.segment.rsc +22 -23
  100. package/.next/server/app/explorer.segments/_tree.segment.rsc +2 -2
  101. package/.next/server/app/index.html +1 -1
  102. package/.next/server/app/index.rsc +2 -2
  103. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  104. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  105. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  106. package/.next/server/app/memory.html +1 -1
  107. package/.next/server/app/memory.rsc +22 -23
  108. package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +9 -10
  109. package/.next/server/app/memory.segments/_full.segment.rsc +22 -23
  110. package/.next/server/app/memory.segments/_tree.segment.rsc +2 -2
  111. package/.next/server/app/page.js.nft.json +1 -1
  112. package/.next/server/app/page_client-reference-manifest.js +1 -1
  113. package/.next/server/app/roadmap.html +1 -1
  114. package/.next/server/app/roadmap.rsc +22 -26
  115. package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +9 -11
  116. package/.next/server/app/roadmap.segments/_full.segment.rsc +22 -26
  117. package/.next/server/app/roadmap.segments/_tree.segment.rsc +2 -2
  118. package/.next/server/app/settings.html +1 -1
  119. package/.next/server/app/settings.rsc +22 -23
  120. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +9 -10
  121. package/.next/server/app/settings.segments/_full.segment.rsc +22 -23
  122. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  123. package/.next/server/app/setup.html +1 -1
  124. package/.next/server/app/setup.rsc +22 -23
  125. package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +9 -10
  126. package/.next/server/app/setup.segments/_full.segment.rsc +22 -23
  127. package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  128. package/.next/server/app-paths-manifest.json +2 -0
  129. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1htgzmb._.js +3 -0
  130. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1htgzmb._.js.map +1 -0
  131. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0d2_lq6._.js +3 -0
  132. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js +4 -4
  133. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js.map +1 -1
  134. package/.next/server/chunks/[root-of-the-server]__1jxu2x9._.js +3 -0
  135. package/.next/server/chunks/[root-of-the-server]__1jxu2x9._.js.map +1 -0
  136. package/.next/server/chunks/_next-internal_server_app_api_conversations_route_actions_1-pu7gs.js +3 -0
  137. package/.next/server/chunks/ssr/{0_nd_mermaid_dist_mermaid_core_mjs_1vulg1x._.js → 0_nd_mermaid_dist_mermaid_core_mjs_0vv_0i3._.js} +2 -2
  138. package/.next/server/chunks/ssr/{1u84_katex_dist_katex_mjs_0mwkb-i._.js → 1u84_katex_dist_katex_mjs_1z0p1bs._.js} +1 -1
  139. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0cvmffy._.js +3 -0
  140. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0cvmffy._.js.map +1 -0
  141. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0u3jxas._.js +3 -0
  142. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0u3jxas._.js.map +1 -0
  143. package/.next/server/chunks/ssr/[root-of-the-server]__11lfnu0._.js +3 -0
  144. package/.next/server/chunks/ssr/[root-of-the-server]__11lfnu0._.js.map +1 -0
  145. package/.next/server/chunks/ssr/_059qmur._.js +3 -0
  146. package/.next/server/chunks/ssr/_059qmur._.js.map +1 -0
  147. package/.next/server/chunks/ssr/_081irea._.js +3 -0
  148. package/.next/server/chunks/ssr/_081irea._.js.map +1 -0
  149. package/.next/server/chunks/ssr/_0d8t8l4._.js +3 -0
  150. package/.next/server/chunks/ssr/_0d8t8l4._.js.map +1 -0
  151. package/.next/server/chunks/ssr/_0dyvcdg._.js +3 -0
  152. package/.next/server/chunks/ssr/_0dyvcdg._.js.map +1 -0
  153. package/.next/server/chunks/ssr/_1-ghqy4._.js +3 -0
  154. package/.next/server/chunks/ssr/_1-ghqy4._.js.map +1 -0
  155. package/.next/server/chunks/ssr/_17jy5db._.js +3 -0
  156. package/.next/server/chunks/ssr/_17jy5db._.js.map +1 -0
  157. package/.next/server/chunks/ssr/_1c95ems._.js +1 -1
  158. package/.next/server/chunks/ssr/_1c95ems._.js.map +1 -1
  159. package/.next/server/chunks/ssr/_1dllfz5._.js +4 -0
  160. package/.next/server/chunks/ssr/_1dllfz5._.js.map +1 -0
  161. package/.next/server/chunks/ssr/_next-internal_server_app_(app)_chat_page_actions_0g4tbzt.js +3 -0
  162. package/.next/server/chunks/ssr/node_modules__pnpm_006_c8z._.js +3 -0
  163. package/.next/server/chunks/ssr/node_modules__pnpm_006_c8z._.js.map +1 -0
  164. package/.next/server/chunks/ssr/{node_modules__pnpm_00wjhj4._.js → node_modules__pnpm_0286-tg._.js} +1 -1
  165. package/.next/server/chunks/ssr/{node_modules__pnpm_0w9uewb._.js → node_modules__pnpm_04khl_s._.js} +1 -1
  166. package/.next/server/chunks/ssr/{node_modules__pnpm_1zsbfem._.js → node_modules__pnpm_07t_e8c._.js} +1 -1
  167. package/.next/server/chunks/ssr/{node_modules__pnpm_0p10j87._.js → node_modules__pnpm_08sqeu2._.js} +1 -1
  168. package/.next/server/chunks/ssr/{node_modules__pnpm_0cj37c-._.js → node_modules__pnpm_09_i2jk._.js} +1 -1
  169. package/.next/server/chunks/ssr/node_modules__pnpm_09_i2jk._.js.map +1 -0
  170. package/.next/server/chunks/ssr/{node_modules__pnpm_19ys1iv._.js → node_modules__pnpm_0a9b2ei._.js} +1 -1
  171. package/.next/server/chunks/ssr/{node_modules__pnpm_0ma8hho._.js → node_modules__pnpm_0ah02mu._.js} +1 -1
  172. package/.next/server/chunks/ssr/{node_modules__pnpm_0kna82c._.js → node_modules__pnpm_0cj8ryj._.js} +1 -1
  173. package/.next/server/chunks/ssr/{node_modules__pnpm_04xoqd9._.js → node_modules__pnpm_0dwi7mu._.js} +2 -2
  174. package/.next/server/chunks/ssr/node_modules__pnpm_0dwi7mu._.js.map +1 -0
  175. package/.next/server/chunks/ssr/{node_modules__pnpm_19ejwjv._.js → node_modules__pnpm_0f77_ng._.js} +1 -1
  176. package/.next/server/chunks/ssr/{node_modules__pnpm_11lluiq._.js → node_modules__pnpm_0fd3pr1._.js} +2 -2
  177. package/.next/server/chunks/ssr/{node_modules__pnpm_1xolwvc._.js → node_modules__pnpm_0gifu-u._.js} +2 -2
  178. package/.next/server/chunks/ssr/{node_modules__pnpm_1r4w_7k._.js → node_modules__pnpm_0jpv2b6._.js} +2 -2
  179. package/.next/server/chunks/ssr/{node_modules__pnpm_17o8zbz._.js → node_modules__pnpm_0og06fy._.js} +1 -1
  180. package/.next/server/chunks/ssr/{node_modules__pnpm_042y3e-._.js → node_modules__pnpm_0qc3gsk._.js} +1 -1
  181. package/.next/server/chunks/ssr/{node_modules__pnpm_0yixxj2._.js → node_modules__pnpm_0ts89ne._.js} +1 -1
  182. package/.next/server/chunks/ssr/{node_modules__pnpm_18pu1wl._.js → node_modules__pnpm_0ttvopp._.js} +1 -1
  183. package/.next/server/chunks/ssr/{node_modules__pnpm_1-poetj._.js → node_modules__pnpm_0u3u82f._.js} +1 -1
  184. package/.next/server/chunks/ssr/{node_modules__pnpm_07j8gcu._.js → node_modules__pnpm_0y35hs4._.js} +1 -1
  185. package/.next/server/chunks/ssr/{node_modules__pnpm_1a3fo7j._.js → node_modules__pnpm_104pzhc._.js} +2 -2
  186. package/.next/server/chunks/ssr/{node_modules__pnpm_00i3mh2._.js → node_modules__pnpm_195j8p_._.js} +1 -1
  187. package/.next/server/chunks/ssr/node_modules__pnpm_1kcnkjs._.js +3 -0
  188. package/.next/server/chunks/ssr/node_modules__pnpm_1kcnkjs._.js.map +1 -0
  189. package/.next/server/chunks/ssr/{node_modules__pnpm_1_34wt2._.js → node_modules__pnpm_1l8k8w1._.js} +1 -1
  190. package/.next/server/chunks/ssr/{node_modules__pnpm_0nbxdp_._.js → node_modules__pnpm_1w0f1m5._.js} +1 -1
  191. package/.next/server/chunks/ssr/{node_modules__pnpm_1l-posw._.js → node_modules__pnpm_1woddr6._.js} +2 -2
  192. package/.next/server/chunks/ssr/{node_modules__pnpm_0fk-8nl._.js → node_modules__pnpm_1x0t5_z._.js} +1 -1
  193. package/.next/server/chunks/ssr/{node_modules__pnpm_1o30a9w._.js → node_modules__pnpm_1xzf8g_._.js} +1 -1
  194. package/.next/server/chunks/ssr/{node_modules__pnpm_0--x5-5._.js → node_modules__pnpm_1yq90z7._.js} +1 -1
  195. package/.next/server/chunks/ssr/node_modules__pnpm_1yq90z7._.js.map +1 -0
  196. package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js +3 -0
  197. package/.next/server/chunks/ssr/src_app_(app)_chat_page_tsx_0c3e4l4._.js.map +1 -0
  198. package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js +3 -0
  199. package/.next/server/chunks/ssr/src_app_(app)_layout_tsx_1yu5hom._.js.map +1 -0
  200. package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js +5 -0
  201. package/.next/server/chunks/ssr/src_app_(app)_roadmap_page_tsx_0vcq3jr._.js.map +1 -0
  202. package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js +5 -0
  203. package/.next/server/chunks/ssr/src_context_ChatContext_tsx_0lowp8p._.js.map +1 -0
  204. package/.next/server/chunks/ssr/{_1wf14_u._.js → src_lib_templates_index_ts_1s61uk7._.js} +2 -2
  205. package/.next/server/chunks/ssr/{_1wf14_u._.js.map → src_lib_templates_index_ts_1s61uk7._.js.map} +1 -1
  206. package/.next/server/middleware-build-manifest.js +3 -3
  207. package/.next/server/next-font-manifest.js +1 -1
  208. package/.next/server/next-font-manifest.json +4 -0
  209. package/.next/server/pages/404.html +1 -1
  210. package/.next/server/pages/500.html +1 -1
  211. package/.next/server/prefetch-hints.json +19 -0
  212. package/.next/server/server-reference-manifest.js +1 -1
  213. package/.next/server/server-reference-manifest.json +1 -1
  214. package/.next/static/chunks/050mq8l4e1ubn.js +1 -0
  215. package/.next/static/chunks/098le48845_fg.js +3 -0
  216. package/.next/static/chunks/0cw4-ebkoufdc.js +1 -0
  217. package/.next/static/chunks/0feo-go1w5nct.js +1 -0
  218. package/.next/static/chunks/14sefb904pl64.js +21 -0
  219. package/.next/static/chunks/1fer-wulyrjrs.js +3 -0
  220. package/.next/static/chunks/1o7b1x4umy8a6.js +1 -0
  221. package/.next/static/chunks/1q_io1j58aukw.js +1 -0
  222. package/.next/static/chunks/1t-cgh4477hfo.js +1 -0
  223. package/.next/static/chunks/1u-1po1qesc9f.js +1 -0
  224. package/.next/static/chunks/1u5kegkgm0xoz.js +1 -0
  225. package/.next/static/chunks/24ygzsgd-moqy.js +1 -0
  226. package/.next/static/chunks/26folxgplfa9t.js +68 -0
  227. package/.next/static/chunks/2ocixvjhv34_3.js +1 -0
  228. package/.next/static/chunks/3_lsdgxa-h7ma.css +10 -0
  229. package/.next/static/chunks/3rmv-sb9w9i3e.js +1 -0
  230. package/.next/static/chunks/3ttzomivj48jh.js +2 -0
  231. package/README.md +1 -1
  232. package/package.json +1 -1
  233. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_08ca0b4._.js +0 -3
  234. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_08ca0b4._.js.map +0 -1
  235. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0c1k9is._.js +0 -3
  236. package/.next/server/chunks/ssr/1x05_lucide-react_dist_esm_icons_0c1k9is._.js.map +0 -1
  237. package/.next/server/chunks/ssr/_0qyglif._.js +0 -5
  238. package/.next/server/chunks/ssr/_0qyglif._.js.map +0 -1
  239. package/.next/server/chunks/ssr/_0skuoxv._.js +0 -6
  240. package/.next/server/chunks/ssr/_0skuoxv._.js.map +0 -1
  241. package/.next/server/chunks/ssr/_14i_6yb._.js +0 -3
  242. package/.next/server/chunks/ssr/_14i_6yb._.js.map +0 -1
  243. package/.next/server/chunks/ssr/_1cbhuz4._.js +0 -3
  244. package/.next/server/chunks/ssr/_1cbhuz4._.js.map +0 -1
  245. package/.next/server/chunks/ssr/_1ewk_mn._.js +0 -3
  246. package/.next/server/chunks/ssr/_1ewk_mn._.js.map +0 -1
  247. package/.next/server/chunks/ssr/_1y-ofyw._.js +0 -3
  248. package/.next/server/chunks/ssr/_1y-ofyw._.js.map +0 -1
  249. package/.next/server/chunks/ssr/node_modules__pnpm_0bmkw6o._.js +0 -3
  250. package/.next/server/chunks/ssr/node_modules__pnpm_0bmkw6o._.js.map +0 -1
  251. package/.next/server/chunks/ssr/src_components_008q3v8._.js +0 -3
  252. package/.next/server/chunks/ssr/src_components_008q3v8._.js.map +0 -1
  253. package/.next/static/chunks/0-vk2d2nnzav2.js +0 -3
  254. package/.next/static/chunks/02sab26ica2x3.js +0 -1
  255. package/.next/static/chunks/0eggcu0ovk8sd.js +0 -68
  256. package/.next/static/chunks/0iva6rdtfqpbz.js +0 -1
  257. package/.next/static/chunks/0qm101bdsxdyh.css +0 -10
  258. package/.next/static/chunks/0wg9n5zb8mo2p.js +0 -1
  259. package/.next/static/chunks/0z_y7el6m76yk.js +0 -1
  260. package/.next/static/chunks/1-ekntoveuxzd.js +0 -4
  261. package/.next/static/chunks/10neasnz6hhq1.js +0 -1
  262. package/.next/static/chunks/22dw7r8x0h2sx.js +0 -1
  263. package/.next/static/chunks/26ee8jsbellqk.js +0 -21
  264. package/.next/static/chunks/3kkg030rcpz7l.js +0 -1
  265. package/.next/static/chunks/3pf_4ye6ju8gt.js +0 -1
  266. /package/.next/server/chunks/{ssr/0_nd_mermaid_dist_mermaid_core_mjs_1vulg1x._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0d2_lq6._.js.map} +0 -0
  267. /package/.next/server/chunks/{ssr/1u84_katex_dist_katex_mjs_0mwkb-i._.js.map → _next-internal_server_app_api_conversations_route_actions_1-pu7gs.js.map} +0 -0
  268. /package/.next/server/chunks/ssr/{node_modules__pnpm_0--x5-5._.js.map → 0_nd_mermaid_dist_mermaid_core_mjs_0vv_0i3._.js.map} +0 -0
  269. /package/.next/server/chunks/ssr/{node_modules__pnpm_04xoqd9._.js.map → 1u84_katex_dist_katex_mjs_1z0p1bs._.js.map} +0 -0
  270. /package/.next/server/chunks/ssr/{node_modules__pnpm_0cj37c-._.js.map → _next-internal_server_app_(app)_chat_page_actions_0g4tbzt.js.map} +0 -0
  271. /package/.next/server/chunks/ssr/{node_modules__pnpm_00wjhj4._.js.map → node_modules__pnpm_0286-tg._.js.map} +0 -0
  272. /package/.next/server/chunks/ssr/{node_modules__pnpm_0w9uewb._.js.map → node_modules__pnpm_04khl_s._.js.map} +0 -0
  273. /package/.next/server/chunks/ssr/{node_modules__pnpm_1zsbfem._.js.map → node_modules__pnpm_07t_e8c._.js.map} +0 -0
  274. /package/.next/server/chunks/ssr/{node_modules__pnpm_0p10j87._.js.map → node_modules__pnpm_08sqeu2._.js.map} +0 -0
  275. /package/.next/server/chunks/ssr/{node_modules__pnpm_19ys1iv._.js.map → node_modules__pnpm_0a9b2ei._.js.map} +0 -0
  276. /package/.next/server/chunks/ssr/{node_modules__pnpm_0ma8hho._.js.map → node_modules__pnpm_0ah02mu._.js.map} +0 -0
  277. /package/.next/server/chunks/ssr/{node_modules__pnpm_0kna82c._.js.map → node_modules__pnpm_0cj8ryj._.js.map} +0 -0
  278. /package/.next/server/chunks/ssr/{node_modules__pnpm_19ejwjv._.js.map → node_modules__pnpm_0f77_ng._.js.map} +0 -0
  279. /package/.next/server/chunks/ssr/{node_modules__pnpm_11lluiq._.js.map → node_modules__pnpm_0fd3pr1._.js.map} +0 -0
  280. /package/.next/server/chunks/ssr/{node_modules__pnpm_1xolwvc._.js.map → node_modules__pnpm_0gifu-u._.js.map} +0 -0
  281. /package/.next/server/chunks/ssr/{node_modules__pnpm_1r4w_7k._.js.map → node_modules__pnpm_0jpv2b6._.js.map} +0 -0
  282. /package/.next/server/chunks/ssr/{node_modules__pnpm_17o8zbz._.js.map → node_modules__pnpm_0og06fy._.js.map} +0 -0
  283. /package/.next/server/chunks/ssr/{node_modules__pnpm_042y3e-._.js.map → node_modules__pnpm_0qc3gsk._.js.map} +0 -0
  284. /package/.next/server/chunks/ssr/{node_modules__pnpm_0yixxj2._.js.map → node_modules__pnpm_0ts89ne._.js.map} +0 -0
  285. /package/.next/server/chunks/ssr/{node_modules__pnpm_18pu1wl._.js.map → node_modules__pnpm_0ttvopp._.js.map} +0 -0
  286. /package/.next/server/chunks/ssr/{node_modules__pnpm_1-poetj._.js.map → node_modules__pnpm_0u3u82f._.js.map} +0 -0
  287. /package/.next/server/chunks/ssr/{node_modules__pnpm_07j8gcu._.js.map → node_modules__pnpm_0y35hs4._.js.map} +0 -0
  288. /package/.next/server/chunks/ssr/{node_modules__pnpm_1a3fo7j._.js.map → node_modules__pnpm_104pzhc._.js.map} +0 -0
  289. /package/.next/server/chunks/ssr/{node_modules__pnpm_00i3mh2._.js.map → node_modules__pnpm_195j8p_._.js.map} +0 -0
  290. /package/.next/server/chunks/ssr/{node_modules__pnpm_1_34wt2._.js.map → node_modules__pnpm_1l8k8w1._.js.map} +0 -0
  291. /package/.next/server/chunks/ssr/{node_modules__pnpm_0nbxdp_._.js.map → node_modules__pnpm_1w0f1m5._.js.map} +0 -0
  292. /package/.next/server/chunks/ssr/{node_modules__pnpm_1l-posw._.js.map → node_modules__pnpm_1woddr6._.js.map} +0 -0
  293. /package/.next/server/chunks/ssr/{node_modules__pnpm_0fk-8nl._.js.map → node_modules__pnpm_1x0t5_z._.js.map} +0 -0
  294. /package/.next/server/chunks/ssr/{node_modules__pnpm_1o30a9w._.js.map → node_modules__pnpm_1xzf8g_._.js.map} +0 -0
  295. /package/.next/static/{gJtrYenzL6_deB-6pdvIL → uJ5RYxgFnE5svAvnuLDXN}/_buildManifest.js +0 -0
  296. /package/.next/static/{gJtrYenzL6_deB-6pdvIL → uJ5RYxgFnE5svAvnuLDXN}/_clientMiddlewareManifest.js +0 -0
  297. /package/.next/static/{gJtrYenzL6_deB-6pdvIL → uJ5RYxgFnE5svAvnuLDXN}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../node_modules/.pnpm/%40radix-ui%2Bprimitive%401.1.7/node_modules/%40radix-ui/primitive/src/primitive.tsx","../../../../node_modules/.pnpm/%40radix-ui%2Bprimitive%401.1.7/node_modules/%40radix-ui/primitive/src/internal/is-development.false.ts","../../../../node_modules/.pnpm/%40radix-ui%2Breact-context%401.2.2_%40types%2Breact%4019.3.0_react%4019.3.0/node_modules/%40radix-ui/react-context/src/create-context.tsx","../../../../node_modules/.pnpm/%40radix-ui%2Breact-id%401.1.4_%40types%2Breact%4019.3.0_react%4019.3.0/node_modules/%40radix-ui/react-id/src/id.tsx","../../../../node_modules/.pnpm/%40radix-ui%2Breact-presence%401.1.10_%40types%2Breact-dom%4019.3.0_%40types%2Breact%4019.3.0__%40types%2Brea_2fe228634386b203c3622b9fd60e1034/node_modules/%40radix-ui/react-presence/src/presence.tsx","../../../../node_modules/.pnpm/%40radix-ui%2Breact-presence%401.1.10_%40types%2Breact-dom%4019.3.0_%40types%2Breact%4019.3.0__%40types%2Brea_2fe228634386b203c3622b9fd60e1034/node_modules/%40radix-ui/react-presence/src/use-state-machine.tsx","../../../../node_modules/.pnpm/%40radix-ui%2Breact-primitive%402.1.10_%40types%2Breact-dom%4019.3.0_%40types%2Breact%4019.3.0__%40types%2Bre_f83f88542c24ef44463bf36336741c4c/node_modules/%40radix-ui/react-primitive/src/primitive.tsx","../../../../node_modules/.pnpm/%40radix-ui%2Breact-use-callback-ref%401.1.4_%40types%2Breact%4019.3.0_react%4019.3.0/node_modules/%40radix-ui/react-use-callback-ref/src/use-callback-ref.tsx","../../../../node_modules/.pnpm/%40radix-ui%2Breact-use-effect-event%400.0.5_%40types%2Breact%4019.3.0_react%4019.3.0/node_modules/%40radix-ui/react-use-effect-event/dist/index.mjs","../../../../node_modules/.pnpm/%40radix-ui%2Breact-use-controllable-state%401.2.6_%40types%2Breact%4019.3.0_react%4019.3.0/node_modules/%40radix-ui/react-use-controllable-state/dist/index.mjs","../../../../node_modules/.pnpm/%40radix-ui%2Breact-use-layout-effect%401.1.4_%40types%2Breact%4019.3.0_react%4019.3.0/node_modules/%40radix-ui/react-use-layout-effect/src/use-layout-effect.tsx"],"sourcesContent":["/* eslint-disable no-restricted-properties */\n\n/* eslint-disable no-restricted-globals */\nexport const canUseDOM = !!(\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n/* eslint-enable no-restricted-globals */\n\nexport function composeEventHandlers<E extends { defaultPrevented: boolean }>(\n originalEventHandler?: (event: E) => void,\n ourEventHandler?: (event: E) => void,\n { checkForDefaultPrevented = true } = {},\n) {\n return function handleEvent(event: E) {\n originalEventHandler?.(event);\n\n if (checkForDefaultPrevented === false || !event || !event.defaultPrevented) {\n return ourEventHandler?.(event);\n }\n };\n}\n\nexport function getOwnerWindow(element: Node | null | undefined) {\n if (!canUseDOM) {\n throw new Error('Cannot access window outside of the DOM');\n }\n // eslint-disable-next-line no-restricted-globals\n return element?.ownerDocument?.defaultView ?? window;\n}\n\nexport function getOwnerDocument(element: Node | null | undefined) {\n if (!canUseDOM) {\n throw new Error('Cannot access document outside of the DOM');\n }\n // eslint-disable-next-line no-restricted-globals\n return element?.ownerDocument ?? document;\n}\n\n/**\n * Lifted from https://github.com/ariakit/ariakit/blob/main/packages/ariakit-core/src/utils/dom.ts#L37\n * MIT License, Copyright (c) AriaKit.\n */\nexport function getActiveElement(\n node: Node | null | undefined,\n activeDescendant = false,\n): HTMLElement | null {\n const { activeElement } = getOwnerDocument(node);\n if (!activeElement?.nodeName) {\n // `activeElement` might be an empty object if we're interacting with elements\n // inside of an iframe.\n return null;\n }\n\n if (isFrame(activeElement) && activeElement.contentDocument) {\n return getActiveElement(activeElement.contentDocument.body, activeDescendant);\n }\n\n if (activeDescendant) {\n const id = activeElement.getAttribute('aria-activedescendant');\n if (id) {\n const element = getOwnerDocument(activeElement).getElementById(id);\n if (element) {\n return element;\n }\n }\n }\n\n return activeElement as HTMLElement | null;\n}\n\nexport function isFrame(element: Element): element is HTMLIFrameElement {\n return element.tagName === 'IFRAME';\n}\n","export const IS_DEVELOPMENT = false;\n","import * as React from 'react';\n\ntype ContextProvider<ContextValueType extends object | null> = React.FC<\n ContextValueType & {\n children: React.ReactNode;\n }\n>;\n\ninterface UseAssertedContext<ContextValueType extends object | null> {\n (consumerName: string): ContextValueType;\n}\n\ninterface UseContext<ContextValueType extends object | null> {\n (consumerName: string): ContextValueType;\n (consumerName: string, options: { optional: true }): ContextValueType | undefined;\n}\n\nfunction createContext<ContextValueType extends object | null>(\n rootComponentName: string,\n): readonly [ContextProvider<ContextValueType>, UseContext<ContextValueType>];\nfunction createContext<ContextValueType extends object | null>(\n rootComponentName: string,\n defaultContext: ContextValueType,\n): readonly [ContextProvider<ContextValueType>, UseAssertedContext<ContextValueType>];\n\n/* @__NO_SIDE_EFFECTS__ */ function createContext<ContextValueType extends object | null>(\n rootComponentName: string,\n defaultContext?: ContextValueType,\n): readonly [ContextProvider<ContextValueType>, UseContext<ContextValueType>] {\n const Context = React.createContext<ContextValueType | undefined>(defaultContext);\n Context.displayName = rootComponentName + 'Context';\n\n const Provider: ContextProvider<ContextValueType> = (props) => {\n const { children, ...context } = props;\n // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = React.useMemo(() => context, Object.values(context)) as ContextValueType;\n return <Context.Provider value={value}>{children}</Context.Provider>;\n };\n\n Provider.displayName = rootComponentName + 'Provider';\n\n function useContext(consumerName: string): ContextValueType;\n function useContext(\n consumerName: string,\n options: { optional: true },\n ): ContextValueType | undefined;\n\n function useContext(\n consumerName: string,\n options: { optional?: boolean } = {},\n ): ContextValueType | undefined {\n const { optional = false } = options;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext;\n if (optional) return undefined;\n // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n\n return [Provider, useContext];\n}\n\n/* -------------------------------------------------------------------------------------------------\n * createContextScope\n * -----------------------------------------------------------------------------------------------*/\n\ntype Scope<C = any> = { [scopeName: string]: React.Context<C>[] } | undefined;\ntype ScopeHook = (scope: Scope) => { [__scopeProp: string]: Scope };\ninterface CreateScope {\n scopeName: string;\n (): ScopeHook;\n}\n\ntype ScopedContextProvider<ContextValueType extends object | null> = React.FC<\n ContextValueType & {\n scope: Scope<ContextValueType>;\n children: React.ReactNode;\n }\n>;\n\ninterface UseScopedContext<ContextValueType extends object | null> {\n (consumerName: string, scope: Scope<ContextValueType | undefined>): ContextValueType;\n (\n consumerName: string,\n scope: Scope<ContextValueType | undefined>,\n options: { optional?: true },\n ): ContextValueType | undefined;\n}\n\ninterface UseAssertedScopedContext<ContextValueType extends object | null> {\n (consumerName: string, scope: Scope<ContextValueType | undefined>): ContextValueType;\n}\n\ninterface CreateScopedContext {\n <ContextValueType extends object | null>(\n rootComponentName: string,\n ): readonly [ScopedContextProvider<ContextValueType>, UseScopedContext<ContextValueType>];\n <ContextValueType extends object | null>(\n rootComponentName: string,\n defaultContext: ContextValueType,\n ): readonly [ScopedContextProvider<ContextValueType>, UseAssertedScopedContext<ContextValueType>];\n}\n\n/* @__NO_SIDE_EFFECTS__ */ function createContextScope(\n scopeName: string,\n createContextScopeDeps: CreateScope[] = [],\n): readonly [CreateScopedContext, CreateScope] {\n let defaultContexts: any[] = [];\n\n /* -----------------------------------------------------------------------------------------------\n * createContext\n * ---------------------------------------------------------------------------------------------*/\n\n function createContext<ContextValueType extends object | null>(\n rootComponentName: string,\n defaultContext?: ContextValueType,\n ) {\n const BaseContext = React.createContext<ContextValueType | undefined>(defaultContext);\n BaseContext.displayName = rootComponentName + 'Context';\n const index = defaultContexts.length;\n defaultContexts = [...defaultContexts, defaultContext];\n\n const Provider: ScopedContextProvider<ContextValueType> = (props) => {\n const { scope, children, ...context } = props;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n // Only re-memoize when prop values change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const value = React.useMemo(() => context, Object.values(context)) as ContextValueType;\n return <Context.Provider value={value}>{children}</Context.Provider>;\n };\n\n Provider.displayName = rootComponentName + 'Provider';\n\n function useContext(\n consumerName: string,\n scope: Scope<ContextValueType | undefined>,\n ): ContextValueType;\n function useContext(\n consumerName: string,\n scope: Scope<ContextValueType | undefined>,\n options: { optional: true },\n ): ContextValueType | undefined;\n\n function useContext(\n consumerName: string,\n scope: Scope<ContextValueType | undefined>,\n options: { optional?: boolean } = {},\n ): ContextValueType | undefined {\n const { optional = false } = options;\n const Context = scope?.[scopeName]?.[index] || BaseContext;\n const context = React.useContext(Context);\n if (context) return context;\n if (defaultContext !== undefined) return defaultContext;\n if (optional) return undefined;\n // if a defaultContext wasn't specified, it's a required context.\n throw new Error(`\\`${consumerName}\\` must be used within \\`${rootComponentName}\\``);\n }\n\n return [Provider, useContext] as const;\n }\n\n /* -----------------------------------------------------------------------------------------------\n * createScope\n * ---------------------------------------------------------------------------------------------*/\n\n const createScope: CreateScope = () => {\n const scopeContexts = defaultContexts.map((defaultContext) => {\n return React.createContext(defaultContext);\n });\n return function useScope(scope: Scope) {\n const contexts = scope?.[scopeName] || scopeContexts;\n return React.useMemo(\n () => ({ [`__scope${scopeName}`]: { ...scope, [scopeName]: contexts } }),\n [scope, contexts],\n );\n };\n };\n\n createScope.scopeName = scopeName;\n return [createContext, composeContextScopes(createScope, ...createContextScopeDeps)] as const;\n}\n\n/* -------------------------------------------------------------------------------------------------\n * composeContextScopes\n * -----------------------------------------------------------------------------------------------*/\n\nfunction composeContextScopes(...scopes: [CreateScope, ...CreateScope[]]): CreateScope {\n const baseScope = scopes[0];\n if (scopes.length === 1) return baseScope;\n\n const createScope: CreateScope = () => {\n const scopeHooks = scopes.map((createScope) => ({\n useScope: createScope(),\n scopeName: createScope.scopeName,\n }));\n\n return function useComposedScopes(overrideScopes) {\n const nextScopes = scopeHooks.reduce((nextScopes, { useScope, scopeName }) => {\n // We are calling a hook inside a callback which React warns against to avoid inconsistent\n // renders, however, scoping doesn't have render side effects so we ignore the rule.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const scopeProps = useScope(overrideScopes);\n const currentScope = scopeProps[`__scope${scopeName}`];\n return { ...nextScopes, ...currentScope };\n }, {});\n\n return React.useMemo(() => ({ [`__scope${baseScope.scopeName}`]: nextScopes }), [nextScopes]);\n };\n };\n\n createScope.scopeName = baseScope.scopeName;\n return createScope;\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nexport { createContext, createContextScope };\nexport type {\n CreateScope,\n CreateScopedContext,\n Scope,\n UseAssertedContext,\n UseAssertedScopedContext,\n UseContext,\n UseScopedContext,\n};\n","import * as React from 'react';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\n\n// We spaces with `.trim().toString()` to prevent bundlers from trying to `import { useId } from 'react';`\nconst useReactId = (React as any)[' useId '.trim().toString()] || (() => undefined);\nlet count = 0;\n\nfunction useId(deterministicId?: string): string {\n const [id, setId] = React.useState<string | undefined>(useReactId());\n // React versions older than 18 will have client-side ids only.\n useLayoutEffect(() => {\n if (!deterministicId) setId((reactId) => reactId ?? String(count++));\n }, [deterministicId]);\n return deterministicId || (id ? `radix-${id}` : '');\n}\n\nexport { useId };\n","import * as React from 'react';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { useStateMachine } from './use-state-machine';\n\ninterface PresenceProps {\n children: React.ReactElement | ((props: { present: boolean }) => React.ReactElement);\n present: boolean;\n}\n\nconst Presence: React.FC<PresenceProps> = (props) => {\n const { present, children } = props;\n const presence = usePresence(present);\n\n const child = (\n typeof children === 'function'\n ? children({ present: presence.isPresent })\n : React.Children.only(children)\n ) as React.ReactElement<{ ref?: React.Ref<HTMLElement> }>;\n\n const ref = useStableComposedRefs(presence.ref, getElementRef(child));\n const forceMount = typeof children === 'function';\n return forceMount || presence.isPresent ? React.cloneElement(child, { ref }) : null;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * usePresence\n * -----------------------------------------------------------------------------------------------*/\n\nfunction usePresence(present: boolean) {\n const [node, setNode] = React.useState<HTMLElement>();\n const stylesRef = React.useRef<CSSStyleDeclaration | null>(null);\n const prevPresentRef = React.useRef(present);\n const prevAnimationNameRef = React.useRef<string>('none');\n const mountAnimationNameRef = React.useRef<string | undefined>(undefined);\n const initialState = present ? 'mounted' : 'unmounted';\n const [state, send] = useStateMachine(initialState, {\n mounted: {\n UNMOUNT: 'unmounted',\n ANIMATION_OUT: 'unmountSuspended',\n },\n unmountSuspended: {\n MOUNT: 'mounted',\n ANIMATION_END: 'unmounted',\n },\n unmounted: {\n MOUNT: 'mounted',\n },\n });\n\n React.useEffect(() => {\n if (state === 'mounted') {\n // Use the animation name captured during the layout phase (or the ref\n // callback on first mount). By the time this passive effect runs,\n // sibling effects like react-remove-scroll and DismissableLayer may have\n // dirtied body styles, so re-reading from the live CSSStyleDeclaration\n // here would force an expensive synchronous style recalculation.\n // See: https://github.com/radix-ui/primitives/issues/1634\n prevAnimationNameRef.current =\n mountAnimationNameRef.current ?? getAnimationName(stylesRef.current);\n mountAnimationNameRef.current = undefined;\n } else {\n prevAnimationNameRef.current = 'none';\n }\n }, [state]);\n\n useLayoutEffect(() => {\n const styles = stylesRef.current;\n const wasPresent = prevPresentRef.current;\n const hasPresentChanged = wasPresent !== present;\n\n if (hasPresentChanged) {\n const prevAnimationName = prevAnimationNameRef.current;\n const currentAnimationName = getAnimationName(styles);\n\n if (present) {\n // Capture the animation name now, while styles are still \"clean\"\n // (before sibling passive effects dirty the body). The later passive\n // effect will read from this ref instead of the live\n // CSSStyleDeclaration, avoiding a forced style recalculation.\n mountAnimationNameRef.current = currentAnimationName;\n send('MOUNT');\n } else if (currentAnimationName === 'none' || styles?.display === 'none') {\n // If there is no exit animation or the element is hidden, animations won't run\n // so we unmount instantly\n send('UNMOUNT');\n } else {\n /**\n * When `present` changes to `false`, we check changes to animation-name to\n * determine whether an animation has started. We chose this approach (reading\n * computed styles) because there is no `animationrun` event and `animationstart`\n * fires after `animation-delay` has expired which would be too late.\n */\n const isAnimating = prevAnimationName !== currentAnimationName;\n\n if (wasPresent && isAnimating) {\n send('ANIMATION_OUT');\n } else {\n send('UNMOUNT');\n }\n }\n\n prevPresentRef.current = present;\n }\n }, [present, send]);\n\n useLayoutEffect(() => {\n if (node) {\n let timeoutId: number;\n const ownerWindow = node.ownerDocument.defaultView ?? window;\n /**\n * Triggering an ANIMATION_OUT during an ANIMATION_IN will fire an `animationcancel`\n * event for ANIMATION_IN after we have entered `unmountSuspended` state. So, we\n * make sure we only trigger ANIMATION_END for the currently active animation.\n */\n const handleAnimationEnd = (event: AnimationEvent) => {\n const currentAnimationName = getAnimationName(stylesRef.current);\n // The event.animationName is unescaped for CSS syntax,\n // so we need to escape it to compare with the animationName computed from the style.\n const isCurrentAnimation = currentAnimationName.includes(CSS.escape(event.animationName));\n if (event.target === node && isCurrentAnimation) {\n // With React 18 concurrency this update is applied a frame after the\n // animation ends, creating a flash of visible content. By setting the\n // animation fill mode to \"forwards\", we force the node to keep the\n // styles of the last keyframe, removing the flash.\n //\n // Previously we flushed the update via ReactDom.flushSync, but with\n // exit animations this resulted in the node being removed from the\n // DOM before the synthetic animationEnd event was dispatched, meaning\n // user-provided event handlers would not be called.\n // https://github.com/radix-ui/primitives/pull/1849\n send('ANIMATION_END');\n if (!prevPresentRef.current) {\n const currentFillMode = node.style.animationFillMode;\n node.style.animationFillMode = 'forwards';\n // Reset the style after the node had time to unmount (for cases\n // where the component chooses not to unmount). Doing this any\n // sooner than `setTimeout` (e.g. with `requestAnimationFrame`)\n // still causes a flash.\n timeoutId = ownerWindow.setTimeout(() => {\n if (node.style.animationFillMode === 'forwards') {\n node.style.animationFillMode = currentFillMode;\n }\n });\n }\n }\n };\n const handleAnimationStart = (event: AnimationEvent) => {\n if (event.target === node) {\n // if animation occurred, store its name as the previous animation.\n prevAnimationNameRef.current = getAnimationName(stylesRef.current);\n }\n };\n node.addEventListener('animationstart', handleAnimationStart);\n node.addEventListener('animationcancel', handleAnimationEnd);\n node.addEventListener('animationend', handleAnimationEnd);\n return () => {\n ownerWindow.clearTimeout(timeoutId);\n node.removeEventListener('animationstart', handleAnimationStart);\n node.removeEventListener('animationcancel', handleAnimationEnd);\n node.removeEventListener('animationend', handleAnimationEnd);\n };\n } else {\n // Transition to the unmounted state if the node is removed prematurely.\n // We avoid doing so during cleanup as the node may change but still exist.\n send('ANIMATION_END');\n }\n }, [node, send]);\n\n return {\n isPresent: ['mounted', 'unmountSuspended'].includes(state),\n ref: React.useCallback((node: HTMLElement) => {\n if (node) {\n const styles = getComputedStyle(node);\n stylesRef.current = styles;\n // Eagerly read the animation name while styles are clean. Ref\n // callbacks fire during the commit phase, before any passive effects\n // can dirty body styles. This cached value is consumed by the passive\n // effect that records prevAnimationNameRef, letting it skip a\n // redundant (and expensive) live-style read.\n mountAnimationNameRef.current = getAnimationName(styles);\n } else {\n stylesRef.current = null;\n }\n setNode(node);\n }, []),\n };\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\ntype PossibleRef<T> = React.Ref<T> | undefined;\n\nfunction setRef<T>(ref: PossibleRef<T>, value: T | null) {\n if (typeof ref === 'function') {\n return ref(value);\n } else if (ref !== null && ref !== undefined) {\n ref.current = value;\n }\n}\n\n/**\n * Unlike `useComposedRefs`, the returned callback never changes identity, even\n * when the composed refs do. This matters in React 19: when a callback ref's\n * identity changes between renders, React detaches the previous ref (calls it\n * with `null`) and attaches the new one on every commit. Because `Presence`\n * calls `setNode` from its own ref, an unstable consumer ref would otherwise\n * cause React to re-run that update on every commit, resulting in a \"Maximum\n * update depth exceeded\" loop.\n *\n * The latest refs are always read at attach/detach time, so the most recent\n * consumer ref still receives the node when it mounts or unmounts.\n *\n * @see https://github.com/radix-ui/primitives/issues/3664\n */\nfunction useStableComposedRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n // Keep the latest refs without changing the callback identity. Assigning during render is\n // safe here because we only ever read `.current` later (at commit time, in the ref callback).\n const refsRef = React.useRef(refs);\n refsRef.current = refs;\n\n return React.useCallback((node: T | null) => {\n const currentRefs = refsRef.current;\n let hasCleanup = false;\n const cleanups = currentRefs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup === 'function') {\n hasCleanup = true;\n }\n return cleanup;\n });\n\n if (hasCleanup) {\n return () => {\n for (let i = 0; i < cleanups.length; i++) {\n const cleanup = cleanups[i];\n if (typeof cleanup === 'function') {\n cleanup();\n } else {\n setRef(currentRefs[i], null);\n }\n }\n };\n }\n }, []);\n}\n\nfunction getAnimationName(styles: CSSStyleDeclaration | null) {\n return styles?.animationName || 'none';\n}\n\n// Before React 19 accessing `element.props.ref` will throw a warning and suggest using `element.ref`\n// After React 19 accessing `element.ref` does the opposite.\n// https://github.com/facebook/react/pull/28348\n//\n// Access the ref using the method that doesn't yield a warning.\nfunction getElementRef(element: React.ReactElement<{ ref?: React.Ref<unknown> }>) {\n // React <=18 in DEV\n let getter = Object.getOwnPropertyDescriptor(element.props, 'ref')?.get;\n let mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return (element as any).ref;\n }\n\n // React 19 in DEV\n getter = Object.getOwnPropertyDescriptor(element, 'ref')?.get;\n mayWarn = getter && 'isReactWarning' in getter && getter.isReactWarning;\n if (mayWarn) {\n return element.props.ref;\n }\n\n // Not DEV\n return element.props.ref || (element as any).ref;\n}\n\nconst Root = Presence;\n\nexport {\n Presence,\n //\n Root,\n};\nexport type { PresenceProps };\n","import * as React from 'react';\n\ntype Machine<S> = { [k: string]: { [k: string]: S } };\ntype MachineState<T> = keyof T;\ntype MachineEvent<T> = keyof UnionToIntersection<T[keyof T]>;\n\n// \uD83E\uDD2F https://fettblog.eu/typescript-union-to-intersection/\ntype UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer R) => any\n ? R\n : never;\n\nexport function useStateMachine<M>(\n initialState: MachineState<M>,\n machine: M & Machine<MachineState<M>>,\n) {\n return React.useReducer((state: MachineState<M>, event: MachineEvent<M>): MachineState<M> => {\n const nextState = (machine[state] as any)[event];\n return nextState ?? state;\n }, initialState);\n}\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createSlot } from '@radix-ui/react-slot';\n\ndeclare module 'react' {\n interface CSSProperties {\n [varName: `--radix-${string}`]: string | number | undefined | null;\n }\n}\n\nconst NODES = [\n 'a',\n 'button',\n 'div',\n 'form',\n 'h2',\n 'h3',\n 'img',\n 'input',\n 'label',\n 'li',\n 'nav',\n 'ol',\n 'p',\n 'select',\n 'span',\n 'svg',\n 'ul',\n] as const;\n\ntype Primitives = { [E in (typeof NODES)[number]]: PrimitiveForwardRefComponent<E> };\ntype PrimitivePropsWithRef<E extends React.ElementType> = React.ComponentPropsWithRef<E> & {\n asChild?: boolean;\n};\n\ninterface PrimitiveForwardRefComponent<\n E extends React.ElementType,\n> extends React.ForwardRefExoticComponent<PrimitivePropsWithRef<E>> {}\n\n/* -------------------------------------------------------------------------------------------------\n * Primitive\n * -----------------------------------------------------------------------------------------------*/\n\n/* @__NO_SIDE_EFFECTS__ */ const Primitive = NODES.reduce((primitive, node) => {\n const Slot = createSlot(`Primitive.${node}`);\n const Node = React.forwardRef((props: PrimitivePropsWithRef<typeof node>, forwardedRef: any) => {\n const { asChild, ...primitiveProps } = props;\n const Comp: any = asChild ? Slot : node;\n\n if (typeof window !== 'undefined') {\n (window as any)[Symbol.for('radix-ui')] = true;\n }\n\n return <Comp {...primitiveProps} ref={forwardedRef} />;\n });\n\n Node.displayName = `Primitive.${node}`;\n\n return { ...primitive, [node]: Node };\n}, {} as Primitives);\n\n/* -------------------------------------------------------------------------------------------------\n * Utils\n * -----------------------------------------------------------------------------------------------*/\n\n/**\n * Flush custom event dispatch\n * https://github.com/radix-ui/primitives/pull/1378\n *\n * React batches *all* event handlers since version 18, this introduces certain considerations when using custom event types.\n *\n * Internally, React prioritises events in the following order:\n * - discrete\n * - continuous\n * - default\n *\n * https://github.com/facebook/react/blob/a8a4742f1c54493df00da648a3f9d26e3db9c8b5/packages/react-dom/src/events/ReactDOMEventListener.js#L294-L350\n *\n * `discrete` is an important distinction as updates within these events are applied immediately.\n * React however, is not able to infer the priority of custom event types due to how they are detected internally.\n * Because of this, it's possible for updates from custom events to be unexpectedly batched when\n * dispatched by another `discrete` event.\n *\n * In order to ensure that updates from custom events are applied predictably, we need to manually flush the batch.\n * This utility should be used when dispatching a custom event from within another `discrete` event, this utility\n * is not necessary when dispatching known event types, or if dispatching a custom type inside a non-discrete event.\n * For example:\n *\n * dispatching a known click \uD83D\uDC4E\n * target.dispatchEvent(new Event(\u2018click\u2019))\n *\n * dispatching a custom type within a non-discrete event \uD83D\uDC4E\n * onScroll={(event) => event.target.dispatchEvent(new CustomEvent(\u2018customType\u2019))}\n *\n * dispatching a custom type within a `discrete` event \uD83D\uDC4D\n * onPointerDown={(event) => dispatchDiscreteCustomEvent(event.target, new CustomEvent(\u2018customType\u2019))}\n *\n * Note: though React classifies `focus`, `focusin` and `focusout` events as `discrete`, it's not recommended to use\n * this utility with them. This is because it's possible for those handlers to be called implicitly during render\n * e.g. when focus is within a component as it is unmounted, or when managing focus on mount.\n */\n\nfunction dispatchDiscreteCustomEvent<E extends CustomEvent>(target: E['target'], event: E) {\n if (target) ReactDOM.flushSync(() => target.dispatchEvent(event));\n}\n\n/* -----------------------------------------------------------------------------------------------*/\n\nconst Root = Primitive;\n\nexport {\n Primitive,\n //\n Root,\n //\n dispatchDiscreteCustomEvent,\n};\nexport type { PrimitivePropsWithRef };\n","import * as React from 'react';\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */\nfunction useCallbackRef<T extends (...args: any[]) => any>(callback: T | undefined): T {\n const callbackRef = React.useRef(callback);\n\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n\n // https://github.com/facebook/react/issues/19240\n return React.useMemo(() => ((...args) => callbackRef.current?.(...args)) as T, []);\n}\n\nexport { useCallbackRef };\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/use-effect-event.tsx\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nimport * as React from \"react\";\nvar useReactEffectEvent = React[\" useEffectEvent \".trim().toString()];\nvar useReactInsertionEffect = React[\" useInsertionEffect \".trim().toString()];\nfunction useEffectEvent(callback) {\n if (typeof useReactEffectEvent === \"function\") {\n return useReactEffectEvent(callback);\n }\n const ref = React.useRef(() => {\n throw new Error(\"Cannot call an event handler while rendering.\");\n });\n if (typeof useReactInsertionEffect === \"function\") {\n useReactInsertionEffect(() => {\n ref.current = callback;\n });\n } else {\n useLayoutEffect(() => {\n ref.current = callback;\n });\n }\n return React.useMemo(() => ((...args) => ref.current?.(...args)), []);\n}\n__name(useEffectEvent, \"useEffectEvent\");\nexport {\n useEffectEvent\n};\n//# sourceMappingURL=index.mjs.map\n","var __defProp = Object.defineProperty;\nvar __name = (target, value) => __defProp(target, \"name\", { value, configurable: true });\n\n// src/use-controllable-state.tsx\nimport * as React from \"react\";\nimport { IS_DEVELOPMENT } from \"@radix-ui/primitive/is-development\";\nimport { useLayoutEffect } from \"@radix-ui/react-use-layout-effect\";\nvar useInsertionEffect = React[\" useInsertionEffect \".trim().toString()] || useLayoutEffect;\nfunction useControllableState({\n prop,\n defaultProp,\n onChange = /* @__PURE__ */ __name(() => {\n }, \"onChange\"),\n caller\n}) {\n const [uncontrolledProp, setUncontrolledProp, onChangeRef] = useUncontrolledState({\n defaultProp,\n onChange\n });\n const isControlled = prop !== void 0;\n const value = isControlled ? prop : uncontrolledProp;\n if (IS_DEVELOPMENT) {\n const isControlledRef = React.useRef(prop !== void 0);\n React.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const setValue = React.useCallback(\n (nextValue) => {\n if (isControlled) {\n const value2 = isFunction(nextValue) ? nextValue(prop) : nextValue;\n if (value2 !== prop) {\n onChangeRef.current?.(value2);\n }\n } else {\n setUncontrolledProp(nextValue);\n }\n },\n [isControlled, prop, setUncontrolledProp, onChangeRef]\n );\n return [value, setValue];\n}\n__name(useControllableState, \"useControllableState\");\nfunction useUncontrolledState({\n defaultProp,\n onChange\n}) {\n const [value, setValue] = React.useState(defaultProp);\n const prevValueRef = React.useRef(value);\n const onChangeRef = React.useRef(onChange);\n useInsertionEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n React.useEffect(() => {\n if (prevValueRef.current !== value) {\n onChangeRef.current?.(value);\n prevValueRef.current = value;\n }\n }, [value, prevValueRef]);\n return [value, setValue, onChangeRef];\n}\n__name(useUncontrolledState, \"useUncontrolledState\");\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n__name(isFunction, \"isFunction\");\n\n// src/use-controllable-state-reducer.tsx\nimport * as React2 from \"react\";\nimport { IS_DEVELOPMENT as IS_DEVELOPMENT2 } from \"@radix-ui/primitive/is-development\";\nimport { useEffectEvent } from \"@radix-ui/react-use-effect-event\";\nvar SYNC_STATE = Symbol(\"RADIX:SYNC_STATE\");\nfunction useControllableStateReducer(reducer, userArgs, initialArg, init) {\n const { prop: controlledState, defaultProp, onChange: onChangeProp, caller } = userArgs;\n const isControlled = controlledState !== void 0;\n const onChange = useEffectEvent(onChangeProp);\n if (IS_DEVELOPMENT2) {\n const isControlledRef = React2.useRef(controlledState !== void 0);\n React2.useEffect(() => {\n const wasControlled = isControlledRef.current;\n if (wasControlled !== isControlled) {\n const from = wasControlled ? \"controlled\" : \"uncontrolled\";\n const to = isControlled ? \"controlled\" : \"uncontrolled\";\n console.warn(\n `${caller} is changing from ${from} to ${to}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`\n );\n }\n isControlledRef.current = isControlled;\n }, [isControlled, caller]);\n }\n const args = [{ ...initialArg, state: defaultProp }];\n if (init) {\n args.push(init);\n }\n const [internalState, dispatch] = React2.useReducer(\n (state2, action) => {\n if (action.type === SYNC_STATE) {\n return { ...state2, state: action.state };\n }\n const next = reducer(state2, action);\n if (isControlled && !Object.is(next.state, state2.state)) {\n onChange(next.state);\n }\n return next;\n },\n ...args\n );\n const uncontrolledState = internalState.state;\n const prevValueRef = React2.useRef(uncontrolledState);\n React2.useEffect(() => {\n if (prevValueRef.current !== uncontrolledState) {\n prevValueRef.current = uncontrolledState;\n if (!isControlled) {\n onChange(uncontrolledState);\n }\n }\n }, [uncontrolledState, prevValueRef, isControlled]);\n const state = React2.useMemo(() => {\n const isControlled2 = controlledState !== void 0;\n if (isControlled2) {\n return { ...internalState, state: controlledState };\n }\n return internalState;\n }, [internalState, controlledState]);\n React2.useEffect(() => {\n if (isControlled && !Object.is(controlledState, internalState.state)) {\n dispatch({ type: SYNC_STATE, state: controlledState });\n }\n }, [controlledState, internalState.state, isControlled]);\n return [state, dispatch];\n}\n__name(useControllableStateReducer, \"useControllableStateReducer\");\nexport {\n useControllableState,\n useControllableStateReducer\n};\n//# sourceMappingURL=index.mjs.map\n","import * as React from 'react';\n\n/**\n * On the server, React emits a warning when calling `useLayoutEffect`.\n * This is because neither `useLayoutEffect` nor `useEffect` run on the server.\n * We use this safe version which suppresses the warning by replacing it with a noop on the server.\n *\n * See: https://reactjs.org/docs/hooks-reference.html#uselayouteffect\n */\nconst useLayoutEffect = globalThis?.document ? React.useLayoutEffect : () => {};\n\nexport { useLayoutEffect };\n"],"names":["createContext","useContext","createScope","nextScopes","React","node","__defProp","Object","defineProperty","__name","target","value","configurable","useReactEffectEvent","__TURBOPACK__imported__module__174897__1","trim","toString","useReactInsertionEffect","useEffectEvent","callback","ref","useRef","Error","current","useMemo","args","useLayoutEffect"],"mappings":"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","ignoreList":[8,9]}
@@ -23,4 +23,4 @@ module.exports=[754400,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModul
23
23
  }
24
24
  `},"styles");a.s(["diagram",0,{parser:m,get db(){return new j},renderer:{draw:n},styles:q}])}];
25
25
 
26
- //# sourceMappingURL=node_modules__pnpm_1_34wt2._.js.map
26
+ //# sourceMappingURL=node_modules__pnpm_1l8k8w1._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[754400,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.BLANK_URL=c.relativeFirstCharacters=c.whitespaceEscapeCharsRegex=c.urlSchemeRegex=c.ctrlCharactersRegex=c.htmlCtrlEntityRegex=c.htmlEntitiesRegex=c.invalidProtocolRegex=void 0,c.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im,c.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g,c.htmlCtrlEntityRegex=/&(newline|tab);/gi,c.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,c.urlSchemeRegex=/^.+(:|&colon;)/gim,c.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g,c.relativeFirstCharacters=[".","/"],c.BLANK_URL="about:blank"},319120,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.sanitizeUrl=function(a){if(!a)return d.BLANK_URL;var b,c=e(a.trim());do b=(c=e(c=c.replace(d.ctrlCharactersRegex,"").replace(d.htmlEntitiesRegex,function(a,b){return String.fromCharCode(b)}).replace(d.htmlCtrlEntityRegex,"").replace(d.ctrlCharactersRegex,"").replace(d.whitespaceEscapeCharsRegex,"").trim())).match(d.ctrlCharactersRegex)||c.match(d.htmlEntitiesRegex)||c.match(d.htmlCtrlEntityRegex)||c.match(d.whitespaceEscapeCharsRegex);while(b&&b.length>0)var f=c;if(!f)return d.BLANK_URL;if(d.relativeFirstCharacters.indexOf(f[0])>-1)return f;var g=f.trimStart(),h=g.match(d.urlSchemeRegex);if(!h)return f;var i=h[0].toLowerCase().trim();if(d.invalidProtocolRegex.test(i))return d.BLANK_URL;var j=g.replace(/\\/g,"/");if("mailto:"===i||i.includes("://"))return j;if("http:"===i||"https:"===i){if(!URL.canParse(j))return d.BLANK_URL;var k=new URL(j);return k.protocol=k.protocol.toLowerCase(),k.hostname=k.hostname.toLowerCase(),k.toString()}return j};var d=a.r(754400);function e(a){try{return decodeURIComponent(a)}catch(b){return a}}},774086,a=>{"use strict";let b=Math.abs,c=Math.atan2,d=Math.cos,e=Math.max,f=Math.min,g=Math.sin,h=Math.sqrt,i=Math.PI,j=i/2;a.s(["abs",0,b,"acos",0,function(a){return a>1?0:a<-1?i:Math.acos(a)},"asin",0,function(a){return a>=1?j:a<=-1?-j:Math.asin(a)},"atan2",0,c,"cos",0,d,"epsilon",0,1e-12,"halfPi",0,j,"max",0,e,"min",0,f,"pi",0,i,"sin",0,g,"sqrt",0,h,"tau",0,2*i])},389424,a=>{a.v(b=>Promise.all(["server/chunks/ssr/1u84_katex_dist_katex_mjs_1sth3te._.js"].map(b=>a.l(b))).then(()=>b(706823)))},793130,a=>{"use strict";var b=a.i(891604),c=a.i(110482);a.i(43066);var d=a.i(455784),e=(0,c.__name)(a=>{let{securityLevel:c}=(0,b.getConfig2)(),e=(0,d.select)("body");if("sandbox"===c){let b=(0,d.select)(`#i${a}`),c=b.node()?.contentDocument??document;e=(0,d.select)(c.body)}return e.select(`#${a}`)},"selectSvgElement");a.s(["selectSvgElement",0,e])},110482,a=>{"use strict";var b=Object.defineProperty;a.s(["__export",0,(a,c)=>{for(var d in c)b(a,d,{get:c[d],enumerable:!0})},"__name",0,(a,c)=>b(a,"name",{value:c,configurable:!0})])}];
2
2
 
3
- //# sourceMappingURL=node_modules__pnpm_0nbxdp_._.js.map
3
+ //# sourceMappingURL=node_modules__pnpm_1w0f1m5._.js.map
@@ -1,3 +1,3 @@
1
- module.exports=[604145,a=>{"use strict";Array.prototype.slice,a.s(["default",0,function(a){return"object"==typeof a&&"length"in a?a:Array.from(a)}])},233111,514312,a=>{"use strict";a.s(["default",0,function(a){return function(){return a}}],233111);let b=Math.PI,c=2*b,d=c-1e-6;function e(a){this._+=a[0];for(let b=1,c=a.length;b<c;++b)this._+=arguments[b]+a[b]}class f{constructor(a){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==a?e:function(a){let b=Math.floor(a);if(!(b>=0))throw Error(`invalid digits: ${a}`);if(b>15)return e;let c=10**b;return function(a){this._+=a[0];for(let b=1,d=a.length;b<d;++b)this._+=Math.round(arguments[b]*c)/c+a[b]}}(a)}moveTo(a,b){this._append`M${this._x0=this._x1=+a},${this._y0=this._y1=+b}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(a,b){this._append`L${this._x1=+a},${this._y1=+b}`}quadraticCurveTo(a,b,c,d){this._append`Q${+a},${+b},${this._x1=+c},${this._y1=+d}`}bezierCurveTo(a,b,c,d,e,f){this._append`C${+a},${+b},${+c},${+d},${this._x1=+e},${this._y1=+f}`}arcTo(a,c,d,e,f){if(a*=1,c*=1,d*=1,e*=1,(f*=1)<0)throw Error(`negative radius: ${f}`);let g=this._x1,h=this._y1,i=d-a,j=e-c,k=g-a,l=h-c,m=k*k+l*l;if(null===this._x1)this._append`M${this._x1=a},${this._y1=c}`;else if(m>1e-6)if(Math.abs(l*i-j*k)>1e-6&&f){let n=d-g,o=e-h,p=i*i+j*j,q=Math.sqrt(p),r=Math.sqrt(m),s=f*Math.tan((b-Math.acos((p+m-(n*n+o*o))/(2*q*r)))/2),t=s/r,u=s/q;Math.abs(t-1)>1e-6&&this._append`L${a+t*k},${c+t*l}`,this._append`A${f},${f},0,0,${+(l*n>k*o)},${this._x1=a+u*i},${this._y1=c+u*j}`}else this._append`L${this._x1=a},${this._y1=c}`}arc(a,e,f,g,h,i){if(a*=1,e*=1,f*=1,i=!!i,f<0)throw Error(`negative radius: ${f}`);let j=f*Math.cos(g),k=f*Math.sin(g),l=a+j,m=e+k,n=1^i,o=i?g-h:h-g;null===this._x1?this._append`M${l},${m}`:(Math.abs(this._x1-l)>1e-6||Math.abs(this._y1-m)>1e-6)&&this._append`L${l},${m}`,f&&(o<0&&(o=o%c+c),o>d?this._append`A${f},${f},0,1,${n},${a-j},${e-k}A${f},${f},0,1,${n},${this._x1=l},${this._y1=m}`:o>1e-6&&this._append`A${f},${f},0,${+(o>=b)},${n},${this._x1=a+f*Math.cos(h)},${this._y1=e+f*Math.sin(h)}`)}rect(a,b,c,d){this._append`M${this._x0=this._x1=+a},${this._y0=this._y1=+b}h${c*=1}v${+d}h${-c}Z`}toString(){return this._}}f.prototype,a.s(["withPath",0,function(a){let b=3;return a.digits=function(c){if(!arguments.length)return b;if(null==c)b=null;else{let a=Math.floor(c);if(!(a>=0))throw RangeError(`invalid digits: ${c}`);b=a}return a},()=>new f(b)}],514312)},298648,a=>{"use strict";var b=a.i(604145),c=a.i(233111),d=a.i(955072),e=a.i(514312);function f(a){return a[0]}function g(a){return a[1]}a.s(["line",0,function(a,h){var i=(0,c.default)(!0),j=null,k=d.default,l=null,m=(0,e.withPath)(n);function n(c){var d,e,f,g=(c=(0,b.default)(c)).length,n=!1;for(null==j&&(l=k(f=m())),d=0;d<=g;++d)!(d<g&&i(e=c[d],d,c))===n&&((n=!n)?l.lineStart():l.lineEnd()),n&&l.point(+a(e,d,c),+h(e,d,c));if(f)return l=null,f+""||null}return a="function"==typeof a?a:void 0===a?f:(0,c.default)(a),h="function"==typeof h?h:void 0===h?g:(0,c.default)(h),n.x=function(b){return arguments.length?(a="function"==typeof b?b:(0,c.default)(+b),n):a},n.y=function(a){return arguments.length?(h="function"==typeof a?a:(0,c.default)(+a),n):h},n.defined=function(a){return arguments.length?(i="function"==typeof a?a:(0,c.default)(!!a),n):i},n.curve=function(a){return arguments.length?(k=a,null!=j&&(l=k(j)),n):k},n.context=function(a){return arguments.length?(null==a?j=l=null:l=k(j=a),n):j},n}],298648)},389424,a=>{a.v(b=>Promise.all(["server/chunks/ssr/1u84_katex_dist_katex_mjs_1sth3te._.js"].map(b=>a.l(b))).then(()=>b(706823)))},987071,a=>{"use strict";var b=a.i(432048),c=a.i(78760);a.s(["channel",0,(a,d)=>b.default.lang.round(c.default.parse(a)[d])],987071)},923300,a=>{"use strict";var b=a.i(223879),c=a.i(500703),d=a.i(692654),e=a.i(110482),f=(0,e.__name)(({flowchart:a})=>{let b=a?.subGraphTitleMargin?.top??0,c=a?.subGraphTitleMargin?.bottom??0;return{subGraphTitleTopMargin:b,subGraphTitleBottomMargin:c,subGraphTitleTotalMargin:b+c}},"getSubGraphTitleMargins"),g=new Map;async function h(a,d,e){let f,h;"rect"===d.shape&&(d.rx&&d.ry?d.shape="roundedRect":d.shape="squareRect");let i=d.shape?b.shapes[d.shape]:void 0;if(!i)throw Error(`No such shape: ${d.shape}. Please check your syntax.`);if(d.link){let b;"sandbox"===e.config.securityLevel?b="_top":d.linkTarget&&(b=d.linkTarget||"_blank"),f=a.insert("svg:a").attr("xlink:href",d.link).attr("target",b??null),h=await i(f,d,e)}else f=h=await i(a,d,e);return f.attr("data-look",(0,c.handleUndefinedAttr)(d.look)),d.tooltip&&h.attr("title",d.tooltip),g.set(d.id,f),d.haveCallback&&f.attr("class",f.attr("class")+" clickable"),f}(0,e.__name)(h,"insertNode");var i=(0,e.__name)((a,b)=>{g.set(b.id,a)},"setNodeElem"),j=(0,e.__name)(()=>{g.clear()},"clear"),k=(0,e.__name)(a=>{let b=g.get(a.id);d.log.trace("Transforming node",a.diff,a,"translate("+(a.x-a.width/2-5)+", "+a.width/2+")");let c=a.diff||0;return a.clusterNode?b.attr("transform","translate("+(a.x+c-a.width/2)+", "+(a.y-a.height/2-8)+")"):b.attr("transform","translate("+a.x+", "+a.y+")"),c},"positionNode");a.s(["clear",0,j,"getSubGraphTitleMargins",0,f,"insertNode",0,h,"positionNode",0,k,"setNodeElem",0,i])},134550,a=>{"use strict";var b=a.i(110482),c=(0,b.__name)((a,c)=>{let{theme:d,themeVariables:e}=c,{useGradient:f,gradientStart:g,gradientStop:h}=e??{},i=a.attr("id"),j=d?.includes("dark")?"#FFFFFF":"#000000",k=(0,b.__name)((b,c,d)=>a.append("defs").append("filter").attr("id",b).attr("height",c).attr("width",c).append("feDropShadow").attr("dx",d).attr("dy",d).attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",j),"dropShadow");if(k(`${i}-drop-shadow`,"130%","4"),k(`${i}-drop-shadow-small`,"150%","2"),!f)return;let l=a.append("linearGradient").attr("id",`${i}-gradient`).attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");l.append("svg:stop").attr("offset","0%").attr("stop-color",g).attr("stop-opacity",1),l.append("svg:stop").attr("offset","100%").attr("stop-color",h).attr("stop-opacity",1)},"insertLookDefs");a.s(["insertLookDefs",0,c])},268525,a=>{"use strict";var b=a.i(134550),c=a.i(484162),d=a.i(329246),e=a.i(923300),f=a.i(223879),g=a.i(500703),h=a.i(891604),i=a.i(692654),j=a.i(110482),k={common:h.common_default,getConfig:h.getConfig,insertCluster:c.insertCluster,insertEdge:d.insertEdge,insertEdgeLabel:d.insertEdgeLabel,insertMarkers:d.markers_default,insertNode:e.insertNode,interpolateToCurve:g.interpolateToCurve,labelHelper:f.labelHelper,log:i.log,positionEdgeLabel:d.positionEdgeLabel},l=["elk.stress","elk.force","elk.mrtree","elk.sporeOverlap","elk.box","elk.rectpacking"],m=Object.create(null),n=(0,j.__name)(a=>{for(let b of a)m[b.name]=b},"registerLayoutLoaders"),o=(0,j.__name)(()=>{let b=(0,j.__name)(async()=>await a.A(588471),"loader");return[{name:"elk",loader:b,algorithm:"elk.layered"},...l.map(a=>({name:a,loader:b,algorithm:a}))]},"elkLayoutLoaders");(0,j.__name)(()=>{n([{name:"dagre",loader:(0,j.__name)(async()=>await a.A(516754),"loader")},{name:"swimlane",loader:(0,j.__name)(async()=>await a.A(117822),"loader")},{name:"cose-bilkent",loader:(0,j.__name)(async()=>await a.A(929870),"loader")},...o()])},"registerDefaultLayoutLoaders")();var p=(0,j.__name)(async(a,c)=>{if(!Object.hasOwn(m,a.layoutAlgorithm))throw Error(`Unknown layout algorithm: ${a.layoutAlgorithm}`);if(a.diagramId)for(let b of a.nodes){let c=b.domId||b.id;b.domId=`${a.diagramId}-${c}`}let d=m[a.layoutAlgorithm],e=await d.loader();return(0,b.insertLookDefs)(c,a.config),e.render(a,c,k,{algorithm:d.algorithm})},"render"),q="dagre",r=(0,j.__name)((a="",{fallback:b=q}={})=>{if(Object.hasOwn(m,a))return a;for(let c of[b,q])if(Object.hasOwn(m,c))return i.log.warn(`Layout algorithm ${a} is not registered. Using ${c} as fallback.`),c;throw Error(`Neither layout algorithm ${a}, ${b}, nor ${q} is registered.`)},"getRegisteredLayoutAlgorithm");a.s(["getRegisteredLayoutAlgorithm",0,r,"registerLayoutLoaders",0,n,"render",0,p])},371994,a=>{"use strict";var b=a.i(891604),c=a.i(692654),d=a.i(110482),e=(0,d.__name)((a,d,e,h)=>{a.attr("class",e);let{width:i,height:j,x:k,y:l}=f(a,d);(0,b.configureSvgSize)(a,j,i,h);let m=g(k,l,i,j,d);a.attr("viewBox",m),c.log.debug(`viewBox configured: ${m} with padding: ${d}`)},"setupViewPortForSVG"),f=(0,d.__name)((a,b)=>{let c=a.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:c.width+2*b,height:c.height+2*b,x:c.x,y:c.y}},"calculateDimensionsWithPadding"),g=(0,d.__name)((a,b,c,d,e)=>`${a-e} ${b-e} ${c} ${d}`,"createViewBox");a.s(["setupViewPortForSVG",0,e])},717743,a=>{"use strict";var b=a.i(110482);a.i(43066);var c=a.i(455784),d=(0,b.__name)((a,b)=>{let d;return"sandbox"===b&&(d=(0,c.select)("#i"+a)),("sandbox"===b?(0,c.select)(d.nodes()[0].contentDocument.body):(0,c.select)("body")).select(`[id="${a}"]`)},"getDiagramElement");a.s(["getDiagramElement",0,d])},929870,a=>{a.v(b=>Promise.all(["server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-Y2CYZVJY_mjs_0rkuxn0._.js","server/chunks/ssr/node_modules__pnpm_1i0y5-9._.js","server/chunks/ssr/0f1w_cytoscape_dist_cytoscape_esm_mjs_0uvjn72._.js","server/chunks/ssr/node_modules__pnpm_1kf76q8._.js","server/chunks/ssr/node_modules__pnpm_18s99g2._.js"].map(b=>a.l(b))).then(()=>b(678999)))},516754,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_0ma8hho._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-3FUC2YCW_mjs_1af260u._.js","server/chunks/ssr/node_modules__pnpm_06wwby6._.js","server/chunks/ssr/node_modules__pnpm_1i0y5-9._.js","server/chunks/ssr/node_modules__pnpm_18s99g2._.js","server/chunks/ssr/0upk_roughjs_bundled_rough_esm_0vflsuc.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-UA2S7LBM_mjs_12azvn5._.js","server/chunks/ssr/0fbn_dagre-d3-es_src_graphlib_index_09d95eh.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-MBY4JIJT_mjs_177netf._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-O7XYJQB3_mjs_1q7gem7._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_dagre-6A5THRUB_mjs_20a97vj._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-7INBJB4K_mjs_0-khcme._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-Z7XXMR3K_mjs_1v-ak7s._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-ZIGJFQKS_mjs_1zrfev2._.js"].map(b=>a.l(b))).then(()=>b(160487)))},588471,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_0--x5-5._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-UA2S7LBM_mjs_12azvn5._.js","server/chunks/ssr/node_modules__pnpm_06wwby6._.js","server/chunks/ssr/node_modules__pnpm_1i0y5-9._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-ZIGJFQKS_mjs_1zrfev2._.js","server/chunks/ssr/0upk_roughjs_bundled_rough_esm_0vflsuc.js","server/chunks/ssr/node_modules__pnpm_1hy0h0g._.js","server/chunks/ssr/0fbn_dagre-d3-es_src_graphlib_index_09d95eh.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-O7XYJQB3_mjs_1q7gem7._.js","server/chunks/ssr/node_modules__pnpm_18s99g2._.js","server/chunks/ssr/node_modules__pnpm_0f4t794._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-7INBJB4K_mjs_0-khcme._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-Z7XXMR3K_mjs_1v-ak7s._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-MBY4JIJT_mjs_177netf._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-3FUC2YCW_mjs_1af260u._.js"].map(b=>a.l(b))).then(()=>b(92823)))},117822,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_0--x5-5._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-UA2S7LBM_mjs_12azvn5._.js","server/chunks/ssr/node_modules__pnpm_06wwby6._.js","server/chunks/ssr/node_modules__pnpm_1i0y5-9._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-ZIGJFQKS_mjs_1zrfev2._.js","server/chunks/ssr/0upk_roughjs_bundled_rough_esm_0vflsuc.js","server/chunks/ssr/node_modules__pnpm_1hy0h0g._.js","server/chunks/ssr/0fbn_dagre-d3-es_src_graphlib_index_09d95eh.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-O7XYJQB3_mjs_1q7gem7._.js","server/chunks/ssr/node_modules__pnpm_18s99g2._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_swimlanes-2SLR337P_mjs_1rwc1wf._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-7INBJB4K_mjs_0-khcme._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-Z7XXMR3K_mjs_1v-ak7s._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-MBY4JIJT_mjs_177netf._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-3FUC2YCW_mjs_1af260u._.js"].map(b=>a.l(b))).then(()=>b(508840)))}];
1
+ module.exports=[604145,a=>{"use strict";Array.prototype.slice,a.s(["default",0,function(a){return"object"==typeof a&&"length"in a?a:Array.from(a)}])},233111,514312,a=>{"use strict";a.s(["default",0,function(a){return function(){return a}}],233111);let b=Math.PI,c=2*b,d=c-1e-6;function e(a){this._+=a[0];for(let b=1,c=a.length;b<c;++b)this._+=arguments[b]+a[b]}class f{constructor(a){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==a?e:function(a){let b=Math.floor(a);if(!(b>=0))throw Error(`invalid digits: ${a}`);if(b>15)return e;let c=10**b;return function(a){this._+=a[0];for(let b=1,d=a.length;b<d;++b)this._+=Math.round(arguments[b]*c)/c+a[b]}}(a)}moveTo(a,b){this._append`M${this._x0=this._x1=+a},${this._y0=this._y1=+b}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(a,b){this._append`L${this._x1=+a},${this._y1=+b}`}quadraticCurveTo(a,b,c,d){this._append`Q${+a},${+b},${this._x1=+c},${this._y1=+d}`}bezierCurveTo(a,b,c,d,e,f){this._append`C${+a},${+b},${+c},${+d},${this._x1=+e},${this._y1=+f}`}arcTo(a,c,d,e,f){if(a*=1,c*=1,d*=1,e*=1,(f*=1)<0)throw Error(`negative radius: ${f}`);let g=this._x1,h=this._y1,i=d-a,j=e-c,k=g-a,l=h-c,m=k*k+l*l;if(null===this._x1)this._append`M${this._x1=a},${this._y1=c}`;else if(m>1e-6)if(Math.abs(l*i-j*k)>1e-6&&f){let n=d-g,o=e-h,p=i*i+j*j,q=Math.sqrt(p),r=Math.sqrt(m),s=f*Math.tan((b-Math.acos((p+m-(n*n+o*o))/(2*q*r)))/2),t=s/r,u=s/q;Math.abs(t-1)>1e-6&&this._append`L${a+t*k},${c+t*l}`,this._append`A${f},${f},0,0,${+(l*n>k*o)},${this._x1=a+u*i},${this._y1=c+u*j}`}else this._append`L${this._x1=a},${this._y1=c}`}arc(a,e,f,g,h,i){if(a*=1,e*=1,f*=1,i=!!i,f<0)throw Error(`negative radius: ${f}`);let j=f*Math.cos(g),k=f*Math.sin(g),l=a+j,m=e+k,n=1^i,o=i?g-h:h-g;null===this._x1?this._append`M${l},${m}`:(Math.abs(this._x1-l)>1e-6||Math.abs(this._y1-m)>1e-6)&&this._append`L${l},${m}`,f&&(o<0&&(o=o%c+c),o>d?this._append`A${f},${f},0,1,${n},${a-j},${e-k}A${f},${f},0,1,${n},${this._x1=l},${this._y1=m}`:o>1e-6&&this._append`A${f},${f},0,${+(o>=b)},${n},${this._x1=a+f*Math.cos(h)},${this._y1=e+f*Math.sin(h)}`)}rect(a,b,c,d){this._append`M${this._x0=this._x1=+a},${this._y0=this._y1=+b}h${c*=1}v${+d}h${-c}Z`}toString(){return this._}}f.prototype,a.s(["withPath",0,function(a){let b=3;return a.digits=function(c){if(!arguments.length)return b;if(null==c)b=null;else{let a=Math.floor(c);if(!(a>=0))throw RangeError(`invalid digits: ${c}`);b=a}return a},()=>new f(b)}],514312)},298648,a=>{"use strict";var b=a.i(604145),c=a.i(233111),d=a.i(955072),e=a.i(514312);function f(a){return a[0]}function g(a){return a[1]}a.s(["line",0,function(a,h){var i=(0,c.default)(!0),j=null,k=d.default,l=null,m=(0,e.withPath)(n);function n(c){var d,e,f,g=(c=(0,b.default)(c)).length,n=!1;for(null==j&&(l=k(f=m())),d=0;d<=g;++d)!(d<g&&i(e=c[d],d,c))===n&&((n=!n)?l.lineStart():l.lineEnd()),n&&l.point(+a(e,d,c),+h(e,d,c));if(f)return l=null,f+""||null}return a="function"==typeof a?a:void 0===a?f:(0,c.default)(a),h="function"==typeof h?h:void 0===h?g:(0,c.default)(h),n.x=function(b){return arguments.length?(a="function"==typeof b?b:(0,c.default)(+b),n):a},n.y=function(a){return arguments.length?(h="function"==typeof a?a:(0,c.default)(+a),n):h},n.defined=function(a){return arguments.length?(i="function"==typeof a?a:(0,c.default)(!!a),n):i},n.curve=function(a){return arguments.length?(k=a,null!=j&&(l=k(j)),n):k},n.context=function(a){return arguments.length?(null==a?j=l=null:l=k(j=a),n):j},n}],298648)},389424,a=>{a.v(b=>Promise.all(["server/chunks/ssr/1u84_katex_dist_katex_mjs_1sth3te._.js"].map(b=>a.l(b))).then(()=>b(706823)))},987071,a=>{"use strict";var b=a.i(432048),c=a.i(78760);a.s(["channel",0,(a,d)=>b.default.lang.round(c.default.parse(a)[d])],987071)},923300,a=>{"use strict";var b=a.i(223879),c=a.i(500703),d=a.i(692654),e=a.i(110482),f=(0,e.__name)(({flowchart:a})=>{let b=a?.subGraphTitleMargin?.top??0,c=a?.subGraphTitleMargin?.bottom??0;return{subGraphTitleTopMargin:b,subGraphTitleBottomMargin:c,subGraphTitleTotalMargin:b+c}},"getSubGraphTitleMargins"),g=new Map;async function h(a,d,e){let f,h;"rect"===d.shape&&(d.rx&&d.ry?d.shape="roundedRect":d.shape="squareRect");let i=d.shape?b.shapes[d.shape]:void 0;if(!i)throw Error(`No such shape: ${d.shape}. Please check your syntax.`);if(d.link){let b;"sandbox"===e.config.securityLevel?b="_top":d.linkTarget&&(b=d.linkTarget||"_blank"),f=a.insert("svg:a").attr("xlink:href",d.link).attr("target",b??null),h=await i(f,d,e)}else f=h=await i(a,d,e);return f.attr("data-look",(0,c.handleUndefinedAttr)(d.look)),d.tooltip&&h.attr("title",d.tooltip),g.set(d.id,f),d.haveCallback&&f.attr("class",f.attr("class")+" clickable"),f}(0,e.__name)(h,"insertNode");var i=(0,e.__name)((a,b)=>{g.set(b.id,a)},"setNodeElem"),j=(0,e.__name)(()=>{g.clear()},"clear"),k=(0,e.__name)(a=>{let b=g.get(a.id);d.log.trace("Transforming node",a.diff,a,"translate("+(a.x-a.width/2-5)+", "+a.width/2+")");let c=a.diff||0;return a.clusterNode?b.attr("transform","translate("+(a.x+c-a.width/2)+", "+(a.y-a.height/2-8)+")"):b.attr("transform","translate("+a.x+", "+a.y+")"),c},"positionNode");a.s(["clear",0,j,"getSubGraphTitleMargins",0,f,"insertNode",0,h,"positionNode",0,k,"setNodeElem",0,i])},134550,a=>{"use strict";var b=a.i(110482),c=(0,b.__name)((a,c)=>{let{theme:d,themeVariables:e}=c,{useGradient:f,gradientStart:g,gradientStop:h}=e??{},i=a.attr("id"),j=d?.includes("dark")?"#FFFFFF":"#000000",k=(0,b.__name)((b,c,d)=>a.append("defs").append("filter").attr("id",b).attr("height",c).attr("width",c).append("feDropShadow").attr("dx",d).attr("dy",d).attr("stdDeviation",0).attr("flood-opacity","0.06").attr("flood-color",j),"dropShadow");if(k(`${i}-drop-shadow`,"130%","4"),k(`${i}-drop-shadow-small`,"150%","2"),!f)return;let l=a.append("linearGradient").attr("id",`${i}-gradient`).attr("gradientUnits","objectBoundingBox").attr("x1","0%").attr("y1","0%").attr("x2","100%").attr("y2","0%");l.append("svg:stop").attr("offset","0%").attr("stop-color",g).attr("stop-opacity",1),l.append("svg:stop").attr("offset","100%").attr("stop-color",h).attr("stop-opacity",1)},"insertLookDefs");a.s(["insertLookDefs",0,c])},268525,a=>{"use strict";var b=a.i(134550),c=a.i(484162),d=a.i(329246),e=a.i(923300),f=a.i(223879),g=a.i(500703),h=a.i(891604),i=a.i(692654),j=a.i(110482),k={common:h.common_default,getConfig:h.getConfig,insertCluster:c.insertCluster,insertEdge:d.insertEdge,insertEdgeLabel:d.insertEdgeLabel,insertMarkers:d.markers_default,insertNode:e.insertNode,interpolateToCurve:g.interpolateToCurve,labelHelper:f.labelHelper,log:i.log,positionEdgeLabel:d.positionEdgeLabel},l=["elk.stress","elk.force","elk.mrtree","elk.sporeOverlap","elk.box","elk.rectpacking"],m=Object.create(null),n=(0,j.__name)(a=>{for(let b of a)m[b.name]=b},"registerLayoutLoaders"),o=(0,j.__name)(()=>{let b=(0,j.__name)(async()=>await a.A(588471),"loader");return[{name:"elk",loader:b,algorithm:"elk.layered"},...l.map(a=>({name:a,loader:b,algorithm:a}))]},"elkLayoutLoaders");(0,j.__name)(()=>{n([{name:"dagre",loader:(0,j.__name)(async()=>await a.A(516754),"loader")},{name:"swimlane",loader:(0,j.__name)(async()=>await a.A(117822),"loader")},{name:"cose-bilkent",loader:(0,j.__name)(async()=>await a.A(929870),"loader")},...o()])},"registerDefaultLayoutLoaders")();var p=(0,j.__name)(async(a,c)=>{if(!Object.hasOwn(m,a.layoutAlgorithm))throw Error(`Unknown layout algorithm: ${a.layoutAlgorithm}`);if(a.diagramId)for(let b of a.nodes){let c=b.domId||b.id;b.domId=`${a.diagramId}-${c}`}let d=m[a.layoutAlgorithm],e=await d.loader();return(0,b.insertLookDefs)(c,a.config),e.render(a,c,k,{algorithm:d.algorithm})},"render"),q="dagre",r=(0,j.__name)((a="",{fallback:b=q}={})=>{if(Object.hasOwn(m,a))return a;for(let c of[b,q])if(Object.hasOwn(m,c))return i.log.warn(`Layout algorithm ${a} is not registered. Using ${c} as fallback.`),c;throw Error(`Neither layout algorithm ${a}, ${b}, nor ${q} is registered.`)},"getRegisteredLayoutAlgorithm");a.s(["getRegisteredLayoutAlgorithm",0,r,"registerLayoutLoaders",0,n,"render",0,p])},371994,a=>{"use strict";var b=a.i(891604),c=a.i(692654),d=a.i(110482),e=(0,d.__name)((a,d,e,h)=>{a.attr("class",e);let{width:i,height:j,x:k,y:l}=f(a,d);(0,b.configureSvgSize)(a,j,i,h);let m=g(k,l,i,j,d);a.attr("viewBox",m),c.log.debug(`viewBox configured: ${m} with padding: ${d}`)},"setupViewPortForSVG"),f=(0,d.__name)((a,b)=>{let c=a.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:c.width+2*b,height:c.height+2*b,x:c.x,y:c.y}},"calculateDimensionsWithPadding"),g=(0,d.__name)((a,b,c,d,e)=>`${a-e} ${b-e} ${c} ${d}`,"createViewBox");a.s(["setupViewPortForSVG",0,e])},717743,a=>{"use strict";var b=a.i(110482);a.i(43066);var c=a.i(455784),d=(0,b.__name)((a,b)=>{let d;return"sandbox"===b&&(d=(0,c.select)("#i"+a)),("sandbox"===b?(0,c.select)(d.nodes()[0].contentDocument.body):(0,c.select)("body")).select(`[id="${a}"]`)},"getDiagramElement");a.s(["getDiagramElement",0,d])},929870,a=>{a.v(b=>Promise.all(["server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-Y2CYZVJY_mjs_0rkuxn0._.js","server/chunks/ssr/node_modules__pnpm_1i0y5-9._.js","server/chunks/ssr/0f1w_cytoscape_dist_cytoscape_esm_mjs_0uvjn72._.js","server/chunks/ssr/node_modules__pnpm_1kf76q8._.js","server/chunks/ssr/node_modules__pnpm_18s99g2._.js"].map(b=>a.l(b))).then(()=>b(678999)))},516754,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_0ah02mu._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-3FUC2YCW_mjs_1af260u._.js","server/chunks/ssr/node_modules__pnpm_06wwby6._.js","server/chunks/ssr/node_modules__pnpm_1i0y5-9._.js","server/chunks/ssr/node_modules__pnpm_18s99g2._.js","server/chunks/ssr/0upk_roughjs_bundled_rough_esm_0vflsuc.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-UA2S7LBM_mjs_12azvn5._.js","server/chunks/ssr/0fbn_dagre-d3-es_src_graphlib_index_09d95eh.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-MBY4JIJT_mjs_177netf._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-O7XYJQB3_mjs_1q7gem7._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_dagre-6A5THRUB_mjs_20a97vj._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-7INBJB4K_mjs_0-khcme._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-Z7XXMR3K_mjs_1v-ak7s._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-ZIGJFQKS_mjs_1zrfev2._.js"].map(b=>a.l(b))).then(()=>b(160487)))},588471,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_1yq90z7._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-UA2S7LBM_mjs_12azvn5._.js","server/chunks/ssr/node_modules__pnpm_06wwby6._.js","server/chunks/ssr/node_modules__pnpm_1i0y5-9._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-ZIGJFQKS_mjs_1zrfev2._.js","server/chunks/ssr/0upk_roughjs_bundled_rough_esm_0vflsuc.js","server/chunks/ssr/node_modules__pnpm_1hy0h0g._.js","server/chunks/ssr/0fbn_dagre-d3-es_src_graphlib_index_09d95eh.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-O7XYJQB3_mjs_1q7gem7._.js","server/chunks/ssr/node_modules__pnpm_18s99g2._.js","server/chunks/ssr/node_modules__pnpm_0f4t794._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-7INBJB4K_mjs_0-khcme._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-Z7XXMR3K_mjs_1v-ak7s._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-MBY4JIJT_mjs_177netf._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-3FUC2YCW_mjs_1af260u._.js"].map(b=>a.l(b))).then(()=>b(92823)))},117822,a=>{a.v(b=>Promise.all(["server/chunks/ssr/node_modules__pnpm_1yq90z7._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-UA2S7LBM_mjs_12azvn5._.js","server/chunks/ssr/node_modules__pnpm_06wwby6._.js","server/chunks/ssr/node_modules__pnpm_1i0y5-9._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-ZIGJFQKS_mjs_1zrfev2._.js","server/chunks/ssr/0upk_roughjs_bundled_rough_esm_0vflsuc.js","server/chunks/ssr/node_modules__pnpm_1hy0h0g._.js","server/chunks/ssr/0fbn_dagre-d3-es_src_graphlib_index_09d95eh.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-O7XYJQB3_mjs_1q7gem7._.js","server/chunks/ssr/node_modules__pnpm_18s99g2._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_swimlanes-2SLR337P_mjs_1rwc1wf._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-7INBJB4K_mjs_0-khcme._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-Z7XXMR3K_mjs_1v-ak7s._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-MBY4JIJT_mjs_177netf._.js","server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_chunk-3FUC2YCW_mjs_1af260u._.js"].map(b=>a.l(b))).then(()=>b(508840)))}];
2
2
 
3
- //# sourceMappingURL=node_modules__pnpm_1l-posw._.js.map
3
+ //# sourceMappingURL=node_modules__pnpm_1woddr6._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[754400,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.BLANK_URL=c.relativeFirstCharacters=c.whitespaceEscapeCharsRegex=c.urlSchemeRegex=c.ctrlCharactersRegex=c.htmlCtrlEntityRegex=c.htmlEntitiesRegex=c.invalidProtocolRegex=void 0,c.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im,c.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g,c.htmlCtrlEntityRegex=/&(newline|tab);/gi,c.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,c.urlSchemeRegex=/^.+(:|&colon;)/gim,c.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g,c.relativeFirstCharacters=[".","/"],c.BLANK_URL="about:blank"},319120,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.sanitizeUrl=function(a){if(!a)return d.BLANK_URL;var b,c=e(a.trim());do b=(c=e(c=c.replace(d.ctrlCharactersRegex,"").replace(d.htmlEntitiesRegex,function(a,b){return String.fromCharCode(b)}).replace(d.htmlCtrlEntityRegex,"").replace(d.ctrlCharactersRegex,"").replace(d.whitespaceEscapeCharsRegex,"").trim())).match(d.ctrlCharactersRegex)||c.match(d.htmlEntitiesRegex)||c.match(d.htmlCtrlEntityRegex)||c.match(d.whitespaceEscapeCharsRegex);while(b&&b.length>0)var f=c;if(!f)return d.BLANK_URL;if(d.relativeFirstCharacters.indexOf(f[0])>-1)return f;var g=f.trimStart(),h=g.match(d.urlSchemeRegex);if(!h)return f;var i=h[0].toLowerCase().trim();if(d.invalidProtocolRegex.test(i))return d.BLANK_URL;var j=g.replace(/\\/g,"/");if("mailto:"===i||i.includes("://"))return j;if("http:"===i||"https:"===i){if(!URL.canParse(j))return d.BLANK_URL;var k=new URL(j);return k.protocol=k.protocol.toLowerCase(),k.hostname=k.hostname.toLowerCase(),k.toString()}return j};var d=a.r(754400);function e(a){try{return decodeURIComponent(a)}catch(b){return a}}},774086,a=>{"use strict";let b=Math.abs,c=Math.atan2,d=Math.cos,e=Math.max,f=Math.min,g=Math.sin,h=Math.sqrt,i=Math.PI,j=i/2;a.s(["abs",0,b,"acos",0,function(a){return a>1?0:a<-1?i:Math.acos(a)},"asin",0,function(a){return a>=1?j:a<=-1?-j:Math.asin(a)},"atan2",0,c,"cos",0,d,"epsilon",0,1e-12,"halfPi",0,j,"max",0,e,"min",0,f,"pi",0,i,"sin",0,g,"sqrt",0,h,"tau",0,2*i])},389424,a=>{a.v(b=>Promise.all(["server/chunks/ssr/1u84_katex_dist_katex_mjs_1sth3te._.js"].map(b=>a.l(b))).then(()=>b(706823)))},110482,a=>{"use strict";var b=Object.defineProperty;a.s(["__export",0,(a,c)=>{for(var d in c)b(a,d,{get:c[d],enumerable:!0})},"__name",0,(a,c)=>b(a,"name",{value:c,configurable:!0})])}];
2
2
 
3
- //# sourceMappingURL=node_modules__pnpm_0fk-8nl._.js.map
3
+ //# sourceMappingURL=node_modules__pnpm_1x0t5_z._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[754400,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.BLANK_URL=c.relativeFirstCharacters=c.whitespaceEscapeCharsRegex=c.urlSchemeRegex=c.ctrlCharactersRegex=c.htmlCtrlEntityRegex=c.htmlEntitiesRegex=c.invalidProtocolRegex=void 0,c.invalidProtocolRegex=/^([^\w]*)(javascript|data|vbscript)/im,c.htmlEntitiesRegex=/&#(\w+)(^\w|;)?/g,c.htmlCtrlEntityRegex=/&(newline|tab);/gi,c.ctrlCharactersRegex=/[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim,c.urlSchemeRegex=/^.+(:|&colon;)/gim,c.whitespaceEscapeCharsRegex=/(\\|%5[cC])((%(6[eE]|72|74))|[nrt])/g,c.relativeFirstCharacters=[".","/"],c.BLANK_URL="about:blank"},319120,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),c.sanitizeUrl=function(a){if(!a)return d.BLANK_URL;var b,c=e(a.trim());do b=(c=e(c=c.replace(d.ctrlCharactersRegex,"").replace(d.htmlEntitiesRegex,function(a,b){return String.fromCharCode(b)}).replace(d.htmlCtrlEntityRegex,"").replace(d.ctrlCharactersRegex,"").replace(d.whitespaceEscapeCharsRegex,"").trim())).match(d.ctrlCharactersRegex)||c.match(d.htmlEntitiesRegex)||c.match(d.htmlCtrlEntityRegex)||c.match(d.whitespaceEscapeCharsRegex);while(b&&b.length>0)var f=c;if(!f)return d.BLANK_URL;if(d.relativeFirstCharacters.indexOf(f[0])>-1)return f;var g=f.trimStart(),h=g.match(d.urlSchemeRegex);if(!h)return f;var i=h[0].toLowerCase().trim();if(d.invalidProtocolRegex.test(i))return d.BLANK_URL;var j=g.replace(/\\/g,"/");if("mailto:"===i||i.includes("://"))return j;if("http:"===i||"https:"===i){if(!URL.canParse(j))return d.BLANK_URL;var k=new URL(j);return k.protocol=k.protocol.toLowerCase(),k.hostname=k.hostname.toLowerCase(),k.toString()}return j};var d=a.r(754400);function e(a){try{return decodeURIComponent(a)}catch(b){return a}}},774086,a=>{"use strict";let b=Math.abs,c=Math.atan2,d=Math.cos,e=Math.max,f=Math.min,g=Math.sin,h=Math.sqrt,i=Math.PI,j=i/2;a.s(["abs",0,b,"acos",0,function(a){return a>1?0:a<-1?i:Math.acos(a)},"asin",0,function(a){return a>=1?j:a<=-1?-j:Math.asin(a)},"atan2",0,c,"cos",0,d,"epsilon",0,1e-12,"halfPi",0,j,"max",0,e,"min",0,f,"pi",0,i,"sin",0,g,"sqrt",0,h,"tau",0,2*i])},389424,a=>{a.v(b=>Promise.all(["server/chunks/ssr/1u84_katex_dist_katex_mjs_1sth3te._.js"].map(b=>a.l(b))).then(()=>b(706823)))},958967,a=>{"use strict";var b=a.i(110482),c=class{constructor(a){this.init=a,this.records=this.init()}static{(0,b.__name)(this,"ImperativeState")}reset(){this.records=this.init()}};a.s(["ImperativeState",0,c])},370846,a=>{"use strict";var b=a.i(891604),c=a.i(110482),d=a.i(319120);a.i(43066);var e=a.i(455784),f=(0,c.__name)((a,b)=>{let c=a.append("rect");if(c.attr("x",b.x),c.attr("y",b.y),c.attr("fill",b.fill),c.attr("stroke",b.stroke),c.attr("width",b.width),c.attr("height",b.height),b.name&&c.attr("name",b.name),b.rx&&c.attr("rx",b.rx),b.ry&&c.attr("ry",b.ry),void 0!==b.attrs)for(let a in b.attrs)c.attr(a,b.attrs[a]);return b.class&&c.attr("class",b.class),c},"drawRect"),g=(0,c.__name)((a,b)=>{f(a,{x:b.startx,y:b.starty,width:b.stopx-b.startx,height:b.stopy-b.starty,fill:b.fill,stroke:b.stroke,class:"rect"}).lower()},"drawBackgroundRect"),h=(0,c.__name)((a,c)=>{let d=c.text.replace(b.lineBreakRegex," "),e=a.append("text");e.attr("x",c.x),e.attr("y",c.y),e.attr("class","legend"),e.style("text-anchor",c.anchor),c.class&&e.attr("class",c.class);let f=e.append("tspan");return f.attr("x",c.x+2*c.textMargin),f.text(d),e},"drawText"),i=(0,c.__name)((a,b,c,e)=>{let f=a.append("image");f.attr("x",b),f.attr("y",c);let g=(0,d.sanitizeUrl)(e);f.attr("xlink:href",g)},"drawImage"),j=(0,c.__name)((a,b,c,e)=>{let f=a.append("use");f.attr("x",b),f.attr("y",c);let g=(0,d.sanitizeUrl)(e);f.attr("xlink:href",`#${g}`)},"drawEmbeddedImage"),k=(0,c.__name)(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),l=(0,c.__name)(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj"),m=(0,c.__name)(()=>{let a=(0,e.select)(".mermaidTooltip");return a.empty()&&(a=(0,e.select)("body").append("div").attr("class","mermaidTooltip").style("opacity",0).style("position","absolute").style("text-align","center").style("max-width","200px").style("padding","2px").style("font-size","12px").style("background","#ffffde").style("border","1px solid #333").style("border-radius","2px").style("pointer-events","none").style("z-index","100")),a},"createTooltip");a.s(["createTooltip",0,m,"drawBackgroundRect",0,g,"drawEmbeddedImage",0,j,"drawImage",0,i,"drawRect",0,f,"drawText",0,h,"getNoteRect",0,k,"getTextObj",0,l])},110482,a=>{"use strict";var b=Object.defineProperty;a.s(["__export",0,(a,c)=>{for(var d in c)b(a,d,{get:c[d],enumerable:!0})},"__name",0,(a,c)=>b(a,"name",{value:c,configurable:!0})])}];
2
2
 
3
- //# sourceMappingURL=node_modules__pnpm_1o30a9w._.js.map
3
+ //# sourceMappingURL=node_modules__pnpm_1xzf8g_._.js.map
@@ -1,3 +1,3 @@
1
1
  module.exports=[389424,a=>{a.v(b=>Promise.all(["server/chunks/ssr/1u84_katex_dist_katex_mjs_1sth3te._.js"].map(b=>a.l(b))).then(()=>b(706823)))},348758,a=>{a.v(b=>Promise.all(["server/chunks/ssr/0_nd_mermaid_dist_chunks_mermaid_core_11hz5p0._.js"].map(b=>a.l(b))).then(()=>b(194570)))}];
2
2
 
3
- //# sourceMappingURL=node_modules__pnpm_0--x5-5._.js.map
3
+ //# sourceMappingURL=node_modules__pnpm_1yq90z7._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ module.exports=[856095,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(913975),e=a.i(200382),f=a.i(72551),g=a.i(54165),h=a.i(685698),i=a.i(712125),j=a.i(822404),k=a.i(544428),l=a.i(256857);let m={name:"link-2-off",size:24,node:[["path",{d:"M9 17H7A5 5 0 0 1 7 7",key:"10o201"}],["path",{d:"M15 7h2a5 5 0 0 1 4 8",key:"1d3206"}],["line",{x1:"8",x2:"12",y1:"12",y2:"12",key:"rvw6j4"}],["line",{x1:"2",x2:"22",y1:"2",y2:"22",key:"a6p6uj"}]]};m.node;let n=(0,l.default)(m);var o=a.i(544394),p=a.i(149350),q=a.i(749223),r=a.i(618940),s=a.i(368114),t=a.i(598984);let u="font-mono text-[10px] uppercase tracking-widest text-muted",v={todo:"text-muted border-border2","in-progress":"text-amber border-amber/30 bg-amber/5",blocked:"text-danger border-danger/30 bg-danger/5",done:"text-teal border-teal/30 bg-teal/5",cancelled:"text-muted border-border"};function w({attach:a}){let{board:d,rootParam:e}=(0,o.useApp)(),[f,g]=(0,c.useState)([]),[h,i]=(0,c.useState)(0);(0,c.useEffect)(()=>{let a=!1;return fetch(`/api/roadmap${e}`).then(a=>a.ok?a.json():{items:[]}).then(b=>{a||g(b.items??[])}).catch(a=>console.warn("[vibedoc] could not load roadmap for the chat rail:",a)),()=>{a=!0}},[e,h]),(0,c.useEffect)(()=>{let a=a=>{let b=a.detail?.type;("roadmap_updated"===b||"task_created"===b)&&i(a=>a+1)};return window.addEventListener("vibedoc:sse",a),()=>window.removeEventListener("vibedoc:sse",a)},[]);let j=(0,c.useMemo)(()=>Object.fromEntries((d?Object.values(d).flat():[]).map(a=>[a.id,a])),[d]);return(0,b.jsx)("div",{className:"flex h-full min-h-0 flex-col overflow-y-auto",children:(0,b.jsxs)("div",{className:"flex flex-col gap-5 p-5 animate-fade-in",children:[!a&&(0,b.jsx)(x,{}),a?.kind==="epic"&&(0,b.jsx)(y,{item:f.find(b=>b.id===a.id),id:a.id,tasksById:j}),a?.kind==="task"&&(0,b.jsx)(A,{task:j[a.id],id:a.id,items:f})]},a?`${a.kind}:${a.id}`:"none")})}function x(){return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("p",{className:u,children:"Context"}),(0,b.jsxs)("div",{className:"flex flex-col items-start gap-3 rounded-lg border border-dashed border-border2 p-4",children:[(0,b.jsx)(n,{className:"size-4 text-muted"}),(0,b.jsx)("p",{className:"text-sm text-txt",children:"Not linked to an epic or task"}),(0,b.jsx)("p",{className:"text-xs leading-relaxed text-muted",children:"Open a chat from an epic on the roadmap or a task on the board, and the agent starts with that item as context. Its status then shows on the item."})]}),(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsx)("p",{className:u,children:"The agent can"}),(0,b.jsxs)("ul",{className:"flex flex-col gap-1.5 text-xs text-muted",children:[(0,b.jsx)("li",{children:"Read docs, tasks, the roadmap and memory"}),(0,b.jsx)("li",{children:"Propose doc and task edits (you review a diff)"}),(0,b.jsx)("li",{children:"Propose epics and task breakdowns (you accept)"}),(0,b.jsx)("li",{className:"text-muted/70",children:"It can't run code or edit source files"})]})]})]})}function y({item:a,id:c,tasksById:d}){if(!a)return(0,b.jsx)(B,{kind:"Epic",id:c});let e=a.tasks.map(a=>d[a]).filter(a=>!!a),f=e.map(a=>a.status).filter(a=>"cancelled"!==a),g=f.filter(a=>"done"===a).length;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("p",{className:u,children:["Epic · ",a.id]}),(0,b.jsx)("h3",{className:"text-base font-semibold leading-snug text-txt",children:a.title}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsx)(r.StatusPill,{status:a.status}),a.due&&(0,b.jsxs)("span",{className:"font-mono text-[10px] text-muted",children:["due ",a.due]})]})]}),f.length>0&&(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,b.jsx)("p",{className:u,children:"Progress"}),(0,b.jsxs)("span",{className:"font-mono text-[10px] text-muted",children:[g,"/",f.length," tasks"]})]}),(0,b.jsx)(r.SegmentedProgress,{statuses:f})]}),e.length>0&&(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("p",{className:u,children:"Tasks"}),(0,b.jsx)("ul",{className:"-mx-2 flex flex-col",children:e.map(a=>(0,b.jsx)(z,{task:a},a.id))})]}),a.body.trim()&&(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("p",{className:u,children:"Brief"}),(0,b.jsx)(p.MarkdownRenderer,{content:a.body,className:"prose-compact"})]}),(0,b.jsx)(C,{attach:{kind:"epic",id:a.id},label:"Open in roadmap"})]})}function z({task:a}){let{showAbout:c}=(0,h.useChats)();return(0,b.jsx)("li",{children:(0,b.jsxs)("button",{type:"button",onClick:()=>c({kind:"task",id:a.id}),title:`Chat about ${a.id}`,className:"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-xs transition-colors duration-(--duration-fast) hover:bg-surface2",children:[(0,b.jsx)("span",{"aria-hidden":!0,children:q.STATUS_ICONS[a.status]}),(0,b.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:a.id}),(0,b.jsx)("span",{className:(0,s.cn)("min-w-0 flex-1 truncate","done"===a.status?"text-muted":"text-txt"),children:a.title})]})})}function A({task:a,id:c,items:d}){let{showAbout:e}=(0,h.useChats)();if(!a)return(0,b.jsx)(B,{kind:"Task",id:c});let f=a.phase.match(/^R\d+/)?.[0],g=f?d.find(a=>a.id===f):void 0,i=a.raw?.replace(/^#.*\n(\*\*[^*]+:\*\*.*\n)*/,"").trim();return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("p",{className:u,children:["Task · ",a.id]}),(0,b.jsx)("h3",{className:"text-base font-semibold leading-snug text-txt",children:a.title}),(0,b.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,b.jsxs)("span",{className:(0,s.cn)("rounded-sm border px-1.5 py-0.5 font-mono text-[10px]",v[a.status]),children:[q.STATUS_ICONS[a.status]," ",a.status]}),a.size&&(0,b.jsx)("span",{className:"font-mono text-[10px] text-muted",children:a.size}),a.due&&(0,b.jsxs)("span",{className:"font-mono text-[10px] text-muted",children:["due ",a.due]})]})]}),(0,b.jsxs)("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-xs",children:[f&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{className:"text-muted",children:"Epic"}),(0,b.jsx)("dd",{className:"min-w-0",children:(0,b.jsxs)("button",{type:"button",onClick:()=>e({kind:"epic",id:f}),className:"truncate text-left text-txt hover:text-accent",title:`Chat about ${f}`,children:[(0,b.jsx)("span",{className:"font-mono text-[10px] text-muted",children:f})," ",g?.title??a.phase.replace(/^R\d+\s*—\s*/,"")]})})]}),a.dependsOn&&"—"!==a.dependsOn&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("dt",{className:"text-muted",children:"Depends on"}),(0,b.jsx)("dd",{className:"font-mono text-[11px] text-txt",children:a.dependsOn})]})]}),i&&(0,b.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,b.jsx)("p",{className:u,children:"Spec"}),(0,b.jsx)(p.MarkdownRenderer,{content:i,className:"prose-compact"})]}),(0,b.jsx)(C,{attach:{kind:"task",id:a.id},label:"Open on board"})]})}function B({kind:a,id:c}){return(0,b.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,b.jsxs)("p",{className:u,children:[a," · ",c]}),(0,b.jsxs)("p",{className:"text-sm text-muted",children:[a," ",c," isn't in this project any more."]})]})}function C({attach:a,label:c}){return(0,b.jsxs)(j.default,{href:(0,t.attachHref)(a),className:"group inline-flex w-fit items-center gap-1.5 rounded-md border border-border px-3 py-1.5 text-xs text-txt transition-colors duration-(--duration-fast) hover:border-accent/50 hover:text-accent",children:[c,(0,b.jsx)(k.ArrowUpRight,{className:"size-3.5 transition-transform duration-(--duration-fast) group-hover:-translate-y-px group-hover:translate-x-px"})]})}var D=a.i(107742);let E=a=>{let b=setInterval(a,3e4);return()=>clearInterval(b)},F=()=>6e4*Math.floor(Date.now()/6e4);function G(){let{chats:a,loaded:c,create:e,show:f,send:g}=(0,h.useChats)(),j=(0,d.useRouter)(),k=(0,d.useSearchParams)().get("id"),l=a.find(a=>a.id===k)??(k?void 0:(0,D.defaultChat)(a));function m(a){let b=e();f(b),a&&g(b,a)}return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(H,{selectedId:l?.id??null,onNew:()=>m()}),(0,b.jsx)("section",{className:"flex min-w-0 flex-1 flex-col border-r border-border bg-bg",children:l?(0,b.jsx)("div",{className:"flex min-h-0 flex-1 flex-col animate-fade-in",children:(0,b.jsx)(i.ChatView,{chatId:l.id,variant:"page"})},l.id):c?(0,b.jsx)(J,{missing:!!k,onStart:m,onBack:()=>j.replace("/chat")}):null}),(0,b.jsx)("aside",{className:"hidden w-80 shrink-0 bg-surface xl:block","aria-label":"Chat context",children:(0,b.jsx)(w,{attach:l?.attach??null})})]})}function H({selectedId:a,onNew:d}){let{chats:g}=(0,h.useChats)(),[i,j]=(0,c.useState)(""),k=i.trim().toLowerCase(),l=k?g.filter(a=>a.title.toLowerCase().includes(k)||a.attach?.id.toLowerCase().includes(k)):g,m=(0,D.groupChats)(l),n=[{label:"Needs you",items:m.needsYou,tone:"text-amber"},{label:"Running",items:m.running,tone:"text-accent"},{label:"Recent",items:m.recent,tone:"text-muted"}];return(0,b.jsxs)("aside",{className:"hidden w-72 shrink-0 flex-col border-r border-border bg-surface md:flex","aria-label":"All chats",children:[(0,b.jsxs)("div",{className:"flex items-center gap-2 px-4 pb-3 pt-4",children:[(0,b.jsx)("h1",{className:"flex-1 text-sm font-semibold text-txt",children:"Agents"}),(0,b.jsxs)("button",{type:"button",onClick:d,className:"inline-flex items-center gap-1.5 rounded-md bg-accent px-2.5 py-1.5 text-xs font-medium text-white transition-[filter,transform] duration-(--duration-fast) hover:brightness-110 active:scale-[0.97]",children:[(0,b.jsx)(e.Plus,{className:"size-3.5"})," New chat"]})]}),g.length>3&&(0,b.jsxs)("label",{className:"mx-3 mb-2 flex items-center gap-2 rounded-md border border-border bg-bg px-2.5 py-1.5 text-xs focus-within:border-accent/50",children:[(0,b.jsx)(f.Search,{className:"size-3.5 text-muted"}),(0,b.jsx)("input",{value:i,onChange:a=>j(a.target.value),placeholder:"Filter by title or R/T id",className:"min-w-0 flex-1 bg-transparent text-txt placeholder:text-muted focus:outline-hidden"})]}),(0,b.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto px-2 pb-4",children:[0===g.length&&(0,b.jsx)("p",{className:"px-2 py-6 text-xs text-muted",children:"No chats yet."}),n.map(c=>c.items.length>0&&(0,b.jsxs)("div",{className:"mt-3 first:mt-1",children:[(0,b.jsxs)("p",{className:(0,s.cn)("px-2 pb-1 font-mono text-[10px] uppercase tracking-widest",c.tone),children:[c.label," · ",c.items.length]}),(0,b.jsx)("ul",{className:"flex flex-col gap-px",children:c.items.map(c=>(0,b.jsx)(I,{chat:c,active:c.id===a},c.id))})]},c.label)),k&&0===l.length&&(0,b.jsxs)("p",{className:"px-2 py-6 text-xs text-muted",children:["No chat matches “",i,"”."]})]})]})}function I({chat:a,active:d}){let{show:e,remove:f}=(0,h.useChats)(),i=(0,c.useSyncExternalStore)(E,F,()=>0),j=(0,D.chatStatus)(a),k=[...a.messages].reverse().find(a=>a.text)?.text.replace(/\s+/g," ").trim();return(0,b.jsxs)("li",{className:"group relative animate-slide-in",children:[(0,b.jsxs)("button",{type:"button",onClick:()=>e(a.id),"aria-current":d?"true":void 0,className:(0,s.cn)("flex w-full flex-col gap-1 rounded-lg px-2.5 py-2 text-left transition-colors duration-(--duration-fast)",d?"bg-surface2 shadow-[inset_2px_0_0_rgb(var(--rgb-accent))]":"hover:bg-surface2/60"),children:[(0,b.jsxs)("span",{className:"flex items-center gap-2 pr-5",children:[(0,b.jsx)(t.StatusMarker,{status:j,showIdle:!0}),(0,b.jsx)("span",{className:(0,s.cn)("min-w-0 flex-1 truncate text-[13px]","idle"!==j||d?"text-txt":"text-txt/80"),children:a.title}),i>0&&(0,b.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted group-hover:opacity-0",children:(0,D.ago)(a.updatedAt,i)})]}),(a.attach||k)&&(0,b.jsxs)("span",{className:"flex items-center gap-2 pl-5 text-[11px] text-muted",children:[a.attach&&(0,b.jsx)(t.AttachLabel,{attach:a.attach,className:"shrink-0"}),k&&(0,b.jsx)("span",{className:"min-w-0 truncate",children:k})]})]}),(0,b.jsx)("button",{type:"button",onClick:()=>f(a.id),"aria-label":`Close ${a.title}`,title:a.busy?"Stop and delete chat":"Delete chat",className:"absolute right-1.5 top-1.5 grid size-6 place-items-center rounded-md text-muted opacity-0 transition-opacity duration-(--duration-fast) hover:bg-surface hover:text-danger focus-visible:opacity-100 group-hover:opacity-100",children:(0,b.jsx)(g.X,{className:"size-3.5"})})]})}function J({missing:a,onStart:c,onBack:d}){return(0,b.jsx)("div",{className:"grid flex-1 place-items-center p-8",children:(0,b.jsxs)("div",{className:"flex max-w-md flex-col items-start gap-4 animate-fade-in",children:[(0,b.jsx)("div",{className:"grid size-10 place-items-center rounded-xl bg-linear-to-br from-accent to-teal text-white","aria-hidden":!0,children:"⬡"}),a?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-txt",children:"This chat was deleted"}),(0,b.jsx)("button",{type:"button",onClick:d,className:"text-sm text-accent hover:underline",children:"Back to all chats"})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)("div",{children:[(0,b.jsx)("h2",{className:"text-lg font-semibold text-txt",children:"Run agents side by side"}),(0,b.jsx)("p",{className:"mt-1 text-sm text-muted",children:"Each chat is its own Claude Code session, up to 4 at once. Start one here, or from an epic on the roadmap or a task on the board."})]}),(0,b.jsx)("div",{className:"flex flex-col gap-1.5",children:(0,D.suggestions)(null).map(a=>(0,b.jsx)("button",{type:"button",onClick:()=>c(a),className:"rounded-lg border border-border px-3 py-2 text-left text-sm text-txt/90 transition-colors hover:border-accent/50 hover:bg-accent/5",children:a},a))})]})]})})}a.s(["default",0,function(){return(0,b.jsx)("div",{className:"flex h-[calc(100svh-3rem)] min-h-0",children:(0,b.jsx)(c.Suspense,{children:(0,b.jsx)(G,{})})})}],856095)}];
2
+
3
+ //# sourceMappingURL=src_app_%28app%29_chat_page_tsx_0c3e4l4._.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/components/chat/ChatContextRail.tsx","../../../../src/app/%28app%29/chat/page.tsx","../../../../src/hooks/use-minute.ts","../../../../node_modules/.pnpm/lucide-react%401.48.0_react%4019.3.0/node_modules/lucide-react/src/icons/link-2-off.ts"],"sourcesContent":["\"use client\"\n\nimport { useEffect, useMemo, useState } from \"react\"\nimport Link from \"next/link\"\nimport { ArrowUpRight, Link2Off } from \"lucide-react\"\nimport { useApp } from \"@/context/AppContext\"\nimport { useChats } from \"@/context/ChatContext\"\nimport { MarkdownRenderer } from \"@/components/docs/MarkdownRenderer\"\nimport { STATUS_ICONS } from \"@/components/board/TaskCard\"\nimport { SegmentedProgress, StatusPill } from \"@/components/roadmap/RoadmapNodes\"\nimport { cn } from \"@/lib/utils\"\nimport type { Attach } from \"@/lib/chats\"\nimport type { RoadmapItem, Task, TaskStatus } from \"@/types\"\nimport { attachHref } from \"./StatusMarker\"\n\nconst KICKER = \"font-mono text-[10px] uppercase tracking-widest text-muted\"\n\nconst TASK_STATUS_CLASS: Record<string, string> = {\n todo: \"text-muted border-border2\",\n \"in-progress\": \"text-amber border-amber/30 bg-amber/5\",\n blocked: \"text-danger border-danger/30 bg-danger/5\",\n done: \"text-teal border-teal/30 bg-teal/5\",\n cancelled: \"text-muted border-border\",\n}\n\n/** Right column of /chat: what the chat is about (epic or task), live from the board and roadmap. */\nexport function ChatContextRail({ attach }: { attach: Attach | null }) {\n const { board, rootParam } = useApp()\n const [items, setItems] = useState<RoadmapItem[]>([])\n const [reload, setReload] = useState(0)\n\n // Roadmap items: loaded here (the roadmap page keeps its own copy); refetched on roadmap SSE events\n useEffect(() => {\n let cancelled = false\n fetch(`/api/roadmap${rootParam}`)\n .then((r) => (r.ok ? r.json() : { items: [] }))\n .then((d: { items?: RoadmapItem[] }) => { if (!cancelled) setItems(d.items ?? []) })\n .catch((e) => console.warn(\"[vibedoc] could not load roadmap for the chat rail:\", e))\n return () => { cancelled = true }\n }, [rootParam, reload])\n useEffect(() => {\n const onSse = (e: Event) => {\n const type = (e as CustomEvent<{ type?: string }>).detail?.type\n if (type === \"roadmap_updated\" || type === \"task_created\") setReload((n) => n + 1)\n }\n window.addEventListener(\"vibedoc:sse\", onSse)\n return () => window.removeEventListener(\"vibedoc:sse\", onSse)\n }, [])\n\n const tasksById = useMemo(() => {\n const all = board ? Object.values(board).flat() : []\n return Object.fromEntries(all.map((t) => [t.id, t])) as Record<string, Task>\n }, [board])\n\n return (\n <div className=\"flex h-full min-h-0 flex-col overflow-y-auto\">\n <div key={attach ? `${attach.kind}:${attach.id}` : \"none\"} className=\"flex flex-col gap-5 p-5 animate-fade-in\">\n {!attach && <NoAttach />}\n {attach?.kind === \"epic\" && <EpicContext item={items.find((i) => i.id === attach.id)} id={attach.id} tasksById={tasksById} />}\n {attach?.kind === \"task\" && <TaskContext task={tasksById[attach.id]} id={attach.id} items={items} />}\n </div>\n </div>\n )\n}\n\nfunction NoAttach() {\n return (\n <>\n <p className={KICKER}>Context</p>\n <div className=\"flex flex-col items-start gap-3 rounded-lg border border-dashed border-border2 p-4\">\n <Link2Off className=\"size-4 text-muted\" />\n <p className=\"text-sm text-txt\">Not linked to an epic or task</p>\n <p className=\"text-xs leading-relaxed text-muted\">\n Open a chat from an epic on the roadmap or a task on the board, and the agent starts with that item as context.\n Its status then shows on the item.\n </p>\n </div>\n <div className=\"flex flex-col gap-2\">\n <p className={KICKER}>The agent can</p>\n <ul className=\"flex flex-col gap-1.5 text-xs text-muted\">\n <li>Read docs, tasks, the roadmap and memory</li>\n <li>Propose doc and task edits (you review a diff)</li>\n <li>Propose epics and task breakdowns (you accept)</li>\n <li className=\"text-muted/70\">It can&apos;t run code or edit source files</li>\n </ul>\n </div>\n </>\n )\n}\n\nfunction EpicContext({ item, id, tasksById }: { item?: RoadmapItem; id: string; tasksById: Record<string, Task> }) {\n if (!item) return <Missing kind=\"Epic\" id={id} />\n const tasks = item.tasks.map((t) => tasksById[t]).filter((t): t is Task => !!t)\n const statuses = tasks.map((t) => t.status).filter((s): s is TaskStatus => s !== \"cancelled\")\n const done = statuses.filter((s) => s === \"done\").length\n return (\n <>\n <div className=\"flex flex-col gap-2\">\n <p className={KICKER}>Epic · {item.id}</p>\n <h3 className=\"text-base font-semibold leading-snug text-txt\">{item.title}</h3>\n <div className=\"flex flex-wrap items-center gap-2\">\n <StatusPill status={item.status} />\n {item.due && <span className=\"font-mono text-[10px] text-muted\">due {item.due}</span>}\n </div>\n </div>\n\n {statuses.length > 0 && (\n <div className=\"flex flex-col gap-1.5\">\n <div className=\"flex items-baseline justify-between\">\n <p className={KICKER}>Progress</p>\n <span className=\"font-mono text-[10px] text-muted\">{done}/{statuses.length} tasks</span>\n </div>\n <SegmentedProgress statuses={statuses} />\n </div>\n )}\n\n {tasks.length > 0 && (\n <div className=\"flex flex-col gap-1.5\">\n <p className={KICKER}>Tasks</p>\n <ul className=\"-mx-2 flex flex-col\">\n {tasks.map((t) => <TaskRow key={t.id} task={t} />)}\n </ul>\n </div>\n )}\n\n {item.body.trim() && (\n <div className=\"flex flex-col gap-1.5\">\n <p className={KICKER}>Brief</p>\n <MarkdownRenderer content={item.body} className=\"prose-compact\" />\n </div>\n )}\n\n <OpenLink attach={{ kind: \"epic\", id: item.id }} label=\"Open in roadmap\" />\n </>\n )\n}\n\nfunction TaskRow({ task }: { task: Task }) {\n const { showAbout } = useChats()\n return (\n <li>\n <button\n type=\"button\"\n onClick={() => showAbout({ kind: \"task\", id: task.id })}\n title={`Chat about ${task.id}`}\n className=\"flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left text-xs transition-colors duration-(--duration-fast) hover:bg-surface2\"\n >\n <span aria-hidden>{STATUS_ICONS[task.status]}</span>\n <span className=\"shrink-0 font-mono text-[10px] text-muted\">{task.id}</span>\n <span className={cn(\"min-w-0 flex-1 truncate\", task.status === \"done\" ? \"text-muted\" : \"text-txt\")}>{task.title}</span>\n </button>\n </li>\n )\n}\n\nfunction TaskContext({ task, id, items }: { task?: Task; id: string; items: RoadmapItem[] }) {\n const { showAbout } = useChats()\n if (!task) return <Missing kind=\"Task\" id={id} />\n const epicId = task.phase.match(/^R\\d+/)?.[0]\n const epic = epicId ? items.find((i) => i.id === epicId) : undefined\n const body = task.raw?.replace(/^#.*\\n(\\*\\*[^*]+:\\*\\*.*\\n)*/, \"\").trim()\n return (\n <>\n <div className=\"flex flex-col gap-2\">\n <p className={KICKER}>Task · {task.id}</p>\n <h3 className=\"text-base font-semibold leading-snug text-txt\">{task.title}</h3>\n <div className=\"flex flex-wrap items-center gap-2\">\n <span className={cn(\"rounded-sm border px-1.5 py-0.5 font-mono text-[10px]\", TASK_STATUS_CLASS[task.status])}>\n {STATUS_ICONS[task.status]} {task.status}\n </span>\n {task.size && <span className=\"font-mono text-[10px] text-muted\">{task.size}</span>}\n {task.due && <span className=\"font-mono text-[10px] text-muted\">due {task.due}</span>}\n </div>\n </div>\n\n <dl className=\"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-xs\">\n {epicId && (\n <>\n <dt className=\"text-muted\">Epic</dt>\n <dd className=\"min-w-0\">\n <button type=\"button\" onClick={() => showAbout({ kind: \"epic\", id: epicId })} className=\"truncate text-left text-txt hover:text-accent\" title={`Chat about ${epicId}`}>\n <span className=\"font-mono text-[10px] text-muted\">{epicId}</span> {epic?.title ?? task.phase.replace(/^R\\d+\\s*—\\s*/, \"\")}\n </button>\n </dd>\n </>\n )}\n {task.dependsOn && task.dependsOn !== \"—\" && (\n <>\n <dt className=\"text-muted\">Depends on</dt>\n <dd className=\"font-mono text-[11px] text-txt\">{task.dependsOn}</dd>\n </>\n )}\n </dl>\n\n {body && (\n <div className=\"flex flex-col gap-1.5\">\n <p className={KICKER}>Spec</p>\n <MarkdownRenderer content={body} className=\"prose-compact\" />\n </div>\n )}\n\n <OpenLink attach={{ kind: \"task\", id: task.id }} label=\"Open on board\" />\n </>\n )\n}\n\nfunction Missing({ kind, id }: { kind: string; id: string }) {\n return (\n <div className=\"flex flex-col gap-2\">\n <p className={KICKER}>{kind} · {id}</p>\n <p className=\"text-sm text-muted\">{kind} {id} isn&apos;t in this project any more.</p>\n </div>\n )\n}\n\nfunction OpenLink({ attach, label }: { attach: Attach; label: string }) {\n return (\n <Link\n href={attachHref(attach)}\n className=\"group inline-flex w-fit items-center gap-1.5 rounded-md border border-border px-3 py-1.5 text-xs text-txt transition-colors duration-(--duration-fast) hover:border-accent/50 hover:text-accent\"\n >\n {label}\n <ArrowUpRight className=\"size-3.5 transition-transform duration-(--duration-fast) group-hover:-translate-y-px group-hover:translate-x-px\" />\n </Link>\n )\n}\n","\"use client\"\n\nimport { Suspense, useState } from \"react\"\nimport { useRouter, useSearchParams } from \"next/navigation\"\nimport { Plus, Search, X } from \"lucide-react\"\nimport { useChats, type ChatTab } from \"@/context/ChatContext\"\nimport { ChatView } from \"@/components/chat/ChatView\"\nimport { ChatContextRail } from \"@/components/chat/ChatContextRail\"\nimport { AttachLabel, StatusMarker } from \"@/components/chat/StatusMarker\"\nimport { ago, chatStatus, defaultChat, groupChats, suggestions } from \"@/lib/chats\"\nimport { useMinute } from \"@/hooks/use-minute\"\nimport { cn } from \"@/lib/utils\"\n\nexport default function ChatPage() {\n // main has no fixed height; the columns need one (viewport minus the h-12 AppHeader)\n return (\n <div className=\"flex h-[calc(100svh-3rem)] min-h-0\">\n <Suspense>\n <ChatPageInner />\n </Suspense>\n </div>\n )\n}\n\nfunction ChatPageInner() {\n const { chats, loaded, create, show, send } = useChats()\n const router = useRouter()\n const param = useSearchParams().get(\"id\")\n const selected = chats.find((c) => c.id === param) ?? (param ? undefined : defaultChat(chats))\n\n function startWith(text?: string) {\n const id = create()\n show(id)\n if (text) send(id, text)\n }\n\n return (\n <>\n <ChatList selectedId={selected?.id ?? null} onNew={() => startWith()} />\n\n <section className=\"flex min-w-0 flex-1 flex-col border-r border-border bg-bg\">\n {selected ? (\n <div key={selected.id} className=\"flex min-h-0 flex-1 flex-col animate-fade-in\">\n <ChatView chatId={selected.id} variant=\"page\" />\n </div>\n ) : loaded ? (\n <NoChat\n missing={!!param}\n onStart={startWith}\n onBack={() => router.replace(\"/chat\")}\n />\n ) : null}\n </section>\n\n <aside className=\"hidden w-80 shrink-0 bg-surface xl:block\" aria-label=\"Chat context\">\n <ChatContextRail attach={selected?.attach ?? null} />\n </aside>\n </>\n )\n}\n\nfunction ChatList({ selectedId, onNew }: { selectedId: string | null; onNew: () => void }) {\n const { chats } = useChats()\n const [query, setQuery] = useState(\"\")\n const q = query.trim().toLowerCase()\n const shown = q ? chats.filter((c) => c.title.toLowerCase().includes(q) || c.attach?.id.toLowerCase().includes(q)) : chats\n const g = groupChats(shown)\n const sections = [\n { label: \"Needs you\", items: g.needsYou, tone: \"text-amber\" },\n { label: \"Running\", items: g.running, tone: \"text-accent\" },\n { label: \"Recent\", items: g.recent, tone: \"text-muted\" },\n ]\n\n return (\n <aside className=\"hidden w-72 shrink-0 flex-col border-r border-border bg-surface md:flex\" aria-label=\"All chats\">\n <div className=\"flex items-center gap-2 px-4 pb-3 pt-4\">\n <h1 className=\"flex-1 text-sm font-semibold text-txt\">Agents</h1>\n <button\n type=\"button\"\n onClick={onNew}\n className=\"inline-flex items-center gap-1.5 rounded-md bg-accent px-2.5 py-1.5 text-xs font-medium text-white transition-[filter,transform] duration-(--duration-fast) hover:brightness-110 active:scale-[0.97]\"\n >\n <Plus className=\"size-3.5\" /> New chat\n </button>\n </div>\n {chats.length > 3 && (\n <label className=\"mx-3 mb-2 flex items-center gap-2 rounded-md border border-border bg-bg px-2.5 py-1.5 text-xs focus-within:border-accent/50\">\n <Search className=\"size-3.5 text-muted\" />\n <input\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n placeholder=\"Filter by title or R/T id\"\n className=\"min-w-0 flex-1 bg-transparent text-txt placeholder:text-muted focus:outline-hidden\"\n />\n </label>\n )}\n <div className=\"min-h-0 flex-1 overflow-y-auto px-2 pb-4\">\n {chats.length === 0 && <p className=\"px-2 py-6 text-xs text-muted\">No chats yet.</p>}\n {sections.map((s) => s.items.length > 0 && (\n <div key={s.label} className=\"mt-3 first:mt-1\">\n <p className={cn(\"px-2 pb-1 font-mono text-[10px] uppercase tracking-widest\", s.tone)}>\n {s.label} · {s.items.length}\n </p>\n <ul className=\"flex flex-col gap-px\">\n {s.items.map((c) => <ChatRow key={c.id} chat={c} active={c.id === selectedId} />)}\n </ul>\n </div>\n ))}\n {q && shown.length === 0 && <p className=\"px-2 py-6 text-xs text-muted\">No chat matches “{query}”.</p>}\n </div>\n </aside>\n )\n}\n\nfunction ChatRow({ chat, active }: { chat: ChatTab; active: boolean }) {\n const { show, remove } = useChats()\n const now = useMinute()\n const status = chatStatus(chat)\n const lastText = [...chat.messages].reverse().find((m) => m.text)?.text.replace(/\\s+/g, \" \").trim()\n return (\n <li className=\"group relative animate-slide-in\">\n <button\n type=\"button\"\n onClick={() => show(chat.id)}\n aria-current={active ? \"true\" : undefined}\n className={cn(\n \"flex w-full flex-col gap-1 rounded-lg px-2.5 py-2 text-left transition-colors duration-(--duration-fast)\",\n active ? \"bg-surface2 shadow-[inset_2px_0_0_rgb(var(--rgb-accent))]\" : \"hover:bg-surface2/60\",\n )}\n >\n <span className=\"flex items-center gap-2 pr-5\">\n <StatusMarker status={status} showIdle />\n <span className={cn(\"min-w-0 flex-1 truncate text-[13px]\", status === \"idle\" && !active ? \"text-txt/80\" : \"text-txt\")}>{chat.title}</span>\n {now > 0 && <span className=\"shrink-0 font-mono text-[10px] text-muted group-hover:opacity-0\">{ago(chat.updatedAt, now)}</span>}\n </span>\n {(chat.attach || lastText) && (\n <span className=\"flex items-center gap-2 pl-5 text-[11px] text-muted\">\n {chat.attach && <AttachLabel attach={chat.attach} className=\"shrink-0\" />}\n {lastText && <span className=\"min-w-0 truncate\">{lastText}</span>}\n </span>\n )}\n </button>\n <button\n type=\"button\"\n onClick={() => remove(chat.id)}\n aria-label={`Close ${chat.title}`}\n title={chat.busy ? \"Stop and delete chat\" : \"Delete chat\"}\n className=\"absolute right-1.5 top-1.5 grid size-6 place-items-center rounded-md text-muted opacity-0 transition-opacity duration-(--duration-fast) hover:bg-surface hover:text-danger focus-visible:opacity-100 group-hover:opacity-100\"\n >\n <X className=\"size-3.5\" />\n </button>\n </li>\n )\n}\n\nfunction NoChat({ missing, onStart, onBack }: { missing: boolean; onStart: (text?: string) => void; onBack: () => void }) {\n return (\n <div className=\"grid flex-1 place-items-center p-8\">\n <div className=\"flex max-w-md flex-col items-start gap-4 animate-fade-in\">\n <div className=\"grid size-10 place-items-center rounded-xl bg-linear-to-br from-accent to-teal text-white\" aria-hidden>⬡</div>\n {missing ? (\n <>\n <h2 className=\"text-lg font-semibold text-txt\">This chat was deleted</h2>\n <button type=\"button\" onClick={onBack} className=\"text-sm text-accent hover:underline\">Back to all chats</button>\n </>\n ) : (\n <>\n <div>\n <h2 className=\"text-lg font-semibold text-txt\">Run agents side by side</h2>\n <p className=\"mt-1 text-sm text-muted\">\n Each chat is its own Claude Code session, up to 4 at once. Start one here, or from an epic on the roadmap or a task on the board.\n </p>\n </div>\n <div className=\"flex flex-col gap-1.5\">\n {suggestions(null).map((s) => (\n <button key={s} type=\"button\" onClick={() => onStart(s)} className=\"rounded-lg border border-border px-3 py-2 text-left text-sm text-txt/90 transition-colors hover:border-accent/50 hover:bg-accent/5\">\n {s}\n </button>\n ))}\n </div>\n </>\n )}\n </div>\n </div>\n )\n}\n","import { useSyncExternalStore } from \"react\"\n\nconst subscribe = (tick: () => void) => {\n const id = setInterval(tick, 30_000)\n return () => clearInterval(id)\n}\n// Rounded to the minute so the snapshot is stable between ticks\nconst snapshot = () => Math.floor(Date.now() / 60_000) * 60_000\n\n/** Current time in ms, updated about once a minute (for \"5m ago\" labels). 0 during server render. */\nexport function useMinute(): number {\n return useSyncExternalStore(subscribe, snapshot, () => 0)\n}\n","import createLucideIcon from '../createLucideIcon';\nimport type { LucideIconNode, LucideIconData } from '../types';\n\nexport const __iconData: LucideIconData = {\n name: 'link-2-off',\n size: 24,\n node: [\n ['path', { d: 'M9 17H7A5 5 0 0 1 7 7', key: '10o201' }],\n ['path', { d: 'M15 7h2a5 5 0 0 1 4 8', key: '1d3206' }],\n ['line', { x1: '8', x2: '12', y1: '12', y2: '12', key: 'rvw6j4' }],\n ['line', { x1: '2', x2: '22', y1: '2', y2: '22', key: 'a6p6uj' }],\n ],\n};\n\n/**\n * @deprecated Access `__iconData` instead.\n */\nexport const __iconNode: LucideIconNode[] = __iconData.node;\n\n/**\n * @component @name Link2Off\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOSAxN0g3QTUgNSAwIDAgMSA3IDciIC8+CiAgPHBhdGggZD0iTTE1IDdoMmE1IDUgMCAwIDEgNCA4IiAvPgogIDxsaW5lIHgxPSI4IiB4Mj0iMTIiIHkxPSIxMiIgeTI9IjEyIiAvPgogIDxsaW5lIHgxPSIyIiB4Mj0iMjIiIHkxPSIyIiB5Mj0iMjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/link-2-off\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Link2Off = createLucideIcon(__iconData);\n\nexport default Link2Off;\n"],"names":["x2","y2"],"mappings":"0DCEA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QDHA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,0BGDa,EAA6B,CACxC,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CADK,AACL,CAAA,AADK,CAAA,AACL,CAAA,CAAA,CAAA,WACA,GACN,IAAA,CAAA,AAAM,CACJ,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,mBAAyB,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACtD,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAE,AAAF,EAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAyB,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACtD,CAAC,OAAQ,CAAA,AAAE,CAAA,CAAA,CAAI,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,AAAI,CAAA,CAAA,CAAA,CAAA,CAAM,AAAN,EAAM,CAAA,AAAI,CAAA,CAAA,CAAA,CAAA,CAAA,AAAM,CAAA,CAAA,CAAA,AAAI,CAAA,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,SACxD,CAAA,AAAE,EAAA,CAAA,IAAS,CAAA,CAAA,CAAI,AAAJ,CAAI,CAAA,CAAA,CAAA,CAAM,CAAA,CAAA,CAAA,AAAI,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,AAAI,IAAA,CAAA,AAAM,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAAA,AAEpE,CAAA,CAK4C,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAavD,CAAA,GAAM,CAAA,CAAA,CAAA,CAAA,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAiB,CAAjB,AAAiB,CAAjB,AAAiB,CAAA,AHzBlC,AGyBiB,CAAA,AAAiB,CAAA,CAAA,CHzBlC,AGyBkC,CAAA,CAAA,AHzBlC,CGyB4C,CAAA,AHzB5C,CAAA,CAAA,QAEA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QAGA,EAAA,EAAA,CAAA,CAAA,QAEA,IAAM,EAAS,6DAET,EAA4C,CAChD,KAAM,4BACN,cAAe,wCACf,QAAS,2CACT,KAAM,qCACN,UAAW,0BACb,EAGO,SAAS,EAAgB,QAAE,CAAM,CAA6B,EACnE,GAAM,CAAE,OAAK,WAAE,CAAS,CAAE,CAAG,CAAA,EAAA,EAAA,MAAM,AAAN,IACvB,CAAC,EAAO,EAAS,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAgB,EAAE,EAC9C,CAAC,EAAQ,EAAU,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,GAGrC,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACR,IAAI,GAAY,EAKhB,OAJA,MAAM,CAAC,YAAY,EAAE,EAAA,CAAW,EAC7B,IAAI,CAAC,AAAC,GAAO,EAAE,EAAE,CAAG,EAAE,IAAI,GAAK,CAAE,MAAO,EAAE,AAAC,GAC3C,IAAI,CAAC,AAAC,IAAwC,AAAD,GAAY,EAAS,EAAE,KAAK,EAAI,EAAE,CAAE,GACjF,KAAK,CAAC,AAAC,GAAM,QAAQ,IAAI,CAAC,sDAAuD,IAC7E,KAAQ,GAAY,CAAK,CAClC,EAAG,CAAC,EAAW,EAAO,EACtB,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACR,IAAM,EAAQ,AAAC,IACb,IAAM,EAAQ,EAAqC,MAAM,EAAE,MAC9C,oBAAT,GAAuC,iBAAT,CAAS,GAAgB,EAAU,AAAC,GAAM,EAAI,EAClF,EAEA,OADA,OAAO,gBAAgB,CAAC,cAAe,GAChC,IAAM,OAAO,mBAAmB,CAAC,cAAe,EACzD,EAAG,EAAE,EAEL,IAAM,EAAY,CAAA,EAAA,EAAA,OAAA,AAAO,EAAC,IAEjB,OAAO,WAAW,CAAC,CADd,EAAQ,OAAO,MAAM,CAAC,GAAO,IAAI,GAAK,EAAE,AAAF,EACpB,GAAG,CAAC,AAAC,GAAM,CAAC,EAAE,EAAE,CAAE,EAAE,GACjD,CAAC,EAAM,EAEV,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,wDACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAA0D,UAAU,oDAClE,CAAC,GAAU,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAA,GACZ,GAAQ,OAAS,QAAU,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAY,KAAM,EAAM,IAAI,CAAC,AAAC,GAAM,EAAE,EAAE,GAAK,EAAO,EAAE,EAAG,GAAI,EAAO,EAAE,CAAE,UAAW,IAC/G,GAAQ,OAAS,QAAU,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAY,KAAM,CAAS,CAAC,EAAO,EAAE,CAAC,CAAE,GAAI,EAAO,EAAE,CAAE,MAAO,MAHnF,EAAS,CAAA,EAAG,EAAO,IAAI,CAAC,CAAC,EAAE,EAAO,EAAE,CAAA,CAAE,CAAG,SAOzD,CAEA,SAAS,IACP,MACE,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAW,WAAQ,YACtB,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,+FACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAS,UAAU,sBACpB,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,4BAAmB,kCAChC,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,8CAAqC,0JAKpD,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,gCACb,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAW,WAAQ,kBACtB,CAAA,EAAA,EAAA,IAAA,EAAC,KAAA,CAAG,UAAU,qDACZ,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,UAAG,6CACJ,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,UAAG,mDACJ,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,UAAG,mDACJ,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAG,UAAU,yBAAgB,mDAKxC,CAEA,SAAS,EAAY,MAAE,CAAI,IAAE,CAAE,WAAE,CAAS,CAAuE,EAC/G,GAAI,CAAC,EAAM,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAQ,KAAK,OAAO,GAAI,IAC3C,IAAM,EAAQ,EAAK,KAAK,CAAC,GAAG,CAAE,AAAD,GAAO,CAAS,CAAC,EAAE,EAAE,MAAM,CAAC,AAAC,GAAiB,CAAC,CAAC,GACvE,EAAW,EAAM,GAAG,CAAC,AAAC,GAAM,EAAE,MAAM,EAAE,MAAM,CAAC,AAAC,GAA6B,cAAN,GACrE,EAAO,EAAS,MAAM,CAAC,AAAC,GAAY,SAAN,GAAc,MAAM,CACxD,MACE,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,gCACb,CAAA,EAAA,EAAA,IAAA,EAAC,IAAA,CAAE,UAAW,YAAQ,UAAQ,EAAK,EAAE,IACrC,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAG,UAAU,yDAAiD,EAAK,KAAK,GACzE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,8CACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CAAC,OAAQ,EAAK,MAAM,GAC9B,EAAK,GAAG,EAAI,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,UAAU,6CAAmC,OAAK,EAAK,GAAG,UAIhF,EAAS,MAAM,CAAG,GACjB,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,kCACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,gDACb,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAW,WAAQ,aACtB,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,UAAU,6CAAoC,EAAK,IAAE,EAAS,MAAM,CAAC,eAE7E,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,iBAAiB,CAAA,CAAC,SAAU,OAIhC,EAAM,MAAM,CAAG,GACd,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,kCACb,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAW,WAAQ,UACtB,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAG,UAAU,+BACX,EAAM,GAAG,CAAC,AAAC,GAAM,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAmB,KAAM,GAAZ,EAAE,EAAE,QAKzC,EAAK,IAAI,CAAC,IAAI,IACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,kCACb,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAW,WAAQ,UACtB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,gBAAgB,CAAA,CAAC,QAAS,EAAK,IAAI,CAAE,UAAU,qBAIpD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAS,OAAQ,CAAE,KAAM,OAAQ,GAAI,EAAK,EAAG,AAAD,EAAI,MAAM,sBAG7D,CAEA,SAAS,EAAQ,MAAE,CAAI,CAAkB,EACvC,GAAM,WAAE,CAAS,CAAE,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,IAC9B,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,UACC,CAAA,EAAA,EAAA,IAAA,EAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAM,EAAU,CAAE,KAAM,OAAQ,GAAI,EAAK,EAAE,AAAC,GACrD,MAAO,CAAC,WAAW,EAAE,EAAK,EAAE,CAAA,CAAE,CAC9B,UAAU,mJAEV,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,aAAW,CAAA,CAAA,WAAE,EAAA,YAAY,CAAC,EAAK,MAAM,CAAC,GAC5C,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,qDAA6C,EAAK,EAAE,GACpE,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,0BAA2C,SAAhB,EAAK,MAAM,CAAc,aAAe,qBAAc,EAAK,KAAK,OAIvH,CAEA,SAAS,EAAY,MAAE,CAAI,IAAE,CAAE,OAAE,CAAK,CAAqD,EACzF,GAAM,WAAE,CAAS,CAAE,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,IAC9B,GAAI,CAAC,EAAM,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAQ,KAAK,OAAO,GAAI,IAC3C,IAAM,EAAS,EAAK,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,CACvC,EAAO,EAAS,EAAM,IAAI,CAAC,AAAC,GAAM,EAAE,EAAE,GAAK,QAAU,EACrD,EAAO,EAAK,GAAG,EAAE,QAAQ,8BAA+B,IAAI,OAClE,MACE,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,gCACb,CAAA,EAAA,EAAA,IAAA,EAAC,IAAA,CAAE,UAAW,YAAQ,UAAQ,EAAK,EAAE,IACrC,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAG,UAAU,yDAAiD,EAAK,KAAK,GACzE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,8CACb,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,wDAAyD,CAAiB,CAAC,EAAK,MAAM,CAAC,YACxG,EAAA,YAAY,CAAC,EAAK,MAAM,CAAC,CAAC,IAAE,EAAK,MAAM,IAEzC,EAAK,IAAI,EAAI,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,4CAAoC,EAAK,IAAI,GAC1E,EAAK,GAAG,EAAI,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,UAAU,6CAAmC,OAAK,EAAK,GAAG,UAIjF,CAAA,EAAA,EAAA,IAAA,EAAC,KAAA,CAAG,UAAU,gEACX,GACC,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAG,UAAU,sBAAa,SAC3B,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAG,UAAU,mBACZ,CAAA,EAAA,EAAA,IAAA,EAAC,SAAA,CAAO,KAAK,SAAS,QAAS,IAAM,EAAU,CAAE,KAAM,OAAQ,GAAI,CAAO,GAAI,UAAU,gDAAgD,MAAO,CAAC,WAAW,EAAE,EAAA,CAAQ,WACnK,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,4CAAoC,IAAc,IAAE,GAAM,OAAS,EAAK,KAAK,CAAC,OAAO,CAAC,eAAgB,YAK7H,EAAK,SAAS,EAAI,AAAmB,QAAd,SAAS,EAC/B,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAG,UAAU,sBAAa,eAC3B,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAG,UAAU,0CAAkC,EAAK,SAAS,SAKnE,GACC,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,kCACb,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAW,WAAQ,SACtB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,gBAAgB,CAAA,CAAC,QAAS,EAAM,UAAU,qBAI/C,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAS,OAAQ,CAAE,KAAM,OAAQ,GAAI,EAAK,EAAE,AAAC,EAAG,MAAM,oBAG7D,CAEA,SAAS,EAAQ,CAAE,MAAI,IAAE,CAAE,CAAgC,EACzD,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,gCACb,CAAA,EAAA,EAAA,IAAA,EAAC,IAAA,CAAE,UAAW,YAAS,EAAK,MAAI,KAChC,CAAA,EAAA,EAAA,IAAA,EAAC,IAAA,CAAE,UAAU,+BAAsB,EAAK,IAAE,EAAG,wCAGnD,CAEA,SAAS,EAAS,CAAE,QAAM,OAAE,CAAK,CAAqC,EACpE,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,OAAI,CAAA,CACH,KAAM,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,GACjB,UAAU,4MAET,EACD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,YAAY,CAAA,CAAC,UAAU,sHAG9B,CCxNA,IAAA,EAAA,EAAA,CAAA,CAAA,QCPA,IAAM,EAAY,AAAC,IACjB,IAAM,EAAK,YAAY,EAAM,KAC7B,MAAO,IAAM,cAAc,EAC7B,EAEM,EAAW,IAAwC,IAAlC,KAAK,KAAK,CAAC,KAAK,GAAG,GAAK,KDiB/C,SAAS,IACP,GAAM,OAAE,CAAK,QAAE,CAAM,QAAE,CAAM,MAAE,CAAI,MAAE,CAAI,CAAE,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,IAChD,EAAS,CAAA,EAAA,EAAA,SAAS,AAAT,IACT,EAAQ,CAAA,EAAA,EAAA,eAAA,AAAe,IAAG,GAAG,CAAC,MAC9B,EAAW,EAAM,IAAI,CAAC,AAAC,GAAM,EAAE,EAAE,GAAK,KAAW,KAAD,EAAS,EAAY,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,EAAA,CAAM,CAE7F,SAAS,EAAU,CAAa,EAC9B,IAAM,EAAK,IACX,EAAK,GACD,GAAM,EAAK,EAAI,EACrB,CAEA,MACE,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAS,WAAY,GAAU,IAAM,KAAM,MAAO,IAAM,MAEzD,CAAA,EAAA,EAAA,GAAA,EAAC,UAAA,CAAQ,UAAU,qEAChB,EACC,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAsB,UAAU,wDAC/B,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,QAAQ,CAAA,CAAC,OAAQ,EAAS,EAAE,CAAE,QAAQ,UAD/B,EAAS,EAAE,EAGnB,EACF,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CACC,QAAS,CAAC,CAAC,EACX,QAAS,EACT,OAAQ,IAAM,EAAO,OAAO,CAAC,WAE7B,OAGN,CAAA,EAAA,EAAA,GAAA,EAAC,QAAA,CAAM,UAAU,2CAA2C,aAAW,wBACrE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAgB,OAAQ,GAAU,QAAU,WAIrD,CAEA,SAAS,EAAS,YAAE,CAAU,CAAE,OAAK,CAAoD,EACvF,GAAM,OAAE,CAAK,CAAE,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,IACpB,CAAC,EAAO,EAAS,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,IAC7B,EAAI,EAAM,IAAI,GAAG,WAAW,GAC5B,EAAQ,EAAI,EAAM,MAAM,CAAC,AAAC,GAAM,EAAE,KAAK,CAAC,WAAW,GAAG,QAAQ,CAAC,IAAM,EAAE,MAAM,EAAE,GAAG,cAAc,SAAS,IAAM,EAC/G,EAAI,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,GACf,EAAW,CACf,CAAE,MAAO,YAAa,MAAO,EAAE,QAAQ,CAAE,KAAM,YAAa,EAC5D,CAAE,MAAO,UAAW,MAAO,EAAE,OAAO,CAAE,KAAM,aAAc,EAC1D,CAAE,MAAO,SAAU,MAAO,EAAE,MAAM,CAAE,KAAM,YAAa,EACxD,CAED,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,QAAA,CAAM,UAAU,0EAA0E,aAAW,sBACpG,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,mDACb,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAG,UAAU,iDAAwC,WACtD,CAAA,EAAA,EAAA,IAAA,EAAC,SAAA,CACC,KAAK,SACL,QAAS,EACT,UAAU,iNAEV,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,IAAI,CAAA,CAAC,UAAU,aAAa,kBAGhC,EAAM,MAAM,CAAG,GACd,CAAA,EAAA,EAAA,IAAA,EAAC,QAAA,CAAM,UAAU,wIACf,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CAAC,UAAU,wBAClB,CAAA,EAAA,EAAA,GAAA,EAAC,QAAA,CACC,MAAO,EACP,SAAU,AAAC,GAAM,EAAS,EAAE,MAAM,CAAC,KAAK,EACxC,YAAY,4BACZ,UAAU,0FAIhB,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,qDACK,IAAjB,EAAM,MAAM,EAAU,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,wCAA+B,kBAClE,EAAS,GAAG,CAAC,AAAC,GAAM,EAAE,KAAK,CAAC,MAAM,CAAG,GACpC,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAkB,UAAU,4BAC3B,CAAA,EAAA,EAAA,IAAA,EAAC,IAAA,CAAE,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,4DAA6D,EAAE,IAAI,YACjF,EAAE,KAAK,CAAC,MAAI,EAAE,KAAK,CAAC,MAAM,IAE7B,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAG,UAAU,gCACX,EAAE,KAAK,CAAC,GAAG,CAAC,AAAC,GAAM,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAmB,KAAM,EAAG,OAAQ,EAAE,EAAE,GAAK,GAAhC,EAAE,EAAE,OALhC,EAAE,KAAK,GASlB,GAAK,AAAiB,MAAX,MAAM,EAAU,CAAA,EAAA,EAAA,IAAA,EAAC,IAAA,CAAE,UAAU,yCAA+B,oBAAkB,EAAM,aAIxG,CAEA,SAAS,EAAQ,MAAE,CAAI,QAAE,CAAM,CAAsC,EACnE,GAAM,MAAE,CAAI,QAAE,CAAM,CAAE,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,IAC3B,ECzGCA,CAAAA,EAAAA,CDyGK,CCzGLA,oBAAAA,AAAoBC,EAAC,EAAW,EAAU,IAAM,GD0GjD,EAAS,CAAA,EAAA,EAAA,UAAA,AAAU,EAAC,GACpB,EAAW,IAAI,EAAK,QAAQ,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,AAAC,GAAM,EAAE,IAAI,GAAG,KAAK,QAAQ,OAAQ,KAAK,OAC7F,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,KAAA,CAAG,UAAU,4CACZ,CAAA,EAAA,EAAA,IAAA,EAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAM,EAAK,EAAK,EAAE,EAC3B,eAAc,EAAS,YAAS,EAChC,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,2GACA,EAAS,4DAA8D,kCAGzE,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,UAAU,yCACd,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,YAAY,CAAA,CAAC,OAAQ,EAAQ,QAAQ,CAAA,CAAA,IACtC,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,sCAAkD,SAAX,CAAqB,EAAC,EAAyB,WAAhB,wBAA8B,EAAK,KAAK,GACjI,EAAM,GAAK,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,2EAAmE,CAAA,EAAA,EAAA,GAAA,AAAG,EAAC,EAAK,SAAS,CAAE,QAEpH,CAAC,EAAK,MAAM,EAAI,CAAA,CAAQ,EACvB,CAAA,EAAA,EAAA,IAAA,EAAC,OAAA,CAAK,UAAU,gEACb,EAAK,MAAM,EAAI,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,WAAW,CAAA,CAAC,OAAQ,EAAK,MAAM,CAAE,UAAU,aAC3D,GAAY,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,4BAAoB,UAIvD,CAAA,EAAA,EAAA,GAAA,EAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAM,EAAO,EAAK,EAAE,EAC7B,aAAY,CAAC,MAAM,EAAE,EAAK,KAAK,CAAA,CAAE,CACjC,MAAO,EAAK,IAAI,CAAG,uBAAyB,cAC5C,UAAU,wOAEV,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAC,CAAA,CAAC,UAAU,iBAIrB,CAEA,SAAS,EAAO,SAAE,CAAO,SAAE,CAAO,QAAE,CAAM,CAA8E,EACtH,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,8CACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,qEACb,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,4FAA4F,aAAW,CAAA,CAAA,WAAC,MACtH,EACC,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAG,UAAU,0CAAiC,0BAC/C,CAAA,EAAA,EAAA,GAAA,EAAC,SAAA,CAAO,KAAK,SAAS,QAAS,EAAQ,UAAU,+CAAsC,yBAGzF,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,QAAA,CAAA,WACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,WACC,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAG,UAAU,0CAAiC,4BAC/C,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAE,UAAU,mCAA0B,yIAIzC,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,iCACZ,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC,MAAM,GAAG,CAAC,AAAC,GACtB,CAAA,EAAA,EAAA,GAAA,EAAC,SAAA,CAAe,KAAK,SAAS,QAAS,IAAM,EAAQ,GAAI,UAAU,8IAChE,GADU,aAU7B,kBA5Ke,SAAS,EAEtB,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,8CACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,QAAQ,CAAA,UACP,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAA,MAIT","ignoreList":[3]}
@@ -0,0 +1,3 @@
1
+ module.exports=[648102,a=>{"use strict";var b=a.i(662145),c=a.i(174897),d=a.i(913975),e=a.i(544394),f=a.i(210436),g=a.i(817163);function h(){let{rootParam:a,refresh:b,setEditorSettings:d,setAutoRefreshSeconds:h,autoRefreshSeconds:i}=(0,e.useApp)(),j=(0,c.useRef)(null);return(0,c.useEffect)(()=>{if(!a)return;let b=!1;return fetch(`/api/settings${a}&type=settings`).then(a=>a.ok?a.json():g.DEFAULT_SETTINGS).then(a=>{b||((0,f.applyTheme)(a.theme),(0,f.applyAccent)(a.accentColor),(0,f.applyFontSize)(a.fontSize),(0,f.applyFonts)(a),d(a.editor),h(a.project?.autoRefresh??0))}).catch(()=>{}),()=>{b=!0}},[a]),(0,c.useEffect)(()=>(j.current&&clearInterval(j.current),i>0&&(j.current=setInterval(b,1e3*i)),()=>{j.current&&(clearInterval(j.current),j.current=null)}),[i,b]),null}function i(){return(0,b.jsx)("div",{className:"min-h-screen flex items-center justify-center",children:(0,b.jsxs)("div",{className:"text-center",children:[(0,b.jsx)("div",{className:"flex gap-1.5 justify-center mb-4",children:[0,1,2].map(a=>(0,b.jsx)("div",{className:"w-2 h-2 rounded-full bg-accent animate-pulse-dot",style:{animationDelay:`${.15*a}s`}},a))}),(0,b.jsx)("p",{className:"text-muted text-sm font-mono",children:"Loading project..."})]})})}var j=a.i(685698),k=a.i(335732);function l({projects:a,activeProject:c,currentName:d,onSelect:e}){return(0,b.jsxs)(k.DropdownMenu,{children:[(0,b.jsx)(k.DropdownMenuTrigger,{asChild:!0,children:(0,b.jsxs)("button",{className:"flex items-center gap-1.5 px-3 py-1.5 rounded-md bg-surface2 border border-border text-sm hover:border-border2 transition-colors",children:[(0,b.jsx)("span",{className:"text-txt font-medium truncate max-w-[200px]",children:d||"Select project"}),(0,b.jsx)("span",{className:"text-muted text-xs",children:"▾"})]})}),(0,b.jsx)(k.DropdownMenuContent,{className:"w-64 bg-surface border-border2 text-txt",align:"start",children:0===a.length?(0,b.jsx)("div",{className:"px-3 py-2 text-sm text-muted",children:"No projects found"}):a.map(a=>(0,b.jsx)(k.DropdownMenuItem,{onClick:()=>e(a.root),className:`cursor-pointer hover:bg-surface2 focus:bg-surface2 ${a.root===c?"text-accent":""}`,children:(0,b.jsxs)("div",{children:[(0,b.jsx)("div",{className:"font-medium",children:a.name}),(0,b.jsx)("div",{className:"text-xs text-muted truncate font-mono",children:a.root})]})},a.root))})]})}var m=a.i(786304);function n({board:a}){return(0,b.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,b.jsxs)(m.Badge,{variant:"secondary",className:"gap-1 text-xs font-mono text-amber",children:["🔨 ",a["in-progress"]||0]}),(0,b.jsxs)(m.Badge,{variant:"secondary",className:"gap-1 text-xs font-mono text-muted",children:["📋 ",a.todo||0]}),(0,b.jsxs)(m.Badge,{variant:"secondary",className:"gap-1 text-xs font-mono text-teal",children:["✅ ",a.done||0]})]})}var o=a.i(368114);function p({active:a}){return(0,b.jsxs)("div",{className:"flex items-center gap-1.5 text-xs font-mono text-muted",children:[(0,b.jsx)("div",{className:(0,o.cn)("w-1.5 h-1.5 rounded-full transition-colors duration-500",a?"bg-teal shadow-[0_0_6px_#4fd8b4]":"bg-border2")}),(0,b.jsx)("span",{children:a?"live update":"connected"})]})}var q=a.i(776692),r=a.i(142261),s=a.i(256857);let t={name:"panel-left",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}],["path",{d:"M9 3v18",key:"fh3hqa"}]],aliases:["sidebar"]};t.node;let u=(0,s.default)(t);var v=a.i(699570),w=a.i(866718),x=a.i(505084),y=a.i(757061);function z({className:a,...c}){return(0,b.jsx)("div",{className:(0,o.cn)("animate-pulse rounded-md bg-surface2",a),...c})}var A=a.i(785259);let B=c.createContext(null);function C(){let a=c.useContext(B);if(!a)throw Error("useSidebar must be used within a SidebarProvider.");return a}let D=c.forwardRef(({defaultOpen:a=!0,open:d,onOpenChange:e,className:f,style:g,children:h,...i},j)=>{let k=function(){let[a,b]=c.useState(void 0);return c.useEffect(()=>{let a=window.matchMedia("(max-width: 767px)"),c=()=>{b(window.innerWidth<768)};return a.addEventListener("change",c),b(window.innerWidth<768),()=>a.removeEventListener("change",c)},[]),!!a}(),[l,m]=c.useState(!1),[n,p]=c.useState(a),q=d??n,r=c.useCallback(a=>{let b="function"==typeof a?a(q):a;e?e(b):p(b),document.cookie=`sidebar_state=${b}; path=/; max-age=604800`},[e,q]),s=c.useCallback(()=>k?m(a=>!a):r(a=>!a),[k,r,m]);c.useEffect(()=>{let a=a=>{"b"===a.key&&(a.metaKey||a.ctrlKey)&&(a.preventDefault(),s())};return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[s]);let t=q?"expanded":"collapsed",u=c.useMemo(()=>({state:t,open:q,setOpen:r,isMobile:k,openMobile:l,setOpenMobile:m,toggleSidebar:s}),[t,q,r,k,l,m,s]);return(0,b.jsx)(B.Provider,{value:u,children:(0,b.jsx)(A.TooltipProvider,{delayDuration:0,children:(0,b.jsx)("div",{style:{"--sidebar-width":"16rem","--sidebar-width-icon":"3rem",...g},className:(0,o.cn)("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",f),ref:j,...i,children:h})})})});D.displayName="SidebarProvider";let E=c.forwardRef(({side:a="left",variant:c="sidebar",collapsible:d="offcanvas",className:e,children:f,...g},h)=>{let{isMobile:i,state:j,openMobile:k,setOpenMobile:l}=C();return"none"===d?(0,b.jsx)("div",{className:(0,o.cn)("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",e),ref:h,...g,children:f}):i?(0,b.jsx)(y.Sheet,{open:k,onOpenChange:l,...g,children:(0,b.jsxs)(y.SheetContent,{"data-sidebar":"sidebar","data-mobile":"true",className:"w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{"--sidebar-width":"18rem"},side:a,children:[(0,b.jsxs)(y.SheetHeader,{className:"sr-only",children:[(0,b.jsx)(y.SheetTitle,{children:"Sidebar"}),(0,b.jsx)(y.SheetDescription,{children:"Displays the mobile sidebar."})]}),(0,b.jsx)("div",{className:"flex h-full w-full flex-col",children:f})]})}):(0,b.jsxs)("div",{ref:h,className:"group peer hidden text-sidebar-foreground md:block","data-state":j,"data-collapsible":"collapsed"===j?d:"","data-variant":c,"data-side":a,children:[(0,b.jsx)("div",{className:(0,o.cn)("relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0","group-data-[side=right]:rotate-180","floating"===c||"inset"===c?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),(0,b.jsx)("div",{className:(0,o.cn)("fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex","left"===a?"left-0 group-data-[collapsible=offcanvas]:-left-(--sidebar-width)":"right-0 group-data-[collapsible=offcanvas]:-right-(--sidebar-width)","floating"===c||"inset"===c?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l",e),...g,children:(0,b.jsx)("div",{"data-sidebar":"sidebar",className:"flex h-full w-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow-sm",children:f})})]})});E.displayName="Sidebar";let F=c.forwardRef(({className:a,onClick:c,...d},e)=>{let{toggleSidebar:f}=C();return(0,b.jsxs)(v.Button,{ref:e,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:(0,o.cn)("h-7 w-7",a),onClick:a=>{c?.(a),f()},...d,children:[(0,b.jsx)(u,{}),(0,b.jsx)("span",{className:"sr-only",children:"Toggle Sidebar"})]})});F.displayName="SidebarTrigger",c.forwardRef(({className:a,...c},d)=>{let{toggleSidebar:e}=C();return(0,b.jsx)("button",{ref:d,"data-sidebar":"rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:e,title:"Toggle Sidebar",className:(0,o.cn)("absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-[translate,background-color] ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full hover:group-data-[collapsible=offcanvas]:bg-sidebar","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",a),...c})}).displayName="SidebarRail";let G=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("main",{ref:d,className:(0,o.cn)("relative flex w-full flex-1 flex-col bg-bg","md:peer-data-[variant=inset]:m-2 md:peer-data-[variant=inset]:peer-data-[state=collapsed]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow-sm",a),...c}));G.displayName="SidebarInset",c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(w.Input,{ref:d,"data-sidebar":"input",className:(0,o.cn)("h-8 w-full bg-bg shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",a),...c})).displayName="SidebarInput";let H=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{ref:d,"data-sidebar":"header",className:(0,o.cn)("flex flex-col gap-2 p-2",a),...c}));H.displayName="SidebarHeader",c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{ref:d,"data-sidebar":"footer",className:(0,o.cn)("flex flex-col gap-2 p-2",a),...c})).displayName="SidebarFooter";let I=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)(x.Separator,{ref:d,"data-sidebar":"separator",className:(0,o.cn)("mx-2 w-auto bg-sidebar-border",a),...c}));I.displayName="SidebarSeparator";let J=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{ref:d,"data-sidebar":"content",className:(0,o.cn)("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden",a),...c}));J.displayName="SidebarContent";let K=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{ref:d,"data-sidebar":"group",className:(0,o.cn)("relative flex w-full min-w-0 flex-col p-2",a),...c}));K.displayName="SidebarGroup";let L=c.forwardRef(({className:a,asChild:c=!1,...d},e)=>{let f=c?q.Slot:"div";return(0,b.jsx)(f,{ref:e,"data-sidebar":"group-label",className:(0,o.cn)("flex h-8 shrink-0 items-center rounded-md px-2 text-xs font-medium text-sidebar-foreground/70 outline-hidden ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",a),...d})});L.displayName="SidebarGroupLabel";let M=c.forwardRef(({className:a,asChild:c=!1,...d},e)=>{let f=c?q.Slot:"button";return(0,b.jsx)(f,{ref:e,"data-sidebar":"group-action",className:(0,o.cn)("absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 md:after:hidden","group-data-[collapsible=icon]:hidden",a),...d})});M.displayName="SidebarGroupAction";let N=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{ref:d,"data-sidebar":"group-content",className:(0,o.cn)("w-full text-sm",a),...c}));N.displayName="SidebarGroupContent";let O=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("ul",{ref:d,"data-sidebar":"menu",className:(0,o.cn)("flex w-full min-w-0 flex-col gap-1",a),...c}));O.displayName="SidebarMenu";let P=c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("li",{ref:d,"data-sidebar":"menu-item",className:(0,o.cn)("group/menu-item relative",a),...c}));P.displayName="SidebarMenuItem";let Q=(0,r.cva)("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-hidden ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-data-[sidebar=menu-action]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"hover:bg-sidebar-accent hover:text-sidebar-accent-foreground",outline:"bg-bg shadow-[0_0_0_1px_rgb(var(--rgb-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_rgb(var(--rgb-surface2))]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:p-0!"}},defaultVariants:{variant:"default",size:"default"}}),R=c.forwardRef(({asChild:a=!1,isActive:c=!1,variant:d="default",size:e="default",tooltip:f,className:g,...h},i)=>{let j=a?q.Slot:"button",{isMobile:k,state:l}=C(),m=(0,b.jsx)(j,{ref:i,"data-sidebar":"menu-button","data-size":e,"data-active":c,className:(0,o.cn)(Q({variant:d,size:e}),g),...h});return f?("string"==typeof f&&(f={children:f}),(0,b.jsxs)(A.Tooltip,{children:[(0,b.jsx)(A.TooltipTrigger,{asChild:!0,children:m}),(0,b.jsx)(A.TooltipContent,{side:"right",align:"center",hidden:"collapsed"!==l||k,...f})]})):m});R.displayName="SidebarMenuButton",c.forwardRef(({className:a,asChild:c=!1,showOnHover:d=!1,...e},f)=>{let g=c?q.Slot:"button";return(0,b.jsx)(g,{ref:f,"data-sidebar":"menu-action",className:(0,o.cn)("absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-hidden ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 md:after:hidden","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",d&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-sidebar-accent-foreground md:opacity-0",a),...e})}).displayName="SidebarMenuAction",c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("div",{ref:d,"data-sidebar":"menu-badge",className:(0,o.cn)("pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground","peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",a),...c})).displayName="SidebarMenuBadge",c.forwardRef(({className:a,showIcon:d=!1,...e},f)=>{let g=c.useMemo(()=>`${Math.floor(40*Math.random())+50}%`,[]);return(0,b.jsxs)("div",{ref:f,"data-sidebar":"menu-skeleton",className:(0,o.cn)("flex h-8 items-center gap-2 rounded-md px-2",a),...e,children:[d&&(0,b.jsx)(z,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),(0,b.jsx)(z,{className:"h-4 max-w-(--skeleton-width) flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":g}})]})}).displayName="SidebarMenuSkeleton",c.forwardRef(({className:a,...c},d)=>(0,b.jsx)("ul",{ref:d,"data-sidebar":"menu-sub",className:(0,o.cn)("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5","group-data-[collapsible=icon]:hidden",a),...c})).displayName="SidebarMenuSub",c.forwardRef(({...a},c)=>(0,b.jsx)("li",{ref:c,...a})).displayName="SidebarMenuSubItem",c.forwardRef(({asChild:a=!1,size:c="md",isActive:d,className:e,...f},g)=>{let h=a?q.Slot:"a";return(0,b.jsx)(h,{ref:g,"data-sidebar":"menu-sub-button","data-size":c,"data-active":d,className:(0,o.cn)("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-hidden ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground","data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground","sm"===c&&"text-xs","md"===c&&"text-sm","group-data-[collapsible=icon]:hidden",e),...f})}).displayName="SidebarMenuSubButton";var S=a.i(689101);function T({summary:a,projects:c,activeProject:d,liveIndicator:e,onProjectChange:f,onToggleChat:g}){let h=(0,S.useOrigin)().replace(/^https?:\/\//,""),i=(0,j.useChats)().waitingCount;return(0,b.jsxs)("header",{className:"h-12 border-b border-border flex items-center px-4 gap-4 shrink-0 bg-surface/80 backdrop-blur-xs sticky top-0 z-50",children:[(0,b.jsx)(F,{className:"-ml-1"}),(0,b.jsx)(x.Separator,{orientation:"vertical",className:"mr-2 h-4"}),(0,b.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,b.jsx)("div",{className:"w-6 h-6 rounded-md bg-linear-to-br from-accent to-teal flex items-center justify-center text-xs",children:"⬡"}),(0,b.jsx)("span",{className:"font-mono text-xs text-muted tracking-widest uppercase",children:"VibeDoc"})]}),(0,b.jsx)(l,{projects:c,activeProject:d,currentName:a?.name||"",onSelect:f}),a&&(0,b.jsx)(n,{board:a.tasks.board}),(0,b.jsx)("div",{className:"flex-1"}),(0,b.jsx)(p,{active:e}),(0,b.jsxs)("button",{onClick:g,title:i?`Agent chat (c) \xb7 ${i} waiting for you`:"Agent chat (c)",className:"relative px-2 py-1 rounded-sm border border-border bg-surface2 text-xs font-mono text-muted hover:text-txt",children:["Agent",i>0&&(0,b.jsx)("span",{"aria-label":`${i} waiting for you`,className:"absolute -right-1.5 -top-1.5 min-w-4 h-4 px-1 rounded-full bg-amber text-bg text-[10px] leading-4 font-semibold text-center",children:i})]}),(0,b.jsxs)("div",{className:"hidden md:flex items-center gap-1.5 px-2 py-1 rounded-sm bg-surface2 border border-border",children:[(0,b.jsx)("span",{className:"text-xs font-mono text-muted",children:"MCP"}),(0,b.jsxs)("code",{className:"text-xs font-mono text-accent",children:[h,"/api/mcp"]})]})]})}let U={name:"layout-dashboard",size:24,node:[["rect",{width:"7",height:"9",x:"3",y:"3",rx:"1",key:"10lvy0"}],["rect",{width:"7",height:"5",x:"14",y:"3",rx:"1",key:"16une8"}],["rect",{width:"7",height:"9",x:"14",y:"12",rx:"1",key:"1hutg5"}],["rect",{width:"7",height:"5",x:"3",y:"16",rx:"1",key:"ldoo1y"}]]};U.node;let V=(0,s.default)(U);var W=a.i(508817),X=a.i(879136);let Y={name:"brain",size:24,node:[["path",{d:"M12 18V5",key:"adv99a"}],["path",{d:"M15 13a4.17 4.17 0 0 1-3-4 4.17 4.17 0 0 1-3 4",key:"1e3is1"}],["path",{d:"M17.598 6.5A3 3 0 1 0 12 5a3 3 0 1 0-5.598 1.5",key:"1gqd8o"}],["path",{d:"M17.997 5.125a4 4 0 0 1 2.526 5.77",key:"iwvgf7"}],["path",{d:"M18 18a4 4 0 0 0 2-7.464",key:"efp6ie"}],["path",{d:"M19.967 17.483A4 4 0 1 1 12 18a4 4 0 1 1-7.967-.517",key:"1gq6am"}],["path",{d:"M6 18a4 4 0 0 1-2-7.464",key:"k1g0md"}],["path",{d:"M6.003 5.125a4 4 0 0 0-2.526 5.77",key:"q97ue3"}]]};Y.node;let Z=(0,s.default)(Y),$={name:"circle-dot",size:24,node:[["circle",{cx:"12",cy:"12",r:"1",key:"41hilf"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]};$.node;let _=(0,s.default)($),aa={name:"ban",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M4.929 4.929 19.07 19.071",key:"196cmz"}]]};aa.node;let ab=(0,s.default)(aa),ac={name:"clipboard-list",size:24,node:[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}],["path",{d:"M12 11h4",key:"1jrz19"}],["path",{d:"M12 16h4",key:"n85exb"}],["path",{d:"M8 11h.01",key:"1dfujw"}],["path",{d:"M8 16h.01",key:"18s6g9"}]]};ac.node;let ad=(0,s.default)(ac),ae={name:"circle-check",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 9-5.5 5.5L8 12",key:"xofnsj"}]],aliases:["check-circle-2"]};ae.node;let af=(0,s.default)(ae);var ag=a.i(966420);let ah={name:"folder-tree",size:24,node:[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]]};ah.node;let ai=(0,s.default)(ah);var aj=a.i(899593),ak=a.i(822404),al=a.i(795667);let am={name:"messages-square",size:24,node:[["path",{d:"M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z",key:"1n2ejm"}],["path",{d:"M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1",key:"1qfcsi"}]]};am.node;let an=(0,s.default)(am);var ao=a.i(200382),ap=a.i(598984),aq=a.i(107742);function ar(){return(0,b.jsx)(c.Suspense,{children:(0,b.jsx)(as,{})})}function as(){let{chats:a,loaded:c,modalId:e,show:f,create:g,waitingCount:h,runningCount:i}=(0,j.useChats)(),k=(0,d.usePathname)(),l=(0,d.useSearchParams)().get("id"),m=(0,aq.groupChats)(a),n=[...m.needsYou,...m.running,...m.recent.slice(0,4)],p=a.length-n.length;return(0,b.jsxs)(K,{role:"group","aria-label":"Agent chats",children:[(0,b.jsxs)(L,{className:"gap-2",children:["Agents",i>0&&(0,b.jsxs)("span",{className:"font-mono text-[10px] normal-case tracking-normal text-accent",children:[i," running"]})]}),(0,b.jsxs)(M,{title:"New chat",onClick:()=>f(g()),children:[(0,b.jsx)(ao.Plus,{}),(0,b.jsx)("span",{className:"sr-only",children:"New chat"})]}),(0,b.jsx)(N,{children:(0,b.jsxs)(O,{children:[(0,b.jsx)(P,{className:"hidden group-data-[collapsible=icon]:block",children:(0,b.jsx)(R,{asChild:!0,tooltip:h?`Agents \xb7 ${h} waiting for you`:"Agents",isActive:"/chat"===k,children:(0,b.jsxs)(ak.default,{href:"/chat",className:"relative",children:[(0,b.jsx)(al.Bot,{}),(0,b.jsx)("span",{children:"Agents"}),h>0&&(0,b.jsx)("span",{className:"absolute right-1 top-1 size-1.5 rounded-full bg-amber animate-pulse-dot"})]})})}),c&&0===a.length&&(0,b.jsx)(P,{className:"group-data-[collapsible=icon]:hidden",children:(0,b.jsxs)(R,{onClick:()=>f(g()),className:"text-muted",children:[(0,b.jsx)(an,{}),(0,b.jsx)("span",{children:"Start a chat"})]})}),n.map(a=>{let c,d=(0,aq.chatStatus)(a);return(0,b.jsx)(P,{className:"group-data-[collapsible=icon]:hidden animate-slide-in",children:(0,b.jsxs)(R,{onClick:()=>f(a.id),isActive:e===(c=a.id)||"/chat"===k&&l===c,className:(0,o.cn)("h-8","idle"===d&&"text-muted"),title:a.title,children:[(0,b.jsx)(ap.StatusMarker,{status:d,showIdle:!0}),(0,b.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.title}),a.attach&&(0,b.jsx)(ap.AttachLabel,{attach:a.attach,className:"shrink-0 text-muted"})]})},a.id)}),a.length>0&&(0,b.jsx)(P,{className:"group-data-[collapsible=icon]:hidden",children:(0,b.jsx)(R,{asChild:!0,isActive:"/chat"===k&&!l,className:"h-7 text-xs text-muted",children:(0,b.jsxs)(ak.default,{href:"/chat",children:[(0,b.jsx)(an,{}),(0,b.jsx)("span",{children:p>0?`All chats \xb7 ${a.length}`:"All chats"})]})})})]})})]})}let at=[{href:"/board",icon:V,label:"Board"},{href:"/roadmap",icon:aj.Map,label:"Roadmap"},{href:"/docs",icon:W.BookOpen,label:"Docs"},{href:"/activity",icon:X.Zap,label:"Activity"},{href:"/memory",icon:Z,label:"Memory"},{href:"/explorer",icon:ai,label:"Explorer"},{href:"/settings",icon:ag.Settings,label:"Settings"}],au=[{status:"in-progress",icon:_,label:"Active"},{status:"blocked",icon:ab,label:"Blocked"},{status:"todo",icon:ad,label:"Todo"},{status:"done",icon:af,label:"Done"}];function av({board:a}){let c=(0,d.usePathname)();return(0,b.jsxs)(E,{collapsible:"icon",children:[(0,b.jsx)(H,{children:(0,b.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1",children:[(0,b.jsx)("div",{className:"w-6 h-6 rounded-md bg-linear-to-br from-accent to-teal flex items-center justify-center text-xs shrink-0",children:"⬡"}),(0,b.jsx)("span",{className:"font-mono text-xs text-muted tracking-widest uppercase group-data-[collapsible=icon]:hidden",children:"VibeDoc"})]})}),(0,b.jsxs)(J,{children:[(0,b.jsx)(K,{children:(0,b.jsx)(N,{children:(0,b.jsx)(O,{children:at.map(({href:a,icon:d,label:e})=>(0,b.jsx)(P,{children:(0,b.jsx)(R,{asChild:!0,isActive:c.startsWith(a),tooltip:e,children:(0,b.jsxs)(ak.default,{href:a,children:[(0,b.jsx)(d,{}),(0,b.jsx)("span",{children:e})]})})},a))})})}),(0,b.jsx)(I,{}),(0,b.jsx)(ar,{}),a&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(I,{}),(0,b.jsxs)(K,{children:[(0,b.jsx)(L,{children:"Board"}),(0,b.jsx)(N,{children:(0,b.jsx)(O,{children:au.map(({status:c,icon:d,label:e})=>{let f=a[c]?.length||0;return(0,b.jsx)(P,{children:(0,b.jsxs)(R,{tooltip:`${e}: ${f}`,children:[(0,b.jsx)(d,{}),(0,b.jsx)("span",{children:e}),(0,b.jsx)("span",{className:"ml-auto font-mono text-xs",children:f})]})},c)})})})]})]})]})]})}var aw=a.i(72551);let ax={name:"file-plus",size:24,node:[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M9 15h6",key:"cctwl0"}],["path",{d:"M12 18v-6",key:"17g6i2"}]]};ax.node;let ay=(0,s.default)(ax),az={name:"activity",size:24,node:[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]]};az.node;let aA=(0,s.default)(az);var aB=a.i(814574),aC=a.i(269876);function aD({open:a,onClose:e,onOpenDoc:f,onNewDoc:g,rootParam:h}){let i=(0,d.useRouter)(),[j,k]=(0,c.useState)(""),[l,m]=(0,c.useState)([]),[n,p]=(0,c.useState)(0),q=[{label:"New Doc",icon:ay,action:()=>{g?.(),e()}},{label:"Go to Board",icon:V,action:()=>{i.push("/board"),e()}},{label:"Go to Roadmap",icon:aj.Map,action:()=>{i.push("/roadmap"),e()}},{label:"Go to Activity",icon:aA,action:()=>{i.push("/activity"),e()}},{label:"Go to Memory",icon:Z,action:()=>{i.push("/memory"),e()}}];function r(a){f(a.path),e()}(0,c.useEffect)(()=>{a||(k(""),m([]),p(0))},[a]),(0,c.useEffect)(()=>{if(j.length<2){m([]),p(0);return}let a=setTimeout(async()=>{try{let a=await fetch(`/api/docs${h}&q=${encodeURIComponent(j)}`),b=await a.json();m(b.results?.map(a=>({path:a.file,section:a.file.split("/").slice(0,-1).join("/"),name:a.file.split("/").pop()?.replace(/\.md$/,"")??a.file}))??[]),p(0)}catch{}},300);return()=>clearTimeout(a)},[j,h]);let s=""===j;return(0,b.jsx)(aB.Dialog,{open:a,onOpenChange:a=>{a||e()},children:(0,b.jsxs)(aB.DialogContent,{className:"max-w-lg p-0 overflow-hidden bg-surface border-border gap-0",children:[(0,b.jsx)(aB.DialogTitle,{className:"sr-only",children:"Command Palette"}),(0,b.jsxs)("div",{className:"flex items-center px-4 h-12",children:[(0,b.jsx)(aw.Search,{className:"h-4 w-4 text-muted shrink-0 mr-3"}),(0,b.jsx)(w.Input,{autoFocus:!0,value:j,onChange:a=>k(a.target.value),onKeyDown:function(a){let b=l.length>0,c=b?l.length:q.length;"ArrowDown"===a.key?(a.preventDefault(),p(a=>Math.min(a+1,c-1))):"ArrowUp"===a.key?(a.preventDefault(),p(a=>Math.max(a-1,0))):"Enter"===a.key&&(b&&l[n]?r(l[n]):!b&&j.length<2&&q[n]&&q[n].action())},placeholder:"Search docs…",className:"border-0 bg-transparent h-full text-sm shadow-none focus-visible:ring-0 px-0 placeholder:text-muted"})]}),(0,b.jsx)("div",{className:"border-t border-border"}),(0,b.jsxs)(aC.ScrollArea,{className:"max-h-72",children:[s&&(0,b.jsx)("div",{className:"py-1",children:q.map((a,c)=>(0,b.jsxs)("button",{onClick:a.action,onMouseEnter:()=>p(c),className:(0,o.cn)("flex items-center gap-3 w-full px-4 py-2 text-sm text-left transition-colors",n===c?"bg-accent/10 text-txt":"text-muted hover:text-txt"),children:[(0,b.jsx)(a.icon,{className:"h-4 w-4 shrink-0"}),a.label]},a.label))}),!s&&l.length>0&&(0,b.jsx)("div",{className:"py-1",children:l.map((a,c)=>(0,b.jsxs)("button",{onClick:()=>r(a),onMouseEnter:()=>p(c),className:(0,o.cn)("flex items-center justify-between w-full px-4 py-2 text-sm text-left transition-colors",n===c?"bg-accent/10":"hover:bg-accent/5"),children:[(0,b.jsx)("span",{className:"font-medium text-txt truncate",children:a.name}),a.section&&(0,b.jsx)("span",{className:"text-xs text-muted ml-3 shrink-0 truncate max-w-[40%]",children:a.section})]},a.path))}),!s&&j.length>=2&&0===l.length&&(0,b.jsx)("div",{className:"px-4 py-6 text-center text-sm text-muted",children:"No docs found"})]})]})})}var aE=a.i(926128);let aF=/[/\-_. ]/;function aG({open:a,onClose:d,onOpenDoc:e,rootParam:f}){let[g,h]=(0,c.useState)([]),[i,j]=(0,c.useState)(""),[k,l]=(0,c.useState)(0),m=(0,c.useRef)(null),[n,p]=(0,c.useState)(a);a!==n&&(p(a),a&&(j(""),l(0))),(0,c.useEffect)(()=>{a&&fetch(`/api/docs${f}`).then(a=>a.json()).then(a=>h(Array.isArray(a)?a:[])).catch(()=>h([]))},[a,f]);let q=(0,c.useMemo)(()=>{var a;return a=a=>a.path,g.map(b=>({item:b,path:a(b),score:function(a,b){let c=a.toLowerCase().replace(/\s+/g,"");if(!c)return 0;let d=b.toLowerCase(),e=null;for(let a=d.indexOf(c[0]);-1!==a;a=d.indexOf(c[0],a+1)){let b=function(a,b,c){let d=b.lastIndexOf("/")+1,e=0,f=0,g=-2;for(let h=c;h<b.length&&f<a.length;h++)b[h]===a[f]&&(e+=1,h===g+1&&(e+=5),(0===h||aF.test(b[h-1]))&&(e+=8),h>=d&&(e+=3),g=h,f++);return f===a.length?e:null}(c,d,a);null!==b&&(null===e||b>e)&&(e=b)}return e}(i,a(b))})).filter(a=>null!==a.score).sort((a,b)=>b.score-a.score||a.path.length-b.path.length).map(a=>a.item)},[i,g]),r=q.slice(0,50);function s(a){a&&(e(a.path),d())}return(0,c.useEffect)(()=>{m.current?.querySelector(`[data-index="${k}"]`)?.scrollIntoView({block:"nearest"})},[k]),(0,b.jsx)(aB.Dialog,{open:a,onOpenChange:a=>{a||d()},children:(0,b.jsxs)(aB.DialogContent,{className:"max-w-xl p-0 overflow-hidden bg-surface border-border gap-0 top-[20%] translate-y-0",children:[(0,b.jsx)(aB.DialogTitle,{className:"sr-only",children:"Go to file"}),(0,b.jsx)(w.Input,{autoFocus:!0,value:i,onChange:a=>{j(a.target.value),l(0)},onKeyDown:function(a){"ArrowDown"===a.key||a.ctrlKey&&"n"===a.key?(a.preventDefault(),l(a=>Math.min(a+1,r.length-1))):"ArrowUp"===a.key||a.ctrlKey&&"p"===a.key?(a.preventDefault(),l(a=>Math.max(a-1,0))):"Enter"===a.key&&(a.preventDefault(),s(r[k]))},placeholder:"Go to file…",className:"h-11 rounded-none border-0 border-b border-border bg-transparent px-4 text-sm shadow-none focus-visible:ring-0 placeholder:text-muted"}),(0,b.jsxs)("div",{ref:m,className:"max-h-80 overflow-y-auto py-1",children:[r.map((a,c)=>{let d=a.path.lastIndexOf("/");return(0,b.jsxs)("button",{"data-index":c,onClick:()=>s(a),onMouseMove:()=>l(c),className:(0,o.cn)("flex items-center gap-2.5 w-full px-4 py-1.5 text-left text-sm transition-colors",k===c?"bg-accent/10 text-txt":"text-muted"),children:[(0,b.jsx)(aE.FileText,{className:"h-3.5 w-3.5 shrink-0 opacity-60"}),(0,b.jsx)("span",{className:"truncate text-txt",children:a.path.slice(d+1)}),d>0&&(0,b.jsx)("span",{className:"truncate text-xs text-muted",children:a.path.slice(0,d)})]},a.path)}),0===r.length&&(0,b.jsx)("div",{className:"px-4 py-6 text-center text-sm text-muted",children:"No matching files"}),q.length>50&&(0,b.jsxs)("div",{className:"px-4 py-1.5 text-xs text-muted",children:[q.length-50," more — keep typing to narrow"]})]})]})})}var aH=a.i(877468),aI=a.i(712125);function aJ(){let{chats:a,modalId:c,closeModal:e}=(0,j.useChats)(),f=(0,d.useRouter)(),g=a.find(a=>a.id===c)?.title??"Chat";return(0,b.jsx)(aB.Dialog,{open:!!c,onOpenChange:a=>{a||e()},children:(0,b.jsxs)(aB.DialogContent,{"aria-describedby":void 0,className:"flex h-[min(82vh,780px)] w-[calc(100vw-2rem)] flex-col gap-0 overflow-hidden rounded-xl p-0 shadow-2xl sm:max-w-3xl sm:rounded-xl",children:[(0,b.jsx)(aB.DialogTitle,{className:"sr-only",children:g}),c&&(0,b.jsx)(aI.ChatView,{chatId:c,variant:"modal",onNavigate:e,onExpand:()=>{e({keep:!0}),f.push(`/chat?id=${encodeURIComponent(c)}`)}})]})})}let aK=[{key:"Cmd+K",description:"Open command palette"},{key:"Cmd+P",description:"Go to file"},{key:"b",description:"Go to Board"},{key:"d",description:"Go to Docs"},{key:"a",description:"Go to Activity"},{key:"m",description:"Go to Memory"},{key:"e",description:"Go to Explorer"},{key:"c",description:"Open agent chat"},{key:"/",description:"Focus doc search"},{key:"?",description:"Toggle this help"},{key:"Esc",description:"Close panel / modal"}];function aL({children:a}){let{loading:f,summary:g,projects:h,activeProject:k,liveIndicator:l,onProjectChange:m,board:n,openDoc:o,rootParam:p}=(0,e.useApp)(),q=(0,d.useRouter)(),r=(0,d.usePathname)(),[s,t]=(0,c.useState)(!1),[u,v]=(0,c.useState)(!1),[w,x]=(0,c.useState)(!1),[y,z]=(0,c.useState)(!1),{modalId:A,closeModal:B,showDefault:C}=(0,j.useChats)();return((0,c.useEffect)(()=>{function a(a){if((a.metaKey||a.ctrlKey)&&"k"===a.key){a.preventDefault(),v(a=>!a);return}if((a.metaKey||a.ctrlKey)&&"p"===a.key){a.preventDefault(),v(!1),x(a=>!a);return}let b=a.target?.tagName;if("INPUT"!==b&&"TEXTAREA"!==b)switch(a.key){case"b":q.push("/board");break;case"d":q.push("/docs");break;case"a":q.push("/activity");break;case"m":q.push("/memory");break;case"e":q.push("/explorer");break;case"c":a.preventDefault(),A?B():C();break;case"?":t(a=>!a);break;case"Escape":t(!1);break;case"/":a.preventDefault(),"/docs"===r?document.getElementById("doc-search")?.focus():q.push("/docs")}}return window.addEventListener("keydown",a),()=>window.removeEventListener("keydown",a)},[q,r,A,B,C]),f)?(0,b.jsx)(i,{}):(0,b.jsxs)(D,{children:[(0,b.jsx)(av,{board:n}),(0,b.jsxs)(G,{className:"min-w-0",children:[(0,b.jsx)(T,{summary:g,projects:h,activeProject:k,liveIndicator:l,onProjectChange:m,onToggleChat:()=>A?B():C()}),(0,b.jsx)("main",{className:"flex-1 min-h-0 overflow-y-auto",children:a}),(0,b.jsx)(aJ,{}),(0,b.jsx)(aG,{open:w,onClose:()=>x(!1),onOpenDoc:o,rootParam:p}),(0,b.jsx)(aD,{open:u,onClose:()=>v(!1),onOpenDoc:o,onNewDoc:()=>{v(!1),z(!0)},rootParam:p}),(0,b.jsx)(aH.NewDocModal,{open:y,onOpenChange:z,rootParam:p,onDocCreated:async a=>{await o(a)}}),(0,b.jsx)(aB.Dialog,{open:s,onOpenChange:t,children:(0,b.jsxs)(aB.DialogContent,{"aria-describedby":void 0,className:"block w-80 p-5 rounded-xl sm:rounded-xl shadow-2xl",children:[(0,b.jsx)(aB.DialogTitle,{className:"font-display text-sm font-semibold text-txt mb-4",children:"Keyboard shortcuts"}),(0,b.jsx)("table",{className:"w-full text-xs",children:(0,b.jsx)("tbody",{children:aK.map(({key:a,description:c})=>(0,b.jsxs)("tr",{className:"border-t border-border first:border-0",children:[(0,b.jsx)("td",{className:"py-1.5 pr-4",children:(0,b.jsx)("kbd",{className:"font-mono bg-surface2 border border-border rounded-sm px-1.5 py-0.5 text-accent",children:a})}),(0,b.jsx)("td",{className:"py-1.5 text-muted",children:c})]},a))})})]})})]})]})}a.s(["default",0,function({children:a}){return(0,b.jsxs)(e.AppProvider,{children:[(0,b.jsx)(h,{}),(0,b.jsx)(j.ChatProvider,{children:(0,b.jsx)(aL,{children:a})})]})}],648102)}];
2
+
3
+ //# sourceMappingURL=src_app_%28app%29_layout_tsx_1yu5hom._.js.map