@12ui/design 0.2.80 → 0.2.82

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 (324) hide show
  1. package/README.md +8 -9
  2. package/SKILL.md +2 -8
  3. package/dist/cli-capabilities.d.ts +2 -2
  4. package/dist/cli-capabilities.js +2 -2
  5. package/dist/cli-capabilities.js.map +1 -1
  6. package/dist/cli-help/design.d.ts +1 -1
  7. package/dist/cli-help/design.d.ts.map +1 -1
  8. package/dist/cli-help/design.js +0 -1
  9. package/dist/cli-help/design.js.map +1 -1
  10. package/dist/cli-help/index.d.ts +3 -3
  11. package/dist/cli-help/workflow.d.ts +2 -2
  12. package/dist/cli-help/workflow.js +4 -4
  13. package/dist/cli-help/workflow.js.map +1 -1
  14. package/dist/cli-usage.d.ts.map +1 -1
  15. package/dist/cli-usage.js +5 -4
  16. package/dist/cli-usage.js.map +1 -1
  17. package/dist/cli-workspace-draw.d.ts.map +1 -1
  18. package/dist/cli-workspace-draw.js +2 -0
  19. package/dist/cli-workspace-draw.js.map +1 -1
  20. package/dist/cli-workspace-runner.d.ts.map +1 -1
  21. package/dist/cli-workspace-runner.js +2 -1
  22. package/dist/cli-workspace-runner.js.map +1 -1
  23. package/dist/corpus-client.d.ts +3 -0
  24. package/dist/corpus-client.d.ts.map +1 -1
  25. package/dist/corpus-client.js +2 -0
  26. package/dist/corpus-client.js.map +1 -1
  27. package/dist/corpus-public-renditions.d.ts +33 -0
  28. package/dist/corpus-public-renditions.d.ts.map +1 -0
  29. package/dist/corpus-public-renditions.js +55 -0
  30. package/dist/corpus-public-renditions.js.map +1 -0
  31. package/dist/legacy-skill-catalog.d.ts.map +1 -1
  32. package/dist/legacy-skill-catalog.js +11 -0
  33. package/dist/legacy-skill-catalog.js.map +1 -1
  34. package/dist/mcp-slate-command.d.ts +0 -2
  35. package/dist/mcp-slate-command.d.ts.map +1 -1
  36. package/dist/mcp-slate-command.js +0 -4
  37. package/dist/mcp-slate-command.js.map +1 -1
  38. package/dist/mcp-slate-resource.d.ts.map +1 -1
  39. package/dist/mcp-slate-resource.js +6 -4
  40. package/dist/mcp-slate-resource.js.map +1 -1
  41. package/dist/mcp-slate-tool-defs.d.ts.map +1 -1
  42. package/dist/mcp-slate-tool-defs.js +8 -6
  43. package/dist/mcp-slate-tool-defs.js.map +1 -1
  44. package/dist/mcp-slate-tools.d.ts.map +1 -1
  45. package/dist/mcp-slate-tools.js +8 -1
  46. package/dist/mcp-slate-tools.js.map +1 -1
  47. package/dist/mcp-slate-ui-copy.d.ts +88 -208
  48. package/dist/mcp-slate-ui-copy.d.ts.map +1 -1
  49. package/dist/mcp-slate-ui-copy.js +58 -159
  50. package/dist/mcp-slate-ui-copy.js.map +1 -1
  51. package/dist/mcp-slate-ui-locales/de-DE.d.ts.map +1 -1
  52. package/dist/mcp-slate-ui-locales/de-DE.js +44 -83
  53. package/dist/mcp-slate-ui-locales/de-DE.js.map +1 -1
  54. package/dist/mcp-slate-ui-locales/es-419.d.ts.map +1 -1
  55. package/dist/mcp-slate-ui-locales/es-419.js +44 -83
  56. package/dist/mcp-slate-ui-locales/es-419.js.map +1 -1
  57. package/dist/mcp-slate-ui-locales/es-ES.d.ts.map +1 -1
  58. package/dist/mcp-slate-ui-locales/es-ES.js +44 -83
  59. package/dist/mcp-slate-ui-locales/es-ES.js.map +1 -1
  60. package/dist/mcp-slate-ui-locales/fr-FR.d.ts.map +1 -1
  61. package/dist/mcp-slate-ui-locales/fr-FR.js +44 -83
  62. package/dist/mcp-slate-ui-locales/fr-FR.js.map +1 -1
  63. package/dist/mcp-slate-ui-locales/hi-IN.d.ts.map +1 -1
  64. package/dist/mcp-slate-ui-locales/hi-IN.js +44 -83
  65. package/dist/mcp-slate-ui-locales/hi-IN.js.map +1 -1
  66. package/dist/mcp-slate-ui-locales/it-IT.d.ts.map +1 -1
  67. package/dist/mcp-slate-ui-locales/it-IT.js +44 -83
  68. package/dist/mcp-slate-ui-locales/it-IT.js.map +1 -1
  69. package/dist/mcp-slate-ui-locales/ja-JP.d.ts.map +1 -1
  70. package/dist/mcp-slate-ui-locales/ja-JP.js +44 -83
  71. package/dist/mcp-slate-ui-locales/ja-JP.js.map +1 -1
  72. package/dist/mcp-slate-ui-locales/ko-KR.d.ts.map +1 -1
  73. package/dist/mcp-slate-ui-locales/ko-KR.js +44 -83
  74. package/dist/mcp-slate-ui-locales/ko-KR.js.map +1 -1
  75. package/dist/mcp-slate-ui-locales/pt-BR.d.ts.map +1 -1
  76. package/dist/mcp-slate-ui-locales/pt-BR.js +44 -83
  77. package/dist/mcp-slate-ui-locales/pt-BR.js.map +1 -1
  78. package/dist/mcp-slate-ui-locales/zh-CN.d.ts.map +1 -1
  79. package/dist/mcp-slate-ui-locales/zh-CN.js +44 -83
  80. package/dist/mcp-slate-ui-locales/zh-CN.js.map +1 -1
  81. package/dist/mcp-slate-ui-locales/zh-TW.d.ts.map +1 -1
  82. package/dist/mcp-slate-ui-locales/zh-TW.js +44 -83
  83. package/dist/mcp-slate-ui-locales/zh-TW.js.map +1 -1
  84. package/dist/mcp-slate-ui-script-bridge.d.ts.map +1 -1
  85. package/dist/mcp-slate-ui-script-bridge.js +19 -7
  86. package/dist/mcp-slate-ui-script-bridge.js.map +1 -1
  87. package/dist/mcp-slate-ui-script-browser.d.ts.map +1 -1
  88. package/dist/mcp-slate-ui-script-browser.js +0 -3
  89. package/dist/mcp-slate-ui-script-browser.js.map +1 -1
  90. package/dist/mcp-slate-ui-script-designs.d.ts +17 -0
  91. package/dist/mcp-slate-ui-script-designs.d.ts.map +1 -0
  92. package/dist/mcp-slate-ui-script-designs.js +365 -0
  93. package/dist/mcp-slate-ui-script-designs.js.map +1 -0
  94. package/dist/mcp-slate-ui-script-edit.d.ts +9 -0
  95. package/dist/mcp-slate-ui-script-edit.d.ts.map +1 -0
  96. package/dist/mcp-slate-ui-script-edit.js +71 -0
  97. package/dist/mcp-slate-ui-script-edit.js.map +1 -0
  98. package/dist/mcp-slate-ui-script-inline.d.ts +3 -9
  99. package/dist/mcp-slate-ui-script-inline.d.ts.map +1 -1
  100. package/dist/mcp-slate-ui-script-inline.js +28 -155
  101. package/dist/mcp-slate-ui-script-inline.js.map +1 -1
  102. package/dist/mcp-slate-ui-script-inspiration-collage.d.ts +13 -12
  103. package/dist/mcp-slate-ui-script-inspiration-collage.d.ts.map +1 -1
  104. package/dist/mcp-slate-ui-script-inspiration-collage.js +24 -24
  105. package/dist/mcp-slate-ui-script-inspiration-collage.js.map +1 -1
  106. package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts +23 -0
  107. package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts.map +1 -0
  108. package/dist/mcp-slate-ui-script-inspiration-gallery.js +221 -0
  109. package/dist/mcp-slate-ui-script-inspiration-gallery.js.map +1 -0
  110. package/dist/mcp-slate-ui-script-inspiration-grid.d.ts +14 -21
  111. package/dist/mcp-slate-ui-script-inspiration-grid.d.ts.map +1 -1
  112. package/dist/mcp-slate-ui-script-inspiration-grid.js +124 -196
  113. package/dist/mcp-slate-ui-script-inspiration-grid.js.map +1 -1
  114. package/dist/mcp-slate-ui-script-inspiration.d.ts +8 -9
  115. package/dist/mcp-slate-ui-script-inspiration.d.ts.map +1 -1
  116. package/dist/mcp-slate-ui-script-inspiration.js +213 -130
  117. package/dist/mcp-slate-ui-script-inspiration.js.map +1 -1
  118. package/dist/mcp-slate-ui-script-l10n.d.ts.map +1 -1
  119. package/dist/mcp-slate-ui-script-l10n.js +2 -0
  120. package/dist/mcp-slate-ui-script-l10n.js.map +1 -1
  121. package/dist/mcp-slate-ui-script-more.d.ts +4 -33
  122. package/dist/mcp-slate-ui-script-more.d.ts.map +1 -1
  123. package/dist/mcp-slate-ui-script-more.js +6 -279
  124. package/dist/mcp-slate-ui-script-more.js.map +1 -1
  125. package/dist/mcp-slate-ui-script-pause.d.ts +10 -6
  126. package/dist/mcp-slate-ui-script-pause.d.ts.map +1 -1
  127. package/dist/mcp-slate-ui-script-pause.js +45 -30
  128. package/dist/mcp-slate-ui-script-pause.js.map +1 -1
  129. package/dist/mcp-slate-ui-script-references.d.ts +19 -0
  130. package/dist/mcp-slate-ui-script-references.d.ts.map +1 -0
  131. package/dist/mcp-slate-ui-script-references.js +102 -0
  132. package/dist/mcp-slate-ui-script-references.js.map +1 -0
  133. package/dist/mcp-slate-ui-script-remote.d.ts +13 -12
  134. package/dist/mcp-slate-ui-script-remote.d.ts.map +1 -1
  135. package/dist/mcp-slate-ui-script-remote.js +46 -27
  136. package/dist/mcp-slate-ui-script-remote.js.map +1 -1
  137. package/dist/mcp-slate-ui-script-scribble.d.ts +2 -2
  138. package/dist/mcp-slate-ui-script-scribble.js +7 -7
  139. package/dist/mcp-slate-ui-script-select.d.ts +4 -9
  140. package/dist/mcp-slate-ui-script-select.d.ts.map +1 -1
  141. package/dist/mcp-slate-ui-script-select.js +13 -37
  142. package/dist/mcp-slate-ui-script-select.js.map +1 -1
  143. package/dist/mcp-slate-ui-script-stage.d.ts +4 -10
  144. package/dist/mcp-slate-ui-script-stage.d.ts.map +1 -1
  145. package/dist/mcp-slate-ui-script-stage.js +28 -141
  146. package/dist/mcp-slate-ui-script-stage.js.map +1 -1
  147. package/dist/mcp-slate-ui-script-state.d.ts +1 -1
  148. package/dist/mcp-slate-ui-script-state.d.ts.map +1 -1
  149. package/dist/mcp-slate-ui-script-state.js +9 -4
  150. package/dist/mcp-slate-ui-script-state.js.map +1 -1
  151. package/dist/mcp-slate-ui-script-viewer.d.ts +18 -0
  152. package/dist/mcp-slate-ui-script-viewer.d.ts.map +1 -0
  153. package/dist/mcp-slate-ui-script-viewer.js +405 -0
  154. package/dist/mcp-slate-ui-script-viewer.js.map +1 -0
  155. package/dist/mcp-slate-ui-script.d.ts +4 -5
  156. package/dist/mcp-slate-ui-script.d.ts.map +1 -1
  157. package/dist/mcp-slate-ui-script.js +12 -13
  158. package/dist/mcp-slate-ui-script.js.map +1 -1
  159. package/dist/mcp-slate-ui-styles-designs.d.ts +10 -0
  160. package/dist/mcp-slate-ui-styles-designs.d.ts.map +1 -0
  161. package/dist/mcp-slate-ui-styles-designs.js +121 -0
  162. package/dist/mcp-slate-ui-styles-designs.js.map +1 -0
  163. package/dist/mcp-slate-ui-styles-inspiration.d.ts +13 -13
  164. package/dist/mcp-slate-ui-styles-inspiration.d.ts.map +1 -1
  165. package/dist/mcp-slate-ui-styles-inspiration.js +67 -33
  166. package/dist/mcp-slate-ui-styles-inspiration.js.map +1 -1
  167. package/dist/mcp-slate-ui-styles-pause.d.ts +2 -2
  168. package/dist/mcp-slate-ui-styles-pause.d.ts.map +1 -1
  169. package/dist/mcp-slate-ui-styles-pause.js +4 -8
  170. package/dist/mcp-slate-ui-styles-pause.js.map +1 -1
  171. package/dist/mcp-slate-ui-styles-stage.d.ts +3 -22
  172. package/dist/mcp-slate-ui-styles-stage.d.ts.map +1 -1
  173. package/dist/mcp-slate-ui-styles-stage.js +6 -74
  174. package/dist/mcp-slate-ui-styles-stage.js.map +1 -1
  175. package/dist/mcp-slate-ui-styles.d.ts +12 -19
  176. package/dist/mcp-slate-ui-styles.d.ts.map +1 -1
  177. package/dist/mcp-slate-ui-styles.js +97 -100
  178. package/dist/mcp-slate-ui-styles.js.map +1 -1
  179. package/dist/mcp-slate-ui.d.ts +12 -12
  180. package/dist/mcp-slate-ui.d.ts.map +1 -1
  181. package/dist/mcp-slate-ui.js +24 -23
  182. package/dist/mcp-slate-ui.js.map +1 -1
  183. package/dist/mcp-workflow-tools.js +2 -2
  184. package/dist/mcp-workflow-tools.js.map +1 -1
  185. package/dist/review-files-server.d.ts +8 -0
  186. package/dist/review-files-server.d.ts.map +1 -0
  187. package/dist/review-files-server.js +133 -0
  188. package/dist/review-files-server.js.map +1 -0
  189. package/dist/review-page-assets.d.ts +1 -1
  190. package/dist/review-page-assets.d.ts.map +1 -1
  191. package/dist/review-page-assets.js +3 -1
  192. package/dist/review-page-assets.js.map +1 -1
  193. package/dist/review-page.d.ts +8 -1
  194. package/dist/review-page.d.ts.map +1 -1
  195. package/dist/review-page.js +32 -21
  196. package/dist/review-page.js.map +1 -1
  197. package/dist/review-server-guard.d.ts +33 -0
  198. package/dist/review-server-guard.d.ts.map +1 -0
  199. package/dist/review-server-guard.js +65 -0
  200. package/dist/review-server-guard.js.map +1 -0
  201. package/dist/review-server.d.ts +2 -0
  202. package/dist/review-server.d.ts.map +1 -1
  203. package/dist/review-server.js +45 -74
  204. package/dist/review-server.js.map +1 -1
  205. package/dist/server.d.ts.map +1 -1
  206. package/dist/server.js +2 -0
  207. package/dist/server.js.map +1 -1
  208. package/dist/slate-actions.d.ts +22 -1
  209. package/dist/slate-actions.d.ts.map +1 -1
  210. package/dist/slate-actions.js +46 -2
  211. package/dist/slate-actions.js.map +1 -1
  212. package/dist/slate-browser-host.d.ts +8 -7
  213. package/dist/slate-browser-host.d.ts.map +1 -1
  214. package/dist/slate-browser-host.js +13 -10
  215. package/dist/slate-browser-host.js.map +1 -1
  216. package/dist/slate-browser-server.d.ts.map +1 -1
  217. package/dist/slate-browser-server.js +10 -4
  218. package/dist/slate-browser-server.js.map +1 -1
  219. package/dist/slate-commit.d.ts.map +1 -1
  220. package/dist/slate-commit.js +12 -5
  221. package/dist/slate-commit.js.map +1 -1
  222. package/dist/slate-handoff.d.ts.map +1 -1
  223. package/dist/slate-handoff.js +2 -3
  224. package/dist/slate-handoff.js.map +1 -1
  225. package/dist/slate-ids.d.ts +2 -1
  226. package/dist/slate-ids.d.ts.map +1 -1
  227. package/dist/slate-ids.js +3 -2
  228. package/dist/slate-ids.js.map +1 -1
  229. package/dist/slate-reference-ids.d.ts.map +1 -1
  230. package/dist/slate-reference-ids.js +1 -0
  231. package/dist/slate-reference-ids.js.map +1 -1
  232. package/dist/slate-round-prompt.d.ts +19 -0
  233. package/dist/slate-round-prompt.d.ts.map +1 -1
  234. package/dist/slate-round-prompt.js +22 -0
  235. package/dist/slate-round-prompt.js.map +1 -1
  236. package/dist/slate-round-runner.d.ts.map +1 -1
  237. package/dist/slate-round-runner.js +16 -12
  238. package/dist/slate-round-runner.js.map +1 -1
  239. package/dist/slate-round-search.d.ts.map +1 -1
  240. package/dist/slate-round-search.js +2 -0
  241. package/dist/slate-round-search.js.map +1 -1
  242. package/dist/slate-runtime.d.ts +3 -0
  243. package/dist/slate-runtime.d.ts.map +1 -1
  244. package/dist/slate-runtime.js +1 -0
  245. package/dist/slate-runtime.js.map +1 -1
  246. package/dist/slate-site-references-capture.d.ts +20 -0
  247. package/dist/slate-site-references-capture.d.ts.map +1 -0
  248. package/dist/slate-site-references-capture.js +119 -0
  249. package/dist/slate-site-references-capture.js.map +1 -0
  250. package/dist/slate-site-references-client.d.ts +35 -0
  251. package/dist/slate-site-references-client.d.ts.map +1 -0
  252. package/dist/slate-site-references-client.js +36 -0
  253. package/dist/slate-site-references-client.js.map +1 -0
  254. package/dist/slate-site-references-local.d.ts +6 -0
  255. package/dist/slate-site-references-local.d.ts.map +1 -0
  256. package/dist/slate-site-references-local.js +63 -0
  257. package/dist/slate-site-references-local.js.map +1 -0
  258. package/dist/slate-site-references-suggest.d.ts +36 -0
  259. package/dist/slate-site-references-suggest.d.ts.map +1 -0
  260. package/dist/slate-site-references-suggest.js +144 -0
  261. package/dist/slate-site-references-suggest.js.map +1 -0
  262. package/dist/slate-site-references.d.ts +57 -0
  263. package/dist/slate-site-references.d.ts.map +1 -0
  264. package/dist/slate-site-references.js +129 -0
  265. package/dist/slate-site-references.js.map +1 -0
  266. package/dist/slate-view-contract.d.ts +29 -1
  267. package/dist/slate-view-contract.d.ts.map +1 -1
  268. package/dist/slate-view.d.ts.map +1 -1
  269. package/dist/slate-view.js +5 -0
  270. package/dist/slate-view.js.map +1 -1
  271. package/dist/slate-workspace-parse.d.ts +2 -0
  272. package/dist/slate-workspace-parse.d.ts.map +1 -1
  273. package/dist/slate-workspace-parse.js +20 -3
  274. package/dist/slate-workspace-parse.js.map +1 -1
  275. package/dist/slate-workspace-types.d.ts +17 -2
  276. package/dist/slate-workspace-types.d.ts.map +1 -1
  277. package/dist/workflow/adapter-12ui.js +1 -1
  278. package/dist/workflow/adapter-12ui.js.map +1 -1
  279. package/dist/workflow/adapters.d.ts.map +1 -1
  280. package/dist/workflow/adapters.js +3 -3
  281. package/dist/workflow/adapters.js.map +1 -1
  282. package/dist/workflow/providers.js +2 -2
  283. package/dist/workflow/providers.js.map +1 -1
  284. package/dist/workflow/routing.d.ts +8 -1
  285. package/dist/workflow/routing.d.ts.map +1 -1
  286. package/dist/workflow/routing.js +9 -2
  287. package/dist/workflow/routing.js.map +1 -1
  288. package/dist/workflow/types.d.ts +5 -2
  289. package/dist/workflow/types.d.ts.map +1 -1
  290. package/dist/workflow/types.js.map +1 -1
  291. package/dist/workflow-transport.d.ts.map +1 -1
  292. package/dist/workflow-transport.js +4 -2
  293. package/dist/workflow-transport.js.map +1 -1
  294. package/dist/workspace-draw-messages.d.ts +27 -5
  295. package/dist/workspace-draw-messages.d.ts.map +1 -1
  296. package/dist/workspace-draw-messages.js +29 -3
  297. package/dist/workspace-draw-messages.js.map +1 -1
  298. package/dist/workspace-draw-run.d.ts +12 -0
  299. package/dist/workspace-draw-run.d.ts.map +1 -1
  300. package/dist/workspace-draw-run.js +47 -18
  301. package/dist/workspace-draw-run.js.map +1 -1
  302. package/dist/workspace-draw-types.d.ts +2 -1
  303. package/dist/workspace-draw-types.d.ts.map +1 -1
  304. package/dist/workspace-draw-types.js +1 -0
  305. package/dist/workspace-draw-types.js.map +1 -1
  306. package/dist/workspace-runner-main.d.ts +5 -0
  307. package/dist/workspace-runner-main.d.ts.map +1 -1
  308. package/dist/workspace-runner-main.js +15 -3
  309. package/dist/workspace-runner-main.js.map +1 -1
  310. package/open-design.json +2 -13
  311. package/package.json +1 -1
  312. package/skills/12ui-design/SKILL.md +7 -8
  313. package/dist/mcp-slate-ui-script-dialog.d.ts +0 -21
  314. package/dist/mcp-slate-ui-script-dialog.d.ts.map +0 -1
  315. package/dist/mcp-slate-ui-script-dialog.js +0 -351
  316. package/dist/mcp-slate-ui-script-dialog.js.map +0 -1
  317. package/dist/mcp-slate-ui-script-progress.d.ts +0 -7
  318. package/dist/mcp-slate-ui-script-progress.d.ts.map +0 -1
  319. package/dist/mcp-slate-ui-script-progress.js +0 -9
  320. package/dist/mcp-slate-ui-script-progress.js.map +0 -1
  321. package/dist/mcp-slate-ui-styles-dialog.d.ts +0 -20
  322. package/dist/mcp-slate-ui-styles-dialog.d.ts.map +0 -1
  323. package/dist/mcp-slate-ui-styles-dialog.js +0 -87
  324. package/dist/mcp-slate-ui-styles-dialog.js.map +0 -1
