diff --git a/components/agents/AgentPsdTemplateEditorDialog.tsx b/components/agents/AgentPsdTemplateEditorDialog.tsx index 7d4c36bfa..9ef419b2a 100644 --- a/components/agents/AgentPsdTemplateEditorDialog.tsx +++ b/components/agents/AgentPsdTemplateEditorDialog.tsx @@ -828,39 +828,68 @@ function renderTextLayerPreviewContent( ) { const resolvedText = getResolvedTextPreview(layer, value); const resolvedLayout = getTextLayerRenderFrame(layer, resolvedText); + const textAnchor = + layer.textAlign === "center" + ? "middle" + : layer.textAlign === "right" + ? "end" + : "start"; + const textX = + layer.textAlign === "center" + ? resolvedLayout.width / 2 + : layer.textAlign === "right" + ? resolvedLayout.width - layer.paddingX + : layer.paddingX; return ( -
- {resolvedLayout.lines.map((line, index) => ( + + {resolvedLayout.lines.map((line, index) => ( + + {line || "\u00a0"} + + ))} + +
- {line || "\u00a0"} +  
- ))} -
+ + ); } diff --git a/lib/agents/psd-template-repair.ts b/lib/agents/psd-template-repair.ts index 0774c9733..943137406 100644 --- a/lib/agents/psd-template-repair.ts +++ b/lib/agents/psd-template-repair.ts @@ -136,6 +136,8 @@ export function repairAgentPsdTemplateFontBindings( ...((layer.detectedFontNames || []).filter(Boolean)), ...(layer.detectedFontName ? [layer.detectedFontName] : []), ]; + const preferredDetectedFontName = + detectedFontNames.find((entry) => String(entry || "").trim()) || ""; const currentFont = layer.fontId ? fontMap.get(layer.fontId) : undefined; const currentFontMatches = currentFont ? doesPsdFontMatchDetectedNames({ @@ -163,6 +165,31 @@ export function repairAgentPsdTemplateFontBindings( }; } + if ( + !matchedFont && + !currentFontMatches && + ( + layer.fontId || + layer.fontFileUrl || + layer.fontContentType || + (preferredDetectedFontName && + ( + layer.fontFamily !== preferredDetectedFontName || + layer.fontLabel !== preferredDetectedFontName + )) + ) + ) { + didChange = true; + return { + ...layer, + fontId: undefined, + fontFamily: preferredDetectedFontName || undefined, + fontLabel: preferredDetectedFontName || undefined, + fontFileUrl: undefined, + fontContentType: undefined, + }; + } + if (currentFont && ( layer.fontFamily !== currentFont.family || layer.fontLabel !== currentFont.name ||