@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
@@ -0,0 +1,365 @@
1
+ /**
2
+ * The Designs tab, the same in the card and in the workspace: every round as a section, newest first, with a slim bar
3
+ * (how many designs a round draws, 6 or 12, and More) at the right of the newest round's head. A section's head is small: the round's number, a strip of the
4
+ * inspiration and references that fed it (or, for a branch, the design it grew from), and a status dot. Under it a grid
5
+ * of large tiles in the frame's shape.
6
+ *
7
+ * A tile is one version of a design: its picture, its code (A, or A2 from A after an edit, or a branch's page name), a
8
+ * filled check and ring when it is the pick, and four icon actions: expand, edit, branch and choose. An edit's new
9
+ * version sits right after its source; while it draws, a loading tile already holds its place. A design still being
10
+ * drawn is a shimmer tile of the frame's shape that fills in the moment its picture lands.
11
+ *
12
+ * The card shows the newest round and folds the rest behind one button; the workspace shows every round. Clicking a
13
+ * tile, or its expand action, opens the large view (mcp-slate-ui-script-viewer.ts); edit and branch open it on their
14
+ * bar. Choose is Select (mcp-slate-ui-script-select.ts).
15
+ */
16
+ export const SLATE_UI_DESIGNS = String.raw `
17
+ var ICON = {
18
+ expand: "M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5",
19
+ collapse: "M9 4v5H4M15 4v5h5M9 20v-5H4M15 20v-5h5",
20
+ edit: "M12 20h9M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z",
21
+ branch: "M6 3v12M6 21a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zM18 8.5a2.5 2.5 0 1 0 0-5 2.5 2.5 0 0 0 0 5zM18 8.5c0 5-6 4.5-12 8",
22
+ choose: "M20 6 9 17l-5-5",
23
+ plus: "M12 5v14M5 12h14",
24
+ minus: "M5 12h14",
25
+ close: "M6 6l12 12M18 6L6 18",
26
+ left: "M15 18l-6-6 6-6",
27
+ right: "M9 18l6-6-6-6",
28
+ fit: "M9 4H4v5M15 4h5v5M9 20H4v-5M15 20h5v-5",
29
+ send: "M5 12h14M13 6l6 6-6 6",
30
+ undo: "M9 14L4 9l5-5M4 9h10a6 6 0 0 1 0 12h-3",
31
+ convert: "M8 8l-5 4 5 4M16 8l5 4-5 4M13.5 5l-3 14",
32
+ resume: "M4 12a8 8 0 1 0 2.3-5.7M4 4v4h4"
33
+ };
34
+ function svgIcon(path, size) {
35
+ var s = size || 18;
36
+ return '<svg viewBox="0 0 24 24" width="' + s + '" height="' + s + '" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="' + path + '"/></svg>';
37
+ }
38
+ // An icon-only action: its words are its accessible name and its tooltip.
39
+ function iconAction(label, path, onclick, cls) {
40
+ var b = button("", "ia" + (cls ? " " + cls : ""), function (e) { if (e && e.stopPropagation) e.stopPropagation(); onclick(b); });
41
+ b.setAttribute("aria-label", label);
42
+ b.title = label;
43
+ b.innerHTML = svgIcon(path, 16);
44
+ return b;
45
+ }
46
+
47
+ // A labelled action of the large view: its icon and its word.
48
+ function wordAction(label, path, onclick, cls) {
49
+ var b = iconAction(label, path, onclick, "big wide" + (cls ? " " + cls : ""));
50
+ b.appendChild(el("span", "", label));
51
+ return b;
52
+ }
53
+
54
+ var designs = { perRound: 0, showAll: false, filling: false, error: "" };
55
+ // How many a round draws: what the newest round drew (6 unless it drew 12), until the person taps the other.
56
+ function perRound() {
57
+ if (designs.perRound) return designs.perRound;
58
+ var newest = newestRound(function (r) { return r.kind !== "branch"; });
59
+ return newest && newest.count >= 12 ? 12 : 6;
60
+ }
61
+ function roundsNewestFirst() { return state.view.rounds.slice().sort(function (a, b) { return b.index - a.index; }); }
62
+ function newestRound(test) { return roundsNewestFirst().filter(test || function () { return true; })[0] || null; }
63
+ function roundOfCandidate(c) { return roundById(c.roundId); }
64
+
65
+ // ---- the tiles of a round: every version of every design, an edit right after its source ----
66
+ // An edit that is running holds the place its version will take: the op names its parent, and its version is not in yet.
67
+ function pendingEdits(c) {
68
+ return state.view.ops.filter(function (op) {
69
+ if (op.kind !== "edit" || !isRunning(op) || !op.edit) return false;
70
+ if (c.versionIds.indexOf(op.edit.parentVersionId) < 0) return false;
71
+ return !op.resultVersionIds.some(function (id) { return c.versionIds.indexOf(id) >= 0; });
72
+ });
73
+ }
74
+ function roundItems(round) {
75
+ var items = [];
76
+ state.view.candidates.filter(function (c) { return c.roundId === round.roundId; }).sort(byLabel).forEach(function (c) {
77
+ var versions = versionsOf(c);
78
+ if (versions.length === 0) items.push({ c: c, v: null, op: null });
79
+ versions.forEach(function (v) { items.push({ c: c, v: v, op: null }); });
80
+ pendingEdits(c).forEach(function (op, i) { items.push({ c: c, v: null, op: op, n: versions.length + 1 + i }); });
81
+ });
82
+ return items;
83
+ }
84
+ // Every version on screen, in screen order: what the large view steps through.
85
+ function viewerOrder() {
86
+ var list = [];
87
+ roundsNewestFirst().forEach(function (r) { roundItems(r).forEach(function (it) { if (it.v && it.v.fileState === "ok") list.push(it.v); }); });
88
+ return list;
89
+ }
90
+
91
+ // The name a tile carries: its code; an edit says what it came from; a branch's page carries its page name.
92
+ function pageName(c) {
93
+ if (c.page) return c.page;
94
+ var round = roundOfCandidate(c);
95
+ if (!round || round.kind !== "branch") return "";
96
+ var own = state.view.candidates.filter(function (x) { return x.roundId === c.roundId; }).sort(byLabel);
97
+ return t("pageName", { n: own.indexOf(c) + 2 });
98
+ }
99
+ function tileName(c, v) {
100
+ var page = pageName(c);
101
+ if (v) return page ? t("versionPage", { label: v.label, page: page }) : t("versionName", { label: v.label });
102
+ return page ? t("versionPage", { label: c.label, page: page }) : optionName(c);
103
+ }
104
+ function parentLabel(v) {
105
+ var parent = v && v.kind === "edit" && v.parentVersionId ? ver(v.parentVersionId) : null;
106
+ return parent ? parent.label : "";
107
+ }
108
+
109
+ function tileOf(item) {
110
+ var c = item.c, v = item.v;
111
+ var tile = el("div", "dtile");
112
+ tile.style.setProperty("--ar", String(v && sized(v) ? v.width / v.height : ratioOf(c)));
113
+ tile.setAttribute("data-option", c.label);
114
+ if (v) tile.setAttribute("data-version", v.label);
115
+ var face = button("", "dface");
116
+ tile.appendChild(face);
117
+ var shown = !!v && v.fileState === "ok";
118
+ var waitingRef = !v && !item.op ? pausedRef(c) : null;
119
+ if (shown) {
120
+ var img = el("img", "thumb empty");
121
+ img.alt = "";
122
+ img.setAttribute("draggable", "false");
123
+ face.appendChild(img);
124
+ var cached = state.thumbs[imageKey(v, "thumb")];
125
+ if (cached) { img.src = cached; img.classList.remove("empty"); }
126
+ else bindImage(img, v, "thumb", false);
127
+ face.setAttribute("aria-label", t("expandName", { name: tileName(c, v) }));
128
+ face.addEventListener("click", function () { openViewer(v.versionId, null); });
129
+ } else if (item.op || drawing(c)) {
130
+ tile.classList.add("loading");
131
+ face.classList.add("shimmer");
132
+ face.appendChild(el("span", "spin"));
133
+ face.setAttribute("aria-label", t("drawingName", { name: item.op ? t("versionName", { label: c.label + item.n }) : tileName(c, null) }));
134
+ face.disabled = true;
135
+ } else if (waitingRef) {
136
+ tile.classList.add("paused");
137
+ var ref = el("img", "thumb empty");
138
+ ref.alt = "";
139
+ face.appendChild(ref);
140
+ bindReference(ref, waitingRef, "thumb");
141
+ face.title = t("pauseDrawsFrom", { label: c.label });
142
+ face.setAttribute("aria-label", t("pauseDrawsFrom", { label: c.label }));
143
+ face.disabled = true;
144
+ } else {
145
+ var note = v ? (v.fileState === "changed" ? t("fileChanged") : t("fileMissing")) : optionNote(c);
146
+ tile.classList.add(c.state === "failed" ? "failed" : "stopped");
147
+ face.title = note;
148
+ face.setAttribute("aria-label", tileName(c, v) + ". " + note);
149
+ var words = el("span", "tilenote");
150
+ words.appendChild(el("span", "", note));
151
+ face.appendChild(words);
152
+ face.disabled = true;
153
+ }
154
+
155
+ // The tag: code, then where it came from (an edit) or its page (a branch).
156
+ var tag = el("span", "dtag");
157
+ tag.appendChild(el("b", "code", item.op ? c.label + item.n : (v ? v.label : c.label)));
158
+ var from = item.op ? (ver(item.op.edit.parentVersionId) || {}).label : parentLabel(v);
159
+ if (from) tag.appendChild(el("span", "dfrom", t("fromLabel", { label: from })));
160
+ var page = pageName(c);
161
+ if (page) tag.appendChild(el("span", "dpage", page));
162
+ if (v && v.kind === "edit") tag.title = chipTitle(v);
163
+ else if (from) tag.title = t("fromLabel", { label: from });
164
+ var meta = el("div", "dmeta");
165
+ meta.appendChild(tag);
166
+ tile.appendChild(meta);
167
+
168
+ if (shown && samePick(v)) {
169
+ tile.classList.add("chosen");
170
+ var badge = el("span", "dchosen");
171
+ badge.innerHTML = svgIcon(ICON.choose, 15);
172
+ badge.appendChild(el("span", "sr", t("chosen")));
173
+ tile.appendChild(badge);
174
+ }
175
+ if (shown) tile.appendChild(choosePill(v));
176
+ return tile;
177
+ }
178
+ function chipTitle(v) {
179
+ if (v.promptFromMarks) return t("versionTitleMarks", { label: v.label });
180
+ return v.prompt ? t("versionTitle", { label: v.label, prompt: v.prompt }) : v.label;
181
+ }
182
+ // The tile's one action, shown on hover or keyboard focus (always on a touch screen): Choose, or Chosen for the pick.
183
+ function choosePill(v) {
184
+ var on = samePick(v);
185
+ var pill = button(on ? t("chosen") : t("choose"), "dpick" + (on ? " on" : ""), function () { doSelect(v); });
186
+ pill.setAttribute("aria-pressed", on ? "true" : "false");
187
+ pill.disabled = state.busy || !pickable(v);
188
+ return pill;
189
+ }
190
+
191
+ // ---- a round's head: its number, what fed it, and a status dot ----
192
+ function feedStrip(round) {
193
+ var strip = el("span", "feed");
194
+ strip.setAttribute("role", "img");
195
+ if (round.kind === "branch" || round.kind === "like") {
196
+ var src = ver(round.fromVersionId);
197
+ if (src) {
198
+ var mini = el("img", "feedimg design empty");
199
+ mini.alt = "";
200
+ strip.appendChild(mini);
201
+ bindImage(mini, src, "thumb", false);
202
+ }
203
+ strip.setAttribute("aria-label", round.kind === "branch" ? t("branchOf", { label: src ? src.label : "" }) : t("likeTitle", { label: src ? src.label : "" }));
204
+ if (round.kind === "branch") return strip;
205
+ }
206
+ var ids = round.referenceIds.slice(0, 8);
207
+ ids.forEach(function (id) {
208
+ var img = el("img", "feedimg empty");
209
+ img.alt = "";
210
+ img.title = refName(id);
211
+ strip.appendChild(img);
212
+ bindReference(img, id, "thumb");
213
+ });
214
+ if (round.referenceIds.length > ids.length) strip.appendChild(el("span", "feedmore", "+" + (round.referenceIds.length - ids.length)));
215
+ if (round.kind !== "like") strip.setAttribute("aria-label", t("fedBy"));
216
+ return strip;
217
+ }
218
+ function roundOp(round) {
219
+ return state.view.ops.filter(function (o) { return o.kind === "round" && roundOfOp(o) && roundOfOp(o).roundId === round.roundId; }).pop() || null;
220
+ }
221
+ function roundStatus(round) {
222
+ var op = roundOp(round);
223
+ var box = el("span", "dstat");
224
+ if (op && isRunning(op) && !pausedFor({ roundId: round.roundId, state: "pending" })) {
225
+ box.appendChild(el("span", "dot run"));
226
+ box.appendChild(el("span", "", t("readyOf", { n: round.readyCount, m: round.count })));
227
+ box.setAttribute("role", "status");
228
+ return box;
229
+ }
230
+ if (op && (op.state === "interrupted" || op.state === "failed") && round.readyCount < round.count) {
231
+ var said = op.error && op.error.message ? serverText(op.error.l10n, op.error.message) : t("interrupted");
232
+ box.appendChild(el("span", "dot err"));
233
+ box.title = said;
234
+ box.appendChild(el("span", "sr", said));
235
+ if (op.resumable) box.appendChild(iconAction(t("resume"), ICON.resume, function (b) { actResume(op, b); }));
236
+ return box;
237
+ }
238
+ return null;
239
+ }
240
+ function sectionOf(round) {
241
+ var section = el("section", "dsec" + (round.kind === "branch" ? " branch" : ""));
242
+ section.setAttribute("data-round", String(round.index));
243
+ var head = el("div", "dhead");
244
+ if (round.kind === "branch") {
245
+ var src = ver(round.fromVersionId);
246
+ var icon = el("span", "dbranchicon");
247
+ icon.innerHTML = svgIcon(ICON.branch, 14);
248
+ head.appendChild(icon);
249
+ head.appendChild(el("h2", "dtitle", t("branchOf", { label: src ? src.label : "" })));
250
+ head.appendChild(feedStrip(round));
251
+ } else {
252
+ head.appendChild(el("h2", "dtitle", t("roundHeading", { n: round.index })));
253
+ head.appendChild(feedStrip(round));
254
+ if (round.note) { var note = el("span", "dnote", round.note); note.title = round.note; head.appendChild(note); }
255
+ }
256
+ head.appendChild(el("span", "spacer"));
257
+ var status = roundStatus(round);
258
+ if (status) head.appendChild(status);
259
+ section.appendChild(head);
260
+ var grid = el("div", "dgrid");
261
+ var items = roundItems(round);
262
+ grid.style.setProperty("--shape", String(Math.round(Math.sqrt(items.length && items[0].v && sized(items[0].v) ? items[0].v.width / items[0].v.height : ratioOf(items[0] ? items[0].c : {})) * 1000) / 1000));
263
+ items.forEach(function (it) { grid.appendChild(tileOf(it)); });
264
+ section.appendChild(grid);
265
+ return section;
266
+ }
267
+
268
+ // ---- the bar: how many a round draws, and More ----
269
+ function designsBar() {
270
+ var bar = el("div", "dbar");
271
+ var seg = el("div", "seg count");
272
+ seg.setAttribute("role", "radiogroup");
273
+ seg.setAttribute("aria-label", t("perRound"));
274
+ [6, 12].forEach(function (n) {
275
+ var b = button(String(n), "segbtn");
276
+ b.setAttribute("role", "radio");
277
+ b.setAttribute("aria-checked", perRound() === n ? "true" : "false");
278
+ b.addEventListener("click", function () { setPerRound(n); });
279
+ seg.appendChild(b);
280
+ });
281
+ bar.appendChild(seg);
282
+ var more = button("", "primary morebtn", function () { drawMore(perRound()); });
283
+ more.innerHTML = svgIcon(ICON.plus, 16);
284
+ more.appendChild(el("span", "", t("more")));
285
+ more.disabled = moreBusy() || !localImage().ready;
286
+ if (!localImage().ready && localReason()) more.title = localReason();
287
+ bar.appendChild(more);
288
+ var alert = el("p", "alert");
289
+ alert.setAttribute("role", "alert");
290
+ alert.textContent = designs.error;
291
+ bar.appendChild(alert);
292
+ return bar;
293
+ }
294
+ // Tapping 12 draws a round of twelve at once (one tap, one round of 12, which then keeps the switch on 12); tapping
295
+ // 6 only sets the next rounds.
296
+ function setPerRound(n) {
297
+ if (perRound() === n && designs.perRound) return;
298
+ designs.perRound = n;
299
+ var newest = newestRound(function (r) { return r.kind !== "branch"; });
300
+ if (n === 12 && newest && newest.count < 12 && !moreBusy() && localImage().ready) {
301
+ drawMore(12);
302
+ return;
303
+ }
304
+ renderAll();
305
+ }
306
+ function drawMore(count) {
307
+ if (moreBusy() || !localImage().ready || designs.filling) return;
308
+ designs.filling = true;
309
+ designs.error = "";
310
+ renderAll();
311
+ startRound(uuid4(), { mode: "new", note: "", count: count }).then(function () {
312
+ designs.filling = false;
313
+ renderAll();
314
+ }, function (err) {
315
+ designs.filling = false;
316
+ designs.error = errText(err);
317
+ renderAll();
318
+ });
319
+ }
320
+
321
+ function designsSignature(where) {
322
+ var v = state.view;
323
+ return JSON.stringify([where, perRound(), designs.showAll, designs.error, moreBusy(), localImage().ready, state.busy, v.pick && [v.pick.versionId, v.pick.intact],
324
+ v.rounds.map(function (r) { return [r.roundId, r.kind, r.state, r.count, r.readyCount, r.referenceIds, r.fromVersionId, r.note, !!r.pause]; }),
325
+ v.candidates.map(function (c) { return [c.candidateId, c.state, c.error, c.versionIds, c.busy, c.page, drawing(c), pausedRef(c)]; }),
326
+ v.versions.map(function (x) { return [x.versionId, x.sha256, x.fileState, x.editable]; }),
327
+ v.ops.map(function (o) { return [o.opId, o.state, o.resumable, o.resultVersionIds]; })]);
328
+ }
329
+
330
+ // The tab in one host: the card ("card") or the workspace ("stage").
331
+ function renderDesigns(host, where) {
332
+ if (!state.view) return;
333
+ var focusKey = host.contains(document.activeElement) ? keyOf(document.activeElement) : null;
334
+ var rebuilt = setIfChanged(host, designsSignature(where), function (node) {
335
+ var bar = designsBar();
336
+ var rounds = roundsNewestFirst();
337
+ // The card: the newest round of new designs and any branch drawn since it; the rest fold behind one button.
338
+ var cut = rounds.findIndex(function (r) { return r.kind !== "branch"; });
339
+ var shown = where === "card" && !designs.showAll ? rounds.slice(0, cut < 0 ? rounds.length : cut + 1) : rounds;
340
+ // The bar sits at the right of the newest round's head, so it takes no row of its own.
341
+ shown.forEach(function (r, i) {
342
+ var section = sectionOf(r);
343
+ if (i === 0) section.querySelector(".dhead").appendChild(bar);
344
+ node.appendChild(section);
345
+ });
346
+ if (shown.length === 0) node.appendChild(bar);
347
+ if (shown.length < rounds.length) {
348
+ var earlier = button(t("showEarlier"), "textbtn earlier", function () { designs.showAll = true; renderAll(); });
349
+ node.appendChild(earlier);
350
+ }
351
+ });
352
+ if (rebuilt && focusKey) {
353
+ var back = Array.prototype.filter.call(host.querySelectorAll("button"), function (b) { return keyOf(b) === focusKey; })[0];
354
+ if (back) back.focus();
355
+ }
356
+ }
357
+ // A focusable control's place (its tile and its name), so a rebuild can put keyboard focus back on the same control.
358
+ function keyOf(node) {
359
+ if (!node || !node.closest) return null;
360
+ var tile = node.closest(".dtile");
361
+ var label = node.getAttribute("aria-label") || node.textContent || "";
362
+ return (tile ? tile.getAttribute("data-version") || tile.getAttribute("data-option") : "bar") + "|" + label;
363
+ }
364
+ `;
365
+ //# sourceMappingURL=mcp-slate-ui-script-designs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-ui-script-designs.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-designs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4VzC,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * The pieces the large view's edit uses: the instruction counted as the servers count it, what this Mac can do now,
3
+ * the edit action with its marked picture, and the run call. Edit and Branch are bars of the large view
4
+ * (mcp-slate-ui-script-viewer.ts).
5
+ *
6
+ * Fragment of the view's script; String.raw, no backtick, no dollar-brace.
7
+ */
8
+ export declare const SLATE_UI_EDIT: string;
9
+ //# sourceMappingURL=mcp-slate-ui-script-edit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-ui-script-edit.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-edit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,aAAa,QA8DzB,CAAC"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * The pieces the large view's edit uses: the instruction counted as the servers count it, what this Mac can do now,
3
+ * the edit action with its marked picture, and the run call. Edit and Branch are bars of the large view
4
+ * (mcp-slate-ui-script-viewer.ts).
5
+ *
6
+ * Fragment of the view's script; String.raw, no backtick, no dollar-brace.
7
+ */
8
+ export const SLATE_UI_EDIT = String.raw `
9
+ // ---- the edit instruction, counted as the servers count it: UTF-8 bytes of the words, control characters stripped ----
10
+ var EDIT_PROMPT_MAX_BYTES = __EDIT_PROMPT_MAX_BYTES__;
11
+ function editWords(text) { return String(text || "").replace(/[\u0000-\u0008\u000b\u000c\u000e-\u001f\u007f]/g, "").trim(); }
12
+ function utf8Bytes(text) {
13
+ var n = 0;
14
+ for (var i = 0; i < text.length; i++) {
15
+ var c = text.charCodeAt(i);
16
+ if (c < 0x80) n += 1;
17
+ else if (c < 0x800) n += 2;
18
+ else if (c >= 0xd800 && c <= 0xdbff && i + 1 < text.length && text.charCodeAt(i + 1) >= 0xdc00 && text.charCodeAt(i + 1) <= 0xdfff) { n += 4; i++; }
19
+ else n += 3;
20
+ }
21
+ return n;
22
+ }
23
+ // How many characters must go from the end of the instruction for it to fit; 0 when it fits.
24
+ function editOverBy(text) {
25
+ var words = editWords(text);
26
+ var over = utf8Bytes(words) - EDIT_PROMPT_MAX_BYTES;
27
+ if (over <= 0) return 0;
28
+ var chars = Array.from(words);
29
+ var cut = 0;
30
+ while (over > 0 && chars.length > 0) { over -= utf8Bytes(chars.pop()); cut++; }
31
+ return cut;
32
+ }
33
+
34
+ // ---- what this Mac can do now ----
35
+ function localImage() { return (state.view && state.view.local && state.view.local.image) || { ready: false, reason: null }; }
36
+ // Why this Mac cannot draw, in the person's language when the server named it by code.
37
+ function localReason() { var local = localImage(); return serverText(local.reasonL10n, local.reason); }
38
+
39
+ // ---- the edit: words, marks or both ----
40
+ // The instruction is optional when the edit carries marks: a drawing alone is sent with no words and the server infers them.
41
+ function editAction(d) {
42
+ var action = { kind: "edit", versionId: d.versionId };
43
+ var words = editWords(d.prompt);
44
+ if (words) action.prompt = words;
45
+ if (d.strokes.length > 0) action.strokes = d.strokes.map(function (s) { return s.map(function (p) { return [p[0], p[1]]; }); });
46
+ return action;
47
+ }
48
+ // The hosted server takes the marked image from the screen (there is no server-side compositing), so an edit with
49
+ // strokes carries it; the local server draws its own from the strokes.
50
+ function editActionFor(d, version) {
51
+ var action = editAction(d);
52
+ if (TARGET !== "remote" || d.strokes.length === 0) return Promise.resolve(action);
53
+ return compositeMarked(version, d.strokes).then(function (marked) {
54
+ action.annotated = marked;
55
+ return action;
56
+ }, function (err) { throw new Error(t("markFailed", { detail: errText(err) })); });
57
+ }
58
+
59
+ // ---- send ----
60
+ function runAction(action, opId) {
61
+ return callTool(TOOLS.run, { runDir: state.view.runDir, opId: opId, action: action }).then(function (result) {
62
+ var sc = result.structuredContent || {};
63
+ if (sc.view) applyView(sc.view, true);
64
+ // The hosted server draws nothing: the workspace runner on the person's Mac does, or else the person's agent,
65
+ // which is told here (best effort, like Select) only when no runner holds the workspace.
66
+ if (TARGET === "remote") remoteAfterRun(action, opId, sc.runner);
67
+ return sc;
68
+ });
69
+ }
70
+ `;
71
+ //# sourceMappingURL=mcp-slate-ui-script-edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-slate-ui-script-edit.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-edit.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8DtC,CAAC"}
@@ -1,13 +1,7 @@
1
1
  /**
2
- * The inline card: one large image of the selected option with a badge,
3
- * Select under it, and the strip of thumbnails (the newest round, plus the
4
- * picked or viewed option of an older round) on as many rows as it takes,
5
- * ending with the Generate more tile; an icon-only control opens the
6
- * workspace. There is no status line: an option being drawn shimmers, one
7
- * that failed or stopped says why on its tile, and an error about a click
8
- * shows beside Select. Also the view application, the large image and the
9
- * thumbnail buttons shared with the workspace, and the tool-result entry
10
- * point.
2
+ * The inline card: the tabs and an icon-only control that opens the workspace, then the Designs tab
3
+ * (mcp-slate-ui-script-designs.ts) or Inspiration. An error about a click shows in one line under the tab. Also the
4
+ * view application, the render switch between card and workspace, and the tool-result entry point.
11
5
  */
12
6
  export declare const SLATE_UI_INLINE: string;
13
7
  //# sourceMappingURL=mcp-slate-ui-script-inline.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-slate-ui-script-inline.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-inline.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,QAgQ3B,CAAC"}
1
+ {"version":3,"file":"mcp-slate-ui-script-inline.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-inline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,eAAe,QAuI3B,CAAC"}