@@ -1,55 +1,30 @@
1
1
  /**
2
- * The fullscreen workspace: on the left the selection (the Generate more tile
3
- * on top, where the next round will land, its panel under it, then compact
4
- * thumbnails grouped by round, newest first, each option with its versions as
5
- * chips; one column that scrolls as a whole), in the middle one large image,
6
- * and under it one row of actions at the right: Edit, Branch and Convert, then
7
- * Select (primary) at the far right. Nothing else shows until a button is
8
- * clicked; the dialogs live in mcp-slate-ui-script-dialog.ts. One band above
9
- * the image says what is running (on the local plugin; on the hosted server
10
- * the person's agent says it), stopped or failed, with Resume when the work
11
- * can resume. Mounted only in fullscreen.
2
+ * The fullscreen workspace: the prompt card, the tab row (the tabs, the quiet selected count and the icon that leaves
3
+ * full screen), then the selected tab. Designs is the same tab as the
4
+ * card's (mcp-slate-ui-script-designs.ts) with every round shown and more room per tile; the large view
5
+ * (mcp-slate-ui-script-viewer.ts) covers the workspace when a design is opened. Mounted only in fullscreen.
12
6
  */
13
7
  export const SLATE_UI_STAGE = String.raw `
14
8
  var stageBuilt = false;
15
9
  var stageEls = {};
16
10
 
17
- var ICON_CLOSE = "M6 6l12 12M18 6L6 18";
18
- function iconButton(label, path, onclick) {
19
- var b = button("", "iconbtn", onclick);
20
- b.setAttribute("aria-label", label);
21
- b.title = label;
22
- b.innerHTML = '<svg viewBox="0 0 24 24" width="18" height="18" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="' + path + '"/></svg>';
23
- return b;
24
- }
25
-
26
11
  function buildStageSkeleton() {
27
12
  var stage = $("stage");
28
13
  stage.textContent = "";
14
+ stage.appendChild(buildBriefField());
29
15
  var head = el("header", "stagehead");
30
16
  head.appendChild(el("h1", "sr", t("title")));
31
17
  head.appendChild(buildTabs());
32
- head.appendChild(el("span", "spacer"));
33
- stageEls.close = iconButton(t("closeWorkspace"), ICON_CLOSE, closeWorkspace);
18
+ var count = el("span", "selcount");
19
+ count.setAttribute("data-selcount", "");
20
+ count.setAttribute("aria-live", "polite");
21
+ head.appendChild(count);
22
+ stageEls.close = iconAction(t("closeWorkspace"), ICON.collapse, closeWorkspace);
23
+ stageEls.close.className = "iconbtn";
34
24
  head.appendChild(stageEls.close);
35
-
36
25
  stageEls.body = el("div", "stagebody");
37
- stageEls.rail = el("nav", "rail");
38
- stageEls.rail.setAttribute("aria-label", t("tabDesigns"));
39
- var main = el("section", "main");
40
26
  stageEls.pause = el("div", "pausebar hidden");
41
- stageEls.band = el("div", "band hidden");
42
- stageEls.band.setAttribute("role", "status");
43
- stageEls.hero = el("div", "hero");
44
- var row = el("div", "actionrow");
45
- stageEls.edit = button(t("edit"), "", function () { openDialog("edit", stageEls.edit); });
46
- stageEls.branch = button(t("branch"), "", function () { openDialog("branch", stageEls.branch); });
47
- stageEls.convert = button(t("convert"), "", function () { openDialog("convert", stageEls.convert); });
48
- stageEls.select = button(t("select"), "primary", function () { doSelect(selectedVersion()); });
49
- stageEls.editWhy = el("span", "sr");
50
- stageEls.editWhy.id = "edit-why";
51
- // Select is last: the row is right-aligned, so it ends at the picture's right edge.
52
- [stageEls.edit, stageEls.branch, stageEls.convert, stageEls.select, stageEls.editWhy].forEach(function (b) { row.appendChild(b); });
27
+ stageEls.designs = el("div", "designs");
53
28
  stageEls.status = el("p", "status");
54
29
  stageEls.status.setAttribute("data-status", "");
55
30
  stageEls.status.setAttribute("role", "status");
@@ -57,81 +32,20 @@ export const SLATE_UI_STAGE = String.raw `
57
32
  // A line set before the workspace was built (the first view arrives first) still shows.
