1export const SKILL_CHIP_ICON_SVG = `<svg width="100%" height="100%" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="round" stroke-linejoin="round"><path d="M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z"/><path d="m3.3 7 8.7 5 8.7-5"/><path d="M12 22V12"/></svg>`;
2
3/** Keeps both the recognizable beginning and the extension/end of a long attachment name. */
4export function middleTruncateAttachmentName(name: string, maxCharacters = 36): string {
5 const characters = Array.from(name);
6 if (characters.length <= maxCharacters) return name;
7 if (maxCharacters <= 0) return "";
8 if (maxCharacters === 1) return "…";
9 const available = maxCharacters - 1;
10 const suffixLength = Math.min(available - 1, available >= 18 ? 14 : Math.ceil(available / 2));
11 const prefixLength = available - suffixLength;
12 const suffix = suffixLength === 0 ? "" : characters.slice(-suffixLength).join("");
13 return `${characters.slice(0, prefixLength).join("")}…${suffix}`;
14}