@12ui/design 0.2.53 → 0.2.55
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 +18 -0
- package/SKILL.md +1 -1
- package/dist/cli-arguments.d.ts +3 -1
- package/dist/cli-arguments.d.ts.map +1 -1
- package/dist/cli-arguments.js +19 -2
- package/dist/cli-arguments.js.map +1 -1
- package/dist/cli-convert-command.d.ts +3 -1
- package/dist/cli-convert-command.d.ts.map +1 -1
- package/dist/cli-convert-command.js +9 -7
- package/dist/cli-convert-command.js.map +1 -1
- package/dist/cli-help/design.d.ts +10 -0
- package/dist/cli-help/design.d.ts.map +1 -1
- package/dist/cli-help/design.js +25 -0
- package/dist/cli-help/design.js.map +1 -1
- package/dist/cli-help/index.d.ts +10 -0
- package/dist/cli-help/index.d.ts.map +1 -1
- package/dist/cli-improve-command.d.ts +5 -0
- package/dist/cli-improve-command.d.ts.map +1 -0
- package/dist/cli-improve-command.js +213 -0
- package/dist/cli-improve-command.js.map +1 -0
- package/dist/cli-run.d.ts.map +1 -1
- package/dist/cli-run.js +8 -0
- package/dist/cli-run.js.map +1 -1
- package/dist/cli-usage.d.ts.map +1 -1
- package/dist/cli-usage.js +2 -0
- package/dist/cli-usage.js.map +1 -1
- package/dist/improve-added-specs.d.ts +32 -0
- package/dist/improve-added-specs.d.ts.map +1 -0
- package/dist/improve-added-specs.js +162 -0
- package/dist/improve-added-specs.js.map +1 -0
- package/dist/improve-concept.d.ts +10 -0
- package/dist/improve-concept.d.ts.map +1 -0
- package/dist/improve-concept.js +45 -0
- package/dist/improve-concept.js.map +1 -0
- package/dist/improve-conversion-stage.d.ts +28 -0
- package/dist/improve-conversion-stage.d.ts.map +1 -0
- package/dist/improve-conversion-stage.js +214 -0
- package/dist/improve-conversion-stage.js.map +1 -0
- package/dist/improve-convert-resilience.d.ts +23 -0
- package/dist/improve-convert-resilience.d.ts.map +1 -0
- package/dist/improve-convert-resilience.js +102 -0
- package/dist/improve-convert-resilience.js.map +1 -0
- package/dist/improve-delivery-stages.d.ts +10 -0
- package/dist/improve-delivery-stages.d.ts.map +1 -0
- package/dist/improve-delivery-stages.js +160 -0
- package/dist/improve-delivery-stages.js.map +1 -0
- package/dist/improve-dom-anchor.d.ts +18 -0
- package/dist/improve-dom-anchor.d.ts.map +1 -0
- package/dist/improve-dom-anchor.js +120 -0
- package/dist/improve-dom-anchor.js.map +1 -0
- package/dist/improve-dom-diff.d.ts +33 -0
- package/dist/improve-dom-diff.d.ts.map +1 -0
- package/dist/improve-dom-diff.js +129 -0
- package/dist/improve-dom-diff.js.map +1 -0
- package/dist/improve-dom-extract.d.ts +15 -0
- package/dist/improve-dom-extract.d.ts.map +1 -0
- package/dist/improve-dom-extract.js +343 -0
- package/dist/improve-dom-extract.js.map +1 -0
- package/dist/improve-dom-gate.d.ts +12 -0
- package/dist/improve-dom-gate.d.ts.map +1 -0
- package/dist/improve-dom-gate.js +34 -0
- package/dist/improve-dom-gate.js.map +1 -0
- package/dist/improve-dom-neighbour.d.ts +16 -0
- package/dist/improve-dom-neighbour.d.ts.map +1 -0
- package/dist/improve-dom-neighbour.js +95 -0
- package/dist/improve-dom-neighbour.js.map +1 -0
- package/dist/improve-dom-scale.d.ts +8 -0
- package/dist/improve-dom-scale.d.ts.map +1 -0
- package/dist/improve-dom-scale.js +63 -0
- package/dist/improve-dom-scale.js.map +1 -0
- package/dist/improve-generation-stages.d.ts +23 -0
- package/dist/improve-generation-stages.d.ts.map +1 -0
- package/dist/improve-generation-stages.js +166 -0
- package/dist/improve-generation-stages.js.map +1 -0
- package/dist/improve-kit-readme.d.ts +3 -0
- package/dist/improve-kit-readme.d.ts.map +1 -0
- package/dist/improve-kit-readme.js +32 -0
- package/dist/improve-kit-readme.js.map +1 -0
- package/dist/improve-layerdoc-diff.d.ts +27 -0
- package/dist/improve-layerdoc-diff.d.ts.map +1 -0
- package/dist/improve-layerdoc-diff.js +311 -0
- package/dist/improve-layerdoc-diff.js.map +1 -0
- package/dist/improve-layerdoc-types.d.ts +109 -0
- package/dist/improve-layerdoc-types.d.ts.map +1 -0
- package/dist/improve-layerdoc-types.js +2 -0
- package/dist/improve-layerdoc-types.js.map +1 -0
- package/dist/improve-options.d.ts +44 -0
- package/dist/improve-options.d.ts.map +1 -0
- package/dist/improve-options.js +163 -0
- package/dist/improve-options.js.map +1 -0
- package/dist/improve-plan-annotator.d.ts +14 -0
- package/dist/improve-plan-annotator.d.ts.map +1 -0
- package/dist/improve-plan-annotator.js +80 -0
- package/dist/improve-plan-annotator.js.map +1 -0
- package/dist/improve-plan-render.d.ts +23 -0
- package/dist/improve-plan-render.d.ts.map +1 -0
- package/dist/improve-plan-render.js +81 -0
- package/dist/improve-plan-render.js.map +1 -0
- package/dist/improve-pricing-plan.d.ts +20 -0
- package/dist/improve-pricing-plan.d.ts.map +1 -0
- package/dist/improve-pricing-plan.js +72 -0
- package/dist/improve-pricing-plan.js.map +1 -0
- package/dist/improve-source-hints.d.ts +31 -0
- package/dist/improve-source-hints.d.ts.map +1 -0
- package/dist/improve-source-hints.js +131 -0
- package/dist/improve-source-hints.js.map +1 -0
- package/dist/improve-stage-runners.d.ts +7 -0
- package/dist/improve-stage-runners.d.ts.map +1 -0
- package/dist/improve-stage-runners.js +6 -0
- package/dist/improve-stage-runners.js.map +1 -0
- package/dist/improve-stage-shared.d.ts +27 -0
- package/dist/improve-stage-shared.d.ts.map +1 -0
- package/dist/improve-stage-shared.js +34 -0
- package/dist/improve-stage-shared.js.map +1 -0
- package/dist/improve-token-patch.d.ts +19 -0
- package/dist/improve-token-patch.d.ts.map +1 -0
- package/dist/improve-token-patch.js +118 -0
- package/dist/improve-token-patch.js.map +1 -0
- package/dist/improve-workspace.d.ts +113 -0
- package/dist/improve-workspace.d.ts.map +1 -0
- package/dist/improve-workspace.js +122 -0
- package/dist/improve-workspace.js.map +1 -0
- package/dist/legacy-skill-catalog.d.ts.map +1 -1
- package/dist/legacy-skill-catalog.js +8 -0
- package/dist/legacy-skill-catalog.js.map +1 -1
- package/dist/redesign-capture.d.ts +25 -0
- package/dist/redesign-capture.d.ts.map +1 -1
- package/dist/redesign-capture.js +50 -1
- package/dist/redesign-capture.js.map +1 -1
- package/dist/run-journal-commands.d.ts.map +1 -1
- package/dist/run-journal-commands.js +9 -0
- package/dist/run-journal-commands.js.map +1 -1
- package/open-design.json +2 -2
- package/package.json +1 -1
- package/skills/12ui-design/SKILL.md +11 -1
- package/skills/12ui-design/improve.md +74 -0
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LayerDoc matching ported from the measured improve pilot.
|
|
3
|
+
*
|
|
4
|
+
* Caveat: extractionIndex is meaningful only inside one conversion lineage.
|
|
5
|
+
* Independent conversions usually reuse the same numeric range, so raw key
|
|
6
|
+
* overlap is actively misleading. Identity coverage is therefore weighted by
|
|
7
|
+
* pair plausibility and falls back to content then spatial matching below 50%.
|
|
8
|
+
*/
|
|
9
|
+
export const IDENTITY_COVERAGE_MIN = 0.5;
|
|
10
|
+
export const SPATIAL_IOU_MIN = 0.1;
|
|
11
|
+
const PLAUSIBLE_IOU_MIN = 0.3;
|
|
12
|
+
export const TEXT_BEARING_KINDS = new Set([
|
|
13
|
+
'text', 'heading', 'button', 'badge', 'input', 'textarea', 'icon', 'link', 'label', 'logo',
|
|
14
|
+
]);
|
|
15
|
+
const KIND_FAMILY = new Map([
|
|
16
|
+
['text', 'copy'], ['heading', 'copy'], ['label', 'copy'], ['link', 'copy'],
|
|
17
|
+
['badge', 'copy'], ['button', 'copy'], ['input', 'copy'], ['textarea', 'copy'],
|
|
18
|
+
['logo', 'copy'], ['icon', 'icon'],
|
|
19
|
+
]);
|
|
20
|
+
export const isRecord = (value) => (Boolean(value) && typeof value === 'object' && !Array.isArray(value));
|
|
21
|
+
export const flattenLayerDoc = (doc) => {
|
|
22
|
+
if (!isRecord(doc) || !Array.isArray(doc.layers))
|
|
23
|
+
return [];
|
|
24
|
+
const output = [];
|
|
25
|
+
const visit = (nodes) => {
|
|
26
|
+
for (const node of nodes) {
|
|
27
|
+
if (!isRecord(node))
|
|
28
|
+
continue;
|
|
29
|
+
if (node.kind === 'group' && Array.isArray(node.children))
|
|
30
|
+
visit(node.children);
|
|
31
|
+
else
|
|
32
|
+
output.push(node);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
visit(doc.layers);
|
|
36
|
+
return output;
|
|
37
|
+
};
|
|
38
|
+
export const boxOf = (leaf) => {
|
|
39
|
+
const box = leaf?.box;
|
|
40
|
+
return Array.isArray(box) && box.length === 4
|
|
41
|
+
&& box.every((value) => typeof value === 'number' && Number.isFinite(value))
|
|
42
|
+
? box
|
|
43
|
+
: undefined;
|
|
44
|
+
};
|
|
45
|
+
export const concise = (value, maxLength = 120) => {
|
|
46
|
+
if (typeof value !== 'string')
|
|
47
|
+
return undefined;
|
|
48
|
+
const compact = value.replace(/\s+/gu, ' ').trim();
|
|
49
|
+
if (!compact)
|
|
50
|
+
return undefined;
|
|
51
|
+
return compact.length <= maxLength ? compact : `${compact.slice(0, maxLength - 1)}…`;
|
|
52
|
+
};
|
|
53
|
+
export const normalizeContent = (value) => (typeof value === 'string' ? value.replace(/\s+/gu, ' ').trim().toLowerCase() : '');
|
|
54
|
+
export const boxIou = (left, right) => {
|
|
55
|
+
const [leftX, leftY, leftWidth, leftHeight] = left;
|
|
56
|
+
const [rightX, rightY, rightWidth, rightHeight] = right;
|
|
57
|
+
const intersectionWidth = Math.max(0, Math.min(leftX + leftWidth, rightX + rightWidth) - Math.max(leftX, rightX));
|
|
58
|
+
const intersectionHeight = Math.max(0, Math.min(leftY + leftHeight, rightY + rightHeight) - Math.max(leftY, rightY));
|
|
59
|
+
const intersection = intersectionWidth * intersectionHeight;
|
|
60
|
+
const union = leftWidth * leftHeight + rightWidth * rightHeight - intersection;
|
|
61
|
+
return union > 0 ? intersection / union : 0;
|
|
62
|
+
};
|
|
63
|
+
export const isPlausiblePair = (before, after) => {
|
|
64
|
+
if (before.kind !== after.kind)
|
|
65
|
+
return false;
|
|
66
|
+
const beforeContent = normalizeContent(before.content);
|
|
67
|
+
const afterContent = normalizeContent(after.content);
|
|
68
|
+
if (beforeContent && afterContent && beforeContent === afterContent)
|
|
69
|
+
return true;
|
|
70
|
+
const beforeBox = boxOf(before);
|
|
71
|
+
const afterBox = boxOf(after);
|
|
72
|
+
if (beforeBox && afterBox && boxIou(beforeBox, afterBox) >= PLAUSIBLE_IOU_MIN)
|
|
73
|
+
return true;
|
|
74
|
+
return !beforeContent && !afterContent && !beforeBox && !afterBox;
|
|
75
|
+
};
|
|
76
|
+
const identityKey = (leaf, index) => {
|
|
77
|
+
if (typeof leaf.extractionIndex === 'number')
|
|
78
|
+
return `extraction:${leaf.extractionIndex}`;
|
|
79
|
+
if (typeof leaf.z === 'number')
|
|
80
|
+
return `z:${leaf.z}`;
|
|
81
|
+
return `ordinal:${index}`;
|
|
82
|
+
};
|
|
83
|
+
const matchByIdentity = (beforeLeaves, afterLeaves) => {
|
|
84
|
+
const before = new Map(beforeLeaves.map((leaf, index) => [identityKey(leaf, index), { leaf, index }]));
|
|
85
|
+
const after = new Map(afterLeaves.map((leaf, index) => [identityKey(leaf, index), { leaf, index }]));
|
|
86
|
+
const matched = [];
|
|
87
|
+
const removed = [];
|
|
88
|
+
const added = [];
|
|
89
|
+
let plausible = 0;
|
|
90
|
+
for (const key of new Set([...before.keys(), ...after.keys()])) {
|
|
91
|
+
const left = before.get(key);
|
|
92
|
+
const right = after.get(key);
|
|
93
|
+
if (left && right) {
|
|
94
|
+
matched.push({
|
|
95
|
+
before: left.leaf,
|
|
96
|
+
after: right.leaf,
|
|
97
|
+
beforeIndex: left.index,
|
|
98
|
+
afterIndex: right.index,
|
|
99
|
+
matchStrategy: 'extractionIndex',
|
|
100
|
+
matchKey: key,
|
|
101
|
+
});
|
|
102
|
+
if (isPlausiblePair(left.leaf, right.leaf))
|
|
103
|
+
plausible += 1;
|
|
104
|
+
}
|
|
105
|
+
else if (left)
|
|
106
|
+
removed.push(left.leaf);
|
|
107
|
+
else if (right)
|
|
108
|
+
added.push(right.leaf);
|
|
109
|
+
}
|
|
110
|
+
return {
|
|
111
|
+
matched,
|
|
112
|
+
removed,
|
|
113
|
+
added,
|
|
114
|
+
coverage: plausible / Math.max(beforeLeaves.length, afterLeaves.length, 1),
|
|
115
|
+
};
|
|
116
|
+
};
|
|
117
|
+
const center = (leaf) => {
|
|
118
|
+
const box = boxOf(leaf);
|
|
119
|
+
return box ? [box[0] + box[2] / 2, box[1] + box[3] / 2] : undefined;
|
|
120
|
+
};
|
|
121
|
+
const takeNearest = (bucket, targetLeaf) => {
|
|
122
|
+
if (bucket.length <= 1)
|
|
123
|
+
return bucket.shift();
|
|
124
|
+
const target = center(targetLeaf);
|
|
125
|
+
if (!target)
|
|
126
|
+
return bucket.shift();
|
|
127
|
+
let bestIndex = 0;
|
|
128
|
+
let bestDistance = Number.POSITIVE_INFINITY;
|
|
129
|
+
bucket.forEach((candidate, index) => {
|
|
130
|
+
const candidateCenter = center(candidate.leaf);
|
|
131
|
+
if (!candidateCenter)
|
|
132
|
+
return;
|
|
133
|
+
const distance = (candidateCenter[0] - target[0]) ** 2 + (candidateCenter[1] - target[1]) ** 2;
|
|
134
|
+
if (distance < bestDistance) {
|
|
135
|
+
bestDistance = distance;
|
|
136
|
+
bestIndex = index;
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
return bucket.splice(bestIndex, 1)[0];
|
|
140
|
+
};
|
|
141
|
+
const matchByContentAndSpatial = (beforeLeaves, afterLeaves, contentKeyMode) => {
|
|
142
|
+
const beforeItems = beforeLeaves.map((leaf, index) => ({ leaf, index }));
|
|
143
|
+
const afterItems = afterLeaves.map((leaf, index) => ({ leaf, index }));
|
|
144
|
+
const usedBefore = new Set();
|
|
145
|
+
const usedAfter = new Set();
|
|
146
|
+
const matched = [];
|
|
147
|
+
const buckets = new Map();
|
|
148
|
+
const keyFor = (leaf) => {
|
|
149
|
+
if (!leaf.kind || !TEXT_BEARING_KINDS.has(leaf.kind))
|
|
150
|
+
return undefined;
|
|
151
|
+
const content = normalizeContent(leaf.content);
|
|
152
|
+
if (!content)
|
|
153
|
+
return undefined;
|
|
154
|
+
const kind = contentKeyMode === 'family' ? KIND_FAMILY.get(leaf.kind) ?? leaf.kind : leaf.kind;
|
|
155
|
+
return `${kind}::${content}`;
|
|
156
|
+
};
|
|
157
|
+
for (const item of beforeItems) {
|
|
158
|
+
const key = keyFor(item.leaf);
|
|
159
|
+
if (!key)
|
|
160
|
+
continue;
|
|
161
|
+
const bucket = buckets.get(key) ?? [];
|
|
162
|
+
bucket.push(item);
|
|
163
|
+
buckets.set(key, bucket);
|
|
164
|
+
}
|
|
165
|
+
for (const item of afterItems) {
|
|
166
|
+
const key = keyFor(item.leaf);
|
|
167
|
+
if (!key)
|
|
168
|
+
continue;
|
|
169
|
+
const left = takeNearest(buckets.get(key) ?? [], item.leaf);
|
|
170
|
+
if (!left)
|
|
171
|
+
continue;
|
|
172
|
+
matched.push({
|
|
173
|
+
before: left.leaf,
|
|
174
|
+
after: item.leaf,
|
|
175
|
+
beforeIndex: left.index,
|
|
176
|
+
afterIndex: item.index,
|
|
177
|
+
matchStrategy: 'content',
|
|
178
|
+
matchKey: key,
|
|
179
|
+
});
|
|
180
|
+
usedBefore.add(left.index);
|
|
181
|
+
usedAfter.add(item.index);
|
|
182
|
+
}
|
|
183
|
+
const spatial = [];
|
|
184
|
+
for (const left of beforeItems.filter((item) => !usedBefore.has(item.index))) {
|
|
185
|
+
const leftBox = boxOf(left.leaf);
|
|
186
|
+
if (!leftBox)
|
|
187
|
+
continue;
|
|
188
|
+
for (const right of afterItems.filter((item) => !usedAfter.has(item.index))) {
|
|
189
|
+
const rightBox = boxOf(right.leaf);
|
|
190
|
+
if (!rightBox)
|
|
191
|
+
continue;
|
|
192
|
+
const score = boxIou(leftBox, rightBox);
|
|
193
|
+
if (score >= SPATIAL_IOU_MIN)
|
|
194
|
+
spatial.push({ left, right, score });
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
spatial.sort((left, right) => right.score - left.score);
|
|
198
|
+
for (const candidate of spatial) {
|
|
199
|
+
if (usedBefore.has(candidate.left.index) || usedAfter.has(candidate.right.index))
|
|
200
|
+
continue;
|
|
201
|
+
usedBefore.add(candidate.left.index);
|
|
202
|
+
usedAfter.add(candidate.right.index);
|
|
203
|
+
matched.push({
|
|
204
|
+
before: candidate.left.leaf,
|
|
205
|
+
after: candidate.right.leaf,
|
|
206
|
+
beforeIndex: candidate.left.index,
|
|
207
|
+
afterIndex: candidate.right.index,
|
|
208
|
+
matchStrategy: 'spatial',
|
|
209
|
+
matchKey: `iou:${candidate.score.toFixed(3)}`,
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
return {
|
|
213
|
+
matched,
|
|
214
|
+
removed: beforeItems.filter((item) => !usedBefore.has(item.index)).map((item) => item.leaf),
|
|
215
|
+
added: afterItems.filter((item) => !usedAfter.has(item.index)).map((item) => item.leaf),
|
|
216
|
+
};
|
|
217
|
+
};
|
|
218
|
+
export const MEANINGFUL_FIELDS = [
|
|
219
|
+
'kind', 'content', 'box', 'hidden', 'fontSizePx', 'fittedFontSizePx', 'fontWeight',
|
|
220
|
+
'googleFontFamily', 'color', 'align', 'opacity', 'rotationDeg', 'textRotationDeg',
|
|
221
|
+
'textSlantDeg', 'style',
|
|
222
|
+
];
|
|
223
|
+
const same = (left, right) => JSON.stringify(left) === JSON.stringify(right);
|
|
224
|
+
export const computeLayerDeltas = (before, after) => {
|
|
225
|
+
const deltas = [];
|
|
226
|
+
for (const field of MEANINGFUL_FIELDS) {
|
|
227
|
+
const beforeValue = before[field];
|
|
228
|
+
const afterValue = after[field];
|
|
229
|
+
if (same(beforeValue, afterValue))
|
|
230
|
+
continue;
|
|
231
|
+
if (field !== 'style') {
|
|
232
|
+
deltas.push({ field, before: beforeValue, after: afterValue });
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
const beforeStyle = isRecord(beforeValue) ? beforeValue : {};
|
|
236
|
+
const afterStyle = isRecord(afterValue) ? afterValue : {};
|
|
237
|
+
for (const key of [...new Set([...Object.keys(beforeStyle), ...Object.keys(afterStyle)])].sort()) {
|
|
238
|
+
if (!same(beforeStyle[key], afterStyle[key])) {
|
|
239
|
+
deltas.push({ field: `style.${key}`, before: beforeStyle[key], after: afterStyle[key] });
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
return deltas;
|
|
244
|
+
};
|
|
245
|
+
export const diffLayerDocs = (beforeDoc, afterDoc, options = {}) => {
|
|
246
|
+
const beforeLeaves = flattenLayerDoc(beforeDoc);
|
|
247
|
+
const afterLeaves = flattenLayerDoc(afterDoc);
|
|
248
|
+
const identity = options.strategy === 'fallback' ? undefined : matchByIdentity(beforeLeaves, afterLeaves);
|
|
249
|
+
const useFallback = options.strategy === 'fallback'
|
|
250
|
+
|| (identity?.coverage ?? 0) < IDENTITY_COVERAGE_MIN;
|
|
251
|
+
const raw = useFallback
|
|
252
|
+
? matchByContentAndSpatial(beforeLeaves, afterLeaves, options.contentKeyMode ?? 'kind')
|
|
253
|
+
: identity;
|
|
254
|
+
const matched = raw.matched.map((entry) => {
|
|
255
|
+
const deltas = computeLayerDeltas(entry.before, entry.after);
|
|
256
|
+
return {
|
|
257
|
+
beforeIndex: entry.beforeIndex,
|
|
258
|
+
afterIndex: entry.afterIndex,
|
|
259
|
+
matchStrategy: entry.matchStrategy,
|
|
260
|
+
matchKey: entry.matchKey,
|
|
261
|
+
plausible: isPlausiblePair(entry.before, entry.after),
|
|
262
|
+
changed: deltas.length > 0,
|
|
263
|
+
kind: entry.after.kind ?? entry.before.kind ?? 'layer',
|
|
264
|
+
...(boxOf(entry.after) ?? boxOf(entry.before)
|
|
265
|
+
? { box: boxOf(entry.after) ?? boxOf(entry.before) }
|
|
266
|
+
: {}),
|
|
267
|
+
before: { ...(concise(entry.before.content) ? { content: concise(entry.before.content) } : {}) },
|
|
268
|
+
after: { ...(concise(entry.after.content) ? { content: concise(entry.after.content) } : {}) },
|
|
269
|
+
deltas,
|
|
270
|
+
};
|
|
271
|
+
});
|
|
272
|
+
const summarize = (leaf) => ({
|
|
273
|
+
kind: leaf.kind ?? 'layer',
|
|
274
|
+
...(concise(leaf.content) ? { content: concise(leaf.content) } : {}),
|
|
275
|
+
...(boxOf(leaf) ? { box: boxOf(leaf) } : {}),
|
|
276
|
+
});
|
|
277
|
+
const plausibleCount = matched.filter((entry) => entry.plausible).length;
|
|
278
|
+
const changedCount = matched.filter((entry) => entry.changed).length;
|
|
279
|
+
const added = raw.added.map(summarize);
|
|
280
|
+
const removed = raw.removed.map(summarize);
|
|
281
|
+
return {
|
|
282
|
+
meta: {
|
|
283
|
+
beforeLeafCount: beforeLeaves.length,
|
|
284
|
+
afterLeafCount: afterLeaves.length,
|
|
285
|
+
identityCoverage: identity?.coverage ?? 0,
|
|
286
|
+
matchCoverage: plausibleCount / Math.max(beforeLeaves.length, afterLeaves.length, 1),
|
|
287
|
+
matchStrategy: useFallback ? 'content+spatial-fallback' : 'extractionIndex',
|
|
288
|
+
matchedCount: matched.length,
|
|
289
|
+
plausibleMatchedCount: plausibleCount,
|
|
290
|
+
changedCount,
|
|
291
|
+
unchangedCount: matched.length - changedCount,
|
|
292
|
+
addedCount: added.length,
|
|
293
|
+
removedCount: removed.length,
|
|
294
|
+
},
|
|
295
|
+
matched,
|
|
296
|
+
added,
|
|
297
|
+
removed,
|
|
298
|
+
};
|
|
299
|
+
};
|
|
300
|
+
export const canvasOfDoc = (doc) => {
|
|
301
|
+
if (!isRecord(doc) || !isRecord(doc.canvas))
|
|
302
|
+
throw new Error('document has no usable canvas');
|
|
303
|
+
const width = doc.canvas.width;
|
|
304
|
+
const height = doc.canvas.height;
|
|
305
|
+
if (typeof width !== 'number' || !Number.isFinite(width) || width <= 0
|
|
306
|
+
|| typeof height !== 'number' || !Number.isFinite(height) || height <= 0) {
|
|
307
|
+
throw new Error('document has no usable canvas {width,height}');
|
|
308
|
+
}
|
|
309
|
+
return { width, height };
|
|
310
|
+
};
|
|
311
|
+
//# sourceMappingURL=improve-layerdoc-diff.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-layerdoc-diff.js","sourceRoot":"","sources":["../src/improve-layerdoc-diff.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
export type LayerBox = [number, number, number, number];
|
|
2
|
+
export type LayerLeaf = Record<string, unknown> & {
|
|
3
|
+
kind?: string;
|
|
4
|
+
content?: string;
|
|
5
|
+
box?: LayerBox;
|
|
6
|
+
layoutBox?: LayerBox;
|
|
7
|
+
extractionIndex?: number;
|
|
8
|
+
z?: number;
|
|
9
|
+
style?: Record<string, unknown>;
|
|
10
|
+
viewportAnchored?: boolean;
|
|
11
|
+
verticalFrame?: number;
|
|
12
|
+
dom?: DomLeafIdentity;
|
|
13
|
+
};
|
|
14
|
+
export type DomLeafIdentity = {
|
|
15
|
+
selector: string;
|
|
16
|
+
selectorKind: 'id' | 'testid' | 'class' | 'path';
|
|
17
|
+
classSelector?: string;
|
|
18
|
+
classSelectorMatches?: number;
|
|
19
|
+
classSelectorIndex?: number;
|
|
20
|
+
tag?: string;
|
|
21
|
+
id?: string;
|
|
22
|
+
testId?: string;
|
|
23
|
+
classList?: string[];
|
|
24
|
+
path?: string;
|
|
25
|
+
parentIndex?: number;
|
|
26
|
+
};
|
|
27
|
+
export type LayerDocLike = {
|
|
28
|
+
version?: number;
|
|
29
|
+
canvas: {
|
|
30
|
+
width: number;
|
|
31
|
+
height: number;
|
|
32
|
+
};
|
|
33
|
+
source?: Record<string, unknown>;
|
|
34
|
+
viewport?: Record<string, unknown>;
|
|
35
|
+
layers: unknown[];
|
|
36
|
+
};
|
|
37
|
+
export type LayerDelta = {
|
|
38
|
+
field: string;
|
|
39
|
+
before: unknown;
|
|
40
|
+
after: unknown;
|
|
41
|
+
};
|
|
42
|
+
export type LayerMatchStrategy = 'extractionIndex' | 'content' | 'spatial' | 'neighbour';
|
|
43
|
+
export type RawLayerMatch = {
|
|
44
|
+
before: LayerLeaf;
|
|
45
|
+
after: LayerLeaf;
|
|
46
|
+
beforeIndex: number;
|
|
47
|
+
afterIndex: number;
|
|
48
|
+
matchStrategy: LayerMatchStrategy;
|
|
49
|
+
matchKey: string;
|
|
50
|
+
};
|
|
51
|
+
export type LayerDiffMatch = {
|
|
52
|
+
beforeIndex: number;
|
|
53
|
+
afterIndex: number;
|
|
54
|
+
matchStrategy: LayerMatchStrategy;
|
|
55
|
+
matchKey: string;
|
|
56
|
+
plausible: boolean;
|
|
57
|
+
changed: boolean;
|
|
58
|
+
kind: string;
|
|
59
|
+
box?: LayerBox;
|
|
60
|
+
before: {
|
|
61
|
+
content?: string;
|
|
62
|
+
};
|
|
63
|
+
after: {
|
|
64
|
+
content?: string;
|
|
65
|
+
};
|
|
66
|
+
deltas: LayerDelta[];
|
|
67
|
+
selector?: string;
|
|
68
|
+
confident?: boolean;
|
|
69
|
+
impliedPadding?: ImpliedPaddingDelta[];
|
|
70
|
+
};
|
|
71
|
+
export type LayerSummary = {
|
|
72
|
+
kind: string;
|
|
73
|
+
content?: string;
|
|
74
|
+
box?: LayerBox;
|
|
75
|
+
};
|
|
76
|
+
export type LayerDiffResult = {
|
|
77
|
+
meta: {
|
|
78
|
+
beforeLeafCount: number;
|
|
79
|
+
afterLeafCount: number;
|
|
80
|
+
identityCoverage: number;
|
|
81
|
+
matchCoverage: number;
|
|
82
|
+
matchStrategy: 'extractionIndex' | 'content+spatial-fallback';
|
|
83
|
+
matchedCount: number;
|
|
84
|
+
plausibleMatchedCount: number;
|
|
85
|
+
changedCount: number;
|
|
86
|
+
unchangedCount: number;
|
|
87
|
+
addedCount: number;
|
|
88
|
+
removedCount: number;
|
|
89
|
+
neighbourRepaired?: number;
|
|
90
|
+
neighbourReleased?: number;
|
|
91
|
+
};
|
|
92
|
+
matched: LayerDiffMatch[];
|
|
93
|
+
added: LayerSummary[];
|
|
94
|
+
removed: LayerSummary[];
|
|
95
|
+
};
|
|
96
|
+
export type ImpliedPaddingDelta = {
|
|
97
|
+
field: string;
|
|
98
|
+
before: number;
|
|
99
|
+
after: number;
|
|
100
|
+
driftPx: number;
|
|
101
|
+
basis: string;
|
|
102
|
+
};
|
|
103
|
+
export type ImproveGate = {
|
|
104
|
+
passed: boolean;
|
|
105
|
+
coverage: number;
|
|
106
|
+
coveragePct: number;
|
|
107
|
+
thresholdPct: number;
|
|
108
|
+
};
|
|
109
|
+
//# sourceMappingURL=improve-layerdoc-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-layerdoc-types.d.ts","sourceRoot":"","sources":["../src/improve-layerdoc-types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-layerdoc-types.js","sourceRoot":"","sources":["../src/improve-layerdoc-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { CreateRetainPolicy } from './branch-client.js';
|
|
2
|
+
import { type CliFlags } from './cli-arguments.js';
|
|
3
|
+
import { type ConversionModel } from './conversion-models.js';
|
|
4
|
+
import { type ResponsiveConversionQuality } from './responsive-quality.js';
|
|
5
|
+
import { type ImproveBootstrapAction } from './redesign-capture.js';
|
|
6
|
+
import { type ImprovePaths, type ImproveStage } from './improve-workspace.js';
|
|
7
|
+
export type ImproveOptions = {
|
|
8
|
+
input: {
|
|
9
|
+
kind: 'url' | 'image';
|
|
10
|
+
value: string;
|
|
11
|
+
};
|
|
12
|
+
target?: {
|
|
13
|
+
kind: 'image' | 'layerdoc';
|
|
14
|
+
value: string;
|
|
15
|
+
};
|
|
16
|
+
direction?: string;
|
|
17
|
+
concept: string;
|
|
18
|
+
candidates: number;
|
|
19
|
+
retain: CreateRetainPolicy;
|
|
20
|
+
retainFlag: string;
|
|
21
|
+
pick: string;
|
|
22
|
+
conversionModel: ConversionModel;
|
|
23
|
+
responsiveQuality: ResponsiveConversionQuality;
|
|
24
|
+
viewport: {
|
|
25
|
+
width: number;
|
|
26
|
+
height: number;
|
|
27
|
+
};
|
|
28
|
+
fullPage: boolean;
|
|
29
|
+
bootstrapValues: string[];
|
|
30
|
+
bootstrap: ImproveBootstrapAction[];
|
|
31
|
+
paths: ImprovePaths;
|
|
32
|
+
from: ImproveStage;
|
|
33
|
+
to: ImproveStage;
|
|
34
|
+
repo?: string;
|
|
35
|
+
planSourceConvert: boolean;
|
|
36
|
+
dryRun: boolean;
|
|
37
|
+
fresh: boolean;
|
|
38
|
+
};
|
|
39
|
+
export declare const parseImproveOptions: (args: {
|
|
40
|
+
command: readonly string[];
|
|
41
|
+
flags: CliFlags;
|
|
42
|
+
workspaceRoot?: string;
|
|
43
|
+
}) => ImproveOptions;
|
|
44
|
+
//# sourceMappingURL=improve-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"improve-options.d.ts","sourceRoot":"","sources":["../src/improve-options.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,OAAO,EAIL,KAAK,QAAQ,EACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAqB,KAAK,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACjF,OAAO,EAEL,KAAK,2BAA2B,EACjC,MAAM,yBAAyB,CAAC;AAOjC,OAAO,EAAyB,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC3F,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,YAAY,EAClB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE;QAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,kBAAkB,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,eAAe,CAAC;IACjC,iBAAiB,EAAE,2BAA2B,CAAC;IAC/C,QAAQ,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,sBAAsB,EAAE,CAAC;IACpC,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,EAAE,EAAE,YAAY,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iBAAiB,EAAE,OAAO,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAoEF,eAAO,MAAM,mBAAmB,GAAI,MAAM;IACxC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,KAAK,EAAE,QAAQ,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,KAAG,cAkGH,CAAC"}
|