58
33
  stageEls.status.textContent = state.status.text;
59
34
  if (state.status.kind) stageEls.status.className = "status " + state.status.kind;
60
- main.appendChild(stageEls.pause);
61
- main.appendChild(stageEls.band);
62
- main.appendChild(stageEls.hero);
63
- main.appendChild(row);
64
- main.appendChild(stageEls.status);
65
- // Generate more tops the selection: rounds are newest first, so it sits where the next round will appear, in the
66
- // column's own flow (it scrolls with the rounds and never lies over one), and its panel opens directly under it.
67
- stageEls.moreSlot = el("div", "moreslot");
68
- stageEls.moreSlot.appendChild(moreTile());
69
- stageEls.more = el("div", "morehost");
70
- var selection = el("div", "selection");
71
- selection.appendChild(stageEls.moreSlot);
72
- selection.appendChild(stageEls.more);
73
- selection.appendChild(stageEls.rail);
74
- stageEls.body.appendChild(selection);
75
- stageEls.body.appendChild(main);
35
+ stageEls.body.appendChild(stageEls.pause);
36
+ stageEls.body.appendChild(stageEls.status);
37
+ stageEls.body.appendChild(stageEls.designs);
76
38
  stageEls.inspiration = el("div", "inspiration hidden");
77
- stageEls.dialog = el("div", "dialogmount");
78
-
39
+ stageEls.references = el("div", "inspiration hidden");
40
+ stageEls.viewer = el("div", "viewermount");
79
41
  stage.appendChild(head);
