feat(frontend): registre icônes de marque légales avec métadonnées et fallback, monogrammes A-Z et filigrane CLI agrandi — #335 (QA verte)

This commit is contained in:
2026-09-12 12:29:35 +02:00
parent 460fad4e60
commit 4c69914817
8 changed files with 356 additions and 70 deletions

View File

@ -44,7 +44,7 @@ import {
markProjectCliInteractionStopped,
} from "@/features/projects/projectCliInteractionActivity";
import { Button, EntryTimestamp, Spinner, cn, normalizeTimestamp } from "@/shared";
import { onProjectIconChanged, ProjectIcon } from "@/features/projects/projectIcons";
import { onProjectIconChanged, ProjectIcon, resolveProjectIcon } from "@/features/projects/projectIcons";
import type {
ChatAttachmentInput,
ChatDraftScope,
@ -2423,15 +2423,30 @@ export function CustomAgentChatView({
}
}
const projectWatermarkRef = projectIcon && resolveProjectIcon(projectIcon, "watermark")
? projectIcon
: null;
return (
<div
ref={chatRootRef}
data-testid="custom-agent-chat-view"
className="relative z-0 flex h-full min-h-0 flex-col overflow-hidden bg-surface text-content"
>
{projectIcon && (
<div data-testid="project-icon-watermark" aria-hidden className="pointer-events-none absolute inset-0 z-0 flex items-center justify-center overflow-hidden text-content opacity-[0.035]" style={{ pointerEvents: "none" }}>
<ProjectIcon icon={projectIcon} size={260} decorative />
{projectWatermarkRef && (
<div
data-testid="project-icon-watermark"
aria-hidden="true"
className="pointer-events-none absolute inset-0 z-0 flex items-center justify-center overflow-hidden text-content opacity-[0.035]"
style={{ pointerEvents: "none", containerType: "size" }}
>
<ProjectIcon
icon={projectWatermarkRef}
surface="watermark"
size="92%"
decorative
style={{ fontSize: "min(34cqw, 34cqh)", maxWidth: "92cqh", maxHeight: "92cqw" }}
/>
</div>
)}
<div