constellai 0.3.7 → 0.3.9

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 (438) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +6 -6
  3. package/.next/next-minimal-server.js.nft.json +1 -1
  4. package/.next/next-server.js.nft.json +1 -1
  5. package/.next/prerender-manifest.json +3 -3
  6. package/.next/react-loadable-manifest.json +6 -6
  7. package/.next/server/app/(app)/activity/page.js +2 -2
  8. package/.next/server/app/(app)/activity/page.js.nft.json +1 -1
  9. package/.next/server/app/(app)/activity/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/(app)/agents/[handle]/page.js +3 -3
  11. package/.next/server/app/(app)/agents/[handle]/page.js.nft.json +1 -1
  12. package/.next/server/app/(app)/agents/[handle]/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/(app)/code/page.js +2 -2
  14. package/.next/server/app/(app)/code/page.js.nft.json +1 -1
  15. package/.next/server/app/(app)/code/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/(app)/config/page.js +2 -2
  17. package/.next/server/app/(app)/config/page.js.nft.json +1 -1
  18. package/.next/server/app/(app)/config/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/(app)/costs/page.js +2 -2
  20. package/.next/server/app/(app)/costs/page.js.nft.json +1 -1
  21. package/.next/server/app/(app)/costs/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/(app)/cron/page.js +2 -2
  23. package/.next/server/app/(app)/cron/page.js.nft.json +1 -1
  24. package/.next/server/app/(app)/cron/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/(app)/dashboard/page.js +2 -2
  26. package/.next/server/app/(app)/dashboard/page.js.nft.json +1 -1
  27. package/.next/server/app/(app)/dashboard/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/(app)/design/page.js +14 -14
  29. package/.next/server/app/(app)/design/page.js.nft.json +1 -1
  30. package/.next/server/app/(app)/design/page_client-reference-manifest.js +1 -1
  31. package/.next/server/app/(app)/docs/[id]/page.js +2 -2
  32. package/.next/server/app/(app)/docs/[id]/page.js.nft.json +1 -1
  33. package/.next/server/app/(app)/docs/[id]/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app/(app)/docs/page.js +2 -2
  35. package/.next/server/app/(app)/docs/page.js.nft.json +1 -1
  36. package/.next/server/app/(app)/docs/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/(app)/github/page.js +2 -2
  38. package/.next/server/app/(app)/github/page.js.nft.json +1 -1
  39. package/.next/server/app/(app)/github/page_client-reference-manifest.js +1 -1
  40. package/.next/server/app/(app)/goals/page.js +2 -2
  41. package/.next/server/app/(app)/goals/page.js.nft.json +1 -1
  42. package/.next/server/app/(app)/goals/page_client-reference-manifest.js +1 -1
  43. package/.next/server/app/(app)/inbox/page.js +2 -2
  44. package/.next/server/app/(app)/inbox/page.js.nft.json +1 -1
  45. package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/(app)/knowledge/page.js +3 -3
  47. package/.next/server/app/(app)/knowledge/page.js.nft.json +1 -1
  48. package/.next/server/app/(app)/knowledge/page_client-reference-manifest.js +1 -1
  49. package/.next/server/app/(app)/models/page.js +2 -2
  50. package/.next/server/app/(app)/models/page.js.nft.json +1 -1
  51. package/.next/server/app/(app)/models/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app/(app)/notifications/page.js +2 -2
  53. package/.next/server/app/(app)/notifications/page.js.nft.json +1 -1
  54. package/.next/server/app/(app)/notifications/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/(app)/org/page.js +4 -4
  56. package/.next/server/app/(app)/org/page.js.nft.json +1 -1
  57. package/.next/server/app/(app)/org/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/(app)/organizations/page.js +2 -2
  59. package/.next/server/app/(app)/organizations/page.js.nft.json +1 -1
  60. package/.next/server/app/(app)/organizations/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/(app)/page.js +3 -3
  62. package/.next/server/app/(app)/page.js.nft.json +1 -1
  63. package/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
  64. package/.next/server/app/(app)/planner/page.js +3 -3
  65. package/.next/server/app/(app)/planner/page.js.nft.json +1 -1
  66. package/.next/server/app/(app)/planner/page_client-reference-manifest.js +1 -1
  67. package/.next/server/app/(app)/plugins/page.js +2 -2
  68. package/.next/server/app/(app)/plugins/page.js.nft.json +1 -1
  69. package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -1
  70. package/.next/server/app/(app)/pm/page.js +2 -2
  71. package/.next/server/app/(app)/pm/page.js.nft.json +1 -1
  72. package/.next/server/app/(app)/pm/page_client-reference-manifest.js +1 -1
  73. package/.next/server/app/(app)/prepare-deploy/page.js +3 -3
  74. package/.next/server/app/(app)/prepare-deploy/page.js.nft.json +1 -1
  75. package/.next/server/app/(app)/prepare-deploy/page_client-reference-manifest.js +1 -1
  76. package/.next/server/app/(app)/profile/page.js +2 -2
  77. package/.next/server/app/(app)/profile/page.js.nft.json +1 -1
  78. package/.next/server/app/(app)/profile/page_client-reference-manifest.js +1 -1
  79. package/.next/server/app/(app)/pulse/page.js +2 -2
  80. package/.next/server/app/(app)/pulse/page.js.nft.json +1 -1
  81. package/.next/server/app/(app)/pulse/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app/(app)/reports/[id]/page.js +3 -3
  83. package/.next/server/app/(app)/reports/[id]/page.js.nft.json +1 -1
  84. package/.next/server/app/(app)/reports/[id]/page_client-reference-manifest.js +1 -1
  85. package/.next/server/app/(app)/reports/page.js +3 -3
  86. package/.next/server/app/(app)/reports/page.js.nft.json +1 -1
  87. package/.next/server/app/(app)/reports/page_client-reference-manifest.js +1 -1
  88. package/.next/server/app/(app)/routines/page.js +2 -2
  89. package/.next/server/app/(app)/routines/page.js.nft.json +1 -1
  90. package/.next/server/app/(app)/routines/page_client-reference-manifest.js +1 -1
  91. package/.next/server/app/(app)/search/page.js +2 -2
  92. package/.next/server/app/(app)/search/page.js.nft.json +1 -1
  93. package/.next/server/app/(app)/search/page_client-reference-manifest.js +1 -1
  94. package/.next/server/app/(app)/security/page.js +2 -2
  95. package/.next/server/app/(app)/security/page.js.nft.json +1 -1
  96. package/.next/server/app/(app)/security/page_client-reference-manifest.js +1 -1
  97. package/.next/server/app/(app)/skills/page.js +3 -3
  98. package/.next/server/app/(app)/skills/page.js.nft.json +1 -1
  99. package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -1
  100. package/.next/server/app/(app)/tasks/page.js +2 -2
  101. package/.next/server/app/(app)/tasks/page.js.nft.json +1 -1
  102. package/.next/server/app/(app)/tasks/page_client-reference-manifest.js +1 -1
  103. package/.next/server/app/(app)/test-dev/page.js +2 -2
  104. package/.next/server/app/(app)/test-dev/page.js.nft.json +1 -1
  105. package/.next/server/app/(app)/test-dev/page_client-reference-manifest.js +1 -1
  106. package/.next/server/app/(app)/update/page.js +3 -3
  107. package/.next/server/app/(app)/update/page.js.nft.json +1 -1
  108. package/.next/server/app/(app)/update/page_client-reference-manifest.js +1 -1
  109. package/.next/server/app/(auth)/login/page.js +2 -2
  110. package/.next/server/app/(auth)/login/page.js.nft.json +1 -1
  111. package/.next/server/app/(auth)/login/page_client-reference-manifest.js +1 -1
  112. package/.next/server/app/(auth)/onboarding/page.js +2 -2
  113. package/.next/server/app/(auth)/onboarding/page.js.nft.json +1 -1
  114. package/.next/server/app/(auth)/onboarding/page_client-reference-manifest.js +1 -1
  115. package/.next/server/app/_global-error/page.js +3 -3
  116. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  117. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  118. package/.next/server/app/_global-error.html +1 -1
  119. package/.next/server/app/_global-error.rsc +8 -8
  120. package/.next/server/app/_global-error.segments/_full.segment.rsc +8 -8
  121. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +2 -2
  122. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +3 -3
  123. package/.next/server/app/_global-error.segments/_head.segment.rsc +3 -3
  124. package/.next/server/app/_global-error.segments/_index.segment.rsc +4 -4
  125. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  126. package/.next/server/app/_not-found/page.js +2 -2
  127. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  128. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  129. package/.next/server/app/api/auth/[...all]/route.js +1 -1
  130. package/.next/server/app/api/auth/[...all]/route.js.nft.json +1 -1
  131. package/.next/server/app/api/cron/tick/route.js +5 -5
  132. package/.next/server/app/api/cron/tick/route.js.nft.json +1 -1
  133. package/.next/server/app/api/health/route.js +1 -1
  134. package/.next/server/app/api/health/route.js.nft.json +1 -1
  135. package/.next/server/app/api/locks/acquire/route.js +1 -1
  136. package/.next/server/app/api/locks/acquire/route.js.nft.json +1 -1
  137. package/.next/server/app/api/models/progress/route.js +1 -1
  138. package/.next/server/app/api/models/progress/route.js.nft.json +1 -1
  139. package/.next/server/app/api/passkey/authenticate/options/route.js +1 -1
  140. package/.next/server/app/api/passkey/authenticate/options/route.js.nft.json +1 -1
  141. package/.next/server/app/api/passkey/authenticate/verify/route.js +1 -1
  142. package/.next/server/app/api/passkey/authenticate/verify/route.js.nft.json +1 -1
  143. package/.next/server/app/api/passkey/register/options/route.js +1 -1
  144. package/.next/server/app/api/passkey/register/options/route.js.nft.json +1 -1
  145. package/.next/server/app/api/passkey/register/verify/route.js +1 -1
  146. package/.next/server/app/api/passkey/register/verify/route.js.nft.json +1 -1
  147. package/.next/server/app/api/stream/route.js +2 -2
  148. package/.next/server/app/api/stream/route.js.nft.json +1 -1
  149. package/.next/server/app/api/sync/file/route.js +2 -2
  150. package/.next/server/app/api/sync/file/route.js.nft.json +1 -1
  151. package/.next/server/app/api/telegram/poll/route.js +19 -19
  152. package/.next/server/app/api/telegram/poll/route.js.nft.json +1 -1
  153. package/.next/server/app/api/upload/route.js +1 -1
  154. package/.next/server/app/api/upload/route.js.nft.json +1 -1
  155. package/.next/server/app/api/v1/[[...path]]/route.js +1 -1
  156. package/.next/server/app/api/v1/[[...path]]/route.js.nft.json +1 -1
  157. package/.next/server/chunks/1033.js +14 -0
  158. package/.next/server/chunks/1190.js +12 -0
  159. package/.next/server/chunks/1243.js +1 -0
  160. package/.next/server/chunks/{6719.js → 1304.js} +1 -1
  161. package/.next/server/chunks/1952.js +1 -0
  162. package/.next/server/chunks/{8561.js → 1986.js} +2 -2
  163. package/.next/server/chunks/2118.js +869 -0
  164. package/.next/server/chunks/2323.js +1 -0
  165. package/.next/server/chunks/{7336.js → 2392.js} +1 -1
  166. package/.next/server/chunks/2559.js +479 -0
  167. package/.next/server/chunks/26.js +1 -0
  168. package/.next/server/chunks/{5278.js → 3140.js} +1 -1
  169. package/.next/server/chunks/{6479.js → 3172.js} +1 -1
  170. package/.next/server/chunks/3205.js +1 -0
  171. package/.next/server/chunks/{9160.js → 3481.js} +176 -176
  172. package/.next/server/chunks/{4979.js → 3987.js} +4 -4
  173. package/.next/server/chunks/404.js +1 -0
  174. package/.next/server/chunks/415.js +1 -0
  175. package/.next/server/chunks/4288.js +1 -0
  176. package/.next/server/chunks/{2599.js → 4411.js} +1 -1
  177. package/.next/server/chunks/4435.js +1 -0
  178. package/.next/server/chunks/{7912.js → 4561.js} +1 -1
  179. package/.next/server/chunks/4587.js +1 -0
  180. package/.next/server/chunks/4679.js +462 -1
  181. package/.next/server/chunks/4732.js +1 -0
  182. package/.next/server/chunks/4769.js +1 -0
  183. package/.next/server/chunks/4882.js +2 -0
  184. package/.next/server/chunks/4897.js +15 -0
  185. package/.next/server/chunks/5015.js +15 -0
  186. package/.next/server/chunks/{658.js → 5361.js} +3 -3
  187. package/.next/server/chunks/5557.js +1 -0
  188. package/.next/server/chunks/{2517.js → 5593.js} +1 -1
  189. package/.next/server/chunks/5661.js +1 -0
  190. package/.next/server/chunks/5802.js +1 -0
  191. package/.next/server/chunks/5878.js +1 -0
  192. package/.next/server/chunks/5911.js +18 -0
  193. package/.next/server/chunks/6083.js +1 -0
  194. package/.next/server/chunks/{4302.js → 6121.js} +13 -13
  195. package/.next/server/chunks/6309.js +1 -0
  196. package/.next/server/chunks/6585.js +1 -0
  197. package/.next/server/chunks/{3243.js → 6778.js} +2 -2
  198. package/.next/server/chunks/6807.js +1 -0
  199. package/.next/server/chunks/{1388.js → 6948.js} +1 -1
  200. package/.next/server/chunks/{1591.js → 699.js} +2 -2
  201. package/.next/server/chunks/7109.js +1 -0
  202. package/.next/server/chunks/714.js +1 -0
  203. package/.next/server/chunks/7348.js +4 -0
  204. package/.next/server/chunks/739.js +1 -0
  205. package/.next/server/chunks/7474.js +1 -0
  206. package/.next/server/chunks/{7037.js → 7677.js} +1 -1
  207. package/.next/server/chunks/77.js +3 -0
  208. package/.next/server/chunks/7867.js +22 -0
  209. package/.next/server/chunks/{259.js → 7905.js} +5 -5
  210. package/.next/server/chunks/{3609.js → 7911.js} +1 -1
  211. package/.next/server/chunks/{2867.js → 8134.js} +2 -2
  212. package/.next/server/chunks/{9783.js → 8211.js} +2 -2
  213. package/.next/server/chunks/8224.js +1 -0
  214. package/.next/server/chunks/8498.js +1 -0
  215. package/.next/server/chunks/8868.js +21 -0
  216. package/.next/server/chunks/{8823.js → 907.js} +10 -10
  217. package/.next/server/chunks/{7778.js → 9099.js} +1 -1
  218. package/.next/server/chunks/912.js +1 -0
  219. package/.next/server/chunks/9180.js +1 -0
  220. package/.next/server/chunks/9344.js +910 -0
  221. package/.next/server/chunks/9374.js +1 -0
  222. package/.next/server/chunks/9419.js +1 -0
  223. package/.next/server/chunks/9426.js +188 -0
  224. package/.next/server/chunks/9677.js +17 -0
  225. package/.next/server/chunks/978.js +1 -0
  226. package/.next/server/instrumentation.js +1 -1
  227. package/.next/server/instrumentation.js.nft.json +1 -1
  228. package/.next/server/middleware-build-manifest.js +1 -1
  229. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  230. package/.next/server/middleware.js +6 -6
  231. package/.next/server/middleware.js.nft.json +1 -1
  232. package/.next/server/pages/500.html +1 -1
  233. package/.next/server/server-reference-manifest.js +1 -1
  234. package/.next/server/server-reference-manifest.json +1 -1
  235. package/.next/static/chunks/171-2a8b8f61f7ab0828.js +1 -0
  236. package/.next/static/chunks/1738-28b6824e2a707b93.js +1 -0
  237. package/.next/static/chunks/{23550918-ff694f70f4b0648c.js → 1ceccf25-731706dbe95504b9.js} +1 -1
  238. package/.next/static/chunks/{2320-fc8b39380e69d465.js → 3703-b09be945970ea475.js} +1 -1
  239. package/.next/static/chunks/4365-c5eb5b6af7bfc653.js +4 -0
  240. package/.next/static/chunks/5452-d0ce3b51601a5815.js +1 -0
  241. package/.next/static/chunks/6871-a079ac1b4f0caec2.js +1 -0
  242. package/.next/static/chunks/7066-c10959874b2315bf.js +32 -0
  243. package/.next/static/chunks/717-1d1163010e3b541d.js +1 -0
  244. package/.next/static/chunks/7218-44d9a247cf4980fa.js +12 -0
  245. package/.next/static/chunks/7466-6d8ba01f169a6a1e.js +1 -0
  246. package/.next/static/chunks/{5920.6451a68b63918988.js → 7790.b648690cf25f29eb.js} +1 -1
  247. package/.next/static/chunks/{7509.721cd47a931c5518.js → 8251.6fedb7dc4d720bab.js} +1 -1
  248. package/.next/static/chunks/9279-467412113ad55642.js +1 -0
  249. package/.next/static/chunks/928-6dec8198101bc3e6.js +1 -0
  250. package/.next/static/chunks/9874-dc2fbf114916382b.js +1 -0
  251. package/.next/static/chunks/app/(app)/activity/page-8cf9b4c853ca9c69.js +1 -0
  252. package/.next/static/chunks/app/(app)/agents/[handle]/page-068e58bd327db429.js +1 -0
  253. package/.next/static/chunks/app/(app)/code/page-98becb790f9aeedf.js +1 -0
  254. package/.next/static/chunks/app/(app)/config/page-b5447ad490de11f7.js +1 -0
  255. package/.next/static/chunks/app/(app)/costs/page-02324b05660bad50.js +1 -0
  256. package/.next/static/chunks/app/(app)/cron/page-5c9c6fea5aee299c.js +1 -0
  257. package/.next/static/chunks/app/(app)/dashboard/page-742ac16dbfce548b.js +1 -0
  258. package/.next/static/chunks/app/(app)/design/{page-11b9cc40f32fe34f.js → page-3ff2eae843e8b7ea.js} +3 -3
  259. package/.next/static/chunks/app/(app)/docs/[id]/page-f7cc168b103da51e.js +1 -0
  260. package/.next/static/chunks/app/(app)/docs/page-bc93a2e0342c61af.js +1 -0
  261. package/.next/static/chunks/app/(app)/error-f9a3caa63e064a7e.js +1 -0
  262. package/.next/static/chunks/app/(app)/github/page-44b09f94c19f56f0.js +1 -0
  263. package/.next/static/chunks/app/(app)/goals/page-b66ec65a7221b023.js +1 -0
  264. package/.next/static/chunks/app/(app)/inbox/page-57a8ab9347276aa2.js +12 -0
  265. package/.next/static/chunks/app/(app)/knowledge/page-fb3902b3c7348818.js +1 -0
  266. package/.next/static/chunks/app/(app)/layout-98aa9e760faf2331.js +1 -0
  267. package/.next/static/chunks/app/(app)/models/page-92f957c7400497f0.js +1 -0
  268. package/.next/static/chunks/app/(app)/notifications/page-e3fcdad57e7a94fd.js +12 -0
  269. package/.next/static/chunks/app/(app)/org/page-9030d33729e45e07.js +12 -0
  270. package/.next/static/chunks/app/(app)/organizations/page-f29c3dc4b3327b8d.js +1 -0
  271. package/.next/static/chunks/app/(app)/page-0e7e7cfd98d44f59.js +1 -0
  272. package/.next/static/chunks/app/(app)/planner/page-a2c45cb14b53454a.js +1 -0
  273. package/.next/static/chunks/app/(app)/plugins/page-792b3dc0ae8571db.js +1 -0
  274. package/.next/static/chunks/app/(app)/pm/page-4624950feadad3be.js +1 -0
  275. package/.next/static/chunks/app/(app)/prepare-deploy/{page-6f0c5081caf1d013.js → page-a5d2911069317635.js} +1 -1
  276. package/.next/static/chunks/app/(app)/profile/page-10ce6fd89387a1f0.js +1 -0
  277. package/.next/static/chunks/app/(app)/pulse/page-793ce0d2074d2cd7.js +1 -0
  278. package/.next/static/chunks/app/(app)/reports/[id]/page-5c9c6fea5aee299c.js +1 -0
  279. package/.next/static/chunks/app/(app)/reports/page-cfa78938aef16acc.js +1 -0
  280. package/.next/static/chunks/app/(app)/routines/page-06df804a8db66b2d.js +1 -0
  281. package/.next/static/chunks/app/(app)/search/page-eec2f135e6af9c70.js +1 -0
  282. package/.next/static/chunks/app/(app)/security/page-23dd0b8308ee48b8.js +1 -0
  283. package/.next/static/chunks/app/(app)/skills/page-d3d63cac10ce08e1.js +1 -0
  284. package/.next/static/chunks/app/(app)/tasks/page-0750ff77f17bdd9d.js +1 -0
  285. package/.next/static/chunks/app/(app)/test-dev/page-7c09ba848265ffe6.js +1 -0
  286. package/.next/static/chunks/app/(app)/update/page-e70ac9974eb7bf03.js +1 -0
  287. package/.next/static/chunks/app/(auth)/login/page-0ee8f367460d835a.js +1 -0
  288. package/.next/static/chunks/app/(auth)/onboarding/page-1de0c42322e9f296.js +1 -0
  289. package/.next/static/chunks/app/_global-error/{page-eacef2b697bd0982.js → page-ffc45e65538b6024.js} +1 -1
  290. package/.next/static/chunks/app/_not-found/page-405e53afca481eab.js +1 -0
  291. package/.next/static/chunks/app/api/auth/[...all]/{route-eacef2b697bd0982.js → route-ffc45e65538b6024.js} +1 -1
  292. package/.next/static/chunks/app/api/cron/tick/{route-eacef2b697bd0982.js → route-ffc45e65538b6024.js} +1 -1
  293. package/.next/static/chunks/app/api/health/{route-eacef2b697bd0982.js → route-ffc45e65538b6024.js} +1 -1
  294. package/.next/static/chunks/app/api/locks/acquire/route-ffc45e65538b6024.js +1 -0
  295. package/.next/static/chunks/app/api/models/progress/route-ffc45e65538b6024.js +1 -0
  296. package/.next/static/chunks/app/api/passkey/authenticate/options/route-ffc45e65538b6024.js +1 -0
  297. package/.next/static/chunks/app/api/passkey/authenticate/verify/route-ffc45e65538b6024.js +1 -0
  298. package/.next/static/chunks/app/api/passkey/register/options/route-ffc45e65538b6024.js +1 -0
  299. package/.next/static/chunks/app/api/passkey/register/verify/route-ffc45e65538b6024.js +1 -0
  300. package/.next/static/chunks/app/api/stream/route-ffc45e65538b6024.js +1 -0
  301. package/.next/static/chunks/app/api/sync/file/route-ffc45e65538b6024.js +1 -0
  302. package/.next/static/chunks/app/api/telegram/poll/route-ffc45e65538b6024.js +1 -0
  303. package/.next/static/chunks/app/api/upload/route-ffc45e65538b6024.js +1 -0
  304. package/.next/static/chunks/app/api/v1/[[...path]]/route-ffc45e65538b6024.js +1 -0
  305. package/.next/static/chunks/app/error-e128df085a794b38.js +1 -0
  306. package/.next/static/chunks/app/global-error-339c61c4184d384a.js +1 -0
  307. package/.next/static/chunks/app/layout-a80704c0fd0a9e29.js +1 -0
  308. package/.next/static/chunks/main-143b6dbf9c5dc129.js +5 -0
  309. package/.next/static/chunks/main-app-8ce4eaae11d4f233.js +1 -0
  310. package/.next/static/chunks/next/dist/client/components/builtin/app-error-ffc45e65538b6024.js +1 -0
  311. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-ffc45e65538b6024.js +1 -0
  312. package/.next/static/chunks/next/dist/client/components/builtin/not-found-ffc45e65538b6024.js +1 -0
  313. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-ffc45e65538b6024.js +1 -0
  314. package/.next/static/chunks/webpack-0e63b9ea83aeb0a2.js +1 -0
  315. package/.next/trace-build +1 -1
  316. package/CHANGELOG.md +31 -0
  317. package/README.md +1 -1
  318. package/README.pt-BR.md +1 -1
  319. package/docs/UPDATE.md +16 -3
  320. package/package.json +9 -9
  321. package/.next/server/chunks/1249.js +0 -910
  322. package/.next/server/chunks/1572.js +0 -1
  323. package/.next/server/chunks/1619.js +0 -188
  324. package/.next/server/chunks/162.js +0 -1
  325. package/.next/server/chunks/1845.js +0 -462
  326. package/.next/server/chunks/2341.js +0 -1
  327. package/.next/server/chunks/260.js +0 -1
  328. package/.next/server/chunks/288.js +0 -1
  329. package/.next/server/chunks/2960.js +0 -14
  330. package/.next/server/chunks/3050.js +0 -18
  331. package/.next/server/chunks/3056.js +0 -1
  332. package/.next/server/chunks/3131.js +0 -1
  333. package/.next/server/chunks/3234.js +0 -869
  334. package/.next/server/chunks/3266.js +0 -15
  335. package/.next/server/chunks/3550.js +0 -1
  336. package/.next/server/chunks/4574.js +0 -1
  337. package/.next/server/chunks/4616.js +0 -479
  338. package/.next/server/chunks/4619.js +0 -1
  339. package/.next/server/chunks/4804.js +0 -1
  340. package/.next/server/chunks/4832.js +0 -2
  341. package/.next/server/chunks/5060.js +0 -1
  342. package/.next/server/chunks/5614.js +0 -1
  343. package/.next/server/chunks/6431.js +0 -1
  344. package/.next/server/chunks/6658.js +0 -1
  345. package/.next/server/chunks/6706.js +0 -1
  346. package/.next/server/chunks/6753.js +0 -1
  347. package/.next/server/chunks/683.js +0 -1
  348. package/.next/server/chunks/6873.js +0 -1
  349. package/.next/server/chunks/7236.js +0 -4
  350. package/.next/server/chunks/73.js +0 -17
  351. package/.next/server/chunks/7514.js +0 -1
  352. package/.next/server/chunks/7589.js +0 -22
  353. package/.next/server/chunks/7621.js +0 -12
  354. package/.next/server/chunks/7622.js +0 -1
  355. package/.next/server/chunks/7949.js +0 -1
  356. package/.next/server/chunks/7971.js +0 -1
  357. package/.next/server/chunks/7989.js +0 -1
  358. package/.next/server/chunks/7993.js +0 -21
  359. package/.next/server/chunks/8497.js +0 -1
  360. package/.next/server/chunks/850.js +0 -1
  361. package/.next/server/chunks/8623.js +0 -1
  362. package/.next/server/chunks/8762.js +0 -15
  363. package/.next/server/chunks/8846.js +0 -1
  364. package/.next/server/chunks/9676.js +0 -1
  365. package/.next/server/chunks/9680.js +0 -1
  366. package/.next/server/chunks/9969.js +0 -3
  367. package/.next/static/chunks/215-18ea748d2ff2caff.js +0 -1
  368. package/.next/static/chunks/27-b49ec46cfcce75b7.js +0 -1
  369. package/.next/static/chunks/2989-2dd9a66d007a96e8.js +0 -4
  370. package/.next/static/chunks/3219-92e75397858f3f1f.js +0 -1
  371. package/.next/static/chunks/4263-adecb5b466380b6e.js +0 -1
  372. package/.next/static/chunks/4643-d0ab4088e129651f.js +0 -1
  373. package/.next/static/chunks/6834-4759af1ce7d95fb6.js +0 -32
  374. package/.next/static/chunks/7555-d2209e697b0a798e.js +0 -1
  375. package/.next/static/chunks/8370-e88907d9c72435e7.js +0 -12
  376. package/.next/static/chunks/9219-4a39a98b5502d9d1.js +0 -1
  377. package/.next/static/chunks/9562-4b50b4e408bc0a42.js +0 -1
  378. package/.next/static/chunks/9690-53d5222618cbeddb.js +0 -1
  379. package/.next/static/chunks/app/(app)/activity/page-93d4012627ea70d5.js +0 -1
  380. package/.next/static/chunks/app/(app)/agents/[handle]/page-bfe740784bdf239c.js +0 -1
  381. package/.next/static/chunks/app/(app)/code/page-5e24874f11857823.js +0 -1
  382. package/.next/static/chunks/app/(app)/config/page-12c5487a8d55c2c2.js +0 -1
  383. package/.next/static/chunks/app/(app)/costs/page-6edcec363617f5ef.js +0 -1
  384. package/.next/static/chunks/app/(app)/cron/page-f9167770757921f7.js +0 -1
  385. package/.next/static/chunks/app/(app)/dashboard/page-103f172e762911d1.js +0 -1
  386. package/.next/static/chunks/app/(app)/docs/[id]/page-eaae80c3d47e1ba7.js +0 -1
  387. package/.next/static/chunks/app/(app)/docs/page-87457e514ea7de32.js +0 -1
  388. package/.next/static/chunks/app/(app)/error-988cd28480809861.js +0 -1
  389. package/.next/static/chunks/app/(app)/github/page-ff62b7618c594632.js +0 -1
  390. package/.next/static/chunks/app/(app)/goals/page-d4d854c091020a92.js +0 -1
  391. package/.next/static/chunks/app/(app)/inbox/page-1bcfc50e9df5ed6f.js +0 -12
  392. package/.next/static/chunks/app/(app)/knowledge/page-0a55ce74e274817c.js +0 -1
  393. package/.next/static/chunks/app/(app)/layout-825ba765e8034dfb.js +0 -1
  394. package/.next/static/chunks/app/(app)/models/page-cd077c548916b8cb.js +0 -1
  395. package/.next/static/chunks/app/(app)/notifications/page-c5c7945f6f6f18d6.js +0 -12
  396. package/.next/static/chunks/app/(app)/org/page-a83804854bd0d44a.js +0 -12
  397. package/.next/static/chunks/app/(app)/organizations/page-b38db8e364e3a108.js +0 -1
  398. package/.next/static/chunks/app/(app)/page-733340fec4cd0173.js +0 -1
  399. package/.next/static/chunks/app/(app)/planner/page-06b2841d0438d92d.js +0 -1
  400. package/.next/static/chunks/app/(app)/plugins/page-535ed062643077fc.js +0 -1
  401. package/.next/static/chunks/app/(app)/pm/page-dc0296761e1af17c.js +0 -1
  402. package/.next/static/chunks/app/(app)/profile/page-cef1aa72ffc02e9c.js +0 -1
  403. package/.next/static/chunks/app/(app)/pulse/page-d4bdec1709913581.js +0 -1
  404. package/.next/static/chunks/app/(app)/reports/[id]/page-f9167770757921f7.js +0 -1
  405. package/.next/static/chunks/app/(app)/reports/page-5c37a53bbd4fd1c3.js +0 -1
  406. package/.next/static/chunks/app/(app)/routines/page-e274160cfbb3c594.js +0 -1
  407. package/.next/static/chunks/app/(app)/search/page-f0e082b9b0402981.js +0 -1
  408. package/.next/static/chunks/app/(app)/security/page-a12f04656bde8aad.js +0 -1
  409. package/.next/static/chunks/app/(app)/skills/page-583f9780fa981aa8.js +0 -1
  410. package/.next/static/chunks/app/(app)/tasks/page-7bb09650b84e0755.js +0 -1
  411. package/.next/static/chunks/app/(app)/test-dev/page-ce66efbb83b2ed21.js +0 -1
  412. package/.next/static/chunks/app/(app)/update/page-6a8082f1c1b3b762.js +0 -1
  413. package/.next/static/chunks/app/(auth)/login/page-b512c906a1566d8c.js +0 -1
  414. package/.next/static/chunks/app/(auth)/onboarding/page-8f6bf1259bb5aab5.js +0 -1
  415. package/.next/static/chunks/app/_not-found/page-dc38b02aebeab535.js +0 -1
  416. package/.next/static/chunks/app/api/locks/acquire/route-eacef2b697bd0982.js +0 -1
  417. package/.next/static/chunks/app/api/models/progress/route-eacef2b697bd0982.js +0 -1
  418. package/.next/static/chunks/app/api/passkey/authenticate/options/route-eacef2b697bd0982.js +0 -1
  419. package/.next/static/chunks/app/api/passkey/authenticate/verify/route-eacef2b697bd0982.js +0 -1
  420. package/.next/static/chunks/app/api/passkey/register/options/route-eacef2b697bd0982.js +0 -1
  421. package/.next/static/chunks/app/api/passkey/register/verify/route-eacef2b697bd0982.js +0 -1
  422. package/.next/static/chunks/app/api/stream/route-eacef2b697bd0982.js +0 -1
  423. package/.next/static/chunks/app/api/sync/file/route-eacef2b697bd0982.js +0 -1
  424. package/.next/static/chunks/app/api/telegram/poll/route-eacef2b697bd0982.js +0 -1
  425. package/.next/static/chunks/app/api/upload/route-eacef2b697bd0982.js +0 -1
  426. package/.next/static/chunks/app/api/v1/[[...path]]/route-eacef2b697bd0982.js +0 -1
  427. package/.next/static/chunks/app/error-09899a13c38b6e89.js +0 -1
  428. package/.next/static/chunks/app/global-error-c2ea8fef715f226d.js +0 -1
  429. package/.next/static/chunks/app/layout-e6008e66aea1a849.js +0 -1
  430. package/.next/static/chunks/main-722e16032e7764d1.js +0 -5
  431. package/.next/static/chunks/main-app-761880af2b6f1962.js +0 -1
  432. package/.next/static/chunks/next/dist/client/components/builtin/app-error-eacef2b697bd0982.js +0 -1
  433. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-eacef2b697bd0982.js +0 -1
  434. package/.next/static/chunks/next/dist/client/components/builtin/not-found-eacef2b697bd0982.js +0 -1
  435. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-eacef2b697bd0982.js +0 -1
  436. package/.next/static/chunks/webpack-222e3894b78c67db.js +0 -1
  437. /package/.next/static/{Mx3bcAGWI83SQ6PqC4kYX → vW8upousaXo7DvSlRwFbb}/_buildManifest.js +0 -0
  438. /package/.next/static/{Mx3bcAGWI83SQ6PqC4kYX → vW8upousaXo7DvSlRwFbb}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9530],{92:(e,s,a)=>{"use strict";a.d(s,{ProjectSource:()=>o});var n=a(4275),i=a(2899),r=a(888),l=a(7797);let t=(0,l.createServerReference)("009edc92364fbf0090336a1d75f4500254cc0b4df0",l.callServer,void 0,l.findSourceMapURL,"reanalyzeProject");var c=a(869);function o({source:e}){let s=(0,c.k)(),[a,l]=(0,i.useTransition)(),[d,m]=(0,i.useState)(!1),v=e??{},f=v.type??"new",p="local"===f?s("config.source.local",{name:v.localPath??"—",n:v.fileCount??0}):"github"===f?s("config.source.github",{repo:v.repo??"—",n:v.fileCount??0}):s("mock"===f?"config.source.mock":"config.source.new");return(0,n.jsxs)("div",{children:[(0,n.jsxs)("div",{className:"kv",children:[(0,n.jsx)("span",{className:"k",children:s("config.source.active")}),(0,n.jsx)("span",{className:"v",children:p})]}),(0,n.jsxs)("div",{className:"kv",children:[(0,n.jsx)("span",{className:"k",children:s("config.source.dir")}),(0,n.jsx)("span",{className:"v lr-mono",style:{fontFamily:"var(--mono-font)",fontSize:11.5},children:"~/.constella/organizations/<org>/workspace"})]}),("local"===f||"github"===f||"mock"===f)&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"kv",children:[(0,n.jsx)("span",{className:"k",children:s("config.source.analysis")}),(0,n.jsx)("span",{className:"v",children:s(v.analyzed?"config.source.analyzed":"config.source.notAnalyzed")})]}),(0,n.jsxs)("button",{className:"btn-ghost",disabled:a||d,style:{marginTop:8},onClick:()=>l(async()=>{m((await t()).ok)}),children:[(0,n.jsx)("span",{className:a?"sync-spin":"",style:{display:"inline-flex"},children:(0,n.jsx)(r.I,{name:"refresh",size:13})})," ",s(d?"config.source.reanalyzeQueued":"config.source.reanalyze")]})]})]})}},979:(e,s,a)=>{"use strict";a.d(s,{StackEditor:()=>m});var n=a(4275),i=a(2899),r=a(1338),l=a(7797);let t=(0,l.createServerReference)("409885a154f76f49c496538d9aed35c80648a5e32e",l.callServer,void 0,l.findSourceMapURL,"setWorkspaceStack");var c=a(9874),o=a(3221),d=a(888);function m({stack:e}){let[s,a]=(0,i.useState)(()=>(0,c.T1)(e).stack),[l,v]=(0,i.useTransition)(),[f,p]=(0,i.useState)(!1),[g,h]=(0,i.useState)("");return(0,n.jsxs)("div",{children:[(0,n.jsx)("div",{style:{display:"grid",gridTemplateColumns:"repeat(auto-fill, minmax(240px, 1fr))",gap:"12px 16px"},children:r.z.map(e=>{let i=e.opts.includes("None")?e.opts:[...e.opts,"None"],r=(0,o.jX)(s[e.key]).filter(e=>"None"!==e);return(0,n.jsxs)("div",{style:{display:"flex",flexDirection:"column",gap:6},children:[(0,n.jsxs)("span",{style:{fontSize:11.5,color:"var(--text-dim)",fontWeight:600},children:[e.label,r.length>1&&(0,n.jsxs)("span",{style:{color:"var(--text-faint)",fontWeight:400},children:[" \xb7 ",r.length]})]}),(0,n.jsx)("div",{style:{display:"flex",flexWrap:"wrap",gap:5},children:i.map(i=>{let l=(0,c.YL)(s,e.key,i),t="None"===i?0===r.length:(0,o.Hn)(s[e.key],i);return(0,n.jsx)("button",{type:"button",disabled:!!l&&!t,onClick:()=>{var n;let r;(!l||t)&&(n=e.key,a((r=(0,c.T1)({...s,[n]:(0,o.P_)(s[n],i)})).stack),h(r.removed.map(e=>`${e.opt} was unselected automatically — ${e.reason}.`).join(" ")),p(!1))},title:l||i,style:{fontSize:12,padding:"4px 9px",borderRadius:999,cursor:l&&!t?"not-allowed":"pointer",border:"1px solid "+(t?"var(--accent)":"var(--border)"),background:t?"var(--accent)":"transparent",color:t?"#1a1206":l?"var(--text-faint)":"var(--text-dim)",opacity:l&&!t?.5:1},children:i},i)})})]},e.key)})}),g&&(0,n.jsxs)("div",{style:{fontSize:12,color:"var(--sx-number)",marginTop:10,display:"flex",alignItems:"center",gap:6},children:[(0,n.jsx)(d.I,{name:"warn",size:12})," ",g]}),(0,n.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:10,marginTop:12},children:[(0,n.jsx)("button",{className:"btn-accent",disabled:l,onClick:function(){v(async()=>{await t(s),p(!0)})},children:l?"Saving…":"Save stack & reload skills"}),f&&(0,n.jsxs)("span",{style:{fontSize:12,color:"var(--sx-string)",display:"inline-flex",alignItems:"center",gap:5},children:[(0,n.jsx)(d.I,{name:"check",size:12})," Saved — agents re-linked to the new stack."]})]})]})}},3922:(e,s,a)=>{"use strict";a.d(s,{AgentRuntimeSettings:()=>d,EditorSettings:()=>o});var n=a(4275),i=a(2899);a(888);var r=a(869),l=a(7797);let t=(0,l.createServerReference)("40c68d0f3f73857cc7423edce454c00264377417d0",l.callServer,void 0,l.findSourceMapURL,"setEditorSettings"),c=(0,l.createServerReference)("403700c3d6977f108e0c71068e34158de49ff4482e",l.callServer,void 0,l.findSourceMapURL,"setAgentRuntime");function o({editor:e}){let s=(0,r.k)(),[a,l]=(0,i.useState)({tabSize:e?.tabSize??2,formatOnSave:e?.formatOnSave??!0,wordWrap:e?.wordWrap??!0,minimap:e?.minimap??!0}),[,c]=(0,i.useTransition)();function d(e){l(s=>({...s,...e})),c(()=>t(e))}let m=(e,s)=>(0,n.jsxs)("div",{className:"set-row",children:[(0,n.jsx)("div",{className:"sr-main",children:(0,n.jsx)("div",{className:"sr-title",children:s})}),(0,n.jsx)("div",{className:"toggle"+(a[e]?" on":""),onClick:()=>d({[e]:!a[e]})})]});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"set-row",style:{paddingTop:0},children:[(0,n.jsx)("div",{className:"sr-main",children:(0,n.jsx)("div",{className:"sr-title",children:s("config.editor.tabSize")})}),(0,n.jsx)("div",{style:{display:"flex",gap:6},children:[2,4,8].map(e=>(0,n.jsx)("button",{className:"chip-sm",style:a.tabSize===e?{background:"var(--accent)",color:"var(--accent-fg)"}:void 0,onClick:()=>d({tabSize:e}),children:e},e))})]}),m("formatOnSave",s("config.editor.formatOnSave")),m("wordWrap",s("config.editor.wordWrap")),m("minimap",s("config.editor.minimap"))]})}function d({agents:e}){let s=(0,r.k)(),[a,l]=(0,i.useState)(e?.maxConcurrent??1),[t,o]=(0,i.useState)(!!e?.fileLocks),[m,v]=(0,i.useState)(e?.webResearch??!0),[,f]=(0,i.useTransition)();return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"set-row",style:{paddingTop:0},children:[(0,n.jsxs)("div",{className:"sr-main",children:[(0,n.jsx)("div",{className:"sr-title",children:s("config.agents.parallel")}),(0,n.jsx)("div",{className:"sr-sub",children:s("config.agents.parallelDesc")})]}),(0,n.jsx)("div",{style:{display:"flex",gap:6},children:[1,2,3,4,5].map(e=>(0,n.jsx)("button",{className:"chip-sm",style:a===e?{background:"var(--accent)",color:"var(--accent-fg)"}:void 0,onClick:()=>{l(e),f(()=>c({maxConcurrent:e}))},children:e},e))})]}),(0,n.jsxs)("div",{className:"set-row",children:[(0,n.jsxs)("div",{className:"sr-main",children:[(0,n.jsx)("div",{className:"sr-title",children:s("config.agents.fileLock")}),(0,n.jsx)("div",{className:"sr-sub",children:s("config.agents.fileLockDesc")})]}),(0,n.jsx)("div",{className:"toggle"+(t?" on":""),onClick:()=>{let e=!t;o(e),f(()=>c({fileLocks:e}))}})]}),a>1&&!t&&(0,n.jsxs)("div",{className:"sr-sub",style:{color:"#e8a14e",paddingBottom:6},children:["⚠ ",s("config.agents.lockWarn",{n:a})]}),(0,n.jsxs)("div",{className:"set-row",children:[(0,n.jsxs)("div",{className:"sr-main",children:[(0,n.jsx)("div",{className:"sr-title",children:s("config.agents.webResearch")}),(0,n.jsx)("div",{className:"sr-sub",children:s("config.agents.webResearchDesc")})]}),(0,n.jsx)("div",{className:"toggle"+(m?" on":""),onClick:()=>{let e=!m;v(e),f(()=>c({webResearch:e}))}})]})]})}},9947:(e,s,a)=>{Promise.resolve().then(a.t.bind(a,9746,23)),Promise.resolve().then(a.bind(a,3922)),Promise.resolve().then(a.bind(a,92)),Promise.resolve().then(a.bind(a,979)),Promise.resolve().then(a.bind(a,6516)),Promise.resolve().then(a.bind(a,8183)),Promise.resolve().then(a.bind(a,4822)),Promise.resolve().then(a.bind(a,5412)),Promise.resolve().then(a.bind(a,2454)),Promise.resolve().then(a.bind(a,9508)),Promise.resolve().then(a.bind(a,3891))}},e=>{e.O(0,[928,171,6871,7218,9874,2235,7066,7358],()=>e(e.s=9947)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9598],{702:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,9746,23)),Promise.resolve().then(n.bind(n,3620)),Promise.resolve().then(n.bind(n,6516)),Promise.resolve().then(n.bind(n,8183)),Promise.resolve().then(n.bind(n,4822)),Promise.resolve().then(n.bind(n,5412)),Promise.resolve().then(n.bind(n,2454)),Promise.resolve().then(n.bind(n,9508)),Promise.resolve().then(n.bind(n,3891))},3620:(e,s,n)=>{"use strict";n.d(s,{CapEditor:()=>d});var t=n(4275),i=n(2899),r=n(7797);let a=(0,r.createServerReference)("404d2993113f2e5564aa4e01b41ed027ee6c41de31",r.callServer,void 0,r.findSourceMapURL,"setMonthlyCap");var o=n(888),l=n(869);function d({cap:e}){let s=(0,l.k)(),[n,r]=(0,i.useState)(e),[c,h]=(0,i.useState)(!1),[m,v]=(0,i.useTransition)();function p(){n!==e&&v(async()=>{await a(n),h(!0),setTimeout(()=>h(!1),1400)})}return(0,t.jsxs)("div",{style:{display:"flex",alignItems:"center",gap:8},children:[c&&(0,t.jsxs)("span",{className:"oauth-ok",style:{padding:"3px 8px",fontSize:11},children:[(0,t.jsx)(o.I,{name:"check",size:11})," ",s("common.saved")]}),(0,t.jsx)("span",{style:{fontSize:12,color:"var(--text-dim)"},children:s("skills.cap.label")}),(0,t.jsx)("input",{className:"form-input mono",style:{width:120},value:"$"+n,disabled:m,onChange:e=>r(Math.max(0,parseFloat(e.target.value.replace(/[^0-9.]/g,""))||0)),onBlur:p,onKeyDown:e=>{"Enter"===e.key&&p()}})]})}}},e=>{e.O(0,[928,171,6871,7218,2235,7066,7358],()=>e(e.s=702)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[148,3719],{701:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,9746,23)),Promise.resolve().then(n.bind(n,6516)),Promise.resolve().then(n.bind(n,8183)),Promise.resolve().then(n.bind(n,4822)),Promise.resolve().then(n.bind(n,5412)),Promise.resolve().then(n.bind(n,2454)),Promise.resolve().then(n.bind(n,9508)),Promise.resolve().then(n.bind(n,3891))}},e=>{e.O(0,[928,171,6871,7218,2235,7066,7358],()=>e(e.s=701)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1536],{4420:(e,s,a)=>{"use strict";a.d(s,{D:()=>n});var l=a(7797);let n=(0,l.createServerReference)("400f09679fbb3399982b683f027ff6e04946b8404d",l.callServer,void 0,l.findSourceMapURL,"setRunMode")},4952:(e,s,a)=>{"use strict";a.d(s,{m:()=>d});var l=a(4275),n=a(2899),c=a(888),i=a(9156),t=a(869);function d({value:e,options:s,onChange:a,placeholder:r,mono:o,glyph:h,disabled:x,searchable:m}){let u=(0,t.k)(),[v,p]=(0,n.useState)(!1),[g,j]=(0,n.useState)(""),b=(0,n.useRef)(null),k=(0,n.useRef)(null),N=(0,n.useMemo)(()=>(s||[]).map(e=>"string"==typeof e?{value:e,label:e}:e),[s]),f=N.find(s=>s.value===e),y=(m??N.length>8)&&!x,w=g.trim().toLowerCase(),I=y&&w?N.filter(e=>(e.label+" "+e.value+" "+(e.sub||"")).toLowerCase().includes(w)):N;return(0,n.useEffect)(()=>{if(!v)return void j("");function e(e){b.current&&!b.current.contains(e.target)&&p(!1)}function s(e){"Escape"===e.key&&p(!1)}return document.addEventListener("mousedown",e),document.addEventListener("keydown",s),y&&requestAnimationFrame(()=>k.current?.focus()),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("keydown",s)}},[v,y]),(0,l.jsxs)("div",{className:"dd"+(v?" open":"")+(x?" disabled":""),ref:b,children:[(0,l.jsxs)("button",{type:"button",className:"dd-btn"+(o?" mono":""),onClick:()=>!x&&p(e=>!e),children:[h&&f&&(0,l.jsx)(i.W,{id:f.glyphId||f.value,size:20}),(0,l.jsx)("span",{className:"dd-val",children:f?f.label:(0,l.jsx)("span",{className:"dd-ph",children:r||u("common.selectEllipsis")})}),(0,l.jsx)(c.I,{name:"chevronDown",size:14})]}),v&&(0,l.jsxs)("div",{className:"dd-menu scroll",children:[y&&(0,l.jsxs)("div",{style:{position:"sticky",top:0,zIndex:1,display:"flex",alignItems:"center",gap:6,padding:"6px 8px",margin:"-4px -4px 4px",background:"var(--bg-elev, var(--bg-active))",borderBottom:"1px solid var(--border)"},children:[(0,l.jsx)(c.I,{name:"search",size:13}),(0,l.jsx)("input",{ref:k,value:g,placeholder:u("common.searchEllipsis"),onChange:e=>j(e.target.value),onKeyDown:e=>{"Enter"===e.key&&I[0]?(a(I[0].value),p(!1)):"Escape"===e.key&&g&&(e.stopPropagation(),j(""))},className:o?"mono":void 0,style:{flex:1,minWidth:0,background:"transparent",border:"none",outline:"none",color:"var(--text)",fontSize:12.5,fontFamily:o?"var(--mono-font)":"inherit"}}),g&&(0,l.jsx)("button",{type:"button",title:u("common.clear"),onClick:()=>{j(""),k.current?.focus()},style:{background:"none",border:"none",color:"var(--text-dim)",cursor:"pointer",display:"flex",padding:0},children:(0,l.jsx)(c.I,{name:"close",size:12})})]}),0===N.length&&(0,l.jsx)("div",{className:"dd-empty",children:u("common.noOptions")}),N.length>0&&0===I.length&&(0,l.jsx)("div",{className:"dd-empty",children:u("dropdown.noMatch",{q:g})}),I.map(s=>(0,l.jsxs)("button",{type:"button",className:"dd-opt"+(s.value===e?" on":""),onClick:()=>{a(s.value),p(!1)},children:[h&&(0,l.jsx)(i.W,{id:s.glyphId||s.value,size:22}),(0,l.jsxs)("span",{className:"dd-opt-main",children:[(0,l.jsx)("span",{className:"dd-opt-label"+(o?" mono":""),children:s.label}),s.sub&&(0,l.jsx)("span",{className:"dd-opt-sub",children:s.sub})]}),s.tag&&(0,l.jsx)("span",{className:"dd-opt-tag",children:s.tag}),s.value===e&&(0,l.jsx)(c.I,{name:"check",size:13})]},s.value))]})]})}},5904:(e,s,a)=>{"use strict";a.d(s,{e:()=>n});var l=a(4275);function n({name:e,color:s,size:a=24,health:c,image:i}){let t=Math.max(6,Math.round(.3*a)),d=Math.round(.28*a),r=i?/^(data:|https?:|\/)/.test(i)?i:`/api/upload?path=${encodeURIComponent(i)}`:null;return(0,l.jsxs)("span",{style:{position:"relative",width:a,height:a,flex:`0 0 ${a}px`,display:"inline-block"},children:[r?(0,l.jsx)("img",{src:r,alt:e,width:a,height:a,style:{width:a,height:a,borderRadius:d,objectFit:"cover",display:"block"}}):(0,l.jsx)("span",{style:{width:a,height:a,borderRadius:d,background:s,color:"#fff",display:"grid",placeItems:"center",fontSize:Math.round(.42*a),fontWeight:700},children:(e[0]||"?").toUpperCase()}),c&&(0,l.jsx)("span",{style:{position:"absolute",right:-1,bottom:-1,width:t,height:t,borderRadius:"50%",background:"alive"===c?"var(--sx-string)":"stale"===c?"var(--sx-number)":"var(--text-faint)",border:"1.5px solid var(--bg-elevated)"}})]})}},6027:(e,s,a)=>{"use strict";a.d(s,{f:()=>n});var l=a(7797);let n=(0,l.createServerReference)("00de50f827186209568d4473a153e7029805645f82",l.callServer,void 0,l.findSourceMapURL,"reindexKbAction")},6469:(e,s,a)=>{Promise.resolve().then(a.t.bind(a,9746,23)),Promise.resolve().then(a.bind(a,6696)),Promise.resolve().then(a.bind(a,6516)),Promise.resolve().then(a.bind(a,8183)),Promise.resolve().then(a.bind(a,4822)),Promise.resolve().then(a.bind(a,5412)),Promise.resolve().then(a.bind(a,2454)),Promise.resolve().then(a.bind(a,9508)),Promise.resolve().then(a.bind(a,3891))},6696:(e,s,a)=>{"use strict";a.d(s,{Dashboard:()=>P});var l=a(4275),n=a(2899),c=a(9746),i=a.n(c),t=a(888),d=a(5904),r=a(9491),o=a(4952);let h=["var(--sx-property)","var(--sx-type)","var(--sx-function)","var(--sx-number)","var(--sx-string)","var(--sx-operator)","var(--sx-keyword)","var(--accent)"];function x({value:e,max:s=100,size:a=64,thickness:n=7,color:c,track:i="var(--bg-active)",center:t,sub:d,className:r}){let o=(a-n)/2,h=a/2,m=2*Math.PI*o,u=s>0?Math.min(1,Math.max(0,e/s)):0,v=c??(u>=.85?"var(--sx-keyword)":u>=.6?"var(--sx-number)":"var(--sx-string)");return(0,l.jsxs)("div",{className:"donut-wrap"+(r?" "+r:""),style:{width:a,height:a},children:[(0,l.jsxs)("svg",{width:a,height:a,viewBox:`0 0 ${a} ${a}`,children:[(0,l.jsx)("circle",{cx:h,cy:h,r:o,fill:"none",stroke:i,strokeWidth:n}),(0,l.jsx)("circle",{cx:h,cy:h,r:o,fill:"none",stroke:v,strokeWidth:n,strokeLinecap:"round",strokeDasharray:`${u*m} ${m}`,transform:`rotate(-90 ${h} ${h})`,className:"donut-arc"})]}),(0,l.jsxs)("div",{className:"donut-center",children:[(0,l.jsx)("div",{className:"donut-num",style:{color:v,fontSize:Math.round(.26*a)},children:t??Math.round(100*u)+"%"}),d&&(0,l.jsx)("div",{className:"donut-sub",children:d})]})]})}function m({segments:e,size:s=96,thickness:a=12,center:n,sub:c,className:i}){let t=(s-a)/2,d=s/2,r=2*Math.PI*t,o=e.reduce((e,s)=>e+s.value,0)||1,h=0,x=e.filter(e=>e.value>0).map((e,s)=>{let n=e.value/o*r,c=(0,l.jsx)("circle",{cx:d,cy:d,r:t,fill:"none",stroke:e.color,strokeWidth:a,strokeDasharray:`${n} ${r-n}`,strokeDashoffset:-h,transform:`rotate(-90 ${d} ${d})`,className:"donut-arc"},s);return h+=n,c});return(0,l.jsxs)("div",{className:"donut-wrap"+(i?" "+i:""),style:{width:s,height:s},children:[(0,l.jsxs)("svg",{width:s,height:s,viewBox:`0 0 ${s} ${s}`,children:[(0,l.jsx)("circle",{cx:d,cy:d,r:t,fill:"none",stroke:"var(--bg-active)",strokeWidth:a}),x]}),(n||c)&&(0,l.jsxs)("div",{className:"donut-center",children:[n&&(0,l.jsx)("div",{className:"donut-num",style:{fontSize:Math.round(.2*s)},children:n}),c&&(0,l.jsx)("div",{className:"donut-sub",children:c})]})]})}function u({data:e,color:s="var(--accent)",width:a=120,height:n=34,fill:c=!0,className:i}){let t=0===e.length?[0,0]:1===e.length?[e[0],e[0]]:e,d=t.length,r=Math.max(...t),o=Math.min(...t),h=r-o||1,x=(a-4)/(d-1),m="M"+t.map((e,s)=>`${(2+s*x).toFixed(1)},${(n-2-(e-o)/h*(n-4)).toFixed(1)}`).join(" L"),v=`${m} L${(2+(d-1)*x).toFixed(1)},${n-2} L2,${n-2} Z`;return(0,l.jsxs)("svg",{className:"spark"+(i?" "+i:""),width:a,height:n,viewBox:`0 0 ${a} ${n}`,preserveAspectRatio:"none",children:[c&&(0,l.jsx)("path",{d:v,fill:s,opacity:.12}),(0,l.jsx)("path",{d:m,fill:"none",stroke:s,strokeWidth:1.6,strokeLinejoin:"round",strokeLinecap:"round"})]})}function v({segments:e,height:s=10,rounded:a=!0,className:n}){let c=e.reduce((e,s)=>e+s.value,0);return(0,l.jsx)("div",{className:"segbar"+(n?" "+n:""),style:{height:s,borderRadius:a?s:4},children:0===c?(0,l.jsx)("span",{className:"segbar-empty"}):e.filter(e=>e.value>0).map((e,s)=>(0,l.jsx)("span",{className:"segbar-seg",style:{width:`${e.value/c*100}%`,background:e.color},title:e.label},s))})}function p({pct:e,color:s="var(--accent)",height:a=8,className:n}){return(0,l.jsx)("div",{className:"pbar"+(n?" "+n:""),style:{height:a},children:(0,l.jsx)("span",{style:{width:Math.min(100,Math.max(0,e))+"%",background:s}})})}var g=a(869),j=a(7797);let b=(0,j.createServerReference)("40c16bf216967dda61e2e450c03776e35a55394da4",j.callServer,void 0,j.findSourceMapURL,"getDashboardSnapshot"),k=(0,j.createServerReference)("00513c6c1795aaf0366bff2f0628eea42feb3dd66c",j.callServer,void 0,j.findSourceMapURL,"startDevServer"),N=(0,j.createServerReference)("40ef4567194fd3cba3cb291b2638f8dc4d624768c7",j.callServer,void 0,j.findSourceMapURL,"releaseStaleLock");var f=a(4420),y=a(6027),w=a(6989),I=a(7325);let z=[{id:"today",key:"dash.filter.today"},{id:"7d",key:"dash.filter.7d"},{id:"30d",key:"dash.filter.30d"},{id:"month",key:"dash.filter.month"}],S={"start-dev":"dash.act.start",reindex:"dash.act.reindex","start-loop":"dash.act.start",open:"dash.act.open",configure:"dash.act.configure",reconnect:"dash.act.reconnect"},M={triage:"var(--text-faint)",todo:"var(--sx-property)",doing:"var(--sx-number)",blocked:"var(--sx-keyword)",review:"var(--sx-function)",done:"var(--sx-string)"},C={devServer:"cpu",production:"goto",agentLoop:"play",kb:"knowledge",storage:"files",models:"cpu",github:"goto",telegram:"send",testDev:"check",queues:"files",locks:"files",update:"refresh"},L={github:"goto",telegram:"send",models:"cpu",cli:"terminal",local:"cpu",update:"refresh"};function $(e){return"$"+e.toFixed(2)}function _(e){return e>=1e6?(e/1e6).toFixed(1)+"M":e>=1e3?(e/1e3).toFixed(1)+"K":String(e)}function R(e){if(!e)return"—";let s=Math.floor((Date.now()-e)/1e3);return s<60?s+"s":s<3600?Math.floor(s/60)+"m":s<86400?Math.floor(s/3600)+"h":Math.floor(s/86400)+"d"}function P({initial:e,runMode:s}){let a=(0,g.k)(),[c,j]=(0,n.useState)(e),[D,A]=(0,n.useState)({range:e.range,goalId:"",agentId:""}),E=(0,n.useRef)(D),[B,F]=(0,n.useState)(""),[,T]=(0,n.useTransition)(),[,O]=(0,n.useState)(0),W=(0,n.useCallback)(async()=>{let e=E.current;try{let s=await b({range:e.range,goalId:e.goalId||null,agentId:e.agentId||null});j(s)}catch{}},[]);function U(e){A(e),E.current=e,T(()=>{W()})}function q(e,s){F(e),T(async()=>{try{await s()}catch{}await W(),F("")})}(0,n.useEffect)(()=>{let e=setInterval(()=>{document.hidden||W()},1e4),s=setInterval(()=>{document.hidden||O(e=>e+1)},5e3);return()=>{clearInterval(e),clearInterval(s)}},[W]);let G=c.cards,K=c.tasksByCol.reduce((e,s)=>e+s.count,0),V=G.spend.trendPct,H=G.spend.cap>0?Math.min(100,G.spend.spent/G.spend.cap*100):0,J=Math.min(100,15*G.security.high+6*G.security.med+2*G.security.low),Q=G.security.high?"var(--sx-keyword)":G.security.open?"var(--sx-number)":"var(--sx-string)",X=[{value:G.agents.idle,color:"var(--text-faint)",label:a("dash.ag.idle")},{value:G.agents.working,color:"var(--sx-string)",label:a("dash.ag.working")},{value:G.agents.review,color:"var(--sx-number)",label:a("dash.ag.review")},{value:G.agents.blocked,color:"var(--sx-keyword)",label:a("dash.ag.blocked")}],Y=[{value:G.goals.active,color:"var(--accent)"},{value:G.goals.done,color:"var(--sx-string)"},{value:G.goals.blocked,color:"var(--sx-keyword)"}],Z=[{value:G.security.high,color:"var(--sx-keyword)"},{value:G.security.med,color:"var(--sx-number)"},{value:G.security.low,color:"var(--sx-property)"}],ee=c.kbByType.length>0,es=ee?c.kbByType.map((e,s)=>({value:e.total,color:h[s%h.length],label:e.type})):[{value:c.kb.embeddings,color:"var(--sx-string)",label:a("dash.kb.embeddings")},{value:Math.max(0,c.kb.chunks-c.kb.embeddings),color:"var(--bg-active)",label:a("dash.kb.chunks")}],ea=ee?c.kb.active:c.kb.chunks,el=ee?a("dash.kb.entries"):a("dash.kb.chunks");return(0,l.jsxs)("div",{className:"dash",children:[(0,l.jsxs)("div",{className:"dash-filters",children:[(0,l.jsx)("div",{className:"df-ranges",children:z.map(e=>(0,l.jsx)("button",{className:"df-chip"+(D.range===e.id?" on":""),onClick:()=>U({...D,range:e.id}),children:a(e.key)},e.id))}),(0,l.jsxs)("div",{className:"df-selects",children:[(0,l.jsx)(o.m,{value:D.goalId,onChange:e=>U({...D,goalId:e}),options:[{value:"",label:a("dash.filter.allGoals")},...c.goalOptions.map(e=>({value:e.id,label:e.title}))]}),(0,l.jsx)(o.m,{value:D.agentId,onChange:e=>U({...D,agentId:e}),options:[{value:"",label:a("dash.filter.allAgents")},...c.agents.map(e=>({value:e.id,label:e.name}))]})]}),(0,l.jsxs)("div",{className:"df-meta",children:[(0,l.jsxs)("span",{className:"df-updated",children:[a("dash.updated")," ",R(c.generatedAt)]}),(0,l.jsx)("button",{className:"df-refresh",disabled:!!B,onClick:()=>q("refresh",W),title:a("dash.refresh"),children:(0,l.jsx)(t.I,{name:"refresh",size:13})})]})]}),(0,l.jsxs)("div",{className:"dash-grid",children:[(0,l.jsxs)("div",{className:"dash-card stat-card",style:{gridColumn:"span 3"},children:[(0,l.jsxs)("h3",{children:[(0,l.jsx)(t.I,{name:"agents",size:14})," ",a("dash.agents")]}),(0,l.jsxs)("div",{className:"sc-body",children:[(0,l.jsxs)("div",{className:"sc-left",children:[(0,l.jsxs)("div",{className:"stat-num",children:[G.agents.activeNow,(0,l.jsxs)("span",{className:"stat-of",children:["/",G.agents.total]})]}),(0,l.jsx)("div",{className:"kpi-sub",children:a("dash.activeNow")})]}),(0,l.jsx)(x,{value:G.agents.activeNow,max:Math.max(1,G.agents.total),size:56,thickness:6,color:"var(--sx-string)",center:String(G.agents.activeNow)})]}),(0,l.jsx)(v,{segments:X,className:"sc-seg"}),(0,l.jsxs)("div",{className:"stat-chips",children:[(0,l.jsxs)("span",{children:[(0,l.jsx)("i",{className:"dotc",style:{background:"var(--sx-string)"}}),G.agents.working," ",a("dash.ag.working")]}),(0,l.jsxs)("span",{children:[(0,l.jsx)("i",{className:"dotc",style:{background:"var(--sx-number)"}}),G.agents.review," ",a("dash.ag.review")]}),(0,l.jsxs)("span",{className:G.agents.blocked?"bad":"",children:[(0,l.jsx)("i",{className:"dotc",style:{background:"var(--sx-keyword)"}}),G.agents.blocked," ",a("dash.ag.blocked")]})]}),(0,l.jsxs)("div",{className:"sc-foot",children:[(0,l.jsx)(t.I,{name:"pulse",size:11})," ",a("dash.ag.heartbeat")," ",R(G.agents.lastHeartbeat)]})]}),(0,l.jsxs)("div",{className:"dash-card stat-card",style:{gridColumn:"span 3"},children:[(0,l.jsxs)("h3",{children:[(0,l.jsx)(t.I,{name:"coins",size:14})," ",a("dash.spend")]}),(0,l.jsxs)("div",{className:"sc-body",children:[(0,l.jsxs)("div",{className:"sc-left",children:[(0,l.jsx)("div",{className:"stat-num",children:$(G.spend.spent)}),(0,l.jsx)("div",{className:"kpi-sub",children:G.spend.cap?`${Math.round(H)}% ${a("dash.ofCapShort",{cap:G.spend.cap})}`:`${_(G.spend.tokens)} ${a("dash.tokens")}`})]}),(0,l.jsx)(u,{data:c.spendSeries,color:"var(--accent)",width:104,height:42})]}),(0,l.jsx)(p,{pct:H,color:H>=85?"var(--sx-keyword)":H>=60?"var(--sx-number)":"var(--sx-string)",className:"sc-seg"}),(0,l.jsxs)("div",{className:"stat-chips",children:[(0,l.jsxs)("span",{className:"trend "+(V>0?"up":V<0?"down":""),children:[(0,l.jsx)(t.I,{name:V>0?"arrowUp":V<0?"arrowDown":"dot",size:11})," ",Math.abs(V),"%"]}),(0,l.jsx)("span",{children:a("dash.vsPrev")}),(0,l.jsxs)("span",{style:{marginLeft:"auto"},children:[_(G.spend.tokens)," ",a("dash.tokens")]})]})]}),(0,l.jsxs)("div",{className:"dash-card stat-card",style:{gridColumn:"span 3"},children:[(0,l.jsxs)("h3",{children:[(0,l.jsx)(t.I,{name:"shield",size:14})," ",a("mod.security")]}),(0,l.jsxs)("div",{className:"sc-body",children:[(0,l.jsxs)("div",{className:"sc-left",children:[(0,l.jsx)("div",{className:"stat-num",style:{color:Q},children:G.security.score}),(0,l.jsx)("div",{className:"kpi-sub",children:a("dash.openFindings",{n:G.security.open})})]}),(0,l.jsx)(x,{value:J,max:100,size:56,thickness:6,color:Q,center:String(G.security.open),sub:a("dash.openShort")})]}),(0,l.jsx)(v,{segments:Z,className:"sc-seg"}),(0,l.jsxs)("div",{className:"stat-chips",children:[(0,l.jsxs)("span",{className:G.security.high?"bad":"",children:[(0,l.jsx)("i",{className:"dotc",style:{background:"var(--sx-keyword)"}}),G.security.high," ",a("dash.sev.high")]}),(0,l.jsxs)("span",{children:[(0,l.jsx)("i",{className:"dotc",style:{background:"var(--sx-number)"}}),G.security.med," ",a("dash.sev.med")]}),(0,l.jsxs)("span",{children:[(0,l.jsx)("i",{className:"dotc",style:{background:"var(--sx-property)"}}),G.security.low," ",a("dash.sev.low")]})]}),(0,l.jsxs)("div",{className:"sc-foot",children:[(0,l.jsx)(t.I,{name:"refresh",size:11})," ",a("dash.lastScan")," ",R(G.security.lastScan)]})]}),(0,l.jsxs)("div",{className:"dash-card stat-card",style:{gridColumn:"span 3"},children:[(0,l.jsxs)("h3",{children:[(0,l.jsx)(t.I,{name:"target",size:14})," ",a("mod.goals")]}),(0,l.jsxs)("div",{className:"sc-body",children:[(0,l.jsxs)("div",{className:"sc-left",children:[(0,l.jsxs)("div",{className:"stat-num",children:[G.goals.avgProgress,(0,l.jsx)("span",{className:"stat-of",children:"%"})]}),(0,l.jsx)("div",{className:"kpi-sub",children:a("dash.avgActive",{n:G.goals.active})})]}),(0,l.jsx)(x,{value:G.goals.avgProgress,max:100,size:56,thickness:6,color:"var(--accent)"})]}),(0,l.jsx)(v,{segments:Y,className:"sc-seg"}),(0,l.jsxs)("div",{className:"stat-chips",children:[(0,l.jsxs)("span",{children:[(0,l.jsx)("i",{className:"dotc",style:{background:"var(--accent)"}}),G.goals.active," ",a("dash.go.active")]}),(0,l.jsxs)("span",{children:[(0,l.jsx)("i",{className:"dotc",style:{background:"var(--sx-string)"}}),G.goals.done," ",a("dash.go.done")]}),(0,l.jsxs)("span",{className:G.goals.blocked?"bad":"",children:[(0,l.jsx)("i",{className:"dotc",style:{background:"var(--sx-keyword)"}}),G.goals.blocked," ",a("dash.go.blocked")]})]})]})]}),(0,l.jsxs)("div",{className:"dash-card",children:[(0,l.jsxs)("h3",{children:[(0,l.jsx)(t.I,{name:"pulse",size:14})," ",a("dash.healthTitle")]}),(0,l.jsx)("div",{className:"hcard-grid",children:c.health.map(e=>(0,l.jsxs)("div",{className:"hcard",children:[(0,l.jsxs)("div",{className:"hc-top",children:[(0,l.jsx)("span",{className:"hc-ic",children:(0,l.jsx)(t.I,{name:C[e.key]??"dot",size:14})}),(0,l.jsx)("span",{className:"hc-name",children:a("dash.health."+e.key)}),(0,l.jsx)("span",{className:"hdot "+e.status,style:{marginLeft:"auto"}})]}),(0,l.jsx)("div",{className:"hc-detail",children:e.detail}),(0,l.jsxs)("div",{className:"hc-foot",children:[(0,l.jsx)("span",{className:"hc-badge "+e.status,children:a("dash.hstatus."+e.status)}),"start-dev"===e.action||"reindex"===e.action||"start-loop"===e.action?(0,l.jsx)("button",{className:"hi-act",disabled:!!B,onClick:()=>"start-dev"===e.action?q("h-"+e.key,k):"reindex"===e.action?q("h-"+e.key,y.f):"start-loop"===e.action?q("h-"+e.key,()=>(0,f.D)("start")):void 0,children:B==="h-"+e.key?"…":a(S[e.action])}):e.href?(0,l.jsx)(i(),{className:"hi-act",href:e.href,children:a(S[e.action??"open"]??"dash.act.open")}):null]})]},e.key))})]}),(0,l.jsxs)("div",{className:"dash-grid",children:[(0,l.jsxs)("div",{className:"dash-card",style:{gridColumn:"span 7"},children:[(0,l.jsxs)("h3",{children:[(0,l.jsx)(t.I,{name:"play",size:14})," ",a("dash.execTitle")]}),c.execution&&"running"===c.execution.runState?(0,l.jsxs)("div",{className:"exec-panel",children:[(0,l.jsxs)("div",{className:"exec-head",children:[(0,l.jsx)("span",{className:"dotpulse"}),(0,l.jsx)("span",{className:"exec-goal",children:c.execution.goalTitle??c.execution.issueTitle??"—"}),c.execution.agentName&&(0,l.jsx)("span",{className:"exec-agent",children:c.execution.agentName}),(0,l.jsx)("span",{className:"exec-elapsed mono",children:c.execution.elapsedMs?R(Date.now()-c.execution.elapsedMs):""})]}),(0,l.jsxs)("div",{className:"exec-grid",children:[(0,l.jsxs)("div",{className:"exec-row",children:[(0,l.jsx)("span",{className:"ex-k",children:a("dash.exec.issue")}),(0,l.jsx)("span",{className:"ex-v",children:c.execution.issueTitle??"—"})]}),(0,l.jsxs)("div",{className:"exec-row",children:[(0,l.jsx)("span",{className:"ex-k",children:a("dash.exec.next")}),(0,l.jsx)("span",{className:"ex-v",children:c.execution.nextStep??"—"})]}),(0,l.jsxs)("div",{className:"exec-row",children:[(0,l.jsx)("span",{className:"ex-k",children:a("dash.exec.review")}),(0,l.jsx)("span",{className:"ex-v",children:c.execution.reviewOpen??0})]}),(0,l.jsxs)("div",{className:"exec-row",children:[(0,l.jsx)("span",{className:"ex-k",children:a("dash.exec.tests")}),(0,l.jsx)("span",{className:"ex-v",children:c.execution.testStatus?a("dash.test."+c.execution.testStatus):"—"})]}),(0,l.jsxs)("div",{className:"exec-row",children:[(0,l.jsx)("span",{className:"ex-k",children:a("dash.exec.locks")}),(0,l.jsx)("span",{className:"ex-v",children:c.execution.lockedFiles??0})]})]})]}):(0,l.jsxs)("div",{className:"exec-blank",children:[(0,l.jsx)("span",{className:"exec-blank-ic",children:(0,l.jsx)(t.I,{name:"play",size:22})}),(0,l.jsx)("div",{className:"exec-blank-t",children:a("dash.exec.none."+(c.execution?.runState??"idle"))}),(0,l.jsxs)("div",{className:"exec-cta",children:[(0,l.jsxs)(i(),{className:"btn-accent",href:"/planner",children:[(0,l.jsx)(t.I,{name:"target",size:13})," ",a("dash.exec.planner")]}),(0,l.jsxs)("button",{className:"btn-ghost",disabled:!!B,onClick:()=>q("loop",()=>(0,f.D)("off"===s?"start":"off")),children:[(0,l.jsx)(t.I,{name:"play",size:13})," ","off"===s?a("dash.exec.startLoop"):a("dash.exec.pauseLoop")]}),(0,l.jsxs)(i(),{className:"btn-ghost",href:"/inbox",children:[(0,l.jsx)(t.I,{name:"bell",size:13})," ",a("dash.exec.pending")]})]})]})]}),(0,l.jsxs)("div",{className:"dash-card",style:{gridColumn:"span 5"},children:[(0,l.jsxs)("h3",{children:[(0,l.jsx)(t.I,{name:"files",size:14})," ",a("dash.tasksByStatus")]}),(0,l.jsx)(v,{segments:c.tasksByCol.map(e=>({value:e.count,color:M[e.col]})),height:12,className:"tasks-seg"}),(0,l.jsx)("div",{className:"tasks-rows",children:c.tasksByCol.map(e=>{let s=K?Math.round(e.count/K*100):0;return(0,l.jsxs)(i(),{href:"/tasks",className:"taskrow",children:[(0,l.jsx)("span",{className:"tr-dot",style:{background:M[e.col]}}),(0,l.jsx)("span",{className:"tr-name",children:a("dash.col."+e.col)}),(0,l.jsx)("span",{className:"tr-track",children:(0,l.jsx)("span",{className:"tr-fill",style:{width:s+"%",background:M[e.col]}})}),(0,l.jsxs)("span",{className:"tr-val",children:[e.count,(0,l.jsxs)("span",{className:"tr-pct",children:[" ",s,"%"]})]})]},e.col)})})]})]}),(0,l.jsxs)("div",{className:"dash-grid",children:[(0,l.jsxs)("div",{className:"dash-card",style:{gridColumn:"span 7"},children:[(0,l.jsxs)("h3",{children:[(0,l.jsx)(t.I,{name:"bot",size:14})," ",a("dash.activeAgents")]}),0===c.agents.length?(0,l.jsxs)("div",{className:"exec-blank",children:[(0,l.jsx)("span",{className:"exec-blank-ic",children:(0,l.jsx)(t.I,{name:"bot",size:22})}),(0,l.jsx)("div",{className:"exec-blank-t",children:a("dash.noActive")}),(0,l.jsxs)("div",{className:"exec-cta",children:[(0,l.jsxs)("button",{className:"btn-accent",disabled:!!B,onClick:()=>q("loop",()=>(0,f.D)("start")),children:[(0,l.jsx)(t.I,{name:"play",size:13})," ",a("dash.exec.startLoop")]}),(0,l.jsxs)(i(),{className:"btn-ghost",href:"/agents/ada",children:[(0,l.jsx)(t.I,{name:"agents",size:13})," ",a("dash.openStudio")]}),(0,l.jsxs)(i(),{className:"btn-ghost",href:"/config",children:[(0,l.jsx)(t.I,{name:"settings",size:13})," ",a("dash.runConfig")]})]})]}):(0,l.jsx)("div",{className:"agent-grid",children:c.agents.map(e=>{let s=c.costByAgent[e.id]??0;return(0,l.jsxs)("div",{className:"agent-card",children:[(0,l.jsx)(d.e,{name:e.name,color:e.color,size:32,health:e.health}),(0,l.jsxs)("div",{className:"ac-main",children:[(0,l.jsxs)("div",{className:"ac-top",children:[(0,l.jsx)("span",{className:"ac-name",children:e.name}),(0,l.jsx)(r.m,{status:e.status})]}),(0,l.jsxs)("div",{className:"ac-meta",children:[(0,l.jsx)("span",{className:"ac-model mono",children:e.model}),s>0&&(0,l.jsx)("span",{className:"ac-cost",children:$(s)})]}),(0,l.jsx)("div",{className:"ac-task",children:e.taskTitle??a("dash.ag."+e.status)}),(0,l.jsxs)("div",{className:"ac-hb",children:[(0,l.jsx)(t.I,{name:"pulse",size:10})," ",R(e.lastPulseMs)]})]})]},e.id)})})]}),(0,l.jsxs)("div",{className:"dash-card",style:{gridColumn:"span 5"},children:[(0,l.jsxs)("h3",{children:[(0,l.jsx)(t.I,{name:"bell",size:14})," ",a("dash.alerts")]}),0===c.alerts.length?(0,l.jsx)("div",{className:"home-empty",children:a("dash.nothingNeedsYou")}):c.alerts.map(e=>(0,l.jsxs)(i(),{href:"/inbox",className:"alert-group",children:[(0,l.jsx)("span",{className:"ag-badge p"+e.priority,children:e.count}),(0,l.jsxs)("span",{className:"ag-text",children:[a("dash.alert."+e.kind),e.agentName?` \xb7 ${e.agentName}`:""]}),(0,l.jsx)("span",{className:"ag-time",children:R(e.latestAtMs)})]},e.key))]})]}),c.problems.length>0&&(0,l.jsxs)("div",{className:"dash-card",children:[(0,l.jsxs)("h3",{children:[(0,l.jsx)(t.I,{name:"warn",size:14})," ",a("dash.problemsTitle")]}),c.problems.map(e=>(0,l.jsxs)("div",{className:"problem-row",children:[(0,l.jsx)("span",{className:"prob-sev "+e.severity,children:a("dash.sev."+e.severity)}),(0,l.jsxs)("div",{className:"pr-main",children:[(0,l.jsx)("div",{className:"pr-title",children:a(e.title)}),(0,l.jsx)("div",{className:"pr-impact",children:a(e.impact)})]}),(0,l.jsx)(i(),{className:"hi-act",href:e.href,children:a(S[e.action]??"dash.act.open")})]},e.key))]}),(0,l.jsxs)("div",{className:"dash-grid",children:[(0,l.jsxs)("div",{className:"dash-card",style:{gridColumn:"span 7"},children:[(0,l.jsxs)("h3",{children:[(0,l.jsx)(t.I,{name:"knowledge",size:14})," ",a("dash.kbTitle")]}),0===c.kb.chunks?(0,l.jsxs)("div",{className:"exec-blank",children:[(0,l.jsx)("span",{className:"exec-blank-ic",children:(0,l.jsx)(t.I,{name:"knowledge",size:22})}),(0,l.jsx)("div",{className:"exec-blank-t",children:a("dash.kb.empty")}),(0,l.jsxs)("div",{className:"exec-cta",children:[(0,l.jsxs)("button",{className:"btn-accent",disabled:!!B,onClick:()=>q("kb-seed",I.V),children:[(0,l.jsx)(t.I,{name:"add",size:13})," ",a("dash.kb.createBlocks")]}),(0,l.jsxs)(i(),{className:"btn-ghost",href:"/knowledge",children:[(0,l.jsx)(t.I,{name:"knowledge",size:13})," ",a("dash.kb.open")]})]})]}):(0,l.jsxs)("div",{className:"kb-body",children:[(0,l.jsxs)("div",{className:"kb-donut",children:[(0,l.jsx)(m,{segments:es,size:104,thickness:13,center:String(ea),sub:el}),(0,l.jsx)("div",{className:"kb-legend",children:ee?c.kbByType.slice(0,6).map((e,s)=>(0,l.jsxs)("span",{className:"kb-leg",children:[(0,l.jsx)("i",{className:"dotc",style:{background:h[s%h.length]}}),e.type," ",(0,l.jsx)("b",{children:e.total})]},e.type)):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("span",{className:"kb-leg",children:[(0,l.jsx)("i",{className:"dotc",style:{background:"var(--sx-string)"}}),a("dash.kb.embeddings")," ",(0,l.jsx)("b",{children:c.kb.embeddings})]}),(0,l.jsxs)("span",{className:"kb-leg",children:[(0,l.jsx)("i",{className:"dotc",style:{background:"var(--bg-active)"}}),a("dash.kb.chunks")," ",(0,l.jsx)("b",{children:c.kb.chunks})]})]})})]}),(0,l.jsxs)("div",{className:"kb-right",children:[(0,l.jsxs)("div",{className:"kb-tiles",children:[(0,l.jsxs)("div",{className:"ks",children:[(0,l.jsx)("div",{className:"ks-v",children:c.kb.chunks}),(0,l.jsx)("div",{className:"ks-k",children:a("dash.kb.chunks")})]}),(0,l.jsxs)("div",{className:"ks",children:[(0,l.jsx)("div",{className:"ks-v",children:c.kb.embeddings}),(0,l.jsx)("div",{className:"ks-k",children:a("dash.kb.embeddings")})]}),(0,l.jsxs)("div",{className:"ks",children:[(0,l.jsx)("div",{className:"ks-v",children:c.kb.recentQueries}),(0,l.jsx)("div",{className:"ks-k",children:a("dash.kb.queries")})]}),(0,l.jsxs)("div",{className:"ks",children:[(0,l.jsx)("div",{className:"ks-v"+(c.kb.gaps?" warn":""),children:c.kb.gaps}),(0,l.jsx)("div",{className:"ks-k",children:a("dash.kb.gaps")})]}),(0,l.jsxs)("div",{className:"ks",children:[(0,l.jsx)("div",{className:"ks-v",children:R(c.kb.lastReindexMs)}),(0,l.jsx)("div",{className:"ks-k",children:a("dash.kb.lastReindex")})]}),(0,l.jsxs)("div",{className:"ks",children:[(0,l.jsx)("div",{className:"ks-v"+(c.kb.semantic?"":" warn"),children:c.kb.semantic?"●":"○"}),(0,l.jsx)("div",{className:"ks-k",children:a("dash.kb.semantic")})]})]}),(0,l.jsxs)("div",{className:"exec-cta",children:[(0,l.jsxs)(i(),{className:"btn-ghost",href:"/knowledge",children:[(0,l.jsx)(t.I,{name:"knowledge",size:13})," ",a("dash.kb.open")]}),(0,l.jsxs)("button",{className:"btn-ghost",disabled:!!B,onClick:()=>q("kb-reindex",y.f),children:[(0,l.jsx)(t.I,{name:"refresh",size:13})," ",a("dash.kb.reindex")]}),(0,l.jsxs)("button",{className:"btn-ghost",disabled:!!B,onClick:()=>q("kb-curate",w.O),children:[(0,l.jsx)(t.I,{name:"skill",size:13})," ",a("dash.kb.curate")]})]})]})]})]}),(0,l.jsxs)("div",{className:"dash-card",style:{gridColumn:"span 5"},children:[(0,l.jsxs)("h3",{children:[(0,l.jsx)(t.I,{name:"ext",size:14})," ",a("dash.integTitle")]}),(0,l.jsx)("div",{className:"integ-grid",children:c.integrations.map(e=>(0,l.jsxs)("div",{className:"integ-card",children:[(0,l.jsx)("span",{className:"ic-ic",children:(0,l.jsx)(t.I,{name:L[e.key]??"ext",size:14})}),(0,l.jsxs)("div",{className:"ic-main",children:[(0,l.jsx)("div",{className:"ic-name",children:a("dash.integ."+e.key)}),(0,l.jsx)("div",{className:"ic-detail",children:e.detail})]}),(0,l.jsx)("span",{className:"integ-chip "+e.status,children:a("dash.integStatus."+e.status)})]},e.key))})]})]}),c.locks.length>0&&(0,l.jsxs)("div",{className:"dash-card",children:[(0,l.jsxs)("h3",{children:[(0,l.jsx)(t.I,{name:"files",size:14})," ",a("dash.locksTitle")]}),c.locks.map(e=>(0,l.jsxs)("div",{className:"lock-row",children:[(0,l.jsx)(t.I,{name:"files",size:13}),(0,l.jsx)("span",{className:"lk-path mono",children:e.path}),(0,l.jsxs)("span",{className:"lk-by",children:["@",e.agentHandle]}),(0,l.jsx)("button",{className:"hi-act",disabled:!!B,onClick:()=>q("lock-"+e.path,()=>N(e.path)),children:a("dash.locks.release")})]},e.path))]})]})}},6989:(e,s,a)=>{"use strict";a.d(s,{O:()=>n});var l=a(7797);let n=(0,l.createServerReference)("004609cc8fda5b9551472b8f08684533ed82369738",l.callServer,void 0,l.findSourceMapURL,"curateKbAction")},7325:(e,s,a)=>{"use strict";a.d(s,{V:()=>n});var l=a(7797);let n=(0,l.createServerReference)("0095f11f333d7bcdf5602f400aea375fada9d68c1d",l.callServer,void 0,l.findSourceMapURL,"seedDefaultBlocksAction")},9156:(e,s,a)=>{"use strict";a.d(s,{W:()=>t});var l=a(4275),n=a(2899);let c={anthropic:"anthropic",claude_code:"claude",openai:"openai",codex_cli:"openai",google:"google",google_gemini:"gemini",gemini_cli:"gemini",vertex_ai:"vertexai",mistral:"mistral",deepseek:"deepseek",cohere:"cohere",perplexity:"perplexity",xai_grok:"grok",groq:"groq",ai21:"ai21",nvidia_nim:"nvidia",huggingface:"huggingface",replicate:"replicate",azure_openai:"azure",aws_bedrock:"bedrock",cloudflare:"cloudflare",dashscope:"qwen",zhipu:"zhipu",moonshot:"moonshot",minimax:"minimax",together:"together",openrouter:"openrouter",fireworks:"fireworks",cerebras:"cerebras",ollama:"ollama",ollama_cli:"ollama",lmstudio:"lmstudio",vllm:"vllm",localai:"localai",elevenlabs:"elevenlabs",stability:"stability",jina:"jina",voyage:"voyage"},i={anthropic:["#d97757","An"],openai:["#10a37f","AI"],google_gemini:["#4285f4","G"],google:["#4285f4","G"],mistral:["#fa520f","Mi"],xai_grok:["#1a1a1a","X"],deepseek:["#4d6bfe","DS"],cohere:["#39594d","Co"],ai21:["#e8488a","A2"],perplexity:["#20808d","Px"],groq:["#f55036","Gq"],nvidia_nim:["#76b900","NV"],together:["#0f6fff","To"],fireworks:["#5019c5","Fw"],cerebras:["#f25733","Cb"],huggingface:["#ff9d00","HF"],replicate:["#1a1a1a","Rp"],openrouter:["#6566f1","OR"],litellm:["#00b8a3","LL"],portkey:["#3b5bdb","Pk"],azure_openai:["#0078d4","Az"],aws_bedrock:["#ff9900","Br"],vertex_ai:["#4285f4","Vx"],cloudflare:["#f38020","Cf"],dashscope:["#ff6a00","Qw"],zhipu:["#3859ff","GL"],moonshot:["#16162a","Ki"],minimax:["#e1342c","MM"],ollama:["#0c0c0c","Ol"],llamacpp:["#7a4ddb","Lc"],lmstudio:["#4a5cff","LM"],vllm:["#1668dc","vL"],localai:["#2e7d32","La"],gpt4all:["#5b6cff","G4"],jan:["#1a1a1a","Jn"],claude_code:["#d97757","CC"],codex_cli:["#10a37f","Cx"],gemini_cli:["#4285f4","Gc"],aider:["#14b8a6","Ad"],ollama_cli:["#0c0c0c","Oc"],openclaw:["#e8590c","OC"],hermes_cli:["#6d28d9","Hm"],opencode:["#1a1a1a","Oc"],copilot_cli:["#1f2328","Co"],cursor_cli:["#1a1a1a","Cu"],cline_cli:["#2563eb","Cl"],kilo_code:["#7c3aed","Ki"],voyage:["#5b21b6","Vo"],jina:["#ec4899","Ji"],stability:["#a855f7","St"],elevenlabs:["#1a1a1a","El"]};function t({id:e,size:s=34,radius:a}){let d,r=i[e],o=r?r[0]:"#5b6378",h=r?r[1]:(e||"?").slice(0,2).replace(/[^a-z0-9]/gi,"").toUpperCase(),x=(d=c[e])?`https://cdn.jsdelivr.net/npm/@lobehub/icons-static-svg/icons/${d}.svg`:null,[m,u]=(0,n.useState)(!1),v=null!=a?a:Math.round(.28*s),p=x&&!m,g=Math.round(.66*s);return(0,l.jsx)("span",{className:"prov-glyph",style:{width:s,height:s,flex:"0 0 "+s+"px",borderRadius:v,background:p?"#fff":"linear-gradient(150deg, "+o+", color-mix(in srgb, "+o+" 70%, #000))",color:"#fff",display:"grid",placeItems:"center",overflow:"hidden",fontSize:Math.round(.4*s),fontWeight:800,letterSpacing:"-.5px",boxShadow:p?"inset 0 0 0 1px rgba(0,0,0,.08)":"inset 0 1px 0 rgba(255,255,255,.18)"},children:p?(0,l.jsx)("img",{src:x,alt:"",width:g,height:g,loading:"lazy",onError:()=>u(!0),style:{width:g,height:g,objectFit:"contain",display:"block"}}):h})}},9491:(e,s,a)=>{"use strict";a.d(s,{m:()=>c});var l=a(4275);let n={working:{c:"var(--sx-string)",pulse:!0,label:"working"},review:{c:"#e0a44e",label:"review"},blocked:{c:"#e8688f",label:"blocked"},idle:{c:"var(--text-faint)",label:"idle"}};function c({status:e,label:s=!1,size:a=8}){let i=n[e]??n.idle;return(0,l.jsxs)("span",{style:{display:"inline-flex",alignItems:"center",gap:5},title:i.label,children:[i.pulse?(0,l.jsx)("span",{className:"dotpulse"}):(0,l.jsx)("span",{style:{width:a,height:a,borderRadius:"50%",background:i.c,display:"inline-block",flex:`0 0 ${a}px`}}),s&&(0,l.jsx)("span",{style:{fontSize:11,color:i.c,fontWeight:600},children:i.label})]})}}},e=>{e.O(0,[928,171,6871,7218,2235,7066,7358],()=>e(e.s=6469)),_N_E=e.O()}]);