80
42
  stage.appendChild(stageEls.body);
81
43
  stage.appendChild(stageEls.inspiration);
82
- stage.appendChild(stageEls.dialog);
44
+ stage.appendChild(stageEls.references);
45
+ stage.appendChild(stageEls.viewer);
83
46
  stageBuilt = true;
84
47
  }
85
48
 
86
- // A chip is one version of an option; its title carries the words of the edit that made it (the person's own words;
87
- // an edit made from a drawing alone says so, rather than show the instruction the server wrote for the model).
88
- function chipTitle(v) {
89
- if (v.promptFromMarks) return t("versionTitleMarks", { label: v.label });
90
- return v.prompt ? t("versionTitle", { label: v.label, prompt: v.prompt }) : v.label;
91
- }
92
-
93
- function buildRail(rail) {
94
- var v = state.view;
95
- v.rounds.slice().sort(function (a, b) { return b.index - a.index; }).forEach(function (round) {
96
- var section = el("div", "round");
97
- var head = el("h2", "roundhead", t("roundHeading", { n: round.index }));
98
- var title = roundTitle(round);
99
- if (title) head.title = title;
100
- section.appendChild(head);
101
- var list = el("ul", "options");
102
- var ofRound = orderedCandidates().filter(function (c) { return c.roundId === round.roundId; }).sort(byLabel);
103
- if (ofRound.length) setShape(list, ratioOf(ofRound[0]));
104
- ofRound.forEach(function (c) {
105
- var item = el("li", "option");
106
- item.appendChild(thumbButton(c, "opt"));
107
- var versions = versionsOf(c);
108
- if (versions.length > 1) {
109
- var chips = el("div", "chips");
110
- versions.forEach(function (version) {
111
- var on = state.sel.versionId === version.versionId;
112
- var chip = button(version.label, "chip" + (on ? " selected" : ""), function () { selectCandidate(c.candidateId, version.versionId); });
113
- chip.title = chipTitle(version);
114
- chip.setAttribute("aria-label", t("versionName", { label: version.label }));
115
- chip.setAttribute("aria-pressed", on ? "true" : "false");
116
- chips.appendChild(chip);
117
- });
118
- item.appendChild(chips);
119
- }
120
- list.appendChild(item);
121
- });
122
- section.appendChild(list);
123
- rail.appendChild(section);
124
- });
125
- }
126
-
127
- // ---- the band: what is running, stopped or failed ----
128
- function buildBand(node, band) {
129
- node.appendChild(el("span", "bandtext" + (band.kind === "failed" ? " err" : ""), band.text));
130
- if (band.op.resumable) {
131
- var b = button(t("resume"), "textbtn", function () { actResume(band.op, b); });
132
- node.appendChild(b);
133
- }
134
- }
135
49
  function actResume(op, buttonEl) {
136
50
  if (state.opBusy[op.opId]) return;
137
51
  state.opBusy[op.opId] = true;
@@ -142,20 +56,6 @@ export const SLATE_UI_STAGE = String.raw `
142
56
  }, function (err) { setStatus(errText(err), "err"); }).then(function () { state.opBusy[op.opId] = false; if (buttonEl) buttonEl.disabled = false; });
143
57
  }
144
58
 
145
- function syncStageControls(selectLabel, selectDisabled) {
146
- if (!stageBuilt || !isFullscreen()) return;
147
- var v = selectedVersion();
148
- if (selectLabel !== undefined) { stageEls.select.textContent = selectLabel; stageEls.select.disabled = selectDisabled; }
149
- // Edit is off when the shown version cannot be edited; the reason is its accessible description, not a tooltip.
150
- var blocked = !v || !v.editable;
151
- stageEls.edit.disabled = blocked;
152
- stageEls.editWhy.textContent = blocked && v && v.editBlockedReason ? serverText(v.editBlockedL10n, v.editBlockedReason) : "";
153
- if (blocked && v && v.editBlockedReason) stageEls.edit.setAttribute("aria-describedby", "edit-why"); else stageEls.edit.removeAttribute("aria-describedby");
154
- stageEls.branch.disabled = !v;
155
- stageEls.convert.disabled = !v;
156
- }
157
-
158
- // ---- render ----
159
59
  function renderStage() {
160
60
  var v = state.view;
161
61
  if (!stageBuilt) buildStageSkeleton();
@@ -163,32 +63,19 @@ export const SLATE_UI_STAGE = String.raw `
163
63
  syncTabs();
164
64
  var onDesigns = state.tab === "designs";
165
65
  stageEls.body.classList.toggle("hidden", !onDesigns);
166
- stageEls.inspiration.classList.toggle("hidden", onDesigns);
66
+ stageEls.inspiration.classList.toggle("hidden", state.tab !== "inspiration");
67
+ stageEls.references.classList.toggle("hidden", state.tab !== "references");
68
+ renderViewer();
69
+ if (state.tab === "references") { renderReferences(stageEls.references, "stage"); return; }
167
70
  if (!onDesigns) { renderInspiration(stageEls.inspiration, "stage"); return; }
168
- var c = selectedCandidate();
169
- var sel = selectedVersion();
170
- // With no option there is nothing to draw more of: no tile (openMore refuses too).
171
- stageEls.moreSlot.classList.toggle("hidden", v.candidates.length === 0);
71
+ syncPauseHost(stageEls.pause, true);
172
72
  if (v.candidates.length === 0) {
173
- stageEls.rail.textContent = "";
174
- stageEls.rail.__sig = "";
175
- stageEls.band.classList.add("hidden");
176
- stageEls.hero.__sig = "";
177
- stageEls.hero.textContent = "";
178
- stageEls.hero.classList.add("note");
179
- stageEls.hero.appendChild(el("div", "heronote", t("empty")));
180
- syncStageControls(t("select"), true);
73
+ stageEls.designs.__sig = "";
74
+ stageEls.designs.textContent = "";
75
+ stageEls.designs.appendChild(el("p", "note", t("empty")));
181
76
  return;
182
77
  }
183
- var railSig = JSON.stringify([state.sel, v.rounds.map(function (r) { return [r.roundId, r.index, r.kind, r.fromVersionId]; }),
184
- orderedCandidates().map(function (x) { return thumbSignature(x).concat([x.versionIds]); })]);
185
- setIfChanged(stageEls.rail, railSig, buildRail);
186
- syncPauseHost(stageEls.pause, true);
187
- var band = activeBand(v);
188
- stageEls.band.classList.toggle("hidden", !band);
189
- setIfChanged(stageEls.band, band ? JSON.stringify([band.kind, band.text, band.op.opId, band.op.resumable]) : "", function (node) { if (band) buildBand(node, band); });
190
- setIfChanged(stageEls.hero, heroSignature(c, sel), function (node) { heroInto(node, c, sel); });
191
- syncControls();
78
+ renderDesigns(stageEls.designs, "stage");
192
79
  }
