PageSourceSearch

https://boombam.app/assets/technical-seo-audit-DDTA8a1p.js

js boombam.app collected 2026-10-04 13:34:11 UTC 20,633 bytes, 1 lines download raw bytes

1import{N as Ne,a5 as be,r as h,a as fe,a6 as b,j as e,aE as G,X,c_ as j,F as E,Z as _,C as c,b as m,d as u,bt as Se,o as f,e as d,ab as p,aF as Ce,$ as Te,a0 as Ae,a1 as Pe,a2 as Ie,a3 as S,bd as F,B as C,a4 as ee,v as De,q as Ee,s as i,be as H,bM as O,bN as k,bO as y,bP as r,bQ as B,bR as l,D as se,E as Fe,au as He,c2 as o,a7 as T}from"./index-CuSEeJFb.js";import{T as Oe,a as ke,b as v,c as w}from"./tabs-CcPOXtvT.js";import{P as L}from"./progress-B2eMqtVV.js";import{H as $}from"./history-CN2Tjn9d.js";function ze(){const{activeCompanyId:g}=Ne(),A=be(),[R,z]=h.useState(!1),[ae,P]=h.useState("audit"),[a,q]=h.useState(null),[I,te]=h.useState(""),[M,ie]=h.useState(100),[Q,re]=h.useState(!1),[W,le]=h.useState(!0),[V,ne]=h.useState(!1),{data:D,isLoading:ce}=fe({queryKey:["/api/seo-history/technical-seo-audit",{companyId:g}],enabled:!!g}),Z=(D==null?void 0:D.data)||[],de=b({mutationFn:async s=>(await T("/api/seo-history/technical-seo-audit",{method:"POST",body:JSON.stringify(s)})).json(),onSuccess:()=>{A.invalidateQueries({queryKey:["/api/seo-history/technical-seo-audit"]}),o({title:"Audit Saved",description:"Your technical SEO audit has been saved to history."})},onError:s=>{o({title:"Save Failed",description:s.message||"Failed to save audit to history",variant:"destructive"})}}),K=b({mutationFn:async({id:s,isStarred:n})=>(await T(`/api/seo-history/technical-seo-audit/${s}`,{method:"PATCH",body:JSON.stringify({isStarred:n})})).json(),onSuccess:()=>{A.invalidateQueries({queryKey:["/api/seo-history/technical-seo-audit"]}),o({title:"Updated",description:"Audit has been updated."})},onError:s=>{o({title:"Update Failed",description:s.message||"Failed to update audit",variant:"destructive"})}}),U=b({mutationFn:async s=>(await T(`/api/seo-history/technical-seo-audit/${s}`,{method:"DELETE"})).json(),onSuccess:()=>{A.invalidateQueries({queryKey:["/api/seo-history/technical-seo-audit"]}),o({title:"Deleted",description:"Audit has been deleted from history."})},onError:s=>{o({title:"Delete Failed",description:s.message||"Failed to delete audit",variant:"destructive"})}}),oe=b({mutationFn:async s=>(await T("/api/technical-seo/audit",{method:"POST",body:JSON.stringify({...s,companyId:g})})).json(),onSuccess:(s,n)=>{var x,N,Y;const t=s.data;if(q(t),P("overview"),o({title:"Technical SEO Audit Complete",description:`Found ${t.totalIssues} issues across ${t.crawledPages} pages.`}),g){const we=`SEO Audit - ${n.domain}`;de.mutate({companyId:g,title:we,domain:n.domain,maxPages:n.crawlDepth,totalPages:t.crawledPages,totalIssues:t.totalIssues,errorsCount:((x=t.issuesByType)==null?void 0:x.errors)||0,warningsCount:((N=t.issuesByType)==null?void 0:N.warnings)||0,crawlHealth:((Y=t.overview)==null?void 0:Y.crawlHealth)||0,results:t})}},onError:s=>{o({title:"Audit Failed",description:s.message||"Failed to perform technical SEO audit",variant:"destructive"})},onSettled:()=>{z(!1)}}),xe=async s=>{if(s.preventDefault(),!g){o({title:"Company Required",description:"Please select a company before performing a technical SEO audit",variant:"destructive"});return}if(!I.trim()){o({title:"Domain Required",description:"Please enter a domain to audit",variant:"destructive"});return}const n=/^[a-zA-Z0-9][a-zA-Z0-9-]{1,61}[a-zA-Z0-9]\.[a-zA-Z]{2,}$/,t=I.replace(/^https?:\/\//,"").replace(/^www\./,"").split("/")[0];if(!n.test(t)){o({title:"Invalid Domain",description:"Please enter a valid domain (e.g., example.com)",variant:"destructive"});return}z(!0),oe.mutate({domain:t,crawlDepth:M,includeResources:Q,includePageSpeed:W,includeAccessibility:V})},he=s=>{var n,t;if(s.results){const x=s.results,N={domain:s.domain,crawledPages:s.totalPages||0,totalIssues:s.totalIssues||0,issuesByType:x.issuesByType||{errors:0,warnings:0,notices:0},issuesByCategory:x.issuesByCategory||{technical:0,content:0,meta:0,performance:0,accessibility:0},pages:x.pages||[],issues:x.issues||[],overview:x.overview||{averageLoadTime:0,averageContentSize:0,pagesWithIssues:0,crawlHealth:s.crawlHealth||0},auditedAt:((n=s.auditedAt)==null?void 0:n.toString())||((t=s.createdAt)==null?void 0:t.toString())||new Date().toISOString()};q(N),P("overview"),o({title:"Loaded from History",description:`Vie
1wing results for "${s.title}"`})}},me=s=>{K.mutate({id:s.id,isStarred:!s.isStarred})},ue=s=>{U.mutate(s)},je=s=>s?new Date(s).toLocaleDateString("en-US",{month:"short",day:"numeric",year:"numeric",hour:"2-digit",minute:"2-digit"}):"N/A",ge=s=>{switch(s){case"error":return e.jsx(j,{className:"w-4 h-4 text-red-600"});case"warning":return e.jsx(j,{className:"w-4 h-4 text-yellow-600"});case"notice":return e.jsx(H,{className:"w-4 h-4 text-blue-600"});default:return e.jsx(H,{className:"w-4 h-4 text-gray-600"})}},pe=s=>{switch(s){case"error":return"bg-red-100 text-red-800";case"warning":return"bg-yellow-100 text-yellow-800";case"notice":return"bg-blue-100 text-blue-800";default:return"bg-gray-100 text-gray-800"}},ye=s=>{switch(s){case"high":return"bg-red-100 text-red-800";case"medium":return"bg-yellow-100 text-yellow-800";case"low":return"bg-green-100 text-green-800";default:return"bg-gray-100 text-gray-800"}},J=s=>s>=80?{color:"text-green-600",label:"Good"}:s>=60?{color:"text-yellow-600",label:"Fair"}:{color:"text-red-600",label:"Poor"},ve=s=>s?s>=80?"text-green-600":s>=60?"text-yellow-600":"text-red-600":"text-gray-600";return e.jsx("div",{className:"min-h-screen bg-gray-50 dark:bg-gray-900",children:e.jsxs("div",{className:"container mx-auto px-4 py-8",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("h1",{className:"text-3xl font-bold text-gray-900 dark:text-white mb-2",children:"⚡ Technical SEO Audit"}),e.jsx("p",{className:"text-gray-600 dark:text-gray-300",children:"Comprehensive website analysis using live DataForSEO OnPage API"})]}),e.jsxs(Oe,{value:ae,onValueChange:P,className:"space-y-6",children:[e.jsxs(ke,{className:"grid w-full grid-cols-6",children:[e.jsxs(v,{value:"audit","data-testid":"tab-audit",children:[e.jsx(G,{className:"w-4 h-4 mr-2"}),"Audit"]}),e.jsxs(v,{value:"overview","data-testid":"tab-overview",children:[e.jsx(X,{className:"w-4 h-4 mr-2"}),"Overview"]}),e.jsxs(v,{value:"issues","data-testid":"tab-issues",children:[e.jsx(j,{className:"w-4 h-4 mr-2"}),"Issues"]}),e.jsxs(v,{value:"pages","data-testid":"tab-pages",children:[e.jsx(E,{className:"w-4 h-4 mr-2"}),"Pages"]}),e.jsxs(v,{value:"performance","data-testid":"tab-performance",children:[e.jsx(_,{className:"w-4 h-4 mr-2"}),"Performance"]}),e.jsxs(v,{value:"history","data-testid":"tab-history",children:[e.jsx($,{className:"w-4 h-4 mr-2"}),"History"]})]}),e.jsx(w,{value:"audit",className:"space-y-6",children:e.jsxs(c,{children:[e.jsxs(m,{children:[e.jsxs(u,{className:"flex items-center gap-2",children:[e.jsx(Se,{className:"w-5 h-5 text-orange-600"}),"Technical SEO Audit Setup"]}),e.jsx(f,{children:"Comprehensive website crawl and analysis using live DataForSEO OnPage API"})]}),e.jsx(d,{children:e.jsxs("form",{onSubmit:xe,className:"space-y-6",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(p,{htmlFor:"domain",children:"Website Domain"}),e.jsx(Ce,{id:"domain",placeholder:"example.com",value:I,onChange:s=>te(s.target.value),"data-testid":"input-domain"}),e.jsx("p",{className:"text-sm text-gray-500 mt-1",children:"Enter the domain you want to audit"})]}),e.jsxs("div",{children:[e.jsx(p,{htmlFor:"crawlDepth",children:"Crawl Depth"}),e.jsxs(Te,{value:M.toString(),onValueChange:s=>ie(parseInt(s)),children:[e.jsx(Ae,{"data-testid":"select-crawl-depth",children:e.jsx(Pe,{})}),e.jsxs(Ie,{children:[e.jsx(S,{value:"50",children:"Light (50 pages)"}),e.jsx(S,{value:"100",children:"Standard (100 pages)"}),e.jsx(S,{value:"250",children:"Deep (250 pages)"}),e.jsx(S,{value:"500",children:"Complete (500 pages)"})]})]})]})]}),e.jsx("div",{className:"space-y-4",children:e.jsxs("div",{children:[e.jsx(p,{children:"Analysis Options"}),e.jsxs("div",{className:"space-y-3 mt-2",children:[e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(F,{id:"pageSpeed",checked:W,onCheckedChange:le,"data-testid":"checkbox-page-speed"}),e.jsx(p,{htmlFor:"pageSpeed",children:"Include Page Speed Analysis"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(F,{id:"resources",checked:Q,onCheckedChange:re,"data-testid":"checkbox-resources"}),e.jsx(p,{htmlFor:"resources",children:"Include Resource Analysis"})]}),e.jsxs("div",{className:"flex items-center space-x-2",children:[e.jsx(F,{id:"accessibility",checked:V,onCheckedChange:ne,"data-testid":"checkbox-accessibility"}),e.jsx(p,{htmlFor:"accessibility",children:"Include Accessibility Checks"})]})]})]})})]}),e.jsx(C,{type:"submit",disabled:R,className:"w-full bg-orange-600 hover:bg-orange-700","data-testid":"button-audit",children:R?e.jsxs(e.Fragment,{children:[e.jsx(ee,{className:"w-4 h-4 mr-2 animate-spin"}),"Auditing Website..."]}):e.jsxs(e.Fragment,{children:[e.jsx(G,{className:"w-4 h-4 mr-2"}),"Start Technical SEO Audit"]})})]})})]})}),e.jsx(w,{value:"overview",className:"space-y-6",children:a?e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-4 gap-4",children:[e.jsx(c,{children:e.jsx(d,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(E,{className:"w-5 h-5 text-blue-600"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-gray-600",children:"Pages Crawled"}),e.jsx("p",{className:"text-2xl font-bold",children:a.crawledPages})]})]})})}),e.jsx(c,{children:e.jsx(d,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j,{className:"w-5 h-5 text-red-600"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-gray-600",children:"Total Issues"}),e.jsx("p",{className:"text-2xl font-bold text-red-600",children:a.totalIssues})]})]})})}),e.jsx(c,{children:e.jsx(d,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(De,{className:"w-5 h-5 text-yellow-600"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-gray-600",children:"Avg Load Time"}),e.jsxs("p",{className:"text-2xl font-bold text-yellow-600",children:[(a.overview.averageLoadTime/1e3).toFixed(2),"s"]})]})]})})}),e.jsx(c,{children:e.jsx(d,{className:"p-4",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ee,{className:"w-5 h-5 text-green-600"}),e.jsxs("div",{children:[e.jsx("p",{className:"text-sm text-gray-600",children:"Health Score"}),e.jsxs("p",{className:`text-2xl font-bold ${J(a.overview.crawlHealth).c
1olor}`,children:[a.overview.crawlHealth,"/100"]})]})]})})})]}),e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs(c,{children:[e.jsx(m,{children:e.jsx(u,{children:"Issues by Type"})}),e.jsx(d,{children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j,{className:"w-4 h-4 text-red-600"}),e.jsx("span",{children:"Errors"})]}),e.jsx(i,{className:"bg-red-100 text-red-800",children:a.issuesByType.errors})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(j,{className:"w-4 h-4 text-yellow-600"}),e.jsx("span",{children:"Warnings"})]}),e.jsx(i,{className:"bg-yellow-100 text-yellow-800",children:a.issuesByType.warnings})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(H,{className:"w-4 h-4 text-blue-600"}),e.jsx("span",{children:"Notices"})]}),e.jsx(i,{className:"bg-blue-100 text-blue-800",children:a.issuesByType.notices})]})]})})]}),e.jsxs(c,{children:[e.jsx(m,{children:e.jsx(u,{children:"Issues by Category"})}),e.jsx(d,{children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{children:"Technical"}),e.jsx(i,{variant:"outline",children:a.issuesByCategory.technical})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{children:"Meta Tags"}),e.jsx(i,{variant:"outline",children:a.issuesByCategory.meta})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{children:"Content"}),e.jsx(i,{variant:"outline",children:a.issuesByCategory.content})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{children:"Performance"}),e.jsx(i,{variant:"outline",children:a.issuesByCategory.performance})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("span",{children:"Accessibility"}),e.jsx(i,{variant:"outline",children:a.issuesByCategory.accessibility})]})]})})]})]})]}):e.jsx(c,{children:e.jsxs(d,{className:"p-8 text-center",children:[e.jsx(X,{className:"w-12 h-12 text-gray-400 mx-auto mb-4"}),e.jsx("h3",{className:"text-lg font-semibold text-gray-600 mb-2",children:"No Audit Data"}),e.jsx("p",{className:"text-gray-500",children:"Start a technical SEO audit to see comprehensive results here."})]})})}),e.jsx(w,{value:"issues",className:"space-y-6",children:a!=null&&a.issues?e.jsxs(c,{children:[e.jsxs(m,{children:[e.jsx(u,{children:"SEO Issues Found"}),e.jsx(f,{children:"All issues discovered during the technical audit"})]}),e.jsx(d,{children:e.jsxs(O,{children:[e.jsx(k,{children:e.jsxs(y,{children:[e.jsx(r,{children:"Type"}),e.jsx(r,{children:"Issue"}),e.jsx(r,{children:"Page"}),e.jsx(r,{children:"Priority"}),e.jsx(r,{children:"Recommendation"})]})}),e.jsx(B,{children:a.issues.map((s,n)=>e.jsxs(y,{children:[e.jsx(l,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[ge(s.type),e.jsx(i,{className:pe(s.type),children:s.type})]})}),e.jsx(l,{className:"font-medium",children:s.issue}),e.jsx(l,{className:"max-w-xs truncate",children:s.page}),e.jsx(l,{children:e.jsx(i,{className:ye(s.priority),children:s.priority})}),e.jsx(l,{className:"max-w-md",children:s.recommendation})]},n))})]})})]}):e.jsx(c,{children:e.jsxs(d,{className:"p-8 text-center",children:[e.jsx(j,{className:"w-12 h-12 text-gray-400 mx-auto mb-4"}),e.jsx("h3",{className:"text-lg font-semibold text-gray-600 mb-2",children:"No Issues Data"}),e.jsx("p",{className:"text-gray-500",children:"Run a technical SEO audit to identify and fix website issues."})]})})}),e.jsx(w,{value:"pages",className:"space-y-6",children:a!=null&&a.pages?e.jsxs(c,{children:[e.jsxs(m,{children:[e.jsx(u,{children:"Page Analysis"}),e.jsx(f,{children:"Detailed analysis of individual pages"})]}),e.jsx(d,{children:e.jsxs(O,{children:[e.jsx(k,{children:e.jsxs(y,{children:[e.jsx(r,{children:"URL"}),e.jsx(r,{children:"Status"}),e.jsx(r,{children:"Title"}),e.jsx(r,{children:"Load Time"}),e.jsx(r,{children:"Word Count"}),e.jsx(r,{children:"Issues"})]})}),e.jsx(B,{children:a.pages.map((s,n)=>{var t;return e.jsxs(y,{children:[e.jsx(l,{className:"max-w-xs truncate font-medium",children:s.url}),e.jsx(l,{children:e.jsx(i,{variant:s.statusCode===200?"default":"destructive",children:s.statusCode})}),e.jsx(l,{className:"max-w-xs truncate",children:s.title||"No title"}),e.jsx(l,{children:s.loadTime?`${(s.loadTime/1e3).toFixed(2)}s`:"N/A"}),e.jsx(l,{children:s.wordCount||0}),e.jsx(l,{children:e.jsxs(i,{variant:"outline",children:[((t=s.issues)==null?void 0:t.length)||0," issues"]})})]},n)})})]})})]}):e.jsx(c,{children:e.jsxs(d,{className:"p-8 text-center",children:[e.jsx(E,{className:"w-12 h-12 text-gray-400 mx-auto mb-4"}),e.jsx("h3",{className:"text-lg font-semibold text-gray-600 mb-2",children:"No Page Data"}),e.jsx("p",{className:"text-gray-500",children:"Run a technical SEO audit to analyze individual pages."})]})})}),e.jsx(w,{value:"performance",className:"space-y-6",children:a?e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-6",children:[e.jsxs(c,{children:[e.jsx(m,{children:e.jsx(u,{children:"Performance Metrics"})}),e.jsx(d,{children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between mb-2",children:[e.jsx("span",{children:"Health Score"}
1),e.jsxs("span",{className:J(a.overview.crawlHealth).color,children:[a.overview.crawlHealth,"/100"]})]}),e.jsx(L,{value:a.overview.crawlHealth,className:"h-2"})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between mb-2",children:[e.jsx("span",{children:"Average Load Time"}),e.jsxs("span",{children:[(a.overview.averageLoadTime/1e3).toFixed(2),"s"]})]}),e.jsx(L,{value:Math.min(3e3/a.overview.averageLoadTime*100,100),className:"h-2"})]}),e.jsxs("div",{children:[e.jsxs("div",{className:"flex justify-between mb-2",children:[e.jsx("span",{children:"Pages with Issues"}),e.jsx("span",{children:a.overview.pagesWithIssues})]}),e.jsx(L,{value:a.crawledPages>0?a.overview.pagesWithIssues/a.crawledPages*100:0,className:"h-2"})]})]})})]}),e.jsxs(c,{children:[e.jsx(m,{children:e.jsx(u,{children:"Quick Stats"})}),e.jsx(d,{children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{children:"Domain Audited"}),e.jsx(i,{variant:"outline",children:a.domain})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{children:"Pages Crawled"}),e.jsx(i,{variant:"outline",children:a.crawledPages})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{children:"Average Content Size"}),e.jsxs(i,{variant:"outline",children:[(a.overview.averageContentSize/1024).toFixed(1),"KB"]})]}),e.jsxs("div",{className:"flex justify-between",children:[e.jsx("span",{children:"Audit Date"}),e.jsx(i,{variant:"outline",children:new Date(a.auditedAt).toLocaleDateString()})]})]})})]})]}):e.jsx(c,{children:e.jsxs(d,{className:"p-8 text-center",children:[e.jsx(_,{className:"w-12 h-12 text-gray-400 mx-auto mb-4"}),e.jsx("h3",{className:"text-lg font-semibold text-gray-600 mb-2",children:"No Performance Data"}),e.jsx("p",{className:"text-gray-500",children:"Run a technical SEO audit to see performance metrics."})]})})}),e.jsx(w,{value:"history",className:"space-y-6",children:e.jsxs(c,{children:[e.jsxs(m,{children:[e.jsxs(u,{className:"flex items-center gap-2",children:[e.jsx($,{className:"w-5 h-5 text-orange-600"}),"Audit History"]}),e.jsx(f,{children:"View and manage your past technical SEO audit sessions"})]}),e.jsx(d,{children:ce?e.jsx("div",{className:"flex items-center justify-center py-8",children:e.jsx(ee,{className:"w-8 h-8 animate-spin text-orange-600"})}):Z.length===0?e.jsxs("div",{className:"text-center py-8",children:[e.jsx($,{className:"w-12 h-12 text-gray-400 mx-auto mb-4"}),e.jsx("h3",{className:"text-lg font-semibold text-gray-600 mb-2",children:"No History Yet"}),e.jsx("p",{className:"text-gray-500",children:"Complete a technical SEO audit to see it here."})]}):e.jsxs(O,{children:[e.jsx(k,{children:e.jsxs(y,{children:[e.jsx(r,{children:"Title"}),e.jsx(r,{children:"Domain"}),e.jsx(r,{children:"Pages"}),e.jsx(r,{children:"Issues"}),e.jsx(r,{children:"Health Score"}),e.jsx(r,{children:"Date"}),e.jsx(r,{children:"Actions"})]})}),e.jsx(B,{children:Z.map(s=>e.jsxs(y,{"data-testid":`history-row-${s.id}`,children:[e.jsx(l,{className:"font-medium",children:e.jsxs("div",{className:"flex items-center gap-2",children:[s.isStarred&&e.jsx(se,{className:"w-4 h-4 text-yellow-500 fill-yellow-500"}),s.title]})}),e.jsx(l,{children:e.jsx(i,{variant:"secondary",className:"text-xs",children:s.domain})}),e.jsx(l,{children:s.totalPages||0}),e.jsx(l,{children:e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(i,{className:"bg-red-100 text-red-800 text-xs",children:s.errorsCount||0}),e.jsx(i,{className:"bg-yellow-100 text-yellow-800 text-xs",children:s.warningsCount||0})]})}),e.jsx(l,{children:e.jsxs("span",{className:`font-semibold ${ve(s.crawlHealth)}`,children:[s.crawlHealth||0,"/100"]})}),e.jsx(l,{children:je(s.createdAt)}),e.jsx(l,{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(C,{variant:"outline",size:"sm",onClick:()=>he(s),"data-testid":`button-view-${s.id}`,children:e.jsx(Fe,{className:"w-4 h-4"})}),e.jsx(C,{variant:"outline",size:"sm",onClick:()=>me(s),disabled:K.isPending,"data-testid":`button-star-${s.id}`,children:e.jsx(se,{className:`w-4 h-4 ${s.isStarred?"text-yellow-500 fill-yellow-500":""}`})}),e.jsx(C,{variant:"outline",size:"sm",onClick:()=>ue(s.id),disabled:U.isPending,className:"text-red-600 hover:text-red-700 hover:bg-red-50","data-testid":`button-delete-${s.id}`,children:e.jsx(He,{className:"w-4 h-4"})})]})})]},s.id))})]})})]})})]})]})})}export{ze as default};

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.