PageSourceSearch

https://www.youwant.ai/_next/static/chunks/app/page-00bede0ccffc4010.js

js youwant.ai collected 2026-10-05 13:24:02 UTC 40,952 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1931],{10193:function(e,t,r){Promise.resolve().then(r.bind(r,62788))},62788:function(e,t,r){"use strict";r.r(t),r.d(t,{default:function(){return ei}});var a=r(57437),s=r(2265),l=r(27648),o=r(53417),n=r(53113),i=r(5005),c=r(64972),d=r(25330),m=r(11239),u=r(82222),x=r(98033),g=r(34423),p=r(82023),h=r(4554),f=r(88997),b=r(28842),y=r(49474),v=r(92451),j=r(10407),N=r(86595),w=r(70525),k=r(73247),S=r(96362),C=r(42208),A=r(62869),z=r(66070),Z=r(63611),I=r(99376),P=r(95186),F=r(29827),_=r(20016),R=r(69064),E=r(46214),L=r(94508),D=r(81103),O=r(84190),T=r(2238),Y=r(41217),q=r(24156),U=r(30401),V=r(51482);r(26110);let J=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(V.mY,{ref:t,className:(0,L.cn)("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",r),...s})});J.displayName=V.mY.displayName;let W=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsxs)("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[(0,a.jsx)(k.Z,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),(0,a.jsx)(V.mY.Input,{ref:t,className:(0,L.cn)("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",r),...s})]})});W.displayName=V.mY.Input.displayName;let K=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(V.mY.List,{ref:t,className:(0,L.cn)("max-h-[300px] overflow-y-auto overflow-x-hidden",r),...s})});K.displayName=V.mY.List.displayName,s.forwardRef((e,t)=>(0,a.jsx)(V.mY.Empty,{ref:t,className:"py-6 text-center text-sm",...e})).displayName=V.mY.Empty.displayName;let M=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(V.mY.Group,{ref:t,className:(0,L.cn)("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",r),...s})});M.displayName=V.mY.Group.displayName,s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(V.mY.Separator,{ref:t,className:(0,L.cn)("-mx-1 h-px bg-border",r),...s})}).displayName=V.mY.Separator.displayName;let B=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)(V.mY.Item,{ref:t,className:(0,L.cn)("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",r),...s})});B.displayName=V.mY.Item.displayName;var G=r(57054),H=r(19378);function Q(e){let{onSelect:t,selectedHashtagId:r}
1=e,[l,o]=(0,s.useState)(!1),{data:n,isLoading:i}=(0,T.i)(),[c,d]=(0,s.useState)(""),m=null==n?void 0:n.find(e=>e.id===r),u=null==n?void 0:n.filter(e=>e.name.toLowerCase().includes(c.toLowerCase()));return(0,a.jsxs)(G.J2,{open:l,onOpenChange:o,children:[(0,a.jsx)(G.xo,{asChild:!0,children:(0,a.jsxs)(A.z,{variant:"outline",role:"combobox","aria-expanded":l,className:(0,L.cn)("relative h-10 px-4 flex items-center justify-between rounded-full font-medium transition-all duration-200","bg-black/40 border-gray-800/60 text-gray-300","hover:border-purple-500/30 hover:bg-black/60",r&&"bg-purple-500/10 border-purple-500/50 text-purple-400 shadow-[0_0_10px_rgba(168,85,247,0.1)]"),children:[(0,a.jsxs)("div",{className:"flex items-center",children:[(0,a.jsx)(Y.Z,{className:"mr-2 h-4 w-4 text-gray-400"}),m?m.name:"Filter by hashtag"]}),(0,a.jsx)(q.Z,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,a.jsx)(G.yk,{className:"w-[200px] p-0 bg-gray-900/95 border-gray-800",children:(0,a.jsxs)(J,{className:"bg-transparent",shouldFilter:!1,children:[(0,a.jsx)(W,{placeholder:"Search hashtags...",value:c,onValueChange:d,className:"border-gray-800 bg-black/40 text-gray-200"}),(0,a.jsx)(K,{children:i?(0,a.jsx)("div",{className:"py-6 text-center text-sm text-gray-400",children:"Loading hashtags..."}):(null==u?void 0:u.length)?(0,a.jsx)(M,{children:(0,a.jsxs)(H.x,{className:"h-[200px]",children:[(0,a.jsxs)(B,{value:"all",onSelect:()=>{t(null),o(!1)},className:"cursor-pointer text-gray-300 hover:bg-purple-500/10 aria-selected:bg-purple-500/10",children:[(0,a.jsx)(U.Z,{className:(0,L.cn)("mr-2 h-4 w-4",r?"opacity-0":"opacity-100")}),"All tools"]}),u.map(e=>(0,a.jsxs)(B,{value:e.name,onSelect:()=>{t(r===e.id?null:e.id),o(!1)},className:"cursor-pointer text-gray-300 hover:bg-purple-500/10 aria-selected:bg-purple-500/10",children:[(0,a.jsx)(U.Z,{className:(0,L.cn)("mr-2 h-4 w-4",r===e.id?"opacity-100":"opacity-0")}),(0,a.jsx)(Y.Z,{className:"mr-1 h-3.5 w-3.5 text-gray-400"}),e.name,(0,a.jsx)("span",{className:"ml-auto text-xs text-gray-500",children:e.toolCount})]},e.id))]})}):(0,a.jsx)("div",{className:"py-6 text-center text-sm text-gray-400",children:"No hashtags found"})})]})})]})}var X=r(26225),$=r.n(X),ee=r(10970);o.Z,n.Z,i.Z;let et=[{name:"Large Language Models",icon:c.Z,color:"text-blue-500",description:"Harness the power of advanced language models for chat, text, and analysis."},{name:"Create Stunning Visuals",icon:n.Z,color:"text-purple-500",description:"Transform ideas into captivating visuals with AI-powered tools."},{name:"Build Your Business",icon:i.Z,color:"text-orange-500",description:"Scale your business with AI-powered marketing, sales, and support tools."},{name:"Dev Tools & Tech",icon:d.Z,color:"text-green-500",description:"Supercharge development with AI-assisted coding and technical tools."},{name:"Productivity",icon:m.Z,color:"text-blue-500",description:"Streamline workflows, enhance efficiency, and amplify impact."},{name:"Automation & Agentic AI",icon:u.Z,color:"text-green-500",description:"Deploy intelligent agents to automate tasks and processes."},{name:"Art, Design & Images",icon:x.Z,color:"text-purple-500",description:"Create professional designs and artwork with AI assistance."},{name:"Writing & Content Gen",icon:g.Z,color:"text-red-500",description:"Generate, edit, and optimize content across all formats."},{name:"Future Tech",icon:p.Z,color:"text-yellow-500",description:"Explore cutting-edge AI innovations and emerging technologies."},{name:"Video & Interactive",icon:h.Z,color:"text-cyan-500",description:"Create and edit engaging video and interactive content."}],er=[{name:"Free",color:"text-green-500"},{name:"Freemium",color:"text-orange-400"},{name:"Subscription",color:"text-blue-500"},{name:"Pay-Per-Use",color:"text-purple-500"},{name:"Enterprise",color:"text-indigo-500"}],ea=e=>e>=85?{outer:"from-purple-600 to-pink-500",text:"from-purple-400 to-pink-400"}:e>=75?{outer:"from-emerald-600 to-green-500",text:"from-emerald-400 to-green-400"}:e>=65?{outer:"from-yellow-600 to-amber-500",text:"from-yellow-400 to-amber-400"}:e>=51?{outer:"from-orange-600 to-amber-500",text:"from-orange-400 to-amber-400"}:{outer:"from-red-600 to-rose-500",text:"from-red-400 to-rose-400"};function es(e){var t,r;let{searchQuery:n,selectedCategories:i,selectedMonetization:c,showOnlyLiked:d,sortOrder:m,onSearchChange:u,onCategoryClick:x,onMonetizationClick:g,onShowOnlyLikedChange:p,onSortOrderChange:h,selectedHashtagId:N}=e,w=(0,I.useRouter)(),k=(0,I.useSearchParams)(),S=(0,F.NL)(),C=Number(k.get("page")||"1"),{data:Y=[]}
1=(0,T.S)(N),q=function(e,t){let[r,a]=(0,s.useState)(e);return(0,s.useEffect)(()=>{if(""===e||null==e){a(e);return}let t=setTimeout(()=>a(e),500);return()=>clearTimeout(t)},[e,500]),r}(n,0),U=(0,ee.eI)(),{data:V}=(0,_.a)({queryKey:["session"],queryFn:async()=>await U.auth.getSession()}),J=null==V?void 0:null===(t=V.data)||void 0===t?void 0:t.session,{data:W,isLoading:K,error:M}=(0,_.a)({queryKey:["tools",C,i,c,m,d,q,null==J?void 0:null===(r=J.user)||void 0===r?void 0:r.id],queryFn:async()=>{try{if(d&&!(null==J?void 0:J.user))return R.Am.error("Please sign in to view your liked tools"),{tools:[],totalPages:0,totalCount:0};let e=new URLSearchParams;e.set("page",C.toString()),e.set("sort",m),d&&e.set("showOnlyLiked","true"),q&&e.set("search",q),i.length>0&&i.forEach(t=>{e.append("category",t)}),c.length>0&&c.forEach(t=>{e.append("monetization",t)});let t=await fetch("/api/tools?".concat(e.toString()));if(!t.ok)throw Error("Failed to fetch tools");return t.json()}catch(e){throw console.error("Error fetching tools:",e),e}},enabled:!d||!!(null==J?void 0:J.user),refetchOnWindowFocus:!1,staleTime:3e4}),B=(0,s.useMemo)(()=>N&&Y.length>0?Y:(null==W?void 0:W.tools)||[],[N,Y,null==W?void 0:W.tools]),G=async e=>{try{if(!(null==J?void 0:J.user)){R.Am.error("Please sign in to like tools");return}let t=B.find(t=>t.slug===e);if(!t)return;let r=t.isFavorited;S.setQueryData(["tools"],t=>t?{...t,tools:t.tools.map(t=>t.slug===e?{...t,favoriteCount:(t.favoriteCount||0)+(r?-1:1),isFavorited:!r}:t)}:t);let a=await fetch("/api/favorites",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({toolSlug:e,increment:!r})});if(!a.ok)throw Error("Failed to toggle favorite");let s=await a.json();S.invalidateQueries({queryKey:["tools"]}),w.refresh(),E.ZP.capture("tool_favorited",{tool_slug:e,action:r?"unfavorite":"favorite",favorite_count:s.count})}catch(e){console.error("Error toggling favorite:",e),R.Am.error("Failed to update favorite"),S.invalidateQueries({queryKey:["tools"]})}},H=e=>{let t=new URLSearchParams(k.toString());t.set("page",e.toString()),w.push("/?".concat(t.toString()))};(0,s.useEffect)(()=>{q&&E.ZP.capture("search_performed",{query:q,results_count:B.length})},[q,B.length]);let X=e=>{E.ZP.capture("tool_link_clicked",{tool_name:e.name,tool_slug:e.slug,source:"landing_page"})};return(0,s.useEffect)(()=>{if(q!==n){let e=new URLSearchParams(k.toString());e.set("page","1"),q?e.set("search",q):e.delete("search"),w.push("/?".concat(e.toString()))}},[q]),(0,a.jsxs)("div",{className:"space-y-8",children:[(0,a.jsxs)("div",{className:"space-y-6",children:[(0,a.jsx)("div",{className:"flex flex-wrap gap-2 justify-center",children:et.map(e=>(0,a.jsx)(D.pn,{children:(0,a.jsxs)(D.u,{delayDuration:300,children:[(0,a.jsx)(D.aJ,{asChild:!0,children:(0,a.jsxs)(Z.Z,{pressed:i.includes(e.name),onPressedCh
1ange:()=>x(e.name),className:(0,L.cn)("relative px-3 h-8 rounded-lg font-medium transition-all duration-200","bg-black/40 border border-gray-800/60","hover:border-purple-500/30 hover:bg-black/60",i.includes(e.name)?"bg-purple-500/10 border-purple-500/50 text-purple-400 shadow-[0_0_10px_rgba(168,85,247,0.1)]":"text-gray-400 hover:text-gray-300"),children:[(0,a.jsx)(e.icon,{className:(0,L.cn)("mr-1.5 h-3.5 w-3.5",e.color)}),(0,a.jsx)("span",{className:"relative z-10",children:e.name})]})}),(0,a.jsx)(D._v,{side:"bottom",className:"max-w-[300px] bg-gray-900/95 border-gray-800 text-gray-200",children:e.description})]})},e.name))}),(0,a.jsxs)("div",{className:"flex flex-wrap gap-4 justify-center items-center",children:[(0,a.jsx)("div",{className:"flex items-center",children:(0,a.jsx)(Q,{selectedHashtagId:N,onSelect:e=>{if(null!==e){let t=e.toString();x(t),g(t)}}})}),(0,a.jsx)("div",{className:"flex flex-wrap gap-2",children:er.map(e=>(0,a.jsx)(A.z,{variant:c.includes(e.name)?"default":"outline",onClick:()=>g(e.name),className:(0,L.cn)("text-sm h-10 px-4 flex items-center justify-center rounded-full",c.includes(e.name)?"Enterprise"===e.name?"bg-indigo-500/10 text-indigo-400 hover:bg-indigo-500/20":"Subscription"===e.name?"bg-blue-500/10 text-blue-400 hover:bg-blue-500/20":"Pay-Per-Use"===e.name?"bg-purple-500/10 text-purple-400 hover:bg-purple-500/20":"Freemium"===e.name?"bg-orange-500/10 text-orange-400 hover:bg-orange-500/20":"bg-green-500/10 text-green-400 hover:bg-green-500/20":"Enterprise"===e.name?"text-indigo-400 hover:bg-indigo-500/10":"Subscription"===e.name?"text-blue-400 hover:bg-blue-500/10":"Pay-Per-Use"===e.name?"text-purple-400 hover:bg-purple-500/10":"Freemium"===e.name?"text-orange-400 hover:bg-orange-500/10":"text-green-400 hover:bg-green-500/10"),children:e.name},e.name))})]}),(0,a.jsx)(z.Card,{className:"bg-gradient-to-r from-purple-950/30 via-black/40 to-black/40 border-gray-800/50 backdrop-blur-sm max-w-3xl mx-auto hover:from-purple-950/40 hover:via-black/50 hover:to-black/50 transition-all duration-300",children:(0,a.jsx)(z.CardContent,{className:"p-4",children:(0,a.jsxs)("div",{className:"flex flex-col sm:flex-row items-center gap-4",children:[(0,a.jsxs)("div",{className:"flex items-center gap-4 flex-shrink-0",children:[(0,a.jsx)("div",{className:"p-2 rounded-lg bg-gradient-to-br from-purple-500/10 to-blue-500/10 border border-purple-500/20",children:(0,a.jsx)(o.Z,{className:"h-5 w-5 text-purple-400"})}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-lg font-semibold",children:"Newsletter"}),(0,a.jsx)("p",{className:"text-sm text-gray-400",children:"Join 1000+ AI enthusiasts"})]})]}),(0,a.jsx)("form",{onSubmit:async e=>{e.preventDefault();let t=e.target,r=t.elements.namedItem("email").value;try{if(!(await fetch("/api/subscribe",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({email:r})})).ok)throw Error("Failed to subscribe");R.Am.success("Thanks for signing up! Latest AI tools, news and trends will be sent to your inbox."),t.reset()}catch(e){console.error("Subscription error:",e),R.Am.error("Failed to subscribe. Please try again.")}},className:"flex-1 flex items-center w-full",children:(0,a.jsxs)("div",{className:"relative flex-1",children:[(0,a.jsx)(P.I,{type:"email",name:"email",placeholder:"Enter your email",className:"w-full pl-4 pr-24 py-2 bg-black/40 border-gray-800 focus:border-purple-500 rounded-lg placeholder:text-gray-500",required:!0}),(0,a.jsx)("div",{className:"absolute right-1 top-1/2 -translate-y-1/2",children:(0,a.jsx)(A.z,{type:"submit",className:"bg-purple-500 hover:bg-purple-600 text-white px-3 h-7 rounded-md transition-all duration-200 transform hover:scale-105 text-sm",children:"Subscribe"})})]})})]})})})]}),(0,a.jsxs)("div",{className:"space-y-3",children:[(0,a.jsxs)("div",{className:"flex justify-end items-center gap-3",children:[(0,a.jsxs)(Z.Z,{pressed:d,onPressedCh
1ange:p,className:(0,L.cn)("relative px-3 h-8 rounded-lg font-medium transition-all duration-200","bg-black/40 border border-gray-800/60","hover:border-purple-500/30 hover:bg-black/60",d?"bg-purple-500/10 border-purple-500/50 text-purple-400 shadow-[0_0_10px_rgba(168,85,247,0.1)]":"text-gray-400 hover:text-gray-300"),children:[(0,a.jsx)(f.Z,{className:"mr-1.5 h-3.5 w-3.5",fill:d?"currentColor":"none"}),"Your likes"]}),(0,a.jsxs)(O.h_,{children:[(0,a.jsx)(O.$F,{asChild:!0,children:(0,a.jsx)(A.z,{variant:"ghost",className:(0,L.cn)("relative px-3 h-8 rounded-lg font-medium transition-all duration-200","bg-black/40 border border-gray-800/60","hover:border-purple-500/30 hover:bg-black/60","text-gray-400 hover:text-gray-300"),children:(0,a.jsx)(b.Z,{className:"h-3.5 w-3.5"})})}),(0,a.jsxs)(O.AW,{align:"end",className:"w-40 bg-gray-900/95 border-gray-800",children:[(0,a.jsxs)(O.Xi,{onClick:()=>h("rank"),className:(0,L.cn)("cursor-pointer text-xs","rank"===m&&"bg-purple-500/10 text-purple-400"),children:[(0,a.jsx)(y.Z,{className:"mr-2 h-3 w-3"})," Highest Rank"]}),(0,a.jsxs)(O.Xi,{onClick:()=>h("likes"),className:(0,L.cn)("cursor-pointer text-xs","likes"===m&&"bg-purple-500/10 text-purple-400"),children:[(0,a.jsx)(f.Z,{className:"mr-2 h-3 w-3"})," Most Popular"]}),(0,a.jsxs)(O.Xi,{onClick:()=>h("name-asc"),className:(0,L.cn)("cursor-pointer text-xs","name-asc"===m&&"bg-purple-500/10 text-purple-400"),children:[(0,a.jsx)(b.Z,{className:"mr-2 h-3 w-3"})," A to Z"]}),(0,a.jsxs)(O.Xi,{onClick:()=>h("name-desc"),className:(0,L.cn)("cursor-pointer text-xs","name-desc"===m&&"bg-purple-500/10 text-purple-400"),children:[(0,a.jsx)(b.Z,{className:"mr-2 h-3 w-3"})," Z to A"]})]})]})]}),K?(0,a.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,a.jsx)("div",{className:"text-xl text-gray-400",children:"Loading tools..."})}):M?(0,a.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,a.jsx)("div",{className:"text-xl text-red-400",children:"Error loading tools. Please try again."})}):B&&0!==B.length?(0,a.jsx)("div",{className:"grid grid-cols-1 gap-4",children:B.map((e,t)=>{var r;let s=(null==e?void 0:e.id)&&(null==e?void 0:e.slug)?"tool-".concat(e.id,"-").concat(e.slug):"tool-".concat(t,"-").concat(Date.now());return(0,a.jsx)("div",{className:"group relative overflow-hidden",children:(0,a.jsxs)("div",{className:(0,L.cn)("relative flex items-stretch rounded-xl border border-gray-800/50 hover:border-gray-700/50 backdrop-blur-sm transition-all duration-300",e.featured?"bg-gradient-to-br from-amber-950/30 via-black/40 to-black/40 hover:from-amber-950/40 hover:via-black/50 hover:to-black/50":"bg-gradient-to-br from-purple-950/10 via-black/40 to-black/40 hover:from-purple-950/20 hover:via-black/50 hover:to-black/50"),children:[(0,a.jsx)("div",{className:(0,L.cn)("absolute left-0 top-0 h-full w-[3px] bg-gradient-to-b rounded-l",e.featured?"from-yellow-300/80 via-amber-500/80 to-yellow-600/80 shadow-[0_0_10px_rgba(251,191,36,0.3)]":"from-purple-500/50 to-blue-500/50")}),(0,a.jsx)("div",{className:"flex-1 p-4",children:(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-12 gap-4",children:[(0,a.jsxs)("div",{className:"col-span-1 md:col-span-8 flex flex-col md:flex-row gap-3",children:[(0,a.jsx)("div",{className:"flex md:flex-col items-center gap-1.5",children:(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)("div",{className:"w-10 h-10 rounded-lg overflow-hidden bg-white border border-gray-800 shadow-lg cursor-pointer group/logo",onClick:()=>w.push("/tools/".concat(e.slug)),children:(0,a.jsx)("img",{src:e.image||"/placeholder.svg",alt:"".concat(e.name," logo"),className:"w-full h-full object-contain p-1.5 transition-transform duration-200 group-hover/logo:scale-105",loading:"lazy",onError:e=>{let t=e.target;t.style.opacity="0.5",t.style.filter="grayscale(100%)"}})}),(0,a.jsxs)(A.z,{variant:"ghost",size:"sm",onClick:t=>{t.stopPropagation(),G(e.slug)},className:(0,L.cn)("absolute -bottom-1 -right-1 w-5 h-5 rounded-full p-0 hover:bg-gray-800/80 group/like",e.isFavorited?"bg-gray-900/90 text-purple-400":"bg-gray-900/90 text-gray-400 hover:text-purple-400"),children:[(0,a.jsx)(f.Z,{className:"h-2.5 w-2.5 transform group-hover/like:scale-110 transition-transform",fill:e.isFavorited?"currentColor":"none"}),(0,a.jsx)("span",{className:"sr-only",children:e.isFavorited?"Remove from favorites":"Add to favorites"})]})]})}),(0,a.jsxs)("div",{className:"flex-1 min-w-0 flex flex-col gap-1.5",children:[(0,a.jsxs)("div",{className:"flex flex-col md:flex-row items-start md:items-center gap-2",children:[(0,a.jsx)(l.default,{href:"/tools/".concat(e.slug),className:"group/link text-lg font-semibold text-purple-400 block truncate",onClick:()=>X(e),children:(0,a.jsx)("span",{className:"bg-gradient-to-r from-white/0 via-white/0 to-white/0 hover:from-white/5 hover:via-white/10 hover:to-white/5 bg-[length:100%_2px] bg-no-repeat bg-bottom pb-0.5 transition-[background] duration-150",children:e.name})}),(0,a.jsx)("div",{className:"flex flex-wrap items-center gap-1.5",children:Array.isArray(e.monetization)?e.monetization.map(e=>(0,a.jsx)("span",{className:(0,L.cn)("inline-flex items-center px-2 py-0.5 text-[10px] font-medium rounded-full","Enterprise"===e?"bg-indigo-500/10 text-indigo-400 border border-indigo-500/20":"Subscription"===e?"bg-blue-500/10 text-blue-400 border border-blue-500/20":"Pay-Per-Use"===e?"bg-purple-500/10 text-purple-400 border border-purple-500/20":"Freemium"===e?"bg-orange-500/10 text-orange-400 border border-orange-500/20":"bg-green-500/10 text-green-400 border border-green-500/20"),children:e},e)):(0,a.jsx)("span",{className:(0,L.cn)("inline-flex items-center px-2 py-0.5 text-[10px] font-medium rounded-full","Enterprise"===e.monetization?"bg-indigo-500/10 text-indigo-400 border border-indigo-500/20":"Subscription"===e.monetization?"bg-blue-500/10 text-blue-400 border border-blue-500/20":"Pay-Per-Use"===e.monetization?"bg-purple-500/10 text-purple-400 border border-purple-500/20":"Freemium"===e.monetization?"bg-orange-500/10 text-orange-400 border border-orange-500/20":"bg-green-500/10 text-green-400 border border-green-500/20"),children:e.monetization})}),e.pricing&&(0,a.jsx)("span",{className:"text-[10px] text-gray-400",children:e.pricing})]}),(0,a.jsx)(l.default,{href:"/tools/".concat(e.slug),onClick:()=>X(e),className:"text-sm text-gray-300 line-clamp-2 hover:text-gray-200 transition-colors",children:e.description})]})]}),(0,a.jsxs)("div",{className:"col-span-1 md:col-span-4 flex flex-col md:flex-row items-start md:items-center justify-end gap-4",children:[(0,a.jsxs)("div",{className:"flex flex-col items-end gap-1 w-full md:w-auto",children:[null===(r=e.categories)||void 0===r?void 0:r.slice(0,3).map((e,t)=>{let r=et.find(t=>t.name===e),s=null==r?void 0:r.icon;return(0,a.jsxs)("span",{className:(0,L.cn)("px-1.5 py-0.5 text-sm rounded-full flex items-center gap-0.5 bg-gray-900/60 border border-gray-700/50 whitespace-nowrap",(null==r?void 0:r.color)||"text-gray-400"),children:[s&&(0,a.jsx)(s,{className:"h-3 w-3 flex-shrink-0"}),(0,a.jsx)("span",{className:"truncate",children:e})]},t)}),e.categories&&e.categories.length>3&&(0,a.jsxs)("span",{className:"text-sm text-gray-400",children:["+",e.categories.length-3," more"]}),e.hashtags&&e.hashtags.length>0&&(0,a.jsxs)("div",{className:"flex flex-wrap justify-end gap-1 mt-1",children:[e.hashtags.slice(0,2).map(e=>(0,a.jsxs)("span",{className:"px-1.5 py-0.5 text-xs rounded-full bg-blue-500/10 text-blue-400 border border-blue-500/20 whitespace-nowrap",children:["#",e.name]},e.id)),e.hashtags.length>2&&(0,a.jsxs)("span",{className:"text-xs text-gray-400",children:["+",e.hashtags.length-2," more"]})]})]}),(0,a.jsxs)("div",{className:"relative w-10 h-10 group cursor-pointer",onClick:()=>w.push("/tools/".concat(e.slug)),children:[(0,a.jsx)("div",{className:(0,L.cn)("absolute inset-0 bg-gradient-to-br rounded-full transition-transform duration-200 group-hover:scale-105",e.communityRankScore&&e.communityRankScore>0?ea(e.communityRankScore).outer:"from-gray-600 to-gray-500")}),(0,a.jsx)("div",{className:"absolute inset-0.5 bg-gray-900 rounded-full flex items-center justify-center",children:(0,a.jsx)("span",{className:(0,L.cn)("text-transparent bg-clip-text bg-gradient-to-br font-bold text-base",e.communityRankScore&&e.communityRankScore>0?ea(e.communityRankScore).text:"from-gray-400 to-gray-400"),children:e.communityRankScore?Math.round(e.communityRankScore):0})})]})]})]})})]})},s)})}):(0,a.jsx)("div",{className:"flex items-center justify-center py-12 border border-gray-800/60 rounded-lg bg-black/40",children:(0,a.jsx)("div",{className:"text-xl text-gray-400",children:"No tools found matching your filters"})}),B&&B.length>0&&(null==W?void 0:W.pagination)&&(0,a.jsx)("div",{className:"flex justify-center mt-8",children:(0,a.jsxs)("nav",{className:"flex justify-center items-center space-x-2","aria-label":"Pagination",children:[(0,a.jsxs)(A.z,{variant:"outline",size:"icon",onClick:()=>H(C-1),disabled:1===C,className:"h-8 w-8",children:[(0,a.jsx)("span",{className:"sr-only",children:"Previous page"}),(0,a.jsx)(v.Z,{className:"h-4 w-4"})]}),(0,a.jsx)("div",{className:"flex items-center space-x-2",children:Array.from({length:W.pagination.totalPages},(e,t)=>t+1).map(e=>(0,a.jsx)(A.z,{variant:e===C?"default":"outline",size:"icon",onClick:()=>H(e),className:"h-8 w-8",children:e},e))}),(0,a.jsxs)(A.z,{variant:"outline",size:"icon",onClick:()=>H(C+1),disabled:C===W.pagination.totalPages,className:"h-8 w-8",children:[(0,a.jsx)("span",{className:"sr-only",children:"Next page"}),(0,a.jsx)(j.Z,{className:"h-4 w-4"})]})]})})]})]})}let el="AI Tools Directory - Find and Compare the Best AI Tools",eo="Discover and compare the best AI tools for your needs. From language models to image generation, find the perfect AI solution with our comprehensive directory.";function en(){let e=(0,I.useRouter)(),t=(0,I.useSearchParams)(),[r,n]=(0,s.use
1State)(""),[i,c]=(0,s.useState)("rank"),[d,m]=(0,s.useState)("true"===t.get("showOnlyLiked")),u=t.getAll("category"),x=t.getAll("monetization"),{data:g=[],isLoading:h,error:f}=(0,_.a)({queryKey:["latest-threads"],queryFn:async()=>{try{let e=await fetch("/api/community/threads?limit=2&sort=latest");if(!e.ok){let t=await e.json();throw console.error("Threads API error:",t),Error(t.error||"Failed to fetch threads: ".concat(e.status))}return((await e.json()).threads||[]).map(e=>({...e,createdAt:new Date(e.createdAt).toISOString(),updatedAt:new Date(e.updatedAt).toISOString()}))}catch(e){throw console.error("Error in threads query:",e),e}},staleTime:3e5,refetchOnWindowFocus:!1}),{data:b=[],isLoading:y}=(0,_.a)({queryKey:["latest-tools"],queryFn:async()=>{let e=await fetch("/api/tools/latest?limit=2");if(!e.ok)throw Error("Failed to fetch latest tools");return((await e.json()).tools||[]).map(e=>({...e,createdAt:new Date(e.createdAt).toISOString(),updatedAt:new Date(e.updatedAt).toISOString()}))},staleTime:3e5,refetchOnWindowFocus:!1}),{data:v=[],isLoading:j}=(0,_.a)({queryKey:["most-visited-tools"],queryFn:async()=>{let e=await fetch("/api/tools/most-visited?limit=3");if(!e.ok)throw Error("Failed to fetch most visited tools");return(await e.json()).tools||[]},staleTime:3e5,refetchOnWindowFocus:!1}),Z=r=>{n(r);let a=new URLSearchParams(t.toString());a.set("page","1"),r?a.set("search",r):a.delete("search"),e.push("/?".concat(a.toString()))};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)($(),{children:[(0,a.jsx)("title",{children:el}),(0,a.jsx)("meta",{name:"description",content:eo}),(0,a.jsx)("meta",{name:"keywords",content:"AI tools, artificial intelligence, machine learning, language models, image generation, business automation, productivity tools"}),(0,a.jsx)("meta",{property:"og:title",content:"AI Tools Directory - Find and Compare the Best AI Tools"}),(0,a.jsx)("meta",{property:"og:description",content:"Discover and compare the best AI tools for your needs. From language models to image generation, find the perfect AI solution with our comprehensive directory."}),(0,a.jsx)("meta",{property:"og:type",content:"website"}),(0,a.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,a.jsx)("meta",{name:"twitter:title",content:el}),(0,a.jsx)("meta",{name:"twitter:description",content:eo})]}),(0,a.jsxs)("div",{className:"space-y-12",children:[(0,a.jsxs)("section",{className:"text-center space-y-6 mx-auto",children:[(0,a.jsxs)("div",{className:"sr-only",children:[(0,a.jsx)("h1",{children:"Find the Perfect AI Tools for Your Needs"}),(0,a.jsx)("h2",{children:"AI Tools Directory. Sanity not included."}),(0,a.jsx)("p",{children:"Explore our curated collection of AI tools across various categories. From language models to image generation, find the perfect solution for your needs."})]}),(0,a.jsxs)("div",{className:"space-y-4",children:[(0,a.jsx)("h2",{className:"text-4xl font-bold text-transparent bg-clip-text bg-gradient-to-r from-white via-white to-gray-400",children:"Discover, Design, Execute Your AI Vision"}),(0,a.jsxs)("p",{className:"text-xl text-gray-400",children:["Discover ",(0,a.jsx)("span",{className:"text-white font-semibold",children:"community ranked AI tools"})," and follow tailored  "," ",(0,a.jsx)("span",{className:"text-blue-400 font-semibold",children:"blueprints"})," to bring your AI vision to life"]}),(0,a.jsxs)("div",{className:"flex justify-center gap-6 text-sm text-gray-400",children:[(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(N.Z,{className:"h-4 w-4 text-purple-400"}),(0,a.jsx)("span",{children:"Community Ranked"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(o.Z,{className:"h-4 w-4 text-blue-400"}),(0,a.jsx)("span",{children:"Real User Reviews"})]}),(0,a.jsxs)("div",{className:"flex items-center gap-2",children:[(0,a.jsx)(w.Z,{className:"h-4 w-4 text-green-400"}),(0,a.jsx)("span",{children:"Daily Updates"})]})]})]}),(0,a.jsx)("div",{className:"max-w-3xl mx-auto",children:(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsx)(k.Z,{className:"absolute left-4 top-1/2 transform -translate-y-1/2 h-5 w-5 text-gray-400"}),(0,a.jsx)(P.I,{type:"text",placeholder:"Search AI tools by name, category, or feature...",value:r,onChange:e=>Z(e.target.value),className:"w-full pl-12 pr-4 py-6 bg-black/40 border-gray-700 focus:border-purple-500 rounded-xl text-lg placeholder:text-gray-500"})]})})]}),(0,a.jsx)(es,{searchQuery:r,selectedCategories:u,selectedMonetization:x,showOnlyLiked:d,sortOrder:i,onSearchChange:Z,onCategoryClick:r=>{let a=new URLSearchParams(t.toString());if(a.getAll("category").includes(r)){let e=a.getAll("category").filter(e=>e!==r);
1a.delete("category"),e.forEach(e=>a.append("category",e))}else a.append("category",r);a.set("page","1"),e.push("/?".concat(a.toString()))},onMonetizationClick:r=>{let a=new URLSearchParams(t.toString());if(a.getAll("monetization").includes(r)){let e=a.getAll("monetization").filter(e=>e!==r);a.delete("monetization"),e.forEach(e=>a.append("monetization",e))}else a.append("monetization",r);a.set("page","1"),e.push("/?".concat(a.toString()))},onShowOnlyLikedChange:r=>{let a=new URLSearchParams(t.toString());r?a.set("showOnlyLiked","true"):a.delete("showOnlyLiked"),a.set("page","1"),e.push("/?".concat(a.toString())),m(r)},onSortOrderChange:c,selectedHashtagId:null}),(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4",children:[(0,a.jsxs)(z.Card,{className:"relative overflow-hidden min-h-[300px] md:min-h-0",children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-cover bg-center opacity-20",style:{backgroundImage:'url("https://hebbkx1anhila5yf.public.blob.vercel-storage.com/languageleaders.jpg-P6lV6EaCJy6zcPcNo5TfHYhG9zcPzM.jpeg")'}}),(0,a.jsx)("div",{className:"absolute inset-0 bg-gradient-to-br from-black/90 to-gray-900/90"}),(0,a.jsxs)(z.CardContent,{className:"relative p-4 space-y-3",children:[(0,a.jsxs)("h3",{className:"text-xl font-bold flex items-center mb-3 pb-2 border-b border-gray-700",children:[(0,a.jsx)(o.Z,{className:"mr-2 h-5 w-5 text-purple-500"}),"Community"]}),(0,a.jsxs)("div",{className:"space-y-3",children:[h?(0,a.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,a.jsx)("div",{className:"text-sm text-gray-400",children:"Loading threads..."})}):g&&g.length>0?g.slice(0,2).map(e=>(0,a.jsx)("div",{className:"group",children:(0,a.jsxs)(l.default,{href:"/community/thread/".concat(e.id),className:"block group-hover:text-purple-400 transition-colors",children:[(0,a.jsx)("h4",{className:"font-medium text-gray-100 line-clamp-1",children:e.title}),(0,a.jsx)("p",{className:"text-sm text-gray-400 line-clamp-1",children:e.content}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mt-1 text-xs text-gray-500",children:[(0,a.jsx)("span",{children:new Date(e.createdAt).toLocaleDateString()}),(0,a.jsx)("span",{children:"•"}),(0,a.jsxs)("span",{children:[e.replyCount||0," replies"]})]})]})},e.id)):(0,a.jsx)("div",{className:"text-sm text-gray-400 text-center py-4",children:"No threads available"}),(0,a.jsxs)(l.default,{href:"/community",className:"inline-flex items-center text-sm text-purple-400 hover:text-purple-300 transition-colors",children:["View all threads",(0,a.jsx)(S.Z,{className:"ml-1 h-3 w-3"})]})]})]})]}),(0,a.jsxs)(z.Card,{className:"relative overflow-hidden min-h-[300px] md:min-h-0",children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-cover bg-center opacity-20",style:{backgroundImage:'url("https://hebbkx1anhila5yf.public.blob.vercel-storage.com/stunningvisuals.jpg-FlRNbJNzEnxLvw7nG8cHWJxngE41N8.jpeg")'}}),(0,a.jsx)("div",{className:"absolute inset-0 bg-gradient-to-br from-black/90 to-gray-900/90"}),(0,a.jsxs)(z.CardContent,{className:"relative p-4 space-y-3",children:[(0,a.jsxs)("h3",{className:"text-xl font-bold flex items-center mb-3 pb-2 border-b border-gray-700",children:[(0,a.jsx)(p.Z,{className:"mr-2 h-5 w-5 text-purple-500"}),"Latest Additions"]}),y?(0,a.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,a.jsx)("div",{className:"text-sm text-gray-400",children:"Loading latest tools..."})}):b&&b.length>0?(0,a.jsxs)("div",{className:"space-y-3",children:[b.map((e,t)=>{var r;let s=(null==e?void 0:e.id)&&(null==e?void 0:e.slug)?"latest-".concat(e.id,"-").concat(e.slug):"latest-".concat(t,"-").concat(Date.now());return(0,a.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,a.jsx)("div",{className:"relative w-12 h-12 rounded overflow-hidden bg-white border border-gray-800 shadow-lg flex-shrink-0",children:(0,a.jsx)("img",{src:e.image||"/placeholder.svg",alt:e.name,className:"w-full h-full object-contain p-1.5",loading:"lazy",onError:e=>{let t=e.target;t.style.opacity="0.5",t.style.filter="grayscale(100%)"}})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(l.default,{href:"/tools/".concat(e.slug),className:"text-lg font-semibold text-gray-100 hover:text-purple-400 transition-colors",children:e.name}),(0,a.jsx)("div",{className:"flex items-center gap-2 mt-2",children:null===(r=e.categories)||void 0===r?void 0:r.slice(0,2).map((e,t)=>(0,a.jsx)("span",{className:"px-2 py-0.5 text-xs rounded-full bg-gray-800 text-gray-300",children:e},t))})]})]},s)}),(0,a.jsxs)(A.z,{variant:"link",className:"inline-flex items-center text-sm text-purple-400 hover:text-purple-300 transition-colors p-0",onClick:()=>{c("created-desc");let t=new URLSearchParams;t.set("sort","created-desc"),t.set("page","1"),e.push("/?".concat(t.toString()))},children:["View latest tools",(0,a.jsx)(S.Z,{className:"ml-1 h-3 w-3"})]})]}):(0,a.jsx)("div",{className:"text-sm text-gray-400 text-center py-4",children:"No tools available"})]})]}),(0,a.jsxs)(z.Card,{className:"relative overflow-hidden min-h-[300px] md:min-
1h-0",children:[(0,a.jsx)("div",{className:"absolute inset-0 bg-cover bg-center opacity-20",style:{backgroundImage:'url("https://hebbkx1anhila5yf.public.blob.vercel-storage.com/buildyourbusiness.jpg-ySsVDWCYpqtCxBDBhk0nge7hnZgMLJ.jpeg")'}}),(0,a.jsx)("div",{className:"absolute inset-0 bg-gradient-to-br from-black/90 to-gray-900/90"}),(0,a.jsxs)(z.CardContent,{className:"relative p-4 space-y-3",children:[(0,a.jsxs)("h3",{className:"text-xl font-bold flex items-center mb-3 pb-2 border-b border-gray-700",children:[(0,a.jsx)(C.Z,{className:"mr-2 h-5 w-5 text-purple-500"}),"Most Visited"]}),j?(0,a.jsx)("div",{className:"flex items-center justify-center py-4",children:(0,a.jsx)("div",{className:"text-sm text-gray-400",children:"Loading most visited tools..."})}):v&&v.length>0?(0,a.jsx)("div",{className:"space-y-3",children:v.map((e,t)=>{let r=(null==e?void 0:e.id)&&(null==e?void 0:e.slug)?"visited-".concat(e.id,"-").concat(e.slug):"visited-".concat(t,"-").concat(Date.now());return(0,a.jsxs)("div",{className:"flex items-center space-x-3",children:[(0,a.jsx)("div",{className:"relative w-12 h-12 rounded overflow-hidden bg-white border border-gray-800 shadow-lg flex-shrink-0",children:(0,a.jsx)("img",{src:e.image||"/placeholder.svg",alt:e.name,className:"w-full h-full object-contain p-1.5",loading:"lazy",onError:e=>{let t=e.target;t.style.opacity="0.5",t.style.filter="grayscale(100%)"}})}),(0,a.jsxs)("div",{children:[(0,a.jsx)(l.default,{href:"/tools/".concat(e.slug),className:"text-lg font-semibold text-gray-100 hover:text-purple-400 transition-colors",children:e.name}),(0,a.jsxs)("div",{className:"flex items-center gap-2 mt-1 text-xs text-gray-500",children:[(0,a.jsx)(C.Z,{className:"h-3.5 w-3.5"}),(0,a.jsxs)("span",{children:[e.viewCount.toLocaleString()," views"]})]})]})]},r)})}):(0,a.jsx)("div",{className:"text-sm text-gray-400 text-center py-4",children:"No tools available"})]})]})]}),(0,a.jsx)("section",{className:"mt-16 border-t border-gray-800/50 pt-8",children:(0,a.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-8",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-lg font-semibold text-white mb-4",children:"Why Choose Our AI Directory?"}),(0,a.jsxs)("ul",{className:"space-y-2 text-gray-400",children:[(0,a.jsx)("li",{children:"✓ Comprehensive tool reviews and ratings"}),(0,a.jsx)("li",{children:"✓ Regular updates with new AI tools"}),(0,a.jsx)("li",{children:"✓ Community-driven insights"}),(0,a.jsx)("li",{children:"✓ Detailed feature comparisons"})]})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-lg font-semibold text-white mb-4",children:"Popular Categories"}),(0,a.jsx)("ul",{className:"space-y-2 text-gray-400",children:et.slice(0,5).map(e=>(0,a.jsxs)("li",{className:"flex items-center gap-2",children:[(0,a.jsx)(e.icon,{className:(0,L.cn)("h-4 w-4",e.color)}),e.name]},e.name))})]}),(0,a.jsxs)("div",{children:[(0,a.jsx)("h3",{className:"text-lg font-semibold text-white mb-4",children:"Getting Started"}),(0,a.jsxs)("ul",{className:"space-y-2 text-gray-400",children:[(0,a.jsx)("li",{children:"1. Browse categories or search tools"}),(0,a.jsx)("li",{children:"2. Compare features and pricing"}),(0,a.jsx)("li",{children:"3. Read community reviews"}),(0,a.jsx)("li",{children:"4. Try tools and share feedback"})]})]})]})})]})]})}function ei(){return(0,a.jsx)(s.Suspense,{fallback:(0,a.jsx)("div",{className:"flex items-center justify-center min-h-[60vh]",children:(0,a.jsx)("div",{className:"text-xl text-gray-400",children:"Loading..."})}),children:(0,a.jsx)(en,{})})}},66070:function(e,t,r){"use strict";r.d(t,{Card:function(){return o},CardContent:function(){return c},Ol:function(){return n},eW:function(){return d},ll:function(){return i}});var a=r(57437),s=r(2265),l=r(94508);let o=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,l.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",r),...s})});o.displayName="Card";let n=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,l.cn)("flex flex-col space-y-1.5 p-6",r),...s})});
1n.displayName="CardHeader";let i=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("h3",{ref:t,className:(0,l.cn)("text-2xl font-semibold leading-none tracking-tight",r),...s})});i.displayName="CardTitle",s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("p",{ref:t,className:(0,l.cn)("text-sm text-muted-foreground",r),...s})}).displayName="CardDescription";let c=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,l.cn)("p-6 pt-0",r),...s})});c.displayName="CardContent";let d=s.forwardRef((e,t)=>{let{className:r,...s}=e;return(0,a.jsx)("div",{ref:t,className:(0,l.cn)("flex items-center p-6 pt-0",r),...s})});d.displayName="CardFooter"},57054:function(e,t,r){"use strict";r.d(t,{J2:function(){return n},xo:function(){return i},yk:function(){return c}});var a=r(57437),s=r(2265),l=r(27312),o=r(94508);let n=l.fC,i=l.xz,c=s.forwardRef((e,t)=>{let{className:r,align:s="center",sideOffset:n=4,...i}=e;return(0,a.jsx)(l.h_,{children:(0,a.jsx)(l.VY,{ref:t,align:s,sideOffset:n,className:(0,o.cn)("z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r),...i})})});c.displayName=l.VY.displayName},81103:function(e,t,r){"use strict";r.d(t,{_v:function(){return d},aJ:function(){return c},pn:function(){return n},u:function(){return i}});var a=r(57437),s=r(2265),l=r(61312),o=r(94508);let n=l.zt,i=l.fC,c=l.xz,d=s.forwardRef((e,t)=>{let{className:r,sideOffset:s=4,...n}=e;return(0,a.jsx)(l.VY,{ref:t,sideOffset:s,className:(0,o.cn)("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",r),...n})});d.displayName=l.VY.displayName},2238:function(e,t,r){"use strict";r.d(t,{S:function(){return l},i:function(){return s}});var a=r(20016);function s(){return(0,a.a)({queryKey:["hashtags"],queryFn:async()=>{let e=await fetch("/api/hashtags");if(!e.ok)throw Error("Failed to fetch hashtags");return e.json()}})}function l(e){return(0,a.a)({queryKey:["tools","hashtag",e],queryFn:async()=>{if(!e)return[];let t=await fetch("/api/hashtags/".concat(e,"/tools"));if(!t.ok)throw Error("Failed to fetch tools");return t.json()},enabled:!!e})}}},function(e){e.O(0,[5878,4938,2972,6614,3506,7116,9027,9763,16,9465,8714,410,1166,1883,2971,2117,1744],function(){return e(e.s=10193)}),_N_E=e.O()}]);

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.