@12ui/design 0.2.82 → 0.2.83
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 +4 -1
- package/SKILL.md +1 -1
- package/dist/branch-execution.d.ts.map +1 -1
- package/dist/branch-execution.js +6 -0
- package/dist/branch-execution.js.map +1 -1
- package/dist/branch-materialize.d.ts.map +1 -1
- package/dist/branch-materialize.js +6 -2
- package/dist/branch-materialize.js.map +1 -1
- package/dist/cli-capabilities.d.ts +2 -5
- package/dist/cli-capabilities.d.ts.map +1 -1
- package/dist/cli-capabilities.js +2 -2
- package/dist/cli-capabilities.js.map +1 -1
- package/dist/cli-help/conversion.d.ts +1 -1
- package/dist/cli-help/conversion.js +1 -1
- package/dist/cli-help/conversion.js.map +1 -1
- package/dist/cli-help/index.d.ts +1 -1
- package/dist/cli-image-backend.d.ts +6 -1
- package/dist/cli-image-backend.d.ts.map +1 -1
- package/dist/cli-image-backend.js +8 -3
- package/dist/cli-image-backend.js.map +1 -1
- package/dist/cli-local-runtime.d.ts +6 -0
- package/dist/cli-local-runtime.d.ts.map +1 -1
- package/dist/cli-local-runtime.js +14 -1
- package/dist/cli-local-runtime.js.map +1 -1
- package/dist/cli-usage.js +3 -3
- 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/legacy-skill-catalog.d.ts.map +1 -1
- package/dist/legacy-skill-catalog.js +13 -1
- package/dist/legacy-skill-catalog.js.map +1 -1
- package/dist/mcp-slate-tool-defs.d.ts.map +1 -1
- package/dist/mcp-slate-tool-defs.js +3 -2
- package/dist/mcp-slate-tool-defs.js.map +1 -1
- package/dist/mcp-slate-ui-copy.d.ts +10 -0
- package/dist/mcp-slate-ui-copy.d.ts.map +1 -1
- package/dist/mcp-slate-ui-copy.js +9 -0
- 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 +5 -0
- 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 +5 -0
- 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 +5 -0
- 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 +5 -0
- 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 +5 -0
- 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 +5 -0
- 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 +5 -0
- 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 +5 -0
- 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 +5 -0
- 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 +5 -0
- 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 +5 -0
- package/dist/mcp-slate-ui-locales/zh-TW.js.map +1 -1
- package/dist/mcp-slate-ui-script-board.d.ts +19 -0
- package/dist/mcp-slate-ui-script-board.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-board.js +126 -0
- package/dist/mcp-slate-ui-script-board.js.map +1 -0
- package/dist/mcp-slate-ui-script-designs.d.ts +1 -1
- package/dist/mcp-slate-ui-script-designs.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-designs.js +24 -15
- package/dist/mcp-slate-ui-script-designs.js.map +1 -1
- package/dist/mcp-slate-ui-script-inspiration-collage.d.ts +5 -2
- package/dist/mcp-slate-ui-script-inspiration-collage.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-inspiration-collage.js +9 -5
- package/dist/mcp-slate-ui-script-inspiration-collage.js.map +1 -1
- package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts +7 -4
- package/dist/mcp-slate-ui-script-inspiration-gallery.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-inspiration-gallery.js +46 -5
- package/dist/mcp-slate-ui-script-inspiration-gallery.js.map +1 -1
- package/dist/mcp-slate-ui-script-inspiration-grid.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-inspiration-grid.js +4 -0
- package/dist/mcp-slate-ui-script-inspiration-grid.js.map +1 -1
- package/dist/mcp-slate-ui-script-pause.d.ts +4 -0
- package/dist/mcp-slate-ui-script-pause.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-pause.js +9 -2
- package/dist/mcp-slate-ui-script-pause.js.map +1 -1
- package/dist/mcp-slate-ui-script-peek.d.ts +16 -0
- package/dist/mcp-slate-ui-script-peek.d.ts.map +1 -0
- package/dist/mcp-slate-ui-script-peek.js +89 -0
- package/dist/mcp-slate-ui-script-peek.js.map +1 -0
- package/dist/mcp-slate-ui-script-references.d.ts +4 -2
- package/dist/mcp-slate-ui-script-references.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-references.js +39 -7
- package/dist/mcp-slate-ui-script-references.js.map +1 -1
- package/dist/mcp-slate-ui-script-remote.js +2 -2
- package/dist/mcp-slate-ui-script-viewer.d.ts +7 -2
- package/dist/mcp-slate-ui-script-viewer.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-viewer.js +183 -50
- package/dist/mcp-slate-ui-script-viewer.js.map +1 -1
- package/dist/mcp-slate-ui-script.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script.js +4 -0
- package/dist/mcp-slate-ui-script.js.map +1 -1
- package/dist/mcp-slate-ui-styles-board.d.ts +7 -0
- package/dist/mcp-slate-ui-styles-board.d.ts.map +1 -0
- package/dist/mcp-slate-ui-styles-board.js +30 -0
- package/dist/mcp-slate-ui-styles-board.js.map +1 -0
- package/dist/mcp-slate-ui-styles-designs.d.ts +2 -1
- package/dist/mcp-slate-ui-styles-designs.d.ts.map +1 -1
- package/dist/mcp-slate-ui-styles-designs.js +10 -8
- package/dist/mcp-slate-ui-styles-designs.js.map +1 -1
- package/dist/mcp-slate-ui-styles-inspiration.d.ts.map +1 -1
- package/dist/mcp-slate-ui-styles-inspiration.js +13 -2
- package/dist/mcp-slate-ui-styles-inspiration.js.map +1 -1
- package/dist/mcp-slate-ui-styles-loading.d.ts +18 -0
- package/dist/mcp-slate-ui-styles-loading.d.ts.map +1 -0
- package/dist/mcp-slate-ui-styles-loading.js +37 -0
- package/dist/mcp-slate-ui-styles-loading.js.map +1 -0
- package/dist/mcp-slate-ui-styles-peek.d.ts +8 -0
- package/dist/mcp-slate-ui-styles-peek.d.ts.map +1 -0
- package/dist/mcp-slate-ui-styles-peek.js +13 -0
- package/dist/mcp-slate-ui-styles-peek.js.map +1 -0
- package/dist/mcp-slate-ui-styles.d.ts.map +1 -1
- package/dist/mcp-slate-ui-styles.js +0 -3
- package/dist/mcp-slate-ui-styles.js.map +1 -1
- package/dist/mcp-slate-ui.d.ts.map +1 -1
- package/dist/mcp-slate-ui.js +4 -1
- package/dist/mcp-slate-ui.js.map +1 -1
- package/dist/prototype-browsers.d.ts +10 -2
- package/dist/prototype-browsers.d.ts.map +1 -1
- package/dist/prototype-browsers.js +27 -2
- package/dist/prototype-browsers.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +2 -1
- package/dist/server.js.map +1 -1
- package/dist/slate-actions.d.ts +6 -7
- package/dist/slate-actions.d.ts.map +1 -1
- package/dist/slate-actions.js +6 -9
- package/dist/slate-actions.js.map +1 -1
- package/dist/slate-branch-runner.d.ts +120 -0
- package/dist/slate-branch-runner.d.ts.map +1 -0
- package/dist/slate-branch-runner.js +312 -0
- package/dist/slate-branch-runner.js.map +1 -0
- package/dist/slate-captions-local.d.ts +14 -0
- package/dist/slate-captions-local.d.ts.map +1 -0
- package/dist/slate-captions-local.js +70 -0
- package/dist/slate-captions-local.js.map +1 -0
- package/dist/slate-captions-remote.d.ts +29 -0
- package/dist/slate-captions-remote.d.ts.map +1 -0
- package/dist/slate-captions-remote.js +65 -0
- package/dist/slate-captions-remote.js.map +1 -0
- package/dist/slate-captions.d.ts +41 -0
- package/dist/slate-captions.d.ts.map +1 -0
- package/dist/slate-captions.js +112 -0
- package/dist/slate-captions.js.map +1 -0
- package/dist/slate-commit.d.ts.map +1 -1
- package/dist/slate-commit.js +8 -6
- package/dist/slate-commit.js.map +1 -1
- package/dist/slate-image-executor.d.ts +18 -3
- package/dist/slate-image-executor.d.ts.map +1 -1
- package/dist/slate-image-executor.js +18 -5
- package/dist/slate-image-executor.js.map +1 -1
- package/dist/slate-paths.d.ts +3 -1
- package/dist/slate-paths.d.ts.map +1 -1
- package/dist/slate-paths.js +8 -2
- package/dist/slate-paths.js.map +1 -1
- package/dist/slate-round-prompt.d.ts +0 -12
- package/dist/slate-round-prompt.d.ts.map +1 -1
- package/dist/slate-round-prompt.js +0 -15
- 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 +8 -14
- package/dist/slate-round-runner.js.map +1 -1
- package/dist/slate-runner-context.d.ts +3 -0
- package/dist/slate-runner-context.d.ts.map +1 -1
- package/dist/slate-runner-context.js.map +1 -1
- package/dist/slate-runner-main.d.ts +3 -0
- package/dist/slate-runner-main.d.ts.map +1 -1
- package/dist/slate-runner-main.js +5 -1
- package/dist/slate-runner-main.js.map +1 -1
- package/dist/slate-runner-spawn.js +2 -2
- package/dist/slate-runner-spawn.js.map +1 -1
- package/dist/slate-site-references-capture.d.ts +38 -1
- package/dist/slate-site-references-capture.d.ts.map +1 -1
- package/dist/slate-site-references-capture.js +25 -7
- package/dist/slate-site-references-capture.js.map +1 -1
- package/dist/slate-site-references-client.d.ts +13 -1
- package/dist/slate-site-references-client.d.ts.map +1 -1
- package/dist/slate-site-references-client.js +39 -14
- package/dist/slate-site-references-client.js.map +1 -1
- package/dist/slate-site-references-local.d.ts +3 -0
- package/dist/slate-site-references-local.d.ts.map +1 -1
- package/dist/slate-site-references-local.js +20 -1
- package/dist/slate-site-references-local.js.map +1 -1
- package/dist/slate-site-references-suggest.d.ts +25 -2
- package/dist/slate-site-references-suggest.d.ts.map +1 -1
- package/dist/slate-site-references-suggest.js +71 -12
- package/dist/slate-site-references-suggest.js.map +1 -1
- package/dist/slate-site-references.d.ts +11 -0
- package/dist/slate-site-references.d.ts.map +1 -1
- package/dist/slate-site-references.js +42 -3
- package/dist/slate-site-references.js.map +1 -1
- package/dist/slate-view-contract.d.ts +39 -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 +8 -0
- package/dist/slate-view.js.map +1 -1
- package/dist/slate-workspace-parse.d.ts.map +1 -1
- package/dist/slate-workspace-parse.js +35 -0
- package/dist/slate-workspace-parse.js.map +1 -1
- package/dist/slate-workspace-types.d.ts +31 -2
- package/dist/slate-workspace-types.d.ts.map +1 -1
- package/dist/workspace-draw-branch.d.ts +27 -0
- package/dist/workspace-draw-branch.d.ts.map +1 -0
- package/dist/workspace-draw-branch.js +101 -0
- package/dist/workspace-draw-branch.js.map +1 -0
- package/dist/workspace-draw-client.d.ts +27 -0
- package/dist/workspace-draw-client.d.ts.map +1 -1
- package/dist/workspace-draw-client.js +30 -0
- package/dist/workspace-draw-client.js.map +1 -1
- package/dist/workspace-draw-codex.d.ts +5 -5
- package/dist/workspace-draw-codex.d.ts.map +1 -1
- package/dist/workspace-draw-codex.js +4 -3
- package/dist/workspace-draw-codex.js.map +1 -1
- package/dist/workspace-draw-run.d.ts +19 -3
- package/dist/workspace-draw-run.d.ts.map +1 -1
- package/dist/workspace-draw-run.js +44 -4
- package/dist/workspace-draw-run.js.map +1 -1
- package/dist/workspace-draw-types.d.ts +18 -2
- package/dist/workspace-draw-types.d.ts.map +1 -1
- package/dist/workspace-draw-types.js.map +1 -1
- package/dist/workspace-runner-main.d.ts +9 -2
- package/dist/workspace-runner-main.d.ts.map +1 -1
- package/dist/workspace-runner-main.js +21 -2
- package/dist/workspace-runner-main.js.map +1 -1
- package/dist/workspace-runner-spawn.js +1 -1
- package/dist/workspace-runner-spawn.js.map +1 -1
- package/open-design.json +2 -2
- package/package.json +1 -1
- package/runtime/codex-conversion/bin/convert.mjs +1 -1
- package/runtime/codex-conversion/src/codex/caller-home.mjs +95 -0
- package/runtime/codex-conversion/src/codex/home.mjs +8 -2
- package/runtime/codex-conversion/src/images/execute.mjs +1 -1
- package/runtime/codex-conversion/src/images/native-invoke.mjs +21 -13
- package/runtime/codex-conversion/src/images/native.mjs +42 -19
- package/runtime/codex-conversion/src/run.mjs +2 -1
- package/skills/12ui-design/SKILL.md +6 -6
|
@@ -8,31 +8,37 @@
|
|
|
8
8
|
* - Edit: draw on the design (the scribble layer, mcp-slate-ui-script-scribble.ts; the view fits the design while
|
|
9
9
|
* drawing) and/or type a change, then Enter. The edit runs at once and the view closes onto the Designs tab, where
|
|
10
10
|
* the new version is already a loading tile next to its source.
|
|
11
|
-
* - Branch:
|
|
12
|
-
*
|
|
11
|
+
* - Branch: Full page or More pages (page names optional, comma separated), then Enter. It runs the branch pipeline
|
|
12
|
+
* on this design: the full page continued below the fold, or other pages of the same product; each screen lands on
|
|
13
|
+
* the branch's board in the Designs tab (mcp-slate-ui-script-board.ts).
|
|
14
|
+
*
|
|
15
|
+
* Opened from a branch's board, the view shows the screen's whole column as the continuous page it is (a web page flush,
|
|
16
|
+
* app states framed one by one), at the port's width, scrolling down; left and right step across the board's columns.
|
|
17
|
+
* The actions act on the screen at the middle of the port, whose code the bar names as it scrolls.
|
|
13
18
|
*
|
|
14
19
|
* Keys: Escape leaves the bar, then the view; left and right step; plus, minus, 0 (fit) and 1 (100 percent) zoom.
|
|
15
20
|
* In the workspace the view covers the frame; in a card whose host has no fullscreen it opens in the card instead.
|
|
16
21
|
*/
|
|
17
22
|
export const SLATE_UI_VIEWER = String.raw `
|
|
18
23
|
var ZOOM_MAX = 8;
|
|
19
|
-
var
|
|
20
|
-
var BRANCH_MAX_PAGES = 8;
|
|
24
|
+
var BRANCH_MAX_PAGES = 4;
|
|
21
25
|
var PAGE_NAME_CHARS = 60;
|
|
22
26
|
|
|
23
27
|
// Open the view on a version, optionally straight onto its edit or branch bar. From the card it asks for the workspace.
|
|
24
|
-
function openViewer(versionId, mode) {
|
|
28
|
+
function openViewer(versionId, mode, board) {
|
|
25
29
|
var v = ver(versionId);
|
|
26
30
|
if (!v) return;
|
|
27
|
-
state.lv = { versionId: versionId, mode: mode || null, scale: 1, x: 0, y: 0, fitted: true, prompt: "", pages: "", strokes: [], current: null, committing: false, error: "", id: uuid4(), els: {} };
|
|
31
|
+
state.lv = { scrollY: state.lv ? state.lv.scrollY : window.scrollY, versionId: versionId, mode: mode || null, board: board || null, focus: true, anchor: null, layout: null, scale: 1, x: 0, y: 0, fitted: true, prompt: "", pages: "", strokes: [], current: null, committing: false, error: "", id: uuid4(), els: {} };
|
|
28
32
|
if (!isFullscreen() && canFullscreen()) { requestMode("fullscreen"); }
|
|
29
33
|
renderAll();
|
|
30
34
|
}
|
|
31
35
|
function closeViewer() {
|
|
32
36
|
if (!state.lv || state.lv.committing) return;
|
|
37
|
+
var y = state.lv.scrollY;
|
|
33
38
|
state.lv = null;
|
|
34
39
|
viewerHost().textContent = "";
|
|
35
40
|
renderAll();
|
|
41
|
+
window.scrollTo(0, y);
|
|
36
42
|
}
|
|
37
43
|
function viewerHost() {
|
|
38
44
|
if (isFullscreen()) { if (!stageBuilt) buildStageSkeleton(); return stageEls.viewer; }
|
|
@@ -40,9 +46,62 @@ export const SLATE_UI_VIEWER = String.raw `
|
|
|
40
46
|
}
|
|
41
47
|
|
|
42
48
|
function lvVersion() { return state.lv ? ver(state.lv.versionId) : null; }
|
|
49
|
+
|
|
50
|
+
function lvColumn() {
|
|
51
|
+
var lv = state.lv;
|
|
52
|
+
return lv && lv.board && !lv.mode ? boardColumn(lv.board.from, lv.board.column) : null;
|
|
53
|
+
}
|
|
54
|
+
function lvColumns() {
|
|
55
|
+
var lv = state.lv;
|
|
56
|
+
return lv && lv.board ? boardColumns(lv.board.from).filter(function (col) { return col.screens.some(boardScreenVersion); }) : [];
|
|
57
|
+
}
|
|
58
|
+
function columnLayout(col) {
|
|
59
|
+
var first = col.screens.map(boardScreenVersion).filter(sized)[0];
|
|
60
|
+
var w = first ? first.width : 1536;
|
|
61
|
+
var gap = col.flow === "states" ? Math.round(w * 0.03) : 0;
|
|
62
|
+
var bottom = 0;
|
|
63
|
+
var shots = col.screens.filter(function (s) { return boardScreenVersion(s) || !s.c || drawing(s.c); }).map(function (s, i) {
|
|
64
|
+
var v = boardScreenVersion(s);
|
|
65
|
+
var h = Math.round(w / (sized(v) ? v.width / v.height : boardRatio(state.lv.board.from)));
|
|
66
|
+
var shot = { s: s, v: v, top: bottom + (i ? gap : 0), height: h };
|
|
67
|
+
bottom = shot.top + h;
|
|
68
|
+
return shot;
|
|
69
|
+
});
|
|
70
|
+
return { w: w, h: bottom, flow: col.flow, shots: shots };
|
|
71
|
+
}
|
|
72
|
+
function stageSize() {
|
|
73
|
+
var lv = state.lv;
|
|
74
|
+
if (lv && lv.layout && !lv.mode) return { w: lv.layout.w, h: lv.layout.h };
|
|
75
|
+
var v = lvVersion();
|
|
76
|
+
return v ? { w: v.width, h: v.height } : null;
|
|
77
|
+
}
|
|
78
|
+
function scrolls() { var lv = state.lv; return !!(lv && lv.layout && !lv.mode && lv.layout.shots.length > 1); }
|
|
79
|
+
function followScroll() {
|
|
80
|
+
var lv = state.lv;
|
|
81
|
+
var size = portSize();
|
|
82
|
+
if (!lv || !lv.layout || lv.mode || !size) return;
|
|
83
|
+
var mid = (size.h / 2 - lv.y) / lv.scale;
|
|
84
|
+
var shown = lv.layout.shots.filter(function (sh) { return sh.v; });
|
|
85
|
+
var at = shown.filter(function (sh) { return sh.top <= mid; }).pop() || shown[0];
|
|
86
|
+
if (at && at.v.versionId !== lv.versionId) { lv.versionId = at.v.versionId; syncViewerTarget(); }
|
|
87
|
+
}
|
|
88
|
+
|
|
43
89
|
function stepViewer(delta) {
|
|
44
90
|
var lv = state.lv;
|
|
45
91
|
if (!lv || lv.mode) return;
|
|
92
|
+
if (lv.board) {
|
|
93
|
+
var cols = lvColumns();
|
|
94
|
+
var col = cols[cols.findIndex(function (x) { return x.index === lv.board.column; }) + delta];
|
|
95
|
+
if (!col) return;
|
|
96
|
+
lv.board = { from: lv.board.from, column: col.index };
|
|
97
|
+
lv.versionId = col.screens.map(boardScreenVersion).filter(Boolean)[0].versionId;
|
|
98
|
+
lv.fitted = true;
|
|
99
|
+
lv.anchor = 0;
|
|
100
|
+
lv.error = "";
|
|
101
|
+
lv.built = null;
|
|
102
|
+
renderViewer();
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
46
105
|
var order = viewerOrder();
|
|
47
106
|
var at = order.findIndex(function (x) { return x.versionId === lv.versionId; });
|
|
48
107
|
var next = order[at + delta];
|
|
@@ -63,8 +122,12 @@ export const SLATE_UI_VIEWER = String.raw `
|
|
|
63
122
|
var v = lvVersion();
|
|
64
123
|
if (!v) { state.lv = null; host.textContent = ""; return; }
|
|
65
124
|
var c = cand(v.candidateId);
|
|
66
|
-
var
|
|
67
|
-
|
|
125
|
+
var col = lvColumn();
|
|
126
|
+
lv.layout = col ? columnLayout(col) : null;
|
|
127
|
+
var sig = lv.layout
|
|
128
|
+
? JSON.stringify([lv.board, lv.layout.flow, lv.layout.shots.map(function (sh) { return sh.v ? sh.v.sha256 : sh.height; }), lvColumns().length])
|
|
129
|
+
: JSON.stringify([v.versionId, v.sha256, lv.mode, lv.scope, samePick(v), state.busy, v.editable, localImage().ready, moreBusy(), viewerOrder().map(function (x) { return x.versionId; })]);
|
|
130
|
+
if (lv.built === sig && host.firstChild) { syncViewerTarget(); syncViewerForm(); return; }
|
|
68
131
|
lv.built = sig;
|
|
69
132
|
host.textContent = "";
|
|
70
133
|
var box = el("div", "lv");
|
|
@@ -73,17 +136,13 @@ export const SLATE_UI_VIEWER = String.raw `
|
|
|
73
136
|
box.setAttribute("aria-label", tileName(c, v));
|
|
74
137
|
|
|
75
138
|
var bar = el("div", "lvbar");
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
var from = parentLabel(v);
|
|
79
|
-
if (from) tag.appendChild(el("span", "dfrom", t("fromLabel", { label: from })));
|
|
80
|
-
var page = pageName(c);
|
|
81
|
-
if (page) tag.appendChild(el("span", "dpage", page));
|
|
82
|
-
if (samePick(v)) { var chosen = el("span", "dchosen inline"); chosen.innerHTML = svgIcon(ICON.choose, 13); chosen.appendChild(el("span", "sr", t("chosen"))); tag.appendChild(chosen); }
|
|
83
|
-
bar.appendChild(tag);
|
|
139
|
+
lv.els.tag = viewerTag(v);
|
|
140
|
+
bar.appendChild(lv.els.tag);
|
|
84
141
|
bar.appendChild(el("span", "spacer"));
|
|
85
|
-
var order = viewerOrder();
|
|
86
|
-
var at =
|
|
142
|
+
var order = lv.board ? lvColumns() : viewerOrder();
|
|
143
|
+
var at = lv.board
|
|
144
|
+
? order.findIndex(function (x) { return x.index === lv.board.column; })
|
|
145
|
+
: order.findIndex(function (x) { return x.versionId === v.versionId; });
|
|
87
146
|
var prev = iconAction(t("previous"), ICON.left, function () { stepViewer(-1); });
|
|
88
147
|
prev.disabled = at <= 0 || !!lv.mode;
|
|
89
148
|
var next = iconAction(t("next"), ICON.right, function () { stepViewer(1); });
|
|
@@ -95,17 +154,30 @@ export const SLATE_UI_VIEWER = String.raw `
|
|
|
95
154
|
box.appendChild(bar);
|
|
96
155
|
|
|
97
156
|
var port = el("div", "lvport" + (lv.mode === "edit" ? " drawing" : ""));
|
|
98
|
-
|
|
157
|
+
var size = stageSize();
|
|
158
|
+
port.style.setProperty("--ar", String(lv.layout ? lv.layout.w / lv.layout.shots[0].height : v.width / v.height));
|
|
99
159
|
var stageBox = el("div", "lvstage");
|
|
100
|
-
stageBox.style.width =
|
|
101
|
-
stageBox.style.height =
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
160
|
+
stageBox.style.width = size.w + "px";
|
|
161
|
+
stageBox.style.height = size.h + "px";
|
|
162
|
+
if (lv.layout) {
|
|
163
|
+
stageBox.classList.add("column");
|
|
164
|
+
stageBox.setAttribute("data-flow", lv.layout.flow);
|
|
165
|
+
lv.layout.shots.forEach(function (sh) {
|
|
166
|
+
var part = el("div", "lvshot" + (sh.v ? "" : " loading shimmer"));
|
|
167
|
+
part.style.top = sh.top + "px";
|
|
168
|
+
part.style.height = sh.height + "px";
|
|
169
|
+
if (sh.v) part.appendChild(viewerImage(sh.v, sh.s.c ? tileName(sh.s.c, sh.v) : t("versionName", { label: sh.v.label })));
|
|
170
|
+
else part.appendChild(el("span", "spin"));
|
|
171
|
+
stageBox.appendChild(part);
|
|
172
|
+
});
|
|
173
|
+
if (lv.focus) {
|
|
174
|
+
var shot = lv.layout.shots.filter(function (sh) { return sh.v && sh.v.versionId === lv.versionId; })[0];
|
|
175
|
+
lv.anchor = shot ? shot.top : 0;
|
|
176
|
+
lv.focus = false;
|
|
177
|
+
}
|
|
178
|
+
} else {
|
|
179
|
+
stageBox.appendChild(viewerImage(v, tileName(c, v)));
|
|
180
|
+
}
|
|
109
181
|
port.appendChild(stageBox);
|
|
110
182
|
if (lv.mode === "edit") scribbleAttach(stageBox, lv);
|
|
111
183
|
var zoom = el("div", "lvzoom");
|
|
@@ -125,7 +197,8 @@ export const SLATE_UI_VIEWER = String.raw `
|
|
|
125
197
|
var foot = el("div", "lvfoot");
|
|
126
198
|
if (lv.mode === "edit") foot.appendChild(editForm(v));
|
|
127
199
|
else if (lv.mode === "branch") foot.appendChild(branchForm(v));
|
|
128
|
-
else
|
|
200
|
+
else { lv.els.acts = viewerActions(v); foot.appendChild(lv.els.acts); }
|
|
201
|
+
lv.els.target = targetSig(v);
|
|
129
202
|
lv.els.alert = el("p", "alert");
|
|
130
203
|
lv.els.alert.setAttribute("role", "alert");
|
|
131
204
|
foot.appendChild(lv.els.alert);
|
|
@@ -137,6 +210,40 @@ export const SLATE_UI_VIEWER = String.raw `
|
|
|
137
210
|
if (first && first.focus && lv.mode) first.focus();
|
|
138
211
|
}
|
|
139
212
|
|
|
213
|
+
function viewerImage(v, alt) {
|
|
214
|
+
var img = el("img", "lvimg empty");
|
|
215
|
+
img.alt = alt;
|
|
216
|
+
img.setAttribute("draggable", "false");
|
|
217
|
+
var cached = state.fulls[imageKey(v, "full")] || state.thumbs[imageKey(v, "thumb")];
|
|
218
|
+
if (cached) { img.src = cached; img.classList.remove("empty"); }
|
|
219
|
+
bindImage(img, v, "full", true);
|
|
220
|
+
return img;
|
|
221
|
+
}
|
|
222
|
+
function viewerTag(v) {
|
|
223
|
+
var tag = el("span", "dtag");
|
|
224
|
+
tag.appendChild(el("b", "code", v.label));
|
|
225
|
+
var from = parentLabel(v);
|
|
226
|
+
if (from) tag.appendChild(el("span", "dfrom", t("fromLabel", { label: from })));
|
|
227
|
+
var c = cand(v.candidateId);
|
|
228
|
+
var page = c ? pageName(c) : "";
|
|
229
|
+
if (page) tag.appendChild(el("span", "dpage", page));
|
|
230
|
+
if (samePick(v)) { var chosen = el("span", "dchosen inline"); chosen.innerHTML = svgIcon(ICON.choose, 13); chosen.appendChild(el("span", "sr", t("chosen"))); tag.appendChild(chosen); }
|
|
231
|
+
return tag;
|
|
232
|
+
}
|
|
233
|
+
function targetSig(v) { return JSON.stringify([v.versionId, samePick(v), state.busy, v.editable, localImage().ready]); }
|
|
234
|
+
function syncViewerTarget() {
|
|
235
|
+
var lv = state.lv;
|
|
236
|
+
var v = lvVersion();
|
|
237
|
+
if (!lv || !v || lv.mode || !lv.els.tag || !lv.els.acts || lv.els.target === targetSig(v)) return;
|
|
238
|
+
lv.els.target = targetSig(v);
|
|
239
|
+
var tag = viewerTag(v);
|
|
240
|
+
lv.els.tag.replaceWith(tag);
|
|
241
|
+
lv.els.tag = tag;
|
|
242
|
+
var acts = viewerActions(v);
|
|
243
|
+
lv.els.acts.replaceWith(acts);
|
|
244
|
+
lv.els.acts = acts;
|
|
245
|
+
}
|
|
246
|
+
|
|
140
247
|
function viewerActions(v) {
|
|
141
248
|
var row = el("div", "lvacts");
|
|
142
249
|
row.setAttribute("role", "toolbar");
|
|
@@ -162,6 +269,7 @@ export const SLATE_UI_VIEWER = String.raw `
|
|
|
162
269
|
lv.current = null;
|
|
163
270
|
lv.fitted = true;
|
|
164
271
|
lv.built = null;
|
|
272
|
+
if (!mode && lv.board) lv.focus = true;
|
|
165
273
|
renderViewer();
|
|
166
274
|
}
|
|
167
275
|
|
|
@@ -199,25 +307,44 @@ export const SLATE_UI_VIEWER = String.raw `
|
|
|
199
307
|
form.addEventListener("submit", function (e) { e.preventDefault(); commitViewer(); });
|
|
200
308
|
return form;
|
|
201
309
|
}
|
|
202
|
-
// ---- branch:
|
|
310
|
+
// ---- branch: the full page, or more pages (names optional) ----
|
|
203
311
|
function branchPages(text) {
|
|
204
312
|
return String(text || "").split(/[,\n;]/).map(function (p) { return p.replace(/\s+/g, " ").trim().slice(0, PAGE_NAME_CHARS); }).filter(Boolean).slice(0, BRANCH_MAX_PAGES);
|
|
205
313
|
}
|
|
314
|
+
function branchScope() { var lv = state.lv; return lv && lv.scope === "site" ? "site" : "page"; }
|
|
206
315
|
function branchForm(v) {
|
|
207
316
|
var lv = state.lv;
|
|
208
317
|
var form = el("form", "lvform");
|
|
209
318
|
form.setAttribute("aria-label", t("branch"));
|
|
210
319
|
form.appendChild(modeMark(ICON.branch));
|
|
211
|
-
var
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
320
|
+
var seg = el("div", "seg lvscope");
|
|
321
|
+
seg.setAttribute("role", "radiogroup");
|
|
322
|
+
seg.setAttribute("aria-label", t("branch"));
|
|
323
|
+
[["page", t("fullPage")], ["site", t("morePages")]].forEach(function (choice) {
|
|
324
|
+
var b = button(choice[1], "segbtn", function () {
|
|
325
|
+
if (branchScope() === choice[0]) return;
|
|
326
|
+
lv.scope = choice[0];
|
|
327
|
+
renderViewer();
|
|
328
|
+
});
|
|
329
|
+
b.setAttribute("role", "radio");
|
|
330
|
+
b.setAttribute("aria-checked", branchScope() === choice[0] ? "true" : "false");
|
|
331
|
+
seg.appendChild(b);
|
|
332
|
+
});
|
|
333
|
+
form.appendChild(seg);
|
|
334
|
+
if (branchScope() === "site") {
|
|
335
|
+
var input = el("input");
|
|
336
|
+
input.type = "text";
|
|
337
|
+
input.className = "lvinput";
|
|
338
|
+
input.placeholder = t("branchPages");
|
|
339
|
+
input.setAttribute("aria-label", t("branchPages"));
|
|
340
|
+
input.value = lv.pages;
|
|
341
|
+
input.addEventListener("input", function () { lv.pages = input.value; });
|
|
342
|
+
enterApplies(input);
|
|
343
|
+
form.appendChild(input);
|
|
344
|
+
} else {
|
|
345
|
+
form.appendChild(el("span", "spacer"));
|
|
346
|
+
}
|
|
219
347
|
lv.els.apply = iconAction(t("branch"), ICON.send, function () { commitViewer(); }, "go");
|
|
220
|
-
form.appendChild(input);
|
|
221
348
|
form.appendChild(lv.els.apply);
|
|
222
349
|
form.appendChild(iconAction(t("cancel"), ICON.close, function () { setViewerMode(null); }));
|
|
223
350
|
form.addEventListener("submit", function (e) { e.preventDefault(); commitViewer(); });
|
|
@@ -258,9 +385,9 @@ export const SLATE_UI_VIEWER = String.raw `
|
|
|
258
385
|
var d = { versionId: v.versionId, prompt: lv.prompt, strokes: lv.strokes };
|
|
259
386
|
work = editActionFor(d, v).then(function (action) { return runAction(action, lv.id); });
|
|
260
387
|
} else {
|
|
261
|
-
var
|
|
262
|
-
var
|
|
263
|
-
if (pages.length) action.pages = pages;
|
|
388
|
+
var action = { kind: "round", mode: "branch", fromVersionId: v.versionId, scope: branchScope() };
|
|
389
|
+
var pages = action.scope === "site" ? branchPages(lv.pages) : [];
|
|
390
|
+
if (pages.length) action.pages = pages;
|
|
264
391
|
work = runAction(action, lv.id);
|
|
265
392
|
}
|
|
266
393
|
work.then(function () {
|
|
@@ -284,18 +411,19 @@ export const SLATE_UI_VIEWER = String.raw `
|
|
|
284
411
|
return r && r.width > 0 && r.height > 0 ? { w: r.width, h: r.height } : null;
|
|
285
412
|
}
|
|
286
413
|
function fitScale() {
|
|
287
|
-
var
|
|
414
|
+
var stage = stageSize();
|
|
288
415
|
var size = portSize();
|
|
289
|
-
if (!
|
|
290
|
-
return Math.min(size.w /
|
|
416
|
+
if (!stage || !size) return 1;
|
|
417
|
+
if (scrolls()) return Math.min(size.w / stage.w, 1);
|
|
418
|
+
return Math.min(size.w / stage.w, size.h / stage.h);
|
|
291
419
|
}
|
|
292
420
|
function clampPan() {
|
|
293
421
|
var lv = state.lv;
|
|
294
|
-
var
|
|
422
|
+
var stage = stageSize();
|
|
295
423
|
var size = portSize();
|
|
296
|
-
if (!
|
|
297
|
-
var w =
|
|
298
|
-
var h =
|
|
424
|
+
if (!stage || !size) return;
|
|
425
|
+
var w = stage.w * lv.scale;
|
|
426
|
+
var h = stage.h * lv.scale;
|
|
299
427
|
// Smaller than the port: centred on that axis. Larger: no gap at either edge.
|
|
300
428
|
lv.x = w <= size.w ? (size.w - w) / 2 : Math.min(0, Math.max(size.w - w, lv.x));
|
|
301
429
|
lv.y = h <= size.h ? (size.h - h) / 2 : Math.min(0, Math.max(size.h - h, lv.y));
|
|
@@ -304,9 +432,11 @@ export const SLATE_UI_VIEWER = String.raw `
|
|
|
304
432
|
var lv = state.lv;
|
|
305
433
|
if (!lv || !lv.els.stage) return;
|
|
306
434
|
if (lv.fitted) lv.scale = fitScale();
|
|
435
|
+
if (lv.anchor !== null && lv.layout && !lv.mode) lv.y = -lv.anchor * lv.scale;
|
|
307
436
|
clampPan();
|
|
308
437
|
lv.els.stage.style.transform = "translate(" + lv.x + "px, " + lv.y + "px) scale(" + lv.scale + ")";
|
|
309
438
|
if (lv.els.level) lv.els.level.textContent = Math.round(lv.scale * 100) + "%";
|
|
439
|
+
followScroll();
|
|
310
440
|
}
|
|
311
441
|
function fitViewer() { var lv = state.lv; if (!lv) return; lv.fitted = true; applyZoom(); }
|
|
312
442
|
function zoomAround(next, cx, cy) {
|
|
@@ -322,6 +452,7 @@ export const SLATE_UI_VIEWER = String.raw `
|
|
|
322
452
|
lv.y = py - (py - lv.y) * (scale / lv.scale);
|
|
323
453
|
lv.scale = scale;
|
|
324
454
|
lv.fitted = false;
|
|
455
|
+
lv.anchor = null;
|
|
325
456
|
applyZoom();
|
|
326
457
|
}
|
|
327
458
|
function zoomBy(factor, cx, cy) { var lv = state.lv; if (lv) zoomAround(lv.scale * factor, cx, cy); }
|
|
@@ -339,7 +470,8 @@ export const SLATE_UI_VIEWER = String.raw `
|
|
|
339
470
|
var dy = e.deltaMode === 1 ? e.deltaY * 16 : e.deltaY;
|
|
340
471
|
// A trackpad pinch arrives as a wheel with ctrlKey; vertical zooms around the pointer; horizontal and Shift pan.
|
|
341
472
|
if (e.ctrlKey) { zoomBy(Math.exp(-dy * 0.01), p.x, p.y); return; }
|
|
342
|
-
if (e.shiftKey
|
|
473
|
+
if (scrolls() && !e.shiftKey && Math.abs(dy) >= Math.abs(dx)) { lv.anchor = null; lv.y -= dy; applyZoom(); return; }
|
|
474
|
+
if (e.shiftKey || Math.abs(dx) > Math.abs(dy)) { lv.anchor = null; lv.x -= e.shiftKey && !dx ? 0 : dx; lv.y -= e.shiftKey ? dy : 0; lv.fitted = false; applyZoom(); return; }
|
|
343
475
|
zoomBy(Math.exp(-dy * 0.002), p.x, p.y);
|
|
344
476
|
}, { passive: false });
|
|
345
477
|
port.addEventListener("dblclick", function (e) {
|
|
@@ -375,6 +507,7 @@ export const SLATE_UI_VIEWER = String.raw `
|
|
|
375
507
|
}
|
|
376
508
|
lv.x += p.x - last.x;
|
|
377
509
|
lv.y += p.y - last.y;
|
|
510
|
+
lv.anchor = null;
|
|
378
511
|
lv.fitted = false;
|
|
379
512
|
applyZoom();
|
|
380
513
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-slate-ui-script-viewer.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-viewer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-script-viewer.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-viewer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmgBxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-slate-ui-script.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-script.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;GAWG;AAEH;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AA2B3D;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,aAAa,KAAG,MAyB/C,CAAC;AAEb,eAAO,MAAM,eAAe,QAA8B,CAAC"}
|
|
@@ -3,12 +3,14 @@ import { SLATE_UI_LOCALES } from './mcp-slate-ui-locales/index.js';
|
|
|
3
3
|
import { SLATE_EDIT_PROMPT_MAX_BYTES, SLATE_UI_TOOLS } from './slate-view-contract.js';
|
|
4
4
|
import { SLATE_UI_BRIDGE } from './mcp-slate-ui-script-bridge.js';
|
|
5
5
|
import { SLATE_UI_BROWSER } from './mcp-slate-ui-script-browser.js';
|
|
6
|
+
import { SLATE_UI_BOARD } from './mcp-slate-ui-script-board.js';
|
|
6
7
|
import { SLATE_UI_DESIGNS } from './mcp-slate-ui-script-designs.js';
|
|
7
8
|
import { SLATE_UI_EDIT } from './mcp-slate-ui-script-edit.js';
|
|
8
9
|
import { SLATE_UI_INLINE } from './mcp-slate-ui-script-inline.js';
|
|
9
10
|
import { SLATE_UI_INSPIRATION } from './mcp-slate-ui-script-inspiration.js';
|
|
10
11
|
import { buildSlateUiL10n } from './mcp-slate-ui-script-l10n.js';
|
|
11
12
|
import { SLATE_UI_MORE } from './mcp-slate-ui-script-more.js';
|
|
13
|
+
import { SLATE_UI_PEEK } from './mcp-slate-ui-script-peek.js';
|
|
12
14
|
import { SLATE_UI_NO_PAUSE, SLATE_UI_PAUSE } from './mcp-slate-ui-script-pause.js';
|
|
13
15
|
import { SLATE_UI_REFERENCES } from './mcp-slate-ui-script-references.js';
|
|
14
16
|
import { SLATE_UI_REMOTE } from './mcp-slate-ui-script-remote.js';
|
|
@@ -59,6 +61,7 @@ export const buildSlateUiScript = (target) => [
|
|
|
59
61
|
SLATE_UI_REFERENCES,
|
|
60
62
|
target === 'remote' ? SLATE_UI_PAUSE : SLATE_UI_NO_PAUSE,
|
|
61
63
|
SLATE_UI_DESIGNS,
|
|
64
|
+
SLATE_UI_BOARD,
|
|
62
65
|
SLATE_UI_VIEWER,
|
|
63
66
|
SLATE_UI_STAGE,
|
|
64
67
|
SLATE_UI_EDIT.replace('__EDIT_PROMPT_MAX_BYTES__', () => JSON.stringify(SLATE_EDIT_PROMPT_MAX_BYTES)),
|
|
@@ -66,6 +69,7 @@ export const buildSlateUiScript = (target) => [
|
|
|
66
69
|
SLATE_UI_SCRIBBLE,
|
|
67
70
|
SLATE_UI_REMOTE,
|
|
68
71
|
SLATE_UI_BROWSER,
|
|
72
|
+
SLATE_UI_PEEK,
|
|
69
73
|
HANDSHAKE,
|
|
70
74
|
'})();',
|
|
71
75
|
].join('\n');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-slate-ui-script.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-script.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A branch's board (mcp-slate-ui-script-board.ts) and its column in the large view. Columns run across and scroll when
|
|
3
|
+
* the board is wider than the frame: about two at the Codex inline width, four at 1440 px, one and a bit on a phone. A
|
|
4
|
+
* web page's column is one frame with its screens flush (no gap, no seam); an app's column frames each state on its own.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SLATE_UI_BOARD_STYLES: string;
|
|
7
|
+
//# sourceMappingURL=mcp-slate-ui-styles-board.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-styles-board.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-board.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,QAuBjC,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A branch's board (mcp-slate-ui-script-board.ts) and its column in the large view. Columns run across and scroll when
|
|
3
|
+
* the board is wider than the frame: about two at the Codex inline width, four at 1440 px, one and a bit on a phone. A
|
|
4
|
+
* web page's column is one frame with its screens flush (no gap, no seam); an app's column frames each state on its own.
|
|
5
|
+
*/
|
|
6
|
+
export const SLATE_UI_BOARD_STYLES = String.raw `
|
|
7
|
+
.dboard { display: flex; align-items: flex-start; gap: 20px; min-width: 0; overflow-x: auto; padding: 2px 2px 10px; scrollbar-width: thin; }
|
|
8
|
+
.bcol { flex: none; width: max(min(340px, 44%), min(260px, 80%)); min-width: 0; }
|
|
9
|
+
.bchead { display: flex; align-items: center; gap: 6px; min-width: 0; min-height: 24px; margin-bottom: 8px; }
|
|
10
|
+
.bctitle { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; font-weight: 600; }
|
|
11
|
+
.bctitle.waiting { width: 45%; height: 12px; border-radius: 6px; background: var(--fill); }
|
|
12
|
+
.bstack { position: relative; display: flex; flex-direction: column; border-radius: var(--radius); overflow: hidden; background: var(--fill); }
|
|
13
|
+
.bstack::after, .bcol[data-flow="states"] .bshot::after { content: ""; position: absolute; inset: 0; border-radius: inherit; box-shadow: inset 0 0 0 1px var(--border2); pointer-events: none; }
|
|
14
|
+
.bcol[data-flow="states"] .bstack { gap: 10px; border-radius: 0; overflow: visible; background: none; }
|
|
15
|
+
.bcol[data-flow="states"] .bstack::after { display: none; }
|
|
16
|
+
.bcol[data-flow="states"] .bshot { border-radius: var(--radius); overflow: hidden; background: var(--fill); }
|
|
17
|
+
|
|
18
|
+
.bshot { position: relative; min-width: 0; }
|
|
19
|
+
button.bface { position: relative; display: block; width: 100%; aspect-ratio: var(--ar, 1.5); padding: 0; border: 0; border-radius: 0; background: var(--fill); overflow: hidden; cursor: zoom-in; }
|
|
20
|
+
button.bface:disabled { opacity: 1; cursor: default; }
|
|
21
|
+
.bface .thumb { display: block; width: 100%; height: 100%; object-fit: cover; }
|
|
22
|
+
.bface .thumb:not([src]) { visibility: hidden; }
|
|
23
|
+
.bshot.chosen::before { content: ""; position: absolute; inset: 0; z-index: 1; box-shadow: inset 0 0 0 3px var(--ring); pointer-events: none; }
|
|
24
|
+
.bshot:hover .dpick, .bshot:focus-within .dpick { opacity: 1; }
|
|
25
|
+
.lvstage.column { box-shadow: none; }
|
|
26
|
+
.lvstage.column[data-flow="page"] { box-shadow: var(--elev-lg); }
|
|
27
|
+
.lvshot { position: absolute; left: 0; width: 100%; overflow: hidden; background: var(--bg); }
|
|
28
|
+
.lvstage.column[data-flow="states"] .lvshot { box-shadow: var(--elev-lg); }
|
|
29
|
+
`;
|
|
30
|
+
//# sourceMappingURL=mcp-slate-ui-styles-board.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-styles-board.js","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-board.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;CAuB9C,CAAC"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The Designs tab and the large view. Tiles are large and keep the frame's shape (`--ar` per tile); a grid's columns
|
|
3
3
|
* are no narrower than `--tile` times the square root of its ratio (`--shape`), so a 3:2 design is about 160 px wide on
|
|
4
|
-
* a phone (two across),
|
|
4
|
+
* a phone (two across), 300 px in a card (two across in Codex's inline frame) and 400 px in the workspace (three across
|
|
5
|
+
* at 1440 px). A slot being drawn is the loading surface (mcp-slate-ui-styles-loading.ts). Under
|
|
5
6
|
* each picture is one row: the code (and where it came from, or its page) at the left, the four icon actions at the
|
|
6
7
|
* right, so nothing covers the design. The chosen design has the selection's own language: a thick ring in the host's
|
|
7
8
|
* accent and a filled check on the picture.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-slate-ui-styles-designs.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-designs.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-styles-designs.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-designs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,QAgHnC,CAAC"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The Designs tab and the large view. Tiles are large and keep the frame's shape (`--ar` per tile); a grid's columns
|
|
3
3
|
* are no narrower than `--tile` times the square root of its ratio (`--shape`), so a 3:2 design is about 160 px wide on
|
|
4
|
-
* a phone (two across),
|
|
4
|
+
* a phone (two across), 300 px in a card (two across in Codex's inline frame) and 400 px in the workspace (three across
|
|
5
|
+
* at 1440 px). A slot being drawn is the loading surface (mcp-slate-ui-styles-loading.ts). Under
|
|
5
6
|
* each picture is one row: the code (and where it came from, or its page) at the left, the four icon actions at the
|
|
6
7
|
* right, so nothing covers the design. The chosen design has the selection's own language: a thick ring in the host's
|
|
7
8
|
* accent and a filled check on the picture.
|
|
8
9
|
*/
|
|
9
10
|
export const SLATE_UI_DESIGNS_STYLES = String.raw `
|
|
10
11
|
.designs { --tile: 130px; display: flex; flex-direction: column; gap: 22px; min-width: 0; }
|
|
11
|
-
@container (min-width: 480px) { .designs { --tile:
|
|
12
|
-
#stage .designs { --tile:
|
|
12
|
+
@container (min-width: 480px) { .designs { --tile: 250px; } }
|
|
13
|
+
#stage .designs { --tile: 330px; }
|
|
13
14
|
@media (max-width: 639px) { #stage .designs { --tile: 130px; } }
|
|
14
15
|
|
|
15
16
|
/* The bar: how many a round draws, and More. */
|
|
@@ -32,13 +33,14 @@ export const SLATE_UI_DESIGNS_STYLES = String.raw `
|
|
|
32
33
|
.feedimg:not([src]) { visibility: hidden; }
|
|
33
34
|
.feedmore { flex: none; font-size: 11px; color: var(--text2); padding-left: 2px; }
|
|
34
35
|
.dnote { min-width: 0; flex: 0 1 auto; font-size: 12px; color: var(--text2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
36
|
+
.dcaption { min-width: 0; flex: 1 1 0; font-size: 12px; color: var(--text2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
37
|
+
.dcaption + .spacer { display: none; }
|
|
35
38
|
.dstat { display: inline-flex; align-items: center; gap: 6px; flex: none; font-size: 12px; color: var(--text2); font-variant-numeric: tabular-nums; }
|
|
36
39
|
.dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; }
|
|
37
40
|
.dot.run { background: var(--ring); animation: pulse 1.2s ease-in-out infinite; }
|
|
38
41
|
.dot.err { background: var(--danger); }
|
|
39
42
|
@keyframes pulse { 50% { opacity: .3; } }
|
|
40
43
|
.earlier { align-self: center; color: var(--text2); }
|
|
41
|
-
.dsec.branch .dgrid { padding-left: 14px; border-left: 2px solid var(--ring); margin-left: 10px; }
|
|
42
44
|
|
|
43
45
|
.dgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, calc(var(--tile) * var(--shape, 1.22))), 1fr)); gap: 14px 12px; align-items: start; min-width: 0; }
|
|
44
46
|
#stage .dgrid { gap: 20px 16px; }
|
|
@@ -57,11 +59,9 @@ export const SLATE_UI_DESIGNS_STYLES = String.raw `
|
|
|
57
59
|
/* Under the picture: its letter and, where there is one, where it came from; the words shorten with an ellipsis (the full words are the tag's title). */
|
|
58
60
|
.dmeta { display: flex; flex-wrap: nowrap; align-items: center; gap: 0 4px; min-width: 0; min-height: 28px; margin-top: 4px; }
|
|
59
61
|
.dtag { display: inline-flex; align-items: baseline; gap: 6px; min-width: 0; max-width: 100%; flex: 1 1 auto; overflow: hidden; white-space: nowrap; }
|
|
60
|
-
.dtag .code { position: static; flex: none; padding: 0 7px; border-radius: 999px; background: var(--fill); color: var(--text); font-size: 12px; font-weight: 600; line-height: 20px; }
|
|
62
|
+
.dtag .code, .bchead .code { position: static; flex: none; padding: 0 7px; border-radius: 999px; background: var(--fill); color: var(--text); font-size: 12px; font-weight: 600; line-height: 20px; }
|
|
61
63
|
.dfrom { flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: 12px; color: var(--text2); }
|
|
62
64
|
.dpage { min-width: 0; font-size: 12px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; }
|
|
63
|
-
.spin { position: absolute; left: 50%; top: 50%; width: 26px; height: 26px; margin: -13px 0 0 -13px; border: 2.5px solid var(--border); border-top-color: var(--text2); border-radius: 50%; animation: spin .9s linear infinite; }
|
|
64
|
-
@keyframes spin { to { transform: rotate(360deg); } }
|
|
65
65
|
.dtile.loading .dtag .code { background: transparent; box-shadow: inset 0 0 0 1px var(--border); color: var(--text2); }
|
|
66
66
|
/* The tile's one action: a labelled pill over the picture's top right, on hover or keyboard focus, always on a touch screen. */
|
|
67
67
|
.dpick { position: absolute; right: 8px; top: 8px; z-index: 2; padding: 5px 12px; border: 0; border-radius: 999px; background: var(--bg); color: var(--text); font-size: 12px; font-weight: 600; box-shadow: var(--elev); opacity: 0; transition: opacity .12s; }
|
|
@@ -111,10 +111,12 @@ export const SLATE_UI_DESIGNS_STYLES = String.raw `
|
|
|
111
111
|
.lvacts { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
|
|
112
112
|
.lvform { display: flex; align-items: center; gap: 4px; width: min(720px, 100%); padding: 4px 4px 4px 6px; border: 1px solid var(--border); border-radius: 999px; background: var(--bg); }
|
|
113
113
|
.lvform:focus-within { border-color: var(--ring); }
|
|
114
|
+
.seg.lvscope { display: inline-flex; flex: none; padding: 2px; border-radius: 999px; background: var(--fill); }
|
|
115
|
+
.lvscope button.segbtn { white-space: nowrap; }
|
|
114
116
|
.lvmode { display: inline-grid; place-items: center; flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--accent-solid); color: var(--inverse-text); }
|
|
115
117
|
input.lvinput { flex: 1 1 auto; min-width: 0; padding: 8px 6px; border: 0; background: transparent; color: var(--text); font: inherit; }
|
|
116
118
|
input.lvinput:focus-visible { outline: none; }
|
|
117
|
-
@media (prefers-reduced-motion: reduce) { .dot.run { animation: none; } button.dface { transition: none; } .dpick { transition: none; }
|
|
119
|
+
@media (prefers-reduced-motion: reduce) { .dot.run { animation: none; } button.dface { transition: none; } .dpick { transition: none; } }
|
|
118
120
|
/* The scribble layer of the large view's edit lies exactly over the picture. */
|
|
119
121
|
.scribble { position: absolute; inset: 0; width: 100%; height: 100%; cursor: crosshair; touch-action: none; }
|
|
120
122
|
`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-slate-ui-styles-designs.js","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-designs.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-styles-designs.js","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-designs.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgHhD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-slate-ui-styles-inspiration.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-inspiration.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,2BAA2B,
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-styles-inspiration.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-inspiration.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,2BAA2B,QAsEvC,CAAC"}
|
|
@@ -18,6 +18,8 @@ export const SLATE_UI_INSPIRATION_STYLES = String.raw `
|
|
|
18
18
|
.insp { container-type: inline-size; }
|
|
19
19
|
.refs { container-type: inline-size; }
|
|
20
20
|
.insp > .status { margin: 0 0 10px; }
|
|
21
|
+
/* One quiet sentence on what the tab is doing for this brief: no icon, no box. */
|
|
22
|
+
.tabcaption { margin: 0 0 8px; font-size: var(--fs-sm); line-height: 1.35; color: var(--text2); overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
|
|
21
23
|
.results { min-width: 0; }
|
|
22
24
|
/* The gutter is kept, so the scroll bar coming and going never changes the collage's width. */
|
|
23
25
|
.insp.card .results { max-height: max(360px, 72cqw); overflow-y: auto; scrollbar-gutter: stable; padding: 2px; }
|
|
@@ -40,8 +42,17 @@ export const SLATE_UI_INSPIRATION_STYLES = String.raw `
|
|
|
40
42
|
.zoombtn svg { width: 15px; height: 15px; }
|
|
41
43
|
@media (hover: hover) { .gtile .zoombtn { opacity: 0; transition: opacity .12s; } .gtile:hover .zoombtn, .gtile .zoombtn:focus-visible { opacity: 1; } }
|
|
42
44
|
.skelgrid:empty { display: none; }
|
|
43
|
-
.skelgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%,
|
|
44
|
-
.skelgrid > .skeleton { height:
|
|
45
|
+
.skelgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 16px; }
|
|
46
|
+
.skelgrid > .skeleton { height: 200px; border-radius: var(--radius); }
|
|
47
|
+
/* A captioned grid (References): the picture, then its name and its site's domain (a link) in the reserved strip. */
|
|
48
|
+
.captioned .refbtn { bottom: auto; height: calc(100% - 42px); }
|
|
49
|
+
.gcap { position: absolute; left: 2px; right: 2px; bottom: 0; height: 42px; display: flex; flex-direction: column; justify-content: center; gap: 1px; min-width: 0; line-height: 16px; }
|
|
50
|
+
.gname { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: var(--fs-sm); font-weight: 600; color: var(--text); }
|
|
51
|
+
.gdomain { align-self: flex-start; max-width: 100%; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; font-size: var(--fs-sm); color: var(--text2); text-decoration: none; }
|
|
52
|
+
.gdomain:hover { color: var(--ring); text-decoration: underline; }
|
|
53
|
+
.gdomain:focus-visible { outline: 2px solid var(--ring); outline-offset: 1px; border-radius: 3px; }
|
|
54
|
+
.gtile.pending .refbtn { cursor: default; background: var(--fill); }
|
|
55
|
+
.gtile.pending .refbtn:disabled { opacity: 1; }
|
|
45
56
|
.placeholder { display: grid; place-items: center; min-height: 160px; border-radius: var(--radius); background: var(--fill); color: var(--text2); padding: 16px; text-align: center; font-size: var(--fs-sm); }
|
|
46
57
|
/* The tray: the picks, the countdown while a round waits, and the one action. */
|
|
47
58
|
.tray { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--border2); background: var(--bg); min-width: 0; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-slate-ui-styles-inspiration.js","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-inspiration.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-styles-inspiration.js","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-inspiration.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsEpD,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The loading surface, everywhere a picture is on its way (`.shimmer`): an Inspiration or References tile until its
|
|
3
|
+
* picture lands, the skeleton tiles of a first search, a reference site whose screenshot is still being captured, and a
|
|
4
|
+
* design slot while it is drawn.
|
|
5
|
+
*
|
|
6
|
+
* A field of fine dots in the host's ink whose brightness ripples across the frame: one soft crest with a faint echo,
|
|
7
|
+
* travelling diagonally. The wave is fixed to the frame (`background-attachment: fixed`), so every loading tile on
|
|
8
|
+
* screen is a window onto the same wave and a grid of them reads as one calm surface rather than many blinking boxes.
|
|
9
|
+
*
|
|
10
|
+
* - On a picture (`img.shimmer`, no pixels yet) the dots are the picture's own mask, so its tile's ground shows between
|
|
11
|
+
* them; on anything else they are an overlay (`::before`) over the element's own ground, under its content.
|
|
12
|
+
* - The colours are the host's ink (`--text`) mixed into transparency, so Codex's light and dark themes drive it.
|
|
13
|
+
* - Reduced motion: still dots, no wave.
|
|
14
|
+
* - Chosen over the web's light band (apps/web generatedDesignPromptEdit.css) side by side in light and dark (evidence
|
|
15
|
+
* 12ui/slate-ui-polish/loading): the band must stay faint not to glare in light, and then all but vanishes on dark.
|
|
16
|
+
*/
|
|
17
|
+
export declare const SLATE_UI_LOADING_STYLES: string;
|
|
18
|
+
//# sourceMappingURL=mcp-slate-ui-styles-loading.d.ts.map
|