1import{t as e}from"./jsx-runtime-BdxMnOeJ.js";import{Dn as t,Qn as n,xn as r}from"./index-CzjcxeN7.js";import{r as i,t as a}from"./registry-BL_f9ZSN.js";var o=e();function s({slugs:e,serviceSlug:s,eyebrow:c=`Free tools`,heading:l=`Try the free tool first.`,intro:u=`Pressure-test the work yourself before you scope an engagement. No signup, results are yours to keep.`,variant:d=`surface`,max:f=4}){let p=(e?a(e):i(s)).slice(0,f);return p.length===0?null:(0,o.jsx)(`section`,{className:d===`surface`?`border-t border-border bg-surface py-16 lg:py-20`:`py-16 lg:py-20`,"aria-labelledby":`relevant-tools-heading`,children:(0,o.jsxs)(`div`,{className:`container-x`,children:[(0,o.jsxs)(`div`,{className:`flex flex-wrap items-end justify-between gap-4`,children:[(0,o.jsxs)(`div`,{className:`max-w-2xl`,children:[(0,o.jsxs)(`span`,{className:`eyebrow inline-flex items-center gap-2`,children:[(0,o.jsx)(r,{className:`h-3.5 w-3.5`,"aria-hidden":!0}),` `,c]}),(0,o.jsx)(`h2`,{id:`relevant-tools-heading`,className:`mt-3 font-display text-2xl font-bold sm:text-3xl`,children:l}),u&&(0,o.jsx)(`p`,{className:`mt-3 text-foreground/70`,children:u})]}),(0,o.jsxs)(t,{to:`/tools`,className:`inline-flex items-center gap-1.5 text-sm font-medium text-primary hover:underline`,children:[`All free tools `,(0,o.jsx)(n,{className:`h-4 w-4`,"aria-hidden":!0})]})]}),(0,o.jsx)(`div`,{className:`mt-8 grid gap-4 sm:grid-cols-2 lg:grid-cols-4`,children:p.map(e=>{let r=e.icon;return(0,o.jsxs)(t,{to:e.to,className:`card-hover group flex h-full flex-col rounded-2xl border border-border bg-background p-5`,children:[(0,o.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,o.jsx)(`span`,{className:`inline-flex h-10 w-10 items-center justify-center rounded-xl border border-border/60 bg-card/60 text-primary`,children:(0,o.jsx)(r,{className:`h-5 w-5`,"aria-hidden":!0})}),(0,o.jsx)(`span`,{className:`text-[11px] uppercase tracking-wider text-foreground/50`,children:e.time})]}),(0,o.jsx)(`h3`,{className:`mt-4 font-display text-base font-semibold leading-snug`,children:e.title}),(0,o.jsx)(`p`,{className:`mt-1.5 text-sm text-foreground/70`,children:e.short}),(0,o.jsxs)(`span`,{className:`mt-4 inline-flex items-center gap-1 text-sm font-medium text-primary`,children:[`Open tool`,` `,(0,o.jsx)(n,{className:`h-4 w-4 transition group-hover:translate-x-1`,"aria-hidden":!0})]})]},e.slug)})})]})})}export{s as t};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.