PageSourceSearch

https://websiteranking.ai/assets/index-CEVe2VQL.js

js websiteranking.ai collected 2026-10-05 13:18:13 UTC 48,080 bytes, 4 lines download raw bytes

1import{j as e,bI as K,aX as S,b7 as _,dI as Ve,be as we,bz as ne,bA as J,bB as re,bC as le,bD as oe,ba as ce,bE as Ne,bv as Ce,b9 as Ae,dx as Re,aV as qe,aT as $e,r as p,cS as se,cQ as Ke,cm as Pe,aP as _e,cs as Je,ck as v,dJ as Qe,cH as Xe,cl as Ye,dK as Ze}from"./vendor-BDpFpqK8.js";import{P as es,C as f,c as k,d as Se,R as H,e as b,B as D,a as A,b as R,M as ss,b5 as as,j as I,I as $,T as ae,q as te,r as W,s as w,t as ie,v as N,a5 as Le,a9 as ts,Y as is}from"./index-D7n-r-PT.js";import{T as Oe,a as De,b as V,c as q}from"./tabs-D2T-HF4G.js";import{m as Q}from"./motion-BUa3SK4s.js";import{S as pe,a as he,b as ge,c as xe,d as be}from"./select-D4te_3w2.js";import{T as ee}from"./textarea-Bt-Einof.js";import"./charts-BEG-QLrM.js";const t={overview:"/off-page",websites:"/off-page/websites",backlinks:"/off-page/backlinks",opportunities:"/off-page/opportunities",outreach:"/off-page/outreach",local:"/off-page/local",mentions:"/off-page/mentions",competitors:"/off-page/competitors",agents:"/off-page/agents",reports:"/off-page/reports"},ns={1:"Foundation",2:"Discovery",3:"Outreach",4:"Local",5:"Reputation",6:"Automation"},Ie=[{id:"website-profile",number:1,title:"Website Profile",purpose:"Store complete website information required for Off-Page SEO.",features:["Add Website","Verify Domain","Multiple Websites","Website Categories","Country Targeting","Language","Business Type","Industry","Competitors","Keywords","Brand Information","Contact Information","Social Profiles","Google Business Profile","Search Console Integration","Analytics Integration"],tasks:["CRUD Website","Domain Verification","Website Health Check","Industry Detection","AI Business Summary","Competitor Discovery"],phase:1,path:t.websites},{id:"backlink-management",number:2,title:"Backlink Management",purpose:"Central hub for backlink monitoring and analysis.",features:["Total Backlinks","Referring Domains","New Backlinks","Lost Backlinks","Toxic Links","Dofollow/Nofollow","Anchor Text Analysis","Link Velocity","Authority Distribution","Spam Score","Historical Tracking"],tasks:["Import Backlinks","Monitor Daily","Detect Lost Links","Toxic Link Detection","Link Classification","Anchor Analysis","Generate Reports"],phase:1,path:t.backlinks},{id:"opportunity-finder",number:3,title:"Backlink Opportunity Finder",purpose:"Find websites likely to link to the user's site.",features:["AI Opportunity Discovery","Competitor Backlink Mining","Resource Pages","Broken Links","Roundup Posts","Link Intersect","Niche Blogs","Business Directories","Local Websites","Podcasts","News Sites"],tasks:["Crawl Competitors","Extract Backlinks","Score Opportunities","Filter by Authority","Prioritize Opportunities","Export Opportunities"],phase:2,path:t.opportunities},{id:"outreach-crm",number:4,title:"Outreach CRM",purpose:"Manage backlink outreach campaigns.",features:["Prospect Database","Contact Finder","Email Finder","Campaigns","Follow-ups","Email Templates","AI Personalization","Response Tracking","Outreach Status","Notes","Team Assignment"],tasks:["Prospect Management","Email Verification","AI Email Writing","Schedule Emails","Track Opens","Track Replies","Campaign Analytics"],phase:3,path:t.outreach},{id:"guest-posting",number:5,title:"AI Guest Posting",purpose:"Automate guest posting workflow.",features:["Guest Post Finder","AI Topic Suggestions","AI Article Generation","Content Optimization","Pitch Email","Guest Post Tracker","Publication Tracker"],tasks:["Find Guest Blogs","Generate Topics","Generate Articles","Submit Outreach","Track Acceptance","Track Publication"],phase:3,path:t.outreach},{id:"digital-pr",number:6,title:"Digital PR",purpose:"Earn authority through media coverage.",features:["Press Release Generator","Journalist Finder","HARO-style Opportunities","Media Database","PR Campaigns","Brand Story Generator","AI Pitch Generator"],tasks:["Create Press Release","Find Journalists","Send Pitches","Monitor Mentions","Campaign Reports"],phase:5,path:t.mentions},{id:"brand-mentions",number:7,title:"Brand Mention Monitoring",purpose:"Track online brand mentions.",features:["Mention Detection","Unlinked Mentions","Brand Sentiment","Competitor Mentions","Influencer Mentions","Alerts"],tasks:["Crawl Web","Detect Mentions","Find Unlinked Mentions","AI Sentiment Analysis","Notification 
1Engine"],phase:5,path:t.mentions},{id:"local-citations",number:8,title:"Local SEO & Citations",purpose:"Manage business listings across the web.",features:["Citation Finder","Citation Builder","Citation Monitoring","NAP Consistency","Duplicate Listings","Google Business Profile","Bing Places","Apple Maps","Yelp","Industry Directories"],tasks:["Submit Listings","Verify Listings","Update NAP","Detect Errors","Local Citation Reports"],phase:4,path:t.local},{id:"directories",number:9,title:"Directory Submissions",purpose:"Discover and submit to relevant web directories.",features:["Directory Discovery","AI Category Mapping","Auto Form Fill","Submission Tracker","Approval Tracker"],tasks:["Find Directories","Submit Website","Track Approval","Manage Credentials"],phase:4,path:t.local},{id:"social-signals",number:10,title:"Social Signals",purpose:"Increase content visibility through social.",features:["Share Content","Schedule Posts","Social Calendar","Campaign Tracking","Engagement Analytics"],tasks:["Auto Share","Schedule Posts","Track Engagement","Generate Reports"],phase:5,path:t.mentions},{id:"influencer",number:11,title:"Influencer Outreach",purpose:"Find and collaborate with niche influencers.",features:["Influencer Finder","Authority Score","Contact Management","Campaign Tracking","Collaboration Tracking"],tasks:["Discover Influencers","AI Outreach","Track Responses","ROI Reports"],phase:3,path:t.outreach},{id:"competitor-analysis",number:12,title:"Competitor Off-Page Analysis",purpose:"Compare competitor link profiles and find gaps.",features:["Competitor Backlinks","Referring Domains","Anchor Text","New Links","Lost Links","Top Pages","Domain Authority","Link Gap"],tasks:["Crawl Competitors","Compare Backlinks","Gap Analysis","Opportunity Suggestions"],phase:2,path:t.competitors},{id:"broken-links",number:13,title:"Broken Link Building",purpose:"Find broken links and pitch replacements.",features:["Broken Link Finder","Replacement Suggestions","AI Outreach","Campaign Tracker"],tasks:["Crawl Websites","Detect Broken Links","Suggest Content","Contact Website Owners"],phase:2,path:t.opportunities},{id:"resource-pages",number:14,title:"Resource Page Link Building",purpose:"Discover resource pages that match your content.",features:["Resource Page Discovery","AI Relevance Score","Outreach Campaign"],tasks:["Find Resource Pages","AI Match","Outreach","Reporting"],phase:2,path:t.opportunities},{id:"link-exchange",number:15,title:"Link Exchange Management",purpose:"Track partner link agreements and verification.",features:["Partner Database","Exchange Requests","Agreement Tracking","Link Verification"],tasks:["Manage Partners","Verify Links","Status Tracking"],phase:2,path:t.opportunities},{id:"forums",number:16,title:"Forum & Community Discovery",purpose:"Find relevant communities for brand presence.",features:["Reddit Discovery","Quora Discovery","Niche Forums","Community Opportunities"],tasks:["Discover Communities","AI Suggested Answers","Engagement Tracking"],phase:2,path:t.opportunities},{id:"podcasts",number:17,title:"Podcast & Interview Outreach",purpose:"Book podcast appearances that build authority.",features:["Podcast Finder","Contact Database","AI Pitch","Campaign Management"],tasks:["Find Podcasts","Outreach","Publication Tracking"],phase:3,path:t.outreach},{id:"reviews",number:18,title:"Review Management",purpose:"Monitor and respond to reviews across platforms.",features:["Google Reviews","Facebook Reviews","Trustpilot","G2","Capterra","Review Monitoring","AI Reply Generator"],tasks:["Collect Reviews","Respond Reviews","Review Analytics","Sentiment Reports"],phase:5,path:t.mentions},{id:"toxic-links",number:19,title:"Toxic Link Management",purpose:"Detect spammy links and prepare disavow files.",features:["Spam Detection","Link Risk Score","AI Recommendations","Disavow File Generator"],tasks:["Analyze Links","Detect Spam","Generate Disavow","Export File"],phase:2,path:t.backlinks},{id:"recommendations",number:20,title:"AI Recommendation Engine",purpose:"Daily prioritized off-page action plans.",features:["Daily Recommendations","Weekly Tasks","Priority Score","Opportunity Score","AI Action Plan"],tasks:["Analyze Website","Recommend Actions","Auto Prioritize","Estimate SEO Impact"],phase:6,path:t.agents},{id:"workflows",number:21,title:"Automation Workflows",purpose:"Trigger, schedule, and run off-page automations.",features:["Workflow Builder","Triggers","Scheduled Jobs","AI Actions","Email Automation","Notifications"],tasks:["Create Workflow","Execute Workflow","Monitor Jobs","Retry Failed Jobs"],phase:6,path:t.agents},{id:"reports",number:22,title:"Reports & Dashboards",purpose:"Off-page widgets, scheduled reports, and white-label exports.",features:["Domain Authority","Total Backlinks","Referring Domains","New Links","Lost Links","Toxic Links","Outreach Progress","Guest Posts","Brand Mentions","Citation Score","Local Visibility","Reviews","Competitor Comparison","Link Growth","AI Recommendations","Weekly SEO Report","Monthly SEO Report","White Label Reports"],tasks:["Generate Reports","Schedule Exports","White Label Branding"],phase:6,path:t.reports},{id:"ai-agents",number:23,title:"AI Agents",purpose:"Specialized agents that run off-page SEO workstreams.",features:["Backlink Research Agent","Competitor Research Agent","Outreach Agent","Guest Posting Agent","PR Agent","Citation Agent","Review Agent","Brand Monitoring Agent","Reporting Agent","Automation Agent"],tasks:["Launch Agent","Review Results","Approve Actions"],phase:6,path:t.agents},{id:"admin",number:24,title:"Admin Panel",purpose:"Platform administration for orgs, credits, jobs, and billing.",features:["User Management","Organizations","Website Management","Plans","Credits","AI Usage","Email Providers","Backgroun
1d Jobs","Queue Monitoring","Logs","API Management","Integrations","Notifications","Billing","Audit Logs","System Settings"],tasks:["Manage Tenants","Monitor Queues","Configure Integrations"],phase:6,path:"/admin"}],Te=[{key:"websites",path:t.websites,title:"Website Profiles",desc:"Profiles, verification, brand & competitor data",moduleIds:["website-profile"]},{key:"backlinks",path:t.backlinks,title:"Backlinks",desc:"Monitoring, toxic links, anchors & velocity",moduleIds:["backlink-management","toxic-links"]},{key:"opportunities",path:t.opportunities,title:"Opportunities",desc:"Link prospects, broken links, resource pages",moduleIds:["opportunity-finder","broken-links","resource-pages","link-exchange","forums"]},{key:"outreach",path:t.outreach,title:"Outreach",desc:"CRM, guest posts, influencers & podcasts",moduleIds:["outreach-crm","guest-posting","influencer","podcasts"]},{key:"local",path:t.local,title:"Local & Citations",desc:"NAP, directories & local listings",moduleIds:["local-citations","directories"]},{key:"mentions",path:t.mentions,title:"Brand & PR",desc:"Mentions, reviews, social & digital PR",moduleIds:["brand-mentions","reviews","social-signals","digital-pr"]},{key:"competitors",path:t.competitors,title:"Competitors",desc:"Link gaps, anchors & competitor crawl",moduleIds:["competitor-analysis"]},{key:"agents",path:t.agents,title:"AI & Automation",desc:"Agents, workflows & recommendations",moduleIds:["ai-agents","workflows","recommendations"]},{key:"reports",path:t.reports,title:"Reports",desc:"Dashboards, scheduled & white-label reports",moduleIds:["reports"]}];function de(s){const i=Te.find(r=>r.key===s);return i?Ie.filter(r=>i.moduleIds.includes(r.id)):[]}const Be=[.22,1,.36,1];function X({icon:s,title:i,subtitle:r,actions:c,children:h}){return e.jsxs(Q.section,{className:"space-y-6 pb-10",initial:{opacity:0}
1,animate:{opacity:1},transition:{duration:.35},children:[e.jsx(es,{icon:s,title:i,subtitle:r,children:c}),h]})}function O({label:s,value:i,hint:r,tone:c="default",index:h=0}){const L=c==="good"?"text-emerald-600":c==="warn"?"text-amber-600":c==="bad"?"text-red-600":"text-foreground";return e.jsx(Q.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{delay:h*.04,duration:.4,ease:Be},children:e.jsx(f,{className:"premium-card h-full",children:e.jsxs(k,{className:"p-4",children:[e.jsx("p",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:s}),e.jsx("p",{className:Se("mt-1.5 text-2xl font-bold tracking-tight",L),children:i}),r?e.jsx("p",{className:"mt-1 text-xs text-muted-foreground",children:r}):null]})})})}function Me({phase:s}){return e.jsxs(D,{variant:"secondary",className:"rounded-md font-normal",children:["Phase ",s," · ",ns[s]]})}function Ee({items:s,limit:i=8}){const r=s.slice(0,i),c=s.length-r.length;return e.jsxs("div",{className:"flex flex-wrap gap-1.5",children:[r.map(h=>e.jsx("span",{className:"rounded-md border border-border bg-muted/40 px-2 py-0.5 text-[11px] text-muted-foreground",children:h},h)),c>0?e.jsxs("span",{className:"rounded-md px-2 py-0.5 text-[11px] text-muted-foreground",children:["+",c," more"]}):null]})}function fe({module:s,index:i=0}){return e.jsx(Q.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:i*.05,duration:.4,ease:Be},children:e.jsxs(f,{className:"premium-card h-full",children:[e.jsxs(A,{className:"pb-3",children:[e.jsxs("div",{className:"flex flex-wrap items-start justify-between gap-2",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"text-[11px] font-semibold uppercase tracking-[0.14em] text-muted-foreground",children:["Module ",s.number]}),e.jsx(R,{className:"mt-1 text-lg",children:s.title})]}),e.jsx(Me,{phase:s.phase})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:s.purpose})]}),e.jsxs(k,{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx("p",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Features"}),e.jsx(Ee,{items:s.features})]}),e.jsxs("div",{children:[e.jsx("p",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:"Tasks"}),e.jsx("ul",{className:"space-y-1.5",children:s.tasks.map(r=>e.jsxs("li",{className:"flex items-start gap-2 text-sm text-foreground/90",children:[e.jsx(we,{className:"mt-0.5 h-3.5 w-3.5 shrink-0 text-primary"}),e.jsx("span",{children:r})]},r))})]})]})]})})}function ue({modules:s}){return s.length===0?null:s.length===1?e.jsx(fe,{module:s[0]}):e.jsxs(Oe,{defaultValue:s[0].id,className:"space-y-4",children:[e.jsx(De,{className:"flex h-auto w-full flex-wrap justify-start gap-1 rounded-xl bg-muted/50 p-1",children:s.map(i=>e.jsx(V,{value:i.id,className:"rounded-lg text-xs sm:text-sm",children:i.title},i.id))}),s.map(i=>e.jsx(q,{value:i.id,className:"mt-0",children:e.jsx(fe,{module:i})},i.id))]})}function Fe({title:s,description:i,ctaTo:r,ctaLabel:c}){return e.jsx(H,{children:e.jsx(f,{className:"premium-card border-dashed",children:e.jsxs(k,{className:"flex flex-col items-start gap-3 p-6 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-primary/10 text-primary",children:e.jsx(K,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("p",{className:"font-semibold text-foreground",children:s}),e.jsx("p",{className:"mt-0.5 text-sm text-muted-foreground",children:i})]})]}),r?e.jsx(b,{asChild:!0,size:"sm",variant:"outline",className:"rounded-xl shrink-0",children:e.jsxs(S,{to:r,children:[c??"Open",e.jsx(_,{className:"ml-1.5 h-3.5 w-3.5"})]})}):null]})})})}function C({label:s,status:i,detail:r}){const c=i==="ready"?"text-emerald-600":i==="watching"?"text-sky-600":"text-amber-600";return e.jsxs("div",{className:"flex items-start gap-3 rounded-xl border border-border/80 bg-card px-3.5 py-3",children:[e.jsx(Ve,{className:Se("mt-0.5 h-4 w-4 shrink-0",c)}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"text-sm font-medium text-foreground",children:s}),e.jsx("p",{className:"text-xs text-muted-foreground",children:r})]}),e.jsx(D,{variant:"outline",className:"shrink-0 capitalize",children:i})]})}const m={domainAuthority:42,totalBacklinks:1847,referringDomains:312,newLinks:28,lostLinks:7,toxicLinks:12,outreachProgress:64,guestPosts:3,brandMentions:19,citationScore:78,localVisibility:71,reviews:4.6},rs=[.22,1,.36,1],ls=[{key:"domainAuthority",label:"Domain Authority",value:m.domainAuthority,hint:"Portfolio avg"},{key:"totalBacklinks",label:"Total Backlinks",value:m.totalBacklinks.toLocaleStr
1ing(),hint:"Tracked links"},{key:"referringDomains",label:"Referring Domains",value:m.referringDomains,hint:"Unique domains"},{key:"newLinks",label:"New Links",value:`+${m.newLinks}`,hint:"Last 7 days",tone:"good"},{key:"lostLinks",label:"Lost Links",value:m.lostLinks,hint:"Last 7 days",tone:"warn"},{key:"toxicLinks",label:"Toxic Links",value:m.toxicLinks,hint:"Need review",tone:"bad"},{key:"outreachProgress",label:"Outreach Progress",value:`${m.outreachProgress}%`,hint:"Active campaigns"},{key:"guestPosts",label:"Guest Posts",value:m.guestPosts,hint:"In pipeline"},{key:"brandMentions",label:"Brand Mentions",value:m.brandMentions,hint:"Unlinked + linked"},{key:"citationScore",label:"Citation Score",value:m.citationScore,hint:"NAP consistency"},{key:"localVisibility",label:"Local Visibility",value:m.localVisibility,hint:"Directory + GBP"},{key:"reviews",label:"Reviews",value:m.reviews,hint:"Avg rating"}],os=[{to:t.websites,icon:ne,title:"Website Profiles",desc:"CRUD sites, verify domain, brand data",accent:"bg-primary/10 text-primary"},{to:t.backlinks,icon:J,title:"Backlinks",desc:"Monitor, toxic scan & anchors",accent:"bg-emerald-50 text-emerald-600"},{to:t.opportunities,icon:re,title:"Opportunities",desc:"AI discovery & link intersect",accent:"bg-amber-50 text-amber-600"},{to:t.outreach,icon:le,title:"Outreach CRM",desc:"Campaigns, pitches & follow-ups",accent:"bg-violet-50 text-violet-600"},{to:t.local,icon:oe,title:"Local & Citations",desc:"NAP, GBP & directories",accent:"bg-sky-50 text-sky-600"},{to:t.agents,icon:ce,title:"AI Agents",desc:"Recommendations & workflows",accent:"bg-rose-50 text-rose-600"}],cs={websites:ne,backlinks:J,opportunities:re,outreach:le,local:oe,mentions:Ae,competitors:Ce,agents:ce,reports:Ne},ds=[{label:"Reclaim 7 unlinked brand mentions",detail:"High-authority sites mentioning your brand without a link."},{label:"Disavow 12 toxic referring domains",detail:"Spam score > 70 — generate a disavow file."}
1,{label:"Pitch 5 resource-page opportunities",detail:"Relevance score ≥ 80 in your target niche."},{label:"Follow up on open outreach (9)",detail:"No reply after 5 days — send AI-personalized follow-up."}];function ys(){return e.jsxs(e.Fragment,{children:[e.jsx(ss,{moduleLabel:"Off-Page SEO"}),e.jsxs(X,{icon:e.jsx($e,{className:"h-5 w-5"}),title:"Off-Page SEO",subtitle:"Backlinks, outreach, local citations, brand mentions, and AI-driven link building — in one workspace.",actions:e.jsxs(e.Fragment,{children:[e.jsx(b,{asChild:!0,size:"sm",className:"rounded-xl shadow-sm shadow-primary/20",children:e.jsxs(S,{to:t.websites,children:[e.jsx(Re,{className:"mr-1.5 h-4 w-4"}),"Add Website"]})}),e.jsx(b,{asChild:!0,size:"sm",variant:"outline",className:"rounded-xl",children:e.jsxs(S,{to:t.reports,children:[e.jsx(qe,{className:"mr-1.5 h-4 w-4"}),"Reports"]})})]}),children:[e.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4",children:ls.map((s,i)=>e.jsx(O,{label:s.label,value:s.value,hint:s.hint,tone:s.tone,index:i},s.key))}),e.jsx(H,{children:e.jsxs("div",{className:"space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsx("h2",{className:"text-sm font-semibold uppercase tracking-[0.12em] text-muted-foreground",children:"Quick tools"}),e.jsxs(D,{variant:"secondary",className:"rounded-md",children:[Ie.length," modules"]})]}),e.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:os.map((s,i)=>e.jsx(as,{...s,index:i},s.to))})]})}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-5",children:[e.jsx(H,{className:"lg:col-span-3",children:e.jsxs(f,{className:"premium-card h-full",children:[e.jsxs(A,{className:"pb-3",children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(K,{className:"h-4 w-4 text-primary"}),e.jsx(R,{className:"text-base",children:"AI recommendations"})]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Prioritized daily actions from the recommendation engine."})]}),e.jsxs(k,{className:"space-y-2.5",children:[ds.map(s=>e.jsx(C,{label:s.label,status:"ready",detail:s.detail},s.label)),e.jsx(b,{asChild:!0,variant:"ghost",size:"sm",className:"mt-2 rounded-xl text-primary",children:e.jsxs(S,{to:t.agents,children:["Open AI & Automation",e.jsx(_,{className:"ml-1.5 h-3.5 w-3.5"})]})})]})]})}),e.jsx(H,{className:"lg:col-span-2",children:e.jsxs(f,{className:"premium-card h-full",children:[e.jsxs(A,{className:"pb-3",children:[e.jsx(R,{className:"text-base",children:"Backgroun
1d workers"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Sync & monitoring jobs"})]}),e.jsxs(k,{className:"space-y-2.5",children:[e.jsx(C,{label:"Daily Backlink Sync",status:"watching",detail:"Next run in ~4h"}),e.jsx(C,{label:"Lost Link Monitor",status:"watching",detail:"Scanning referring domains"}),e.jsx(C,{label:"Toxic Link Scan",status:"queued",detail:"Queued for tonight"}),e.jsx(C,{label:"Brand Mention Scan",status:"ready",detail:"19 new mentions ready"}),e.jsx(C,{label:"Citation Verification",status:"watching",detail:"NAP checks running"})]})]})})]}),e.jsx(H,{children:e.jsxs("div",{className:"space-y-3",children:[e.jsx("h2",{className:"text-sm font-semibold uppercase tracking-[0.12em] text-muted-foreground",children:"All hubs"}),e.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:Te.map((s,i)=>{const r=cs[s.key]??J;return e.jsx(Q.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:.05*i,duration:.4,ease:rs},children:e.jsx(S,{to:s.path,className:"block h-full",children:e.jsx(f,{className:"premium-card group h-full transition-colors hover:border-primary/30",children:e.jsxs(k,{className:"flex items-start gap-3 p-4",children:[e.jsx("div",{className:"flex h-10 w-10 shrink-0 items-center justify-center rounded-xl bg-primary/10 text-primary transition-transform group-hover:scale-105",children:e.jsx(r,{className:"h-5 w-5"})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsx("p",{className:"font-semibold text-foreground",children:s.title}),e.jsx("p",{className:"mt-0.5 text-xs leading-relaxed text-muted-foreground",children:s.desc}),e.jsxs("p",{className:"mt-2 text-[11px] text-muted-foreground",children:[s.moduleIds.length," module",s.moduleIds.length===1?"":"s"]})]}),e.jsx(_,{className:"mt-1 h-4 w-4 shrink-0 text-muted-foreground/40 transition-colors group-hover:text-primary"})]})})})},s.key)})})]})})]})]})}const Ue="offpage-website-profiles-v1",ke=s=>({websiteId:s,category:"Corporate",country:"United States",language:"English",businessType:"B2B",industry:"",brandName:"",contactEmail:"",contactPhone:"",keywords:"",competitors:"",socialLinkedin:"",socialX:"",socialFacebook:"",gbpUrl:"",summary:"",verified:!1});function us(){try{const s=localStorage.getItem(Ue);return s?JSON.parse(s):{}}catch{return{}}}function je(s){localStorage.setItem(Ue,JSON.stringify(s))}function G(s){try{return new URL(s).host.replace(/^www\./,"")}catch{return s.replace(/^https?:\/\//,"").slice(0,40)}}const z=de("websites");function vs(){const[s,i]=p.useState([]),[r,c]=p.useState(!0),[h,L]=p.useState(!1),[d,T]=p.useState(""),[g,B]=p.useState(""),[x,F]=p.useState(null),[n,j]=p.useState({}),[y,Y]=p.useState(""),U=p.useMemo(()=>s.find(a=>a.id===x)??null,[s,x]),o=x?n[x]??ke(x):null,me=p.useMemo(()=>{const a=y.trim().toLowerCase();return a?s.filter(l=>{var M;return l.websiteUrl.toLowerCase().includes(a)||(l.label??"").toLowerCase().includes(a)||(((M=n[l.id])==null?void 0:M.brandName)??"").toLowerCase().includes(a)}):s},[s,y,n]);async function Z(){var a;c(!0);try{const l=await Le();i(l.websites??[]),!x&&((a=l.websites)!=null&&a[0])&&F(l.websites[0].id)}catch{v.error("Could not load websites.")}finally{c(!1)}}p.useEffect(()=>{j(us()),Z()},[]);async function We(){const a=d.trim();if(!a){v.error("Enter a website URL.");return}L(!0);try{const l=await ts(a,g.trim()||void 0);v.success(`Website saved: ${G(l.websiteUrl)}`),T(""),B(""),await Z(),l.id&&F(l.id)}catch{v.error("Failed to add website.")}finally{L(!1)}}function u(a){x&&j(l=>{const M={...l,[x]:{...l[x]??ke(x),...a}};return je(M),M})}function Ge(){x&&(u({verified:!0}),v.success("Domain marked as verified (demo). Connect DNS TXT for live verification."))}function ze(){if(!U||!o)return;const a=G(U.websiteUrl),l=o.industry||"your industry";u({summary:`${o.brandName||a} is a ${o.businessType||"business"} in ${l}, targeting ${o.country}. Key topics: ${o.keywords||"core offerings"}.`,industry:o.industry||"Technology"}),v.success("AI business summary generated.")}return e.jsxs(X,{icon:e.jsx(ne,{className:"h-5 w-5"}),title:"Website Profiles",subtitle:"Register sites and store the brand, geo, keyword, and competitor context used across Off-Page SEO.",actions:e.jsx(b,{asChild:!0,size:"sm",variant:"outline",className:"rounded-xl",children:e.jsxs(S,{to:"/seo-intelligence/integrations",children:[e.jsx(K,{className:"mr-1.5 h-4 w-4"}),"Integrations"]})}),children:[z[0]?e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs(D,{variant:"outline",children:["Module ",z[0].number]}),e.jsx(Me,{phase:z[0].phase}),e.jsx(Ee,{items:z[0].features.slice(0,6),limit:6})]}):null,e.jsxs("div",{className:"grid gap-6 xl:grid-cols-5",children:[e.jsxs(f,{className:"premium-card xl:col-span-2",children:[e.jsx(A,{className:"pb-3",children:e.jsx(R,{className:"text-base",children:"Add website"})}),e.jsxs(k,{className:"space-y-3",children:[e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(I,{htmlFor:"offpage-url",children:"Website URL"}),e.jsx($,{id:"offpage-url",placeholder:"https://example.com",value:d,onChange:a=>T(a.target.value),className:"rounded-xl"})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(I,{htmlFor:"offpage-label",children:"Label (optional)"}),e.jsx($,{id:"offpage-label",placeholder:"Primary site",value:g,onChange:a=>B(a.target.value),className:"rounded-xl"})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsxs(b,{size:"sm",className:"rounded-xl",disabled:h,onClick:()=>void We(),children:[h?e.jsx(se,{className:"mr-1.5 h-4 w-4 animate-spin"}):e.jsx(Ke,{className:"mr-1.5 h-4 w-4"}),"Add Website"]}),e.jsxs(b,{size:"sm",variant:"outline",className:"rounded-xl",onClick:()=>void Z(),children:[e.jsx(Pe,{className:"mr-1.5 h-4 w-4"}),"Refresh"]})]})]})]}),e.jsxs(f,{className:"premium-card xl:col-span-3",children:[e.jsx(A,{className:"pb-3",children:e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsx(R,{className:"text-base",children:"Registered websites"}),e.jsxs("div",{className:"relative w-full max-w-xs",children:[e.jsx(_e,{className:"absolute left-2.5 top-2.5 h-4 w-4 text-muted-foreground"}),e.jsx($,{placeholder:"Filter…",value:y,onChange:a=>Y(a.target.value),className:"rounded-xl pl-8"})]})]})}),e.jsx(k,{children:r?e.jsxs("div",{className:"flex h-32 items-center justify-center text-muted-foreground",children:[e.jsx(se,{className:"mr-2 h-4 w-4 animate-spin"})," Loading…"]}):me.length===0?e.jsx("p",{className:"py-8 text-center text-sm text-muted-foreground",children:"No websites yet. Add your first property to start Off-Page SEO."}):e.jsxs(ae,{children:[e.jsx(te,{children:e.jsxs(W,{children:[e.jsx(w,{children:"Website"}),e.jsx(w,{children:"Brand"}),e.jsx(w,{children:"Status"}),e.jsx(w,{className:"w-10"})]})}),e.jsx(ie,{children:me.map(a=>{const l=n[a.id],M=a.id===x;return e.jsxs(W,{className:M?"bg-accent/40":"cursor-pointer",onClick:()=>F(a.id),children:[e.jsxs(N,{children:[e.jsx("div",{className:"font-medium",children:a.label||G(a.websiteUrl)}),e.jsx("div",{className:"text-xs text-muted-foreground",children:G(a.websiteUrl)})]}),e.jsx(N,{className:"text-sm text-muted-foreground",children:(l==null?void 0:l.brandName)||"—"}),e.jsx(N,{children:l!=null&&l.verified?e.jsx(D,{className:"rounded-md bg-emerald-50 text-emerald-700 hover:bg-emerald-50",children:"Verified"}):e.jsx(D,{variant:"outline",className:"rounded-md",children:"Unverified"})}),e.jsx(N,{children:e.jsx(b,{size:"icon",variant:"ghost",className:"h-8 w-8",asChild:!0,children:e.jsx(S,{to:`/seo-intelligence/audit?url=${encodeURIComponent(a.websiteUrl)}`,onClick:He=>He.stopPropagation(),children:e.jsx(Re,{className:"h-4 w-4"})})})})]},a.id)})})]})})]})]}),U&&o?e.jsxs(f,{className:"premium-card",children:[e.jsx(A,{className:"pb-3",children:e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsxs("div",{children:[e.jsxs(R,{className:"text-base",children:["Profile · ",U.label||G(U.websiteUrl)]}),e.jsx("p",{className:"text-sm text-muted-foreground",children:U.websiteUrl})]}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsxs(b,{size:"sm",variant:"outline",className:"rounded-xl",onClick:Ge,children:[e.jsx(we,{className:"mr-1.5 h-4 w-4"}),"Verify Domain"]}),e.jsxs(b,{size:"sm",className:"rounded-xl",onClick:ze,children:[e.jsx(K,{className:"mr-1.5 h-4 w-4"}),"AI Business Summary"]})]})]})}),e.jsxs(k,{className:"grid gap-4 md:grid-cols-2 lg:grid-cols-3",children:[e.jsx(P,{label:"Brand name",value:o.brandName,onChange:a=>u({brandName:a})}),e.jsx(P,{label:"Industry",value:o.industry,onChange:a=>u({industry:a}),placeholder:"e.g. SaaS, Healthcare"}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(I,{children:"Business type"}),e.jsxs(pe,{value:o.businessType,onValueChange:a=>u({businessType:a}),children:[e.jsx(he,{className:"rounded-xl",children:e.jsx(ge,{})}),e.jsx(xe,{children:["B2B","B2C","Marketplace","Agency","Local","Nonprofit"].map(a=>e.jsx(be,{value:a,children:a},a))})]})]}),e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(I,{children:"Category"}),e.jsxs(pe,{value:o.category,onValueChange:a=>u({category:a}),children:[e.jsx(he,{className:"rounded-xl",children:e.jsx(ge,{})}),e.jsx(xe,{children:["Corporate","E-commerce","Blog","SaaS","Local business","Publisher"].map(a=>e.jsx(be,{value:a,children:a},a))})]})]}),e.jsx(P,{label:"Country targeting",value:o.country,onChange:a=>u({country:a})}),e.jsx(P,{label:"Language",value:o.language,onChange:a=>u({language:a})}),e.jsx(P,{label:"Contact email",value:o.contactEmail,onChange:a=>u({contactEmail:a})}),e.jsx(P,{label:"Contact phone",value:o.contactPhone,onChange:a=>u({contactPhone:a})}),e.jsx(P,{label:"Google Business Profile URL",value:o.gbpUrl,onChange:a=>u({gbpUrl:a})}),e.jsx(P,{label:"LinkedIn",value:o.socialLinkedin,onChange:a=>u({socialLinkedin:a})}),e.jsx(P,{label:"X / Twitter",value:o.socialX,onChange:a=>u({socialX:a})}),e.jsx(P,{label:"Facebook",value:o.socialFacebook,onChange:a=>u({socialFacebook:a})}),e.jsxs("div",{className:"space-y-1.5 md:col-span-2",children:[e.jsx(I,{children:"Target keywords"}),e.jsx(ee,{className:"min-h-20 rounded-xl",placeholder:"Comma-separated keywords",value:o.keywords,onChange:a=>u({keywords:a.target.value})})]}),e.jsxs("div",{className:"space-y-1.5 md:col-span-2 lg:col-span-1",children:[e.jsx(I,{children:"Competitors"}),e.jsx(ee,{className:"min-h-20 rounded-xl",placeholder:"Competitor domains, one per line",value:o.competitors,onChange:a=>u({competitors:a.target.value})})]}),e.jsxs("div",{className:"space-y-1.5 md:col-span-2 lg:col-span-3",children:[e.jsx(I,{children:"AI business summary"}),e.jsx(ee,{className:"min-h-24 rounded-xl",value:o.summary,onChange:a=>u({summary:a.target.value})})]}),e.jsx("div",{className:"md:col-span-2 lg:col-span-3 flex justify-end",children:e.jsxs(b,{size:"sm",variant:"ghost",className:"rounded-xl text-muted-foreground",onClick:()=>{x&&(j(a=>{const l={...a};return delete l[x],je(l),l}),v.message("Extended profile cleared."))},children:[e.jsx(Je,{className:"mr-1.5 h-4 w-4"}),"Clear profile fields"]})})]})]}):null,e.jsx(ue,{modules:z})]})}function P({label:s,value:i,onChange:r,placeholder:c}){return e.jsxs("div",{className:"space-y-1.5",children:[e.jsx(I,{children:s}),e.jsx($,{className:"rounded-xl",value:i,placeholder:c,onChange:h=>r(h.target.value)})]})}const ye=de("backlinks"),ms=[{text:"best seo tools",count:48,type:"Exact"},{text:"website ranking",count:31,type:"Partial"},{text:"click here",count:22,type:"Generic"},{text:"brand name",count:19,type:"Branded"},{text:"https://example.com",count:14,type:"Naked"}
1],ve=[{domain:"cheap-links.biz",risk:92,reason:"Link farm pattern"},{domain:"pbn-network.xyz",risk:88,reason:"Private blog network"},{domain:"auto-directory.ru",risk:76,reason:"Mass directory spam"},{domain:"guestspam.club",risk:71,reason:"Low-quality guest posts"}];function ps(s){try{return new URL(s.startsWith("http")?s:`https://${s}`).host.replace(/^www\./,"")}catch{return s}}function ws(){var F;const[s,i]=p.useState([]),[r,c]=p.useState(""),[h,L]=p.useState(!1),[d,T]=p.useState(null);p.useEffect(()=>{Le().then(n=>{const j=n.websites??[];i(j),j[0]&&!r&&c(j[0].websiteUrl)}).catch(()=>{})},[]);async function g(n=r){const j=n.trim();if(!j){v.error("Enter a website URL.");return}L(!0);try{const y=await is(j);T(y),y.connected||v.message("Backlink provider not connected — showing demo metrics too.")}catch{v.error("Failed to load backlinks.")}finally{L(!1)}}const B=p.useMemo(()=>d!=null&&d.connected?d.kind==="authority"?[{label:"Domain Authority",value:d.domainAuthority??"—",hint:"OpenPageRank 0–10"},{label:"Global Rank",value:d.globalRank?`#${d.globalRank.toLocaleString()}`:"—",hint:"Worldwide"},{label:"Domain",value:d.domain??ps(r),hint:d.provider}]:[{label:"Domain Rank",value:d.rank??"—",hint:d.provider},{label:"Backlinks",value:d.backlinks??"—",hint:"Total"},{label:"Referring Domains",value:d.referringDomains??"—",hint:"Unique"},{label:"Main Domains",value:d.referringMainDomains??"—",hint:"Root"}]:null,[d,r]);function x(){const n=ve.map(Y=>`domain:${Y.domain}`),j=new Blob([`# Disavow file generated by Website Ranking
2${n.join(`
3`)}
4`],{type:"text/plain"}),y=document.createElement("a");y.href=URL.createObjectURL(j),y.download="disavow.txt",y.click(),URL.revokeObjectURL(y.href),v.success("Disavow file exported.")}return e.jsxs(X,{icon:e.jsx(J,{className:"h-5 w-5"}),title:"Backlink Management",subtitle:"Monitor referring domains, link velocity, toxic risk, and prepare disavow files.",actions:e.jsx(b,{asChild:!0,size:"sm",variant:"outline",className:"rounded-xl",children:e.jsx(S,{to:"/seo-intelligence/integrations",children:"Configure providers"})}),children:[e.jsx(f,{className:"premium-card",children:e.jsxs(k,{className:"flex flex-col gap-3 p-4 sm:flex-row sm:items-end",children:[e.jsxs("div",{className:"min-w-0 flex-1 space-y-1.5",children:[e.jsx("p",{className:"text-xs font-medium text-muted-foreground",children:"Website"}),e.jsx($,{list:"offpage-backlink-sites",className:"rounded-xl",placeholder:"https://example.com",value:r,onChange:n=>c(n.target.value)}),e.jsx("datalist",{id:"offpage-backlink-sites",children:s.map(n=>e.jsx("option",{value:n.websiteUrl},n.id))})]}),e.jsxs(b,{size:"sm",className:"rounded-xl shrink-0",disabled:h,onClick:()=>void g(),children:[h?e.jsx(se,{className:"mr-1.5 h-4 w-4 animate-spin"}):e.jsx(Pe,{className:"mr-1.5 h-4 w-4"}),"Sync Backlinks"]})]})}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-6",children:[e.jsx(O,{label:"Total Backlinks",value:m.totalBacklinks.toLocaleString(),hint:"Tracked",index:0}),e.jsx(O,{label:"Referring Domains",value:m.referringDomains,hint:"Unique",index:1}),e.jsx(O,{label:"New Links",value:`+${m.newLinks}`,hint:"7 days",tone:"good",index:2}),e.jsx(O,{label:"Lost Links",value:m.lostLinks,hint:"7 days",tone:"warn",index:3}),e.jsx(O,{label:"Toxic Links",value:m.toxicLinks,hint:"Risk review",tone:"bad",index:4}),e.jsx(O,{label:"Spam Score",value:"18",hint:"Portfolio avg",index:5})]}),B?e.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:B.map((n,j)=>e.jsx(O,{label:n.label,value:String(n.value),hint:n.hint,index:j},n.label))}):e.jsx(Fe,{title:"Connect a backlink provider for live profiles",description:"OpenPagerank or DataForSEO will power authority and referring-domain counts here.",ctaTo:"/seo-intelligence/integrations",ctaLabel:"Integrations"}),e.jsxs(Oe,{defaultValue:"overview",className:"space-y-4",children:[e.jsxs(De,{className:"flex h-auto w-full flex-wrap justify-start gap-1 rounded-xl bg-muted/50 p-1",children:[e.jsx(V,{value:"overview",className:"rounded-lg",children:"Overview"}),e.jsx(V,{value:"anchors",className:"rounded-lg",children:"Anchor Analysis"}),e.jsx(V,{value:"toxic",className:"rounded-lg",children:"Toxic Links"}),e.jsx(V,{value:"modules",className:"rounded-lg",children:"Modules"})]}),e.jsx(q,{value:"overview",className:"mt-0 space-y-4",children:e.jsxs("div",{className:"grid gap-4 lg:grid-cols-2",children:[e.jsxs(f,{className:"premium-card",children:[e.jsx(A,{className:"pb-3",children:e.jsx(R,{className:"text-base",children:"Link velocity & monitoring"})}),e.jsxs(k,{className:"space-y-2.5",children:[e.jsx(C,{label:"Daily Backlink Sync",status:"watching",detail:"Imports new & lost links every 24h"}),e.jsx(C,{label:"Dofollow / Nofollow mix",status:"ready",detail
4:"68% dofollow · 32% nofollow (demo)"}),e.jsx(C,{label:"Authority distribution",status:"ready",detail:"Most links from DA 20–40 domains"}),e.jsx(C,{label:"Historical tracking",status:"watching",detail:"Retain 12 months of link history"})]})]}),e.jsxs(f,{className:"premium-card",children:[e.jsx(A,{className:"pb-3",children:e.jsx(R,{className:"text-base",children:"Tasks"})}),e.jsxs(k,{className:"space-y-2 text-sm text-muted-foreground",children:[(((F=ye.find(n=>n.id==="backlink-management"))==null?void 0:F.tasks)??[]).map(n=>e.jsxs("div",{className:"flex items-center justify-between rounded-xl border px-3 py-2",children:[e.jsx("span",{className:"text-foreground",children:n}),e.jsx(D,{variant:"outline",children:"Ready"})]},n)),e.jsx(b,{asChild:!0,size:"sm",variant:"ghost",className:"rounded-xl text-primary",children:e.jsx(S,{to:t.reports,children:"Generate Backlink Report"})})]})]})]})}),e.jsx(q,{value:"anchors",className:"mt-0",children:e.jsxs(f,{className:"premium-card",children:[e.jsx(A,{className:"pb-3",children:e.jsx(R,{className:"text-base",children:"Anchor text distribution"})}),e.jsx(k,{children:e.jsxs(ae,{children:[e.jsx(te,{children:e.jsxs(W,{children:[e.jsx(w,{children:"Anchor"}),e.jsx(w,{children:"Type"}),e.jsx(w,{className:"text-right",children:"Count"})]})}),e.jsx(ie,{children:ms.map(n=>e.jsxs(W,{children:[e.jsx(N,{className:"font-medium",children:n.text}),e.jsx(N,{children:e.jsx(D,{variant:"secondary",className:"rounded-md font-normal",children:n.type})}),e.jsx(N,{className:"text-right tabular-nums",children:n.count})]},n.text))})]})})]})}),e.jsxs(q,{value:"toxic",className:"mt-0 space-y-4",children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[e.jsx(Qe,{className:"h-4 w-4 text-red-500"}),"Toxic link management · Module 19"]}),e.jsxs(b,{size:"sm",className:"rounded-xl",onClick:x,children:[e.jsx(Xe,{className:"mr-1.5 h-4 w-4"}),"Export Disavow"]})]}),e.jsx(f,{className:"premium-card",children:e.jsx(k,{className:"p-0",children:e.jsxs(ae,{children:[e.jsx(te,{children:e.jsxs(W,{children:[e.jsx(w,{children:"Domain"}),e.jsx(w,{children:"Risk"}),e.jsx(w,{children:"Reason"}),e.jsx(w,{children:"AI recommendation"})]})}),e.jsx(ie,{children:ve.map(n=>e.jsxs(W,{children:[e.jsx(N,{className:"font-medium",children:n.domain}),e.jsx(N,{children:e.jsx(D,{className:"rounded-md bg-red-50 text-red-700 hover:bg-red-50",children:n.risk})}),e.jsx(N,{className:"text-sm text-muted-foreground",children:n.reason}),e.jsx(N,{className:"text-sm",children:e.jsxs("span",{className:"inline-flex items-center gap-1 text-amber-700",children:[e.jsx(Ye,{className:"h-3.5 w-3.5"}),"Disavow"]})})]},n.domain))})]})})})]}),e.jsx(q,{value:"modules",className:"mt-0",children:e.jsx(ue,{modules:ye})})]})]})}function E({hubKey:s,icon:i,title:r,subtitle:c,metrics:h,demoRows:L,primaryCta:d}){const T=de(s);return e.jsxs(X,{icon:e.jsx(i,{className:"h-5 w-5"}),title:r,subtitle:c,actions:d?e.jsx(b,{asChild:!0,size:"sm",className:"rounded-xl",children:e.jsxs(S,{to:d.to,children:[d.label,e.jsx(_,{className:"ml-1.5 h-3.5 w-3.5"})]})}):void 0,children:[e.jsx("div",{className:"grid gap-3 sm:grid-cols-2 lg:grid-cols-4",children:h.map((g,B)=>e.jsx(O,{...g,index:B},g.label))}),e.jsxs("div",{className:"grid gap-6 lg:grid-cols-2",children:[e.jsxs(f,{className:"premium-card",children:[e.jsx(A,{className:"pb-3",children:e.jsx(R,{className:"text-base",children:"Live queue"})}),e.jsx(k,{className:"space-y-2.5",children:L.map(g=>e.jsx(C,{...g},g.label))})]}),e.jsxs(f,{className:"premium-card",children:[e.jsx(A,{className:"pb-3",children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx(Ze,{className:"h-4 w-4 text-primary"}),e.jsx(R,{className:"text-base",children:"Included modules"})]})}),e.jsx(k,{className:"space-y-2",children:T.map(g=>e.jsxs("div",{className:"flex items-start justify-between gap-3 rounded-xl border border-border/80 px-3 py-2.5",children:[e.jsxs("div",{children:[e.jsxs("p",{className:"text-sm font-medium",children:[g.number,". ",g.title]}),e.jsx("p",{className:"text-xs text-muted-foreground",children:g.purpose})]}),e.jsxs("span",{className:"shrink-0 text-[11px] text-muted-foreground",children:["P",g.phase]})]},g.id))})]})]}),e.jsx(Fe,{title:"Automation workers wire up next",description:"This hub is live in the dashboard. Crawl, outreach, and sync jobs will populate these queues from the Phase roadmap."}),e.jsx(ue,{modules:T})]})}function Ns(){return e.jsx(E,{hubKey:"opportunities",icon:re,title:"Backlink Opportunities",subtitle:"AI discovery, competitor mining, broken links, resource pages, forums, and link exchanges.",metrics:[{label:"Scored opportunities",value:86,hint:"Ready to prioritize"},{label:"High authority",value:24,hint:"DA ≥ 40",tone:"good"},{label:"Broken links",value:11,hint:"Replacement pitches"},{label:"Resource pages",value:17,hint:"Relevance ≥ 80"}],demoRows:[{label:"Competitor backlink crawl",status:"watching",detail:"Mining 3 competitors"}
4,{label:"Link intersect analysis",status:"ready",detail:"42 domains link to 2+ competitors"},{label:"Broken link finder",status:"queued",detail:"Next niche crawl tonight"},{label:"Forum & community discovery",status:"ready",detail:"8 Reddit / Quora threads"}],primaryCta:{to:t.outreach,label:"Send to Outreach"}})}function Cs(){return e.jsx(E,{hubKey:"outreach",icon:le,title:"Outreach CRM",subtitle:"Prospects, campaigns, guest posting, influencers, podcasts, and AI-personalized follow-ups.",metrics:[{label:"Prospects",value:214,hint:"In database"},{label:"Open campaigns",value:6,hint:"Active"},{label:"Reply rate",value:"18%",hint:"Last 30 days",tone:"good"},{label:"Guest posts",value:3,hint:"In pipeline"}],demoRows:[{label:"Follow-up queue",status:"ready",detail:"9 emails scheduled today"},{label:"AI pitch writer",status:"watching",detail:"Personalizing 14 templates"},{label:"Guest post tracker",status:"watching",detail:"2 awaiting acceptance"},{label:"Podcast outreach",status:"queued",detail:"5 pitches draft"}],primaryCta:{to:t.agents,label:"Launch Outreach Agent"}})}function As(){return e.jsx(E,{hubKey:"local",icon:oe,title:"Local SEO & Citations",subtitle:"NAP consistency, Google Business Profile, directories, and citation monitoring.",metrics:[{label:"Citation score",value:78,hint:"NAP consistency"},{label:"Listings found",value:46,hint:"Across directories"},{label:"NAP errors",value:5,hint:"Need update",tone:"warn"},{label:"Pending approvals",value:8,hint:"Directory submissions"}],demoRows:[{label:"Citation verification",status:"watching",detail:"Checking GBP, Bing, Yelp"},{label:"Duplicate listing scan",status:"ready",detail:"2 duplicates flagged"},{label:"Directory auto-submit",status:"queued",detail:"AI category mapping ready"},{label:"Apple Maps / Bing Places",status:"watching",detail:"Sync on schedule"}],primaryCta:{to:t.websites,label:"Edit NAP Profile"}})}function Rs(){return e.jsx(E,{hubKey:"mentions",icon:Ae,title:"Brand, Reviews & PR",subtitle:"Mentions, sentiment, reviews, social signals, and digital PR campaigns.",metrics:[{label:"Brand mentions",value:19,hint:"Last 7 days"},{label:"Unlinked mentions",value:7,hint:"Reclaim links",tone:"warn"},{label:"Avg review rating",value:4.6,hint:"Across platforms",tone:"good"},{label:"PR pitches",value:4,hint:"Active journalists"}],demoRows:[{label:"Mention crawl",status:"watching",detail:"Web + news + social"},{label:"Sentiment analysis",status:"ready",detail:"72% positive · 18% neutral"},{label:"Review reply generator",status:"ready",detail:"3 Google reviews pending"},{label:"HARO-style opportunities",status:"queued",detail:"2 matches this morning"}],primaryCta:{to:t.outreach,label:"Pitch Journalists"}})}function Ps(){return e.jsx(E,{hubKey:"competitors",icon:Ce,title:"Competitor Off-Page Analysis",subtitle:"Compare backlinks, anchors, top pages, domain authority, and link gaps.",metrics:[{label:"Competitors tracked",value:3,hint:"Active set"},{label:"Link gap domains",value:38,hint:"They have, you don’t",tone:"good"},{label:"New competitor links",value:12,hint:"7 days"},{label:"Avg competitor DA",value:51,hint:"Across set"}],demoRows:[{label:"Competitor crawl",status:"watching",detail:"Refreshing referring domains"},{label:"Gap analysis",status:"ready",detail:"38 opportunities ranked"},{label:"Anchor comparison",status:"ready",detail:"Brand vs exact-match mix"},{label:"Top pages by links",status:"queued",detail:"Next refresh in 6h"}],primaryCta:{to:t.opportunities,label:"View Link Gaps"}})}function Ss(){return e.jsx(E,{hubKey:"agents",icon:ce,title:"AI Agents & Automation",subtitle:"Recommendation engine, workflow builder, and specialized off-page agents.",metrics:[{label:"Daily recommendations",value:9,hint:"Prioritized"},{label:"Active workflows",value:4,hint:"Scheduled"},{label:"Agents online",value:10,hint:"Ready to launch",tone:"good"},{label:"Failed jobs",value:1,hint:"Retry queue",tone:"warn"}],demoRows:[{label:"Backlink Research Agent",status:"ready",detail:"Awaiting website profile"},{label:"Outreach Agent",status:"watching",detail:"Running campaign follow-ups"}
4,{label:"Citation Agent",status:"queued",detail:"Nightly NAP checks"},{label:"Reporting Agent",status:"watching",detail:"Weekly report drafting"}],primaryCta:{to:t.reports,label:"Open Reports"}})}function Ls(){return e.jsx(E,{hubKey:"reports",icon:Ne,title:"Reports & Dashboards",subtitle:"Weekly and monthly SEO reports, backlink, outreach, citation, and white-label exports.",metrics:[{label:"Scheduled reports",value:3,hint:"Weekly / monthly"},{label:"Last export",value:"2d ago",hint:"Executive summary"},{label:"Widgets live",value:15,hint:"Off-Page overview"},{label:"White-label",value:"On",hint:"Agency branding",tone:"good"}],demoRows:[{label:"Weekly SEO Report",status:"queued",detail:"Sends Monday 9:00"},{label:"Backlink Report",status:"ready",detail:"New / lost / toxic snapshot"},{label:"Outreach Report",status:"ready",detail:"Campaign analytics ready"},{label:"Competitor Report",status:"watching",detail:"Refreshing gap charts"}],primaryCta:{to:t.overview,label:"Back to Dashboard"}})}export{Ss as OffpageAgentsPage,ws as OffpageBacklinksPage,Ps as OffpageCompetitorsPage,As as OffpageLocalPage,Rs as OffpageMentionsPage,Ns as OffpageOpportunitiesPage,Cs as OffpageOutreachPage,ys as OffpageOverviewPage,Ls as OffpageReportsPage,vs as OffpageWebsitesPage};

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.