@12ui/design 0.2.80 → 0.2.81
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.
- package/README.md +1 -3
- package/SKILL.md +2 -8
- package/dist/cli-help/design.d.ts +1 -1
- package/dist/cli-help/design.d.ts.map +1 -1
- package/dist/cli-help/design.js +0 -1
- package/dist/cli-help/design.js.map +1 -1
- package/dist/cli-help/index.d.ts +1 -1
- package/dist/cli-workspace-draw.d.ts.map +1 -1
- package/dist/cli-workspace-draw.js +2 -0
- package/dist/cli-workspace-draw.js.map +1 -1
- package/dist/cli-workspace-runner.d.ts.map +1 -1
- package/dist/cli-workspace-runner.js +2 -1
- package/dist/cli-workspace-runner.js.map +1 -1
- package/dist/corpus-client.d.ts +3 -0
- package/dist/corpus-client.d.ts.map +1 -1
- package/dist/corpus-client.js +2 -0
- package/dist/corpus-client.js.map +1 -1
- package/dist/corpus-public-renditions.d.ts +33 -0
- package/dist/corpus-public-renditions.d.ts.map +1 -0
- package/dist/corpus-public-renditions.js +55 -0
- package/dist/corpus-public-renditions.js.map +1 -0
- package/dist/legacy-skill-catalog.d.ts.map +1 -1
- package/dist/legacy-skill-catalog.js +11 -0
- package/dist/legacy-skill-catalog.js.map +1 -1
- package/dist/mcp-slate-command.d.ts +0 -2
- package/dist/mcp-slate-command.d.ts.map +1 -1
- package/dist/mcp-slate-command.js +0 -4
- package/dist/mcp-slate-command.js.map +1 -1
- package/dist/mcp-slate-resource.d.ts.map +1 -1
- package/dist/mcp-slate-resource.js +6 -4
- package/dist/mcp-slate-resource.js.map +1 -1
- package/dist/mcp-slate-tool-defs.d.ts.map +1 -1
- package/dist/mcp-slate-tool-defs.js +8 -6
- package/dist/mcp-slate-tool-defs.js.map +1 -1
- package/dist/mcp-slate-tools.d.ts.map +1 -1
- package/dist/mcp-slate-tools.js +8 -1
- package/dist/mcp-slate-tools.js.map +1 -1
- package/dist/mcp-slate-ui-copy.d.ts +88 -208
- package/dist/mcp-slate-ui-copy.d.ts.map +1 -1
- package/dist/mcp-slate-ui-copy.js +58 -159
- package/dist/mcp-slate-ui-copy.js.map +1 -1
- package/dist/mcp-slate-ui-locales/de-DE.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/de-DE.js +44 -83
- package/dist/mcp-slate-ui-locales/de-DE.js.map +1 -1
- package/dist/mcp-slate-ui-locales/es-419.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/es-419.js +44 -83
- package/dist/mcp-slate-ui-locales/es-419.js.map +1 -1
- package/dist/mcp-slate-ui-locales/es-ES.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/es-ES.js +44 -83
- package/dist/mcp-slate-ui-locales/es-ES.js.map +1 -1
- package/dist/mcp-slate-ui-locales/fr-FR.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/fr-FR.js +44 -83
- package/dist/mcp-slate-ui-locales/fr-FR.js.map +1 -1
- package/dist/mcp-slate-ui-locales/hi-IN.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/hi-IN.js +44 -83
- package/dist/mcp-slate-ui-locales/hi-IN.js.map +1 -1
- package/dist/mcp-slate-ui-locales/it-IT.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/it-IT.js +44 -83
- package/dist/mcp-slate-ui-locales/it-IT.js.map +1 -1
- package/dist/mcp-slate-ui-locales/ja-JP.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/ja-JP.js +44 -83
- package/dist/mcp-slate-ui-locales/ja-JP.js.map +1 -1
- package/dist/mcp-slate-ui-locales/ko-KR.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/ko-KR.js +44 -83
- package/dist/mcp-slate-ui-locales/ko-KR.js.map +1 -1
- package/dist/mcp-slate-ui-locales/pt-BR.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/pt-BR.js +44 -83
- package/dist/mcp-slate-ui-locales/pt-BR.js.map +1 -1
- package/dist/mcp-slate-ui-locales/zh-CN.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/zh-CN.js +44 -83
- package/dist/mcp-slate-ui-locales/zh-CN.js.map +1 -1
- package/dist/mcp-slate-ui-locales/zh-TW.d.ts.map +1 -1
- package/dist/mcp-slate-ui-locales/zh-TW.js +44 -83
- package/dist/mcp-slate-ui-locales/zh-TW.js.map +1 -1
- package/dist/mcp-slate-ui-script-bridge.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-bridge.js +19 -7
- package/dist/mcp-slate-ui-script-bridge.js.map +1 -1
- package/dist/mcp-slate-ui-script-browser.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-browser.js +0 -3
- package/dist/mcp-slate-ui-script-browser.js.map +1 -1
- package/dist/mcp-slate-ui-script-designs.d.ts +17 -0
- package/dist/mcp-slate-ui-script-designs.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-designs.js +365 -0
- package/dist/mcp-slate-ui-script-designs.js.map +1 -0
- package/dist/mcp-slate-ui-script-edit.d.ts +9 -0
- package/dist/mcp-slate-ui-script-edit.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-edit.js +71 -0
- package/dist/mcp-slate-ui-script-edit.js.map +1 -0
- package/dist/mcp-slate-ui-script-inline.d.ts +3 -9
- package/dist/mcp-slate-ui-script-inline.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-inline.js +28 -155
- package/dist/mcp-slate-ui-script-inline.js.map +1 -1
- package/dist/mcp-slate-ui-script-inspiration-collage.d.ts +13 -12
- package/dist/mcp-slate-ui-script-inspiration-collage.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-inspiration-collage.js +24 -24
- package/dist/mcp-slate-ui-script-inspiration-collage.js.map +1 -1
- package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts +23 -0
- package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-inspiration-gallery.js +221 -0
- package/dist/mcp-slate-ui-script-inspiration-gallery.js.map +1 -0
- package/dist/mcp-slate-ui-script-inspiration-grid.d.ts +14 -21
- package/dist/mcp-slate-ui-script-inspiration-grid.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-inspiration-grid.js +124 -196
- package/dist/mcp-slate-ui-script-inspiration-grid.js.map +1 -1
- package/dist/mcp-slate-ui-script-inspiration.d.ts +8 -9
- package/dist/mcp-slate-ui-script-inspiration.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-inspiration.js +213 -130
- package/dist/mcp-slate-ui-script-inspiration.js.map +1 -1
- package/dist/mcp-slate-ui-script-l10n.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-l10n.js +2 -0
- package/dist/mcp-slate-ui-script-l10n.js.map +1 -1
- package/dist/mcp-slate-ui-script-more.d.ts +4 -33
- package/dist/mcp-slate-ui-script-more.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-more.js +6 -279
- package/dist/mcp-slate-ui-script-more.js.map +1 -1
- package/dist/mcp-slate-ui-script-pause.d.ts +10 -6
- package/dist/mcp-slate-ui-script-pause.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-pause.js +45 -30
- package/dist/mcp-slate-ui-script-pause.js.map +1 -1
- package/dist/mcp-slate-ui-script-references.d.ts +19 -0
- package/dist/mcp-slate-ui-script-references.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-references.js +102 -0
- package/dist/mcp-slate-ui-script-references.js.map +1 -0
- package/dist/mcp-slate-ui-script-remote.d.ts +13 -12
- package/dist/mcp-slate-ui-script-remote.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-remote.js +46 -27
- package/dist/mcp-slate-ui-script-remote.js.map +1 -1
- package/dist/mcp-slate-ui-script-scribble.d.ts +2 -2
- package/dist/mcp-slate-ui-script-scribble.js +7 -7
- package/dist/mcp-slate-ui-script-select.d.ts +4 -9
- package/dist/mcp-slate-ui-script-select.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-select.js +13 -37
- package/dist/mcp-slate-ui-script-select.js.map +1 -1
- package/dist/mcp-slate-ui-script-stage.d.ts +4 -10
- package/dist/mcp-slate-ui-script-stage.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-stage.js +28 -141
- package/dist/mcp-slate-ui-script-stage.js.map +1 -1
- package/dist/mcp-slate-ui-script-state.d.ts +1 -1
- package/dist/mcp-slate-ui-script-state.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-state.js +9 -4
- package/dist/mcp-slate-ui-script-state.js.map +1 -1
- package/dist/mcp-slate-ui-script-viewer.d.ts +18 -0
- package/dist/mcp-slate-ui-script-viewer.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-viewer.js +405 -0
- package/dist/mcp-slate-ui-script-viewer.js.map +1 -0
- package/dist/mcp-slate-ui-script.d.ts +4 -5
- package/dist/mcp-slate-ui-script.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script.js +12 -13
- package/dist/mcp-slate-ui-script.js.map +1 -1
- package/dist/mcp-slate-ui-styles-designs.d.ts +10 -0
- package/dist/mcp-slate-ui-styles-designs.d.ts.map +1 -0
- package/dist/mcp-slate-ui-styles-designs.js +121 -0
- package/dist/mcp-slate-ui-styles-designs.js.map +1 -0
- package/dist/mcp-slate-ui-styles-inspiration.d.ts +13 -13
- package/dist/mcp-slate-ui-styles-inspiration.d.ts.map +1 -1
- package/dist/mcp-slate-ui-styles-inspiration.js +67 -33
- package/dist/mcp-slate-ui-styles-inspiration.js.map +1 -1
- package/dist/mcp-slate-ui-styles-pause.d.ts +2 -2
- package/dist/mcp-slate-ui-styles-pause.d.ts.map +1 -1
- package/dist/mcp-slate-ui-styles-pause.js +4 -8
- package/dist/mcp-slate-ui-styles-pause.js.map +1 -1
- package/dist/mcp-slate-ui-styles-stage.d.ts +3 -22
- package/dist/mcp-slate-ui-styles-stage.d.ts.map +1 -1
- package/dist/mcp-slate-ui-styles-stage.js +6 -74
- package/dist/mcp-slate-ui-styles-stage.js.map +1 -1
- package/dist/mcp-slate-ui-styles.d.ts +12 -19
- package/dist/mcp-slate-ui-styles.d.ts.map +1 -1
- package/dist/mcp-slate-ui-styles.js +97 -100
- package/dist/mcp-slate-ui-styles.js.map +1 -1
- package/dist/mcp-slate-ui.d.ts +12 -12
- package/dist/mcp-slate-ui.d.ts.map +1 -1
- package/dist/mcp-slate-ui.js +24 -23
- package/dist/mcp-slate-ui.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -0
- package/dist/server.js.map +1 -1
- package/dist/slate-actions.d.ts +22 -1
- package/dist/slate-actions.d.ts.map +1 -1
- package/dist/slate-actions.js +46 -2
- package/dist/slate-actions.js.map +1 -1
- package/dist/slate-browser-host.d.ts +8 -7
- package/dist/slate-browser-host.d.ts.map +1 -1
- package/dist/slate-browser-host.js +13 -10
- package/dist/slate-browser-host.js.map +1 -1
- package/dist/slate-browser-server.d.ts.map +1 -1
- package/dist/slate-browser-server.js +10 -4
- package/dist/slate-browser-server.js.map +1 -1
- package/dist/slate-commit.d.ts.map +1 -1
- package/dist/slate-commit.js +12 -5
- package/dist/slate-commit.js.map +1 -1
- package/dist/slate-handoff.d.ts.map +1 -1
- package/dist/slate-handoff.js +2 -3
- package/dist/slate-handoff.js.map +1 -1
- package/dist/slate-ids.d.ts +2 -1
- package/dist/slate-ids.d.ts.map +1 -1
- package/dist/slate-ids.js +3 -2
- package/dist/slate-ids.js.map +1 -1
- package/dist/slate-reference-ids.d.ts.map +1 -1
- package/dist/slate-reference-ids.js +1 -0
- package/dist/slate-reference-ids.js.map +1 -1
- package/dist/slate-round-prompt.d.ts +19 -0
- package/dist/slate-round-prompt.d.ts.map +1 -1
- package/dist/slate-round-prompt.js +22 -0
- package/dist/slate-round-prompt.js.map +1 -1
- package/dist/slate-round-runner.d.ts.map +1 -1
- package/dist/slate-round-runner.js +16 -12
- package/dist/slate-round-runner.js.map +1 -1
- package/dist/slate-round-search.d.ts.map +1 -1
- package/dist/slate-round-search.js +2 -0
- package/dist/slate-round-search.js.map +1 -1
- package/dist/slate-runtime.d.ts +3 -0
- package/dist/slate-runtime.d.ts.map +1 -1
- package/dist/slate-runtime.js +1 -0
- package/dist/slate-runtime.js.map +1 -1
- package/dist/slate-site-references-capture.d.ts +20 -0
- package/dist/slate-site-references-capture.d.ts.map +1 -0
- package/dist/slate-site-references-capture.js +119 -0
- package/dist/slate-site-references-capture.js.map +1 -0
- package/dist/slate-site-references-client.d.ts +35 -0
- package/dist/slate-site-references-client.d.ts.map +1 -0
- package/dist/slate-site-references-client.js +36 -0
- package/dist/slate-site-references-client.js.map +1 -0
- package/dist/slate-site-references-local.d.ts +6 -0
- package/dist/slate-site-references-local.d.ts.map +1 -0
- package/dist/slate-site-references-local.js +63 -0
- package/dist/slate-site-references-local.js.map +1 -0
- package/dist/slate-site-references-suggest.d.ts +36 -0
- package/dist/slate-site-references-suggest.d.ts.map +1 -0
- package/dist/slate-site-references-suggest.js +144 -0
- package/dist/slate-site-references-suggest.js.map +1 -0
- package/dist/slate-site-references.d.ts +57 -0
- package/dist/slate-site-references.d.ts.map +1 -0
- package/dist/slate-site-references.js +129 -0
- package/dist/slate-site-references.js.map +1 -0
- package/dist/slate-view-contract.d.ts +29 -1
- package/dist/slate-view-contract.d.ts.map +1 -1
- package/dist/slate-view.d.ts.map +1 -1
- package/dist/slate-view.js +5 -0
- package/dist/slate-view.js.map +1 -1
- package/dist/slate-workspace-parse.d.ts +2 -0
- package/dist/slate-workspace-parse.d.ts.map +1 -1
- package/dist/slate-workspace-parse.js +20 -3
- package/dist/slate-workspace-parse.js.map +1 -1
- package/dist/slate-workspace-types.d.ts +17 -2
- package/dist/slate-workspace-types.d.ts.map +1 -1
- package/dist/workspace-draw-messages.d.ts +27 -5
- package/dist/workspace-draw-messages.d.ts.map +1 -1
- package/dist/workspace-draw-messages.js +29 -3
- package/dist/workspace-draw-messages.js.map +1 -1
- package/dist/workspace-draw-run.d.ts +12 -0
- package/dist/workspace-draw-run.d.ts.map +1 -1
- package/dist/workspace-draw-run.js +47 -18
- package/dist/workspace-draw-run.js.map +1 -1
- package/dist/workspace-draw-types.d.ts +2 -1
- package/dist/workspace-draw-types.d.ts.map +1 -1
- package/dist/workspace-draw-types.js +1 -0
- package/dist/workspace-draw-types.js.map +1 -1
- package/dist/workspace-runner-main.d.ts +5 -0
- package/dist/workspace-runner-main.d.ts.map +1 -1
- package/dist/workspace-runner-main.js +15 -3
- package/dist/workspace-runner-main.js.map +1 -1
- package/open-design.json +2 -13
- package/package.json +1 -1
- package/skills/12ui-design/SKILL.md +7 -8
- package/dist/mcp-slate-ui-script-dialog.d.ts +0 -21
- package/dist/mcp-slate-ui-script-dialog.d.ts.map +0 -1
- package/dist/mcp-slate-ui-script-dialog.js +0 -351
- package/dist/mcp-slate-ui-script-dialog.js.map +0 -1
- package/dist/mcp-slate-ui-script-progress.d.ts +0 -7
- package/dist/mcp-slate-ui-script-progress.d.ts.map +0 -1
- package/dist/mcp-slate-ui-script-progress.js +0 -9
- package/dist/mcp-slate-ui-script-progress.js.map +0 -1
- package/dist/mcp-slate-ui-styles-dialog.d.ts +0 -20
- package/dist/mcp-slate-ui-styles-dialog.d.ts.map +0 -1
- package/dist/mcp-slate-ui-styles-dialog.js +0 -87
- package/dist/mcp-slate-ui-styles-dialog.js.map +0 -1
|
@@ -1,55 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The fullscreen workspace:
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
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
|
-
|
|
33
|
-
|
|
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.
|
|
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
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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.
|
|
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.
|
|
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",
|
|
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
|
-
|
|
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.
|
|
174
|
-
stageEls.
|
|
175
|
-
stageEls.
|
|
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
|
-
|
|
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
|
|
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
|
|
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,
|
|
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
|
|
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",
|
|
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,
|
|
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
|
-
|
|
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
|
|
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"}
|