vibedoc 1.8.0 → 1.9.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 (602) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +6 -0
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +13 -13
  5. package/.next/routes-manifest.json +36 -0
  6. package/.next/server/app/(app)/activity/page.js +2 -2
  7. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  8. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  9. package/.next/server/app/(app)/board/page.js +2 -2
  10. package/.next/server/app/(app)/board/page.js.nft.json +1 -1
  11. package/.next/server/app/(app)/board/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/(app)/chat/page.js +2 -2
  13. package/.next/server/app/(app)/chat/page.js.nft.json +1 -1
  14. package/.next/server/app/(app)/chat/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/(app)/docs/page.js +2 -2
  16. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  17. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/(app)/explorer/page.js +2 -2
  19. package/.next/server/app/(app)/explorer/page.js.nft.json +1 -1
  20. package/.next/server/app/(app)/explorer/page_client-reference-manifest.js +1 -1
  21. package/.next/server/app/(app)/manual-tests/page.js +2 -2
  22. package/.next/server/app/(app)/manual-tests/page.js.nft.json +1 -1
  23. package/.next/server/app/(app)/manual-tests/page_client-reference-manifest.js +1 -1
  24. package/.next/server/app/(app)/memory/page.js +2 -2
  25. package/.next/server/app/(app)/memory/page.js.nft.json +1 -1
  26. package/.next/server/app/(app)/memory/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/(app)/roadmap/page.js +2 -2
  28. package/.next/server/app/(app)/roadmap/page.js.nft.json +1 -1
  29. package/.next/server/app/(app)/roadmap/page_client-reference-manifest.js +1 -1
  30. package/.next/server/app/(app)/settings/page.js +2 -2
  31. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  32. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app/(app)/setup/page.js +2 -2
  34. package/.next/server/app/(app)/setup/page.js.nft.json +1 -1
  35. package/.next/server/app/(app)/setup/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/_global-error/page.js +2 -2
  37. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  38. package/.next/server/app/_global-error.html +1 -1
  39. package/.next/server/app/_global-error.rsc +1 -1
  40. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  41. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  42. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  43. package/.next/server/app/_not-found/page.js +2 -2
  44. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  45. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/_not-found.html +1 -1
  47. package/.next/server/app/_not-found.rsc +2 -2
  48. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  49. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
  50. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  51. package/.next/server/app/activity.html +1 -1
  52. package/.next/server/app/activity.rsc +22 -23
  53. package/.next/server/app/activity.segments/!KGFwcCk/activity/__PAGE__.segment.rsc +11 -9
  54. package/.next/server/app/activity.segments/_full.segment.rsc +22 -23
  55. package/.next/server/app/activity.segments/_tree.segment.rsc +2 -2
  56. package/.next/server/app/api/activity/route.js +2 -2
  57. package/.next/server/app/api/activity/route.js.nft.json +1 -1
  58. package/.next/server/app/api/backlinks/route.js +2 -2
  59. package/.next/server/app/api/backlinks/route.js.nft.json +1 -1
  60. package/.next/server/app/api/chat/route.js +3 -3
  61. package/.next/server/app/api/chat/route.js.nft.json +1 -1
  62. package/.next/server/app/api/context/route.js +2 -2
  63. package/.next/server/app/api/context/route.js.nft.json +1 -1
  64. package/.next/server/app/api/conversations/route.js +3 -3
  65. package/.next/server/app/api/conversations/route.js.nft.json +1 -1
  66. package/.next/server/app/api/decisions/route.js +2 -2
  67. package/.next/server/app/api/decisions/route.js.nft.json +1 -1
  68. package/.next/server/app/api/docs/route.js +3 -3
  69. package/.next/server/app/api/docs/route.js.nft.json +1 -1
  70. package/.next/server/app/api/explorer/route.js +3 -3
  71. package/.next/server/app/api/explorer/route.js.nft.json +1 -1
  72. package/.next/server/app/api/mcp/route.js +3 -3
  73. package/.next/server/app/api/mcp/route.js.nft.json +1 -1
  74. package/.next/server/app/api/memory/entries/delete/route/app-paths-manifest.json +3 -0
  75. package/.next/server/app/api/memory/entries/delete/route/build-manifest.json +12 -0
  76. package/.next/server/app/api/memory/entries/delete/route/server-reference-manifest.json +4 -0
  77. package/.next/server/app/api/memory/entries/delete/route.js +9 -0
  78. package/.next/server/app/api/memory/entries/delete/route.js.map +5 -0
  79. package/.next/server/app/api/memory/entries/delete/route.js.nft.json +1 -0
  80. package/.next/server/app/api/memory/entries/delete/route_client-reference-manifest.js +3 -0
  81. package/.next/server/app/api/memory/entries/restore/route/app-paths-manifest.json +3 -0
  82. package/.next/server/app/api/memory/entries/restore/route/build-manifest.json +12 -0
  83. package/.next/server/app/api/memory/entries/restore/route/server-reference-manifest.json +4 -0
  84. package/.next/server/app/api/memory/entries/restore/route.js +9 -0
  85. package/.next/server/app/api/memory/entries/restore/route.js.map +5 -0
  86. package/.next/server/app/api/memory/entries/restore/route.js.nft.json +1 -0
  87. package/.next/server/app/api/memory/entries/restore/route_client-reference-manifest.js +3 -0
  88. package/.next/server/app/api/memory/entries/route/app-paths-manifest.json +3 -0
  89. package/.next/server/app/api/memory/entries/route/build-manifest.json +12 -0
  90. package/.next/server/app/api/memory/entries/route/server-reference-manifest.json +4 -0
  91. package/.next/server/app/api/memory/entries/route.js +8 -0
  92. package/.next/server/app/api/memory/entries/route.js.map +5 -0
  93. package/.next/server/app/api/memory/entries/route.js.nft.json +1 -0
  94. package/.next/server/app/api/memory/entries/route_client-reference-manifest.js +3 -0
  95. package/.next/server/app/api/memory/entries/save/route/app-paths-manifest.json +3 -0
  96. package/.next/server/app/api/memory/entries/save/route/build-manifest.json +12 -0
  97. package/.next/server/app/api/memory/entries/save/route/server-reference-manifest.json +4 -0
  98. package/.next/server/app/api/memory/entries/save/route.js +9 -0
  99. package/.next/server/app/api/memory/entries/save/route.js.map +5 -0
  100. package/.next/server/app/api/memory/entries/save/route.js.nft.json +1 -0
  101. package/.next/server/app/api/memory/entries/save/route_client-reference-manifest.js +3 -0
  102. package/.next/server/app/api/memory/graph/route/app-paths-manifest.json +3 -0
  103. package/.next/server/app/api/memory/graph/route/build-manifest.json +12 -0
  104. package/.next/server/app/api/memory/graph/route/server-reference-manifest.json +4 -0
  105. package/.next/server/app/api/memory/graph/route.js +9 -0
  106. package/.next/server/app/api/memory/graph/route.js.map +5 -0
  107. package/.next/server/app/api/memory/graph/route.js.nft.json +1 -0
  108. package/.next/server/app/api/memory/graph/route_client-reference-manifest.js +3 -0
  109. package/.next/server/app/api/memory/history/route/app-paths-manifest.json +3 -0
  110. package/.next/server/app/api/memory/history/route/build-manifest.json +12 -0
  111. package/.next/server/app/api/memory/history/route/server-reference-manifest.json +4 -0
  112. package/.next/server/app/api/memory/history/route.js +9 -0
  113. package/.next/server/app/api/memory/history/route.js.map +5 -0
  114. package/.next/server/app/api/memory/history/route.js.nft.json +1 -0
  115. package/.next/server/app/api/memory/history/route_client-reference-manifest.js +3 -0
  116. package/.next/server/app/api/memory/route.js +2 -2
  117. package/.next/server/app/api/memory/route.js.nft.json +1 -1
  118. package/.next/server/app/api/plan/apply/route.js +3 -3
  119. package/.next/server/app/api/plan/apply/route.js.nft.json +1 -1
  120. package/.next/server/app/api/projects/route.js +2 -2
  121. package/.next/server/app/api/projects/route.js.nft.json +1 -1
  122. package/.next/server/app/api/registry/route.js +2 -2
  123. package/.next/server/app/api/registry/route.js.nft.json +1 -1
  124. package/.next/server/app/api/roadmap/create/route.js +3 -3
  125. package/.next/server/app/api/roadmap/create/route.js.nft.json +1 -1
  126. package/.next/server/app/api/roadmap/delete/route.js +3 -3
  127. package/.next/server/app/api/roadmap/delete/route.js.nft.json +1 -1
  128. package/.next/server/app/api/roadmap/generate/route.js +3 -3
  129. package/.next/server/app/api/roadmap/generate/route.js.nft.json +1 -1
  130. package/.next/server/app/api/roadmap/layout/route.js +3 -3
  131. package/.next/server/app/api/roadmap/layout/route.js.nft.json +1 -1
  132. package/.next/server/app/api/roadmap/restore/route.js +3 -3
  133. package/.next/server/app/api/roadmap/restore/route.js.nft.json +1 -1
  134. package/.next/server/app/api/roadmap/route.js +2 -2
  135. package/.next/server/app/api/roadmap/route.js.nft.json +1 -1
  136. package/.next/server/app/api/roadmap/update/route.js +3 -3
  137. package/.next/server/app/api/roadmap/update/route.js.nft.json +1 -1
  138. package/.next/server/app/api/sessions/route.js +2 -2
  139. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  140. package/.next/server/app/api/settings/route.js +2 -2
  141. package/.next/server/app/api/settings/route.js.nft.json +1 -1
  142. package/.next/server/app/api/setup/generate/route.js +4 -4
  143. package/.next/server/app/api/setup/generate/route.js.nft.json +1 -1
  144. package/.next/server/app/api/setup/write/route.js +2 -2
  145. package/.next/server/app/api/setup/write/route.js.nft.json +1 -1
  146. package/.next/server/app/api/summary/route.js +2 -2
  147. package/.next/server/app/api/summary/route.js.nft.json +1 -1
  148. package/.next/server/app/api/tasks/bulk/route.js +3 -3
  149. package/.next/server/app/api/tasks/bulk/route.js.nft.json +1 -1
  150. package/.next/server/app/api/tasks/create/route.js +2 -2
  151. package/.next/server/app/api/tasks/create/route.js.nft.json +1 -1
  152. package/.next/server/app/api/tasks/delete/route.js +3 -3
  153. package/.next/server/app/api/tasks/delete/route.js.nft.json +1 -1
  154. package/.next/server/app/api/tasks/manual-tests/route.js +2 -2
  155. package/.next/server/app/api/tasks/manual-tests/route.js.nft.json +1 -1
  156. package/.next/server/app/api/tasks/restore/route.js +3 -3
  157. package/.next/server/app/api/tasks/restore/route.js.nft.json +1 -1
  158. package/.next/server/app/api/tasks/review/route.js +3 -3
  159. package/.next/server/app/api/tasks/review/route.js.nft.json +1 -1
  160. package/.next/server/app/api/tasks/route.js +2 -2
  161. package/.next/server/app/api/tasks/route.js.nft.json +1 -1
  162. package/.next/server/app/api/tasks/update/route.js +3 -3
  163. package/.next/server/app/api/tasks/update/route.js.nft.json +1 -1
  164. package/.next/server/app/api/views/route.js +3 -3
  165. package/.next/server/app/api/views/route.js.nft.json +1 -1
  166. package/.next/server/app/board.html +1 -1
  167. package/.next/server/app/board.rsc +22 -23
  168. package/.next/server/app/board.segments/!KGFwcCk/board/__PAGE__.segment.rsc +6 -6
  169. package/.next/server/app/board.segments/_full.segment.rsc +22 -23
  170. package/.next/server/app/board.segments/_tree.segment.rsc +2 -2
  171. package/.next/server/app/chat.html +1 -1
  172. package/.next/server/app/chat.rsc +22 -23
  173. package/.next/server/app/chat.segments/!KGFwcCk/chat/__PAGE__.segment.rsc +9 -11
  174. package/.next/server/app/chat.segments/_full.segment.rsc +22 -23
  175. package/.next/server/app/chat.segments/_tree.segment.rsc +2 -2
  176. package/.next/server/app/docs.html +1 -1
  177. package/.next/server/app/docs.rsc +22 -23
  178. package/.next/server/app/docs.segments/!KGFwcCk/docs/__PAGE__.segment.rsc +6 -6
  179. package/.next/server/app/docs.segments/_full.segment.rsc +22 -23
  180. package/.next/server/app/docs.segments/_tree.segment.rsc +2 -2
  181. package/.next/server/app/explorer.html +1 -1
  182. package/.next/server/app/explorer.rsc +22 -23
  183. package/.next/server/app/explorer.segments/!KGFwcCk/explorer/__PAGE__.segment.rsc +5 -5
  184. package/.next/server/app/explorer.segments/_full.segment.rsc +22 -23
  185. package/.next/server/app/explorer.segments/_tree.segment.rsc +2 -2
  186. package/.next/server/app/index.html +1 -1
  187. package/.next/server/app/index.rsc +2 -2
  188. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  189. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  190. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  191. package/.next/server/app/manual-tests.html +1 -1
  192. package/.next/server/app/manual-tests.rsc +22 -23
  193. package/.next/server/app/manual-tests.segments/!KGFwcCk/manual-tests/__PAGE__.segment.rsc +5 -5
  194. package/.next/server/app/manual-tests.segments/_full.segment.rsc +22 -23
  195. package/.next/server/app/manual-tests.segments/_tree.segment.rsc +2 -2
  196. package/.next/server/app/memory.html +1 -1
  197. package/.next/server/app/memory.rsc +23 -23
  198. package/.next/server/app/memory.segments/!KGFwcCk/memory/__PAGE__.segment.rsc +12 -10
  199. package/.next/server/app/memory.segments/_full.segment.rsc +23 -23
  200. package/.next/server/app/memory.segments/_tree.segment.rsc +3 -2
  201. package/.next/server/app/page.js +2 -2
  202. package/.next/server/app/page.js.nft.json +1 -1
  203. package/.next/server/app/page_client-reference-manifest.js +1 -1
  204. package/.next/server/app/roadmap.html +1 -1
  205. package/.next/server/app/roadmap.rsc +22 -23
  206. package/.next/server/app/roadmap.segments/!KGFwcCk/roadmap/__PAGE__.segment.rsc +6 -6
  207. package/.next/server/app/roadmap.segments/_full.segment.rsc +22 -23
  208. package/.next/server/app/roadmap.segments/_tree.segment.rsc +2 -2
  209. package/.next/server/app/settings.html +1 -1
  210. package/.next/server/app/settings.rsc +22 -23
  211. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +10 -9
  212. package/.next/server/app/settings.segments/_full.segment.rsc +22 -23
  213. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  214. package/.next/server/app/setup.html +1 -1
  215. package/.next/server/app/setup.rsc +22 -23
  216. package/.next/server/app/setup.segments/!KGFwcCk/setup/__PAGE__.segment.rsc +5 -5
  217. package/.next/server/app/setup.segments/_full.segment.rsc +22 -23
  218. package/.next/server/app/setup.segments/_tree.segment.rsc +2 -2
  219. package/.next/server/app-paths-manifest.json +6 -0
  220. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00p3fu1._.js → 11mp_@anthropic-ai_sdk_0-_cqh8._.js} +1 -1
  221. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01jjl08._.js → 11mp_@anthropic-ai_sdk_00o5o78._.js} +1 -1
  222. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01amtux._.js → 11mp_@anthropic-ai_sdk_03cp17a._.js} +1 -1
  223. package/.next/server/chunks/{11mp_@anthropic-ai_sdk_071zfm8._.js → 11mp_@anthropic-ai_sdk_07dk2er._.js} +1 -1
  224. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0_e9zpr._.js +3 -0
  225. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0_xx_qf._.js +3 -0
  226. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0aer9lc._.js +3 -0
  227. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ax30pe._.js +3 -0
  228. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0gn7vgs._.js +3 -0
  229. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0hye94a._.js +3 -0
  230. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0ir5cgk._.js +3 -0
  231. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0je0_pa._.js +3 -0
  232. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0jfgh0o._.js +3 -0
  233. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0mha4x1._.js +3 -0
  234. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0n__boa._.js +3 -0
  235. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0sqv26_._.js +3 -0
  236. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0wnc6g-._.js +3 -0
  237. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0xh0g59._.js +3 -0
  238. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1-5wyhj._.js +3 -0
  239. package/.next/server/chunks/11mp_@anthropic-ai_sdk_13ahm3n._.js +3 -0
  240. package/.next/server/chunks/11mp_@anthropic-ai_sdk_13e6aq4._.js +3 -0
  241. package/.next/server/chunks/11mp_@anthropic-ai_sdk_14eg0ld._.js +3 -0
  242. package/.next/server/chunks/11mp_@anthropic-ai_sdk_15md1n2._.js +3 -0
  243. package/.next/server/chunks/11mp_@anthropic-ai_sdk_16av8b9._.js +3 -0
  244. package/.next/server/chunks/11mp_@anthropic-ai_sdk_16hjhv1._.js +3 -0
  245. package/.next/server/chunks/11mp_@anthropic-ai_sdk_16txvf7._.js +3 -0
  246. package/.next/server/chunks/11mp_@anthropic-ai_sdk_198yu7d._.js +3 -0
  247. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_9tfq3._.js +3 -0
  248. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1_izr2o._.js +3 -0
  249. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1fljcyg._.js +3 -0
  250. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1lrt6ul._.js +3 -0
  251. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1nev_ee._.js +3 -0
  252. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1pgoe2i._.js +3 -0
  253. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1rgl7mu._.js +3 -0
  254. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1slq49k._.js +3 -0
  255. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1slq49k._.js.map +1 -0
  256. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t9bdf0._.js +3 -0
  257. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t9bdf0._.js.map +1 -0
  258. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1u6qqm2._.js +3 -0
  259. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1u6qqm2._.js.map +1 -0
  260. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1v7ygvz._.js +3 -0
  261. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1v7ygvz._.js.map +1 -0
  262. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1wls8zc._.js +3 -0
  263. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1wls8zc._.js.map +1 -0
  264. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ywboja._.js +3 -0
  265. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ywboja._.js.map +1 -0
  266. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_00kwqu5._.js +3 -0
  267. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_01j2nrd._.js +3 -0
  268. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_05ybj3t._.js +3 -0
  269. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0adt7jj._.js +3 -0
  270. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0bnl14w._.js +3 -0
  271. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0f557t9._.js +3 -0
  272. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0ra6giw._.js +3 -0
  273. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_107cqfx._.js +3 -0
  274. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1377sl6._.js +3 -0
  275. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1_2hcok._.js +3 -0
  276. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1g--m6y._.js +3 -0
  277. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1geopi5._.js +3 -0
  278. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1i11dte._.js +3 -0
  279. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1mj3_qk._.js +3 -0
  280. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1qgy210._.js +3 -0
  281. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1rkng9q._.js +3 -0
  282. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1vr8q8y._.js +3 -0
  283. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x8b64g._.js +3 -0
  284. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x8b64g._.js.map +1 -0
  285. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1zhahf7._.js +3 -0
  286. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1zhahf7._.js.map +1 -0
  287. package/.next/server/chunks/[root-of-the-server]__008focd._.js +3 -0
  288. package/.next/server/chunks/{[root-of-the-server]__1vh9g2o._.js.map → [root-of-the-server]__008focd._.js.map} +1 -1
  289. package/.next/server/chunks/[root-of-the-server]__01xmabe._.js +3 -0
  290. package/.next/server/chunks/{[root-of-the-server]__1-e3i_5._.js.map → [root-of-the-server]__01xmabe._.js.map} +1 -1
  291. package/.next/server/chunks/[root-of-the-server]__03ogp2r._.js +3 -0
  292. package/.next/server/chunks/[root-of-the-server]__03ogp2r._.js.map +1 -0
  293. package/.next/server/chunks/[root-of-the-server]__05us508._.js +3 -0
  294. package/.next/server/chunks/{[root-of-the-server]__0vcsqzd._.js.map → [root-of-the-server]__05us508._.js.map} +1 -1
  295. package/.next/server/chunks/[root-of-the-server]__08yaps5._.js +3 -0
  296. package/.next/server/chunks/{[root-of-the-server]__1ezzeji._.js.map → [root-of-the-server]__08yaps5._.js.map} +1 -1
  297. package/.next/server/chunks/{[root-of-the-server]__11s-8eg._.js → [root-of-the-server]__09oyvwa._.js} +2 -2
  298. package/.next/server/chunks/{[root-of-the-server]__1wr0m-s._.js.map → [root-of-the-server]__09oyvwa._.js.map} +1 -1
  299. package/.next/server/chunks/[root-of-the-server]__0axugex._.js +3 -0
  300. package/.next/server/chunks/{[root-of-the-server]__0-pmfg2._.js.map → [root-of-the-server]__0axugex._.js.map} +1 -1
  301. package/.next/server/chunks/[root-of-the-server]__0b2488c._.js +3 -0
  302. package/.next/server/chunks/{[root-of-the-server]__0b5pwze._.js.map → [root-of-the-server]__0b2488c._.js.map} +1 -1
  303. package/.next/server/chunks/[root-of-the-server]__0b6w_wb._.js +3 -0
  304. package/.next/server/chunks/[root-of-the-server]__0b6w_wb._.js.map +1 -0
  305. package/.next/server/chunks/{[root-of-the-server]__04tibmn._.js → [root-of-the-server]__0cbh1s-._.js} +2 -2
  306. package/.next/server/chunks/{[root-of-the-server]__02co2yq._.js.map → [root-of-the-server]__0cbh1s-._.js.map} +1 -1
  307. package/.next/server/chunks/[root-of-the-server]__0exzf-v._.js +3 -0
  308. package/.next/server/chunks/{[root-of-the-server]__1qusy4g._.js.map → [root-of-the-server]__0exzf-v._.js.map} +1 -1
  309. package/.next/server/chunks/[root-of-the-server]__0gnil0m._.js +3 -0
  310. package/.next/server/chunks/{[root-of-the-server]__18kxo4a._.js.map → [root-of-the-server]__0gnil0m._.js.map} +1 -1
  311. package/.next/server/chunks/{[root-of-the-server]__1mrmaf9._.js → [root-of-the-server]__0hfyuhq._.js} +2 -2
  312. package/.next/server/chunks/[root-of-the-server]__0hfyuhq._.js.map +1 -0
  313. package/.next/server/chunks/[root-of-the-server]__0hg1r2b._.js +3 -0
  314. package/.next/server/chunks/{[root-of-the-server]__0q3-t8a._.js.map → [root-of-the-server]__0hg1r2b._.js.map} +1 -1
  315. package/.next/server/chunks/[root-of-the-server]__0ikbk15._.js +3 -0
  316. package/.next/server/chunks/{[root-of-the-server]__19k8t87._.js.map → [root-of-the-server]__0ikbk15._.js.map} +1 -1
  317. package/.next/server/chunks/[root-of-the-server]__0jr_5eq._.js +110 -0
  318. package/.next/server/chunks/[root-of-the-server]__0jr_5eq._.js.map +1 -0
  319. package/.next/server/chunks/[root-of-the-server]__0khz7sy._.js +3 -0
  320. package/.next/server/chunks/{[root-of-the-server]__1jxu2x9._.js.map → [root-of-the-server]__0khz7sy._.js.map} +1 -1
  321. package/.next/server/chunks/[root-of-the-server]__0lf11mz._.js +3 -0
  322. package/.next/server/chunks/{[root-of-the-server]__1lj_2cv._.js.map → [root-of-the-server]__0lf11mz._.js.map} +1 -1
  323. package/.next/server/chunks/[root-of-the-server]__0m8hmg0._.js +3 -0
  324. package/.next/server/chunks/{[root-of-the-server]__1umrorf._.js.map → [root-of-the-server]__0m8hmg0._.js.map} +1 -1
  325. package/.next/server/chunks/[root-of-the-server]__0qij7wy._.js +3 -0
  326. package/.next/server/chunks/{[root-of-the-server]__1vq38ov._.js.map → [root-of-the-server]__0qij7wy._.js.map} +1 -1
  327. package/.next/server/chunks/[root-of-the-server]__0vf-0gp._.js +3 -0
  328. package/.next/server/chunks/[root-of-the-server]__0vf-0gp._.js.map +1 -0
  329. package/.next/server/chunks/[root-of-the-server]__0x8wtot._.js +3 -0
  330. package/.next/server/chunks/{[root-of-the-server]__05g5cgo._.js.map → [root-of-the-server]__0x8wtot._.js.map} +1 -1
  331. package/.next/server/chunks/[root-of-the-server]__0y5usoz._.js +3 -0
  332. package/.next/server/chunks/{[root-of-the-server]__1-ic3af._.js.map → [root-of-the-server]__0y5usoz._.js.map} +1 -1
  333. package/.next/server/chunks/[root-of-the-server]__15c5snv._.js +3 -0
  334. package/.next/server/chunks/{[root-of-the-server]__05l6129._.js.map → [root-of-the-server]__15c5snv._.js.map} +1 -1
  335. package/.next/server/chunks/[root-of-the-server]__16u25oa._.js +3 -0
  336. package/.next/server/chunks/{[root-of-the-server]__0druay_._.js.map → [root-of-the-server]__16u25oa._.js.map} +1 -1
  337. package/.next/server/chunks/[root-of-the-server]__18dt3sr._.js +3 -0
  338. package/.next/server/chunks/{[root-of-the-server]__14aeqoi._.js.map → [root-of-the-server]__18dt3sr._.js.map} +1 -1
  339. package/.next/server/chunks/[root-of-the-server]__19rxcu4._.js +110 -0
  340. package/.next/server/chunks/[root-of-the-server]__19rxcu4._.js.map +1 -0
  341. package/.next/server/chunks/[root-of-the-server]__1_qenei._.js +3 -0
  342. package/.next/server/chunks/[root-of-the-server]__1_qenei._.js.map +1 -0
  343. package/.next/server/chunks/[root-of-the-server]__1a7d63a._.js +3 -0
  344. package/.next/server/chunks/{[root-of-the-server]__11a4ptn._.js.map → [root-of-the-server]__1a7d63a._.js.map} +1 -1
  345. package/.next/server/chunks/[root-of-the-server]__1b448u7._.js +3 -0
  346. package/.next/server/chunks/{[root-of-the-server]__197vw9g._.js.map → [root-of-the-server]__1b448u7._.js.map} +1 -1
  347. package/.next/server/chunks/[root-of-the-server]__1e68zmx._.js +3 -0
  348. package/.next/server/chunks/{[root-of-the-server]__15ck1wv._.js.map → [root-of-the-server]__1e68zmx._.js.map} +1 -1
  349. package/.next/server/chunks/[root-of-the-server]__1gvv2xp._.js +3 -0
  350. package/.next/server/chunks/{[root-of-the-server]__04tibmn._.js.map → [root-of-the-server]__1gvv2xp._.js.map} +1 -1
  351. package/.next/server/chunks/[root-of-the-server]__1jel07j._.js +3 -0
  352. package/.next/server/chunks/{[root-of-the-server]__12nzy_6._.js.map → [root-of-the-server]__1jel07j._.js.map} +1 -1
  353. package/.next/server/chunks/[root-of-the-server]__1jz98vb._.js +3 -0
  354. package/.next/server/chunks/{[root-of-the-server]__0p6ja6l._.js.map → [root-of-the-server]__1jz98vb._.js.map} +1 -1
  355. package/.next/server/chunks/[root-of-the-server]__1la-6xe._.js +3 -0
  356. package/.next/server/chunks/[root-of-the-server]__1la-6xe._.js.map +1 -0
  357. package/.next/server/chunks/[root-of-the-server]__1p6-0l0._.js +3 -0
  358. package/.next/server/chunks/{[root-of-the-server]__1xb0fmp._.js.map → [root-of-the-server]__1p6-0l0._.js.map} +1 -1
  359. package/.next/server/chunks/[root-of-the-server]__1qd-ecl._.js +110 -0
  360. package/.next/server/chunks/[root-of-the-server]__1qd-ecl._.js.map +1 -0
  361. package/.next/server/chunks/[root-of-the-server]__1r_0uma._.js +3 -0
  362. package/.next/server/chunks/{[root-of-the-server]__11s-8eg._.js.map → [root-of-the-server]__1r_0uma._.js.map} +1 -1
  363. package/.next/server/chunks/[root-of-the-server]__1ssunti._.js +3 -0
  364. package/.next/server/chunks/{[root-of-the-server]__1mrmaf9._.js.map → [root-of-the-server]__1ssunti._.js.map} +1 -1
  365. package/.next/server/chunks/[root-of-the-server]__1tu85zx._.js +3 -0
  366. package/.next/server/chunks/[root-of-the-server]__1tu85zx._.js.map +1 -0
  367. package/.next/server/chunks/[root-of-the-server]__1wcd2x9._.js +3 -0
  368. package/.next/server/chunks/[root-of-the-server]__1wcd2x9._.js.map +1 -0
  369. package/.next/server/chunks/[root-of-the-server]__1xpp36t._.js +3 -0
  370. package/.next/server/chunks/[root-of-the-server]__1xpp36t._.js.map +1 -0
  371. package/.next/server/chunks/[root-of-the-server]__1z3tswg._.js +3 -0
  372. package/.next/server/chunks/{[root-of-the-server]__1n68akx._.js.map → [root-of-the-server]__1z3tswg._.js.map} +1 -1
  373. package/.next/server/chunks/_04byth9._.js +33 -23
  374. package/.next/server/chunks/_04byth9._.js.map +1 -1
  375. package/.next/server/chunks/_0safx0g._.js +10 -0
  376. package/.next/server/chunks/_0safx0g._.js.map +1 -0
  377. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_delete_route_actions_1a4-ad5.js +3 -0
  378. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_delete_route_actions_1a4-ad5.js.map +1 -0
  379. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_restore_route_actions_07637mh.js +3 -0
  380. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_restore_route_actions_07637mh.js.map +1 -0
  381. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_route_actions_0bxuv92.js +3 -0
  382. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_route_actions_0bxuv92.js.map +1 -0
  383. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_save_route_actions_0bwga-2.js +3 -0
  384. package/.next/server/chunks/_next-internal_server_app_api_memory_entries_save_route_actions_0bwga-2.js.map +1 -0
  385. package/.next/server/chunks/_next-internal_server_app_api_memory_graph_route_actions_0pca9et.js +3 -0
  386. package/.next/server/chunks/_next-internal_server_app_api_memory_graph_route_actions_0pca9et.js.map +1 -0
  387. package/.next/server/chunks/_next-internal_server_app_api_memory_history_route_actions_0w5pu5p.js +3 -0
  388. package/.next/server/chunks/_next-internal_server_app_api_memory_history_route_actions_0w5pu5p.js.map +1 -0
  389. package/.next/server/chunks/ssr/[root-of-the-server]__0opgo3t._.js +14 -0
  390. package/.next/server/chunks/ssr/{[root-of-the-server]__0noc5ay._.js.map → [root-of-the-server]__0opgo3t._.js.map} +1 -1
  391. package/.next/server/chunks/ssr/[root-of-the-server]__1jv5ug1._.js +3 -0
  392. package/.next/server/chunks/ssr/{[root-of-the-server]__1pk-w2i._.js.map → [root-of-the-server]__1jv5ug1._.js.map} +1 -1
  393. package/.next/server/chunks/ssr/_0i75x-o._.js +3 -0
  394. package/.next/server/chunks/ssr/_0i75x-o._.js.map +1 -0
  395. package/.next/server/chunks/ssr/_15qpb4z._.js +3 -0
  396. package/.next/server/chunks/ssr/_15qpb4z._.js.map +1 -0
  397. package/.next/server/chunks/ssr/_1fg0usp._.js +3 -0
  398. package/.next/server/chunks/ssr/_1fg0usp._.js.map +1 -0
  399. package/.next/server/chunks/ssr/_1h0wfpz._.js +3 -0
  400. package/.next/server/chunks/ssr/_1h0wfpz._.js.map +1 -0
  401. package/.next/server/chunks/ssr/_1ocnpth._.js +3 -0
  402. package/.next/server/chunks/ssr/_1ocnpth._.js.map +1 -0
  403. package/.next/server/chunks/ssr/{_14emfpq._.js → _1uno162._.js} +2 -2
  404. package/.next/server/chunks/ssr/_1uno162._.js.map +1 -0
  405. package/.next/server/chunks/ssr/node_modules__pnpm_0al3nfy._.js +3 -0
  406. package/.next/server/chunks/ssr/node_modules__pnpm_0al3nfy._.js.map +1 -0
  407. package/.next/server/chunks/ssr/{_1ftruw6._.js → node_modules__pnpm_0aoa6rg._.js} +2 -2
  408. package/.next/server/chunks/ssr/node_modules__pnpm_0aoa6rg._.js.map +1 -0
  409. package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js +13 -0
  410. package/.next/server/chunks/ssr/src_app_(app)_memory_page_tsx_19jhb1c._.js.map +1 -0
  411. package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js +1 -1
  412. package/.next/server/chunks/ssr/src_app_(app)_settings_page_tsx_0zevtee._.js.map +1 -1
  413. package/.next/server/chunks/ssr/src_components_0eyr_zi._.js +3 -0
  414. package/.next/server/chunks/ssr/src_components_0eyr_zi._.js.map +1 -0
  415. package/.next/server/chunks/ssr/src_components_1s861m8._.js +3 -0
  416. package/.next/server/chunks/ssr/src_components_1s861m8._.js.map +1 -0
  417. package/.next/server/middleware-build-manifest.js +3 -3
  418. package/.next/server/pages/404.html +1 -1
  419. package/.next/server/pages/500.html +1 -1
  420. package/.next/server/server-reference-manifest.js +1 -1
  421. package/.next/server/server-reference-manifest.json +1 -1
  422. package/.next/static/chunks/0b547y6rqct9z.js +1 -0
  423. package/.next/static/chunks/0e3ha56i_0j05.css +1 -0
  424. package/.next/static/chunks/0f32hudp0yir7.js +2 -0
  425. package/.next/static/chunks/0rsmz1jgro1kj.js +1 -0
  426. package/.next/static/chunks/0wnq_kh8-6wc1.js +2 -0
  427. package/.next/static/chunks/1acpfyut6j4e2.js +1 -0
  428. package/.next/static/chunks/{1xyepk9227yej.js → 1l_dys0-y5-r7.js} +6 -6
  429. package/.next/static/chunks/1rko_88i85yqb.js +21 -0
  430. package/.next/static/chunks/20mdcup14_0yi.js +11 -0
  431. package/.next/static/chunks/24u_rc2tbkhai.js +3 -0
  432. package/.next/static/chunks/2p-pkveutoh75.js +1 -0
  433. package/.next/static/chunks/{41oxcdcw-pcwt.js → 329sozud9-tvr.js} +1 -1
  434. package/.next/static/chunks/3qqvn9vv6i0gy.js +68 -0
  435. package/.next/static/chunks/{2_xpm7qhr69n8.js → 3xqcluqa32mjv.js} +2 -2
  436. package/README.md +11 -4
  437. package/package.json +1 -1
  438. package/.next/server/chunks/11mp_@anthropic-ai_sdk_07v3boe._.js +0 -3
  439. package/.next/server/chunks/11mp_@anthropic-ai_sdk_09iva72._.js +0 -3
  440. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0bom1b1._.js +0 -3
  441. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0dvji7p._.js +0 -3
  442. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0dzo8jn._.js +0 -3
  443. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0hvqsqq._.js +0 -3
  444. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0i7i-jw._.js +0 -3
  445. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0k0iop5._.js +0 -3
  446. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0l3-6aq._.js +0 -3
  447. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0oegm3y._.js +0 -3
  448. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0p5cyes._.js +0 -3
  449. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0qw8i6_._.js +0 -3
  450. package/.next/server/chunks/11mp_@anthropic-ai_sdk_0yk-a7v._.js +0 -3
  451. package/.next/server/chunks/11mp_@anthropic-ai_sdk_11fsqvb._.js +0 -3
  452. package/.next/server/chunks/11mp_@anthropic-ai_sdk_143_7ez._.js +0 -3
  453. package/.next/server/chunks/11mp_@anthropic-ai_sdk_14a4-64._.js +0 -3
  454. package/.next/server/chunks/11mp_@anthropic-ai_sdk_17d_oma._.js +0 -3
  455. package/.next/server/chunks/11mp_@anthropic-ai_sdk_18qwuyb._.js +0 -3
  456. package/.next/server/chunks/11mp_@anthropic-ai_sdk_19au8y6._.js +0 -3
  457. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1ak_hy5._.js +0 -3
  458. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1cqa0nq._.js +0 -3
  459. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1i-x_q0._.js +0 -3
  460. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jmtliz._.js +0 -3
  461. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1jouwlj._.js +0 -3
  462. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1r_q5um._.js +0 -3
  463. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1t959xd._.js +0 -3
  464. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1vkprw9._.js +0 -3
  465. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y95ax9._.js +0 -3
  466. package/.next/server/chunks/11mp_@anthropic-ai_sdk_1y9misr._.js +0 -3
  467. package/.next/server/chunks/11mp_@anthropic-ai_sdk_21b8wwy._.js +0 -3
  468. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_08ecfgc._.js +0 -3
  469. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_09--sd6._.js +0 -3
  470. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0e3mwc6._.js +0 -3
  471. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0go4301._.js +0 -3
  472. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0iq9dmt._.js +0 -3
  473. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0n9ijke._.js +0 -3
  474. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0szcyrx._.js +0 -3
  475. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0xy2s3x._.js +0 -3
  476. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0yaujn7._.js +0 -3
  477. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_0z9ly74._.js +0 -3
  478. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1hmq3al._.js +0 -3
  479. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1tqk4bp._.js +0 -3
  480. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1x-hr6f._.js +0 -3
  481. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_1zsdhg0._.js +0 -3
  482. package/.next/server/chunks/11mp_@anthropic-ai_sdk_index_mjs_20t__fe._.js +0 -3
  483. package/.next/server/chunks/[root-of-the-server]__0-pmfg2._.js +0 -3
  484. package/.next/server/chunks/[root-of-the-server]__02co2yq._.js +0 -3
  485. package/.next/server/chunks/[root-of-the-server]__05g5cgo._.js +0 -3
  486. package/.next/server/chunks/[root-of-the-server]__05l6129._.js +0 -3
  487. package/.next/server/chunks/[root-of-the-server]__0b5pwze._.js +0 -3
  488. package/.next/server/chunks/[root-of-the-server]__0druay_._.js +0 -3
  489. package/.next/server/chunks/[root-of-the-server]__0p6ja6l._.js +0 -3
  490. package/.next/server/chunks/[root-of-the-server]__0q3-t8a._.js +0 -3
  491. package/.next/server/chunks/[root-of-the-server]__0vcsqzd._.js +0 -3
  492. package/.next/server/chunks/[root-of-the-server]__1-e3i_5._.js +0 -3
  493. package/.next/server/chunks/[root-of-the-server]__1-ic3af._.js +0 -3
  494. package/.next/server/chunks/[root-of-the-server]__11a4ptn._.js +0 -3
  495. package/.next/server/chunks/[root-of-the-server]__11c8641._.js +0 -3
  496. package/.next/server/chunks/[root-of-the-server]__12nzy_6._.js +0 -3
  497. package/.next/server/chunks/[root-of-the-server]__14aeqoi._.js +0 -3
  498. package/.next/server/chunks/[root-of-the-server]__15ck1wv._.js +0 -3
  499. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js +0 -99
  500. package/.next/server/chunks/[root-of-the-server]__1613hjb._.js.map +0 -1
  501. package/.next/server/chunks/[root-of-the-server]__169hmq_._.js +0 -10
  502. package/.next/server/chunks/[root-of-the-server]__169hmq_._.js.map +0 -1
  503. package/.next/server/chunks/[root-of-the-server]__18kxo4a._.js +0 -3
  504. package/.next/server/chunks/[root-of-the-server]__197vw9g._.js +0 -3
  505. package/.next/server/chunks/[root-of-the-server]__19k8t87._.js +0 -3
  506. package/.next/server/chunks/[root-of-the-server]__1ezzeji._.js +0 -3
  507. package/.next/server/chunks/[root-of-the-server]__1jxu2x9._.js +0 -3
  508. package/.next/server/chunks/[root-of-the-server]__1lj_2cv._.js +0 -3
  509. package/.next/server/chunks/[root-of-the-server]__1n68akx._.js +0 -3
  510. package/.next/server/chunks/[root-of-the-server]__1npya5q._.js +0 -3
  511. package/.next/server/chunks/[root-of-the-server]__1qusy4g._.js +0 -3
  512. package/.next/server/chunks/[root-of-the-server]__1umrorf._.js +0 -3
  513. package/.next/server/chunks/[root-of-the-server]__1vh9g2o._.js +0 -3
  514. package/.next/server/chunks/[root-of-the-server]__1vq38ov._.js +0 -3
  515. package/.next/server/chunks/[root-of-the-server]__1wr0m-s._.js +0 -3
  516. package/.next/server/chunks/[root-of-the-server]__1xb0fmp._.js +0 -3
  517. package/.next/server/chunks/ssr/[root-of-the-server]__0noc5ay._.js +0 -14
  518. package/.next/server/chunks/ssr/[root-of-the-server]__1pk-w2i._.js +0 -3
  519. package/.next/server/chunks/ssr/_09b02z-._.js +0 -3
  520. package/.next/server/chunks/ssr/_09b02z-._.js.map +0 -1
  521. package/.next/server/chunks/ssr/_0d0f1s1._.js +0 -3
  522. package/.next/server/chunks/ssr/_0d0f1s1._.js.map +0 -1
  523. package/.next/server/chunks/ssr/_0lnt_va._.js +0 -4
  524. package/.next/server/chunks/ssr/_0lnt_va._.js.map +0 -1
  525. package/.next/server/chunks/ssr/_0qlymco._.js +0 -3
  526. package/.next/server/chunks/ssr/_0qlymco._.js.map +0 -1
  527. package/.next/server/chunks/ssr/_0sg1oeq._.js +0 -3
  528. package/.next/server/chunks/ssr/_0sg1oeq._.js.map +0 -1
  529. package/.next/server/chunks/ssr/_14emfpq._.js.map +0 -1
  530. package/.next/server/chunks/ssr/_1ftruw6._.js.map +0 -1
  531. package/.next/server/chunks/ssr/_1x7ggg5._.js +0 -4
  532. package/.next/server/chunks/ssr/_1x7ggg5._.js.map +0 -1
  533. package/.next/server/chunks/ssr/node_modules__pnpm_1q89l7p._.js +0 -3
  534. package/.next/server/chunks/ssr/node_modules__pnpm_1q89l7p._.js.map +0 -1
  535. package/.next/server/chunks/ssr/src_1lkod9y._.js +0 -8
  536. package/.next/server/chunks/ssr/src_1lkod9y._.js.map +0 -1
  537. package/.next/static/chunks/0p1-hkgnm2ll2.js +0 -1
  538. package/.next/static/chunks/0pgu5q5vodev6.js +0 -1
  539. package/.next/static/chunks/0rqzvayflendx.js +0 -2
  540. package/.next/static/chunks/0vcfs7dii85tw.js +0 -21
  541. package/.next/static/chunks/150y5rwg6gwvx.css +0 -1
  542. package/.next/static/chunks/1fd43t9y42wd3.js +0 -1
  543. package/.next/static/chunks/1q50zh5z-fq2k.js +0 -2
  544. package/.next/static/chunks/2ls_yp4-qgb42.js +0 -1
  545. package/.next/static/chunks/2zz0ip2l_29c3.js +0 -3
  546. package/.next/static/chunks/3h4ehgq7i44wb.js +0 -6
  547. package/.next/static/chunks/3vf5nnd4xjo5_.js +0 -1
  548. package/.next/static/chunks/40jaenrnspnlh.js +0 -68
  549. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_00p3fu1._.js.map → 11mp_@anthropic-ai_sdk_0-_cqh8._.js.map} +0 -0
  550. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01amtux._.js.map → 11mp_@anthropic-ai_sdk_00o5o78._.js.map} +0 -0
  551. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_01jjl08._.js.map → 11mp_@anthropic-ai_sdk_03cp17a._.js.map} +0 -0
  552. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_071zfm8._.js.map → 11mp_@anthropic-ai_sdk_07dk2er._.js.map} +0 -0
  553. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_07v3boe._.js.map → 11mp_@anthropic-ai_sdk_0_e9zpr._.js.map} +0 -0
  554. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_09iva72._.js.map → 11mp_@anthropic-ai_sdk_0_xx_qf._.js.map} +0 -0
  555. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0bom1b1._.js.map → 11mp_@anthropic-ai_sdk_0aer9lc._.js.map} +0 -0
  556. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0dvji7p._.js.map → 11mp_@anthropic-ai_sdk_0ax30pe._.js.map} +0 -0
  557. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0dzo8jn._.js.map → 11mp_@anthropic-ai_sdk_0gn7vgs._.js.map} +0 -0
  558. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0hvqsqq._.js.map → 11mp_@anthropic-ai_sdk_0hye94a._.js.map} +0 -0
  559. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0i7i-jw._.js.map → 11mp_@anthropic-ai_sdk_0ir5cgk._.js.map} +0 -0
  560. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0k0iop5._.js.map → 11mp_@anthropic-ai_sdk_0je0_pa._.js.map} +0 -0
  561. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0l3-6aq._.js.map → 11mp_@anthropic-ai_sdk_0jfgh0o._.js.map} +0 -0
  562. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0oegm3y._.js.map → 11mp_@anthropic-ai_sdk_0mha4x1._.js.map} +0 -0
  563. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0p5cyes._.js.map → 11mp_@anthropic-ai_sdk_0n__boa._.js.map} +0 -0
  564. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0qw8i6_._.js.map → 11mp_@anthropic-ai_sdk_0sqv26_._.js.map} +0 -0
  565. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_0yk-a7v._.js.map → 11mp_@anthropic-ai_sdk_0wnc6g-._.js.map} +0 -0
  566. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_11fsqvb._.js.map → 11mp_@anthropic-ai_sdk_0xh0g59._.js.map} +0 -0
  567. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_143_7ez._.js.map → 11mp_@anthropic-ai_sdk_1-5wyhj._.js.map} +0 -0
  568. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_14a4-64._.js.map → 11mp_@anthropic-ai_sdk_13ahm3n._.js.map} +0 -0
  569. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_17d_oma._.js.map → 11mp_@anthropic-ai_sdk_13e6aq4._.js.map} +0 -0
  570. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_18qwuyb._.js.map → 11mp_@anthropic-ai_sdk_14eg0ld._.js.map} +0 -0
  571. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_19au8y6._.js.map → 11mp_@anthropic-ai_sdk_15md1n2._.js.map} +0 -0
  572. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1ak_hy5._.js.map → 11mp_@anthropic-ai_sdk_16av8b9._.js.map} +0 -0
  573. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1cqa0nq._.js.map → 11mp_@anthropic-ai_sdk_16hjhv1._.js.map} +0 -0
  574. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1i-x_q0._.js.map → 11mp_@anthropic-ai_sdk_16txvf7._.js.map} +0 -0
  575. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1jmtliz._.js.map → 11mp_@anthropic-ai_sdk_198yu7d._.js.map} +0 -0
  576. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1jouwlj._.js.map → 11mp_@anthropic-ai_sdk_1_9tfq3._.js.map} +0 -0
  577. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1r_q5um._.js.map → 11mp_@anthropic-ai_sdk_1_izr2o._.js.map} +0 -0
  578. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1t959xd._.js.map → 11mp_@anthropic-ai_sdk_1fljcyg._.js.map} +0 -0
  579. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1vkprw9._.js.map → 11mp_@anthropic-ai_sdk_1lrt6ul._.js.map} +0 -0
  580. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1y95ax9._.js.map → 11mp_@anthropic-ai_sdk_1nev_ee._.js.map} +0 -0
  581. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_1y9misr._.js.map → 11mp_@anthropic-ai_sdk_1pgoe2i._.js.map} +0 -0
  582. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_21b8wwy._.js.map → 11mp_@anthropic-ai_sdk_1rgl7mu._.js.map} +0 -0
  583. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_08ecfgc._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_00kwqu5._.js.map} +0 -0
  584. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_09--sd6._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_01j2nrd._.js.map} +0 -0
  585. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0e3mwc6._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_05ybj3t._.js.map} +0 -0
  586. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0go4301._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0adt7jj._.js.map} +0 -0
  587. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0iq9dmt._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0bnl14w._.js.map} +0 -0
  588. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0n9ijke._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0f557t9._.js.map} +0 -0
  589. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0szcyrx._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_0ra6giw._.js.map} +0 -0
  590. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0xy2s3x._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_107cqfx._.js.map} +0 -0
  591. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0yaujn7._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1377sl6._.js.map} +0 -0
  592. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_0z9ly74._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1_2hcok._.js.map} +0 -0
  593. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1hmq3al._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1g--m6y._.js.map} +0 -0
  594. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1tqk4bp._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1geopi5._.js.map} +0 -0
  595. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1x-hr6f._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1i11dte._.js.map} +0 -0
  596. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_1zsdhg0._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1mj3_qk._.js.map} +0 -0
  597. /package/.next/server/chunks/{11mp_@anthropic-ai_sdk_index_mjs_20t__fe._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1qgy210._.js.map} +0 -0
  598. /package/.next/server/chunks/{[root-of-the-server]__11c8641._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1rkng9q._.js.map} +0 -0
  599. /package/.next/server/chunks/{[root-of-the-server]__1npya5q._.js.map → 11mp_@anthropic-ai_sdk_index_mjs_1vr8q8y._.js.map} +0 -0
  600. /package/.next/static/{fGPda81_8-K4GmaNUE6KA → Q29Tn_NjyVms0d3pKn4Yx}/_buildManifest.js +0 -0
  601. /package/.next/static/{fGPda81_8-K4GmaNUE6KA → Q29Tn_NjyVms0d3pKn4Yx}/_clientMiddlewareManifest.js +0 -0
  602. /package/.next/static/{fGPda81_8-K4GmaNUE6KA → Q29Tn_NjyVms0d3pKn4Yx}/_ssgManifest.js +0 -0