193
80
  `;
194
81
  //# sourceMappingURL=mcp-slate-ui-script-stage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-slate-ui-script-stage.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-stage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoLvC,CAAC"}
1
+ {"version":3,"file":"mcp-slate-ui-script-stage.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-stage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyEvC,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * concurrent app requests app-wide, so a view keeps at most three image loads
6
6
  * in flight, version pictures and reference pictures together (leaving room
7
7
  * for status and an action); it polls only while something is running and the
8
- * document is visible, with backoff from two to ten seconds and a `since`
8
+ * document is visible, with backoff from two to five seconds and a `since`
9
9
  * stamp so an unchanged answer costs no re-render. A hidden view issues no
10
10
  * calls at all.
11
11
  */
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-slate-ui-script-state.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,QAyT1B,CAAC"}
1
+ {"version":3,"file":"mcp-slate-ui-script-state.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,cAAc,QA8T1B,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * concurrent app requests app-wide, so a view keeps at most three image loads
6
6
  * in flight, version pictures and reference pictures together (leaving room
7
7
  * for status and an action); it polls only while something is running and the
8
- * document is visible, with backoff from two to ten seconds and a `since`
8
+ * document is visible, with backoff from two to five seconds and a `since`
9
9
  * stamp so an unchanged answer costs no re-render. A hidden view issues no
10
10
  * calls at all.
11
11
  */
@@ -13,7 +13,7 @@ export const SLATE_UI_STATE = String.raw `
13
13
  var state = {
14
14
  host: {}, view: null,
15
15
  sel: { candidateId: null, versionId: null, followLatest: true },
16
- tab: "designs", query: "", dialog: null, more: null,
16
+ tab: "designs", more: null,
17
17
  busy: false, status: { text: "", kind: "" }, lastRunOp: "",
18
18
  thumbs: {}, fulls: {}, refs: {}, lastOpStates: {}, opBusy: {}, awaitEdit: null,
19
19
  insp: { local: null, writing: false, dirty: false, searching: false, noMatch: "", waiters: [] }
@@ -184,6 +184,10 @@ export const SLATE_UI_STATE = String.raw `
184
184
  return enqueue(imageKey(version, size), cache, TOOLS.image, { runDir: state.view.runDir, versionId: version.versionId, size: size }, urgent);
185
185
  }
186
186
  function wantReference(id, size, urgent) {
187
+ // A website reference with a URL loads straight from it (the References tab's sites).
188
+ var site = siteById(id);
189
+ var url = site && (size === "thumb" ? site.thumbUrl : site.imageUrl);
190
+ if (url) return Promise.resolve(url);
187
191
  return enqueue("ref:" + size + ":" + id, state.refs, TOOLS.reference, { runDir: state.view.runDir, referenceId: id, size: size }, urgent);
188
192
  }
189
193
  function pump() {
@@ -221,7 +225,7 @@ export const SLATE_UI_STATE = String.raw `
221
225
  function bindReference(img, id, size) { fillImage(img, wantReference(id, size, false)); }
222
226
 
223
227
  // ---- status polling ----
224
- var DELAYS = [2000, 3000, 5000, 8000, 10000];
228
+ var DELAYS = [2000, 2500, 3000, 4000, 5000];
225
229
  var poll = { timer: null, step: 0, inFlight: false };
226
230
  function wantsPolling() { return !!state.view && !!state.view.runDir && visible() && runningOps().length > 0; }
227
231
  function clearPoll() { if (poll.timer !== null) { clearTimeout(poll.timer); poll.timer = null; } }
@@ -319,7 +323,8 @@ export const SLATE_UI_STATE = String.raw `
319
323
  var made = next.versions.find(function (v) { return op.resultVersionIds.indexOf(v.versionId) >= 0; });
320
324
  text = head + (made ? made.label : opLabel(op)) + " was created.";
321
325
  }
322
- updateModelContext(text + " Confirm with " + TOOLS.data + ".");
326
+ // The hosted agent is never asked to re-read the workspace for this: it is context for the person's next message.
327
+ updateModelContext(TARGET === "remote" ? text : text + " Confirm with " + TOOLS.data + ".");
323
328
  });
324
329
  }
325
330
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-slate-ui-script-state.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyTvC,CAAC"}
1
+ {"version":3,"file":"mcp-slate-ui-script-state.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-state.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8TvC,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * The large view, like Design Lab's: one design at full size over the workspace. A slim bar names it (its code, where
3
+ * it came from) with previous, next and close; under it the design, which zooms with the wheel or a pinch around the
4
+ * pointer, pans by dragging (horizontal wheel and Shift+wheel pan too), and has minus, the zoom level (a tap toggles
5
+ * 100 percent and fit), plus and fit; under that the labelled actions: Edit, Branch and Build this.
6
+ *
7
+ * Edit and branch open a bar in place of the actions, so nothing covers the design:
8
+ * - Edit: draw on the design (the scribble layer, mcp-slate-ui-script-scribble.ts; the view fits the design while
9
+ * drawing) and/or type a change, then Enter. The edit runs at once and the view closes onto the Designs tab, where
10
+ * the new version is already a loading tile next to its source.
11
+ * - Branch: optional page names, comma separated, then Enter. It draws those pages (or four the model chooses) of the
12
+ * same product from this design; they land as a branch section of the Designs tab.
13
+ *
14
+ * Keys: Escape leaves the bar, then the view; left and right step; plus, minus, 0 (fit) and 1 (100 percent) zoom.
15
+ * In the workspace the view covers the frame; in a card whose host has no fullscreen it opens in the card instead.
16
+ */
17
+ export declare const SLATE_UI_VIEWER: string;
18
+ //# sourceMappingURL=mcp-slate-ui-script-viewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-ui-script-viewer.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-viewer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,eAAe,QAmY3B,CAAC"}