@@ -1,4 +1,4 @@
1
- (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[338],{710:(e,t,a)=>{"use strict";a.d(t,{R:()=>n});var r=a(7814);let n=(0,r.createServerReference)("0025702d9be00ab981752267c30f22148e1156d08d",r.callServer,void 0,r.findSourceMapURL,"startDevServerAction")},1882:(e,t,a)=>{"use strict";a.d(t,{DesignClient:()=>ed});var r=a(5076),n=a(8488),s=a(9860),i=a(5629),o=a(8576),d=a(4552),l=a(1334),c=a(4151),p=a(478),u=a(7814);let g=(0,u.createServerReference)("40371aa295d2eda44fb458b2c8e23e6e2b9313938d",u.callServer,void 0,u.findSourceMapURL,"getDesignScreen"),m=(0,u.createServerReference)("407aa8a5d4460f484c3868d791e7f99366c3c7ebf6",u.callServer,void 0,u.findSourceMapURL,"setTokens"),h=(0,u.createServerReference)("7031f18298206b9eed07915789c732e983d508c7ca",u.callServer,void 0,u.findSourceMapURL,"askDesign"),x=(0,u.createServerReference)("4083c3a91894ca82258f9de7f07bc9efc0ef9c31f1",u.callServer,void 0,u.findSourceMapURL,"listDesignComments"),b=(0,u.createServerReference)("005d6236fdcebaa4d6b5134a005c8ae844ae5da28b",u.callServer,void 0,u.findSourceMapURL,"listDesignVersions"),f=(0,u.createServerReference)("00239816275c839b806db62964632e16a93c1f70f2",u.callServer,void 0,u.findSourceMapURL,"listDesignDocs"),v=(0,u.createServerReference)("40b0da75104ac6ed9b3d63a24573082c88b5e3dca6",u.callServer,void 0,u.findSourceMapURL,"readDesignDoc"),y=(0,u.createServerReference)("0092e74bde6eae11a5647039382ef248fb7eddaf80",u.callServer,void 0,u.findSourceMapURL,"scaffoldDesignFromBrief"),z=(0,u.createServerReference)("60837a1694af21f238a015786df16d115ded01e9cc",u.callServer,void 0,u.findSourceMapURL,"commitDesignScreen"),w=(0,u.createServerReference)("404fe2e7af3aeb0bd58b9edb36a05dda84fdcf7b70",u.callServer,void 0,u.findSourceMapURL,"saveDesignCheckpoint"),k=(0,u.createServerReference)("701428695eeaccf59f2cbd6516dfe63831d54a5449",u.callServer,void 0,u.findSourceMapURL,"applyDesignTextEdit"),j=(0,u.createServerReference)("401913117624f76d855c3dee8e73690e05128d58bc",u.callServer,void 0,u.findSourceMapURL,"approveDesign"),N=(0,u.createServerReference)("00720e15b692af52616f0db65016380609680e9374",u.callServer,void 0,u.findSourceMapURL,"handoffToExecution"),S=(0,u.createServerReference)("00368d513d83907a8f4ba8986f1aa4b666abb6ad3f",u.callServer,void 0,u.findSourceMapURL,"resumeDesignHandoff"),C=(0,u.createServerReference)("00051c91c7dca5b2ed9baa8e3c2004af4875169699",u.callServer,void 0,u.findSourceMapURL,"buildDesignProduction"),I=(0,u.createServerReference)("7079e05add04a9ac5f434e8fbfa4aea018130164fb",u.callServer,void 0,u.findSourceMapURL,"addDesignMarkup"),E=(0,u.createServerReference)("7c59630ab1449d3b9501c2f2524df8ee3e64aa4648",u.callServer,void 0,u.findSourceMapURL,"addDesignComment"),M=(0,u.createServerReference)("40390c538324b2d9e4bffc648514a3ed6e0dc4da3c",u.callServer,void 0,u.findSourceMapURL,"deleteDesignComment"),T=(0,u.createServerReference)("400207e71c80a9d2076c6b25b6f57a85f1d812b1a2",u.callServer,void 0,u.findSourceMapURL,"restoreDesignCheckpoint"),R=(0,u.createServerReference)("60e0b0224a321119849c4906ec560f96898033d2de",u.callServer,void 0,u.findSourceMapURL,"restoreDesignVersion");var D=a(4302),P=a(5393);let A=`(function(){
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[338],{1133:(e,t,a)=>{"use strict";a.d(t,{j:()=>n});var r=a(7797);let n=(0,r.createServerReference)("003649be107c69af410f5b59dc57988238c9b2ccb4",r.callServer,void 0,r.findSourceMapURL,"devServerStatusAction")},4137:(e,t,a)=>{"use strict";a.d(t,{DesignClient:()=>ed});var r=a(4275),n=a(2899),s=a(6295),i=a(869),o=a(888),d=a(5904),l=a(6151),c=a(4451),p=a(3107),u=a(7797);let g=(0,u.createServerReference)("4098adb7b9cb6d8ece6a5d5da39e8c06941be1f196",u.callServer,void 0,u.findSourceMapURL,"getDesignScreen"),m=(0,u.createServerReference)("40ba827778cc9afae5ab41aa5cd8e4cfb89b37e3db",u.callServer,void 0,u.findSourceMapURL,"setTokens"),h=(0,u.createServerReference)("7064a5f752cc0107884224a36b01befc2f6fd6fba4",u.callServer,void 0,u.findSourceMapURL,"askDesign"),x=(0,u.createServerReference)("40a7743715198e7409c8a4cd0a07beb4c5e0468668",u.callServer,void 0,u.findSourceMapURL,"listDesignComments"),b=(0,u.createServerReference)("00e0d80384e6e10ca7ab9d59884a0bc960b9c46260",u.callServer,void 0,u.findSourceMapURL,"listDesignVersions"),f=(0,u.createServerReference)("001f06b8e5d1dae22ea9780fa3e8d2a12e364bdd06",u.callServer,void 0,u.findSourceMapURL,"listDesignDocs"),v=(0,u.createServerReference)("400131ca77bbfb1ac4d799e619f1aa13d27cdcee48",u.callServer,void 0,u.findSourceMapURL,"readDesignDoc"),y=(0,u.createServerReference)("0057fef5f4c3a7908b17ebee99b5fafa167cb86c7a",u.callServer,void 0,u.findSourceMapURL,"scaffoldDesignFromBrief"),z=(0,u.createServerReference)("60f8cc90db98cfdc08de4403875a6eb7a03b924ec9",u.callServer,void 0,u.findSourceMapURL,"commitDesignScreen"),w=(0,u.createServerReference)("40abdf7aae1b6c1eb3a4f2b3e7ee903de41565d01d",u.callServer,void 0,u.findSourceMapURL,"saveDesignCheckpoint"),k=(0,u.createServerReference)("7053230fcc82cc3fdd37196885d8475eeb89f396ff",u.callServer,void 0,u.findSourceMapURL,"applyDesignTextEdit"),j=(0,u.createServerReference)("40013167334e9c5909d5a49208cd7bdd390497efe3",u.callServer,void 0,u.findSourceMapURL,"approveDesign"),N=(0,u.createServerReference)("00e679961093600765d5177e2b3cde814e84a11766",u.callServer,void 0,u.findSourceMapURL,"handoffToExecution"),S=(0,u.createServerReference)("00b7343b9be87a777c99551a954722031c66d9a178",u.callServer,void 0,u.findSourceMapURL,"resumeDesignHandoff"),C=(0,u.createServerReference)("001dd8c9d00bd6c066bcf76069721ed4629efea404",u.callServer,void 0,u.findSourceMapURL,"buildDesignProduction"),I=(0,u.createServerReference)("707c7fd0696d03085cd45440035e098cd78345649c",u.callServer,void 0,u.findSourceMapURL,"addDesignMarkup"),E=(0,u.createServerReference)("7c22b8b2c3d793c3aaaa313b550ba7e274863d17dc",u.callServer,void 0,u.findSourceMapURL,"addDesignComment"),M=(0,u.createServerReference)("4065a8605d2b51d7b64c3e8d3d63abe311f0726dd5",u.callServer,void 0,u.findSourceMapURL,"deleteDesignComment"),T=(0,u.createServerReference)("40930525e94ac0b0cf8c69a77b18ea75797697ede7",u.callServer,void 0,u.findSourceMapURL,"restoreDesignCheckpoint"),R=(0,u.createServerReference)("6071acd600fbb10587d980179307f0fd094a5f115a",u.callServer,void 0,u.findSourceMapURL,"restoreDesignVersion");var D=a(8343),P=a(6054);let A=`(function(){
2
2
  var MODE = "select";
3
3
  var ZOOM = 1, ZOX = 0, ZOY = 0;
4
4
 
@@ -300,7 +300,7 @@
300
300
  post("canvas:ready", { interactive: INTERACTIVE });
301
301
  if(!INTERACTIVE) post("canvas:baseline", { html: serializeBody() }); // history/persist only for static screens
302
302
  setTimeout(emitTree, 80);
303
- })();`;var L=a(9029),O=a(7733),W=a(8163),$=a(9373),H=a(7046),F=a(710);let U=(0,u.createServerReference)("003313fcedf1513e66577ac56f5f63a9dc25f333a3",u.callServer,void 0,u.findSourceMapURL,"stopLiveInspectAction"),B=(0,u.createServerReference)("00e7096e00c8dea3583e5b0ed9bcdf52d4b3b42bd5",u.callServer,void 0,u.findSourceMapURL,"startLiveInspectAction"),X=[{id:"desktop",w:"100%",label:"Desktop"},{id:"tablet",w:"768px",label:"Tablet"},{id:"mobile",w:"390px",label:"Mobile"}];function Y({onAskGrace:e,asking:t}){let[a,s]=(0,n.useState)({running:!1,status:"idle",logs:[]}),[i,d]=(0,n.useTransition)(),[l,c]=(0,n.useState)(""),[p,u]=(0,n.useState)(""),[g,m]=(0,n.useState)(0),[h,x]=(0,n.useState)("desktop"),[b,f]=(0,n.useState)(!0),[v,y]=(0,n.useState)(""),[z,w]=(0,n.useState)(!1),[k,j]=(0,n.useState)(""),[N,S]=(0,n.useTransition)(),[C,I]=(0,n.useState)(""),[E,M]=(0,n.useState)(null),T=(0,n.useRef)(null),R=a.url??"",D="running"===a.status&&!!R,P=X.find(e=>e.id===h)?.w??"100%",A=(z&&k?k:p)||R,L=(0,n.useRef)(a.status);return L.current=a.status,(0,n.useEffect)(()=>{let e=!0;(0,$.j)().then(t=>{e&&s(t)}).catch(()=>{});let t=setInterval(()=>{"running"===L.current||"error"===L.current?clearInterval(t):(0,$.j)().then(t=>{e&&s(t)}).catch(()=>{})},3e3);return()=>{e=!1,clearInterval(t)}},[]),(0,n.useEffect)(()=>{R?(c(e=>e||R),u(e=>e||R)):(c(""),u(""))},[R]),(0,n.useEffect)(()=>{if(!D||!p)return void f(!0);let e=!0;return(0,H.K)(p).then(t=>{e&&f(t.frameable)}).catch(()=>{}),()=>{e=!1}},[D,p,g]),(0,n.useEffect)(()=>{function e(e){if(e.source!==T.current?.contentWindow)return;let t=e.data;if(t&&t.__cstlaLive)if("live:ready"===t.type)try{T.current?.contentWindow?.postMessage({__cstlaLiveHost:1,type:"live:setMode",mode:z?"inspect":"off"},"*")}catch{}else"live:select"===t.type&&t.payload&&M(t.payload)}return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[z]),(0,r.jsxs)("div",{style:{position:"absolute",inset:0,zIndex:40,display:"flex",flexDirection:"column",background:"var(--bg-app)"},children:[(0,r.jsxs)("div",{className:"dz-live-bar",children:[(0,r.jsx)("span",{className:"dz-live-dot "+(D?"on":"error"===a.status?"err":"")}),(0,r.jsx)("button",{className:"dz-ico",title:"Reload",disabled:!D,onClick:()=>m(e=>e+1),children:(0,r.jsx)(o.I,{name:"refresh",size:14})}),(0,r.jsxs)("form",{className:"dz-live-addr",onSubmit:function(e){let t;e?.preventDefault();let a=(t=l.trim())?/^https?:\/\//i.test(t)?t:R.replace(/\/$/,"")+(t.startsWith("/")?t:"/"+t):R;u(a),c(a),m(e=>e+1)},children:[(0,r.jsx)(o.I,{name:D?"shield":"goto",size:12}),(0,r.jsx)("input",{value:l,placeholder:R||"the app isn't running yet",disabled:!D||z,onChange:e=>c(e.target.value),spellCheck:!1})]}),(0,r.jsx)("button",{className:"dz-ico"+(z?" on":""),title:z?"Inspecting — click an element to target it (click again to turn off)":"Inspect: click a real element to ask Grace to change it",disabled:!D||N,onClick:function(){if(I(""),z){w(!1),M(null),m(e=>e+1),U().catch(()=>{});return}S(async()=>{try{let e=await B();if(!e.ok||!e.url)return void I(e.error||"Couldn't start inspect.");j(e.url),w(!0),M(null),m(e=>e+1)}catch{I("Couldn't start inspect.")}})},children:(0,r.jsx)(o.I,{name:N?"refresh":"target",size:14,className:N?"sync-spin":""})}),(0,r.jsx)("div",{className:"dz-seg",children:X.map(e=>(0,r.jsx)("button",{className:h===e.id?"on":"",disabled:!D,onClick:()=>x(e.id),children:e.label},e.id))}),D&&(0,r.jsx)("a",{className:"dz-ico",title:"Open in a new tab",href:p,target:"_blank",rel:"noreferrer",children:(0,r.jsx)(o.I,{name:"goto",size:14})})]}),C&&(0,r.jsx)("div",{className:"dz-uperr",style:{margin:"0 10px"},children:C}),(0,r.jsx)("div",{className:"dz-live-stage",children:D&&!b?(0,r.jsxs)("div",{className:"dz-live-empty",children:[(0,r.jsx)(o.I,{name:"shield",size:26}),(0,r.jsx)("div",{className:"t",children:"The app blocks embedding"}),(0,r.jsx)("div",{className:"s",children:"It sends X-Frame-Options / CSP that prevents the preview frame."}),(0,r.jsxs)("a",{className:"btn-accent",style:{marginTop:10},href:p,target:"_blank",rel:"noreferrer",children:[(0,r.jsx)(o.I,{name:"goto",size:13})," Open in a new tab"]})]}):D?(0,r.jsx)("iframe",{ref:T,className:"dz-live-frame",src:A,style:{width:P,maxWidth:"100%"},title:"Live app preview",onLoad:()=>{try{T.current?.contentWindow?.postMessage({__cstlaLiveHost:1,type:"live:setMode",mode:z?"inspect":"off"},"*")}catch{}},sandbox:"allow-scripts allow-same-origin allow-forms allow-popups allow-modals allow-downloads"},A+":"+g):(0,r.jsxs)("div",{className:"dz-live-empty",children:[(0,r.jsx)("span",{className:i||"starting"===a.status?"sync-spin":"",children:(0,r.jsx)(o.I,{name:i||"starting"===a.status?"refresh":"play",size:26})}),(0,r.jsx)("div",{className:"t",children:"error"===a.status?"The dev server failed to start":i||"starting"===a.status?"Starting the dev server…":"Run the real app"}),(0,r.jsx)("div",{className:"s",children:"error"===a.status?"Check the project boots (Test Dev shows the logs).":"Boot the project's dev server to see the real running app here — any stack."}),"running"!==a.status&&"starting"!==a.status&&!i&&(0,r.jsxs)("button",{className:"btn-accent",style:{marginTop:10},onClick:function(){d(async()=>{try{let e=await (0,F.R)();s(e)}catch{}})},children:[(0,r.jsx)(o.I,{name:"play",size:13})," Start the app"]})]})}),E&&(0,r.jsxs)("div",{className:"dz-attach",style:{margin:"0 10px 6px"},children:[(0,r.jsx)("span",{className:"sw",style:{background:"#6366f1"}})," Editing ",(0,r.jsxs)("b",{style:{fontWeight:700},children:["<",E.tag,">",E.id?" #"+E.id:""]}),E.text?` \xb7 “${E.text.slice(0,40)}”`:"",(0,r.jsx)("span",{className:"x",onClick:()=>M(null),children:(0,r.jsx)(o.I,{name:"close",size:12})})]}),(0,r.jsxs)("form",{className:"dz-live-ask",onSubmit:function(a){a?.preventDefault();let r=v.trim();if(r&&!t){if(E){let t=[`<${E.tag}>`,E.id?`#${E.id}`:"",E.text?`text "${E.text}"`:"",E.landmark?`in "${E.landmark}"`:"",`selector \`${E.selector}\``,`on route ${E.path}`].filter(Boolean).join(" \xb7 ");e(`On the live app, change THIS element (${t}) — edit the real source, keep everything else intact: ${r}`)}else e(`On the live app: ${r}`);y(""),M(null)}},children:[(0,r.jsx)(o.I,{name:"skill",size:14}),(0,r.jsx)("input",{value:v,placeholder:E?"Describe the change to this element — Grace edits the real source…":"Ask Grace to change the live app — she edits the real source (HMR repaints it)…",onChange:e=>y(e.target.value),disabled:t}),(0,r.jsxs)("button",{className:"dz-mini-btn accent",disabled:t||!v.trim(),type:"submit",children:[(0,r.jsx)(o.I,{name:t?"refresh":"send",size:13,className:t?"sync-spin":""})," Ask Grace"]})]})]})}let G=`
303
+ })();`;var L=a(9078),O=a(6328),W=a(379),$=a(1133),H=a(7985),F=a(5139);let U=(0,u.createServerReference)("00c44c46f3451d048415ed2966467e9049247d364b",u.callServer,void 0,u.findSourceMapURL,"stopLiveInspectAction"),B=(0,u.createServerReference)("00764b2da920c3558828f457bb503a3b1e197fb2e6",u.callServer,void 0,u.findSourceMapURL,"startLiveInspectAction"),X=[{id:"desktop",w:"100%",label:"Desktop"},{id:"tablet",w:"768px",label:"Tablet"},{id:"mobile",w:"390px",label:"Mobile"}];function Y({onAskGrace:e,asking:t}){let[a,s]=(0,n.useState)({running:!1,status:"idle",logs:[]}),[i,d]=(0,n.useTransition)(),[l,c]=(0,n.useState)(""),[p,u]=(0,n.useState)(""),[g,m]=(0,n.useState)(0),[h,x]=(0,n.useState)("desktop"),[b,f]=(0,n.useState)(!0),[v,y]=(0,n.useState)(""),[z,w]=(0,n.useState)(!1),[k,j]=(0,n.useState)(""),[N,S]=(0,n.useTransition)(),[C,I]=(0,n.useState)(""),[E,M]=(0,n.useState)(null),T=(0,n.useRef)(null),R=a.url??"",D="running"===a.status&&!!R,P=X.find(e=>e.id===h)?.w??"100%",A=(z&&k?k:p)||R,L=(0,n.useRef)(a.status);return L.current=a.status,(0,n.useEffect)(()=>{let e=!0;(0,$.j)().then(t=>{e&&s(t)}).catch(()=>{});let t=setInterval(()=>{"running"===L.current||"error"===L.current?clearInterval(t):(0,$.j)().then(t=>{e&&s(t)}).catch(()=>{})},3e3);return()=>{e=!1,clearInterval(t)}},[]),(0,n.useEffect)(()=>{R?(c(e=>e||R),u(e=>e||R)):(c(""),u(""))},[R]),(0,n.useEffect)(()=>{if(!D||!p)return void f(!0);let e=!0;return(0,H.K)(p).then(t=>{e&&f(t.frameable)}).catch(()=>{}),()=>{e=!1}},[D,p,g]),(0,n.useEffect)(()=>{function e(e){if(e.source!==T.current?.contentWindow)return;let t=e.data;if(t&&t.__cstlaLive)if("live:ready"===t.type)try{T.current?.contentWindow?.postMessage({__cstlaLiveHost:1,type:"live:setMode",mode:z?"inspect":"off"},"*")}catch{}else"live:select"===t.type&&t.payload&&M(t.payload)}return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[z]),(0,r.jsxs)("div",{style:{position:"absolute",inset:0,zIndex:40,display:"flex",flexDirection:"column",background:"var(--bg-app)"},children:[(0,r.jsxs)("div",{className:"dz-live-bar",children:[(0,r.jsx)("span",{className:"dz-live-dot "+(D?"on":"error"===a.status?"err":"")}),(0,r.jsx)("button",{className:"dz-ico",title:"Reload",disabled:!D,onClick:()=>m(e=>e+1),children:(0,r.jsx)(o.I,{name:"refresh",size:14})}),(0,r.jsxs)("form",{className:"dz-live-addr",onSubmit:function(e){let t;e?.preventDefault();let a=(t=l.trim())?/^https?:\/\//i.test(t)?t:R.replace(/\/$/,"")+(t.startsWith("/")?t:"/"+t):R;u(a),c(a),m(e=>e+1)},children:[(0,r.jsx)(o.I,{name:D?"shield":"goto",size:12}),(0,r.jsx)("input",{value:l,placeholder:R||"the app isn't running yet",disabled:!D||z,onChange:e=>c(e.target.value),spellCheck:!1})]}),(0,r.jsx)("button",{className:"dz-ico"+(z?" on":""),title:z?"Inspecting — click an element to target it (click again to turn off)":"Inspect: click a real element to ask Grace to change it",disabled:!D||N,onClick:function(){if(I(""),z){w(!1),M(null),m(e=>e+1),U().catch(()=>{});return}S(async()=>{try{let e=await B();if(!e.ok||!e.url)return void I(e.error||"Couldn't start inspect.");j(e.url),w(!0),M(null),m(e=>e+1)}catch{I("Couldn't start inspect.")}})},children:(0,r.jsx)(o.I,{name:N?"refresh":"target",size:14,className:N?"sync-spin":""})}),(0,r.jsx)("div",{className:"dz-seg",children:X.map(e=>(0,r.jsx)("button",{className:h===e.id?"on":"",disabled:!D,onClick:()=>x(e.id),children:e.label},e.id))}),D&&(0,r.jsx)("a",{className:"dz-ico",title:"Open in a new tab",href:p,target:"_blank",rel:"noreferrer",children:(0,r.jsx)(o.I,{name:"goto",size:14})})]}),C&&(0,r.jsx)("div",{className:"dz-uperr",style:{margin:"0 10px"},children:C}),(0,r.jsx)("div",{className:"dz-live-stage",children:D&&!b?(0,r.jsxs)("div",{className:"dz-live-empty",children:[(0,r.jsx)(o.I,{name:"shield",size:26}),(0,r.jsx)("div",{className:"t",children:"The app blocks embedding"}),(0,r.jsx)("div",{className:"s",children:"It sends X-Frame-Options / CSP that prevents the preview frame."}),(0,r.jsxs)("a",{className:"btn-accent",style:{marginTop:10},href:p,target:"_blank",rel:"noreferrer",children:[(0,r.jsx)(o.I,{name:"goto",size:13})," Open in a new tab"]})]}):D?(0,r.jsx)("iframe",{ref:T,className:"dz-live-frame",src:A,style:{width:P,maxWidth:"100%"},title:"Live app preview",onLoad:()=>{try{T.current?.contentWindow?.postMessage({__cstlaLiveHost:1,type:"live:setMode",mode:z?"inspect":"off"},"*")}catch{}},sandbox:"allow-scripts allow-same-origin allow-forms allow-popups allow-modals allow-downloads"},A+":"+g):(0,r.jsxs)("div",{className:"dz-live-empty",children:[(0,r.jsx)("span",{className:i||"starting"===a.status?"sync-spin":"",children:(0,r.jsx)(o.I,{name:i||"starting"===a.status?"refresh":"play",size:26})}),(0,r.jsx)("div",{className:"t",children:"error"===a.status?"The dev server failed to start":i||"starting"===a.status?"Starting the dev server…":"Run the real app"}),(0,r.jsx)("div",{className:"s",children:"error"===a.status?"Check the project boots (Test Dev shows the logs).":"Boot the project's dev server to see the real running app here — any stack."}),"running"!==a.status&&"starting"!==a.status&&!i&&(0,r.jsxs)("button",{className:"btn-accent",style:{marginTop:10},onClick:function(){d(async()=>{try{let e=await (0,F.R)();s(e)}catch{}})},children:[(0,r.jsx)(o.I,{name:"play",size:13})," Start the app"]})]})}),E&&(0,r.jsxs)("div",{className:"dz-attach",style:{margin:"0 10px 6px"},children:[(0,r.jsx)("span",{className:"sw",style:{background:"#6366f1"}})," Editing ",(0,r.jsxs)("b",{style:{fontWeight:700},children:["<",E.tag,">",E.id?" #"+E.id:""]}),E.text?` \xb7 “${E.text.slice(0,40)}”`:"",(0,r.jsx)("span",{className:"x",onClick:()=>M(null),children:(0,r.jsx)(o.I,{name:"close",size:12})})]}),(0,r.jsxs)("form",{className:"dz-live-ask",onSubmit:function(a){a?.preventDefault();let r=v.trim();if(r&&!t){if(E){let t=[`<${E.tag}>`,E.id?`#${E.id}`:"",E.text?`text "${E.text}"`:"",E.landmark?`in "${E.landmark}"`:"",`selector \`${E.selector}\``,`on route ${E.path}`].filter(Boolean).join(" \xb7 ");e(`On the live app, change THIS element (${t}) — edit the real source, keep everything else intact: ${r}`)}else e(`On the live app: ${r}`);y(""),M(null)}},children:[(0,r.jsx)(o.I,{name:"skill",size:14}),(0,r.jsx)("input",{value:v,placeholder:E?"Describe the change to this element — Grace edits the real source…":"Ask Grace to change the live app — she edits the real source (HMR repaints it)…",onChange:e=>y(e.target.value),disabled:t}),(0,r.jsxs)("button",{className:"dz-mini-btn accent",disabled:t||!v.trim(),type:"submit",children:[(0,r.jsx)(o.I,{name:t?"refresh":"send",size:13,className:t?"sync-spin":""})," Ask Grace"]})]})]})}let G=`
304
304
  .dz-wrap{flex:1;min-height:480px;display:flex;background:var(--bg-app);position:relative;height:100%;}
305
305
  .dz-chat{width:312px;flex:0 0 312px;display:flex;flex-direction:column;min-height:0;border-right:1px solid var(--border-subtle);background:var(--bg-panel);}
306
306
  .dz-chat-head{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--border-subtle);}
