@runfusion/fusion 0.52.0 → 0.53.1

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 (295) hide show
  1. package/dist/bin.js +3064 -2337
  2. package/dist/client/.vite/manifest.json +248 -248
  3. package/dist/client/assets/{AgentDetailView-C-PM8cwG.js → AgentDetailView-DYiAlisV.js} +3 -3
  4. package/dist/client/assets/AgentPermissionPolicyEditor-CMtzKP_x.js +6 -0
  5. package/dist/client/assets/AgentPermissionPolicyEditor-TpdlOWZW.css +1 -0
  6. package/dist/client/assets/{AgentsView-DJJO0laF.js → AgentsView-YfJlxZoN.js} +3 -3
  7. package/dist/client/assets/ChatView-Diuc5LOe.js +6 -0
  8. package/dist/client/assets/{CommandCenter-CKvo0MuO.js → CommandCenter-CIwFDUKg.js} +2 -2
  9. package/dist/client/assets/{DevServerView-BHLG4Mxg.js → DevServerView-DDRHfATy.js} +1 -1
  10. package/dist/client/assets/{DirectoryPicker-CRY-rpnj.js → DirectoryPicker-C6HRGnSQ.js} +1 -1
  11. package/dist/client/assets/{DocumentsView-DhC4dnXD.js → DocumentsView-C5RTxVSE.js} +1 -1
  12. package/dist/client/assets/{EvalsView-DsnLOVZB.js → EvalsView-B9DCS8sV.js} +1 -1
  13. package/dist/client/assets/{ExperimentalAgentOnboardingModal-B4iFX60E.js → ExperimentalAgentOnboardingModal-DGmpwghz.js} +1 -1
  14. package/dist/client/assets/{GoalsView-D5bzq6W9.js → GoalsView-B2hr3p6f.js} +1 -1
  15. package/dist/client/assets/{InsightsView-Drpu72M4.js → InsightsView-DM3eYN2S.js} +1 -1
  16. package/dist/client/assets/{MemoryView-auLBP3UW.js → MemoryView-8Yg8r9qS.js} +1 -1
  17. package/dist/client/assets/{PiExtensionsManager-RlbkXf_t.js → PiExtensionsManager-DbZ5qtAF.js} +1 -1
  18. package/dist/client/assets/{PluginManager-BJMUacpG.js → PluginManager-C1YuxOWu.js} +1 -1
  19. package/dist/client/assets/{PullRequestView-344B9WF-.js → PullRequestView-CMVvVGaP.js} +1 -1
  20. package/dist/client/assets/{ResearchView-BNqt-f53.js → ResearchView-BjvgxMjL.js} +1 -1
  21. package/dist/client/assets/{SecretsView-Be8Tm8It.js → SecretsView-gChNSW57.js} +1 -1
  22. package/dist/client/assets/SessionTerminal-BSeQ5i5F.js +2 -0
  23. package/dist/client/assets/SettingsModal-CQuHnNXu.js +21 -0
  24. package/dist/client/assets/{SettingsModal-B28DuhaN.js → SettingsModal-_04cEhgW.js} +1 -1
  25. package/dist/client/assets/{SetupWizardModal-y2j9aZoi.js → SetupWizardModal-Dk9VO68p.js} +2 -2
  26. package/dist/client/assets/ShadcnColorPicker-3OgfenMo.css +1 -0
  27. package/dist/client/assets/ShadcnColorPicker-DyPMec2U.js +11 -0
  28. package/dist/client/assets/{SkillsView-HQp7UTdA.js → SkillsView-BAMinq2_.js} +1 -1
  29. package/dist/client/assets/{TodoView-DF7_qWGH.js → TodoView-DaXGwdTQ.js} +1 -1
  30. package/dist/client/assets/WorkflowNodeEditor-DmJI-3Qp.js +8 -0
  31. package/dist/client/assets/{agentSkills-Cy_HrYHd.js → agentSkills-B_n4hPLc.js} +1 -1
  32. package/dist/client/assets/app-5S4z84u5.js +13 -0
  33. package/dist/client/assets/app-B1VYocx2.js +13 -0
  34. package/dist/client/assets/app-BhtYYxin.js +13 -0
  35. package/dist/client/assets/app-Cts0__Vx.js +13 -0
  36. package/dist/client/assets/app-DczBmsP4.js +13 -0
  37. package/dist/client/assets/app-_GFUqcMK.js +13 -0
  38. package/dist/client/assets/{architectureDiagram-3BPJPVTR-4ur4sxlr.js → architectureDiagram-3BPJPVTR-DysoZtiI.js} +1 -1
  39. package/dist/client/assets/{blockDiagram-GPEHLZMM-BgZeqq_q.js → blockDiagram-GPEHLZMM-DpwJlK7i.js} +1 -1
  40. package/dist/client/assets/{c4Diagram-AAUBKEIU-BQtdOIrm.js → c4Diagram-AAUBKEIU-DV115Z4B.js} +1 -1
  41. package/dist/client/assets/channel-BgnsK1mp.js +1 -0
  42. package/dist/client/assets/{chunk-2J33WTMH-C1k1PBy1.js → chunk-2J33WTMH-B5BtZWCx.js} +1 -1
  43. package/dist/client/assets/{chunk-4BX2VUAB-hNujwvSn.js → chunk-4BX2VUAB-CJvgQM9e.js} +1 -1
  44. package/dist/client/assets/{chunk-55IACEB6-CnXV9LyI.js → chunk-55IACEB6-ClrKLhVZ.js} +1 -1
  45. package/dist/client/assets/{chunk-727SXJPM-B-ocMdYN.js → chunk-727SXJPM-DhfUMdP5.js} +1 -1
  46. package/dist/client/assets/{chunk-AQP2D5EJ-CWNRUL6C.js → chunk-AQP2D5EJ-CGKqiWfs.js} +1 -1
  47. package/dist/client/assets/{chunk-FMBD7UC4-DerrCiYe.js → chunk-FMBD7UC4-sLs4-jLA.js} +1 -1
  48. package/dist/client/assets/{chunk-ND2GUHAM-BfcSPlX-.js → chunk-ND2GUHAM-BaptHWZM.js} +1 -1
  49. package/dist/client/assets/{chunk-QZHKN3VN-BaWScAds.js → chunk-QZHKN3VN-CArEOzHE.js} +1 -1
  50. package/dist/client/assets/classDiagram-4FO5ZUOK-ZkHxi9su.js +1 -0
  51. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-ZkHxi9su.js +1 -0
  52. package/dist/client/assets/{cose-bilkent-S5V4N54A-n0Oeinz2.js → cose-bilkent-S5V4N54A-DZ4jAfQc.js} +1 -1
  53. package/dist/client/assets/{dagre-BM42HDAG-CUtehSt2.js → dagre-BM42HDAG-CMhtRslH.js} +1 -1
  54. package/dist/client/assets/{dashboard-view-BW3GHqgb.js → dashboard-view-Bc5cz2DG.js} +1 -1
  55. package/dist/client/assets/{dashboard-view-DWKCxtr5.js → dashboard-view-Buq7raMZ.js} +1 -1
  56. package/dist/client/assets/{diagram-2AECGRRQ-Bz4aOzhR.js → diagram-2AECGRRQ-6uVCJGM-.js} +1 -1
  57. package/dist/client/assets/{diagram-5GNKFQAL-UoxIMwPf.js → diagram-5GNKFQAL-fRigQDqm.js} +1 -1
  58. package/dist/client/assets/{diagram-KO2AKTUF-BYR7hloS.js → diagram-KO2AKTUF-DeLeKk1C.js} +1 -1
  59. package/dist/client/assets/{diagram-LMA3HP47-BR9MaP8U.js → diagram-LMA3HP47-BVRY5C4e.js} +1 -1
  60. package/dist/client/assets/{diagram-OG6HWLK6-BOfldYHv.js → diagram-OG6HWLK6-DdP1xMRM.js} +1 -1
  61. package/dist/client/assets/{erDiagram-TEJ5UH35-B8x9mfOs.js → erDiagram-TEJ5UH35-BU5DG9IX.js} +1 -1
  62. package/dist/client/assets/{flowDiagram-I6XJVG4X-DBnTroCV.js → flowDiagram-I6XJVG4X-CFSihB_T.js} +1 -1
  63. package/dist/client/assets/{folder-open-CFze34Eq.js → folder-open-CV5ek-IV.js} +1 -1
  64. package/dist/client/assets/{ganttDiagram-6RSMTGT7-BfzFy7iz.js → ganttDiagram-6RSMTGT7-BFVLXtHC.js} +1 -1
  65. package/dist/client/assets/{gitGraphDiagram-PVQCEYII-CNTFu6IY.js → gitGraphDiagram-PVQCEYII-TiwSURa4.js} +1 -1
  66. package/dist/client/assets/index-CEUULqTR.js +1336 -0
  67. package/dist/client/assets/index-D1IHwGhg.css +1 -0
  68. package/dist/client/assets/{infoDiagram-5YYISTIA-DJiBRaAl.js → infoDiagram-5YYISTIA-Drkf3o26.js} +1 -1
  69. package/dist/client/assets/{ishikawaDiagram-YF4QCWOH-CIY9t4cc.js → ishikawaDiagram-YF4QCWOH-a9ZSlbx2.js} +1 -1
  70. package/dist/client/assets/{journeyDiagram-JHISSGLW-HLMZmcjY.js → journeyDiagram-JHISSGLW-DF_3fPPW.js} +1 -1
  71. package/dist/client/assets/{kanban-definition-UN3LZRKU-x9nKoxCI.js → kanban-definition-UN3LZRKU-B6dXVyXh.js} +1 -1
  72. package/dist/client/assets/{mermaid.core-pHkdB6fb.js → mermaid.core-BGFpwAba.js} +4 -4
  73. package/dist/client/assets/{mindmap-definition-RKZ34NQL-Bs_4Tofu.js → mindmap-definition-RKZ34NQL-D5bZ0zCy.js} +1 -1
  74. package/dist/client/assets/{pieDiagram-4H26LBE5-BGHz9JGZ.js → pieDiagram-4H26LBE5-Dh6rUd7R.js} +1 -1
  75. package/dist/client/assets/{quadrantDiagram-W4KKPZXB-xHSR7cAR.js → quadrantDiagram-W4KKPZXB-D9Fy6Nl1.js} +1 -1
  76. package/dist/client/assets/{requirementDiagram-4Y6WPE33-D7YMNM44.js → requirementDiagram-4Y6WPE33-Bky271Dr.js} +1 -1
  77. package/dist/client/assets/{sankeyDiagram-5OEKKPKP-OAXuab3Y.js → sankeyDiagram-5OEKKPKP-Cs9Bx7N3.js} +1 -1
  78. package/dist/client/assets/{sequenceDiagram-3UESZ5HK-BZCjKFVL.js → sequenceDiagram-3UESZ5HK-BV7DAI0_.js} +1 -1
  79. package/dist/client/assets/{shield-alert-BBK8Risa.js → shield-alert-BEwCrI8k.js} +1 -1
  80. package/dist/client/assets/{stateDiagram-AJRCARHV-COnJQqA4.js → stateDiagram-AJRCARHV-CTvWoU00.js} +1 -1
  81. package/dist/client/assets/{stateDiagram-v2-BHNVJYJU-Diml4Nhm.js → stateDiagram-v2-BHNVJYJU-ZSZ46LWU.js} +1 -1
  82. package/dist/client/assets/{timeline-definition-PNZ67QCA-DHIKvV9L.js → timeline-definition-PNZ67QCA-DSJscSa7.js} +1 -1
  83. package/dist/client/assets/{upload-CqUJUdZW.js → upload-CNW5goS6.js} +1 -1
  84. package/dist/client/assets/{users-CAE-FEzI.js → users-BhzdPkLN.js} +1 -1
  85. package/dist/client/assets/{vennDiagram-CIIHVFJN-o9AxLDoL.js → vennDiagram-CIIHVFJN-CziD-NoU.js} +1 -1
  86. package/dist/client/assets/{wardley-L42UT6IY-B7MIazje.js → wardley-L42UT6IY-Bt1vdMb3.js} +1 -1
  87. package/dist/client/assets/{wardleyDiagram-YWT4CUSO-B6qUJx0N.js → wardleyDiagram-YWT4CUSO-B_Dlx683.js} +1 -1
  88. package/dist/client/assets/{xychartDiagram-2RQKCTM6-13mSXuCA.js → xychartDiagram-2RQKCTM6-cYDRrhyM.js} +1 -1
  89. package/dist/client/index.html +3 -3
  90. package/dist/client/theme-data.css +156 -0
  91. package/dist/client/version.json +1 -1
  92. package/dist/desktop/client/.vite/manifest.json +1652 -0
  93. package/dist/desktop/client/assets/AgentDetailView-BzSyldiW.css +1 -0
  94. package/dist/desktop/client/assets/AgentDetailView-SJpg9JA5.js +18 -0
  95. package/dist/desktop/client/assets/AgentPermissionPolicyEditor-KMUDm0nu.js +6 -0
  96. package/dist/desktop/client/assets/AgentPermissionPolicyEditor-TpdlOWZW.css +1 -0
  97. package/dist/desktop/client/assets/AgentsView-CITigHGD.js +24 -0
  98. package/dist/desktop/client/assets/AgentsView-CzMa5Olf.css +1 -0
  99. package/dist/desktop/client/assets/ChatView-D_2wBIIx.css +1 -0
  100. package/dist/desktop/client/assets/ChatView-EeFLKmZB.js +6 -0
  101. package/dist/desktop/client/assets/CommandCenter-B9q-zM9p.css +1 -0
  102. package/dist/desktop/client/assets/CommandCenter-DmqJyMvs.js +71 -0
  103. package/dist/desktop/client/assets/DevServerView-Ckhpio_x.js +1 -0
  104. package/dist/desktop/client/assets/DevServerView-iBondC7z.css +1 -0
  105. package/dist/desktop/client/assets/DirectoryPicker-0rspvcMz.css +1 -0
  106. package/dist/desktop/client/assets/DirectoryPicker-j-rxo0kC.js +1 -0
  107. package/dist/desktop/client/assets/DocumentsView-DCS-N7cU.js +1 -0
  108. package/dist/desktop/client/assets/EvalsView-CTbgPUne.css +1 -0
  109. package/dist/desktop/client/assets/EvalsView-Dd26ipFU.js +1 -0
  110. package/dist/desktop/client/assets/ExperimentalAgentOnboardingModal-3ZEFv8sr.css +1 -0
  111. package/dist/desktop/client/assets/ExperimentalAgentOnboardingModal-BqgWIa9n.js +1 -0
  112. package/dist/desktop/client/assets/GoalsView-4-eEOeqw.css +1 -0
  113. package/dist/desktop/client/assets/GoalsView-C5gWzKqI.js +2 -0
  114. package/dist/desktop/client/assets/InsightsView-2SPZDH3m.js +11 -0
  115. package/dist/desktop/client/assets/InsightsView-C7yRTMPn.css +1 -0
  116. package/dist/desktop/client/assets/MemoryView-CBDUr2Jy.css +1 -0
  117. package/dist/desktop/client/assets/MemoryView-D2OAkbGv.js +2 -0
  118. package/dist/desktop/client/assets/PiExtensionsManager-DLrKJDwr.js +11 -0
  119. package/dist/desktop/client/assets/PiExtensionsManager-kgTOHPE9.css +1 -0
  120. package/dist/desktop/client/assets/PluginManager-B0CMG4RR.js +1 -0
  121. package/dist/desktop/client/assets/PluginManager-DSiHizRD.css +1 -0
  122. package/dist/desktop/client/assets/PullRequestView-DhTrKHeu.js +6 -0
  123. package/dist/desktop/client/assets/PullRequestView-NkeImY1n.css +1 -0
  124. package/dist/desktop/client/assets/ResearchView-BQwV9L4h.js +1 -0
  125. package/dist/desktop/client/assets/ResearchView-DIVNQF4_.css +1 -0
  126. package/dist/desktop/client/assets/SecretsView-Boby9tkU.js +1 -0
  127. package/dist/desktop/client/assets/SecretsView-CvFioX7R.css +1 -0
  128. package/dist/desktop/client/assets/SessionTerminal-CPbzm5Oi.css +1 -0
  129. package/dist/desktop/client/assets/SessionTerminal-CT_DUO7z.js +2 -0
  130. package/dist/desktop/client/assets/SettingsModal-BzZNPNIh.css +1 -0
  131. package/dist/desktop/client/assets/SettingsModal-CaE4JYxi.css +1 -0
  132. package/dist/desktop/client/assets/SettingsModal-CvsRQchW.js +1 -0
  133. package/dist/desktop/client/assets/SettingsModal-Dijfj3cb.js +21 -0
  134. package/dist/desktop/client/assets/SetupWizardModal-BIiJIXkh.js +2 -0
  135. package/dist/desktop/client/assets/ShadcnColorPicker-0ZZqsOqD.js +11 -0
  136. package/dist/desktop/client/assets/ShadcnColorPicker-3OgfenMo.css +1 -0
  137. package/dist/desktop/client/assets/SkillsView-Pzo5lSju.js +1 -0
  138. package/dist/desktop/client/assets/SkillsView-tAW7TTCz.css +1 -0
  139. package/dist/desktop/client/assets/TodoView--YoVYWvw.css +1 -0
  140. package/dist/desktop/client/assets/TodoView-ClCgLTmi.js +6 -0
  141. package/dist/desktop/client/assets/WorkflowNodeEditor-8XHmq-V2.js +8 -0
  142. package/dist/desktop/client/assets/WorkflowNodeEditor-Df-_206_.css +1 -0
  143. package/dist/desktop/client/assets/addon-fit-C1WQXRvu.js +1 -0
  144. package/dist/desktop/client/assets/addon-unicode11-BVmNDUBM.js +1 -0
  145. package/dist/desktop/client/assets/addon-web-links-CkVew5xs.js +1 -0
  146. package/dist/desktop/client/assets/addon-webgl-uLc0RKcC.js +58 -0
  147. package/dist/desktop/client/assets/agentSkills-D5osLOR5.js +1 -0
  148. package/dist/desktop/client/assets/agentSkills-bQJ4X1gH.css +1 -0
  149. package/dist/desktop/client/assets/agentsOrgChartLayout-BMvyuaLA.js +1 -0
  150. package/dist/desktop/client/assets/app-5S4z84u5.js +13 -0
  151. package/dist/desktop/client/assets/app-B1VYocx2.js +13 -0
  152. package/dist/desktop/client/assets/app-BhtYYxin.js +13 -0
  153. package/dist/desktop/client/assets/app-Cts0__Vx.js +13 -0
  154. package/dist/desktop/client/assets/app-DczBmsP4.js +13 -0
  155. package/dist/desktop/client/assets/app-_GFUqcMK.js +13 -0
  156. package/dist/desktop/client/assets/arc-cxkkNsnK.js +1 -0
  157. package/dist/desktop/client/assets/architectureDiagram-3BPJPVTR-CrjMDhPI.js +36 -0
  158. package/dist/desktop/client/assets/band-CquvqAHh.js +1 -0
  159. package/dist/desktop/client/assets/blockDiagram-GPEHLZMM-CTQo88ZR.js +132 -0
  160. package/dist/desktop/client/assets/c4Diagram-AAUBKEIU-YjMRExC0.js +10 -0
  161. package/dist/desktop/client/assets/channel-ByWi0lfq.js +1 -0
  162. package/dist/desktop/client/assets/chunk-2J33WTMH-O2741OpT.js +1 -0
  163. package/dist/desktop/client/assets/chunk-4BX2VUAB-E8A3umbR.js +1 -0
  164. package/dist/desktop/client/assets/chunk-55IACEB6-B052cwdC.js +1 -0
  165. package/dist/desktop/client/assets/chunk-727SXJPM-BKI0HQTP.js +206 -0
  166. package/dist/desktop/client/assets/chunk-AQP2D5EJ-DegV3EMW.js +231 -0
  167. package/dist/desktop/client/assets/chunk-FMBD7UC4-B7tLsOki.js +15 -0
  168. package/dist/desktop/client/assets/chunk-ND2GUHAM-2xF-Tg95.js +1 -0
  169. package/dist/desktop/client/assets/chunk-QZHKN3VN-DUl8dvkQ.js +1 -0
  170. package/dist/desktop/client/assets/classDiagram-4FO5ZUOK-C6nL18EV.js +1 -0
  171. package/dist/desktop/client/assets/classDiagram-v2-Q7XG4LA2-C6nL18EV.js +1 -0
  172. package/dist/desktop/client/assets/common-BDp2y6CF.js +1 -0
  173. package/dist/desktop/client/assets/common-BnEo5fLN.js +1 -0
  174. package/dist/desktop/client/assets/common-Bzr_Y8h4.js +1 -0
  175. package/dist/desktop/client/assets/common-CvwyFzfv.js +1 -0
  176. package/dist/desktop/client/assets/common-CztCXRkz.js +1 -0
  177. package/dist/desktop/client/assets/common-DPe2mbb7.js +1 -0
  178. package/dist/desktop/client/assets/cose-bilkent-S5V4N54A-DWz6vuMa.js +1 -0
  179. package/dist/desktop/client/assets/cytoscape.esm-OyMbaexL.js +331 -0
  180. package/dist/desktop/client/assets/dagre-BM42HDAG-GgO-3j8E.js +4 -0
  181. package/dist/desktop/client/assets/dashboard-view-CosTtyxo.js +1 -0
  182. package/dist/desktop/client/assets/dashboard-view-CuUPQZzi.css +1 -0
  183. package/dist/desktop/client/assets/dashboard-view-Cw1KM3Az.js +8161 -0
  184. package/dist/desktop/client/assets/dashboard-view-D_zsA-kz.css +1 -0
  185. package/dist/desktop/client/assets/defaultLocale-DX6XiGOO.js +1 -0
  186. package/dist/desktop/client/assets/diagram-2AECGRRQ-BZQIXBBG.js +43 -0
  187. package/dist/desktop/client/assets/diagram-5GNKFQAL-B1pdxoln.js +10 -0
  188. package/dist/desktop/client/assets/diagram-KO2AKTUF-B2lApC5l.js +3 -0
  189. package/dist/desktop/client/assets/diagram-LMA3HP47-BRqKMh4D.js +24 -0
  190. package/dist/desktop/client/assets/diagram-OG6HWLK6-Dl7BJ0tE.js +24 -0
  191. package/dist/desktop/client/assets/erDiagram-TEJ5UH35-DS6QZa9s.js +85 -0
  192. package/dist/desktop/client/assets/errors-07IrmOYM.js +1 -0
  193. package/dist/desktop/client/assets/errors-BPsCufin.js +1 -0
  194. package/dist/desktop/client/assets/errors-CcVDgqlA.js +1 -0
  195. package/dist/desktop/client/assets/errors-D-i_Bxc6.js +1 -0
  196. package/dist/desktop/client/assets/errors-DDdWAK-U.js +1 -0
  197. package/dist/desktop/client/assets/errors-DOF5Td3F.js +1 -0
  198. package/dist/desktop/client/assets/flowDiagram-I6XJVG4X-Zk7IzQc2.js +162 -0
  199. package/dist/desktop/client/assets/folder-open-BhDX2lOd.js +6 -0
  200. package/dist/desktop/client/assets/ganttDiagram-6RSMTGT7-CJuYCcjE.js +292 -0
  201. package/dist/desktop/client/assets/gitGraphDiagram-PVQCEYII-BmCm6tvH.js +106 -0
  202. package/dist/desktop/client/assets/graph--OzhPTMs.js +1 -0
  203. package/dist/desktop/client/assets/index-BCe5TILt.css +1 -0
  204. package/dist/desktop/client/assets/index-CoS-MsCg.js +1336 -0
  205. package/dist/desktop/client/assets/infoDiagram-5YYISTIA-Ds6lrlTh.js +2 -0
  206. package/dist/desktop/client/assets/init-Dmth1JHB.js +1 -0
  207. package/dist/desktop/client/assets/ishikawaDiagram-YF4QCWOH-D3deq-vb.js +70 -0
  208. package/dist/desktop/client/assets/journeyDiagram-JHISSGLW-BuHVkT2m.js +139 -0
  209. package/dist/desktop/client/assets/kanban-definition-UN3LZRKU-DdoE5oU5.js +89 -0
  210. package/dist/desktop/client/assets/katex-HP8lGamR.js +257 -0
  211. package/dist/desktop/client/assets/layout-SsrduOYp.js +1 -0
  212. package/dist/desktop/client/assets/linear-CwI45w2t.js +1 -0
  213. package/dist/desktop/client/assets/mermaid.core-_nbzHc5D.js +309 -0
  214. package/dist/desktop/client/assets/mindmap-definition-RKZ34NQL-Bq-XuCz_.js +96 -0
  215. package/dist/desktop/client/assets/ordinal-DILIJJjt.js +1 -0
  216. package/dist/desktop/client/assets/pieDiagram-4H26LBE5-BgcfpW6J.js +30 -0
  217. package/dist/desktop/client/assets/projectDetection-G3XuxD2X.js +1 -0
  218. package/dist/desktop/client/assets/quadrantDiagram-W4KKPZXB-Xys80jUW.js +7 -0
  219. package/dist/desktop/client/assets/requirementDiagram-4Y6WPE33-C8S5lJeA.js +84 -0
  220. package/dist/desktop/client/assets/sankeyDiagram-5OEKKPKP-B_3GGQyd.js +40 -0
  221. package/dist/desktop/client/assets/sequenceDiagram-3UESZ5HK-DIu6iwmX.js +162 -0
  222. package/dist/desktop/client/assets/shield-alert-BHWZI_om.js +6 -0
  223. package/dist/desktop/client/assets/stateDiagram-AJRCARHV-CnaR2a9t.js +1 -0
  224. package/dist/desktop/client/assets/stateDiagram-v2-BHNVJYJU-VHc1xbe0.js +1 -0
  225. package/dist/desktop/client/assets/step-yuy0qJer.js +1 -0
  226. package/dist/desktop/client/assets/time-Ckmi30gH.js +1 -0
  227. package/dist/desktop/client/assets/timeline-definition-PNZ67QCA-BrtDAg8s.js +120 -0
  228. package/dist/desktop/client/assets/upload-DOLP3Bv3.js +6 -0
  229. package/dist/desktop/client/assets/users-2kEJQeOu.js +6 -0
  230. package/dist/desktop/client/assets/vendor-codemirror-jBKmHyH0.js +27 -0
  231. package/dist/desktop/client/assets/vendor-i18n-GF3RlKbq.js +9 -0
  232. package/dist/desktop/client/assets/vendor-react-SZ_qB27O.js +49 -0
  233. package/dist/desktop/client/assets/vendor-reactflow-C5ap-Sga.css +1 -0
  234. package/dist/desktop/client/assets/vendor-reactflow-CnI7NMXG.js +15 -0
  235. package/dist/desktop/client/assets/vendor-xterm-BNq00GSj.js +9 -0
  236. package/dist/desktop/client/assets/vendor-xterm-LZoznX6r.css +32 -0
  237. package/dist/desktop/client/assets/vennDiagram-CIIHVFJN-CVjr2RxJ.js +34 -0
  238. package/dist/desktop/client/assets/wardley-L42UT6IY-CVstgB5f.js +173 -0
  239. package/dist/desktop/client/assets/wardleyDiagram-YWT4CUSO-Da3szr-D.js +78 -0
  240. package/dist/desktop/client/assets/xychartDiagram-2RQKCTM6-B0o0ggVt.js +7 -0
  241. package/dist/desktop/client/assets/zoom-out-NWbVkreR.js +41 -0
  242. package/dist/desktop/client/brands/hermes-logo.svg +1 -0
  243. package/dist/desktop/client/fonts/SymbolsNerdFontMono-Regular.ttf +0 -0
  244. package/dist/desktop/client/icons/icon-192.png +0 -0
  245. package/dist/desktop/client/icons/icon-512.png +0 -0
  246. package/dist/desktop/client/index.html +244 -0
  247. package/dist/desktop/client/logo.svg +6 -0
  248. package/dist/desktop/client/manifest.json +23 -0
  249. package/dist/desktop/client/sw.js +175 -0
  250. package/dist/desktop/client/theme-data.css +7154 -0
  251. package/dist/desktop/client/version.json +1 -0
  252. package/dist/desktop/main.js +1661 -0
  253. package/dist/desktop/main.js.map +7 -0
  254. package/dist/desktop/preload.js +110 -0
  255. package/dist/desktop/preload.js.map +7 -0
  256. package/dist/droid-cli/package.json +1 -1
  257. package/dist/extension.js +1692 -1418
  258. package/dist/pi-claude-cli/index.ts +40 -8
  259. package/dist/pi-claude-cli/package.json +5 -3
  260. package/dist/pi-claude-cli/src/__tests__/process-manager.test.ts +2 -2
  261. package/dist/pi-claude-cli/src/__tests__/provider.test.ts +39 -23
  262. package/dist/plugin-sdk/index.d.ts +9 -2
  263. package/dist/plugins/fusion-plugin-acp-runtime/package.json +1 -1
  264. package/dist/plugins/fusion-plugin-cli-printing-press/package.json +1 -1
  265. package/dist/plugins/fusion-plugin-compound-engineering/bundled.js +15 -3
  266. package/dist/plugins/fusion-plugin-compound-engineering/package.json +1 -1
  267. package/dist/plugins/fusion-plugin-cursor-runtime/package.json +1 -1
  268. package/dist/plugins/fusion-plugin-dependency-graph/package.json +1 -1
  269. package/dist/plugins/fusion-plugin-droid-runtime/package.json +1 -1
  270. package/dist/plugins/fusion-plugin-hermes-runtime/package.json +1 -1
  271. package/dist/plugins/fusion-plugin-openclaw-runtime/package.json +1 -1
  272. package/dist/plugins/fusion-plugin-paperclip-runtime/package.json +1 -1
  273. package/dist/plugins/fusion-plugin-reports/package.json +1 -1
  274. package/dist/plugins/fusion-plugin-roadmap/package.json +1 -1
  275. package/dist/plugins/fusion-plugin-whatsapp-chat/package.json +1 -1
  276. package/package.json +4 -3
  277. package/dist/client/assets/AgentPermissionPolicyEditor-CGxjOr6G.css +0 -1
  278. package/dist/client/assets/AgentPermissionPolicyEditor-DrVW4VPc.js +0 -6
  279. package/dist/client/assets/ChatView-C7uTm5hO.js +0 -16
  280. package/dist/client/assets/SessionTerminal-CumHUelZ.js +0 -2
  281. package/dist/client/assets/SettingsModal-AJfer-ve.js +0 -21
  282. package/dist/client/assets/ShadcnColorPicker-Cc72uPKJ.js +0 -11
  283. package/dist/client/assets/ShadcnColorPicker-CyeAnJUU.css +0 -1
  284. package/dist/client/assets/WorkflowNodeEditor-BjpqTIYE.js +0 -8
  285. package/dist/client/assets/app-CGubyqAW.js +0 -13
  286. package/dist/client/assets/app-CrQpHbIs.js +0 -13
  287. package/dist/client/assets/app-DboK-0Ty.js +0 -13
  288. package/dist/client/assets/app-DjnYET2y.js +0 -13
  289. package/dist/client/assets/app-MacS555z.js +0 -13
  290. package/dist/client/assets/app-nvVayIeU.js +0 -13
  291. package/dist/client/assets/channel-Dn5XowfJ.js +0 -1
  292. package/dist/client/assets/classDiagram-4FO5ZUOK-zSOW-KNk.js +0 -1
  293. package/dist/client/assets/classDiagram-v2-Q7XG4LA2-zSOW-KNk.js +0 -1
  294. package/dist/client/assets/index-QnHUwSjw.css +0 -1
  295. package/dist/client/assets/index-Y-vyXPPN.js +0 -1331
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ExperimentalAgentOnboardingModal-BqgWIa9n.js","./vendor-react-SZ_qB27O.js","./index-CoS-MsCg.js","./vendor-i18n-GF3RlKbq.js","./vendor-reactflow-CnI7NMXG.js","./vendor-reactflow-C5ap-Sga.css","./vendor-xterm-BNq00GSj.js","./vendor-xterm-LZoznX6r.css","./vendor-codemirror-jBKmHyH0.js","./index-BCe5TILt.css","./ExperimentalAgentOnboardingModal-3ZEFv8sr.css"])))=>i.map(i=>d[i]);
2
+ import{A as g,g as b,m as R,u as te,d as ae,r as re,a as ne,b as ie,e as le,X as oe,L as v,C as de,f as E,S as ce,h as S,E as ue,_ as pe}from"./index-CoS-MsCg.js";import{r as l,j as e}from"./vendor-react-SZ_qB27O.js";import{D as me}from"./DirectoryPicker-j-rxo0kC.js";import{s as y}from"./projectDetection-G3XuxD2X.js";import{u as ge}from"./vendor-i18n-GF3RlKbq.js";import"./vendor-reactflow-CnI7NMXG.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";import"./folder-open-BhDX2lOd.js";function C(c){const u=c.replace(/[^a-zA-Z]/g,"").toUpperCase();return u.length>=2&&u.length<=4?u:u.length>4?u.slice(0,4):"FN"}const he=l.lazy(()=>pe(()=>import("./ExperimentalAgentOnboardingModal-BqgWIa9n.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]),import.meta.url).then(c=>({default:c.ExperimentalAgentOnboardingModal})));function Ce({onProjectRegistered:c,onClose:u,agentOnboardingEnabled:P=!1,includeAgentStep:z=!0}){const{t:a}=ge("app"),F="https://discord.gg/ksrfuy7WYR",x=l.useMemo(()=>b("ceo")??g[0],[]),[T,U]=l.useState(!0),[s,i]=l.useState(()=>({step:"manual",manualMode:"existing",manualPath:"",manualCloneUrl:"",manualName:"",manualIsolationMode:"in-process",manualNodeId:"",manualTaskPrefix:"",detectedRepos:[],workspaceMode:!1,isDetectingWorkspace:!1,registeredProject:null,selectedPresetId:x.id,agentDraft:R(x),isCreatingAgent:!1,isRegistering:!1,error:null,agentError:null,agentOutcome:null})),[A,W]=l.useState(!1),[I,j]=l.useState(!1),D=l.useRef(null),{nodes:M,loading:L}=te(),O=M.find(t=>t.type==="local")?.id,f=l.useCallback(()=>{U(!1),u?.()},[u]),_=l.useCallback(()=>{if(s.registeredProject){c(s.registeredProject);return}f()},[f,c,s.registeredProject]);l.useEffect(()=>{s.agentError&&D.current?.focus()},[s.agentError]);const N=l.useRef(0),H=l.useCallback(t=>{if(i(r=>{const n={manualPath:t,detectedRepos:[],workspaceMode:!1};t&&(!r.manualName||r.manualName===y(r.manualPath))&&(n.manualName=y(t));const o=n.manualName??r.manualName;return o&&(!r.manualTaskPrefix||r.manualTaskPrefix===C(y(r.manualPath)))&&(n.manualTaskPrefix=C(o)),{...r,...n}}),s.manualMode==="existing"&&t.trim()&&t.trim()!=="/"){const r=++N.current;i(n=>({...n,isDetectingWorkspace:!0})),ae(t.trim()).then(n=>{r===N.current&&i(o=>({...o,isDetectingWorkspace:!1,detectedRepos:n.repos,workspaceMode:n.isWorkspace}))}).catch(()=>{r===N.current&&i(n=>({...n,isDetectingWorkspace:!1}))})}},[s.manualMode]),B=l.useCallback(async()=>{const t=s.manualPath.trim(),r=s.manualName.trim(),n=s.manualCloneUrl.trim();if(!(!t||!r)&&!(s.manualMode==="clone"&&!n)){i(o=>({...o,isRegistering:!0,error:null}));try{const o={name:r,path:t,isolationMode:s.manualIsolationMode,nodeId:s.manualNodeId||void 0,cloneUrl:s.manualMode==="clone"?n:void 0,workspaceMode:s.workspaceMode,taskPrefix:s.manualTaskPrefix.trim()||void 0},d=await re(o);if(!z){i(m=>({...m,isRegistering:!1})),c(d);return}i(m=>({...m,step:"agent",registeredProject:d,isRegistering:!1}))}catch(o){i(d=>({...d,isRegistering:!1,error:o instanceof Error?o.message:"Failed to register project"}))}}},[z,c,s.manualPath,s.manualName,s.manualCloneUrl,s.manualMode,s.manualIsolationMode,s.manualNodeId,s.workspaceMode,s.manualTaskPrefix]),w=l.useCallback(t=>{const r=b(t);r&&i(n=>({...n,selectedPresetId:r.id,agentDraft:R(r),agentError:null}))},[]),$=l.useCallback((t,r)=>{const n=g.findIndex(se=>se.id===r);if(n<0)return;const o=g.length-1;let d=null;if(t.key==="ArrowDown"||t.key==="ArrowRight"?d=n===o?0:n+1:t.key==="ArrowUp"||t.key==="ArrowLeft"?d=n===0?o:n-1:t.key==="Home"?d=0:t.key==="End"&&(d=o),d===null)return;t.preventDefault();const m=g[d];w(m.id),requestAnimationFrame(()=>{document.querySelector(`[data-agent-preset-id="${m.id}"]`)?.focus()})},[w]),Y=l.useCallback(t=>{i(r=>({...r,selectedPresetId:"",agentDraft:ne(t),agentError:null}))},[]),G=l.useCallback(async()=>{if(!(!s.registeredProject||!s.agentDraft.name.trim())){i(t=>({...t,isCreatingAgent:!0,agentError:null}));try{await ie(le(s.agentDraft),s.registeredProject.id),i(t=>({...t,step:"complete",isCreatingAgent:!1,agentOutcome:"created"}))}catch(t){i(r=>({...r,isCreatingAgent:!1,agentError:t instanceof Error?t.message:a("setup.firstAgentCreateError","Failed to create agent")}))}}},[s.agentDraft,s.registeredProject,a]),q=l.useCallback(()=>{i(t=>({...t,step:"complete",agentError:null,agentOutcome:"skipped"}))},[]);if(!T)return null;const k=s.manualMode==="existing",p=s.manualMode==="clone",K=s.manualPath.trim().length>0,Z=s.manualName.trim().length>0,V=s.manualCloneUrl.trim().length>0,X=s.isRegistering||!K||!Z||p&&!V,J=s.selectedPresetId?b(s.selectedPresetId):void 0,h=s.isCreatingAgent,Q=s.selectedPresetId||x.id,ee=`modal setup-wizard-modal${s.step==="agent"?" setup-wizard-modal--agent":""}`;return e.jsxs("div",{className:"modal-overlay open setup-wizard-overlay",role:"dialog","aria-modal":"true","aria-labelledby":"wizard-title",children:[e.jsxs("div",{className:ee,children:[e.jsxs("div",{className:"setup-wizard-header",children:[e.jsxs("div",{className:"setup-wizard-heading",children:[e.jsxs("div",{className:"setup-wizard-brand","aria-label":a("setup.brandName","Fusion"),children:[e.jsxs("svg",{className:"setup-wizard-brand-logo",width:28,height:28,viewBox:"0 0 128 128",fill:"none","aria-label":a("setup.brandLogo","Fusion logo"),role:"img",children:[e.jsx("circle",{cx:"64",cy:"64",r:"52",stroke:"currentColor",strokeWidth:"8"}),e.jsx("path",{d:"M26 101C44 82 62 64 82 45C90 37 98 30 104 24C96 35 89 47 81 60C70 79 57 95 43 108C38 112 32 108 26 101Z",fill:"currentColor"})]}),e.jsx("span",{className:"setup-wizard-brand-name",children:a("setup.brandName","Fusion")})]}),e.jsxs("h2",{id:"wizard-title",className:"setup-wizard-title",children:[s.step==="manual"&&a("setup.welcomeToFusion","Welcome to Fusion"),s.step==="agent"&&a("setup.firstAgentTitle","Create your first agent"),s.step==="complete"&&a("setup.setupCompleteTitle","Setup Complete!")]})]}),s.step!=="complete"&&s.step!=="agent"&&e.jsx("button",{className:"modal-close",onClick:f,"aria-label":a("setup.closeWizard","Close wizard"),children:e.jsx(oe,{size:20})})]}),e.jsxs("div",{className:"setup-wizard-content",children:[s.step==="manual"&&e.jsxs("div",{className:"setup-wizard-manual",children:[e.jsxs("div",{className:"form-group",children:[e.jsx("label",{htmlFor:"project-name",children:a("setup.projectName","Project Name")}),e.jsx("input",{id:"project-name",type:"text",value:s.manualName,onChange:t=>i(r=>({...r,manualName:t.target.value})),placeholder:a("setup.projectNamePlaceholder","my-project")}),e.jsx("p",{className:"form-hint",children:p?a("setup.projectNameHintClone","By default this follows the destination folder name unless you edit it."):a("setup.projectNameHintExisting","By default this follows the selected directory name unless you edit it.")})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{htmlFor:"project-path",children:p?a("setup.destinationDirectory","Destination Directory"):a("setup.projectDirectory","Project Directory")}),e.jsx(me,{value:s.manualPath,onChange:H,nodeId:s.manualNodeId||void 0,localNodeId:O,placeholder:p?a("setup.clonePathPlaceholder","/path/for/new-clone"):a("setup.projectPathPlaceholder","/path/to/your/project")}),e.jsx("p",{className:"form-hint",children:p?a("setup.clonePathHint","Select or type an absolute destination path. Fusion will clone into this directory."):a("setup.projectPathHint","Select or type the absolute path to your project")})]}),k&&s.manualPath.trim()&&e.jsxs("div",{className:"form-group",children:[e.jsxs("label",{htmlFor:"workspace-mode",className:"checkbox-label",children:[e.jsx("input",{id:"workspace-mode",type:"checkbox",checked:s.workspaceMode,onChange:t=>i(r=>({...r,workspaceMode:t.target.checked}))}),a("setup.workspaceMode","Workspace mode (multi-repo)")]}),s.isDetectingWorkspace&&e.jsxs("p",{className:"form-hint",children:[e.jsx(v,{size:12,className:"animate-spin",style:{display:"inline-block",verticalAlign:"middle",marginRight:4}}),a("setup.detectingWorkspace","Detecting sub-repositories...")]}),!s.isDetectingWorkspace&&s.detectedRepos.length>0&&e.jsxs("p",{className:"form-hint",children:[a("setup.detectedRepos","Found {{count}} repositories:",{count:s.detectedRepos.length})," ",s.detectedRepos.join(", ")]}),!s.isDetectingWorkspace&&s.detectedRepos.length===0&&s.workspaceMode===!1&&s.manualPath.trim()&&e.jsx("p",{className:"form-hint",children:a("setup.noSubReposDetected","No sub-repositories detected. Enable if this is a multi-repo workspace.")})]}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{htmlFor:"task-prefix",children:a("setup.taskPrefix","Task Prefix")}),e.jsx("input",{id:"task-prefix",type:"text",value:s.manualTaskPrefix,onChange:t=>i(r=>({...r,manualTaskPrefix:t.target.value.toUpperCase()})),placeholder:C(s.manualName||"FN"),maxLength:5}),e.jsx("p",{className:"form-hint",children:a("setup.taskPrefixHint",'Used for task IDs (e.g. "{{prefix}}-1"). Derived from project name.',{prefix:s.manualTaskPrefix||"FN"})})]}),e.jsxs("div",{className:"setup-wizard-advanced",children:[e.jsxs("button",{type:"button",className:"setup-wizard-advanced-toggle","aria-expanded":A,onClick:()=>W(t=>!t),children:[e.jsx(de,{size:16,className:"setup-wizard-advanced-chevron"}),e.jsx("span",{children:a("setup.advancedSettings","Advanced settings")})]}),A&&e.jsxs("div",{className:"setup-wizard-advanced-panel",children:[e.jsxs("fieldset",{className:"setup-wizard-mode-switch","aria-label":"Project setup mode",children:[e.jsx("legend",{children:a("setup.setupMode","Setup Mode")}),e.jsxs("label",{className:`setup-wizard-mode-option${k?" selected":""}`,children:[e.jsx("input",{type:"radio",name:"setup-mode",value:"existing",checked:k,onChange:()=>i(t=>({...t,manualMode:"existing",error:null}))}),e.jsx("span",{children:a("setup.useExistingDirectory","Use Existing Directory")})]}),e.jsxs("label",{className:`setup-wizard-mode-option${p?" selected":""}`,children:[e.jsx("input",{type:"radio",name:"setup-mode",value:"clone",checked:p,onChange:()=>i(t=>({...t,manualMode:"clone",error:null}))}),e.jsx("span",{children:a("setup.cloneGitRepository","Clone Git Repository")})]})]}),p&&e.jsxs("div",{className:"form-group",children:[e.jsx("label",{htmlFor:"project-clone-url",children:a("setup.repositoryUrl","Repository URL")}),e.jsx("input",{id:"project-clone-url",type:"text",value:s.manualCloneUrl,onChange:t=>i(r=>({...r,manualCloneUrl:t.target.value})),placeholder:a("setup.repositoryUrlPlaceholder","https://github.com/owner/repo.git")}),e.jsx("p",{className:"form-hint",children:a("setup.cloneGitHint","Fusion will run git clone into the destination directory, then register that cloned folder.")})]}),e.jsx("div",{className:"form-group",children:e.jsxs("div",{className:"project-node-selector",children:[e.jsx("span",{className:"project-node-selector__label",children:a("setup.runtimeNode","Runtime Node")}),e.jsxs("select",{value:s.manualNodeId,onChange:t=>i(r=>({...r,manualNodeId:t.target.value})),disabled:L||s.isRegistering,children:[e.jsx("option",{value:"",children:a("setup.localNode","Local node")}),M.map(t=>e.jsxs("option",{value:t.id,children:[t.name," (",t.type,")"]},t.id))]})]})}),e.jsxs("div",{className:"form-group",children:[e.jsx("label",{children:a("setup.isolationMode","Isolation Mode")}),e.jsxs("div",{className:"setup-wizard-isolation-options",children:[e.jsxs("label",{className:`setup-wizard-isolation-option${s.manualIsolationMode==="in-process"?" selected":""}`,children:[e.jsx("input",{type:"radio",name:"isolation-mode",value:"in-process",checked:s.manualIsolationMode==="in-process",onChange:()=>i(t=>({...t,manualIsolationMode:"in-process"}))}),e.jsxs("div",{className:"setup-wizard-isolation-option-content",children:[e.jsx("strong",{children:a("setup.inProcess","In-Process")}),e.jsx("span",{children:a("setup.inProcessDesc","Lower overhead, shared memory. Best for most projects.")}),e.jsx("span",{className:"wizard-option-recommended",children:a("setup.recommended","Recommended")})]})]}),e.jsxs("label",{className:`setup-wizard-isolation-option${s.manualIsolationMode==="child-process"?" selected":""}`,children:[e.jsx("input",{type:"radio",name:"isolation-mode",value:"child-process",checked:s.manualIsolationMode==="child-process",onChange:()=>i(t=>({...t,manualIsolationMode:"child-process"}))}),e.jsxs("div",{className:"setup-wizard-isolation-option-content",children:[e.jsx("strong",{children:a("setup.childProcess","Child-Process")}),e.jsx("span",{children:a("setup.childProcessDesc","Isolated execution with crash containment.")})]})]})]})]})]})]}),s.error&&e.jsx("div",{className:"wizard-error",role:"alert",children:s.error})]}),s.step==="agent"&&e.jsxs("div",{className:"setup-wizard-agent-step",children:[e.jsx("p",{className:"setup-wizard-agent-intro",children:a("setup.firstAgentIntro","Agents are optional. Fusion can build tasks without one by starting temporary agents for planning, coding, review, and merge. Create an agent only if you want help coordinating tasks and direction.")}),e.jsxs("div",{className:"setup-wizard-agent-layout",children:[e.jsxs("section",{className:"setup-wizard-agent-presets","aria-labelledby":"setup-first-agent-presets-heading",children:[e.jsx("div",{className:"setup-wizard-agent-section-heading",id:"setup-first-agent-presets-heading",children:a("setup.firstAgentTemplates","Templates")}),e.jsx("div",{className:"setup-wizard-agent-preset-list",role:"radiogroup","aria-label":a("setup.firstAgentTemplates","Templates"),children:g.map(t=>{const r=s.selectedPresetId===t.id;return e.jsxs("button",{type:"button",className:`setup-wizard-agent-preset${r?" selected":""}`,role:"radio","aria-checked":r,"aria-label":r?a("setup.selectedAgentTemplate","{{name}} selected",{name:t.name}):t.name,tabIndex:t.id===Q?0:-1,"data-agent-preset-id":t.id,disabled:h,onClick:()=>w(t.id),onKeyDown:n=>$(n,t.id),children:[e.jsx(E,{agent:{id:t.id,icon:t.icon,name:t.name},size:28}),e.jsxs("span",{className:"setup-wizard-agent-preset-copy",children:[e.jsxs("span",{className:"setup-wizard-agent-preset-name",children:[t.name,t.id==="ceo"&&e.jsx("span",{className:"wizard-option-recommended",children:a("setup.recommended","Recommended")})]}),e.jsx("span",{className:"setup-wizard-agent-preset-description",children:t.description})]})]},t.id)})})]}),e.jsxs("section",{className:"setup-wizard-agent-preview","aria-labelledby":"setup-first-agent-preview-heading",children:[e.jsx("div",{className:"setup-wizard-agent-section-heading",id:"setup-first-agent-preview-heading",children:a("setup.firstAgentPreview","Preview")}),e.jsxs("div",{className:"setup-wizard-agent-preview-card",children:[e.jsxs("div",{className:"setup-wizard-agent-preview-title-row",children:[e.jsx(E,{agent:{id:s.selectedPresetId||"draft",icon:s.agentDraft.icon,name:s.agentDraft.name},size:36}),e.jsxs("div",{children:[e.jsx("h3",{children:s.agentDraft.name||a("setup.firstAgentDraftName","Draft agent")}),e.jsx("p",{children:s.agentDraft.title||J?.title||a("setup.firstAgentCustomDraft","Custom agent draft")})]})]}),e.jsxs("dl",{className:"setup-wizard-agent-preview-list",children:[e.jsxs("div",{children:[e.jsx("dt",{children:a("agents.fieldRole","Role")}),e.jsx("dd",{children:s.agentDraft.role})]}),e.jsxs("div",{children:[e.jsx("dt",{children:a("agents.fieldInstructionsText","Inline Instructions")}),e.jsx("dd",{children:s.agentDraft.instructionsText||a("setup.firstAgentNoInstructions","No inline instructions yet")})]})]}),P&&e.jsxs("button",{type:"button",className:"btn setup-wizard-agent-ai-btn",onClick:()=>j(!0),disabled:h,children:[e.jsx(ce,{size:16}),e.jsx("span",{children:a("agents.aiInterview","AI Interview")})]})]})]})]}),s.agentError&&e.jsx("div",{className:"wizard-error",role:"alert",tabIndex:-1,ref:D,children:s.agentError})]}),s.step==="complete"&&e.jsxs("div",{className:"setup-wizard-complete",children:[e.jsxs("div",{className:"setup-wizard-success-streak","aria-hidden":"true",children:[e.jsx("div",{className:"setup-wizard-success-streak-core"}),e.jsx("div",{className:"setup-wizard-success-streak-glow"})]}),e.jsx(S,{size:64,className:"success-icon"}),e.jsx("h3",{children:a("setup.allSet","All Set!")}),e.jsx("p",{children:s.agentOutcome==="created"?a("setup.firstAgentCreatedSuccess","Your project is registered and your first agent is ready."):a("setup.projectRegisteredSuccess","Your project has been registered successfully.")}),e.jsx("p",{children:s.agentOutcome==="skipped"?a("setup.firstAgentSkippedHint","You can create agents later from the Agents view."):a("setup.addMoreProjectsHint","You can add more projects anytime from the project overview.")})]})]}),e.jsxs("div",{className:"setup-wizard-footer",children:[e.jsx("a",{className:"btn setup-wizard-help-link",href:F,target:"_blank",rel:"noopener noreferrer",children:a("setup.needHelp","Need help?")}),s.step==="manual"&&e.jsx("button",{className:"btn btn-primary",onClick:B,disabled:X,children:s.isRegistering?e.jsxs(e.Fragment,{children:[e.jsx(v,{size:16,className:"animate-spin"}),e.jsx("span",{children:a("setup.registering","Registering...")})]}):e.jsx("span",{children:a("setup.registerProject","Register Project")})}),s.step==="agent"&&e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"btn",onClick:q,disabled:h,children:a("setup.skipFirstAgent","Skip for now")}),e.jsx("button",{className:"btn btn-primary",onClick:()=>void G(),disabled:h||!s.agentDraft.name.trim(),"aria-busy":s.isCreatingAgent,children:s.isCreatingAgent?e.jsxs(e.Fragment,{children:[e.jsx(v,{size:16,className:"animate-spin"}),e.jsx("span",{children:a("setup.creatingFirstAgent","Creating agent...")})]}):e.jsx("span",{children:a("setup.createFirstAgent","Create Agent")})})]}),s.step==="complete"&&e.jsxs("button",{className:"btn btn-primary",onClick:_,children:[e.jsx(S,{size:16}),e.jsx("span",{children:a("setup.getStarted","Get Started")})]})]})]}),P&&I&&e.jsx(ue,{level:"modal",fallback:e.jsxs("div",{className:"wizard-error setup-wizard-agent-interview-error",role:"alert",children:[e.jsx("span",{children:a("setup.firstAgentInterviewLoadError","AI interview could not load. You can still create an agent from a template or skip this step.")}),e.jsx("button",{type:"button",className:"btn",onClick:()=>j(!1),children:a("setup.firstAgentContinueWithTemplates","Continue with templates")})]}),children:e.jsx(l.Suspense,{fallback:e.jsx("div",{className:"wizard-error setup-wizard-agent-interview-error",role:"status",children:a("setup.firstAgentInterviewLoading","Loading AI Interview...")}),children:e.jsx(he,{isOpen:I,onClose:()=>j(!1),onUseDraft:Y,projectId:s.registeredProject?.id,existingAgents:[],mode:"create"})})})]})}export{Ce as SetupWizardModal};
@@ -0,0 +1,11 @@
1
+ import{c as N,c2 as k,c3 as v,ad as y,o as S,c4 as x,c5 as f}from"./index-CoS-MsCg.js";import{r,j as a}from"./vendor-react-SZ_qB27O.js";import{u as C}from"./vendor-i18n-GF3RlKbq.js";/**
2
+ * @license lucide-react v1.7.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const M=[["path",{d:"M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401",key:"kfwtm"}]],j=N("moon",M);/**
7
+ * @license lucide-react v1.7.0 - ISC
8
+ *
9
+ * This source code is licensed under the ISC license.
10
+ * See the LICENSE file in the root directory of this source tree.
11
+ */const z=[["circle",{cx:"12",cy:"12",r:"4",key:"4exip2"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"m4.93 4.93 1.41 1.41",key:"149t6j"}],["path",{d:"m17.66 17.66 1.41 1.41",key:"ptbguv"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"m6.34 17.66-1.41 1.41",key:"1m8zz5"}],["path",{d:"m19.07 4.93-1.41 1.41",key:"1shlcs"}]],O=N("sun",z),$=[{value:"light",label:"Light",icon:O},{value:"dark",label:"Dark",icon:j},{value:"system",label:"System",icon:k}],D=[{value:"default",label:"Fusion Legacy",className:"theme-swatch-default"},{value:"ocean",label:"Ocean",className:"theme-swatch-ocean"},{value:"forest",label:"Forest",className:"theme-swatch-forest"},{value:"sunset",label:"Sunset",className:"theme-swatch-sunset"},{value:"zen",label:"Zen",className:"theme-swatch-zen"},{value:"berry",label:"Berry",className:"theme-swatch-berry"},{value:"high-contrast",label:"High Contrast",className:"theme-swatch-high-contrast"},{value:"industrial",label:"Industrial",className:"theme-swatch-industrial"},{value:"monochrome",label:"Mono",className:"theme-swatch-monochrome"},{value:"slate",label:"Slate",className:"theme-swatch-slate"},{value:"ash",label:"Ash",className:"theme-swatch-ash"},{value:"air",label:"Air",className:"theme-swatch-air"},{value:"graphite",label:"Graphite",className:"theme-swatch-graphite"},{value:"silver",label:"Silver",className:"theme-swatch-silver"},{value:"solarized",label:"Solarized",className:"theme-swatch-solarized"},{value:"factory",label:"Factory",className:"theme-swatch-factory"},{value:"factory-mono",label:"Factory Mono",className:"theme-swatch-factory-mono"},{value:"ayu",label:"Ayu",className:"theme-swatch-ayu"},{value:"one-dark",label:"One Dark",className:"theme-swatch-one-dark"},{value:"nord",label:"Nord",className:"theme-swatch-nord"},{value:"dracula",label:"Dracula",className:"theme-swatch-dracula"},{value:"gruvbox",label:"Gruvbox",className:"theme-swatch-gruvbox"},{value:"tokyo-night",label:"Tokyo Night",className:"theme-swatch-tokyo-night"},{value:"catppuccin-mocha",label:"Catppuccin Mocha",className:"theme-swatch-catppuccin-mocha"},{value:"github-dark",label:"GitHub Dark",className:"theme-swatch-github-dark"},{value:"everforest",label:"Everforest",className:"theme-swatch-everforest"},{value:"rose-pine",label:"Rosé Pine",className:"theme-swatch-rose-pine"},{value:"kanagawa",label:"Kanagawa",className:"theme-swatch-kanagawa"},{value:"night-owl",label:"Night Owl",className:"theme-swatch-night-owl"},{value:"palenight",label:"Palenight",className:"theme-swatch-palenight"},{value:"monokai-pro",label:"Monokai Pro",className:"theme-swatch-monokai-pro"},{value:"slime",label:"Slime",className:"theme-swatch-slime"},{value:"brutalist",label:"Brutalist",className:"theme-swatch-brutalist"},{value:"neon-city",label:"Neon City",className:"theme-swatch-neon-city"},{value:"parchment",label:"Parchment",className:"theme-swatch-parchment"},{value:"terminal",label:"Terminal",className:"theme-swatch-terminal"},{value:"glass",label:"Glass",className:"theme-swatch-glass"},{value:"glass-silver",label:"Glass Silver",className:"theme-swatch-glass-silver"},{value:"horizon",label:"Horizon",className:"theme-swatch-horizon"},{value:"vitesse",label:"Vitesse",className:"theme-swatch-vitesse"},{value:"outrun",label:"Outrun",className:"theme-swatch-outrun"},{value:"snazzy",label:"Snazzy",className:"theme-swatch-snazzy"},{value:"porple",label:"Porple",className:"theme-swatch-porple"},{value:"espresso",label:"Espresso",className:"theme-swatch-espresso"},{value:"mars",label:"Mars",className:"theme-swatch-mars"},{value:"poimandres",label:"Poimandres",className:"theme-swatch-poimandres"},{value:"ember",label:"Ember",className:"theme-swatch-ember"},{value:"rust",label:"Rust",className:"theme-swatch-rust"},{value:"copper",label:"Copper",className:"theme-swatch-copper"},{value:"foundry",label:"Foundry",className:"theme-swatch-foundry"},{value:"carbon",label:"Carbon",className:"theme-swatch-carbon"},{value:"sandstone",label:"Sandstone",className:"theme-swatch-sandstone"},{value:"lagoon",label:"Lagoon",className:"theme-swatch-lagoon"},{value:"frost",label:"Frost",className:"theme-swatch-frost"},{value:"lavender",label:"Lavender",className:"theme-swatch-lavender"},{value:"neon-bloom",label:"Neon Bloom",className:"theme-swatch-neon-bloom"},{value:"sepia",label:"Sepia",className:"theme-swatch-sepia"},{value:"shadcn",label:"Shadcn",className:"theme-swatch-shadcn"},{value:"shadcn-ember",label:"Shadcn Ember (Default)",className:"theme-swatch-shadcn-ember"},{value:"shadcn-custom",label:"Shadcn Custom",className:"theme-swatch-shadcn-custom"},{value:"shadcn-blue",label:"Shadcn Blue",className:"theme-swatch-shadcn-blue"},{value:"shadcn-green",label:"Shadcn Green",className:"theme-swatch-shadcn-green"},{value:"shadcn-red",label:"Shadcn Red",className:"theme-swatch-shadcn-red"},{value:"shadcn-purple",label:"Shadcn Purple",className:"theme-swatch-shadcn-purple"},{value:"shadcn-pink",label:"Shadcn Pink",className:"theme-swatch-shadcn-pink"},{value:"shadcn-orange",label:"Shadcn Orange",className:"theme-swatch-shadcn-orange"},{value:"shadcn-yellow",label:"Shadcn Yellow",className:"theme-swatch-shadcn-yellow"},{value:"shadcn-mono-red",label:"Shadcn Mono Red",className:"theme-swatch-shadcn-mono-red"},{value:"shadcn-mono-blue",label:"Shadcn Mono Blue",className:"theme-swatch-shadcn-mono-blue"},{value:"shadcn-mono-green",label:"Shadcn Mono Green",className:"theme-swatch-shadcn-mono-green"},{value:"shadcn-mono-purple",label:"Shadcn Mono Purple",className:"theme-swatch-shadcn-mono-purple"},{value:"shadcn-mono-pink",label:"Shadcn Mono Pink",className:"theme-swatch-shadcn-mono-pink"},{value:"shadcn-mono-orange",label:"Shadcn Mono Orange",className:"theme-swatch-shadcn-mono-orange"},{value:"shadcn-mono-yellow",label:"Shadcn Mono Yellow",className:"theme-swatch-shadcn-mono-yellow"},{value:"shadcn-black",label:"Shadcn Black",className:"theme-swatch-shadcn-black"},{value:"shadcn-gray",label:"Shadcn Gray",className:"theme-swatch-shadcn-gray"},{value:"shadcn-gray-blue",label:"Shadcn Gray Blue",className:"theme-swatch-shadcn-gray-blue"}];function E(t){const l=t.trim();if(/^#[\da-f]{6}$/i.test(l))return l;if(/^#[\da-f]{3}$/i.test(l)){const[,h,s,c]=l;return`#${h}${h}${s}${s}${c}${c}`}return"#000000"}function G({value:t={},onChange:l,resolvedThemeMode:h="dark"}){const{t:s}=C("app"),[c,w]=r.useState(!1),m=r.useId(),d=r.useMemo(()=>v(t),[t]),u=(e,o)=>{l(v({...d,[e]:o}))},i=c?s("theme.shadcnCustom.collapse","Collapse custom colors"):s("theme.shadcnCustom.show","Show custom colors"),g=c?y:S;return a.jsxs("section",{className:"shadcn-color-picker card","data-testid":"shadcn-color-picker","aria-labelledby":"shadcn-color-picker-title",children:[a.jsxs("div",{className:"shadcn-color-picker-header",children:[a.jsxs("div",{className:"shadcn-color-picker-heading",children:[a.jsx("h3",{id:"shadcn-color-picker-title",className:"shadcn-color-picker-title",children:s("theme.shadcnCustom.title","Custom shadcn colors")}),a.jsx("p",{className:"shadcn-color-picker-description",children:s("theme.shadcnCustom.description","Override shadcn design tokens with hex colors. Blank tokens use the theme defaults.")})]}),a.jsx("button",{type:"button",className:"btn btn-icon btn-sm shadcn-color-picker-toggle","aria-expanded":c,"aria-controls":m,"aria-label":i,title:i,onClick:()=>w(e=>!e),children:a.jsx(g,{size:16,"aria-hidden":"true"})})]}),c?a.jsxs("div",{id:m,className:"shadcn-color-picker-controls-panel","data-testid":"shadcn-color-picker-controls",children:[a.jsx("div",{className:"shadcn-color-picker-actions",children:a.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>l({}),children:s("theme.shadcnCustom.reset","Reset custom colors")})}),a.jsx("div",{className:"shadcn-color-picker-grid",children:x.map(e=>{const o=f(e,h),b=d[e.cssVar]??o,p=`shadcn-color-${e.cssVar.replace(/^--/,"").replace(/[^a-z0-9]+/gi,"-")}`;return a.jsxs("div",{className:"shadcn-color-picker-row","data-testid":`shadcn-color-${e.cssVar}`,children:[a.jsxs("label",{className:"shadcn-color-picker-label",htmlFor:p,children:[a.jsx("span",{children:s(`theme.shadcnCustom.token.${e.cssVar}`,e.label)}),a.jsx("code",{children:e.cssVar})]}),a.jsxs("div",{className:"shadcn-color-picker-controls",children:[a.jsx("input",{"aria-label":s("theme.shadcnCustom.colorInput","Pick {{label}} color",{label:e.label}),className:"shadcn-color-picker-native",type:"color",value:E(b),onChange:n=>u(e.cssVar,n.currentTarget.value)}),a.jsx("input",{id:p,"aria-label":s("theme.shadcnCustom.hexInput","{{label}} hex color",{label:e.label}),className:"input shadcn-color-picker-hex",type:"text",inputMode:"text",spellCheck:!1,value:b,onChange:n=>u(e.cssVar,n.currentTarget.value)})]})]},e.cssVar)})})]}):null]})}export{D as C,j as M,O as S,$ as T,G as a};
@@ -0,0 +1 @@
1
+ .theme-selector{padding:0 20px 20px}.theme-mode-toggle{display:flex;align-items:center;gap:var(--space-sm);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-xs);margin-bottom:20px}.theme-mode-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:var(--space-sm) var(--space-lg);background:none;border:none;border-radius:var(--radius-sm);color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);flex:1}.theme-mode-btn:hover{color:var(--text);background:var(--card-hover)}.theme-mode-btn.active,.theme-mode-btn.active:hover{background:var(--todo);color:var(--bg)}.theme-mode-btn:focus-visible{outline:none;border-color:var(--todo);box-shadow:var(--focus-ring-strong)}.theme-section-title{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-md)}.theme-font-size-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm);margin-bottom:var(--space-lg)}.theme-font-size-btn{align-items:center;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;display:inline-flex;font-size:13px;font-weight:500;justify-content:center;min-height:calc(var(--space-2xl) + var(--space-sm));padding:var(--space-sm) var(--space-md);transition:all var(--transition-fast)}.theme-font-size-btn:hover{border-color:var(--todo);color:var(--text)}.theme-font-size-btn.active{background:color-mix(in srgb,var(--todo) 14%,transparent);border-color:var(--todo);color:var(--text)}.theme-font-size-btn:focus-visible{outline:none;border-color:var(--todo);box-shadow:var(--focus-ring-strong)}.theme-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-md)}@media(max-width:768px){.theme-grid{grid-template-columns:repeat(2,1fr)}}.theme-option{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-md);background:var(--card);border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;transition:all var(--transition-fast)}.theme-option:hover{border-color:var(--todo);background:var(--card-hover)}.theme-option.active{border-color:var(--todo);background:color-mix(in srgb,var(--todo) 14%,transparent)}.theme-option:focus-visible{outline:none;border-color:var(--todo);box-shadow:var(--focus-ring-strong)}.theme-option-swatch{width:calc(var(--space-2xl) + var(--space-lg));height:calc(var(--space-2xl) + var(--space-lg));border-radius:var(--radius);border:2px solid var(--border);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));overflow:hidden}.theme-option-swatch-sample{display:block;min-height:0}.theme-option-swatch-sample-1{background:var(--swatch-sample-1)}.theme-option-swatch-sample-2{background:var(--swatch-sample-2)}.theme-option-swatch-sample-3{background:var(--swatch-sample-3)}.theme-option-swatch-sample-4{background:var(--swatch-sample-4)}.theme-option-label{font-size:12px;font-weight:500;color:var(--text);text-align:center}.theme-swatch-default{--swatch-sample-1: #0d1117;--swatch-sample-2: #161b22;--swatch-sample-3: #58a6ff;--swatch-sample-4: #79c0ff}.theme-swatch-ocean{--swatch-sample-1: #0a1929;--swatch-sample-2: #132f4c;--swatch-sample-3: #4fc3f7;--swatch-sample-4: #00bcd4}.theme-swatch-forest{--swatch-sample-1: #0d2818;--swatch-sample-2: #1a472a;--swatch-sample-3: #4caf50;--swatch-sample-4: #2e7d32}.theme-swatch-sunset{--swatch-sample-1: #2d1f1f;--swatch-sample-2: #4a2c2c;--swatch-sample-3: #ff8a65;--swatch-sample-4: #ff7043}.theme-swatch-zen{--swatch-sample-1: #0c0c0c;--swatch-sample-2: #111111;--swatch-sample-3: #6b7b8c;--swatch-sample-4: #7a8590}.theme-swatch-berry{--swatch-sample-1: #1a0b2e;--swatch-sample-2: #2d1b4e;--swatch-sample-3: #c084fc;--swatch-sample-4: #ec4899}.theme-swatch-monochrome{--swatch-sample-1: #0d0d0d;--swatch-sample-2: #1a1a1a;--swatch-sample-3: #a3a3a3;--swatch-sample-4: #d4d4d4}.theme-swatch-slate{--swatch-sample-1: #1e293b;--swatch-sample-2: #334155;--swatch-sample-3: #60a5fa;--swatch-sample-4: #22d3ee}.theme-swatch-ash{--swatch-sample-1: #292524;--swatch-sample-2: #44403c;--swatch-sample-3: #a8a29e;--swatch-sample-4: #d6d3d1}.theme-swatch-air{--swatch-sample-1: #0f1115;--swatch-sample-2: #151820;--swatch-sample-3: #a8bfd8;--swatch-sample-4: #eef1f4}.theme-swatch-graphite{--swatch-sample-1: #18181b;--swatch-sample-2: #27272a;--swatch-sample-3: #94a3b8;--swatch-sample-4: #cbd5e1}.theme-swatch-ember{--swatch-sample-1: #18181b;--swatch-sample-2: #27272a;--swatch-sample-3: #f97316;--swatch-sample-4: #ef4444}.theme-swatch-rust{--swatch-sample-1: #0f0b09;--swatch-sample-2: #1a1410;--swatch-sample-3: #e06830;--swatch-sample-4: #e88040}.theme-swatch-copper{--swatch-sample-1: #0e0c0a;--swatch-sample-2: #181410;--swatch-sample-3: #e89545;--swatch-sample-4: #f0a858}.theme-swatch-foundry{--swatch-sample-1: #0c0806;--swatch-sample-2: #15100c;--swatch-sample-3: #ffab20;--swatch-sample-4: #ffc040}.theme-swatch-carbon{--swatch-sample-1: #0a0b0d;--swatch-sample-2: #111318;--swatch-sample-3: #6a9acf;--swatch-sample-4: #7ab0e0}.theme-swatch-sandstone{--swatch-sample-1: #1a1712;--swatch-sample-2: #241f18;--swatch-sample-3: #d4a06a;--swatch-sample-4: #e0b080}.theme-swatch-lagoon{--swatch-sample-1: #0a1214;--swatch-sample-2: #101c1f;--swatch-sample-3: #50d8c0;--swatch-sample-4: #60e8d0}.theme-swatch-frost{--swatch-sample-1: #0c0e14;--swatch-sample-2: #121520;--swatch-sample-3: #8ac8f8;--swatch-sample-4: #9ad8ff}.theme-swatch-lavender{--swatch-sample-1: #14101a;--swatch-sample-2: #1c1624;--swatch-sample-3: #c8a0e8;--swatch-sample-4: #d8b0f0}.theme-swatch-neon-bloom{--swatch-sample-1: #120a18;--swatch-sample-2: #1a1024;--swatch-sample-3: #f080d0;--swatch-sample-4: #ff90e0}.theme-swatch-sepia{--swatch-sample-1: #161210;--swatch-sample-2: #201a16;--swatch-sample-3: #d8b878;--swatch-sample-4: #e8c888}.theme-swatch-silver{--swatch-sample-1: #27272a;--swatch-sample-2: #3f3f46;--swatch-sample-3: #94a3b8;--swatch-sample-4: #e2e8f0}.theme-swatch-high-contrast{--swatch-sample-1: #000000;--swatch-sample-2: #0a0a0a;--swatch-sample-3: #00ffff;--swatch-sample-4: #ffff00}.theme-swatch-industrial{--swatch-sample-1: #0c0c0c;--swatch-sample-2: #141414;--swatch-sample-3: #ff6b00;--swatch-sample-4: #ff8c00}.theme-swatch-solarized{--swatch-sample-1: #002b36;--swatch-sample-2: #073642;--swatch-sample-3: #268bd2;--swatch-sample-4: #2aa198}.theme-swatch-factory{--swatch-sample-1: #0a0a0a;--swatch-sample-2: #111111;--swatch-sample-3: #f59e0b;--swatch-sample-4: #06b6d4}.theme-swatch-factory-mono{--swatch-sample-1: #0a0a0a;--swatch-sample-2: #1a1a1a;--swatch-sample-3: #ef4444;--swatch-sample-4: #ffffff}.theme-swatch-shadcn{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #f97316;--swatch-sample-4: #27272a}.theme-swatch-shadcn-ember{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #e8773a;--swatch-sample-4: #27272a}.theme-swatch-shadcn-custom{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #f97316;--swatch-sample-4: #27272a}.theme-swatch-shadcn-blue{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #3b82f6;--swatch-sample-4: #27272a}.theme-swatch-shadcn-green{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #22c55e;--swatch-sample-4: #27272a}.theme-swatch-shadcn-red{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #ef4444;--swatch-sample-4: #27272a}.theme-swatch-shadcn-purple{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #8b5cf6;--swatch-sample-4: #27272a}.theme-swatch-shadcn-pink{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #ec4899;--swatch-sample-4: #27272a}.theme-swatch-shadcn-orange{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #f97316;--swatch-sample-4: #27272a}.theme-swatch-shadcn-yellow{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #eab308;--swatch-sample-4: #27272a}.theme-swatch-shadcn-mono-red{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #ef4444;--swatch-sample-4: #27272a}.theme-swatch-shadcn-mono-blue{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #3b82f6;--swatch-sample-4: #27272a}.theme-swatch-shadcn-mono-green{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #22c55e;--swatch-sample-4: #27272a}.theme-swatch-shadcn-mono-purple{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #8b5cf6;--swatch-sample-4: #27272a}.theme-swatch-shadcn-mono-pink{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #ec4899;--swatch-sample-4: #27272a}.theme-swatch-shadcn-mono-orange{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #f97316;--swatch-sample-4: #27272a}.theme-swatch-shadcn-mono-yellow{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #eab308;--swatch-sample-4: #27272a}.theme-swatch-shadcn-black{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #fafafa;--swatch-sample-4: #27272a}.theme-swatch-shadcn-gray{--swatch-sample-1: #09090b;--swatch-sample-2: #18181b;--swatch-sample-3: #a1a1aa;--swatch-sample-4: #27272a}.theme-swatch-shadcn-gray-blue{--swatch-sample-1: #020617;--swatch-sample-2: #0f172a;--swatch-sample-3: #64748b;--swatch-sample-4: #1e293b}.theme-swatch-ayu{--swatch-sample-1: #0f1419;--swatch-sample-2: #131d27;--swatch-sample-3: #39bae6;--swatch-sample-4: #ffb454}.theme-swatch-one-dark{--swatch-sample-1: #282c34;--swatch-sample-2: #21252b;--swatch-sample-3: #61afef;--swatch-sample-4: #00e5ff}.theme-swatch-nord{--swatch-sample-1: #2e3440;--swatch-sample-2: #3b4252;--swatch-sample-3: #88c0d0;--swatch-sample-4: #81a1c1}.theme-swatch-dracula{--swatch-sample-1: #282a36;--swatch-sample-2: #21222c;--swatch-sample-3: #8be9fd;--swatch-sample-4: #00e5ff}.theme-swatch-gruvbox{--swatch-sample-1: #282828;--swatch-sample-2: #1d2021;--swatch-sample-3: #83a598;--swatch-sample-4: #d3869b}.theme-swatch-tokyo-night{--swatch-sample-1: #1a1b26;--swatch-sample-2: #16161e;--swatch-sample-3: #7aa2f7;--swatch-sample-4: #00e5ff}.theme-swatch-catppuccin-mocha{--swatch-sample-1: #1e1e2e;--swatch-sample-2: #181825;--swatch-sample-3: #89b4fa;--swatch-sample-4: #89dceb}.theme-swatch-github-dark{--swatch-sample-1: #0d1117;--swatch-sample-2: #010409;--swatch-sample-3: #58a6ff;--swatch-sample-4: #79c0ff}.theme-swatch-everforest{--swatch-sample-1: #2d353b;--swatch-sample-2: #272e33;--swatch-sample-3: #7fbbb3;--swatch-sample-4: #e0c8a8}.theme-swatch-rose-pine{--swatch-sample-1: #191724;--swatch-sample-2: #1f1d2e;--swatch-sample-3: #c4a7e7;--swatch-sample-4: #ebbcba}.theme-swatch-kanagawa{--swatch-sample-1: #1f1f28;--swatch-sample-2: #16161d;--swatch-sample-3: #7e9cd8;--swatch-sample-4: #7e9cd8}.theme-swatch-night-owl{--swatch-sample-1: #011627;--swatch-sample-2: #01111d;--swatch-sample-3: #82aaff;--swatch-sample-4: #addb67}.theme-swatch-palenight{--swatch-sample-1: #292d3e;--swatch-sample-2: #1e2235;--swatch-sample-3: #82aaff;--swatch-sample-4: #ffcb6b}.theme-swatch-monokai-pro{--swatch-sample-1: #2d2a2e;--swatch-sample-2: #252229;--swatch-sample-3: #78dce8;--swatch-sample-4: #ff6188}.theme-swatch-slime{--swatch-sample-1: #0a0e09;--swatch-sample-2: #0f150d;--swatch-sample-3: #8aff40;--swatch-sample-4: #40e8a0}.theme-swatch-brutalist{--swatch-sample-1: #101010;--swatch-sample-2: #171717;--swatch-sample-3: #ff6a00;--swatch-sample-4: #ffd100}.theme-swatch-neon-city{--swatch-sample-1: #0d0d15;--swatch-sample-2: #121326;--swatch-sample-3: #ff2d95;--swatch-sample-4: #00f0ff}.theme-swatch-parchment{--swatch-sample-1: #1b1712;--swatch-sample-2: #252019;--swatch-sample-3: #d08a4b;--swatch-sample-4: #be6e3c}.theme-swatch-terminal{--swatch-sample-1: #0a0a0a;--swatch-sample-2: #0f120d;--swatch-sample-3: #33ff00;--swatch-sample-4: #8fff38}.theme-swatch-glass{--swatch-sample-1: #13111f;--swatch-sample-2: color-mix(in srgb, #221b34 78%, transparent);--swatch-sample-3: #c86bff;--swatch-sample-4: #ff7aa8}.theme-swatch-glass-silver{--swatch-sample-1: #101216;--swatch-sample-2: color-mix(in srgb, #252a32 78%, transparent);--swatch-sample-3: #d7dde6;--swatch-sample-4: #9ca6b4}.theme-swatch-horizon{--swatch-sample-1: #1c1e26;--swatch-sample-2: #16161c;--swatch-sample-3: #e59371;--swatch-sample-4: #f08c42}.theme-swatch-vitesse{--swatch-sample-1: #121817;--swatch-sample-2: #0d1210;--swatch-sample-3: #4c9a91;--swatch-sample-4: #dca561}.theme-swatch-outrun{--swatch-sample-1: #0a0a14;--swatch-sample-2: #0d0d1a;--swatch-sample-3: #ff2d95;--swatch-sample-4: #b537f2}.theme-swatch-snazzy{--swatch-sample-1: #282a36;--swatch-sample-2: #1e1f29;--swatch-sample-3: #ff5c57;--swatch-sample-4: #5af78e}.theme-swatch-porple{--swatch-sample-1: #292d3e;--swatch-sample-2: #1e2030;--swatch-sample-3: #c792ea;--swatch-sample-4: #82aaff}.theme-swatch-espresso{--swatch-sample-1: #2c1f1a;--swatch-sample-2: #231813;--swatch-sample-3: #d4a574;--swatch-sample-4: #c17d56}.theme-swatch-mars{--swatch-sample-1: #1a1210;--swatch-sample-2: #140e0c;--swatch-sample-3: #c1440e;--swatch-sample-4: #e77d3d}.theme-swatch-poimandres{--swatch-sample-1: #1a1b26;--swatch-sample-2: #14151f;--swatch-sample-3: #89ddff;--swatch-sample-4: #5de4c7}[data-theme=light] .theme-swatch-factory{--swatch-sample-1: #f5f5f5;--swatch-sample-2: #ffffff;--swatch-sample-3: #d97706;--swatch-sample-4: #0891b2}[data-theme=light] .theme-swatch-factory-mono{--swatch-sample-1: #f5f5f5;--swatch-sample-2: #ffffff;--swatch-sample-3: #dc2626;--swatch-sample-4: #1a1a1a}[data-theme=light] .theme-swatch-shadcn{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #ea580c;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-ember{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #d4622a;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-custom{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #ea580c;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-blue{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #2563eb;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-green{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #16a34a;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-red{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #dc2626;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-purple{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #7c3aed;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-pink{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #db2777;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-orange{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #ea580c;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-yellow{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #ca8a04;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-mono-red{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #dc2626;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-mono-blue{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #2563eb;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-mono-green{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #16a34a;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-mono-purple{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #7c3aed;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-mono-pink{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #db2777;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-mono-orange{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #ea580c;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-mono-yellow{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #ca8a04;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-black{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #09090b;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-gray{--swatch-sample-1: #ffffff;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #52525b;--swatch-sample-4: #e4e4e7}[data-theme=light] .theme-swatch-shadcn-gray-blue{--swatch-sample-1: #ffffff;--swatch-sample-2: #f1f5f9;--swatch-sample-3: #475569;--swatch-sample-4: #e2e8f0}[data-theme=light] .theme-swatch-ayu{--swatch-sample-1: #fafafa;--swatch-sample-2: #f3f3f3;--swatch-sample-3: #007acc;--swatch-sample-4: #ff8f40}[data-theme=light] .theme-swatch-zen{--swatch-sample-1: #f5f5f5;--swatch-sample-2: #fafafa;--swatch-sample-3: #5a6a7a;--swatch-sample-4: #6a757f}[data-theme=light] .theme-swatch-nord{--swatch-sample-1: #eceff4;--swatch-sample-2: #e5e9f0;--swatch-sample-3: #5e81ac;--swatch-sample-4: #5e81ac}[data-theme=light] .theme-swatch-dracula{--swatch-sample-1: #f8f8f2;--swatch-sample-2: #efeefa;--swatch-sample-3: #0097a7;--swatch-sample-4: #00bcd4}[data-theme=light] .theme-swatch-gruvbox{--swatch-sample-1: #fbf1c7;--swatch-sample-2: #f2e5bc;--swatch-sample-3: #076678;--swatch-sample-4: #8f3f71}[data-theme=light] .theme-swatch-tokyo-night{--swatch-sample-1: #e1e2e7;--swatch-sample-2: #d5d6db;--swatch-sample-3: #3b5ea5;--swatch-sample-4: #00bcd4}[data-theme=light] .theme-swatch-catppuccin-mocha{--swatch-sample-1: #eff1f5;--swatch-sample-2: #e6e9ef;--swatch-sample-3: #1e66f5;--swatch-sample-4: #04a5e5}[data-theme=light] .theme-swatch-github-dark{--swatch-sample-1: #ffffff;--swatch-sample-2: #f6f8fa;--swatch-sample-3: #0969da;--swatch-sample-4: #0969da}[data-theme=light] .theme-swatch-everforest{--swatch-sample-1: #fdf6e3;--swatch-sample-2: #f4f0d9;--swatch-sample-3: #3a94a5;--swatch-sample-4: #83a08a}[data-theme=light] .theme-swatch-rose-pine{--swatch-sample-1: #faf4ed;--swatch-sample-2: #fffaf3;--swatch-sample-3: #907aa9;--swatch-sample-4: #b4637a}[data-theme=light] .theme-swatch-kanagawa{--swatch-sample-1: #edeadd;--swatch-sample-2: #e1ddd4;--swatch-sample-3: #4e76b5;--swatch-sample-4: #4e76b5}[data-theme=light] .theme-swatch-one-dark{--swatch-sample-1: #fafafa;--swatch-sample-2: #f0f0f0;--swatch-sample-3: #4078f2;--swatch-sample-4: #0184bc}[data-theme=light] .theme-swatch-night-owl{--swatch-sample-1: #f6f7f9;--swatch-sample-2: #eef0f4;--swatch-sample-3: #2563eb;--swatch-sample-4: #5a9e2f}[data-theme=light] .theme-swatch-palenight{--swatch-sample-1: #f5f7fa;--swatch-sample-2: #ebeef5;--swatch-sample-3: #3b6fcf;--swatch-sample-4: #c49020}[data-theme=light] .theme-swatch-monokai-pro{--swatch-sample-1: #faf8f5;--swatch-sample-2: #f0ece5;--swatch-sample-3: #2d8fa0;--swatch-sample-4: #c4405e}[data-theme=light] .theme-swatch-slime{--swatch-sample-1: #f2f7ea;--swatch-sample-2: #e6efda;--swatch-sample-3: #3d8f10;--swatch-sample-4: #1a8a6a}[data-theme=light] .theme-swatch-brutalist{--swatch-sample-1: #ece9e4;--swatch-sample-2: #f7f4ef;--swatch-sample-3: #d9480f;--swatch-sample-4: #b8860b}[data-theme=light] .theme-swatch-neon-city{--swatch-sample-1: #f7f5ff;--swatch-sample-2: #f1edff;--swatch-sample-3: #cc166e;--swatch-sample-4: #008e9b}[data-theme=light] .theme-swatch-parchment{--swatch-sample-1: #f5f0e8;--swatch-sample-2: #efe7dc;--swatch-sample-3: #a8562f;--swatch-sample-4: #8f4e2a}[data-theme=light] .theme-swatch-terminal{--swatch-sample-1: #e7f5dd;--swatch-sample-2: #deefd2;--swatch-sample-3: #2d6b14;--swatch-sample-4: #4c8f25}[data-theme=light] .theme-swatch-glass{--swatch-sample-1: #eceaf5;--swatch-sample-2: color-mix(in srgb, #ffffff 75%, transparent);--swatch-sample-3: #9d40cf;--swatch-sample-4: #c74b7a}[data-theme=light] .theme-swatch-glass-silver{--swatch-sample-1: #eef0f3;--swatch-sample-2: color-mix(in srgb, #ffffff 75%, transparent);--swatch-sample-3: #5f6875;--swatch-sample-4: #747f8c}[data-theme=light] .theme-swatch-slate{--swatch-sample-1: #f1f5f9;--swatch-sample-2: #e2e8f0;--swatch-sample-3: #3b5ea5;--swatch-sample-4: #4f7090}[data-theme=light] .theme-swatch-ash{--swatch-sample-1: #fafaf9;--swatch-sample-2: #f5f5f4;--swatch-sample-3: #5a6a7a;--swatch-sample-4: #768694}[data-theme=light] .theme-swatch-air{--swatch-sample-1: #fbfbfa;--swatch-sample-2: #ffffff;--swatch-sample-3: #536b86;--swatch-sample-4: #26313d}[data-theme=light] .theme-swatch-graphite{--swatch-sample-1: #fafafa;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #6f7f90;--swatch-sample-4: #8a99aa}[data-theme=light] .theme-swatch-ember{--swatch-sample-1: #fafafa;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #d9480f;--swatch-sample-4: #e8646a}[data-theme=light] .theme-swatch-rust{--swatch-sample-1: #f5efe8;--swatch-sample-2: #ebe3d8;--swatch-sample-3: #a04020;--swatch-sample-4: #b85828}[data-theme=light] .theme-swatch-copper{--swatch-sample-1: #f3ede6;--swatch-sample-2: #e8e0d6;--swatch-sample-3: #905820;--swatch-sample-4: #a87030}[data-theme=light] .theme-swatch-foundry{--swatch-sample-1: #f5f0e6;--swatch-sample-2: #ebe4d6;--swatch-sample-3: #c07808;--swatch-sample-4: #d08a10}[data-theme=light] .theme-swatch-carbon{--swatch-sample-1: #eef0f4;--swatch-sample-2: #e2e6ec;--swatch-sample-3: #3a6090;--swatch-sample-4: #4878a0}[data-theme=light] .theme-swatch-sandstone{--swatch-sample-1: #f5f0e8;--swatch-sample-2: #ebe4d8;--swatch-sample-3: #a07040;--swatch-sample-4: #b08050}[data-theme=light] .theme-swatch-lagoon{--swatch-sample-1: #eef5f3;--swatch-sample-2: #e0ebe8;--swatch-sample-3: #208070;--swatch-sample-4: #289080}[data-theme=light] .theme-swatch-frost{--swatch-sample-1: #f0f4f8;--swatch-sample-2: #e4eaf0;--swatch-sample-3: #3078a8;--swatch-sample-4: #4088b8}[data-theme=light] .theme-swatch-lavender{--swatch-sample-1: #f4f0f8;--swatch-sample-2: #e8e2f0;--swatch-sample-3: #8060a0;--swatch-sample-4: #9070b0}[data-theme=light] .theme-swatch-neon-bloom{--swatch-sample-1: #f8f0f8;--swatch-sample-2: #f0e4f0;--swatch-sample-3: #a03090;--swatch-sample-4: #b040a0}[data-theme=light] .theme-swatch-sepia{--swatch-sample-1: #f5f0e4;--swatch-sample-2: #ece4d4;--swatch-sample-3: #907040;--swatch-sample-4: #a08050}[data-theme=light] .theme-swatch-silver{--swatch-sample-1: #fafafa;--swatch-sample-2: #f4f4f5;--swatch-sample-3: #6b7280;--swatch-sample-4: #9ca3af}[data-theme=light] .theme-swatch-horizon{--swatch-sample-1: #fdf0ed;--swatch-sample-2: #f9cec0;--swatch-sample-3: #e8646a;--swatch-sample-4: #f08c42}[data-theme=light] .theme-swatch-vitesse{--swatch-sample-1: #f8f5f0;--swatch-sample-2: #efe9e0;--swatch-sample-3: #3a8578;--swatch-sample-4: #c08040}[data-theme=light] .theme-swatch-outrun{--swatch-sample-1: #f0f0f5;--swatch-sample-2: #e8e8ef;--swatch-sample-3: #d02080;--swatch-sample-4: #9030c8}[data-theme=light] .theme-swatch-snazzy{--swatch-sample-1: #fafafa;--swatch-sample-2: #f0f0f2;--swatch-sample-3: #d04040;--swatch-sample-4: #30a050}[data-theme=light] .theme-swatch-porple{--swatch-sample-1: #f5f3f7;--swatch-sample-2: #eae7ef;--swatch-sample-3: #9060d8;--swatch-sample-4: #4080c8}[data-theme=light] .theme-swatch-espresso{--swatch-sample-1: #f5ece4;--swatch-sample-2: #ebe1d6;--swatch-sample-3: #a07050;--swatch-sample-4: #906040}[data-theme=light] .theme-swatch-mars{--swatch-sample-1: #f5ece6;--swatch-sample-2: #ebe0d4;--swatch-sample-3: #a03010;--swatch-sample-4: #c06030}[data-theme=light] .theme-swatch-poimandres{--swatch-sample-1: #f0f0f5;--swatch-sample-2: #e6e6ee;--swatch-sample-3: #4090c0;--swatch-sample-4: #30a090}.theme-reset-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);margin-top:20px;padding:10px 16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:all var(--transition-fast);width:100%}.theme-reset-btn:hover{background:var(--card-hover);color:var(--text);border-color:var(--text-muted)}.theme-reset-btn:focus-visible{outline:none;border-color:var(--todo);box-shadow:var(--focus-ring-strong)}.theme-current-preview{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--card);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:20px}.theme-preview-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--surface);border-radius:var(--radius);color:var(--todo)}.theme-preview-info{flex:1}.theme-preview-label{font-size:12px;color:var(--text-muted);margin-bottom:2px}.theme-preview-value{font-size:14px;font-weight:600;color:var(--text);text-transform:capitalize}@media(max-width:768px){.model-combobox-dropdown{max-height:50vh;width:min(360px,calc(100vw - 32px))}.model-combobox-search{font-size:16px}.model-combobox-option{min-height:36px}.theme-selector{padding:0 14px 14px}.theme-font-size-toggle{grid-template-columns:1fr}}.shadcn-color-picker{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--card-padding);border:var(--btn-border-width) solid var(--border);background:var(--card)}.shadcn-color-picker-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-md)}.shadcn-color-picker-heading{min-width:0}.shadcn-color-picker-title{margin:0;color:var(--text);font-size:var(--font-size-base);font-weight:600}.shadcn-color-picker-description{margin:var(--space-xs) 0 0;color:var(--text-muted);font-size:var(--font-size-xs)}.shadcn-color-picker-toggle{flex:0 0 auto}.shadcn-color-picker-controls-panel{display:flex;flex-direction:column;gap:var(--space-sm)}.shadcn-color-picker-actions{display:flex;justify-content:flex-end}.shadcn-color-picker-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(calc(var(--space-2xl) * 7),1fr));gap:var(--space-sm)}.shadcn-color-picker-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);padding:var(--space-sm);border:var(--btn-border-width) solid var(--border);border-radius:var(--radius-md);background:var(--surface)}.shadcn-color-picker-label{display:flex;min-width:0;flex-direction:column;gap:var(--space-xs);color:var(--text);font-size:var(--font-size-xs);font-weight:500}.shadcn-color-picker-label code{color:var(--text-muted);font-family:var(--font-mono);font-size:var(--font-size-xs);font-weight:400}.shadcn-color-picker-controls{display:flex;align-items:center;gap:var(--space-xs)}.shadcn-color-picker-native{width:calc(var(--space-xl) * 2);height:calc(var(--space-xl) * 2);padding:0;border:var(--btn-border-width) solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer}.shadcn-color-picker-hex{width:calc(var(--space-2xl) * 3);font-family:var(--font-mono)}@media(max-width:768px){.shadcn-color-picker-header,.shadcn-color-picker-row,.shadcn-color-picker-controls,.shadcn-color-picker-actions{align-items:stretch;flex-direction:column}.shadcn-color-picker-toggle{align-self:flex-start}.shadcn-color-picker-grid{grid-template-columns:1fr}.shadcn-color-picker-native,.shadcn-color-picker-hex{width:100%}}
@@ -0,0 +1 @@
1
+ import{r as a,j as s}from"./vendor-react-SZ_qB27O.js";import{i as ms,j as us,t as vs,k as hs,l as gs,n as bs,V as ws,Z as xs,X as q,R as fs,o as js,C as ps,L as A,p as H,q as G,M as J}from"./index-CoS-MsCg.js";import{u as Ns}from"./vendor-i18n-GF3RlKbq.js";import"./vendor-reactflow-CnI7NMXG.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";const Ss=new Set([".md",".markdown",".mdx"]);function Cs(r){const d=r.toLowerCase(),j=d.lastIndexOf(".");return j<0?!1:Ss.has(d.slice(j))}function zs({projectId:r,addToast:d,onClose:j}){const{t:e}=Ns("app"),[k,p]=a.useState([]),[F,T]=a.useState(!0),[Y,V]=a.useState(!1),[I,D]=a.useState(null),[_,ss]=a.useState([]),[g,ls]=a.useState(""),[M,B]=a.useState(null),[c,N]=a.useState(null),[b,S]=a.useState(null),[es,K]=a.useState(!1),[Q,C]=a.useState(null),[y,w]=a.useState(null),[u,v]=a.useState(null),[is,z]=a.useState(!1),[$,h]=a.useState(null),m=a.useRef(null),[P,as]=a.useState(""),O=g.trim()?k.filter(l=>l.name.toLowerCase().includes(g.toLowerCase())||l.relativePath.toLowerCase().includes(g.toLowerCase())):k,x=a.useCallback(async()=>{T(!0);try{const l=await ms(r);p(l)}catch(l){const t=l instanceof Error?l.message:e("skills.loadDiscoveredError","Failed to load discovered skills");d(t,"error")}finally{T(!1)}},[r,d]),f=a.useCallback(async l=>{const t=i=>{if(!i||typeof i!="object")return!1;const n=i;if(typeof n.status=="number"&&n.status>=500)return!0;if(n.details&&typeof n.details=="object"){const L=n.details;if(typeof L.code=="string"&&L.code.startsWith("upstream_"))return!0}const o=i;return typeof o.error=="string"&&typeof o.code=="string"};V(!0),D(null);try{const i=await us(l,20,r);ss(i.entries)}catch(i){if(t(i))D(e("skills.catalogUnavailable","Catalog is temporarily unavailable. Please try again later."));else{const n=i instanceof Error?i.message:e("skills.loadCatalogError","Failed to load catalog");D(n)}}finally{V(!1)}},[r]);a.useEffect(()=>{x(),f("")},[x,f]);const ts=a.useCallback(l=>{ls(l),m.current&&clearTimeout(m.current),m.current=setTimeout(()=>{as(l),m.current=null},300)},[]);a.useEffect(()=>()=>{m.current&&(clearTimeout(m.current),m.current=null)},[]),a.useEffect(()=>{f(P)},[P,f]);const ns=a.useCallback(async(l,t)=>{const i=!t;p(n=>n.map(o=>o.id===l?{...o,toggling:!0}:o));try{await vs(l,i,r),p(n=>n.map(o=>o.id===l?{...o,enabled:i,toggling:!1}:o)),d(e(`skills.${i?"enabled":"disabled"}`,i?"Skill enabled":"Skill disabled"),"success")}catch(n){p(L=>L.map(R=>R.id===l?{...R,toggling:!1}:R));const o=n instanceof Error?n.message:e("skills.toggleError","Failed to toggle skill");d(e("skills.toggleFailed","Failed to toggle skill: {{message}}",{message:o}),"error")}},[r,d]),cs=a.useCallback(async l=>{const t=l.repo?.trim();if(!(!t||M===l.id)){B(l.id);try{await hs(t,l.slug||l.name,r),d(e("skills.installSuccess","Installed {{name}}",{name:l.name}),"success"),await x()}catch(i){const n=i instanceof Error?i.message:e("skills.installError","Failed to install skill");d(e("skills.installFailed","Failed to install {{name}}: {{message}}",{name:l.name,message:n}),"error")}finally{B(i=>i===l.id?null:i)}}},[d,M,x,r]),E=a.useCallback(async l=>{K(!0),C(null),S(null),w(null),v(null),h(null);try{const t=await gs(l,r);S(t)}catch(t){const i=t instanceof Error?t.message:e("skills.loadContentError","Failed to load skill content");C(i)}finally{K(!1)}},[r]),U=a.useCallback((l,t)=>{if(!(t&&t.target.closest(".skills-view-item-toggle"))){if(c===l){N(null),S(null),C(null),w(null),v(null),h(null);return}N(l),E(l)}},[c,E]),os=a.useCallback(l=>{c!==l&&N(l),E(l)},[E,c]),W=a.useCallback(async(l,t)=>{w(t),v(null),h(null),z(!0);try{const i=await bs(l,t,r);v(i)}catch(i){const n=i instanceof Error?i.message:e("skills.loadFileError","Failed to load file");h(n)}finally{z(!1)}},[r]),rs=a.useCallback(()=>{w(null),v(null),h(null),z(!1)},[]),X=a.useCallback(()=>{N(null),S(null),C(null),w(null),v(null),h(null)},[]),ds=a.useMemo(()=>k.find(l=>l.id===c)??null,[k,c]),Z=()=>!b||b.files.length===0?null:s.jsxs("div",{className:"skills-view-detail-files","data-testid":"skill-files",children:[s.jsxs("span",{className:"skills-view-detail-files-label",children:[e("skills.filesLabel","Files"),":"]}),b.files.map(l=>{if(l.type==="directory")return s.jsxs("span",{className:"badge badge--sm skills-view-detail-file--dir",children:[l.name,"/"]},l.relativePath);const t=y===l.relativePath;return s.jsx("button",{type:"button","data-testid":"skill-file-item",className:`badge badge--sm skills-view-detail-file${t?" skills-view-detail-file--active":""}`,onClick:()=>c&&void W(c,l.relativePath),"aria-pressed":t,"aria-label":e("skills.viewFile","View {{name}}",{name:l.name}),children:l.name},l.relativePath)})]}),ks=()=>c?es?s.jsxs("div",{className:"skills-view-detail-loading",children:[s.jsx(A,{size:16,className:"spin"}),e("skills.loadingContent","Loading skill content...")]}):Q?s.jsxs("div",{className:"skills-view-detail-error",children:[s.jsx(G,{size:14}),s.jsx("span",{children:Q}),s.jsx("button",{className:"btn btn-sm",onClick:()=>os(c),children:e("common.retry","Retry")})]}):b?y!==null?s.jsxs("div",{className:"skills-view-file-viewer","data-testid":"skill-file-viewer",children:[s.jsxs("div",{className:"skills-view-file-viewer-bar",children:[s.jsxs("button",{type:"button",className:"btn btn-sm skills-view-file-back",onClick:rs,"data-testid":"skill-file-back","aria-label":e("skills.backToSkillMd","Back to SKILL.md"),children:[s.jsx(H,{size:14}),e("skills.backToSkillMd","Back to SKILL.md")]}),s.jsx("span",{className:"skills-view-file-viewer-name",children:y})]}),is?s.jsxs("div",{className:"skills-view-detail-loading",children:[s.jsx(A,{size:16,className:"spin"}),e("skills.loadingFile","Loading file...")]}):$?s.jsxs("div",{className:"skills-view-detail-error",children:[s.jsx(G,{size:14}),s.jsx("span",{children:$}),s.jsx("button",{className:"btn btn-sm",onClick:()=>c&&void W(c,y),children:e("common.retry","Retry")})]}):u&&!u.isText?s.jsx("div",{className:"skills-view-detail-empty",children:e("skills.fileNotPreviewable","This file cannot be previewed.")}):u?Cs(u.relativePath)?s.jsx(J,{content:u.content||e("skills.emptyFile","(Empty file)"),className:"skills-view-detail-markdown",testId:"skills-view-detail-markdown"}):s.jsx("pre",{className:"skills-view-detail-content",children:u.content||e("skills.emptyFile","(Empty file)")}):null,Z()]}):s.jsxs(s.Fragment,{children:[s.jsx(J,{content:b.skillMd||e("skills.noSkillMd","(No SKILL.md found)"),className:"skills-view-detail-markdown",testId:"skills-view-detail-markdown"}),Z()]}):null:s.jsx("div",{className:"skills-view-detail-placeholder","data-testid":"skills-detail-empty",children:e("skills.selectASkill","Select a skill to view its details")});return s.jsxs("div",{className:"skills-view","data-testid":"skills-view","data-selected":c?"true":"false",children:[s.jsx(ws,{icon:xs,title:e("skills.title","Skills"),actions:s.jsxs(s.Fragment,{children:[s.jsxs("span",{className:"skills-view-count","aria-label":e("skills.discoveredCount","{{count}} discovered skills",{count:k.length}),children:[k.length," ",e("skills.discovered","discovered")]}),s.jsx("button",{className:"btn-icon skills-view-close touch-target",onClick:j,"aria-label":e("skills.closeView","Close skills view"),children:s.jsx(q,{size:16})}),s.jsxs("button",{className:"btn btn-sm",onClick:()=>void x(),disabled:F,children:[s.jsx(fs,{size:14,className:F?"spin":""}),e("common.refresh","Refresh")]})]})}),s.jsxs("div",{className:"skills-view-body",children:[s.jsx("div",{className:"skills-view__list","data-testid":"skills-list",children:s.jsxs("div",{className:"skills-view-content",children:[s.jsx("div",{className:"skills-view-search",children:s.jsx("input",{type:"text",className:"form-input",placeholder:e("skills.searchPlaceholder","Search skills..."),value:g,onChange:l=>ts(l.target.value),"aria-label":e("skills.searchLabel","Search skills")})}),s.jsxs("section",{className:"skills-view-section","aria-labelledby":"discovered-skills-title",children:[s.jsx("h3",{id:"discovered-skills-title",className:"skills-view-section-title",children:e("skills.discoveredSection","Discovered Skills")}),F?s.jsxs("div",{className:"skills-view-loading",children:[s.jsx("span",{className:"spinner"}),e("skills.loadingDiscovered","Loading discovered skills...")]}):k.length===0?s.jsx("div",{className:"skills-view-empty",children:s.jsx("p",{children:e("skills.noDiscovered","No skills discovered in this project.")})}):O.length===0?s.jsx("div",{className:"skills-view-empty",children:s.jsx("p",{children:e("skills.noMatchingDiscovered","No discovered skills match your search.")})}):s.jsx("div",{className:"skills-view-list",children:O.map(l=>{const t=c===l.id;return s.jsx("div",{children:s.jsxs("div",{className:`skills-view-item${t?" skills-view-item--selected":""}`,onClick:i=>U(l.id,i),role:"button",tabIndex:0,onKeyDown:i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),U(l.id))},"aria-expanded":t,"aria-label":e("skills.viewDetails","View details for {{name}}",{name:l.name}),children:[s.jsxs("div",{className:"skills-view-item-info",children:[s.jsxs("span",{className:"skills-view-item-name",children:[t?s.jsx(js,{size:14}):s.jsx(ps,{size:14}),s.jsx("span",{className:"skills-view-item-name-text",children:l.name})]}),s.jsx("span",{className:"skills-view-item-path",children:l.relativePath}),s.jsx("span",{className:"skills-view-item-source",children:l.metadata.source})]}),s.jsxs("label",{className:"skills-view-item-toggle",onClick:i=>i.stopPropagation(),children:[s.jsx("input",{type:"checkbox",checked:l.enabled,disabled:l.toggling,onChange:()=>void ns(l.id,l.enabled),"aria-label":e(`skills.${l.enabled?"disable":"enable"}Skill`,l.enabled?"Disable {{name}}":"Enable {{name}}",{name:l.name})}),s.jsx("span",{className:"skills-view-toggle-slider"})]})]})},l.id)})})]}),s.jsxs("section",{className:"skills-view-section","aria-labelledby":"catalog-title",children:[s.jsx("h3",{id:"catalog-title",className:"skills-view-section-title",children:e("skills.catalogSection","Skills Catalog")}),I?s.jsxs("div",{className:"skills-view-error",children:[s.jsx("p",{children:I}),s.jsx("button",{className:"btn btn-sm",onClick:()=>void f(P),children:e("common.tryAgain","Try Again")})]}):Y?s.jsxs("div",{className:"skills-view-loading",children:[s.jsx("span",{className:"spinner"}),e("skills.loadingCatalog","Loading catalog...")]}):_.length===0?s.jsx("div",{className:"skills-view-empty",children:g?s.jsx("p",{children:e("skills.noMatchingSearch","No skills match your search.")}):s.jsx("p",{children:e("skills.noCatalogAvailable","No skills available in the catalog.")})}):s.jsx("div",{className:"skills-view-grid",children:_.map(l=>{const i=!!l.repo?.trim(),n=M===l.id;return s.jsxs("div",{className:"skills-view-card",children:[s.jsxs("div",{className:"skills-view-card-header",children:[s.jsx("h4",{className:"skills-view-card-title",children:l.name}),i?s.jsxs("button",{type:"button",className:"btn btn-sm skills-view-card-install",onClick:()=>void cs(l),disabled:n,"aria-label":e("skills.installSkill","Install {{name}}",{name:l.name}),children:[n?s.jsx(A,{size:14,className:"spin"}):null,n?e("skills.installing","Installing…"):e("skills.install","Install")]}):null]}),l.description&&s.jsx("p",{className:"skills-view-card-description",children:l.description}),l.tags&&l.tags.length>0&&s.jsx("div",{className:"skills-view-card-tags",children:l.tags.map(o=>s.jsx("span",{className:"badge badge--sm",children:o},o))}),l.installs!==void 0&&s.jsx("span",{className:"skills-view-card-installs",children:e("skills.installsCount","{{value}} installs",{value:l.installs.toLocaleString()})})]},l.id)})})]})]})}),s.jsxs("div",{className:"skills-view__detail","data-testid":"skill-detail",children:[s.jsxs("div",{className:"skills-view-detail-header",children:[s.jsx("button",{type:"button",className:"btn btn-sm btn-icon skills-view-detail-back",onClick:X,"aria-label":e("skills.backToList","Back to skills"),title:e("skills.backToList","Back to skills"),"data-testid":"skills-detail-back",children:s.jsx(H,{size:14})}),s.jsx("span",{className:"skills-view-detail-title",children:ds?.name??e("skills.detailTitle","Skill")}),s.jsxs("button",{className:"btn btn-sm skills-view-detail-close",onClick:X,disabled:!c,"aria-label":e("skills.closeDetail","Close skill detail"),children:[s.jsx(q,{size:14}),e("common.close","Close")]})]}),s.jsx("div",{className:"skills-view-detail-body",children:ks()})]})]})]})}export{zs as SkillsView};
@@ -0,0 +1 @@
1
+ .skills-view{display:flex;flex:1 1 auto;flex-direction:column;height:100%;min-width:0;width:100%;overflow:hidden;container-type:inline-size;container-name:skills-view}.skills-view-body,.skills-view__list{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;min-width:0;overflow:hidden}.skills-view__detail{display:none;flex-direction:column;flex:1 1 auto;min-height:0;min-width:0;overflow:hidden}.skills-view[data-selected=true] .skills-view__list{display:none}.skills-view[data-selected=true] .skills-view__detail{display:flex}.skills-view-detail-body{flex:1 1 auto;min-height:0;overflow-y:auto;padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.skills-view-detail-placeholder{display:flex;align-items:center;justify-content:center;flex:1 1 auto;text-align:center;color:var(--text-muted)}.skills-view-detail-back{flex-shrink:0}@container skills-view (min-width: 640px){.skills-view-body{flex-direction:row}.skills-view__list{display:flex;flex:0 0 clamp(280px,38%,460px);min-width:0;overflow:hidden;border-right:1px solid var(--border)}.skills-view__detail,.skills-view[data-selected=true] .skills-view__detail{display:flex;flex:1 1 auto;min-width:0;overflow:hidden}.skills-view[data-selected=true] .skills-view__list{display:flex}.skills-view__detail .skills-view-detail-back{display:none}}.skills-view-count{color:var(--text-muted)}.skills-view-content{flex:1;overflow-y:auto;padding:var(--space-lg) var(--space-lg) var(--space-lg)}.skills-view-section{margin-bottom:var(--space-xl)}.skills-view-section-title{font-weight:600;color:var(--text);margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border);display:flex;align-items:center;gap:var(--space-sm)}.skills-view-list{display:flex;flex-direction:column;gap:var(--space-sm)}.skills-view-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-sm) var(--space-md);background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast),border-color var(--transition-fast)}.skills-view-item:hover{background:var(--card-hover);border-color:var(--text-muted)}.skills-view-item-info{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0;flex:1}.skills-view-item-name{display:flex;align-items:center;gap:var(--space-xs);max-width:100%;min-width:0;font-size:.9em;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skills-view-item-name svg{flex-shrink:0}.skills-view-item-name-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skills-view-item-path{max-width:100%;font-size:.85em;color:var(--text-muted);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skills-view-item-source{max-width:100%;font-size:.85em;color:var(--text-dim);text-transform:uppercase;letter-spacing:calc(var(--space-xs) / 8);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skills-view-item-toggle{position:relative;display:flex;align-items:center;cursor:pointer;user-select:none;flex-shrink:0}.skills-view-item-toggle input{position:absolute;width:calc(var(--space-xs) / 4);height:calc(var(--space-xs) / 4);padding:0;margin:calc(var(--space-xs) / -4);overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skills-view-toggle-slider{position:relative;width:calc(var(--space-xl) + var(--space-lg));height:calc(var(--space-xl) - (var(--space-xs) / 2));background:var(--border);border-radius:var(--radius-md);transition:background var(--transition-normal);flex-shrink:0}.skills-view-toggle-slider:after{content:"";position:absolute;top:calc(var(--space-xs) / 2);left:calc(var(--space-xs) / 2);width:calc(var(--space-lg) + (var(--space-xs) / 2));height:calc(var(--space-lg) + (var(--space-xs) / 2));background:var(--card);border-radius:50%;transition:transform var(--transition-normal)}.skills-view-item-toggle input:checked+.skills-view-toggle-slider{background:var(--color-success)}.skills-view-item-toggle input:checked+.skills-view-toggle-slider:after{transform:translate(calc(var(--space-lg) + (var(--space-xs) / 2)))}.skills-view-search{margin-bottom:var(--space-lg)}.skills-view-search .form-input{width:100%;max-width:calc(var(--space-2xl) * 12 + var(--space-md))}.skills-view-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(calc(var(--space-2xl) * 8 + var(--space-lg)),1fr));gap:var(--space-md)}.skills-view-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-md);min-height:calc(var(--space-2xl) * 3 + var(--space-xl));display:flex;flex-direction:column;gap:var(--space-sm);transition:background var(--transition-fast),border-color var(--transition-fast)}.skills-view-card:hover{background:var(--card-hover);border-color:var(--text-muted)}.skills-view-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-sm)}.skills-view-card-install{align-self:flex-start;flex-shrink:0}.skills-view-card-title{font-weight:600;color:var(--text);margin:0}.skills-view-card-description{color:var(--text-muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin:0}.skills-view-card-tags{display:flex;flex-wrap:wrap;gap:var(--space-xs)}.skills-view-card-installs{color:var(--text-dim);margin-top:auto}.skills-view-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-md);padding:var(--space-2xl);border:1px dashed var(--border);border-radius:var(--radius-md);text-align:center;color:var(--text-muted)}.skills-view-error{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-lg);color:var(--color-error);background:color-mix(in srgb,var(--color-error) 8%,transparent);border:1px solid color-mix(in srgb,var(--color-error) 25%,transparent);border-radius:var(--radius-md);text-align:center}.skills-view-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-xl);color:var(--text-muted)}.skills-view-close{flex-shrink:0}.skills-view-item--selected{border-color:var(--todo);background:var(--card-hover)}.skills-view-detail{background:var(--surface);border:1px solid var(--border);border-left:calc(var(--space-md) / 4) solid var(--todo);border-radius:var(--radius-md);margin:var(--space-sm) 0 var(--space-md) 0;padding:var(--space-lg)}.skills-view-detail-header{display:flex;align-items:center;gap:var(--space-sm);flex:0 0 auto;padding:var(--space-sm) var(--space-lg);border-bottom:1px solid var(--border)}.skills-view-detail-title{flex:1 1 auto;min-width:0;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skills-view-detail-close{flex-shrink:0}.skills-view-detail-content{font-family:var(--font-mono);font-size:.9em;line-height:1.5;overflow-x:auto;white-space:pre-wrap;word-break:break-word;color:var(--text);background:var(--bg);padding:var(--space-md);border-radius:var(--radius-sm);max-height:calc(var(--space-2xl) * 12 + var(--space-md));overflow-y:auto}.skills-view-detail-files{display:flex;flex-wrap:wrap;align-items:center;gap:calc(var(--space-xs) / 2);margin-top:var(--space-sm);padding-top:var(--space-xs);border-top:1px solid var(--border);font-size:.85em}.skills-view-detail-files-label{color:var(--text-muted)}.skills-view-detail-file{appearance:none;border:1px solid var(--border);background:var(--card);color:var(--text);cursor:pointer;font:inherit;line-height:1.2;transition:background var(--transition-fast),border-color var(--transition-fast)}.skills-view-detail-file:hover{background:var(--card-hover);border-color:var(--text-muted)}.skills-view-detail-file--active{border-color:var(--todo);background:var(--card-hover)}.skills-view-detail-file--dir{color:var(--text-dim)}.skills-view-file-viewer{display:flex;flex-direction:column;gap:var(--space-sm);min-width:0}.skills-view-file-viewer-bar{display:flex;align-items:center;gap:var(--space-sm);min-width:0}.skills-view-file-back{flex-shrink:0}.skills-view-file-viewer-name{flex:1 1 auto;min-width:0;color:var(--text-muted);font-family:var(--font-mono);font-size:.9em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.skills-view-detail-markdown{min-width:0;font-size:.9em;word-break:break-word}.skills-view-detail-loading{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md);color:var(--text-muted)}.skills-view-detail-error{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-md);color:var(--color-error);background:color-mix(in srgb,var(--color-error) 10%,transparent);border-radius:var(--radius-sm);text-align:center}.skills-view-detail-empty{padding:var(--space-md);color:var(--text-muted);font-style:italic}@media(max-width:768px){.skills-view-content{padding:var(--space-md)}.skills-view-section{margin-bottom:var(--space-md)}.skills-view-card{padding:var(--space-sm)}.skills-view-empty,.skills-view-error{padding:var(--space-lg)}.skills-view-loading{padding:var(--space-md)}.skills-view-search .form-input{width:100%;max-width:none}.skills-view-grid{grid-template-columns:1fr}.skills-view-card-header{flex-wrap:wrap}.skills-view-item{padding:var(--space-md);min-height:calc(var(--space-lg) + var(--space-md) + var(--space-xs));flex-wrap:nowrap}.skills-view-item-info{flex:1 1 auto;width:auto}.skills-view-item-toggle{padding:var(--space-sm)}.skills-view-item--selected{border-color:var(--todo)}.skills-view-toggle-slider{min-width:calc(var(--space-xl) + var(--space-lg));min-height:calc(var(--space-xl) - (var(--space-xs) / 2))}.skills-view-detail{padding:var(--space-md)}.skills-view-detail-content{max-height:calc(60dvh - (var(--space-2xl) * 6 + var(--space-xs)));-webkit-overflow-scrolling:touch}.skills-view-detail-close{min-width:calc(var(--space-lg) + var(--space-md) + var(--space-xs));min-height:calc(var(--space-lg) + var(--space-md) + var(--space-xs))}}
@@ -0,0 +1 @@
1
+ .todo-view{display:flex;flex:1 1 auto;flex-direction:column;gap:var(--space-lg);height:100%;min-height:0;min-width:0;width:100%;overflow:hidden;padding:0 var(--space-lg) var(--space-lg);container-type:inline-size;container-name:todo-view}.todo-mobile-back-btn{display:none}.todo-view-subtitle{margin:0;color:var(--text-muted)}.todo-view-layout{display:flex;flex-direction:row;flex:1 1 auto;min-height:0;min-width:0;overflow:hidden;gap:var(--space-lg)}.todo-view-sidebar{width:calc(var(--space-2xl) * 7 + var(--space-sm));border-right:calc(var(--space-xs) / 4) solid var(--border);padding-right:var(--space-lg);overflow-y:auto;flex-shrink:0;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text-muted) 45%,transparent) transparent}.todo-view-main{flex:1;overflow-y:auto;display:flex;flex-direction:column;min-width:0;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--text-muted) 45%,transparent) transparent}.todo-view-sidebar::-webkit-scrollbar,.todo-view-main::-webkit-scrollbar{width:var(--space-sm);height:var(--space-sm)}.todo-view-sidebar::-webkit-scrollbar-thumb,.todo-view-main::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--text-muted) 45%,transparent);border-radius:var(--radius-pill)}.todo-view-sidebar::-webkit-scrollbar-track,.todo-view-main::-webkit-scrollbar-track{background:transparent}.todo-sidebar-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:var(--space-md)}.todo-sidebar-title{font-size:calc(var(--space-md) + (var(--space-xs) / 4));color:var(--text-muted);text-transform:uppercase;letter-spacing:calc(var(--space-xs) / 8);margin:0}.todo-add-list-btn{min-height:calc(var(--space-2xl) + var(--space-xs));min-width:calc(var(--space-2xl) + var(--space-xs))}.todo-list-items{display:flex;flex-direction:column;gap:var(--space-xs)}.todo-list-item{display:flex;flex-direction:row;align-items:center;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);gap:var(--space-sm);color:var(--text-muted);transition:background var(--transition-fast),color var(--transition-fast)}.todo-list-item:hover{background:var(--card-hover);color:var(--text)}.todo-list-select-btn{flex:1;min-width:0;border:0;background:none;color:inherit;text-align:left;cursor:pointer;padding:0}.todo-list-select-btn:focus-visible{outline:none;border-radius:var(--radius-sm);box-shadow:var(--focus-ring)}.todo-list-item--active{background:var(--surface);color:var(--text);font-weight:500}.todo-list-item-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:calc(var(--space-md) + (var(--space-xs) / 4))}.todo-list-item-actions{display:flex;flex-direction:row;gap:var(--space-xs);opacity:0;transition:opacity var(--transition-fast)}.todo-list-item:hover .todo-list-item-actions,.todo-list-item:focus-within .todo-list-item-actions,.todo-list-item--active .todo-list-item-actions{opacity:1}.todo-icon-btn{min-height:calc(var(--space-lg) + var(--space-sm));min-width:calc(var(--space-lg) + var(--space-sm))}.todo-inline-edit-input{flex:1;font-size:calc(var(--space-md) + (var(--space-xs) / 4))}.todo-items-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:var(--space-md);gap:var(--space-sm)}.todo-items-header h3{margin:0;font-size:calc(var(--space-md) + (var(--space-xs) / 2));font-weight:500;color:var(--text)}.todo-add-item-row{display:flex;flex-direction:row;gap:var(--space-sm);margin-bottom:var(--space-lg)}.todo-add-item-row .input{flex:1}.todo-items-list{display:flex;flex-direction:column}.todo-item{position:relative;display:flex;flex-direction:column;align-items:stretch;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);gap:var(--space-sm);border-bottom:calc(var(--space-xs) / 4) solid var(--border);transition:background var(--transition-fast)}.todo-item:hover{background:var(--card-hover)}.todo-item-main-row{display:flex;align-items:flex-start;gap:var(--space-sm);min-width:0}.todo-item-checkbox{margin:0;width:var(--space-lg);height:var(--space-lg);accent-color:var(--todo);cursor:pointer;flex-shrink:0}.todo-item-text{flex:1;font-size:calc(var(--space-md) + (var(--space-xs) / 4));color:var(--text);cursor:pointer;word-break:break-word;background:none;border:0;padding:0;text-align:left}.todo-item-text:focus-visible{outline:none;border-radius:var(--radius-sm);box-shadow:var(--focus-ring-strong)}.todo-item-text--completed{text-decoration:line-through;color:var(--text-muted)}.todo-item-actions{display:flex;flex-wrap:wrap;flex-direction:row;align-items:center;gap:var(--space-xs);opacity:1;transition:opacity var(--transition-fast);margin-left:calc(var(--space-lg) + var(--space-sm))}.todo-item-reorder-btns{display:flex;flex-direction:row;gap:0}.todo-item-reorder-btn{min-height:var(--space-xl);min-width:var(--space-xl)}.todo-agent-picker-trigger{position:relative}.todo-agent-picker-dropdown{position:absolute;right:0;top:100%;z-index:50;display:flex;flex-direction:column;gap:var(--space-xs);margin-top:var(--space-xs);min-width:calc(var(--space-2xl) * 6 + var(--space-md));max-height:calc(var(--space-2xl) * 7 + var(--space-md));overflow-y:auto;padding:var(--space-xs);border:calc(var(--space-xs) / 4) solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-lg)}.todo-agent-picker-item{width:100%;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text);padding:var(--space-sm);display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:var(--space-sm);text-align:left;cursor:pointer;transition:background var(--transition-fast)}.todo-agent-picker-item:hover{background:var(--card-hover)}.todo-agent-picker-item:focus-visible{outline:none;box-shadow:var(--focus-ring-strong)}.todo-agent-picker-role{color:var(--text-muted);font-size:calc(var(--space-md) - (var(--space-xs) / 4));text-transform:uppercase;letter-spacing:calc(var(--space-xs) / 8)}.todo-agent-picker-loading,.todo-agent-picker-empty{color:var(--text-muted);padding:var(--space-sm);font-size:calc(var(--space-md) + (var(--space-xs) / 8))}.todo-error-banner{border:calc(var(--space-xs) / 4) solid color-mix(in srgb,var(--color-error) 35%,transparent);background:color-mix(in srgb,var(--color-error) 10%,transparent);color:var(--color-error);border-radius:var(--radius-md);padding:var(--space-md);margin-bottom:var(--space-md);display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm)}.todo-error-message{font-size:calc(var(--space-md) + (var(--space-xs) / 4))}.todo-empty-state,.todo-loading{color:var(--text-muted);padding:var(--space-2xl);text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);flex:1}.todo-loading-icon{animation:todo-loading-spinner-spin calc(var(--duration-slow) * 4) linear infinite}@keyframes todo-loading-spinner-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.todo-view{gap:var(--space-md);padding:var(--space-lg);background:var(--bg)}.todo-view-layout{gap:var(--space-md);padding:0}.todo-view-sidebar,.todo-view-main{min-height:0;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow-sm)}.todo-view-sidebar{width:min(32%,320px);min-width:240px;padding:var(--space-md);border-right:1px solid var(--border)}.todo-view-main{padding:var(--space-md)}.todo-sidebar-header{margin-bottom:var(--space-sm);padding-bottom:var(--space-sm)}.todo-sidebar-title{color:var(--text);font-size:.75rem;font-weight:700;letter-spacing:.08em}.todo-add-list-btn,.todo-icon-btn,.todo-item-reorder-btn{border-color:transparent;background:transparent}.todo-list-items{gap:var(--space-sm)}.todo-list-item{min-height:42px;padding:var(--space-sm);border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-muted)}.todo-list-item:hover{background:var(--card-hover);border-color:color-mix(in srgb,var(--border) 70%,transparent)}.todo-list-item--active{background:color-mix(in srgb,var(--todo) 10%,var(--surface));border-color:color-mix(in srgb,var(--todo) 32%,var(--border));color:var(--text);box-shadow:inset 3px 0 0 var(--todo)}.todo-list-select-btn{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--space-sm)}.todo-list-item-name{font-weight:600}.todo-list-item-count{padding:2px var(--space-xs);border:1px solid var(--border);border-radius:var(--radius-pill);background:var(--bg);color:var(--text-muted);font-family:var(--font-mono);font-size:.6875rem;line-height:1.2}.todo-list-item--active .todo-list-item-count{border-color:color-mix(in srgb,var(--todo) 36%,var(--border));color:var(--todo)}.todo-items-header{align-items:flex-start;margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:1px solid var(--border)}.todo-items-heading{display:flex;flex:1;min-width:0;flex-direction:column;gap:var(--space-xs)}.todo-items-heading h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:1.05rem;font-weight:650}.todo-items-progress{color:var(--text-muted);font-size:.8125rem}.todo-add-item-row{margin-bottom:var(--space-md);padding:var(--space-sm);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--bg)}.todo-add-item-row .input{min-height:34px;border-color:transparent;background:transparent}.todo-add-item-row .input:focus{border-color:var(--border);background:var(--surface)}.todo-add-item-row .btn{display:inline-flex;align-items:center;gap:var(--space-xs);white-space:nowrap}.todo-items-list{gap:var(--space-sm)}.todo-item{padding:var(--space-md);border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--card);box-shadow:var(--shadow-sm, 0 1px 2px color-mix(in srgb, var(--bg) 70%, transparent));transition:background var(--transition-fast),border-color var(--transition-fast),transform var(--transition-fast)}.todo-item:hover{background:var(--surface);border-color:color-mix(in srgb,var(--todo) 28%,var(--border));transform:translateY(-1px)}.todo-item-main-row{align-items:flex-start}.todo-item-checkbox{width:18px;height:18px;margin-top:2px}.todo-item-text{line-height:1.45;font-weight:500}.todo-item-text--completed{color:var(--text-muted)}.todo-item-actions{align-items:center;margin-left:calc(var(--space-lg) + var(--space-sm));padding-top:var(--space-xs);border-top:1px solid color-mix(in srgb,var(--border) 70%,transparent)}.todo-item-reorder-btns{padding-right:var(--space-xs);border-right:1px solid var(--border)}.todo-empty-state,.todo-loading{border:1px dashed var(--border);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 70%,transparent)}@container todo-view (max-width: 520px){.todo-view-layout{flex-direction:column;min-height:0;overflow:hidden;gap:0}.todo-view-sidebar,.todo-view-main{width:100%;min-width:0;flex:1 1 auto;border-right:none;padding-right:0;overflow-x:hidden;overflow-y:auto}.todo-view-sidebar{border-bottom:none}.todo-view-layout[data-mobile-stack-view=list] .todo-view-main,.todo-view-layout[data-mobile-stack-view=detail] .todo-view-sidebar{display:none}.todo-mobile-back-btn{display:inline-flex}.todo-list-item,.todo-list-select-btn,.todo-add-list-btn,.todo-icon-btn,.todo-item,.todo-item-reorder-btn,.todo-add-item-row .btn{min-height:calc(var(--space-2xl) + var(--space-xs))}.todo-list-item-actions,.todo-item-actions{opacity:1}.todo-item-actions{margin-left:0}.todo-add-item-row{flex-wrap:wrap}.todo-add-item-row .btn{width:100%}.todo-agent-picker-trigger{position:static}.todo-agent-picker-dropdown{left:0;right:0;min-width:100%;max-height:calc(var(--space-2xl) * 8)}.todo-agent-picker-item{min-height:calc(var(--space-2xl) + var(--space-xs))}}@media(max-width:768px){.todo-view{padding:0 var(--space-md) var(--space-md);min-height:0}.todo-view-layout{flex-direction:column;min-height:0;overflow:hidden;padding:0}.todo-view-sidebar{width:100%;border-right:none;border-bottom:calc(var(--space-xs) / 4) solid var(--border);padding-right:0;padding-bottom:var(--space-md);max-height:calc(var(--space-2xl) * 6 + var(--space-sm))}.todo-view-main{width:100%;flex:1;min-height:0}.todo-list-item,.todo-list-select-btn,.todo-add-list-btn,.todo-icon-btn,.todo-item,.todo-item-reorder-btn,.todo-add-item-row .btn{min-height:calc(var(--space-2xl) + var(--space-xs))}.todo-add-item-row{flex-wrap:wrap}.todo-add-item-row .btn{width:100%}.todo-list-item-actions,.todo-item-actions{opacity:1}.todo-item-main-row{align-items:center}.todo-item-actions{margin-left:0}.todo-item-checkbox{width:calc(var(--space-2xl) + var(--space-xs));height:calc(var(--space-2xl) + var(--space-xs))}.todo-agent-picker-trigger{position:static}.todo-agent-picker-dropdown{left:0;right:0;min-width:100%;max-height:calc(var(--space-2xl) * 8)}.todo-agent-picker-item{min-height:calc(var(--space-2xl) + var(--space-xs))}}
@@ -0,0 +1,6 @@
1
+ import{r as l,j as e}from"./vendor-react-SZ_qB27O.js";import{c as Rt,ay as ft,az as ht,aA as Ot,bg as _t,bh as Pt,bi as Ut,bj as Kt,bk as Bt,bl as Vt,bm as Xt,bn as zt,aD as Gt,ae as Wt,bo as qt,bp as Z,bq as xt,L as Ht,P as gt,G as tt,X as et,br as vt,I as Lt,J as yt,bs as Jt,ad as Yt,o as Qt,bt as Zt,bu as jt,al as te}from"./index-CoS-MsCg.js";import{u as kt}from"./vendor-i18n-GF3RlKbq.js";import"./vendor-reactflow-CnI7NMXG.js";import"./vendor-xterm-BNq00GSj.js";import"./vendor-codemirror-jBKmHyH0.js";/**
2
+ * @license lucide-react v1.7.0 - ISC
3
+ *
4
+ * This source code is licensed under the ISC license.
5
+ * See the LICENSE file in the root directory of this source tree.
6
+ */const ee=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 12h8",key:"1wcyev"}],["path",{d:"M12 8v8",key:"napkw2"}]],se=Rt("circle-plus",ee);function oe(C){const{items:r,...f}=C;return f}function It(C){return typeof crypto<"u"&&typeof crypto.randomUUID=="function"?`${C}-${crypto.randomUUID()}`:`${C}-${Date.now()}-${Math.random().toString(36).slice(2,10)}`}function ae(C={}){const{t:r}=kt("app"),{projectId:f,addToast:L}=C,o=`${Ot.TODO_LISTS_PREFIX}${f??"global"}`,[w,I]=l.useState(()=>{const s=ft(o,{maxAgeMs:ht});return Array.isArray(s)?s:[]}),[N,k]=l.useState([]),[T,O]=l.useState(()=>w.length===0),[q,y]=l.useState(null),[F,$]=l.useState(null),[j,g]=l.useState([]),S=l.useRef(F);S.current=F,l.useEffect(()=>{let s=!1;const c=ft(o,{maxAgeMs:ht}),u=Array.isArray(c)&&c.length>0;u?(I(c),O(!1)):(I([]),O(!0));async function b(){u||O(!0),y(null);try{const n=await zt(f);if(s)return;g(n);const a=n.map(oe);I(a),Gt(o,a,{maxBytes:5e5});const i=S.current&&n.some(d=>d.id===S.current)?S.current:n[0]?.id??null;$(i),k(i?n.find(d=>d.id===i)?.items??[]:[])}catch(n){if(s)return;g([]),I([]),k([]),$(null),y(n instanceof Error?n.message:r("todo.failedLoadLists","Failed to load todo lists"))}finally{s||O(!1)}}return b(),()=>{s=!0}},[o,f]),l.useEffect(()=>{if(!F){k([]);return}const s=j.find(c=>c.id===F);k(s?.items??[])},[j,F]);const H=l.useCallback(async s=>{const c=w,u=j,b=new Date().toISOString(),n={id:It("temp-list"),projectId:f??"",title:s,createdAt:b,updatedAt:b};y(null),I(a=>[...a,n]),g(a=>[...a,{...n,items:[]}]);try{const a=await _t(s,f);I(i=>i.map(d=>d.id===n.id?a:d)),g(i=>i.map(d=>d.id===n.id?{...a,items:[]}:d)),S.current||$(a.id)}catch(a){I(c),g(u),y(a instanceof Error?a.message:r("todo.failedCreateList","Failed to create list")),L?.(r("todo.failedCreateListToast","Failed to create todo list"),"error")}},[L,j,w,f,r]),P=l.useCallback(async(s,c)=>{const u=w,b=j;y(null),I(n=>n.map(a=>a.id===s?{...a,title:c}:a)),g(n=>n.map(a=>a.id===s?{...a,title:c}:a));try{const n=await Pt(s,c,f);I(a=>a.map(i=>i.id===s?n:i)),g(a=>a.map(i=>i.id===s?{...n,items:i.items}:i))}catch(n){I(u),g(b),y(n instanceof Error?n.message:r("todo.failedRenameList","Failed to rename list")),L?.(r("todo.failedRenameListToast","Failed to rename todo list"),"error")}},[L,j,w,f,r]),D=l.useCallback(async s=>{const c=w,u=j,b=S.current,n=b===s?w.find(a=>a.id!==s)?.id??null:b;y(null),I(a=>a.filter(i=>i.id!==s)),g(a=>a.filter(i=>i.id!==s)),b===s&&$(n);try{await Ut(s,f)}catch(a){I(c),g(u),$(b),y(a instanceof Error?a.message:r("todo.failedDeleteList","Failed to delete list")),L?.(r("todo.failedDeleteListToast","Failed to delete todo list"),"error")}},[L,j,w,f,r]),X=l.useCallback(async s=>{const c=S.current;if(!c)return;const u=N,b=j,n=new Date().toISOString(),a=N.reduce((d,p)=>Math.max(d,p.sortOrder),-1),i={id:It("temp-item"),listId:c,text:s,completed:!1,completedAt:null,createdAt:n,updatedAt:n,sortOrder:a+1};y(null),k(d=>[...d,i]),g(d=>d.map(p=>p.id===c?{...p,items:[...p.items,i]}:p));try{const d=await Kt(c,s,f);k(p=>p.map(v=>v.id===i.id?d:v)),g(p=>p.map(v=>v.id===c?{...v,items:v.items.map(R=>R.id===i.id?d:R)}:v))}catch(d){k(u),g(b),y(d instanceof Error?d.message:r("todo.failedCreateItem","Failed to create item")),L?.(r("todo.failedCreateItemToast","Failed to create todo item"),"error")}},[L,N,j,f,r]),A=l.useCallback(async(s,c)=>{const u=N.find(d=>d.id===s);if(!u)return;const b=N,n=j,a=c.completed??u.completed,i={...u,...c,completed:a,completedAt:a?u.completedAt??new Date().toISOString():null,updatedAt:new Date().toISOString()};y(null),k(d=>d.map(p=>p.id===s?i:p)),g(d=>d.map(p=>p.id===i.listId?{...p,items:p.items.map(v=>v.id===s?i:v)}:p));try{const d=await Bt(s,c,f);k(p=>p.map(v=>v.id===s?d:v)),g(p=>p.map(v=>v.id===d.listId?{...v,items:v.items.map(R=>R.id===s?d:R)}:v))}catch(d){k(b),g(n),y(d instanceof Error?d.message:r("todo.failedUpdateItem","Failed to update item")),L?.(r("todo.failedUpdateItemToast","Failed to update todo item"),"error")}},[L,N,j,f,r]),U=l.useCallback(async s=>{const c=N.find(u=>u.id===s);c&&await A(s,{completed:!c.completed})},[N,A]),M=l.useCallback(async s=>{const c=N,u=j;y(null),k(b=>b.filter(n=>n.id!==s)),g(b=>b.map(n=>({...n,items:n.items.filter(a=>a.id!==s)})));try{await Vt(s,f)}catch(b){k(c),g(u),y(b instanceof Error?b.message:r("todo.failedDeleteItem","Failed to delete item")),L?.(r("todo.failedDeleteItemToast","Failed to delete todo item"),"error")}},[L,N,j,f,r]),z=l.useCallback(async s=>{const c=S.current;if(!c)return;const u=N,b=j,n=new Map(N.map(i=>[i.id,i])),a=s.map((i,d)=>{const p=n.get(i);return p?{...p,sortOrder:d}:null}).filter(i=>i!==null);y(null),k(a),g(i=>i.map(d=>d.id===c?{...d,items:a}:d));try{await Xt(c,s,f)}catch(i){k(u),g(b),y(i instanceof Error?i.message:r("todo.failedReorderItems","Failed to reorder items")),L?.(r("todo.failedReorderItemsToast","Failed to reorder todo items"),"error")}},[L,N,j,f,r]);return{lists:w,items:N,loading:T,error:q,selectedListId:F,setSelectedListId:$,createList:H,renameList:P,deleteList:D,createItem:X,updateItem:A,toggleItem:U,deleteItem:M,reorderItems:z}}function ne(C){return[...C].sort((r,f)=>r.sortOrder-f.sortOrder)}function ue({projectId:C,addToast:r,onPlanningMode:f,onTaskCreated:L}){const{t:o}=kt("app"),{lists:w,items:I,loading:N,error:k,selectedListId:T,setSelectedListId:O,createList:q,renameList:y,deleteList:F,createItem:$,updateItem:j,toggleItem:g,deleteItem:S,reorderItems:H}=ae({projectId:C,addToast:(t,m)=>{if(m==="success"||m==="error"||m==="info"||m===void 0){r(t,m);return}r(t,"info")}}),[P,D]=l.useState(null),[X,A]=l.useState(""),[U,M]=l.useState(null),[z,s]=l.useState(""),[c,u]=l.useState(""),[b,n]=l.useState(!1),[a,i]=l.useState(""),[d,p]=l.useState([]),[v,R]=l.useState(!1),[J,K]=l.useState(!1),[st,B]=l.useState(null),Y=l.useRef(null),{confirm:Ct}=Wt(),[wt,ot]=l.useState("list"),G=l.useMemo(()=>w.find(t=>t.id===T)??null,[w,T]),_=l.useMemo(()=>ne(I.filter(t=>t.listId===T)),[I,T]),at=l.useMemo(()=>{const t=new Map;for(const m of w)t.set(m.id,{total:0,completed:0});for(const m of I){const h=t.get(m.listId)??{total:0,completed:0};h.total+=1,m.completed&&(h.completed+=1),t.set(m.listId,h)}return t},[I,w]),Q=G?at.get(G.id)??{total:_.length,completed:_.filter(t=>t.completed).length}:null;function nt(){D(null),A(""),u(""),n(!1)}function W(){M(null),s(""),i("")}function Nt(t){nt(),W(),O(t),ot("detail")}function At(){ot("list")}const St=l.useCallback(async()=>{R(!0);try{const t=await qt(void 0,C);p(t),K(!0)}catch(t){r(o("todo.failedToLoadAgents","Failed to load agents: {{error}}",{error:Z(t)}),"error"),K(!1),B(null)}finally{R(!1)}},[C,r,o]);l.useEffect(()=>{D(null),A(""),u(""),n(!1),M(null),s(""),i(""),K(!1),B(null)},[T]),l.useEffect(()=>{if(!J)return;const t=m=>{Y.current&&!Y.current.contains(m.target)&&(K(!1),B(null))};return document.addEventListener("mousedown",t),()=>{document.removeEventListener("mousedown",t)}},[J]);function Et(t){W(),D(t.id),A(t.title),n(!1)}async function it(){if(!P)return;const t=X.trim();if(!t){D(null),A("");return}await y(P,t),D(null),A("")}function dt(){D(null),A("")}function lt(t){nt(),M(t.id),s(t.text)}async function rt(){if(!U)return;const t=z.trim();if(!t){M(null),s("");return}await j(U,{text:t}),M(null),s("")}function ct(){M(null),s("")}async function mt(){const t=c.trim();t&&(await q(t),u(""),n(!1))}async function ut(){if(!T)return;const t=a.trim();t&&(await $(t),i(""))}async function Tt(t){await Ct({title:o("todo.deleteListTitle","Delete List"),message:o("todo.deleteListConfirm","Delete this list and all its items?"),danger:!0})&&await F(t)}async function Dt(t){await S(t)}async function bt(t,m){const h=_.map(V=>V.id),x=h.findIndex(V=>V===t);if(x<0)return;const E=m==="up"?x-1:x+1;E<0||E>=h.length||([h[x],h[E]]=[h[E],h[x]],await H(h))}const Ft=l.useCallback(async t=>{try{const m={description:t.text,column:"triage",source:{sourceType:"dashboard_ui"}},h=await xt(m,C);L?.(h),r(o("todo.taskCreatedFromTodo","Created {{id}} from todo",{id:h.id}),"success")}catch(m){r(o("todo.failedToCreateTask","Failed to create task: {{error}}",{error:Z(m)}),"error")}},[C,r,L,o]),$t=l.useCallback(async(t,m)=>{try{const h={description:t.text,column:"triage",assignedAgentId:m,source:{sourceType:"dashboard_ui"}},x=await xt(h,C);L?.(x);const V=d.find(Mt=>Mt.id===m)?.name??m;r(o("todo.taskCreatedAndAssigned","Created {{id}} and assigned to {{agent}}",{id:x.id,agent:V}),"success"),K(!1),B(null)}catch(h){r(o("todo.failedToCreateAndAssign","Failed to create and assign task: {{error}}",{error:Z(h)}),"error")}},[C,r,d,L,o]),pt=null;return N?e.jsxs("div",{className:"todo-view","data-testid":"todo-view-root",children:[pt,e.jsxs("div",{className:"todo-loading",children:[e.jsx(Ht,{className:"todo-loading-icon","aria-hidden":"true"}),e.jsx("p",{children:o("todo.loading","Loading todos...")})]})]}):e.jsxs("div",{className:"todo-view","data-testid":"todo-view-root",children:[pt,e.jsxs("div",{className:"todo-view-layout","data-mobile-stack-view":wt,children:[e.jsxs("aside",{className:"todo-view-sidebar","aria-label":o("todo.listsLabel","Todo lists sidebar"),children:[e.jsxs("div",{className:"todo-sidebar-header",children:[e.jsx("h3",{className:"todo-sidebar-title",children:o("todo.lists","Lists")}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-add-list-btn",onClick:()=>{W(),n(!0),D(null)},"aria-label":o("todo.addList","Add list"),"data-testid":"add-list-button",children:e.jsx(gt,{})})]}),b&&e.jsxs("div",{className:"todo-list-item",children:[e.jsx("input",{className:"input todo-inline-edit-input",placeholder:o("todo.newListTitle","New list title"),value:c,onChange:t=>u(t.target.value),onKeyDown:t=>{t.key==="Enter"&&mt(),t.key==="Escape"&&(u(""),n(!1))},autoFocus:!0,"data-testid":"new-list-input"}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{mt()},"aria-label":o("todo.saveList","Save list"),children:e.jsx(tt,{})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{u(""),n(!1)},"aria-label":o("todo.cancelList","Cancel list"),children:e.jsx(et,{})})]}),w.length===0&&!b?e.jsxs("div",{className:"todo-empty-state",children:[e.jsx(vt,{"aria-hidden":"true"}),e.jsx("p",{children:o("todo.noListsEmpty","No todo lists yet. Create one to get started.")}),e.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>{W(),n(!0)},children:o("todo.createList","Create List")})]}):e.jsx("div",{className:"todo-list-items",role:"list","aria-label":o("todo.todoListsLabel","Todo lists"),children:w.map(t=>{const m=t.id===T,h=t.id===P,x=at.get(t.id)??{total:0,completed:0};return e.jsx("div",{className:`todo-list-item${m?" todo-list-item--active":""}`,role:"listitem",children:h?e.jsxs(e.Fragment,{children:[e.jsx("input",{className:"input todo-inline-edit-input",value:X,onChange:E=>A(E.target.value),onKeyDown:E=>{E.key==="Enter"&&it(),E.key==="Escape"&&dt()},autoFocus:!0,"data-testid":`rename-list-input-${t.id}`}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{it()},"aria-label":o("todo.saveListRename","Save list rename"),children:e.jsx(tt,{})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:dt,"aria-label":o("todo.cancelListRename","Cancel list rename"),children:e.jsx(et,{})})]}):e.jsxs(e.Fragment,{children:[e.jsxs("button",{type:"button",className:"todo-list-select-btn",onClick:()=>Nt(t.id),"aria-label":o("todo.selectList","Select list {{title}}",{title:t.title}),"aria-current":m?"true":void 0,"data-testid":`todo-list-${t.id}`,children:[e.jsx("span",{className:"todo-list-item-name",children:t.title}),e.jsxs("span",{className:"todo-list-item-count",children:[x.completed,"/",x.total]})]}),e.jsxs("div",{className:"todo-list-item-actions",children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{Et(t)},"aria-label":o("todo.renameList","Rename {{title}}",{title:t.title}),"data-testid":`rename-list-button-${t.id}`,children:e.jsx(Lt,{})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon btn-danger todo-icon-btn",onClick:()=>{Tt(t.id)},"aria-label":o("todo.deleteList","Delete {{title}}",{title:t.title}),"data-testid":`delete-list-button-${t.id}`,children:e.jsx(yt,{})})]})]})},t.id)})})]}),e.jsxs("section",{className:"todo-view-main","aria-label":o("todo.itemsLabel","Todo items"),children:[k&&e.jsxs("div",{className:"todo-error-banner",role:"alert",children:[e.jsx("span",{className:"todo-error-message",children:k}),e.jsx("button",{type:"button",className:"btn btn-sm",onClick:()=>window.location.reload(),children:o("actions.retry","Retry")})]}),G?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"todo-items-header",children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn todo-mobile-back-btn",onClick:At,"aria-label":o("todo.backToLists","Back to lists"),"data-testid":"todo-mobile-back-button",children:e.jsx(Jt,{})}),e.jsxs("div",{className:"todo-items-heading",children:[e.jsx("h3",{children:G.title}),Q&&e.jsx("span",{className:"todo-items-progress",children:o("todo.completedCount","{{completed}}/{{total}} complete",{completed:Q.completed,total:Q.total})})]})]}),e.jsxs("div",{className:"todo-add-item-row",children:[e.jsx("input",{className:"input",placeholder:o("todo.addItemPlaceholder","Add a todo item"),value:a,onChange:t=>i(t.target.value),onKeyDown:t=>{t.key==="Enter"&&ut(),t.key==="Escape"&&i("")},"data-testid":"new-item-input"}),e.jsxs("button",{type:"button",className:"btn btn-primary",onClick:()=>{ut()},children:[e.jsx(gt,{size:14}),o("actions.add","Add")]})]}),_.length===0?e.jsx("div",{className:"todo-empty-state",children:e.jsx("p",{children:o("todo.noItemsEmpty","No items in this list. Add one above.")})}):e.jsx("div",{className:"todo-items-list",children:_.map((t,m)=>{const h=t.id===U;return e.jsxs("div",{className:"todo-item","data-testid":`todo-item-${t.id}`,children:[e.jsxs("div",{className:"todo-item-main-row",children:[e.jsx("input",{type:"checkbox",checked:t.completed,onChange:()=>{g(t.id)},className:"todo-item-checkbox","aria-label":`Toggle ${t.text}`,"data-testid":`toggle-item-${t.id}`}),h?e.jsx("input",{className:"input todo-inline-edit-input",value:z,onChange:x=>s(x.target.value),onKeyDown:x=>{x.key==="Enter"&&rt(),x.key==="Escape"&&ct()},autoFocus:!0,"data-testid":`edit-item-input-${t.id}`}):e.jsx("button",{type:"button",className:`todo-item-text${t.completed?" todo-item-text--completed":""}`,onClick:()=>lt(t),children:t.text})]}),e.jsx("div",{className:"todo-item-actions","data-testid":`todo-item-actions-${t.id}`,children:h?e.jsxs(e.Fragment,{children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{rt()},"aria-label":o("todo.saveItemEdit","Save item edit"),children:e.jsx(tt,{})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:ct,"aria-label":o("todo.cancelItemEdit","Cancel item edit"),children:e.jsx(et,{})})]}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"todo-item-reorder-btns",children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-item-reorder-btn",onClick:()=>{bt(t.id,"up")},disabled:m===0,"aria-label":o("todo.moveItemUp","Move {{text}} up",{text:t.text}),"data-testid":`move-up-${t.id}`,children:e.jsx(Yt,{})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-item-reorder-btn",onClick:()=>{bt(t.id,"down")},disabled:m===_.length-1,"aria-label":o("todo.moveItemDown","Move {{text}} down",{text:t.text}),"data-testid":`move-down-${t.id}`,children:e.jsx(Qt,{})})]}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{f?.(t.text)},"aria-label":o("todo.startPlanning","Start planning from {{text}}",{text:t.text}),"data-testid":`planning-from-${t.id}`,children:e.jsx(Zt,{})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{Ft(t)},"aria-label":o("todo.createTaskFrom","Create task from {{text}}",{text:t.text}),"data-testid":`create-task-from-${t.id}`,children:e.jsx(se,{})}),e.jsxs("div",{className:"todo-agent-picker-trigger",ref:st===t.id?Y:void 0,children:[e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>{B(t.id),St()},"aria-label":o("todo.assignAgent","Assign {{text}} to agent",{text:t.text}),"data-testid":`assign-agent-for-${t.id}`,children:e.jsx(jt,{})}),J&&st===t.id&&e.jsx("div",{className:"todo-agent-picker-dropdown",onMouseDown:x=>{x.preventDefault()},children:v?e.jsx("div",{className:"todo-agent-picker-loading",children:e.jsx(te,{label:o("todo.loadingAgents","Loading agents...")})}):d.length>0?d.map(x=>e.jsxs("button",{type:"button",className:"todo-agent-picker-item",onClick:()=>{$t(t,x.id)},children:[e.jsx(jt,{}),e.jsx("span",{children:x.name}),e.jsx("span",{className:"todo-agent-picker-role",children:x.role})]},x.id)):e.jsx("div",{className:"todo-agent-picker-empty",children:o("todo.noAgentsAvailable","No agents available")})})]}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon todo-icon-btn",onClick:()=>lt(t),"aria-label":o("todo.editItem","Edit {{text}}",{text:t.text}),"data-testid":`edit-item-${t.id}`,children:e.jsx(Lt,{})}),e.jsx("button",{type:"button",className:"btn btn-sm btn-icon btn-danger todo-icon-btn",onClick:()=>{Dt(t.id)},"aria-label":o("todo.deleteItem","Delete {{text}}",{text:t.text}),"data-testid":`delete-item-${t.id}`,children:e.jsx(yt,{})})]})})]},t.id)})})]}):e.jsxs("div",{className:"todo-empty-state",children:[e.jsx(vt,{"aria-hidden":"true"}),e.jsx("p",{children:o("todo.selectListEmpty","Select a list from the sidebar")})]})]})]})]})}export{ue as TodoView};