@wrongstack/webui 1.0.24 → 1.0.27

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 (239) hide show
  1. package/dist/assets/AgentRosterView-BJ-1SQOm.js +12 -0
  2. package/dist/assets/{AnalyticsDashboard-DgqJODVI.js → AnalyticsDashboard-FYrD8BFQ.js} +1 -1
  3. package/dist/assets/AudienceMemoryPanel-BghMZicW.js +3 -0
  4. package/dist/assets/ChangesView-B3uQtZGR.js +3 -0
  5. package/dist/assets/ChimeraReviewsView-CBRbTHGM.js +1 -0
  6. package/dist/assets/ChronicleDashboard-B1E-_u64.js +1 -0
  7. package/dist/assets/CodeEditor-CbcWuMGV.js +2 -0
  8. package/dist/assets/CodeMap-WOfveRTG.js +1 -0
  9. package/dist/assets/{CronJobsPanel-GTK038V9.js → CronJobsPanel-DOFA5WVq.js} +1 -1
  10. package/dist/assets/{DeadCodeScanPanel-DX4OEuyp.js → DeadCodeScanPanel-4ToPZX7e.js} +1 -1
  11. package/dist/assets/{DebugDashboard-CKp3sa_k.js → DebugDashboard-DAsNHSpG.js} +1 -1
  12. package/dist/assets/{DesignGalleryView-DVUTYaP6.js → DesignGalleryView-Dd5YnKhs.js} +1 -1
  13. package/dist/assets/GoalView-BaDGAXuQ.js +1 -0
  14. package/dist/assets/KanbanView-CG8bVhpR.js +3 -0
  15. package/dist/assets/{MailboxDetailView-CylnzTVc.js → MailboxDetailView-COxz-eEJ.js} +1 -1
  16. package/dist/assets/{MemoryDrawer-DJ0Y98Z8.js → MemoryDrawer-4lDXuHCi.js} +1 -1
  17. package/dist/assets/MemoryManager-DQlnpch1.js +1 -0
  18. package/dist/assets/{ProcessMonitor-BnQ3vJtn.js → ProcessMonitor-BUjfYqG3.js} +1 -1
  19. package/dist/assets/PromptJournalView-o2dmPrwg.js +1 -0
  20. package/dist/assets/ProviderTestView-5wNbI46L.js +1 -0
  21. package/dist/assets/QueuePanel-DP9D99DX.js +1 -0
  22. package/dist/assets/{RefreshDebugView-s6MyGpPq.js → RefreshDebugView-CB7_a_TI.js} +1 -1
  23. package/dist/assets/{RepositoryHistoryView-CWi_Zo3F.js → RepositoryHistoryView-C_zpYLY6.js} +2 -2
  24. package/dist/assets/RequirementIntakeView-CahKEHJn.js +1 -0
  25. package/dist/assets/{SageTabs-D6eTg3ix.js → SageTabs-5Z2PR11S.js} +2 -2
  26. package/dist/assets/{SddFlowGraph-B-ptkFX6.js → SddFlowGraph-DSoWnlIt.js} +1 -1
  27. package/dist/assets/SddHub-0q2EpwYz.js +2 -0
  28. package/dist/assets/{SessionInspectView-NSpj5WEN.js → SessionInspectView-CbDFR_tP.js} +1 -1
  29. package/dist/assets/SessionList-DhQK7JnP.js +1 -0
  30. package/dist/assets/{SessionsDashboard-mF4PzdKY.js → SessionsDashboard-DNLDczSd.js} +1 -1
  31. package/dist/assets/SetupScreen-C-hpHQQ9.js +1 -0
  32. package/dist/assets/{SkillDetailView-B9BFyB1i.js → SkillDetailView-Bir-Kdm4.js} +3 -3
  33. package/dist/assets/TechStackView-CJ3Abnwg.js +2 -0
  34. package/dist/assets/TerminalPanel-8WHNTeQK.js +1 -0
  35. package/dist/assets/activity-B9WjS_Cz.js +10 -0
  36. package/dist/assets/activity-BB7AHL0U.js +10 -0
  37. package/dist/assets/activity-Bd0XmdqX.js +10 -0
  38. package/dist/assets/activity-BvmJte2K.js +10 -0
  39. package/dist/assets/activity-DOEbDWqw.js +10 -0
  40. package/dist/assets/activity-beTxIN7V.js +10 -0
  41. package/dist/assets/activity-t-0KDhv5.js +10 -0
  42. package/dist/assets/{button-BbeB5Qm8.js → button-UuKTnoM-.js} +1 -1
  43. package/dist/assets/chat-9GLubejR.js +1 -0
  44. package/dist/assets/chat-B50ssTLh.js +1 -0
  45. package/dist/assets/chat-CDioiM1L.js +1 -0
  46. package/dist/assets/chat-Cll_3gXD.js +1 -0
  47. package/dist/assets/chat-Cqhc6jQa.js +1 -0
  48. package/dist/assets/chat-DN1MggWt.js +1 -0
  49. package/dist/assets/chat-fyvZyUZM.js +1 -0
  50. package/dist/assets/chat-store-BMwP_sS0.js +1 -0
  51. package/dist/assets/{codemap-activity-store-Ha7XbGgq.js → codemap-activity-store-WjfEZe4_.js} +1 -1
  52. package/dist/assets/{common-DvjdaRhB.js → common-2kj0c3pG.js} +1 -1
  53. package/dist/assets/{common-D0QL7rwb.js → common-BAvh8XBp.js} +1 -1
  54. package/dist/assets/{common-opV6EoLd.js → common-CKwGvEQD.js} +1 -1
  55. package/dist/assets/{common-DJRPtYAt.js → common-CUd7l34J.js} +1 -1
  56. package/dist/assets/{common-BtyQBZBN.js → common-DmS4Wp1i.js} +1 -1
  57. package/dist/assets/common-PC103akE.js +1 -0
  58. package/dist/assets/{common-Bjl7V12m.js → common-zatZ4s-Z.js} +1 -1
  59. package/dist/assets/config-store-Cb4iyhGv.js +21 -0
  60. package/dist/assets/{dialog-b-Ai37sa.js → dialog-BDUaV5gY.js} +1 -1
  61. package/dist/assets/{empty-state-pfuS5znr.js → empty-state-BzoEa04Q.js} +1 -1
  62. package/dist/assets/{fonts-DRGbd-AM.js → fonts-C303yVU_.js} +2 -2
  63. package/dist/assets/i18n-CzTjKT4L.js +3 -0
  64. package/dist/assets/index-Ci22AODp.js +182 -0
  65. package/dist/assets/index-DfU9PQg8.css +1 -0
  66. package/dist/assets/{input-BA6D2L3K.js → input-DMnC2O7-.js} +1 -1
  67. package/dist/assets/{mailbox-store-ZQO_Rv6E.js → mailbox-store-DyOOYbni.js} +1 -1
  68. package/dist/assets/{roster-ws-Cv_PHlEV.js → roster-ws-D-DCMdrg.js} +1 -1
  69. package/dist/assets/settings-7W0ofid0.js +1 -0
  70. package/dist/assets/settings-BAArGYGW.js +1 -0
  71. package/dist/assets/settings-Btyr_M2v.js +1 -0
  72. package/dist/assets/settings-BwL_DVmc.js +1 -0
  73. package/dist/assets/settings-C7ybAkyi.js +1 -0
  74. package/dist/assets/settings-CgtL8eYb.js +1 -0
  75. package/dist/assets/settings-D57Fd8Z8.js +1 -0
  76. package/dist/assets/{shared-BFJvAYzX.js → shared-CLNEiW00.js} +1 -1
  77. package/dist/assets/stores-Svlibwo5.js +7 -0
  78. package/dist/assets/toasts-3tM1krOo.js +1 -0
  79. package/dist/assets/toasts-BrHW33qA.js +1 -0
  80. package/dist/assets/toasts-Buww129h.js +1 -0
  81. package/dist/assets/toasts-CSN9Fy47.js +1 -0
  82. package/dist/assets/toasts-DOoYxbHd.js +1 -0
  83. package/dist/assets/toasts-DkDnbhs_.js +1 -0
  84. package/dist/assets/toasts-Jo4VH13n.js +1 -0
  85. package/dist/assets/ui-store-DI0iusYZ.js +1 -0
  86. package/dist/assets/{utils-CKsqCaP8.js → utils-B21Devim.js} +1 -1
  87. package/dist/assets/{vector-memory-panel-YWv6xcza.js → vector-memory-panel-DnX-ODHC.js} +1 -1
  88. package/dist/assets/{vendor-V3ydTHqN.js → vendor-BfBvt432.js} +28 -28
  89. package/dist/assets/{view-navigation-CpIPxhZp.js → view-navigation-Cvrp_uJm.js} +1 -1
  90. package/dist/components/BrowserLivePane.d.ts +2 -0
  91. package/dist/components/ChangesView.d.ts +3 -1
  92. package/dist/components/ChatInput/chat-input-bars.d.ts +1 -1
  93. package/dist/components/ChatInput/image-attachments.d.ts +19 -2
  94. package/dist/components/ChatInput/slash-routing.d.ts +18 -0
  95. package/dist/components/ChatInput/use-paste-drop.d.ts +3 -0
  96. package/dist/components/ChatInput/use-prompt-queue-view.d.ts +13 -0
  97. package/dist/components/ChatView/BackgroundShellStrip.d.ts +16 -0
  98. package/dist/components/ChatView/TerminalStrip.d.ts +8 -0
  99. package/dist/components/CodeMap.d.ts +0 -12
  100. package/dist/components/GoalPanel.d.ts +2 -1
  101. package/dist/components/ImageDiffView.d.ts +12 -0
  102. package/dist/components/KanbanTaskExecution.d.ts +64 -0
  103. package/dist/components/KanbanTaskInspector.d.ts +1 -1
  104. package/dist/components/MessageBubble/AttachmentGallery.d.ts +1 -1
  105. package/dist/components/MessageBubble/FailedRunContinue.d.ts +7 -3
  106. package/dist/components/MessageBubble/GeneratedImagePreview.d.ts +10 -0
  107. package/dist/components/SessionTabBar/summaries.d.ts +4 -0
  108. package/dist/components/SettingsPanel/LimitsSection.d.ts +7 -0
  109. package/dist/components/SettingsPanel/MCPSection.d.ts +1 -37
  110. package/dist/components/SettingsPanel/MCPServerCards.d.ts +67 -0
  111. package/dist/components/SettingsPanel/MCPServerDialog.d.ts +11 -0
  112. package/dist/components/SettingsPanel/PreferenceControls.d.ts +8 -0
  113. package/dist/components/SettingsPanel/ProviderSavedProfiles.d.ts +50 -0
  114. package/dist/components/SettingsPanel/ProviderSection.d.ts +2 -79
  115. package/dist/components/SettingsPanel/SettingsNavigation.d.ts +12 -0
  116. package/dist/components/SettingsPanel/brain-section-options.d.ts +1 -2
  117. package/dist/components/SettingsPanel/provider-section-types.d.ts +79 -0
  118. package/dist/components/SidePanel/SessionList.d.ts +1 -34
  119. package/dist/components/SidePanel/session-history.d.ts +61 -0
  120. package/dist/components/SystemPromptPresetEditor.d.ts +9 -0
  121. package/dist/components/TechStackView/AnalyzeControls.d.ts +25 -0
  122. package/dist/components/TechStackView/RemediationTab.d.ts +20 -0
  123. package/dist/components/TechStackView/TrendsTab.d.ts +17 -0
  124. package/dist/components/TerminalPanel.d.ts +8 -1
  125. package/dist/components/WorkspaceDock.d.ts +2 -2
  126. package/dist/components/review/ReviewDiff.d.ts +21 -0
  127. package/dist/components/review/ReviewTray.d.ts +15 -0
  128. package/dist/components/review/review-diff-model.d.ts +31 -0
  129. package/dist/components/use-code-map-flow.d.ts +25 -0
  130. package/dist/components/use-office-map-canvas.d.ts +1 -1
  131. package/dist/components/use-office-map-topology.d.ts +31 -0
  132. package/dist/hooks/use-live-browser.d.ts +7 -0
  133. package/dist/hooks/useWebSocket.d.ts +1 -2
  134. package/dist/hooks/ws-handlers/chat-handlers.d.ts +12 -0
  135. package/dist/hooks/ws-handlers/goal-handlers.d.ts +2 -0
  136. package/dist/hooks/ws-handlers/mcp-status-handlers.d.ts +6 -0
  137. package/dist/hooks/ws-handlers/prompt-queue-handlers.d.ts +18 -0
  138. package/dist/hooks/ws-handlers/techstack-handlers.d.ts +7 -0
  139. package/dist/index.css +3013 -3013
  140. package/dist/index.html +19 -19
  141. package/dist/index.js +53010 -47407
  142. package/dist/lib/compact-file-tree.d.ts +30 -0
  143. package/dist/lib/project-image.d.ts +26 -0
  144. package/dist/lib/provider-warm.d.ts +3 -0
  145. package/dist/lib/ws-client-session-methods.d.ts +2 -0
  146. package/dist/lib/ws-client.d.ts +3 -0
  147. package/dist/stores/chat-lane-data.d.ts +153 -0
  148. package/dist/stores/chat-lanes.d.ts +3 -174
  149. package/dist/stores/chat-queue-helpers.d.ts +9 -0
  150. package/dist/stores/chat-store-types.d.ts +3 -0
  151. package/dist/stores/chat-store.d.ts +1 -1
  152. package/dist/stores/context-editor-store.d.ts +1 -1
  153. package/dist/stores/fleet-transcript.d.ts +14 -0
  154. package/dist/stores/git-changes-store.d.ts +3 -0
  155. package/dist/stores/goal-run-store.d.ts +8 -0
  156. package/dist/stores/goal-state-store.d.ts +3 -0
  157. package/dist/stores/goal-store.d.ts +9 -11
  158. package/dist/stores/index.d.ts +1 -1
  159. package/dist/stores/local-prefs-defaults.d.ts +341 -0
  160. package/dist/stores/local-prefs.d.ts +2 -318
  161. package/dist/stores/notification-store.d.ts +9 -0
  162. package/dist/stores/provider-quota-store.d.ts +5 -0
  163. package/dist/stores/review-store.d.ts +54 -0
  164. package/dist/stores/session-activity.d.ts +33 -0
  165. package/dist/stores/session-tab-store.d.ts +1 -46
  166. package/dist/stores/techstack-store.d.ts +140 -1
  167. package/dist/stores/terminal-strip-store.d.ts +26 -0
  168. package/dist/stores/types.d.ts +5 -0
  169. package/dist/stores/ui-store-chrome.d.ts +1 -1
  170. package/dist/stores/ui-store-persist.d.ts +2 -2
  171. package/dist/stores/ui-store-types.d.ts +3 -3
  172. package/dist/stores/ui-store.d.ts +5 -5
  173. package/dist/types/brain.d.ts +4 -2
  174. package/dist/types/client-message.d.ts +122 -14
  175. package/dist/types/jev.d.ts +2 -0
  176. package/dist/types/prompt-queue.d.ts +55 -0
  177. package/dist/types/protocol-core.d.ts +4 -216
  178. package/dist/types/runtime.d.ts +3 -38
  179. package/dist/types/server-message-files.d.ts +22 -0
  180. package/dist/types/server-message-mcp.d.ts +32 -0
  181. package/dist/types/server-message-system.d.ts +121 -0
  182. package/dist/types/server-message.d.ts +4 -3
  183. package/dist/types/system.d.ts +2 -24
  184. package/package.json +11 -9
  185. package/dist/assets/AgentRosterView-Dq8Xa0WK.js +0 -12
  186. package/dist/assets/AudienceMemoryPanel-BVGdDVTT.js +0 -3
  187. package/dist/assets/ChangesView-BVyLENBb.js +0 -1
  188. package/dist/assets/ChimeraReviewsView-CTuxzgTC.js +0 -1
  189. package/dist/assets/ChronicleDashboard-BRP7D6RZ.js +0 -1
  190. package/dist/assets/CodeEditor-k3z3M0NG.js +0 -2
  191. package/dist/assets/CodeMap-CvHNQZEF.js +0 -1
  192. package/dist/assets/GoalView-D8G8e8YG.js +0 -1
  193. package/dist/assets/KanbanView-BMXGDqGo.js +0 -3
  194. package/dist/assets/MemoryManager-DfcsYPUB.js +0 -1
  195. package/dist/assets/PromptJournalView-D7k8Yh5a.js +0 -1
  196. package/dist/assets/ProviderTestView-DSd6kkWT.js +0 -1
  197. package/dist/assets/QueuePanel-79KiyZWD.js +0 -1
  198. package/dist/assets/RequirementIntakeView-D_Ea20fx.js +0 -1
  199. package/dist/assets/SddHub-CSVfLGpr.js +0 -2
  200. package/dist/assets/SessionList-BYRCs1AK.js +0 -1
  201. package/dist/assets/SetupScreen-BUZeJSZi.js +0 -1
  202. package/dist/assets/TechStackView-CXJilX0M.js +0 -2
  203. package/dist/assets/TerminalPanel-CAXevSAa.js +0 -1
  204. package/dist/assets/activity-B3wutYIE.js +0 -10
  205. package/dist/assets/activity-Be03cc7g.js +0 -10
  206. package/dist/assets/activity-CiYZ3y4e.js +0 -10
  207. package/dist/assets/activity-CmIA2MhR.js +0 -10
  208. package/dist/assets/activity-Cp5GhldB.js +0 -10
  209. package/dist/assets/activity-DFCf7l5d.js +0 -10
  210. package/dist/assets/activity-EbNUY7Ci.js +0 -10
  211. package/dist/assets/chat-6dE2AJNN.js +0 -1
  212. package/dist/assets/chat-B3AJmhGD.js +0 -1
  213. package/dist/assets/chat-BHsbpaVt.js +0 -1
  214. package/dist/assets/chat-BITJe8-v.js +0 -1
  215. package/dist/assets/chat-U-Jjb8_k.js +0 -1
  216. package/dist/assets/chat-_Xp5fDnj.js +0 -1
  217. package/dist/assets/chat-mSbSzPl5.js +0 -1
  218. package/dist/assets/chat-store-C7InoWAO.js +0 -1
  219. package/dist/assets/common-DPPTV3yw.js +0 -1
  220. package/dist/assets/config-store-BbL0WxLE.js +0 -21
  221. package/dist/assets/i18n-Dv97urcO.js +0 -3
  222. package/dist/assets/index-CON0Nbm4.css +0 -1
  223. package/dist/assets/index-DX6tHUzs.js +0 -177
  224. package/dist/assets/settings-BCvuzOJ6.js +0 -1
  225. package/dist/assets/settings-DMPKd-4K.js +0 -1
  226. package/dist/assets/settings-DxQ2452f.js +0 -1
  227. package/dist/assets/settings-Dz3StaVx.js +0 -1
  228. package/dist/assets/settings-EBW1mlXc.js +0 -1
  229. package/dist/assets/settings-Er2LHp9d.js +0 -1
  230. package/dist/assets/settings-EzznCDaX.js +0 -1
  231. package/dist/assets/stores-DXn5tdr7.js +0 -7
  232. package/dist/assets/toasts-BsmyGP95.js +0 -1
  233. package/dist/assets/toasts-CgXHu8ZB.js +0 -1
  234. package/dist/assets/toasts-DZ6HdKgG.js +0 -1
  235. package/dist/assets/toasts-DizCJjAR.js +0 -1
  236. package/dist/assets/toasts-NC2MT4uN.js +0 -1
  237. package/dist/assets/toasts-bPl097de.js +0 -1
  238. package/dist/assets/toasts-tCVo15mP.js +0 -1
  239. package/dist/assets/ui-store-DxDwFHNK.js +0 -1
