PageSourceSearch

https://armbian.de/_next/static/chunks/24ymfx-3tw_y1.js

js armbian.de collected 2026-10-05 04:37:31 UTC 17,027 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,967767,e=>{"use strict";var t=e.i(82611),r=e.i(364643);function s(){return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("img",{src:"/armbian-logo-white.png",alt:"Armbian",width:120,height:32,className:"w-auto h-8 object-contain opacity-20 hidden dark:block"}),(0,t.jsx)("img",{src:"/armbian-logo-black.png",alt:"Armbian",width:120,height:32,className:"w-auto h-8 object-contain opacity-15 block dark:hidden"})]})}e.s(["BoardImage",0,function({src:e,alt:a,className:l,width:i,height:n}){let[o,c]=(0,r.useState)(!1),[d,u]=(0,r.useState)(!1),h=(0,r.useRef)(null);return((0,r.useEffect)(()=>{h.current?.complete&&h.current.naturalWidth>0&&u(!0)},[]),!e||o)?(0,t.jsx)(s,{}):(0,t.jsxs)(t.Fragment,{children:[!d&&(0,t.jsx)("div",{className:"absolute inset-0 flex items-center justify-center",children:(0,t.jsx)("div",{className:"w-6 h-6 rounded-full border-2 border-[rgb(var(--border))] border-t-[rgb(var(--brand))] animate-spin"})}),(0,t.jsx)("img",{ref:h,src:e,alt:a,width:i,height:n,className:l??`hw-img h-full w-auto object-contain relative z-10 drop-shadow-lg transition-opacity duration-300 ${d?"opacity-100":"opacity-0"}`,loading:"lazy",onLoad:()=>u(!0),onError:()=>c(!0)})]})}])},825326,e=>{"use strict";let t=(0,e.i(54864).default)("circle-alert",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["line",{x1:"12",x2:"12",y1:"8",y2:"12",key:"1pkeuh"}],["line",{x1:"12",x2:"12.01",y1:"16",y2:"16",key:"4dfq90"}]]);e.s(["AlertCircle",0,t],825326)},796341,e=>{"use strict";var t=e.i(82611);e.s(["Pill",0,function({active:e,onClick:r,children:s,color:a}){return(0,t.jsx)("button",{type:"button",onClick:r,className:`rounded-md px-2.5 py-1 text-[11px] font-semibold transition-all whitespace-nowrap ${e?"text-white":"text-[rgb(var(--fg-2))] hover:text-[rgb(var(--fg))] hover:bg-[rgb(var(--bg-sub))]"}`,style:e?{backgroundColor:a??"rgb(var(--brand))"}:void 0,children:s})}])},697403,e=>{"use strict";var t=e.i(82611);e.i(195415);var r=e.i(99377);e.s(["SupportBadge",0,function({tier:e,label:s}){let a=r.SUPPORT_TIERS[e];if(!a)return null;let l="inline-flex items-center rounded-full px-3 py-1 text-[10px] font-bold uppercase tracking-wider",i=s??a.label;return"platinum"===e?(0,t.jsx)("span",{className:`${l} badge-platinum`,children:i}):(0,t.jsx)("span",{className:`${l} text-white`,style:{backgroundColor:a.badgeColor},children:i})}])},617644,e=>{"use strict";let t=(0,e.i(54864).default)("arrow-right",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);e.s(["ArrowRight",0,t],617644)},420926,e=>{"use strict";let t=(0,e.i(54864).default)("star",[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]]);e.s(["Star",0,t],420926)},613256,1789,e=>{"use strict";var t=e.i(54864);let r=(0,t.default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);e.s(["ChevronLeft",0,r],613256);let s=(0,t.default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);e.s(["ChevronRight",0,s],1789)},268787,e=>{"use strict";let t=(0,e.i(54864).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,t],268787)},796612,e=>{"use strict";let t=(0,e.i(54864).default)("refresh-cw",[["path",{d:"M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8",key:"v9h5vc"}],["path",{d:"M21 3v5h-5",key:"1q7to0"}],["path",{d:"M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16",key:"3uifl3"}],["path",{d:"M8 16H3v5",key:"1cv678"}]]);e.s(["RefreshCw",0,t],796612)},200816,e=>{"use strict";var t=e.i(82611);function r(){return(0,t.jsxs)("div",{className:"hw-card rounded-2xl p-4 animate-pulse",children:[(0,t.jsx)("div",{className:"h-28 sm:h-32 bg-[rgb(var(--bg-sub))] rounded-xl mb-3"}),(0,t.jsxs)("div",{className:"border-t border-white/10 pt-3",children:[(0,t.jsx)("div",{className:"h-2 w-16 bg-[rgb(var(--bg-sub))] rounded mb-2"}),(0,t.jsx)("div",{className:"h-4 w-24 bg-[rgb(var(--bg-sub))] rounded"})]})]})}e.s(["BoardGridSkeleton",0,function({count:e=12}){return(0,t.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-3",children:Array.from({length:e}).map((e,s)=>(0,t.jsx)(r,{},s))})},"Skeleton",0,function({className:e=""}){return(0,t.jsx)("div",{className:`animate-pulse bg-[rgb(var(--bg-sub))] rounded ${e}`})}])},473982,e=>{"use strict";var t=e.i(82611),r=e.i(364643),s=e.i(970551),a=e.i(621776),l=e.i(287820),i=e.i(697403),n=e.i(967767),o=e.i(796341);e.i(195415);
1var c=e.i(99377),d=e.i(268787),u=e.i(463352),h=e.i(617644),b=e.i(420926),g=e.i(613256),m=e.i(1789),x=e.i(825326),p=e.i(796612),v=e.i(200816);let f=["popularity","name","support","random"],j=Object.keys(c.SUPPORT_TIERS).sort((e,t)=>c.SUPPORT_TIERS[e].sortOrder-c.SUPPORT_TIERS[t].sortOrder);function w({page:e,totalPages:r,onPageChange:s}){if(r<=1)return null;let a=[];if(r<=7)for(let e=1;e<=r;e++)a.push(e);else{a.push(1),e>3&&a.push("...");for(let t=Math.max(2,e-1);t<=Math.min(r-1,e+1);t++)a.push(t);e<r-2&&a.push("..."),a.push(r)}let l="inline-flex items-center justify-center min-w-[36px] h-9 rounded-lg text-sm font-medium transition-colors";return(0,t.jsxs)("nav",{className:"flex items-center justify-center gap-1 mt-8","aria-label":"Pagination",children:[(0,t.jsx)("button",{type:"button",disabled:1===e,onClick:()=>s(e-1),className:`${l} px-2 ${1===e?"opacity-30 cursor-not-allowed":"hover:bg-[rgb(var(--bg-sub))]"}`,children:(0,t.jsx)(g.ChevronLeft,{size:16,strokeWidth:2})}),a.map((r,a)=>"..."===r?(0,t.jsx)("span",{className:"px-1 text-[rgb(var(--fg-3))]",children:"..."},`dots-${a}`):(0,t.jsx)("button",{type:"button",onClick:()=>s(r),className:`${l} ${r===e?"bg-[rgb(var(--brand))] text-white":"hover:bg-[rgb(var(--bg-sub))] text-[rgb(var(--fg-2))]"}`,children:r},r)),(0,t.jsx)("button",{type:"button",disabled:e===r,onClick:()=>s(e+1),className:`${l} px-2 ${e===r?"opacity-30 cursor-not-allowed":"hover:bg-[rgb(var(--bg-sub))]"}`,children:(0,t.jsx)(m.ChevronRight,{size:16,strokeWidth:2})})]})}e.s(["BoardsCatalog",0,function({initialBoards:e,platinumBoards:g,vendors:m,total:y,tierCounts:N}){let k=(0,s.useTranslations)("boards"),S=(0,s.useTranslations)("support"),C=(0,a.usePathname)(),_=(0,l.useSearchParams)(),[P,R]=(0,r.useState)(e),[T,$]=(0,r.useState)(y),[z,A]=(0,r.useState)(1),[F,D]=(0,r.useState)(!1),[E,M]=(0,r.useState)(!1),[W,I]=(0,r.useState)(_.get("vendor")??""),[L,B]=(0,r.useState)(_.get("support")??""),[O,U]=(0,r.useState)(_.get("sort")??"popularity"),[q,H]=(0,r.useState)(""),[G,K]=(0,r.useState)(null),[V,X]=(0,r.useState)(!1),[J,Q]=(0,r.useState)(!1),Y=(0,r.useRef)(void 0),Z=(0,r.useRef)(null),ee=(0,r.useMemo)(()=>m.filter(e=>e.name?.trim()).sort((e,t)=>e.name.localeCompare(t.name)),[m]),et=J?ee:ee.slice(0,20),er=Math.ceil(T/24),es=(0,r.useCallback)(async(e,t,r,s)=>{D(!0),M(!1);let a=new URLSearchParams;t&&a.set("vendor",t),r&&a.set("support",r),a.set("sort",s),a.set("page",String(e)),a.set("limit",String(24));try{let e=await fetch(`/api/boards?${a}`);if(!e.ok)throw Error(`HTTP ${e.status}`);let t=await e.json();R(t.data),$(t.meta.total)}catch{M(!0)}finally{D(!1)}},[]);(0,r.useEffect)(()=>{if(!W&&!L&&"popularity"===O&&!G){R(e),$(y),A(1);return}G||(A(1),es(1,W,L,O))},[W,L,O,G,es,e,y]),(0,r.useEffect)(()=>{let e=new URLSearchParams;W&&e.set("vendor",W),L&&e.set("support",L),"popularity"!==O&&e.set("sort",O),z>1&&e.set("page",String(z));let t=e.toString(),r=window.location.pathname;window.history.replaceState(null,"",t?`${r}?${t}`:r)},[W,L,O,z,C]);let ea=(0,r.useCallback)(async e=>{if(e.length<2){K(null),X(!1),M(!1);return}X(!0),M(!1);try{let t=await fetch(`/api/search?q=${encodeURIComponent(e)}`);
1if(!t.ok)throw Error(`HTTP ${t.status}`);let r=await t.json();K(r.data)}catch{M(!0)}finally{X(!1)}},[]);(0,r.useEffect)(()=>(Y.current&&clearTimeout(Y.current),Y.current=setTimeout(()=>ea(q),300),()=>{Y.current&&clearTimeout(Y.current)}),[q,ea]);let el=(0,r.useMemo)(()=>g.slice(0,4),[g]),ei=G??P,en=G?G.length:T,eo=W||L||q;function ec(){I(""),B(""),U("popularity"),H(""),K(null),A(1)}return(0,t.jsxs)("div",{className:"pt-8",children:[el.length>0&&(0,t.jsxs)("section",{className:"relative mb-10 py-10",children:[(0,t.jsxs)("div",{children:[(0,t.jsxs)("div",{className:"flex items-center justify-between mb-6",children:[(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[(0,t.jsx)("div",{className:"w-9 h-9 rounded-lg bg-gradient-to-br from-[#FFDF00] to-[#D4AF37] flex items-center justify-center shadow-lg shadow-[#D4AF37]/20",children:(0,t.jsx)(b.Star,{size:16,strokeWidth:2.5,stroke:"#000"})}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-lg font-black tracking-tight",children:k("platinum_title")}),(0,t.jsx)("p",{className:"text-xs text-[rgb(var(--fg-3))]",children:k("platinum_subtitle")})]})]}),(0,t.jsxs)("button",{type:"button",onClick:()=>{B("platinum"),K(null),setTimeout(()=>Z.current?.scrollIntoView({behavior:"smooth",block:"start"}),150)},className:"flex items-center gap-1.5 text-xs font-semibold text-[#D4AF37] hover:text-[#FFDF00] transition-colors",children:[k("see_all")," (",g.length,")",(0,t.jsx)(h.ArrowRight,{size:14,strokeWidth:2})]})]}),(0,t.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-3",children:el.map(e=>(0,t.jsxs)(a.Link,{href:`/boards/${e.slug}`,className:"hw-card rounded-2xl p-4 group relative overflow-hidden flex flex-col",style:{borderColor:"rgba(212,175,55,0.2)"},children:[(0,t.jsxs)("div",{className:"h-28 w-full flex items-center justify-center relative mb-3 z-10 p-2",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-white/[0.03] rounded-xl group-hover:bg-[rgb(var(--brand)/0.05)] transition-colors border border-white/5 group-hover:border-[rgb(var(--brand)/0.2)]"}),(0,t.jsx)("div",{className:"relative z-10 h-full flex items-center justify-center",children:(0,t.jsx)(n.BoardImage,{src:e.image_url,alt:e.name})})]}),(0,t.jsxs)("div",{className:"mt-auto border-t border-white/10 pt-3 z-10 flex items-end justify-between gap-2",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("span",{className:"text-[9px] text-[#D4AF37] font-mono font-bold uppercase tracking-widest mb-0.5 block truncate",children:e.vendor_name}),(0,t.jsx)("h3",{className:"text-sm font-bold group-hover:text-[#D4AF37] transition-colors tracking-tight truncate",children:e.name})]}),(0,t.jsx)("div",{className:"w-6 h-6 rounded-full bg-[#D4AF37]/10 border border-[#D4AF37]/20 flex items-center justify-center shrink-0 group-hover:bg-[#D4AF37] group-hover:border-[#D4AF37] transition-all",children:(0,t.jsx)(h.ArrowRight,{size:12,strokeWidth:2.5,className:"text-[#D4AF37] group-hover:text-black transition-colors"})})]})]},e.slug))})]}),(0,t.jsx)("div",{className:"divider-glow w-full mt-8 pointer-events-none"})]}),(0,t.jsxs)("div",{className:"relative mb-5",children:[(0,t.jsx)(d.Search,{size:16,strokeWidth:2,className:"absolute left-4 top-1/2 -translate-y-1/2 text-[rgb(var(--fg-3))]"}),(0,t.jsx)("input",{type:"text",value:q,onChange:e=>H(e.target.value),placeholder:k("search_placeholder"),className:"w-full rounded-xl border border-[rgb(var(--border))] bg-[rgb(var(--bg-el))] pl-11 pr-4 py-3 text-sm outline-none transition-all placeholder:text-[rgb(var(--fg-3))] focus:border-[rgb(var(--brand))] focus:ring-2 focus:ring-[rgb(var(--brand)/0.15)]"}),V&&(0,t.jsx)("div",{className:"absolute right-4 top-1/2 -translate-y-1/2",children:(0,t.jsx)("div",{className:"h-4 w-4 animate-spin rounded-full border-2 border-[rgb(var(--fg-3))] border-t-[rgb(var(--brand))]"})})]}),(0,t.jsxs)("div",{className:"space-y-2.5 mb-6",children:[(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-1",children:[(0,t.jsxs)(o.Pill,{active:!L,onClick:()=>{B(""),K(null)},children:[k("all")," (",y,")"]}),j.map(e=>N[e]?(0,t.jsxs)(o.Pill,{active:L===e,color:c.SUPPORT_TIERS[e].badgeColor,onClick:()=>{B(L===e?"":e),K(null)},children:[S(e)," (",N[e],")"]},e):null)]}),(0,t.jsxs)("div",{className:"flex flex-wrap items-center gap-1",children:[(0,t.jsxs)(o.Pill,{active:!W,onClick:()=>{I(""),K(null)},children:[k("all")," (",ee.length,")"]}),et.map(e=>(0,t.jsx)(o.Pill,{active:W===e.slug,onClick:()=>{I(W===e.slug?"":e.slug),K(null)},children:e.name},e.slug)),ee.length>20&&(0,t.jsx)("button",{type:"button",onClick:()=>Q(!J),className:"text-[11px] font-semibold text-[rgb(var(--brand))] hover:underline px-1.5 py-1",children:J?k("show_less"):k("show_more",{count:ee.length-20})})]})]}),(0,t.jsxs)("div",{ref:Z,className:"flex items-center justify-between mb-4 scroll-mt-4",children:[(0,t.jsx)("span",{className:"text-xs text-[rgb(var(--fg-3))] tabular-nums",children:G?k("results_count",{count:en}):`${(z-1)*24+1}–${Math.min(24*z,en)} / ${en}`}),(0,t.jsxs)("div",{className:"flex items-center gap-3",children:[eo&&(0,t.jsxs)("button",{type:"button",onClick:ec,className:"flex items-center gap-1 text-xs font-semibold text-[rgb(var(--brand))] hover:underline",children:[(0,t.jsx)(u.X,{size:12,strokeWidth:2.5}),k("clear_all")]}),(0,t.jsx)("select",{value:O,onChange:e=>U(e.target.value),className:"rounded-lg border border-[rgb(var(--border))] bg-[rgb(var(--bg-el))] px-3 py-1.5 text-xs outline-none focus:border-[rgb(var(--brand))] cursor-pointer",children:f.map(e=>(0,t.jsx)("option",{value:e,children:k(`sort_${e}`)},e))})]})]}),F?(0,t.jsx)(v.BoardGridSkeleton,{count:24}):E?(0,t.jsxs)("div",{className:"mt-20 text-center",children:[(0,t.jsx)("div",{className:"inline-flex w-16 h-16 items-center justify-center rounded-2xl bg-red-500/10 mb-4",children:(0,t.jsx)(x.AlertCircle,{size:28,strokeWidth:1.5,className:"text-red-500"})}),(0,t.jsx)("p",{className:"text-lg font-bold",children:k("load_error_title")}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[rgb(var(--fg-3))]",children:k("load_error_subtitle")}),(0,t.jsxs)("button",{type:"button",onClick:()=>{q.length>=2?ea(q):es(z,W,L,O)},className:"mt-5 inline-flex items-center gap-2 px-5 py-2.5 rounded-lg bg-[rgb(var(--brand))] text-white font-semibold text-sm hover:bg-[rgb(var(--brand-hover))] transition-colors",children:[(0,t.jsx)(p.RefreshCw,{size:14,strokeWidth:2.5}),k("retry")]})]}):ei.length>0?(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-3",children:ei.map(e=>(0,t.jsxs)(a.Link,{href:`/boards/${e.slug}`,className:"hw-card rounded-2xl p-4 group relative overflow-hidden flex flex-col",children:[(0,t.jsx)("div",{className:"absolute top-3 right-3 z-20",children:(0,t.jsx)(i.SupportBadge,{tier:e.support_tier})}),(0,t.jsxs)("div",{className:"h-28 sm:h-32 w-full flex items-center justify-center relative mb-3 z-10 p-2",children:[(0,t.jsx)("div",{className:"absolute inset-0 bg-white/[0.03] rounded-xl group-hover:bg-[rgb(var(--brand)/0.05)] transition-colors border border-white/5 group-hover:border-[rgb(var(--brand)/0.2)]"}),(0,t.jsx)("div",{className:"relative z-10 h-full flex items-center justify-center",children:(0,t.jsx)(n.BoardImage,{src:e.image_url,alt:e.name})})]}),(0,t.jsxs)("div",{className:"mt-auto border-t border-white/10 pt-3 z-10 flex items-end justify-between gap-2",children:[(0,t.jsxs)("div",{className:"min-w-0",children:[(0,t.jsx)("span",{className:"text-[9px] text-[rgb(var(--brand))] font-mono font-bold uppercase tracking-widest mb-0.5 block truncate",children:e.vendor_name}),(0,t.jsx)("h3",{className:"text-xs sm:text-sm font-bold group-hover:text-[rgb(var(--brand))] transition-colors tracking-tight truncate",children:e.name})]}),(0,t.jsx)("div",{className:"w-6 h-6 rounded-full bg-white/5 border border-white/10 flex items-center justify-center shrink-0 group-hover:bg-[rgb(var(--brand))] group-hover:border-[rgb(var(--brand))] transition-all",children:(0,t.jsx)(h.ArrowRight,{size:12,strokeWidth:2.5,className:"text-[rgb(var(--fg-3))] group-hover:text-white transition-colors"})})]})]},e.slug))}),!G&&(0,t.jsx)(w,{page:z,totalPages:er,onPageChange:function(t){A(t),1!==t||W||L||"popularity"!==O?es(t,W,L,O):(R(e),$(y)),Z.current?.scrollIntoView({behavior:"smooth",block:"start"})}})]}):(0,t.jsxs)("div",{className:"mt-20 text-center",children:[(0,t.jsx)("div",{className:"inline-flex w-16 h-16 items-center justify-center rounded-2xl bg-[rgb(var(--bg-sub))] mb-4",children:(0,t.jsx)(d.Search,{size:28,strokeWidth:1.5,className:"text-[rgb(var(--fg-3))]"})}),(0,t.jsx)("p",{className:"text-lg font-bold",children:k("no_results")}),(0,t.jsx)("p",{className:"mt-1 text-sm text-[rgb(var(--fg-3))]",children:k("no_results_subtitle")}),(0,t.jsx)("button",{type:"button",onClick:ec,className:"mt-5 inline-flex items-center gap-2 px-5 py-2.5 rounded-lg bg-[rgb(var(--brand))] text-white font-semibold text-sm hover:bg-[rgb(var(--brand-hover))] transition-colors",children:k("clear_filters")})]})]})}])}]);

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.