@lovelybunch/api 1.0.72-alpha.0 → 1.0.72

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 (283) hide show
  1. package/dist/lib/auth/auth-manager.d.ts.map +1 -0
  2. package/dist/lib/auth/auth-manager.js.map +1 -0
  3. package/dist/lib/gait-path.d.ts.map +1 -0
  4. package/dist/lib/gait-path.js.map +1 -0
  5. package/dist/lib/git-settings.d.ts.map +1 -0
  6. package/dist/lib/git-settings.js.map +1 -0
  7. package/dist/lib/git.d.ts.map +1 -0
  8. package/dist/lib/git.js.map +1 -0
  9. package/dist/lib/jobs/global-job-scheduler.d.ts.map +1 -0
  10. package/dist/lib/jobs/global-job-scheduler.js.map +1 -0
  11. package/dist/lib/jobs/job-runner.d.ts.map +1 -0
  12. package/dist/lib/jobs/job-runner.js.map +1 -0
  13. package/dist/lib/jobs/job-scheduler.d.ts.map +1 -0
  14. package/dist/lib/jobs/job-scheduler.js +0 -17
  15. package/dist/lib/jobs/job-scheduler.js.map +1 -0
  16. package/dist/lib/jobs/job-store.d.ts.map +1 -0
  17. package/dist/lib/jobs/job-store.js.map +1 -0
  18. package/dist/lib/project-paths.d.ts.map +1 -0
  19. package/dist/lib/project-paths.js.map +1 -0
  20. package/dist/lib/storage/file-storage.d.ts.map +1 -0
  21. package/dist/lib/storage/file-storage.js.map +1 -0
  22. package/dist/lib/symlinks/symlink-manager.d.ts.map +1 -0
  23. package/dist/lib/symlinks/symlink-manager.js.map +1 -0
  24. package/dist/lib/symlinks/types.d.ts.map +1 -0
  25. package/dist/lib/symlinks/types.js.map +1 -0
  26. package/dist/lib/terminal/context-helper.d.ts +1 -1
  27. package/dist/lib/terminal/context-helper.d.ts.map +1 -0
  28. package/dist/lib/terminal/context-helper.js +4 -16
  29. package/dist/lib/terminal/context-helper.js.map +1 -0
  30. package/dist/lib/terminal/global-manager.d.ts.map +1 -0
  31. package/dist/lib/terminal/global-manager.js.map +1 -0
  32. package/dist/lib/terminal/shell-utils.d.ts.map +1 -0
  33. package/dist/lib/terminal/shell-utils.js.map +1 -0
  34. package/dist/lib/terminal/terminal-manager.d.ts.map +1 -0
  35. package/dist/lib/terminal/terminal-manager.js.map +1 -0
  36. package/dist/lib/user-preferences.d.ts.map +1 -0
  37. package/dist/lib/user-preferences.js.map +1 -0
  38. package/dist/middleware/auth.d.ts.map +1 -0
  39. package/dist/middleware/auth.js.map +1 -0
  40. package/dist/routes/api/v1/agents/[id]/index.d.ts.map +1 -0
  41. package/dist/routes/api/v1/agents/[id]/index.js.map +1 -0
  42. package/dist/routes/api/v1/agents/[id]/route.d.ts.map +1 -0
  43. package/dist/routes/api/v1/agents/[id]/route.js.map +1 -0
  44. package/dist/routes/api/v1/agents/index.d.ts.map +1 -0
  45. package/dist/routes/api/v1/agents/index.js.map +1 -0
  46. package/dist/routes/api/v1/agents/route.d.ts.map +1 -0
  47. package/dist/routes/api/v1/agents/route.js.map +1 -0
  48. package/dist/routes/api/v1/ai/index.d.ts.map +1 -0
  49. package/dist/routes/api/v1/ai/index.js.map +1 -0
  50. package/dist/routes/api/v1/ai/route.d.ts.map +1 -0
  51. package/dist/routes/api/v1/ai/route.js +134 -33
  52. package/dist/routes/api/v1/ai/route.js.map +1 -0
  53. package/dist/routes/api/v1/ai/tools.js +157 -34
  54. package/dist/routes/api/v1/api-keys/index.d.ts.map +1 -0
  55. package/dist/routes/api/v1/api-keys/index.js.map +1 -0
  56. package/dist/routes/api/v1/api-keys/route.d.ts.map +1 -0
  57. package/dist/routes/api/v1/api-keys/route.js.map +1 -0
  58. package/dist/routes/api/v1/auth/index.d.ts.map +1 -0
  59. package/dist/routes/api/v1/auth/index.js.map +1 -0
  60. package/dist/routes/api/v1/auth/route.d.ts.map +1 -0
  61. package/dist/routes/api/v1/auth/route.js.map +1 -0
  62. package/dist/routes/api/v1/auth-settings/index.d.ts.map +1 -0
  63. package/dist/routes/api/v1/auth-settings/index.js.map +1 -0
  64. package/dist/routes/api/v1/auth-settings/route.d.ts.map +1 -0
  65. package/dist/routes/api/v1/auth-settings/route.js.map +1 -0
  66. package/dist/routes/api/v1/chats/[id]/index.d.ts.map +1 -0
  67. package/dist/routes/api/v1/chats/[id]/index.js.map +1 -0
  68. package/dist/routes/api/v1/chats/[id]/route.d.ts.map +1 -0
  69. package/dist/routes/api/v1/chats/[id]/route.js.map +1 -0
  70. package/dist/routes/api/v1/chats/index.d.ts.map +1 -0
  71. package/dist/routes/api/v1/chats/index.js.map +1 -0
  72. package/dist/routes/api/v1/chats/route.d.ts.map +1 -0
  73. package/dist/routes/api/v1/chats/route.js.map +1 -0
  74. package/dist/routes/api/v1/config/index.d.ts.map +1 -0
  75. package/dist/routes/api/v1/config/index.js.map +1 -0
  76. package/dist/routes/api/v1/config/route.d.ts.map +1 -0
  77. package/dist/routes/api/v1/config/route.js.map +1 -0
  78. package/dist/routes/api/v1/context/architecture/route.d.ts.map +1 -0
  79. package/dist/routes/api/v1/context/architecture/route.js.map +1 -0
  80. package/dist/routes/api/v1/context/index.d.ts.map +1 -0
  81. package/dist/routes/api/v1/context/index.js +2 -0
  82. package/dist/routes/api/v1/context/index.js.map +1 -0
  83. package/dist/routes/api/v1/context/knowledge/[filename]/index.d.ts.map +1 -0
  84. package/dist/routes/api/v1/context/knowledge/[filename]/index.js.map +1 -0
  85. package/dist/routes/api/v1/context/knowledge/[filename]/route.d.ts.map +1 -0
  86. package/dist/routes/api/v1/context/knowledge/[filename]/route.js.map +1 -0
  87. package/dist/routes/api/v1/context/knowledge/index.d.ts.map +1 -0
  88. package/dist/routes/api/v1/context/knowledge/index.js.map +1 -0
  89. package/dist/routes/api/v1/context/knowledge/route.d.ts.map +1 -0
  90. package/dist/routes/api/v1/context/knowledge/route.js.map +1 -0
  91. package/dist/routes/api/v1/context/project/route.d.ts.map +1 -0
  92. package/dist/routes/api/v1/context/project/route.js.map +1 -0
  93. package/dist/routes/api/v1/context/role/route.d.ts +3 -0
  94. package/dist/routes/api/v1/context/role/route.js +198 -0
  95. package/dist/routes/api/v1/events/status/route.d.ts +1 -1
  96. package/dist/routes/api/v1/git/index.d.ts.map +1 -0
  97. package/dist/routes/api/v1/git/index.js +0 -17
  98. package/dist/routes/api/v1/git/index.js.map +1 -0
  99. package/dist/routes/api/v1/jobs/[id]/route.d.ts.map +1 -0
  100. package/dist/routes/api/v1/jobs/[id]/route.js.map +1 -0
  101. package/dist/routes/api/v1/jobs/[id]/run/route.d.ts +2 -2
  102. package/dist/routes/api/v1/jobs/[id]/run/route.d.ts.map +1 -0
  103. package/dist/routes/api/v1/jobs/[id]/run/route.js.map +1 -0
  104. package/dist/routes/api/v1/jobs/[id]/runs/[runId]/route.d.ts +2 -2
  105. package/dist/routes/api/v1/jobs/index.d.ts.map +1 -0
  106. package/dist/routes/api/v1/jobs/index.js.map +1 -0
  107. package/dist/routes/api/v1/jobs/route.d.ts.map +1 -0
  108. package/dist/routes/api/v1/jobs/route.js.map +1 -0
  109. package/dist/routes/api/v1/jobs/status/route.d.ts +1 -1
  110. package/dist/routes/api/v1/jobs/status/route.d.ts.map +1 -0
  111. package/dist/routes/api/v1/jobs/status/route.js.map +1 -0
  112. package/dist/routes/api/v1/mcp/index.d.ts.map +1 -0
  113. package/dist/routes/api/v1/mcp/index.js +116 -3
  114. package/dist/routes/api/v1/mcp/index.js.map +1 -0
  115. package/dist/routes/api/v1/mcp/route.d.ts.map +1 -0
  116. package/dist/routes/api/v1/mcp/route.js.map +1 -0
  117. package/dist/routes/api/v1/proposals/[id]/route.d.ts +8 -8
  118. package/dist/routes/api/v1/proposals/[id]/route.d.ts.map +1 -0
  119. package/dist/routes/api/v1/proposals/[id]/route.js +0 -9
  120. package/dist/routes/api/v1/proposals/[id]/route.js.map +1 -0
  121. package/dist/routes/api/v1/proposals/index.d.ts.map +1 -0
  122. package/dist/routes/api/v1/proposals/index.js.map +1 -0
  123. package/dist/routes/api/v1/proposals/route.d.ts.map +1 -0
  124. package/dist/routes/api/v1/proposals/route.js +0 -8
  125. package/dist/routes/api/v1/proposals/route.js.map +1 -0
  126. package/dist/routes/api/v1/resources/[id]/index.d.ts.map +1 -0
  127. package/dist/routes/api/v1/resources/[id]/index.js.map +1 -0
  128. package/dist/routes/api/v1/resources/[id]/route.js.map +1 -0
  129. package/dist/routes/api/v1/resources/[id]/thumbnail/index.d.ts.map +1 -0
  130. package/dist/routes/api/v1/resources/[id]/thumbnail/index.js.map +1 -0
  131. package/dist/routes/api/v1/resources/[id]/thumbnail/route.js.map +1 -0
  132. package/dist/routes/api/v1/resources/index.d.ts.map +1 -0
  133. package/dist/routes/api/v1/resources/index.js.map +1 -0
  134. package/dist/routes/api/v1/resources/route.d.ts.map +1 -0
  135. package/dist/routes/api/v1/resources/route.js.map +1 -0
  136. package/dist/routes/api/v1/symlinks/index.d.ts.map +1 -0
  137. package/dist/routes/api/v1/symlinks/index.js.map +1 -0
  138. package/dist/routes/api/v1/symlinks/route.d.ts.map +1 -0
  139. package/dist/routes/api/v1/symlinks/route.js.map +1 -0
  140. package/dist/routes/api/v1/terminal/[proposalId]/create/index.d.ts.map +1 -0
  141. package/dist/routes/api/v1/terminal/[proposalId]/create/index.js.map +1 -0
  142. package/dist/routes/api/v1/terminal/[proposalId]/create/route.d.ts.map +1 -0
  143. package/dist/routes/api/v1/terminal/[proposalId]/create/route.js.map +1 -0
  144. package/dist/routes/api/v1/terminal/[proposalId]/destroy/index.d.ts.map +1 -0
  145. package/dist/routes/api/v1/terminal/[proposalId]/destroy/index.js.map +1 -0
  146. package/dist/routes/api/v1/terminal/[proposalId]/destroy/route.d.ts.map +1 -0
  147. package/dist/routes/api/v1/terminal/[proposalId]/destroy/route.js.map +1 -0
  148. package/dist/routes/api/v1/terminal/[proposalId]/resize/index.d.ts.map +1 -0
  149. package/dist/routes/api/v1/terminal/[proposalId]/resize/index.js.map +1 -0
  150. package/dist/routes/api/v1/terminal/[proposalId]/resize/route.d.ts.map +1 -0
  151. package/dist/routes/api/v1/terminal/[proposalId]/resize/route.js.map +1 -0
  152. package/dist/routes/api/v1/terminal/sessions/index.d.ts.map +1 -0
  153. package/dist/routes/api/v1/terminal/sessions/index.js.map +1 -0
  154. package/dist/routes/api/v1/terminal/sessions/route.d.ts.map +1 -0
  155. package/dist/routes/api/v1/terminal/sessions/route.js.map +1 -0
  156. package/dist/routes/api/v1/user/index.d.ts.map +1 -0
  157. package/dist/routes/api/v1/user/index.js.map +1 -0
  158. package/dist/routes/api/v1/user/settings/index.d.ts.map +1 -0
  159. package/dist/routes/api/v1/user/settings/index.js.map +1 -0
  160. package/dist/routes/api/v1/user/settings/route.d.ts.map +1 -0
  161. package/dist/routes/api/v1/user/settings/route.js.map +1 -0
  162. package/dist/server-with-static.d.ts.map +1 -0
  163. package/dist/server-with-static.js +0 -2
  164. package/dist/server-with-static.js.map +1 -0
  165. package/dist/server.d.ts.map +1 -0
  166. package/dist/server.js +0 -2
  167. package/dist/server.js.map +1 -0
  168. package/package.json +4 -5
  169. package/static/assets/ActivityPage-qJKqmwv7.js +1 -0
  170. package/static/assets/{AgentDetailPage-CS4l_2nY.js → AgentDetailPage-Dww8h17d.js} +1 -1
  171. package/static/assets/AgentEditPage-K6I9kvCf.js +1 -0
  172. package/static/assets/AgentsPage-nnMzCmw9.js +3 -0
  173. package/static/assets/AgentsSettingsPage-Dnkw87_8.js +6 -0
  174. package/static/assets/{ApiKeysSettingsPage-BmGRl-Cr.js → ApiKeysSettingsPage-DY0vNNSR.js} +3 -3
  175. package/static/assets/{ArchitectureEditPage-CyAu4lkT.js → ArchitectureEditPage-wx1LBCGC.js} +1 -1
  176. package/static/assets/ArchitecturePage-C4bkskmN.js +1 -0
  177. package/static/assets/{AuthSettingsPage-BfxPusvb.js → AuthSettingsPage-AXU_vx8p.js} +2 -2
  178. package/static/assets/{CallbackPage-C7QN2xcl.js → CallbackPage-B6CJkdJu.js} +1 -1
  179. package/static/assets/CodePage-DGxzOKzh.js +2 -0
  180. package/static/assets/{CollapsibleSection-DpcF5jIr.js → CollapsibleSection-DgGytfeZ.js} +1 -1
  181. package/static/assets/DashboardPage-3PlgC6UV.js +41 -0
  182. package/static/assets/{GitPage-DVCWmjb1.js → GitPage-vBLrGiwG.js} +3 -3
  183. package/static/assets/{GitSettingsPage-CA-NVPgC.js → GitSettingsPage-D22W0fXd.js} +2 -2
  184. package/static/assets/{IdentityPage-yBi2meP8.js → IdentityPage-B8xDJx3W.js} +3 -3
  185. package/static/assets/{ImplementationStepsEditor-CdFjqsQp.js → ImplementationStepsEditor-BY7wwwdO.js} +2 -2
  186. package/static/assets/IntegrationsSettingsPage-CSr-dlmL.js +1 -0
  187. package/static/assets/JobDetailPage-BUHRLYvQ.js +1 -0
  188. package/static/assets/KnowledgeDetailPage-8q-MYEOA.js +1 -0
  189. package/static/assets/{KnowledgeEditPage-DqTY1Y3C.js → KnowledgeEditPage-Di63BhFz.js} +1 -1
  190. package/static/assets/{KnowledgePage-DonVTg_6.js → KnowledgePage-BuEcOdou.js} +2 -2
  191. package/static/assets/{LoginPage-DFpCcG6v.js → LoginPage-CBRJBmlC.js} +1 -1
  192. package/static/assets/McpSettingsPage-gariusH3.js +1 -0
  193. package/static/assets/NewAgentPage-DDkFaqIq.js +1 -0
  194. package/static/assets/{NewKnowledgePage-D93ERPBo.js → NewKnowledgePage-BqMSsS53.js} +2 -2
  195. package/static/assets/NewProposalPage-C77pO28o.js +90 -0
  196. package/static/assets/{ProjectEditPage-kXy3gxS3.js → ProjectEditPage-Dp5M7aXW.js} +1 -1
  197. package/static/assets/ProjectPage-BBL0XITa.js +1 -0
  198. package/static/assets/{PromptsSettingsPage-BNQrbBn5.js → PromptsSettingsPage-DOcni_gq.js} +1 -1
  199. package/static/assets/ProposalDetailPage-5b6lLZRq.js +1 -0
  200. package/static/assets/ProposalEditPage-lm9wiiHa.js +1 -0
  201. package/static/assets/{ProposalsPage-CysWDXyl.js → ProposalsPage-Dcms-16A.js} +2 -2
  202. package/static/assets/{ResourcesPage-QD68AoOk.js → ResourcesPage-BGugJIYF.js} +5 -5
  203. package/static/assets/RoleEditPage-DI1lGRK2.js +13 -0
  204. package/static/assets/RolePage-B1kmmDDF.js +1 -0
  205. package/static/assets/{RulesSettingsPage-DQvhq7o0.js → RulesSettingsPage-Br_c4fhl.js} +1 -1
  206. package/static/assets/SchedulePage-DMBddFXL.js +4 -0
  207. package/static/assets/SourceInput-BuPLoJuZ.js +1 -0
  208. package/static/assets/{TagInput-C1XF1z9l.js → TagInput-CkZQYmnO.js} +1 -1
  209. package/static/assets/TerminalPage-CYqTT1pK.js +1 -0
  210. package/static/assets/{TerminalSessionPage-BkuO3Dlc.js → TerminalSessionPage-a9QWo08R.js} +8 -3
  211. package/static/assets/UserPreferencesPage-IVxOVtNk.js +1 -0
  212. package/static/assets/{UserSettingsPage-Czyu--ZE.js → UserSettingsPage-Dsop4_yN.js} +1 -1
  213. package/static/assets/{UtilitiesPage-BL3r6jt4.js → UtilitiesPage-CZCmnyTp.js} +1 -1
  214. package/static/assets/{alert-yDv7BoVY.js → alert-nipAjehb.js} +1 -1
  215. package/static/assets/{arrow-down-B6mDQzhv.js → arrow-down-DQTEjf4E.js} +1 -1
  216. package/static/assets/{arrow-left-oYBMYRNP.js → arrow-left-BgRi6mQL.js} +1 -1
  217. package/static/assets/{arrow-up-BtNT59gW.js → arrow-up-jLj_KhSo.js} +1 -1
  218. package/static/assets/{badge-A8sRXZ1m.js → badge-CqnJU-OF.js} +1 -1
  219. package/static/assets/{browser-modal-DcxLC6CX.js → browser-modal-DBBFKngy.js} +2 -2
  220. package/static/assets/{calendar-C6_Zaz3s.js → calendar-CA_W4UKa.js} +1 -1
  221. package/static/assets/{card-Brl-P7qu.js → card-DdTVdbjN.js} +1 -1
  222. package/static/assets/{chevron-left-BsJmB9OE.js → chevron-left-CM04t09S.js} +1 -1
  223. package/static/assets/chevrons-up-DgSgy4LT.js +11 -0
  224. package/static/assets/{circle-alert-BYXOF-Yd.js → circle-alert-UErAnUQ-.js} +1 -1
  225. package/static/assets/{circle-check-BISWYf84.js → circle-check-2oo3aeGx.js} +1 -1
  226. package/static/assets/{circle-check-big-GdURlCCT.js → circle-check-big-CQsXU9Fx.js} +1 -1
  227. package/static/assets/{circle-play-D14kkelg.js → circle-play-BHGmBl9H.js} +1 -1
  228. package/static/assets/{circle-x-CWvfwx75.js → circle-x-DoAXluPx.js} +1 -1
  229. package/static/assets/{clipboard-CQ1MeyX5.js → clipboard-NaRSfq4S.js} +1 -1
  230. package/static/assets/{clock-C7sCX_DE.js → clock-C1lOY_Qr.js} +1 -1
  231. package/static/assets/{download-BjE8JxlU.js → download-Co1Xt7Td.js} +1 -1
  232. package/static/assets/droid-Caom7ttu.js +4 -0
  233. package/static/assets/{eye-2hl27c7R.js → eye-54QpT_B-.js} +1 -1
  234. package/static/assets/{folder-git-2-BBlVIDmr.js → folder-git-2-x65JY04J.js} +1 -1
  235. package/static/assets/index-BhlZ_D1Y.css +2 -0
  236. package/static/assets/index-VBSAUXJg.js +468 -0
  237. package/static/assets/{label-DA737D6X.js → label-C6P6J-NS.js} +1 -1
  238. package/static/assets/{markdown-editor-BhYm394v.js → markdown-editor-CgzPMMiE.js} +1 -1
  239. package/static/assets/{pause-DS_ZgX9w.js → pause-CU8WFOyJ.js} +1 -1
  240. package/static/assets/{play-Cgu7MRJC.js → play-nlXIUG-M.js} +1 -1
  241. package/static/assets/{plus-RZwwEJRO.js → plus-nBUooJPr.js} +1 -1
  242. package/static/assets/{radio-group-CzZoufFM.js → radio-group-CQVEYWSk.js} +1 -1
  243. package/static/assets/{refresh-cw-BJ2GIM1Z.js → refresh-cw-ChsHXM-C.js} +1 -1
  244. package/static/assets/{search-B2ODQzPd.js → search-ygMlQfjH.js} +1 -1
  245. package/static/assets/{switch-AdqXRjK1.js → switch-BcjQDy93.js} +1 -1
  246. package/static/assets/{tabs-DnIPixK3.js → tabs-B2pmN66L.js} +1 -1
  247. package/static/assets/{tag-C4UgL0Z_.js → tag-BEI3zSmE.js} +1 -1
  248. package/static/assets/terminal-preview-_bKoIC7R.js +1 -0
  249. package/static/assets/{use-terminal-qsHkIOJb.js → use-terminal-DKszJuOd.js} +1 -1
  250. package/static/assets/{zap-CpNZOBUL.js → zap-w4hozPoR.js} +1 -1
  251. package/static/index.html +2 -2
  252. package/dist/lib/mcp-client.d.ts +0 -39
  253. package/dist/lib/mcp-client.js +0 -131
  254. package/dist/lib/slack/slack-service.d.ts +0 -89
  255. package/dist/lib/slack/slack-service.js +0 -504
  256. package/dist/routes/api/v1/slack/index.d.ts +0 -3
  257. package/dist/routes/api/v1/slack/index.js +0 -15
  258. package/dist/routes/api/v1/slack/route.d.ts +0 -122
  259. package/dist/routes/api/v1/slack/route.js +0 -189
  260. package/static/assets/AgentEditPage-mvchfGaI.js +0 -1
  261. package/static/assets/AgentsPage-D4JsS7kC.js +0 -3
  262. package/static/assets/AgentsSettingsPage-CPZm3ECa.js +0 -6
  263. package/static/assets/ArchitecturePage-BEVC5igc.js +0 -1
  264. package/static/assets/CodePage-DoP5IiuI.js +0 -2
  265. package/static/assets/DashboardPage-D0EoXiL2.js +0 -11
  266. package/static/assets/IntegrationsSettingsPage-4NWwhHlm.js +0 -1
  267. package/static/assets/KnowledgeDetailPage-mBBrz-_N.js +0 -1
  268. package/static/assets/McpSettingsPage-jXN9kO3i.js +0 -1
  269. package/static/assets/NewAgentPage-BNojru16.js +0 -1
  270. package/static/assets/NewProposalPage-BBmHfu-z.js +0 -90
  271. package/static/assets/NotificationsSettingsPage-D6oOIvep.js +0 -1
  272. package/static/assets/ProjectPage-D3vvfNxI.js +0 -1
  273. package/static/assets/ProposalDetailPage-CMgZUcxP.js +0 -1
  274. package/static/assets/ProposalEditPage-Bn_1OJ11.js +0 -1
  275. package/static/assets/SchedulePage-CghrKKJB.js +0 -4
  276. package/static/assets/SourceInput-BU8xQMbc.js +0 -1
  277. package/static/assets/TerminalPage-BfNa9oLV.js +0 -1
  278. package/static/assets/UserPreferencesPage-DWsDPJWa.js +0 -1
  279. package/static/assets/droid-C6RWH9f4.js +0 -4
  280. package/static/assets/index-BJVvhEWY.css +0 -2
  281. package/static/assets/index-D_2ZhRwL.js +0 -463
  282. package/static/assets/message-square-DV1_7h3v.js +0 -6
  283. package/static/assets/terminal-preview-PYoJzFpP.js +0 -11
