type RehberKapakProps = { baslik: string; className?: string; compact?: boolean; }; const VURGU_DESENLERI = [ /^YKS Tercih Listesi/i, /^Ölü Tercih/i, /^Kaç Sıralama/i, /^Ek Yerleştirme/i, /^Taban Puan/i, /^YKS 2026 Tercih Takvimi/i, /^Devlet mi Vakıf mı\?/i, /^Baraj ve Başarı Sıralaması Şartları/i, /^TYT ile Önlisans Tercihi/i, /^Taban Sıralamalar/i, ]; export function rehberBasliginiBol(baslik: string) { const eslesme = VURGU_DESENLERI.map((desen) => baslik.match(desen)).find( Boolean, ); const vurgu = eslesme?.[0] ?? baslik.split(/\s+/).slice(0, 3).join(" "); return { vurgu, kalan: baslik.slice(vurgu.length) }; } export function rehberMetniniParcala(metin: string) { return metin.split(/(\d+(?:[.,]\d+)*)/g).filter(Boolean); } function KapakMetni({ metin }: { metin: string }) { return rehberMetniniParcala(metin).map((parca, i) => /^\d/.test(parca) ? ( {parca} ) : ( parca ), ); } const KAPAK_PIKSELLERI = [ [960, 50, 0.16], [980, 50, 0.28], [1020, 50, 0.12], [940, 70, 0.24], [980, 70, 0.12], [1000, 70, 0.3], [1060, 70, 0.18], [960, 90, 0.12], [1000, 90, 0.2], [1040, 90, 0.1], [1080, 90, 0.26], [1080, 110, 0.14], [1120, 110, 0.22], [1140, 110, 0.12], [60, 490, 0.12], [100, 490, 0.25], [120, 490, 0.14], [40, 510, 0.24], [80, 510, 0.12], [120, 510, 0.3], [160, 510, 0.16], [60, 530, 0.14], [100, 530, 0.22], [140, 530, 0.1], [180, 530, 0.27], ] as const; export function RehberKapak({ baslik, className = "", compact = false, }: RehberKapakProps) { const { vurgu, kalan } = rehberBasliginiBol(baslik); const baslikBoyutu = compact ? baslik.length > 70 ? "text-[clamp(15px,1.8vw,20px)]" : baslik.length > 52 ? "text-[clamp(17px,2.1vw,23px)]" : "text-[clamp(19px,2.4vw,27px)]" : baslik.length > 70 ? "text-[clamp(28px,4vw,48px)]" : baslik.length > 52 ? "text-[clamp(32px,4.5vw,54px)]" : "text-[clamp(36px,5vw,62px)]"; return (