@@ -555,4 +555,4 @@
555
555
  .dz-seg-mini{display:flex;background:var(--bg-app);border:1px solid var(--border);border-radius:7px;padding:2px;gap:1px;}
556
556
  .dz-seg-mini button{flex:1;border:none;background:none;color:var(--text-dim);font-size:10.5px;font-weight:600;padding:4px 5px;border-radius:5px;cursor:pointer;display:grid;place-items:center;}
557
557
  .dz-seg-mini button.on{background:var(--accent);color:var(--accent-fg,#1a1205);}
558
- `,Z=[{name:"Indigo",c:"#6366f1"},{name:"Violet",c:"#8b5cf6"},{name:"Blue",c:"#3b82f6"},{name:"Sky",c:"#0ea5e9"},{name:"Cyan",c:"#06b6d4"},{name:"Teal",c:"#14b8a6"},{name:"Emerald",c:"#10b981"},{name:"Lime",c:"#84cc16"},{name:"Amber",c:"#f59e0b"},{name:"Orange",c:"#f97316"},{name:"Rose",c:"#f43f5e"},{name:"Pink",c:"#ec4899"}],_=[{n:"Inter",s:"'Inter',system-ui,sans-serif"},{n:"IBM Plex",s:"'IBM Plex Sans',sans-serif"},{n:"Geist",s:"'Geist','Inter',ui-sans-serif,sans-serif"},{n:"System",s:"system-ui,-apple-system,Segoe UI,sans-serif"},{n:"Serif",s:"Georgia,'Times New Roman',serif"},{n:"Mono",s:"ui-monospace,'SF Mono',Menlo,monospace"},{n:"Display",s:"'Poppins','Inter',system-ui,sans-serif"}],K=[{n:"Sharp",r:6},{n:"Soft",r:16},{n:"Round",r:26}],V=[{id:"select",ic:"target"},{id:"edit",ic:"newFile"},{id:"markup",ic:"skill"},{id:"comments",ic:"chat"},{id:"inspect",ic:"search"},{id:"preview",ic:"play"}];function q(e,t){let a=parseInt(e.replace("#",""),16);return`rgba(${a>>16&255},${a>>8&255},${255&a},${t})`}function J(e){return(e.split("/").pop()||e).replace(/\.html?$/i,"")}function Q(e){let t=(e||"").replace(/\\/g,"/"),a=t.toLowerCase().lastIndexOf("design-mock/");return a>=0?t.slice(a):null}let ee=/\b(remov(i|ido|eu|idos)|adicion(ei|ado|ou|ados)|cri(ei|ado|ou|ados)|corrig(i|ido|iu)|ajust(ei|ado|ou)|atualiz(ei|ado|ou)|mud(ei|ado|ou)|delet(ei|ado|ou)|limp(ei|ado|ou)|troqu(ei)|troc(ado|ou)|inseri|inserido|fiz|feit[oa]s?|pront[oa]s?|conclu(i|í|ido|ída)|finaliz(ei|ado|ou)|implement(ei|ado|ou)|ger(ei|ado|ou)|salv(ei|o|ado)|apliqu(ei)|aplic(ado|ou)|added|removed|deleted|created|fixed|updated|changed|cleaned|adjusted|renamed|moved|made|done|ready|here'?s|i'?ve|i\s+have|i\s+just|i\s+made)\b/i,et=[["design.sugg.adjustPalette","Adjust the color palette"],["design.sugg.improveSpacing","Improve the spacing"],["design.sugg.mobileVersion","Create a mobile version"],["design.sugg.darkTheme","Try a dark theme"],["design.sugg.addSection","Add a section"],["design.sugg.newScreen","Create a new screen"],["design.sugg.visualDocs","Generate the visual docs"],["design.sugg.askReview","Ask Grace for a review"],["design.sugg.approve","Approve design"],["design.sugg.sendExec","Send to execution"]],ea=[["design.sugg.firstScreen","Build the first screen"],["design.sugg.proposePalette","Propose a color palette"],["design.sugg.defineTypography","Define the typography"],["design.sugg.mainFlow","Design the main flow"],["design.sugg.heroSection","Add a hero section"],["design.sugg.mobileVersion","Create a mobile version"]],er={accent:"#6366f1",accentName:"Indigo",accentFg:"",secondary:"",surface:"",success:"",warning:"",danger:"",theme:"dark",font:_[0].s,fontName:"Inter",headingFont:_[0].s,headingFontName:"Inter",fontWeight:400,lineHeight:1.5,letterSpacing:0,fontScale:1,radius:16,borderWidth:1,borderColor:"",shadow:"md",density:12,containerWidth:1200,motionMs:200,ease:"ease"};function en(e){return!!(e.selection&&"object"==typeof e.selection&&"markup"===e.selection.kind)}function es(e){return e.selection.rect}function ei(e){let t=e.x+e.w/2,a=e.y+e.h/2;return`${a<33?"top":a<66?"middle":"bottom"}-${t<33?"left":t<66?"center":"right"} area, roughly ${Math.round(e.w)}%\xd7${Math.round(e.h)}% of the page`}function eo({grace:e,context:t,status:a,tokens:u}){var $;let H,F,U,B,X,ed=(0,s.useRouter)(),el=(0,i.k)(),[ec,ep]=(0,n.useState)("approved"===a||t.approved?"approved":"building"),[eu,eg]=(0,n.useState)(!1),[em,eh]=(0,n.useState)("screens"),[ex,eb]=(0,n.useState)(!0),[ef,ev]=(0,n.useState)(!0),[ey,ez]=(0,n.useState)("desktop"),[ew,ek]=(0,n.useState)(null),[ej,eN]=(0,n.useState)(!1),[eS,eC]=(0,n.useState)(100),[eI,eE]=(0,n.useState)("select"),[eM,eT]=(0,n.useState)({...er,...u??{}}),[eR,eD]=(0,n.useState)(""),[eP,eA]=(0,n.useState)(!1),[eL,eO]=(0,n.useState)(!1),[eW,e$]=(0,n.useState)(""),[eH,eF]=(0,n.useState)([]),[eU,eB]=(0,n.useState)(!1),[eX,eY]=(0,n.useState)(!1),[eG,eZ]=(0,n.useState)(""),e_=(0,n.useRef)(null),eK=(0,n.useRef)(!0),[eV,eq]=(0,n.useState)(""),[eJ,eQ]=(0,n.useState)(null),[e0,e1]=(0,n.useState)(""),[e2,e5]=(0,n.useState)([]),[e6,e8]=(0,n.useState)([]),[e4,e3]=(0,n.useState)(!0),[e9,e7]=(0,n.useState)(!1),te=(0,n.useRef)(0),tt=(0,n.useRef)(0),ta=(0,n.useRef)(null),[tr,tn]=(0,n.useState)([]),[ts,ti]=(0,n.useState)(null),[to,td]=(0,n.useState)(null),[tl,tc]=(0,n.useState)({scrollX:0,scrollY:0,viewportW:980,viewportH:560,docW:980,docH:560}),[tp,tu]=(0,n.useState)({w:1200,h:700}),[tg,tm]=(0,n.useState)([]),[th,tx]=(0,n.useState)(!1),tb=(0,n.useRef)(!1),[tf,tv]=(0,n.useState)(null),[ty,tz]=(0,n.useState)([]),tw=(0,n.useRef)([]),[tk,tj]=(0,n.useState)(!1),[tN,tS]=(0,n.useState)(null),[tC,tI]=(0,n.useState)(null),[tE,tM]=(0,n.useState)(null),[tT,tR]=(0,n.useState)(""),[tD,tP]=(0,n.useState)([]),[tA,tL]=(0,n.useState)([]),[tO,tW]=(0,n.useState)(null),[t$,tH]=(0,n.useState)(null),[tF,tU]=(0,n.useState)(!1),[tB,tX]=(0,n.useState)([]),[tY,tG]=(0,n.useState)(null),[tZ,t_]=(0,n.useState)(""),[tK,tV]=(0,n.useState)(0),[tq,tJ]=(0,n.useState)("idle"),tQ=(0,n.useRef)(!1),t0=(0,n.useRef)(""),t1=(0,n.useRef)(null),t2=(0,n.useRef)(new Map),[t5,t6]=(0,n.useState)(0),t8=(0,n.useRef)(null),t4=(0,n.useRef)(null),t3=(0,n.useRef)(""),t9=(0,n.useRef)(eI),t7=(0,n.useRef)(""),ae=(0,n.useRef)(eM),at=(0,n.useRef)([]),aa=(0,n.useRef)(null),ar=(0,n.useRef)(!1),an=(0,n.useRef)(!1),as=Array.from(new Set([...t.designMockFiles.filter(e=>/\.html?$/i.test(e)),...tr]));at.current=as;let ai=t.designMockFiles.filter(e=>e.startsWith("design-mock/components/")),ao="approved"===ec,ad=eV&&as.includes(eV)?eV:as[0]??"";t7.current=ad,ar.current=ao,an.current=e9,t9.current=eI,ae.current=eM;let al=as.length>0&&null!=eJ&&!e0,ac=eS/100,ap=null!=ew?{w:Math.max(320,Math.min(1920,ew)),h:Math.max(560,Math.round(1.5*Math.max(320,Math.min(1920,ew))))}:"tablet"===ey?{w:768,h:1024}:"mobile"===ey?{w:390,h:844}:null,au=null!=ap,ag=au?ap.w:Math.max(1,tp.w/ac),am=au?ap.h:Math.max(1,tp.h/ac),ah=Math.max(1,tl.docW||tl.viewportW||1),ax=Math.max(1,tl.docH||tl.viewportH||1),ab=e=>({left:e.x-tl.scrollX,top:e.y-tl.scrollY,width:e.w,height:e.h}),af=e=>({left:e.x/100*ah-tl.scrollX,top:e.y/100*ax-tl.scrollY,width:e.w/100*ah,height:e.h/100*ax}),av=(e,t)=>({left:e/100*ah-tl.scrollX,top:t/100*ax-tl.scrollY}),{canUndo:ay,canRedo:az}=(0,n.useMemo)(()=>{let e=t2.current.get(ad);return{canUndo:!!e&&e.pos>0,canRedo:!!e&&e.pos<e.stack.length-1}},[t5,ad]);(0,n.useEffect)(()=>{if(document.getElementById("dz-style"))return;let e=document.createElement("style");e.id="dz-style",e.textContent=G,document.head.appendChild(e)},[]),(0,n.useEffect)(()=>{try{"0"===localStorage.getItem("bx.dzChat")&&eb(!1),"0"===localStorage.getItem("bx.dzRail")&&ev(!1)}catch{}},[]),(0,n.useEffect)(()=>{try{localStorage.setItem("bx.dzChat",ex?"1":"0")}catch{}},[ex]),(0,n.useEffect)(()=>{try{localStorage.setItem("bx.dzRail",ef?"1":"0")}catch{}},[ef]),(0,n.useEffect)(()=>{let e=!1,t=e=>e.length>250?e.slice(-250):e;function a(){if(e||document.hidden||ta.current)return;let a=new EventSource(`/api/stream?channel=design&evCursor=${te.current}&msgCursor=${tt.current}`);ta.current=a,a.addEventListener("ev",e=>{let a=JSON.parse(e.data);a.seq>te.current&&(te.current=a.seq),e8(e=>e.some(e=>e.id===a.id)?e:t([...e,a]))}),a.addEventListener("msg",e=>{let a=JSON.parse(e.data),r=a.createdAt?new Date(a.createdAt).getTime():0;if(r>tt.current&&(tt.current=r),e5(e=>e.some(e=>e.id===a.id)?e:t([...e,a])),e8(e=>e.filter(e=>e.runId!==a.id||"text"!==e.kind)),"agent"===a.fromKind){e7(!1),tV(e=>e+1),ed.refresh();let e=t7.current;e&&setTimeout(()=>{tQ.current||(t2.current.delete(e),t6(e=>e+1),g(e).then(e=>{e.ok&&null!=e.html&&(eQ(e.html),e1(""))}))},300)}})}function r(){ta.current&&(ta.current.close(),ta.current=null)}(async function(){let[t,a]=await Promise.all([(0,c.V)("design"),(0,p.k)("design",0)]);e||(e5(t),e8(a),te.current=a.reduce((e,t)=>Math.max(e,t.seq),0),tt.current=t.reduce((e,t)=>Math.max(e,t.createdAt?new Date(t.createdAt).getTime():0),0))})().catch(()=>{}).finally(()=>{!e&&(e3(!1),document.hidden||a())});let n=()=>{document.hidden?r():a()};return document.addEventListener("visibilitychange",n),()=>{e=!0,document.removeEventListener("visibilitychange",n),r()}},[]),(0,n.useEffect)(()=>{if(aM(),eK.current){eK.current=!1;return}let e=setTimeout(()=>{m(eM)},500);return eg(!0),ar.current&&(aa.current&&clearTimeout(aa.current),aa.current=setTimeout(()=>{aa.current=null,function(){if(!ar.current||an.current)return;let e=ae.current;e7(!0),h(`I changed the design directly on the canvas via the Styles panel — the canvas is the source of truth now. RECONCILE the source to match it; do NOT ask, just do it: write the current tokens into design-mock/styles/global.css (:root) — accent ${e.accent}, secondary ${e.secondary}, surface ${e.surface}, body font ${e.font}, heading font ${e.headingFont}, radius ${e.radius}px, theme ${e.theme} — and update design-mock/design-system.md (palette / typography / tokens) plus any affected component docs to reflect it, keeping every screen VISUALLY IDENTICAL. Then briefly summarize what you synced.`).then(e=>{e.ok||e7(!1)}),aW("Grace is syncing your change into the source CSS + docs…")}()},9e3)),()=>clearTimeout(e)},[eM]),(0,n.useEffect)(()=>{if(!ad)return void eQ(null);if(tQ.current&&ad===t0.current)return;tQ.current&&(tQ.current=!1,t0.current="",tJ("idle")),tc(e=>({...e,scrollX:0,scrollY:0}));let e=!0;return e1(""),g(ad).then(t=>{e&&(t.ok&&null!=t.html?eQ(t.html):(eQ(null),e1(t.error||el("design.toast.screenLoadFail"))))}),()=>{e=!1}},[as.join("|"),ad]),(0,n.useEffect)(()=>{if(tQ.current)return;let e=new Set(e2.map(e=>e.id)),t=e6.filter(t=>{if("create"!==t.kind&&"edit"!==t.kind||e.has(t.runId))return!1;let a=Q(t.target||"");return null!=a&&/^design-mock\/screens\/[^/]+\.html?$/i.test(a)});if(!t.length)return;let a=t[t.length-1];if(a.id===t3.current)return;t3.current=a.id;let r=Q(a.target||"");tn(e=>e.includes(r)?e:[...e,r]),eq(r),t2.current.delete(r),t6(e=>e+1),setTimeout(()=>{g(r).then(e=>{e.ok&&null!=e.html&&(eQ(e.html),e1(""))})},550)},[e6,e2]),(0,n.useEffect)(()=>{let e=new Set(e2.map(e=>e.id));e6.some(t=>!e.has(t.runId))&&e7(!1)},[e6,e2]),(0,n.useEffect)(()=>{let e=!0;return Promise.all([x().catch(()=>({comments:[]})),b().catch(()=>({versions:[]})),f().catch(()=>({docs:[]}))]).then(([t,a,r])=>{e&&(tP(t.comments||[]),tL(a.versions||[]),tX(r.docs||[]))}),()=>{e=!1}},[tK]);let aw=async()=>{try{let e=await (0,L.p)("design");if(e.used>=e.max&&!tF){tU(!0);try{await (0,O.L)("design"),e=await (0,L.p)("design")}finally{tU(!1)}}tH(e)}catch{}};async function ak(){if(!tF){tU(!0);try{await (0,O.L)("design"),await aw()}finally{tU(!1)}}}function aj(e){tG(e),t_(""),v(e).then(e=>{e.ok&&null!=e.body?t_(e.body):t_(el("design.docs.readErr"))})}(0,n.useEffect)(()=>{ex&&aw()},[ex,e2.length]),(0,n.useEffect)(()=>{"docs"===em&&tB.length&&(tY&&tB.some(e=>e.path===tY)||aj(tB[0].path))},[em,tB]);let aN=(0,n.useRef)(!1);(0,n.useEffect)(()=>{!t.gatePending||t.gateScaffolded||aN.current||e9||(aN.current=!0,e7(!0),y().then(e=>{e.ok||(e7(!1),aN.current=!1)}))},[t.gatePending,t.gateScaffolded]),(0,n.useEffect)(()=>{function e(e){var t,a,r;let n=e.data;if(n&&n.__cstla&&t8.current&&e.source===t8.current.contentWindow)if("canvas:viewport"===n.type){let e=n.payload;tc({scrollX:Math.max(0,e.scrollX||0),scrollY:Math.max(0,e.scrollY||0),viewportW:Math.max(1,e.viewportW||1),viewportH:Math.max(1,e.viewportH||1),docW:Math.max(1,e.docW||e.viewportW||1),docH:Math.max(1,e.docH||e.viewportH||1)})}else if("canvas:ready"===n.type){aE(),aM();let e=!!n.payload?.interactive;tb.current=e,tx(e)}else if("canvas:hover"===n.type)ti(n.payload);else if("canvas:guides"===n.type)td(n.payload);else if("canvas:tree"===n.type)tm(n.payload?.items??[]);else if("canvas:nav"===n.type){let e,r,s,i=(t=String(n.payload?.href||""),a=at.current,r=((e=t.split("#")[0].split("?")[0].replace(/\/+$/,"")).split("/").pop()||e).replace(/\.html?$/i,"").toLowerCase(),(s=a.find(e=>(e.split("/").pop()||e).replace(/\.html?$/i,"").toLowerCase()===r))||""!==r&&"index"!==r&&"home"!==r||(s=a.find(e=>/(^|\/)(index|home)\.html?$/i.test(e))||a[0]),s||null);i&&(eq(i),tv(null),tz([]),tj(!1))}else if("canvas:select"===n.type){let e={...n.payload,pageId:t7.current};tv(e),tz([e]),tj("select"===t9.current||"edit"===t9.current)}else if("canvas:selectToggle"===n.type){let e={...n.payload,pageId:t7.current},t=tw.current,a=t.findIndex(t=>t.cstlaId===e.cstlaId),r=a>=0?t.filter((e,t)=>t!==a):[...t,e];tz(r),tv(r.length?r[r.length-1]:null),tj(!1)}else if("canvas:reselect"===n.type){let e={...n.payload,pageId:t7.current};tv(e),tz(t=>t.length?t.map(t=>t.cstlaId===e.cstlaId?e:t):[e])}else if("canvas:reselectMany"===n.type){let e=(n.payload||[]).map(e=>({...e,pageId:t7.current}));tz(e),tv(e.length?e[e.length-1]:null)}else if("canvas:removed"===n.type)tv(null),tz([]),tj(!1);else if("canvas:dirty"===n.type)tQ.current=!0,t0.current=t7.current,tJ("saving"),t1.current&&(clearTimeout(t1.current),t1.current=null);else if("canvas:editEnd"===n.type)tQ.current=!1,tJ("idle");else if("canvas:commit"===n.type)tb.current||aR(n.payload.html);else if("canvas:history"===n.type)tb.current?(tJ("idle"),aT()):(function(e,t){let a=t0.current||t7.current;if(!a)return;let r=t2.current.get(a);r||(r={stack:[],labels:[],pos:-1},t2.current.set(a,r)),r.pos>=0&&r.stack[r.pos]===e||(r.stack=r.stack.slice(0,r.pos+1),r.labels=r.labels.slice(0,r.pos+1),r.stack.push(e),r.labels.push(t||el("design.history.edited")),r.stack.length>60&&(r.stack.shift(),r.labels.shift()),r.pos=r.stack.length-1,t6(e=>e+1))}(n.payload.html,n.payload.label),aR(n.payload.html),eg(!0));else if("canvas:baseline"===n.type){let e;tb.current||(r=n.payload.html,!(e=t7.current)||t2.current.has(e)||(t2.current.set(e,{stack:[r],labels:[el("design.history.original")],pos:0}),t6(e=>e+1)))}else if("canvas:comment"===n.type)tM(n.payload);else if("canvas:markupDraw"===n.type)tI(n.payload);else if("canvas:markup"===n.type){let e=n.payload;tI(e),tM({xpPct:e.xPct,ypPct:e.yPct,markup:{x:e.xPct,y:e.yPct,w:e.wPct,h:e.hPct}})}else"canvas:edit"===n.type&&aO(n.payload.oldText,n.payload.newText)}return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[]),(0,n.useEffect)(()=>{aE(),td(null),"preview"===eI&&(ti(null),tj(!1))},[eI,ad]),(0,n.useEffect)(()=>{ti(null),td(null)},[eS,ad]),(0,n.useEffect)(()=>{let e=t4.current;if(!e)return;let t=()=>tu({w:Math.max(1,e.clientWidth),h:Math.max(1,e.clientHeight)});t();let a=new ResizeObserver(t);return a.observe(e),()=>a.disconnect()},[al]),(0,n.useEffect)(()=>{"layers"===em&&function(){try{t8.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:requestTree"},"*")}catch{}}()},[em,ad,tK]),(0,n.useEffect)(()=>{let e=e=>{let t=document.activeElement;t&&("INPUT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable)||((e.ctrlKey||e.metaKey)&&("z"===e.key||"Z"===e.key)?(e.preventDefault(),e.shiftKey?aA():aP()):(e.ctrlKey||e.metaKey)&&("y"===e.key||"Y"===e.key)?(e.preventDefault(),aA()):"Escape"===e.key&&(tz([]),tv(null),tj(!1)))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),(0,n.useEffect)(()=>{tw.current=ty},[ty]);let aS=e=>eT(t=>({...t,...e}));function aC(e,t,a=""){let n=String(eM[t]??"");return(0,r.jsxs)("div",{className:"dz-trow",children:[(0,r.jsx)("label",{children:e}),(0,r.jsxs)("div",{className:"dz-colorrow",children:[(0,r.jsx)("input",{type:"color",value:n||a||"#888888",onChange:e=>aS({[t]:e.target.value})}),(0,r.jsx)("input",{type:"text",value:n,placeholder:a||el("design.styles.auto"),spellCheck:!1,onChange:e=>aS({[t]:e.target.value})})]})]},String(t))}function aI(e,t,a,n,s,i=""){let o=Number(eM[t]??0);return(0,r.jsxs)("div",{className:"dz-trow",children:[(0,r.jsxs)("label",{children:[e,(0,r.jsxs)("span",{className:"v",children:[o,i]})]}),(0,r.jsx)("input",{type:"range",min:a,max:n,step:s,value:o,onChange:e=>aS({[t]:Number(e.target.value)})})]},String(t))}function aE(){try{t8.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:setMode",mode:t9.current},"*")}catch{}}function aM(){let e=ae.current;try{let t,a;t8.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:applyTokens",tokens:{accent:e.accent,accentFg:e.accentFg||(t=e.accent.replace("#",""),a=parseInt(3===t.length?t.split("").map(e=>e+e).join(""):t,16),(.299*(a>>16&255)+.587*(a>>8&255)+.114*(255&a))/255>.6?"#15171c":"#ffffff"),secondary:e.secondary,surface:e.surface,success:e.success,warning:e.warning,danger:e.danger,font:e.font,headingFont:e.headingFont,fontWeight:e.fontWeight,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing,radius:e.radius,borderWidth:e.borderWidth,borderColor:e.borderColor,shadow:e.shadow,space:e.density,containerWidth:e.containerWidth,motionMs:e.motionMs,ease:e.ease,fontScale:e.fontScale,theme:e.theme}},"*")}catch{}}function aT(){t1.current&&clearTimeout(t1.current),t1.current=setTimeout(()=>{tQ.current=!1,t0.current="",tJ("idle"),t1.current=null},1400)}function aR(e){let t=t0.current||t7.current;t&&z(t,e).then(e=>{e.ok?(tJ("saved"),tV(e=>e+1)):(tJ("idle"),aW(e.error||el("design.toast.couldNotSaveEdit"))),aT()})}function aD(e,t){let a=t.stack[t.pos];tv(null),tj(!1),tQ.current=!0,t0.current=e,tJ("saving"),t1.current&&(clearTimeout(t1.current),t1.current=null);try{t8.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:setBody",html:a},"*")}catch{}z(e,a).then(()=>{tJ("saved"),tV(e=>e+1),aT()}),t6(e=>e+1)}function aP(){let e=t7.current,t=t2.current.get(e);t&&!(t.pos<=0)&&(t.pos--,aD(e,t))}function aA(){let e=t7.current,t=t2.current.get(e);t&&!(t.pos>=t.stack.length-1)&&(t.pos++,aD(e,t))}async function aL(){let e=t7.current;if(!e||!al)return;eA(!0);let t=await w(e);eA(!1),t.ok?(aW(el("design.toast.savedCheckpoint",{label:t.label??""})),tV(e=>e+1)):aW(t.error||el("design.toast.couldNotSaveCheckpoint"))}async function aO(e,t){let a=t7.current;if(a&&e!==t)if((await k(a,e,t)).ok){let e=await g(a);e.ok&&null!=e.html&&eQ(e.html),aW(el("design.toast.editApplied"))}else aW(el("design.toast.sendingEdit")),e7(!0),h(`On screen ${a}, change the text "${e}" to "${t}".`)}function aW(e){e$(e),setTimeout(()=>e$(t=>t===e?"":t),2400)}async function a$(e){if(!e)return;let t=Array.from(e).filter(e=>e instanceof File);if(!t.length)return;eZ("");let a=t.slice(0,Math.max(0,6-eH.length));if(!a.length)return void eZ(el("design.toast.upTo6"));let r=new FormData;for(let e of a)r.append("files",e);eY(!0);try{let e=await fetch("/api/upload",{method:"POST",body:r}),t=await e.json();if(!e.ok||!t.ok)return void eZ(t.error||el("design.toast.uploadFailed"));eF(e=>[...e,...t.attachments].slice(0,6))}catch{eZ(el("design.toast.uploadFailed"))}finally{eY(!1),e_.current&&(e_.current.value="")}}function aH(e){let t=(e??eR).trim();if(!t&&!eH.length&&!tN||e9)return;e7(!0);let a=eH.slice();eD(""),eF([]),eZ(""),tS(null),h(t||(tN?"Adjust this element.":"Use the attached image(s) as the visual reference."),a,tN??void 0).then(e=>{e.ok||(aW(e.error||el("design.toast.couldNotStart")),e7(!1))})}async function aF(){eA(!0);let e=await j();(eA(!1),e.ok)?(ep("approved"),aW(el("design.toast.designApproved")),ed.refresh()):aW(e.error||el("design.toast.approveFailed"))}async function aU(){eA(!0);let e=await N();(eA(!1),e.ok)?(ep("approved"),eg(!1),e7(!0),eh("docs"),aW(el("design.toast.sentToExec"))):aW(e.error||el("design.toast.couldNotSendExec"))}async function aB(){eA(!0);let e=await S();(eA(!1),e.ok)?(e7(!0),eh("docs"),aW("Resuming handoff — Grace is finishing the documentation, then Ada plans it.")):aW(e.error||"Couldn't resume the handoff.")}async function aX(){eA(!0);let e=await C();if(eA(!1),!e.ok)return void aW(e.error||el("design.toast.buildFailed"));let t=e.built.reduce((e,t)=>e+t.before,0),a=e.built.reduce((e,t)=>e+t.after,0),r=t?Math.round((1-a/t)*100):0,n=e.built.filter(e=>e.obfuscated).length;aW(el("design.toast.built",{count:e.built.length,plural:1===e.built.length?"":"s",pct:r,obf:n?el("design.toast.builtObf",{n:n}):""})),ed.refresh()}async function aY(e=!1){if(!tE){tM(null),tR(""),tI(null);return}if(tE.markup){let t=tT.trim(),a=tE.markup;if(await I(t7.current,a,t),tM(null),tR(""),tI(null),tV(e=>e+1),eh("comments"),e){e7(!0);let e=ei(a);h(`On screen ${t7.current}, I marked a region for review (${e}).${t?` My note: "${t}"`:" Please review and refine it."} Update the screen accordingly.`)}return}if(!tT.trim()){tM(null),tR("");return}let t=tE.selection??tf,a=t?{...t,pageId:t7.current}:void 0;await E(t7.current,tE.xpPct,tE.ypPct,tT.trim(),a),tM(null),tR(""),tV(e=>e+1),eh("comments")}let aG=[...e2].sort((e,t)=>(e.createdAt?new Date(e.createdAt).getTime():0)-(t.createdAt?new Date(t.createdAt).getTime():0)).at(-1),aZ=e9||0!==e2.length&&aG?.fromKind!=="agent"?[]:function(e,t,a){let r=[],n=e=>(e??"").replace(/\s+/g," ").replace(/^[-•*\s]+/,"").replace(/[.:;,!?]+$/,"").trim(),s=(e,t)=>{let a=n(e);a.length>=2&&a.length<=42&&!r.some(e=>e.label.toLowerCase()===a.toLowerCase())&&r.push({label:a?a.charAt(0).toUpperCase()+a.slice(1):a,prompt:t})},i=[...e].reverse().find(e=>"agent"===e.fromKind&&e.text);if(i?.text)for(let e of i.text.matchAll(/\*\*(.+?)\*\*/g)){let t=n(e[1]);if(t.length<2||t.length>42||ee.test(t)||(t.match(/\s+/g)||[]).length>6||s(t,t),r.length>=4)break}for(let[e,n]of t.designMockFiles.some(e=>/\.html?$/i.test(e))?et:ea)if(s(a(e),n),r.length>=4)break;return r.slice(0,4)}(e2,t,el),a_=e?{id:e.id,handle:e.handle,name:e.name,role:"Frontend",color:e.color,image:e.image??null,adapter:"claude",status:"idle",health:null}:null,aK=a_?[a_]:[],aV={};for(let e of e6)(aV[e.runId]??=[]).push(e);let aq=new Set(e2.map(e=>e.id)),aJ=Object.entries(aV).filter(([e])=>!aq.has(e)),aQ=e9||aJ.length>0,a0=tD.filter(e=>e.pageKey===ad&&!en(e)),a1=tD.filter(e=>e.pageKey===ad&&en(e)),a2=[];a2.push(["layers",el("design.tab.layers")],["screens",el("design.tab.screens")],["docs",el("design.tab.docs")],["styles",el("design.tab.styles")],["history",el("design.tab.history")],["comments",`${el("design.tab.comments")}${a0.length?" "+a0.length:""}`],["versions",`${el("design.tab.versions")}${tA.length?" "+tA.length:""}`]);let a5=a2.some(([e])=>e===em)?em:"screens",a6=ts?ab(ts):null,a8=tf?ab(tf.boundingBox):null;return(0,r.jsxs)("div",{className:"dz-wrap",children:[ex?(0,r.jsxs)("div",{className:"dz-chat",children:[(0,r.jsxs)("div",{className:"dz-chat-head",children:[(0,r.jsx)(d.e,{name:e?.name||"Grace",color:e?.color||"#84aef5",image:e?.image,size:28}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"dz-ch-t",children:[e?.name||"Grace"," \xb7 ",el("design.chat.role")]}),(0,r.jsx)("div",{className:"dz-ch-s",children:el("design.chat.subtitle")})]}),aQ&&(0,r.jsxs)("span",{className:"dz-live",children:[(0,r.jsx)("span",{className:"dot"})," ",el("design.chat.live")]}),(0,r.jsx)("button",{className:"dz-collapse-btn",title:el("design.chat.collapse"),onClick:()=>eb(!1),children:(0,r.jsx)(o.I,{name:"chevronLeft",size:15})})]}),t$&&(0,r.jsxs)("div",{className:"ctx-bar",children:[(0,r.jsx)(W.m,{stat:t$,onCompact:ak,compacting:tF}),(0,r.jsx)("span",{})]}),(0,r.jsx)(l.H8,{msgs:e2,typing:e9&&a_?[a_.handle]:[],agents:aK,byRun:aV,liveRuns:aJ,loading:e4,markdownAgent:!0,avatarSize:28,emptyHint:el("design.chat.emptyHint")}),(0,r.jsxs)("div",{className:"dz-composer"+(eU?" drag":""),onDragOver:e=>{e.preventDefault(),eB(!0)},onDragLeave:e=>{e.preventDefault(),eB(!1)},onDrop:e=>{e.preventDefault(),eB(!1),a$(e.dataTransfer.files)},children:[!ao&&aZ.length>0&&!tN&&(0,r.jsx)("div",{className:"dz-chips",children:aZ.map(e=>(0,r.jsx)("span",{className:"dz-chip",onClick:()=>aH(e.prompt),children:e.label},e.label))}),tN&&(0,r.jsxs)("div",{className:"dz-attach",children:[(0,r.jsx)("span",{className:"sw",style:{background:eM.accent}})," ",el("design.composer.elementLabel")," ",(0,r.jsx)("b",{style:{fontWeight:700},children:tN.componentName}),(0,r.jsx)("span",{className:"x",onClick:()=>tS(null),children:(0,r.jsx)(o.I,{name:"close",size:12})})]}),eG&&(0,r.jsx)("div",{className:"dz-uperr",children:eG}),eH.length>0&&(0,r.jsx)("div",{className:"dz-atts",children:eH.map((e,t)=>(0,r.jsxs)("span",{className:"dz-att",children:[e.type.startsWith("image/")&&(0,r.jsx)("img",{src:`/api/upload?path=${encodeURIComponent(e.path)}`,alt:""}),(0,r.jsx)("span",{className:"nm",children:e.name}),(0,r.jsx)("span",{className:"rm",title:el("design.composer.remove"),onClick:()=>eF(e=>e.filter((e,a)=>a!==t)),children:(0,r.jsx)(o.I,{name:"close",size:11})})]},e.path))}),(0,r.jsxs)("div",{className:"dz-input",children:[(0,r.jsx)("button",{className:"dz-clip",disabled:e9||eX,title:el("design.composer.attach"),onClick:()=>e_.current?.click(),children:(0,r.jsx)(o.I,{name:eX?"refresh":"add",size:15,className:eX?"sync-spin":""})}),(0,r.jsx)("input",{placeholder:tN?el("design.composer.changePlaceholder",{name:tN.componentName}):el("design.composer.placeholder"),value:eR,disabled:e9,onChange:e=>eD(e.target.value),onKeyDown:e=>{"Enter"===e.key&&aH()},onPaste:function(e){let t=Array.from(e.clipboardData?.items||[]).filter(e=>"file"===e.kind&&e.type.startsWith("image/")).map(e=>e.getAsFile()).filter(e=>!!e);t.length&&(e.preventDefault(),a$(t))}}),(0,r.jsx)("button",{className:"dz-send",disabled:e9||!eR.trim()&&!eH.length&&!tN,onClick:()=>aH(),children:(0,r.jsx)(o.I,{name:e9?"refresh":"send",size:15,className:e9?"sync-spin":""})})]}),(0,r.jsx)("input",{ref:e_,type:"file",accept:"image/*,.pdf",multiple:!0,style:{display:"none"},onChange:e=>a$(e.target.files)})]})]}):(0,r.jsxs)("div",{className:"dz-strip left",onClick:()=>eb(!0),title:el("design.chat.expand"),children:[(0,r.jsx)(o.I,{name:"chevronRight",size:16}),(0,r.jsx)(o.I,{name:"chat",size:16}),aQ&&(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:"var(--accent)"}})]}),(0,r.jsxs)("div",{className:"dz-center",children:[t.handoffPending&&(0,r.jsxs)("div",{className:"dz-approve-banner",style:{background:"linear-gradient(90deg,rgba(224,164,78,.20),rgba(224,164,78,.03))"},children:[(0,r.jsx)("div",{className:"dz-ab-ic",style:{background:"rgba(224,164,78,.22)",color:"var(--accent)"},children:(0,r.jsx)(o.I,{name:aQ?"refresh":"warn",size:17,className:aQ?"sync-spin":""})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:aQ?el("design.handoff.finishing"):el("design.handoff.interrupted")}),(0,r.jsx)("div",{className:"dz-ab-s",children:aQ?el("design.handoff.finishingSub"):el("design.handoff.interruptedSub")})]}),!aQ&&(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn accent",disabled:eP,onClick:aB,children:[(0,r.jsx)(o.I,{name:eP?"refresh":"sync",size:13,className:eP?"sync-spin":""})," ",el("design.handoff.resume")]})})]}),t.handoffDone&&!t.handoffPending&&(0,r.jsxs)("div",{className:"dz-approve-banner",style:{background:eu?"linear-gradient(90deg,rgba(224,164,78,.22),rgba(224,164,78,.03))":"linear-gradient(90deg,rgba(74,165,114,.20),rgba(74,165,114,.03))"},children:[(0,r.jsx)("div",{className:"dz-ab-ic",style:{background:eu?"rgba(224,164,78,.22)":"rgba(74,165,114,.22)",color:eu?"var(--accent)":"#3fa971"},children:(0,r.jsx)(o.I,{name:eu?"edit":"goto",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:eu?"Design updated \xb7 send it to Ada":"Handed off to execution \xb7 Ada is building"}),(0,r.jsx)("div",{className:"dz-ab-s",children:eu?"You edited the design after the last hand-off — send the update so Ada applies it on top (backend wiring preserved).":"This design is the real frontend. Keep refining it with Grace — re-send to push an update (engineers&apos; backend wiring is preserved)."})]}),(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn accent"+(eu?" dz-pulse":""),disabled:eP,onClick:aU,children:[(0,r.jsx)(o.I,{name:eP?"refresh":eu?"goto":"sync",size:13,className:eP?"sync-spin":""})," ",eu?"Send update to execution":"Re-send update"]})})]}),ao&&!t.handoffPending&&!t.handoffDone&&(0,r.jsxs)("div",{className:"dz-approve-banner",children:[(0,r.jsx)("div",{className:"dz-ab-ic",children:(0,r.jsx)(o.I,{name:eu?"edit":"check",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:eu?"Design updated \xb7 ready to send":el("design.banner.approvedTitle")}),(0,r.jsx)("div",{className:"dz-ab-s",children:eu?"You edited the approved design — send it to execution to push the update.":el("design.banner.approvedSub")})]}),(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn accent"+(eu?" dz-pulse":""),disabled:eP,onClick:aU,children:[(0,r.jsx)(o.I,{name:eP?"refresh":"goto",size:13,className:eP?"sync-spin":""})," ",eu?"Send update to execution":el("design.banner.sendToExecution")]})})]}),!ao&&t.gatePending&&(0,r.jsxs)("div",{className:"dz-approve-banner",style:{background:"linear-gradient(90deg,rgba(99,102,241,.16),rgba(99,102,241,.02))"},children:[(0,r.jsx)("div",{className:"dz-ab-ic",style:{background:"rgba(99,102,241,.18)",color:"#6366f1"},children:(0,r.jsx)(o.I,{name:"bot",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:el("design.banner.adaWaitingTitle")}),(0,r.jsxs)("div",{className:"dz-ab-s",children:[el("design.banner.adaWaitingPre")," ",(0,r.jsx)("b",{children:el("design.banner.adaWaitingAction")})," ",el("design.banner.adaWaitingPost")," ",aQ?el("design.banner.gridSettingUp"):el("design.banner.gridStart")]})]}),(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn",disabled:e9,onClick:()=>{e7(!0),y().then(e=>{e.ok||e7(!1)})},children:[(0,r.jsx)(o.I,{name:e9?"refresh":"skill",size:13,className:e9?"sync-spin":""})," ",el("design.banner.setUpWithGrace")]})})]}),(0,r.jsxs)("div",{className:"dz-bar",children:[(0,r.jsx)("div",{className:"dz-modes",children:V.map(e=>(0,r.jsxs)("span",{className:"dz-mode "+(eI===e.id?"on":""),onClick:()=>eE(e.id),title:el("design.mode."+e.id),children:[(0,r.jsx)(o.I,{name:e.ic,size:13})," ",el("design.mode."+e.id)]},e.id))}),as.length>0&&(0,r.jsxs)("div",{className:"dz-seg",children:[(0,r.jsx)("button",{onClick:aP,disabled:!ay,title:el("design.toolbar.undo"),children:(0,r.jsx)(o.I,{name:"chevronLeft",size:13})}),(0,r.jsx)("button",{onClick:aA,disabled:!az,title:el("design.toolbar.redo"),children:(0,r.jsx)(o.I,{name:"chevronRight",size:13})}),(0,r.jsxs)("button",{onClick:function(){let e=t7.current,t=t2.current.get(e);t&&!(t.pos<=0)&&(t.pos=0,aD(e,t),aW(el("design.toast.reset")))},disabled:!ay,title:el("design.toolbar.resetTitle"),children:[(0,r.jsx)(o.I,{name:"repeat",size:13})," ",el("design.toolbar.reset")]}),(0,r.jsxs)("button",{onClick:aL,disabled:eP||!al,title:el("design.toolbar.saveTitle"),children:[(0,r.jsx)(o.I,{name:"check",size:13})," ",el("design.toolbar.save")]}),(0,r.jsxs)("button",{onClick:function(){let e=t7.current;e&&(e7(!0),h(`I manually edited the screen ${e} directly on the canvas — it now has inline-style overrides, transform:translate offsets and data-cstla-id/data-cstla-tx attributes added by the visual editor. Refactor it into CLEAN, token-driven, professional CSS per the CSS STANDARD: fold the inline styles into the <style> sheet under semantic BEM-ish classes, turn transform offsets into real layout (flex/grid/margins/gap), drop every data-cstla-* attribute, and keep the screen VISUALLY IDENTICAL. Then summarize what you cleaned up.`))},title:el("design.toolbar.cleanUpTitle"),children:[(0,r.jsx)(o.I,{name:"skill",size:13})," ",el("design.toolbar.cleanUp")]})]}),(0,r.jsx)("div",{className:"dz-spacer"}),(0,r.jsx)("div",{className:"dz-seg",children:[50,75,100].map(e=>(0,r.jsxs)("button",{className:eS===e?"on":"",onClick:()=>eC(e),title:el("design.toolbar.zoom",{pct:e}),children:[e,"%"]},e))}),(0,r.jsxs)("div",{className:"dz-seg",children:[(0,r.jsx)("button",{className:"desktop"===ey&&null==ew?"on":"",onClick:()=>{ez("desktop"),ek(null)},title:el("design.toolbar.desktop"),children:(0,r.jsx)(o.I,{name:"sidebarIcon",size:13})}),(0,r.jsx)("button",{className:"tablet"===ey&&null==ew?"on":"",onClick:()=>{ez("tablet"),ek(null)},title:el("design.toolbar.tabletTitle"),children:el("design.toolbar.tablet")}),(0,r.jsx)("button",{className:"mobile"===ey&&null==ew?"on":"",onClick:()=>{ez("mobile"),ek(null)},title:el("design.toolbar.mobileTitle"),children:el("design.toolbar.mobile")}),(0,r.jsx)("input",{className:"dz-bpw",type:"number",min:320,max:1920,placeholder:"px",value:ew??"",title:el("design.toolbar.customWidth"),onChange:e=>{let t=parseInt(e.target.value,10);ek(Number.isFinite(t)&&t>0?Math.max(320,Math.min(1920,t)):null)}})]}),(0,r.jsxs)("div",{className:"dz-seg",children:[(0,r.jsx)("button",{className:"dark"===eM.theme?"on":"",onClick:()=>eT(e=>({...e,theme:"dark"})),title:el("design.toolbar.dark"),children:(0,r.jsx)(o.I,{name:"moon",size:13})}),(0,r.jsx)("button",{className:"light"===eM.theme?"on":"",onClick:()=>eT(e=>({...e,theme:"light"})),title:el("design.toolbar.light"),children:(0,r.jsx)(o.I,{name:"sun",size:13})})]}),(0,r.jsxs)("div",{className:"dz-seg",title:el("design.mode2.tip"),children:[(0,r.jsxs)("button",{className:ej?"":"on",onClick:()=>eN(!1),children:[(0,r.jsx)(o.I,{name:"grid",size:13})," ",el("design.mode2.design")]}),(0,r.jsxs)("button",{className:ej?"on":"",onClick:()=>eN(!0),children:[(0,r.jsx)(o.I,{name:"play",size:13})," ",el("design.mode2.live")]})]}),th?(0,r.jsxs)("span",{className:"dz-save preview",title:el("design.toolbar.previewOnlyTitle"),children:[(0,r.jsx)(o.I,{name:"play",size:12})," ",el("design.toolbar.previewOnly")]}):"idle"!==tq&&(0,r.jsxs)("span",{className:"dz-save "+tq,title:"saving"===tq?el("design.toolbar.savingTitle"):el("design.toolbar.savedTitle"),children:[(0,r.jsx)(o.I,{name:"saving"===tq?"refresh":"check",size:12,className:"saving"===tq?"sync-spin":""})," ","saving"===tq?el("design.toolbar.saving"):el("design.toolbar.saved")]}),(0,r.jsxs)("button",{className:"dz-mini-btn",onClick:()=>eO(!0),children:[(0,r.jsx)(o.I,{name:"arrowDown",size:13})," ",el("design.toolbar.export")]}),(0,r.jsxs)("button",{className:"dz-mini-btn accent",disabled:eP,onClick:aF,title:ao?"Re-approve the current design as the official reference":void 0,children:[(0,r.jsx)(o.I,{name:"check",size:13})," ",ao?"Approve changes":el("design.toolbar.approve")]})]}),as.length>0&&(0,r.jsxs)("div",{className:"dz-pagestrip",children:[(0,r.jsx)("div",{className:"dz-ptabs",children:as.slice(0,8).map(e=>(0,r.jsxs)("span",{className:"dz-ptab "+(ad===e?"active":""),onClick:()=>{eq(e),tv(null),tj(!1)},children:[(0,r.jsx)(o.I,{name:"grid",size:13})," ",J(e)]},e))}),(0,r.jsxs)("span",{className:"dz-hint",children:[(0,r.jsx)(o.I,{name:V.find(e=>e.id===eI).ic,size:12})," ","edit"===eI?"Click to select \xb7 double-click to edit text (the design stays faithful to the mock — no move/resize/add)":"select"===eI?"Click to select an element \xb7 switch to Edit to edit its text":el("design.hint."+eI)]})]}),(0,r.jsxs)("div",{className:"dz-canvas"+(al?` has-screen ${au?"framed":"desktop"}`:""),ref:t4,children:[ej&&(0,r.jsx)(Y,{onAskGrace:e=>aH(e),asking:e9}),al?(0,r.jsxs)("div",{className:"dz-artwrap",style:{width:ag*ac,height:am*ac},children:[(0,r.jsxs)("div",{className:"dz-art","data-viewport":ey,style:{width:ag,height:am,transform:`scale(${ac})`,transformOrigin:"top left"},children:[(0,r.jsx)("iframe",{ref:t8,title:el("design.canvas.previewTitle"),sandbox:"allow-scripts",srcDoc:($=eJ??"",H=`<script data-cstla-instrument>${A}</script>`,/<\/body>/i.test($)?$.replace(/<\/body>/i,`${H}</body>`):$+H),onLoad:()=>{aE(),aM()},style:{width:"100%",height:"100%",border:"none",background:"#fff",display:"block"}}),(0,r.jsxs)("div",{className:"dz-ovl",children:[to&&"edit"===eI&&(0,r.jsxs)(r.Fragment,{children:[to.v.map((e,t)=>(0,r.jsx)("div",{className:"dz-guide v",style:{left:e-tl.scrollX}},"gv"+t)),to.h.map((e,t)=>(0,r.jsx)("div",{className:"dz-guide h",style:{top:e-tl.scrollY}},"gh"+t))]}),ts&&a6&&!tf&&"preview"!==eI&&"markup"!==eI&&"comments"!==eI&&(0,r.jsx)("div",{className:"dz-hl",style:a6,children:(0,r.jsx)("span",{className:"tag",children:ts.label})}),"preview"!==eI&&ty.map(e=>(0,r.jsx)("div",{className:"dz-selbox",style:ab(e.boundingBox)},e.cstlaId)),a1.map(e=>(0,r.jsx)("div",{className:"dz-mk",style:af(es(e))},e.id)),tC&&(0,r.jsx)("div",{className:"dz-mk",style:af({x:tC.xPct,y:tC.yPct,w:tC.wPct,h:tC.hPct})}),a0.map((e,t)=>(0,r.jsx)("div",{className:"dz-pin",style:av(e.xp,e.yp),onClick:e=>{e.stopPropagation(),eh("comments")},children:t+1},e.id))]})]}),tk&&tf&&a8&&"preview"!==eI&&ty.length<=1&&(0,r.jsxs)("div",{className:"dz-ctx",style:{left:Math.max(6,a8.left*ac),top:Math.max(4,a8.top*ac-40)},onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("button",{className:"ask",onClick:()=>{tS(tf),tj(!1),aW(el("design.toast.elementAttached"))},children:[(0,r.jsx)(o.I,{name:"bot",size:13})," ",el("design.ctx.askFront")]}),(0,r.jsx)("button",{onClick:()=>tj(!1),children:(0,r.jsx)(o.I,{name:"close",size:13})})]}),tE&&(0,r.jsxs)("div",{className:"dz-cpop",style:{left:Math.max(6,Math.min((F=av(tE.xpPct,tE.ypPct)).left*ac,Math.max(6,ag*ac-226))),top:Math.max(6,Math.min(F.top*ac,Math.max(6,am*ac-120)))},onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("textarea",{rows:3,autoFocus:!0,placeholder:tE.markup?el("design.cmt.markupPlaceholder"):el("design.cmt.pointPlaceholder"),value:tT,onChange:e=>tR(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),aY())}}),tE.markup?(0,r.jsxs)("div",{className:"row",style:{flexDirection:"column",alignItems:"stretch"},children:[(0,r.jsxs)("button",{className:"dz-mini-btn accent",style:{justifyContent:"center"},onClick:()=>aY(!0),children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",el("design.cmt.markAskGrace")]}),(0,r.jsx)("button",{className:"dz-mini-btn",style:{justifyContent:"center"},onClick:()=>aY(!1),children:el("design.cmt.markRegion")}),(0,r.jsx)("button",{className:"dz-mini-btn",style:{justifyContent:"center"},onClick:()=>{tM(null),tR(""),tI(null)},children:el("design.cmt.cancel")})]}):(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)("button",{className:"dz-mini-btn",onClick:()=>{tM(null),tR(""),tI(null)},children:el("design.cmt.cancel")}),(0,r.jsx)("button",{className:"dz-mini-btn accent",onClick:()=>aY(),children:el("design.cmt.comment")})]})]}),aQ&&(0,r.jsxs)("div",{className:"dz-build-bar",children:[(0,r.jsx)(o.I,{name:"skill",size:13})," ",el("design.canvas.working")," ",(0,r.jsx)("span",{className:"sh"})]})]}):(0,r.jsx)("div",{className:"dz-emptywrap",children:e0?(0,r.jsxs)("div",{className:"dz-empty",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"error",size:22})}),(0,r.jsx)("div",{className:"t",children:el("design.empty.loadErrTitle")}),(0,r.jsx)("div",{className:"s",children:e0})]}):0===as.length&&ai.length>0?(0,r.jsxs)("div",{className:"dz-empty",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"doc",size:22})}),(0,r.jsx)("div",{className:"t",children:el("design.empty.componentsTitle",{count:ai.length,plural:ai.length>1?"s":""})}),(0,r.jsx)("div",{className:"s",children:el("design.empty.componentsBody")})]}):(0,r.jsxs)("div",{className:"dz-empty",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"grid",size:22})}),(0,r.jsx)("div",{className:"t",children:el("design.empty.noPrototypeTitle")}),(0,r.jsxs)("div",{className:"s",children:[el("design.empty.noPrototypePre")," ",(0,r.jsx)("span",{className:"mono",children:"design-mock/"}),". ",el("design.empty.noPrototypePost")]})]})})]})]}),ef?(0,r.jsxs)("div",{className:"dz-rail",children:[(0,r.jsxs)("div",{className:"dz-rail-tabs",children:[a2.map(([e,t])=>(0,r.jsx)("div",{className:"dz-rt "+(a5===e?"active":""),onClick:()=>eh(e),children:t},e)),(0,r.jsx)("button",{className:"dz-collapse-btn",title:el("design.rail.collapse"),onClick:()=>ev(!1),children:(0,r.jsx)(o.I,{name:"chevronRight",size:15})})]}),(0,r.jsxs)("div",{className:"dz-rail-body",children:["layers"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.layers.title")}),al?0===tg.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.layers.reading")}):tg.map(e=>(0,r.jsxs)("div",{className:"dz-layer"+(tf?.nodePath===e.path?" active":""),style:{paddingLeft:8+11*e.depth},onClick:()=>(function(e){try{t8.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:selectByPath",path:e},"*")}catch{}})(e.path),title:`<${e.tag}>`,children:[(0,r.jsx)(o.I,{name:e.kids>0?"grid":"dot",size:10}),(0,r.jsx)("span",{className:"lt",children:e.label}),(0,r.jsxs)("span",{className:"lg",children:[e.tag,e.kids>0?` \xb7 ${e.kids}`:""]})]},e.path)):(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.layers.openScreen")})]}),"screens"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.screens.title")}),0===as.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.screens.empty")}):as.map(e=>(0,r.jsxs)("div",{className:"dz-row "+(ad===e?"active":""),onClick:()=>{eq(e),tv(null),tj(!1)},children:[(0,r.jsx)("div",{className:"dz-r-ic",children:(0,r.jsx)(o.I,{name:"grid",size:14})}),(0,r.jsxs)("div",{style:{minWidth:0},children:[(0,r.jsx)("div",{className:"dz-r-t",children:J(e)}),(0,r.jsx)("div",{className:"dz-r-s",children:e.replace(/^design-mock\//,"")})]}),ad===e&&(0,r.jsx)("span",{className:"dz-r-meta",children:el("design.screens.active")})]},e)),(0,r.jsxs)("div",{className:"dz-addrow",onClick:()=>aH("Build a new screen for the prototype."),children:[(0,r.jsx)(o.I,{name:"add",size:13})," ",el("design.screens.newScreen")]}),ai.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:16},children:el("design.screens.components",{count:ai.length})}),(0,r.jsx)("div",{className:"dz-comp-grid",children:ai.slice(0,8).map((e,t)=>(0,r.jsxs)("div",{className:"dz-comp",children:[(0,r.jsx)("div",{style:{height:30,borderRadius:7,background:t%2?q(eM.accent,.16):"var(--bg-app)",border:"1px solid var(--border)",display:"grid",placeItems:"center",color:"var(--accent)",fontSize:12},children:"◧"}),(0,r.jsx)("div",{className:"nm",children:(e.split("/").pop()||e).replace(/\.[a-z]+$/i,"")})]},e))})]})]}),"docs"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.docs.title")}),0===tB.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.docs.empty")}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-docnav",children:tB.map(e=>(0,r.jsxs)("div",{className:"dz-doctab "+(tY===e.path?"active":""),onClick:()=>aj(e.path),title:e.label,children:[(0,r.jsx)(o.I,{name:/APPROVED/i.test(e.path)?"check":"doc",size:12}),(0,r.jsx)("span",{children:e.label})]},e.path))}),(0,r.jsx)("div",{className:"dz-docbody md",children:tZ?(0,r.jsx)(D.oz,{remarkPlugins:[P.A],children:tZ}):(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)"},children:el("design.docs.reading")})})]})]}),"styles"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.styles.palette")}),(0,r.jsx)("div",{className:"dz-swatches",children:Z.map(e=>(0,r.jsx)("span",{title:e.name,className:"dz-sw "+(eM.accent===e.c?"on":""),style:{background:e.c},onClick:()=>aS({accent:e.c,accentName:e.name})},e.name))}),aC(el("design.styles.accentCustom"),"accent"),aC(el("design.styles.secondary"),"secondary"),aC(el("design.styles.surface"),"surface"),(0,r.jsxs)("details",{className:"dz-adv",children:[(0,r.jsx)("summary",{children:el("design.styles.semanticColors")}),aC(el("design.styles.success"),"success","#10b981"),aC(el("design.styles.warning"),"warning","#f59e0b"),aC(el("design.styles.danger"),"danger","#ef4444"),aC(el("design.styles.accentText"),"accentFg")]}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.typography")}),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.bodyFont")}),(0,r.jsx)("div",{className:"dz-opt",children:_.map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.fontName===e.n?"on":""),onClick:()=>aS({font:e.s,fontName:e.n}),children:e.n},e.n))}),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.headingFont")}),(0,r.jsx)("div",{className:"dz-opt",children:_.map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.headingFontName===e.n?"on":""),onClick:()=>aS({headingFont:e.s,headingFontName:e.n}),children:e.n},e.n))}),aI(el("design.styles.weight"),"fontWeight",300,800,100),aI(el("design.styles.lineHeight"),"lineHeight",1,2,.05),aI(el("design.styles.letterSpacing"),"letterSpacing",-1,4,.1,"px"),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.textSize")}),(0,r.jsx)("div",{className:"dz-opt",children:[[el("design.styles.sizeSmall"),.9],[el("design.styles.sizeDefault"),1],[el("design.styles.sizeLarge"),1.15]].map(([e,t])=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.fontScale===t?"on":""),onClick:()=>aS({fontScale:t}),children:e},e))}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.shapeDepth")}),(0,r.jsx)("div",{className:"dz-opt",children:K.map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.radius===e.r?"on":""),onClick:()=>aS({radius:e.r}),children:el("design.styles.radius"+e.n)},e.n))}),aI(el("design.styles.radius"),"radius",0,32,1,"px"),aI(el("design.styles.borderWidth"),"borderWidth",0,4,1,"px"),aC(el("design.styles.borderColor"),"borderColor"),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.shadow")}),(0,r.jsx)("div",{className:"dz-opt",children:["none","sm","md","lg"].map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.shadow===e?"on":""),onClick:()=>aS({shadow:e}),children:"none"===e?el("design.styles.shadowNone"):e.toUpperCase()},e))}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.theme")}),(0,r.jsxs)("div",{className:"dz-opt",children:[(0,r.jsx)("span",{className:"dz-pill2 "+("dark"===eM.theme?"on":""),onClick:()=>aS({theme:"dark"}),children:el("design.styles.dark")}),(0,r.jsx)("span",{className:"dz-pill2 "+("light"===eM.theme?"on":""),onClick:()=>aS({theme:"light"}),children:el("design.styles.light")})]}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.spacingLayoutMotion")}),(0,r.jsx)("div",{className:"dz-opt",children:[[el("design.styles.densityCompact"),8],[el("design.styles.densityCozy"),12],[el("design.styles.densityComfy"),16]].map(([e,t])=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.density===t?"on":""),onClick:()=>aS({density:t}),children:e},e))}),aI(el("design.styles.density"),"density",4,28,1,"px"),aI(el("design.styles.containerWidth"),"containerWidth",880,1600,20,"px"),aI(el("design.styles.motionSpeed"),"motionMs",0,600,20,"ms"),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.easing")}),(0,r.jsx)("div",{className:"dz-opt",children:[[el("design.styles.easeEase"),"ease"],[el("design.styles.easeInOut"),"ease-in-out"],[el("design.styles.easeLinear"),"linear"],[el("design.styles.easeSmooth"),"cubic-bezier(.4,0,.2,1)"]].map(([e,t])=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.ease===t?"on":""),onClick:()=>aS({ease:t}),children:e},e))}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.spacingScale")}),(0,r.jsx)("div",{style:{display:"flex",gap:5,alignItems:"flex-end"},children:[.5,1,1.5,2,3,4].map(e=>{let t=Math.round(eM.density*e);return(0,r.jsxs)("div",{style:{textAlign:"center"},children:[(0,r.jsx)("div",{style:{width:20,height:Math.max(3,t),background:q(eM.accent,.5),borderRadius:3}}),(0,r.jsx)("div",{style:{fontSize:9,color:"var(--text-faint)",marginTop:3},children:t})]},e)})}),(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:16,gap:8},children:[(0,r.jsx)("span",{style:{fontSize:10.5,color:"var(--text-faint)"},children:el("design.styles.restyleNote")}),(0,r.jsx)("button",{className:"dz-mini-btn",onClick:()=>aS(er),children:el("design.styles.reset")})]})]}),"comments"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.comments.title")}),0===a0.length&&(0,r.jsxs)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:[el("design.comments.emptyPre")," ",(0,r.jsx)("b",{children:el("design.comments.emptyTool")})," ",el("design.comments.emptyPost")]}),a0.map((e,t)=>(0,r.jsxs)("div",{className:"dz-cmt",children:[(0,r.jsxs)("div",{className:"h",children:[(0,r.jsx)("span",{className:"pin",children:t+1})," ",el("design.comments.comment")," ",(0,r.jsx)("span",{className:"x",onClick:()=>{M(e.id).then(()=>tV(e=>e+1))},children:(0,r.jsx)(o.I,{name:"trash",size:12})})]}),(0,r.jsx)("div",{className:"bd",children:e.body}),e.reply?(0,r.jsxs)("div",{className:"rep",children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",e.reply]}):(0,r.jsxs)("button",{className:"dz-mini-btn",onClick:()=>{e7(!0);let t=e.selection&&"object"==typeof e.selection&&e.selection.componentName?e.selection:void 0;h(`Apply this canvas comment on screen ${ad}${t?` (it is pinned on the ${t.componentName} element)`:""}: "${e.body}"`,void 0,t)},children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",el("design.comments.askGrace")]})]},e.id)),a1.length>0&&(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:14},children:el("design.comments.markedRegions",{count:a1.length})}),a1.map((e,t)=>{let a=e.body&&"(region marked for review)"!==e.body?e.body:"";return(0,r.jsxs)("div",{className:"dz-cmt",children:[(0,r.jsxs)("div",{className:"h",children:[(0,r.jsxs)("span",{className:"pin",children:["M",t+1]})," ",el("design.comments.region")," ",(0,r.jsx)("span",{className:"x",onClick:()=>{M(e.id).then(()=>tV(e=>e+1))},children:(0,r.jsx)(o.I,{name:"trash",size:12})})]}),a&&(0,r.jsx)("div",{className:"bd",children:a}),e.reply?(0,r.jsxs)("div",{className:"rep",children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",e.reply]}):(0,r.jsxs)("button",{className:"dz-mini-btn",onClick:()=>{e7(!0);let t=ei(es(e));h(`On screen ${ad}, I marked a region for review (${t}).${a?` My note: "${a}"`:" Please review and refine it."} Update the screen accordingly.`)},children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",el("design.comments.askGrace")]})]},e.id)})]}),"history"===a5&&(U=t2.current.get(ad),B=U?.pos??-1,X=U?U.labels.map((e,t)=>({lab:e,i:t})):[],(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:U&&U.stack.length>1?el("design.history.pos",{pos:B+1,total:U.stack.length}):el("design.history.title")}),al?X.length<=1?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.history.noEdits")}):(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:X.slice().reverse().map(({lab:e,i:t})=>(0,r.jsxs)("div",{onClick:()=>{let e,a;return e=t7.current,void((a=t2.current.get(e))&&!(t<0)&&!(t>=a.stack.length)&&t!==a.pos&&(a.pos=t,aD(e,a)))},style:{display:"flex",alignItems:"center",gap:8,padding:"7px 9px",borderRadius:8,cursor:"pointer",fontSize:12,background:t===B?"rgba(224,164,78,.12)":"transparent",color:t===B?"var(--accent)":"var(--text-dim)",border:"1px solid "+(t===B?"var(--accent)":"transparent")},children:[(0,r.jsx)("span",{style:{fontVariantNumeric:"tabular-nums",opacity:.6,minWidth:16,textAlign:"right"},children:0===t?"•":t}),(0,r.jsx)("span",{style:{flex:1,fontWeight:t===B?700:500},children:e||el("design.history.edited")}),t===B&&(0,r.jsx)("span",{style:{fontSize:10,fontWeight:700},children:el("design.history.current")})]},t))}):(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)"},children:el("design.history.openScreen")})]})),"versions"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.versions.title")}),0===tA.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.versions.empty")}):tA.map(e=>(0,r.jsxs)("div",{className:"dz-vnode"+(tO===e.id?" active":""),onClick:()=>tW(tO===e.id?null:e.id),title:el("design.versions.revertHint"),children:[(0,r.jsxs)("div",{className:"vt",children:[e.label," ",(0,r.jsx)("span",{className:"dz-tag",children:el("design.versions.files",{count:e.files.length,plural:1===e.files.length?"":"s"})})]}),(0,r.jsx)("div",{className:"vs",children:e.note}),(0,r.jsx)("div",{className:"vtime",children:function(e,t){let a=Math.max(0,Math.round((new Date().getTime()-e)/1e3));if(a<60)return t("design.time.justNow");let r=Math.round(a/60);if(r<60)return t("design.time.minAgo",{n:r});let n=Math.round(r/60);return n<24?t("design.time.hAgo",{n:n}):t("design.time.dAgo",{n:Math.round(n/24)})}(e.createdAt,el)}),tO===e.id&&(0,r.jsxs)("div",{className:"dz-addrow",style:{marginTop:8,padding:"6px"},onClick:t=>{t.stopPropagation(),e.restorable?T(e.id).then(async t=>{if(!t.ok)return void aW(t.error||el("design.toast.restoreFailed"));let a=t7.current;tQ.current=!1,t0.current="",t2.current.delete(a),t6(e=>e+1);let r=await g(a);r.ok&&null!=r.html&&(eQ(r.html),tv(null)),aW(el("design.toast.restored",{label:e.label}))}):(e7(!0),R(e.label,e.note)),tW(null)},children:[(0,r.jsx)(o.I,{name:"refresh",size:12})," ",el("design.versions.revertTo",{label:e.label})]})]},e.id))]})]})]}):(0,r.jsxs)("div",{className:"dz-strip right",onClick:()=>ev(!0),title:el("design.rail.expand"),children:[(0,r.jsx)(o.I,{name:"chevronLeft",size:16}),(0,r.jsx)(o.I,{name:"sidebarIcon",size:16})]}),eL&&(0,r.jsx)("div",{className:"dz-modal-bg",onClick:()=>eO(!1),children:(0,r.jsxs)("div",{className:"dz-modal",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:"dz-modal-h",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"arrowDown",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"t",children:el("design.export.title")}),(0,r.jsx)("div",{className:"s",children:el("design.export.sub")})]}),(0,r.jsx)("div",{className:"x",onClick:()=>eO(!1),children:(0,r.jsx)(o.I,{name:"close",size:16})})]}),(0,r.jsx)("div",{className:"dz-modal-b",children:[[el("design.export.row.screens"),String(as.length)],[el("design.export.row.comments"),String(tD.filter(e=>!en(e)).length)],[el("design.export.row.versions"),String(tA.length)],[el("design.export.row.tokens"),el("design.export.row.tokensVal")],[el("design.export.row.approvedMd"),""],[el("design.export.row.kbRag"),""],[el("design.export.row.adaNotified"),""],[el("design.export.row.planner"),""]].map(e=>(0,r.jsxs)("div",{className:"dz-dl",children:[(0,r.jsx)("span",{className:"ck",children:(0,r.jsx)(o.I,{name:"check",size:11})}),e[0],e[1]&&(0,r.jsx)("span",{className:"n",children:e[1]})]},e[0]))}),(0,r.jsxs)("div",{className:"dz-modal-f",children:[(0,r.jsx)("span",{className:"note",children:el("design.export.note")}),(0,r.jsx)("div",{className:"dz-spacer"}),(0,r.jsxs)("button",{className:"dz-mini-btn",disabled:eP,onClick:aX,children:[(0,r.jsx)(o.I,{name:"cpu",size:13})," ",el("design.export.buildProd")]}),(0,r.jsx)("button",{className:"dz-mini-btn",onClick:()=>eO(!1),children:el("design.export.close")}),(0,r.jsxs)("button",{className:"dz-mini-btn accent",disabled:eP||ao,onClick:()=>{eO(!1),aF()},children:[(0,r.jsx)(o.I,{name:"check",size:13})," ",el("design.export.approveDesign")]})]})]})}),eW&&(0,r.jsx)("div",{className:"dz-flash",children:eW})]})}function ed(e){return(0,r.jsx)(eo,{grace:e.grace,context:e.context,status:e.status,tokens:e.tokens})}},5052:(e,t,a)=>{Promise.resolve().then(a.t.bind(a,3283,23)),Promise.resolve().then(a.bind(a,1882)),Promise.resolve().then(a.bind(a,4210)),Promise.resolve().then(a.bind(a,6588)),Promise.resolve().then(a.bind(a,4414)),Promise.resolve().then(a.bind(a,2578)),Promise.resolve().then(a.bind(a,4942)),Promise.resolve().then(a.bind(a,2444)),Promise.resolve().then(a.bind(a,5787))},7046:(e,t,a)=>{"use strict";a.d(t,{K:()=>n});var r=a(7814);let n=(0,r.createServerReference)("40491c74154aedc3bfa423d1b839aa0e79a0901a39",r.callServer,void 0,r.findSourceMapURL,"previewFrameableAction")},9373:(e,t,a)=>{"use strict";a.d(t,{j:()=>n});var r=a(7814);let n=(0,r.createServerReference)("004d8d9e8033cc5ebc8e4bc28d5a0b17c3a5f1a42c",r.callServer,void 0,r.findSourceMapURL,"devServerStatusAction")}},e=>{e.O(0,[9219,9690,3219,27,8370,2989,6646,6834,7358],()=>e(e.s=5052)),_N_E=e.O()}]);
558
+ `,Z=[{name:"Indigo",c:"#6366f1"},{name:"Violet",c:"#8b5cf6"},{name:"Blue",c:"#3b82f6"},{name:"Sky",c:"#0ea5e9"},{name:"Cyan",c:"#06b6d4"},{name:"Teal",c:"#14b8a6"},{name:"Emerald",c:"#10b981"},{name:"Lime",c:"#84cc16"},{name:"Amber",c:"#f59e0b"},{name:"Orange",c:"#f97316"},{name:"Rose",c:"#f43f5e"},{name:"Pink",c:"#ec4899"}],_=[{n:"Inter",s:"'Inter',system-ui,sans-serif"},{n:"IBM Plex",s:"'IBM Plex Sans',sans-serif"},{n:"Geist",s:"'Geist','Inter',ui-sans-serif,sans-serif"},{n:"System",s:"system-ui,-apple-system,Segoe UI,sans-serif"},{n:"Serif",s:"Georgia,'Times New Roman',serif"},{n:"Mono",s:"ui-monospace,'SF Mono',Menlo,monospace"},{n:"Display",s:"'Poppins','Inter',system-ui,sans-serif"}],K=[{n:"Sharp",r:6},{n:"Soft",r:16},{n:"Round",r:26}],V=[{id:"select",ic:"target"},{id:"edit",ic:"newFile"},{id:"markup",ic:"skill"},{id:"comments",ic:"chat"},{id:"inspect",ic:"search"},{id:"preview",ic:"play"}];function q(e,t){let a=parseInt(e.replace("#",""),16);return`rgba(${a>>16&255},${a>>8&255},${255&a},${t})`}function J(e){return(e.split("/").pop()||e).replace(/\.html?$/i,"")}function Q(e){let t=(e||"").replace(/\\/g,"/"),a=t.toLowerCase().lastIndexOf("design-mock/");return a>=0?t.slice(a):null}let ee=/\b(remov(i|ido|eu|idos)|adicion(ei|ado|ou|ados)|cri(ei|ado|ou|ados)|corrig(i|ido|iu)|ajust(ei|ado|ou)|atualiz(ei|ado|ou)|mud(ei|ado|ou)|delet(ei|ado|ou)|limp(ei|ado|ou)|troqu(ei)|troc(ado|ou)|inseri|inserido|fiz|feit[oa]s?|pront[oa]s?|conclu(i|í|ido|ída)|finaliz(ei|ado|ou)|implement(ei|ado|ou)|ger(ei|ado|ou)|salv(ei|o|ado)|apliqu(ei)|aplic(ado|ou)|added|removed|deleted|created|fixed|updated|changed|cleaned|adjusted|renamed|moved|made|done|ready|here'?s|i'?ve|i\s+have|i\s+just|i\s+made)\b/i,et=[["design.sugg.adjustPalette","Adjust the color palette"],["design.sugg.improveSpacing","Improve the spacing"],["design.sugg.mobileVersion","Create a mobile version"],["design.sugg.darkTheme","Try a dark theme"],["design.sugg.addSection","Add a section"],["design.sugg.newScreen","Create a new screen"],["design.sugg.visualDocs","Generate the visual docs"],["design.sugg.askReview","Ask Grace for a review"],["design.sugg.approve","Approve design"],["design.sugg.sendExec","Send to execution"]],ea=[["design.sugg.firstScreen","Build the first screen"],["design.sugg.proposePalette","Propose a color palette"],["design.sugg.defineTypography","Define the typography"],["design.sugg.mainFlow","Design the main flow"],["design.sugg.heroSection","Add a hero section"],["design.sugg.mobileVersion","Create a mobile version"]],er={accent:"#6366f1",accentName:"Indigo",accentFg:"",secondary:"",surface:"",success:"",warning:"",danger:"",theme:"dark",font:_[0].s,fontName:"Inter",headingFont:_[0].s,headingFontName:"Inter",fontWeight:400,lineHeight:1.5,letterSpacing:0,fontScale:1,radius:16,borderWidth:1,borderColor:"",shadow:"md",density:12,containerWidth:1200,motionMs:200,ease:"ease"};function en(e){return!!(e.selection&&"object"==typeof e.selection&&"markup"===e.selection.kind)}function es(e){return e.selection.rect}function ei(e){let t=e.x+e.w/2,a=e.y+e.h/2;return`${a<33?"top":a<66?"middle":"bottom"}-${t<33?"left":t<66?"center":"right"} area, roughly ${Math.round(e.w)}%\xd7${Math.round(e.h)}% of the page`}function eo({grace:e,context:t,status:a,tokens:u}){var $;let H,F,U,B,X,ed=(0,s.useRouter)(),el=(0,i.k)(),[ec,ep]=(0,n.useState)("approved"===a||t.approved?"approved":"building"),[eu,eg]=(0,n.useState)(!1),[em,eh]=(0,n.useState)("screens"),[ex,eb]=(0,n.useState)(!0),[ef,ev]=(0,n.useState)(!0),[ey,ez]=(0,n.useState)("desktop"),[ew,ek]=(0,n.useState)(null),[ej,eN]=(0,n.useState)(!1),[eS,eC]=(0,n.useState)(100),[eI,eE]=(0,n.useState)("select"),[eM,eT]=(0,n.useState)({...er,...u??{}}),[eR,eD]=(0,n.useState)(""),[eP,eA]=(0,n.useState)(!1),[eL,eO]=(0,n.useState)(!1),[eW,e$]=(0,n.useState)(""),[eH,eF]=(0,n.useState)([]),[eU,eB]=(0,n.useState)(!1),[eX,eY]=(0,n.useState)(!1),[eG,eZ]=(0,n.useState)(""),e_=(0,n.useRef)(null),eK=(0,n.useRef)(!0),[eV,eq]=(0,n.useState)(""),[eJ,eQ]=(0,n.useState)(null),[e0,e1]=(0,n.useState)(""),[e2,e5]=(0,n.useState)([]),[e6,e4]=(0,n.useState)([]),[e8,e3]=(0,n.useState)(!0),[e7,e9]=(0,n.useState)(!1),te=(0,n.useRef)(0),tt=(0,n.useRef)(0),ta=(0,n.useRef)(null),[tr,tn]=(0,n.useState)([]),[ts,ti]=(0,n.useState)(null),[to,td]=(0,n.useState)(null),[tl,tc]=(0,n.useState)({scrollX:0,scrollY:0,viewportW:980,viewportH:560,docW:980,docH:560}),[tp,tu]=(0,n.useState)({w:1200,h:700}),[tg,tm]=(0,n.useState)([]),[th,tx]=(0,n.useState)(!1),tb=(0,n.useRef)(!1),[tf,tv]=(0,n.useState)(null),[ty,tz]=(0,n.useState)([]),tw=(0,n.useRef)([]),[tk,tj]=(0,n.useState)(!1),[tN,tS]=(0,n.useState)(null),[tC,tI]=(0,n.useState)(null),[tE,tM]=(0,n.useState)(null),[tT,tR]=(0,n.useState)(""),[tD,tP]=(0,n.useState)([]),[tA,tL]=(0,n.useState)([]),[tO,tW]=(0,n.useState)(null),[t$,tH]=(0,n.useState)(null),[tF,tU]=(0,n.useState)(!1),[tB,tX]=(0,n.useState)([]),[tY,tG]=(0,n.useState)(null),[tZ,t_]=(0,n.useState)(""),[tK,tV]=(0,n.useState)(0),[tq,tJ]=(0,n.useState)("idle"),tQ=(0,n.useRef)(!1),t0=(0,n.useRef)(""),t1=(0,n.useRef)(null),t2=(0,n.useRef)(new Map),[t5,t6]=(0,n.useState)(0),t4=(0,n.useRef)(null),t8=(0,n.useRef)(null),t3=(0,n.useRef)(""),t7=(0,n.useRef)(eI),t9=(0,n.useRef)(""),ae=(0,n.useRef)(eM),at=(0,n.useRef)([]),aa=(0,n.useRef)(null),ar=(0,n.useRef)(!1),an=(0,n.useRef)(!1),as=Array.from(new Set([...t.designMockFiles.filter(e=>/\.html?$/i.test(e)),...tr]));at.current=as;let ai=t.designMockFiles.filter(e=>e.startsWith("design-mock/components/")),ao="approved"===ec,ad=eV&&as.includes(eV)?eV:as[0]??"";t9.current=ad,ar.current=ao,an.current=e7,t7.current=eI,ae.current=eM;let al=as.length>0&&null!=eJ&&!e0,ac=eS/100,ap=null!=ew?{w:Math.max(320,Math.min(1920,ew)),h:Math.max(560,Math.round(1.5*Math.max(320,Math.min(1920,ew))))}:"tablet"===ey?{w:768,h:1024}:"mobile"===ey?{w:390,h:844}:null,au=null!=ap,ag=au?ap.w:Math.max(1,tp.w/ac),am=au?ap.h:Math.max(1,tp.h/ac),ah=Math.max(1,tl.docW||tl.viewportW||1),ax=Math.max(1,tl.docH||tl.viewportH||1),ab=e=>({left:e.x-tl.scrollX,top:e.y-tl.scrollY,width:e.w,height:e.h}),af=e=>({left:e.x/100*ah-tl.scrollX,top:e.y/100*ax-tl.scrollY,width:e.w/100*ah,height:e.h/100*ax}),av=(e,t)=>({left:e/100*ah-tl.scrollX,top:t/100*ax-tl.scrollY}),{canUndo:ay,canRedo:az}=(0,n.useMemo)(()=>{let e=t2.current.get(ad);return{canUndo:!!e&&e.pos>0,canRedo:!!e&&e.pos<e.stack.length-1}},[t5,ad]);(0,n.useEffect)(()=>{if(document.getElementById("dz-style"))return;let e=document.createElement("style");e.id="dz-style",e.textContent=G,document.head.appendChild(e)},[]),(0,n.useEffect)(()=>{try{"0"===localStorage.getItem("bx.dzChat")&&eb(!1),"0"===localStorage.getItem("bx.dzRail")&&ev(!1)}catch{}},[]),(0,n.useEffect)(()=>{try{localStorage.setItem("bx.dzChat",ex?"1":"0")}catch{}},[ex]),(0,n.useEffect)(()=>{try{localStorage.setItem("bx.dzRail",ef?"1":"0")}catch{}},[ef]),(0,n.useEffect)(()=>{let e=!1,t=e=>e.length>250?e.slice(-250):e;function a(){if(e||document.hidden||ta.current)return;let a=new EventSource(`/api/stream?channel=design&evCursor=${te.current}&msgCursor=${tt.current}`);ta.current=a,a.addEventListener("ev",e=>{let a=JSON.parse(e.data);a.seq>te.current&&(te.current=a.seq),e4(e=>e.some(e=>e.id===a.id)?e:t([...e,a]))}),a.addEventListener("msg",e=>{let a=JSON.parse(e.data),r=a.createdAt?new Date(a.createdAt).getTime():0;if(r>tt.current&&(tt.current=r),e5(e=>e.some(e=>e.id===a.id)?e:t([...e,a])),e4(e=>e.filter(e=>e.runId!==a.id||"text"!==e.kind)),"agent"===a.fromKind){e9(!1),tV(e=>e+1),ed.refresh();let e=t9.current;e&&setTimeout(()=>{tQ.current||(t2.current.delete(e),t6(e=>e+1),g(e).then(e=>{e.ok&&null!=e.html&&(eQ(e.html),e1(""))}))},300)}})}function r(){ta.current&&(ta.current.close(),ta.current=null)}(async function(){let[t,a]=await Promise.all([(0,c.V)("design"),(0,p.k)("design",0)]);e||(e5(t),e4(a),te.current=a.reduce((e,t)=>Math.max(e,t.seq),0),tt.current=t.reduce((e,t)=>Math.max(e,t.createdAt?new Date(t.createdAt).getTime():0),0))})().catch(()=>{}).finally(()=>{!e&&(e3(!1),document.hidden||a())});let n=()=>{document.hidden?r():a()};return document.addEventListener("visibilitychange",n),()=>{e=!0,document.removeEventListener("visibilitychange",n),r()}},[]),(0,n.useEffect)(()=>{if(aM(),eK.current){eK.current=!1;return}let e=setTimeout(()=>{m(eM)},500);return eg(!0),ar.current&&(aa.current&&clearTimeout(aa.current),aa.current=setTimeout(()=>{aa.current=null,function(){if(!ar.current||an.current)return;let e=ae.current;e9(!0),h(`I changed the design directly on the canvas via the Styles panel — the canvas is the source of truth now. RECONCILE the source to match it; do NOT ask, just do it: write the current tokens into design-mock/styles/global.css (:root) — accent ${e.accent}, secondary ${e.secondary}, surface ${e.surface}, body font ${e.font}, heading font ${e.headingFont}, radius ${e.radius}px, theme ${e.theme} — and update design-mock/design-system.md (palette / typography / tokens) plus any affected component docs to reflect it, keeping every screen VISUALLY IDENTICAL. Then briefly summarize what you synced.`).then(e=>{e.ok||e9(!1)}),aW("Grace is syncing your change into the source CSS + docs…")}()},9e3)),()=>clearTimeout(e)},[eM]),(0,n.useEffect)(()=>{if(!ad)return void eQ(null);if(tQ.current&&ad===t0.current)return;tQ.current&&(tQ.current=!1,t0.current="",tJ("idle")),tc(e=>({...e,scrollX:0,scrollY:0}));let e=!0;return e1(""),g(ad).then(t=>{e&&(t.ok&&null!=t.html?eQ(t.html):(eQ(null),e1(t.error||el("design.toast.screenLoadFail"))))}),()=>{e=!1}},[as.join("|"),ad]),(0,n.useEffect)(()=>{if(tQ.current)return;let e=new Set(e2.map(e=>e.id)),t=e6.filter(t=>{if("create"!==t.kind&&"edit"!==t.kind||e.has(t.runId))return!1;let a=Q(t.target||"");return null!=a&&/^design-mock\/screens\/[^/]+\.html?$/i.test(a)});if(!t.length)return;let a=t[t.length-1];if(a.id===t3.current)return;t3.current=a.id;let r=Q(a.target||"");tn(e=>e.includes(r)?e:[...e,r]),eq(r),t2.current.delete(r),t6(e=>e+1),setTimeout(()=>{g(r).then(e=>{e.ok&&null!=e.html&&(eQ(e.html),e1(""))})},550)},[e6,e2]),(0,n.useEffect)(()=>{let e=new Set(e2.map(e=>e.id));e6.some(t=>!e.has(t.runId))&&e9(!1)},[e6,e2]),(0,n.useEffect)(()=>{let e=!0;return Promise.all([x().catch(()=>({comments:[]})),b().catch(()=>({versions:[]})),f().catch(()=>({docs:[]}))]).then(([t,a,r])=>{e&&(tP(t.comments||[]),tL(a.versions||[]),tX(r.docs||[]))}),()=>{e=!1}},[tK]);let aw=async()=>{try{let e=await (0,L.p)("design");if(e.used>=e.max&&!tF){tU(!0);try{await (0,O.L)("design"),e=await (0,L.p)("design")}finally{tU(!1)}}tH(e)}catch{}};async function ak(){if(!tF){tU(!0);try{await (0,O.L)("design"),await aw()}finally{tU(!1)}}}function aj(e){tG(e),t_(""),v(e).then(e=>{e.ok&&null!=e.body?t_(e.body):t_(el("design.docs.readErr"))})}(0,n.useEffect)(()=>{ex&&aw()},[ex,e2.length]),(0,n.useEffect)(()=>{"docs"===em&&tB.length&&(tY&&tB.some(e=>e.path===tY)||aj(tB[0].path))},[em,tB]);let aN=(0,n.useRef)(!1);(0,n.useEffect)(()=>{!t.gatePending||t.gateScaffolded||aN.current||e7||(aN.current=!0,e9(!0),y().then(e=>{e.ok||(e9(!1),aN.current=!1)}))},[t.gatePending,t.gateScaffolded]),(0,n.useEffect)(()=>{function e(e){var t,a,r;let n=e.data;if(n&&n.__cstla&&t4.current&&e.source===t4.current.contentWindow)if("canvas:viewport"===n.type){let e=n.payload;tc({scrollX:Math.max(0,e.scrollX||0),scrollY:Math.max(0,e.scrollY||0),viewportW:Math.max(1,e.viewportW||1),viewportH:Math.max(1,e.viewportH||1),docW:Math.max(1,e.docW||e.viewportW||1),docH:Math.max(1,e.docH||e.viewportH||1)})}else if("canvas:ready"===n.type){aE(),aM();let e=!!n.payload?.interactive;tb.current=e,tx(e)}else if("canvas:hover"===n.type)ti(n.payload);else if("canvas:guides"===n.type)td(n.payload);else if("canvas:tree"===n.type)tm(n.payload?.items??[]);else if("canvas:nav"===n.type){let e,r,s,i=(t=String(n.payload?.href||""),a=at.current,r=((e=t.split("#")[0].split("?")[0].replace(/\/+$/,"")).split("/").pop()||e).replace(/\.html?$/i,"").toLowerCase(),(s=a.find(e=>(e.split("/").pop()||e).replace(/\.html?$/i,"").toLowerCase()===r))||""!==r&&"index"!==r&&"home"!==r||(s=a.find(e=>/(^|\/)(index|home)\.html?$/i.test(e))||a[0]),s||null);i&&(eq(i),tv(null),tz([]),tj(!1))}else if("canvas:select"===n.type){let e={...n.payload,pageId:t9.current};tv(e),tz([e]),tj("select"===t7.current||"edit"===t7.current)}else if("canvas:selectToggle"===n.type){let e={...n.payload,pageId:t9.current},t=tw.current,a=t.findIndex(t=>t.cstlaId===e.cstlaId),r=a>=0?t.filter((e,t)=>t!==a):[...t,e];tz(r),tv(r.length?r[r.length-1]:null),tj(!1)}else if("canvas:reselect"===n.type){let e={...n.payload,pageId:t9.current};tv(e),tz(t=>t.length?t.map(t=>t.cstlaId===e.cstlaId?e:t):[e])}else if("canvas:reselectMany"===n.type){let e=(n.payload||[]).map(e=>({...e,pageId:t9.current}));tz(e),tv(e.length?e[e.length-1]:null)}else if("canvas:removed"===n.type)tv(null),tz([]),tj(!1);else if("canvas:dirty"===n.type)tQ.current=!0,t0.current=t9.current,tJ("saving"),t1.current&&(clearTimeout(t1.current),t1.current=null);else if("canvas:editEnd"===n.type)tQ.current=!1,tJ("idle");else if("canvas:commit"===n.type)tb.current||aR(n.payload.html);else if("canvas:history"===n.type)tb.current?(tJ("idle"),aT()):(function(e,t){let a=t0.current||t9.current;if(!a)return;let r=t2.current.get(a);r||(r={stack:[],labels:[],pos:-1},t2.current.set(a,r)),r.pos>=0&&r.stack[r.pos]===e||(r.stack=r.stack.slice(0,r.pos+1),r.labels=r.labels.slice(0,r.pos+1),r.stack.push(e),r.labels.push(t||el("design.history.edited")),r.stack.length>60&&(r.stack.shift(),r.labels.shift()),r.pos=r.stack.length-1,t6(e=>e+1))}(n.payload.html,n.payload.label),aR(n.payload.html),eg(!0));else if("canvas:baseline"===n.type){let e;tb.current||(r=n.payload.html,!(e=t9.current)||t2.current.has(e)||(t2.current.set(e,{stack:[r],labels:[el("design.history.original")],pos:0}),t6(e=>e+1)))}else if("canvas:comment"===n.type)tM(n.payload);else if("canvas:markupDraw"===n.type)tI(n.payload);else if("canvas:markup"===n.type){let e=n.payload;tI(e),tM({xpPct:e.xPct,ypPct:e.yPct,markup:{x:e.xPct,y:e.yPct,w:e.wPct,h:e.hPct}})}else"canvas:edit"===n.type&&aO(n.payload.oldText,n.payload.newText)}return window.addEventListener("message",e),()=>window.removeEventListener("message",e)},[]),(0,n.useEffect)(()=>{aE(),td(null),"preview"===eI&&(ti(null),tj(!1))},[eI,ad]),(0,n.useEffect)(()=>{ti(null),td(null)},[eS,ad]),(0,n.useEffect)(()=>{let e=t8.current;if(!e)return;let t=()=>tu({w:Math.max(1,e.clientWidth),h:Math.max(1,e.clientHeight)});t();let a=new ResizeObserver(t);return a.observe(e),()=>a.disconnect()},[al]),(0,n.useEffect)(()=>{"layers"===em&&function(){try{t4.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:requestTree"},"*")}catch{}}()},[em,ad,tK]),(0,n.useEffect)(()=>{let e=e=>{let t=document.activeElement;t&&("INPUT"===t.tagName||"TEXTAREA"===t.tagName||t.isContentEditable)||((e.ctrlKey||e.metaKey)&&("z"===e.key||"Z"===e.key)?(e.preventDefault(),e.shiftKey?aA():aP()):(e.ctrlKey||e.metaKey)&&("y"===e.key||"Y"===e.key)?(e.preventDefault(),aA()):"Escape"===e.key&&(tz([]),tv(null),tj(!1)))};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[]),(0,n.useEffect)(()=>{tw.current=ty},[ty]);let aS=e=>eT(t=>({...t,...e}));function aC(e,t,a=""){let n=String(eM[t]??"");return(0,r.jsxs)("div",{className:"dz-trow",children:[(0,r.jsx)("label",{children:e}),(0,r.jsxs)("div",{className:"dz-colorrow",children:[(0,r.jsx)("input",{type:"color",value:n||a||"#888888",onChange:e=>aS({[t]:e.target.value})}),(0,r.jsx)("input",{type:"text",value:n,placeholder:a||el("design.styles.auto"),spellCheck:!1,onChange:e=>aS({[t]:e.target.value})})]})]},String(t))}function aI(e,t,a,n,s,i=""){let o=Number(eM[t]??0);return(0,r.jsxs)("div",{className:"dz-trow",children:[(0,r.jsxs)("label",{children:[e,(0,r.jsxs)("span",{className:"v",children:[o,i]})]}),(0,r.jsx)("input",{type:"range",min:a,max:n,step:s,value:o,onChange:e=>aS({[t]:Number(e.target.value)})})]},String(t))}function aE(){try{t4.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:setMode",mode:t7.current},"*")}catch{}}function aM(){let e=ae.current;try{let t,a;t4.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:applyTokens",tokens:{accent:e.accent,accentFg:e.accentFg||(t=e.accent.replace("#",""),a=parseInt(3===t.length?t.split("").map(e=>e+e).join(""):t,16),(.299*(a>>16&255)+.587*(a>>8&255)+.114*(255&a))/255>.6?"#15171c":"#ffffff"),secondary:e.secondary,surface:e.surface,success:e.success,warning:e.warning,danger:e.danger,font:e.font,headingFont:e.headingFont,fontWeight:e.fontWeight,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing,radius:e.radius,borderWidth:e.borderWidth,borderColor:e.borderColor,shadow:e.shadow,space:e.density,containerWidth:e.containerWidth,motionMs:e.motionMs,ease:e.ease,fontScale:e.fontScale,theme:e.theme}},"*")}catch{}}function aT(){t1.current&&clearTimeout(t1.current),t1.current=setTimeout(()=>{tQ.current=!1,t0.current="",tJ("idle"),t1.current=null},1400)}function aR(e){let t=t0.current||t9.current;t&&z(t,e).then(e=>{e.ok?(tJ("saved"),tV(e=>e+1)):(tJ("idle"),aW(e.error||el("design.toast.couldNotSaveEdit"))),aT()})}function aD(e,t){let a=t.stack[t.pos];tv(null),tj(!1),tQ.current=!0,t0.current=e,tJ("saving"),t1.current&&(clearTimeout(t1.current),t1.current=null);try{t4.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:setBody",html:a},"*")}catch{}z(e,a).then(()=>{tJ("saved"),tV(e=>e+1),aT()}),t6(e=>e+1)}function aP(){let e=t9.current,t=t2.current.get(e);t&&!(t.pos<=0)&&(t.pos--,aD(e,t))}function aA(){let e=t9.current,t=t2.current.get(e);t&&!(t.pos>=t.stack.length-1)&&(t.pos++,aD(e,t))}async function aL(){let e=t9.current;if(!e||!al)return;eA(!0);let t=await w(e);eA(!1),t.ok?(aW(el("design.toast.savedCheckpoint",{label:t.label??""})),tV(e=>e+1)):aW(t.error||el("design.toast.couldNotSaveCheckpoint"))}async function aO(e,t){let a=t9.current;if(a&&e!==t)if((await k(a,e,t)).ok){let e=await g(a);e.ok&&null!=e.html&&eQ(e.html),aW(el("design.toast.editApplied"))}else aW(el("design.toast.sendingEdit")),e9(!0),h(`On screen ${a}, change the text "${e}" to "${t}".`)}function aW(e){e$(e),setTimeout(()=>e$(t=>t===e?"":t),2400)}async function a$(e){if(!e)return;let t=Array.from(e).filter(e=>e instanceof File);if(!t.length)return;eZ("");let a=t.slice(0,Math.max(0,6-eH.length));if(!a.length)return void eZ(el("design.toast.upTo6"));let r=new FormData;for(let e of a)r.append("files",e);eY(!0);try{let e=await fetch("/api/upload",{method:"POST",body:r}),t=await e.json();if(!e.ok||!t.ok)return void eZ(t.error||el("design.toast.uploadFailed"));eF(e=>[...e,...t.attachments].slice(0,6))}catch{eZ(el("design.toast.uploadFailed"))}finally{eY(!1),e_.current&&(e_.current.value="")}}function aH(e){let t=(e??eR).trim();if(!t&&!eH.length&&!tN||e7)return;e9(!0);let a=eH.slice();eD(""),eF([]),eZ(""),tS(null),h(t||(tN?"Adjust this element.":"Use the attached image(s) as the visual reference."),a,tN??void 0).then(e=>{e.ok||(aW(e.error||el("design.toast.couldNotStart")),e9(!1))})}async function aF(){eA(!0);let e=await j();(eA(!1),e.ok)?(ep("approved"),aW(el("design.toast.designApproved")),ed.refresh()):aW(e.error||el("design.toast.approveFailed"))}async function aU(){eA(!0);let e=await N();(eA(!1),e.ok)?(ep("approved"),eg(!1),e9(!0),eh("docs"),aW(el("design.toast.sentToExec"))):aW(e.error||el("design.toast.couldNotSendExec"))}async function aB(){eA(!0);let e=await S();(eA(!1),e.ok)?(e9(!0),eh("docs"),aW("Resuming handoff — Grace is finishing the documentation, then Ada plans it.")):aW(e.error||"Couldn't resume the handoff.")}async function aX(){eA(!0);let e=await C();if(eA(!1),!e.ok)return void aW(e.error||el("design.toast.buildFailed"));let t=e.built.reduce((e,t)=>e+t.before,0),a=e.built.reduce((e,t)=>e+t.after,0),r=t?Math.round((1-a/t)*100):0,n=e.built.filter(e=>e.obfuscated).length;aW(el("design.toast.built",{count:e.built.length,plural:1===e.built.length?"":"s",pct:r,obf:n?el("design.toast.builtObf",{n:n}):""})),ed.refresh()}async function aY(e=!1){if(!tE){tM(null),tR(""),tI(null);return}if(tE.markup){let t=tT.trim(),a=tE.markup;if(await I(t9.current,a,t),tM(null),tR(""),tI(null),tV(e=>e+1),eh("comments"),e){e9(!0);let e=ei(a);h(`On screen ${t9.current}, I marked a region for review (${e}).${t?` My note: "${t}"`:" Please review and refine it."} Update the screen accordingly.`)}return}if(!tT.trim()){tM(null),tR("");return}let t=tE.selection??tf,a=t?{...t,pageId:t9.current}:void 0;await E(t9.current,tE.xpPct,tE.ypPct,tT.trim(),a),tM(null),tR(""),tV(e=>e+1),eh("comments")}let aG=[...e2].sort((e,t)=>(e.createdAt?new Date(e.createdAt).getTime():0)-(t.createdAt?new Date(t.createdAt).getTime():0)).at(-1),aZ=e7||0!==e2.length&&aG?.fromKind!=="agent"?[]:function(e,t,a){let r=[],n=e=>(e??"").replace(/\s+/g," ").replace(/^[-•*\s]+/,"").replace(/[.:;,!?]+$/,"").trim(),s=(e,t)=>{let a=n(e);a.length>=2&&a.length<=42&&!r.some(e=>e.label.toLowerCase()===a.toLowerCase())&&r.push({label:a?a.charAt(0).toUpperCase()+a.slice(1):a,prompt:t})},i=[...e].reverse().find(e=>"agent"===e.fromKind&&e.text);if(i?.text)for(let e of i.text.matchAll(/\*\*(.+?)\*\*/g)){let t=n(e[1]);if(t.length<2||t.length>42||ee.test(t)||(t.match(/\s+/g)||[]).length>6||s(t,t),r.length>=4)break}for(let[e,n]of t.designMockFiles.some(e=>/\.html?$/i.test(e))?et:ea)if(s(a(e),n),r.length>=4)break;return r.slice(0,4)}(e2,t,el),a_=e?{id:e.id,handle:e.handle,name:e.name,role:"Frontend",color:e.color,image:e.image??null,adapter:"claude",status:"idle",health:null}:null,aK=a_?[a_]:[],aV={};for(let e of e6)(aV[e.runId]??=[]).push(e);let aq=new Set(e2.map(e=>e.id)),aJ=Object.entries(aV).filter(([e])=>!aq.has(e)),aQ=e7||aJ.length>0,a0=tD.filter(e=>e.pageKey===ad&&!en(e)),a1=tD.filter(e=>e.pageKey===ad&&en(e)),a2=[];a2.push(["layers",el("design.tab.layers")],["screens",el("design.tab.screens")],["docs",el("design.tab.docs")],["styles",el("design.tab.styles")],["history",el("design.tab.history")],["comments",`${el("design.tab.comments")}${a0.length?" "+a0.length:""}`],["versions",`${el("design.tab.versions")}${tA.length?" "+tA.length:""}`]);let a5=a2.some(([e])=>e===em)?em:"screens",a6=ts?ab(ts):null,a4=tf?ab(tf.boundingBox):null;return(0,r.jsxs)("div",{className:"dz-wrap",children:[ex?(0,r.jsxs)("div",{className:"dz-chat",children:[(0,r.jsxs)("div",{className:"dz-chat-head",children:[(0,r.jsx)(d.e,{name:e?.name||"Grace",color:e?.color||"#84aef5",image:e?.image,size:28}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"dz-ch-t",children:[e?.name||"Grace"," \xb7 ",el("design.chat.role")]}),(0,r.jsx)("div",{className:"dz-ch-s",children:el("design.chat.subtitle")})]}),aQ&&(0,r.jsxs)("span",{className:"dz-live",children:[(0,r.jsx)("span",{className:"dot"})," ",el("design.chat.live")]}),(0,r.jsx)("button",{className:"dz-collapse-btn",title:el("design.chat.collapse"),onClick:()=>eb(!1),children:(0,r.jsx)(o.I,{name:"chevronLeft",size:15})})]}),t$&&(0,r.jsxs)("div",{className:"ctx-bar",children:[(0,r.jsx)(W.m,{stat:t$,onCompact:ak,compacting:tF}),(0,r.jsx)("span",{})]}),(0,r.jsx)(l.H8,{msgs:e2,typing:e7&&a_?[a_.handle]:[],agents:aK,byRun:aV,liveRuns:aJ,loading:e8,markdownAgent:!0,avatarSize:28,emptyHint:el("design.chat.emptyHint")}),(0,r.jsxs)("div",{className:"dz-composer"+(eU?" drag":""),onDragOver:e=>{e.preventDefault(),eB(!0)},onDragLeave:e=>{e.preventDefault(),eB(!1)},onDrop:e=>{e.preventDefault(),eB(!1),a$(e.dataTransfer.files)},children:[!ao&&aZ.length>0&&!tN&&(0,r.jsx)("div",{className:"dz-chips",children:aZ.map(e=>(0,r.jsx)("span",{className:"dz-chip",onClick:()=>aH(e.prompt),children:e.label},e.label))}),tN&&(0,r.jsxs)("div",{className:"dz-attach",children:[(0,r.jsx)("span",{className:"sw",style:{background:eM.accent}})," ",el("design.composer.elementLabel")," ",(0,r.jsx)("b",{style:{fontWeight:700},children:tN.componentName}),(0,r.jsx)("span",{className:"x",onClick:()=>tS(null),children:(0,r.jsx)(o.I,{name:"close",size:12})})]}),eG&&(0,r.jsx)("div",{className:"dz-uperr",children:eG}),eH.length>0&&(0,r.jsx)("div",{className:"dz-atts",children:eH.map((e,t)=>(0,r.jsxs)("span",{className:"dz-att",children:[e.type.startsWith("image/")&&(0,r.jsx)("img",{src:`/api/upload?path=${encodeURIComponent(e.path)}`,alt:""}),(0,r.jsx)("span",{className:"nm",children:e.name}),(0,r.jsx)("span",{className:"rm",title:el("design.composer.remove"),onClick:()=>eF(e=>e.filter((e,a)=>a!==t)),children:(0,r.jsx)(o.I,{name:"close",size:11})})]},e.path))}),(0,r.jsxs)("div",{className:"dz-input",children:[(0,r.jsx)("button",{className:"dz-clip",disabled:e7||eX,title:el("design.composer.attach"),onClick:()=>e_.current?.click(),children:(0,r.jsx)(o.I,{name:eX?"refresh":"add",size:15,className:eX?"sync-spin":""})}),(0,r.jsx)("input",{placeholder:tN?el("design.composer.changePlaceholder",{name:tN.componentName}):el("design.composer.placeholder"),value:eR,disabled:e7,onChange:e=>eD(e.target.value),onKeyDown:e=>{"Enter"===e.key&&aH()},onPaste:function(e){let t=Array.from(e.clipboardData?.items||[]).filter(e=>"file"===e.kind&&e.type.startsWith("image/")).map(e=>e.getAsFile()).filter(e=>!!e);t.length&&(e.preventDefault(),a$(t))}}),(0,r.jsx)("button",{className:"dz-send",disabled:e7||!eR.trim()&&!eH.length&&!tN,onClick:()=>aH(),children:(0,r.jsx)(o.I,{name:e7?"refresh":"send",size:15,className:e7?"sync-spin":""})})]}),(0,r.jsx)("input",{ref:e_,type:"file",accept:"image/*,.pdf",multiple:!0,style:{display:"none"},onChange:e=>a$(e.target.files)})]})]}):(0,r.jsxs)("div",{className:"dz-strip left",onClick:()=>eb(!0),title:el("design.chat.expand"),children:[(0,r.jsx)(o.I,{name:"chevronRight",size:16}),(0,r.jsx)(o.I,{name:"chat",size:16}),aQ&&(0,r.jsx)("span",{style:{width:7,height:7,borderRadius:"50%",background:"var(--accent)"}})]}),(0,r.jsxs)("div",{className:"dz-center",children:[t.handoffPending&&(0,r.jsxs)("div",{className:"dz-approve-banner",style:{background:"linear-gradient(90deg,rgba(224,164,78,.20),rgba(224,164,78,.03))"},children:[(0,r.jsx)("div",{className:"dz-ab-ic",style:{background:"rgba(224,164,78,.22)",color:"var(--accent)"},children:(0,r.jsx)(o.I,{name:aQ?"refresh":"warn",size:17,className:aQ?"sync-spin":""})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:aQ?el("design.handoff.finishing"):el("design.handoff.interrupted")}),(0,r.jsx)("div",{className:"dz-ab-s",children:aQ?el("design.handoff.finishingSub"):el("design.handoff.interruptedSub")})]}),!aQ&&(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn accent",disabled:eP,onClick:aB,children:[(0,r.jsx)(o.I,{name:eP?"refresh":"sync",size:13,className:eP?"sync-spin":""})," ",el("design.handoff.resume")]})})]}),t.handoffDone&&!t.handoffPending&&(0,r.jsxs)("div",{className:"dz-approve-banner",style:{background:eu?"linear-gradient(90deg,rgba(224,164,78,.22),rgba(224,164,78,.03))":"linear-gradient(90deg,rgba(74,165,114,.20),rgba(74,165,114,.03))"},children:[(0,r.jsx)("div",{className:"dz-ab-ic",style:{background:eu?"rgba(224,164,78,.22)":"rgba(74,165,114,.22)",color:eu?"var(--accent)":"#3fa971"},children:(0,r.jsx)(o.I,{name:eu?"edit":"goto",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:eu?"Design updated \xb7 send it to Ada":"Handed off to execution \xb7 Ada is building"}),(0,r.jsx)("div",{className:"dz-ab-s",children:eu?"You edited the design after the last hand-off — send the update so Ada applies it on top (backend wiring preserved).":"This design is the real frontend. Keep refining it with Grace — re-send to push an update (engineers&apos; backend wiring is preserved)."})]}),(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn accent"+(eu?" dz-pulse":""),disabled:eP,onClick:aU,children:[(0,r.jsx)(o.I,{name:eP?"refresh":eu?"goto":"sync",size:13,className:eP?"sync-spin":""})," ",eu?"Send update to execution":"Re-send update"]})})]}),ao&&!t.handoffPending&&!t.handoffDone&&(0,r.jsxs)("div",{className:"dz-approve-banner",children:[(0,r.jsx)("div",{className:"dz-ab-ic",children:(0,r.jsx)(o.I,{name:eu?"edit":"check",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:eu?"Design updated \xb7 ready to send":el("design.banner.approvedTitle")}),(0,r.jsx)("div",{className:"dz-ab-s",children:eu?"You edited the approved design — send it to execution to push the update.":el("design.banner.approvedSub")})]}),(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn accent"+(eu?" dz-pulse":""),disabled:eP,onClick:aU,children:[(0,r.jsx)(o.I,{name:eP?"refresh":"goto",size:13,className:eP?"sync-spin":""})," ",eu?"Send update to execution":el("design.banner.sendToExecution")]})})]}),!ao&&t.gatePending&&(0,r.jsxs)("div",{className:"dz-approve-banner",style:{background:"linear-gradient(90deg,rgba(99,102,241,.16),rgba(99,102,241,.02))"},children:[(0,r.jsx)("div",{className:"dz-ab-ic",style:{background:"rgba(99,102,241,.18)",color:"#6366f1"},children:(0,r.jsx)(o.I,{name:"bot",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"dz-ab-t",children:el("design.banner.adaWaitingTitle")}),(0,r.jsxs)("div",{className:"dz-ab-s",children:[el("design.banner.adaWaitingPre")," ",(0,r.jsx)("b",{children:el("design.banner.adaWaitingAction")})," ",el("design.banner.adaWaitingPost")," ",aQ?el("design.banner.gridSettingUp"):el("design.banner.gridStart")]})]}),(0,r.jsx)("div",{className:"dz-ab-actions",children:(0,r.jsxs)("button",{className:"dz-mini-btn",disabled:e7,onClick:()=>{e9(!0),y().then(e=>{e.ok||e9(!1)})},children:[(0,r.jsx)(o.I,{name:e7?"refresh":"skill",size:13,className:e7?"sync-spin":""})," ",el("design.banner.setUpWithGrace")]})})]}),(0,r.jsxs)("div",{className:"dz-bar",children:[(0,r.jsx)("div",{className:"dz-modes",children:V.map(e=>(0,r.jsxs)("span",{className:"dz-mode "+(eI===e.id?"on":""),onClick:()=>eE(e.id),title:el("design.mode."+e.id),children:[(0,r.jsx)(o.I,{name:e.ic,size:13})," ",el("design.mode."+e.id)]},e.id))}),as.length>0&&(0,r.jsxs)("div",{className:"dz-seg",children:[(0,r.jsx)("button",{onClick:aP,disabled:!ay,title:el("design.toolbar.undo"),children:(0,r.jsx)(o.I,{name:"chevronLeft",size:13})}),(0,r.jsx)("button",{onClick:aA,disabled:!az,title:el("design.toolbar.redo"),children:(0,r.jsx)(o.I,{name:"chevronRight",size:13})}),(0,r.jsxs)("button",{onClick:function(){let e=t9.current,t=t2.current.get(e);t&&!(t.pos<=0)&&(t.pos=0,aD(e,t),aW(el("design.toast.reset")))},disabled:!ay,title:el("design.toolbar.resetTitle"),children:[(0,r.jsx)(o.I,{name:"repeat",size:13})," ",el("design.toolbar.reset")]}),(0,r.jsxs)("button",{onClick:aL,disabled:eP||!al,title:el("design.toolbar.saveTitle"),children:[(0,r.jsx)(o.I,{name:"check",size:13})," ",el("design.toolbar.save")]}),(0,r.jsxs)("button",{onClick:function(){let e=t9.current;e&&(e9(!0),h(`I manually edited the screen ${e} directly on the canvas — it now has inline-style overrides, transform:translate offsets and data-cstla-id/data-cstla-tx attributes added by the visual editor. Refactor it into CLEAN, token-driven, professional CSS per the CSS STANDARD: fold the inline styles into the <style> sheet under semantic BEM-ish classes, turn transform offsets into real layout (flex/grid/margins/gap), drop every data-cstla-* attribute, and keep the screen VISUALLY IDENTICAL. Then summarize what you cleaned up.`))},title:el("design.toolbar.cleanUpTitle"),children:[(0,r.jsx)(o.I,{name:"skill",size:13})," ",el("design.toolbar.cleanUp")]})]}),(0,r.jsx)("div",{className:"dz-spacer"}),(0,r.jsx)("div",{className:"dz-seg",children:[50,75,100].map(e=>(0,r.jsxs)("button",{className:eS===e?"on":"",onClick:()=>eC(e),title:el("design.toolbar.zoom",{pct:e}),children:[e,"%"]},e))}),(0,r.jsxs)("div",{className:"dz-seg",children:[(0,r.jsx)("button",{className:"desktop"===ey&&null==ew?"on":"",onClick:()=>{ez("desktop"),ek(null)},title:el("design.toolbar.desktop"),children:(0,r.jsx)(o.I,{name:"sidebarIcon",size:13})}),(0,r.jsx)("button",{className:"tablet"===ey&&null==ew?"on":"",onClick:()=>{ez("tablet"),ek(null)},title:el("design.toolbar.tabletTitle"),children:el("design.toolbar.tablet")}),(0,r.jsx)("button",{className:"mobile"===ey&&null==ew?"on":"",onClick:()=>{ez("mobile"),ek(null)},title:el("design.toolbar.mobileTitle"),children:el("design.toolbar.mobile")}),(0,r.jsx)("input",{className:"dz-bpw",type:"number",min:320,max:1920,placeholder:"px",value:ew??"",title:el("design.toolbar.customWidth"),onChange:e=>{let t=parseInt(e.target.value,10);ek(Number.isFinite(t)&&t>0?Math.max(320,Math.min(1920,t)):null)}})]}),(0,r.jsxs)("div",{className:"dz-seg",children:[(0,r.jsx)("button",{className:"dark"===eM.theme?"on":"",onClick:()=>eT(e=>({...e,theme:"dark"})),title:el("design.toolbar.dark"),children:(0,r.jsx)(o.I,{name:"moon",size:13})}),(0,r.jsx)("button",{className:"light"===eM.theme?"on":"",onClick:()=>eT(e=>({...e,theme:"light"})),title:el("design.toolbar.light"),children:(0,r.jsx)(o.I,{name:"sun",size:13})})]}),(0,r.jsxs)("div",{className:"dz-seg",title:el("design.mode2.tip"),children:[(0,r.jsxs)("button",{className:ej?"":"on",onClick:()=>eN(!1),children:[(0,r.jsx)(o.I,{name:"grid",size:13})," ",el("design.mode2.design")]}),(0,r.jsxs)("button",{className:ej?"on":"",onClick:()=>eN(!0),children:[(0,r.jsx)(o.I,{name:"play",size:13})," ",el("design.mode2.live")]})]}),th?(0,r.jsxs)("span",{className:"dz-save preview",title:el("design.toolbar.previewOnlyTitle"),children:[(0,r.jsx)(o.I,{name:"play",size:12})," ",el("design.toolbar.previewOnly")]}):"idle"!==tq&&(0,r.jsxs)("span",{className:"dz-save "+tq,title:"saving"===tq?el("design.toolbar.savingTitle"):el("design.toolbar.savedTitle"),children:[(0,r.jsx)(o.I,{name:"saving"===tq?"refresh":"check",size:12,className:"saving"===tq?"sync-spin":""})," ","saving"===tq?el("design.toolbar.saving"):el("design.toolbar.saved")]}),(0,r.jsxs)("button",{className:"dz-mini-btn",onClick:()=>eO(!0),children:[(0,r.jsx)(o.I,{name:"arrowDown",size:13})," ",el("design.toolbar.export")]}),(0,r.jsxs)("button",{className:"dz-mini-btn accent",disabled:eP,onClick:aF,title:ao?"Re-approve the current design as the official reference":void 0,children:[(0,r.jsx)(o.I,{name:"check",size:13})," ",ao?"Approve changes":el("design.toolbar.approve")]})]}),as.length>0&&(0,r.jsxs)("div",{className:"dz-pagestrip",children:[(0,r.jsx)("div",{className:"dz-ptabs",children:as.slice(0,8).map(e=>(0,r.jsxs)("span",{className:"dz-ptab "+(ad===e?"active":""),onClick:()=>{eq(e),tv(null),tj(!1)},children:[(0,r.jsx)(o.I,{name:"grid",size:13})," ",J(e)]},e))}),(0,r.jsxs)("span",{className:"dz-hint",children:[(0,r.jsx)(o.I,{name:V.find(e=>e.id===eI).ic,size:12})," ","edit"===eI?"Click to select \xb7 double-click to edit text (the design stays faithful to the mock — no move/resize/add)":"select"===eI?"Click to select an element \xb7 switch to Edit to edit its text":el("design.hint."+eI)]})]}),(0,r.jsxs)("div",{className:"dz-canvas"+(al?` has-screen ${au?"framed":"desktop"}`:""),ref:t8,children:[ej&&(0,r.jsx)(Y,{onAskGrace:e=>aH(e),asking:e7}),al?(0,r.jsxs)("div",{className:"dz-artwrap",style:{width:ag*ac,height:am*ac},children:[(0,r.jsxs)("div",{className:"dz-art","data-viewport":ey,style:{width:ag,height:am,transform:`scale(${ac})`,transformOrigin:"top left"},children:[(0,r.jsx)("iframe",{ref:t4,title:el("design.canvas.previewTitle"),sandbox:"allow-scripts",srcDoc:($=eJ??"",H=`<script data-cstla-instrument>${A}</script>`,/<\/body>/i.test($)?$.replace(/<\/body>/i,`${H}</body>`):$+H),onLoad:()=>{aE(),aM()},style:{width:"100%",height:"100%",border:"none",background:"#fff",display:"block"}}),(0,r.jsxs)("div",{className:"dz-ovl",children:[to&&"edit"===eI&&(0,r.jsxs)(r.Fragment,{children:[to.v.map((e,t)=>(0,r.jsx)("div",{className:"dz-guide v",style:{left:e-tl.scrollX}},"gv"+t)),to.h.map((e,t)=>(0,r.jsx)("div",{className:"dz-guide h",style:{top:e-tl.scrollY}},"gh"+t))]}),ts&&a6&&!tf&&"preview"!==eI&&"markup"!==eI&&"comments"!==eI&&(0,r.jsx)("div",{className:"dz-hl",style:a6,children:(0,r.jsx)("span",{className:"tag",children:ts.label})}),"preview"!==eI&&ty.map(e=>(0,r.jsx)("div",{className:"dz-selbox",style:ab(e.boundingBox)},e.cstlaId)),a1.map(e=>(0,r.jsx)("div",{className:"dz-mk",style:af(es(e))},e.id)),tC&&(0,r.jsx)("div",{className:"dz-mk",style:af({x:tC.xPct,y:tC.yPct,w:tC.wPct,h:tC.hPct})}),a0.map((e,t)=>(0,r.jsx)("div",{className:"dz-pin",style:av(e.xp,e.yp),onClick:e=>{e.stopPropagation(),eh("comments")},children:t+1},e.id))]})]}),tk&&tf&&a4&&"preview"!==eI&&ty.length<=1&&(0,r.jsxs)("div",{className:"dz-ctx",style:{left:Math.max(6,a4.left*ac),top:Math.max(4,a4.top*ac-40)},onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("button",{className:"ask",onClick:()=>{tS(tf),tj(!1),aW(el("design.toast.elementAttached"))},children:[(0,r.jsx)(o.I,{name:"bot",size:13})," ",el("design.ctx.askFront")]}),(0,r.jsx)("button",{onClick:()=>tj(!1),children:(0,r.jsx)(o.I,{name:"close",size:13})})]}),tE&&(0,r.jsxs)("div",{className:"dz-cpop",style:{left:Math.max(6,Math.min((F=av(tE.xpPct,tE.ypPct)).left*ac,Math.max(6,ag*ac-226))),top:Math.max(6,Math.min(F.top*ac,Math.max(6,am*ac-120)))},onClick:e=>e.stopPropagation(),children:[(0,r.jsx)("textarea",{rows:3,autoFocus:!0,placeholder:tE.markup?el("design.cmt.markupPlaceholder"):el("design.cmt.pointPlaceholder"),value:tT,onChange:e=>tR(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),aY())}}),tE.markup?(0,r.jsxs)("div",{className:"row",style:{flexDirection:"column",alignItems:"stretch"},children:[(0,r.jsxs)("button",{className:"dz-mini-btn accent",style:{justifyContent:"center"},onClick:()=>aY(!0),children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",el("design.cmt.markAskGrace")]}),(0,r.jsx)("button",{className:"dz-mini-btn",style:{justifyContent:"center"},onClick:()=>aY(!1),children:el("design.cmt.markRegion")}),(0,r.jsx)("button",{className:"dz-mini-btn",style:{justifyContent:"center"},onClick:()=>{tM(null),tR(""),tI(null)},children:el("design.cmt.cancel")})]}):(0,r.jsxs)("div",{className:"row",children:[(0,r.jsx)("button",{className:"dz-mini-btn",onClick:()=>{tM(null),tR(""),tI(null)},children:el("design.cmt.cancel")}),(0,r.jsx)("button",{className:"dz-mini-btn accent",onClick:()=>aY(),children:el("design.cmt.comment")})]})]}),aQ&&(0,r.jsxs)("div",{className:"dz-build-bar",children:[(0,r.jsx)(o.I,{name:"skill",size:13})," ",el("design.canvas.working")," ",(0,r.jsx)("span",{className:"sh"})]})]}):(0,r.jsx)("div",{className:"dz-emptywrap",children:e0?(0,r.jsxs)("div",{className:"dz-empty",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"error",size:22})}),(0,r.jsx)("div",{className:"t",children:el("design.empty.loadErrTitle")}),(0,r.jsx)("div",{className:"s",children:e0})]}):0===as.length&&ai.length>0?(0,r.jsxs)("div",{className:"dz-empty",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"doc",size:22})}),(0,r.jsx)("div",{className:"t",children:el("design.empty.componentsTitle",{count:ai.length,plural:ai.length>1?"s":""})}),(0,r.jsx)("div",{className:"s",children:el("design.empty.componentsBody")})]}):(0,r.jsxs)("div",{className:"dz-empty",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"grid",size:22})}),(0,r.jsx)("div",{className:"t",children:el("design.empty.noPrototypeTitle")}),(0,r.jsxs)("div",{className:"s",children:[el("design.empty.noPrototypePre")," ",(0,r.jsx)("span",{className:"mono",children:"design-mock/"}),". ",el("design.empty.noPrototypePost")]})]})})]})]}),ef?(0,r.jsxs)("div",{className:"dz-rail",children:[(0,r.jsxs)("div",{className:"dz-rail-tabs",children:[a2.map(([e,t])=>(0,r.jsx)("div",{className:"dz-rt "+(a5===e?"active":""),onClick:()=>eh(e),children:t},e)),(0,r.jsx)("button",{className:"dz-collapse-btn",title:el("design.rail.collapse"),onClick:()=>ev(!1),children:(0,r.jsx)(o.I,{name:"chevronRight",size:15})})]}),(0,r.jsxs)("div",{className:"dz-rail-body",children:["layers"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.layers.title")}),al?0===tg.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.layers.reading")}):tg.map(e=>(0,r.jsxs)("div",{className:"dz-layer"+(tf?.nodePath===e.path?" active":""),style:{paddingLeft:8+11*e.depth},onClick:()=>(function(e){try{t4.current?.contentWindow?.postMessage({__cstlaHost:1,type:"canvas:selectByPath",path:e},"*")}catch{}})(e.path),title:`<${e.tag}>`,children:[(0,r.jsx)(o.I,{name:e.kids>0?"grid":"dot",size:10}),(0,r.jsx)("span",{className:"lt",children:e.label}),(0,r.jsxs)("span",{className:"lg",children:[e.tag,e.kids>0?` \xb7 ${e.kids}`:""]})]},e.path)):(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.layers.openScreen")})]}),"screens"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.screens.title")}),0===as.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.screens.empty")}):as.map(e=>(0,r.jsxs)("div",{className:"dz-row "+(ad===e?"active":""),onClick:()=>{eq(e),tv(null),tj(!1)},children:[(0,r.jsx)("div",{className:"dz-r-ic",children:(0,r.jsx)(o.I,{name:"grid",size:14})}),(0,r.jsxs)("div",{style:{minWidth:0},children:[(0,r.jsx)("div",{className:"dz-r-t",children:J(e)}),(0,r.jsx)("div",{className:"dz-r-s",children:e.replace(/^design-mock\//,"")})]}),ad===e&&(0,r.jsx)("span",{className:"dz-r-meta",children:el("design.screens.active")})]},e)),(0,r.jsxs)("div",{className:"dz-addrow",onClick:()=>aH("Build a new screen for the prototype."),children:[(0,r.jsx)(o.I,{name:"add",size:13})," ",el("design.screens.newScreen")]}),ai.length>0&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:16},children:el("design.screens.components",{count:ai.length})}),(0,r.jsx)("div",{className:"dz-comp-grid",children:ai.slice(0,8).map((e,t)=>(0,r.jsxs)("div",{className:"dz-comp",children:[(0,r.jsx)("div",{style:{height:30,borderRadius:7,background:t%2?q(eM.accent,.16):"var(--bg-app)",border:"1px solid var(--border)",display:"grid",placeItems:"center",color:"var(--accent)",fontSize:12},children:"◧"}),(0,r.jsx)("div",{className:"nm",children:(e.split("/").pop()||e).replace(/\.[a-z]+$/i,"")})]},e))})]})]}),"docs"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.docs.title")}),0===tB.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.docs.empty")}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-docnav",children:tB.map(e=>(0,r.jsxs)("div",{className:"dz-doctab "+(tY===e.path?"active":""),onClick:()=>aj(e.path),title:e.label,children:[(0,r.jsx)(o.I,{name:/APPROVED/i.test(e.path)?"check":"doc",size:12}),(0,r.jsx)("span",{children:e.label})]},e.path))}),(0,r.jsx)("div",{className:"dz-docbody md",children:tZ?(0,r.jsx)(D.oz,{remarkPlugins:[P.A],children:tZ}):(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)"},children:el("design.docs.reading")})})]})]}),"styles"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.styles.palette")}),(0,r.jsx)("div",{className:"dz-swatches",children:Z.map(e=>(0,r.jsx)("span",{title:e.name,className:"dz-sw "+(eM.accent===e.c?"on":""),style:{background:e.c},onClick:()=>aS({accent:e.c,accentName:e.name})},e.name))}),aC(el("design.styles.accentCustom"),"accent"),aC(el("design.styles.secondary"),"secondary"),aC(el("design.styles.surface"),"surface"),(0,r.jsxs)("details",{className:"dz-adv",children:[(0,r.jsx)("summary",{children:el("design.styles.semanticColors")}),aC(el("design.styles.success"),"success","#10b981"),aC(el("design.styles.warning"),"warning","#f59e0b"),aC(el("design.styles.danger"),"danger","#ef4444"),aC(el("design.styles.accentText"),"accentFg")]}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.typography")}),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.bodyFont")}),(0,r.jsx)("div",{className:"dz-opt",children:_.map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.fontName===e.n?"on":""),onClick:()=>aS({font:e.s,fontName:e.n}),children:e.n},e.n))}),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.headingFont")}),(0,r.jsx)("div",{className:"dz-opt",children:_.map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.headingFontName===e.n?"on":""),onClick:()=>aS({headingFont:e.s,headingFontName:e.n}),children:e.n},e.n))}),aI(el("design.styles.weight"),"fontWeight",300,800,100),aI(el("design.styles.lineHeight"),"lineHeight",1,2,.05),aI(el("design.styles.letterSpacing"),"letterSpacing",-1,4,.1,"px"),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.textSize")}),(0,r.jsx)("div",{className:"dz-opt",children:[[el("design.styles.sizeSmall"),.9],[el("design.styles.sizeDefault"),1],[el("design.styles.sizeLarge"),1.15]].map(([e,t])=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.fontScale===t?"on":""),onClick:()=>aS({fontScale:t}),children:e},e))}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.shapeDepth")}),(0,r.jsx)("div",{className:"dz-opt",children:K.map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.radius===e.r?"on":""),onClick:()=>aS({radius:e.r}),children:el("design.styles.radius"+e.n)},e.n))}),aI(el("design.styles.radius"),"radius",0,32,1,"px"),aI(el("design.styles.borderWidth"),"borderWidth",0,4,1,"px"),aC(el("design.styles.borderColor"),"borderColor"),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.shadow")}),(0,r.jsx)("div",{className:"dz-opt",children:["none","sm","md","lg"].map(e=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.shadow===e?"on":""),onClick:()=>aS({shadow:e}),children:"none"===e?el("design.styles.shadowNone"):e.toUpperCase()},e))}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.theme")}),(0,r.jsxs)("div",{className:"dz-opt",children:[(0,r.jsx)("span",{className:"dz-pill2 "+("dark"===eM.theme?"on":""),onClick:()=>aS({theme:"dark"}),children:el("design.styles.dark")}),(0,r.jsx)("span",{className:"dz-pill2 "+("light"===eM.theme?"on":""),onClick:()=>aS({theme:"light"}),children:el("design.styles.light")})]}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.spacingLayoutMotion")}),(0,r.jsx)("div",{className:"dz-opt",children:[[el("design.styles.densityCompact"),8],[el("design.styles.densityCozy"),12],[el("design.styles.densityComfy"),16]].map(([e,t])=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.density===t?"on":""),onClick:()=>aS({density:t}),children:e},e))}),aI(el("design.styles.density"),"density",4,28,1,"px"),aI(el("design.styles.containerWidth"),"containerWidth",880,1600,20,"px"),aI(el("design.styles.motionSpeed"),"motionMs",0,600,20,"ms"),(0,r.jsx)("div",{className:"dz-sub",children:el("design.styles.easing")}),(0,r.jsx)("div",{className:"dz-opt",children:[[el("design.styles.easeEase"),"ease"],[el("design.styles.easeInOut"),"ease-in-out"],[el("design.styles.easeLinear"),"linear"],[el("design.styles.easeSmooth"),"cubic-bezier(.4,0,.2,1)"]].map(([e,t])=>(0,r.jsx)("span",{className:"dz-pill2 "+(eM.ease===t?"on":""),onClick:()=>aS({ease:t}),children:e},e))}),(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:18},children:el("design.styles.spacingScale")}),(0,r.jsx)("div",{style:{display:"flex",gap:5,alignItems:"flex-end"},children:[.5,1,1.5,2,3,4].map(e=>{let t=Math.round(eM.density*e);return(0,r.jsxs)("div",{style:{textAlign:"center"},children:[(0,r.jsx)("div",{style:{width:20,height:Math.max(3,t),background:q(eM.accent,.5),borderRadius:3}}),(0,r.jsx)("div",{style:{fontSize:9,color:"var(--text-faint)",marginTop:3},children:t})]},e)})}),(0,r.jsxs)("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginTop:16,gap:8},children:[(0,r.jsx)("span",{style:{fontSize:10.5,color:"var(--text-faint)"},children:el("design.styles.restyleNote")}),(0,r.jsx)("button",{className:"dz-mini-btn",onClick:()=>aS(er),children:el("design.styles.reset")})]})]}),"comments"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.comments.title")}),0===a0.length&&(0,r.jsxs)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:[el("design.comments.emptyPre")," ",(0,r.jsx)("b",{children:el("design.comments.emptyTool")})," ",el("design.comments.emptyPost")]}),a0.map((e,t)=>(0,r.jsxs)("div",{className:"dz-cmt",children:[(0,r.jsxs)("div",{className:"h",children:[(0,r.jsx)("span",{className:"pin",children:t+1})," ",el("design.comments.comment")," ",(0,r.jsx)("span",{className:"x",onClick:()=>{M(e.id).then(()=>tV(e=>e+1))},children:(0,r.jsx)(o.I,{name:"trash",size:12})})]}),(0,r.jsx)("div",{className:"bd",children:e.body}),e.reply?(0,r.jsxs)("div",{className:"rep",children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",e.reply]}):(0,r.jsxs)("button",{className:"dz-mini-btn",onClick:()=>{e9(!0);let t=e.selection&&"object"==typeof e.selection&&e.selection.componentName?e.selection:void 0;h(`Apply this canvas comment on screen ${ad}${t?` (it is pinned on the ${t.componentName} element)`:""}: "${e.body}"`,void 0,t)},children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",el("design.comments.askGrace")]})]},e.id)),a1.length>0&&(0,r.jsx)("div",{className:"dz-sec",style:{marginTop:14},children:el("design.comments.markedRegions",{count:a1.length})}),a1.map((e,t)=>{let a=e.body&&"(region marked for review)"!==e.body?e.body:"";return(0,r.jsxs)("div",{className:"dz-cmt",children:[(0,r.jsxs)("div",{className:"h",children:[(0,r.jsxs)("span",{className:"pin",children:["M",t+1]})," ",el("design.comments.region")," ",(0,r.jsx)("span",{className:"x",onClick:()=>{M(e.id).then(()=>tV(e=>e+1))},children:(0,r.jsx)(o.I,{name:"trash",size:12})})]}),a&&(0,r.jsx)("div",{className:"bd",children:a}),e.reply?(0,r.jsxs)("div",{className:"rep",children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",e.reply]}):(0,r.jsxs)("button",{className:"dz-mini-btn",onClick:()=>{e9(!0);let t=ei(es(e));h(`On screen ${ad}, I marked a region for review (${t}).${a?` My note: "${a}"`:" Please review and refine it."} Update the screen accordingly.`)},children:[(0,r.jsx)(o.I,{name:"bot",size:12})," ",el("design.comments.askGrace")]})]},e.id)})]}),"history"===a5&&(U=t2.current.get(ad),B=U?.pos??-1,X=U?U.labels.map((e,t)=>({lab:e,i:t})):[],(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:U&&U.stack.length>1?el("design.history.pos",{pos:B+1,total:U.stack.length}):el("design.history.title")}),al?X.length<=1?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.history.noEdits")}):(0,r.jsx)("div",{style:{display:"flex",flexDirection:"column",gap:2},children:X.slice().reverse().map(({lab:e,i:t})=>(0,r.jsxs)("div",{onClick:()=>{let e,a;return e=t9.current,void((a=t2.current.get(e))&&!(t<0)&&!(t>=a.stack.length)&&t!==a.pos&&(a.pos=t,aD(e,a)))},style:{display:"flex",alignItems:"center",gap:8,padding:"7px 9px",borderRadius:8,cursor:"pointer",fontSize:12,background:t===B?"rgba(224,164,78,.12)":"transparent",color:t===B?"var(--accent)":"var(--text-dim)",border:"1px solid "+(t===B?"var(--accent)":"transparent")},children:[(0,r.jsx)("span",{style:{fontVariantNumeric:"tabular-nums",opacity:.6,minWidth:16,textAlign:"right"},children:0===t?"•":t}),(0,r.jsx)("span",{style:{flex:1,fontWeight:t===B?700:500},children:e||el("design.history.edited")}),t===B&&(0,r.jsx)("span",{style:{fontSize:10,fontWeight:700},children:el("design.history.current")})]},t))}):(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)"},children:el("design.history.openScreen")})]})),"versions"===a5&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"dz-sec",children:el("design.versions.title")}),0===tA.length?(0,r.jsx)("div",{style:{fontSize:11.5,color:"var(--text-dim)",lineHeight:1.5},children:el("design.versions.empty")}):tA.map(e=>(0,r.jsxs)("div",{className:"dz-vnode"+(tO===e.id?" active":""),onClick:()=>tW(tO===e.id?null:e.id),title:el("design.versions.revertHint"),children:[(0,r.jsxs)("div",{className:"vt",children:[e.label," ",(0,r.jsx)("span",{className:"dz-tag",children:el("design.versions.files",{count:e.files.length,plural:1===e.files.length?"":"s"})})]}),(0,r.jsx)("div",{className:"vs",children:e.note}),(0,r.jsx)("div",{className:"vtime",children:function(e,t){let a=Math.max(0,Math.round((new Date().getTime()-e)/1e3));if(a<60)return t("design.time.justNow");let r=Math.round(a/60);if(r<60)return t("design.time.minAgo",{n:r});let n=Math.round(r/60);return n<24?t("design.time.hAgo",{n:n}):t("design.time.dAgo",{n:Math.round(n/24)})}(e.createdAt,el)}),tO===e.id&&(0,r.jsxs)("div",{className:"dz-addrow",style:{marginTop:8,padding:"6px"},onClick:t=>{t.stopPropagation(),e.restorable?T(e.id).then(async t=>{if(!t.ok)return void aW(t.error||el("design.toast.restoreFailed"));let a=t9.current;tQ.current=!1,t0.current="",t2.current.delete(a),t6(e=>e+1);let r=await g(a);r.ok&&null!=r.html&&(eQ(r.html),tv(null)),aW(el("design.toast.restored",{label:e.label}))}):(e9(!0),R(e.label,e.note)),tW(null)},children:[(0,r.jsx)(o.I,{name:"refresh",size:12})," ",el("design.versions.revertTo",{label:e.label})]})]},e.id))]})]})]}):(0,r.jsxs)("div",{className:"dz-strip right",onClick:()=>ev(!0),title:el("design.rail.expand"),children:[(0,r.jsx)(o.I,{name:"chevronLeft",size:16}),(0,r.jsx)(o.I,{name:"sidebarIcon",size:16})]}),eL&&(0,r.jsx)("div",{className:"dz-modal-bg",onClick:()=>eO(!1),children:(0,r.jsxs)("div",{className:"dz-modal",onClick:e=>e.stopPropagation(),children:[(0,r.jsxs)("div",{className:"dz-modal-h",children:[(0,r.jsx)("div",{className:"ic",children:(0,r.jsx)(o.I,{name:"arrowDown",size:17})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("div",{className:"t",children:el("design.export.title")}),(0,r.jsx)("div",{className:"s",children:el("design.export.sub")})]}),(0,r.jsx)("div",{className:"x",onClick:()=>eO(!1),children:(0,r.jsx)(o.I,{name:"close",size:16})})]}),(0,r.jsx)("div",{className:"dz-modal-b",children:[[el("design.export.row.screens"),String(as.length)],[el("design.export.row.comments"),String(tD.filter(e=>!en(e)).length)],[el("design.export.row.versions"),String(tA.length)],[el("design.export.row.tokens"),el("design.export.row.tokensVal")],[el("design.export.row.approvedMd"),""],[el("design.export.row.kbRag"),""],[el("design.export.row.adaNotified"),""],[el("design.export.row.planner"),""]].map(e=>(0,r.jsxs)("div",{className:"dz-dl",children:[(0,r.jsx)("span",{className:"ck",children:(0,r.jsx)(o.I,{name:"check",size:11})}),e[0],e[1]&&(0,r.jsx)("span",{className:"n",children:e[1]})]},e[0]))}),(0,r.jsxs)("div",{className:"dz-modal-f",children:[(0,r.jsx)("span",{className:"note",children:el("design.export.note")}),(0,r.jsx)("div",{className:"dz-spacer"}),(0,r.jsxs)("button",{className:"dz-mini-btn",disabled:eP,onClick:aX,children:[(0,r.jsx)(o.I,{name:"cpu",size:13})," ",el("design.export.buildProd")]}),(0,r.jsx)("button",{className:"dz-mini-btn",onClick:()=>eO(!1),children:el("design.export.close")}),(0,r.jsxs)("button",{className:"dz-mini-btn accent",disabled:eP||ao,onClick:()=>{eO(!1),aF()},children:[(0,r.jsx)(o.I,{name:"check",size:13})," ",el("design.export.approveDesign")]})]})]})}),eW&&(0,r.jsx)("div",{className:"dz-flash",children:eW})]})}function ed(e){return(0,r.jsx)(eo,{grace:e.grace,context:e.context,status:e.status,tokens:e.tokens})}},5139:(e,t,a)=>{"use strict";a.d(t,{R:()=>n});var r=a(7797);let n=(0,r.createServerReference)("006a170afb6abc35cef34fd85cf16f40dd0635121c",r.callServer,void 0,r.findSourceMapURL,"startDevServerAction")},7654:(e,t,a)=>{Promise.resolve().then(a.t.bind(a,9746,23)),Promise.resolve().then(a.bind(a,4137)),Promise.resolve().then(a.bind(a,6516)),Promise.resolve().then(a.bind(a,8183)),Promise.resolve().then(a.bind(a,4822)),Promise.resolve().then(a.bind(a,5412)),Promise.resolve().then(a.bind(a,2454)),Promise.resolve().then(a.bind(a,9508)),Promise.resolve().then(a.bind(a,3891))},7985:(e,t,a)=>{"use strict";a.d(t,{K:()=>n});var r=a(7797);let n=(0,r.createServerReference)("40f4edd374e432e6657aea53c1202eefb711b7f6cb",r.callServer,void 0,r.findSourceMapURL,"previewFrameableAction")}},e=>{e.O(0,[928,5452,171,6871,7218,4365,2235,7066,7358],()=>e(e.s=7654)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1387],{5206:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,9746,23)),Promise.resolve().then(n.bind(n,7243)),Promise.resolve().then(n.bind(n,6516)),Promise.resolve().then(n.bind(n,8183)),Promise.resolve().then(n.bind(n,4822)),Promise.resolve().then(n.bind(n,5412)),Promise.resolve().then(n.bind(n,2454)),Promise.resolve().then(n.bind(n,9508)),Promise.resolve().then(n.bind(n,3891))},7243:(e,s,n)=>{"use strict";n.d(s,{DocEditor:()=>m});var t=n(4275),i=n(2899),a=n(8343),o=n(6054),r=n(888),l=n(7797);let c=(0,l.createServerReference)("60cb104180afa8634561452ab62b232c2f02435771",l.callServer,void 0,l.findSourceMapURL,"saveDoc");var d=n(869);function m({docId:e,path:s,initial:n}){let l=(0,d.k)(),[h,v]=(0,i.useState)(!1),[b,u]=(0,i.useState)(n),[x,j]=(0,i.useTransition)();return(0,t.jsxs)("div",{className:"card",style:{maxWidth:880},children:[(0,t.jsxs)("div",{style:{display:"flex",gap:8,alignItems:"center",marginBottom:12},children:[h?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("button",{className:"btn-accent",disabled:x,onClick:()=>j(async()=>{await c(e,b),v(!1)}),children:[(0,t.jsx)(r.I,{name:"check",size:13})," ",l(x?"common.saving":"docsedit.saveMd")]}),(0,t.jsx)("button",{className:"btn-ghost",onClick:()=>{u(n),v(!1)},children:l("common.cancel")})]}):(0,t.jsxs)("button",{className:"btn-ghost",onClick:()=>v(!0),children:[(0,t.jsx)(r.I,{name:"command",size:13})," ",l("common.edit")]}),(0,t.jsx)("span",{className:"mono",style:{marginLeft:"auto",fontSize:11,color:"var(--text-faint)"},children:s})]}),h?(0,t.jsx)("textarea",{className:"persona-ta mono",style:{minHeight:460,width:"100%"},value:b,onChange:e=>u(e.target.value)}):(0,t.jsx)("div",{className:"md",children:b.trim()?(0,t.jsx)(a.oz,{remarkPlugins:[o.A],children:b}):(0,t.jsx)("div",{className:"muted",children:l("docsedit.emptyFile")})})]})}}},e=>{e.O(0,[928,5452,171,6871,7218,2235,7066,7358],()=>e(e.s=5206)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1059],{4685:(e,s,n)=>{"use strict";n.d(s,{GenerateDocsButton:()=>l});var r=n(4275),i=n(2899),o=n(6295),t=n(888),c=n(7797);let a=(0,c.createServerReference)("00128c8dbdca8c6f2e4a5425620c99c3c7e2496e21",c.callServer,void 0,c.findSourceMapURL,"generateDocs");var d=n(869);function l(){let e=(0,d.k)(),[s,n]=(0,i.useTransition)(),c=(0,o.useRouter)();return(0,r.jsxs)("button",{className:"btn-accent",disabled:s,onClick:()=>n(async()=>{await a(),c.refresh()}),children:[(0,r.jsx)(t.I,{name:"doc",size:14,className:s?"sync-spin":""})," ",e(s?"docs.writing":"docs.generate")]})}},8492:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,9746,23)),Promise.resolve().then(n.bind(n,4685)),Promise.resolve().then(n.bind(n,6516)),Promise.resolve().then(n.bind(n,8183)),Promise.resolve().then(n.bind(n,4822)),Promise.resolve().then(n.bind(n,5412)),Promise.resolve().then(n.bind(n,2454)),Promise.resolve().then(n.bind(n,9508)),Promise.resolve().then(n.bind(n,3891))}},e=>{e.O(0,[928,171,6871,7218,2235,7066,7358],()=>e(e.s=8492)),_N_E=e.O()}]);
@@ -0,0 +1 @@
1
+ (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8880],{869:(e,t,r)=>{"use strict";r.d(t,{LangProvider:()=>a,k:()=>d});var n=r(4275),s=r(2899),o=r(171);let i=(0,s.createContext)("en");function a({lang:e,children:t}){return(0,n.jsx)(i.Provider,{value:e,children:t})}function d(){let e=(0,s.useContext)(i);return(t,r)=>(0,o.t)(e,t,r)}},4500:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>i});var n=r(4275),s=r(6295),o=r(869);function i({error:e,reset:t}){let r=(0,s.useRouter)(),a=(0,o.k)();return(0,n.jsx)("div",{style:{height:"100%",display:"grid",placeItems:"center",padding:40},children:(0,n.jsxs)("div",{style:{maxWidth:480,textAlign:"center"},children:[(0,n.jsx)("div",{style:{fontSize:16,fontWeight:800,marginBottom:8,color:"var(--text)"},children:a("errors.screenTitle")}),(0,n.jsx)("div",{style:{fontSize:13,color:"var(--text-dim)",marginBottom:14,wordBreak:"break-word"},children:e.message||a("errors.unexpected")}),e.digest&&(0,n.jsxs)("div",{style:{fontSize:11,color:"var(--text-faint)",marginBottom:16,fontFamily:"var(--mono-font, monospace)"},children:[a("errors.digest"),": ",e.digest]}),(0,n.jsxs)("div",{style:{display:"flex",gap:8,justifyContent:"center"},children:[(0,n.jsx)("button",{className:"btn-accent",onClick:()=>t(),children:a("errors.tryAgain")}),(0,n.jsx)("button",{className:"btn-ghost",onClick:()=>r.push("/"),children:a("errors.goDashboard")})]})]})})}},6295:(e,t,r)=>{"use strict";var n=r(2095);r.o(n,"usePathname")&&r.d(t,{usePathname:function(){return n.usePathname}}),r.o(n,"useRouter")&&r.d(t,{useRouter:function(){return n.useRouter}})},7293:(e,t,r)=>{Promise.resolve().then(r.bind(r,4500))}},e=>{e.O(0,[171,2235,7066,7358],()=>e(e.s=7293)),_N_E=e.O()}]);