1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,4627,e=>{"use strict";var s=e.i(57710),t=e.i(241),r=e.i(55123),a=e.i(13208),l=e.i(25309),i=e.i(25091);let n=(0,e.i(7271).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);var d=e.i(47163),o=e.i(67881),c=e.i(23750);e.s(["SoftwareTable",0,function({software:e,showCategories:x=!0,categoriesColumnTitle:u,actionButtons:m,showFilterControls:h=!0,excludeCategory:f}){let p=u??(f?"Other Categories":"Categories"),[g,j]=(0,t.useState)(""),[y,v]=(0,t.useState)([]),[b,N]=(0,t.useState)(!1),w=(0,t.useMemo)(()=>{let s=new Set;return e.forEach(e=>{e.category.split(",").map(e=>e.trim()).forEach(e=>{e&&(!f||(0,d.slugify)(e)!==(0,d.slugify)(f))&&s.add(e)})}),Array.from(s).sort()},[e,f]),k=(0,t.useMemo)(()=>h&&(g||0!==y.length)?e.filter(e=>{if(g){let s=g.toLowerCase();if(!(e.software.toLowerCase().includes(s)||e.category.toLowerCase().includes(s)||e.description&&e.description.toLowerCase().includes(s)))return!1}if(y.length>0){let s=e.category.split(",").map(e=>e.trim().toLowerCase());if(!y.every(e=>s.includes(e.toLowerCase())))return!1}return!0}):e,[e,g,y,h]);return(0,s.jsxs)("div",{className:"space-y-4",children:[h&&(0,s.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row",children:[(0,s.jsxs)("div",{className:"relative flex-1",children:[(0,s.jsx)(l.Search,{className:"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-muted-foreground"}),(0,s.jsx)(c.Input,{type:"text",placeholder:"Search software...",value:g,onChange:e=>j(e.target.value),className:"pl-9"})]}),(0,s.jsxs)("div",{className:"relative",children:[(0,s.jsxs)(o.Button,{variant:"outline",onClick:()=>N(!b),className:"w-full justify-between sm:w-[200px]",children:[(0,s.jsx)("span",{className:"truncate",children:0===y.length?"All Categories":`${y.length} selected`}),(0,s.jsx)("span",{className:"ml-2",children:"â¼"})]}),b&&(0,s.jsx)("div",{className:"absolute z-10 mt-1 max-h-[300px] w-full overflow-y-auto rounded-md border bg-background shadow-lg sm:w-[300px]",children:(0,s.jsx)("div",{className:"p-2",children:w.map(e=>(0,s.jsxs)("label",{className:"flex cursor-pointer items-center gap-2 rounded px-2 py-1.5 hover:bg-muted",children:[(0,s.jsx)("input",{type:"checkbox",checked:y.includes(e),onChange:()=>{v(s=>s.includes(e)?s.filter(s=>s!==e):[...s,e])},className:"h-4 w-4"}),(0,s.jsx)("span",{className:"text-sm",children:e})]},e))})})]}),m,(g||y.length>0)&&(0,s.jsxs)(o.Button,{variant:"ghost",size:"sm",onClick:()=>{j(""),v([])},children:[(0,s.jsx)(i.X,{className:"mr-1 h-4 w-4"}),"Clear"]})]}),h&&(0,s.jsxs)("p",{className:"text-sm text-muted-foreground",children:["Showing ",k.length," of ",e.length," software"]}),(0,s.jsx)("div",{className:"space-y-3 md:hidden",children:0===k.length?(0,s.jsx)("div",{className:"rounded-lg border p-8 text-center text-muted-foreground",children:"No software found matching your filters."}):k.map(e=>{let t=e.category.split(",").map(e=>e.trim()).filter(e=>e&&(!f||(0,d.slugify)(e)!==(0,d.slugify)(f))),l=e.signupPerks&&""!==e.signupPerks.trim();return(0,s.jsx)("div",{className:"rounded-lg border p-4",children:(0,s.jsxs)("div",{className:"space-y-2",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,s.jsx)("div",{className:"min-w-0 flex-1 text-sm font-medium text-foreground",children:e.software}),(0,s.jsxs)("div",{className:"flex flex-shrink-0 gap-1.5",children:[e.link&&(0,s.jsxs)("a",{href:e.link,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-0.5 rounded bg-primary/10 px-1.5 py-0.5 text-[10px] font-medium text-primary hover:bg-primary/20",children:[(0,s.jsx)(a.ExternalLink,{className:"h-2.5 w-2.5"}),"Website"]}),(0,s.jsxs)(r.default,{href:`/explore/alternatives-to-${(0,d.slugify)(e.software)}`,className:"inline-flex items-center gap-0.5 rounded bg-secondary px-1.5 py-0.5 text-[10px] font-medium text-secondary-foreground hover:bg-secondary/80",children:[(0,s.jsx)(n,{className:"h-2.5 w-2.5"}),"Alts"]})]})]}),l&&(0,s.jsx)("p",{className:"text-xs text-green-600",children:e.signupPerks}),x&&t.length>0&&(0,s.jsx)("div",{className:"flex flex-wrap gap-1 text-xs text-muted-foreground",children:t.map((e,a)=>(0,s.jsxs)("span",{children:[(0,s.jsx)(r.default,{href:`/categories/${(0,d.slugify)(e)}`,className:"hover:text-foreground hover:underline",children:e}),a<t.length-1&&", "]},e))})]})},e.software)})}),(0,s.jsx)("div",{className:"hidden overflow-x-auto rounded-lg border md:block",children:(0,s.jsxs)("table",{className:"w-full",children:[(0,s.jsx)("thead",{className:"border-b bg-muted/50",children:(0,s.jsxs)("tr",{children:[(0,s.jsx)("th",{className:"px-4 py-3 text-left text-sm font-semibold",children:"Software"}),x&&(0,s.jsx)("th",{className:"px-4 py-3 text-left text-sm font-semibold",children:p})]})}),(0,s.jsx)("tbody",{children:0===k.length?(0,s.jsx)("tr",{children:(0,s.jsx)("td",{colSpan:x?2:1,className:"px-4 py-8 text-center text-muted-foreground",children:"No software found matching your filters."})}):k.map((e,t)=>{let l=e.category.split(",").map(e=>e.trim()).filter(e=>e&&(!f||(0,d.slugify)(e)!==(0,d.slugify)(f))),i=e.signupPerks&&""!==e.signupPerks.trim();return(0,s.jsxs)("tr",{className:t%2==0?"bg-background":"bg-muted/20",children:[(0,s.jsx)("td",{className:"px-4 py-3",children:(0,s.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between gap-3",children:[(0,s.jsx)("span",{className:"font-medium text-foreground",children:e.software}),(0,s.jsxs)("div",{className:"flex gap-3 text-xs",children:[e.link&&(0,s.jsxs)("a",{href:e.link,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-1 text-muted-foreground hover:text-foreground",children:[(0,s.jsx)(a.Exter
1nalLink,{className:"h-3 w-3"}),"Website"]}),(0,s.jsxs)(r.default,{href:`/explore/alternatives-to-${(0,d.slugify)(e.software)}`,className:"flex items-center gap-1 text-muted-foreground hover:text-foreground hover:underline",children:[(0,s.jsx)(n,{className:"h-3 w-3"}),"Alternatives"]})]})]}),i&&(0,s.jsx)("p",{className:"text-xs text-green-600",children:e.signupPerks})]})}),x&&(0,s.jsx)("td",{className:"px-4 py-3",children:l.length>0?(0,s.jsx)("span",{className:"flex flex-wrap gap-1 text-sm text-muted-foreground",children:l.map((e,t)=>(0,s.jsxs)("span",{children:[(0,s.jsx)(r.default,{href:`/categories/${(0,d.slugify)(e)}`,className:"hover:text-foreground hover:underline",children:e}),t<l.length-1&&", "]},e))}):(0,s.jsx)("span",{className:"text-sm text-muted-foreground",children:"â"})})]},e.software)})})]})})]})}],4627)},23750,e=>{"use strict";var s=e.i(57710),t=e.i(47163);e.s(["Input",0,function({className:e,type:r,...a}){return(0,s.jsx)("input",{type:r,"data-slot":"input",className:(0,t.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...a})}])},13208,e=>{"use strict";let s=(0,e.i(7271).default)("external-link",[["path",{d:"M15 3h6v6",key:"1q9fwt"}],["path",{d:"M10 14 21 3",key:"gplh6r"}],["path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6",key:"a6xqqp"}]]);e.s(["ExternalLink",0,s],13208)},25309,e=>{"use strict";let s=(0,e.i(7271).default)("search",[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]]);e.s(["Search",0,s],25309)}]);
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.