@@ -0,0 +1 @@
1
+ import{Q as R,u as U,a as H,r as o,A as P,j as e,B as m,L as x,I as O,h as T,i as I,k as L,l as D,m as r,X as V,a8 as _}from"./index-VBSAUXJg.js";import{L as j}from"./label-C6P6J-NS.js";import{C as f,b as F,a as v,c as q,d as J}from"./card-DdTVdbjN.js";import{M as K}from"./markdown-editor-CgzPMMiE.js";import{C as Q}from"./CollapsibleSection-DgGytfeZ.js";import{I as W,L as X}from"./ImplementationStepsEditor-BY7wwwdO.js";import{T as G}from"./TagInput-CkZQYmnO.js";import{A as N}from"./arrow-left-BgRi6mQL.js";import"./plus-nBUooJPr.js";import"./badge-CqnJU-OF.js";function oe(){const{id:i}=R(),$=U(),{toast:y}=H(),[z,S]=o.useState(!0),[h,C]=o.useState(!1),[w,b]=o.useState(null),[n,d]=o.useState({intent:"",description:"",priority:"medium",status:"draft",author:{id:"current-user",name:"Current User",email:"user@example.com"}}),[p,E]=o.useState([]),[k,A]=o.useState([]);o.useEffect(()=>{i&&B()},[i]);const B=async()=>{try{S(!0);const t=await fetch(`${P}/api/v1/proposals/${i}`),s=await t.json();if(s.success||s.data||t.ok){const a=s.data||s;d({intent:a.intent||"",description:a.content||"",priority:a.metadata?.priority||"medium",status:a.status||"draft",author:{id:a.author?.id||"current-user",name:a.author?.name||"Current User",email:a.author?.email||"user@example.com"}});const g=Array.isArray(a.planSteps)?a.planSteps:[];E(g.map((c,u)=>({id:c.id||`step-${u+1}`,description:c.description||"",status:c.status||"pending"}))),A(a.metadata?.tags||[])}else b(s.error?.message||"Failed to fetch proposal")}catch(t){b(t instanceof Error?t.message:"An error occurred")}finally{S(!1)}},M=async t=>{t.preventDefault(),C(!0);try{const s=p.map(l=>({id:l.id,description:l.description.trim(),status:l.status})).filter(l=>l.description.length>0),a=k.map(l=>l.trim()).filter(l=>l.length>0),g={intent:n.intent,status:n.status,planSteps:s,metadata:{priority:n.priority,tags:a},content:n.description},c=await fetch(`${P}/api/v1/proposals/${i}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(g)}),u=await c.json();if(u.success||c.ok)y({title:"Success",description:"Proposal updated successfully."}),$(`/proposals/${i}`);else throw new Error(u.error?.message||"Failed to update proposal")}catch(s){y({title:"Error",description:`Failed to update proposal: ${s instanceof Error?s.message:"An error occurred"}`,variant:"destructive"})}finally{C(!1)}};return z?e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:"Edit Proposal"}),e.jsx("p",{className:"text-muted-foreground",children:"Loading proposal data..."})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(m,{variant:"ghost",size:"sm",asChild:!0,className:"px-2 hover:bg-transparent",children:e.jsx(x,{to:`/proposals/${i}`,className:"flex items-center text-muted-foreground hover:text-foreground transition-colors",children:e.jsx(N,{className:"h-4 w-4"})})})})]}),e.jsxs(f,{children:[e.jsx(F,{children:e.jsxs("div",{className:"space-y-2",children:[e.jsx("div",{className:"h-6 bg-muted rounded w-1/2 animate-pulse"}),e.jsx("div",{className:"h-4 bg-muted rounded w-3/4 animate-pulse"})]})}),e.jsx(v,{children:e.jsxs("div",{className:"space-y-4",children:[e.jsx("div",{className:"h-10 bg-muted rounded animate-pulse"}),e.jsx("div",{className:"h-64 bg-muted rounded animate-pulse"})]})})]})]}):w?e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{children:e.jsx("h3",{className:"text-lg font-semibold text-destructive",children:"Error"})}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(m,{variant:"ghost",size:"sm",asChild:!0,className:"px-2 hover:bg-transparent",children:e.jsx(x,{to:"/proposals",className:"flex items-center text-muted-foreground hover:text-foreground transition-colors",children:e.jsx(N,{className:"h-4 w-4"})})})})]}),e.jsx(f,{children:e.jsx(v,{className:"pt-6",children:e.jsxs("div",{className:"text-center",children:[e.jsx("h3",{className:"text-lg font-semibold text-destructive",children:"Error"}),e.jsx("p",{className:"text-muted-foreground mt-2",children:w})]})})})]}):e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:"Edit Proposal"}),e.jsxs("p",{className:"text-muted-foreground",children:["Editing ",i]})]}),e.jsx("div",{className:"flex items-center gap-2",children:e.jsx(m,{variant:"ghost",size:"sm",asChild:!0,children:e.jsx(x,{to:`/proposals/${i}`,className:"flex items-center gap-1 text-muted-foreground hover:text-foreground transition-colors",children:e.jsx(N,{className:"h-4 w-4"})})})})]}),e.jsx("form",{onSubmit:M,children:e.jsxs(f,{children:[e.jsxs(F,{children:[e.jsx(q,{children:"Task Details"}),e.jsx(J,{children:"Update the information for your change proposal"})]}),e.jsxs(v,{className:"space-y-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(j,{htmlFor:"intent",children:"Intent *"}),e.jsx(O,{id:"intent",placeholder:"Brief description of what you want to change",value:n.intent,onChange:t=>d(s=>({...s,intent:t.target.value})),required:!0})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(j,{htmlFor:"description",children:"Description"}),e.jsx(K,{value:n.description,onChange:t=>d(s=>({...s,description:t||""})),placeholder:"Write your proposal description in markdown...",height:400})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx(j,{htmlFor:"status",children:"Status"}),e.jsxs(T,{value:n.status,onValueChange:t=>d(s=>({...s,status:t})),children:[e.jsx(I,{children:e.jsx(L,{placeholder:"Select status"})}),e.jsxs(D,{children:[e.jsx(r,{value:"draft",children:"Draft"}),e.jsx(r,{value:"proposed",children:"Proposed"}),e.jsx(r,{value:"in-review",children:"In Review"}),e.jsx(r,{value:"approved",children:"Approved"}),e.jsx(r,{value:"code-complete",children:"Code Complete"}),e.jsx(r,{value:"rejected",children:"Rejected"}),e.jsx(r,{value:"merged",children:"Merged"})]})]})]}),e.jsx(Q,{defaultOpen:!0,icon:e.jsx(X,{className:"h-4 w-4"}),title:"Optional Implementation Detail",children:e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx(j,{htmlFor:"priority",children:"Priority"}),e.jsxs(T,{value:n.priority,onValueChange:t=>d(s=>({...s,priority:t})),children:[e.jsx(I,{children:e.jsx(L,{placeholder:"Select priority"})}),e.jsxs(D,{children:[e.jsx(r,{value:"low",children:"Low"}),e.jsx(r,{value:"medium",children:"Medium"}),e.jsx(r,{value:"high",children:"High"}),e.jsx(r,{value:"critical",children:"Critical"})]})]})]}),e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-baseline justify-between gap-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"Implementation Steps"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Keep the implementation plan accurate as work progresses."})]}),p.length>0&&e.jsxs("span",{className:"text-xs text-muted-foreground",children:[p.length," step",p.length===1?"":"s"]})]}),e.jsx(W,{steps:p,onChange:E,disabled:h})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("p",{className:"text-sm font-medium",children:"Tags"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Tags power filtering and discovery across the proposal list."}),e.jsx(G,{tags:k,onChange:A,disabled:h,placeholder:"Add a tag (e.g. backend, rollout)"})]})]})}),e.jsxs("div",{className:"flex justify-end gap-2",children:[e.jsx(m,{type:"button",variant:"outline",asChild:!0,children:e.jsxs(x,{to:`/proposals/${i}`,children:[e.jsx(V,{className:"mr-2 h-4 w-4"}),"Cancel"]})}),e.jsx(m,{type:"submit",disabled:h||!n.intent,children:h?e.jsx(e.Fragment,{children:"Saving..."}):e.jsxs(e.Fragment,{children:[e.jsx(_,{className:"mr-2 h-4 w-4"}),"Save Changes"]})})]})]})]})})]})}export{oe as ProposalEditPage};
@@ -1,4 +1,4 @@
1
- import{c as xe,o as _e,u as Ie,l as Le,r as j,j as t,B as V,L as Y,I as Re,X,K as Pe,p as Oe,q as $e,s as Te,v as ie,w as ae,x as ce,y as ue,z as w,G as Ke,A as ze}from"./index-D_2ZhRwL.js";import{C as J,b as Ve,a as Z,c as We}from"./card-Brl-P7qu.js";import{B as q}from"./badge-A8sRXZ1m.js";import{P as ee}from"./plus-RZwwEJRO.js";import{S as Ue}from"./search-B2ODQzPd.js";/**
1
+ import{c as xe,O as _e,u as Ie,z as Le,r as j,j as t,B as V,L as Y,I as Re,X,K as Te,y as Oe,P as $e,v as Pe,h as ie,i as ae,k as ce,l as ue,m as w,G as Ke,A as ze}from"./index-VBSAUXJg.js";import{C as J,b as Ve,a as Z,c as We}from"./card-DdTVdbjN.js";import{B as q}from"./badge-CqnJU-OF.js";import{P as ee}from"./plus-nBUooJPr.js";import{S as Ue}from"./search-ygMlQfjH.js";/**
2
2
  * @license lucide-react v0.542.0 - ISC
3
3
  *
4
4
  * This source code is licensed under the ISC license.
@@ -13,5 +13,5 @@ import{c as xe,o as _e,u as Ie,l as Le,r as j,j as t,B as V,L as Y,I as Re,X,K a
13
13
  *
14
14
  * This source code is licensed under the ISC license.
15
15
  * See the LICENSE file in the root directory of this source tree.
16
- */const Xe=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],Ae=xe("funnel",Xe);function P(s){return Array.isArray?Array.isArray(s):be(s)==="[object Array]"}function Je(s){if(typeof s=="string")return s;let e=s+"";return e=="0"&&1/s==-1/0?"-0":e}function Ze(s){return s==null?"":Je(s)}function R(s){return typeof s=="string"}function ve(s){return typeof s=="number"}function qe(s){return s===!0||s===!1||et(s)&&be(s)=="[object Boolean]"}function Ee(s){return typeof s=="object"}function et(s){return Ee(s)&&s!==null}function S(s){return s!=null}function le(s){return!s.trim().length}function be(s){return s==null?s===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(s)}const tt="Incorrect 'index' type",st=s=>`Invalid value for key ${s}`,rt=s=>`Pattern length exceeds max of ${s}.`,nt=s=>`Missing ${s} property in key`,it=s=>`Property 'weight' in key '${s}' must be a positive integer`,je=Object.prototype.hasOwnProperty;class at{constructor(e){this._keys=[],this._keyMap={};let r=0;e.forEach(n=>{let i=Fe(n);this._keys.push(i),this._keyMap[i.id]=i,r+=i.weight}),this._keys.forEach(n=>{n.weight/=r})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Fe(s){let e=null,r=null,n=null,i=1,a=null;if(R(s)||P(s))n=s,e=ye(s),r=oe(s);else{if(!je.call(s,"name"))throw new Error(nt("name"));const c=s.name;if(n=c,je.call(s,"weight")&&(i=s.weight,i<=0))throw new Error(it(c));e=ye(c),r=oe(c),a=s.getFn}return{path:e,id:r,weight:i,src:n,getFn:a}}function ye(s){return P(s)?s:s.split(".")}function oe(s){return P(s)?s.join("."):s}function ct(s,e){let r=[],n=!1;const i=(a,c,l)=>{if(S(a))if(!c[l])r.push(a);else{let o=c[l];const h=a[o];if(!S(h))return;if(l===c.length-1&&(R(h)||ve(h)||qe(h)))r.push(Ze(h));else if(P(h)){n=!0;for(let d=0,m=h.length;d<m;d+=1)i(h[d],c,l+1)}else c.length&&i(h,c,l+1)}};return i(s,R(e)?e.split("."):e,0),n?r:r[0]}const ut={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},lt={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(s,e)=>s.score===e.score?s.idx<e.idx?-1:1:s.score<e.score?-1:1},ot={location:0,threshold:.6,distance:100},ht={useExtendedSearch:!1,getFn:ct,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1};var f={...lt,...ut,...ot,...ht};const dt=/[^ ]+/g;function ft(s=1,e=3){const r=new Map,n=Math.pow(10,e);return{get(i){const a=i.match(dt).length;if(r.has(a))return r.get(a);const c=1/Math.pow(a,.5*s),l=parseFloat(Math.round(c*n)/n);return r.set(a,l),l},clear(){r.clear()}}}class pe{constructor({getFn:e=f.getFn,fieldNormWeight:r=f.fieldNormWeight}={}){this.norm=ft(r,3),this.getFn=e,this.isCreated=!1,this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((r,n)=>{this._keysMap[r.id]=n})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,R(this.docs[0])?this.docs.forEach((e,r)=>{this._addString(e,r)}):this.docs.forEach((e,r)=>{this._addObject(e,r)}),this.norm.clear())}add(e){const r=this.size();R(e)?this._addString(e,r):this._addObject(e,r)}removeAt(e){this.records.splice(e,1);for(let r=e,n=this.size();r<n;r+=1)this.records[r].i-=1}getValueForItemAtKeyId(e,r){return e[this._keysMap[r]]}size(){return this.records.length}_addString(e,r){if(!S(e)||le(e))return;let n={v:e,i:r,n:this.norm.get(e)};this.records.push(n)}_addObject(e,r){let n={i:r,$:{}};this.keys.forEach((i,a)=>{let c=i.getFn?i.getFn(e):this.getFn(e,i.path);if(S(c)){if(P(c)){let l=[];const o=[{nestedArrIndex:-1,value:c}];for(;o.length;){const{nestedArrIndex:h,value:d}=o.pop();if(S(d))if(R(d)&&!le(d)){let m={v:d,i:h,n:this.norm.get(d)};l.push(m)}else P(d)&&d.forEach((m,x)=>{o.push({nestedArrIndex:x,value:m})})}n.$[a]=l}else if(R(c)&&!le(c)){let l={v:c,n:this.norm.get(c)};n.$[a]=l}}}),this.records.push(n)}toJSON(){return{keys:this.keys,records:this.records}}}function Me(s,e,{getFn:r=f.getFn,fieldNormWeight:n=f.fieldNormWeight}={}){const i=new pe({getFn:r,fieldNormWeight:n});return i.setKeys(s.map(Fe)),i.setSources(e),i.create(),i}function mt(s,{getFn:e=f.getFn,fieldNormWeight:r=f.fieldNormWeight}={}){const{keys:n,records:i}=s,a=new pe({getFn:e,fieldNormWeight:r});return a.setKeys(n),a.setIndexRecords(i),a}function te(s,{errors:e=0,currentLocation:r=0,expectedLocation:n=0,distance:i=f.distance,ignoreLocation:a=f.ignoreLocation}={}){const c=e/s.length;if(a)return c;const l=Math.abs(n-r);return i?c+l/i:l?1:c}function gt(s=[],e=f.minMatchCharLength){let r=[],n=-1,i=-1,a=0;for(let c=s.length;a<c;a+=1){let l=s[a];l&&n===-1?n=a:!l&&n!==-1&&(i=a-1,i-n+1>=e&&r.push([n,i]),n=-1)}return s[a-1]&&a-n>=e&&r.push([n,a-1]),r}const W=32;function xt(s,e,r,{location:n=f.location,distance:i=f.distance,threshold:a=f.threshold,findAllMatches:c=f.findAllMatches,minMatchCharLength:l=f.minMatchCharLength,includeMatches:o=f.includeMatches,ignoreLocation:h=f.ignoreLocation}={}){if(e.length>W)throw new Error(rt(W));const d=e.length,m=s.length,x=Math.max(0,Math.min(n,m));let g=a,A=x;const C=l>1||o,M=C?Array(m):[];let E;for(;(E=s.indexOf(e,A))>-1;){let F=te(e,{currentLocation:E,expectedLocation:x,distance:i,ignoreLocation:h});if(g=Math.min(F,g),A=E+d,C){let k=0;for(;k<d;)M[E+k]=1,k+=1}}A=-1;let _=[],b=1,L=d+m;const G=1<<d-1;for(let F=0;F<d;F+=1){let k=0,y=L;for(;k<y;)te(e,{errors:F,currentLocation:x+y,expectedLocation:x,distance:i,ignoreLocation:h})<=g?k=y:L=y,y=Math.floor((L-k)/2+k);L=y;let z=Math.max(1,x-y+1),O=c?m:Math.min(x+y,m)+d,I=Array(O+2);I[O+1]=(1<<F)-1;for(let D=O;D>=z;D-=1){let $=D-1,Q=r[s.charAt($)];if(C&&(M[$]=+!!Q),I[D]=(I[D+1]<<1|1)&Q,F&&(I[D]|=(_[D+1]|_[D])<<1|1|_[D+1]),I[D]&G&&(b=te(e,{errors:F,currentLocation:$,expectedLocation:x,distance:i,ignoreLocation:h}),b<=g)){if(g=b,A=$,A<=x)break;z=Math.max(1,2*x-A)}}if(te(e,{errors:F+1,currentLocation:x,expectedLocation:x,distance:i,ignoreLocation:h})>g)break;_=I}const H={isMatch:A>=0,score:Math.max(.001,b)};if(C){const F=gt(M,l);F.length?o&&(H.indices=F):H.isMatch=!1}return H}function pt(s){let e={};for(let r=0,n=s.length;r<n;r+=1){const i=s.charAt(r);e[i]=(e[i]||0)|1<<n-r-1}return e}const se=String.prototype.normalize?(s=>s.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"")):(s=>s);class De{constructor(e,{location:r=f.location,threshold:n=f.threshold,distance:i=f.distance,includeMatches:a=f.includeMatches,findAllMatches:c=f.findAllMatches,minMatchCharLength:l=f.minMatchCharLength,isCaseSensitive:o=f.isCaseSensitive,ignoreDiacritics:h=f.ignoreDiacritics,ignoreLocation:d=f.ignoreLocation}={}){if(this.options={location:r,threshold:n,distance:i,includeMatches:a,findAllMatches:c,minMatchCharLength:l,isCaseSensitive:o,ignoreDiacritics:h,ignoreLocation:d},e=o?e:e.toLowerCase(),e=h?se(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;const m=(g,A)=>{this.chunks.push({pattern:g,alphabet:pt(g),startIndex:A})},x=this.pattern.length;if(x>W){let g=0;const A=x%W,C=x-A;for(;g<C;)m(this.pattern.substr(g,W),g),g+=W;if(A){const M=x-W;m(this.pattern.substr(M),M)}}else m(this.pattern,0)}searchIn(e){const{isCaseSensitive:r,ignoreDiacritics:n,includeMatches:i}=this.options;if(e=r?e:e.toLowerCase(),e=n?se(e):e,this.pattern===e){let C={isMatch:!0,score:0};return i&&(C.indices=[[0,e.length-1]]),C}const{location:a,distance:c,threshold:l,findAllMatches:o,minMatchCharLength:h,ignoreLocation:d}=this.options;let m=[],x=0,g=!1;this.chunks.forEach(({pattern:C,alphabet:M,startIndex:E})=>{const{isMatch:_,score:b,indices:L}=xt(e,C,M,{location:a+E,distance:c,threshold:l,findAllMatches:o,minMatchCharLength:h,includeMatches:i,ignoreLocation:d});_&&(g=!0),x+=b,_&&L&&(m=[...m,...L])});let A={isMatch:g,score:g?x/this.chunks.length:1};return g&&i&&(A.indices=m),A}}class K{constructor(e){this.pattern=e}static isMultiMatch(e){return Ce(e,this.multiRegex)}static isSingleMatch(e){return Ce(e,this.singleRegex)}search(){}}function Ce(s,e){const r=s.match(e);return r?r[1]:null}class At extends K{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){const r=e===this.pattern;return{isMatch:r,score:r?0:1,indices:[0,this.pattern.length-1]}}}class jt extends K{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){const n=e.indexOf(this.pattern)===-1;return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}}class yt extends K{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){const r=e.startsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,this.pattern.length-1]}}}class Ct extends K{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){const r=!e.startsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,e.length-1]}}}class wt extends K{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){const r=e.endsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}class Nt extends K{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){const r=!e.endsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,e.length-1]}}}class Be extends K{constructor(e,{location:r=f.location,threshold:n=f.threshold,distance:i=f.distance,includeMatches:a=f.includeMatches,findAllMatches:c=f.findAllMatches,minMatchCharLength:l=f.minMatchCharLength,isCaseSensitive:o=f.isCaseSensitive,ignoreDiacritics:h=f.ignoreDiacritics,ignoreLocation:d=f.ignoreLocation}={}){super(e),this._bitapSearch=new De(e,{location:r,threshold:n,distance:i,includeMatches:a,findAllMatches:c,minMatchCharLength:l,isCaseSensitive:o,ignoreDiacritics:h,ignoreLocation:d})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class Se extends K{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let r=0,n;const i=[],a=this.pattern.length;for(;(n=e.indexOf(this.pattern,r))>-1;)r=n+a,i.push([n,r-1]);const c=!!i.length;return{isMatch:c,score:c?0:1,indices:i}}}const he=[At,Se,yt,Ct,Nt,wt,jt,Be],we=he.length,vt=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,Et="|";function bt(s,e={}){return s.split(Et).map(r=>{let n=r.trim().split(vt).filter(a=>a&&!!a.trim()),i=[];for(let a=0,c=n.length;a<c;a+=1){const l=n[a];let o=!1,h=-1;for(;!o&&++h<we;){const d=he[h];let m=d.isMultiMatch(l);m&&(i.push(new d(m,e)),o=!0)}if(!o)for(h=-1;++h<we;){const d=he[h];let m=d.isSingleMatch(l);if(m){i.push(new d(m,e));break}}}return i})}const Ft=new Set([Be.type,Se.type]);class Mt{constructor(e,{isCaseSensitive:r=f.isCaseSensitive,ignoreDiacritics:n=f.ignoreDiacritics,includeMatches:i=f.includeMatches,minMatchCharLength:a=f.minMatchCharLength,ignoreLocation:c=f.ignoreLocation,findAllMatches:l=f.findAllMatches,location:o=f.location,threshold:h=f.threshold,distance:d=f.distance}={}){this.query=null,this.options={isCaseSensitive:r,ignoreDiacritics:n,includeMatches:i,minMatchCharLength:a,findAllMatches:l,ignoreLocation:c,location:o,threshold:h,distance:d},e=r?e:e.toLowerCase(),e=n?se(e):e,this.pattern=e,this.query=bt(this.pattern,this.options)}static condition(e,r){return r.useExtendedSearch}searchIn(e){const r=this.query;if(!r)return{isMatch:!1,score:1};const{includeMatches:n,isCaseSensitive:i,ignoreDiacritics:a}=this.options;e=i?e:e.toLowerCase(),e=a?se(e):e;let c=0,l=[],o=0;for(let h=0,d=r.length;h<d;h+=1){const m=r[h];l.length=0,c=0;for(let x=0,g=m.length;x<g;x+=1){const A=m[x],{isMatch:C,indices:M,score:E}=A.search(e);if(C){if(c+=1,o+=E,n){const _=A.constructor.type;Ft.has(_)?l=[...l,...M]:l.push(M)}}else{o=0,c=0,l.length=0;break}}if(c){let x={isMatch:!0,score:o/c};return n&&(x.indices=l),x}}return{isMatch:!1,score:1}}}const de=[];function Dt(...s){de.push(...s)}function fe(s,e){for(let r=0,n=de.length;r<n;r+=1){let i=de[r];if(i.condition(s,e))return new i(s,e)}return new De(s,e)}const re={AND:"$and",OR:"$or"},me={PATH:"$path",PATTERN:"$val"},ge=s=>!!(s[re.AND]||s[re.OR]),Bt=s=>!!s[me.PATH],St=s=>!P(s)&&Ee(s)&&!ge(s),Ne=s=>({[re.AND]:Object.keys(s).map(e=>({[e]:s[e]}))});function ke(s,e,{auto:r=!0}={}){const n=i=>{let a=Object.keys(i);const c=Bt(i);if(!c&&a.length>1&&!ge(i))return n(Ne(i));if(St(i)){const o=c?i[me.PATH]:a[0],h=c?i[me.PATTERN]:i[o];if(!R(h))throw new Error(st(o));const d={keyId:oe(o),pattern:h};return r&&(d.searcher=fe(h,e)),d}let l={children:[],operator:a[0]};return a.forEach(o=>{const h=i[o];P(h)&&h.forEach(d=>{l.children.push(n(d))})}),l};return ge(s)||(s=Ne(s)),n(s)}function kt(s,{ignoreFieldNorm:e=f.ignoreFieldNorm}){s.forEach(r=>{let n=1;r.matches.forEach(({key:i,norm:a,score:c})=>{const l=i?i.weight:null;n*=Math.pow(c===0&&l?Number.EPSILON:c,(l||1)*(e?1:a))}),r.score=n})}function _t(s,e){const r=s.matches;e.matches=[],S(r)&&r.forEach(n=>{if(!S(n.indices)||!n.indices.length)return;const{indices:i,value:a}=n;let c={indices:i,value:a};n.key&&(c.key=n.key.src),n.idx>-1&&(c.refIndex=n.idx),e.matches.push(c)})}function It(s,e){e.score=s.score}function Lt(s,e,{includeMatches:r=f.includeMatches,includeScore:n=f.includeScore}={}){const i=[];return r&&i.push(_t),n&&i.push(It),s.map(a=>{const{idx:c}=a,l={item:e[c],refIndex:c};return i.length&&i.forEach(o=>{o(a,l)}),l})}class U{constructor(e,r={},n){this.options={...f,...r},this.options.useExtendedSearch,this._keyStore=new at(this.options.keys),this.setCollection(e,n)}setCollection(e,r){if(this._docs=e,r&&!(r instanceof pe))throw new Error(tt);this._myIndex=r||Me(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){S(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){const r=[];for(let n=0,i=this._docs.length;n<i;n+=1){const a=this._docs[n];e(a,n)&&(this.removeAt(n),n-=1,i-=1,r.push(a))}return r}removeAt(e){this._docs.splice(e,1),this._myIndex.removeAt(e)}getIndex(){return this._myIndex}search(e,{limit:r=-1}={}){const{includeMatches:n,includeScore:i,shouldSort:a,sortFn:c,ignoreFieldNorm:l}=this.options;let o=R(e)?R(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return kt(o,{ignoreFieldNorm:l}),a&&o.sort(c),ve(r)&&r>-1&&(o=o.slice(0,r)),Lt(o,this._docs,{includeMatches:n,includeScore:i})}_searchStringList(e){const r=fe(e,this.options),{records:n}=this._myIndex,i=[];return n.forEach(({v:a,i:c,n:l})=>{if(!S(a))return;const{isMatch:o,score:h,indices:d}=r.searchIn(a);o&&i.push({item:a,idx:c,matches:[{score:h,value:a,norm:l,indices:d}]})}),i}_searchLogical(e){const r=ke(e,this.options),n=(l,o,h)=>{if(!l.children){const{keyId:m,searcher:x}=l,g=this._findMatches({key:this._keyStore.get(m),value:this._myIndex.getValueForItemAtKeyId(o,m),searcher:x});return g&&g.length?[{idx:h,item:o,matches:g}]:[]}const d=[];for(let m=0,x=l.children.length;m<x;m+=1){const g=l.children[m],A=n(g,o,h);if(A.length)d.push(...A);else if(l.operator===re.AND)return[]}return d},i=this._myIndex.records,a={},c=[];return i.forEach(({$:l,i:o})=>{if(S(l)){let h=n(r,l,o);h.length&&(a[o]||(a[o]={idx:o,item:l,matches:[]},c.push(a[o])),h.forEach(({matches:d})=>{a[o].matches.push(...d)}))}}),c}_searchObjectList(e){const r=fe(e,this.options),{keys:n,records:i}=this._myIndex,a=[];return i.forEach(({$:c,i:l})=>{if(!S(c))return;let o=[];n.forEach((h,d)=>{o.push(...this._findMatches({key:h,value:c[d],searcher:r}))}),o.length&&a.push({idx:l,item:c,matches:o})}),a}_findMatches({key:e,value:r,searcher:n}){if(!S(r))return[];let i=[];if(P(r))r.forEach(({v:a,i:c,n:l})=>{if(!S(a))return;const{isMatch:o,score:h,indices:d}=n.searchIn(a);o&&i.push({score:h,key:e,value:a,idx:c,norm:l,indices:d})});else{const{v:a,n:c}=r,{isMatch:l,score:o,indices:h}=n.searchIn(a);l&&i.push({score:o,key:e,value:a,norm:c,indices:h})}return i}}U.version="7.1.0";U.createIndex=Me;U.parseIndex=mt;U.config=f;U.parseQuery=ke;Dt(Mt);function Rt(s){switch(s){case"approved":case"code-complete":return"default";case"in-review":return"secondary";case"rejected":return"destructive";default:return"outline"}}function Pt(s){switch(s){case"high":case"critical":return"destructive";case"medium":return"secondary";default:return"outline"}}function Vt(){const[s]=_e(),e=Ie(),r=Le(),[n,i]=j.useState([]),[a,c]=j.useState([]),[l,o]=j.useState(!0),[h,d]=j.useState(null),[m,x]=j.useState(s.get("status")||"active"),[g,A]=j.useState(s.get("priority")||"all"),[C,M]=j.useState(s.get("search")||""),[E,_]=j.useState(s.get("sortBy")||"created"),[b,L]=j.useState(s.get("order")||"desc"),[G,H]=j.useState(!1),F=j.useRef(null),k=[m!=="active",g!=="all",E!=="created",b!=="desc"].filter(Boolean).length,y=j.useCallback(u=>{const p=new URLSearchParams(s);Object.entries(u).forEach(([B,T])=>{T&&T!=="all"&&T!=="active"&&T!==""?p.set(B,T):p.delete(B)});const N=p.toString(),v=N?`?${N}`:"";e(`${r.pathname}${v}`)},[s,e,r.pathname]),z=j.useCallback(u=>{x(u),y({status:u==="active"?null:u})},[y]),O=j.useCallback(u=>{A(u),y({priority:u==="all"?null:u})},[y]),I=j.useCallback(u=>{M(u),y({search:u||null})},[y]),ne=j.useCallback(u=>{_(u),y({sortBy:u==="created"?null:u})},[y]),D=j.useCallback(()=>{const u=b==="asc"?"desc":"asc";L(u),y({order:u==="desc"?null:u})},[b,y]),$=j.useCallback(u=>{if(u.key==="s"||u.key==="S"){const p=document.activeElement;p?.tagName==="INPUT"||p?.tagName==="TEXTAREA"||p?.getAttribute("contenteditable")==="true"||(u.preventDefault(),F.current?.focus())}},[]);j.useEffect(()=>(document.addEventListener("keydown",$),()=>{document.removeEventListener("keydown",$)}),[$]);const Q=j.useMemo(()=>{const u={keys:[{name:"intent",weight:.4},{name:"id",weight:.3},{name:"author.name",weight:.2},{name:"metadata.tags",weight:.1}],threshold:.3,includeScore:!0};return new U(n,u)},[n]);return j.useEffect(()=>{async function u(){try{o(!0);const N=await(await fetch(`${ze}/api/v1/proposals`)).json();N.success?(i(N.data),c(N.data)):d(N.error?.message||"Failed to fetch proposals")}catch(p){d(p instanceof Error?p.message:"Unknown error")}finally{o(!1)}}u()},[]),j.useEffect(()=>{let u=n;if(m==="active"?u=u.filter(p=>["draft","proposed","in-review","approved","code-complete"].includes(p.status)):m==="approved"?u=u.filter(p=>["approved","code-complete"].includes(p.status)):m!=="all"&&(u=u.filter(p=>p.status===m)),g!=="all"&&(u=u.filter(p=>p.metadata.priority===g)),C.trim()){const p=Q.search(C),N=new Set(p.map(v=>v.item.id));u=u.filter(v=>N.has(v.id))}u=u.sort((p,N)=>{let v,B;switch(E){case"created":{v=new Date(p.metadata.createdAt).getTime(),B=new Date(N.metadata.createdAt).getTime();break}case"updated":{v=new Date(p.metadata.updatedAt).getTime(),B=new Date(N.metadata.updatedAt).getTime();break}case"status":{v=p.status,B=N.status;break}case"priority":{const T={critical:4,high:3,medium:2,low:1};v=T[p.metadata.priority]||0,B=T[N.metadata.priority]||0;break}case"intent":{v=p.intent.toLowerCase(),B=N.intent.toLowerCase();break}default:v=new Date(p.metadata.createdAt).getTime(),B=new Date(N.metadata.createdAt).getTime()}return b==="asc"?v<B?-1:v>B?1:0:v>B?-1:v<B?1:0}),c(u)},[n,m,g,C,E,b,Q]),l?t.jsxs("div",{className:"space-y-6",children:[t.jsxs("div",{className:"flex justify-between items-center",children:[t.jsxs("div",{children:[t.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:"Proposals"}),t.jsx("p",{className:"text-muted-foreground",children:"Manage change proposals for your project"})]}),t.jsx(V,{asChild:!0,children:t.jsxs(Y,{to:"/proposals/new",children:[t.jsx(ee,{className:"mr-2 h-4 w-4"}),"New Proposal"]})})]}),t.jsx("div",{className:"space-y-4",children:[...Array(3)].map((u,p)=>t.jsx(J,{children:t.jsx(Ve,{children:t.jsxs("div",{className:"flex justify-between items-start",children:[t.jsxs("div",{className:"space-y-2",children:[t.jsx("div",{className:"h-6 bg-muted rounded w-3/4 animate-pulse"}),t.jsx("div",{className:"h-4 bg-muted rounded w-1/2 animate-pulse"})]}),t.jsx("div",{className:"h-6 bg-muted rounded w-20 animate-pulse"})]})})},p))})]}):h?t.jsxs("div",{className:"space-y-6",children:[t.jsxs("div",{className:"flex justify-between items-center",children:[t.jsxs("div",{children:[t.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:"Proposals"}),t.jsx("p",{className:"text-muted-foreground",children:"Manage change proposals for your project"})]}),t.jsx(V,{asChild:!0,children:t.jsxs(Y,{to:"/proposals/new",children:[t.jsx(ee,{className:"mr-2 h-4 w-4"}),"New Proposal"]})})]}),t.jsx(J,{children:t.jsx(Z,{className:"pt-6",children:t.jsx("div",{className:"text-center",children:t.jsxs("p",{className:"text-destructive",children:["Error: ",h]})})})})]}):t.jsxs("div",{className:"space-y-6",children:[t.jsxs("div",{className:"flex justify-between items-center",children:[t.jsxs("div",{children:[t.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:"Proposals"}),t.jsx("p",{className:"text-muted-foreground",children:"Manage change proposals for your project"})]}),t.jsx(V,{asChild:!0,children:t.jsxs(Y,{to:"/proposals/new",children:[t.jsx(ee,{className:"mr-2 h-4 w-4"}),"New Proposal"]})})]}),t.jsxs("div",{className:"space-y-3",children:[t.jsxs("div",{className:"relative",children:[t.jsx(Ue,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none"}),t.jsx(Re,{ref:F,placeholder:"Search proposals...",value:C,onChange:u=>I(u.target.value),className:"pl-9 pr-20 h-11 bg-muted/40 border-muted-foreground/20 focus:bg-background transition-colors"}),t.jsx("div",{className:"absolute right-3 top-1/2 -translate-y-1/2 flex items-center gap-2",children:C?t.jsx("button",{onClick:()=>I(""),className:"h-5 w-5 rounded-full bg-muted-foreground/20 hover:bg-muted-foreground/30 flex items-center justify-center transition-colors",children:t.jsx(X,{className:"h-3 w-3"})}):t.jsx(Pe,{children:t.jsx(Oe,{children:"S"})})})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsxs("button",{onClick:()=>H(!G),className:"flex items-center gap-2 px-3 py-2 text-sm font-medium rounded-lg border border-muted-foreground/20 hover:bg-muted/50 transition-colors",children:[t.jsx(Ae,{className:"h-4 w-4"}),t.jsx("span",{className:"hidden sm:inline",children:"Filters & Sort"}),t.jsx("span",{className:"sm:hidden",children:"Filters"}),k>0&&t.jsx("span",{className:"flex items-center justify-center h-5 w-5 text-xs font-bold rounded-full bg-primary text-primary-foreground",children:k}),G?t.jsx($e,{className:"h-4 w-4 ml-1"}):t.jsx(Te,{className:"h-4 w-4 ml-1"})]}),t.jsxs("div",{className:"flex-1 flex items-center gap-2 overflow-x-auto scrollbar-hide",children:[m!=="active"&&t.jsxs("button",{onClick:()=>z("active"),className:"flex items-center gap-1 px-2 py-1 text-xs font-medium rounded-full bg-blue-500/15 text-blue-600 dark:text-blue-400 hover:bg-blue-500/25 transition-colors whitespace-nowrap",children:[m,t.jsx(X,{className:"h-3 w-3"})]}),g!=="all"&&t.jsxs("button",{onClick:()=>O("all"),className:"flex items-center gap-1 px-2 py-1 text-xs font-medium rounded-full bg-amber-500/15 text-amber-600 dark:text-amber-400 hover:bg-amber-500/25 transition-colors whitespace-nowrap",children:[g," priority",t.jsx(X,{className:"h-3 w-3"})]}),(E!=="created"||b!=="desc")&&t.jsxs("button",{onClick:()=>{ne("created"),L("desc"),y({sortBy:null,order:null})},className:"flex items-center gap-1 px-2 py-1 text-xs font-medium rounded-full bg-purple-500/15 text-purple-600 dark:text-purple-400 hover:bg-purple-500/25 transition-colors whitespace-nowrap",children:[E," ",b==="asc"?"↑":"↓",t.jsx(X,{className:"h-3 w-3"})]})]}),t.jsxs("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:[a.length," result",a.length!==1?"s":""]})]}),G&&t.jsxs("div",{className:"p-4 rounded-lg border border-muted-foreground/20 bg-muted/30 space-y-4 animate-in slide-in-from-top-2 duration-200",children:[t.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:[t.jsxs("div",{className:"space-y-2",children:[t.jsx("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wide",children:"Status"}),t.jsxs(ie,{value:m,onValueChange:z,children:[t.jsx(ae,{className:"w-full bg-background",children:t.jsx(ce,{placeholder:"Filter by status"})}),t.jsxs(ue,{children:[t.jsx(w,{value:"active",children:"Active (Default)"}),t.jsx(w,{value:"all",children:"All statuses"}),t.jsx(w,{value:"draft",children:"Draft"}),t.jsx(w,{value:"proposed",children:"Proposed"}),t.jsx(w,{value:"in-review",children:"In Review"}),t.jsx(w,{value:"approved",children:"Approved"}),t.jsx(w,{value:"code-complete",children:"Code Complete"}),t.jsx(w,{value:"merged",children:"Merged"}),t.jsx(w,{value:"rejected",children:"Rejected"})]})]})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsx("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wide",children:"Priority"}),t.jsxs(ie,{value:g,onValueChange:O,children:[t.jsx(ae,{className:"w-full bg-background",children:t.jsx(ce,{placeholder:"Filter by priority"})}),t.jsxs(ue,{children:[t.jsx(w,{value:"all",children:"All priorities"}),t.jsx(w,{value:"low",children:"Low"}),t.jsx(w,{value:"medium",children:"Medium"}),t.jsx(w,{value:"high",children:"High"}),t.jsx(w,{value:"critical",children:"Critical"})]})]})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsx("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wide",children:"Sort By"}),t.jsxs(ie,{value:E,onValueChange:u=>ne(u),children:[t.jsx(ae,{className:"w-full bg-background",children:t.jsx(ce,{})}),t.jsxs(ue,{children:[t.jsx(w,{value:"created",children:"Created Date"}),t.jsx(w,{value:"updated",children:"Updated Date"}),t.jsx(w,{value:"status",children:"Status"}),t.jsx(w,{value:"priority",children:"Priority"}),t.jsx(w,{value:"intent",children:"Title"})]})]})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsx("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wide",children:"Order"}),t.jsx(V,{variant:"outline",onClick:D,className:"w-full justify-between bg-background",children:b==="asc"?t.jsxs(t.Fragment,{children:[t.jsx("span",{children:"Ascending"}),t.jsx(Ye,{className:"h-4 w-4"})]}):t.jsxs(t.Fragment,{children:[t.jsx("span",{children:"Descending"}),t.jsx(He,{className:"h-4 w-4"})]})})]})]}),k>0&&t.jsx("div",{className:"pt-2 border-t border-muted-foreground/10",children:t.jsxs(V,{variant:"ghost",size:"sm",onClick:()=>{z("active"),O("all"),I("")},className:"text-muted-foreground hover:text-foreground",children:[t.jsx(X,{className:"h-3 w-3 mr-1"}),"Reset all filters"]})})]})]}),a.length===0&&n.length>0?t.jsx(J,{children:t.jsx(Z,{className:"pt-6",children:t.jsxs("div",{className:"text-center py-6",children:[t.jsx(Ae,{className:"mx-auto h-12 w-12 text-muted-foreground/50"}),t.jsx("h3",{className:"mt-4 text-lg font-semibold",children:"No proposals match your filters"}),t.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:"Try adjusting your status or priority filters."}),t.jsx(V,{variant:"outline",className:"mt-4",onClick:()=>{z("active"),O("all"),I("")},children:"Clear Filters"})]})})}):n.length===0?t.jsx(J,{children:t.jsx(Z,{className:"pt-6",children:t.jsxs("div",{className:"text-center py-6",children:[t.jsx(Ke,{className:"mx-auto h-12 w-12 text-muted-foreground/50"}),t.jsx("h3",{className:"mt-4 text-lg font-semibold",children:"No proposals yet"}),t.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:"Create your first change proposal to get started."}),t.jsx(V,{asChild:!0,className:"mt-4",children:t.jsxs(Y,{to:"/proposals/new",children:[t.jsx(ee,{className:"mr-2 h-4 w-4"}),"New Proposal"]})})]})})}):t.jsx("div",{className:"space-y-4",children:a.map(u=>t.jsx(Y,{to:`/proposals/${u.id}`,className:"block",children:t.jsx(J,{className:"hover:shadow-md hover:bg-muted/30 transition-all cursor-pointer",children:t.jsx(Z,{className:"py-4",children:t.jsx("div",{className:"flex justify-between items-start gap-4",children:t.jsxs("div",{className:"flex-1 space-y-2",children:[t.jsxs("div",{className:"flex items-start justify-between",children:[t.jsx(We,{className:"text-base leading-tight",children:u.intent}),t.jsxs("div",{className:"flex gap-1 ml-3 flex-shrink-0",children:[u.metadata.priority&&t.jsx(q,{variant:Pt(u.metadata.priority),className:"text-xs",children:u.metadata.priority}),t.jsx(q,{variant:Rt(u.status),className:"text-xs",children:u.status})]})]}),u.content&&t.jsxs("div",{className:"text-sm text-muted-foreground leading-relaxed",children:[u.content.split(`
16
+ */const Xe=[["path",{d:"M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z",key:"sc7q7i"}]],Ae=xe("funnel",Xe);function T(s){return Array.isArray?Array.isArray(s):be(s)==="[object Array]"}function Je(s){if(typeof s=="string")return s;let e=s+"";return e=="0"&&1/s==-1/0?"-0":e}function Ze(s){return s==null?"":Je(s)}function R(s){return typeof s=="string"}function ve(s){return typeof s=="number"}function qe(s){return s===!0||s===!1||et(s)&&be(s)=="[object Boolean]"}function Ee(s){return typeof s=="object"}function et(s){return Ee(s)&&s!==null}function k(s){return s!=null}function le(s){return!s.trim().length}function be(s){return s==null?s===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(s)}const tt="Incorrect 'index' type",st=s=>`Invalid value for key ${s}`,rt=s=>`Pattern length exceeds max of ${s}.`,nt=s=>`Missing ${s} property in key`,it=s=>`Property 'weight' in key '${s}' must be a positive integer`,je=Object.prototype.hasOwnProperty;class at{constructor(e){this._keys=[],this._keyMap={};let r=0;e.forEach(n=>{let i=Fe(n);this._keys.push(i),this._keyMap[i.id]=i,r+=i.weight}),this._keys.forEach(n=>{n.weight/=r})}get(e){return this._keyMap[e]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function Fe(s){let e=null,r=null,n=null,i=1,a=null;if(R(s)||T(s))n=s,e=ye(s),r=oe(s);else{if(!je.call(s,"name"))throw new Error(nt("name"));const c=s.name;if(n=c,je.call(s,"weight")&&(i=s.weight,i<=0))throw new Error(it(c));e=ye(c),r=oe(c),a=s.getFn}return{path:e,id:r,weight:i,src:n,getFn:a}}function ye(s){return T(s)?s:s.split(".")}function oe(s){return T(s)?s.join("."):s}function ct(s,e){let r=[],n=!1;const i=(a,c,l)=>{if(k(a))if(!c[l])r.push(a);else{let o=c[l];const h=a[o];if(!k(h))return;if(l===c.length-1&&(R(h)||ve(h)||qe(h)))r.push(Ze(h));else if(T(h)){n=!0;for(let d=0,m=h.length;d<m;d+=1)i(h[d],c,l+1)}else c.length&&i(h,c,l+1)}};return i(s,R(e)?e.split("."):e,0),n?r:r[0]}const ut={includeMatches:!1,findAllMatches:!1,minMatchCharLength:1},lt={isCaseSensitive:!1,ignoreDiacritics:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:(s,e)=>s.score===e.score?s.idx<e.idx?-1:1:s.score<e.score?-1:1},ot={location:0,threshold:.6,distance:100},ht={useExtendedSearch:!1,getFn:ct,ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1};var f={...lt,...ut,...ot,...ht};const dt=/[^ ]+/g;function ft(s=1,e=3){const r=new Map,n=Math.pow(10,e);return{get(i){const a=i.match(dt).length;if(r.has(a))return r.get(a);const c=1/Math.pow(a,.5*s),l=parseFloat(Math.round(c*n)/n);return r.set(a,l),l},clear(){r.clear()}}}class pe{constructor({getFn:e=f.getFn,fieldNormWeight:r=f.fieldNormWeight}={}){this.norm=ft(r,3),this.getFn=e,this.isCreated=!1,this.setIndexRecords()}setSources(e=[]){this.docs=e}setIndexRecords(e=[]){this.records=e}setKeys(e=[]){this.keys=e,this._keysMap={},e.forEach((r,n)=>{this._keysMap[r.id]=n})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,R(this.docs[0])?this.docs.forEach((e,r)=>{this._addString(e,r)}):this.docs.forEach((e,r)=>{this._addObject(e,r)}),this.norm.clear())}add(e){const r=this.size();R(e)?this._addString(e,r):this._addObject(e,r)}removeAt(e){this.records.splice(e,1);for(let r=e,n=this.size();r<n;r+=1)this.records[r].i-=1}getValueForItemAtKeyId(e,r){return e[this._keysMap[r]]}size(){return this.records.length}_addString(e,r){if(!k(e)||le(e))return;let n={v:e,i:r,n:this.norm.get(e)};this.records.push(n)}_addObject(e,r){let n={i:r,$:{}};this.keys.forEach((i,a)=>{let c=i.getFn?i.getFn(e):this.getFn(e,i.path);if(k(c)){if(T(c)){let l=[];const o=[{nestedArrIndex:-1,value:c}];for(;o.length;){const{nestedArrIndex:h,value:d}=o.pop();if(k(d))if(R(d)&&!le(d)){let m={v:d,i:h,n:this.norm.get(d)};l.push(m)}else T(d)&&d.forEach((m,x)=>{o.push({nestedArrIndex:x,value:m})})}n.$[a]=l}else if(R(c)&&!le(c)){let l={v:c,n:this.norm.get(c)};n.$[a]=l}}}),this.records.push(n)}toJSON(){return{keys:this.keys,records:this.records}}}function Me(s,e,{getFn:r=f.getFn,fieldNormWeight:n=f.fieldNormWeight}={}){const i=new pe({getFn:r,fieldNormWeight:n});return i.setKeys(s.map(Fe)),i.setSources(e),i.create(),i}function mt(s,{getFn:e=f.getFn,fieldNormWeight:r=f.fieldNormWeight}={}){const{keys:n,records:i}=s,a=new pe({getFn:e,fieldNormWeight:r});return a.setKeys(n),a.setIndexRecords(i),a}function te(s,{errors:e=0,currentLocation:r=0,expectedLocation:n=0,distance:i=f.distance,ignoreLocation:a=f.ignoreLocation}={}){const c=e/s.length;if(a)return c;const l=Math.abs(n-r);return i?c+l/i:l?1:c}function gt(s=[],e=f.minMatchCharLength){let r=[],n=-1,i=-1,a=0;for(let c=s.length;a<c;a+=1){let l=s[a];l&&n===-1?n=a:!l&&n!==-1&&(i=a-1,i-n+1>=e&&r.push([n,i]),n=-1)}return s[a-1]&&a-n>=e&&r.push([n,a-1]),r}const W=32;function xt(s,e,r,{location:n=f.location,distance:i=f.distance,threshold:a=f.threshold,findAllMatches:c=f.findAllMatches,minMatchCharLength:l=f.minMatchCharLength,includeMatches:o=f.includeMatches,ignoreLocation:h=f.ignoreLocation}={}){if(e.length>W)throw new Error(rt(W));const d=e.length,m=s.length,x=Math.max(0,Math.min(n,m));let g=a,A=x;const C=l>1||o,M=C?Array(m):[];let E;for(;(E=s.indexOf(e,A))>-1;){let F=te(e,{currentLocation:E,expectedLocation:x,distance:i,ignoreLocation:h});if(g=Math.min(F,g),A=E+d,C){let S=0;for(;S<d;)M[E+S]=1,S+=1}}A=-1;let _=[],b=1,L=d+m;const G=1<<d-1;for(let F=0;F<d;F+=1){let S=0,y=L;for(;S<y;)te(e,{errors:F,currentLocation:x+y,expectedLocation:x,distance:i,ignoreLocation:h})<=g?S=y:L=y,y=Math.floor((L-S)/2+S);L=y;let z=Math.max(1,x-y+1),O=c?m:Math.min(x+y,m)+d,I=Array(O+2);I[O+1]=(1<<F)-1;for(let D=O;D>=z;D-=1){let $=D-1,Q=r[s.charAt($)];if(C&&(M[$]=+!!Q),I[D]=(I[D+1]<<1|1)&Q,F&&(I[D]|=(_[D+1]|_[D])<<1|1|_[D+1]),I[D]&G&&(b=te(e,{errors:F,currentLocation:$,expectedLocation:x,distance:i,ignoreLocation:h}),b<=g)){if(g=b,A=$,A<=x)break;z=Math.max(1,2*x-A)}}if(te(e,{errors:F+1,currentLocation:x,expectedLocation:x,distance:i,ignoreLocation:h})>g)break;_=I}const H={isMatch:A>=0,score:Math.max(.001,b)};if(C){const F=gt(M,l);F.length?o&&(H.indices=F):H.isMatch=!1}return H}function pt(s){let e={};for(let r=0,n=s.length;r<n;r+=1){const i=s.charAt(r);e[i]=(e[i]||0)|1<<n-r-1}return e}const se=String.prototype.normalize?(s=>s.normalize("NFD").replace(/[\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u07FD\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D3-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u09FE\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0AFA-\u0AFF\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C04\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D00-\u0D03\u0D3B\u0D3C\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF7-\u1CF9\u1DC0-\u1DF9\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA8FF\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F]/g,"")):(s=>s);class De{constructor(e,{location:r=f.location,threshold:n=f.threshold,distance:i=f.distance,includeMatches:a=f.includeMatches,findAllMatches:c=f.findAllMatches,minMatchCharLength:l=f.minMatchCharLength,isCaseSensitive:o=f.isCaseSensitive,ignoreDiacritics:h=f.ignoreDiacritics,ignoreLocation:d=f.ignoreLocation}={}){if(this.options={location:r,threshold:n,distance:i,includeMatches:a,findAllMatches:c,minMatchCharLength:l,isCaseSensitive:o,ignoreDiacritics:h,ignoreLocation:d},e=o?e:e.toLowerCase(),e=h?se(e):e,this.pattern=e,this.chunks=[],!this.pattern.length)return;const m=(g,A)=>{this.chunks.push({pattern:g,alphabet:pt(g),startIndex:A})},x=this.pattern.length;if(x>W){let g=0;const A=x%W,C=x-A;for(;g<C;)m(this.pattern.substr(g,W),g),g+=W;if(A){const M=x-W;m(this.pattern.substr(M),M)}}else m(this.pattern,0)}searchIn(e){const{isCaseSensitive:r,ignoreDiacritics:n,includeMatches:i}=this.options;if(e=r?e:e.toLowerCase(),e=n?se(e):e,this.pattern===e){let C={isMatch:!0,score:0};return i&&(C.indices=[[0,e.length-1]]),C}const{location:a,distance:c,threshold:l,findAllMatches:o,minMatchCharLength:h,ignoreLocation:d}=this.options;let m=[],x=0,g=!1;this.chunks.forEach(({pattern:C,alphabet:M,startIndex:E})=>{const{isMatch:_,score:b,indices:L}=xt(e,C,M,{location:a+E,distance:c,threshold:l,findAllMatches:o,minMatchCharLength:h,includeMatches:i,ignoreLocation:d});_&&(g=!0),x+=b,_&&L&&(m=[...m,...L])});let A={isMatch:g,score:g?x/this.chunks.length:1};return g&&i&&(A.indices=m),A}}class K{constructor(e){this.pattern=e}static isMultiMatch(e){return Ce(e,this.multiRegex)}static isSingleMatch(e){return Ce(e,this.singleRegex)}search(){}}function Ce(s,e){const r=s.match(e);return r?r[1]:null}class At extends K{constructor(e){super(e)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(e){const r=e===this.pattern;return{isMatch:r,score:r?0:1,indices:[0,this.pattern.length-1]}}}class jt extends K{constructor(e){super(e)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(e){const n=e.indexOf(this.pattern)===-1;return{isMatch:n,score:n?0:1,indices:[0,e.length-1]}}}class yt extends K{constructor(e){super(e)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(e){const r=e.startsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,this.pattern.length-1]}}}class Ct extends K{constructor(e){super(e)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(e){const r=!e.startsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,e.length-1]}}}class wt extends K{constructor(e){super(e)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(e){const r=e.endsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[e.length-this.pattern.length,e.length-1]}}}class Nt extends K{constructor(e){super(e)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(e){const r=!e.endsWith(this.pattern);return{isMatch:r,score:r?0:1,indices:[0,e.length-1]}}}class Be extends K{constructor(e,{location:r=f.location,threshold:n=f.threshold,distance:i=f.distance,includeMatches:a=f.includeMatches,findAllMatches:c=f.findAllMatches,minMatchCharLength:l=f.minMatchCharLength,isCaseSensitive:o=f.isCaseSensitive,ignoreDiacritics:h=f.ignoreDiacritics,ignoreLocation:d=f.ignoreLocation}={}){super(e),this._bitapSearch=new De(e,{location:r,threshold:n,distance:i,includeMatches:a,findAllMatches:c,minMatchCharLength:l,isCaseSensitive:o,ignoreDiacritics:h,ignoreLocation:d})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(e){return this._bitapSearch.searchIn(e)}}class ke extends K{constructor(e){super(e)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(e){let r=0,n;const i=[],a=this.pattern.length;for(;(n=e.indexOf(this.pattern,r))>-1;)r=n+a,i.push([n,r-1]);const c=!!i.length;return{isMatch:c,score:c?0:1,indices:i}}}const he=[At,ke,yt,Ct,Nt,wt,jt,Be],we=he.length,vt=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,Et="|";function bt(s,e={}){return s.split(Et).map(r=>{let n=r.trim().split(vt).filter(a=>a&&!!a.trim()),i=[];for(let a=0,c=n.length;a<c;a+=1){const l=n[a];let o=!1,h=-1;for(;!o&&++h<we;){const d=he[h];let m=d.isMultiMatch(l);m&&(i.push(new d(m,e)),o=!0)}if(!o)for(h=-1;++h<we;){const d=he[h];let m=d.isSingleMatch(l);if(m){i.push(new d(m,e));break}}}return i})}const Ft=new Set([Be.type,ke.type]);class Mt{constructor(e,{isCaseSensitive:r=f.isCaseSensitive,ignoreDiacritics:n=f.ignoreDiacritics,includeMatches:i=f.includeMatches,minMatchCharLength:a=f.minMatchCharLength,ignoreLocation:c=f.ignoreLocation,findAllMatches:l=f.findAllMatches,location:o=f.location,threshold:h=f.threshold,distance:d=f.distance}={}){this.query=null,this.options={isCaseSensitive:r,ignoreDiacritics:n,includeMatches:i,minMatchCharLength:a,findAllMatches:l,ignoreLocation:c,location:o,threshold:h,distance:d},e=r?e:e.toLowerCase(),e=n?se(e):e,this.pattern=e,this.query=bt(this.pattern,this.options)}static condition(e,r){return r.useExtendedSearch}searchIn(e){const r=this.query;if(!r)return{isMatch:!1,score:1};const{includeMatches:n,isCaseSensitive:i,ignoreDiacritics:a}=this.options;e=i?e:e.toLowerCase(),e=a?se(e):e;let c=0,l=[],o=0;for(let h=0,d=r.length;h<d;h+=1){const m=r[h];l.length=0,c=0;for(let x=0,g=m.length;x<g;x+=1){const A=m[x],{isMatch:C,indices:M,score:E}=A.search(e);if(C){if(c+=1,o+=E,n){const _=A.constructor.type;Ft.has(_)?l=[...l,...M]:l.push(M)}}else{o=0,c=0,l.length=0;break}}if(c){let x={isMatch:!0,score:o/c};return n&&(x.indices=l),x}}return{isMatch:!1,score:1}}}const de=[];function Dt(...s){de.push(...s)}function fe(s,e){for(let r=0,n=de.length;r<n;r+=1){let i=de[r];if(i.condition(s,e))return new i(s,e)}return new De(s,e)}const re={AND:"$and",OR:"$or"},me={PATH:"$path",PATTERN:"$val"},ge=s=>!!(s[re.AND]||s[re.OR]),Bt=s=>!!s[me.PATH],kt=s=>!T(s)&&Ee(s)&&!ge(s),Ne=s=>({[re.AND]:Object.keys(s).map(e=>({[e]:s[e]}))});function Se(s,e,{auto:r=!0}={}){const n=i=>{let a=Object.keys(i);const c=Bt(i);if(!c&&a.length>1&&!ge(i))return n(Ne(i));if(kt(i)){const o=c?i[me.PATH]:a[0],h=c?i[me.PATTERN]:i[o];if(!R(h))throw new Error(st(o));const d={keyId:oe(o),pattern:h};return r&&(d.searcher=fe(h,e)),d}let l={children:[],operator:a[0]};return a.forEach(o=>{const h=i[o];T(h)&&h.forEach(d=>{l.children.push(n(d))})}),l};return ge(s)||(s=Ne(s)),n(s)}function St(s,{ignoreFieldNorm:e=f.ignoreFieldNorm}){s.forEach(r=>{let n=1;r.matches.forEach(({key:i,norm:a,score:c})=>{const l=i?i.weight:null;n*=Math.pow(c===0&&l?Number.EPSILON:c,(l||1)*(e?1:a))}),r.score=n})}function _t(s,e){const r=s.matches;e.matches=[],k(r)&&r.forEach(n=>{if(!k(n.indices)||!n.indices.length)return;const{indices:i,value:a}=n;let c={indices:i,value:a};n.key&&(c.key=n.key.src),n.idx>-1&&(c.refIndex=n.idx),e.matches.push(c)})}function It(s,e){e.score=s.score}function Lt(s,e,{includeMatches:r=f.includeMatches,includeScore:n=f.includeScore}={}){const i=[];return r&&i.push(_t),n&&i.push(It),s.map(a=>{const{idx:c}=a,l={item:e[c],refIndex:c};return i.length&&i.forEach(o=>{o(a,l)}),l})}class U{constructor(e,r={},n){this.options={...f,...r},this.options.useExtendedSearch,this._keyStore=new at(this.options.keys),this.setCollection(e,n)}setCollection(e,r){if(this._docs=e,r&&!(r instanceof pe))throw new Error(tt);this._myIndex=r||Me(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(e){k(e)&&(this._docs.push(e),this._myIndex.add(e))}remove(e=()=>!1){const r=[];for(let n=0,i=this._docs.length;n<i;n+=1){const a=this._docs[n];e(a,n)&&(this.removeAt(n),n-=1,i-=1,r.push(a))}return r}removeAt(e){this._docs.splice(e,1),this._myIndex.removeAt(e)}getIndex(){return this._myIndex}search(e,{limit:r=-1}={}){const{includeMatches:n,includeScore:i,shouldSort:a,sortFn:c,ignoreFieldNorm:l}=this.options;let o=R(e)?R(this._docs[0])?this._searchStringList(e):this._searchObjectList(e):this._searchLogical(e);return St(o,{ignoreFieldNorm:l}),a&&o.sort(c),ve(r)&&r>-1&&(o=o.slice(0,r)),Lt(o,this._docs,{includeMatches:n,includeScore:i})}_searchStringList(e){const r=fe(e,this.options),{records:n}=this._myIndex,i=[];return n.forEach(({v:a,i:c,n:l})=>{if(!k(a))return;const{isMatch:o,score:h,indices:d}=r.searchIn(a);o&&i.push({item:a,idx:c,matches:[{score:h,value:a,norm:l,indices:d}]})}),i}_searchLogical(e){const r=Se(e,this.options),n=(l,o,h)=>{if(!l.children){const{keyId:m,searcher:x}=l,g=this._findMatches({key:this._keyStore.get(m),value:this._myIndex.getValueForItemAtKeyId(o,m),searcher:x});return g&&g.length?[{idx:h,item:o,matches:g}]:[]}const d=[];for(let m=0,x=l.children.length;m<x;m+=1){const g=l.children[m],A=n(g,o,h);if(A.length)d.push(...A);else if(l.operator===re.AND)return[]}return d},i=this._myIndex.records,a={},c=[];return i.forEach(({$:l,i:o})=>{if(k(l)){let h=n(r,l,o);h.length&&(a[o]||(a[o]={idx:o,item:l,matches:[]},c.push(a[o])),h.forEach(({matches:d})=>{a[o].matches.push(...d)}))}}),c}_searchObjectList(e){const r=fe(e,this.options),{keys:n,records:i}=this._myIndex,a=[];return i.forEach(({$:c,i:l})=>{if(!k(c))return;let o=[];n.forEach((h,d)=>{o.push(...this._findMatches({key:h,value:c[d],searcher:r}))}),o.length&&a.push({idx:l,item:c,matches:o})}),a}_findMatches({key:e,value:r,searcher:n}){if(!k(r))return[];let i=[];if(T(r))r.forEach(({v:a,i:c,n:l})=>{if(!k(a))return;const{isMatch:o,score:h,indices:d}=n.searchIn(a);o&&i.push({score:h,key:e,value:a,idx:c,norm:l,indices:d})});else{const{v:a,n:c}=r,{isMatch:l,score:o,indices:h}=n.searchIn(a);l&&i.push({score:o,key:e,value:a,norm:c,indices:h})}return i}}U.version="7.1.0";U.createIndex=Me;U.parseIndex=mt;U.config=f;U.parseQuery=Se;Dt(Mt);function Rt(s){switch(s){case"approved":case"code-complete":return"default";case"in-review":return"secondary";case"rejected":return"destructive";default:return"outline"}}function Tt(s){switch(s){case"high":case"critical":return"destructive";case"medium":return"secondary";default:return"outline"}}function Vt(){const[s]=_e(),e=Ie(),r=Le(),[n,i]=j.useState([]),[a,c]=j.useState([]),[l,o]=j.useState(!0),[h,d]=j.useState(null),[m,x]=j.useState(s.get("status")||"active"),[g,A]=j.useState(s.get("priority")||"all"),[C,M]=j.useState(s.get("search")||""),[E,_]=j.useState(s.get("sortBy")||"created"),[b,L]=j.useState(s.get("order")||"desc"),[G,H]=j.useState(!1),F=j.useRef(null),S=[m!=="active",g!=="all",E!=="created",b!=="desc"].filter(Boolean).length,y=j.useCallback(u=>{const p=new URLSearchParams(s);Object.entries(u).forEach(([B,P])=>{P&&P!=="all"&&P!=="active"&&P!==""?p.set(B,P):p.delete(B)});const N=p.toString(),v=N?`?${N}`:"";e(`${r.pathname}${v}`)},[s,e,r.pathname]),z=j.useCallback(u=>{x(u),y({status:u==="active"?null:u})},[y]),O=j.useCallback(u=>{A(u),y({priority:u==="all"?null:u})},[y]),I=j.useCallback(u=>{M(u),y({search:u||null})},[y]),ne=j.useCallback(u=>{_(u),y({sortBy:u==="created"?null:u})},[y]),D=j.useCallback(()=>{const u=b==="asc"?"desc":"asc";L(u),y({order:u==="desc"?null:u})},[b,y]),$=j.useCallback(u=>{if(u.key==="s"||u.key==="S"){const p=document.activeElement;p?.tagName==="INPUT"||p?.tagName==="TEXTAREA"||p?.getAttribute("contenteditable")==="true"||(u.preventDefault(),F.current?.focus())}},[]);j.useEffect(()=>(document.addEventListener("keydown",$),()=>{document.removeEventListener("keydown",$)}),[$]);const Q=j.useMemo(()=>{const u={keys:[{name:"intent",weight:.4},{name:"id",weight:.3},{name:"author.name",weight:.2},{name:"metadata.tags",weight:.1}],threshold:.3,includeScore:!0};return new U(n,u)},[n]);return j.useEffect(()=>{async function u(){try{o(!0);const N=await(await fetch(`${ze}/api/v1/proposals`)).json();N.success?(i(N.data),c(N.data)):d(N.error?.message||"Failed to fetch proposals")}catch(p){d(p instanceof Error?p.message:"Unknown error")}finally{o(!1)}}u()},[]),j.useEffect(()=>{let u=n;if(m==="active"?u=u.filter(p=>["draft","proposed","in-review","approved","code-complete"].includes(p.status)):m==="approved"?u=u.filter(p=>["approved","code-complete"].includes(p.status)):m!=="all"&&(u=u.filter(p=>p.status===m)),g!=="all"&&(u=u.filter(p=>p.metadata.priority===g)),C.trim()){const p=Q.search(C),N=new Set(p.map(v=>v.item.id));u=u.filter(v=>N.has(v.id))}u=u.sort((p,N)=>{let v,B;switch(E){case"created":{v=new Date(p.metadata.createdAt).getTime(),B=new Date(N.metadata.createdAt).getTime();break}case"updated":{v=new Date(p.metadata.updatedAt).getTime(),B=new Date(N.metadata.updatedAt).getTime();break}case"status":{v=p.status,B=N.status;break}case"priority":{const P={critical:4,high:3,medium:2,low:1};v=P[p.metadata.priority]||0,B=P[N.metadata.priority]||0;break}case"intent":{v=p.intent.toLowerCase(),B=N.intent.toLowerCase();break}default:v=new Date(p.metadata.createdAt).getTime(),B=new Date(N.metadata.createdAt).getTime()}return b==="asc"?v<B?-1:v>B?1:0:v>B?-1:v<B?1:0}),c(u)},[n,m,g,C,E,b,Q]),l?t.jsxs("div",{className:"space-y-6",children:[t.jsxs("div",{className:"flex justify-between items-center",children:[t.jsxs("div",{children:[t.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:"Tasks"}),t.jsx("p",{className:"text-muted-foreground",children:"Manage tasks for your project"})]}),t.jsx(V,{asChild:!0,children:t.jsxs(Y,{to:"/proposals/new",children:[t.jsx(ee,{className:"mr-2 h-4 w-4"}),"New Task"]})})]}),t.jsx("div",{className:"space-y-4",children:[...Array(3)].map((u,p)=>t.jsx(J,{children:t.jsx(Ve,{children:t.jsxs("div",{className:"flex justify-between items-start",children:[t.jsxs("div",{className:"space-y-2",children:[t.jsx("div",{className:"h-6 bg-muted rounded w-3/4 animate-pulse"}),t.jsx("div",{className:"h-4 bg-muted rounded w-1/2 animate-pulse"})]}),t.jsx("div",{className:"h-6 bg-muted rounded w-20 animate-pulse"})]})})},p))})]}):h?t.jsxs("div",{className:"space-y-6",children:[t.jsxs("div",{className:"flex justify-between items-center",children:[t.jsxs("div",{children:[t.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:"Tasks"}),t.jsx("p",{className:"text-muted-foreground",children:"Manage tasks for your project"})]}),t.jsx(V,{asChild:!0,children:t.jsxs(Y,{to:"/proposals/new",children:[t.jsx(ee,{className:"mr-2 h-4 w-4"}),"New Task"]})})]}),t.jsx(J,{children:t.jsx(Z,{className:"pt-6",children:t.jsx("div",{className:"text-center",children:t.jsxs("p",{className:"text-destructive",children:["Error: ",h]})})})})]}):t.jsxs("div",{className:"space-y-6",children:[t.jsxs("div",{className:"flex justify-between items-center",children:[t.jsxs("div",{children:[t.jsx("h2",{className:"text-2xl font-bold tracking-tight",children:"Tasks"}),t.jsx("p",{className:"text-muted-foreground",children:"Manage tasks for your project"})]}),t.jsx(V,{asChild:!0,children:t.jsxs(Y,{to:"/proposals/new",children:[t.jsx(ee,{className:"mr-2 h-4 w-4"}),"New Task"]})})]}),t.jsxs("div",{className:"space-y-3",children:[t.jsxs("div",{className:"relative",children:[t.jsx(Ue,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground pointer-events-none"}),t.jsx(Re,{ref:F,placeholder:"Search tasks...",value:C,onChange:u=>I(u.target.value),className:"pl-9 pr-20 h-11 bg-muted/40 border-muted-foreground/20 focus:bg-background transition-colors"}),t.jsx("div",{className:"absolute right-3 top-1/2 -translate-y-1/2 flex items-center gap-2",children:C?t.jsx("button",{onClick:()=>I(""),className:"h-5 w-5 rounded-full bg-muted-foreground/20 hover:bg-muted-foreground/30 flex items-center justify-center transition-colors",children:t.jsx(X,{className:"h-3 w-3"})}):t.jsx(Te,{children:t.jsx(Oe,{children:"S"})})})]}),t.jsxs("div",{className:"flex items-center gap-2",children:[t.jsxs("button",{onClick:()=>H(!G),className:"flex items-center gap-2 px-3 py-2 text-sm font-medium rounded-lg border border-muted-foreground/20 hover:bg-muted/50 transition-colors",children:[t.jsx(Ae,{className:"h-4 w-4"}),t.jsx("span",{className:"hidden sm:inline",children:"Filters & Sort"}),t.jsx("span",{className:"sm:hidden",children:"Filters"}),S>0&&t.jsx("span",{className:"flex items-center justify-center h-5 w-5 text-xs font-bold rounded-full bg-primary text-primary-foreground",children:S}),G?t.jsx($e,{className:"h-4 w-4 ml-1"}):t.jsx(Pe,{className:"h-4 w-4 ml-1"})]}),t.jsxs("div",{className:"flex-1 flex items-center gap-2 overflow-x-auto scrollbar-hide",children:[m!=="active"&&t.jsxs("button",{onClick:()=>z("active"),className:"flex items-center gap-1 px-2 py-1 text-xs font-medium rounded-full bg-blue-500/15 text-blue-600 dark:text-blue-400 hover:bg-blue-500/25 transition-colors whitespace-nowrap",children:[m,t.jsx(X,{className:"h-3 w-3"})]}),g!=="all"&&t.jsxs("button",{onClick:()=>O("all"),className:"flex items-center gap-1 px-2 py-1 text-xs font-medium rounded-full bg-amber-500/15 text-amber-600 dark:text-amber-400 hover:bg-amber-500/25 transition-colors whitespace-nowrap",children:[g," priority",t.jsx(X,{className:"h-3 w-3"})]}),(E!=="created"||b!=="desc")&&t.jsxs("button",{onClick:()=>{ne("created"),L("desc"),y({sortBy:null,order:null})},className:"flex items-center gap-1 px-2 py-1 text-xs font-medium rounded-full bg-purple-500/15 text-purple-600 dark:text-purple-400 hover:bg-purple-500/25 transition-colors whitespace-nowrap",children:[E," ",b==="asc"?"↑":"↓",t.jsx(X,{className:"h-3 w-3"})]})]}),t.jsxs("span",{className:"text-xs text-muted-foreground whitespace-nowrap",children:[a.length," result",a.length!==1?"s":""]})]}),G&&t.jsxs("div",{className:"p-4 rounded-lg border border-muted-foreground/20 bg-muted/30 space-y-4 animate-in slide-in-from-top-2 duration-200",children:[t.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:[t.jsxs("div",{className:"space-y-2",children:[t.jsx("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wide",children:"Status"}),t.jsxs(ie,{value:m,onValueChange:z,children:[t.jsx(ae,{className:"w-full bg-background",children:t.jsx(ce,{placeholder:"Filter by status"})}),t.jsxs(ue,{children:[t.jsx(w,{value:"active",children:"Active (Default)"}),t.jsx(w,{value:"all",children:"All statuses"}),t.jsx(w,{value:"draft",children:"Draft"}),t.jsx(w,{value:"proposed",children:"Proposed"}),t.jsx(w,{value:"in-review",children:"In Review"}),t.jsx(w,{value:"approved",children:"Approved"}),t.jsx(w,{value:"code-complete",children:"Code Complete"}),t.jsx(w,{value:"merged",children:"Merged"}),t.jsx(w,{value:"rejected",children:"Rejected"})]})]})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsx("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wide",children:"Priority"}),t.jsxs(ie,{value:g,onValueChange:O,children:[t.jsx(ae,{className:"w-full bg-background",children:t.jsx(ce,{placeholder:"Filter by priority"})}),t.jsxs(ue,{children:[t.jsx(w,{value:"all",children:"All priorities"}),t.jsx(w,{value:"low",children:"Low"}),t.jsx(w,{value:"medium",children:"Medium"}),t.jsx(w,{value:"high",children:"High"}),t.jsx(w,{value:"critical",children:"Critical"})]})]})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsx("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wide",children:"Sort By"}),t.jsxs(ie,{value:E,onValueChange:u=>ne(u),children:[t.jsx(ae,{className:"w-full bg-background",children:t.jsx(ce,{})}),t.jsxs(ue,{children:[t.jsx(w,{value:"created",children:"Created Date"}),t.jsx(w,{value:"updated",children:"Updated Date"}),t.jsx(w,{value:"status",children:"Status"}),t.jsx(w,{value:"priority",children:"Priority"}),t.jsx(w,{value:"intent",children:"Title"})]})]})]}),t.jsxs("div",{className:"space-y-2",children:[t.jsx("label",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wide",children:"Order"}),t.jsx(V,{variant:"outline",onClick:D,className:"w-full justify-between bg-background",children:b==="asc"?t.jsxs(t.Fragment,{children:[t.jsx("span",{children:"Ascending"}),t.jsx(Ye,{className:"h-4 w-4"})]}):t.jsxs(t.Fragment,{children:[t.jsx("span",{children:"Descending"}),t.jsx(He,{className:"h-4 w-4"})]})})]})]}),S>0&&t.jsx("div",{className:"pt-2 border-t border-muted-foreground/10",children:t.jsxs(V,{variant:"ghost",size:"sm",onClick:()=>{z("active"),O("all"),I("")},className:"text-muted-foreground hover:text-foreground",children:[t.jsx(X,{className:"h-3 w-3 mr-1"}),"Reset all filters"]})})]})]}),a.length===0&&n.length>0?t.jsx(J,{children:t.jsx(Z,{className:"pt-6",children:t.jsxs("div",{className:"text-center py-6",children:[t.jsx(Ae,{className:"mx-auto h-12 w-12 text-muted-foreground/50"}),t.jsx("h3",{className:"mt-4 text-lg font-semibold",children:"No proposals match your filters"}),t.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:"Try adjusting your status or priority filters."}),t.jsx(V,{variant:"outline",className:"mt-4",onClick:()=>{z("active"),O("all"),I("")},children:"Clear Filters"})]})})}):n.length===0?t.jsx(J,{children:t.jsx(Z,{className:"pt-6",children:t.jsxs("div",{className:"text-center py-6",children:[t.jsx(Ke,{className:"mx-auto h-12 w-12 text-muted-foreground/50"}),t.jsx("h3",{className:"mt-4 text-lg font-semibold",children:"No proposals yet"}),t.jsx("p",{className:"mt-2 text-sm text-muted-foreground",children:"Create your first change proposal to get started."}),t.jsx(V,{asChild:!0,className:"mt-4",children:t.jsxs(Y,{to:"/proposals/new",children:[t.jsx(ee,{className:"mr-2 h-4 w-4"}),"New Task"]})})]})})}):t.jsx("div",{className:"space-y-4",children:a.map(u=>t.jsx(Y,{to:`/proposals/${u.id}`,className:"block",children:t.jsx(J,{className:"hover:shadow-md hover:bg-muted/30 transition-all cursor-pointer",children:t.jsx(Z,{className:"py-4",children:t.jsx("div",{className:"flex justify-between items-start gap-4",children:t.jsxs("div",{className:"flex-1 space-y-2",children:[t.jsxs("div",{className:"flex items-start justify-between",children:[t.jsx(We,{className:"text-base leading-tight",children:u.intent}),t.jsxs("div",{className:"flex gap-1 ml-3 flex-shrink-0",children:[u.metadata.priority&&t.jsx(q,{variant:Tt(u.metadata.priority),className:"text-xs",children:u.metadata.priority}),t.jsx(q,{variant:Rt(u.status),className:"text-xs",children:u.status})]})]}),u.content&&t.jsxs("div",{className:"text-sm text-muted-foreground leading-relaxed",children:[u.content.split(`
17
17
  `).slice(0,2).join(" ").substring(0,150),u.content.length>150?"...":""]}),t.jsxs("div",{className:"flex justify-between items-center",children:[t.jsxs("div",{className:"text-xs text-muted-foreground",children:[u.id," • by ",u.author.name," • ",new Date(u.metadata.createdAt).toLocaleDateString()]}),t.jsxs("div",{className:"flex gap-3 text-xs text-muted-foreground",children:[u.planSteps.length>0&&t.jsxs("span",{children:[u.planSteps.length," step",u.planSteps.length!==1?"s":""]}),u.evidence.length>0&&t.jsxs("span",{children:[u.evidence.length," evidence"]}),u.metadata.tags&&u.metadata.tags.length>0&&t.jsxs("span",{children:[u.metadata.tags.length," tag",u.metadata.tags.length!==1?"s":""]})]})]}),u.metadata.tags&&u.metadata.tags.length>0&&t.jsxs("div",{className:"flex gap-1 mt-2",children:[u.metadata.tags.slice(0,3).map(p=>t.jsx(q,{variant:"outline",className:"text-xs",children:p},p)),u.metadata.tags.length>3&&t.jsxs(q,{variant:"outline",className:"text-xs",children:["+",u.metadata.tags.length-3]})]})]})})})})},u.id))})]})}export{Vt as default};