@12ui/design 0.2.73 → 0.2.75
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/SKILL.md +1 -1
- package/dist/cli-codex-readiness.d.ts +19 -6
- package/dist/cli-codex-readiness.d.ts.map +1 -1
- package/dist/cli-codex-readiness.js +36 -16
- package/dist/cli-codex-readiness.js.map +1 -1
- package/dist/cli-help/design.d.ts +9 -2
- package/dist/cli-help/design.d.ts.map +1 -1
- package/dist/cli-help/design.js +17 -2
- package/dist/cli-help/design.js.map +1 -1
- package/dist/cli-help/index.d.ts +9 -2
- package/dist/cli-help/index.d.ts.map +1 -1
- package/dist/cli-run.d.ts.map +1 -1
- package/dist/cli-run.js +6 -0
- package/dist/cli-run.js.map +1 -1
- package/dist/cli-usage.d.ts.map +1 -1
- package/dist/cli-usage.js +1 -0
- package/dist/cli-usage.js.map +1 -1
- package/dist/cli-workspace-command.js +1 -1
- package/dist/cli-workspace-command.js.map +1 -1
- package/dist/cli-workspace-draw.d.ts +23 -0
- package/dist/cli-workspace-draw.d.ts.map +1 -0
- package/dist/cli-workspace-draw.js +97 -0
- package/dist/cli-workspace-draw.js.map +1 -0
- package/dist/codex-binary.d.ts +20 -0
- package/dist/codex-binary.d.ts.map +1 -0
- package/dist/codex-binary.js +46 -0
- package/dist/codex-binary.js.map +1 -0
- package/dist/mcp-slate-command.d.ts.map +1 -1
- package/dist/mcp-slate-command.js +6 -1
- package/dist/mcp-slate-command.js.map +1 -1
- package/dist/mcp-slate-tool-defs.js +3 -3
- package/dist/mcp-slate-tool-defs.js.map +1 -1
- package/dist/mcp-slate-ui-copy.d.ts +30 -19
- package/dist/mcp-slate-ui-copy.d.ts.map +1 -1
- package/dist/mcp-slate-ui-copy.js +51 -23
- package/dist/mcp-slate-ui-copy.js.map +1 -1
- package/dist/mcp-slate-ui-script-dialog.d.ts +15 -14
- package/dist/mcp-slate-ui-script-dialog.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-dialog.js +61 -72
- package/dist/mcp-slate-ui-script-dialog.js.map +1 -1
- package/dist/mcp-slate-ui-script-inline.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-inline.js +9 -6
- package/dist/mcp-slate-ui-script-inline.js.map +1 -1
- package/dist/mcp-slate-ui-script-inspiration.d.ts +3 -2
- package/dist/mcp-slate-ui-script-inspiration.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-inspiration.js +29 -9
- package/dist/mcp-slate-ui-script-inspiration.js.map +1 -1
- package/dist/mcp-slate-ui-script-more.d.ts +16 -14
- package/dist/mcp-slate-ui-script-more.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-more.js +120 -56
- package/dist/mcp-slate-ui-script-more.js.map +1 -1
- package/dist/mcp-slate-ui-script-remote.d.ts +2 -2
- package/dist/mcp-slate-ui-script-remote.js +2 -2
- package/dist/mcp-slate-ui-script-scribble.js +1 -1
- package/dist/mcp-slate-ui-script-stage.d.ts +3 -2
- package/dist/mcp-slate-ui-script-stage.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script-stage.js +7 -8
- package/dist/mcp-slate-ui-script-stage.js.map +1 -1
- package/dist/mcp-slate-ui-script-state.js +3 -3
- package/dist/mcp-slate-ui-script.d.ts +1 -2
- package/dist/mcp-slate-ui-script.d.ts.map +1 -1
- package/dist/mcp-slate-ui-script.js +6 -4
- package/dist/mcp-slate-ui-script.js.map +1 -1
- package/dist/mcp-slate-ui-styles-dialog.d.ts +12 -9
- package/dist/mcp-slate-ui-styles-dialog.d.ts.map +1 -1
- package/dist/mcp-slate-ui-styles-dialog.js +48 -26
- package/dist/mcp-slate-ui-styles-dialog.js.map +1 -1
- package/dist/mcp-slate-ui-styles-stage.d.ts +15 -8
- package/dist/mcp-slate-ui-styles-stage.d.ts.map +1 -1
- package/dist/mcp-slate-ui-styles-stage.js +32 -18
- package/dist/mcp-slate-ui-styles-stage.js.map +1 -1
- package/dist/mcp-slate-ui-styles.d.ts +5 -0
- package/dist/mcp-slate-ui-styles.d.ts.map +1 -1
- package/dist/mcp-slate-ui-styles.js +21 -6
- 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 -3
- package/dist/mcp-slate-ui.js.map +1 -1
- package/dist/slate-actions.d.ts +7 -2
- package/dist/slate-actions.d.ts.map +1 -1
- package/dist/slate-actions.js +14 -8
- package/dist/slate-actions.js.map +1 -1
- package/dist/slate-handoff-options.d.ts +1 -1
- package/dist/slate-handoff-options.d.ts.map +1 -1
- package/dist/slate-handoff-options.js +8 -18
- package/dist/slate-handoff-options.js.map +1 -1
- package/dist/slate-image-executor.js +1 -1
- package/dist/slate-image-executor.js.map +1 -1
- package/dist/slate-inspiration.d.ts +1 -1
- package/dist/slate-inspiration.js +1 -1
- package/dist/slate-local-image.d.ts +3 -6
- package/dist/slate-local-image.d.ts.map +1 -1
- package/dist/slate-local-image.js +2 -18
- package/dist/slate-local-image.js.map +1 -1
- package/dist/slate-view-contract.d.ts +2 -3
- package/dist/slate-view-contract.d.ts.map +1 -1
- package/dist/slate-workspace-parse.d.ts.map +1 -1
- package/dist/slate-workspace-parse.js +6 -1
- package/dist/slate-workspace-parse.js.map +1 -1
- package/dist/workspace-draw-client.d.ts +69 -0
- package/dist/workspace-draw-client.d.ts.map +1 -0
- package/dist/workspace-draw-client.js +193 -0
- package/dist/workspace-draw-client.js.map +1 -0
- package/dist/workspace-draw-codex.d.ts +49 -0
- package/dist/workspace-draw-codex.d.ts.map +1 -0
- package/dist/workspace-draw-codex.js +89 -0
- package/dist/workspace-draw-codex.js.map +1 -0
- package/dist/workspace-draw-engine.d.ts +39 -0
- package/dist/workspace-draw-engine.d.ts.map +1 -0
- package/dist/workspace-draw-engine.js +72 -0
- package/dist/workspace-draw-engine.js.map +1 -0
- package/dist/workspace-draw-messages.d.ts +45 -0
- package/dist/workspace-draw-messages.d.ts.map +1 -0
- package/dist/workspace-draw-messages.js +48 -0
- package/dist/workspace-draw-messages.js.map +1 -0
- package/dist/workspace-draw-run.d.ts +43 -0
- package/dist/workspace-draw-run.d.ts.map +1 -0
- package/dist/workspace-draw-run.js +328 -0
- package/dist/workspace-draw-run.js.map +1 -0
- package/dist/workspace-draw-store.d.ts +23 -0
- package/dist/workspace-draw-store.d.ts.map +1 -0
- package/dist/workspace-draw-store.js +65 -0
- package/dist/workspace-draw-store.js.map +1 -0
- package/dist/workspace-draw-types.d.ts +121 -0
- package/dist/workspace-draw-types.d.ts.map +1 -0
- package/dist/workspace-draw-types.js +21 -0
- package/dist/workspace-draw-types.js.map +1 -0
- package/open-design.json +2 -2
- package/package.json +1 -1
- package/runtime/codex-conversion/src/codex/home.mjs +43 -14
- package/runtime/codex-conversion/src/images/native-files.mjs +20 -0
- package/runtime/codex-conversion/src/images/native-invoke.mjs +5 -2
- package/runtime/codex-conversion/src/images/native-records.mjs +75 -3
- package/runtime/codex-conversion/src/images/native.mjs +7 -4
- package/dist/mcp-slate-ui-script-thumbtools.d.ts +0 -23
- package/dist/mcp-slate-ui-script-thumbtools.d.ts.map +0 -1
- package/dist/mcp-slate-ui-script-thumbtools.js +0 -103
- package/dist/mcp-slate-ui-script-thumbtools.js.map +0 -1
- package/dist/mcp-slate-ui-styles-thumbtools.d.ts +0 -10
- package/dist/mcp-slate-ui-styles-thumbtools.d.ts.map +0 -1
- package/dist/mcp-slate-ui-styles-thumbtools.js +0 -25
- package/dist/mcp-slate-ui-styles-thumbtools.js.map +0 -1
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Generate more: the last tile of the thumbnails (the card's strip, the
|
|
3
3
|
* workspace's selection) and the panel it opens directly below them. The tile
|
|
4
|
-
* is
|
|
5
|
-
* panel is the
|
|
6
|
-
* Generate or Cancel. Clicking the tile again, Cancel or Escape collapses it.
|
|
4
|
+
* is a dashed, thumbnail-sized box with a plus and the words Generate more, pinned outside any scroll so it is always in view; the
|
|
5
|
+
* panel is the only way to start a round, and it says what it will do:
|
|
7
6
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
7
|
+
* - a heading and one helper line that follows the state (fresh references,
|
|
8
|
+
* the selected inspiration, or close to the shown design);
|
|
9
|
+
* - a switch, with a picture of the design at its left, "Based on <code>", off by default: off draws new options, on
|
|
10
|
+
* draws options close to the design that is shown (mode "like" from the
|
|
11
|
+
* shown version at the moment of Generate);
|
|
12
|
+
* - the selected inspiration as small chips, each with a remove button that is
|
|
13
|
+
* the same selection write as the Inspiration tab's toggle (adding is done
|
|
14
|
+
* in that tab);
|
|
15
|
+
* - an optional note, how many (1, 2, 4, 8 or 12, default 4) and Cancel and
|
|
16
|
+
* Generate.
|
|
11
17
|
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
* other's reference. While a
|
|
17
|
-
* round runs (or the request is in flight) the tile is off; the new round's
|
|
18
|
-
* pending options are already in the thumbnails, because the returned view
|
|
19
|
-
* carries them.
|
|
18
|
+
* Clicking the tile again, Cancel or Escape collapses it. While a round runs
|
|
19
|
+
* (or the request is in flight) the tile is off; the new round's pending
|
|
20
|
+
* options are already in the thumbnails, because the returned view carries
|
|
21
|
+
* them.
|
|
20
22
|
*
|
|
21
23
|
* In the card the panel takes its room from the large image rather than
|
|
22
24
|
* growing the frame. The host grows the frame downward and does not scroll
|
|
@@ -42,31 +44,21 @@ export const SLATE_UI_MORE = String.raw `
|
|
|
42
44
|
b.setAttribute("aria-expanded", "false");
|
|
43
45
|
b.setAttribute("aria-controls", "morepanel");
|
|
44
46
|
b.title = COPY.generateMore;
|
|
45
|
-
b.innerHTML = '<svg viewBox="0 0 24 24" width="
|
|
47
|
+
b.innerHTML = '<svg viewBox="0 0 24 24" width="28" height="28" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" aria-hidden="true"><path d="' + ICON_PLUS + '"/></svg>';
|
|
48
|
+
b.appendChild(el("span", "", COPY.generateMore));
|
|
46
49
|
return b;
|
|
47
50
|
}
|
|
48
51
|
function moreTiles() { return Array.prototype.slice.call(document.querySelectorAll(".moretile")); }
|
|
49
52
|
function moreHosts() { return [$("more"), stageEls && stageEls.more].filter(Boolean); }
|
|
50
53
|
|
|
51
|
-
// The dashed tile opens the plain panel (new options). It closes that panel again; when a thumbnail's plus had the panel
|
|
52
|
-
// open for one design, the tile replaces it with the plain one, so neither carries the other's reference.
|
|
53
54
|
function toggleMore() {
|
|
54
|
-
if (state.more
|
|
55
|
-
openMore(
|
|
55
|
+
if (state.more) { closeMore(true); return; }
|
|
56
|
+
openMore();
|
|
56
57
|
}
|
|
57
|
-
|
|
58
|
-
function openMoreLike(candidateId) {
|
|
59
|
-
var c = cand(candidateId);
|
|
60
|
-
var v = latestVersion(c);
|
|
61
|
-
if (!c || !v || !pickable(v)) return;
|
|
62
|
-
var m = state.more;
|
|
63
|
-
if (m && m.mode === "like" && m.fromVersionId === v.versionId && !m.committing) { m.els.note.focus(); return; }
|
|
64
|
-
openMore({ mode: "like", fromVersionId: v.versionId, fromCandidateId: c.candidateId, fromLabel: v.label });
|
|
65
|
-
}
|
|
66
|
-
function openMore(reference) {
|
|
58
|
+
function openMore() {
|
|
67
59
|
if (!state.view || state.view.candidates.length === 0 || moreBusy()) return;
|
|
68
60
|
if (state.more) resetMore();
|
|
69
|
-
state.more = { id: uuid4(),
|
|
61
|
+
state.more = { id: uuid4(), like: false, note: "", count: MORE.initial, committing: false, error: "", sig: "", els: {} };
|
|
70
62
|
buildMore();
|
|
71
63
|
syncMore();
|
|
72
64
|
state.more.els.note.focus();
|
|
@@ -96,7 +88,7 @@ export const SLATE_UI_MORE = String.raw `
|
|
|
96
88
|
syncMore();
|
|
97
89
|
fitMore();
|
|
98
90
|
if (refocus) {
|
|
99
|
-
var back =
|
|
91
|
+
var back = moreTiles().filter(function (t) { return !t.disabled && !isHiddenNode(t); })[0];
|
|
100
92
|
if (back) back.focus();
|
|
101
93
|
}
|
|
102
94
|
reportSize();
|
|
@@ -112,28 +104,42 @@ export const SLATE_UI_MORE = String.raw `
|
|
|
112
104
|
return false;
|
|
113
105
|
}
|
|
114
106
|
|
|
107
|
+
// The design the switch is about: the one that is shown when Generate is clicked, so it follows the selection.
|
|
108
|
+
function moreBase() { var v = selectedVersion(); return pickable(v) ? v : null; }
|
|
109
|
+
|
|
115
110
|
function buildMore() {
|
|
116
111
|
var m = state.more;
|
|
117
112
|
var box = el("div", "morepanel");
|
|
118
113
|
box.id = "morepanel";
|
|
119
114
|
box.setAttribute("role", "group");
|
|
120
|
-
var
|
|
121
|
-
var title = el("h2", "morehead", like ? tpl(COPY.moreLike, { label: m.fromLabel }) : COPY.generateMore);
|
|
115
|
+
var title = el("h2", "morehead", COPY.generateMore);
|
|
122
116
|
title.id = "morehead";
|
|
123
117
|
box.setAttribute("aria-labelledby", "morehead");
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
118
|
+
box.appendChild(title);
|
|
119
|
+
m.els.help = el("p", "help");
|
|
120
|
+
box.appendChild(m.els.help);
|
|
121
|
+
|
|
122
|
+
// The switch: a native checkbox that reads as a switch, with a picture of the design it is about.
|
|
123
|
+
var label = el("label", "moreswitch");
|
|
124
|
+
m.els.toggle = el("input");
|
|
125
|
+
m.els.toggle.type = "checkbox";
|
|
126
|
+
m.els.toggle.setAttribute("role", "switch");
|
|
127
|
+
m.els.toggle.addEventListener("change", function () { m.like = m.els.toggle.checked; syncMore(); });
|
|
128
|
+
m.els.thumb = el("img", "morethumb empty");
|
|
129
|
+
m.els.thumb.alt = "";
|
|
130
|
+
m.els.switchText = el("span", "moreswitchtext");
|
|
131
|
+
label.appendChild(m.els.thumb);
|
|
132
|
+
label.appendChild(m.els.switchText);
|
|
133
|
+
label.appendChild(m.els.toggle);
|
|
134
|
+
box.appendChild(label);
|
|
135
|
+
|
|
136
|
+
// The inspiration that is selected, read back from the view; removing one is the tab's own selection write.
|
|
137
|
+
m.els.chipsWrap = el("div", "morechips hidden");
|
|
138
|
+
m.els.chipsWrap.appendChild(el("span", "lbl", COPY.moreInspirationLabel));
|
|
139
|
+
m.els.chips = el("div", "refchips");
|
|
140
|
+
m.els.chipsWrap.appendChild(m.els.chips);
|
|
141
|
+
box.appendChild(m.els.chipsWrap);
|
|
142
|
+
|
|
137
143
|
var note = el("textarea");
|
|
138
144
|
note.setAttribute("rows", "2");
|
|
139
145
|
note.setAttribute("maxlength", "600");
|
|
@@ -146,16 +152,16 @@ export const SLATE_UI_MORE = String.raw `
|
|
|
146
152
|
seg.setAttribute("role", "radiogroup");
|
|
147
153
|
seg.setAttribute("aria-label", COPY.moreCountLabel);
|
|
148
154
|
MORE.choices.forEach(function (n) {
|
|
149
|
-
var
|
|
155
|
+
var option = el("label", "segopt");
|
|
150
156
|
var input = el("input");
|
|
151
157
|
input.type = "radio";
|
|
152
158
|
input.name = "morecount";
|
|
153
159
|
input.value = String(n);
|
|
154
160
|
input.checked = n === m.count;
|
|
155
161
|
input.addEventListener("change", function () { m.count = n; });
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
seg.appendChild(
|
|
162
|
+
option.appendChild(input);
|
|
163
|
+
option.appendChild(el("span", "", String(n)));
|
|
164
|
+
seg.appendChild(option);
|
|
159
165
|
});
|
|
160
166
|
row.appendChild(seg);
|
|
161
167
|
// Cancel and Generate stay together: on a narrow card they drop to the next line as a pair, at the right.
|
|
@@ -172,13 +178,71 @@ export const SLATE_UI_MORE = String.raw `
|
|
|
172
178
|
m.els.note = note;
|
|
173
179
|
}
|
|
174
180
|
|
|
181
|
+
// The chips follow the selection, the switch follows the shown design; each is rebuilt only when what it shows changed.
|
|
182
|
+
function syncMoreBody(m) {
|
|
183
|
+
var base = moreBase();
|
|
184
|
+
var likeOn = m.like && !!base;
|
|
185
|
+
var selected = currentSelected().slice(0, MAX_SELECTED);
|
|
186
|
+
m.els.toggle.checked = likeOn;
|
|
187
|
+
m.els.toggle.disabled = !base || m.committing;
|
|
188
|
+
m.els.switchText.textContent = tpl(COPY.moreBasedOn, { label: base ? base.label : (selectedVersion() ? selectedVersion().label : "") });
|
|
189
|
+
m.els.switchText.parentNode.title = base ? "" : COPY.moreLikeUnavailable;
|
|
190
|
+
m.els.help.textContent = likeOn ? tpl(COPY.moreHelpLike, { label: base.label }) : selected.length > 0 ? COPY.moreHelpSelected : COPY.moreHelpFresh;
|
|
191
|
+
var shown = base || selectedVersion();
|
|
192
|
+
var thumbSig = shown ? shown.versionId + ":" + shown.sha256 : "";
|
|
193
|
+
if (m.thumbSig !== thumbSig) {
|
|
194
|
+
m.thumbSig = thumbSig;
|
|
195
|
+
var fresh = el("img", "morethumb empty");
|
|
196
|
+
fresh.alt = "";
|
|
197
|
+
m.els.thumb.parentNode.replaceChild(fresh, m.els.thumb);
|
|
198
|
+
m.els.thumb = fresh;
|
|
199
|
+
if (shown) {
|
|
200
|
+
var cached = state.thumbs[imageKey(shown, "thumb")];
|
|
201
|
+
if (cached) { fresh.src = cached; fresh.classList.remove("empty"); }
|
|
202
|
+
else bindImage(fresh, shown, "thumb", false);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
var chipSig = JSON.stringify(selected);
|
|
206
|
+
if (m.chipSig !== chipSig) {
|
|
207
|
+
m.chipSig = chipSig;
|
|
208
|
+
m.els.chips.textContent = "";
|
|
209
|
+
selected.forEach(function (id) {
|
|
210
|
+
var chip = el("span", "refchip");
|
|
211
|
+
var img = el("img", "refchipimg empty shimmer");
|
|
212
|
+
img.alt = "";
|
|
213
|
+
chip.appendChild(img);
|
|
214
|
+
bindReference(img, id, "thumb");
|
|
215
|
+
var remove = button("", "refchipx", function () { toggleRef(id); });
|
|
216
|
+
remove.setAttribute("aria-label", tpl(COPY.removeReference, { name: refDescription(id) }));
|
|
217
|
+
remove.title = tpl(COPY.removeReference, { name: refDescription(id) });
|
|
218
|
+
remove.innerHTML = '<svg viewBox="0 0 24 24" width="12" height="12" fill="none" stroke="currentColor" stroke-width="3" stroke-linecap="round" aria-hidden="true"><path d="M6 6l12 12M18 6L6 18"/></svg>';
|
|
219
|
+
chip.appendChild(remove);
|
|
220
|
+
m.els.chips.appendChild(chip);
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
m.els.chipsWrap.classList.toggle("hidden", selected.length === 0);
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
// The one way a round starts: the selection is committed first, so the round uses the inspiration the person sees.
|
|
227
|
+
function roundAction(request) {
|
|
228
|
+
var action = { kind: "round", mode: request.mode, count: request.count };
|
|
229
|
+
var note = (request.note || "").trim();
|
|
230
|
+
if (note) action.note = note;
|
|
231
|
+
if (request.mode === "like") action.fromVersionId = request.fromVersionId;
|
|
232
|
+
return action;
|
|
233
|
+
}
|
|
234
|
+
function startRound(opId, request) {
|
|
235
|
+
return whenSelectionSettled().then(function () { return runAction(roundAction(request), opId); });
|
|
236
|
+
}
|
|
237
|
+
|
|
175
238
|
function commitMore() {
|
|
176
239
|
var m = state.more;
|
|
177
|
-
if (!m || m.committing || moreBusy() || !localImage().ready
|
|
240
|
+
if (!m || m.committing || moreBusy() || !localImage().ready) return;
|
|
241
|
+
var base = m.like ? moreBase() : null;
|
|
178
242
|
m.committing = true;
|
|
179
243
|
m.error = "";
|
|
180
244
|
syncMore();
|
|
181
|
-
startRound(m.id, { mode:
|
|
245
|
+
startRound(m.id, { mode: base ? "like" : "new", note: m.note, count: m.count, fromVersionId: base ? base.versionId : undefined }).then(function () {
|
|
182
246
|
m.committing = false;
|
|
183
247
|
if (state.more === m) closeMore(false);
|
|
184
248
|
syncMore();
|
|
@@ -190,7 +254,7 @@ export const SLATE_UI_MORE = String.raw `
|
|
|
190
254
|
});
|
|
191
255
|
}
|
|
192
256
|
|
|
193
|
-
// The tiles follow the view; the panel sits in the host of the current mode, and keeps what was typed across
|
|
257
|
+
// The tiles follow the view; the panel sits in the host of the current mode, and keeps what was typed across polls and modes.
|
|
194
258
|
function syncMore() {
|
|
195
259
|
if (!state.view) return;
|
|
196
260
|
var m = state.more;
|
|
@@ -198,17 +262,17 @@ export const SLATE_UI_MORE = String.raw `
|
|
|
198
262
|
var busy = moreBusy();
|
|
199
263
|
moreTiles().forEach(function (t) {
|
|
200
264
|
t.disabled = busy;
|
|
201
|
-
t.setAttribute("aria-expanded", m
|
|
265
|
+
t.setAttribute("aria-expanded", m ? "true" : "false");
|
|
202
266
|
});
|
|
203
|
-
syncThumbTools();
|
|
204
267
|
if (!m) return;
|
|
205
268
|
var host = isFullscreen() ? stageEls.more : $("more");
|
|
206
269
|
if (host && m.els.box.parentNode !== host) {
|
|
207
270
|
moreHosts().forEach(function (h) { if (h !== host) h.textContent = ""; });
|
|
208
271
|
host.appendChild(m.els.box);
|
|
209
272
|
}
|
|
273
|
+
syncMoreBody(m);
|
|
210
274
|
var local = localImage();
|
|
211
|
-
m.els.primary.disabled = m.committing || busy || !local.ready
|
|
275
|
+
m.els.primary.disabled = m.committing || busy || !local.ready;
|
|
212
276
|
m.els.alert.textContent = m.error || (!local.ready && local.reason ? local.reason : "");
|
|
213
277
|
m.els.alert.classList.toggle("hidden", !m.els.alert.textContent);
|
|
214
278
|
// Fitted before the size report, so the host never sees the taller card.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-slate-ui-script-more.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-more.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-script-more.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script-more.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiQtC,CAAC"}
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* names what happened and carries no command, flag, path, price or credit word;
|
|
7
7
|
* the agent confirms through the model-visible data tool, which returns the
|
|
8
8
|
* server's own trusted text. Six messages exist, one per click (spec v2 9.2):
|
|
9
|
-
*
|
|
10
|
-
* Convert. The user's own words (a steer note, an edit instruction, the Branch
|
|
9
|
+
* Generate more with new options, Generate more based on a design, Edit,
|
|
10
|
+
* Select, Branch and Convert. The user's own words (a steer note, an edit instruction, the Branch
|
|
11
11
|
* explanation) are never put in a message; the agent reads them from the data
|
|
12
12
|
* tool, quoted. `runDir` is named in each because the tools take it and a
|
|
13
13
|
* thread may hold several workspaces.
|
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
* names what happened and carries no command, flag, path, price or credit word;
|
|
7
7
|
* the agent confirms through the model-visible data tool, which returns the
|
|
8
8
|
* server's own trusted text. Six messages exist, one per click (spec v2 9.2):
|
|
9
|
-
*
|
|
10
|
-
* Convert. The user's own words (a steer note, an edit instruction, the Branch
|
|
9
|
+
* Generate more with new options, Generate more based on a design, Edit,
|
|
10
|
+
* Select, Branch and Convert. The user's own words (a steer note, an edit instruction, the Branch
|
|
11
11
|
* explanation) are never put in a message; the agent reads them from the data
|
|
12
12
|
* tool, quoted. `runDir` is named in each because the tools take it and a
|
|
13
13
|
* thread may hold several workspaces.
|
|
@@ -69,7 +69,7 @@ export const SLATE_UI_SCRIBBLE = String.raw `
|
|
|
69
69
|
function scribbleAttach(wrap, d) {
|
|
70
70
|
var canvas = document.createElement("canvas");
|
|
71
71
|
canvas.className = "scribble";
|
|
72
|
-
canvas.setAttribute("aria-label", COPY.
|
|
72
|
+
canvas.setAttribute("aria-label", COPY.scribbleHint);
|
|
73
73
|
d.canvas = canvas;
|
|
74
74
|
wrap.appendChild(canvas);
|
|
75
75
|
// The bitmap follows the size the image is shown at; the strokes repaint from their permille points.
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The fullscreen workspace: on the left the selection (compact thumbnails
|
|
3
3
|
* grouped by round, each option with its versions as chips), in the middle one
|
|
4
|
-
* large image, and under it one row of actions
|
|
5
|
-
*
|
|
4
|
+
* large image, and under it one row of actions at the right: Edit, Branch and
|
|
5
|
+
* Convert, then Select (primary) at the far right. Nothing else shows until a
|
|
6
|
+
* button is clicked; the dialogs live
|
|
6
7
|
* in mcp-slate-ui-script-dialog.ts. One band above the image says what is
|
|
7
8
|
* running, stopped or failed, with Resume when the work can resume. Mounted
|
|
8
9
|
* only in fullscreen.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-slate-ui-script-stage.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-stage.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-script-stage.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-script-stage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,QAwK1B,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The fullscreen workspace: on the left the selection (compact thumbnails
|
|
3
3
|
* grouped by round, each option with its versions as chips), in the middle one
|
|
4
|
-
* large image, and under it one row of actions
|
|
5
|
-
*
|
|
4
|
+
* large image, and under it one row of actions at the right: Edit, Branch and
|
|
5
|
+
* Convert, then Select (primary) at the far right. Nothing else shows until a
|
|
6
|
+
* button is clicked; the dialogs live
|
|
6
7
|
* in mcp-slate-ui-script-dialog.ts. One band above the image says what is
|
|
7
8
|
* running, stopped or failed, with Resume when the work can resume. Mounted
|
|
8
9
|
* only in fullscreen.
|
|
@@ -38,14 +39,14 @@ export const SLATE_UI_STAGE = String.raw `
|
|
|
38
39
|
stageEls.band.setAttribute("role", "status");
|
|
39
40
|
stageEls.hero = el("div", "hero");
|
|
40
41
|
var row = el("div", "actionrow");
|
|
41
|
-
stageEls.select = button(COPY.select, "primary", function () { doSelect(selectedVersion()); });
|
|
42
|
-
stageEls.design = button(COPY.design, "", function () { openDialog("design", stageEls.design); });
|
|
43
42
|
stageEls.edit = button(COPY.edit, "", function () { openDialog("edit", stageEls.edit); });
|
|
44
43
|
stageEls.branch = button(COPY.branch, "", function () { openDialog("branch", stageEls.branch); });
|
|
45
44
|
stageEls.convert = button(COPY.convert, "", function () { openDialog("convert", stageEls.convert); });
|
|
45
|
+
stageEls.select = button(COPY.select, "primary", function () { doSelect(selectedVersion()); });
|
|
46
46
|
stageEls.editWhy = el("span", "sr");
|
|
47
47
|
stageEls.editWhy.id = "edit-why";
|
|
48
|
-
|
|
48
|
+
// Select is last: the row is right-aligned, so it ends at the picture's right edge.
|
|
49
|
+
[stageEls.edit, stageEls.branch, stageEls.convert, stageEls.select, stageEls.editWhy].forEach(function (b) { row.appendChild(b); });
|
|
49
50
|
stageEls.status = el("p", "status");
|
|
50
51
|
stageEls.status.setAttribute("data-status", "");
|
|
51
52
|
stageEls.status.setAttribute("role", "status");
|
|
@@ -87,7 +88,7 @@ export const SLATE_UI_STAGE = String.raw `
|
|
|
87
88
|
var list = el("ul", "options");
|
|
88
89
|
orderedCandidates().filter(function (c) { return c.roundId === round.roundId; }).sort(byLabel).forEach(function (c) {
|
|
89
90
|
var item = el("li", "option");
|
|
90
|
-
item.appendChild(
|
|
91
|
+
item.appendChild(thumbButton(c, "opt"));
|
|
91
92
|
var versions = versionsOf(c);
|
|
92
93
|
if (versions.length > 1) {
|
|
93
94
|
var chips = el("div", "chips");
|
|
@@ -132,9 +133,7 @@ export const SLATE_UI_STAGE = String.raw `
|
|
|
132
133
|
function syncStageControls(selectLabel, selectDisabled) {
|
|
133
134
|
if (!stageBuilt || !isFullscreen()) return;
|
|
134
135
|
var v = selectedVersion();
|
|
135
|
-
var any = !!state.view && state.view.candidates.length > 0;
|
|
136
136
|
if (selectLabel !== undefined) { stageEls.select.textContent = selectLabel; stageEls.select.disabled = selectDisabled; }
|
|
137
|
-
stageEls.design.disabled = !any;
|
|
138
137
|
// Edit is off when the shown version cannot be edited; the reason is its accessible description, not a tooltip.
|
|
139
138
|
var blocked = !v || !v.editable;
|
|
140
139
|
stageEls.edit.disabled = blocked;
|
|
@@ -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;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAwKvC,CAAC"}
|
|
@@ -13,10 +13,10 @@ export const SLATE_UI_STATE = String.raw `
|
|
|
13
13
|
var state = {
|
|
14
14
|
host: {}, view: null,
|
|
15
15
|
sel: { candidateId: null, versionId: null, followLatest: true },
|
|
16
|
-
tab: "designs", query: "", dialog: null, more: null,
|
|
16
|
+
tab: "designs", query: "", dialog: null, more: null,
|
|
17
17
|
busy: false, status: { text: "", kind: "", source: "", phase: "" }, lastOpText: "", lastBandOp: "",
|
|
18
18
|
thumbs: {}, fulls: {}, refs: {}, lastOpStates: {}, opBusy: {}, awaitEdit: null,
|
|
19
|
-
insp: { local: null, writing: false, dirty: false, searching: false, waiters: [] }
|
|
19
|
+
insp: { local: null, writing: false, dirty: false, searching: false, noMatch: "", waiters: [] }
|
|
20
20
|
};
|
|
21
21
|
|
|
22
22
|
// ---- small helpers ----
|
|
@@ -161,7 +161,7 @@ export const SLATE_UI_STATE = String.raw `
|
|
|
161
161
|
promise.then(function (src) {
|
|
162
162
|
if (img.isConnected === false) return;
|
|
163
163
|
img.src = src;
|
|
164
|
-
img.classList.remove("empty");
|
|
164
|
+
img.classList.remove("empty", "shimmer");
|
|
165
165
|
}, function (err) {
|
|
166
166
|
// An error is shown in place of the picture, never thrown.
|
|
167
167
|
img.alt = errText(err);
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
* share one scope: bridge (host protocol), state (view state, picture queue,
|
|
4
4
|
* polling, what the ops say), progress, inline (the card), select (Select and
|
|
5
5
|
* the hand-offs), inspiration (the tabs and the Inspiration tab), stage
|
|
6
|
-
* (fullscreen), dialog (
|
|
7
|
-
* plus and the pencil on a thumbnail), scribble (the drawing layer of Edit), the hosted and browser targets' words, then the handshake, last, so every function and
|
|
6
|
+
* (fullscreen), dialog (Edit, Branch and Convert), more (the Generate more tile and its panel), scribble (the drawing layer of Edit), the hosted and browser targets' words, then the handshake, last, so every function and
|
|
8
7
|
* variable exists before the first message can arrive. The tool names come
|
|
9
8
|
* from the view contract (SLATE_UI_TOOLS), not from the server's own module.
|
|
10
9
|
*
|
|
@@ -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":"AAeA;;;;;;;;;;;;GAYG;AAEH;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,QAAQ,GAAG,SAAS,CAAC;AAgB3D;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,aAAa,KAAG,MAyB/C,CAAC;AAEb,eAAO,MAAM,eAAe,QAA8B,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SLATE_CONVERT_CHOICES, SLATE_CONVERT_MAX_WIDTH, SLATE_MORE_COUNTS, SLATE_REMOTE_CONVERT_CHOICES, SLATE_UI_COPY } from './mcp-slate-ui-copy.js';
|
|
1
|
+
import { SLATE_CONVERT_CHOICES, SLATE_CONVERT_DESCRIPTIONS, SLATE_CONVERT_MAX_WIDTH, SLATE_MORE_COUNTS, SLATE_REMOTE_CONVERT_CHOICES, SLATE_REMOTE_CONVERT_DESCRIPTIONS, SLATE_UI_COPY } from './mcp-slate-ui-copy.js';
|
|
2
2
|
import { SLATE_UI_TOOLS } from './slate-view-contract.js';
|
|
3
3
|
import { SLATE_UI_BRIDGE } from './mcp-slate-ui-script-bridge.js';
|
|
4
4
|
import { SLATE_UI_BROWSER } from './mcp-slate-ui-script-browser.js';
|
|
@@ -12,7 +12,6 @@ import { SLATE_UI_SCRIBBLE } from './mcp-slate-ui-script-scribble.js';
|
|
|
12
12
|
import { SLATE_UI_SELECT } from './mcp-slate-ui-script-select.js';
|
|
13
13
|
import { SLATE_UI_STAGE } from './mcp-slate-ui-script-stage.js';
|
|
14
14
|
import { SLATE_UI_STATE } from './mcp-slate-ui-script-state.js';
|
|
15
|
-
import { SLATE_UI_THUMBTOOLS } from './mcp-slate-ui-script-thumbtools.js';
|
|
16
15
|
const HANDSHAKE = String.raw `
|
|
17
16
|
// ---- connect: handlers are registered above, before the handshake ----
|
|
18
17
|
if (window.parent === window) {
|
|
@@ -38,7 +37,11 @@ export const buildSlateUiScript = (target) => [
|
|
|
38
37
|
.replace('__TOOLS__', () => JSON.stringify(SLATE_UI_TOOLS))
|
|
39
38
|
.replace('__COPY__', () => JSON.stringify(SLATE_UI_COPY))
|
|
40
39
|
.replace('__TARGET__', () => JSON.stringify(target))
|
|
41
|
-
.replace('__CONVERT__', () => JSON.stringify({
|
|
40
|
+
.replace('__CONVERT__', () => JSON.stringify({
|
|
41
|
+
choices: target === 'remote' ? SLATE_REMOTE_CONVERT_CHOICES : SLATE_CONVERT_CHOICES,
|
|
42
|
+
descriptions: target === 'remote' ? SLATE_REMOTE_CONVERT_DESCRIPTIONS : SLATE_CONVERT_DESCRIPTIONS,
|
|
43
|
+
maxWidth: SLATE_CONVERT_MAX_WIDTH,
|
|
44
|
+
})),
|
|
42
45
|
SLATE_UI_STATE,
|
|
43
46
|
SLATE_UI_PROGRESS,
|
|
44
47
|
SLATE_UI_INLINE,
|
|
@@ -47,7 +50,6 @@ export const buildSlateUiScript = (target) => [
|
|
|
47
50
|
SLATE_UI_STAGE,
|
|
48
51
|
SLATE_UI_DIALOG,
|
|
49
52
|
SLATE_UI_MORE.replace('__MORE__', () => JSON.stringify(SLATE_MORE_COUNTS)),
|
|
50
|
-
SLATE_UI_THUMBTOOLS,
|
|
51
53
|
SLATE_UI_SCRIBBLE,
|
|
52
54
|
SLATE_UI_REMOTE,
|
|
53
55
|
SLATE_UI_BROWSER,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-slate-ui-script.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-script.js","sourceRoot":"","sources":["../src/mcp-slate-ui-script.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,iBAAiB,EAAE,4BAA4B,EAAE,iCAAiC,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvN,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAuBhE,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAA;;;;;;;;;;;;CAY3B,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAqB,EAAU,EAAE,CAAC;IACnE,eAAe;IACf,gBAAgB;IAChB,eAAe;SACZ,OAAO,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;SAC1D,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;SACxD,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;SACnD,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC;QAC3C,OAAO,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,qBAAqB;QACnF,YAAY,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,0BAA0B;QAClG,QAAQ,EAAE,uBAAuB;KAClC,CAAC,CAAC;IACL,cAAc;IACd,iBAAiB;IACjB,eAAe;IACf,eAAe;IACf,oBAAoB;IACpB,cAAc;IACd,eAAe;IACf,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAC1E,iBAAiB;IACjB,eAAe;IACf,gBAAgB;IAChB,SAAS;IACT,OAAO;CACR,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEb,MAAM,CAAC,MAAM,eAAe,GAAG,kBAAkB,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The dialogs (
|
|
3
|
-
*
|
|
2
|
+
* The dialogs (Edit, Branch, Convert), the scribble layer of Edit and the
|
|
3
|
+
* Inspiration tab. A dialog is a centred box over a dimmed workspace; it
|
|
4
4
|
* scrolls inside itself when the window is short, and fills the width on a
|
|
5
|
-
* phone.
|
|
5
|
+
* phone. The reference tiles are square and fluid: at least 192 px across in
|
|
6
|
+
* the card and 256 px in the workspace (--ref-min), two across under 420 px.
|
|
6
7
|
*/
|
|
7
8
|
export declare const SLATE_UI_DIALOG_STYLES: string;
|
|
8
9
|
/**
|
|
9
|
-
* The Generate more tile and its panel. The tile is
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* selection). The panel is one bordered block under the thumbnails
|
|
13
|
-
*
|
|
14
|
-
*
|
|
10
|
+
* The Generate more tile and its panel. The tile is quiet but findable: a
|
|
11
|
+
* dashed border in the secondary text colour, a plus and the words "Generate
|
|
12
|
+
* more", no fill; it takes the size of the thumbnails around it (--thumb-card
|
|
13
|
+
* beside the card's strip, --thumb-rail in the selection). The panel is one bordered block under the thumbnails:
|
|
14
|
+
* heading, one helper line, the "Based on" switch, the selected inspiration as
|
|
15
|
+
* small chips, a note, the count and the two buttons. In the card, the script
|
|
16
|
+
* shortens the large image by the panel's height while it is open (an inline
|
|
17
|
+
* --cap), or folds it when too little would be left.
|
|
15
18
|
*/
|
|
16
19
|
export declare const SLATE_UI_MORE_STYLES: string;
|
|
17
20
|
//# sourceMappingURL=mcp-slate-ui-styles-dialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-slate-ui-styles-dialog.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-dialog.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"mcp-slate-ui-styles-dialog.d.ts","sourceRoot":"","sources":["../src/mcp-slate-ui-styles-dialog.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,QAoClC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,oBAAoB,QAuChC,CAAC"}
|