"use client"; import type { ComponentProps, Ref } from "react"; import { PikselZemin } from "@/components/piksel-zemin"; import { cn } from "@/lib/utils"; /** * CTA bandı — DESIGN.md §10.8 kanonik yüzey: sitenin mavisi (`bg-primary`), * arka planda büyüklü küçüklü, masonry gibi kaymış ve imleç yaklaşınca * turuncuya ısınan piksel dokusu (`PixelMasonry`), beyaz yazı, tek turuncu buton. * * - `buyuk` (varsayılan): sayfa kapanışı / panel — ortalı, iri boşluk. * - `kompakt`: çekmece altı gibi dar yerler — sola yaslı, alçak. * * İçerik (başlık, paragraf, buton) çağıranındır; yalnız kabuk burada durur. * Bilal'in kararı (24 Eyl 2026): koyu slate-950 yüzey yerine bu band. */ export function CtaBandi({ children, className, seed = 8, boyut = "buyuk", etiket = "section", ref, ...props }: Omit, "ref"> & { /** Piksel dokusunun deseni; aynı sayfadaki iki band farklı olsun */ seed?: number; boyut?: "buyuk" | "kompakt"; /** Çekmece altı gibi başlıksız yerlerde `div` */ etiket?: "section" | "div"; ref?: Ref; }) { const buyuk = boyut === "buyuk"; // İki etiket de HTMLElement'tir; JSX tipi için div'e daraltılır. const Etiket = etiket as "div"; return ( } className={cn( "relative isolate overflow-hidden rounded-2xl bg-primary text-white", buyuk ? "px-5 py-8 text-center sm:p-12" : "px-5 py-4 text-left sm:py-5", className, )} {...props} > {children} ); }