1import{c as H,a as G,r as n,s as T,j as e,N as K,F as A,X as S,L as _,C as P}from"./index-BWLWF2Sb.js";import{S as V}from"./SiteFooter-egFf43S5.js";import{P as U}from"./PageMeta-DjdzYK7E.js";import{b as q}from"./blog-BwZZ_pGp.js";import{o as Q}from"./og-blog-brand-mastery-BhORbt6o.js";import{N as X}from"./newspaper-CSIiIGHi.js";import{S as Y}from"./search-B2RsD4UV.js";import{S as J}from"./sliders-horizontal-CG5wMhZw.js";import{T as Z}from"./tag-MYun2mHy.js";import{E as ee}from"./eye-BsIWxKqm.js";import{A as te}from"./arrow-right-CEtjL7h9.js";import{C as se}from"./check-DOqmD-sR.js";import"./linkedin-mOXYkWOx.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const ae=H("CornerDownLeft",[["polyline",{points:"9 10 4 15 9 20",key:"r3jprv"}],["path",{d:"M20 4v7a4 4 0 0 1-4 4H4",key:"6o5b7l"}]]),re=Q,B=i=>new Date(i).toLocaleDateString("en-US",{year:"numeric",month:"long",day:"numeric"}),ie=i=>{const m=i.split(/\s+/).length;return`${Math.max(6,Math.round(m/20)+6)} min read`},$=q.filter(i=>i.indexable).map(i=>({slug:i.slug,tag:i.category,tagColor:"text-primary",title:i.title,excerpt:i.excerpt,date:B(i.isoDate),isoDate:i.isoDate,readTime:ie(i.excerpt),image:`/og/og-blog-${i.slug}.jpg`,imageAlt:i.title})),R=[{label:"California",match:/california|sacramento|roseville|bay area|folsom|rocklin|granite bay|loomis|san francisco/i},{label:"ADA / Compliance",match:/ada|wcag|unruh|accessibility|overlay/i},{label:"Attorneys",match:/attorney|law firm|lawyer|personal injury|estate planning/i},{label:"HVAC",match:/hvac|heating|air conditioning|kendrick/i},{label:"Fractional CMO",match:/fractional cmo/i},{label:"AI",match:/\bai\b|gpt|prompt|claude|anthropic/i},{label:"Skill Stacker",match:/skill stacker|skill passport|human capital/i},{label:"SEO",match:/\bseo\b|local service ads|\blsa\b|ranking/i},{label:"Web3",match:/web3|solana|meme militia|token|blockchain/i},{label:"Brand Strategy",match:/brand strategy|brand mastery|personal brand/i}],je=()=>{const i=G(),[m,v]=n.useState($),[h,u]=n.useState({}),[c,l]=n.useState(""),[o,p]=n.useState("All"),[g,L]=n.useState([]),[f,b]=n.useState(!1),[N,w]=n.useState(0),k=n.useRef(null),E=n.useRef(null);n.useEffect(()=>{(async()=>{const{data:t}=await T.from("blog_posts").select("slug,title,excerpt,tag,cover_image_url,image_alt,read_time_minutes,published_at").eq("status","published").order("published_at",{ascending:!1});if(!t)return;const s=[...t.map(r=>({slug:r.slug,tag:r.tag,tagColor:"text-primary",title:r.title,excerpt:r.excerpt,date:B(r.published_at),isoDate:String(r.published_at).slice(0,10),readTime:`${r.read_time_minutes} min read`,image:r.cover_image_url||re,imageAlt:r.image_alt||r.title})),...$].sort((r,j)=>j.isoDate.localeCompare(r.isoDate));v(s)})()},[]),n.useEffect(()=>{(async()=>{const{data:t}=await T.from("blog_post_views").select("path,views");if(!t)return;const a={};for(const s of t)a[s.path]=Number(s.views??0);u(a)})()},[]);const M=["All",...Array.from(new Set(m.map(t=>t.tag))).sort()],W=t=>L(a=>a.includes(t)?a.filter(s=>s!==t):[...a,t]),D=()=>{l(""),p("All"),L([])},I=c.trim()!==""||o!=="All"||g.length>0,d=n.useMemo(()=>{const t=c.trim().toLowerCase();return t?m.map(s=>{const r=s.title.toLowerCase(),j=s.slug.toLowerCase(),C=s.tag.toLowerCase(),y=s.excerpt.toLowerCase();let x=0;return r.startsWith(t)&&(x+=100),r.includes(t)&&(x+=60),j.includes(t)&&(x+=40),C.includes(t)&&(x+=20),y.includes(t)&&(x+=10),{a:s,score:x}}).filter(s=>s.score>0).sort((s,r)=>r.score-s.score).slice(0,6).map(s=>s.a):[]},[c,m]);n.useEffect(()=>{w(0)},[c]),n.useEffect(()=>{const t=a=>{k.current&&(k.current.contains(a.target)||b(!1))};return document.addEventListener("mousedown",t),()=>document.removeEventListener("mousedown",t)},[]);const F=t=>{b(!1),i(`/blog/${t}`)},O=t=>{!f||d.length===0||(t.key==="ArrowDown"?(t.preventDefault(),w(a=>(a+1)%d.length)):t.key==="ArrowUp"?(t.preventDefault(),w(a=>(a-1+d.length)%d.length)):t.key==="Enter"?(t.preventDefault(),F(d[N].slug)):t.key==="Escape"&&b(!1))},z=(t,a)=>{if(!a)return t;const s=t.toLowerCase().indexOf(a.toLowerCase());return s===-1?t:e.jsxs(e.Fragment,{children:[t.slice(0,s),e.jsx("mark",{className:"bg-primary/25 text-white rounded px-0.5",children:t.slice(s,s+a.length)}),t.slice(s+a.length)]})};return e.jsxs("div",{className:"min-h-screen bg-[hsl(var(--dark))] text-white",children:[e.jsx(U,{title:"Brand Strategy Blog â Adrian Boysel Insights",description:"Read brand strategy insights from Adrian Boysel â 20+ years, 6,000+ brands. Articles on branding, Web2, Web3, marketing, and building iconic businesses.",path:"/blog"}),e.jsx(K,{}),e.jsxs("main",{id:"main-content",children:[e.jsx("section",{className:"pt-24 pb-10 sm:pt-32 sm:pb-20 px-6",children:e.jsx("div",{className:"mx-auto max-w-4xl text-center",children:e.jsxs(A,{children:[e.jsx(X,{className:"mx-auto h-8 w-8 sm:h-12 sm:w-12 text-primary mb-4 sm:mb-6"}),e.jsx("p",{className:"eyebrow mb-2 sm:mb-4 text-[10px] sm:text-sm",children:"Blog"}),e.jsx("h1",{className:"font-heading text-3xl font-black uppercase tracking-tight sm:text-5xl text-white leading-[1.05]",children:"BRAND STRATEGY INSIGHTS & ARTICLES"}),e.jsx("p",{className:"mt-3 sm:mt-6 text-sm sm:text-lg text-white/70 max-w-xl mx-auto leading-relaxed",children:"Branding, marketing, and Web3 insights from Adrian Boysel â 20+ years of lessons distilled into actionable strategies."})]})})}),e.jsx("section",{className:"px-6 pb-16",children:e.jsxs("div",{className:"mx-auto max-w-4xl",children:[e.jsxs("div",{className:"mb-8 rounded-2xl border border-white/10 bg-white/[0.03] backdrop-blur-sm p-4 sm:p-5",children:[e.jsxs("div",{className:"relative",ref:k,children:[e.jsx(Y,{className:"absolute left-4 top-[22px] -translate-y-1/2 h-4 w-4 text-white/40 pointer-events-none","aria-hidden":"true"}),e.jsx("input",{ref:E,type:"search",value:c,onChange:t=>{l(t.target.value),b(!0)},onFocus:()=>b(!0),onKeyDown:O,placeholder:"Search articles by keyword or title...","aria-label":"Search articles","aria-autocomplete":"list","aria-expanded":f&&d.length>0,"aria-controls":"blog-search-suggestions","aria-activedescendant":f&&d.length>0?`blog-suggest-${N}`:void 0,role:"combobox",autoComplete:"off",className:"w-full rounded-xl border border-white/10 bg-white/[0.04] pl-11 pr-11 py-3 text-sm text-white placeholder:text-white/40 focus:outline-none focus:border-primary/60 focus:bg-white/[0.06] transition-colors"}),c&&e.jsx("button",{type:"button",onClick:()=>{var t;l(""),b(!1),(t=E.current)==null||t.focus()},"aria-label":"Clear search",className:"absolute right-3 top-[22px] -translate-y-1/2 p-1 rounded text-white/50 hover:text-white hover:bg-white/10 transition-colors",children:e.jsx(S,{className:"h-4 w-4"})}),f&&d.length>0&&e.jsxs("ul",{id:"blog-search-suggestions",role:"listbox",className:"absolute z-30 left-0 right-0 mt-2 max-h-[420px] overflow-auto rounded-xl border border-white/10 bg-[hsl(var(--dark))]/95 backdrop-blur-md shadow-2xl divide-y divide-white/5",children:[d.map((t,a)=>{const s=a===N;return e.jsxs("li",{id:`blog-suggest-${a}`,role:"option","aria-selected":s,onMouseEnter:()=>w(a),onMouseDown:r=>{r.preventDefault(),F(t.slug)},className:`flex items-start gap-3 px-3 py-2.5 cursor-pointer transition-colors ${s?"bg-primary/15":"hover:bg-white/[0.04]"}`,children:[e.jsx("img",{src:t.image,alt:"",loading:"lazy",className:"h-12 w-20 shrink-0 rounded-md object-cover border border-white/10"}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[10px] font-mono uppercase tracking-widest text-primary/80 mb-0.5",children:[e.jsx("span",{className:"truncate",children:t.tag}),e.jsx("span",{className:"text-white/30",children:"·"}),e.jsx("span",{className:"text-white/40",children:t.readTime})]}),e.jsx("div",{className:"text-sm font-semibold text-white leading-snug line-clamp-2",children:z(t.title,c)})]}),s&&e.jsx(ae,{className:"h-3.5 w-3.5 text-white/40 mt-1 shrink-0","aria-hidden":"true"})]},t.slug)}),e.jsxs("li",{className:"px-3 py-2 text-[10px] font-mono uppercase tracking-widest text-white/40 flex items-center justify-between",children:[e.jsxs("span",{children:[d.length," match",d.length===1?"":"es"]}),e.jsx("span",{children:"ââ to navigate · âµ to open · esc to close"})]})]})]}),e.jsxs("div",{className:"mt-5",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[11px] uppercase tracking-[0.18em] text-white/50 font-mono mb-2",children:[e.jsx(J,{className:"h-3 w-3"})," Category"]}),e.jsx(ne,{categories:M,value:o,onChange:p})]}),e.jsxs("div",{className:"mt-5",children:[e.jsxs("div",{className:"flex items-center gap-2 text-[11px] uppercase tracking-[0.18em] text-white/50 font-mono mb-2",children:[e.jsx(Z,{className:"h-3 w-3"})," Tags"]}),e.jsx("div",{className:"flex flex-wrap gap-2",role:"group","aria-label":"Filter by tag",children:R.map(t=>{const a=g.includes(t.label);return e.jsxs("button",{type:"button",onClick:()=>W(t.label),"aria-pressed":a,className:`px-3 py-1.5 rounded-full text-xs font-medium border transition-colors ${a?"bg-accent/20 text-accent-foreground border-accent text-white":"bg-white/[0.03] text-white/60 border-white/10 hover:text-white hover:border-accent/60"}`,children:[a?"â ":"#"," ",t.label]},t.label)})})]}),I&&e.jsxs("div",{className:"mt-4 flex items-center justify-between text-xs text-white/50",children:[e.jsxs("span",{children:["Filters active",o!=="All"&&e.jsxs(e.Fragment,{children:[" · ",e.jsx("span",{className:"text-primary",children:o})]}),g.length>0&&e.jsxs(e.Fragment,{children:[" · ",e.jsxs("span",{className:"text-accent",children:[g.length," tag",g.length>
61?"s":""]})]})]}),e.jsxs("button",{type:"button",onClick:D,className:"inline-flex items-center gap-1 px-2 py-1 rounded text-white/70 hover:text-white hover:bg-white/10",children:[e.jsx(S,{className:"h-3 w-3"})," Clear all"]})]})]}),(()=>{const t=c.trim().toLowerCase(),a=m.filter(s=>{if(o!=="All"&&s.tag!==o||t&&![s.title,s.excerpt,s.tag,s.slug].some(r=>r.toLowerCase().includes(t)))return!1;if(g.length>0){const r=`${s.title} ${s.excerpt} ${s.tag} ${s.slug}`;if(!g.every(C=>{const y=R.find(x=>x.label===C);return y?y.match.test(r):!0}))return!1}return!0});return a.length?e.jsxs(e.Fragment,{children:[e.jsxs("p",{className:"text-xs text-white/50 mb-4 font-mono uppercase tracking-widest",children:[a.length," article",a.length===1?"":"s"]}),e.jsx("div",{className:"grid gap-6",children:a.map((s,r)=>e.jsx(A,{delay:r*.1,children:e.jsxs(_,{to:`/blog/${s.slug}`,className:"group block rounded-xl border border-white/10 bg-white/[0.03] overflow-hidden hover:bg-white/[0.06] transition-colors",children:[e.jsx("img",{src:s.image,alt:s.imageAlt,width:1200,height:630,loading:"lazy",className:"w-full aspect-video object-cover"}),e.jsxs("div",{className:"p-6 sm:p-8",children:[e.jsxs("div",{className:"flex flex-wrap items-center gap-3 text-xs text-white/50 mb-4",children:[e.jsx("span",{className:`font-mono uppercase tracking-widest font-bold ${s.tagColor}`,children:s.tag}),e.jsx("span",{children:"·"}),e.jsx("span",{children:s.date}),e.jsx("span",{children:"·"}),e.jsx("span",{children:s.readTime}),h[`/blog/${s.slug}`]>0&&e.jsxs(e.Fragment,{children:[e.jsx("span",{children:"·"}),e.jsxs("span",{className:"inline-flex items-center gap-1",children:[e.jsx(ee,{className:"h-3 w-3"})," ",h[`/blog/${s.slug}`].toLocaleString()]})]})]}),e.jsx("h2",{className:"font-heading text-xl sm:text-2xl font-black uppercase text-white group-hover:text-primary transition-colors leading-tight",children:s.title}),e.jsx("p",{className:"mt-3 text-sm text-white/60 leading-relaxed",children:s.excerpt}),e.jsxs("span",{className:"mt-4 inline-flex items-center gap-1 text-sm font-semibold text-primary group-hover:gap-2 transition-all",children:["Read Article ",e.jsx(te,{className:"h-4 w-4"})]})]})]})},s.slug))})]}):e.jsxs("div",{className:"text-center py-16",children:[e.jsx("p",{className:"text-white/60 mb-4",children:"No articles match your filters."}),e.jsxs("button",{type:"button",onClick:D,className:"inline-flex items-center gap-2 px-4 py-2 rounded-lg border border-white/20 text-sm text-white hover:bg-white/10 transition-colors",children:[e.jsx(S,{className:"h-4 w-4"})," Clear filters"]})]})})()]})}),e.jsx("section",{className:"px-6 pb-20",children:e.jsx("div",{className:"mx-auto max-w-3xl",children:e.jsx(A,{children:e.jsxs("div",{className:"rounded-xl border border-white/10 bg-white/[0.03] p-6 flex flex-col sm:flex-row gap-6 items-start",children:[e.jsx("div",{className:"flex h-16 w-16 shrink-0 items-center justify-center rounded-full bg-primary/20 font-heading text-2xl font-bold text-primary",children:"AB"}),e.jsxs("div",{children:[e.jsx("h3",{className:"font-heading text-lg font-bold text-white",children:"About the Author"}),e.jsxs("p",{className:"mt-2 text-sm text-white/60 leading-relaxed",children:[e.jsx("strong",{className:"text-white",children:"Adrian Boysel"})," is a brand strategist, entrepreneur, and the founder of twelve brands spanning Web2 and Web3. With 20+ years of experience and 6,000+ brands built, Adrian is recognized as one of the leading authorities on brand strategy, marketing systems, and the Web2-to-Web3 transition. He's a TEDx speaker, author, and the host of the Love Gangster Podcast."," ",e.jsx(_,{to:"/origin",className:"text-primary font-semibold hover:underline",children:"Read his full story â"})]})]})]})})})})]}),e.jsx(V,{})]})};function ne({categories:i,value:m,onChange:v}){const[h,u]=n.useState(!1),c=n.useRef(null);return n.useEffect(()=>{if(!h)return;const l=p=>{c.current&&!c.current.contains(p.target)&&u(!1)},o=p=>{p.key==="Escape"&&u(!1)};return document.addEventListener("mousedown",l),document.addEventListener("keydown",o),()=>{document.removeEventListener("mousedown",l),document.removeEventListener("keydown",o)}}
6,[h]),e.jsxs("div",{ref:c,className:"relative max-w-xs",children:[e.jsxs("button",{type:"button",onClick:()=>u(l=>!l),"aria-haspopup":"listbox","aria-expanded":h,"aria-label":`Filter by category, current: ${m}`,className:"w-full flex items-center justify-between gap-3 px-4 py-2.5 rounded-full border border-white/10 bg-white/[0.03] text-sm text-white hover:border-primary/50 transition-colors min-h-11",children:[e.jsx("span",{className:"truncate uppercase tracking-wider text-xs font-semibold",children:m}),e.jsx(P,{className:`h-4 w-4 text-white/60 transition-transform ${h?"rotate-180":""}`})]}),h&&e.jsx("ul",{role:"listbox","aria-label":"Filter by category",className:"absolute z-30 mt-2 w-full max-h-72 overflow-auto rounded-2xl border border-white/10 bg-[#0F0820]/95 backdrop-blur-xl shadow-xl py-1",children:i.map(l=>{const o=l===m;return e.jsx("li",{children:e.jsxs("button",{type:"button",role:"option","aria-selected":o,onClick:()=>{v(l),u(!1)},className:`w-full flex items-center justify-between gap-3 px-4 py-2 text-left text-sm transition-colors ${o?"text-primary bg-white/[0.04]":"text-white/80 hover:text-white hover:bg-white/[0.04]"}`,children:[e.jsx("span",{className:"truncate",children:l}),o&&e.jsx(se,{className:"h-4 w-4 shrink-0"})]})},l)})})]})}export{je as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.