@@ -1,3 +0,0 @@
1
- module.exports=[196265,a=>{"use strict";var b=Object.defineProperty,c=(a,c)=>b(a,"name",{value:c,configurable:!0});function d(a,b,{checkForDefaultPrevented:e=!0}={}){return c(function(c){if(a?.(c),!1===e||!c||!c.defaultPrevented)return b?.(c)},"handleEvent")}function e(a){throw Error("Cannot access document outside of the DOM")}function f(a){return"IFRAME"===a.tagName}c(d,"composeEventHandlers"),c(function(a){throw Error("Cannot access window outside of the DOM")},"getOwnerWindow"),c(e,"getOwnerDocument"),c(function a(b,c=!1){let{activeElement:d}=e(b);if(!d?.nodeName)return null;if(f(d)&&d.contentDocument)return a(d.contentDocument.body,c);if(c){let a=d.getAttribute("aria-activedescendant");if(a){let b=e(d).getElementById(a);if(b)return b}}return d},"getActiveElement"),c(f,"isFrame"),a.s(["composeEventHandlers",0,d])},777516,a=>{"use strict";a.s(["IS_DEVELOPMENT",0,!1])},521831,a=>{"use strict";var b=a.i(174897),c=Object.defineProperty,d=(a,b)=>c(a,"name",{value:b,configurable:!0});function e(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}function f(...a){return b=>{let c=!1,d=a.map(a=>{let d=e(a,b);return c||"function"!=typeof d||(c=!0),d});if(c)return()=>{for(let b=0;b<d.length;b++){let c=d[b];"function"==typeof c?c():e(a[b],null)}}}}function g(...a){return b.useCallback(f(...a),a)}d(e,"setRef"),d(f,"composeRefs"),d(g,"useComposedRefs"),a.s(["useComposedRefs",0,g])},691321,a=>{"use strict";var b=a.i(174897),c=a.i(662145),d=Object.defineProperty,e=(a,b)=>d(a,"name",{value:b,configurable:!0});function f(a,d=[]){let h=[];function i(d,f){let g=b.createContext(f);g.displayName=d+"Context";let i=h.length;h=[...h,f];let j=e(d=>{let{scope:e,children:f,...h}=d,j=e?.[a]?.[i]||g,k=b.useMemo(()=>h,Object.values(h));return(0,c.jsx)(j.Provider,{value:k,children:f})},"Provider");function k(c,e,h={}){let{optional:j=!1}=h,l=e?.[a]?.[i]||g,m=b.useContext(l);if(m)return m;if(void 0!==f)return f;if(!j)throw Error(`\`${c}\` must be used within \`${d}\``)}return j.displayName=d+"Provider",e(k,"useContext"),[j,k]}e(i,"createContext");let j=e(()=>{let c=h.map(a=>b.createContext(a));return e(function(d){let e=d?.[a]||c;return b.useMemo(()=>({[`__scope${a}`]:{...d,[a]:e}}),[d,e])},"useScope")},"createScope");return j.scopeName=a,[i,g(j,...d)]}function g(...a){let c=a[0];if(1===a.length)return c;let d=e(()=>{let d=a.map(a=>({useScope:a(),scopeName:a.scopeName}));return e(function(a){let e=d.reduce((b,{useScope:c,scopeName:d})=>{let e=c(a)[`__scope${d}`];return{...b,...e}},{});return b.useMemo(()=>({[`__scope${c.scopeName}`]:e}),[e])},"useComposedScopes")},"createScope");return d.scopeName=c.scopeName,d}e(function(a,d){let f=b.createContext(d);f.displayName=a+"Context";let g=e(a=>{let{children:d,...e}=a,g=b.useMemo(()=>e,Object.values(e));return(0,c.jsx)(f.Provider,{value:g,children:d})},"Provider");function h(c,e={}){let{optional:g=!1}=e,i=b.useContext(f);if(i)return i;if(void 0!==d)return d;if(!g)throw Error(`\`${c}\` must be used within \`${a}\``)}return g.displayName=a+"Provider",e(h,"useContext"),[g,h]},"createContext"),e(f,"createContextScope"),e(g,"composeContextScopes"),a.s(["createContextScope",0,f])},933877,a=>{"use strict";var b=a.i(174897),c=(a.i(662145),Object.defineProperty),d=b.createContext(void 0);function e(a){let c=b.useContext(d);return a||c||"ltr"}c(e,"name",{value:"useDirection",configurable:!0}),a.s(["useDirection",0,e])},635163,a=>{"use strict";var b=a.i(174897),c=a.i(967683),d=Object.defineProperty,e=b[" useId ".trim().toString()]||(()=>void 0),f=0;function g(a){let[d,g]=b.useState(e());return(0,c.useLayoutEffect)(()=>{a||g(a=>a??String(f++))},[a]),a||(d?`radix-${d}`:"")}d(g,"name",{value:"useId",configurable:!0}),a.s(["useId",0,g])},818920,a=>{"use strict";var b=a.i(174897),c=a.i(967683),d=Object.defineProperty,e=(a,b)=>d(a,"name",{value:b,configurable:!0});function f(a,c){return b.useReducer((a,b)=>c[a][b]??a,a)}e(f,"useStateMachine");var g=e(a=>{let{present:c,children:d}=a,e=h(c),f="function"==typeof d?d({present:e.isPresent}):b.Children.only(d),g=j(e.ref,l(f));return"function"==typeof d||e.isPresent?b.cloneElement(f,{ref:g}):null},"Presence");function h(a){let[d,g]=b.useState(),h=b.useRef(null),i=b.useRef(a),j=b.useRef("none"),l=b.useRef(void 0),[m,n]=f(a?"mounted":"unmounted",{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return b.useEffect(()=>{"mounted"===m?(j.current=l.current??k(h.current),l.current=void 0):j.current="none"},[m]),(0,c.useLayoutEffect)(()=>{let b=h.current,c=i.current;if(c!==a){let d=j.current,e=k(b);a?(l.current=e,n("MOUNT")):"none"===e||b?.display==="none"?n("UNMOUNT"):c&&d!==e?n("ANIMATION_OUT"):n("UNMOUNT"),i.current=a}},[a,n]),(0,c.useLayoutEffect)(()=>{if(d){let a,b=d.ownerDocument.defaultView??window,c=e(c=>{let e=k(h.current).includes(CSS.escape(c.animationName));if(c.target===d&&e&&(n("ANIMATION_END"),!i.current)){let c=d.style.animationFillMode;d.style.animationFillMode="forwards",a=b.setTimeout(()=>{"forwards"===d.style.animationFillMode&&(d.style.animationFillMode=c)})}},"handleAnimationEnd"),f=e(a=>{a.target===d&&(j.current=k(h.current))},"handleAnimationStart");return d.addEventListener("animationstart",f),d.addEventListener("animationcancel",c),d.addEventListener("animationend",c),()=>{b.clearTimeout(a),d.removeEventListener("animationstart",f),d.removeEventListener("animationcancel",c),d.removeEventListener("animationend",c)}}n("ANIMATION_END")},[d,n]),{isPresent:["mounted","unmountSuspended"].includes(m),ref:b.useCallback(a=>{if(a){let b=getComputedStyle(a);h.current=b,l.current=k(b)}else h.current=null;g(a)},[])}}function i(a,b){if("function"==typeof a)return a(b);null!=a&&(a.current=b)}function j(...a){let c=b.useRef(a);return c.current=a,b.useCallback(a=>{let b=c.current,d=!1,e=b.map(b=>{let c=i(b,a);return d||"function"!=typeof c||(d=!0),c});if(d)return()=>{for(let a=0;a<e.length;a++){let c=e[a];"function"==typeof c?c():i(b[a],null)}}},[])}function k(a){return a?.animationName||"none"}function l(a){let b=Object.getOwnPropertyDescriptor(a.props,"ref")?.get,c=b&&"isReactWarning"in b&&b.isReactWarning;return c?a.ref:(c=(b=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in b&&b.isReactWarning)?a.props.ref:a.props.ref||a.ref}e(h,"usePresence"),e(i,"setRef"),e(j,"useStableComposedRefs"),e(k,"getAnimationName"),e(l,"getElementRef"),a.s(["Presence",0,g])},436102,a=>{"use strict";var b=a.i(174897),c=a.i(41721),d=a.i(776692),e=a.i(662145),f=Object.defineProperty,g=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"].reduce((a,c)=>{let f=(0,d.createSlot)(`Primitive.${c}`),g=b.forwardRef((a,b)=>{let{asChild:d,...g}=a;return(0,e.jsx)(d?f:c,{...g,ref:b})});return g.displayName=`Primitive.${c}`,{...a,[c]:g}},{});function h(a,b){a&&c.flushSync(()=>a.dispatchEvent(b))}f(h,"name",{value:"dispatchDiscreteCustomEvent",configurable:!0}),a.s(["Primitive",0,g,"dispatchDiscreteCustomEvent",0,h])},776692,a=>{"use strict";var b=a.i(174897),c=a.i(521831),d=Object.defineProperty,e=(a,b)=>d(a,"name",{value:b,configurable:!0});function f(a){let d=b.forwardRef((d,e)=>{let{children:f,...g}=d,h=null,i=!1,n=[];o(f)&&"function"==typeof s&&(f=s(f._payload)),b.Children.forEach(f,a=>{if(m(a)){i=!0;let b="child"in a.props?a.props.child:a.props.children;o(b)&&"function"==typeof s&&(b=s(b._payload)),h=j(a,b),n.push(h?.props?.children)}else n.push(a)}),h?h=b.cloneElement(h,void 0,n):!i&&1===b.Children.count(f)&&b.isValidElement(f)&&(h=f);let p=h?l(h):void 0,t=(0,c.useComposedRefs)(e,p);if(!h){if(f||0===f)throw Error(i?r(a):q(a));return f}let u=k(g,h.props??{});return h.type!==b.Fragment&&(u.ref=e?t:p),b.cloneElement(h,u)});return d.displayName=`${a}.Slot`,d}e(f,"createSlot");var g=f("Slot"),h=Symbol.for("radix.slottable");function i(a){let b=e(a=>"child"in a?a.children(a.child):a.children,"Slottable");return b.displayName=`${a}.Slottable`,b.__radixId=h,b}e(i,"createSlottable");var j=e((a,c)=>{if("child"in a.props){let c=a.props.child;return b.isValidElement(c)?b.cloneElement(c,void 0,a.props.children(c.props.children)):null}return b.isValidElement(c)?c:null},"getSlottableElementFromSlottable");function k(a,b){let c={...b};for(let d in b){let e=a[d],f=b[d];/^on[A-Z]/.test(d)?e&&f?c[d]=(...a)=>{let b=f(...a);return e(...a),b}:e&&(c[d]=e):"style"===d?c[d]={...e,...f}:"className"===d&&(c[d]=[e,f].filter(Boolean).join(" "))}return{...a,...c}}function l(a){let b=Object.getOwnPropertyDescriptor(a.props,"ref")?.get,c=b&&"isReactWarning"in b&&b.isReactWarning;return c?a.ref:(c=(b=Object.getOwnPropertyDescriptor(a,"ref")?.get)&&"isReactWarning"in b&&b.isReactWarning)?a.props.ref:a.props.ref||a.ref}function m(a){return b.isValidElement(a)&&"function"==typeof a.type&&"__radixId"in a.type&&a.type.__radixId===h}e(k,"mergeProps"),e(l,"getElementRef"),e(m,"isSlottable");var n=Symbol.for("react.lazy");function o(a){return null!=a&&"object"==typeof a&&"$$typeof"in a&&a.$$typeof===n&&"_payload"in a&&p(a._payload)}function p(a){return"object"==typeof a&&null!==a&&"then"in a}e(o,"isLazyComponent"),e(p,"isPromiseLike");var q=e(a=>`${a} failed to slot onto its children. Expected a single React element child or \`Slottable\`.`,"createSlotError"),r=e(a=>`${a} failed to slot onto its \`Slottable\`. Expected \`Slottable\` to receive a single React element child.`,"createSlottableError"),s=b[" use ".trim().toString()];a.s(["Slot",0,g,"createSlot",0,f,"createSlottable",0,i])},133387,a=>{"use strict";var b=a.i(174897);function c(a){let c=b.useRef(a);return b.useEffect(()=>{c.current=a}),b.useMemo(()=>(...a)=>c.current?.(...a),[])}(0,Object.defineProperty)(c,"name",{value:"useCallbackRef",configurable:!0}),a.s(["useCallbackRef",0,c])},541151,a=>{"use strict";var b=a.i(174897),c=a.i(777516),d=a.i(967683),e=Object.defineProperty,f=b[" useEffectEvent ".trim().toString()],g=b[" useInsertionEffect ".trim().toString()];function h(a){if("function"==typeof f)return f(a);let c=b.useRef(()=>{throw Error("Cannot call an event handler while rendering.")});return"function"==typeof g?g(()=>{c.current=a}):(0,d.useLayoutEffect)(()=>{c.current=a}),b.useMemo(()=>(...a)=>c.current?.(...a),[])}e(h,"name",{value:"useEffectEvent",configurable:!0});var i=Object.defineProperty,j=(a,b)=>i(a,"name",{value:b,configurable:!0}),k=b[" useInsertionEffect ".trim().toString()]||d.useLayoutEffect;function l({prop:a,defaultProp:d,onChange:e=j(()=>{},"onChange"),caller:f}){let[g,h,i]=m({defaultProp:d,onChange:e}),k=void 0!==a,o=k?a:g;if(c.IS_DEVELOPMENT){let c=b.useRef(void 0!==a);b.useEffect(()=>{let a=c.current;if(a!==k){let b=k?"controlled":"uncontrolled";console.warn(`${f} is changing from ${a?"controlled":"uncontrolled"} to ${b}. 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.`)}c.current=k},[k,f])}return[o,b.useCallback(b=>{if(k){let c=n(b)?b(a):b;c!==a&&i.current?.(c)}else h(b)},[k,a,h,i])]}function m({defaultProp:a,onChange:c}){let[d,e]=b.useState(a),f=b.useRef(d),g=b.useRef(c);return k(()=>{g.current=c},[c]),b.useEffect(()=>{f.current!==d&&(g.current?.(d),f.current=d)},[d,f]),[d,e,g]}function n(a){return"function"==typeof a}j(l,"useControllableState"),j(m,"useUncontrolledState"),j(n,"isFunction");var o=Symbol("RADIX:SYNC_STATE");j(function(a,d,e,f){let{prop:g,defaultProp:i,onChange:j,caller:k}=d,l=void 0!==g,m=h(j);if(c.IS_DEVELOPMENT){let a=b.useRef(void 0!==g);b.useEffect(()=>{let b=a.current;if(b!==l){let a=l?"controlled":"uncontrolled";console.warn(`${k} is changing from ${b?"controlled":"uncontrolled"} to ${a}. 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.`)}a.current=l},[l,k])}let n=[{...e,state:i}];f&&n.push(f);let[p,q]=b.useReducer((b,c)=>{if(c.type===o)return{...b,state:c.state};let d=a(b,c);return l&&!Object.is(d.state,b.state)&&m(d.state),d},...n),r=p.state,s=b.useRef(r);b.useEffect(()=>{s.current!==r&&(s.current=r,l||m(r))},[r,s,l]);let t=b.useMemo(()=>void 0!==g?{...p,state:g}:p,[p,g]);return b.useEffect(()=>{l&&!Object.is(g,p.state)&&q({type:o,state:g})},[g,p.state,l]),[t,q]},"useControllableStateReducer"),a.s(["useControllableState",0,l],541151)},967683,a=>{"use strict";var b=a.i(174897),c=globalThis?.document?b.useLayoutEffect:()=>{};a.s(["useLayoutEffect",0,c])},142261,a=>{"use strict";var b=a.i(239337);let c=a=>"boolean"==typeof a?`${a}`:0===a?"0":a,d=b.clsx;a.s(["cva",0,(a,b)=>e=>{var f;if((null==b?void 0:b.variants)==null)return d(a,null==e?void 0:e.class,null==e?void 0:e.className);let{variants:g,defaultVariants:h}=b,i=Object.keys(g).map(a=>{let b=null==e?void 0:e[a],d=null==h?void 0:h[a];if(null===b)return null;let f=c(b)||c(d);return g[a][f]}),j=e&&Object.entries(e).reduce((a,b)=>{let[c,d]=b;return void 0===d||(a[c]=d),a},{});return d(a,i,null==b||null==(f=b.compoundVariants)?void 0:f.reduce((a,b)=>{let{class:c,className:d,...e}=b;return Object.entries(e).every(a=>{let[b,c]=a;return Array.isArray(c)?c.includes({...h,...j}[b]):({...h,...j})[b]===c})?[...a,c,d]:a},[]),null==e?void 0:e.class,null==e?void 0:e.className)}])}];
2
-
3
- //# sourceMappingURL=node_modules__pnpm_1q89l7p._.js.map
@@ -1 +0,0 @@
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-compose-refs%401.1.5_%40types%2Breact%4019.3.0_react%4019.3.0/node_modules/%40radix-ui/react-compose-refs/src/compose-refs.tsx","../../../../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-direction%401.1.4_%40types%2Breact%4019.3.0_react%4019.3.0/node_modules/%40radix-ui/react-direction/src/direction.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-slot%401.3.3_%40types%2Breact%4019.3.0_react%4019.3.0/node_modules/%40radix-ui/react-slot/src/slot.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","../../../../node_modules/.pnpm/class-variance-authority%400.7.1/node_modules/class-variance-authority/dist/index.mjs"],"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 PossibleRef<T> = React.Ref<T> | undefined;\n\n/**\n * Set a given ref to a given value\n * This utility takes care of different types of refs: callback refs and RefObject(s)\n */\nfunction setRef<T>(ref: PossibleRef<T>, value: T) {\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 * A utility to compose multiple refs together\n * Accepts callback refs and RefObject(s)\n */\nfunction composeRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n return (node) => {\n let hasCleanup = false;\n const cleanups = refs.map((ref) => {\n const cleanup = setRef(ref, node);\n if (!hasCleanup && typeof cleanup == 'function') {\n hasCleanup = true;\n }\n return cleanup;\n });\n\n // React <19 will log an error to the console if a callback ref returns a\n // value. We don't use ref cleanups internally so this will only happen if a\n // user's ref callback returns a value, which we only expect if they are\n // using the cleanup functionality added in React 19.\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(refs[i], null);\n }\n }\n };\n }\n };\n}\n\n/**\n * A custom hook that composes multiple refs\n * Accepts callback refs and RefObject(s)\n */\nfunction useComposedRefs<T>(...refs: PossibleRef<T>[]): React.RefCallback<T> {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n return React.useCallback(composeRefs(...refs), refs);\n}\n\nexport { composeRefs, useComposedRefs };\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';\n\ntype Direction = 'ltr' | 'rtl';\nconst DirectionContext = React.createContext<Direction | undefined>(undefined);\n\n/* -------------------------------------------------------------------------------------------------\n * Direction\n * -----------------------------------------------------------------------------------------------*/\n\ninterface DirectionProviderProps {\n children?: React.ReactNode;\n dir: Direction;\n}\nconst DirectionProvider: React.FC<DirectionProviderProps> = (props) => {\n const { dir, children } = props;\n return <DirectionContext.Provider value={dir}>{children}</DirectionContext.Provider>;\n};\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction useDirection(localDir?: Direction) {\n const globalDir = React.useContext(DirectionContext);\n return localDir || globalDir || 'ltr';\n}\n\nconst Provider = DirectionProvider;\n\nexport {\n useDirection,\n //\n Provider,\n //\n DirectionProvider,\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';\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\n\ndeclare module 'react' {\n interface ReactElement {\n $$typeof?: symbol | string;\n }\n}\n\n/* -------------------------------------------------------------------------------------------------\n * Slot\n * -----------------------------------------------------------------------------------------------*/\n\nexport type Usable<T> = PromiseLike<T> | React.Context<T>;\n\ntype SlotProps<Elem extends Element = HTMLElement, Props = React.HTMLAttributes<Elem>> = Props & {\n children?: React.ReactNode;\n};\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlot<\n Elem extends Element = HTMLElement,\n Props = React.HTMLAttributes<Elem>,\n>(ownerName: string) {\n const Slot = React.forwardRef<Elem, SlotProps<Elem, Props>>((props, forwardedRef) => {\n let { children, ...slotProps } = props;\n let slottableElement: React.ReactElement | null = null;\n let hasSlottable = false;\n const newChildren: React.ReactNode[] = [];\n\n if (isLazyComponent(children) && typeof use === 'function') {\n children = use(children._payload);\n }\n\n React.Children.forEach(children, (maybeSlottable) => {\n if (isSlottable(maybeSlottable)) {\n hasSlottable = true;\n const slottable = maybeSlottable;\n let child = 'child' in slottable.props ? slottable.props.child : slottable.props.children;\n\n if (isLazyComponent(child) && typeof use === 'function') {\n child = use(child._payload);\n }\n\n slottableElement = getSlottableElementFromSlottable(slottable, child);\n newChildren.push((slottableElement?.props as any)?.children);\n } else {\n newChildren.push(maybeSlottable);\n }\n });\n\n if (slottableElement) {\n slottableElement = React.cloneElement(slottableElement, undefined, newChildren);\n } else if (\n // A `Slottable` was found but it didn't resolve to a single element (e.g.\n // it wrapped multiple elements, text, or a render-prop `child` that\n // wasn't an element). Don't fall back to treating the `Slottable` wrapper\n // itself as the slot target \u2014 throw a descriptive error below instead.\n !hasSlottable &&\n React.Children.count(children) === 1 &&\n React.isValidElement(children)\n ) {\n slottableElement = children;\n }\n\n const slottableElementRef = slottableElement ? getElementRef(slottableElement) : undefined;\n const composedRef = useComposedRefs(forwardedRef, slottableElementRef);\n\n if (!slottableElement) {\n // Empty/falsy children (`null`, `undefined`, `false`, no children, etc.) are valid and\n // render nothing. Anything else is content we couldn't slot onto a single element, which\n // is a usage error, so we fail loudly with a clear message.\n if (children || children === 0) {\n throw new Error(\n hasSlottable ? createSlottableError(ownerName) : createSlotError(ownerName),\n );\n }\n return children;\n }\n\n const mergedProps = mergeProps(slotProps, slottableElement.props ?? {});\n\n // do not pass ref to React.Fragment for React 19 compatibility\n if (slottableElement.type !== React.Fragment) {\n mergedProps.ref = forwardedRef ? composedRef : slottableElementRef;\n }\n\n return React.cloneElement(slottableElement, mergedProps);\n });\n\n Slot.displayName = `${ownerName}.Slot`;\n return Slot;\n}\n\nconst Slot = createSlot('Slot');\n\n/* -------------------------------------------------------------------------------------------------\n * Slottable\n * -----------------------------------------------------------------------------------------------*/\n\nconst SLOTTABLE_IDENTIFIER = Symbol.for('radix.slottable');\n\ntype SlottableChildrenProps = { children: React.ReactNode };\ntype SlottableRenderFnProps = {\n child: React.ReactNode;\n children: (slottable: React.ReactNode) => React.ReactNode;\n};\n\ntype SlottableProps = SlottableRenderFnProps | SlottableChildrenProps;\ninterface SlottableComponent extends React.FC<SlottableProps> {\n __radixId: symbol;\n}\n\n/* @__NO_SIDE_EFFECTS__ */ export function createSlottable(ownerName: string) {\n const Slottable: SlottableComponent = (props) =>\n 'child' in props ? props.children(props.child) : props.children;\n\n Slottable.displayName = `${ownerName}.Slottable`;\n Slottable.__radixId = SLOTTABLE_IDENTIFIER;\n return Slottable;\n}\n\nconst Slottable = createSlottable('Slottable');\n\n/* -------------------------------------------------------------------------------------------------\n * getSlottableElementFromSlottable\n * -----------------------------------------------------------------------------------------------*/\n\nconst getSlottableElementFromSlottable = (slottable: SlottableElement, child: React.ReactNode) => {\n if ('child' in slottable.props) {\n const child = slottable.props.child;\n if (!React.isValidElement<React.PropsWithChildren>(child)) return null;\n return React.cloneElement(child, undefined, slottable.props.children(child.props.children));\n }\n\n return React.isValidElement(child) ? child : null;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * mergeProps\n * -----------------------------------------------------------------------------------------------*/\n\ntype AnyProps = Record<string, any>;\n\nfunction mergeProps(slotProps: AnyProps, childProps: AnyProps) {\n // all child props should override\n const overrideProps = { ...childProps };\n\n for (const propName in childProps) {\n const slotPropValue = slotProps[propName];\n const childPropValue = childProps[propName];\n\n const isHandler = /^on[A-Z]/.test(propName);\n if (isHandler) {\n // if the handler exists on both, we compose them\n if (slotPropValue && childPropValue) {\n overrideProps[propName] = (...args: unknown[]) => {\n const result = childPropValue(...args);\n slotPropValue(...args);\n return result;\n };\n }\n // but if it exists only on the slot, we use only this one\n else if (slotPropValue) {\n overrideProps[propName] = slotPropValue;\n }\n }\n // if it's `style`, we merge them\n else if (propName === 'style') {\n overrideProps[propName] = { ...slotPropValue, ...childPropValue };\n } else if (propName === 'className') {\n overrideProps[propName] = [slotPropValue, childPropValue].filter(Boolean).join(' ');\n }\n }\n\n return { ...slotProps, ...overrideProps };\n}\n\n/* -------------------------------------------------------------------------------------------------\n * getElementRef\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) {\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 as { ref?: React.Ref<unknown> }).ref;\n }\n\n // Not DEV\n return (element.props as { ref?: React.Ref<unknown> }).ref || (element as any).ref;\n}\n\n/* ---------------------------------------------------------------------------------------------- */\n\ntype SlottableElement = React.ReactElement<SlottableProps, SlottableComponent>;\n\nfunction isSlottable(\n child: React.ReactNode,\n): child is React.ReactElement<SlottableProps, typeof Slottable> {\n return (\n React.isValidElement(child) &&\n typeof child.type === 'function' &&\n '__radixId' in child.type &&\n child.type.__radixId === SLOTTABLE_IDENTIFIER\n );\n}\n\nconst REACT_LAZY_TYPE = Symbol.for('react.lazy');\n\ninterface LazyReactElement extends React.ReactElement {\n $$typeof: typeof REACT_LAZY_TYPE;\n _payload: PromiseLike<Exclude<React.ReactNode, PromiseLike<any>>>;\n}\n\nfunction isLazyComponent(element: React.ReactNode): element is LazyReactElement {\n return (\n element != null &&\n typeof element === 'object' &&\n '$$typeof' in element &&\n element.$$typeof === REACT_LAZY_TYPE &&\n '_payload' in element &&\n isPromiseLike(element._payload)\n );\n}\n\nfunction isPromiseLike(value: unknown): value is PromiseLike<unknown> {\n return typeof value === 'object' && value !== null && 'then' in value;\n}\n\nconst createSlotError = (ownerName: string) => {\n return `${ownerName} failed to slot onto its children. Expected a single React element child or \\`Slottable\\`.`;\n};\n\nconst createSlottableError = (ownerName: string) => {\n return `${ownerName} failed to slot onto its \\`Slottable\\`. Expected \\`Slottable\\` to receive a single React element child.`;\n};\n\nconst use: typeof React.use | undefined = (React as any)[' use '.trim().toString()];\n\nexport {\n Slot,\n Slottable,\n //\n Slot as Root,\n};\nexport type { SlotProps };\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","/**\n * Copyright 2022 Joe Bell. All rights reserved.\n *\n * This file is licensed to you under the Apache License, Version 2.0\n * (the \"License\"); you may not use this file except in compliance with the\n * License. You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR REPRESENTATIONS OF ANY KIND, either express or implied. See the\n * License for the specific language governing permissions and limitations under\n * the License.\n */ import { clsx } from \"clsx\";\nconst falsyToString = (value)=>typeof value === \"boolean\" ? `${value}` : value === 0 ? \"0\" : value;\nexport const cx = clsx;\nexport const cva = (base, config)=>(props)=>{\n var _config_compoundVariants;\n if ((config === null || config === void 0 ? void 0 : config.variants) == null) return cx(base, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n const { variants, defaultVariants } = config;\n const getVariantClassNames = Object.keys(variants).map((variant)=>{\n const variantProp = props === null || props === void 0 ? void 0 : props[variant];\n const defaultVariantProp = defaultVariants === null || defaultVariants === void 0 ? void 0 : defaultVariants[variant];\n if (variantProp === null) return null;\n const variantKey = falsyToString(variantProp) || falsyToString(defaultVariantProp);\n return variants[variant][variantKey];\n });\n const propsWithoutUndefined = props && Object.entries(props).reduce((acc, param)=>{\n let [key, value] = param;\n if (value === undefined) {\n return acc;\n }\n acc[key] = value;\n return acc;\n }, {});\n const getCompoundVariantClassNames = config === null || config === void 0 ? void 0 : (_config_compoundVariants = config.compoundVariants) === null || _config_compoundVariants === void 0 ? void 0 : _config_compoundVariants.reduce((acc, param)=>{\n let { class: cvClass, className: cvClassName, ...compoundVariantOptions } = param;\n return Object.entries(compoundVariantOptions).every((param)=>{\n let [key, value] = param;\n return Array.isArray(value) ? value.includes({\n ...defaultVariants,\n ...propsWithoutUndefined\n }[key]) : ({\n ...defaultVariants,\n ...propsWithoutUndefined\n })[key] === value;\n }) ? [\n ...acc,\n cvClass,\n cvClassName\n ] : acc;\n }, []);\n return cx(base, getVariantClassNames, getCompoundVariantClassNames, props === null || props === void 0 ? void 0 : props.class, props === null || props === void 0 ? void 0 : props.className);\n };\n\n"],"names":["createContext","useContext","createScope","nextScopes","React","node","Slot","Slottable","child","__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","falsyToString","cx","cva","base","config","props","_config_compoundVariants","variants","class","className","defaultVariants","getVariantClassNames","keys","map","variant","variantProp","defaultVariantProp","variantKey","propsWithoutUndefined","entries","reduce","acc","param","key","undefined","getCompoundVariantClassNames","compoundVariants","cvClass","cvClassName","compoundVariantOptions","every","Array","isArray","includes"],"mappings":"mHAUO,SAAS,EACd,CAAA,CACA,CAAA,CACA,0BAAE,EAA2B,EAAA,CAAK,CAAI,CAAC,CAAA,EAEvC,AADA,OACO,EAAA,SAAS,AAAY,CAAA,CAArB,CAA+B,AAGpC,GAFA,IAAuB,IAEU,CAFL,GAExB,GAAsC,CAAC,GAAS,CAAC,EAAM,gBAAA,CACzD,CAD2E,MACpE,IAAkB,EAE7B,EANO,CAI2B,aAGpC,CAUO,SAAS,EAAiB,CAAA,EAAkC,AAE/D,MAAM,AAAI,MAAM,2CAA2C,CAI/D,CAkCO,SAAS,EAAQ,CAAA,EAAgD,AACtE,MAA2B,WAApB,EAAQ,OAAA,AACjB,CAhEgB,EAAA,EAAA,wBAcA,EAAT,KAAS,IAAA,AAAe,CAAA,EAAkC,AAE7D,MAAU,AAAJ,MAAU,yCAAyC,CAI7D,EANgB,kBAQA,EAAA,EAAA,oBAYA,EAAT,KAAS,IAAA,EACd,CAAA,CACA,GAAmB,CAAA,EAEnB,AADoB,GACd,eAAE,CAAA,CAAc,CAAI,EAAiB,GAC3C,CAD+C,EAC3C,CAAC,GAAe,SAGlB,CAH4B,MAGrB,KAGT,GAAI,EAAQ,IAAkB,EAAc,OAAnB,QAAmB,CAC1C,CAD2D,MACpD,EAAiB,EAAc,eAAA,CAAgB,IAAA,CAAM,GAG9D,GAAI,EAAkB,CACpB,IAAM,EAAK,CAJiE,CAInD,YAAA,CAAa,uBAAuB,EAC7D,GAAI,EAAI,CACN,IAAM,EAAU,EAAiB,GAAe,UAAF,IAAE,CAAe,EAAE,CACjE,GAAI,EACF,OAAO,AADI,CAGf,CACF,CAEA,OAAO,CACT,EA1BgB,oBA4BA,EAAA,EAAA,+FCxEc,6BCA9B,IAAA,EAAuB,EAAA,CAAA,CAAA,EAAX,WAAW,kEAQvB,SAAS,EAAU,CAAA,CAAqB,CAAA,EAAU,AAChD,GAAmB,YAAf,AAA2B,OAApB,EACT,OAAO,EAAI,KAAK,IACP,IACT,EAAI,EADa,KACb,CAAU,CAAA,CAElB,AAH6B,CAS7B,OATqC,EAS5B,EAAA,CAT4B,EASV,CAAA,AATqB,EASyB,AACvE,OAAO,AAAC,IACN,IAAI,CADW,EACE,EACX,EAAW,EAAK,GAAA,CAAI,AAAC,IACzB,IADiC,AAC3B,EAAU,EAAO,EAAK,GAI5B,CAJgC,MAC5B,AAAC,GAAc,AAAkB,YAAY,OAAvB,IACxB,GAAa,CAAA,EAER,CACT,CAAC,EAMD,GAAI,EACF,MAAO,IADO,CAEZ,CADW,GACX,IAAS,EAAI,EAAG,EAAI,EAAS,MAAA,CAAQ,IAAK,CACxC,IAAM,EAAU,CAAA,CAAS,CAAC,CAAA,CACJ,YAAlB,AAA8B,OAAvB,EACT,IAEA,EAAO,CAAA,CAFC,AAEI,CAAC,CAAA,CAAG,IAAI,CAExB,CACF,CAEJ,CACF,CAMA,SAAS,EAAA,GAAsB,CAAA,EAA8C,AAE3E,OAAa,EAAA,WAAA,CAAY,KAAe,GAAO,CAAH,CAC9C,CAjDS,CAgD8B,AAAc,CAhD5C,EAAA,UAYA,EAAA,EAAA,eAkCA,EAAA,EAAA,yECtDT,IAAA,EAAuB,EAAA,CAAA,CAAA,EAAX,MAqCD,EAAA,EAAA,CArCY,AAqCZ,CAAA,+EAoEgB,SAAS,EAClC,CAAA,CACA,EAAwC,CAAC,CAAA,EACI,AAC7C,IAAI,EAAyB,CAAC,CAAA,CAM9B,SAASA,EACP,CAAA,CACA,CAAA,EACA,AACA,IAAM,EAAoB,EAAA,aAAA,CAA4C,GACtE,EAAY,SADwE,EACxE,CAAc,EAAoB,UAC9C,IAAM,EAAQ,EAAgB,MAAA,CAC9B,EAAkB,CAAC,GAAG,EAAiB,EAAc,CAErD,IAAM,EAAoD,EAAA,AAAC,GAFN,CAGnD,GADwD,AAClD,GAD6D,IAC3D,CAAA,KADgD,KACzC,CAAA,CAAU,GAAG,EAAQ,CAAI,EAClC,EAAU,CADoB,EACpB,CAAQ,EAAS,EAAA,CAAI,EAAK,EAAT,AAAc,CAAL,CAGpC,EAAc,EAAA,OAAA,CAAQ,IAAM,EAAS,OAAO,MAAA,CAAO,IACzD,GADgE,CAAC,EAC1D,CAAA,EAAA,EAAA,GAAA,EAAC,EAAQ,EAAT,MAAS,CAAR,CAAiB,QAAe,UAAA,CAAS,CACnD,EAP0D,YAqB1D,SAASC,EACP,CAAA,CACA,CAAA,CACA,EAAkC,CAAC,CAAA,EACL,AAC9B,GAAM,UAAE,EAAW,EAAA,CAAM,CAAI,EACvB,EAAU,GAAA,CAAQ,EAAS,EAAA,CAAI,EAAK,EAAT,AAAc,CAAL,CACpC,EAAgB,EAAA,UAAA,CAAW,GACjC,GAAI,CADoC,CAC3B,MAAA,CAAO,EACpB,GAAuB,KAAA,EAAW,EAA9B,EAA8B,OAAO,EACzC,IAAI,EAEJ,MAAM,AAAI,CAFI,CAAA,IAEE,CAAA,EAAA,AAFK,EAEA,EAAY,CAFZ,SAEY,eAAA,EAA4B,EAAiB,EAAA,CAAI,CACpF,CAEA,OA3BA,EAAS,CAwBuE,UAxBvE,CAAc,EAAoB,WAYlC,EAAAA,EAAA,cAeF,CAAC,EAAUA,EAAU,AAC9B,CA9CS,EAAAD,EAAA,IA6CqB,aAO9B,IAAM,EAA2B,EAAA,KAC/B,CADqC,GAC/B,CADyB,CACT,EAAgB,GAAA,CAAI,AAAC,GAC5B,EAAA,CAFgB,YAEhB,CAD+C,AACjC,IAE7B,OAAO,EAAA,CAFoC,QAE3B,AAAS,CAAA,CAAlB,CAAgC,AACrC,IAAM,EAAW,GAAA,CAAQ,EAAS,EAAK,EACvC,GADkC,IACrB,EAAA,OAAA,CACX,IAAA,CAAO,CAAE,CAAC,CAAA,OAAA,EAAU,EAAS,CAAE,CAAA,CAAG,CAAE,GAAP,AAAU,CAAA,CAAO,CAAC,EAAS,CAAG,CAAS,EAAE,CAAA,CACtE,CADwD,AACvD,EAAO,EAAQ,CAEpB,EANO,GAIa,QAGtB,EAXiC,eAcjC,OADA,EAAY,SAAA,CAAY,EACjB,CAACA,EAAe,EAAqB,KAAgB,GAAuB,AACrF,CAMA,IAP2D,KAOlD,EAAA,GAAwB,CAAA,EAAsD,AACrF,CARkF,CAAC,EAQ7E,EAAY,CAAA,CAAO,CAAC,CAAA,CAC1B,GAAsB,EAAG,EAArB,EAAO,MAAA,CAAc,OAAO,EAEhC,IAAM,EAA2B,EAAA,KAC/B,CADqC,GAC/B,CADyB,CACZ,EAAO,GAAA,CAAI,AAACE,IAAiB,CAC9C,CAF6B,QAEnBA,CADmBA,GAE7B,SADsB,CACXA,EAAY,SAAA,CACzB,CAAA,CAAE,CAEF,OAAO,EAAA,SAAS,AAAkB,CAAA,CAA3B,CAA2C,AAChD,IAAM,EAAa,EAAW,MAAA,CAAO,CAACC,EAAY,CAAE,UAAA,WAAU,CAAA,CAAU,IAKtE,CAL4E,GAKtE,EADa,AACE,EADO,EACP,CAAW,CAAA,OAAA,EAAU,CADA,CACS,CAAE,CAAA,CACrD,IADmD,EAC5C,CAAE,GAAGA,CAAAA,CAAY,GAAG,CAAA,AAAa,CAC1C,EAAG,CAAC,CAAC,EAEL,OAAa,EAAA,OAAA,CAAQ,IAAA,CAAO,CAAE,CAAC,CAAA,OAAA,EAAU,EAAU,SAAS,CAAA,CAAE,CAAA,CAAG,CAAW,CAAA,EAAI,CAAC,EAAW,CAC9F,EAXO,KAUsF,eAE/F,EAlBiC,eAqBjC,OADA,EAAY,SAAA,CAAY,EAAU,SAAA,CAC3B,CACT,CA7LoC,EAAT,KAASH,IAAAA,AAClC,CAAA,CACA,CAAA,EAC4E,AAC5E,IAAM,EAAgB,EAAA,aAAA,CAA4C,GAClE,EAAQ,SADwE,EACxE,CAAc,EAAoB,UAE1C,IAAM,EAA8C,EAAA,AAAC,IACnD,GADkD,AAC5C,GADuD,OACrD,CAAA,CAAU,CADgC,EAC7B,EAAQ,CAAI,EAG3B,EAAc,CAHS,CAGT,OAAA,CAAQ,IAAM,EAAS,OAAO,MAAA,CAAO,IACzD,GADgE,CAAC,EAC1D,CAAA,EAAA,EAAA,GAAA,EAAC,EAAQ,EAAT,MAAS,CAAR,OAAiB,WAAe,CAAA,CAAS,CACnD,EANoD,YAgBpD,SAASC,EACP,CAAA,CACA,EAAkC,CAAC,CAAA,EACL,AAC9B,GAAM,UAAE,GAAW,CAAA,CAAM,CAAI,EACvB,EAAgB,EAAA,UAAA,CAAW,GACjC,GAAI,CADoC,CAC3B,MAAA,CAAO,EACpB,GAAuB,KAAA,EAAW,EAA9B,EAA8B,OAAO,EACzC,IAAI,EAEJ,MAAM,AAAI,CAFI,CAAA,IAEE,CAAA,EAFK,AAEL,EAAK,EAAY,CAFZ,SAEY,eAAA,EAA4B,EAAiB,EAAA,CAAI,CACpF,CAEA,OArBA,EAAS,CAkBuE,UAlBvE,CAAc,EAAoB,WAQlC,EAAAA,EAAA,cAaF,CAAC,EAAUA,EACpB,AAD8B,EApCM,OAoCN,UA4CM,EAAA,EAAA,sBAmF3B,EAAA,EAAA,iFC5LT,IAAA,EAAuB,EAAA,CAAA,CAAA,EAAX,SAeH,EAAA,AAfc,CAed,CAAA,+BAZH,EAAyB,EAAA,aAAA,CAAqC,KAAA,CAAS,EAiB7E,SAAS,EAAa,CAAA,EAAsB,AAC1C,IAAM,EAAkB,EAAA,UAAA,CAAW,GACnC,OAAO,GAAY,GAAa,AADmB,KAErD,GAHS,gBAAA,oFCpBT,IAAA,EAAuB,EAAA,CAAA,CAAA,EAAX,MACZ,EAAgC,EAAA,CADT,AACd,AAAuB,CAAA,sBAAA,UAG1B,EAAc,CAAA,CAAc,UAAU,IAAA,CAAK,EAAE,QAAA,CAAS,CAAC,CAAA,GAAM,CAAN,GAAY,MAAA,CAAA,CACrE,EAAQ,EAEZ,SAAS,EAAM,CAAA,EAAkC,AAC/C,GAAM,CAAC,EAAI,EAAK,CAAU,EAAV,AAAU,QAAA,CAA6B,KAKvD,MALkE,AAElE,CAFmE,AAEnE,EAAA,EAAA,eAAA,EAAgB,KACT,AAAD,CADgB,EACE,EAAM,AAAC,GAAY,GAAW,KAA9B,EAAqC,KAC7D,EAAG,AADiE,CAAC,AACjE,EAAgB,EACb,IAAoB,EAAK,CAAA,IADb,EACa,EAAS,EAAE,CAAA,CAApC,AAAyC,EAAA,CAAA,AAClD,GAPS,gBAAA,sECPT,IAAA,EAAuB,EAAA,CAAA,CAAA,EAAXG,MACZ,EAAgC,EAAA,CAAvB,AAAuB,CADT,AACS,sBAAA,yDCUzB,SAAS,EACd,CAAA,CACA,CAAA,EAEA,AADA,OACa,EAAA,UAAA,CAAW,CAAC,EAAwB,IAC5B,AACZ,CADY,CAAQ,EAAK,CAAU,CADiD,CAC3D,AAAe,EAC3B,CAD2B,CAE9C,EACL,CARgB,EAAA,EAAA,KAOC,cDTjB,IAAM,EAAoC,EAAA,AAAC,IACzC,GAAM,AADkC,GAAW,MAC3C,CAAA,GADgC,OACvB,CAAA,CAAS,CAAI,EACxB,EAAW,EAAY,GAEvB,EACgB,EAHc,UAGlC,OAAO,EACH,EAAS,CAAE,QAAS,EAAS,SAAA,AAAU,CAAC,EAClC,EAAA,QAAA,CAAS,IAAA,CAAK,GAGpB,EAAM,EAAsB,CAHA,CAGS,GAAA,CAAK,EAAc,IAE9D,CAFmE,CAAC,IAC7B,AAChC,YADY,OAAO,GACL,EAAS,SAAA,CAAkB,EAAA,YAAA,CAAa,EAAO,KAAE,CAAI,CAAC,EAAI,IACjF,EAb0C,YAmB1C,SAAS,EAAY,CAAA,EACnB,AADqC,GAC/B,CAAC,EAAM,EAAO,CAAU,EAAA,EAAV,MAAU,CAAsB,EAC9C,EAAkB,EAAA,MAAA,CAAmC,IAAI,EACzD,EAAuB,EAAA,MAAA,CAAO,GAC9B,EAA6B,EADQ,AACR,MAAA,CAAe,MAAM,EAClD,EAA8B,EAAA,MAAA,CAA2B,KAAA,CAAS,EAElE,CAAC,EAAO,EAAI,CAAI,CAAJ,CADG,EAAU,UAAY,EACL,UAAc,CAClD,QAAS,CACP,QAAS,YACT,cAAe,kBACjB,EACA,iBAAkB,CAChB,MAAO,UACP,cAAe,WACjB,EACA,UAAW,CACT,MAAO,SACT,CACF,CAAC,EAyHD,OAvHM,EAAA,SAAA,CAAU,KACV,AAAU,CADM,UACK,IAOvB,EAAqB,OAAA,CACnB,EAAsB,OAAA,EAAW,EAAiB,EAAU,OAAO,EACrE,EAAsB,OAAA,CAAU,KAAA,GAEhC,EAAqB,OAAA,CAAU,MAEnC,EAAG,CAAC,EAAM,EAEV,CAFS,AAET,EAAA,EAAA,eAAA,EAAgB,KACd,CADoB,GACd,EAAS,EAAU,OAAA,CACnB,EAAa,EAAe,OAAA,CAGlC,GAF0B,CAEtB,GAFqC,EAElB,CACrB,IAAM,EAAoB,EAAqB,OAAA,CACzC,EAAuB,EAAiB,GAE1C,GAKF,AAPkD,EAO5B,IALX,GAKW,CAAU,EAChC,EAAK,OAAO,GACH,AAAyB,YAAU,GAAQ,UAAY,OAGhE,CAHwE,CAGnE,SAAS,EAUV,GAFgB,IAAsB,EAGxC,EAAK,GADW,YACI,CADS,CAG7B,EAAK,SAAS,EAIlB,EAAe,OAAA,CAAU,CAC3B,CACF,EAAG,CAAC,EAAS,EAAK,EAAD,AAEjB,CAAA,EAAA,EAAA,eAAA,EAAgB,KACd,CADoB,EAChB,EAAM,CAER,IADI,EACE,EAAc,EAAK,aAAA,CAAc,WAAA,EAAe,OAMhD,EAAqB,EAAA,AAAC,IAI1B,IAAM,EAHuB,AAGF,AAJyB,EACN,EAAU,GAD/B,IACsC,EAGf,OAJvB,CAIuB,CAAS,IAAI,MAAA,CAAO,EAAM,aAAa,CAAC,EACxF,GAAI,EAAM,MAAA,GAAW,GAAQ,IAW3B,EAAK,cAX0C,CAW3B,EAChB,CAAC,EAAe,OAAA,EAAS,CAC3B,IAAM,EAAkB,EAAK,KAAA,CAAM,iBAAA,CACnC,EAAK,KAAA,CAAM,iBAAA,CAAoB,WAK/B,EAAY,EAAY,UAAA,CAAW,KACI,CADE,WACU,CAA7C,EAAK,KAAA,CAAM,iBAAA,GACb,EAAK,KAAA,CAAM,iBAAA,CAAoB,CAAA,CAEnC,CAAC,CACH,CAEJ,EA/B2B,sBAgCrB,EAAuB,EAAA,AAAC,IACxB,EAAM,IAD4C,EAC5C,GAAW,GAEnB,CAHyB,EAGJ,AAFI,OAEJ,CAAU,EAAiB,CAHvB,CAGiC,QAAO,CAErE,EAL6B,wBAS7B,OAHA,EAAK,gBAAA,CAAiB,iBAAkB,GACxC,EAAK,eADuD,CACvD,CAAiB,kBAAmB,GACzC,EAAK,aADsD,GACtD,CAAiB,eAAgB,GAC/B,KACL,CADW,CACC,QAF0C,IAE1C,CAAa,GACzB,EAAK,IAD6B,eAC7B,CAAoB,iBAAkB,GAC3C,EAAK,eAD0D,IAC1D,CAAoB,kBAAmB,GAC5C,EAAK,aADyD,MACzD,CAAoB,eAAgB,EAC3C,CACF,CAGE,EAAK,IAHA,QAFwD,GAKzC,CAExB,EAAG,CAAC,EAAM,EAAK,EAER,AAFO,CAGZ,UAAW,CAAC,UAAW,kBAAkB,CAAA,CAAE,QAAA,CAAS,GACpD,EADyD,EAC9C,EAAA,WAAA,CAAY,AAACC,IACtB,GAAIA,EAAM,CADkC,AAE1C,IAAM,EAAS,iBAAiBA,GAChC,EAAU,AAD0B,OAC1B,CAAU,EAMpB,EAAsB,OAAA,CAAU,EAAiB,EACnD,IADyD,EAEvD,CADK,CACK,OAAA,CAAU,KAEtB,EAAQA,EACV,EAAG,CADW,AACV,CAAC,CACP,CACF,CAMA,SAAS,EAAU,CAAA,CAAqB,CAAA,EAAiB,AACvD,GAAmB,YAAf,AAA2B,OAApB,EACT,OAAO,EAAI,KAAK,IACP,IACT,EAAI,EADa,KACb,CAAU,CAAA,CAElB,AAH6B,CAmB7B,OAnBqC,EAmB5B,EAAA,CAnB4B,EAmBA,CAnBW,AAmBX,EAA8C,AAGjF,IAAM,EAAgB,EAAA,MAAA,CAAO,GAG7B,CAHiC,MACjC,EAAQ,OAAA,CAAU,EAEL,EAAA,WAAA,CAAY,AAAC,IACxB,IAAM,CADqC,CACvB,EAAQ,OAAA,CACxB,GAAa,EACX,EAAW,EAAY,GAAA,CAAI,AAAC,IAChC,IADwC,AAClC,EAAU,EAAO,EAAK,GAI5B,CAJgC,MAC5B,AAAC,GAAiC,YAAY,AAA/B,OAAO,IACxB,EAAa,EAAA,EAER,CACT,CAAC,EAED,GAAI,EACF,MAAO,IADO,CAEZ,CADW,GACX,IAAS,EAAI,EAAG,EAAI,EAAS,MAAA,CAAQ,IAAK,CACxC,IAAM,EAAU,CAAA,CAAS,CAAC,CAAA,CACH,YAAnB,AAA+B,OAAxB,EACT,IAEA,EAAO,CAAA,CAFC,AAEW,CAAC,CAAA,CAAG,IAAI,CAE/B,CACF,CAEJ,EAAG,CAAC,CAAC,CACP,CAEA,SAAS,EAAiB,CAAA,EAAoC,AAC5D,OAAO,GAAQ,eAAiB,MAClC,CAOA,SAAS,EAAc,CAAA,EAA2D,AAEhF,IAAI,EAAS,OAAO,wBAAA,CAAyB,EAAQ,KAAA,CAAO,KAAK,GAAG,IAChE,EAAU,GAAU,mBAAoB,GAAU,EAAO,cAAA,QAC7D,AAAI,EACM,EAAgB,GAAA,EADb,AAMb,EAAU,CADV,EAAS,OAAO,wBAAA,CAAyB,EAAS,KAAK,GAAG,GAAA,GACtC,mBAAoB,GAAU,EAAO,cAAA,EAEhD,EAAQ,KAAA,CAAM,GAAA,CAIhB,EAAQ,KAAA,CAAM,GAAA,EAAQ,EAAgB,GAC/C,AAD+C,CAnPtC,EAAA,EAAA,eAoKA,EAAA,EAAA,UAsBA,EAAA,EAAA,yBAgCA,EAAA,EAAA,oBASA,EAAA,EAAA,gEE/PT,IAAA,EAAuB,EAAA,CAAA,CAAA,EAAX,MACZ,EAA0B,EAAA,CADH,AACG,CAAA,EAAd,KACZ,EAA2B,EAAA,CAAA,AAAlB,CAAkB,GADD,KAoDf,EAAA,EAAA,CAAA,CAAA,GAnDgB,6BAyCM,EAjCnB,AAiC+B,CAhC3C,IACA,SACA,MACA,OACA,KACA,KACA,MACA,QACA,QACA,KACA,MACA,KACA,IACA,SACA,OACA,MACA,KACF,CAemD,MAAA,CAAO,CAAC,EAAW,KACpE,IAD6E,AACvE,EAAA,CAAA,EAAO,EAAA,UAAA,EAAW,CAAA,UAAA,EAAa,EAAI,CAAE,CAAF,CACnC,EAAa,EAAA,UAAA,CAAW,CAAC,EAA2C,KACxE,GAAM,SADwF,AACtF,CAAA,CAAS,GAAG,EAAe,CAAI,EAOvC,MAAO,CAAA,EAAA,CAP4B,CAO5B,GAAA,EANW,AAMV,EANoB,EAMrB,AAN4B,EAM3B,CAAM,GAAG,CAAA,CAAgB,IAAK,CAAA,CAAc,CACtD,CAAC,EAID,OAFA,EAAK,WAAA,CAAc,CAAA,UAAA,EAAa,EAAI,CAAA,CAE7B,AAF6B,CAE3B,GAAG,CAAA,CAAW,CAAC,EAAI,CAAG,CAAH,AAAQ,CACtC,EAAG,CAAC,CAAe,EA2CnB,SAAS,EAAmD,CAAA,CAAqB,CAAA,EAAU,AACrF,GAAiB,EAAA,EAAT,OAAS,CAAU,IAAM,EAAO,aAAA,CAAc,GAC5D,EADiE,CAAC,AADzD,gBAAA,kICtGT,IAAA,EAAuB,EAAA,CAAA,CAAA,EAAX,MACZ,EAAgC,EAAA,CADT,AACS,AAAvB,CAAuB,sBAAA,yDAkBE,SAAS,EAGzC,CAAA,EAAmB,AACnB,IAAMC,EAAa,EAAA,UAAA,CAAyC,CAAC,EAAO,KAClE,GAAI,SAD+E,CAC7E,CAAA,CAAU,GAAG,EAAU,CAAI,EAC7B,EAA8C,GADrB,EAEzB,GAAe,EACb,EAAiC,CAAC,CAAA,CAEpC,EAAgB,IAA4B,IAApB,QAAK,AAA2B,OAApB,GACtC,GAAW,EAAI,EAAS,SAAQ,EAG5B,EAAA,QAAA,CAAS,OAAA,CAAQ,EAAU,AAAC,IAChC,GAAI,EAAY,GAAiB,CAC/B,GAAe,EAEf,CAJiD,GAI7C,CAHwB,CAGhB,UAAW,EAAU,KAAA,CAAQ,EAAU,KAAA,CAAM,KAAA,CAAQ,EAAU,KAAA,CAAM,QAAA,CAE7E,EAAgB,IAAyB,CAApB,WAAK,AAA2B,OAApB,IACnC,EAAQ,EAAI,EAAM,SAAQ,EAG5B,EAAmB,EAPD,EAO6C,GAC/D,EAAY,AADwD,IACxD,CAAM,GAAkB,OAAe,QAAQ,CAC7D,AAFsD,MAGpD,CADK,CACO,IAAA,CAAK,EAErB,CAAC,EAEG,EACF,EAAyB,EAAA,GALQ,SAIb,AACK,CAAa,EAAkB,KAAA,EAAW,GAMnE,CAAC,GACkC,IAP2C,AAOxE,EAAA,QAAA,CAAS,KAAA,CAAM,IACf,EAAA,EADuB,YACvB,CAAe,KAErB,EAAmB,CAFU,AAEV,EAGrB,CAJE,GAII,EAAsB,EAAmB,EAAc,GAAoB,KAAA,EAC3E,EAAA,CAAA,EAAc,CADyD,CACzD,eAAA,EAAgB,EAAc,GAElD,GAAI,CAAC,EAAkB,CAIrB,GAAI,GAAyB,GANsC,AAMnC,CAAhB,EACd,MAAM,AAAI,MACR,EAAe,EAAqB,GAAa,EAAgB,IAApB,AAGjD,KAH8E,EAGvE,CACT,CAEA,IAAM,EAAc,EAAW,EAAW,EAAiB,KAAA,EAAS,CAAC,CAAC,EAOtE,OAJI,EAAiB,IAAA,GAAe,EAAA,QAAA,EAAU,CAC5C,EAAY,GAAA,CAAM,EAAe,EAAc,CAAA,EAGpC,EAAA,YAAA,CAAa,EAAkB,EAC9C,CAAC,EAGD,MAJyD,CAGzDA,EAAK,WAAA,CAAc,CAAA,EAAG,EAAS,KAAA,CAAA,CACxBA,AADwB,CAEjC,CAxE2C,EAAA,EAAA,cA0E3C,IAAM,EAAO,EAAW,GAAX,GAAiB,EAMxB,EAAuB,MANhB,CAMuB,GAAA,CAAI,iBAAiB,EAavB,SAAS,EAAgB,CAAA,EAAmB,AAC5E,IAAMC,EAAgC,EAAC,AAAD,GACpC,MADoC,IACzB,EAAQ,EAAM,KADW,GACX,CAAS,EAAM,KAAK,EAAI,EAAM,QAAA,CADnB,aAKtC,OAFAA,EAAU,WAAA,CAAc,CAAA,EAAG,EAAS,OAAA,GAAA,CAAA,CACpCA,EAAU,SAAA,CAAY,EACfA,CACT,CAP2C,EAAA,EAAA,mBAe3C,IAAM,EAAmC,EAAA,CAAC,EAA6B,KACrE,GAAI,EAD4F,QACjF,EAAU,KAAA,CAAO,CAC9B,CAFqC,GAE/BC,EAAQ,EAAU,KAAA,CAFa,AAEP,KAAA,QACnB,AAAX,EAAW,EAAP,YAAO,CAAwCA,GACtC,EAAA,CAD2C,EAAG,CAAA,QAC9C,CAAaA,EAAO,KAAA,EAAW,EAAU,KAAA,CAAM,QAAA,CAASA,EAAM,KAAA,CAAM,QAAQ,CAAC,EADxB,IAEpE,CAEA,OAAa,EAAA,cAAA,CAAe,GAAS,EAAJ,AAAY,IAC/C,EARyC,oCAgBzC,SAAS,EAAW,CAAA,CAAqB,CAAA,EAAsB,AAE7D,IAAM,EAAgB,CAAE,GAAG,CAAA,AAAW,EAEtC,IAAA,IAAW,KAAY,EAAY,CACjC,IAAM,EAAgB,CAAA,CAAU,EAAQ,CAClC,EAAiB,CAAA,CAAW,CADM,CACE,CAExB,KAFwB,MAEb,IAAA,CAAK,GAG5B,GAAiB,EAHmB,AAItC,CAAA,CAAc,EAAQ,CAAI,CAAA,GAAI,CAAR,IACpB,AAFiC,IACe,AAC1C,EAAS,KAAkB,GAEjC,CAFqC,MAAP,AAC9B,KAAiB,GACV,CACT,AAFuB,EAKhB,GALS,CAMhB,CAAA,CAAc,EAAQ,CAAI,CAAA,EAIR,EAJI,CADA,MAKK,CAAtB,EACP,CAAA,CAAc,EAAQ,CAAI,CAAE,GAAG,CAAT,AAAS,CAAe,GAAG,CAAA,AAAe,EAC1C,aAAa,CAA1B,IACT,CAAA,CAAc,EAAQ,CAAI,CAAC,EAAe,EAApB,AAAkC,CAAE,MAAA,CAAO,IAAT,GAAgB,EAAE,IAAA,CAAK,IAAG,CAEtF,CAEA,MAAO,CAAE,GAAG,CAAA,CAAW,GAAG,CAAA,AAAc,CAC1C,CAWA,SAAS,EAAc,CAAA,EAA6B,AAElD,IAAI,EAAS,OAAO,wBAAA,CAAyB,EAAQ,KAAA,CAAO,KAAK,GAAG,IAChE,EAAU,GAAU,mBAAoB,GAAU,EAAO,cAAA,QAC7D,AAAI,EACM,EAAgB,GAAA,EADb,AAMb,EAAU,CADV,EAAS,OAAO,wBAAA,CAAyB,EAAS,KAAK,GAAG,GAAA,GACtC,mBAAoB,GAAU,EAAO,cAAA,EAE/C,EAAQ,KAAA,CAAuC,GAAA,CAIjD,EAAQ,KAAA,CAAuC,GAAA,EAAQ,EAAgB,GAAA,AACjF,CAMA,SAAS,EACP,CAAA,EAEA,AAD+D,OAEvD,EAAA,cAAA,CAAe,IACrB,AAAsB,CADI,kBACnB,EAAM,IAAA,EACb,cAAe,EAAM,IAAA,EACrB,EAAM,IAAA,CAAK,SAAA,GAAc,CAE7B,CA3ES,EAAA,EAAA,cA2CA,EAAA,EAAA,iBAuBA,EAAA,EAAA,eAWT,IAAM,EAAkB,OAAO,GAAA,CAAI,YAAY,EAO/C,SAAS,EAAgB,CAAA,EAAuD,AAC9E,OACa,MAAX,GACmB,UAAnB,OAAO,GACP,aAAc,GACd,EAAQ,QAAA,GAAa,GACrB,aAAc,GACd,EAAc,EAAQ,QAAQ,CAElC,CAEA,SAAS,EAAc,CAAA,EAA+C,AACpE,MAAwB,UAAjB,OAAO,GAAgC,OAAV,GAAkB,SAAU,CAClE,CAbS,EAAA,EAAA,mBAWA,EAAA,EAAA,iBAIT,IAAM,EAAkB,EAAC,AAAD,GACf,CAAA,EAAG,EAAS,MAD0B,AAAvB,CACH,YADG,uEACH,CAAA,CADG,mBAIlB,EAAuB,EAAA,AAAC,GACrB,CAAA,EAAG,EAAS,MAD+B,CAC/B,IADQ,aAAA,+EACR,CAAA,CADQ,wBAIvB,EAAqC,CAAA,CAAc,QAAQ,IAAA,CAAK,EAAE,QAAA,CAAS,CAAC,CAAA,mFC1PlF,IAAA,EAAuB,EAAA,CAAA,CAAA,EAAX,MAMZ,KANuB,IAMd,EAAkD,CAAA,EAA4B,AACrF,IAAM,EAAoB,EAAA,MAAA,CAAO,GAOjC,KAPyC,EAEnC,EAAA,SAAA,CAAU,KACd,CADoB,CACR,OAAA,CAAU,CACxB,CAAC,EAGY,EAAA,OAAA,CAAQ,IAAO,CAAA,GAAI,IAAS,EAAY,OAAA,GAAU,GAAG,GAAa,CAAC,AAAV,CAAW,CACnF,2BATS,gBAAA,wFEFT,IAAA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,QDNIC,EAAYC,OAAOC,cAAc,CAMjCK,EAAsBC,CAAK,CAAC,mBAAmBC,IAAI,GAAGC,QAAQ,GAAG,CACjEC,EAA0BH,CAAK,CAAC,uBAAuBC,IAAI,GAAGC,QAAQ,GAAG,CAC7E,SAASE,EAAeC,CAAQ,EAC9B,GAAI,AAA+B,YAAY,OAApCN,EACT,OAAOA,EAAoBM,GAE7B,IAAMC,EAAMN,EAAMO,MAAM,CAAC,KACvB,MAAM,AAAIC,MAAM,gDAClB,GAUA,MATuC,YAAY,AAA/C,OAAOL,EACTA,EAAwB,KACtBG,EAAIG,OAAO,CAAGJ,CAChB,GAEA,CAAA,EAAA,EAAA,eAAA,AAAe,EAAC,KACdC,EAAIG,OAAO,CAAGJ,CAChB,GAEKL,EAAMU,OAAO,CAAC,IAAO,CAAC,GAAGC,IAASL,EAAIG,OAAO,MAAME,GAAQ,EAAE,CACtE,CAxBgCnB,EAyBzBY,EAzB2C,MAARR,CAAgB,CAAEC,MAyBrC,iBAzB4CC,cAAc,CAAK,GCDtF,IAAIN,EAAYC,OAAOC,cAAc,CACjCC,EAAS,CAACC,EAAQC,IAAUL,EAAUI,EAAQ,OAAQ,OAAEC,EAAOC,cAAc,CAAK,GAMlF,EAAqB,CAAK,CAAC,uBAAuB,IAAI,GAAG,QAAQ,GAAG,EAAI,EAAA,eAAe,CAC3F,SAAS,EAAqB,MAC5B,CAAI,aACJ,CAAW,UACX,EAA2B,EAAO,KAClC,EAAG,AADQ,WACG,EADU,MAExB,CAAM,CACP,EACC,GAAM,CAAC,EAAkB,EAAqB,EAAY,CAAG,EAAqB,aAChF,WACA,CACF,GACM,EAAwBK,KAAK,IAAd,EACf,EAAQ,EAAe,EAAO,EACpC,GAAI,EAAA,cAAc,CAAE,CAClB,IAAM,EAAkB,EAAM,MAAM,CAAU,KAAK,IAAdE,GACrC,EAAM,SAASK,CAAC,KACd,IAAM,EAAgB,EAAgB,OAAOf,CAC7C,GAAI,IAAkB,EAAc,CAElC,IAAM,EAAK,EAAe,aAAe,eACzC,QAAQ,IAAI,CACV,CAAA,EAAG,EAAO,kBAAkB,EAAE,AAHnB,EAAgB,aAAe,eAGP,IAAI,EAAE,EAAG,0KAA0K,CAAC,CAE3N,CACA,EAAgB,OAAO,CAAG,CAC5B,EAAG,CAAC,EAAc,EAAO,CAC3B,CAcA,MAAO,CAAC,EAbS,EAAM,WAAW,CAChC,AAAC,IACC,GAAI,EAAc,CAChB,IAAM,EAAS,EAAW,GAAa,EAAU,GAAQ,EACrD,IAAW,GACb,EAAY,CADO,MACA,GAAG,EAE1B,MACE,CADK,CACe,EAExB,EACA,CAAC,EAAc,EAAM,EAAqB,EAAY,EAEhC,AAC1B,CAEA,SAAS,EAAqB,aAC5B,CAAW,CACX,UAAQ,CACT,EACC,GAAM,CAAC,EAAO,EAAS,CAAG,EAAM,QAAQ,CAAC,GACnC,EAAe,EAAM,MAAM,CAAC,GAC5B,EAAc,EAAM,MAAM,CAAC,GAUjC,OATA,EAAmB,KACjB,EAAY,OAAO,CAAG,CACxB,EAAG,CAAC,EAAS,EACb,EAAM,SAAS,CAAC,KACV,EAAa,OAAO,GAAK,IAC3B,EAAY,CADsB,MACf,GAAG,GACtB,EAAa,OAAO,CAAG,EAE3B,EAAG,CAAC,EAAO,EAAa,EACjB,CAAC,EAAO,EAAU,EAC3B,AADuC,CAGvC,SAAS,EAAW,CAAK,EACvB,MAAwB,YAAjB,OAAO,CAChB,CAtBA,EAAO,EAAsB,wBAmB7B,EAAO,EAAsB,wBAI7B,EAAO,EAAY,cAMnB,IAAI,EAAa,OAAO,oBA4DxB,EA3DA,MA2DO,GA3DE,AAA4B,CAAO,CAAE,CAAQ,CAAE,CAAU,CAAE,CAAI,EACtE,GAAM,CAAE,KAAM,CAAe,CAAE,aAAW,CAAE,SAAU,CAAY,QAAE,CAAM,CAAE,CAAG,EACzE,EAAmC,KAAK,IAAzB,EACf,EAAW,EAAe,GAChC,GAAI,EAAA,cAAe,CAAE,CACnB,IAAM,EAAkB,EAAO,MAAM,CAAqB,KAAK,IAAzB,GACtC,EAAO,SAAS,CAAC,KACf,IAAM,EAAgB,EAAgB,OAAO,CAC7C,GAAI,IAAkB,EAAc,CAElC,IAAM,EAAK,EAAe,aAAe,eACzC,QAAQ,IAAI,CACV,CAAA,EAAG,EAAO,kBAAkB,EAAE,AAHnB,EAAgB,aAAe,eAGP,IAAI,EAAE,EAAG,0KAA0K,CAAC,CAE3N,CACA,EAAgB,OAAO,CAAG,CAC5B,EAAG,CAAC,EAAc,EAAO,CAC3B,CACA,IAAM,EAAO,CAAC,CAAE,GAAG,CAAU,CAAE,MAAO,CAAY,EAC9C,AADgD,IAElD,EADQ,AACH,IAAI,CAAC,GAEZ,GAAM,CAAC,EAAe,EAAS,CAAG,EAAO,UAAU,CACjD,CAAC,EAAQ,KACP,GAAI,EAAO,IAAI,GAAK,EAClB,MAAO,CAAE,GADqB,AAClB,CAAM,CAAE,MAAO,EAAO,KAAK,AAAC,EAE1C,IAAM,EAAO,EAAQ,EAAQ,GAI7B,OAHI,GAAgB,CAAC,OAAO,EAAE,CAAC,EAAK,KAAK,CAAE,EAAO,KAAK,GAAG,AACxD,EAAS,EAAK,KAAK,EAEd,CACT,KACG,GAEC,EAAoB,EAAc,KAAK,CACvC,EAAe,EAAO,MAAM,CAAC,GACnC,EAAO,SAAS,CAAC,KACX,EAAa,OAAO,GAAK,IAC3B,EAAa,OAAO,CAAG,EACnB,AAAC,GAFyC,AAG5C,EAAS,GAGf,EAAG,CAAC,EAAmB,CAJA,CAIc,EAAa,EAClD,IAAM,EAAQ,EAAO,OAAO,CAAC,IACe,AAC1C,IAAI,CAD2C,IAAzB,EAEb,CAAE,GAAG,CAAa,CAAE,EADV,IACiB,CAAgB,EAE7C,EACN,CAAC,EAAe,EAAgB,EAMnC,OALA,EAAO,SAAS,CAAC,KACX,GAAgB,CAAC,OAAO,EAAE,CAAC,EAAiB,EAAc,KAAK,GACjE,AADoE,EAC3D,CAAE,KAAM,EAAY,MAAO,CAAgB,EAExD,EAAG,CAAC,EAAiB,EAAc,KAAK,CAAE,EAAa,EAChD,CAAC,EAAO,EAAS,AAC1B,EACoC,iGC3IpC,IAAA,EAAuB,EAAA,CAAA,CAAA,EAAX,MASNiB,EAAkB,GATD,SASa,SAAiB,EAAA,eAAA,CAAkB,KAAO,CAAD,uDCKzE,IAAA,EAAA,EAAA,CAAA,CAAA,QACJ,IAAMC,EAAgB,AAAChB,GAAyB,WAAjB,OAAOA,EAAsB,CAAA,EAAGA,EAAAA,CAAO,CAAa,IAAVA,EAAc,IAAMA,EAChFiB,EAAK,EAAA,IAAI,cACH,CAACE,EAAMC,IAAS,AAACC,IAC5B,IAAIC,EACJ,GAAI,OAACF,EAAuC,KAAK,EAAIA,EAArC,AAA4CG,QAAAA,AAAQ,AAA5CH,GAAiD,KAAM,GAA5C,IAAmDH,CAA9C,CAAiDE,QAAME,EAAqC,KAAK,EAAIA,CAApC,CAA0CG,KAAK,EAAvCH,KAAyCA,EAAqC,GAApE,EAAyE,EAAIA,CAApC,AAApC,CAA8EI,OAAlCJ,EAA2C,EACvN,GAAM,CAAEE,EAD8K,KAAK,GAC3K,iBAAEG,CAAe,CAAE,CAAGN,EAChCO,EAAuB/B,OAAOgC,IAAI,CAACL,GAAUM,GAAG,CAAC,AAACC,IACpD,IAAMC,EAAcV,QAAqC,EAA3B,GAAgC,EAAIA,CAAK,CAACS,CAAlCT,CAA0C,CAC1EW,QAD0C,AACrBN,EAAyD,GAD/B,EACoC,EAAIA,CAAe,CAACI,EAAQ,CACrH,GAAIC,AAAgB,GAD2B,MACrB,EAD6BL,KACtB,KACjC,IAAMO,EAAajB,EAAce,EAF0C,EAE1Bf,EAAcgB,CAFiB,EAGhF,OAAOT,CAAQ,CAACO,EAAQ,CAACG,EAAW,AACxC,GACMC,EAAwBb,GAASzB,OAAOuC,OAAO,CAACd,GAAOe,MAAM,CAAC,CAACC,EAAKC,KACtE,GAAI,CAACC,EAAKvC,EAAM,CAAGsC,cACLE,IAAVxC,IAGJqC,CAAG,CAACE,CAHqB,CAGjB,CAAGvC,CAAAA,EAFAqC,CAIf,EAAG,CAAC,GAkBJ,OAAOpB,EAAGE,EAAMQ,QAjBqBP,GAAgD,OAACE,CAAtC,CAAiEF,EAAOsB,AAiBlFD,KAjBkBrB,WAAW,AAAqDsB,AAAgB,EAAoD,GAApH,CAAsE,CAAmD,EAArH,AAAyHpB,EAAyBc,GAAxEd,AAArE,GAAmJ,CAAC,CAACe,EAAKC,KACvO,GAAI,CAAEd,MAAOmB,CAAO,CAAElB,KADyJ,KAC9ImB,AADmJ,CACxI,CAAE,GAAGC,EAAwB,CAAGP,EAC5E,OAAO1C,OAAOuC,OAAO,CAACU,GAAwBC,KAAK,CAAC,AAACR,IACjD,GAAI,CAACC,EAAKvC,EAAM,CAAGsC,EACnB,OAAOS,MAAMC,OAAO,CAAChD,GAASA,EAAMiD,QAAQ,CAAC,CACzC,GAAGvB,CAAe,CAClB,GAAGQ,CACP,AAD4B,CAC3B,CAACK,EAAI,EAAI,CAAC,CACP,GAAGb,CAAe,CAClB,GAAGQ,CAAqB,CAC5B,CAAC,AAAC,CAACK,EAAI,GAAKvC,CAChB,GAAK,IACEqC,EACHM,EACAC,EACH,CAAGP,CACR,EAAG,EAAE,QAC+DhB,EAAqC,KAAK,EAAIA,CAApC,CAA0CG,KAAK,EAAvCH,KAAyCA,EAAqC,GAApE,EAAyE,EAAIA,CAAxE,AAAoC,CAA0CI,OAAlCJ,EAA2C,CAChM,OAD+J,KAAK","ignoreList":[11,12,14]}
@@ -1,8 +0,0 @@
1
- module.exports=[892519,a=>{"use strict";var b=a.i(662145),c=a.i(544394),d=a.i(149350),e=a.i(21215);function f({memory:a}){return(0,b.jsxs)("div",{className:"p-6 max-w-2xl",children:[(0,b.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,b.jsx)("h1",{className:"font-display text-xl font-semibold tracking-tight",children:"Session Memory"}),(0,b.jsx)("span",{className:"text-xs font-mono text-muted",children:"memory/MEMORY.md"})]}),a?.exists?(0,b.jsx)("div",{className:"bg-surface border border-border rounded-xl p-5",children:(0,b.jsx)(d.MarkdownRenderer,{content:a.content})}):(0,b.jsx)(e.EmptyState,{icon:"🧠",message:"No MEMORY.md yet.",subMessage:"AI will create one at the end of the first session.",bordered:!0}),(0,b.jsxs)("div",{className:"mt-4 p-4 bg-surface2 border border-border rounded-xl",children:[(0,b.jsx)("p",{className:"text-xs font-mono text-muted mb-2",children:"Add to your CLAUDE.md system prompt:"}),(0,b.jsx)("pre",{className:"text-xs font-mono text-accent/80 whitespace-pre-wrap leading-relaxed",children:`At session start:
2
- 1. Call vibedoc_read_memory
3
- 2. Call vibedoc_get_status
4
-
5
- At session end:
6
- - Call vibedoc_update_memory with full handoff`})]})]})}a.s(["default",0,function(){let{summary:a}=(0,c.useApp)();return(0,b.jsx)(f,{memory:a?.memory??null})}],892519)},21215,a=>{"use strict";var b=a.i(662145),c=a.i(368114);a.s(["EmptyState",0,function({icon:a,message:d,subMessage:e,bordered:f}){return(0,b.jsxs)("div",{className:(0,c.cn)("text-center py-16 text-muted text-sm",f&&"border border-dashed border-border rounded-xl"),children:[(0,b.jsx)("p",{className:"text-3xl mb-3",children:a}),(0,b.jsx)("p",{children:d}),e&&(0,b.jsx)("p",{className:"text-xs mt-1",children:e})]})}])}];
7
-
8
- //# sourceMappingURL=src_1lkod9y._.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/app/%28app%29/memory/page.tsx","../../../../src/components/memory/MemoryTab.tsx","../../../../src/components/shared/EmptyState.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport { useApp } from \"@/context/AppContext\"\r\nimport { MemoryTab } from \"@/components/memory/MemoryTab\"\r\n\r\nexport default function MemoryPage() {\r\n const { summary } = useApp()\r\n return <MemoryTab memory={summary?.memory ?? null} />\r\n}\r\n","import { MarkdownRenderer } from \"@/components/docs/MarkdownRenderer\"\r\nimport { EmptyState } from \"@/components/shared/EmptyState\"\r\n\r\ninterface MemoryTabProps {\r\n memory: { content: string; exists: boolean } | null\r\n}\r\n\r\nexport function MemoryTab({ memory }: MemoryTabProps) {\r\n return (\r\n <div className=\"p-6 max-w-2xl\">\r\n <div className=\"flex items-center justify-between mb-6\">\r\n <h1 className=\"font-display text-xl font-semibold tracking-tight\">Session Memory</h1>\r\n <span className=\"text-xs font-mono text-muted\">memory/MEMORY.md</span>\r\n </div>\r\n\r\n {memory?.exists ? (\r\n <div className=\"bg-surface border border-border rounded-xl p-5\">\r\n <MarkdownRenderer content={memory.content} />\r\n </div>\r\n ) : (\r\n <EmptyState\r\n icon=\"🧠\"\r\n message=\"No MEMORY.md yet.\"\r\n subMessage=\"AI will create one at the end of the first session.\"\r\n bordered\r\n />\r\n )}\r\n\r\n <div className=\"mt-4 p-4 bg-surface2 border border-border rounded-xl\">\r\n <p className=\"text-xs font-mono text-muted mb-2\">\r\n Add to your CLAUDE.md system prompt:\r\n </p>\r\n <pre className=\"text-xs font-mono text-accent/80 whitespace-pre-wrap leading-relaxed\">{`At session start:\r\n1. Call vibedoc_read_memory\r\n2. Call vibedoc_get_status\r\n\r\nAt session end:\r\n- Call vibedoc_update_memory with full handoff`}</pre>\r\n </div>\r\n </div>\r\n )\r\n}\r\n","import { cn } from \"@/lib/utils\"\r\n\r\ninterface EmptyStateProps {\r\n icon: string\r\n message: string\r\n subMessage?: string\r\n bordered?: boolean\r\n}\r\n\r\nexport function EmptyState({ icon, message, subMessage, bordered }: EmptyStateProps) {\r\n return (\r\n <div\r\n className={cn(\r\n \"text-center py-16 text-muted text-sm\",\r\n bordered && \"border border-dashed border-border rounded-xl\",\r\n )}\r\n >\r\n <p className=\"text-3xl mb-3\">{icon}</p>\r\n <p>{message}</p>\r\n {subMessage && <p className=\"text-xs mt-1\">{subMessage}</p>}\r\n </div>\r\n )\r\n}\r\n"],"names":["MemoryTab","memory","className","exists","content","icon","message","subMessage","bordered","EmptyState"],"mappings":"0DAEA,EAAA,EAAA,CAAA,CAAA,QCFA,EAAA,EAAA,CAAA,CAAA,QACA,EAAA,EAAA,CAAA,CAAA,OAMO,SAASA,EAAU,QAAEC,CAAM,CAAkB,EAClD,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIC,UAAU,0BACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIA,UAAU,mDACb,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAGA,UAAU,6DAAoD,mBAClE,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAKA,UAAU,wCAA+B,wBAGhDD,GAAQE,OACP,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAID,UAAU,0DACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,gBAAgB,CAAA,CAACE,QAASH,EAAOG,OAAO,KAG3C,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CACTC,KAAK,KACLC,QAAQ,oBACRC,WAAW,sDACXC,QAAQ,CAAA,CAAA,IAIZ,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIN,UAAU,iEACb,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEA,UAAU,6CAAoC,yCAGjD,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAIA,UAAU,gFAAwE,CAAC;;;;;8CAKlD,CAAC,QAI/C,kBDpCe,SAAS,EACtB,GAAM,SAAE,CAAO,CAAE,CAAG,CAAA,EAAA,EAAA,MAAA,AAAM,IAC1B,MAAO,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAAU,OAAQ,GAAS,QAAU,MAC/C,qDERA,EAAA,EAAA,CAAA,CAAA,4BASO,SAASO,AAAW,MAAEJ,CAAI,SAAEC,CAAO,YAAEC,CAAU,CAAEC,UAAQ,CAAmB,EACjF,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CACCN,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,uCACAM,GAAY,2DAGd,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEN,UAAU,yBAAiBG,IAC9B,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,UAAGC,IACHC,GAAc,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEL,UAAU,wBAAgBK,MAGlD"}
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,496385,e=>{"use strict";var t=e.i(83790);let s={name:"triangle-alert",size:24,node:[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],aliases:["alert-triangle"]};s.node;let a=(0,t.default)(s);e.s(["AlertTriangle",0,a],496385)},960754,e=>{"use strict";var t=e.i(72345),s=e.i(180338),a=e.i(910172),l=e.i(155515),n=e.i(161863),i=e.i(765470),r=e.i(244267),d=e.i(782630),c=e.i(694628),o=e.i(138324),x=e.i(956537),m=e.i(83790);let h={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"}]]};h.node;let u=(0,m.default)(h);var p=e.i(763371),f=e.i(998822),j=e.i(464750),g=e.i(651581),b=e.i(975157),N=e.i(844081);let v="font-mono text-[10px] uppercase tracking-widest text-muted";function k({attach:e}){let{board:a,rootParam:l}=(0,p.useApp)(),[n,i]=(0,s.useState)([]),[r,d]=(0,s.useState)(0);(0,s.useEffect)(()=>{let e=!1;return fetch(`/api/roadmap${l}`).then(e=>e.ok?e.json():{items:[]}).then(t=>{e||i(t.items??[])}).catch(e=>console.warn("[vibedoc] could not load roadmap for the chat rail:",e)),()=>{e=!0}},[l,r]),(0,s.useEffect)(()=>{let e=e=>{let t=e.detail?.type;("roadmap_updated"===t||"task_created"===t)&&d(e=>e+1)};return window.addEventListener("vibedoc:sse",e),()=>window.removeEventListener("vibedoc:sse",e)},[]);let c=(0,s.useMemo)(()=>Object.fromEntries((a?Object.values(a).flat():[]).map(e=>[e.id,e])),[a]);return(0,t.jsx)("div",{className:"flex h-full min-h-0 flex-col overflow-y-auto",children:(0,t.jsxs)("div",{className:"flex flex-col gap-5 p-5 animate-fade-in",children:[!e&&(0,t.jsx)(y,{}),e?.kind==="epic"&&(0,t.jsx)(w,{item:n.find(t=>t.id===e.id),id:e.id,tasksById:c}),e?.kind==="task"&&(0,t.jsx)(S,{task:c[e.id],id:e.id,items:n})]},e?`${e.kind}:${e.id}`:"none")})}function y(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("p",{className:v,children:"Context"}),(0,t.jsxs)("div",{className:"flex flex-col items-start gap-3 rounded-lg border border-dashed border-border2 p-4",children:[(0,t.jsx)(u,{className:"size-4 text-muted"}),(0,t.jsx)("p",{className:"text-sm text-txt",children:"Not linked to an epic or task"}),(0,t.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,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)("p",{className:v,children:"The agent can"}),(0,t.jsxs)("ul",{className:"flex flex-col gap-1.5 text-xs text-muted",children:[(0,t.jsx)("li",{children:"Read docs, tasks, the roadmap and memory"}),(0,t.jsx)("li",{children:"Propose doc and task edits (you review a diff)"}),(0,t.jsx)("li",{children:"Propose epics and task breakdowns (you accept)"}),(0,t.jsx)("li",{className:"text-muted/70",children:"It can't run code or edit source files"})]})]})]})}function w({item:e,id:s,tasksById:a}){if(!e)return(0,t.jsx)(z,{kind:"Epic",id:s});let l=e.tasks.map(e=>a[e]).filter(e=>!!e),n=l.map(e=>e.status).filter(e=>"cancelled"!==e),i=n.filter(e=>"done"===e).length;return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("p",{className:v,children:["Epic · ",e.id]}),(0,t.jsx)("h3",{className:"text-base font-semibold leading-snug text-txt",children:e.title}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(g.StatusPill,{status:e.status}),e.due&&(0,t.jsxs)("span",{className:"font-mono text-[10px] text-muted",children:["due ",e.due]})]})]}),n.length>0&&(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsxs)("div",{className:"flex items-baseline justify-between",children:[(0,t.jsx)("p",{className:v,children:"Progress"}),(0,t.jsxs)("span",{className:"font-mono text-[10px] text-muted",children:[i,"/",n.length," tasks"]})]}),(0,t.jsx)(g.SegmentedProgress,{statuses:n})]}),l.length>0&&(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("p",{className:v,children:"Tasks"}),(0,t.jsx)("ul",{className:"-mx-2 flex flex-col",children:l.map(e=>(0,t.jsx)(C,{task:e},e.id))})]}),e.body.trim()&&(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("p",{className:v,children:"Brief"}),(0,t.jsx)(f.MarkdownRenderer,{content:e.body,className:"prose-compact"})]}),(0,t.jsx)(R,{attach:{kind:"epic",id:e.id},label:"Open in roadmap"})]})}function C({task:e}){let{showAbout:s}=(0,r.useChats)();return(0,t.jsx)("li",{children:(0,t.jsxs)("button",{type:"button",onClick:()=>s({kind:"task",id:e.id}),title:`Chat about ${e.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,t.jsx)(j.StatusIcon,{status:(0,c.displayStatus)(e),className:"size-3"}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted",children:e.id}),(0,t.jsx)("span",{className:(0,b.cn)("min-w-0 flex-1 truncate","done"===e.status?"text-muted":"text-txt"),children:e.title})]})})}function S({task:e,id:s,items:a}){let{showAbout:l}=(0,r.useChats)();if(!e)return(0,t.jsx)(z,{kind:"Task",id:s});let n=e.phase.match(/^R\d+/)?.[0],i=n?a.find(e=>e.id===n):void 0,d=e.raw?.replace(/^#.*\n(\*\*[^*]+:\*\*.*\n)*/,"").trim();return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("p",{className:v,children:["Task · ",e.id]}),(0,t.jsx)("h3",{className:"text-base font-semibold leading-snug text-txt",children:e.title}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,t.jsx)(j.StatusChip,{status:(0,c.displayStatus)(e)}),e.size&&(0,t.jsx)("span",{className:"font-mono text-[10px] text-muted",children:e.size}),e.due&&(0,t.jsxs)("span",{className:"font-mono text-[10px] text-muted",children:["due ",e.due]})]})]}),(0,t.jsxs)("dl",{className:"grid grid-cols-[auto_1fr] gap-x-3 gap-y-1.5 text-xs",children:[n&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("dt",{className:"text-muted",children:"Epic"}),(0,t.jsx)("dd",{className:"min-w-0",children:(0,t.jsxs)("button",{type:"button",onClick:()=>l({kind:"epic",id:n}),className:"truncate text-left text-txt hover:text-accent",title:`Chat about ${n}`,children:[(0,t.jsx)("span",{className:"font-mono text-[10px] text-muted",children:n})," ",i?.title??e.phase.replace(/^R\d+\s*—\s*/,"")]})})]}),e.dependsOn&&"—"!==e.dependsOn&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("dt",{className:"text-muted",children:"Depends on"}),(0,t.jsx)("dd",{className:"font-mono text-[11px] text-txt",children:e.dependsOn})]})]}),d&&(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)("p",{className:v,children:"Spec"}),(0,t.jsx)(f.MarkdownRenderer,{content:d,className:"prose-compact"})]}),(0,t.jsx)(R,{attach:{kind:"task",id:e.id},label:"Open on board"})]})}function z({kind:e,id:s}){return(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("p",{className:v,children:[e," · ",s]}),(0,t.jsxs)("p",{className:"text-sm text-muted",children:[e," ",s," isn't in this project any more."]})]})}function R({attach:e,label:s}){return(0,t.jsxs)(o.default,{href:(0,N.attachHref)(e),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:[s,(0,t.jsx)(x.ArrowUpRight,{className:"size-3.5 transition-transform duration-(--duration-fast) group-hover:-translate-y-px group-hover:translate-x-px"})]})}var E=e.i(481523);let T=e=>{let t=setInterval(e,3e4);return()=>clearInterval(t)},A=()=>6e4*Math.floor(Date.now()/6e4);function O(){let{chats:e,loaded:s,create:l,show:n,send:i,now:c}=(0,r.useChats)(),o=(0,a.useRouter)(),x=(0,a.useSearchParams)().get("id"),m=e.find(e=>e.id===x)??(x?void 0:(0,E.defaultChat)(e,c));function h(e){let t=l();n(t),e&&i(t,e)}return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(F,{selectedId:m?.id??null,onNew:()=>h()}),(0,t.jsx)("section",{className:"flex min-w-0 flex-1 flex-col border-r border-border bg-bg",children:m?(0,t.jsx)("div",{className:"flex min-h-0 flex-1 flex-col animate-fade-in",children:(0,t.jsx)(d.ChatView,{chatId:m.id,variant:"page"})},m.id):s?(0,t.jsx)(M,{missing:!!x,onStart:h,onBack:()=>o.replace("/chat")}):null}),(0,t.jsx)("aside",{className:"hidden w-80 shrink-0 bg-surface xl:block","aria-label":"Chat context",children:(0,t.jsx)(k,{attach:m?.attach??null})})]})}function F({selectedId:e,onNew:a}){let{chats:i,now:d}=(0,r.useChats)(),[c,o]=(0,s.useState)(""),x=c.trim().toLowerCase(),m=x?i.filter(e=>e.title.toLowerCase().includes(x)||e.attach?.id.toLowerCase().includes(x)):i,h=(0,E.groupChats)(m,d),u=[{label:"Needs you",items:h.needsYou,tone:"text-amber"},{label:"Errors",items:h.errors,tone:"text-danger"},{label:"Running",items:h.running,tone:"text-accent"},{label:"Recent",items:h.recent,tone:"text-muted"}];return(0,t.jsxs)("aside",{className:"hidden w-72 shrink-0 flex-col border-r border-border bg-surface md:flex","aria-label":"All chats",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-4 pb-3 pt-4",children:[(0,t.jsx)("h1",{className:"flex-1 text-sm font-semibold text-txt",children:"Chats"}),(0,t.jsxs)("button",{type:"button",onClick:a,className:"inline-flex items-center gap-1.5 rounded-md bg-accent px-2.5 py-1.5 text-xs font-medium text-accent-fg transition-[filter,transform] duration-(--duration-fast) hover:brightness-110 active:scale-[0.97]",children:[(0,t.jsx)(l.Plus,{className:"size-3.5"})," New chat"]})]}),i.length>3&&(0,t.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,t.jsx)(n.Search,{className:"size-3.5 text-muted"}),(0,t.jsx)("input",{value:c,onChange:e=>o(e.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,t.jsxs)("div",{className:"min-h-0 flex-1 overflow-y-auto px-2 pb-4",children:[0===i.length&&(0,t.jsx)("p",{className:"px-2 py-6 text-xs text-muted",children:"No chats yet."}),u.map(s=>s.items.length>0&&(0,t.jsxs)("div",{className:"mt-3 first:mt-1",children:[(0,t.jsxs)("p",{className:(0,b.cn)("px-2 pb-1 font-mono text-[10px] uppercase tracking-widest",s.tone),children:[s.label," · ",s.items.length]}),(0,t.jsx)("ul",{className:"flex flex-col gap-px",children:s.items.map(s=>(0,t.jsx)(I,{chat:s,active:s.id===e},s.id))})]},s.label)),x&&0===m.length&&(0,t.jsxs)("p",{className:"px-2 py-6 text-xs text-muted",children:["No chat matches “",c,"”."]})]})]})}function I({chat:e,active:a}){let{show:l,remove:n,now:d}=(0,r.useChats)(),c=(0,s.useSyncExternalStore)(T,A,()=>0),o=(0,E.shellStatus)(e,d),x=[...e.messages].reverse().find(e=>e.text)?.text.replace(/\s+/g," ").trim();return(0,t.jsxs)("li",{className:"group relative animate-slide-in",children:[(0,t.jsxs)("button",{type:"button",onClick:()=>l(e.id),"aria-current":a?"true":void 0,className:(0,b.cn)("flex w-full flex-col gap-1 rounded-lg px-2.5 py-2 text-left transition-colors duration-(--duration-fast)",a?"bg-surface2 shadow-[inset_2px_0_0_rgb(var(--rgb-accent))]":"hover:bg-surface2/60"),children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 pr-5",children:[(0,t.jsx)(N.StatusMarker,{status:o,showIdle:!0}),(0,t.jsx)("span",{className:(0,b.cn)("min-w-0 flex-1 truncate text-[13px]","idle"!==o||a?"text-txt":"text-txt/80"),children:e.title}),c>0&&(0,t.jsx)("span",{className:"shrink-0 font-mono text-[10px] text-muted group-hover:opacity-0",children:(0,E.ago)(e.updatedAt,c)})]}),(e.attach||x)&&(0,t.jsxs)("span",{className:"flex items-center gap-2 pl-5 text-[11px] text-muted",children:[e.attach&&(0,t.jsx)(N.AttachLabel,{attach:e.attach,className:"shrink-0"}),x&&(0,t.jsx)("span",{className:"min-w-0 truncate",children:x})]})]}),(0,t.jsx)("button",{type:"button",onClick:()=>n(e.id),"aria-label":`Close ${e.title}`,title:e.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,t.jsx)(i.X,{className:"size-3.5"})})]})}function M({missing:e,onStart:s,onBack:a}){return(0,t.jsx)("div",{className:"grid flex-1 place-items-center p-8",children:(0,t.jsxs)("div",{className:"flex max-w-md flex-col items-start gap-4 animate-fade-in",children:[(0,t.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:"⬡"}),e?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-txt",children:"This chat was deleted"}),(0,t.jsx)("button",{type:"button",onClick:a,className:"text-sm text-accent hover:underline",children:"Back to all chats"})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-semibold text-txt",children:"Run chats side by side"}),(0,t.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,t.jsx)("div",{className:"flex flex-col gap-1.5",children:(0,E.suggestions)(null).map(e=>(0,t.jsx)("button",{type:"button",onClick:()=>s(e),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:e},e))})]})]})})}e.s(["default",0,function(){return(0,t.jsx)("div",{className:"flex h-[calc(100svh-3rem)] min-h-0",children:(0,t.jsx)(s.Suspense,{children:(0,t.jsx)(O,{})})})}],960754)}]);
@@ -1 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,83790,e=>{"use strict";var t=e.i(180338);let s=(...e)=>e.filter((e,t,s)=>!!e&&""!==e.trim()&&s.indexOf(e)===t).join(" ").trim(),a={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":2,"stroke-linecap":"round","stroke-linejoin":"round"},n=(0,t.createContext)({}),r=(0,t.forwardRef)(({color:e,size:r,width:i,height:l,strokeWidth:o,absoluteStrokeWidth:d,nonScalingStroke:c,className:p="",children:h,iconNode:u=[],icon:m={node:u,aliases:[],size:24},...x},f)=>{let{size:g=24,strokeWidth:b=2,absoluteStrokeWidth:y=!1,nonScalingStroke:j=!1,color:k="currentColor",className:w=""}=(0,t.useContext)(n)??{},v=!!h||(e=>{for(let t in e)if(t.startsWith("aria-")||"role"===t||"title"===t)return!0;return!1})(x),[N,S,z=[]]=function(e,t={}){return function(e,t={}){let n=t.attributeNames??{},r=e=>n[e]??e,i=e.size??e.width??a.width,l=e.size??e.height??a.height,o=e.aliases?.filter(e=>"string"==typeof e&&""!==e.trim()).map(e=>`lucide-${e}`)??[],d=[...e.name?[`lucide-${e.name}`]:[],...o],c=t.className?.split(" ").filter(Boolean)??[],p=!1===t.includeDefaultClasses?s(...c):s("lucide",...d,...c),h=t.absoluteStrokeWidth?Number(t.strokeWidth??a["stroke-width"])*Number(e.size??e.width??a.width)/Number(t.size??t.width??a.width):t.strokeWidth??a["stroke-width"];return["svg",{...Object.entries(a).reduce((e,[t,s])=>(e[r(t)]=s,e),{}),..."color"in t&&t.color&&{[r("stroke")]:t.color},..."size"in t&&null!=t.size&&{[r("width")]:t.size,[r("height")]:t.size},..."width"in t&&null!=t.width&&{[r("width")]:t.width},..."height"in t&&null!=t.height&&{[r("height")]:t.height},[r("stroke-width")]:h,...p&&{[r("class")]:p},[r("viewBox")]:`0 0 ${i} ${l}`,...!1===t.hasA11yProp?{[r("aria-hidden")]:"true"}:{},..."attributes"in t&&t.attributes},e.node.map(e=>{let[s,a,n]=e,i=t.nonScalingStroke?{[r("vector-effect")]:"non-scaling-stroke",...a}:a;return n?[s,i,n]:[s,i]})]}(e,{...t,attributeNames:{...t.attributeNames,class:"className","stroke-width":"strokeWidth","stroke-linecap":"strokeLinecap","stroke-linejoin":"strokeLinejoin","vector-effect":"vectorEffect"}})}(m,{color:e??k,width:i??r??g,height:l??r??g,strokeWidth:o??b,absoluteStrokeWidth:d??y,nonScalingStroke:c??j,className:s(w,p),hasA11yProp:v,attributes:x});return(0,t.createElement)(N,{ref:f,...S},[...z.map(([e,s])=>(0,t.createElement)(e,s)),...Array.isArray(h)?h:[h]])});e.s(["default",0,function(e,s=[],a=[]){let n,i="string"==typeof e?function(e,t,s=[]){if(null==t)throw Error("[lucide]: iconNode is required when icon name is used");return{name:e?.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),size:24,node:t,...s.length>0?{aliases:s}:{}}}(e,s,a):e,l=(0,t.forwardRef)(({className:e,...s},a)=>(0,t.createElement)(r,{ref:a,icon:i,className:e,...s}));return i.name&&(l.displayName=(n=(e=>{let t="",s=!1;for(let a of e){if("-"===a||"_"===a||a<=" "){s=t.length>0;continue}0===t.length?t+=a.toLowerCase():t+=s?a.toUpperCase():a,s=!1}return t})(i.name)).charAt(0).toUpperCase()+n.slice(1)),l}],83790)},270379,e=>{"use strict";var t=e.i(83790);let s={name:"arrow-up",size:24,node:[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]};s.node;let a=(0,t.default)(s);e.s(["ArrowUp",0,a],270379)},837001,e=>{"use strict";var t=e.i(83790);let s={name:"check",size:24,node:[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]]};s.node;let a=(0,t.default)(s);e.s(["Check",0,a],837001)},737487,e=>{"use strict";var t=e.i(83790);let s={name:"circle",size:24,node:[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]]};s.node;let a=(0,t.default)(s);e.s(["Circle",0,a],737487)},155515,e=>{"use strict";var t=e.i(83790);let s={name:"plus",size:24,node:[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]]};s.node;let a=(0,t.default)(s);e.s(["Plus",0,a],155515)},458055,e=>{"use strict";var t=e.i(83790);let s={name:"trash",size:24,node:[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],aliases:["trash-2"]};s.node;let a=(0,t.default)(s);e.s(["Trash2",0,a],458055)},788293,463464,e=>{"use strict";var t=e.i(83790);let s={name:"zap",size:24,node:[["path",{d:"M15.914 4a1.5 1.5 0 00-2.474-1.561l-9 9A1.5 1.5 0 005.5 14h4.002a.5.5 0 01.471.666L8.086 20a1.5 1.5 0 002.475 1.56l9-9A1.5 1.5 0 0018.5 10h-3.997a.5.5 0 01-.472-.667z",key:"1v7up4"}]]};s.node;let a=(0,t.default)(s);e.s(["Zap",0,a],788293);let n={name:"settings",size:24,node:[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]};n.node;let r=(0,t.default)(n);e.s(["Settings",0,r],463464)},528427,e=>{e.v(t=>Promise.all(["static/chunks/3wehcul43z-up.js","static/chunks/090qol92bm3lm.js","static/chunks/16amofje8v-rw.js","static/chunks/2a46a9zwq8i_j.js","static/chunks/3rmz5_d6ve6ut.js","static/chunks/3ezb3p4b8ibl2.js","static/chunks/2uhr8khh963wn.js","static/chunks/2zy289po30i-l.js","static/chunks/2rubn40gv6g5w.js","static/chunks/25-4d7lo7j_n3.js"].map(t=>e.l(t))).then(()=>t(20832)))},782630,956537,e=>{"use strict";var t=e.i(72345),s=e.i(180338),a=e.i(910172),n=e.i(270379),r=e.i(83790);let i={name:"arrow-up-right",size:24,node:[["path",{d:"M7 7h10v10",key:"1tivn9"}],["path",{d:"M7 17 17 7",key:"1vkiza"}]]};i.node;let l=(0,r.default)(i);e.s(["ArrowUpRight",0,l],956537);let o={name:"maximize-2",size:24,node:[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"m21 3-7 7",key:"1l2asr"}],["path",{d:"m3 21 7-7",key:"tjx5ai"}],["path",{d:"M9 21H3v-6",key:"wtvkvv"}]]};o.node;let d=(0,r.default)(o),c={name:"square",size:24,node:[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",key:"afitv7"}]]};c.node;let p=(0,r.default)(c);var h=e.i(458055),u=e.i(763371),m=e.i(244267),x=e.i(998822),f=e.i(975157),g=e.i(481523);function b({proposal:e,onResolve:a}){let{rootParam:n,openDoc:r}=(0,u.useApp)(),[i,l]=(0,s.useState)(null),[o,d]=(0,s.useState)(null),[c,p]=(0,s.useState)(!1);(0,s.useEffect)(()=>{fetch(`/api/docs${n}&read=${encodeURIComponent(e.path)}`).then(e=>e.ok?e.json():null).then(t=>l(t?.path===e.path.replace(/^\.\//,"")&&"string"==typeof t.content?t.content:"")).catch(()=>l(""))},[e.path,n]);let h=(0,s.useMemo)(()=>null===i?null:function(e,t){let s=e;for(let[e,a]of t.entries()){if("string"!=typeof a?.old_string||"string"!=typeof a?.new_string)return{error:`Edit ${e+1}: old_string and new_string must be strings`};if(""===a.old_string){if(""!==s)return{error:`Edit ${e+1}: empty old_string is only allowed for a new, empty doc`};s=a.new_string;continue}let t=s.indexOf(a.old_string);if(-1===t)return{error:`Edit ${e+1}: old_string not found in the doc`};if(-1!==s.indexOf(a.old_string,t+1))return{error:`Edit ${e+1}: old_string matches more than once; include more surrounding text`};s=s.slice(0,t)+a.new_string+s.slice(t+a.old_string.length)}return{content:s}}(i,e.edits),[i,e.edits]),m=null!==h&&"error"in h?h.error:null,x=(0,s.useMemo)(()=>{var e;let t,s;return null===i||!h||"error"in h?[]:(t=(e=function(e,t){let s=e.split("\n"),a=t.split("\n"),n=0;for(;n<s.length&&n<a.length&&s[n]===a[n];)n++;let r=s.length,i=a.length;for(;r>n&&i>n&&s[r-1]===a[i-1];)r--,i--;let l=s.slice(n,r),o=a.slice(n,i),d=Array.from({length:l.length+1},()=>Array(o.length+1).fill(0));for(let e=l.length-1;e>=0;e--)for(let t=o.length-1;t>=0;t--)d[e][t]=l[e]===o[t]?d[e+1][t+1]+1:Math.max(d[e+1][t],d[e][t+1]);let c=[],p=0,h=0;for(;p<l.length||h<o.length;)p<l.length&&h<o.length&&l[p]===o[h]?(c.push({op:" ",text:l[p]}),p++,h++):p<l.length&&(h===o.length||d[p+1][h]>=d[p][h+1])?(c.push({op:"-",text:l[p]}),p++):(c.push({op:"+",text:o[h]}),h++);return[...s.slice(0,n).map(e=>({op:" ",text:e})),...c,...s.slice(r).map(e=>({op:" ",text:e}))]}(i,h.content)).map(()=>!1),e.forEach((s,a)=>{if(" "!==s.op)for(let s=Math.max(0,a-2);s<=Math.min(e.length-1,a+2);s++)t[s]=!0}),s=[],e.forEach((e,a)=>{t[a]?s.push(e):"number"==typeof s[s.length-1]?s[s.length-1]=s[s.length-1]+1:s.push(1)}),s)},[i,h]),g=x.filter(e=>"number"!=typeof e&&"+"===e.op).length,y=x.filter(e=>"number"!=typeof e&&"-"===e.op).length;async function j(){p(!0),d(null);try{let t=await fetch(`/api/docs${n}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({path:e.path,edits:e.edits,actor:"ai"})});if(!t.ok)throw Error((await t.json().catch(()=>null))?.error??"Save failed");a("accepted")}catch(e){d(e.message)}finally{p(!1)}}return(0,t.jsxs)("div",{className:"my-2 rounded-md border border-border overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 bg-surface2 border-b border-border",children:[(0,t.jsx)("button",{onClick:()=>r(e.path),className:"text-xs font-mono text-accent truncate hover:underline",title:e.path,children:e.path}),(0,t.jsxs)("span",{className:"text-[10px] font-mono text-teal-400",children:["+",g]}),(0,t.jsxs)("span",{className:"text-[10px] font-mono text-red-400",children:["-",y]})]}),e.summary&&(0,t.jsx)("div",{className:"px-2 py-1 text-xs text-muted border-b border-border",children:e.summary}),(0,t.jsxs)("div",{className:"max-h-72 overflow-auto text-[11px] font-mono leading-5",children:[null===i&&(0,t.jsx)("div",{className:"px-2 py-1 text-muted",children:"Loading diff…"}),m&&(0,t.jsxs)("div",{className:"px-2 py-1 text-red-400",children:["Doc changed since this proposal (",m,"). Ask the agent to propose again."]}),null!==i&&!m&&0===x.length&&(0,t.jsx)("div",{className:"px-2 py-1 text-muted",children:"No changes"}),x.map((e,s)=>"number"==typeof e?(0,t.jsxs)("div",{className:"px-2 text-muted bg-surface2/50",children:["⋯ ",e," unchanged line",e>1?"s":""]},s):(0,t.jsxs)("div",{className:(0,f.cn)("px-2 whitespace-pre-wrap break-words","+"===e.op&&"bg-teal-500/10 text-teal-300","-"===e.op&&"bg-red-500/10 text-red-300 line-through decoration-red-400/40"),children:[e.op," ",e.text||" "]},s))]}),(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 border-t border-border",children:["pending"===e.status?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:j,disabled:c||null===i||!!m,className:"text-xs px-2 py-0.5 rounded-sm bg-accent/20 text-accent hover:bg-accent/30 disabled:opacity-50",children:c?"Applying…":"Accept"}),(0,t.jsx)("button",{onClick:()=>a("rejected"),disabled:c,className:"text-xs px-2 py-0.5 rounded-sm text-muted hover:text-txt",children:"Reject"})]}):(0,t.jsx)("span",{className:(0,f.cn)("text-xs","accepted"===e.status?"text-teal-400":"text-muted"),children:"accepted"===e.status?"✓ Applied":"Rejected"}),o&&(0,t.jsx)("span",{className:"text-xs text-red-400 truncate",children:o})]})]})}function y({proposal:e,onResolve:a}){let{rootParam:n,openDoc:r}=(0,u.useApp)(),i=e.plan,l="breakdown"===i.kind?i.tasks:[],o="roadmap"===i.kind?i.horizons??[]:[],d="roadmap"===i.kind?i.epics??[]:[],c="breakdown"===i.kind?(i.epic??"").trim().toUpperCase():"",p="breakdown"===i.kind?i.newEpic:void 0,[h,m]=(0,s.useState)(new Map),[x,f]=(0,s.useState)(new Set),[g,b]=(0,s.useState)(null),[k,w]=(0,s.useState)(null),[v,N]=(0,s.useState)(!1);(0,s.useEffect)(()=>{fetch(`/api/roadmap${n}`).then(e=>e.ok?e.json():null).then(e=>m(new Map((e?.items??[]).map(e=>[e.id,e.title])))).catch(()=>m(new Map))},[n]);let S=("breakdown"===i.kind?l.map(e=>e.key):[...o,...d].map(e=>e.key)).filter(e=>!x.has(e)),z="pending"===e.status,C=new Set(o.map(e=>e.key)),A=(e,s,a,n,r=!1)=>(0,t.jsx)(j,{rowKey:e,title:s,meta:a,body:n,indent:r,checked:!x.has(e),disabled:!z||v,onToggle:()=>{w(null),f(t=>{let s=new Set(t),a=s.has(e);for(let t of C.has(e)?[e,...d.filter(t=>t.parent.trim()===e).map(e=>e.key)]:[e])a?s.delete(t):s.add(t);let n=d.find(t=>t.key===e)?.parent.trim();return a&&n&&C.has(n)&&s.delete(n),s})},open:g===e,onOpen:()=>b(g===e?null:e)},e),$=e=>e.trim().split("\n")[0]??"",M=[...new Set(d.map(e=>e.parent.trim()).filter(e=>!C.has(e)))];async function _(){N(!0),w(null);try{let e=await fetch(`/api/plan/apply${n}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({plan:i,selected:S})}),t=await e.json().catch(()=>null);if(!e.ok)throw Error(t?.error??`Apply failed (${e.status})`);a("accepted",t?.created??[],[...x])}catch(e){w(e.message)}finally{N(!1)}}return(0,t.jsxs)("div",{className:"my-2 rounded-md border border-border overflow-hidden",children:[(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 bg-surface2 border-b border-border",children:[(0,t.jsx)("span",{className:"text-[10px] font-mono uppercase tracking-widest text-muted",children:"Plan"}),"breakdown"===i.kind?(0,t.jsxs)(t.Fragment,{children:[c?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-xs font-mono text-accent",children:c}),(0,t.jsx)("span",{className:"text-xs text-txt truncate",children:h.get(c)??""})]}):p?(0,t.jsxs)("span",{className:"text-xs text-txt truncate",children:["New epic: ",p.title,(0,t.jsxs)("span",{className:"text-muted",children:[" (under ",p.parent.trim().toUpperCase()," ",h.get(p.parent.trim().toUpperCase())??"",")"]})]}):(0,t.jsx)("span",{className:"text-xs text-muted",children:"No epic"}),(0,t.jsxs)("span",{className:"ml-auto text-[10px] font-mono text-muted",children:[l.length," tasks"]})]}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{className:"text-xs text-txt",children:"Roadmap"}),(0,t.jsxs)("span",{className:"ml-auto text-[10px] font-mono text-muted",children:[o.length?`${o.length} horizons \xb7 `:"",d.length," epics"]})]})]}),(0,t.jsxs)("ul",{className:"max-h-80 overflow-auto",children:[l.map(e=>A(e.key,e.title,[e.size,e.dependsOn?.length?`after ${e.dependsOn.join(", ")}`:null,e.due?`due ${e.due}`:null].filter(Boolean).join(" · "),e.body)),o.map(e=>[A(e.key,e.title,"new horizon",e.body),...d.filter(t=>t.parent.trim()===e.key).map(e=>A(e.key,e.title,$(e.body),e.body,!0))]),M.map(e=>[(0,t.jsxs)("li",{className:"px-2 py-1.5 border-b border-border text-xs text-muted",children:[(0,t.jsx)("span",{className:"font-mono text-accent mr-1",children:e.toUpperCase()}),h.get(e.toUpperCase())??""]},`parent-${e}`),...d.filter(t=>t.parent.trim()===e).map(e=>A(e.key,e.title,$(e.body),e.body,!0))])]}),k&&(0,t.jsx)("div",{className:"px-2 py-1 text-xs text-red-400 whitespace-pre-wrap border-t border-border",children:k}),(0,t.jsx)("div",{className:"flex items-center gap-2 px-2 py-1.5 border-t border-border",children:z?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("button",{onClick:_,disabled:v||0===S.length,className:"text-xs px-2 py-0.5 rounded-sm bg-accent/20 text-accent hover:bg-accent/30 disabled:opacity-50",children:v?"Creating…":`Accept (${S.length})`}),(0,t.jsx)("button",{onClick:()=>a("rejected",[],[]),disabled:v,className:"text-xs px-2 py-0.5 rounded-sm text-muted hover:text-txt",children:"Reject"})]}):"accepted"===e.status?(0,t.jsxs)("span",{className:"text-xs text-teal-400",children:["✓ Created"," ",(e.created??[]).map((e,s)=>(0,t.jsxs)("span",{children:[s>0&&", ",(0,t.jsx)("button",{onClick:()=>r(e.file),className:"font-mono hover:underline",children:e.id})]},e.id))]}):(0,t.jsx)("span",{className:"text-xs text-muted",children:"Rejected"})})]})}function j({rowKey:e,title:s,meta:a,body:n,indent:r,checked:i,disabled:l,onToggle:o,open:d,onOpen:c}){return(0,t.jsxs)("li",{"data-plan-row":e,className:"border-b border-border last:border-b-0",children:[(0,t.jsxs)("div",{className:(0,f.cn)("flex items-start gap-2 px-2 py-1.5",r&&"pl-6"),children:[(0,t.jsx)("input",{type:"checkbox","aria-label":`Include ${s}`,checked:i,disabled:l,onChange:o,className:"mt-0.5 accent-accent"}),(0,t.jsxs)("button",{onClick:c,className:"flex-1 min-w-0 text-left",children:[(0,t.jsxs)("div",{className:(0,f.cn)("text-xs text-txt",!i&&"line-through text-muted"),children:[(0,t.jsx)("span",{className:"font-mono text-muted mr-1",children:e}),s]}),a&&(0,t.jsx)("div",{className:"text-[10px] font-mono text-muted truncate",children:a})]})]}),d&&n&&(0,t.jsx)("div",{className:"px-3 pb-2 border-t border-border bg-surface2/40",children:(0,t.jsx)(x.MarkdownRenderer,{content:n,className:"text-xs"})})]})}var k=e.i(702197),w=e.i(844081);let v="grid size-8 shrink-0 place-items-center rounded-md text-muted transition-colors duration-(--duration-fast) hover:bg-surface2 hover:text-txt";function N({chat:e,hidden:a,wide:n}){let{send:r,resolveProposal:i,resolvePlan:l,answerQuestions:o}=(0,m.useChats)(),d=(0,s.useRef)(null),c=e.messages;return(0,s.useEffect)(()=>{let e=d.current;e&&!a&&(e.scrollTop=e.scrollHeight)},[c,a]),(0,t.jsx)("div",{ref:d,hidden:a,role:"log","aria-live":"polite",className:"min-h-0 flex-1 overflow-y-auto",children:(0,t.jsxs)("div",{className:(0,f.cn)("mx-auto flex flex-col gap-5 px-5 py-6 text-sm",n?"max-w-3xl":"max-w-none"),children:[0===c.length&&(0,t.jsx)(C,{chat:e,onPick:t=>r(e.id,t)}),c.map((s,a)=>(0,t.jsx)(S,{m:s,thinking:e.busy&&a===c.length-1,busy:e.busy,onProposal:(t,s,a)=>i(e.id,t,s,a),onPlan:(t,s,a,n)=>l(e.id,t,s,a,n),onAnswers:(t,s)=>o(e.id,t,s)},a))]})})}function S({m:e,thinking:s,busy:a,onProposal:n,onPlan:r,onAnswers:i}){return"user"===e.role?(0,t.jsx)("div",{className:"flex justify-end animate-fade-in",children:(0,t.jsx)("div",{className:"max-w-[85%] whitespace-pre-wrap rounded-2xl rounded-br-md border border-accent/20 bg-accent/10 px-3.5 py-2 text-txt",children:e.text})}):(0,t.jsxs)("div",{className:"flex gap-3 animate-fade-in",children:[(0,t.jsx)("div",{className:"mt-0.5 grid size-6 shrink-0 place-items-center rounded-md bg-linear-to-br from-accent to-teal text-[10px] text-white","aria-hidden":!0,children:"⬡"}),(0,t.jsxs)("div",{className:"min-w-0 flex-1 space-y-2",children:[e.tools.length>0&&(0,t.jsx)("div",{className:"flex flex-wrap gap-1",children:e.tools.map((e,s)=>(0,t.jsx)("span",{className:"rounded-sm border border-border bg-surface2 px-1.5 py-0.5 font-mono text-[10px] text-muted animate-slide-in",children:e},s))}),e.proposals.map(e=>(0,t.jsx)(b,{proposal:e,onResolve:t=>n(e.id,e.path,t)},e.id)),e.plans.map(e=>(0,t.jsx)(y,{proposal:e,onResolve:(t,s,a)=>r(e,t,s,a)},e.id)),e.questions.map(e=>(0,t.jsx)(k.QuestionCard,{set:e,disabled:a,onSubmit:t=>i(e,t)},e.id)),e.text&&(0,t.jsx)(x.MarkdownRenderer,{content:e.text,className:"text-sm"}),s&&!e.text&&!e.error&&(0,t.jsx)(z,{}),e.error&&(0,t.jsx)("p",{className:"whitespace-pre-wrap text-xs text-danger",children:e.error})]})]})}function z(){return(0,t.jsxs)("span",{className:"inline-flex items-center gap-2 text-xs text-muted",children:[(0,t.jsx)("span",{className:"inline-flex gap-1","aria-hidden":!0,children:[0,150,300].map(e=>(0,t.jsx)("span",{className:"size-1.5 rounded-full bg-accent animate-pulse-dot",style:{animationDelay:`${e}ms`}},e))}),"Thinking…"]})}function C({chat:e,onPick:s}){let a=e.attach;return(0,t.jsxs)("div",{className:"flex flex-col items-start gap-4 py-6 animate-fade-in",children:[(0,t.jsx)("div",{className:"grid size-9 place-items-center rounded-lg bg-linear-to-br from-accent to-teal text-sm text-white","aria-hidden":!0,children:"⬡"}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h3",{className:"text-lg font-semibold text-txt",children:a?`Ask about ${a.id}`:"Ask the agent"}),(0,t.jsx)("p",{className:"mt-1 max-w-md text-sm text-muted",children:a?`The agent reads ${"epic"===a.kind?"the epic and its tasks":"the task"} first. It proposes changes; nothing is written until you accept.`:"It reads your docs, tasks and roadmap and proposes edits you review. Runs on your local Claude Code login."})]}),(0,t.jsx)("div",{className:"flex flex-col gap-1.5",children:(0,g.suggestions)(a).map((e,a)=>(0,t.jsxs)("button",{type:"button",onClick:()=>s(e),style:{animationDelay:`${60*a}ms`},className:"group flex items-center gap-2 rounded-lg border border-border px-3 py-2 text-left text-sm text-txt/90 transition-colors duration-(--duration-fast) animate-slide-in [animation-fill-mode:both] hover:border-accent/50 hover:bg-accent/5",children:[(0,t.jsx)(l,{className:"size-3.5 text-muted transition-transform duration-(--duration-fast) group-hover:-translate-y-px group-hover:translate-x-px group-hover:text-accent"}),e]},e))})]})}function A({chat:e,wide:r}){let{send:i,stop:l,queue:o}=(0,m.useChats)(),{selectedDoc:d}=(0,u.useApp)(),c=(0,a.usePathname)(),[h,x]=(0,s.useState)(""),g="/docs"===c?d?.path:void 0,b=e.messages[e.messages.length-1],y=!!b?.questions.some(e=>!e.answers),j=Math.min(8,Math.max(1,h.split("\n").length));function k(){h.trim()&&!e.busy&&(i(e.id,h),x(""))}return(0,t.jsx)("div",{className:"shrink-0 px-5 pb-4 pt-1",children:(0,t.jsxs)("div",{className:(0,f.cn)("mx-auto rounded-xl border border-border bg-surface2 transition-[border-color,box-shadow] duration-(--duration-base) focus-within:border-accent/60 focus-within:shadow-[0_0_0_3px_rgb(var(--rgb-accent)/0.12)]",r?"max-w-3xl":"max-w-none"),children:[(0,t.jsx)("textarea",{autoFocus:!o.some(t=>t.id===e.id),value:h,onChange:e=>x(e.target.value),onKeyDown:e=>{"Enter"!==e.key||e.shiftKey||e.nativeEvent.isComposing||(e.preventDefault(),k())},rows:j,placeholder:e.busy?"Agent is working…":y?"Answer the questions above…":"Ask the agent… (Enter to send)",className:"block w-full resize-none bg-transparent px-3.5 pt-3 text-sm text-txt placeholder:text-muted focus:outline-hidden"}),(0,t.jsxs)("div",{className:"flex items-center gap-2 px-2.5 pb-2 pt-1",children:[(0,t.jsx)("span",{className:"min-w-0 flex-1 truncate font-mono text-[10px] text-muted",children:g?`@ ${g}`:"Shift+Enter for a new line"}),e.busy?(0,t.jsxs)("button",{type:"button",onClick:()=>l(e.id),title:"Stop the agent",className:"grid size-7 place-items-center rounded-full border border-border text-muted transition-colors hover:text-txt",children:[(0,t.jsx)(p,{className:"size-3 fill-current"}),(0,t.jsx)("span",{className:"sr-only",children:"Stop"})]}):(0,t.jsxs)("button",{type:"button",onClick:k,disabled:!h.trim(),title:"Send (Enter)",className:"grid size-7 place-items-center rounded-full bg-accent text-accent-fg transition-[opacity,transform] duration-(--duration-fast) enabled:hover:scale-105 disabled:opacity-30",children:[(0,t.jsx)(n.ArrowUp,{className:"size-3.5"}),(0,t.jsx)("span",{className:"sr-only",children:"Send"})]})]})]})})}e.s(["ChatView",0,function({chatId:e,variant:n,onExpand:r,onNavigate:i}){let{chats:l,stop:o,remove:c,notice:u,dismissNotice:x}=(0,m.useChats)(),b=(0,a.useRouter)(),y=l.find(t=>t.id===e),[j,k]=(0,s.useState)([e]);if(j.includes(e)||k([...j,e]),!y)return(0,t.jsx)("div",{className:"grid h-full place-items-center p-8 text-sm text-muted",children:"This chat was closed."});let S=(0,g.chatStatus)(y);return(0,t.jsxs)("section",{"aria-label":`Chat: ${y.title}`,className:"flex h-full min-h-0 flex-col",children:[(0,t.jsxs)("header",{className:(0,f.cn)("flex h-14 shrink-0 items-center gap-3 border-b border-border px-5","modal"===n&&"pr-14"),children:[(0,t.jsx)(w.StatusMarker,{status:S,showIdle:!0}),(0,t.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,t.jsx)("h2",{className:"truncate text-sm font-medium text-txt",children:y.title}),(0,t.jsx)("p",{className:"font-mono text-[10px] text-muted",children:g.STATUS_LABEL[S]})]}),y.attach&&(0,t.jsx)("button",{type:"button",onClick:()=>{var e;return y.attach&&(e=(0,w.attachHref)(y.attach),void(i?.(),b.push(e)))},title:`Open ${y.attach.id} in the ${"epic"===y.attach.kind?"roadmap":"board"}`,className:"rounded-full border border-border px-2 py-1 text-muted transition-colors duration-(--duration-fast) hover:border-accent/50 hover:text-accent",children:(0,t.jsx)(w.AttachLabel,{attach:y.attach})}),y.busy&&(0,t.jsxs)("button",{type:"button",onClick:()=>o(y.id),title:"Stop the agent",className:v,children:[(0,t.jsx)(p,{className:"size-3.5 fill-current"}),(0,t.jsx)("span",{className:"sr-only",children:"Stop"})]}),"modal"===n&&r&&(0,t.jsxs)("button",{type:"button",onClick:r,title:"Open as page",className:v,children:[(0,t.jsx)(d,{className:"size-3.5"}),(0,t.jsx)("span",{className:"sr-only",children:"Open as page"})]}),"page"===n&&(0,t.jsx)("button",{type:"button",onClick:()=>c(y.id),"aria-label":`Delete ${y.title}`,title:"Delete chat",className:(0,f.cn)(v,"hover:text-danger"),children:(0,t.jsx)(h.Trash2,{className:"size-3.5"})})]}),j.map(s=>{let a=l.find(e=>e.id===s);return a?(0,t.jsx)(N,{chat:a,hidden:s!==e,wide:"page"===n},s):null}),u&&(0,t.jsxs)("div",{role:"status",className:"mx-5 mb-2 flex items-start gap-2 rounded-md border border-amber/30 bg-amber/10 px-3 py-2 text-xs text-amber animate-fade-in",children:[(0,t.jsx)("span",{className:"flex-1",children:u}),(0,t.jsx)("button",{onClick:x,"aria-label":"Dismiss",className:"leading-none text-muted hover:text-txt",children:"×"})]}),(0,t.jsx)(A,{chat:y,wide:"page"===n},y.id)]})}],782630)},476785,e=>{"use strict";var t=e.i(180338);let s=()=>()=>{};e.s(["useOrigin",0,function(){return(0,t.useSyncExternalStore)(s,()=>window.location.origin,()=>"")}])},573009,e=>{"use strict";var t=e.i(243668);e.s(["applyAccent",0,function(e){document.documentElement.setAttribute("data-accent",e)},"applyFontSize",0,function(e){document.documentElement.setAttribute("data-font-size",e)},"applyFonts",0,function(e){let s=document.documentElement;s.setAttribute("data-font-sans",e.fontSans??t.DEFAULT_SETTINGS.fontSans),s.setAttribute("data-font-mono",e.fontMono??t.DEFAULT_SETTINGS.fontMono)},"applyTheme",0,function(e){let t=document.documentElement,s=window.matchMedia("(prefers-color-scheme: dark)").matches;t.classList.toggle("dark","dark"===e||"system"===e&&s)}])},478096,22829,e=>{"use strict";let t=(e,t)=>`${e} ${t}${1===e?"":"s"}`;e.s(["catchUp",0,function(e,t){let s=e.filter(e=>Date.parse(e.end)>=t);return{sessions:s.length,tasksDone:new Set(s.flatMap(e=>e.tasks.filter(e=>"done"===e.lastStatus).map(e=>e.id))).size,docs:new Set(s.flatMap(e=>e.docs)).size,decisions:s.reduce((e,t)=>e+t.decisions.length,0)}},"groupSessions",0,function(e,s={}){let a=s.gapMs??18e5,n=[...e].sort((e,t)=>e.timestamp.localeCompare(t.timestamp)),r=new Map,i=new Map;for(let e of n){let t=e.sessionId;if(!t){let s=Date.parse(e.timestamp),n=i.get(e.actor);(!n||"session_start"===e.type||s-n.lastAt>a)&&(n={id:`legacy_${e.id}`,lastAt:s},i.set(e.actor,n)),n.lastAt=s,t=n.id}let s=r.get(t);s?s.push(e):r.set(t,[e])}return[...r].map(([e,s])=>(function(e,s){let a=new Map,n=new Set,r=[],i=!1,l=0;for(let e of s){"task_updated"===e.type&&e.taskId&&e.taskStatus&&a.set(e.taskId,e.taskStatus);let t=function(e){switch(e.type){case"doc_created":return e.detail??e.title.replace(/^Created: /,"");case"doc_deleted":return e.title.replace(/^Deleted /,"");case"doc_renamed":return e.title.split(" → ")[1]??null;default:return null}}(e);t&&n.add(t),"decision_logged"===e.type&&r.push(e.title),"memory_updated"===e.type&&(i=!0),"roadmap_updated"===e.type&&l++}let o=[...a].map(([e,t])=>({id:e,lastStatus:t})),d=o.filter(e=>"done"===e.lastStatus).length,c=[o.length?`${t(o.length,"task")} moved${d?` (${d} done)`:""}`:"",n.size?`${t(n.size,"doc")} changed`:"",r.length?t(r.length,"ADR"):"",l?t(l,"roadmap edit"):"",i?"memory updated":""].filter(Boolean);return{id:e,actor:s[0].actor,start:s[0].timestamp,end:s[s.length-1].timestamp,eventCount:s.length,eventIds:s.map(e=>e.id),tasks:o,docs:[...n],decisions:r,memoryUpdated:i,headline:c.join(" · ")||t(s.length,"event")}})(e,s)).sort((e,t)=>t.start.localeCompare(e.start))},"isLive",0,function(e,t=Date.now(),s=3e5){return t-Date.parse(e.end)<s},"sessionDuration",0,function(e){let t=Math.round((Date.parse(e.end)-Date.parse(e.start))/6e4);return t<1?"<1m":t<60?`${t}m`:`${Math.floor(t/60)}h ${t%60}m`}],478096);var s=e.i(83790);let a={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"}]]};a.node;let n=(0,s.default)(a);e.s(["Activity",0,n],22829)}]);
@@ -1,2 +0,0 @@
1
- (globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,690457,e=>{"use strict";var t=e.i(83790);let s={name:"corner-up-left",size:24,node:[["path",{d:"M20 20v-7a4 4 0 0 0-4-4H4",key:"1nkjon"}],["path",{d:"M9 14 4 9l5-5",key:"102s5s"}]]};s.node;let a=(0,t.default)(s);e.s(["CornerUpLeft",0,a],690457)},496699,e=>{"use strict";var t=e.i(83790);let s={name:"refresh-cw",size:24,node:[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]};s.node;let a=(0,t.default)(s);e.s(["RefreshCw",0,a],496699)},496385,e=>{"use strict";var t=e.i(83790);let s={name:"triangle-alert",size:24,node:[["path",{d:"m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3",key:"wmoenq"}],["path",{d:"M12 9v4",key:"juzpu7"}],["path",{d:"M12 17h.01",key:"p32p05"}]],aliases:["alert-triangle"]};s.node;let a=(0,t.default)(s);e.s(["AlertTriangle",0,a],496385)},329090,678677,e=>{"use strict";var t=e.i(72345),s=e.i(343253),a=e.i(83790);let n={name:"file-pen",size:24,node:[["path",{d:"M12.659 22H18a2 2 0 0 0 2-2V8a2.4 2.4 0 0 0-.706-1.706l-3.588-3.588A2.4 2.4 0 0 0 14 2H6a2 2 0 0 0-2 2v9.34",key:"o6klzx"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}],["path",{d:"M10.378 12.622a1 1 0 0 1 3 3.003L8.36 20.637a2 2 0 0 1-.854.506l-2.867.837a.5.5 0 0 1-.62-.62l.836-2.869a2 2 0 0 1 .506-.853z",key:"zhnas1"}]],aliases:["file-edit"]};n.node;let r=(0,a.default)(n);var i=e.i(760930);let l={name:"file-search",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"}],["circle",{cx:"11.5",cy:"14.5",r:"2.5",key:"1bq0ko"}],["path",{d:"M13.3 16.3 15 18",key:"2quom7"}]]};l.node;let o=(0,a.default)(l);var d=e.i(406952);let c={name:"file-x",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:"m14.5 12.5-5 5",key:"b62r18"}],["path",{d:"m9.5 12.5 5 5",key:"1rk7el"}]]};c.node;let u=(0,a.default)(c),p={name:"list-checks",size:24,node:[["path",{d:"M13 5h8",key:"a7qcls"}],["path",{d:"M13 12h8",key:"h98zly"}],["path",{d:"M13 19h8",key:"c3s6r1"}],["path",{d:"m3 17 2 2 4-4",key:"1jhpwq"}],["path",{d:"m3 7 2 2 4-4",key:"1obspn"}]]};p.node;let x=(0,a.default)(p);var m=e.i(192871),h=e.i(15205),f=e.i(496699);let g={name:"scale",size:24,node:[["path",{d:"M12 3v18",key:"108xh3"}],["path",{d:"m19 8 3 8a5 5 0 0 1-6 0zV7",key:"zcdpyk"}],["path",{d:"M3 7h1a17 17 0 0 0 8-2 17 17 0 0 0 8 2h1",key:"1yorad"}],["path",{d:"m5 8 3 8a5 5 0 0 1-6 0zV7",key:"eua70x"}],["path",{d:"M7 21h10",key:"1b0cd5"}]]};g.node;let b=(0,a.default)(g);e.s(["Scale",0,b],678677);var j=e.i(737152),k=e.i(464750);let v={task_updated:x,decision_logged:b,memory_updated:j.Brain,doc_read:o,doc_created:i.FilePlus,doc_updated:d.FileText,doc_deleted:u,doc_renamed:r,session_start:h.Plug,registry_rebuilt:f.RefreshCw,roadmap_updated:m.Map},w=e=>new Date(e).toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit",hourCycle:"h23"});e.s(["ActivityEventRow",0,function({event:e,showActor:a=!1}){let n=v[e.type]??d.FileText;return(0,t.jsxs)("div",{className:"grid grid-cols-[2.75rem_1.5rem_minmax(0,1fr)] items-start py-1.5",children:[(0,t.jsx)("time",{dateTime:e.timestamp,title:new Date(e.timestamp).toLocaleString(),className:"pt-px text-right font-mono text-[11px] leading-5 text-muted tabular-nums",children:w(e.timestamp)}),(0,t.jsx)("span",{className:"flex justify-center pt-[3px]",children:"task_updated"===e.type&&e.taskStatus?(0,t.jsx)(k.StatusIcon,{status:e.taskStatus}):(0,t.jsx)(n,{className:"size-3.5 text-muted","aria-hidden":!0})}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-col gap-0.5 sm:flex-row sm:items-baseline sm:gap-2",children:[(0,t.jsx)("span",{className:"min-w-0 text-sm leading-5 text-txt sm:shrink-0 sm:max-w-[60%] sm:truncate",children:e.title}),e.detail&&(0,t.jsx)("span",{className:"min-w-0 truncate text-xs leading-5 text-muted",children:e.detail}),a&&"human"===e.actor&&(0,t.jsxs)("span",{className:"flex shrink-0 items-center gap-1 font-mono text-[10px] text-muted sm:ml-auto",children:[(0,t.jsx)(s.User,{className:"size-3","aria-hidden":!0}),"you"]})]})]})},"clock",0,w,"timeAgo",0,function(e){let t=(Date.now()-new Date(e).getTime())/1e3;return t<60?"just now":t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`}],329090)},592381,e=>{"use strict";var t=e.i(72345),s=e.i(180338),a=e.i(975157),n=e.i(980376),r=e.i(998822),i=e.i(464750),l=e.i(653288),o=e.i(138324),d=e.i(837001),c=e.i(690457),u=e.i(666326),p=e.i(475850),x=e.i(248070),m=e.i(424991),h=e.i(458055),f=e.i(755146),g=e.i(574990),b=e.i(694628),j=e.i(508540),k=e.i(901778),v=e.i(650312),w=e.i(692172),y=e.i(651581),N=e.i(903763),S=e.i(564849),M=e.i(723528),C=e.i(763371),z=e.i(244267),T=e.i(481523),D=e.i(67874);let I={todo:["in-progress","paused"],"in-progress":["done","review","blocked","paused","todo"],review:[],blocked:["in-progress","cancelled"],paused:["in-progress","todo"],done:["todo"],cancelled:["todo"]},O={"in-progress":"start",review:"to review",done:"done",blocked:"blocked",paused:"pause",todo:"backlog",cancelled:"cancel"},A="w-full rounded-md border border-border bg-bg px-2.5 py-1.5 text-sm text-txt focus:border-accent/60 focus:outline-hidden";function $({task:e,rootParam:n,onDone:r}){let[i]=(0,s.useState)(e),[l,o]=(0,s.useState)(e.title),[d,c]=(0,s.useState)("—"===e.size?"":e.size),[u,p]=(0,s.useState)("—"===e.phase?"":e.phase),[x,m]=(0,s.useState)("—"===e.dependsOn?"":e.dependsOn),[h,f]=(0,s.useState)(e.due??""),[g,b]=(0,s.useState)(!1),[j,k]=(0,s.useState)(null),v=e=>"—"===e.trim()?"":e.trim();async function w(){let t={};if(l.trim()&&l.trim()!==i.title&&(t.title=l),d.trim()!==v(i.size)&&(t.size=d),u.trim()!==v(i.phase)&&(t.phase=u),x.trim()!==v(i.dependsOn)&&(t.dependsOn=x),(h||null)!==i.due&&(t.due=h||null),0===Object.keys(t).length)return r();b(!0),k(null);try{await (0,S.updateTask)(e.id,t,n),r()}catch(e){k(e.message),b(!1)}}return(0,t.jsxs)("form",{onSubmit:e=>{e.preventDefault(),w()},onKeyDown:e=>{"Escape"===e.key&&(e.stopPropagation(),r())},className:"flex flex-col gap-3 px-5 py-4 border-b border-border shrink-0 bg-surface2/40",children:[(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Title",(0,t.jsx)("input",{autoFocus:!0,value:l,onChange:e=>o(e.target.value),className:A})]}),(0,t.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Size",(0,t.jsx)("input",{value:d,onChange:e=>c(e.target.value),placeholder:"S / M / L",className:A})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Due",(0,t.jsx)("input",{type:"date",value:h,onChange:e=>f(e.target.value),className:(0,a.cn)(A,"scheme-light dark:scheme-dark")})]})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Epic / phase",(0,t.jsx)("input",{value:u,onChange:e=>p(e.target.value),placeholder:"R054 — Item actions",className:A})]}),(0,t.jsxs)("label",{className:"flex flex-col gap-1 text-xs text-muted",children:["Depends on",(0,t.jsx)("input",{value:x,onChange:e=>m(e.target.value),placeholder:"T001, T002",className:(0,a.cn)(A,"font-mono")})]}),j&&(0,t.jsx)("p",{role:"alert",className:"text-xs text-danger",children:j}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("button",{type:"submit",disabled:g,className:"text-xs px-2.5 py-1 rounded-sm bg-accent text-accent-fg transition-[filter] hover:brightness-110 disabled:opacity-40",children:"Save"}),(0,t.jsx)("button",{type:"button",onClick:r,disabled:g,className:"text-xs text-muted hover:text-txt",children:"Cancel"})]})]})}function L({taskId:e,onDone:a}){let{rootParam:n}=(0,C.useApp)(),[r,i]=(0,s.useState)(!1),[l,o]=(0,s.useState)(""),[u,p]=(0,s.useState)(!1),[x,m]=(0,s.useState)(null);async function h(t){p(!0),m(null);try{let s=await fetch(`/api/tasks/review${n}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:e,action:t,note:l})});if(!s.ok)throw Error((await s.json().catch(()=>null))?.error??`Request failed (${s.status})`);a()}catch(e){m(e.message),p(!1)}}return(0,t.jsxs)("div",{className:"flex flex-col gap-2 px-5 py-3 border-b border-border shrink-0 bg-accent/5",children:[(0,t.jsx)("p",{className:"text-xs text-muted",children:"Waiting for your review. Approving moves it to done; sending it back returns it to the queue with your note."}),r?(0,t.jsxs)("div",{className:"flex flex-col gap-2 animate-fade-in",children:[(0,t.jsx)("textarea",{autoFocus:!0,value:l,onChange:e=>o(e.target.value),rows:3,placeholder:"What needs to change? The agent reads this first.","aria-label":"Send back note",className:"w-full resize-none rounded-md border border-border bg-bg px-2.5 py-2 text-sm text-txt placeholder:text-muted focus:border-accent/60 focus:outline-hidden"}),(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("button",{onClick:()=>h("send-back"),disabled:u||!l.trim(),className:"inline-flex items-center gap-1.5 text-xs px-2.5 py-1 rounded-sm bg-amber/15 border border-amber/40 text-amber transition-colors hover:bg-amber/25 disabled:opacity-40",children:[(0,t.jsx)(c.CornerUpLeft,{className:"size-3.5"})," Send back"]}),(0,t.jsx)("button",{onClick:()=>{i(!1),o("")},disabled:u,className:"text-xs text-muted hover:text-txt",children:"Cancel"})]})]}):(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsxs)("button",{onClick:()=>h("approve"),disabled:u,className:"inline-flex items-center gap-1.5 text-xs px-2.5 py-1 rounded-sm bg-teal/15 border border-teal/40 text-teal transition-colors hover:bg-teal/25 disabled:opacity-40",children:[(0,t.jsx)(d.Check,{className:"size-3.5"})," Approve"]}),(0,t.jsxs)("button",{onClick:()=>i(!0),disabled:u,className:"inline-flex items-center gap-1.5 text-xs px-2.5 py-1 rounded-sm bg-surface2 border border-border text-muted transition-colors hover:text-txt hover:border-border2",children:[(0,t.jsx)(c.CornerUpLeft,{className:"size-3.5"})," Send back…"]})]}),x&&(0,t.jsx)("p",{role:"alert",className:"text-xs text-danger",children:x})]})}function R({entries:e}){return e.length?(0,t.jsxs)("div",{className:"flex flex-col gap-2 px-5 py-3 border-b border-border shrink-0",children:[(0,t.jsx)("p",{className:"font-mono text-[10px] uppercase tracking-widest text-muted",children:"Review history"}),(0,t.jsx)("ul",{className:"flex flex-col gap-2",children:[...e].reverse().map((e,s)=>(0,t.jsxs)("li",{className:"flex flex-col gap-0.5",children:[(0,t.jsxs)("span",{className:"flex items-center gap-2 text-xs",children:[(0,t.jsx)("span",{className:(0,a.cn)("font-medium","approved"===e.outcome?"text-teal":"text-amber"),children:"approved"===e.outcome?"Approved":"Changes requested"}),(0,t.jsx)("span",{className:"font-mono text-[10px] text-muted",children:e.at.replace("T"," ").replace(/:\d\dZ$/,"Z")})]}),e.note&&(0,t.jsx)("p",{className:"whitespace-pre-wrap text-xs text-muted",children:e.note})]},s))})]}):null}e.s(["TaskDetailPanel",0,function({task:e,onClose:d,onMove:c}){var A;let q,[F,U]=(0,s.useState)(e);e&&e!==F&&U(e);let _=F&&I[F.status]||[],{chats:P,showAbout:E}=(0,z.useChats)(),{rootParam:H}=(0,C.useApp)(),B=F?(0,T.chatFor)(P,{kind:"task",id:F.id}):void 0,[W,G]=(0,s.useState)(null),K=!!F&&W===F.id,[V,X]=(0,s.useState)(null),[J,Z]=(0,s.useState)(!1),Q=(0,g.useStatusDefs)(),Y=()=>{F&&(d(),E({kind:"task",id:F.id}))};async function ee(){if(F){X(null);try{await (0,S.deleteTaskWithUndo)(F,H),d()}catch(e){X(e.message)}}}return(0,N.useItemCommands)(e&&F&&!K?`${F.id} \xb7 ${F.title}`:null,F?[{action:"edit",label:"Edit",run:()=>G(F.id)},{action:"status",label:"Change status…",run:()=>Z(!0)},{action:"chat",label:"Chat about task",run:Y},{action:"remove",label:"Delete",run:()=>{ee()}}]:[]),(0,t.jsx)(n.Sheet,{open:!!e,onOpenChange:e=>{e||d()},children:(0,t.jsx)(n.SheetContent,{side:"right","aria-describedby":void 0,className:"p-0 gap-0 sm:max-w-[420px] border-border flex flex-col",children:F&&(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(j.ItemPanelHeader,{kicker:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("span",{children:F.id}),(0,t.jsx)("span",{children:"· task"}),(0,t.jsx)(M.AgentMark,{attach:{kind:"task",id:F.id}})]}),title:(0,t.jsx)(n.SheetTitle,{className:"text-base font-semibold leading-snug text-txt",children:F.title}),menu:(0,t.jsxs)(f.DropdownMenu,{open:J,onOpenChange:Z,children:[(0,t.jsx)(f.DropdownMenuTrigger,{asChild:!0,children:(0,t.jsx)("button",{type:"button","aria-label":`Actions for ${F.id}`,className:"ml-auto grid size-6 place-items-center rounded-md text-muted hover:bg-surface2 hover:text-txt",children:(0,t.jsx)(x.MoreHorizontal,{className:"size-4"})})}),(0,t.jsxs)(f.DropdownMenuContent,{align:"end",className:"w-44",children:[(0,t.jsxs)(f.DropdownMenuItem,{onSelect:()=>G(F.id),children:[(0,t.jsx)(m.Pencil,{})," Edit",(0,t.jsx)(f.DropdownMenuShortcut,{children:(0,N.itemKeyLabel)("edit")})]}),(0,t.jsxs)(f.DropdownMenuSub,{children:[(0,t.jsxs)(f.DropdownMenuSubTrigger,{children:[(0,t.jsx)(i.StatusIcon,{status:(0,b.displayStatus)(F)})," Status",(0,t.jsx)(f.DropdownMenuShortcut,{children:(0,N.itemKeyLabel)("status")})]}),(0,t.jsx)(f.DropdownMenuSubContent,{children:Q.map(e=>(0,t.jsxs)(f.DropdownMenuItem,{disabled:e.id===(0,b.displayStatus)(F),onSelect:()=>c(F.id,e.id),children:[(0,t.jsx)(i.StatusIcon,{status:e.id})," ",e.label]},e.id))})]}),(0,t.jsxs)(f.DropdownMenuItem,{onSelect:Y,children:[(0,t.jsx)(p.MessageSquare,{})," Chat about task",(0,t.jsx)(f.DropdownMenuShortcut,{children:(0,N.itemKeyLabel)("chat")})]}),(0,t.jsx)(f.DropdownMenuSeparator,{}),(0,t.jsxs)(f.DropdownMenuItem,{onSelect:ee,className:"text-danger focus:text-danger",children:[(0,t.jsx)(h.Trash2,{})," Delete",(0,t.jsx)(f.DropdownMenuShortcut,{children:(0,N.itemKeyLabel)("remove")})]})]})]}),properties:(q=(A=F).phase&&"—"!==A.phase?(0,v.epicOf)(A.phase):null,[{label:"Status",value:(0,t.jsx)(k.TaskStatusField,{task:A,chip:!0})},{label:"Owner",value:(0,t.jsx)(k.TaskOwnerField,{task:A})},{label:"Due",value:(0,t.jsx)(k.TaskDueField,{task:A,children:A.due?(0,t.jsx)(y.DueChip,{due:A.due,state:(0,w.dueState)(A.due,"done"===A.status?"done":"planned",(0,w.localToday)())}):(0,t.jsx)("span",{className:"text-muted",children:"—"})})},{label:"Size",value:(0,t.jsx)(k.TaskSizeField,{task:A})},{label:"Epic",value:q&&(0,t.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:[q.id&&(0,t.jsx)("span",{className:"font-mono text-[11px] text-muted",children:q.id}),(0,t.jsx)("span",{className:"truncate",children:q.title})]})}])}),V&&(0,t.jsx)("p",{role:"alert",className:"px-5 py-2 text-xs text-danger border-b border-border",children:V}),K&&(0,t.jsx)($,{task:F,rootParam:H,onDone:()=>G(null)},`edit-${F.id}`),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-2 px-5 py-3 border-b border-border shrink-0",children:[_.map(e=>(0,t.jsxs)("button",{onClick:()=>{c(F.id,e),d()},className:"inline-flex items-center gap-1.5 text-xs px-2.5 py-1 rounded-sm bg-surface2 border border-border text-muted hover:text-txt hover:border-border2 transition-colors",children:[(0,t.jsx)(i.StatusIcon,{status:e,className:"size-3"})," ",O[e]||e]},e)),(0,t.jsxs)("button",{onClick:()=>{d(),E({kind:"task",id:F.id})},className:"ml-auto inline-flex items-center gap-1.5 text-xs px-2.5 py-1 rounded-sm bg-accent text-accent-fg transition-[filter] hover:brightness-110",children:[(0,t.jsx)(p.MessageSquare,{className:"size-3.5"})," ",B?"Open chat":"Chat about task"]})]}),"review"===F.status&&(0,t.jsx)(L,{taskId:F.id,onDone:d},`review-${F.id}`),(0,t.jsxs)("div",{className:"flex-1 overflow-y-auto",children:[(0,t.jsx)("div",{className:"px-5 py-4",children:F.raw?(0,t.jsx)(r.MarkdownRenderer,{content:function(e){let t=e.split("\n"),s=t.findIndex(e=>e.startsWith("# "));for(s=s<0?0:s+1;s<t.length&&(""===t[s].trim()||/^\*\*[^*]+:\*\*/.test(t[s]));)s++;return t.slice(s).join("\n")}(F.raw)}):(0,t.jsx)("p",{className:"text-sm text-muted",children:"No content available."})}),(0,t.jsxs)("section",{"aria-label":"Activity",className:"border-t border-border",children:[F.manualTests&&(0,t.jsxs)(o.default,{href:`/manual-tests#${F.id}`,onClick:d,className:"group flex items-center gap-2 px-5 py-2.5 border-b border-border shrink-0 text-xs text-muted hover:bg-surface2 hover:text-txt transition-colors",children:[(0,t.jsx)(u.FlaskConical,{className:"size-3.5"}),(0,t.jsxs)("span",{className:(0,a.cn)("font-mono",F.manualTests.done===F.manualTests.total&&"text-teal"),children:[F.manualTests.done,"/",F.manualTests.total]}),"manual tests ticked",(0,t.jsx)("span",{className:"ml-auto text-accent opacity-0 transition-opacity group-hover:opacity-100",children:"Open checklist →"})]}),(0,t.jsx)(R,{entries:(0,D.reviewHistory)(F.raw??"")}),(0,t.jsx)(l.TaskSessions,{taskId:F.id,onNavigate:d},F.id)]})]})]})})})}])},901778,e=>{"use strict";var t=e.i(72345),s=e.i(763371),a=e.i(65112),n=e.i(35032),r=e.i(464750),i=e.i(574990),l=e.i(694628),o=e.i(650312),d=e.i(222581);let c=["XS","S","M","L","XL"],u=(0,t.jsx)("span",{className:"text-muted",children:"—"});e.s(["TaskDueField",0,function({task:e,children:n}){let{updateTaskFields:r}=(0,s.useApp)();return(0,t.jsx)(a.InlineDate,{label:`Due date of ${e.id}`,value:e.due,onChange:t=>r(e.id,{due:t}),children:n??(e.due?(0,t.jsx)("span",{className:"font-mono text-xs",children:e.due}):u)})},"TaskOwnerField",0,function({task:e,children:r}){let{updateTaskFields:i,board:l}=(0,s.useApp)(),o=[...new Set(["ai:claude",...Object.values(l??{}).flat().map(e=>e.owner).filter(e=>!!e?.startsWith("ai:"))])].sort(),c=[{value:"human",label:"Human",node:(0,t.jsx)(n.OwnerChip,{owner:"human",className:"text-xs"})},...o.map(e=>({value:e,label:(0,d.ownerLabel)(e),node:(0,t.jsx)(n.OwnerChip,{owner:e,className:"text-xs"})})),{value:"",label:"No owner",node:(0,t.jsx)("span",{className:"text-muted",children:"No owner"})}];return(0,t.jsx)(a.InlineSelect,{label:`Owner of ${e.id}`,value:e.owner??"",options:c,onChange:t=>i(e.id,{owner:t||null}),children:r??(e.owner?(0,t.jsx)(n.OwnerChip,{owner:e.owner,className:"text-xs"}):u)})},"TaskSizeField",0,function({task:e,children:n}){let{updateTaskFields:r}=(0,s.useApp)(),i=(0,o.sizeOf)(e),l=[...c.map(e=>({value:e,label:e,node:(0,t.jsx)("span",{className:"font-mono",children:e})})),{value:"",label:"No size",node:(0,t.jsx)("span",{className:"text-muted",children:"No size"})}];return(0,t.jsx)(a.InlineSelect,{label:`Size of ${e.id}`,value:i??"",options:l,onChange:t=>r(e.id,{size:t||"—"}),children:n??(i?(0,t.jsx)("span",{className:"font-mono text-xs",children:i}):u)})},"TaskStatusField",0,function({task:e,chip:n=!1}){let{moveTask:o}=(0,s.useApp)(),d=(0,i.useStatusDefs)(),c=(0,l.displayStatus)(e),u=d.map(e=>({value:e.id,label:e.label,node:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.StatusIcon,{status:e.id}),e.label]})}));return(0,t.jsx)(a.InlineSelect,{label:`Status of ${e.id}`,value:c,options:u,onChange:t=>o(e.id,t),children:n?(0,t.jsx)(r.StatusChip,{status:c}):(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(r.StatusIcon,{status:c}),(0,t.jsx)("span",{className:"truncate text-xs",children:d.find(e=>e.id===c)?.label??c})]})})}])},653288,e=>{"use strict";var t=e.i(72345),s=e.i(180338),a=e.i(910172),n=e.i(479432),r=e.i(343253),i=e.i(763371),l=e.i(329090);e.s(["TaskSessions",0,function({taskId:e,onNavigate:o}){let{rootParam:d}=(0,i.useApp)(),c=(0,a.useRouter)(),[u,p]=(0,s.useState)(null);return(0,s.useEffect)(()=>{let t=d?`${d}&`:"?";fetch(`/api/sessions${t}taskId=${encodeURIComponent(e)}`).then(e=>e.json()).then(e=>p(Array.isArray(e)?e:[])).catch(()=>p([]))},[d,e]),(0,t.jsxs)("div",{className:"px-5 py-3 border-b border-border shrink-0",children:[(0,t.jsx)("p",{className:"mb-2 text-xs font-mono uppercase tracking-wide text-muted",children:"Sessions"}),null===u?null:0===u.length?(0,t.jsx)("p",{className:"text-xs text-muted",children:"No recorded sessions"}):(0,t.jsx)("div",{className:"flex max-h-40 flex-col gap-1 overflow-y-auto",children:u.map(e=>(0,t.jsxs)("button",{onClick:()=>{o(),c.push(`/activity?session=${encodeURIComponent(e.id)}`)},className:"flex items-center gap-2 rounded-sm px-2 py-1 text-left text-xs hover:bg-surface2",children:["ai"===e.actor?(0,t.jsx)(n.Bot,{"aria-hidden":!0,className:"size-3.5 shrink-0 text-muted"}):(0,t.jsx)(r.User,{"aria-hidden":!0,className:"size-3.5 shrink-0 text-muted"}),(0,t.jsx)("span",{className:"sr-only",children:"ai"===e.actor?"Agent session":"Human session"}),(0,t.jsx)("span",{className:"shrink-0 font-mono text-muted",children:(0,l.timeAgo)(e.start)}),(0,t.jsx)("span",{className:"truncate text-txt",children:e.headline})]},e.id))})]})}])},564849,e=>{"use strict";var t=e.i(673635);async function s(e,t){let s=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}),a=await s.json().catch(()=>null);if(!s.ok)throw Error(a?.error??`Request failed (${s.status})`);return a}async function a(e,a){let{task:n,links:r}=await s(`/api/tasks/delete${a}`,{id:e.id});(0,t.undoToast)(`Deleted ${n.id}`,async()=>{await s(`/api/tasks/restore${a}`,{file:n.file,raw:n.raw,links:r})})}e.s(["deleteTaskWithUndo",0,a,"updateTask",0,(e,t,a)=>s(`/api/tasks/update${a}`,{id:e,patch:t}).then(e=>e.task)])},650312,e=>{"use strict";let t=["status","epic","size","due","deps","tests","agent","owner"],s=["board","table","epic","timeline"],a={board:"Board",table:"Table",epic:"By epic",timeline:"Timeline"};function n(e){let s={kind:e,filters:[],sorts:[],group:"epic",subGroup:"none",q:"",properties:[...t],scale:"active"};return"board"===e?{...s,group:"none",subGroup:"epic",properties:["epic","size","deps","tests","agent","owner"]}:"table"===e?{...s,sorts:[{prop:"status",dir:"asc"},{prop:"id",dir:"asc"}]}:s}let r=s.map(e=>({...n(e),id:e,name:a[e]})),i=["in-progress","review","todo","blocked","paused","done","cancelled"],l={"in-progress":"In progress",review:"Review",todo:"Todo",blocked:"Blocked",paused:"Paused",done:"Done",cancelled:"Cancelled"},o=["XS","S","M","L","XL"],d=(e,t)=>e.localeCompare(t,void 0,{numeric:!0}),c=e=>"done"!==e.status&&"cancelled"!==e.status;function u(e){return[...new Set((e.dependsOn.match(/\bT\d+\b/gi)??[]).map(e=>e.toUpperCase()))]}function p(e){let t=e.trim().match(/^(R\d+)\b\s*(?:[—–:-]\s*)?(.*)$/i);return t?{id:t[1].toUpperCase(),title:t[2].trim()}:{id:null,title:e.trim()}}function x(e){let t=e.size.trim().match(/^(XS|XL|S|M|L)\b/i);return t?t[1].toUpperCase():null}function m(e,t){return"todo"===e.status&&u(e).every(e=>t.get(e)?.status==="done")}let h=["status","epic","size","due","deps","tests","agent","ready","owner"],f=["is","is-not","before","after","is-set","not-set"],g=["status","id","epic","size","due","title"],b=["status","epic","size","owner","none"],j=["epic","size","none"],k=["active","day","week"],v=(e,t,s)=>null!==t&&e.includes(t)?t:s,w=e=>e.map(e=>("desc"===e.dir?"-":"")+e.prop).join(",");e.s(["DEFAULT_VIEWS",0,r,"applyView",0,function(e,t,s){let a=new Map(e.map(e=>[e.id,e])),n=t.filters.some(e=>"status"===e.prop&&"is"===e.op&&e.value.includes("cancelled")),r=t.q.trim().toLowerCase();return e.filter(e=>n||"cancelled"!==e.status).filter(e=>!r||e.id.toLowerCase().includes(r)||e.title.toLowerCase().includes(r)).filter(e=>t.filters.every(t=>(function(e,t,s,a){let n=e=>"is"===t.op?t.value.includes(e):"is-not"!==t.op||!t.value.includes(e),r=e=>"is-set"===t.op?e:"not-set"!==t.op||!e;switch(t.prop){case"status":return n(e.customStatus??e.status);case"epic":return n(p(e.phase).id??"none");case"size":return n(x(e)??"none");case"due":if("before"===t.op)return!!e.due&&!!t.value[0]&&e.due<t.value[0];if("after"===t.op)return!!e.due&&!!t.value[0]&&e.due>t.value[0];return r(!!e.due);case"deps":return r(u(e).length>0);case"tests":return r(null!==e.manualTests);case"agent":return r(s.agentTasks.has(e.id));case"ready":return r(m(e,a));case"owner":return n("human"===e.owner?"human":e.owner?.startsWith("ai:")?"ai":"none")}})(e,t,s,a))).sort((e,s)=>{for(let a of t.sorts){let t=function(e,t,s){switch(s){case"status":return i.indexOf(e.status)-i.indexOf(t.status);case"id":return d(e.id,t.id);case"title":return e.title.localeCompare(t.title);case"epic":{let s=p(e.phase).id,a=p(t.phase).id;return s===a?0:null===s?1:null===a?-1:d(s,a)}case"size":{let s=o.indexOf(x(e)??""),a=o.indexOf(x(t)??"");return s===a?0:s<0?1:a<0?-1:s-a}case"due":return e.due===t.due?0:null===e.due?1:null===t.due?-1:e.due.localeCompare(t.due)}}(e,s,a.prop);if(t)return"desc"!==a.dir||function(e,t,s){let a=e=>"due"===s?e.due:"epic"===s?p(e.phase).id:"size"===s?o.includes(x(e)??"")?"x":null:"x";return null===a(e)!=(null===a(t))}(e,s,a.prop)?t:-t}return d(e.id,s.id)})},"depOutline",0,function(e){let t=new Set(e.map(e=>e.id)),s=new Map;for(let a of e){let e=u(a).find(e=>e!==a.id&&t.has(e));e&&s.set(a.id,e)}let a=new Map;for(let t of e){let e=s.get(t.id);e&&a.set(e,[...a.get(e)??[],t])}let n=[],r=new Set,i=(e,t,s)=>{if(!r.has(e.id))for(let l of(r.add(e.id),n.push({task:e,depth:Math.min(t,4),alsoAfter:u(e).filter(t=>t!==s&&t!==e.id)}),a.get(e.id)??[]))i(l,t+1,e.id)};for(let t of e)s.has(t.id)||i(t,0,null);for(let t of e)i(t,0,null);return n},"epicOf",0,p,"foldAxis",0,function(e,t){let s=e.map(e=>{let t=Math.max((e.endMs-e.startMs)*.05,6e4);return{startMs:e.startMs-t,endMs:e.endMs+t}}).sort((e,t)=>e.startMs-t.startMs),a=[];for(let e of s){let s=a[a.length-1];s&&e.startMs-s.endMs<t?s.endMs=Math.max(s.endMs,e.endMs):a.push({...e})}return a},"fromParams",0,function(e){let a=v(s,e.get("view"),"board"),r=n(a),i=e.get("s"),l=e.get("f"),o=e.get("p");return{kind:a,group:v(b,e.get("g"),r.group),subGroup:v(j,e.get("sg"),r.subGroup),sorts:null===i?r.sorts:i.split(",").filter(Boolean).flatMap(e=>{let t=e.startsWith("-"),s=t?e.slice(1):e;return g.includes(s)?[{prop:s,dir:t?"desc":"asc"}]:[]}),filters:l?l.split(";").flatMap(e=>{let[t,s,...a]=e.split(":");if(!h.includes(t)||!f.includes(s))return[];let n=a.join(":"),r=[];try{r=a.length?n.split("|").map(decodeURIComponent):[]}catch{return[]}return[{prop:t,op:s,value:r}]}):[],q:e.get("q")??"",properties:null===o?r.properties:[...new Set(o.split(",").filter(e=>t.includes(e)))],scale:v(k,e.get("sc"),r.scale)}},"groupTasks",0,function(e,t,s){if(!e.length)return[];if("none"===t)return[{key:"all",label:"All tasks",epicId:null,tasks:e}];let a=new Map,n=e=>"status"===t?e.customStatus??e.status:"size"===t?x(e)??"none":"owner"===t?e.owner??"none":p(e.phase).id??"none";for(let t of e){let e=n(t),s=a.get(e);s?s.push(t):a.set(e,[t])}let r=(e,t,s=null)=>({key:e,label:t,epicId:s,tasks:a.get(e)??[]});if("status"===t)return s?s.filter(e=>a.has(e.id)).map(e=>r(e.id,e.label)):i.filter(e=>a.has(e)).map(e=>r(e,l[e]));if("size"===t)return[...o,"none"].filter(e=>a.has(e)).map(e=>r(e,"none"===e?"No size":e));if("owner"===t)return["human",...[...a.keys()].filter(e=>e.startsWith("ai:")).sort(),"none"].filter(e=>a.has(e)).map(e=>r(e,"human"===e?"Human":"none"===e?"No owner":`${e.slice(3)} (AI)`));let u=e=>(a.get(e)??[]).filter(c).map(e=>e.id).sort(d)[0]??null,m=[...a.keys()].filter(e=>"none"!==e).sort((e,t)=>{let s=u(e),a=u(t);return s&&a?d(s,a)||d(e,t):s||a?s?-1:1:d(t,e)}).map(e=>{let t=(a.get(e)??[]).map(e=>p(e.phase).title).find(Boolean);return r(e,t||e,e)});return a.has("none")&&m.push(r("none","No epic")),m},"isDirty",0,function(e,t){let s=e=>JSON.stringify([e.kind,e.filters,e.sorts,e.group,e.subGroup,[...e.properties].sort(),e.scale]);return s(e)!==s(t)},"isReady",0,m,"sizeOf",0,x,"timelineBars",0,function(e,t,s){let a=new Map;for(let e of t){if("task_updated"!==e.type||!e.taskId)continue;let t=Date.parse(e.timestamp);if(Number.isNaN(t))continue;let s=a.get(e.taskId)??[];s.push({ms:t,status:e.taskStatus}),a.set(e.taskId,s)}let n=[];for(let t of e){let e=a.get(t.id)?.sort((e,t)=>e.ms-t.ms);if(!e?.length)continue;let r=(e.find(e=>"in-progress"===e.status)??e[0]).ms,i=e[e.length-1].ms,l=e.filter(e=>"done"===e.status).pop()?.ms,o="done"!==t.status&&"cancelled"!==t.status,d="done"===t.status?l??i:o?s:i;n.push({taskId:t.id,epicId:p(t.phase).id,startMs:r,endMs:Math.max(d,r),status:t.status,open:o})}return n},"toParams",0,function(e){let t=n(e.kind),s=new URLSearchParams;return"board"!==e.kind&&s.set("view",e.kind),e.group!==t.group&&s.set("g",e.group),e.subGroup!==t.subGroup&&s.set("sg",e.subGroup),w(e.sorts)!==w(t.sorts)&&s.set("s",w(e.sorts)),e.filters.length&&s.set("f",e.filters.map(e=>[e.prop,e.op,...e.value.length?[e.value.map(encodeURIComponent).join("|")]:[]].join(":")).join(";")),e.q&&s.set("q",e.q),e.properties.join(",")!==t.properties.join(",")&&s.set("p",e.properties.join(",")),e.scale!==t.scale&&s.set("sc",e.scale),s}])},67874,e=>{"use strict";let t=/^###\s+(\S+)\s+—\s+(approved|changes requested)\s*$/;function s(e){let s=e.split("\n"),a=function(e){let t,s=(t=!1,e.map(e=>/^\s*```/.test(e)?(t=!t,!0):t)),a=e.findIndex((e,t)=>!s[t]&&"## Review"===e.trim());if(a<0)return null;let n=e.findIndex((e,t)=>t>a&&!s[t]&&/^##\s/.test(e));return[a,n<0?e.length:n]}(s);if(!a)return[];let n=[];for(let e of s.slice(a[0]+1,a[1])){let s=e.match(t);if(s)n.push({at:s[1],outcome:s[2],note:""});else if(n.length){let t=n[n.length-1];t.note=t.note?`${t.note}
2
- ${e}`:e}}return n.map(e=>({...e,note:e.note.trim()}))}e.s(["latestReview",0,function(e){let t=s(e);return t[t.length-1]??null},"reviewHistory",0,s])}]);