shipshots-mcp 0.2.2 → 0.2.5

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.
@@ -1,18 +1,32 @@
1
+ import { estimateTextHeight } from "./defaults.js";
2
+ /**
3
+ * For text layers, use the smaller of stored height and estimated rendered height.
4
+ * This handles legacy layers created with the old 250px minimum floor.
5
+ */
6
+ function effectiveHeight(layer) {
7
+ if (layer.type === "text") {
8
+ const t = layer;
9
+ const estimated = estimateTextHeight(t.text, t.fontSize, t.lineHeight, t.width);
10
+ return Math.min(layer.height, estimated);
11
+ }
12
+ return layer.height;
13
+ }
1
14
  /**
2
15
  * Compute axis-aligned bounding box for a layer, accounting for 2D rotation.
3
16
  * Ignores 3D tilt (rotateX/rotateY) — too complex for validation.
4
17
  */
5
18
  function getLayerBounds(layer) {
19
+ const layerHeight = effectiveHeight(layer);
6
20
  const cx = layer.x + layer.width / 2;
7
- const cy = layer.y + layer.height / 2;
21
+ const cy = layer.y + layerHeight / 2;
8
22
  const hw = layer.width / 2;
9
- const hh = layer.height / 2;
23
+ const hh = layerHeight / 2;
10
24
  if (layer.rotation === 0) {
11
25
  return {
12
26
  left: layer.x,
13
27
  top: layer.y,
14
28
  right: layer.x + layer.width,
15
- bottom: layer.y + layer.height,
29
+ bottom: layer.y + layerHeight,
16
30
  };
17
31
  }
18
32
  // Rotation-expanded AABB
@@ -68,28 +82,37 @@ function checkCanvasClipping(layer, screen, strip) {
68
82
  return [];
69
83
  const warnings = [];
70
84
  const bounds = getLayerBounds(layer);
85
+ const isDecorativeShape = layer.type === "shape" && (layer.opacity ?? 1) < 0.5;
71
86
  // Left edge
72
87
  if (bounds.left < 0 && !strip.connectedLeft) {
73
88
  const amount = Math.round(-bounds.left);
74
89
  warnings.push({
75
90
  type: "canvas-clip",
76
- severity: "warning",
91
+ severity: isDecorativeShape ? "info" : "warning",
77
92
  layerId: layer.id,
78
93
  layerType: layer.type,
79
- message: `Layer "${layerName(layer)}" clips left edge by ${amount}px`,
80
- suggestion: `Move layer right by ${amount}px (set x=${Math.round(layer.x + amount)})`,
94
+ message: isDecorativeShape
95
+ ? `Decorative shape clips left edge by ${amount}px (likely intentional)`
96
+ : `Layer "${layerName(layer)}" clips left edge by ${amount}px`,
97
+ suggestion: isDecorativeShape
98
+ ? undefined
99
+ : `Move layer right by ${amount}px (set x=${Math.round(layer.x + amount)})`,
81
100
  });
82
101
  }
83
- // Right edge
84
- if (bounds.right > screen.width && !strip.connectedRight) {
102
+ // Right edge — skip for devices (checkDeviceClipping handles with correct severity)
103
+ if (bounds.right > screen.width && !strip.connectedRight && layer.type !== "device") {
85
104
  const amount = Math.round(bounds.right - screen.width);
86
105
  warnings.push({
87
106
  type: "canvas-clip",
88
- severity: "warning",
107
+ severity: isDecorativeShape ? "info" : "warning",
89
108
  layerId: layer.id,
90
109
  layerType: layer.type,
91
- message: `Layer "${layerName(layer)}" clips right edge by ${amount}px`,
92
- suggestion: `Move layer left by ${amount}px or reduce width to ${Math.round(screen.width - layer.x)}px`,
110
+ message: isDecorativeShape
111
+ ? `Decorative shape clips right edge by ${amount}px (likely intentional)`
112
+ : `Layer "${layerName(layer)}" clips right edge by ${amount}px`,
113
+ suggestion: isDecorativeShape
114
+ ? undefined
115
+ : `Move layer left by ${amount}px or reduce width to ${Math.round(screen.width - layer.x)}px`,
93
116
  });
94
117
  }
95
118
  // Top edge
@@ -97,23 +120,31 @@ function checkCanvasClipping(layer, screen, strip) {
97
120
  const amount = Math.round(-bounds.top);
98
121
  warnings.push({
99
122
  type: "canvas-clip",
100
- severity: "warning",
123
+ severity: isDecorativeShape ? "info" : "warning",
101
124
  layerId: layer.id,
102
125
  layerType: layer.type,
103
- message: `Layer "${layerName(layer)}" clips top edge by ${amount}px`,
104
- suggestion: `Move layer down by ${amount}px (set y=${Math.round(layer.y + amount)})`,
126
+ message: isDecorativeShape
127
+ ? `Decorative shape clips top edge by ${amount}px (likely intentional)`
128
+ : `Layer "${layerName(layer)}" clips top edge by ${amount}px`,
129
+ suggestion: isDecorativeShape
130
+ ? undefined
131
+ : `Move layer down by ${amount}px (set y=${Math.round(layer.y + amount)})`,
105
132
  });
106
133
  }
107
- // Bottom edge
108
- if (bounds.bottom > screen.height) {
134
+ // Bottom edge — skip for devices (checkDeviceClipping handles with correct severity)
135
+ if (bounds.bottom > screen.height && layer.type !== "device") {
109
136
  const amount = Math.round(bounds.bottom - screen.height);
110
137
  warnings.push({
111
138
  type: "canvas-clip",
112
- severity: "warning",
139
+ severity: isDecorativeShape ? "info" : "warning",
113
140
  layerId: layer.id,
114
141
  layerType: layer.type,
115
- message: `Layer "${layerName(layer)}" clips bottom edge by ${amount}px`,
116
- suggestion: `Move layer up by ${amount}px or reduce height`,
142
+ message: isDecorativeShape
143
+ ? `Decorative shape clips bottom edge by ${amount}px (likely intentional)`
144
+ : `Layer "${layerName(layer)}" clips bottom edge by ${amount}px`,
145
+ suggestion: isDecorativeShape
146
+ ? undefined
147
+ : `Move layer up by ${amount}px or reduce height`,
117
148
  });
118
149
  }
119
150
  return warnings;
@@ -124,13 +155,16 @@ function checkDeviceClipping(layer, screen, strip) {
124
155
  const warnings = [];
125
156
  const bounds = getLayerBounds(layer);
126
157
  if (bounds.bottom > screen.height) {
158
+ const overflow = Math.round(bounds.bottom - screen.height);
127
159
  warnings.push({
128
160
  type: "device-clip",
129
- severity: "error",
161
+ severity: "info",
130
162
  layerId: layer.id,
131
163
  layerType: "device",
132
- message: `Device frame "${layerName(layer)}" extends ${Math.round(bounds.bottom - screen.height)}px below canvas — phone will be cut off at the bottom`,
133
- suggestion: `Move device up by ${Math.round(bounds.bottom - screen.height + 30)}px or reduce width`,
164
+ message: `Device frame "${layerName(layer)}" extends ${overflow}px below canvas — bottom of phone will be cropped in export`,
165
+ suggestion: overflow > layer.height * 0.5
166
+ ? `Device is more than half off-screen. Move up or reduce width for better visibility.`
167
+ : `Bottom bleed is fine for side-by-side and diagonal layouts. Only adjust if the cropping hides important content.`,
134
168
  });
135
169
  }
136
170
  if (bounds.right > screen.width && !strip.connectedRight) {
@@ -172,11 +206,6 @@ function checkTextDeviceOverlap(layers) {
172
206
  function checkTextContrast(layers, screen) {
173
207
  const warnings = [];
174
208
  const textLayers = layers.filter((l) => l.type === "text" && l.visible !== false);
175
- // Get background colors to check against
176
- const bgColors = [screen.backgroundColor];
177
- if (screen.backgroundType === "gradient" && screen.gradientColor2) {
178
- bgColors.push(screen.gradientColor2);
179
- }
180
209
  for (const text of textLayers) {
181
210
  // Skip gradient-fill text (contrast depends on the gradient, too complex)
182
211
  if (text.fillType === "gradient")
@@ -185,24 +214,60 @@ function checkTextContrast(layers, screen) {
185
214
  if (!textRgb)
186
215
  continue;
187
216
  const textLum = srgbLuminance(textRgb.r, textRgb.g, textRgb.b);
188
- for (const bgColor of bgColors) {
189
- const bgRgb = hexToRgb(bgColor);
190
- if (!bgRgb)
191
- continue;
192
- const bgLum = srgbLuminance(bgRgb.r, bgRgb.g, bgRgb.b);
193
- const ratio = contrastRatio(textLum, bgLum);
194
- if (ratio < 3) {
195
- const suggestedColor = bgLum > 0.5 ? "#000000" : "#ffffff";
196
- warnings.push({
197
- type: "text-contrast",
198
- severity: "warning",
199
- layerId: text.id,
200
- layerType: "text",
201
- message: `Text "${truncate(text.text)}" has low contrast (${ratio.toFixed(1)}:1) against background ${bgColor}. WCAG recommends at least 3:1 for large text.`,
202
- suggestion: `Change text color to ${suggestedColor} for better readability`,
203
- });
204
- break; // One warning per text layer is enough
217
+ // For gradient backgrounds, interpolate color at the text's position
218
+ let checkColor;
219
+ if (screen.backgroundType === "gradient" && screen.gradientColor2) {
220
+ const bgRgb = hexToRgb(screen.backgroundColor);
221
+ const g2Rgb = hexToRgb(screen.gradientColor2);
222
+ if (bgRgb && g2Rgb) {
223
+ const textCenterX = text.x + text.width / 2;
224
+ const textCenterY = text.y + effectiveHeight(text) / 2;
225
+ let t;
226
+ if ((screen.backgroundGradientType ?? "linear") === "radial") {
227
+ // Radial: center is color1, edge is color2
228
+ const dx = textCenterX / screen.width - 0.5;
229
+ const dy = textCenterY / screen.height - 0.5;
230
+ t = Math.max(0, Math.min(1, Math.sqrt(dx * dx + dy * dy) * 2));
231
+ }
232
+ else {
233
+ // Linear: project text position onto gradient direction vector
234
+ // CSS linear-gradient angle: 0deg=to-top, 90deg=to-right, 180deg=to-bottom
235
+ const dirDeg = screen.gradientDirection ?? 180;
236
+ const rad = (dirDeg * Math.PI) / 180;
237
+ const gx = Math.sin(rad);
238
+ const gy = -Math.cos(rad);
239
+ const nx = textCenterX / screen.width - 0.5;
240
+ const ny = textCenterY / screen.height - 0.5;
241
+ const halfLen = Math.abs(gx) * 0.5 + Math.abs(gy) * 0.5;
242
+ t = Math.max(0, Math.min(1, (nx * gx + ny * gy) / (2 * halfLen) + 0.5));
243
+ }
244
+ const ir = Math.round(bgRgb.r + (g2Rgb.r - bgRgb.r) * t);
245
+ const ig = Math.round(bgRgb.g + (g2Rgb.g - bgRgb.g) * t);
246
+ const ib = Math.round(bgRgb.b + (g2Rgb.b - bgRgb.b) * t);
247
+ checkColor = `#${ir.toString(16).padStart(2, "0")}${ig.toString(16).padStart(2, "0")}${ib.toString(16).padStart(2, "0")}`;
205
248
  }
249
+ else {
250
+ checkColor = screen.backgroundColor;
251
+ }
252
+ }
253
+ else {
254
+ checkColor = screen.backgroundColor;
255
+ }
256
+ const bgRgb = hexToRgb(checkColor);
257
+ if (!bgRgb)
258
+ continue;
259
+ const bgLum = srgbLuminance(bgRgb.r, bgRgb.g, bgRgb.b);
260
+ const ratio = contrastRatio(textLum, bgLum);
261
+ if (ratio < 3) {
262
+ const suggestedColor = bgLum > 0.5 ? "#000000" : "#ffffff";
263
+ warnings.push({
264
+ type: "text-contrast",
265
+ severity: "warning",
266
+ layerId: text.id,
267
+ layerType: "text",
268
+ message: `Text "${truncate(text.text)}" has low contrast (${ratio.toFixed(1)}:1) against background ${checkColor}. WCAG recommends at least 3:1 for large text.`,
269
+ suggestion: `Change text color to ${suggestedColor} for better readability`,
270
+ });
206
271
  }
207
272
  }
208
273
  return warnings;
@@ -225,6 +290,10 @@ function checkSpacing(layers) {
225
290
  const isDecorative = (l) => l.type === "shape" && (l.opacity ?? 1) < 0.5;
226
291
  if (isDecorative(a) || isDecorative(b))
227
292
  continue;
293
+ // Skip badge-on-device overlap when badge renders on top (intentional placement)
294
+ if ((a.type === "badge" && b.type === "device" && (a.zIndex ?? 0) > (b.zIndex ?? 0)) ||
295
+ (a.type === "device" && b.type === "badge" && (b.zIndex ?? 0) > (a.zIndex ?? 0)))
296
+ continue;
228
297
  const overlap = overlapAmount(aBounds, bBounds);
229
298
  warnings.push({
230
299
  type: "poor-spacing",
@@ -237,6 +306,15 @@ function checkSpacing(layers) {
237
306
  else {
238
307
  const gap = boundsGap(aBounds, bBounds);
239
308
  if (gap < MIN_GAP && gap > 0) {
309
+ // Skip proximity warnings for layers whose centers are far apart —
310
+ // small AABB gap is an artifact of rotation expansion, not a real concern
311
+ const aCx = (aBounds.left + aBounds.right) / 2;
312
+ const aCy = (aBounds.top + aBounds.bottom) / 2;
313
+ const bCx = (bBounds.left + bBounds.right) / 2;
314
+ const bCy = (bBounds.top + bBounds.bottom) / 2;
315
+ const centerDist = Math.sqrt((aCx - bCx) ** 2 + (aCy - bCy) ** 2);
316
+ if (centerDist > 750)
317
+ continue;
240
318
  warnings.push({
241
319
  type: "poor-spacing",
242
320
  severity: "info",
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.2.2";
1
+ export declare const VERSION = "0.2.5";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = "0.2.2";
1
+ export const VERSION = "0.2.5";
2
2
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "shipshots-mcp",
3
- "version": "0.2.2",
3
+ "version": "0.2.5",
4
4
  "description": "MCP server for Shipshots — create App Store & Play Store screenshots programmatically via Claude or any MCP client",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -32,6 +32,7 @@
32
32
  "zod": "^4.3.6"
33
33
  },
34
34
  "devDependencies": {
35
+ "@types/node": "^22.0.0",
35
36
  "typescript": "^5.7.0",
36
37
  "vitest": "^3.0.0"
37
38
  },