@@ -1 +1 @@
1
- import{r as e}from"./rolldown-runtime-hePW80VL.js";import{mt as t}from"./config-store-BbL0WxLE.js";import{i as n,t as r}from"./react-core-wiHys0m2.js";import{Dn as i,Mt as a,Pa as o,or as s,qi as c,wo as l,xo as u,yn as d}from"./vendor-V3ydTHqN.js";import"./i18n-Dv97urcO.js";import{t as f}from"./utils-CKsqCaP8.js";import{o as p}from"./view-navigation-CpIPxhZp.js";import{L as m,y as h}from"./index-DX6tHUzs.js";var g=e(n(),1);function _(e,t,n){return e<t?t:e>n?n:e}function v(e){let t=/^oklch\(\s*([^)]+)\)$/i.exec(e.trim());if(!t?.[1])return null;let n=(t[1].split(`/`)[0]??``).trim().split(/\s+/);if(n.length<3||!n[0]||!n[1]||!n[2])return null;let r=n[0].endsWith(`%`)?Number.parseFloat(n[0])/100:Number.parseFloat(n[0]),i=n[1].endsWith(`%`)?Number.parseFloat(n[1])/100*.4:Number.parseFloat(n[1]),a=Number.parseFloat(n[2].replace(/deg$/i,``));return[r,i,a].every(Number.isFinite)?[_(r,0,1),Math.max(0,i),a]:null}function y(e){return _(e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055,0,1)}function b(e){return Math.round(e*255).toString(16).padStart(2,`0`)}function x(e){let t=v(e);if(!t)return null;let[n,r,i]=t,a=i*Math.PI/180,o=r*Math.cos(a),s=r*Math.sin(a),c=n+.3963377774*o+.2158037573*s,l=n-.1055613458*o-.0638541728*s,u=n-.0894841775*o-1.291485548*s,d=c**3,f=l**3,p=u**3,m=4.0767416621*d-3.3077115913*f+.2309699292*p,h=-1.2684380046*d+2.6097574011*f-.3413193965*p,g=-.0041960863*d-.7034186147*f+1.707614701*p;return`#${b(y(m))}${b(y(h))}${b(y(g))}`}function S(e){let t=e.trim(),n=x(t);if(n)return n.toLowerCase();let r=/^#([0-9a-f]{6})([0-9a-f]{2})?$/i.exec(t);if(r?.[1])return`#${r[1].toLowerCase()}`;let i=/^#([0-9a-f]{3})$/i.exec(t);return i?.[1]?`#${i[1].split(``).map(e=>e+e).join(``).toLowerCase()}`:null}var C=r(),w=[`web`,`react-native`,`flutter`,`swiftui`,`compose`],T=[`primary`,`accent`,`bg`,`surface`,`fg`,`border`];function E(e,t,n){let r={...e};for(let[e,i]of Object.entries(t))e.startsWith(`light.`)?n===`light`&&(r[e.slice(6)]=i):e.startsWith(`dark.`)?n===`dark`&&(r[e.slice(5)]=i):r[e]=i;return r}function D({t:e,label:t}){let{t:n}=u(),r=e.bg??`#fff`,i=e.surface??r,a=e.fg??`#111`,o=e.muted??a,s=e.primary??`#3b82f6`,c=e.accent??s,l=e.border??o,d=e[`radius-md`]??e.radius??`0.5rem`,f=e[`font-sans`]??e.fontSans??`system-ui, sans-serif`,p=e[`font-display`]??e.fontDisplay??f,m=e[`shadow-2`]??(e.shadow&&e.shadow!==`none`?e.shadow:void 0);return(0,C.jsxs)(`div`,{style:{background:r,color:a,fontFamily:f},className:`flex min-w-0 flex-col gap-2 overflow-hidden p-3`,children:[(0,C.jsx)(`div`,{className:`text-[9px] uppercase tracking-wide`,style:{color:o},children:t}),(0,C.jsxs)(`div`,{style:{background:i,border:`1px solid ${l}`,borderRadius:d,boxShadow:m},className:`flex min-w-0 flex-col gap-2 p-3`,children:[(0,C.jsx)(`div`,{style:{fontFamily:p},className:`text-base font-bold leading-tight`,children:n(`activity:designStudio.aaHeading`)}),(0,C.jsx)(`div`,{className:`text-[11px] leading-snug`,style:{color:o},children:n(`activity:designStudio.theQuickBrownFoxJumpsOver`)}),(0,C.jsxs)(`div`,{className:`mt-1 flex min-w-0 items-center gap-1.5`,children:[(0,C.jsx)(`span`,{style:{background:s,color:r,borderRadius:d},className:`shrink-0 px-2.5 py-1 text-[10px] font-semibold`,children:n(`activity:designStudio.primary`)}),(0,C.jsx)(`span`,{style:{border:`1px solid ${l}`,color:a,borderRadius:d},className:`shrink-0 px-2 py-1 text-[10px]`,children:n(`activity:designStudio.ghost`)}),(0,C.jsx)(`span`,{style:{background:c,color:r,borderRadius:`999px`},className:`ml-auto shrink-0 px-2 py-0.5 text-[9px] font-semibold`,children:n(`activity:designStudio.badge`)})]}),(0,C.jsx)(`div`,{style:{border:`1px solid ${l}`,borderRadius:d,color:o},className:`text-[10px] px-2 py-1.5 mt-1`,children:n(`activity:designStudio.inputField`)})]})]})}function O({kit:e,overrides:t,onSet:n}){let[r,i]=(0,g.useState)(`light`),{t:a}=u(),o=E(r===`light`?e.light:e.dark,t,r);return(0,C.jsxs)(`div`,{className:`mt-1 rounded-lg border border-border/60 p-2 bg-muted/30`,children:[(0,C.jsxs)(`div`,{className:`flex items-center gap-2 mb-1.5`,children:[(0,C.jsx)(`span`,{className:`text-[10px] font-semibold uppercase text-muted-foreground`,children:a(`activity:design.colors`)}),(0,C.jsx)(`div`,{className:`ml-auto inline-flex rounded border border-border/60 overflow-hidden`,children:[`light`,`dark`].map(e=>(0,C.jsx)(`button`,{type:`button`,onClick:()=>i(e),className:f(`text-[10px] px-1.5 py-0.5`,r===e?`bg-primary text-primary-foreground`:`text-muted-foreground`),children:e},e))})]}),(0,C.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:T.filter(e=>o[e]).map(e=>{let t=S(o[e]??``)??`#000000`;return(0,C.jsxs)(`label`,{className:`flex min-w-[2rem] flex-col items-center gap-0.5`,title:`${e}: ${o[e]}`,children:[(0,C.jsx)(`input`,{type:`color`,value:t,onChange:t=>n(`${r}.${e}`,t.target.value),className:`w-6 h-6 rounded cursor-pointer bg-transparent border border-border/60 p-0`}),(0,C.jsx)(`span`,{className:`text-[8px] text-muted-foreground`,children:e})]},e)})})]})}function k({onTune:e}){let{t}=u(),[n,r]=(0,g.useState)(``),i=({label:t,knob:n,values:r})=>(0,C.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,C.jsx)(`span`,{className:`w-16 shrink-0 text-[9px] uppercase text-muted-foreground`,children:t}),(0,C.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:r.map(t=>(0,C.jsx)(`button`,{type:`button`,onClick:()=>e({[n]:t}),className:`rounded border border-border/60 px-1.5 py-0.5 text-[10px] hover:bg-primary hover:text-primary-foreground`,children:t},t))})]});return(0,C.jsxs)(`div`,{className:`mt-1 flex flex-col gap-1.5 rounded-lg border border-border/60 bg-muted/30 p-2`,children:[(0,C.jsx)(`span`,{className:`text-[10px] font-semibold uppercase text-muted-foreground`,children:t(`activity:designStudio.tune`)}),(0,C.jsx)(i,{label:t(`activity:designStudio.radius`),knob:`radius`,values:[`none`,`sm`,`md`,`lg`,`xl`,`full`]}),(0,C.jsx)(i,{label:t(`activity:designStudio.density`),knob:`density`,values:[`compact`,`cozy`,`comfortable`]}),(0,C.jsx)(i,{label:t(`activity:designStudio.motion`),knob:`motion`,values:[`snappy`,`smooth`,`none`]}),(0,C.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,C.jsx)(`span`,{className:`w-16 shrink-0 text-[9px] uppercase text-muted-foreground`,children:t(`activity:designStudio.font`)}),(0,C.jsx)(`input`,{value:n,onChange:e=>r(e.target.value),onKeyDown:t=>{t.key===`Enter`&&n.trim()&&e({font:n.trim()})},placeholder:t(`activity:designStudio.spaceGrotesk`),className:`h-6 min-w-0 flex-1 rounded border border-border/60 bg-background/70 px-1.5 text-[10px]`}),(0,C.jsx)(`button`,{type:`button`,onClick:()=>n.trim()&&e({font:n.trim()}),className:`rounded border border-border/60 px-1.5 py-0.5 text-[10px] hover:bg-muted`,children:t(`activity:designStudio.set`)})]})]})}function A({className:e}){let{client:n}=m(),r=t(),{t:_}=u(),[v,y]=(0,g.useState)([]),[b,x]=(0,g.useState)(null),[S,T]=(0,g.useState)({}),[A,j]=(0,g.useState)(`web`),[M,N]=(0,g.useState)(``),[P,F]=(0,g.useState)(null);(0,g.useEffect)(()=>{if(!n)return;let e=e=>{let t=e.payload?.sessionId;return typeof t!=`string`||t.length===0?r!==null:t!==r},t=t=>{if(e(t))return;let n=t.payload;y(n?.kits??[]),x(n?.activeKit??null),T(n?.overrides??{})},i=t=>{if(e(t))return;let n=t.payload;n?.ok&&n.kit&&(x(n.kit),T(n.overrides??{}))},a=t=>{if(e(t))return;let n=t.payload;n?.ok&&n.overrides&&T(n.overrides)},o=t=>{if(e(t))return;let n=t.payload;n?.ok&&n.overrides?(T(n.overrides),F(`Tuned`)):n?.error&&F(`Tune failed: ${n.error}`)},s=t=>{if(e(t))return;let n=t.payload;n?.ok&&n.kit&&(x(n.kit),T(n.overrides??{}),F(`Swapped to ${n.kit}`))},c=t=>{if(e(t))return;let n=t.payload;F(n?.ok?l.t(`activity:design.wrote`,{path:n.path}):l.t(`activity:design.materializeFailed`,{error:n?.error??`error`}))},u=t=>{if(e(t))return;let n=t.payload;if(!n?.ok){F(l.t(`activity:design.verifyError`,{error:n?.error??`error`}));return}let r=Math.round((n.score??1)*100);F(n.violationCount?l.t(`activity:design.verifyOffPalette`,{pct:r,count:n.violationCount,files:n.filesScanned}):l.t(`activity:design.verifyClean`,{files:n.filesScanned}))};return n.on(`design.list`,t),n.on(`design.use`,i),n.on(`design.set`,a),n.on(`design.tune`,o),n.on(`design.swap`,s),n.on(`design.materialize`,c),n.on(`design.verify`,u),n.send({type:`design.list`,payload:n.withSession({})}),()=>{n.off(`design.list`,t),n.off(`design.use`,i),n.off(`design.set`,a),n.off(`design.tune`,o),n.off(`design.swap`,s),n.off(`design.materialize`,c),n.off(`design.verify`,u)}},[n,r]);let I=(0,g.useCallback)(e=>n?.send({type:`design.use`,payload:n.withSession({kit:e,stack:A})}),[n,A]),L=(0,g.useCallback)((e,t)=>{T(n=>({...n,[e]:t})),n?.send({type:`design.set`,payload:n.withSession({overrides:{[e]:t}})})},[n]),R=(0,g.useCallback)(e=>n?.send({type:`design.tune`,payload:n.withSession({tune:e})}),[n]),z=(0,g.useCallback)(()=>{F(l.t(`activity:design.writing`)),n?.send({type:`design.materialize`,payload:n.withSession({stack:A})})},[n,A]),B=(0,g.useCallback)(()=>{F(l.t(`activity:design.scanning`)),n?.send({type:`design.verify`,payload:n.withSession({})})},[n]),V=(0,g.useMemo)(()=>{let e=M.trim().toLowerCase();return[...e?v.filter(t=>t.id.includes(e)||t.name.toLowerCase().includes(e)||t.aesthetic.toLowerCase().includes(e)||t.tags.some(t=>t.includes(e))):v].sort((e,t)=>e.name.localeCompare(t.name))},[v,M]);return(0,C.jsxs)(`div`,{className:f(`flex h-full min-h-0 min-w-0 flex-col overflow-hidden bg-[hsl(var(--surface-2)/0.45)]`,e),children:[(0,C.jsx)(`div`,{className:`border-b border-border/60 p-3`,children:(0,C.jsx)(`div`,{className:`rounded-xl border border-border/70 bg-card/75 p-3 shadow-sm`,children:(0,C.jsxs)(`div`,{className:`flex flex-col gap-3 lg:flex-row lg:items-center`,children:[(0,C.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,C.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,children:(0,C.jsx)(s,{className:`h-4 w-4`})}),(0,C.jsxs)(`div`,{className:`min-w-0`,children:[(0,C.jsx)(`h2`,{className:`truncate text-sm font-semibold`,children:_(`activity:design.heading`)}),(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:_(`activity:design.kitsCount`,{count:V.length})})]})]}),(0,C.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2 sm:flex-row sm:items-center lg:justify-end`,children:[(0,C.jsxs)(`label`,{className:`relative min-w-0 flex-1 sm:max-w-xs`,children:[(0,C.jsx)(i,{className:`pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground/70`}),(0,C.jsx)(`input`,{value:M,onChange:e=>N(e.target.value),placeholder:_(`activity:design.searchPlaceholder`),className:`h-9 w-full rounded-md border border-border/70 bg-background/70 pl-8 pr-3 text-sm shadow-sm outline-none transition focus:border-primary/40 focus:ring-2 focus:ring-ring/30`})]}),(0,C.jsx)(`select`,{value:A,onChange:e=>j(e.target.value),className:`h-9 rounded-md border border-border/70 bg-background/70 px-2 text-sm shadow-sm`,title:_(`activity:design.stackTitle`),children:w.map(e=>(0,C.jsx)(`option`,{value:e,children:e},e))}),P&&(0,C.jsx)(`span`,{className:`min-w-0 truncate rounded-md border border-border/60 bg-muted/40 px-2 py-1 text-[11px] text-muted-foreground sm:max-w-56`,children:P}),(0,C.jsx)(`button`,{type:`button`,onClick:()=>p(`chat`),className:`inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground`,title:_(`common:action.close`),children:(0,C.jsx)(a,{className:`h-4 w-4`})})]})]})})}),(0,C.jsx)(`div`,{ref:h(`design-gallery`),className:`min-h-0 min-w-0 flex-1 overflow-y-auto overscroll-contain p-3 sm:p-4`,children:V.length===0?(0,C.jsxs)(`div`,{className:`ws-surface mx-auto mt-8 flex max-w-md flex-col items-center gap-3 rounded-xl p-6 text-center text-muted-foreground`,children:[(0,C.jsx)(s,{className:`h-8 w-8 text-primary/60`}),(0,C.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:_(`activity:design.kitsCount`,{count:0})}),(0,C.jsx)(`p`,{className:`text-xs`,children:_(`activity:design.searchPlaceholder`)})]}):(0,C.jsx)(`div`,{className:`grid gap-4 [grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr))]`,children:V.map(e=>{let t=b===e.id,n=t?S:{};return(0,C.jsxs)(`div`,{className:f(`flex min-w-0 flex-col overflow-hidden rounded-xl border bg-card/75 shadow-sm`,t?`border-primary/60 ring-1 ring-primary/30`:`border-border/70`),children:[(0,C.jsxs)(`div`,{className:`grid min-h-[12rem] grid-cols-1 sm:grid-cols-2`,children:[(0,C.jsx)(D,{t:E(e.light,n,`light`),label:_(`activity:designStudio.light`)}),(0,C.jsx)(D,{t:E(e.dark,n,`dark`),label:_(`activity:designStudio.dark`)})]}),(0,C.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2 border-t border-border/60 bg-card p-3`,children:[(0,C.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,C.jsx)(`h3`,{className:`text-sm font-semibold truncate`,children:e.name}),(0,C.jsx)(`code`,{className:`text-[10px] text-muted-foreground`,children:e.id}),t&&(0,C.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 text-[9px] font-semibold uppercase text-primary ml-auto`,children:[(0,C.jsx)(o,{className:`w-3 h-3`}),` `,_(`activity:design.active`)]})]}),(0,C.jsx)(`p`,{className:`text-[11px] text-muted-foreground leading-snug`,children:e.aesthetic}),(0,C.jsxs)(`div`,{className:`mt-1 flex min-w-0 flex-wrap items-center gap-2`,children:[(0,C.jsx)(`button`,{type:`button`,onClick:()=>I(e.id),className:f(`rounded-md px-2.5 py-1 text-[11px] font-medium transition`,t?`bg-primary/10 text-primary`:`bg-primary text-primary-foreground hover:opacity-90`),children:_(t?`activity:design.reapply`:`activity:design.use`)}),t&&(0,C.jsxs)(`button`,{type:`button`,onClick:z,className:`inline-flex items-center gap-1 rounded-md border border-border/60 px-2 py-1 text-[11px] font-medium hover:bg-muted`,title:_(`activity:design.materializeTitle`,{stack:A}),children:[(0,C.jsx)(c,{className:`w-3 h-3`}),` `,_(`activity:design.materialize`)]}),t&&(0,C.jsxs)(`button`,{type:`button`,onClick:B,className:`inline-flex items-center gap-1 rounded-md border border-border/60 px-2 py-1 text-[11px] font-medium hover:bg-muted`,title:_(`activity:design.verifyTitle`),children:[(0,C.jsx)(d,{className:`w-3 h-3`}),` `,_(`activity:design.verify`)]}),(0,C.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[10px] text-muted-foreground`,children:e.bestFor})]}),t&&(0,C.jsx)(O,{kit:e,overrides:n,onSet:L}),t&&(0,C.jsx)(k,{onTune:R})]})]},e.id)})})})]})}export{A as DesignGalleryView};
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{ht as t}from"./config-store-Cb4iyhGv.js";import{i as n,t as r}from"./react-core-wiHys0m2.js";import{Dn as i,Do as a,La as o,Mt as s,Xi as c,or as l,wo as u,yn as d}from"./vendor-BfBvt432.js";import"./i18n-CzTjKT4L.js";import{t as f}from"./utils-B21Devim.js";import{o as p}from"./view-navigation-Cvrp_uJm.js";import{V as m,u as h}from"./index-Ci22AODp.js";var g=e(n(),1);function _(e,t,n){return e<t?t:e>n?n:e}function v(e){let t=/^oklch\(\s*([^)]+)\)$/i.exec(e.trim());if(!t?.[1])return null;let n=(t[1].split(`/`)[0]??``).trim().split(/\s+/);if(n.length<3||!n[0]||!n[1]||!n[2])return null;let r=n[0].endsWith(`%`)?Number.parseFloat(n[0])/100:Number.parseFloat(n[0]),i=n[1].endsWith(`%`)?Number.parseFloat(n[1])/100*.4:Number.parseFloat(n[1]),a=Number.parseFloat(n[2].replace(/deg$/i,``));return[r,i,a].every(Number.isFinite)?[_(r,0,1),Math.max(0,i),a]:null}function y(e){return _(e<=.0031308?12.92*e:1.055*e**(1/2.4)-.055,0,1)}function b(e){return Math.round(e*255).toString(16).padStart(2,`0`)}function x(e){let t=v(e);if(!t)return null;let[n,r,i]=t,a=i*Math.PI/180,o=r*Math.cos(a),s=r*Math.sin(a),c=n+.3963377774*o+.2158037573*s,l=n-.1055613458*o-.0638541728*s,u=n-.0894841775*o-1.291485548*s,d=c**3,f=l**3,p=u**3,m=4.0767416621*d-3.3077115913*f+.2309699292*p,h=-1.2684380046*d+2.6097574011*f-.3413193965*p,g=-.0041960863*d-.7034186147*f+1.707614701*p;return`#${b(y(m))}${b(y(h))}${b(y(g))}`}function S(e){let t=e.trim(),n=x(t);if(n)return n.toLowerCase();let r=/^#([0-9a-f]{6})([0-9a-f]{2})?$/i.exec(t);if(r?.[1])return`#${r[1].toLowerCase()}`;let i=/^#([0-9a-f]{3})$/i.exec(t);return i?.[1]?`#${i[1].split(``).map(e=>e+e).join(``).toLowerCase()}`:null}var C=r(),w=[`web`,`react-native`,`flutter`,`swiftui`,`compose`],T=[`primary`,`accent`,`bg`,`surface`,`fg`,`border`];function E(e,t,n){let r={...e};for(let[e,i]of Object.entries(t))e.startsWith(`light.`)?n===`light`&&(r[e.slice(6)]=i):e.startsWith(`dark.`)?n===`dark`&&(r[e.slice(5)]=i):r[e]=i;return r}function D({t:e,label:t}){let{t:n}=u(),r=e.bg??`#fff`,i=e.surface??r,a=e.fg??`#111`,o=e.muted??a,s=e.primary??`#3b82f6`,c=e.accent??s,l=e.border??o,d=e[`radius-md`]??e.radius??`0.5rem`,f=e[`font-sans`]??e.fontSans??`system-ui, sans-serif`,p=e[`font-display`]??e.fontDisplay??f,m=e[`shadow-2`]??(e.shadow&&e.shadow!==`none`?e.shadow:void 0);return(0,C.jsxs)(`div`,{style:{background:r,color:a,fontFamily:f},className:`flex min-w-0 flex-col gap-2 overflow-hidden p-3`,children:[(0,C.jsx)(`div`,{className:`text-[9px] uppercase tracking-wide`,style:{color:o},children:t}),(0,C.jsxs)(`div`,{style:{background:i,border:`1px solid ${l}`,borderRadius:d,boxShadow:m},className:`flex min-w-0 flex-col gap-2 p-3`,children:[(0,C.jsx)(`div`,{style:{fontFamily:p},className:`text-base font-bold leading-tight`,children:n(`activity:designStudio.aaHeading`)}),(0,C.jsx)(`div`,{className:`text-[11px] leading-snug`,style:{color:o},children:n(`activity:designStudio.theQuickBrownFoxJumpsOver`)}),(0,C.jsxs)(`div`,{className:`mt-1 flex min-w-0 items-center gap-1.5`,children:[(0,C.jsx)(`span`,{style:{background:s,color:r,borderRadius:d},className:`shrink-0 px-2.5 py-1 text-[10px] font-semibold`,children:n(`activity:designStudio.primary`)}),(0,C.jsx)(`span`,{style:{border:`1px solid ${l}`,color:a,borderRadius:d},className:`shrink-0 px-2 py-1 text-[10px]`,children:n(`activity:designStudio.ghost`)}),(0,C.jsx)(`span`,{style:{background:c,color:r,borderRadius:`999px`},className:`ml-auto shrink-0 px-2 py-0.5 text-[9px] font-semibold`,children:n(`activity:designStudio.badge`)})]}),(0,C.jsx)(`div`,{style:{border:`1px solid ${l}`,borderRadius:d,color:o},className:`text-[10px] px-2 py-1.5 mt-1`,children:n(`activity:designStudio.inputField`)})]})]})}function O({kit:e,overrides:t,onSet:n}){let[r,i]=(0,g.useState)(`light`),{t:a}=u(),o=E(r===`light`?e.light:e.dark,t,r);return(0,C.jsxs)(`div`,{className:`mt-1 rounded-lg border border-border/60 p-2 bg-muted/30`,children:[(0,C.jsxs)(`div`,{className:`flex items-center gap-2 mb-1.5`,children:[(0,C.jsx)(`span`,{className:`text-[10px] font-semibold uppercase text-muted-foreground`,children:a(`activity:design.colors`)}),(0,C.jsx)(`div`,{className:`ml-auto inline-flex rounded border border-border/60 overflow-hidden`,children:[`light`,`dark`].map(e=>(0,C.jsx)(`button`,{type:`button`,onClick:()=>i(e),className:f(`text-[10px] px-1.5 py-0.5`,r===e?`bg-primary text-primary-foreground`:`text-muted-foreground`),children:e},e))})]}),(0,C.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:T.filter(e=>o[e]).map(e=>{let t=S(o[e]??``)??`#000000`;return(0,C.jsxs)(`label`,{className:`flex min-w-[2rem] flex-col items-center gap-0.5`,title:`${e}: ${o[e]}`,children:[(0,C.jsx)(`input`,{type:`color`,value:t,onChange:t=>n(`${r}.${e}`,t.target.value),className:`w-6 h-6 rounded cursor-pointer bg-transparent border border-border/60 p-0`}),(0,C.jsx)(`span`,{className:`text-[8px] text-muted-foreground`,children:e})]},e)})})]})}function k({onTune:e}){let{t}=u(),[n,r]=(0,g.useState)(``),i=({label:t,knob:n,values:r})=>(0,C.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,C.jsx)(`span`,{className:`w-16 shrink-0 text-[9px] uppercase text-muted-foreground`,children:t}),(0,C.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:r.map(t=>(0,C.jsx)(`button`,{type:`button`,onClick:()=>e({[n]:t}),className:`rounded border border-border/60 px-1.5 py-0.5 text-[10px] hover:bg-primary hover:text-primary-foreground`,children:t},t))})]});return(0,C.jsxs)(`div`,{className:`mt-1 flex flex-col gap-1.5 rounded-lg border border-border/60 bg-muted/30 p-2`,children:[(0,C.jsx)(`span`,{className:`text-[10px] font-semibold uppercase text-muted-foreground`,children:t(`activity:designStudio.tune`)}),(0,C.jsx)(i,{label:t(`activity:designStudio.radius`),knob:`radius`,values:[`none`,`sm`,`md`,`lg`,`xl`,`full`]}),(0,C.jsx)(i,{label:t(`activity:designStudio.density`),knob:`density`,values:[`compact`,`cozy`,`comfortable`]}),(0,C.jsx)(i,{label:t(`activity:designStudio.motion`),knob:`motion`,values:[`snappy`,`smooth`,`none`]}),(0,C.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,C.jsx)(`span`,{className:`w-16 shrink-0 text-[9px] uppercase text-muted-foreground`,children:t(`activity:designStudio.font`)}),(0,C.jsx)(`input`,{value:n,onChange:e=>r(e.target.value),onKeyDown:t=>{t.key===`Enter`&&n.trim()&&e({font:n.trim()})},placeholder:t(`activity:designStudio.spaceGrotesk`),className:`h-6 min-w-0 flex-1 rounded border border-border/60 bg-background/70 px-1.5 text-[10px]`}),(0,C.jsx)(`button`,{type:`button`,onClick:()=>n.trim()&&e({font:n.trim()}),className:`rounded border border-border/60 px-1.5 py-0.5 text-[10px] hover:bg-muted`,children:t(`activity:designStudio.set`)})]})]})}function A({className:e}){let{client:n}=m(),r=t(),{t:_}=u(),[v,y]=(0,g.useState)([]),[b,x]=(0,g.useState)(null),[S,T]=(0,g.useState)({}),[A,j]=(0,g.useState)(`web`),[M,N]=(0,g.useState)(``),[P,F]=(0,g.useState)(null);(0,g.useEffect)(()=>{if(!n)return;let e=e=>{let t=e.payload?.sessionId;return typeof t!=`string`||t.length===0?r!==null:t!==r},t=t=>{if(e(t))return;let n=t.payload;y(n?.kits??[]),x(n?.activeKit??null),T(n?.overrides??{})},i=t=>{if(e(t))return;let n=t.payload;n?.ok&&n.kit&&(x(n.kit),T(n.overrides??{}))},o=t=>{if(e(t))return;let n=t.payload;n?.ok&&n.overrides&&T(n.overrides)},s=t=>{if(e(t))return;let n=t.payload;n?.ok&&n.overrides?(T(n.overrides),F(`Tuned`)):n?.error&&F(`Tune failed: ${n.error}`)},c=t=>{if(e(t))return;let n=t.payload;n?.ok&&n.kit&&(x(n.kit),T(n.overrides??{}),F(`Swapped to ${n.kit}`))},l=t=>{if(e(t))return;let n=t.payload;F(n?.ok?a.t(`activity:design.wrote`,{path:n.path}):a.t(`activity:design.materializeFailed`,{error:n?.error??`error`}))},u=t=>{if(e(t))return;let n=t.payload;if(!n?.ok){F(a.t(`activity:design.verifyError`,{error:n?.error??`error`}));return}let r=Math.round((n.score??1)*100);F(n.violationCount?a.t(`activity:design.verifyOffPalette`,{pct:r,count:n.violationCount,files:n.filesScanned}):a.t(`activity:design.verifyClean`,{files:n.filesScanned}))};return n.on(`design.list`,t),n.on(`design.use`,i),n.on(`design.set`,o),n.on(`design.tune`,s),n.on(`design.swap`,c),n.on(`design.materialize`,l),n.on(`design.verify`,u),n.send({type:`design.list`,payload:n.withSession({})}),()=>{n.off(`design.list`,t),n.off(`design.use`,i),n.off(`design.set`,o),n.off(`design.tune`,s),n.off(`design.swap`,c),n.off(`design.materialize`,l),n.off(`design.verify`,u)}},[n,r]);let I=(0,g.useCallback)(e=>n?.send({type:`design.use`,payload:n.withSession({kit:e,stack:A})}),[n,A]),L=(0,g.useCallback)((e,t)=>{T(n=>({...n,[e]:t})),n?.send({type:`design.set`,payload:n.withSession({overrides:{[e]:t}})})},[n]),R=(0,g.useCallback)(e=>n?.send({type:`design.tune`,payload:n.withSession({tune:e})}),[n]),z=(0,g.useCallback)(()=>{F(a.t(`activity:design.writing`)),n?.send({type:`design.materialize`,payload:n.withSession({stack:A})})},[n,A]),B=(0,g.useCallback)(()=>{F(a.t(`activity:design.scanning`)),n?.send({type:`design.verify`,payload:n.withSession({})})},[n]),V=(0,g.useMemo)(()=>{let e=M.trim().toLowerCase();return[...e?v.filter(t=>t.id.includes(e)||t.name.toLowerCase().includes(e)||t.aesthetic.toLowerCase().includes(e)||t.tags.some(t=>t.includes(e))):v].sort((e,t)=>e.name.localeCompare(t.name))},[v,M]);return(0,C.jsxs)(`div`,{className:f(`flex h-full min-h-0 min-w-0 flex-col overflow-hidden bg-[hsl(var(--surface-2)/0.45)]`,e),children:[(0,C.jsx)(`div`,{className:`border-b border-border/60 p-3`,children:(0,C.jsx)(`div`,{className:`rounded-xl border border-border/70 bg-card/75 p-3 shadow-sm`,children:(0,C.jsxs)(`div`,{className:`flex flex-col gap-3 lg:flex-row lg:items-center`,children:[(0,C.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,C.jsx)(`span`,{className:`flex h-9 w-9 shrink-0 items-center justify-center rounded-lg bg-primary/10 text-primary`,children:(0,C.jsx)(l,{className:`h-4 w-4`})}),(0,C.jsxs)(`div`,{className:`min-w-0`,children:[(0,C.jsx)(`h2`,{className:`truncate text-sm font-semibold`,children:_(`activity:design.heading`)}),(0,C.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:_(`activity:design.kitsCount`,{count:V.length})})]})]}),(0,C.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2 sm:flex-row sm:items-center lg:justify-end`,children:[(0,C.jsxs)(`label`,{className:`relative min-w-0 flex-1 sm:max-w-xs`,children:[(0,C.jsx)(i,{className:`pointer-events-none absolute left-2.5 top-1/2 h-3.5 w-3.5 -translate-y-1/2 text-muted-foreground/70`}),(0,C.jsx)(`input`,{value:M,onChange:e=>N(e.target.value),placeholder:_(`activity:design.searchPlaceholder`),className:`h-9 w-full rounded-md border border-border/70 bg-background/70 pl-8 pr-3 text-sm shadow-sm outline-none transition focus:border-primary/40 focus:ring-2 focus:ring-ring/30`})]}),(0,C.jsx)(`select`,{value:A,onChange:e=>j(e.target.value),className:`h-9 rounded-md border border-border/70 bg-background/70 px-2 text-sm shadow-sm`,title:_(`activity:design.stackTitle`),children:w.map(e=>(0,C.jsx)(`option`,{value:e,children:e},e))}),P&&(0,C.jsx)(`span`,{className:`min-w-0 truncate rounded-md border border-border/60 bg-muted/40 px-2 py-1 text-[11px] text-muted-foreground sm:max-w-56`,children:P}),(0,C.jsx)(`button`,{type:`button`,onClick:()=>p(`chat`),className:`inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-md text-muted-foreground hover:bg-muted hover:text-foreground`,title:_(`common:action.close`),children:(0,C.jsx)(s,{className:`h-4 w-4`})})]})]})})}),(0,C.jsx)(`div`,{ref:h(`design-gallery`),className:`min-h-0 min-w-0 flex-1 overflow-y-auto overscroll-contain p-3 sm:p-4`,children:V.length===0?(0,C.jsxs)(`div`,{className:`ws-surface mx-auto mt-8 flex max-w-md flex-col items-center gap-3 rounded-xl p-6 text-center text-muted-foreground`,children:[(0,C.jsx)(l,{className:`h-8 w-8 text-primary/60`}),(0,C.jsx)(`p`,{className:`text-sm font-medium text-foreground`,children:_(`activity:design.kitsCount`,{count:0})}),(0,C.jsx)(`p`,{className:`text-xs`,children:_(`activity:design.searchPlaceholder`)})]}):(0,C.jsx)(`div`,{className:`grid gap-4 [grid-template-columns:repeat(auto-fill,minmax(min(100%,20rem),1fr))]`,children:V.map(e=>{let t=b===e.id,n=t?S:{};return(0,C.jsxs)(`div`,{className:f(`flex min-w-0 flex-col overflow-hidden rounded-xl border bg-card/75 shadow-sm`,t?`border-primary/60 ring-1 ring-primary/30`:`border-border/70`),children:[(0,C.jsxs)(`div`,{className:`grid min-h-[12rem] grid-cols-1 sm:grid-cols-2`,children:[(0,C.jsx)(D,{t:E(e.light,n,`light`),label:_(`activity:designStudio.light`)}),(0,C.jsx)(D,{t:E(e.dark,n,`dark`),label:_(`activity:designStudio.dark`)})]}),(0,C.jsxs)(`div`,{className:`flex min-w-0 flex-col gap-2 border-t border-border/60 bg-card p-3`,children:[(0,C.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,C.jsx)(`h3`,{className:`text-sm font-semibold truncate`,children:e.name}),(0,C.jsx)(`code`,{className:`text-[10px] text-muted-foreground`,children:e.id}),t&&(0,C.jsxs)(`span`,{className:`inline-flex items-center gap-0.5 text-[9px] font-semibold uppercase text-primary ml-auto`,children:[(0,C.jsx)(o,{className:`w-3 h-3`}),` `,_(`activity:design.active`)]})]}),(0,C.jsx)(`p`,{className:`text-[11px] text-muted-foreground leading-snug`,children:e.aesthetic}),(0,C.jsxs)(`div`,{className:`mt-1 flex min-w-0 flex-wrap items-center gap-2`,children:[(0,C.jsx)(`button`,{type:`button`,onClick:()=>I(e.id),className:f(`rounded-md px-2.5 py-1 text-[11px] font-medium transition`,t?`bg-primary/10 text-primary`:`bg-primary text-primary-foreground hover:opacity-90`),children:_(t?`activity:design.reapply`:`activity:design.use`)}),t&&(0,C.jsxs)(`button`,{type:`button`,onClick:z,className:`inline-flex items-center gap-1 rounded-md border border-border/60 px-2 py-1 text-[11px] font-medium hover:bg-muted`,title:_(`activity:design.materializeTitle`,{stack:A}),children:[(0,C.jsx)(c,{className:`w-3 h-3`}),` `,_(`activity:design.materialize`)]}),t&&(0,C.jsxs)(`button`,{type:`button`,onClick:B,className:`inline-flex items-center gap-1 rounded-md border border-border/60 px-2 py-1 text-[11px] font-medium hover:bg-muted`,title:_(`activity:design.verifyTitle`),children:[(0,C.jsx)(d,{className:`w-3 h-3`}),` `,_(`activity:design.verify`)]}),(0,C.jsx)(`span`,{className:`min-w-0 flex-1 truncate text-[10px] text-muted-foreground`,children:e.bestFor})]}),t&&(0,C.jsx)(O,{kit:e,overrides:n,onSet:L}),t&&(0,C.jsx)(k,{onTune:R})]})]},e.id)})})})]})}export{A as DesignGalleryView};
@@ -0,0 +1 @@
1
+ import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-core-wiHys0m2.js";import{$n as r,Do as i,Fr as a,In as o,Jn as s,Mt as c,Nn as l,Oa as u,Rn as d,Wt as f,cn as p,pa as m,qn as h,qr as ee,qt as g,sa as _,va as v,wo as y,ya as b}from"./vendor-BfBvt432.js";import"./i18n-CzTjKT4L.js";import{t as x}from"./utils-B21Devim.js";import{o as S}from"./view-navigation-Cvrp_uJm.js";import{_ as C,t as w,v as T}from"./stores-Svlibwo5.js";import{t as E}from"./chat-store-BMwP_sS0.js";import{t as D}from"./button-UuKTnoM-.js";import{C as O,R as k,S as A,V as j,w as te}from"./index-Ci22AODp.js";var M=e(t(),1),N=n(),P={pending:{icon:(0,N.jsx)(v,{className:`w-4 h-4`}),color:`text-muted-foreground`},in_progress:{icon:(0,N.jsx)(m,{className:`w-4 h-4 animate-spin`}),color:`text-primary`},blocked:{icon:(0,N.jsx)(r,{className:`w-4 h-4`}),color:`text-warning`},failed:{icon:(0,N.jsx)(b,{className:`w-4 h-4`}),color:`text-destructive`},review:{icon:(0,N.jsx)(o,{className:`w-4 h-4`}),color:`text-info`},completed:{icon:(0,N.jsx)(u,{className:`w-4 h-4`}),color:`text-success`}},F={critical:`bg-destructive/15 text-destructive`,high:`bg-warning/15 text-warning`,medium:`bg-info/15 text-info`,low:`bg-muted text-muted-foreground`},I={feature:`bg-success/15 text-success`,bugfix:`bg-destructive/15 text-destructive`,refactor:`bg-primary/15 text-primary`,docs:`bg-info/15 text-info`,test:`bg-primary/15 text-primary`,chore:`bg-muted text-muted-foreground`};function L(e){if(!e)return``;let t=Math.floor(e/6e4);if(t<60)return`${t}m`;let n=Math.floor(t/60),r=t%60;return r>0?`${n}h ${r}m`:`${n}h`}function R({task:e,onStatusChange:t,onRetry:n,agents:r,onAssign:i,compact:a,className:s}){let{t:c}=y(),l=P[e.status],[u,d]=(0,M.useState)(!1),p=e.status===`in_progress`;return(0,N.jsxs)(`div`,{className:x(`w-full text-left rounded-lg border p-3 transition-all hover:shadow-sm`,p?`border-primary/40 bg-primary/5`:e.status===`completed`?`border-success/35 bg-success/6`:e.status===`failed`?`border-destructive/40 bg-destructive/5`:`border-border bg-card`,s),children:[(0,N.jsxs)(`div`,{className:`flex items-start gap-2`,children:[(0,N.jsx)(`span`,{className:x(`mt-0.5`,l.color),role:`img`,"aria-label":p?c(`common:status.inProgress`):void 0,children:l.icon}),(0,N.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,N.jsx)(`span`,{className:`text-sm font-medium`,children:e.title}),(0,N.jsx)(`span`,{className:x(`px-1.5 py-0.5 rounded text-[10px] font-medium`,F[e.priority]),children:e.priority}),(0,N.jsx)(`span`,{className:x(`px-1.5 py-0.5 rounded text-[10px] font-medium`,I[e.type]),children:e.type})]}),e.description&&(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground mt-1 line-clamp-2`,children:e.description})]})]}),e.assignee&&(0,N.jsxs)(`div`,{className:x(`mt-2 inline-flex items-center gap-1.5 rounded-full px-2 py-0.5 text-[10px] font-medium`,p?`bg-primary/15 text-primary`:`bg-muted text-muted-foreground`),children:[p&&(0,N.jsx)(m,{className:`w-3 h-3 animate-spin`,"aria-label":c(`common:status.working`)}),(0,N.jsx)(`span`,{children:e.assignee})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-3 mt-2 text-xs text-muted-foreground`,children:[e.estimateHours?(0,N.jsxs)(`span`,{children:[`~`,e.estimateHours,`h`]}):null,e.actualHours?(0,N.jsxs)(`span`,{children:[`• `,e.actualHours,`h`]}):null,e.startedAt?(0,N.jsxs)(`span`,{children:[`• `,L(Date.now()-e.startedAt)]}):null]}),e.tags.length>0&&(0,N.jsx)(`div`,{className:`flex flex-wrap gap-1 mt-2`,children:e.tags.map(e=>(0,N.jsx)(`span`,{className:`px-1.5 py-0.5 rounded text-[10px] bg-muted text-muted-foreground`,children:e},e))}),!a&&(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center gap-1 mt-2`,children:[t&&e.status!==`in_progress`&&e.status!==`completed`&&(0,N.jsx)(`button`,{type:`button`,onClick:()=>t(e.id,`in_progress`),className:`px-2 py-0.5 text-[10px] rounded bg-primary/15 text-primary hover:bg-primary/25 transition-colors`,children:c(`activity:task.start`)}),t&&e.status===`in_progress`&&(0,N.jsx)(`button`,{type:`button`,onClick:()=>t(e.id,`completed`),className:`px-2 py-0.5 text-[10px] rounded bg-success/15 text-success hover:bg-success/25 transition-colors`,children:c(`activity:task.complete`)}),n&&(e.status===`failed`||e.status===`completed`)&&(0,N.jsxs)(`button`,{type:`button`,onClick:()=>n(e.id),className:`px-2 py-0.5 text-[10px] rounded bg-muted text-muted-foreground hover:bg-muted/70 transition-colors inline-flex items-center gap-1`,children:[(0,N.jsx)(o,{className:`w-3 h-3`}),` `,c(`activity:task.retry`)]}),i&&r&&r.length>0&&(u?(0,N.jsxs)(`select`,{defaultValue:e.assignee??``,onChange:t=>{i(e.id,t.target.value),d(!1)},onBlur:()=>d(!1),className:`px-1 py-0.5 text-[10px] rounded border border-border bg-card`,children:[(0,N.jsx)(`option`,{value:``,children:c(`activity:task.unassigned`)}),r.map(e=>(0,N.jsx)(`option`,{value:e,children:e},e))]}):(0,N.jsxs)(`button`,{type:`button`,onClick:()=>d(!0),className:`px-2 py-0.5 text-[10px] rounded bg-muted text-muted-foreground hover:bg-muted/70 transition-colors inline-flex items-center gap-1`,title:c(`activity:task.assignTitle`),children:[(0,N.jsx)(f,{className:`w-3 h-3`}),` `,c(`activity:task.assign`)]}))]})]})}var z=[{key:`pending`,match:[`pending`,`blocked`]},{key:`in_progress`,match:[`in_progress`]},{key:`review`,match:[`review`]},{key:`failed`,match:[`failed`]},{key:`completed`,match:[`completed`]}],B={pending:`bg-muted text-muted-foreground`,ready:`bg-info/15 text-info`,running:`bg-primary/15 text-primary`,paused:`bg-warning/15 text-warning`,completed:`bg-success/15 text-success`,failed:`bg-destructive/15 text-destructive`,skipped:`bg-muted text-muted-foreground`};function ne(){let{client:e}=j(),{t}=y(),n=C(e=>e.phases),r=C(e=>e.multiBoard),[i,a]=(0,M.useState)(`phase`),[o,s]=(0,M.useState)(null),[c,u]=(0,M.useState)(null),[d,f]=(0,M.useState)(0),p=Math.min(d,Math.max(0,n.length-1)),m=r?n[p]:void 0,h=(0,M.useMemo)(()=>n.flatMap(e=>(e.tasks??[]).map(t=>({...t,phaseId:e.id}))),[n]),ee=(0,M.useMemo)(()=>[...new Set(h.map(e=>e.assignee).filter(e=>!!e))],[h]),g=(0,M.useCallback)(t=>e?.send?.(t),[e]),v=(0,M.useCallback)((e,t)=>g({type:`goal.taskStatus`,payload:{taskId:e,status:t}}),[g]),b=(0,M.useCallback)(e=>g({type:`goal.retryTask`,payload:{taskId:e}}),[g]),S=(0,M.useCallback)((e,t)=>g({type:`goal.assignTask`,payload:{taskId:e,agentName:t||void 0}}),[g]),w=(0,M.useCallback)(e=>{k({title:t(`activity:board.newTaskTitle`),placeholder:t(`activity:board.newTaskPlaceholder`),confirmLabel:t(`activity:board.addTask`)}).then(t=>{t&&g({type:`goal.addTask`,payload:{phaseId:e,title:t}})})},[g]),T=(0,M.useCallback)(e=>{o&&g({type:`goal.moveTask`,payload:{taskId:o,toPhaseId:e}}),s(null),u(null)},[o,g]),E=(0,M.useCallback)(e=>{o&&g({type:`goal.taskStatus`,payload:{taskId:o,status:e}}),s(null),u(null)},[o,g]),D={onStatusChange:v,onRetry:b,agents:ee,onAssign:S};function O(e){return{draggable:!0,onDragStart:t=>{s(e),t.dataTransfer.effectAllowed=`move`},onDragEnd:()=>{s(null),u(null)}}}function A(e,t){return{onDragOver:t=>{t.preventDefault(),t.dataTransfer.dropEffect=`move`,c!==e&&u(e)},onDragLeave:()=>u(t=>t===e?null:t),onDrop:e=>{e.preventDefault(),t()},"data-hover":c===e||void 0}}return n.length===0?(0,N.jsx)(`div`,{className:`flex h-full min-h-0 min-w-0 items-center justify-center text-muted-foreground`,children:(0,N.jsx)(`p`,{className:`text-sm`,children:t(`activity:board.empty`)})}):(0,N.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-col`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border px-4 py-2`,children:[(0,N.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:t(`activity:board.summary`,{phases:n.length,tasks:h.length})}),(0,N.jsxs)(`div`,{className:`flex items-center gap-1 rounded-md border border-border p-0.5`,children:[(0,N.jsxs)(`button`,{type:`button`,onClick:()=>a(`phase`),className:x(`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors`,i===`phase`?`bg-primary/15 text-primary`:`text-muted-foreground hover:text-foreground`),children:[(0,N.jsx)(_,{className:`h-3.5 w-3.5`}),` `,t(`activity:board.phases`)]}),(0,N.jsxs)(`button`,{type:`button`,onClick:()=>a(`status`),className:x(`inline-flex items-center gap-1 rounded px-2 py-1 text-xs transition-colors`,i===`status`?`bg-primary/15 text-primary`:`text-muted-foreground hover:text-foreground`),children:[(0,N.jsx)(l,{className:`h-3.5 w-3.5`}),` `,t(`activity:board.statusTab`)]})]})]}),r&&m?(0,N.jsxs)(`div`,{className:`flex min-h-0 min-w-0 flex-1 flex-col`,children:[(0,N.jsx)(`div`,{className:`flex shrink-0 gap-1 overflow-x-auto border-b border-border px-3 py-1.5`,children:n.map((e,t)=>(0,N.jsxs)(`button`,{type:`button`,onClick:()=>f(t),className:x(`shrink-0 rounded-t px-3 py-1.5 text-xs font-medium transition-colors`,t===p?`border-primary/40 bg-primary/10 text-primary`:`text-muted-foreground hover:bg-muted hover:text-foreground`),children:[(0,N.jsx)(`span`,{className:`truncate`,children:e.name}),(0,N.jsxs)(`span`,{className:`ml-1.5 text-[10px] text-muted-foreground`,children:[e.completedTasks,`/`,e.taskCount]})]},e.id))}),(0,N.jsx)(U,{phase:m,allTasks:h,layout:i,dragId:o,hoverKey:c,callbacks:D,draggable:O,dropZone:A,dropToPhase:T,dropToStatus:E,onAddTask:w})]}):(0,N.jsx)(H,{phases:n,allTasks:h,layout:i,dragId:o,hoverKey:c,callbacks:D,draggable:O,dropZone:A,dropToPhase:T,dropToStatus:E,onAddTask:w})]})}function V({phase:e,phaseTasks:t,callbacks:n,draggable:r,dropZone:i,dropToPhase:a,onAddTask:o,dragId:s,hoverKey:c}){let{t:l}=y();return(0,N.jsxs)(`div`,{...i(`phase:${e.id}`,()=>a(e.id)),className:x(`flex min-h-0 w-80 shrink-0 flex-col rounded-lg border bg-muted/30 transition-colors`,c===`phase:${e.id}`?`border-primary/60 bg-primary/5`:`border-border`),children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-between gap-2 border-b border-border px-3 py-2`,children:[(0,N.jsxs)(`div`,{className:`min-w-0`,children:[(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsx)(`span`,{className:`truncate text-sm font-semibold`,children:e.name}),(0,N.jsx)(`span`,{className:x(`rounded px-1.5 py-0.5 text-[10px] font-medium capitalize`,B[e.status]),children:e.status})]}),(0,N.jsxs)(`span`,{className:`text-[11px] text-muted-foreground`,children:[e.completedTasks,`/`,e.taskCount,` · `,e.progressPercent,`%`]})]}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>o(e.id),title:l(`activity:board.addTask`),className:`rounded p-1 text-muted-foreground hover:bg-muted hover:text-foreground`,children:(0,N.jsx)(h,{className:`h-4 w-4`})})]}),(0,N.jsx)(`div`,{className:`min-h-0 flex-1 space-y-2 overflow-y-auto overscroll-contain p-2`,children:t.length===0?(0,N.jsx)(`p`,{className:`px-1 py-4 text-center text-[11px] text-muted-foreground`,children:l(`activity:board.dropHere`)}):t.map(e=>(0,N.jsx)(`div`,{...r(e.id),className:x(s===e.id&&`opacity-50`),children:(0,N.jsx)(R,{task:e,...n})},e.id))})]})}function H({phases:e,allTasks:t,layout:n,dragId:r,hoverKey:i,callbacks:a,draggable:o,dropZone:s,dropToPhase:c,dropToStatus:l,onAddTask:u}){return(0,N.jsx)(N.Fragment,{children:n===`phase`?(0,N.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 gap-3 overflow-x-auto p-3`,children:e.map(e=>{let n=t.filter(t=>t.phaseId===e.id);return(0,N.jsx)(V,{phase:e,phaseTasks:n,callbacks:a,draggable:o,dropZone:s,dropToPhase:c,onAddTask:u,dragId:r,hoverKey:i},e.id)})}):(0,N.jsx)(W,{phases:e,allTasks:t,dragId:r,hoverKey:i,callbacks:a,draggable:o,dropZone:s,dropToStatus:l})})}function U({phase:e,allTasks:t,layout:n,dragId:r,hoverKey:i,callbacks:a,draggable:o,dropZone:s,dropToPhase:c,dropToStatus:l,onAddTask:u}){let d=t.filter(t=>t.phaseId===e.id),{t:f}=y();return n===`phase`?(0,N.jsx)(`div`,{className:`flex min-h-0 min-w-0 flex-1 gap-3 overflow-x-auto p-3`,children:(0,N.jsx)(V,{phase:e,phaseTasks:d,callbacks:a,draggable:o,dropZone:s,dropToPhase:c,onAddTask:u,dragId:r,hoverKey:i})}):(0,N.jsx)(`div`,{className:`min-h-0 min-w-0 flex-1 overflow-auto overscroll-contain p-3`,children:(0,N.jsxs)(`div`,{className:`grid min-w-[900px] gap-2`,style:{gridTemplateColumns:`9rem repeat(${z.length}, minmax(0, 1fr))`},children:[(0,N.jsx)(`div`,{}),z.map(e=>(0,N.jsx)(`div`,{className:`px-2 pb-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:f(`activity:board.status.${e.key}`)},e.key)),(0,N.jsxs)(G,{children:[(0,N.jsx)(`div`,{className:`flex items-center pr-2`,children:(0,N.jsxs)(`div`,{className:`min-w-0`,children:[(0,N.jsx)(`div`,{className:`truncate text-sm font-medium`,children:e.name}),(0,N.jsx)(`span`,{className:x(`mt-0.5 inline-block rounded px-1.5 py-0.5 text-[10px] capitalize`,B[e.status]),children:e.status})]})}),z.map(t=>{let n=d.filter(e=>t.match.includes(e.status)),c=`cell:${e.id}:${t.key}`;return(0,N.jsx)(`div`,{...s(c,()=>l(t.key)),className:x(`min-h-[4rem] space-y-2 rounded-md border p-1.5 transition-colors`,i===c?`border-primary/60 bg-primary/5`:`border-border bg-muted/20`),children:n.map(e=>(0,N.jsx)(`div`,{...o(e.id),className:x(r===e.id&&`opacity-50`),children:(0,N.jsx)(R,{task:e,compact:!0,...a})},e.id))},t.key)})]},e.id)]})})}function W({phases:e,allTasks:t,dragId:n,hoverKey:r,callbacks:i,draggable:a,dropZone:o,dropToStatus:s}){let{t:c}=y();return(0,N.jsxs)(`div`,{className:`grid min-w-[900px] gap-2`,style:{gridTemplateColumns:`9rem repeat(${z.length}, minmax(0, 1fr))`},children:[(0,N.jsx)(`div`,{}),z.map(e=>(0,N.jsx)(`div`,{className:`px-2 pb-1 text-xs font-semibold uppercase tracking-wider text-muted-foreground`,children:c(`activity:board.status.${e.key}`)},e.key)),e.map(e=>(0,N.jsxs)(G,{children:[(0,N.jsx)(`div`,{className:`flex items-center pr-2`,children:(0,N.jsxs)(`div`,{className:`min-w-0`,children:[(0,N.jsx)(`div`,{className:`truncate text-sm font-medium`,children:e.name}),(0,N.jsx)(`span`,{className:x(`mt-0.5 inline-block rounded px-1.5 py-0.5 text-[10px] capitalize`,B[e.status]),children:e.status})]})}),z.map(c=>{let l=t.filter(t=>t.phaseId===e.id&&c.match.includes(t.status)),u=`cell:${e.id}:${c.key}`;return(0,N.jsx)(`div`,{...o(u,()=>s(c.key)),className:x(`min-h-[4rem] space-y-2 rounded-md border p-1.5 transition-colors`,r===u?`border-primary/60 bg-primary/5`:`border-border bg-muted/20`),children:l.map(e=>(0,N.jsx)(`div`,{...a(e.id),className:x(n===e.id&&`opacity-50`),children:(0,N.jsx)(R,{task:e,compact:!0,...i})},e.id))},c.key)})]},e.id))]})}function G({children:e}){return(0,N.jsx)(N.Fragment,{children:e})}function K({onClose:e}){let{client:t}=j(),{t:n}=y(),o=C(e=>e.phases),l=C(e=>e.overallPercent),u=C(e=>e.title),f=C(e=>e.graphId),m=C(e=>e.goal),_=C(e=>e.status),v=C(e=>e.lastError),b=C(e=>e.finalVerification),k=C(e=>e.graphs);(0,M.useEffect)(()=>{t?.send?.({type:`goal.list`}),t?.send?.({type:`goal.status`})},[t]);let P=w(e=>e.worktrees),F=w(e=>e.baseBranch),[I,L]=(0,M.useState)(``),[R,z]=(0,M.useState)(null),[B,V]=(0,M.useState)(!1),[H,U]=(0,M.useState)(!0),[W,G]=(0,M.useState)(!1),[K,re]=(0,M.useState)(!0),[q,ie]=(0,M.useState)(!1),J=T(e=>e.result),Y=T(e=>e.loading),X=(0,M.useRef)(null);(0,M.useEffect)(()=>{if(X.current&&clearTimeout(X.current),!I.trim()){T.getState().clear();return}return X.current=setTimeout(()=>{T.getState().setLoading();let e=T.getState().nextSeq();t?.send?.({type:`goal.assess`,payload:{goal:I,seq:e}})},800),()=>{X.current&&clearTimeout(X.current)}},[I,t]),(0,M.useEffect)(()=>{!I.trim()&&!R&&T.getState().clear()},[I,R]);let Z=o.length>0,ae=R!=null&&!Z;(0,M.useEffect)(()=>{Z&&z(null)},[Z]);let Q=(0,M.useCallback)(()=>{let e=I.trim();if(!e||R!=null)return;let n=E.getState();n.addMessage({role:`user`,content:e}),n.addMessage({role:`assistant`,content:i.t(`activity:goalRun.planningAck`)}),z(e),L(``),t?.send?.({type:`goal.start`,payload:{title:e,autonomous:!0,worktrees:H,multiBoard:W,verifyTasks:K,chimeraReview:q}}),S(`chat`)},[I,R,t,H,W,K,q]),oe=(0,M.useCallback)(()=>{t?.send?.({type:`goal.stop`,payload:{}}),z(null)},[t]),se=(0,M.useCallback)(()=>{t?.send?.(_===`paused`?{type:`goal.resume`,payload:{}}:{type:`goal.pause`,payload:{}})},[t,_]),ce=(0,M.useCallback)(()=>{f&&t?.send?.({type:`goal.resume`,payload:{graphId:f}})},[t,f]),le=(0,M.useCallback)(()=>{t?.send?.({type:`goal.stop`,payload:{}})},[t]),ue=(0,M.useCallback)(()=>{t?.send?.({type:`goal.clear`,payload:{}}),C.getState().clear(),z(null),L(``)},[t]),[de,$]=(0,M.useState)(!1),fe=(0,M.useCallback)(()=>{t?.send?.({type:`goal.revert`,payload:{}}),$(!1)},[t]),pe=_===`running`||_===`paused`,me=_===`stopped`||_===`completed`||_===`failed`,he=(0,M.useCallback)(e=>{e&&t?.send?.({type:`goal.load`,payload:{graphId:e}})},[t]);return(0,N.jsxs)(`div`,{className:`flex h-full min-h-0 min-w-0 flex-col bg-background`,children:[(0,N.jsxs)(`header`,{className:`flex shrink-0 flex-col gap-2 border-b bg-card px-4 py-2 sm:flex-row sm:items-center sm:justify-between`,children:[(0,N.jsxs)(`div`,{className:`flex min-w-0 items-center gap-2`,children:[(0,N.jsx)(ee,{className:`h-5 w-5 text-muted-foreground`}),(0,N.jsxs)(`div`,{children:[(0,N.jsx)(`h1`,{className:`text-lg font-semibold`,children:Z&&u||`Goal`}),Z&&(0,N.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:n(`activity:goalRun.summary`,{count:o.length,pct:l})})]}),Z&&(0,N.jsx)(`span`,{className:x(`rounded border px-2 py-0.5 text-[11px] font-medium capitalize`,_===`failed`?`border-destructive/40 bg-destructive/10 text-destructive`:_===`paused`||_===`stopped`?`border-warning/40 bg-warning/10 text-warning`:_===`completed`?`border-success/40 bg-success/10 text-success`:`border-primary/30 bg-primary/10 text-primary`),title:v??void 0,children:_}),b&&(0,N.jsxs)(`span`,{className:x(`rounded border px-2 py-0.5 text-[11px] font-medium`,b.status===`passed`?`border-success/40 bg-success/10 text-success`:`border-destructive/40 bg-destructive/10 text-destructive`),title:b.error,children:[n(`activity:goalRun.verifyTasksLabel`),`:`,` `,n(b.status===`passed`?`activity:goal.statusDone`:`activity:goal.statusFailed`)]})]}),(0,N.jsxs)(`div`,{className:`flex min-w-0 flex-wrap items-center gap-2 sm:justify-end`,children:[k.length>0&&(0,N.jsxs)(`select`,{value:Z?f??``:``,onChange:e=>he(e.target.value),title:n(`activity:goalRun.switchBoard`),className:`min-w-0 flex-1 rounded border border-border bg-card px-2 py-1 text-xs text-foreground sm:w-72 sm:flex-none`,children:[(0,N.jsx)(`option`,{value:``,disabled:!0,children:n(`activity:goalRun.boardsCount`,{count:k.length})}),k.map(e=>(0,N.jsxs)(`option`,{value:e.id,children:[e.title,` · `,e.status]},e.id))]}),pe&&(0,N.jsxs)(N.Fragment,{children:[(0,N.jsxs)(`button`,{type:`button`,onClick:se,title:n(_===`paused`?`activity:goalRun.resumeTitle`:`activity:goalRun.pauseTitle`),className:`inline-flex items-center gap-1 rounded border border-border px-2 py-1 text-xs text-muted-foreground transition-colors hover:text-foreground`,children:[_===`paused`?(0,N.jsx)(s,{className:`h-3.5 w-3.5`}):(0,N.jsx)(r,{className:`h-3.5 w-3.5`}),n(_===`paused`?`activity:goalRun.resume`:`activity:goalRun.pause`)]}),(0,N.jsxs)(`button`,{type:`button`,onClick:le,title:n(`activity:goalRun.stopTitle`),className:`inline-flex items-center gap-1 rounded border border-destructive/40 bg-destructive/10 px-2 py-1 text-xs font-medium text-destructive transition-colors hover:bg-destructive/20`,children:[(0,N.jsx)(p,{className:`h-3.5 w-3.5 fill-current`}),` `,n(`activity:goalRun.stop`)]})]}),Z&&me&&(0,N.jsxs)(N.Fragment,{children:[(_===`stopped`||_===`failed`)&&f&&(0,N.jsxs)(`button`,{type:`button`,onClick:ce,title:n(`activity:goalRun.resumeTitle`),className:`inline-flex items-center gap-1 rounded border border-primary/30 bg-primary/10 px-2 py-1 text-xs font-medium text-primary transition-colors hover:bg-primary/20`,children:[(0,N.jsx)(s,{className:`h-3.5 w-3.5`}),` `,n(`activity:goalRun.resume`)]}),(0,N.jsxs)(`button`,{type:`button`,onClick:ue,title:n(`activity:goalRun.newTitle`),className:`inline-flex items-center gap-1 rounded border border-primary/30 bg-primary/10 px-2 py-1 text-xs font-medium text-primary transition-colors hover:bg-primary/20`,children:[(0,N.jsx)(h,{className:`h-3.5 w-3.5`}),` `,n(`activity:goalRun.newLabel`)]}),de?(0,N.jsxs)(`span`,{className:`inline-flex items-center gap-1 rounded border border-warning/40 bg-warning/10 px-1.5 py-0.5 text-xs`,children:[(0,N.jsx)(`span`,{className:`text-warning`,children:n(`activity:goalRun.revertConfirm`)}),(0,N.jsx)(`button`,{type:`button`,onClick:fe,className:`rounded bg-destructive/15 px-1.5 py-0.5 font-medium text-destructive hover:bg-destructive/25`,children:n(`common:action.yes`)}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>$(!1),className:`rounded px-1.5 py-0.5 text-muted-foreground hover:text-foreground`,children:n(`common:action.no`)})]}):(0,N.jsxs)(`button`,{type:`button`,onClick:()=>$(!0),title:n(`activity:goalRun.revertTitle`),className:`inline-flex items-center gap-1 rounded border border-border px-2 py-1 text-xs text-muted-foreground transition-colors hover:text-foreground`,children:[(0,N.jsx)(g,{className:`h-3.5 w-3.5`}),` `,n(`activity:goalRun.revert`)]})]}),(0,N.jsx)(D,{variant:`ghost`,size:`icon`,onClick:e,children:(0,N.jsx)(c,{className:`h-4 w-4`})})]})]}),Z&&m&&(0,N.jsxs)(`div`,{className:`shrink-0 border-b border-border/60 bg-muted/20 px-4 py-2.5`,children:[(0,N.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:[(0,N.jsx)(d,{className:`h-3 w-3`}),` `,n(`activity:goalRun.goal`)]}),(0,N.jsx)(`p`,{className:`whitespace-pre-wrap text-sm leading-relaxed text-foreground/90`,children:m})]}),Z?(0,N.jsx)(`div`,{className:`flex min-h-0 flex-1`,children:(0,N.jsx)(ne,{})}):ae?(0,N.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-8`,children:(0,N.jsxs)(`div`,{className:`max-w-lg w-full space-y-5 text-center`,children:[(0,N.jsx)(a,{className:`h-10 w-10 mx-auto animate-spin text-primary/70`}),(0,N.jsxs)(`div`,{className:`space-y-1`,children:[(0,N.jsx)(`h2`,{className:`text-xl font-semibold`,children:n(`activity:goalRun.planning`)}),(0,N.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`activity:goalRun.planningBody`)})]}),(0,N.jsxs)(`div`,{className:`rounded-lg border border-border bg-card px-4 py-3 text-left`,children:[(0,N.jsxs)(`div`,{className:`mb-1 flex items-center gap-1.5 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground`,children:[(0,N.jsx)(d,{className:`h-3 w-3`}),` `,n(`activity:goalRun.goal`)]}),(0,N.jsx)(`p`,{className:`whitespace-pre-wrap text-sm leading-relaxed text-foreground/90`,children:R})]}),(0,N.jsxs)(D,{variant:`outline`,onClick:oe,className:`gap-2`,children:[(0,N.jsx)(p,{className:`h-4 w-4 fill-current`}),` `,n(`common:action.cancel`)]})]})}):(0,N.jsx)(`div`,{className:`flex-1 flex items-center justify-center p-8`,children:(0,N.jsxs)(`div`,{className:`max-w-lg w-full space-y-6`,children:[(0,N.jsxs)(`div`,{className:`text-center space-y-2`,children:[(0,N.jsx)(d,{className:`h-10 w-10 mx-auto text-primary/60`}),(0,N.jsx)(`h2`,{className:`text-xl font-semibold`,children:n(`activity:goalRun.startHeading`)}),(0,N.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:n(`activity:goalRun.startBody`)})]}),(0,N.jsx)(`textarea`,{value:I,onChange:e=>L(e.target.value),placeholder:n(`activity:goalRun.startPlaceholder`),rows:5,className:`w-full rounded-lg border border-border bg-card px-4 py-3 text-sm resize-none focus:outline-none focus:ring-2 focus:ring-primary/30 placeholder:text-muted-foreground/70`,onKeyDown:e=>{e.key===`Enter`&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),Q())}}),Y&&(0,N.jsxs)(`div`,{className:`flex items-center gap-2 text-xs text-muted-foreground`,children:[(0,N.jsx)(a,{className:`h-3 w-3 animate-spin`}),n(`activity:goalRun.assess.analyzing`)]}),!Y&&J&&!J.parseFailed&&(0,N.jsxs)(`div`,{className:x(`rounded-lg border px-3 py-2 text-xs space-y-1.5`,J.realistic?`border-success/40 bg-success/10`:`border-warning/40 bg-warning/10`),children:[(0,N.jsx)(`div`,{className:`flex items-center gap-1.5 font-medium`,children:J.realistic?(0,N.jsx)(`span`,{className:`text-success`,children:n(`activity:goalRun.assess.realistic`)}):(0,N.jsx)(`span`,{className:`text-warning`,children:n(`activity:goalRun.assess.durationConcern`)})}),J.durationClaimed&&(0,N.jsx)(`p`,{className:`text-muted-foreground`,children:n(`activity:goalRun.assess.durationClaimed`,{duration:J.durationClaimed})}),(0,N.jsx)(`p`,{className:`text-muted-foreground`,children:J.explanation}),J.recommendedDuration&&(0,N.jsx)(`p`,{className:`text-muted-foreground`,children:n(`activity:goalRun.assess.recommendation`,{duration:J.recommendedDuration})}),J.concerns.length>0&&(0,N.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,N.jsx)(`p`,{className:`font-medium text-foreground/80`,children:n(`activity:goalRun.assess.concerns`)}),(0,N.jsx)(`ul`,{className:`list-disc pl-4 space-y-0.5 text-muted-foreground`,children:J.concerns.map((e,t)=>(0,N.jsx)(`li`,{children:e},t))})]})]}),!Y&&J?.parseFailed&&(0,N.jsx)(`div`,{className:`rounded-lg border border-border/40 bg-muted/20 px-3 py-2 text-xs text-muted-foreground`,children:n(`activity:goalRun.assess.analysisFailed`)}),(0,N.jsxs)(`label`,{className:`flex cursor-pointer items-center justify-center gap-2 text-xs text-muted-foreground`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:H,onChange:e=>U(e.target.checked),className:`h-3.5 w-3.5 accent-primary`}),n(`activity:goalRun.isolateLabel`)]}),(0,N.jsxs)(`div`,{className:`flex flex-wrap items-center justify-center gap-3 text-xs text-muted-foreground`,children:[(0,N.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-1.5`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:W,onChange:e=>G(e.target.checked),className:`h-3.5 w-3.5 accent-primary`}),n(`activity:goalRun.multiBoardLabel`)]}),(0,N.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-1.5`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:K,onChange:e=>re(e.target.checked),className:`h-3.5 w-3.5 accent-primary`}),n(`activity:goalRun.verifyTasksLabel`)]}),(0,N.jsxs)(`label`,{className:`flex cursor-pointer items-center gap-1.5`,children:[(0,N.jsx)(`input`,{type:`checkbox`,checked:q,onChange:e=>ie(e.target.checked),className:`h-3.5 w-3.5 accent-primary`}),n(`activity:goalRun.chimeraReviewLabel`)]})]}),(0,N.jsxs)(`div`,{className:`flex items-center gap-3`,children:[!Y&&J&&!J.realistic&&!J.parseFailed&&(0,N.jsx)(`button`,{type:`button`,onClick:()=>T.getState().clear(),className:`shrink-0 rounded border border-border px-2 py-1 text-xs text-muted-foreground hover:text-foreground transition-colors`,title:n(`activity:goalRun.assess.overrideTitle`),children:n(`activity:goalRun.assess.override`)}),(0,N.jsxs)(D,{onClick:Q,disabled:!I.trim()||R!=null||Y||!Y&&J!=null&&!J.parseFailed&&!J.realistic,className:`flex-1 gap-2`,title:I.trim()&&!Y&&J&&!J.parseFailed&&!J.realistic?n(`activity:goalRun.assess.disableTitle`):``,children:[(0,N.jsx)(s,{className:`h-4 w-4`}),n(`activity:goalRun.startButton`)]})]}),(0,N.jsxs)(`p`,{className:`text-xs text-muted-foreground text-center`,children:[n(`activity:goalRun.ctrlHint`),` ·`,` `,n(H?`activity:goalRun.isolateOn`:`activity:goalRun.isolateOff`)]})]})}),P.length>0&&(0,N.jsxs)(`div`,{className:`border-t bg-card/50 shrink-0`,children:[(0,N.jsxs)(`div`,{className:`flex items-center justify-end gap-2 px-4 pt-2 text-xs`,children:[(0,N.jsx)(`button`,{type:`button`,onClick:()=>V(!1),className:x(`rounded px-2 py-0.5 border transition-colors`,B?`border-border text-muted-foreground hover:text-foreground`:`bg-primary/10 border-primary/30 text-primary`),children:n(`activity:goalRun.lanes`)}),(0,N.jsx)(`button`,{type:`button`,onClick:()=>V(!0),className:x(`rounded px-2 py-0.5 border transition-colors`,B?`bg-primary/10 border-primary/30 text-primary`:`border-border text-muted-foreground hover:text-foreground`),children:n(`activity:goalRun.graph`)})]}),(0,N.jsxs)(`div`,{className:`space-y-2 px-4 pb-3`,children:[(0,N.jsx)(A,{}),B?(0,N.jsx)(te,{worktrees:P,baseBranch:F}):(0,N.jsx)(O,{worktrees:P,baseBranch:F})]})]})]})}export{K as GoalView};