| 1 | export 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. */ |
| 4 | export 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 | } |