259 lines
200 KiB
JavaScript
259 lines
200 KiB
JavaScript
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/useNostr-XONW-p_l.js","assets/index-8cIrvc8q.js","assets/index-BJkaQ2c4.css","assets/ThreadNode-DBTMRZ0t.js"])))=>i.map(i=>d[i]);
|
||
import{a as G,Z as Gt,$ as rt,p as Ne,b as s,c as n,e,h as q,u as t,n as i,t as u,f as ie,w as W,v as Q,F as I,g as P,i as f,j as Z,r as S,k as B,a0 as Ot,a1 as ct,H as ne,a2 as dt,a3 as ut,a4 as ht,a5 as xt,a6 as $e,O as De,a7 as Ht,a8 as Wt,a9 as Kt,J as Yt,z as xe,K as U,D as oe,aa as ae,ab as ye,_ as pt,A as ce,B as Pe,d as Jt,ac as Qt,E as se,ad as Zt,ae as Xt,af as es,ag as ts,ah as ss,M as ns,q as ls,ai as os,o as as,G as ue,aj as Le,ak as is}from"./index-8cIrvc8q.js";import{u as rs}from"./chat-BVoaeFpp.js";import{u as pe,e as He,d as gt,M as cs,a as ds,b as fe,_ as tt}from"./ChatWindow.vue_vue_type_script_setup_true_lang-zPFvWywX.js";import{_ as us}from"./FilmGrid.vue_vue_type_script_setup_true_lang-Dj0SEfcW.js";import{u as Ae}from"./useContentImages-7wLVntsF.js";import{_ as hs}from"./SongGrid.vue_vue_type_script_setup_true_lang-IvAOIQYW.js";import{useNostr as Ie}from"./useNostr-XONW-p_l.js";import{u as bt,_ as xs}from"./FilmDetail.vue_vue_type_script_setup_true_lang-BhKlPG3Y.js";import{_ as ps}from"./SongDetail.vue_vue_type_script_setup_true_lang-B3om3Z8v.js";const gs={class:"h-full flex flex-col"},bs={class:"flex items-center justify-between gap-2"},vs={class:"flex items-center gap-2 shrink-0"},fs={key:0,class:"flex flex-wrap gap-1.5"},ms=["onClick"],ws={class:"flex-1 overflow-y-auto custom-scrollbar px-4 pt-4 pb-16"},ys={class:"grid grid-cols-2 sm:grid-cols-3 gap-4"},ks=["aria-label","onClick"],$s={class:"cover-card flex-1 min-h-0 relative"},_s={key:0,class:"absolute inset-0 animate-shimmer"},Cs=["src","alt","onError"],js=["src","alt"],Ss={key:3,class:"absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent pointer-events-none"},Ms={class:"absolute bottom-0 left-0 right-0 p-2"},Ts={class:"text-xs font-semibold text-white/90 leading-tight truncate"},Ds={class:"text-xs text-white/40 truncate mt-0.5"},Is={key:4,class:"absolute top-1.5 left-1.5"},Bs={class:"text-xs px-1.5 py-0.5 rounded bg-black/60 text-amber-400 backdrop-blur-sm font-medium"},Ls={key:5,class:"absolute top-1.5 right-1.5"},Ps={class:"text-xs px-1 py-0.5 rounded bg-black/60 text-white/70 backdrop-blur-sm"},Ns={key:0,class:"flex items-center justify-center py-12"},As=G({__name:"BookGrid",props:{books:{},title:{default:"Recommended Books"}},emits:["selectBook"],setup(a){const c=a,{isDark:l}=Z(),w=S(""),g=S(null),{coverSrc:v,fallbackSrc:x,onError:m,isLoading:_}=Ae({items:Ne(c,"books"),id:d=>d.id,existingUrl:d=>d.coverUrl,fetch:d=>rt(d.title,d.author),fallback:d=>Gt(d.title,d.author)}),$=B(()=>{const d=new Map;for(const o of c.books)for(const r of o.genres??[])d.set(r,(d.get(r)??0)+1);return[...d.entries()].sort((o,r)=>r[1]-o[1]).slice(0,8).map(([o])=>o)}),b=B(()=>{let d=c.books;if(w.value){const o=w.value.toLowerCase();d=d.filter(r=>r.title.toLowerCase().includes(o)||r.author.toLowerCase().includes(o)||(r.genres??[]).some(h=>h.toLowerCase().includes(o)))}return g.value&&(d=d.filter(o=>(o.genres??[]).includes(g.value))),d});return(d,o)=>(s(),n("div",gs,[e("div",{class:"p-4 space-y-3",style:q(t(l)?"border-bottom: 1px solid rgba(255, 255, 255, 0.08)":"border-bottom: 1px solid rgba(0, 0, 0, 0.06)")},[e("div",bs,[e("h3",{class:i(["text-sm font-bold",t(l)?"text-white/90":"text-gray-900"])},u(a.title),3),e("div",vs,[e("span",{class:i(["text-xs font-mono",t(l)?"text-white/30":"text-gray-400"])},u(b.value.length)+" books ",3),ie(d.$slots,"header-actions")])]),W(e("input",{"onUpdate:modelValue":o[0]||(o[0]=r=>w.value=r),type:"text",placeholder:"Search books...",class:i(["w-full px-3 py-2 rounded-lg text-base outline-none transition-colors",t(l)?"bg-white/5 text-white/80 placeholder:text-white/25 focus:bg-white/10":"bg-black/3 text-gray-800 placeholder:text-gray-400 focus:bg-black/5"])},null,2),[[Q,w.value]]),$.value.length>0?(s(),n("div",fs,[(s(!0),n(I,null,P($.value,r=>(s(),n("button",{key:r,class:i(["text-xs px-2 py-1 rounded-md transition-all duration-150",g.value===r?"nav-tab-active":t(l)?"text-white/40 hover:text-white/70 hover:bg-white/5":"text-gray-500 hover:text-gray-800 hover:bg-black/5"]),onClick:h=>g.value=g.value===r?null:r},u(r),11,ms))),128))])):f("",!0)],4),e("div",ws,[e("div",ys,[(s(!0),n(I,null,P(b.value,r=>(s(),n("button",{key:r.id,class:"group flex flex-col items-stretch text-left w-full path-glass-bubble rounded-2xl overflow-hidden transition-all duration-200 hover:brightness-105","aria-label":`${r.title} by ${r.author}`,onClick:h=>d.$emit("selectBook",r)},[e("div",$s,[e("div",{class:i(["aspect-[2/3] relative w-full overflow-hidden rounded-[10px]",t(v)(r)?"":t(l)?"bg-white/[0.06]":"bg-black/[0.04]"])},[t(_)(r)?(s(),n("div",_s)):f("",!0),t(v)(r)?(s(),n("img",{key:1,src:t(v)(r),alt:`${r.title} by ${r.author}`,class:"w-full h-full object-cover transition-transform duration-300 group-hover:scale-110",loading:"lazy",onError:h=>t(m)(r)},null,40,Cs)):t(_)(r)?f("",!0):(s(),n("img",{key:2,src:t(x)(r),alt:r.title,class:"w-full h-full object-cover"},null,8,js)),t(v)(r)?(s(),n("div",Ss)):f("",!0),e("div",Ms,[e("p",Ts,u(r.title),1),e("p",Ds,u(r.author),1)]),r.rating?(s(),n("div",Is,[e("span",Bs," ★ "+u(r.rating.toFixed(1)),1)])):f("",!0),r.year?(s(),n("div",Ls,[e("span",Ps,u(r.year),1)])):f("",!0)],2)])],8,ks))),128))]),b.value.length===0?(s(),n("div",Ns,[e("p",{class:i(["text-sm",t(l)?"text-white/30":"text-gray-400"])}," No books match your search ",2)])):f("",!0)])]))}}),zs={class:"h-full flex flex-col"},Es={class:"flex items-center justify-between gap-2"},Fs={class:"flex items-center gap-2 shrink-0"},Rs={key:0,class:"flex flex-wrap gap-1.5"},Vs=["onClick"],Us={class:"flex-1 overflow-y-auto custom-scrollbar px-4 pt-4 pb-16"},qs={class:"grid grid-cols-2 sm:grid-cols-3 gap-4"},Gs=["aria-label","onClick"],Os={class:"cover-card flex-1 min-h-0 relative"},Hs={key:0,class:"absolute inset-0 animate-shimmer"},Ws=["src","alt","onError"],Ks=["src","alt"],Ys={key:3,class:"absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent pointer-events-none"},Js={class:"absolute bottom-0 left-0 right-0 p-2"},Qs={class:"text-xs font-semibold text-white/90 leading-tight truncate"},Zs={class:"text-xs text-white/40 truncate mt-0.5"},Xs={key:4,class:"absolute top-1.5 left-1.5"},en={class:"text-xs px-1.5 py-0.5 rounded bg-black/60 text-amber-400 backdrop-blur-sm font-medium"},tn={key:5,class:"absolute top-1.5 right-1.5"},sn={class:"absolute top-1.5 right-1.5 flex gap-0.5 flex-wrap justify-end max-w-[60%]"},nn={key:0,class:"flex items-center justify-center py-12"},ln=G({__name:"TVSeriesGrid",props:{series:{},title:{default:"Recommended TV Series"}},emits:["selectSeries"],setup(a){const c=a,{isDark:l}=Z(),w=S(""),g=S(null),{coverSrc:v,fallbackSrc:x,onError:m,isLoading:_}=Ae({items:Ne(c,"series"),id:o=>o.id,existingUrl:o=>o.posterUrl||o.backdropUrl,fetch:o=>ct(o.title,o.year).then(r=>r.posterUrl),fallback:o=>Ot(o.title,o.year)});function $(o){return o.year?o.endYear&&o.endYear!==o.year?`${o.year}–${o.endYear}`:o.status==="ongoing"?`${o.year}–`:String(o.year):""}const b=B(()=>{const o=new Map;for(const r of c.series)for(const h of r.genres??[])o.set(h,(o.get(h)??0)+1);return[...o.entries()].sort((r,h)=>h[1]-r[1]).slice(0,8).map(([r])=>r)}),d=B(()=>{let o=c.series;if(w.value){const r=w.value.toLowerCase();o=o.filter(h=>h.title.toLowerCase().includes(r)||(h.creator??"").toLowerCase().includes(r)||(h.network??"").toLowerCase().includes(r)||(h.genres??[]).some(M=>M.toLowerCase().includes(r)))}return g.value&&(o=o.filter(r=>(r.genres??[]).includes(g.value))),o});return(o,r)=>(s(),n("div",zs,[e("div",{class:"p-4 space-y-3",style:q(t(l)?"border-bottom: 1px solid rgba(255, 255, 255, 0.08)":"border-bottom: 1px solid rgba(0, 0, 0, 0.06)")},[e("div",Es,[e("h3",{class:i(["text-sm font-bold",t(l)?"text-white/90":"text-gray-900"])},u(a.title),3),e("div",Fs,[e("span",{class:i(["text-xs font-mono",t(l)?"text-white/30":"text-gray-400"])},u(d.value.length)+" series ",3),ie(o.$slots,"header-actions")])]),W(e("input",{"onUpdate:modelValue":r[0]||(r[0]=h=>w.value=h),type:"text",placeholder:"Search TV series...",class:i(["w-full px-3 py-2 rounded-lg text-base outline-none transition-colors",t(l)?"bg-white/5 text-white/80 placeholder:text-white/25 focus:bg-white/10":"bg-black/3 text-gray-800 placeholder:text-gray-400 focus:bg-black/5"])},null,2),[[Q,w.value]]),b.value.length>0?(s(),n("div",Rs,[(s(!0),n(I,null,P(b.value,h=>(s(),n("button",{key:h,class:i(["text-xs px-2 py-1 rounded-md transition-all duration-150",g.value===h?"nav-tab-active":t(l)?"text-white/40 hover:text-white/70 hover:bg-white/5":"text-gray-500 hover:text-gray-800 hover:bg-black/5"]),onClick:M=>g.value=g.value===h?null:h},u(h),11,Vs))),128))])):f("",!0)],4),e("div",Us,[e("div",qs,[(s(!0),n(I,null,P(d.value,h=>(s(),n("button",{key:h.id,class:"group flex flex-col items-stretch text-left w-full path-glass-bubble rounded-2xl overflow-hidden transition-all duration-200 hover:brightness-105","aria-label":h.title,onClick:M=>o.$emit("selectSeries",h)},[e("div",Os,[e("div",{class:i(["aspect-[2/3] relative w-full overflow-hidden rounded-[10px]",t(v)(h)?"":t(l)?"bg-white/[0.06]":"bg-black/[0.04]"])},[t(_)(h)?(s(),n("div",Hs)):f("",!0),t(v)(h)?(s(),n("img",{key:1,src:t(v)(h),alt:`${h.title} — TV Series`,class:"w-full h-full object-cover transition-transform duration-300 group-hover:scale-110",loading:"lazy",onError:M=>t(m)(h)},null,40,Ws)):t(_)(h)?f("",!0):(s(),n("img",{key:2,src:t(x)(h),alt:h.title,class:"w-full h-full object-cover"},null,8,Ks)),t(v)(h)?(s(),n("div",Ys)):f("",!0),e("div",Js,[e("p",Qs,u(h.title),1),e("p",Zs,[ne(u($(h)),1),h.seasons?(s(),n(I,{key:0},[ne(" · "+u(h.seasons)+"S",1)],64)):f("",!0)])]),h.rating?(s(),n("div",Xs,[e("span",en," ★ "+u(h.rating.toFixed(1)),1)])):f("",!0),h.status==="ongoing"?(s(),n("div",tn,[...r[1]||(r[1]=[e("span",{class:"text-xs px-1 py-0.5 rounded bg-emerald-500/80 text-white backdrop-blur-sm"}," ongoing ",-1)])])):f("",!0),e("div",sn,[(s(!0),n(I,null,P((h.sources??[]).slice(0,2),M=>(s(),n("span",{key:M.type,class:"text-xs px-1 py-0.5 rounded bg-black/60 text-white/70 backdrop-blur-sm"},u(M.type),1))),128))])],2)])],8,Gs))),128))]),d.value.length===0?(s(),n("div",nn,[e("p",{class:i(["text-sm",t(l)?"text-white/30":"text-gray-400"])}," No TV series match your search ",2)])):f("",!0)])]))}}),on={class:"h-full flex flex-col"},an={class:"flex items-center justify-between gap-2"},rn={class:"flex items-center gap-2 shrink-0"},cn={class:"flex-1 overflow-y-auto custom-scrollbar px-4 pt-4 pb-16"},dn={class:"columns-2 sm:columns-3 gap-3 space-y-3"},un=["aria-label","onClick"],hn=["src","alt","onError"],xn={key:2,class:"absolute bottom-0 left-0 right-0 p-2 bg-gradient-to-t from-black/70 via-black/30 to-transparent"},pn={key:0,class:"text-xs font-medium text-white/90 truncate"},gn={key:1,class:"text-xs text-white/50 truncate"},bn={key:0,class:"flex items-center justify-center py-12"},vn=G({__name:"ImageGrid",props:{images:{},title:{default:"Images"}},emits:["selectImage"],setup(a){const{isDark:c}=Z(),l=S(new Set);function w(g){l.value.add(g.id),l.value=new Set(l.value)}return(g,v)=>(s(),n("div",on,[e("div",{class:"p-4 space-y-3",style:q(t(c)?"border-bottom: 1px solid rgba(255, 255, 255, 0.08)":"border-bottom: 1px solid rgba(0, 0, 0, 0.06)")},[e("div",an,[e("h3",{class:i(["text-sm font-bold",t(c)?"text-white/90":"text-gray-900"])},u(a.title),3),e("div",rn,[e("span",{class:i(["text-xs font-mono",t(c)?"text-white/30":"text-gray-400"])},u(a.images.length)+" images ",3),ie(g.$slots,"header-actions")])])],4),e("div",cn,[e("div",dn,[(s(!0),n(I,null,P(a.images,x=>(s(),n("button",{key:x.id,class:i(["group w-full break-inside-avoid text-left rounded-xl overflow-hidden transition-all duration-200 hover:brightness-110 relative",t(c)?"bg-white/5":"bg-black/3"]),"aria-label":x.alt||x.title||"Image",onClick:m=>g.$emit("selectImage",x)},[l.value.has(x.id)?(s(),n("div",{key:1,class:i(["w-full aspect-[4/3] flex items-center justify-center",t(c)?"bg-white/5":"bg-black/5"])},[(s(),n("svg",{class:i(["w-8 h-8",t(c)?"text-white/15":"text-gray-300"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...v[0]||(v[0]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"},null,-1)])],2))],2)):(s(),n("img",{key:0,src:x.url,alt:x.alt||x.title||"Image",class:"w-full block transition-transform duration-300 group-hover:scale-[1.03]",loading:"lazy",onError:m=>w(x)},null,40,hn)),x.title||x.source?(s(),n("div",xn,[x.title?(s(),n("p",pn,u(x.title),1)):f("",!0),x.source?(s(),n("p",gn,u(x.source),1)):f("",!0)])):f("",!0)],10,un))),128))]),a.images.length===0?(s(),n("div",bn,[e("p",{class:i(["text-sm",t(c)?"text-white/30":"text-gray-400"])}," No images found ",2)])):f("",!0)])]))}}),fn={class:"h-full flex flex-col"},mn={class:"p-4 space-y-3"},wn={class:"flex items-center justify-between"},yn={class:"shrink-0 flex items-center gap-2"},kn={key:0,class:"flex flex-wrap gap-1.5"},$n=["onClick"],_n={class:"flex-1 overflow-y-auto custom-scrollbar px-4 pb-16"},Cn={class:"grid grid-cols-2 sm:grid-cols-3 gap-3"},jn=["aria-label","onClick"],Sn={class:"aspect-[4/3] relative w-full overflow-hidden rounded-t-[10px]"},Mn={key:0,class:"absolute inset-0 animate-shimmer"},Tn=["src","alt","onError"],Dn=["src","alt"],In={key:3,class:"absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent pointer-events-none"},Bn={class:"absolute bottom-0 left-0 right-0 p-2"},Ln={class:"text-xs font-semibold text-white/90 truncate"},Pn={class:"text-xs text-white/40 truncate mt-0.5"},Nn={key:4,class:"absolute top-1.5 right-1.5"},An={class:"text-xs px-1.5 py-0.5 rounded bg-black/60 text-amber-400 backdrop-blur-sm font-semibold"},zn={key:5,class:"absolute top-1.5 left-1.5"},En={class:"text-xs px-1 py-0.5 rounded bg-black/60 text-white/70 backdrop-blur-sm"},Fn={key:0,class:"flex items-center justify-center py-12"},Rn=G({__name:"PlaceGrid",props:{places:{},title:{default:"Places"}},emits:["selectPlace"],setup(a){const c=a,{isDark:l}=Z(),w=S(""),g=S(null),{coverSrc:v,fallbackSrc:x,onError:m,isLoading:_}=Ae({items:Ne(c,"places"),id:d=>d.id,existingUrl:d=>d.photoUrl,fetch:d=>ut(d.name,d.city),fallback:d=>dt(d.name,d.cuisine||d.category)}),$=B(()=>{const d=new Map;for(const o of c.places){const r=o.cuisine||o.category;r&&d.set(r,(d.get(r)??0)+1)}return[...d.entries()].sort((o,r)=>r[1]-o[1]).slice(0,8).map(([o])=>o)}),b=B(()=>{let d=c.places;if(w.value){const o=w.value.toLowerCase();d=d.filter(r=>r.name.toLowerCase().includes(o)||r.cuisine?.toLowerCase().includes(o)||r.category?.toLowerCase().includes(o)||r.city?.toLowerCase().includes(o)||r.address?.toLowerCase().includes(o))}return g.value&&(d=d.filter(o=>o.cuisine===g.value||o.category===g.value)),d});return(d,o)=>(s(),n("div",fn,[e("div",mn,[e("div",wn,[e("h3",{class:i(["text-base font-bold",t(l)?"text-white/90":"text-gray-900"])},u(a.title||"Places"),3),e("div",yn,[e("span",{class:i(["text-xs",t(l)?"text-white/30":"text-gray-400"])},u(b.value.length)+" places ",3),ie(d.$slots,"header-actions")])]),W(e("input",{"onUpdate:modelValue":o[0]||(o[0]=r=>w.value=r),type:"text",placeholder:"Search places...",class:i(["w-full text-base px-3 py-2 rounded-lg outline-none transition-colors",t(l)?"bg-white/5 text-white/80 placeholder-white/25 focus:bg-white/8":"bg-black/5 text-gray-800 placeholder-gray-400 focus:bg-black/8"])},null,2),[[Q,w.value]]),$.value.length>1?(s(),n("div",kn,[(s(!0),n(I,null,P($.value,r=>(s(),n("button",{key:r,class:i(["text-xs px-2 py-1 rounded-md font-medium transition-all duration-150",g.value===r?"nav-tab-active":t(l)?"bg-white/5 text-white/40 hover:text-white/70":"bg-black/5 text-gray-500 hover:text-gray-800"]),onClick:h=>g.value=g.value===r?null:r},u(r),11,$n))),128))])):f("",!0)]),e("div",_n,[e("div",Cn,[(s(!0),n(I,null,P(b.value,r=>(s(),n("button",{key:r.id,class:"group flex flex-col items-stretch text-left w-full path-glass-bubble rounded-2xl overflow-hidden transition-all duration-200 hover:brightness-105","aria-label":r.name,onClick:h=>d.$emit("selectPlace",r)},[e("div",Sn,[t(_)(r)?(s(),n("div",Mn)):f("",!0),t(v)(r)?(s(),n("img",{key:1,src:t(v)(r),alt:r.name,class:"w-full h-full object-cover transition-transform duration-300 group-hover:scale-110",loading:"lazy",onError:h=>t(m)(r)},null,40,Tn)):t(_)(r)?f("",!0):(s(),n("img",{key:2,src:t(x)(r),alt:r.name,class:"w-full h-full object-cover"},null,8,Dn)),t(v)(r)?(s(),n("div",In)):f("",!0),e("div",Bn,[e("p",Ln,u(r.name),1),e("p",Pn,u(r.cuisine||r.category),1)]),r.rating?(s(),n("div",Nn,[e("span",An," ★ "+u(r.rating.toFixed(1)),1)])):f("",!0),r.priceLevel?(s(),n("div",zn,[e("span",En,u("$".repeat(r.priceLevel)),1)])):f("",!0)])],8,jn))),128))]),b.value.length===0?(s(),n("div",Fn,[e("p",{class:i(["text-xs",t(l)?"text-white/30":"text-gray-400"])}," No places match your search ",2)])):f("",!0)])]))}}),Vn={class:"h-full flex flex-col"},Un={class:"flex items-center justify-between gap-2"},qn={class:"flex items-center gap-2 shrink-0"},Gn={key:0,class:"flex flex-wrap gap-1.5"},On=["onClick"],Hn={class:"flex-1 overflow-y-auto custom-scrollbar px-4 pt-4 pb-16"},Wn={class:"grid grid-cols-2 sm:grid-cols-3 gap-4"},Kn=["aria-label","onClick"],Yn={class:"cover-card flex-1 min-h-0 relative"},Jn={key:0,class:"absolute inset-0 animate-shimmer"},Qn=["src","alt","onError"],Zn=["src","alt"],Xn={key:3,class:"absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent pointer-events-none"},el={class:"absolute bottom-0 left-0 right-0 p-2"},tl={class:"text-xs font-semibold text-white/90 leading-tight truncate"},sl={class:"text-xs text-white/40 truncate mt-0.5"},nl={class:"absolute top-1.5 right-1.5 flex gap-0.5 flex-wrap justify-end max-w-[60%]"},ll={key:0,class:"flex items-center justify-center py-12"},ol=G({__name:"PodcastGrid",props:{podcasts:{},title:{default:"Recommended Podcasts"}},emits:["selectPodcast"],setup(a){const c=a,{isDark:l}=Z(),w=S(""),g=S(null),{coverSrc:v,fallbackSrc:x,onError:m,isLoading:_}=Ae({items:Ne(c,"podcasts"),id:d=>d.id,existingUrl:d=>d.coverUrl,fetch:d=>xt(d.title,d.host),fallback:d=>ht(d.title,d.host)}),$=B(()=>{const d=new Map;for(const o of c.podcasts)for(const r of o.genres??[])d.set(r,(d.get(r)??0)+1);return[...d.entries()].sort((o,r)=>r[1]-o[1]).slice(0,8).map(([o])=>o)}),b=B(()=>{let d=c.podcasts;if(w.value){const o=w.value.toLowerCase();d=d.filter(r=>r.title.toLowerCase().includes(o)||(r.host??"").toLowerCase().includes(o)||(r.genres??[]).some(h=>h.toLowerCase().includes(o)))}return g.value&&(d=d.filter(o=>(o.genres??[]).includes(g.value))),d});return(d,o)=>(s(),n("div",Vn,[e("div",{class:"p-4 space-y-3",style:q(t(l)?"border-bottom: 1px solid rgba(255, 255, 255, 0.08)":"border-bottom: 1px solid rgba(0, 0, 0, 0.06)")},[e("div",Un,[e("h3",{class:i(["text-sm font-bold",t(l)?"text-white/90":"text-gray-900"])},u(a.title),3),e("div",qn,[e("span",{class:i(["text-xs font-mono",t(l)?"text-white/30":"text-gray-400"])},u(b.value.length)+" podcasts ",3),ie(d.$slots,"header-actions")])]),W(e("input",{"onUpdate:modelValue":o[0]||(o[0]=r=>w.value=r),type:"text",placeholder:"Search podcasts...",class:i(["w-full px-3 py-2 rounded-lg text-base outline-none transition-colors",t(l)?"bg-white/5 text-white/80 placeholder:text-white/25 focus:bg-white/10":"bg-black/3 text-gray-800 placeholder:text-gray-400 focus:bg-black/5"])},null,2),[[Q,w.value]]),$.value.length>0?(s(),n("div",Gn,[(s(!0),n(I,null,P($.value,r=>(s(),n("button",{key:r,class:i(["text-xs px-2 py-1 rounded-md transition-all duration-150",g.value===r?"nav-tab-active":t(l)?"text-white/40 hover:text-white/70 hover:bg-white/5":"text-gray-500 hover:text-gray-800 hover:bg-black/5"]),onClick:h=>g.value=g.value===r?null:r},u(r),11,On))),128))])):f("",!0)],4),e("div",Hn,[e("div",Wn,[(s(!0),n(I,null,P(b.value,r=>(s(),n("button",{key:r.id,class:"group flex flex-col items-stretch text-left w-full path-glass-bubble rounded-2xl overflow-hidden transition-all duration-200 hover:brightness-105","aria-label":r.title,onClick:h=>d.$emit("selectPodcast",r)},[e("div",Yn,[e("div",{class:i(["aspect-square relative w-full overflow-hidden rounded-[10px]",t(v)(r)?"":t(l)?"bg-white/[0.06]":"bg-black/[0.04]"])},[t(_)(r)?(s(),n("div",Jn)):f("",!0),t(v)(r)?(s(),n("img",{key:1,src:t(v)(r),alt:r.title,class:"w-full h-full object-cover transition-transform duration-300 group-hover:scale-110",loading:"lazy",onError:h=>t(m)(r)},null,40,Qn)):t(_)(r)?f("",!0):(s(),n("img",{key:2,src:t(x)(r),alt:r.title,class:"w-full h-full object-cover"},null,8,Zn)),t(v)(r)?(s(),n("div",Xn)):f("",!0),e("div",el,[e("p",tl,u(r.title),1),e("p",sl,u(r.host||"Podcast"),1)]),e("div",nl,[(s(!0),n(I,null,P(r.sources.slice(0,2),h=>(s(),n("span",{key:h.type,class:"text-xs px-1 py-0.5 rounded bg-black/60 text-white/70 backdrop-blur-sm"},u(h.type),1))),128))])],2)])],8,Kn))),128))]),b.value.length===0?(s(),n("div",ll,[e("p",{class:i(["text-sm",t(l)?"text-white/30":"text-gray-400"])}," No podcasts match your search ",2)])):f("",!0)])]))}}),al={class:"shrink-0"},il={class:"flex-1 overflow-y-auto custom-scrollbar"},rl={key:0,class:"relative overflow-hidden",style:{minHeight:"180px"}},cl={class:"absolute inset-0"},dl=["src"],ul={class:"relative z-10 flex flex-col justify-end h-full px-5 pb-5 pt-12",style:{"min-height":"180px"}},hl={class:"px-3 pt-2 pb-8"},xl={key:0,"stroke-linecap":"round","stroke-linejoin":"round",d:"M12 2a10 10 0 100 20 10 10 0 000-20zm0 0v2m0 16v2m10-10h-2M4 12H2m15.07-5.07l-1.41 1.41M8.34 15.66l-1.41 1.41m0-11.14l1.41 1.41m7.32 7.32l1.41 1.41"},pl={key:1,"stroke-linecap":"round","stroke-linejoin":"round",d:"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z"},gl={key:2,"stroke-linecap":"round","stroke-linejoin":"round",d:"M13 2L3 14h9l-1 8 10-12h-9l1-8z"},bl={key:3,"stroke-linecap":"round","stroke-linejoin":"round",d:"M4 6h16M4 12h16M4 18h7"},vl=["onClick"],fl=["onClick"],ml={key:1,class:"flex items-center justify-center py-16 px-4"},wl=G({__name:"MagazineGrid",props:{sections:{},heroImageUrl:{default:null},title:{default:"Brief"},query:{default:""}},setup(a){const c=a,{isDark:l}=Z(),{openMagazineSectionDetail:w}=$e(),g=["compass","bookmark","lightning","lines"];function v(b){return b.replace(/\[([^\]]*)\]\([^)]+\)/g,"$1").replace(/https?:\/\/\S+/g,"").replace(/\uFE0F/g,"").replace(new RegExp("(?:^|(?<=\\s))[\\p{Emoji_Presentation}\\p{Extended_Pictographic}]+\\s*","gu"),"").replace(/---+/g,"").replace(/^#+\s*/gm,"").replace(/\*\*/g,"").replace(/\*([^*\n]+)\*/g,"$1").replace(/\|/g,", ").replace(/,\s*,+/g,",").replace(/^\s*[-•]\s+/gm,"").replace(/\n+/g," ").replace(/(^|\s),\s*/g,"$1").trim()}function x(b,d){const o=v(b);return o.length<=d?o:o.slice(0,d).replace(/\s+\S*$/,"")+" ..."}const m=B(()=>{const b=[],d=c.sections;if(!d.length)return b;let o=0;for(const j of c.query||"brief")o=(o<<5)-o+j.charCodeAt(0)|0;let r="",h=0,M=!1;return d.forEach((j,L)=>{if(L===0&&!j.group){b.push({type:"wide",title:j.title,text:x(j.content,200),label:"The Lead",author:j.author,section:j});return}const D=j.group||"";if(D&&D!==r&&(M&&(b.push({type:"dark",title:"",text:""}),M=!1),b.push({type:"banner",title:"",text:"",icon:g[h%g.length],label:D}),h++,r=D),D){const C=M?"dark":"half",k=v(j.content),p=v(j.title),y=k.toLowerCase().startsWith(p.toLowerCase().slice(0,30));b.push({type:C,title:y?"":j.title,text:x(j.content,y?160:100),section:j}),M=!M}else M&&(b.push({type:"dark",title:"",text:""}),M=!1),b.push({type:"wide",title:j.title,text:x(j.content,180),author:j.author,section:j})}),M&&b.push({type:"dark",title:"",text:""}),b});function _(b){const d=c.sections.indexOf(b);w(b,d>=0?d:0)}const $=B(()=>{const b=(c.query??"").trim();return b?b.length>100?b.slice(0,97)+"...":b:c.title});return(b,d)=>(s(),n("div",{class:i(["magazine h-full flex flex-col",t(l)?"magazine-dark":"magazine-light"])},[e("header",{class:i(["shrink-0 px-5 py-4 flex items-center justify-between border-b",t(l)?"border-white/10":"border-black/10"])},[e("h1",{class:i(["font-serif text-xl font-bold tracking-tight",t(l)?"text-white":"text-black"])}," AI Brief ",2),e("div",al,[ie(b.$slots,"header-actions",{},void 0,!0)])],2),e("div",il,[$.value?(s(),n("div",rl,[e("div",cl,[a.heroImageUrl?(s(),n("img",{key:0,src:a.heroImageUrl,alt:"",class:"w-full h-full object-cover",style:{filter:"saturate(0.3) contrast(1.1)"}},null,8,dl)):(s(),n("div",{key:1,class:i(["w-full h-full",t(l)?"bg-gradient-to-br from-white/[0.04] via-white/[0.02] to-transparent":"bg-gradient-to-br from-black/[0.06] via-black/[0.03] to-transparent"])},null,2))]),e("div",{class:i(["absolute inset-0",t(l)?"bg-gradient-to-t from-[#0a0a0a] via-[#0a0a0a]/80 to-[#0a0a0a]/60":"bg-gradient-to-t from-[#faf9f6] via-[#faf9f6]/85 to-[#faf9f6]/65"])},null,2),e("div",ul,[e("p",{class:i(["text-xs uppercase tracking-[0.3em] font-medium mb-2",t(l)?"text-white/40":"text-black/40"])}," In response to ",2),e("p",{class:i(["font-serif text-2xl italic leading-tight",t(l)?"text-white/70":"text-black/60"])},u($.value),3)])])):f("",!0),e("div",hl,[e("div",{class:i(["grid grid-cols-2 gap-px",t(l)?"bg-white/12":"bg-black/10"])},[(s(!0),n(I,null,P(m.value,(o,r)=>(s(),n(I,{key:r},[o.type==="banner"?(s(),n("div",{key:0,class:i(["col-span-2 flex flex-col items-center justify-center py-8 px-5",t(l)?"bg-[#0a0a0a]":"bg-[#faf9f6]"])},[(s(),n("svg",{class:i(["w-5 h-5 mb-2.5",t(l)?"text-white/20":"text-black/15"]),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"1.5"},[o.icon==="compass"?(s(),n("path",xl)):o.icon==="bookmark"?(s(),n("path",pl)):o.icon==="lightning"?(s(),n("path",gl)):(s(),n("path",bl))],2)),e("p",{class:i(["text-xs uppercase tracking-[0.3em] font-semibold text-center",t(l)?"text-white/30":"text-black/30"])},u(o.label),3)],2)):o.type==="wide"?(s(),n("button",{key:1,class:i(["col-span-2 text-left px-5 py-5 transition-colors cursor-pointer",t(l)?"bg-[#0a0a0a] hover:bg-white/[0.03]":"bg-[#faf9f6] hover:bg-black/[0.02]"]),onClick:h=>o.section&&_(o.section)},[o.label?(s(),n("p",{key:0,class:i(["text-xs uppercase tracking-[0.3em] font-semibold mb-2",t(l)?"text-white/30":"text-black/35"])},u(o.label),3)):f("",!0),e("h2",{class:i(["font-serif text-lg font-bold leading-snug mb-2",t(l)?"text-white/95":"text-black/90"])},u(o.title),3),o.author?(s(),n("p",{key:1,class:i(["text-xs mb-2",t(l)?"text-white/40":"text-black/40"])}," By "+u(o.author),3)):f("",!0),e("p",{class:i(["font-serif text-sm leading-relaxed",t(l)?"text-white/70":"text-black/60"])},u(o.text),3)],10,vl)):(s(),n("button",{key:2,class:i(["text-left px-4 py-4 transition-colors flex flex-col cursor-pointer",[t(l)?"bg-[#0a0a0a] hover:bg-white/[0.03]":"bg-[#faf9f6] hover:bg-black/[0.02]",o.type==="dark"?t(l)?"bg-white/[0.04]":"bg-black/[0.04]":""]]),onClick:h=>o.section&&_(o.section)},[o.label?(s(),n("p",{key:0,class:i(["text-xs uppercase tracking-[0.25em] font-semibold mb-1.5",t(l)?"text-white/25":"text-black/30"])},u(o.label),3)):f("",!0),o.title?(s(),n("h3",{key:1,class:i(["font-serif text-sm font-bold leading-snug mb-1",t(l)?"text-white/90":"text-black/85"])},u(o.title),3)):f("",!0),e("p",{class:i(["font-serif text-xs leading-relaxed flex-1",[t(l)?"text-white/55":"text-black/50",o.title?"":"italic"]])},u(o.text),3)],10,fl))],64))),128))],2)]),a.sections.length===0?(s(),n("div",ml,[e("p",{class:i(["text-sm",t(l)?"text-white/40":"text-gray-400"])}," No sections to display ",2)])):f("",!0)])],2))}}),st=De(wl,[["__scopeId","data-v-02741b8c"]]),yl={class:"h-full flex flex-col"},kl={class:"flex items-center justify-between gap-2"},$l={class:"flex items-center gap-2 shrink-0"},_l=["placeholder"],Cl={class:"flex-1 overflow-y-auto custom-scrollbar px-4 pt-4 pb-16"},jl={class:"grid grid-cols-2 sm:grid-cols-3 gap-4"},Sl=["aria-label","onClick"],Ml={class:"cover-card flex-1 min-h-0 relative"},Tl={class:"aspect-[4/3] flex flex-col w-full overflow-hidden rounded-[10px]"},Dl={class:"flex-1 min-h-0 relative"},Il=["src","alt","onError"],Bl={key:2,class:"absolute inset-0 bg-gradient-to-t from-black/60 via-black/20 to-transparent pointer-events-none"},Ll={key:0,class:"flex items-center justify-center py-12"},nt=G({__name:"NewsGrid",props:{articles:{},title:{default:"News & Articles"},query:{default:""},variant:{default:"news"}},setup(a){const c=a,{isDark:l}=Z(),{openArticleDetail:w,openWebsiteDetail:g}=$e(),v=S(""),x=S(new Set);function m(h){return!h||typeof h!="string"?!1:/^https?:\/\//i.test(h.trim())}function _(h){x.value=new Set([...x.value,h])}function $(h){try{return new URL(h).hostname.replace(/^www\./,"")}catch{return h}}function b(h){return c.variant==="websites"?Ht(h.title,$(h.url)):Wt(h.title,$(h.url))}function d(h){c.variant==="websites"?g(h):w(h)}function o(h,M){if(!M.trim())return 0;const L=M.toLowerCase().split(/\s+/).filter(y=>y.length>1);if(L.length===0)return 0;const D=h.title.toLowerCase(),C=(h.content??"").toLowerCase(),k=h.url.toLowerCase();let p=0;for(const y of L)D.includes(y)&&(p+=3),C.includes(y)&&(p+=2),k.includes(y)&&(p+=1);return p}const r=B(()=>{let h=c.articles;if(v.value.trim()){const M=v.value.toLowerCase();h=h.filter(j=>j.title.toLowerCase().includes(M)||(j.content??"").toLowerCase().includes(M)||j.url.toLowerCase().includes(M))}return c.query.trim()?[...h].sort((M,j)=>o(j,c.query)-o(M,c.query)):h});return(h,M)=>(s(),n("div",yl,[e("div",{class:"p-4 space-y-3",style:q(t(l)?"border-bottom: 1px solid rgba(255, 255, 255, 0.08)":"border-bottom: 1px solid rgba(0, 0, 0, 0.06)")},[e("div",kl,[e("h3",{class:i(["text-sm font-bold",t(l)?"text-white/90":"text-gray-900"])},u(a.title),3),e("div",$l,[e("span",{class:i(["text-xs font-mono",t(l)?"text-white/30":"text-gray-400"])},u(r.value.length)+" "+u(a.variant==="websites"?"websites":"articles"),3),ie(h.$slots,"header-actions")])]),W(e("input",{"onUpdate:modelValue":M[0]||(M[0]=j=>v.value=j),type:"text",placeholder:a.variant==="websites"?"Search websites...":"Search articles...",class:i(["w-full px-3 py-2 rounded-lg text-base outline-none transition-colors",t(l)?"bg-white/5 text-white/80 placeholder:text-white/25 focus:bg-white/10":"bg-black/3 text-gray-800 placeholder:text-gray-400 focus:bg-black/5"])},null,10,_l),[[Q,v.value]])],4),e("div",Cl,[e("div",jl,[(s(!0),n(I,null,P(r.value,(j,L)=>(s(),n("button",{key:L,class:"group flex flex-col items-stretch text-left w-full path-glass-bubble rounded-2xl overflow-hidden transition-all duration-200 hover:brightness-105","aria-label":j.title,onClick:D=>d(j)},[e("div",Ml,[e("div",Tl,[e("div",Dl,[m(j.imgSrc)&&!x.value.has(j.url)?(s(),n("img",{key:0,src:j.imgSrc,alt:j.title,class:"absolute inset-0 w-full h-full object-cover transition-transform duration-300 group-hover:scale-110",loading:"lazy",onError:D=>_(j.url)},null,40,Il)):(s(),n("div",{key:1,class:"absolute inset-0 bg-cover bg-center",style:q({backgroundImage:`url(${b(j)})`})},null,4)),m(j.imgSrc)&&!x.value.has(j.url)?(s(),n("div",Bl)):f("",!0)]),e("div",{class:i(["shrink-0 p-2 backdrop-blur-md rounded-b-[10px]",[t(l)?"bg-black shadow-[inset_0_1px_0_rgba(255,255,255,0.12)]":"bg-white shadow-[inset_0_1px_0_rgba(0,0,0,0.06)]"]])},[e("p",{class:i(["text-xs font-semibold leading-tight line-clamp-2",t(l)?"text-white/95":"text-gray-900"])},u(j.title),3),j.content?(s(),n("p",{key:0,class:i(["text-xs line-clamp-1 mt-0.5",t(l)?"text-white/70":"text-gray-600"])},u(j.content),3)):f("",!0),e("p",{class:i(["text-xs truncate mt-0.5",t(l)?"text-white/50":"text-gray-500"])},u($(j.url)),3)],2)])])],8,Sl))),128))]),r.value.length===0?(s(),n("div",Ll,[e("p",{class:i(["text-sm",t(l)?"text-white/30":"text-gray-400"])},u(a.variant==="websites"?"No websites match your search":"No articles match your search"),3)])):f("",!0)])]))}}),Pl={class:"h-full flex flex-col"},Nl={class:"flex items-center justify-between gap-2"},Al={class:"flex items-center gap-2 shrink-0"},zl={class:"flex-1 overflow-y-auto custom-scrollbar px-4 pt-4 pb-16"},El={class:"grid grid-cols-1 sm:grid-cols-2 gap-3"},Fl=["aria-label","onClick"],Rl={class:"aspect-[3/1] relative w-full overflow-hidden"},Vl=["src","alt"],Ul={class:"p-3"},ql={class:"flex items-center gap-3 mt-2 flex-wrap"},Gl={key:0,class:"flex items-center justify-center py-12"},Ol=G({__name:"RecipeGrid",props:{recipes:{},title:{default:"Recipes"}},emits:["selectRecipe"],setup(a){const c=a,{isDark:l}=Z(),w=S(""),g=B(()=>{if(!w.value.trim())return c.recipes;const v=w.value.toLowerCase();return c.recipes.filter(x=>x.title.toLowerCase().includes(v)||x.ingredients.some(m=>m.toLowerCase().includes(v)))});return(v,x)=>(s(),n("div",Pl,[e("div",{class:"p-4 space-y-3",style:q(t(l)?"border-bottom: 1px solid rgba(255, 255, 255, 0.08)":"border-bottom: 1px solid rgba(0, 0, 0, 0.06)")},[e("div",Nl,[e("h3",{class:i(["text-sm font-bold",t(l)?"text-white/90":"text-gray-900"])},u(a.title),3),e("div",Al,[e("span",{class:i(["text-xs font-mono",t(l)?"text-white/30":"text-gray-400"])},u(g.value.length)+" recipes ",3),ie(v.$slots,"header-actions")])]),a.recipes.length>3?W((s(),n("input",{key:0,"onUpdate:modelValue":x[0]||(x[0]=m=>w.value=m),type:"text",placeholder:"Search recipes...",class:i(["w-full px-3 py-2 rounded-lg text-base outline-none transition-colors",t(l)?"bg-white/5 text-white/80 placeholder:text-white/25 focus:bg-white/10":"bg-black/3 text-gray-800 placeholder:text-gray-400 focus:bg-black/5"])},null,2)),[[Q,w.value]]):f("",!0)],4),e("div",zl,[e("div",El,[(s(!0),n(I,null,P(g.value,(m,_)=>(s(),n("button",{key:_,class:i(["group flex flex-col items-stretch text-left w-full rounded-2xl overflow-hidden transition-all duration-200 hover:brightness-105",t(l)?"bg-white/[0.04] border border-white/8 hover:bg-white/[0.07]":"bg-black/[0.02] border border-black/5 hover:bg-black/[0.05]"]),"aria-label":m.title,onClick:$=>v.$emit("selectRecipe",m)},[e("div",Rl,[e("img",{src:t(Kt)(m.title,m.time),alt:m.title,class:"w-full h-full object-cover"},null,8,Vl)]),e("div",Ul,[e("p",{class:i(["text-sm font-semibold leading-tight line-clamp-2",t(l)?"text-white/90":"text-gray-900"])},u(m.title),3),e("div",ql,[m.time?(s(),n("span",{key:0,class:i(["flex items-center gap-1 text-xs",t(l)?"text-white/40":"text-gray-500"])},[x[1]||(x[1]=e("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"})],-1)),ne(" "+u(m.time),1)],2)):f("",!0),m.servings?(s(),n("span",{key:1,class:i(["flex items-center gap-1 text-xs",t(l)?"text-white/40":"text-gray-500"])},[x[2]||(x[2]=e("svg",{class:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M17 20h5v-2a3 3 0 00-5.356-1.857M17 20H7m10 0v-2c0-.656-.126-1.283-.356-1.857M7 20H2v-2a3 3 0 015.356-1.857M7 20v-2c0-.656.126-1.283.356-1.857m0 0a5.002 5.002 0 019.288 0M15 7a3 3 0 11-6 0 3 3 0 016 0z"})],-1)),ne(" "+u(m.servings),1)],2)):f("",!0),m.calories?(s(),n("span",{key:2,class:i(["text-xs",t(l)?"text-white/40":"text-gray-500"])},u(m.calories)+" cal ",3)):f("",!0)]),m.ingredients.length>0?(s(),n("p",{key:0,class:i(["text-xs mt-2 line-clamp-1",t(l)?"text-white/25":"text-gray-400"])},u(m.ingredients.slice(0,4).join(" · ")),3)):f("",!0)])],10,Fl))),128))]),g.value.length===0?(s(),n("div",Gl,[e("p",{class:i(["text-sm",t(l)?"text-white/30":"text-gray-400"])}," No recipes match your search ",2)])):f("",!0)])]))}}),Hl={class:"h-full flex flex-col"},Wl={class:"flex items-center justify-between gap-2"},Kl={class:"flex flex-wrap gap-1.5"},Yl=["onClick"],Jl={class:"flex-1 overflow-y-auto custom-scrollbar px-4 pt-4 pb-16"},Ql={class:"space-y-2"},Zl=["aria-label","onClick"],Xl={class:"text-white/90"},eo={class:"flex-1 min-w-0"},to={class:"flex items-center gap-2"},so={class:"flex gap-1 mt-1.5"},no={key:0,class:"flex items-center justify-center py-12"},lo=G({__name:"AppsGrid",props:{apps:{},title:{default:"Recommended Apps"}},emits:["selectApp"],setup(a){const c=a,{isDark:l}=Z(),w=S(""),g=S(null),v=[{value:"nostr-client",label:"Nostr"},{value:"lightning-wallet",label:"Lightning"},{value:"bitcoin-wallet",label:"Bitcoin"},{value:"privacy",label:"Privacy"},{value:"node",label:"Nodes"},{value:"dev-tool",label:"Dev"}];function x(b){return v.find(d=>d.value===b)?.label??b}function m(b){return{ios:"iOS",android:"Android",web:"Web",desktop:"Desktop",cli:"CLI",nodeos:"Node"}[b]??b}function _(b){let d=0;for(let r=0;r<b.length;r++)d=b.charCodeAt(r)+((d<<5)-d);const o=Math.abs(d%360);return`linear-gradient(135deg, hsl(${o}, 60%, 35%), hsl(${(o+40)%360}, 50%, 25%))`}const $=B(()=>{let b=c.apps;if(w.value){const d=w.value.toLowerCase();b=b.filter(o=>o.name.toLowerCase().includes(d)||o.description.toLowerCase().includes(d)||o.keywords.some(r=>r.toLowerCase().includes(d)))}return g.value&&(b=b.filter(d=>d.category===g.value)),b});return(b,d)=>(s(),n("div",Hl,[e("div",{class:"p-4 space-y-3",style:q(t(l)?"border-bottom: 1px solid rgba(255, 255, 255, 0.08)":"border-bottom: 1px solid rgba(0, 0, 0, 0.06)")},[e("div",Wl,[e("h3",{class:i(["text-sm font-bold",t(l)?"text-white/90":"text-gray-900"])},u(a.title),3),e("span",{class:i(["text-xs font-mono",t(l)?"text-white/30":"text-gray-400"])},u($.value.length)+" apps ",3)]),W(e("input",{"onUpdate:modelValue":d[0]||(d[0]=o=>w.value=o),type:"text",placeholder:"Search apps...",class:i(["w-full px-3 py-2 rounded-lg text-base outline-none transition-colors",t(l)?"bg-white/5 text-white/80 placeholder:text-white/25 focus:bg-white/10":"bg-black/3 text-gray-800 placeholder:text-gray-400 focus:bg-black/5"])},null,2),[[Q,w.value]]),e("div",Kl,[(s(),n(I,null,P(v,o=>e("button",{key:o.value,class:i(["text-xs px-2 py-1 rounded-md transition-all duration-150",g.value===o.value?"nav-tab-active":t(l)?"text-white/40 hover:text-white/70 hover:bg-white/5":"text-gray-500 hover:text-gray-800 hover:bg-black/5"]),onClick:r=>g.value=g.value===o.value?null:o.value},u(o.label),11,Yl)),64))])],4),e("div",Jl,[e("div",Ql,[(s(!0),n(I,null,P($.value,o=>(s(),n("button",{key:o.id,class:i(["w-full text-left p-3 rounded-xl transition-all duration-200 flex items-start gap-3",t(l)?"bg-white/5 hover:bg-white/10":"bg-black/3 hover:bg-black/5"]),"aria-label":o.name,onClick:r=>b.$emit("selectApp",o)},[e("div",{class:"w-10 h-10 rounded-xl flex items-center justify-center text-lg font-bold shrink-0",style:q({background:_(o.id)})},[e("span",Xl,u(o.name.charAt(0)),1)],4),e("div",eo,[e("div",to,[e("p",{class:i(["text-xs font-semibold truncate",t(l)?"text-white/90":"text-gray-900"])},u(o.name),3),e("span",{class:i(["text-xs px-1.5 py-0.5 rounded font-medium shrink-0",t(l)?"bg-white/10 text-white/50":"bg-black/5 text-gray-500"])},u(x(o.category)),3)]),e("p",{class:i(["text-xs mt-0.5 line-clamp-2",t(l)?"text-white/50":"text-gray-500"])},u(o.description),3),e("div",so,[(s(!0),n(I,null,P(o.platforms,r=>(s(),n("span",{key:r,class:i(["text-xs px-1 py-0.5 rounded",t(l)?"bg-white/5 text-white/30":"bg-black/3 text-gray-400"])},u(m(r)),3))),128))])])],10,Zl))),128))]),$.value.length===0?(s(),n("div",no,[e("p",{class:i(["text-sm",t(l)?"text-white/30":"text-gray-400"])}," No apps match your search ",2)])):f("",!0)])]))}}),oo={class:"group/node"},ao={key:0,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"},io={key:1,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"},ro={class:"truncate flex-1"},co={key:0,class:"w-2.5 h-2.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},uo={key:0,class:"w-2.5 h-2.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},ho={key:0},xo=G({__name:"FileTreeNode",props:{entry:{},activeFile:{},depth:{}},emits:["select","toggle-context"],setup(a,{emit:c}){const l=a,{isFileSelected:w}=pe(),g=c,{isDark:v}=Z(),x=S(l.depth<1),m=B(()=>!l.entry.isDirectory&&l.activeFile===l.entry.path),_=B(()=>!l.entry.isDirectory&&w(l.entry.path)),$=B(()=>l.entry.isDirectory&&w(l.entry.path));function b(){l.entry.isDirectory?x.value=!x.value:g("select",l.entry.path)}function d(){g("toggle-context",l.entry.path)}function o(){g("toggle-context",l.entry.path)}return(r,h)=>{const M=Yt("FileTreeNode",!0);return s(),n("div",oo,[e("div",{class:i(["w-full flex items-center gap-1.5 py-1 px-2 rounded-lg text-xs transition-colors cursor-pointer",[m.value?t(v)?"bg-white/10 text-white/90":"bg-black/8 text-gray-900":t(v)?"text-white/60 hover:bg-white/[0.04] hover:text-white/80":"text-gray-600 hover:bg-black/[0.03] hover:text-gray-800"]]),style:q({paddingLeft:`${a.depth*12+8}px`}),onClick:b},[a.entry.isDirectory?(s(),n("svg",{key:0,class:i(["w-3 h-3 shrink-0 transition-transform duration-150",x.value?"rotate-90":""]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...h[2]||(h[2]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"},null,-1)])],2)):f("",!0),(s(),n("svg",{class:i(["w-3.5 h-3.5 shrink-0",a.entry.isDirectory?"text-accent/70":t(v)?"text-white/30":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[a.entry.isDirectory?(s(),n("path",ao)):(s(),n("path",io))],2)),e("span",ro,u(a.entry.name),1),a.entry.isDirectory?f("",!0):(s(),n("button",{key:1,class:i(["shrink-0 w-4 h-4 rounded-full border flex items-center justify-center transition-all ml-auto",[_.value?"bg-accent border-accent text-white":t(v)?"border-white/20 opacity-0 group-hover/node:opacity-100 hover:border-white/40":"border-black/15 opacity-0 group-hover/node:opacity-100 hover:border-black/30"]]),"aria-label":"Toggle file for chat context",onClick:xe(d,["stop"])},[_.value?(s(),n("svg",co,[...h[3]||(h[3]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"3",d:"M5 13l4 4L19 7"},null,-1)])])):f("",!0)],2)),a.entry.isDirectory?(s(),n("button",{key:2,class:i(["shrink-0 w-4 h-4 rounded-full border flex items-center justify-center transition-all ml-auto",[$.value?"bg-accent border-accent text-white":t(v)?"border-white/20 opacity-0 group-hover/node:opacity-100 hover:border-white/40":"border-black/15 opacity-0 group-hover/node:opacity-100 hover:border-black/30"]]),"aria-label":"Add folder to chat context",onClick:xe(o,["stop"])},[$.value?(s(),n("svg",uo,[...h[4]||(h[4]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"3",d:"M5 13l4 4L19 7"},null,-1)])])):f("",!0)],2)):f("",!0)],6),a.entry.isDirectory&&x.value&&a.entry.children?(s(),n("div",ho,[(s(!0),n(I,null,P(a.entry.children,j=>(s(),U(M,{key:j.path,entry:j,"active-file":a.activeFile,depth:a.depth+1,onSelect:h[0]||(h[0]=L=>r.$emit("select",L)),onToggleContext:h[1]||(h[1]=L=>r.$emit("toggle-context",L))},null,8,["entry","active-file","depth"]))),128))])):f("",!0)])}}}),po={class:"flex flex-col h-full"},go={class:"flex items-center gap-1 min-w-0 flex-1"},bo={class:"flex items-center gap-2 shrink-0"},vo={key:0,class:"flex-1 overflow-y-auto custom-scrollbar p-3"},fo={class:"mb-3 flex gap-2"},mo={class:"flex justify-end gap-2"},wo=["disabled"],yo={class:"grid grid-cols-2 gap-2"},ko=["onClick"],$o={key:1,class:"flex-1 overflow-y-auto custom-scrollbar p-2"},_o={key:0,class:"flex items-center justify-center py-12"},Co=G({__name:"ProjectGrid",props:{isWideDesktop:{type:Boolean},isMobile:{type:Boolean}},setup(a){const{isDark:c}=Z(),{projectList:l,activeProject:w,fileTree:g,activeFile:v,codeMode:x,selectedFiles:m,selectProject:_,openFile:$,createProject:b,clearActiveFile:d,toggleFileSelection:o,isFileSelected:r,loadProjects:h}=pe();oe(()=>{l.value.length===0&&h()});const M=S(""),j=S(!1),L=S(""),D=S(null),C=B(()=>w.value?"filetree":"projects"),k=B(()=>C.value==="projects"?"Projects":w.value?.name??"Projects"),p=B(()=>{const F=M.value.toLowerCase();return F?l.value.filter(O=>O.name.toLowerCase().includes(F)||(O.language??"").toLowerCase().includes(F)):l.value});function y(F){_(F)}function A(){const{activeProject:F,fileTree:O}=pe();F.value=null,O.value=[],d()}function V(F){$(F)}function E(F){o(F)}function J(){j.value=!0,L.value="",ye(()=>D.value?.focus())}function H(){j.value=!1,L.value=""}function K(){const F=L.value.trim();F&&(b(F),j.value=!1,L.value="")}return(F,O)=>(s(),n("div",po,[e("div",{class:"shrink-0 px-4 py-3 flex items-center justify-between gap-2",style:q(t(c)?"border-bottom: 1px solid rgba(255, 255, 255, 0.08)":"border-bottom: 1px solid rgba(0, 0, 0, 0.06)")},[e("div",go,[C.value!=="projects"?(s(),n("button",{key:0,class:i(["text-xs shrink-0 transition-colors",t(c)?"text-white/40 hover:text-white/70 hover:underline":"text-gray-400 hover:text-gray-700 hover:underline"]),onClick:A}," Projects ",2)):f("",!0),C.value!=="projects"?(s(),n("span",{key:1,class:i(["text-xs shrink-0",t(c)?"text-white/20":"text-gray-300"])},"/",2)):f("",!0),e("span",{class:i(["text-sm font-semibold truncate",t(c)?"text-white/90":"text-gray-900"])},u(k.value),3)]),e("div",bo,[C.value==="projects"?(s(),n("p",{key:0,class:i(["text-xs",t(c)?"text-white/30":"text-gray-400"])},u(t(l).length)+" repos ",3)):C.value==="filetree"?(s(),n("p",{key:1,class:i(["text-xs",t(c)?"text-white/30":"text-gray-400"])},u(t(w)?.language),3)):f("",!0),ie(F.$slots,"header-actions")])],4),C.value==="projects"?(s(),n("div",vo,[e("div",fo,[W(e("input",{"onUpdate:modelValue":O[0]||(O[0]=X=>M.value=X),type:"text",placeholder:"Search projects...",class:i(["flex-1 min-w-0 px-3 py-2 rounded-lg text-base bg-transparent outline-none",t(c)?"text-white/80 placeholder:text-white/20 border border-white/10 focus:border-white/25":"text-gray-800 placeholder:text-gray-400 border border-black/10 focus:border-black/20"])},null,2),[[Q,M.value]]),e("button",{class:i(["shrink-0 px-3 py-2 rounded-lg text-xs font-medium transition-colors flex items-center gap-1.5",t(c)?"bg-accent/20 text-accent hover:bg-accent/30":"bg-accent/10 text-accent hover:bg-accent/20"]),onClick:J},[...O[2]||(O[2]=[e("svg",{class:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1),ne(" New ",-1)])],2)]),j.value?(s(),n("div",{key:0,class:i(["mb-3 p-3 rounded-xl",t(c)?"bg-white/[0.05] border border-white/10":"bg-black/[0.03] border border-black/8"])},[e("p",{class:i(["text-xs font-medium mb-2",t(c)?"text-white/70":"text-gray-700"])}," New Project ",2),W(e("input",{ref_key:"newProjectInputRef",ref:D,"onUpdate:modelValue":O[1]||(O[1]=X=>L.value=X),type:"text",placeholder:"Project name...",class:i(["w-full px-3 py-2 rounded-lg text-base bg-transparent outline-none mb-2",t(c)?"text-white/80 placeholder:text-white/20 border border-white/10 focus:border-white/25":"text-gray-800 placeholder:text-gray-400 border border-black/10 focus:border-black/20"]),onKeydown:[ae(K,["enter"]),ae(H,["escape"])]},null,34),[[Q,L.value]]),e("div",mo,[e("button",{class:i(["text-xs px-2.5 py-1 rounded-lg transition-colors",t(c)?"text-white/40 hover:text-white/70":"text-gray-500 hover:text-gray-800"]),onClick:H}," Cancel ",2),e("button",{class:i(["text-xs px-2.5 py-1 rounded-lg font-medium transition-colors",t(c)?"bg-accent/20 text-accent hover:bg-accent/30":"bg-accent/10 text-accent hover:bg-accent/20"]),disabled:!L.value.trim(),onClick:K}," Create ",10,wo)])],2)):f("",!0),e("div",yo,[(s(!0),n(I,null,P(p.value,X=>(s(),n("button",{key:X.path,class:i(["text-left p-3 rounded-xl transition-all duration-150",t(c)?"bg-white/[0.03] hover:bg-white/[0.07] border border-white/5":"bg-black/[0.02] hover:bg-black/[0.05] border border-black/5"]),onClick:ge=>y(X)},[e("div",{class:i(["w-8 h-8 rounded-lg flex items-center justify-center mb-2",t(c)?"bg-white/5":"bg-black/5"])},[(s(),n("svg",{class:i(["w-4 h-4",X.isGit?"text-accent":t(c)?"text-white/40":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...O[3]||(O[3]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"},null,-1)])],2))],2),e("p",{class:i(["text-xs font-medium truncate",t(c)?"text-white/80":"text-gray-800"])},u(X.name),3),e("p",{class:i(["text-xs mt-0.5 truncate",t(c)?"text-white/25":"text-gray-400"])},u(X.language),3)],10,ko))),128))])])):C.value==="filetree"?(s(),n("div",$o,[(s(!0),n(I,null,P(t(g),X=>(s(),U(xo,{key:X.path,entry:X,"active-file":t(v),depth:0,onSelect:V,onToggleContext:E},null,8,["entry","active-file"]))),128)),t(g).length===0?(s(),n("div",_o,[e("p",{class:i(["text-xs",t(c)?"text-white/30":"text-gray-400"])}," Loading file tree... ",2)])):f("",!0)])):f("",!0)]))}}),jo={class:"flex flex-col h-full"},So={class:"shrink-0 px-4 py-2 flex gap-1.5 overflow-x-auto scrollbar-hide"},Mo=["onClick"],To={class:"flex-1 overflow-y-auto px-4 py-3"},Do={class:"grid grid-cols-2 gap-2"},Io=["onClick"],Bo=["onClick"],Lo={key:0,class:"w-3 h-3 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},Po={key:2,class:"h-8 flex items-end gap-0.5 mb-2"},No={key:3,class:"h-8 flex items-center mb-2"},Ao={key:0,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4"},zo={key:1,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"},Eo={key:2,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M4 5a1 1 0 011-1h14a1 1 0 011 1v2a1 1 0 01-1 1H5a1 1 0 01-1-1V5zM4 13a1 1 0 011-1h6a1 1 0 011 1v6a1 1 0 01-1 1H5a1 1 0 01-1-1v-6zM16 13a1 1 0 011-1h2a1 1 0 011 1v6a1 1 0 01-1 1h-2a1 1 0 01-1-1v-6z"},Fo={key:3,"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01"},Ro=G({__name:"DesignSystemGrid",setup(a){const{isDark:c}=Z(),{openDesignSystemItem:l}=$e(),{codeMode:w,toggleDesignToken:g,isDesignTokenSelected:v}=pe(),x=S("all"),m=[{id:"all",label:"All"},{id:"colors",label:"Colors"},{id:"typography",label:"Typography"},{id:"spacing",label:"Spacing"},{id:"atoms",label:"Atoms"},{id:"molecules",label:"Molecules"},{id:"organisms",label:"Organisms"}],_=[{id:"color-bg",name:"Background",category:"colors",preview:"inline",description:"Primary app background",code:`background-color: #0a0a0a;
|
||
/* Tailwind: bg-[#0a0a0a] */`,usedIn:"ChatPage, all panels, base layout"},{id:"color-accent",name:"Accent / Bitcoin",category:"colors",preview:"inline",description:"Primary action color, Bitcoin orange",code:`color: #F7931A;
|
||
/* Tailwind: text-accent */`,usedIn:"Gradient buttons, active tabs, zap counts, CTA elements"},{id:"color-primary",name:"Primary",category:"colors",preview:"inline",description:"Primary neutral tone",code:`color: #606060;
|
||
/* Tailwind: text-primary */`,usedIn:"Secondary text, borders, muted elements"},{id:"color-surface",name:"Glass Surface",category:"colors",preview:"inline",description:"Glass morphism panel background",code:`background: rgba(0, 0, 0, 0.35);
|
||
backdrop-filter: blur(18px);
|
||
border: 1px solid rgba(255, 255, 255, 0.18);
|
||
/* Tailwind: .glass */`,usedIn:"ChatInput, ContentPanel, all overlay panels"},{id:"color-text-scale",name:"Text Opacity Scale",category:"colors",preview:"inline",description:"/25 placeholder, /40 muted, /60 secondary, /80 body, /90 emphasis",code:`/* Text opacity scale */
|
||
.placeholder { color: rgba(255,255,255, 0.25); }
|
||
.muted { color: rgba(255,255,255, 0.40); }
|
||
.secondary { color: rgba(255,255,255, 0.60); }
|
||
.body { color: rgba(255,255,255, 0.80); }
|
||
.emphasis { color: rgba(255,255,255, 0.90); }
|
||
.heading { color: rgba(255,255,255, 0.96); }`,usedIn:"Every component — consistent hierarchy across the system"},{id:"type-body",name:"Body Font",category:"typography",description:"Inter / system-ui for all body text",code:`font-family: Inter, system-ui, -apple-system, sans-serif;
|
||
/* Applied globally */`,usedIn:"Global default — ChatMessage, grids, detail views"},{id:"type-mono",name:"Monospace Font",category:"typography",description:"Menlo / Monaco for code and IDs",code:`font-family: Menlo, Monaco, "Courier New", monospace;
|
||
/* Tailwind: font-mono */`,usedIn:"CodeDetail, conversation IDs, relay URLs, metadata"},{id:"type-serif",name:"Serif Font",category:"typography",description:"Georgia for magazine/editorial layouts",code:`font-family: Georgia, "Times New Roman", Times, serif;
|
||
/* Used in MagazineGrid, AI Brief */`,usedIn:"MagazineGrid, MagazineSectionDetail, AI Brief"},{id:"type-sizes",name:"Text Sizes",category:"typography",description:"Compact scale: 10px labels to 2xl headings",code:`/* Key sizes used */
|
||
text-xs /* labels, metadata */
|
||
text-xs /* 12px - secondary text */
|
||
text-sm /* 14px - body text */
|
||
text-base /* 16px - primary text */
|
||
text-lg /* 18px - section headings */
|
||
text-xl /* 20px - page headings */
|
||
text-2xl /* 24px - hero text */`,usedIn:"Globally — see specific usage in each size bracket"},{id:"space-grid",name:"4px Grid",category:"spacing",preview:"inline",description:"All spacing follows a 4px base grid",code:`/* 4px grid system */
|
||
1 = 4px /* micro gap */
|
||
2 = 8px /* tight gap */
|
||
3 = 12px /* small padding */
|
||
4 = 16px /* standard padding */
|
||
5 = 20px /* section padding */
|
||
6 = 24px /* large gap */
|
||
8 = 32px /* section spacing */
|
||
12 = 48px /* large sections */`,usedIn:"Every layout — padding, margins, gaps between elements"},{id:"space-radius",name:"Border Radius",category:"spacing",preview:"inline",description:"Rounded corners from subtle to full",code:`/* Border radius scale */
|
||
rounded-md /* 6px - badges, tags */
|
||
rounded-lg /* 8px - buttons, inputs */
|
||
rounded-xl /* 12px - cards, panels */
|
||
rounded-2xl /* 16px - large panels */
|
||
rounded-full /* pill buttons */`,usedIn:"Badges (md), buttons (lg), cards (xl), panels (2xl)"},{id:"atom-glass-btn",name:"Glass Button",category:"atoms",description:"48px height, glass morphism background",code:`<button class="glass-button">
|
||
Action
|
||
</button>
|
||
|
||
/* glass-button:
|
||
height: 48px
|
||
background: rgba(0,0,0,0.6)
|
||
backdrop-filter: blur(18px)
|
||
border-radius: 12px
|
||
border: 1px solid rgba(255,255,255,0.12)
|
||
*/`,usedIn:"ChatInput send, modal actions, primary controls"},{id:"atom-glass-btn-sm",name:"Glass Button Small",category:"atoms",description:"Compact glass button variant",code:`<button class="glass-button-sm">
|
||
Small
|
||
</button>
|
||
|
||
/* Compact variant of glass-button */`,usedIn:"ChatInput send/stop buttons, inline actions"},{id:"atom-icon-btn",name:"Icon Button",category:"atoms",description:"Path glass icon, 32-36px square",code:`<button class="w-9 h-9 rounded-xl path-glass-icon
|
||
flex items-center justify-center">
|
||
<svg class="w-4 h-4" ...>
|
||
</button>
|
||
|
||
/* path-glass-icon:
|
||
background: transparent
|
||
transition: colors
|
||
hover: bg-white/10
|
||
*/`,usedIn:"ChatHeader toolbar, detail back buttons, close buttons"},{id:"atom-badge",name:"Genre Badge",category:"atoms",description:"Tiny pill badge for tags/genres",code:`<span class="text-xs px-2 py-1 rounded-md
|
||
font-medium bg-white/10 text-white/60">
|
||
Science Fiction
|
||
</span>`,usedIn:"FilmGrid, SongGrid, BookGrid, TVSeriesGrid genre filters"},{id:"atom-nav-tab",name:"Nav Tab",category:"atoms",description:"Content panel tab with active state",code:`<button class="nav-tab-active">
|
||
Films
|
||
</button>
|
||
|
||
/* Active: accent underline
|
||
Inactive: text-white/50 hover:text-white
|
||
Transition: 200ms */`,usedIn:"ContentPanel tab bar, mobile content tab filters"},{id:"atom-input",name:"Text Input",category:"atoms",description:"Search/filter input field",code:`<input
|
||
class="w-full px-3 py-2 rounded-lg text-xs
|
||
outline-none transition-colors
|
||
bg-white/5 text-white/80
|
||
placeholder:text-white/25
|
||
focus:bg-white/10"
|
||
placeholder="Search..."
|
||
/>`,usedIn:"All grid search bars, ProjectGrid new project"},{id:"atom-scrollbar",name:"Custom Scrollbar",category:"atoms",description:"Thin translucent scrollbar for scroll areas",code:`.custom-scrollbar::-webkit-scrollbar {
|
||
width: 4px;
|
||
}
|
||
.custom-scrollbar::-webkit-scrollbar-thumb {
|
||
background: rgba(255,255,255, 0.1);
|
||
border-radius: 2px;
|
||
}
|
||
/* Also: .scrollbar-hide hides completely */`,usedIn:"Content grids, chat message list, file trees"},{id:"mol-glass-card",name:"Glass Card",category:"molecules",description:"Frosted glass card with border",code:`<div class="glass-card">
|
||
<h3>Title</h3>
|
||
<p>Content</p>
|
||
</div>
|
||
|
||
/* glass-card:
|
||
background: rgba(0,0,0,0.65)
|
||
backdrop-filter: blur(18px)
|
||
border: 1px solid rgba(255,255,255,0.12)
|
||
border-radius: 16px
|
||
padding: 16px
|
||
*/`,usedIn:"ChatWindow container, content panel wrapper"},{id:"mol-gradient-card",name:"Gradient Card",category:"molecules",description:"Card with gradient background",code:`<div class="gradient-card">
|
||
<h3>Featured</h3>
|
||
<p>Content</p>
|
||
</div>
|
||
|
||
/* gradient-card:
|
||
background: linear-gradient(135deg, ...)
|
||
border-radius: 16px
|
||
*/`,usedIn:"Featured content highlights, promotional sections"},{id:"mol-source-link",name:"Source Link Row",category:"molecules",description:"Icon + label + external link arrow",code:`<a class="flex items-center justify-between
|
||
p-3 rounded-xl bg-white/5
|
||
hover:bg-white/10 transition-colors">
|
||
<div class="flex items-center gap-2.5">
|
||
<span class="text-sm">icon</span>
|
||
<div>
|
||
<p class="text-xs font-medium
|
||
text-white/80">Name</p>
|
||
<p class="text-xs
|
||
text-white/30">Description</p>
|
||
</div>
|
||
</div>
|
||
<svg><!-- external link icon --></svg>
|
||
</a>`,usedIn:"FilmDetail, SongDetail, PodcastDetail sources"},{id:"mol-banner-hero",name:"Banner Hero",category:"molecules",description:"Aspect 16/7 image with gradient overlay",code:`<div class="relative w-full aspect-[16/7]
|
||
overflow-hidden">
|
||
<img :src="url" class="absolute inset-0
|
||
w-full h-full object-cover" />
|
||
<div class="absolute inset-0
|
||
bg-gradient-to-t from-black/80
|
||
via-black/30 to-transparent" />
|
||
<div class="absolute bottom-0 p-4">
|
||
<h2 class="text-lg font-bold
|
||
text-white">Title</h2>
|
||
</div>
|
||
</div>`,usedIn:"FilmDetail, TVSeriesDetail, BookDetail banners"},{id:"mol-cover-card",name:"Cover Card",category:"molecules",description:"Poster/cover image card with overlay text",code:`<button class="group rounded-2xl overflow-hidden">
|
||
<div class="aspect-[2/3] relative">
|
||
<img class="w-full h-full object-cover
|
||
group-hover:scale-110
|
||
transition-transform duration-300" />
|
||
<div class="absolute inset-0
|
||
bg-gradient-to-t from-black/60
|
||
to-transparent" />
|
||
<div class="absolute bottom-0 p-2">
|
||
<p class="text-xs text-white/90">
|
||
Title</p>
|
||
</div>
|
||
</div>
|
||
</button>`,usedIn:"FilmGrid, TVSeriesGrid, SongGrid, BookGrid cards"},{id:"org-chat-bubble",name:"Chat Bubble",category:"organisms",description:"AI/User message bubble with streaming",code:`<!-- User bubble -->
|
||
<div class="flex justify-end">
|
||
<div class="glass-card max-w-[85%]
|
||
px-4 py-3 text-sm text-white/90">
|
||
Message text
|
||
</div>
|
||
</div>
|
||
|
||
<!-- AI bubble -->
|
||
<div class="flex justify-start">
|
||
<div class="max-w-[85%] px-4 py-3
|
||
text-sm text-white/80">
|
||
Response with markdown
|
||
</div>
|
||
</div>`,usedIn:"ChatMessage.vue — the primary chat interface"},{id:"org-content-panel",name:"Content Panel",category:"organisms",description:"Tabs + grid + detail navigation",code:`<!-- Structure -->
|
||
<div class="flex flex-col h-full">
|
||
<!-- Tab bar -->
|
||
<div class="flex gap-1 px-3 py-2">
|
||
<button class="nav-tab">Tab</button>
|
||
</div>
|
||
<!-- Grid view -->
|
||
<ContentGridView />
|
||
<!-- or Detail view -->
|
||
<DetailView />
|
||
</div>`,usedIn:"ChatPage middle column, mobile Content tab"},{id:"org-detail-view",name:"Detail View",category:"organisms",description:"Full detail with banner, back button, metadata",code:`<!-- Pattern: Banner → Meta → Content -->
|
||
<div class="h-full overflow-y-auto">
|
||
<!-- Banner with back button -->
|
||
<div class="relative aspect-[16/7]">
|
||
<img class="object-cover" />
|
||
<div class="gradient-overlay" />
|
||
<button class="absolute top-3 left-3
|
||
path-glass-icon">Back</button>
|
||
<div class="absolute bottom-0 p-4">
|
||
<h2>Title</h2>
|
||
<div>Metadata</div>
|
||
</div>
|
||
</div>
|
||
<!-- Body -->
|
||
<div class="p-4 space-y-4">
|
||
<p>Description</p>
|
||
<div>Genre badges</div>
|
||
<div>Source links</div>
|
||
</div>
|
||
</div>`,usedIn:"FilmDetail, BookDetail, TVSeriesDetail, SongDetail, PodcastDetail"},{id:"org-magazine",name:"Magazine Grid",category:"organisms",description:"Editorial tile layout with hero, wide, and half tiles",code:`<!-- Magazine structure -->
|
||
<div class="grid grid-cols-2 gap-px
|
||
bg-white/12">
|
||
<!-- Wide tile (col-span-2) -->
|
||
<button class="col-span-2 px-5 py-5
|
||
bg-[#0a0a0a]">
|
||
<p class="text-xs uppercase
|
||
tracking-[0.3em]">Label</p>
|
||
<h2 class="font-serif text-lg
|
||
font-bold">Title</h2>
|
||
<p class="font-serif text-sm">Text</p>
|
||
</button>
|
||
<!-- Half tiles -->
|
||
<button class="px-4 py-4 bg-[#0a0a0a]">
|
||
<h3 class="font-serif text-sm
|
||
font-bold">Title</h3>
|
||
<p class="font-serif text-xs">Text</p>
|
||
</button>
|
||
</div>`,usedIn:"MagazineGrid.vue — AI Brief editorial view"},{id:"org-nostr-note",name:"Nostr Note",category:"organisms",description:"Note card with avatar, author, content, zaps",code:`<div class="p-3 rounded-xl bg-white/[0.03]
|
||
border border-white/5">
|
||
<div class="flex items-start gap-2.5">
|
||
<div class="w-8 h-8 rounded-full
|
||
bg-purple-500/20 text-purple-400">
|
||
F
|
||
</div>
|
||
<div class="flex-1">
|
||
<span class="text-xs font-semibold">
|
||
author</span>
|
||
<p class="text-xs text-white/60">
|
||
Note content...</p>
|
||
<span class="text-xs
|
||
text-amber-500/70">21000 sats</span>
|
||
</div>
|
||
</div>
|
||
</div>`,usedIn:"NostrGrid.vue — Nostr feed tab"},{id:"anim-fade-up",name:"Fade Up",category:"atoms",description:"Entry animation: translate + opacity",code:`.animate-fade-up {
|
||
animation: fadeUp 900ms ease-out;
|
||
}
|
||
@keyframes fadeUp {
|
||
from {
|
||
opacity: 0;
|
||
transform: translateY(16px);
|
||
}
|
||
to {
|
||
opacity: 1;
|
||
transform: translateY(0);
|
||
}
|
||
}
|
||
/* Also: animate-fade-up-fast (400ms) */`,usedIn:"Empty states, initial load elements, ChatWindow"},{id:"anim-scale-in",name:"Scale In",category:"atoms",description:"Micro entrance with scale and opacity",code:`.animate-scale-in {
|
||
animation: scaleIn 250ms ease-out;
|
||
}
|
||
@keyframes scaleIn {
|
||
from {
|
||
opacity: 0;
|
||
transform: scale(0.95);
|
||
}
|
||
to {
|
||
opacity: 1;
|
||
transform: scale(1);
|
||
}
|
||
}`,usedIn:"Modal entries, tooltip appearances, popovers"}],$=B(()=>x.value==="all"?_:_.filter(o=>o.category===x.value));function b(o){l(o)}function d(o){const r=/(?:background-color|color|background):\s*([^;]+)/i.exec(o);if(!r)return"#333";const h=r[1].trim();return h.startsWith("#")||h.startsWith("rgb")||h.startsWith("hsl")?h:"#333"}return(o,r)=>(s(),n("div",jo,[e("div",{class:"shrink-0 px-4 py-3 flex items-center justify-between gap-2",style:q(t(c)?"border-bottom: 1px solid rgba(255, 255, 255, 0.08)":"border-bottom: 1px solid rgba(0, 0, 0, 0.06)")},[e("span",{class:i(["text-sm font-semibold",t(c)?"text-white/90":"text-gray-900"])}," Design System ",2),e("p",{class:i(["text-xs",t(c)?"text-white/30":"text-gray-400"])},u($.value.length)+" items ",3)],4),e("div",So,[(s(),n(I,null,P(m,h=>e("button",{key:h.id,class:i(["text-xs px-2.5 py-1 rounded-md font-medium whitespace-nowrap transition-colors",x.value===h.id?"bg-accent/20 text-accent":t(c)?"bg-white/5 text-white/50 hover:bg-white/10":"bg-black/5 text-gray-500 hover:bg-black/10"]),onClick:M=>x.value=h.id},u(h.label),11,Mo)),64))]),e("div",To,[e("div",Do,[(s(!0),n(I,null,P($.value,h=>(s(),n("button",{key:h.id,class:i(["text-left p-3 rounded-xl transition-all duration-150 group relative",[t(w)&&t(v)(h.id)?"ring-2 ring-accent/50 bg-accent/10 cursor-pointer":t(c)?"bg-white/[0.03] hover:bg-white/[0.07] cursor-pointer":"bg-black/[0.02] hover:bg-black/[0.05] cursor-pointer"]]),onClick:M=>b(h)},[t(w)?(s(),n("div",{key:0,class:i(["absolute top-2 right-2 min-w-[44px] min-h-[44px] rounded-full flex items-center justify-center z-10 cursor-pointer transition-colors",t(v)(h.id)?"bg-accent":t(c)?"bg-white/10 hover:bg-white/20":"bg-black/10 hover:bg-black/20"]),onClick:xe(M=>t(g)(h.id),["stop"])},[t(v)(h.id)?(s(),n("svg",Lo,[...r[0]||(r[0]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"3",d:"M5 13l4 4L19 7"},null,-1)])])):f("",!0)],10,Bo)):f("",!0),h.category==="colors"&&h.preview==="inline"?(s(),n("div",{key:1,class:i(["h-8 rounded-md mb-2 border",t(c)?"border-white/10":"border-black/10"]),style:q({background:d(h.code)})},null,6)):h.category==="spacing"&&h.preview==="inline"?(s(),n("div",Po,[...r[1]||(r[1]=[e("div",{class:"bg-accent/40 rounded-sm",style:{width:"4px",height:"30%"}},null,-1),e("div",{class:"bg-accent/40 rounded-sm",style:{width:"4px",height:"50%"}},null,-1),e("div",{class:"bg-accent/40 rounded-sm",style:{width:"4px",height:"70%"}},null,-1),e("div",{class:"bg-accent/40 rounded-sm",style:{width:"4px",height:"100%"}},null,-1)])])):(s(),n("div",No,[(s(),n("svg",{class:i(["w-5 h-5 transition-colors",t(c)?"text-white/20 group-hover:text-white/40":"text-black/15 group-hover:text-black/30"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[h.category==="atoms"?(s(),n("path",Ao)):h.category==="molecules"?(s(),n("path",zo)):h.category==="organisms"?(s(),n("path",Eo)):(s(),n("path",Fo))],2))])),e("h3",{class:i(["text-xs font-semibold leading-tight mb-0.5",t(c)?"text-white/80":"text-gray-800"])},u(h.name),3),e("p",{class:i(["text-xs leading-snug line-clamp-2",t(c)?"text-white/40":"text-gray-400"])},u(h.description),3)],10,Io))),128))])])]))}}),we=S(null),lt=S(!1),Re=S(!1),he=S(null);function me(){const a=B(()=>{if(!we.value)return null;try{return He(we.value)}catch{return null}}),c=B(()=>!!we.value),l=B(()=>a.value?a.value.slice(0,12)+"..."+a.value.slice(-8):null);function w(){lt.value=typeof window<"u"&&!!window.nostr}async function g(){if(he.value=null,!window.nostr){he.value="No Nostr extension detected. Install nos2x, Alby, or another NIP-07 extension.";return}Re.value=!0;try{const m=await window.nostr.getPublicKey();we.value=m}catch(m){he.value=m instanceof Error?m.message:"Failed to get public key"}finally{Re.value=!1}}async function v(m){if(he.value=null,!window.nostr)return he.value="No Nostr extension detected",null;try{return await window.nostr.signEvent(m)}catch(_){return he.value=_ instanceof Error?_.message:"Failed to sign event",null}}function x(){we.value=null,he.value=null}return oe(()=>{w(),setTimeout(w,500)}),{pubkey:we,npub:a,isAvailable:lt,isLoggedIn:c,isLoading:Re,error:he,truncatedNpub:l,login:g,logout:x,signEvent:v,checkAvailability:w}}const Vo="aiui-nostr-dms",Uo=1,ke="messages",je=S([]),Se=S(null),Ve=S(!1);let Me=null;function vt(){return Me||(Me=new Promise((a,c)=>{const l=indexedDB.open(Vo,Uo);l.onupgradeneeded=()=>{const w=l.result;if(!w.objectStoreNames.contains(ke)){const g=w.createObjectStore(ke,{keyPath:"id"});g.createIndex("contact","contactPubkey",{unique:!1}),g.createIndex("created_at","created_at",{unique:!1})}},l.onsuccess=()=>a(l.result),l.onerror=()=>{Me=null,c(l.error)}}),Me)}function qo(a){return a.length<=12?a:a.slice(0,8)+"..."+a.slice(-4)}async function ot(a,c){const l=await vt(),w=a.fromPubkey===c?a.toPubkey:a.fromPubkey,g={...a,contactPubkey:w};return new Promise((v,x)=>{const m=l.transaction(ke,"readwrite");m.objectStore(ke).put(g),m.oncomplete=()=>v(),m.onerror=()=>x(m.error)})}async function Ue(){const a=await vt();return new Promise((c,l)=>{const g=a.transaction(ke,"readonly").objectStore(ke).getAll();g.onsuccess=()=>c(g.result),g.onerror=()=>l(g.error)})}function qe(a){const c=new Map;for(const w of a){const g=c.get(w.contactPubkey)??[];g.push(w),c.set(w.contactPubkey,g)}const l=[];for(const[w,g]of c)g.sort((v,x)=>v.created_at-x.created_at),l.push({contactPubkey:w,contactName:qo(w),messages:g,lastMessage:g[g.length-1]??null,unread:0});return l.sort((w,g)=>(g.lastMessage?.created_at??0)-(w.lastMessage?.created_at??0)),l}function Go(){const{pubkey:a,isLoggedIn:c}=me(),l=B(()=>Se.value?je.value.find(_=>_.contactPubkey===Se.value)??null:null);async function w(){if(c.value){Ve.value=!0;try{const _=await Ue();je.value=qe(_)}catch{}finally{Ve.value=!1}}}async function g(_,$){if(!window.nostr?.nip04||!a.value)return!1;try{const b=await window.nostr.nip04.encrypt(_,$),d={kind:4,created_at:Math.floor(Date.now()/1e3),tags:[["p",_]],content:b},o=await window.nostr.signEvent(d);if(!o)return!1;const r={id:o.id,fromPubkey:a.value,toPubkey:_,content:$,created_at:o.created_at,decrypted:!0};await ot(r,a.value);const{publishEvent:h}=await pt(()=>import("./useNostr-XONW-p_l.js"),__vite__mapDeps([0,1,2])).then(j=>j.useNostr());await h(o);const M=await Ue();return je.value=qe(M),!0}catch{return!1}}async function v(_,$,b,d){if(!(!window.nostr?.nip04||!a.value))try{const o=await window.nostr.nip04.decrypt($,b),r={id:_,fromPubkey:$,toPubkey:a.value,content:o,created_at:d,decrypted:!0};await ot(r,a.value);const h=await Ue();je.value=qe(h)}catch{}}function x(_){Se.value=_}function m(){Se.value=null}return{threads:je,activeThread:l,activeContact:Se,isLoading:Ve,loadDMs:w,sendDM:g,receiveDM:v,selectContact:x,clearActiveContact:m}}const Oo={class:"h-full flex flex-col"},Ho={class:"flex items-center gap-2 px-4 py-3 border-b border-white/[0.08]"},Wo={class:"flex-1 min-w-0"},Ko={class:"text-xs font-semibold text-white/80 truncate"},Yo={class:"text-xs text-white/30 font-mono truncate"},Jo={class:"text-xs leading-relaxed break-words"},Qo={class:"text-xs mt-1 text-white/25 tabular-nums"},Zo={class:"px-4 py-3 border-t border-white/[0.08]"},Xo={class:"flex gap-2"},ea=["disabled"],ta={class:"p-4 border-b border-white/[0.08]"},sa={class:"flex items-center justify-between gap-2 mb-3"},na={key:0,class:"space-y-2 mb-3"},la=["disabled"],oa={class:"flex-1 overflow-y-auto custom-scrollbar px-4 pt-3 pb-16 space-y-1"},aa={key:0,class:"flex items-center justify-center py-12"},ia={key:1,class:"flex items-center justify-center py-12"},ra={key:2,class:"flex items-center justify-center py-12"},ca=["onClick"],da={class:"flex items-start gap-2.5"},ua={class:"w-8 h-8 rounded-full shrink-0 flex items-center justify-center text-xs font-bold bg-accent/20 text-accent"},ha={class:"flex-1 min-w-0"},xa={class:"flex items-center gap-1.5"},pa={class:"text-xs font-semibold truncate text-white/80"},ga={key:0,class:"text-xs ml-auto shrink-0 text-white/20"},ba={key:0,class:"text-xs mt-1 text-white/40 truncate"},va=G({__name:"NostrDMs",setup(a){const{threads:c,activeThread:l,activeContact:w,isLoading:g,loadDMs:v,sendDM:x,selectContact:m,clearActiveContact:_}=Go(),{pubkey:$,isLoggedIn:b}=me(),d=S(""),o=S(!1),r=S(null),h=S(!1),M=S("");function j(k){const p=new Date(k*1e3),A=Math.floor((new Date().getTime()-p.getTime())/864e5);return A===0?p.toLocaleTimeString("en",{hour:"2-digit",minute:"2-digit"}):A<7?p.toLocaleDateString("en",{weekday:"short"}):p.toLocaleDateString("en",{month:"short",day:"numeric"})}async function L(){if(!d.value.trim()||o.value||!w.value)return;o.value=!0,await x(w.value,d.value.trim())&&(d.value="",await ye(),D()),o.value=!1}function D(){r.value&&(r.value.scrollTop=r.value.scrollHeight)}function C(){let k=M.value.trim();if(k.startsWith("npub"))try{k=gt(k)}catch{return}k.length===64&&(m(k),h.value=!1,M.value="")}return ce(w,async()=>{await ye(),D()}),oe(()=>{v()}),(k,p)=>(s(),n("div",Oo,[t(l)?(s(),n(I,{key:0},[e("div",Ho,[e("button",{class:"min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg text-white/60 hover:text-white/80 hover:bg-white/10 transition-colors",onClick:p[0]||(p[0]=(...y)=>t(_)&&t(_)(...y))},[...p[4]||(p[4]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),e("div",Wo,[e("p",Ko,u(t(l).contactName),1),e("p",Yo,u(t(l).contactPubkey),1)])]),e("div",{ref_key:"messagesRef",ref:r,class:"flex-1 overflow-y-auto custom-scrollbar px-4 py-3 space-y-2"},[(s(!0),n(I,null,P(t(l).messages,y=>(s(),n("div",{key:y.id,class:i(["flex",y.fromPubkey===t($)?"justify-end":"justify-start"])},[e("div",{class:i(["max-w-[80%] rounded-xl px-3 py-2",y.fromPubkey===t($)?"bg-accent/15 text-white/80":"bg-white/5 text-white/70"])},[e("p",Jo,u(y.content),1),e("p",Qo,u(j(y.created_at)),1)],2)],2))),128))],512),e("div",Zo,[e("div",Xo,[W(e("input",{"onUpdate:modelValue":p[1]||(p[1]=y=>d.value=y),type:"text",placeholder:"Type a message...",class:"flex-1 px-3 py-2 rounded-lg text-base bg-white/5 text-white/80 placeholder:text-white/25 outline-none focus:bg-white/10 transition-colors",onKeydown:ae(L,["enter"])},null,544),[[Q,d.value]]),e("button",{class:"px-3 py-2 rounded-lg text-xs bg-accent/15 text-accent/80 hover:bg-accent/25 transition-colors disabled:opacity-30",disabled:!d.value.trim()||o.value,onClick:L}," Send ",8,ea)])])],64)):(s(),n(I,{key:1},[e("div",ta,[e("div",sa,[p[5]||(p[5]=e("h3",{class:"text-sm font-bold text-white/90"},"Messages",-1)),e("button",{class:"text-xs px-2.5 py-1 rounded bg-accent/15 text-accent/80 hover:bg-accent/25 transition-colors",onClick:p[2]||(p[2]=y=>h.value=!h.value)},u(h.value?"Cancel":"New"),1)]),h.value?(s(),n("div",na,[W(e("input",{"onUpdate:modelValue":p[3]||(p[3]=y=>M.value=y),type:"text",placeholder:"Recipient hex pubkey or npub...",class:"w-full px-3 py-2 rounded-lg text-base bg-white/5 text-white/80 placeholder:text-white/25 outline-none focus:bg-white/10 transition-colors font-mono"},null,512),[[Q,M.value]]),e("button",{class:"text-xs px-2.5 py-1 rounded bg-white/5 text-white/60 hover:bg-white/10 transition-colors disabled:opacity-30",disabled:!M.value.trim(),onClick:C}," Start conversation ",8,la)])):f("",!0)]),e("div",oa,[t(b)?t(g)?(s(),n("div",ia,[...p[7]||(p[7]=[e("p",{class:"text-xs text-white/30"},"Loading messages...",-1)])])):t(c).length===0?(s(),n("div",ra,[...p[8]||(p[8]=[e("p",{class:"text-xs text-white/30"},"No messages yet",-1)])])):f("",!0):(s(),n("div",aa,[...p[6]||(p[6]=[e("p",{class:"text-xs text-white/30"},"Sign in with Nostr to use DMs",-1)])])),(s(!0),n(I,null,P(t(c),y=>(s(),n("button",{key:y.contactPubkey,class:"w-full text-left p-3 rounded-xl transition-all duration-150 bg-white/[0.03] hover:bg-white/[0.07] border border-white/5",onClick:A=>t(m)(y.contactPubkey)},[e("div",da,[e("div",ua,u(y.contactName.charAt(0).toUpperCase()),1),e("div",ha,[e("div",xa,[e("span",pa,u(y.contactName),1),y.lastMessage?(s(),n("span",ga,u(j(y.lastMessage.created_at)),1)):f("",!0)]),y.lastMessage?(s(),n("p",ba,u(y.lastMessage.content),1)):f("",!0)])])],8,ca))),128))])],64))]))}}),fa={class:"h-full flex flex-col"},ma={class:"p-4 border-b border-white/[0.08]"},wa={class:"flex gap-2"},ya=["disabled"],ka={class:"flex-1 overflow-y-auto custom-scrollbar px-4 pt-3 pb-16 space-y-2"},$a={class:"flex items-center gap-2"},_a={class:"text-xs font-mono text-white/70 truncate flex-1"},Ca={class:"flex items-center gap-2 flex-wrap"},ja=["onClick"],Sa=["onClick"],Ma=["disabled","onClick"],Ta=["onClick"],Da={key:0,class:"mt-4 pt-4 border-t border-white/5"},Ia=["disabled"],Ba={key:0,class:"text-xs mt-1 text-white/30"},La=G({__name:"NostrRelayManager",setup(a){const{relayStates:c,addRelay:l,removeRelay:w,toggleRelayRead:g,toggleRelayWrite:v,testRelay:x,importNIP65Relays:m,fetchNote:_}=Ie(),{isLoggedIn:$,pubkey:b}=me(),d=S(""),o=S(null),r=Pe({}),h=S(!1),M=S("");function j(){let C=d.value.trim();C&&(!C.startsWith("wss://")&&!C.startsWith("ws://")&&(C="wss://"+C),l(C),d.value="")}async function L(C){o.value=C;const k=await x(C);r[C]=k,o.value=null}async function D(){if(!b.value)return;h.value=!0,M.value="Fetching relay list...";const C=await _(b.value,5e3);C?(m({id:C.id,pubkey:C.pubkey,kind:10002,content:C.content,created_at:C.created_at,tags:C.tags,sig:""}),M.value="Imported relays from NIP-65"):M.value="No NIP-65 relay list found",h.value=!1}return(C,k)=>(s(),n("div",fa,[e("div",ma,[k[1]||(k[1]=e("h3",{class:"text-sm font-bold text-white/90 mb-3"},"Relay Management",-1)),e("div",wa,[W(e("input",{"onUpdate:modelValue":k[0]||(k[0]=p=>d.value=p),type:"text",placeholder:"wss://relay.example.com",class:"flex-1 px-3 py-2 rounded-lg text-base bg-white/5 text-white/80 placeholder:text-white/25 outline-none focus:bg-white/10 transition-colors font-mono",onKeydown:ae(j,["enter"])},null,544),[[Q,d.value]]),e("button",{class:"px-4 min-h-[44px] rounded-lg text-sm bg-accent/15 text-accent/80 hover:bg-accent/25 transition-colors disabled:opacity-30",disabled:!d.value.trim(),onClick:j}," Add ",8,ya)])]),e("div",ka,[(s(!0),n(I,null,P(t(c),p=>(s(),n("div",{key:p.url,class:"rounded-xl bg-white/[0.03] border border-white/5 p-3 space-y-2"},[e("div",$a,[e("span",{class:i(["w-2 h-2 rounded-full shrink-0",p.connected?"bg-emerald-500":"bg-red-400/60"])},null,2),e("span",_a,u(p.url),1),p.latencyMs!==null?(s(),n("span",{key:0,class:i(["text-xs tabular-nums shrink-0",p.latencyMs<200?"text-emerald-400/60":p.latencyMs<500?"text-yellow-400/60":"text-red-400/60"])},u(p.latencyMs)+"ms ",3)):f("",!0),e("span",{class:i(["text-xs shrink-0",p.connected?"text-emerald-400/60":"text-red-400/60"])},u(p.connected?"Connected":"Disconnected"),3)]),e("div",Ca,[e("button",{class:i(["text-sm px-3 min-h-[44px] rounded-lg transition-colors",p.read?"bg-accent/15 text-accent/80":"bg-white/5 text-white/30 hover:text-white/50"]),onClick:y=>t(g)(p.url)}," Read ",10,ja),e("button",{class:i(["text-sm px-3 min-h-[44px] rounded-lg transition-colors",p.write?"bg-accent/15 text-accent/80":"bg-white/5 text-white/30 hover:text-white/50"]),onClick:y=>t(v)(p.url)}," Write ",10,Sa),k[2]||(k[2]=e("div",{class:"flex-1"},null,-1)),e("button",{class:"text-sm px-3 min-h-[44px] rounded-lg bg-white/5 text-white/30 hover:text-white/50 transition-colors",disabled:o.value===p.url,onClick:y=>L(p.url)},u(o.value===p.url?"Testing...":"Test"),9,Ma),e("button",{class:"text-sm px-3 min-h-[44px] rounded-lg bg-white/5 text-red-400/50 hover:text-red-400/80 hover:bg-red-400/10 transition-colors",onClick:y=>t(w)(p.url)}," Remove ",8,Ta)]),r[p.url]!==void 0?(s(),n("p",{key:0,class:i(["text-xs",r[p.url]!==null?"text-emerald-400/60":"text-red-400/60"])},u(r[p.url]!==null?`Reachable (${r[p.url]}ms)`:"Unreachable"),3)):f("",!0)]))),128)),t($)?(s(),n("div",Da,[e("button",{class:"w-full text-left px-3 min-h-[44px] rounded-lg text-sm bg-white/5 text-white/40 hover:text-white/60 hover:bg-white/10 transition-colors",disabled:h.value,onClick:D},u(h.value?"Importing...":"Import relays from NIP-65 (kind:10002)"),9,Ia),M.value?(s(),n("p",Ba,u(M.value),1)):f("",!0)])):f("",!0)])]))}}),Pa={class:"h-full flex flex-col"},Na={key:0,class:"flex-1 flex items-center justify-center"},Aa={key:1,class:"flex-1 overflow-y-auto custom-scrollbar px-4 pt-3 pb-16 space-y-4"},za={class:"rounded-xl overflow-hidden border border-white/5"},Ea={class:"px-4 pb-4 -mt-8"},Fa={key:0,class:"text-lg font-bold text-accent"},Ra={class:"text-sm font-bold text-white/90 mt-2"},Va={key:0,class:"text-xs text-purple-400/60"},Ua={key:1,class:"text-xs text-white/50 mt-1 line-clamp-2"},qa={class:"space-y-3"},Ga=["disabled"],Oa=G({__name:"NostrProfileEditor",setup(a){const{isLoggedIn:c,signEvent:l,pubkey:w}=me(),{publishEvent:g,fetchNote:v}=Ie(),x=Pe({name:"",display_name:"",about:"",picture:"",banner:"",website:"",nip05:"",lud16:""}),m=S(!1),_=S(""),$=S(!1);async function b(){if(!w.value)return;const o=await v(w.value,5e3);if(o&&o.kind===0)try{const r=JSON.parse(o.content);Object.assign(x,r)}catch{}}async function d(){if(!c.value)return;m.value=!0,_.value="";const o={};for(const[L,D]of Object.entries(x))D&&(o[L]=D);const r={kind:0,created_at:Math.floor(Date.now()/1e3),tags:[],content:JSON.stringify(o)},h=await l(r);if(!h){m.value=!1,_.value="Signing failed",$.value=!1;return}const M=await g(h),j=M.filter(L=>L.success).length;m.value=!1,j>0?(_.value=`Published to ${j}/${M.length} relays`,$.value=!0):(_.value="Failed to publish to any relay",$.value=!1)}return oe(()=>{b()}),(o,r)=>(s(),n("div",Pa,[r[17]||(r[17]=e("div",{class:"p-4 border-b border-white/[0.08]"},[e("h3",{class:"text-sm font-bold text-white/90"},"Nostr Profile")],-1)),t(c)?(s(),n("div",Aa,[e("div",za,[e("div",{class:i(["h-24 bg-cover bg-center",x.banner?"":"bg-gradient-to-r from-accent/20 to-purple-500/20"]),style:q(x.banner?{backgroundImage:`url(${x.banner})`}:{})},null,6),e("div",Ea,[e("div",{class:i(["w-16 h-16 rounded-full border-2 border-black bg-cover bg-center flex items-center justify-center",x.picture?"":"bg-accent/20"]),style:q(x.picture?{backgroundImage:`url(${x.picture})`}:{})},[x.picture?f("",!0):(s(),n("span",Fa,u((x.display_name||x.name||"?").charAt(0).toUpperCase()),1))],6),e("p",Ra,u(x.display_name||x.name||"Anonymous"),1),x.nip05?(s(),n("p",Va,u(x.nip05),1)):f("",!0),x.about?(s(),n("p",Ua,u(x.about),1)):f("",!0)])]),e("div",qa,[e("div",null,[r[9]||(r[9]=e("label",{class:"text-xs text-white/30 block mb-1"},"Display Name",-1)),W(e("input",{"onUpdate:modelValue":r[0]||(r[0]=h=>x.display_name=h),type:"text",class:"w-full px-3 py-2 rounded-lg text-base bg-white/5 text-white/80 placeholder:text-white/25 outline-none focus:bg-white/10 transition-colors",placeholder:"Your display name"},null,512),[[Q,x.display_name]])]),e("div",null,[r[10]||(r[10]=e("label",{class:"text-xs text-white/30 block mb-1"},"Username",-1)),W(e("input",{"onUpdate:modelValue":r[1]||(r[1]=h=>x.name=h),type:"text",class:"w-full px-3 py-2 rounded-lg text-base bg-white/5 text-white/80 placeholder:text-white/25 outline-none focus:bg-white/10 transition-colors",placeholder:"username"},null,512),[[Q,x.name]])]),e("div",null,[r[11]||(r[11]=e("label",{class:"text-xs text-white/30 block mb-1"},"Bio",-1)),W(e("textarea",{"onUpdate:modelValue":r[2]||(r[2]=h=>x.about=h),class:"w-full px-3 py-2 rounded-lg text-base bg-white/5 text-white/80 placeholder:text-white/25 outline-none focus:bg-white/10 transition-colors resize-none min-h-[60px]",placeholder:"Tell the world about yourself"},null,512),[[Q,x.about]])]),e("div",null,[r[12]||(r[12]=e("label",{class:"text-xs text-white/30 block mb-1"},"Avatar URL",-1)),W(e("input",{"onUpdate:modelValue":r[3]||(r[3]=h=>x.picture=h),type:"url",class:"w-full px-3 py-2 rounded-lg text-base bg-white/5 text-white/80 placeholder:text-white/25 outline-none focus:bg-white/10 transition-colors font-mono",placeholder:"https://example.com/avatar.jpg"},null,512),[[Q,x.picture]])]),e("div",null,[r[13]||(r[13]=e("label",{class:"text-xs text-white/30 block mb-1"},"Banner URL",-1)),W(e("input",{"onUpdate:modelValue":r[4]||(r[4]=h=>x.banner=h),type:"url",class:"w-full px-3 py-2 rounded-lg text-base bg-white/5 text-white/80 placeholder:text-white/25 outline-none focus:bg-white/10 transition-colors font-mono",placeholder:"https://example.com/banner.jpg"},null,512),[[Q,x.banner]])]),e("div",null,[r[14]||(r[14]=e("label",{class:"text-xs text-white/30 block mb-1"},"Website",-1)),W(e("input",{"onUpdate:modelValue":r[5]||(r[5]=h=>x.website=h),type:"url",class:"w-full px-3 py-2 rounded-lg text-base bg-white/5 text-white/80 placeholder:text-white/25 outline-none focus:bg-white/10 transition-colors font-mono",placeholder:"https://example.com"},null,512),[[Q,x.website]])]),e("div",null,[r[15]||(r[15]=e("label",{class:"text-xs text-white/30 block mb-1"},"NIP-05 Address",-1)),W(e("input",{"onUpdate:modelValue":r[6]||(r[6]=h=>x.nip05=h),type:"text",class:"w-full px-3 py-2 rounded-lg text-base bg-white/5 text-white/80 placeholder:text-white/25 outline-none focus:bg-white/10 transition-colors font-mono",placeholder:"you@example.com"},null,512),[[Q,x.nip05]])]),e("div",null,[r[16]||(r[16]=e("label",{class:"text-xs text-white/30 block mb-1"},"Lightning Address",-1)),W(e("input",{"onUpdate:modelValue":r[7]||(r[7]=h=>x.lud16=h),type:"text",class:"w-full px-3 py-2 rounded-lg text-base bg-white/5 text-white/80 placeholder:text-white/25 outline-none focus:bg-white/10 transition-colors font-mono",placeholder:"you@getalby.com"},null,512),[[Q,x.lud16]])]),e("button",{class:"w-full min-h-[44px] rounded-lg text-sm font-medium bg-accent/15 text-accent/80 hover:bg-accent/25 transition-colors disabled:opacity-30",disabled:m.value,onClick:d},u(m.value?"Publishing...":"Publish Profile (kind:0)"),9,Ga),_.value?(s(),n("div",{key:0,class:i(["text-xs text-center",$.value?"text-emerald-400/60":"text-red-400/60"])},u(_.value),3)):f("",!0)])])):(s(),n("div",Na,[...r[8]||(r[8]=[e("p",{class:"text-xs text-white/30"},"Sign in with Nostr to edit your profile",-1)])]))]))}}),Ha={class:"relative glass-card w-[320px] max-w-[90vw] p-5 space-y-4 animate-scale-in"},Wa={class:"flex items-center justify-between"},Ka={class:"text-xs text-white/40 truncate font-mono"},Ya={class:"flex gap-1.5 flex-wrap"},Ja=["onClick"],Qa=["disabled"],Za={key:0,class:"space-y-2"},Xa={class:"flex justify-center"},ei={class:"flex gap-1"},ti=["value"],si=["href"],ni={key:1,class:"text-xs text-red-400/60 text-center"},li=G({__name:"ZapDialog",props:{isOpen:{type:Boolean},targetName:{},lightningAddress:{}},emits:["close"],setup(a,{emit:c}){const l=a,w=c,g=S(null),v=S(null),x=[21,100,500,1e3,5e3,1e4],m=S(21),_=S(""),$=S(""),b=S(!1),d=S(""),o=S(!1),r=S(null);function h(k){return k>=1e3?`${(k/1e3).toFixed(k%1e3===0?0:1)}k`:String(k)}function M(){w("close"),$.value="",d.value="",_.value=""}async function j(){if(!(!l.lightningAddress||!m.value)){b.value=!0,d.value="",$.value="";try{const[k,p]=l.lightningAddress.split("@");if(!k||!p)throw new Error("Invalid Lightning address");const y=await fetch(`https://${p}/.well-known/lnurlp/${k}`);if(!y.ok)throw new Error("Failed to fetch LNURL");const A=await y.json();if(A.status==="ERROR")throw new Error(A.reason||"LNURL error");const V=m.value*1e3;if(V<(A.minSendable??0))throw new Error(`Minimum: ${Math.ceil((A.minSendable??0)/1e3)} sats`);if(V>(A.maxSendable??1/0))throw new Error(`Maximum: ${Math.floor((A.maxSendable??0)/1e3)} sats`);let E=A.callback;const J=E.includes("?")?"&":"?";E+=`${J}amount=${V}`,_.value&&(E+=`&comment=${encodeURIComponent(_.value)}`);const H=await fetch(E);if(!H.ok)throw new Error("Failed to get invoice");const K=await H.json();if(K.status==="ERROR")throw new Error(K.reason||"Invoice error");$.value=K.pr,await ye(),L(K.pr)}catch(k){d.value=k instanceof Error?k.message:"Zap failed"}finally{b.value=!1}}}function L(k){const p=r.value;if(!p)return;const y=p.getContext("2d");if(!y)return;y.fillStyle="#1a1a1a",y.fillRect(0,0,200,200),y.fillStyle="#F7931A",y.font="10px monospace",y.textAlign="center";const A=[];for(let E=0;E<k.length;E+=30)A.push(k.slice(E,E+30));const V=Math.max(10,100-A.length*6);A.forEach((E,J)=>{y.fillText(E,100,V+J*12)})}function D(){navigator.clipboard.writeText($.value),o.value=!0,setTimeout(()=>{o.value=!1},2e3)}function C(k){const p=g.value;if(!p)return;const y=p.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');if(y.length===0)return;const A=y[0],V=y[y.length-1];k.shiftKey&&document.activeElement===A?(k.preventDefault(),V.focus()):!k.shiftKey&&document.activeElement===V&&(k.preventDefault(),A.focus())}return ce(()=>l.isOpen,async k=>{k?(await ye(),v.value?.focus()):($.value="",d.value="")}),(k,p)=>a.isOpen?(s(),n("div",{key:0,ref_key:"dialogRef",ref:g,role:"dialog","aria-modal":"true","aria-label":"Send zap",class:"fixed inset-0 z-50 flex items-center justify-center",onClick:xe(M,["self"]),onKeydown:[ae(M,["escape"]),ae(C,["tab"])]},[e("div",{class:"absolute inset-0 bg-black/60 backdrop-blur-sm",onClick:M}),e("div",Ha,[e("div",Wa,[p[3]||(p[3]=e("h3",{class:"text-sm font-bold text-white/90"},"Zap",-1)),e("button",{ref_key:"closeButtonRef",ref:v,class:"min-w-[44px] min-h-[44px] flex items-center justify-center rounded text-white/40 hover:text-white/70 transition-colors","aria-label":"Close",onClick:M},[...p[2]||(p[2]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],512)]),e("p",Ka,u(a.targetName),1),e("div",Ya,[(s(),n(I,null,P(x,y=>e("button",{key:y,class:i(["text-xs px-2.5 py-1.5 rounded-lg transition-colors",m.value===y?"bg-accent/20 text-accent border border-accent/30":"bg-white/5 text-white/50 hover:bg-white/10"]),onClick:A=>m.value=y},u(h(y)),11,Ja)),64))]),e("div",null,[p[4]||(p[4]=e("label",{class:"text-xs text-white/30 block mb-1"},"Amount (sats)",-1)),W(e("input",{"onUpdate:modelValue":p[0]||(p[0]=y=>m.value=y),type:"number",min:"1",class:"w-full px-3 py-2 rounded-lg text-base bg-white/5 text-white/80 placeholder:text-white/25 outline-none focus:bg-white/10 transition-colors tabular-nums",placeholder:"21"},null,512),[[Q,m.value,void 0,{number:!0}]])]),e("div",null,[p[5]||(p[5]=e("label",{class:"text-xs text-white/30 block mb-1"},"Message (optional)",-1)),W(e("input",{"onUpdate:modelValue":p[1]||(p[1]=y=>_.value=y),type:"text",class:"w-full px-3 py-2 rounded-lg text-base bg-white/5 text-white/80 placeholder:text-white/25 outline-none focus:bg-white/10 transition-colors",placeholder:"Great post!"},null,512),[[Q,_.value]])]),e("button",{class:"w-full py-2.5 rounded-lg text-xs font-medium bg-accent/15 text-accent/80 hover:bg-accent/25 transition-colors disabled:opacity-30",disabled:!m.value||m.value<1||b.value,onClick:j},u(b.value?"Generating invoice...":`Zap ${h(m.value)} sats`),9,Qa),$.value?(s(),n("div",Za,[p[6]||(p[6]=e("p",{class:"text-xs text-white/30 text-center"},"Scan or tap to pay",-1)),e("div",Xa,[e("canvas",{ref_key:"qrCanvas",ref:r,class:"rounded-lg",width:"200",height:"200"},null,512)]),e("div",ei,[e("input",{value:$.value,readonly:"",class:"flex-1 px-2 py-1.5 rounded text-base bg-white/5 text-white/40 font-mono truncate outline-none"},null,8,ti),e("button",{class:"px-2 py-1.5 rounded text-xs bg-white/5 text-white/40 hover:text-white/60 transition-colors",onClick:D},u(o.value?"Copied":"Copy"),1)]),e("a",{href:"lightning:"+$.value,class:"block w-full py-2 rounded-lg text-xs text-center bg-accent/15 text-accent/80 hover:bg-accent/25 transition-colors"}," Open in wallet ",8,si)])):f("",!0),d.value?(s(),n("p",ni,u(d.value),1)):f("",!0)])],544)):f("",!0)}}),oi={class:"h-full flex flex-col"},ai={class:"flex items-center gap-2 px-4 py-3 border-b border-white/[0.08]"},ii={class:"flex-1 overflow-y-auto custom-scrollbar px-4 pt-3 pb-16 space-y-2"},ri={key:0,class:"flex items-center justify-center py-12"},ci={key:1,class:"rounded-xl bg-white/[0.05] border border-white/10 p-3"},di={class:"flex items-center gap-1.5 mb-1"},ui={class:"w-6 h-6 rounded-full shrink-0 flex items-center justify-center text-xs font-bold bg-purple-500/20 text-purple-400"},hi={class:"text-xs font-semibold text-white/80"},xi={class:"text-xs ml-auto text-white/20"},pi={class:"text-xs text-white/70 leading-relaxed whitespace-pre-wrap"},gi={key:2,class:"space-y-1"},bi={class:"text-xs text-white/30 font-medium mt-3 mb-1"},vi={key:3,class:"flex items-center justify-center py-12"},fi={key:0,class:"px-4 py-3 border-t border-white/[0.08]"},mi={key:0,class:"text-xs text-white/30 mb-1"},wi={class:"flex gap-2"},yi=["disabled"],ki=G({__name:"NostrThread",props:{noteId:{}},emits:["back"],setup(a){const c=Jt(()=>pt(()=>import("./ThreadNode-DBTMRZ0t.js"),__vite__mapDeps([3,1,2]))),l=a,{fetchNote:w,publishEvent:g}=Ie(),{isLoggedIn:v,signEvent:x,pubkey:m}=me(),_=S(null),$=S([]),b=S(!0),d=S(null),o=S("");function r(k){const p=new Date(k*1e3);return p.toLocaleTimeString("en",{hour:"2-digit",minute:"2-digit"})+" "+p.toLocaleDateString("en",{month:"short",day:"numeric"})}function h(k){return k.length<=12?k:k.slice(0,8)+"..."+k.slice(-4)}async function M(){b.value=!0;const k=await w(l.noteId);if(!k){b.value=!1;return}_.value=k;const p=await j(l.noteId);$.value=L(p,l.noteId),b.value=!1}async function j(k){return new Promise(p=>{const y=[],A="thread-"+Math.random().toString(36).slice(2,8);let V=!1;const E=setTimeout(()=>{V||(V=!0,p(y))},8e3),J="wss://relay.nostr.band";try{const H=new WebSocket(J);H.onopen=()=>{H.send(JSON.stringify(["REQ",A,{kinds:[1],"#e":[k],limit:100}]))},H.onmessage=K=>{try{const F=JSON.parse(K.data);if(Array.isArray(F)&&F[0]==="EVENT"&&F[1]===A&&F[2]){const O=F[2];y.find(X=>X.id===O.id)||y.push({id:O.id,pubkey:O.pubkey,authorName:h(O.pubkey),kind:O.kind,content:O.content,created_at:O.created_at,tags:O.tags??[]})}Array.isArray(F)&&F[0]==="EOSE"&&F[1]===A&&(clearTimeout(E),H.close(),V||(V=!0,p(y)))}catch{}},H.onerror=()=>{clearTimeout(E),V||(V=!0,p(y))},H.onclose=()=>{V||(V=!0,p(y))}}catch{clearTimeout(E),p(y)}})}function L(k,p,y=5){const A=new Map;for(const E of k){let J=p;const H=E.tags.filter(F=>F[0]==="e");if(H.length>0){const F=H.find(O=>O[3]==="reply");J=F?F[1]:H[H.length-1][1]}const K=A.get(J)??[];K.push(E),A.set(J,K)}function V(E,J){const H=A.get(E)??[];return H.sort((K,F)=>K.created_at-F.created_at),H.map(K=>({note:K,children:J<y?V(K.id,J+1):[]}))}return V(p,0)}function D(k){d.value=k}async function C(){if(!o.value.trim()||!m.value)return;const k=d.value??_.value;if(!k)return;const p=[["e",l.noteId,"","root"]];k.id!==l.noteId&&p.push(["e",k.id,"","reply"]),p.push(["p",k.pubkey]);const y={kind:1,created_at:Math.floor(Date.now()/1e3),tags:p,content:o.value.trim()},A=await x(y);A&&(await g(A),o.value="",d.value=null,await M())}return oe(()=>{M()}),(k,p)=>(s(),n("div",oi,[e("div",ai,[e("button",{class:"min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg text-white/60 hover:text-white/80 hover:bg-white/10 transition-colors",onClick:p[0]||(p[0]=y=>k.$emit("back"))},[...p[3]||(p[3]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),p[4]||(p[4]=e("h3",{class:"text-sm font-bold text-white/90"},"Thread",-1))]),e("div",ii,[b.value?(s(),n("div",ri,[...p[5]||(p[5]=[e("p",{class:"text-xs text-white/30"},"Loading thread...",-1)])])):f("",!0),_.value?(s(),n("div",ci,[e("div",di,[e("div",ui,u(_.value.authorName?.charAt(0)?.toUpperCase()??"?"),1),e("span",hi,u(_.value.authorName??"anon"),1),e("span",xi,u(r(_.value.created_at)),1)]),e("p",pi,u(_.value.content),1)])):f("",!0),$.value.length>0?(s(),n("div",gi,[e("p",bi,u($.value.length)+" replies",1),(s(!0),n(I,null,P($.value,y=>(s(),U(t(c),{key:y.note.id,node:y,depth:0,onReply:D},null,8,["node"]))),128))])):f("",!0),!b.value&&!_.value?(s(),n("div",vi,[...p[6]||(p[6]=[e("p",{class:"text-xs text-white/30"},"Thread not found",-1)])])):f("",!0)]),_.value&&t(v)?(s(),n("div",fi,[d.value?(s(),n("p",mi,[ne(" Replying to "+u(d.value.authorName??"anon")+" ",1),e("button",{class:"text-accent/60 ml-1",onClick:p[1]||(p[1]=y=>d.value=null)},"cancel")])):f("",!0),e("div",wi,[W(e("input",{"onUpdate:modelValue":p[2]||(p[2]=y=>o.value=y),type:"text",placeholder:"Reply...",class:"flex-1 px-3 py-2 rounded-lg text-base bg-white/5 text-white/80 placeholder:text-white/25 outline-none focus:bg-white/10 transition-colors",onKeydown:ae(C,["enter"])},null,544),[[Q,o.value]]),e("button",{class:"px-3 py-2 rounded-lg text-xs bg-accent/15 text-accent/80 hover:bg-accent/25 transition-colors disabled:opacity-30",disabled:!o.value.trim(),onClick:C}," Reply ",8,yi)])])):f("",!0)]))}}),$i={class:"h-full flex flex-col"},_i={class:"p-4 border-b border-white/[0.08]"},Ci={class:"flex gap-1.5 flex-wrap"},ji=["onClick"],Si={key:0,class:"flex-1 flex items-center justify-center"},Mi={key:1,class:"flex-1 overflow-y-auto custom-scrollbar px-4 pt-3 pb-16 space-y-2"},Ti={key:0,class:"flex items-center justify-center py-12"},Di={class:"flex gap-2 mb-3"},Ii=["placeholder"],Bi=["disabled"],Li={class:"w-6 h-6 rounded-full shrink-0 flex items-center justify-center text-xs font-bold bg-purple-500/20 text-purple-400"},Pi={class:"flex-1 min-w-0"},Ni={class:"text-xs text-white/60 font-mono truncate"},Ai={key:0,class:"text-xs text-white/30"},zi=["onClick"],Ei={key:1,class:"flex items-center justify-center py-12"},Fi=["disabled"],Ri=G({__name:"NostrLists",setup(a){const{isLoggedIn:c,signEvent:l,pubkey:w}=me(),{publishEvent:g}=Ie(),v=[{kind:3,label:"Follows"},{kind:1e4,label:"Mute"},{kind:10001,label:"Pin"},{kind:10003,label:"Bookmarks"}],x=S(3),m=S([]),_=S(!1),$=S(!1),b=S(""),d=S(!1),o=S(""),r=S(!1);function h(k){return k.length<=16?k:k.slice(0,8)+"..."+k.slice(-8)}function M(k){return k.filter(p=>p[0]==="p"||p[0]==="e"||p[0]==="t").map(p=>{let y=h(p[1]);if(p[0]==="p")try{y=He(p[1])}catch{}return{tag:p[0],value:p[1],displayValue:y,relay:p[2]||void 0,petname:p[3]||void 0}})}async function j(k){if(w.value){_.value=!0,$.value=!1,m.value=[];try{const p=new WebSocket("wss://relay.nostr.band"),y="list-"+Math.random().toString(36).slice(2,8),A=setTimeout(()=>{p.close(),_.value=!1},8e3);p.onopen=()=>{p.send(JSON.stringify(["REQ",y,{kinds:[k],authors:[w.value],limit:1}]))},p.onmessage=V=>{try{const E=JSON.parse(V.data);if(Array.isArray(E)&&E[0]==="EVENT"&&E[1]===y&&E[2]){const J=E[2];m.value=M(J.tags)}Array.isArray(E)&&E[0]==="EOSE"&&(clearTimeout(A),p.close(),_.value=!1)}catch{}},p.onerror=()=>{clearTimeout(A),_.value=!1}}catch{_.value=!1}}}function L(){let k=b.value.trim();if(!k)return;let p=k;const y=x.value===3||x.value===1e4?"p":"e";if(k.startsWith("npub"))try{p=gt(k)}catch{return}if(m.value.find(V=>V.value===p))return;let A=h(p);if(y==="p")try{A=He(p)}catch{}m.value.push({tag:y,value:p,displayValue:A}),$.value=!0,b.value=""}function D(k){m.value=m.value.filter(p=>p.value!==k.value),$.value=!0}async function C(){if(!w.value)return;d.value=!0,o.value="";const k=m.value.map(E=>{const J=[E.tag,E.value];return E.relay&&J.push(E.relay),E.petname&&J.push(E.petname),J}),p={kind:x.value,created_at:Math.floor(Date.now()/1e3),tags:k,content:""},y=await l(p);if(!y){d.value=!1,o.value="Signing failed",r.value=!1;return}const A=await g(y),V=A.filter(E=>E.success).length;d.value=!1,$.value=!1,V>0?(o.value=`Published to ${V}/${A.length} relays`,r.value=!0):(o.value="Failed to publish",r.value=!1)}return oe(()=>{j(x.value)}),(k,p)=>(s(),n("div",$i,[e("div",_i,[p[1]||(p[1]=e("h3",{class:"text-sm font-bold text-white/90 mb-3"},"Nostr Lists",-1)),e("div",Ci,[(s(),n(I,null,P(v,y=>e("button",{key:y.kind,class:i(["text-xs px-2 py-1 rounded-md transition-all duration-150",x.value===y.kind?"nav-tab-active":"text-white/40 hover:text-white/70 hover:bg-white/5"]),onClick:A=>{x.value=y.kind,j(y.kind)}},u(y.label),11,ji)),64))])]),t(c)?(s(),n("div",Mi,[_.value?(s(),n("div",Ti,[...p[3]||(p[3]=[e("p",{class:"text-xs text-white/30"},"Loading list...",-1)])])):f("",!0),e("div",Di,[W(e("input",{"onUpdate:modelValue":p[0]||(p[0]=y=>b.value=y),type:"text",placeholder:x.value===3?"Add npub or hex pubkey...":"Add item (hex id or npub)...",class:"flex-1 px-3 py-2 rounded-lg text-base bg-white/5 text-white/80 placeholder:text-white/25 outline-none focus:bg-white/10 transition-colors font-mono",onKeydown:ae(L,["enter"])},null,40,Ii),[[Q,b.value]]),e("button",{class:"px-2.5 py-2 rounded-lg text-xs bg-accent/15 text-accent/80 hover:bg-accent/25 transition-colors disabled:opacity-30",disabled:!b.value.trim(),onClick:L}," Add ",8,Bi)]),(s(!0),n(I,null,P(m.value,y=>(s(),n("div",{key:y.value,class:"flex items-center gap-2 p-2.5 rounded-xl bg-white/[0.03] border border-white/5"},[e("div",Li,u(y.tag==="p"?"P":y.tag==="e"?"E":y.tag==="t"?"#":"?"),1),e("div",Pi,[e("p",Ni,u(y.displayValue),1),y.petname?(s(),n("p",Ai,u(y.petname),1)):f("",!0)]),e("button",{class:"text-xs px-2 py-1 rounded bg-white/5 text-red-400/50 hover:text-red-400/80 hover:bg-red-400/10 transition-colors shrink-0",onClick:A=>D(y)}," Remove ",8,zi)]))),128)),!_.value&&m.value.length===0?(s(),n("div",Ei,[...p[4]||(p[4]=[e("p",{class:"text-xs text-white/30"},"List is empty",-1)])])):f("",!0),$.value?(s(),n("button",{key:2,class:"w-full py-2.5 rounded-lg text-xs font-medium bg-accent/15 text-accent/80 hover:bg-accent/25 transition-colors disabled:opacity-30 mt-4",disabled:d.value,onClick:C},u(d.value?"Publishing...":"Publish updated list"),9,Fi)):f("",!0),o.value?(s(),n("p",{key:3,class:i(["text-xs text-center",r.value?"text-emerald-400/60":"text-red-400/60"])},u(o.value),3)):f("",!0)])):(s(),n("div",Si,[...p[2]||(p[2]=[e("p",{class:"text-xs text-white/30"},"Sign in with Nostr to manage lists",-1)])]))]))}}),Vi={class:"article-reader h-full flex"},Ui={key:0,class:"hidden lg:flex flex-col w-56 shrink-0 border-r border-white/5 overflow-y-auto scrollbar-hide py-4 px-3"},qi=["onClick"],Gi={class:"sticky top-0 z-10 flex items-center gap-2 px-4 py-2 bg-black/60 backdrop-blur-md border-b border-white/5"},Oi={class:"flex-1 text-xs text-white/40 truncate"},Hi=["disabled"],Wi=["disabled"],Ki={key:0,class:"lg:hidden bg-black/40 backdrop-blur-md border-b border-white/5 px-4 py-2 space-y-0.5 animate-fade-up-fast"},Yi=["onClick"],Ji={key:0,class:"text-xl font-bold text-white/96 mb-4"},Qi=["innerHTML"],Zi=G({__name:"ArticleReader",props:{content:{},title:{}},emits:["back"],setup(a){const c=a,l=[13,15,17,19,21],w=localStorage.getItem("aiui-article-font-size"),g=S(w?parseInt(w,10):1);ce(g,D=>{localStorage.setItem("aiui-article-font-size",String(D))});const v=S(!1),x=new cs({html:!1,linkify:!0,breaks:!0});x.renderer.rules.heading_open=(D,C,k,p,y)=>{const A=D[C],V=parseInt(A.tag.slice(1),10);if(V===2||V===3){const H=(D[C+1]?.children?.reduce((K,F)=>K+(F.content||""),"")||"").toLowerCase().replace(/[^\w]+/g,"-").replace(/(^-|-$)/g,"");A.attrSet("id",H)}return y.renderToken(D,C,k)};const m=x.renderer.rules.link_open||function(D,C,k,p,y){return y.renderToken(D,C,k)};x.renderer.rules.link_open=function(D,C,k,p,y){return D[C].attrSet("target","_blank"),D[C].attrSet("rel","noopener noreferrer"),m(D,C,k,p,y)};const _=B(()=>x.render(c.content)),$=B(()=>{const D=[],C=/^(#{2,3})\s+(.+)$/gm;let k;for(;(k=C.exec(c.content))!==null;){const p=k[2].trim(),y=p.toLowerCase().replace(/[^\w]+/g,"-").replace(/(^-|-$)/g,"");D.push({text:p,id:y,level:k[1].length})}return D}),b=B(()=>{const D=c.content.split(/\s+/).length;return Math.max(1,Math.ceil(D/200))}),d=S(null),o=S(null),r=S(0);let h=null;function M(){if(!d.value)return;h?.disconnect(),h=new IntersectionObserver(C=>{for(const k of C)if(k.isIntersecting){const p=k.target.id,y=$.value.findIndex(A=>A.id===p);y>=0&&(r.value=y)}},{root:d.value,rootMargin:"-20% 0px -60% 0px",threshold:0}),o.value?.querySelectorAll("h2[id], h3[id]")?.forEach(C=>h.observe(C))}oe(()=>{setTimeout(M,100)}),ce(()=>c.content,()=>{setTimeout(M,100)}),Qt(()=>{h?.disconnect()});function j(D){o.value?.querySelector(`#${CSS.escape(D)}`)?.scrollIntoView({behavior:"smooth",block:"start"})}function L(){const D=window.open("","_blank");D&&(D.document.write(`<!DOCTYPE html>
|
||
<html><head><title>${c.title||"Article"}</title>
|
||
<style>
|
||
body { font-family: Georgia, serif; max-width: 700px; margin: 2em auto; padding: 0 1em; line-height: 1.7; color: #222; }
|
||
h1 { font-size: 1.8em; margin-bottom: 0.5em; }
|
||
h2 { font-size: 1.4em; margin-top: 1.5em; }
|
||
h3 { font-size: 1.2em; margin-top: 1.2em; }
|
||
code { background: #f0f0f0; padding: 2px 5px; border-radius: 3px; }
|
||
pre { background: #f5f5f5; padding: 1em; overflow-x: auto; border-radius: 5px; }
|
||
blockquote { border-left: 3px solid #ccc; padding-left: 1em; color: #555; }
|
||
img { max-width: 100%; }
|
||
a { color: #0066cc; }
|
||
</style></head><body>
|
||
${c.title?`<h1>${c.title}</h1>`:""}
|
||
${_.value}
|
||
</body></html>`),D.document.close(),D.print())}return(D,C)=>(s(),n("div",Vi,[$.value.length>1?(s(),n("aside",Ui,[C[4]||(C[4]=e("p",{class:"text-xs uppercase tracking-wider text-white/30 mb-2 px-2"},"Contents",-1)),(s(!0),n(I,null,P($.value,(k,p)=>(s(),n("button",{key:p,class:i(["text-left text-xs leading-relaxed py-1 px-2 rounded transition-colors truncate",[r.value===p?"text-accent bg-accent/10":"text-white/50 hover:text-white/70 hover:bg-white/5",k.level===3?"pl-5":""]]),onClick:y=>j(k.id)},u(k.text),11,qi))),128))])):f("",!0),e("div",{ref_key:"contentRef",ref:d,class:"flex-1 overflow-y-auto scrollbar-hide"},[e("div",Gi,[e("button",{class:"min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg text-white/60 hover:text-white/80 hover:bg-white/10 transition-colors",title:"Back",onClick:C[0]||(C[0]=k=>D.$emit("back"))},[...C[5]||(C[5]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),e("span",Oi,u(b.value)+" min read",1),$.value.length>1?(s(),n("button",{key:0,class:"lg:hidden min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg text-white/60 hover:text-white/80 hover:bg-white/10 transition-colors",title:"Table of contents",onClick:C[1]||(C[1]=k=>v.value=!v.value)},[...C[6]||(C[6]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M4 6h16M4 12h16M4 18h7"})],-1)])])):f("",!0),e("button",{class:"min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg text-white/60 hover:text-white/80 hover:bg-white/10 transition-colors",title:"Decrease font size",disabled:g.value<=0,onClick:C[2]||(C[2]=k=>g.value=Math.max(0,g.value-1))},[...C[7]||(C[7]=[e("span",{class:"text-xs font-bold"},"A-",-1)])],8,Hi),e("button",{class:"min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg text-white/60 hover:text-white/80 hover:bg-white/10 transition-colors",title:"Increase font size",disabled:g.value>=l.length-1,onClick:C[3]||(C[3]=k=>g.value=Math.min(l.length-1,g.value+1))},[...C[8]||(C[8]=[e("span",{class:"text-xs font-bold"},"A+",-1)])],8,Wi),e("button",{class:"min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg text-white/60 hover:text-white/80 hover:bg-white/10 transition-colors",title:"Print",onClick:L},[...C[9]||(C[9]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M17 17h2a2 2 0 002-2v-4a2 2 0 00-2-2H5a2 2 0 00-2 2v4a2 2 0 002 2h2m2 4h6a2 2 0 002-2v-4a2 2 0 00-2-2H9a2 2 0 00-2 2v4a2 2 0 002 2zm8-12V5a2 2 0 00-2-2H9a2 2 0 00-2 2v4h10z"})],-1)])])]),v.value&&$.value.length>1?(s(),n("div",Ki,[(s(!0),n(I,null,P($.value,(k,p)=>(s(),n("button",{key:p,class:i(["block w-full text-left text-xs py-1 px-2 rounded transition-colors truncate",[r.value===p?"text-accent bg-accent/10":"text-white/50 hover:text-white/70",k.level===3?"pl-5":""]]),onClick:y=>{j(k.id),v.value=!1}},u(k.text),11,Yi))),128))])):f("",!0),e("article",{ref_key:"articleRef",ref:o,class:"article-body px-4 md:px-8 py-6 max-w-prose mx-auto leading-relaxed text-white/90",style:q({fontSize:l[g.value]+"px"})},[a.title?(s(),n("h1",Ji,u(a.title),1)):f("",!0),e("div",{class:"article-content [&_h2]:text-lg [&_h2]:font-semibold [&_h2]:text-white/96 [&_h2]:mt-8 [&_h2]:mb-3 [&_h3]:text-base [&_h3]:font-medium [&_h3]:text-white/90 [&_h3]:mt-6 [&_h3]:mb-2 [&_p]:mb-4 [&_ul]:list-disc [&_ul]:ml-5 [&_ul]:mb-4 [&_ol]:list-decimal [&_ol]:ml-5 [&_ol]:mb-4 [&_li]:mb-1 [&_a]:text-accent [&_a]:underline [&_a]:underline-offset-2 [&_blockquote]:border-l-2 [&_blockquote]:border-accent/30 [&_blockquote]:pl-4 [&_blockquote]:italic [&_blockquote]:text-white/70 [&_blockquote]:my-4 [&_code]:bg-white/10 [&_code]:px-1.5 [&_code]:py-0.5 [&_code]:rounded [&_code]:text-[0.9em] [&_pre]:bg-white/5 [&_pre]:rounded-lg [&_pre]:p-4 [&_pre]:overflow-x-auto [&_pre]:my-4 [&_img]:rounded-lg [&_img]:max-w-full [&_img]:my-4 [&_hr]:border-white/10 [&_hr]:my-6",innerHTML:_.value},null,8,Qi)],4)],512)]))}}),Xi={class:"h-full flex flex-col"},er={class:"flex items-center gap-2 px-4 py-3 border-b border-white/[0.08]"},tr={class:"text-xs text-white/40 truncate"},sr={class:"flex-1 overflow-y-auto custom-scrollbar"},nr={class:"flex-1 overflow-y-auto custom-scrollbar px-4 pt-3 pb-16 space-y-2"},lr={key:0,class:"flex items-center justify-center py-12"},or=["onClick"],ar={class:"space-y-1"},ir={class:"text-xs font-semibold text-white/80 line-clamp-2"},rr={class:"text-xs text-white/40 line-clamp-2"},cr={class:"flex items-center gap-2"},dr={class:"text-xs text-white/25 font-mono"},ur={class:"text-xs text-white/20"},hr={key:0,class:"text-xs text-accent/40 ml-auto"},xr={key:1,class:"flex items-center justify-center py-12"},pr=G({__name:"NostrArticles",setup(a){const c=S([]),l=S(!0),w=S(null),g=B(()=>w.value?m(w.value):"");function v(d){return d.length<=16?d:d.slice(0,8)+"..."+d.slice(-4)}function x(d){return new Date(d*1e3).toLocaleDateString("en",{month:"short",day:"numeric",year:"numeric"})}function m(d){const o=d.tags.find(h=>h[0]==="title");return o?.[1]?o[1]:d.content.split(`
|
||
`)[0].replace(/^#+ /,"").slice(0,60)||"Untitled"}function _(d){const o=d.tags.find(r=>r[0]==="summary");return o?.[1]?o[1]:d.content.slice(0,120).replace(/[#*_]/g,"")}function $(d){return d.tags.find(r=>r[0]==="image")?.[1]??null}async function b(){l.value=!0,c.value=[];const d="wss://relay.nostr.band",o="articles-"+Math.random().toString(36).slice(2,8);try{const r=new WebSocket(d),h=[],M=setTimeout(()=>{r.close(),c.value=h,l.value=!1},1e4);r.onopen=()=>{r.send(JSON.stringify(["REQ",o,{kinds:[30023],limit:30}]))},r.onmessage=j=>{try{const L=JSON.parse(j.data);if(Array.isArray(L)&&L[0]==="EVENT"&&L[1]===o&&L[2]){const D=L[2];h.find(C=>C.id===D.id)||h.push({id:D.id,pubkey:D.pubkey,authorName:v(D.pubkey),kind:D.kind,content:D.content,created_at:D.created_at,tags:D.tags??[]})}Array.isArray(L)&&L[0]==="EOSE"&&(clearTimeout(M),r.close(),h.sort((D,C)=>C.created_at-D.created_at),c.value=h,l.value=!1)}catch{}},r.onerror=()=>{clearTimeout(M),l.value=!1}}catch{l.value=!1}}return oe(()=>{b()}),(d,o)=>(s(),n("div",Xi,[w.value?(s(),n(I,{key:0},[e("div",er,[e("button",{class:"min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg text-white/60 hover:text-white/80 hover:bg-white/10 transition-colors",onClick:o[0]||(o[0]=r=>w.value=null)},[...o[1]||(o[1]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),e("span",tr,u(g.value),1)]),e("div",sr,[se(Zi,{content:w.value.content,title:g.value},null,8,["content","title"])])],64)):(s(),n(I,{key:1},[o[4]||(o[4]=e("div",{class:"p-4 border-b border-white/[0.08]"},[e("h3",{class:"text-sm font-bold text-white/90 mb-2"},"Long-Form Articles"),e("p",{class:"text-xs text-white/30"},"NIP-23 kind:30023 articles from your network")],-1)),e("div",nr,[l.value?(s(),n("div",lr,[...o[2]||(o[2]=[e("p",{class:"text-xs text-white/30"},"Loading articles...",-1)])])):f("",!0),(s(!0),n(I,null,P(c.value,r=>(s(),n("button",{key:r.id,class:"w-full text-left p-3 rounded-xl transition-all duration-150 bg-white/[0.03] hover:bg-white/[0.07] border border-white/5",onClick:h=>w.value=r},[e("div",ar,[e("h4",ir,u(m(r)),1),e("p",rr,u(_(r)),1),e("div",cr,[e("span",dr,u(v(r.pubkey)),1),e("span",ur,u(x(r.created_at)),1),$(r)?(s(),n("span",hr,"has image")):f("",!0)])])],8,or))),128)),!l.value&&c.value.length===0?(s(),n("div",xr,[...o[3]||(o[3]=[e("p",{class:"text-xs text-white/30"},"No articles found",-1)])])):f("",!0)])],64))]))}}),We=1440*60*1e3,ft="aiui-nip05-cache",Te=S(new Map);function gr(){try{const a=localStorage.getItem(ft);if(a){const c=JSON.parse(a),l=Date.now(),w=c.filter(([,g])=>l-g.timestamp<We);Te.value=new Map(w)}}catch{}}function br(){try{const a=Array.from(Te.value.entries());localStorage.setItem(ft,JSON.stringify(a))}catch{}}gr();function vr(){async function a(w,g){const v=`${w}:${g}`,x=Te.value.get(v);if(x&&Date.now()-x.timestamp<We)return x.verified;try{const[m,_]=w.split("@");if(!m||!_)return!1;const $=await fetch(`https://${_}/.well-known/nostr.json?name=${encodeURIComponent(m)}`);if(!$.ok)return c(v,!1,g);const o=(await $.json())?.names?.[m]===g;return c(v,o,g)}catch{return c(v,!1,g)}}function c(w,g,v){return Te.value.set(w,{verified:g,pubkey:v,timestamp:Date.now()}),br(),g}function l(w,g){const v=Te.value.get(`${w}:${g}`);return!v||Date.now()-v.timestamp>=We?null:v.verified}return{verifyNip05:a,isVerified:l}}const fr={class:"h-full flex flex-col"},mr={class:"flex gap-2 px-4 pt-3 pb-1"},wr=["onClick"],yr={class:"p-4 space-y-3 border-b border-white/[0.08]"},kr={class:"flex items-center justify-between gap-2"},$r={class:"flex items-center gap-2 shrink-0"},_r={class:"text-xs font-mono text-white/30"},Cr={key:1,class:"rounded-lg bg-white/5 border border-white/10 p-3 space-y-2"},jr=["onKeydown"],Sr={class:"flex items-center justify-between gap-2"},Mr=["disabled"],Tr={key:0,class:"space-y-1"},Dr={class:"truncate font-mono text-white/40"},Ir={class:"flex gap-2"},Br=["disabled"],Lr={class:"flex gap-2"},Pr=["onClick"],Nr={class:"flex-1 overflow-y-auto custom-scrollbar px-4 pt-3 pb-16 space-y-2"},Ar={key:0,class:"flex flex-col items-center justify-center py-12 gap-3"},zr=["onClick"],Er={class:"flex items-start gap-2.5"},Fr={class:"w-8 h-8 rounded-full shrink-0 overflow-hidden"},Rr=["src","alt","onError"],Vr={key:1,class:"w-full h-full flex items-center justify-center text-xs font-bold bg-purple-500/20 text-purple-400"},Ur={class:"flex-1 min-w-0"},qr={class:"flex items-center gap-1.5"},Gr={class:"text-xs font-semibold truncate text-white/80"},Or={key:0,class:"text-xs truncate text-purple-400/60 flex items-center gap-0.5"},Hr=["title"],Wr={class:"text-xs ml-auto shrink-0 text-white/20"},Kr={class:"text-xs mt-1 leading-relaxed line-clamp-3 text-white/60"},Yr={class:"flex items-center gap-3 mt-2"},Jr=["onClick"],Qr={key:0,class:"text-xs px-1.5 py-0.5 rounded bg-white/5 text-white/30"},Zr={class:"mt-4 pt-4 border-t border-white/5"},Xr={class:"space-y-1"},ec={class:"truncate font-mono text-white/40"},tc={key:1,class:"flex items-center justify-center py-12"},sc=G({__name:"NostrGrid",setup(a){const{events:c,isConnected:l,relayStates:w,connect:g,publishEvent:v,searchResults:x,isSearching:m,searchNostr:_}=Ie(),{isLoggedIn:$,signEvent:b}=me(),{verifyNip05:d}=vr(),o=S("feed"),r=[{id:"feed",label:"Feed"},{id:"articles",label:"Articles"},{id:"dms",label:"Messages"},{id:"lists",label:"Lists"},{id:"relays",label:"Relays"},{id:"profile",label:"Profile"}],h=S(null),M=Pe(new Set),j=S(""),L=S(null),D=S(!1),C=S(""),k=S(null),p=S(!1),y=S([]),A=S(!1),V=S(""),E=S(void 0);function J(ee){V.value=ee.authorName??ee.pubkey.slice(0,12),E.value=void 0,A.value=!0}const H=Pe({}),K=[{id:1,label:"Notes"},{id:30023,label:"Articles"},{id:9735,label:"Zaps"},{id:6,label:"Reposts"}];function F(ee){const z=Math.floor(Date.now()/1e3-ee);return z<60?"now":z<3600?`${Math.floor(z/60)}m`:z<86400?`${Math.floor(z/3600)}h`:`${Math.floor(z/86400)}d`}const O=S(!1),X=B(()=>{if(O.value&&x.value.length>0){let z=x.value;return L.value!==null&&(z=z.filter(N=>N.kind===L.value)),z}let ee=c.value;if(L.value!==null&&(ee=ee.filter(z=>z.kind===L.value)),j.value){const z=j.value.toLowerCase();ee=ee.filter(N=>N.content.toLowerCase().includes(z)||(N.authorName??"").toLowerCase().includes(z)||(N.nip05??"").toLowerCase().includes(z))}return ee});function ge(){j.value.trim()&&(O.value=!0,_(j.value.trim(),L.value?[L.value]:void 0))}ce(j,ee=>{ee.trim()||(O.value=!1)}),ce(X,ee=>{for(const z of ee)z.nip05&&H[z.id]===void 0&&(H[z.id]=null,d(z.nip05,z.pubkey).then(N=>{H[z.id]=N}))},{immediate:!0});async function be(){if(!C.value.trim()||p.value)return;p.value=!0,y.value=[];const ee={kind:1,created_at:Math.floor(Date.now()/1e3),tags:[],content:C.value.trim()},z=await b(ee);if(!z){p.value=!1;return}const N=await v(z);y.value=N,p.value=!1,N.some(re=>re.success)&&(C.value="",setTimeout(()=>{y.value=[],D.value=!1},3e3))}return oe(async()=>{g(),D.value&&(await ye(),k.value?.focus())}),(ee,z)=>(s(),n("div",fr,[e("div",mr,[(s(),n(I,null,P(r,N=>e("button",{key:N.id,class:i(["text-xs px-2.5 min-h-[44px] rounded-md transition-all duration-150 flex items-center justify-center",o.value===N.id?"nav-tab-active":"text-white/40 hover:text-white/70 hover:bg-white/5"]),onClick:re=>o.value=N.id},u(N.label),11,wr)),64))]),o.value==="dms"?(s(),U(va,{key:0})):o.value==="relays"?(s(),U(La,{key:1})):o.value==="profile"?(s(),U(Oa,{key:2})):o.value==="lists"?(s(),U(Ri,{key:3})):o.value==="articles"?(s(),U(pr,{key:4})):o.value==="feed"&&h.value?(s(),U(ki,{key:5,"note-id":h.value,onBack:z[0]||(z[0]=N=>h.value=null)},null,8,["note-id"])):(s(),n(I,{key:6},[e("div",yr,[e("div",kr,[z[5]||(z[5]=e("h3",{class:"text-sm font-bold text-white/90"}," Nostr Feed ",-1)),e("div",$r,[e("span",_r,u(X.value.length)+" notes ",1),ie(ee.$slots,"header-actions")])]),t($)?(s(),n("button",{key:0,class:"w-full text-left px-3 py-2 rounded-lg text-xs text-white/40 bg-white/5 hover:bg-white/10 transition-colors",onClick:z[1]||(z[1]=N=>D.value=!D.value)},u(D.value?"Cancel":"Write a note..."),1)):f("",!0),D.value&&t($)?(s(),n("div",Cr,[W(e("textarea",{ref_key:"composeRef",ref:k,"onUpdate:modelValue":z[2]||(z[2]=N=>C.value=N),class:"w-full bg-transparent text-base text-white/80 placeholder:text-white/25 outline-none resize-none min-h-[80px]",placeholder:"What's on your mind?",onKeydown:[ae(xe(be,["meta"]),["enter"]),ae(xe(be,["ctrl"]),["enter"])]},null,40,jr),[[Q,C.value]]),e("div",Sr,[e("span",{class:i(["text-xs tabular-nums",C.value.length>280?"text-accent/80":"text-white/25"])},u(C.value.length),3),e("button",{class:"text-xs px-3 py-1.5 rounded-lg bg-accent/15 text-accent/80 hover:bg-accent/25 transition-colors disabled:opacity-30",disabled:!C.value.trim()||p.value,onClick:be},u(p.value?"Publishing...":"Publish"),9,Mr)]),y.value.length>0?(s(),n("div",Tr,[(s(!0),n(I,null,P(y.value,N=>(s(),n("div",{key:N.url,class:"flex items-center gap-2 text-xs px-2 py-1 rounded bg-white/[0.02]"},[e("span",{class:i(["w-1.5 h-1.5 rounded-full shrink-0",N.success?"bg-emerald-500":"bg-red-400/60"])},null,2),e("span",Dr,u(N.url),1),e("span",{class:i(["ml-auto shrink-0",N.success?"text-emerald-400/60":"text-red-400/60"])},u(N.message),3)]))),128))])):f("",!0)])):f("",!0),e("div",Ir,[W(e("input",{"onUpdate:modelValue":z[3]||(z[3]=N=>j.value=N),type:"text",placeholder:"Search notes, npubs...",class:"flex-1 px-3 py-2 rounded-lg text-base outline-none transition-colors bg-white/5 text-white/80 placeholder:text-white/25 focus:bg-white/10",onKeydown:ae(ge,["enter"])},null,544),[[Q,j.value]]),j.value.trim()?(s(),n("button",{key:0,class:"px-2.5 py-2 rounded-lg text-xs bg-accent/15 text-accent/80 hover:bg-accent/25 transition-colors disabled:opacity-30 shrink-0",disabled:t(m),onClick:ge},u(t(m)?"...":"NIP-50"),9,Br)):f("",!0)]),e("div",Lr,[(s(),n(I,null,P(K,N=>e("button",{key:N.id,class:i(["text-xs px-2.5 min-h-[44px] rounded-md transition-all duration-150 flex items-center justify-center",L.value===N.id?"nav-tab-active":"text-white/40 hover:text-white/70 hover:bg-white/5"]),onClick:re=>L.value=L.value===N.id?null:N.id},u(N.label),11,Pr)),64))])]),e("div",Nr,[!t(l)&&t(c).length===0?(s(),n("div",Ar,[...z[6]||(z[6]=[e("svg",{class:"w-5 h-5 animate-spin text-white/30",fill:"none",viewBox:"0 0 24 24"},[e("circle",{class:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor","stroke-width":"4"}),e("path",{class:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"})],-1),e("p",{class:"text-xs text-white/30"},"Connecting to relays...",-1)])])):f("",!0),(s(!0),n(I,null,P(X.value,N=>(s(),n("button",{key:N.id,class:"w-full text-left p-3 rounded-xl transition-all duration-150 bg-white/[0.03] hover:bg-white/[0.07] border border-white/5",onClick:re=>h.value=N.id},[e("div",Er,[e("div",Fr,[N.authorPicture&&!M.has(N.pubkey)?(s(),n("img",{key:0,src:N.authorPicture,alt:N.authorName??"profile",class:"w-full h-full object-cover",loading:"lazy",onError:re=>M.add(N.pubkey)},null,40,Rr)):(s(),n("div",Vr,u(N.authorName?.charAt(0)?.toUpperCase()??"?"),1))]),e("div",Ur,[e("div",qr,[e("span",Gr,u(N.authorName??"anon"),1),N.nip05?(s(),n("span",Or,[H[N.id]===!0?(s(),n("svg",{key:0,class:"w-2.5 h-2.5 text-emerald-400 shrink-0",fill:"currentColor",viewBox:"0 0 20 20",title:N.nip05},[...z[7]||(z[7]=[e("path",{"fill-rule":"evenodd",d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z","clip-rule":"evenodd"},null,-1)])],8,Hr)):f("",!0),ne(" "+u(N.nip05),1)])):f("",!0),e("span",Wr,u(F(N.created_at)),1)]),e("p",Kr,u(N.content),1),e("div",Yr,[e("button",{class:"text-xs px-3 py-2 min-h-[44px] min-w-[44px] rounded bg-white/5 text-accent/60 hover:text-accent hover:bg-accent/10 transition-colors flex items-center justify-center",onClick:xe(re=>J(N),["stop"])}," Zap ",8,Jr),N.kind!==1?(s(),n("span",Qr," kind:"+u(N.kind),1)):f("",!0)])])])],8,zr))),128)),e("div",Zr,[z[8]||(z[8]=e("p",{class:"text-xs font-medium mb-2 text-white/30"},"Relays",-1)),e("div",Xr,[(s(!0),n(I,null,P(t(w),N=>(s(),n("div",{key:N.url,class:"flex items-center gap-2 text-xs px-2 py-1 rounded-lg bg-white/[0.02]"},[e("span",{class:i(["w-1.5 h-1.5 rounded-full shrink-0",N.connected?"bg-emerald-500":"bg-red-400/60"])},null,2),e("span",ec,u(N.url),1)]))),128))])]),t(l)&&X.value.length===0?(s(),n("div",tc,[...z[9]||(z[9]=[e("p",{class:"text-sm text-white/30"},"No notes match your search",-1)])])):f("",!0)])],64)),se(li,{"is-open":A.value,"target-name":V.value,"lightning-address":E.value,onClose:z[4]||(z[4]=N=>A.value=!1)},null,8,["is-open","target-name","lightning-address"])]))}}),nc={class:"flex-1 min-h-0 flex flex-col"},at=G({__name:"ContentGridView",props:{activeTab:{},isWideDesktop:{type:Boolean},isMobile:{type:Boolean},panelFilms:{},panelBooks:{},panelTVSeries:{},panelImages:{},panelPlaces:{},panelSongs:{},panelPodcasts:{},panelWebResults:{},panelWebsites:{},panelMagazineSections:{},panelMagazineHeroImage:{},panelRecipes:{},panelApps:{},panelTitle:{},panelQuery:{},panelResponseText:{}},setup(a){const c=a,l=B(()=>{const o=c.panelResponseText??"";if(!o)return[{title:c.panelQuery||"Prompt",content:""}];const r=Zt(o);return r.length>0?r:[{title:c.panelQuery||"Response",content:Xt(o)}]}),{openFilmDetail:w,openBookDetail:g,openTVSeriesDetail:v,openImageDetail:x,openPlaceDetail:m,openSongDetail:_,openPodcastDetail:$,openRecipeDetail:b,openAppDetail:d}=$e();return(o,r)=>(s(),n("div",nc,[a.activeTab==="film"?(s(),U(us,{key:0,films:a.panelFilms,title:a.panelTitle,onSelectFilm:t(w)},null,8,["films","title","onSelectFilm"])):a.activeTab==="book"?(s(),U(As,{key:1,books:a.panelBooks,title:a.panelTitle,onSelectBook:t(g)},null,8,["books","title","onSelectBook"])):a.activeTab==="tvshow"?(s(),U(ln,{key:2,series:a.panelTVSeries,title:a.panelTitle,onSelectSeries:t(v)},null,8,["series","title","onSelectSeries"])):a.activeTab==="image"?(s(),U(vn,{key:3,images:a.panelImages,title:a.panelTitle,onSelectImage:t(x)},null,8,["images","title","onSelectImage"])):a.activeTab==="place"?(s(),U(Rn,{key:4,places:a.panelPlaces,title:a.panelTitle,onSelectPlace:t(m)},null,8,["places","title","onSelectPlace"])):a.activeTab==="song"?(s(),U(hs,{key:5,songs:a.panelSongs,title:a.panelTitle,onSelectSong:t(_)},null,8,["songs","title","onSelectSong"])):a.activeTab==="magazine"?(s(),U(st,{key:6,sections:a.panelMagazineSections,"hero-image-url":a.panelMagazineHeroImage,title:a.panelTitle,query:a.panelQuery},null,8,["sections","hero-image-url","title","query"])):a.activeTab==="news"?(s(),U(nt,{key:7,articles:a.panelWebResults,title:a.panelTitle,query:a.panelQuery},null,8,["articles","title","query"])):a.activeTab==="websites"?(s(),U(nt,{key:8,articles:a.panelWebsites,title:a.panelTitle,variant:"websites"},null,8,["articles","title"])):a.activeTab==="podcast"?(s(),U(ol,{key:9,podcasts:a.panelPodcasts,title:a.panelTitle,onSelectPodcast:t($)},null,8,["podcasts","title","onSelectPodcast"])):a.activeTab==="recipe"?(s(),U(Ol,{key:10,recipes:a.panelRecipes,title:a.panelTitle,onSelectRecipe:t(b)},null,8,["recipes","title","onSelectRecipe"])):a.activeTab==="app"?(s(),U(lo,{key:11,apps:a.panelApps,title:a.panelTitle,onSelectApp:t(d)},null,8,["apps","title","onSelectApp"])):a.activeTab==="code"?(s(),U(Co,{key:12,"is-wide-desktop":a.isWideDesktop,"is-mobile":a.isMobile},null,8,["is-wide-desktop","is-mobile"])):a.activeTab==="design-system"?(s(),U(Ro,{key:13})):a.activeTab==="nostr"?(s(),U(sc,{key:14})):a.activeTab==="prompt"?(s(),U(st,{key:15,sections:l.value,"hero-image-url":null,title:"Prompt",query:a.panelQuery},null,8,["sections","query"])):f("",!0)]))}}),lc={class:"book-detail h-full overflow-y-auto overflow-x-hidden scrollbar-hide"},oc={class:"relative w-full overflow-hidden"},ac={class:"w-full aspect-[16/7] flex items-center justify-center overflow-hidden bg-black/20"},ic=["src","alt"],rc={class:"absolute bottom-0 left-0 right-0 p-4"},cc={class:"text-lg font-bold text-white"},dc={class:"flex flex-wrap items-center gap-x-2 gap-y-0.5 mt-1 text-xs text-white/60"},uc={key:0},hc={key:1},xc={key:2,class:"text-amber-400"},pc={class:"p-4 space-y-4"},gc={key:1,class:"flex flex-wrap gap-1.5"},bc={class:"space-y-2"},vc=["href"],fc={class:"flex items-center gap-2.5"},mc={class:"text-sm"},wc=["href"],yc={class:"flex items-center gap-2.5"},kc={class:"text-sm"},$c=G({__name:"BookDetail",props:{book:{}},emits:["back"],setup(a){const c=a,{isDark:l}=Z(),{bannerSrc:w,fallbackGradient:g,onBannerError:v}=bt({primaryUrls:()=>[c.book.coverUrl],apiFetch:async()=>({posterUrl:await rt(c.book.title,c.book.author),backdropUrl:null}),title:()=>c.book.title,gradientSeed:()=>c.book.title+(c.book.author??"")}),x=B(()=>`${c.book.title} ${c.book.author}`.trim().replace(/\s+/g,"+")),m=B(()=>[{name:"Open Library",url:`https://openlibrary.org/search?q=${x.value}`,icon:"📖",desc:"Free, open catalog"},{name:"Internet Archive",url:`https://archive.org/search?query=${x.value}`,icon:"🏛️",desc:"Borrow & read free"},{name:"Project Gutenberg",url:`https://www.gutenberg.org/ebooks/search/?query=${x.value}`,icon:"📜",desc:"Public domain"},{name:"Standard Ebooks",url:`https://standardebooks.org/ebooks?query=${x.value}`,icon:"📕",desc:"Beautifully formatted"}]);function _($){return{openlibrary:"📖",gutenberg:"📜",archive:"🏛️",goodreads:"📚",libgen:"🔓",local:"💾"}[$]??"📚"}return($,b)=>(s(),n("div",lc,[e("div",oc,[e("div",ac,[t(w)?(s(),n("img",{key:0,src:t(w),alt:a.book.title,class:"w-full h-full object-cover object-center block",onError:b[0]||(b[0]=(...d)=>t(v)&&t(v)(...d))},null,40,ic)):(s(),n("div",{key:1,class:"w-full h-full",style:q({background:t(g)})},null,4))]),b[3]||(b[3]=e("div",{class:"absolute inset-0 bg-gradient-to-t from-black/80 via-black/30 to-transparent pointer-events-none"},null,-1)),e("button",{class:"absolute top-3 left-3 min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg path-glass-icon z-10 transition-colors hover:bg-white/10",onClick:b[1]||(b[1]=d=>$.$emit("back"))},[...b[2]||(b[2]=[e("svg",{class:"w-4 h-4 text-white/90",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),e("div",rc,[e("h2",cc,u(a.book.title),1),e("div",dc,[e("span",null,u(a.book.author),1),a.book.year?(s(),n("span",uc,u(a.book.year),1)):f("",!0),a.book.pages?(s(),n("span",hc,u(a.book.pages)+" pages",1)):f("",!0),a.book.rating?(s(),n("span",xc,"★ "+u(a.book.rating.toFixed(1)),1)):f("",!0)])])]),e("div",pc,[a.book.description?(s(),n("p",{key:0,class:i(["text-sm leading-relaxed",t(l)?"text-white/70":"text-gray-600"])},u(a.book.description),3)):f("",!0),a.book.genres?.length?(s(),n("div",gc,[(s(!0),n(I,null,P(a.book.genres,d=>(s(),n("span",{key:d,class:i(["text-xs px-2 py-1 rounded-md font-medium",t(l)?"bg-white/10 text-white/60":"bg-black/5 text-gray-600"])},u(d),3))),128))])):f("",!0),e("div",null,[e("h4",{class:i(["text-xs font-semibold mb-2",t(l)?"text-white/50":"text-gray-500"])},"Read on",2),e("div",bc,[(s(!0),n(I,null,P(a.book.sources??[],d=>(s(),n("a",{key:d.url,href:d.url,target:"_blank",rel:"noopener",class:i(["flex items-center justify-between p-3 rounded-xl transition-colors",t(l)?"bg-white/5 hover:bg-white/10":"bg-black/3 hover:bg-black/5"])},[e("div",fc,[e("span",mc,u(_(d.type)),1),e("p",{class:i(["text-xs font-medium",t(l)?"text-white/80":"text-gray-800"])},u(d.name),3)]),(s(),n("svg",{class:i(["w-4 h-4",t(l)?"text-white/30":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...b[4]||(b[4]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"},null,-1)])],2))],10,vc))),128)),(s(!0),n(I,null,P(m.value,d=>(s(),n("a",{key:d.url,href:d.url,target:"_blank",rel:"noopener",class:i(["flex items-center justify-between p-3 rounded-xl transition-colors",t(l)?"bg-white/5 hover:bg-white/10":"bg-black/3 hover:bg-black/5"])},[e("div",yc,[e("span",kc,u(d.icon),1),e("div",null,[e("p",{class:i(["text-xs font-medium",t(l)?"text-white/80":"text-gray-800"])},u(d.name),3),d.desc?(s(),n("p",{key:0,class:i(["text-xs",t(l)?"text-white/30":"text-gray-400"])},u(d.desc),3)):f("",!0)])]),(s(),n("svg",{class:i(["w-4 h-4",t(l)?"text-white/30":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...b[5]||(b[5]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"},null,-1)])],2))],10,wc))),128))])])])]))}}),_c={class:"tv-detail h-full overflow-y-auto overflow-x-hidden scrollbar-hide"},Cc={class:"relative w-full overflow-hidden"},jc={class:"w-full aspect-[16/7] flex items-center justify-center overflow-hidden bg-black/20"},Sc=["src","alt"],Mc={class:"absolute bottom-0 left-0 right-0 p-4"},Tc={class:"text-lg font-bold text-white"},Dc={class:"flex flex-wrap items-center gap-x-2 gap-y-0.5 mt-1 text-xs text-white/60"},Ic={key:0},Bc={key:1},Lc={key:2},Pc={key:3},Nc={key:4,class:"text-amber-400"},Ac={key:5,class:"text-emerald-400"},zc={key:6,class:"text-white/40"},Ec={class:"p-4 space-y-4"},Fc={key:3,class:"flex flex-wrap gap-1.5"},Rc={class:"space-y-2"},Vc=["href"],Uc={class:"flex items-center gap-2.5"},qc={class:"text-sm"},Gc=["href"],Oc={class:"flex items-center gap-2.5"},Hc={class:"text-sm"},Wc=G({__name:"TVSeriesDetail",props:{series:{}},emits:["back"],setup(a){const c=a,{isDark:l}=Z(),{bannerSrc:w,fallbackGradient:g,onBannerError:v}=bt({primaryUrls:()=>[c.series.posterUrl,c.series.backdropUrl],apiFetch:()=>ct(c.series.title,c.series.year),title:()=>c.series.title}),x=B(()=>c.series.year?c.series.endYear&&c.series.endYear!==c.series.year?`${c.series.year}–${c.series.endYear}`:c.series.status==="ongoing"?`${c.series.year}–`:String(c.series.year):""),m=B(()=>c.series.title.trim().replace(/\s+/g,"+")),_=B(()=>(c.series.sources??[]).length>0?[]:[{name:"Internet Archive",url:`https://archive.org/search?query=${m.value}`,icon:"🏛️",desc:"Free, open archive"},{name:"YouTube",url:`https://youtube.com/results?search_query=${m.value}+full+series`,icon:"▶️",desc:"Free episodes"},{name:"Odysee",url:`https://odysee.com/$/search?q=${m.value}`,icon:"🔗",desc:"Decentralized"},{name:"Tubi",url:`https://tubitv.com/search/${m.value}`,icon:"📺",desc:"Free streaming"}]);function $(b){return{plex:"🟠",nextcloud:"☁️",youtube:"▶️",netflix:"🔴","free-web":"🌐",local:"💾"}[b]??"📺"}return(b,d)=>(s(),n("div",_c,[e("div",Cc,[e("div",jc,[t(w)?(s(),n("img",{key:0,src:t(w),alt:a.series.title,class:"w-full h-full object-cover object-center block",onError:d[0]||(d[0]=(...o)=>t(v)&&t(v)(...o))},null,40,Sc)):(s(),n("div",{key:1,class:"w-full h-full",style:q({background:t(g)})},null,4))]),d[3]||(d[3]=e("div",{class:"absolute inset-0 bg-gradient-to-t from-black/80 via-black/30 to-transparent pointer-events-none"},null,-1)),e("button",{class:"absolute top-3 left-3 min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg path-glass-icon z-10 transition-colors hover:bg-white/10",onClick:d[1]||(d[1]=o=>b.$emit("back"))},[...d[2]||(d[2]=[e("svg",{class:"w-4 h-4 text-white/90",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),e("div",Mc,[e("h2",Tc,u(a.series.title),1),e("div",Dc,[x.value?(s(),n("span",Ic,u(x.value),1)):f("",!0),a.series.seasons?(s(),n("span",Bc,u(a.series.seasons)+" seasons",1)):f("",!0),a.series.episodes?(s(),n("span",Lc,u(a.series.episodes)+" episodes",1)):f("",!0),a.series.network?(s(),n("span",Pc,u(a.series.network),1)):f("",!0),a.series.rating?(s(),n("span",Nc,"★ "+u(a.series.rating.toFixed(1)),1)):f("",!0),a.series.status==="ongoing"?(s(),n("span",Ac,"ongoing")):a.series.status==="ended"?(s(),n("span",zc,"ended")):f("",!0)])])]),e("div",Ec,[a.series.synopsis?(s(),n("p",{key:0,class:i(["text-sm leading-relaxed",t(l)?"text-white/70":"text-gray-600"])},u(a.series.synopsis),3)):f("",!0),a.series.creator?(s(),n("div",{key:1,class:i(["text-xs",t(l)?"text-white/50":"text-gray-500"])},[d[4]||(d[4]=ne(" Created by ",-1)),e("span",{class:i(["font-medium",t(l)?"text-white/70":"text-gray-700"])},u(a.series.creator),3)],2)):f("",!0),a.series.cast?.length?(s(),n("div",{key:2,class:i(["text-xs",t(l)?"text-white/50":"text-gray-500"])}," Starring: "+u(a.series.cast.slice(0,5).join(", ")),3)):f("",!0),a.series.genres?.length?(s(),n("div",Fc,[(s(!0),n(I,null,P(a.series.genres,o=>(s(),n("span",{key:o,class:i(["text-xs px-2 py-1 rounded-md font-medium",t(l)?"bg-white/10 text-white/60":"bg-black/5 text-gray-600"])},u(o),3))),128))])):f("",!0),e("div",null,[e("h4",{class:i(["text-xs font-semibold mb-2",t(l)?"text-white/50":"text-gray-500"])},"Watch on",2),e("div",Rc,[(s(!0),n(I,null,P(a.series.sources??[],o=>(s(),n("a",{key:o.url,href:o.url,target:"_blank",rel:"noopener",class:i(["flex items-center justify-between p-3 rounded-xl transition-colors",t(l)?"bg-white/5 hover:bg-white/10":"bg-black/3 hover:bg-black/5"])},[e("div",Uc,[e("span",qc,u($(o.type)),1),e("p",{class:i(["text-xs font-medium",t(l)?"text-white/80":"text-gray-800"])},u(o.name),3)]),(s(),n("svg",{class:i(["w-4 h-4",t(l)?"text-white/30":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...d[5]||(d[5]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"},null,-1)])],2))],10,Vc))),128)),(s(!0),n(I,null,P(_.value,o=>(s(),n("a",{key:o.url,href:o.url,target:"_blank",rel:"noopener",class:i(["flex items-center justify-between p-3 rounded-xl transition-colors",t(l)?"bg-white/5 hover:bg-white/10":"bg-black/3 hover:bg-black/5"])},[e("div",Oc,[e("span",Hc,u(o.icon),1),e("div",null,[e("p",{class:i(["text-xs font-medium",t(l)?"text-white/80":"text-gray-800"])},u(o.name),3),o.desc?(s(),n("p",{key:0,class:i(["text-xs",t(l)?"text-white/30":"text-gray-400"])},u(o.desc),3)):f("",!0)])]),(s(),n("svg",{class:i(["w-4 h-4",t(l)?"text-white/30":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...d[6]||(d[6]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"},null,-1)])],2))],10,Gc))),128))])])])]))}}),Kc={class:"podcast-detail h-full overflow-y-auto overflow-x-hidden scrollbar-hide"},Yc={class:"relative w-full overflow-hidden"},Jc={class:"w-full aspect-[16/7] flex items-center justify-center overflow-hidden bg-black/20"},Qc=["src","alt"],Zc={class:"absolute bottom-0 left-0 right-0 p-4"},Xc={class:"text-lg font-bold text-white"},ed={class:"flex flex-wrap items-center gap-x-2 gap-y-0.5 mt-1 text-xs text-white/60"},td={key:0},sd={key:1},nd={key:2},ld={class:"p-4 space-y-4"},od={key:1,class:"flex flex-wrap gap-1.5"},ad={class:"space-y-2"},id=["href"],rd={class:"flex items-center gap-2.5"},cd={class:"text-sm"},dd=["href"],ud={class:"flex items-center gap-2.5"},hd={class:"text-sm"},xd=G({__name:"PodcastDetail",props:{podcast:{}},emits:["back"],setup(a){const c=a,{isDark:l}=Z(),w=S(!1),g=S(null),v=B(()=>w.value?null:c.podcast.coverUrl||g.value||null);oe(()=>{c.podcast.coverUrl||xt(c.podcast.title,c.podcast.host).then(b=>{b&&(g.value=b)})});const x=B(()=>ht(c.podcast.title,c.podcast.host)),m=B(()=>`${c.podcast.title} ${c.podcast.host??""}`.trim().replace(/\s+/g,"+")),_=B(()=>c.podcast.sources.length>0?[]:[{name:"Fountain",url:`https://fountain.fm/search?q=${m.value}`,icon:"⚡",desc:"Podcasting 2.0, Lightning"},{name:"Podcast Index",url:`https://podcastindex.org/search?q=${m.value}`,icon:"📻",desc:"Open podcast directory"},{name:"YouTube",url:`https://youtube.com/results?search_query=${m.value}`,icon:"▶️",desc:"Video podcasts"},{name:"Rumble",url:`https://rumble.com/search/video?q=${m.value}`,icon:"📺",desc:"Video & podcasts"},{name:"Odysee",url:`https://odysee.com/$/search?q=${m.value}`,icon:"🔗",desc:"Decentralized"}]);function $(b){return{fountain:"⚡",rumble:"📺",youtube:"▶️",podcastindex:"📻",castopod:"🦣",odysee:"🔗",podverse:"🎧",ipfs:"🌐",rss:"📡"}[b]??"🎙️"}return(b,d)=>(s(),n("div",Kc,[e("div",Yc,[e("div",Jc,[v.value?(s(),n("img",{key:0,src:v.value,alt:a.podcast.title,class:"w-full h-full object-cover object-center block",onError:d[0]||(d[0]=o=>w.value=!0)},null,40,Qc)):(s(),n("div",{key:1,class:"w-full h-full bg-cover bg-center",style:q({backgroundImage:`url(${x.value})`})},null,4))]),d[3]||(d[3]=e("div",{class:"absolute inset-0 bg-gradient-to-t from-black/80 via-black/30 to-transparent pointer-events-none"},null,-1)),e("button",{class:"absolute top-3 left-3 min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg path-glass-icon z-10 transition-colors hover:bg-white/10",onClick:d[1]||(d[1]=o=>b.$emit("back"))},[...d[2]||(d[2]=[e("svg",{class:"w-4 h-4 text-white/90",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),e("div",Zc,[e("h2",Xc,u(a.podcast.title),1),e("div",ed,[a.podcast.host?(s(),n("span",td,u(a.podcast.host),1)):f("",!0),a.podcast.year?(s(),n("span",sd,u(a.podcast.year),1)):f("",!0),a.podcast.episodeCount?(s(),n("span",nd,u(a.podcast.episodeCount)+" episodes",1)):f("",!0)])])]),e("div",ld,[a.podcast.description?(s(),n("p",{key:0,class:i(["text-sm leading-relaxed",t(l)?"text-white/70":"text-gray-600"])},u(a.podcast.description),3)):f("",!0),a.podcast.genres?.length?(s(),n("div",od,[(s(!0),n(I,null,P(a.podcast.genres,o=>(s(),n("span",{key:o,class:i(["text-xs px-2 py-1 rounded-md font-medium",t(l)?"bg-white/10 text-white/60":"bg-black/5 text-gray-600"])},u(o),3))),128))])):f("",!0),e("div",null,[e("h4",{class:i(["text-xs font-semibold mb-2",t(l)?"text-white/50":"text-gray-500"])},"Listen on",2),e("div",ad,[(s(!0),n(I,null,P(a.podcast.sources,o=>(s(),n("a",{key:o.url,href:o.url,target:"_blank",rel:"noopener",class:i(["flex items-center justify-between p-3 rounded-xl transition-colors",t(l)?"bg-white/5 hover:bg-white/10":"bg-black/3 hover:bg-black/5"])},[e("div",rd,[e("span",cd,u($(o.type)),1),e("p",{class:i(["text-xs font-medium",t(l)?"text-white/80":"text-gray-800"])},u(o.name),3)]),(s(),n("svg",{class:i(["w-4 h-4",t(l)?"text-white/30":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...d[4]||(d[4]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"},null,-1)])],2))],10,id))),128)),_.value.length?(s(!0),n(I,{key:0},P(_.value,o=>(s(),n("a",{key:o.url,href:o.url,target:"_blank",rel:"noopener",class:i(["flex items-center justify-between p-3 rounded-xl transition-colors",t(l)?"bg-white/5 hover:bg-white/10":"bg-black/3 hover:bg-black/5"])},[e("div",ud,[e("span",hd,u(o.icon),1),e("div",null,[e("p",{class:i(["text-xs font-medium",t(l)?"text-white/80":"text-gray-800"])},u(o.name),3),o.desc?(s(),n("p",{key:0,class:i(["text-xs",t(l)?"text-white/30":"text-gray-400"])},u(o.desc),3)):f("",!0)])]),(s(),n("svg",{class:i(["w-4 h-4",t(l)?"text-white/30":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...d[5]||(d[5]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"},null,-1)])],2))],10,dd))),128)):f("",!0)])])])]))}}),pd={class:"image-detail h-full overflow-y-auto overflow-x-hidden scrollbar-hide"},gd={class:"relative w-full overflow-hidden bg-black/20"},bd=["src","alt"],vd={class:"p-4 space-y-3"},fd={class:"pt-2"},md=["href"],wd=G({__name:"ImageDetail",props:{image:{}},emits:["back"],setup(a){const{isDark:c}=Z(),l=S(!1);return(w,g)=>(s(),n("div",pd,[e("div",gd,[l.value?(s(),n("div",{key:1,class:i(["w-full aspect-video flex items-center justify-center",t(c)?"bg-white/5":"bg-black/5"])},[(s(),n("svg",{class:i(["w-12 h-12",t(c)?"text-white/15":"text-gray-300"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...g[2]||(g[2]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"},null,-1)])],2))],2)):(s(),n("img",{key:0,src:a.image.url,alt:a.image.alt||a.image.title||"Image",class:"w-full block max-h-[60vh] object-contain bg-black/40",onError:g[0]||(g[0]=v=>l.value=!0)},null,40,bd)),e("button",{class:"absolute top-3 left-3 min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg path-glass-icon z-10 transition-colors hover:bg-white/10",onClick:g[1]||(g[1]=v=>w.$emit("back"))},[...g[3]||(g[3]=[e("svg",{class:"w-4 h-4 text-white/90",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])])]),e("div",vd,[a.image.title?(s(),n("h2",{key:0,class:i(["text-base font-bold",t(c)?"text-white/90":"text-gray-900"])},u(a.image.title),3)):f("",!0),a.image.description?(s(),n("p",{key:1,class:i(["text-sm leading-relaxed",t(c)?"text-white/70":"text-gray-600"])},u(a.image.description),3)):f("",!0),a.image.attribution?(s(),n("div",{key:2,class:i(["text-xs",t(c)?"text-white/50":"text-gray-500"])},u(a.image.attribution),3)):f("",!0),a.image.source?(s(),n("div",{key:3,class:i(["text-xs",t(c)?"text-white/40":"text-gray-400"])}," Source: "+u(a.image.source),3)):f("",!0),a.image.width&&a.image.height?(s(),n("div",{key:4,class:i(["text-xs",t(c)?"text-white/30":"text-gray-400"])},u(a.image.width)+" × "+u(a.image.height),3)):f("",!0),e("div",fd,[e("a",{href:a.image.url,target:"_blank",rel:"noopener",class:i(["inline-flex items-center gap-2 px-4 min-h-[44px] rounded-xl text-xs font-medium transition-colors",t(c)?"bg-white/5 hover:bg-white/10 text-white/80":"bg-black/3 hover:bg-black/5 text-gray-800"])},[...g[4]||(g[4]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1),ne(" Open original ",-1)])],10,md)])])]))}}),yd={class:"place-detail h-full overflow-y-auto overflow-x-hidden scrollbar-hide"},kd={class:"relative w-full overflow-hidden"},$d={class:"w-full aspect-[16/9] flex items-center justify-center overflow-hidden bg-black/20"},_d=["src","alt"],Cd=["src","alt"],jd={class:"absolute bottom-0 left-0 right-0 p-4"},Sd={class:"text-lg font-bold text-white"},Md={class:"flex flex-wrap items-center gap-x-2 gap-y-0.5 mt-1 text-xs text-white/60"},Td={key:0},Dd={key:1},Id={key:2,class:"text-amber-400"},Bd={key:3,class:"text-white/50"},Ld={class:"p-4 space-y-4"},Pd={key:1,class:"flex items-start gap-2.5"},Nd={key:2,class:"flex items-center gap-2.5"},Ad={key:3,class:"flex items-start gap-2.5"},zd={key:4,class:"flex items-center gap-2.5"},Ed=["href"],Fd={class:"space-y-2"},Rd=["href"],Vd={class:"flex items-center gap-2.5"},Ud={class:"text-sm"},qd=["href"],Gd={class:"flex items-center gap-2.5"},Od={class:"text-sm"},Hd=G({__name:"PlaceDetail",props:{place:{}},emits:["back"],setup(a){const c=a,{isDark:l}=Z(),w=S(null),g=B(()=>dt(c.place.name,c.place.cuisine||c.place.category));oe(()=>{c.place.photoUrl||ut(c.place.name,c.place.city).then($=>{$&&(w.value=$)})});const v=B(()=>{if(!c.place.website)return"";try{return new URL(c.place.website).hostname.replace(/^www\./,"")}catch{return c.place.website}}),x=B(()=>`${c.place.name} ${c.place.city??""}`.trim().replace(/\s+/g,"+")),m=B(()=>{if((c.place.sources??[]).length>0)return[];const $=[{name:"OpenStreetMap",url:`https://www.openstreetmap.org/search?query=${x.value}`,icon:"🗺️",desc:"Open source maps"},{name:"Google Maps",url:`https://www.google.com/maps/search/${x.value}`,icon:"📍",desc:"Directions & reviews"}];return c.place.lat&&c.place.lng&&($.unshift({name:"OpenStreetMap",url:`https://www.openstreetmap.org/?mlat=${c.place.lat}&mlon=${c.place.lng}#map=17/${c.place.lat}/${c.place.lng}`,icon:"🗺️",desc:"Open source maps"}),$.splice(2)),$});function _($){return{gmaps:"📍",osm:"🗺️",yelp:"⭐",tripadvisor:"🦉",foursquare:"📌",local:"💾"}[$]??"📍"}return($,b)=>(s(),n("div",yd,[e("div",kd,[e("div",$d,[a.place.photoUrl||w.value?(s(),n("img",{key:0,src:a.place.photoUrl||w.value,alt:a.place.name,class:"w-full h-full object-cover object-center block"},null,8,_d)):(s(),n("img",{key:1,src:g.value,alt:a.place.name,class:"w-full h-full object-cover"},null,8,Cd))]),b[2]||(b[2]=e("div",{class:"absolute inset-0 bg-gradient-to-t from-black/80 via-black/30 to-transparent pointer-events-none"},null,-1)),e("button",{class:"absolute top-3 left-3 min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg path-glass-icon z-10 transition-colors hover:bg-white/10",onClick:b[0]||(b[0]=d=>$.$emit("back"))},[...b[1]||(b[1]=[e("svg",{class:"w-4 h-4 text-white/90",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),e("div",jd,[e("h2",Sd,u(a.place.name),1),e("div",Md,[a.place.cuisine||a.place.category?(s(),n("span",Td,u(a.place.cuisine||a.place.category),1)):f("",!0),a.place.city?(s(),n("span",Dd,u(a.place.city),1)):f("",!0),a.place.rating?(s(),n("span",Id,"★ "+u(a.place.rating.toFixed(1)),1)):f("",!0),a.place.priceLevel?(s(),n("span",Bd,u("$".repeat(a.place.priceLevel)),1)):f("",!0)])])]),e("div",Ld,[a.place.description?(s(),n("p",{key:0,class:i(["text-sm leading-relaxed",t(l)?"text-white/70":"text-gray-600"])},u(a.place.description),3)):f("",!0),a.place.address?(s(),n("div",Pd,[(s(),n("svg",{class:i(["w-4 h-4 shrink-0 mt-0.5",t(l)?"text-white/30":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...b[3]||(b[3]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z"},null,-1),e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 11a3 3 0 11-6 0 3 3 0 016 0z"},null,-1)])],2)),e("span",{class:i(["text-xs",t(l)?"text-white/60":"text-gray-600"])},u(a.place.address),3)])):f("",!0),a.place.phone?(s(),n("div",Nd,[(s(),n("svg",{class:i(["w-4 h-4 shrink-0",t(l)?"text-white/30":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...b[4]||(b[4]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M3 5a2 2 0 012-2h3.28a1 1 0 01.948.684l1.498 4.493a1 1 0 01-.502 1.21l-2.257 1.13a11.042 11.042 0 005.516 5.516l1.13-2.257a1 1 0 011.21-.502l4.493 1.498a1 1 0 01.684.949V19a2 2 0 01-2 2h-1C9.716 21 3 14.284 3 6V5z"},null,-1)])],2)),e("span",{class:i(["text-xs",t(l)?"text-white/60":"text-gray-600"])},u(a.place.phone),3)])):f("",!0),a.place.hours?(s(),n("div",Ad,[(s(),n("svg",{class:i(["w-4 h-4 shrink-0 mt-0.5",t(l)?"text-white/30":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...b[5]||(b[5]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"},null,-1)])],2)),e("span",{class:i(["text-xs",t(l)?"text-white/60":"text-gray-600"])},u(a.place.hours),3)])):f("",!0),a.place.website?(s(),n("div",zd,[(s(),n("svg",{class:i(["w-4 h-4 shrink-0",t(l)?"text-white/30":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...b[6]||(b[6]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 12a9 9 0 01-9 9m9-9a9 9 0 00-9-9m9 9H3m9 9a9 9 0 01-9-9m9 9c1.657 0 3-4.03 3-9s-1.343-9-3-9m0 18c-1.657 0-3-4.03-3-9s1.343-9 3-9m-9 9a9 9 0 019-9"},null,-1)])],2)),e("a",{href:a.place.website,target:"_blank",rel:"noopener",class:i(["text-xs underline underline-offset-2",t(l)?"text-white/60 hover:text-white/80":"text-gray-600 hover:text-gray-800"])},u(v.value),11,Ed)])):f("",!0),e("div",null,[e("h4",{class:i(["text-xs font-semibold mb-2",t(l)?"text-white/50":"text-gray-500"])},"Find on",2),e("div",Fd,[(s(!0),n(I,null,P(a.place.sources??[],d=>(s(),n("a",{key:d.url,href:d.url,target:"_blank",rel:"noopener",class:i(["flex items-center justify-between p-3 rounded-xl transition-colors",t(l)?"bg-white/5 hover:bg-white/10":"bg-black/3 hover:bg-black/5"])},[e("div",Vd,[e("span",Ud,u(_(d.type)),1),e("p",{class:i(["text-xs font-medium",t(l)?"text-white/80":"text-gray-800"])},u(d.name),3)]),(s(),n("svg",{class:i(["w-4 h-4",t(l)?"text-white/30":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...b[7]||(b[7]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"},null,-1)])],2))],10,Rd))),128)),(s(!0),n(I,null,P(m.value,d=>(s(),n("a",{key:d.url,href:d.url,target:"_blank",rel:"noopener",class:i(["flex items-center justify-between p-3 rounded-xl transition-colors",t(l)?"bg-white/5 hover:bg-white/10":"bg-black/3 hover:bg-black/5"])},[e("div",Gd,[e("span",Od,u(d.icon),1),e("div",null,[e("p",{class:i(["text-xs font-medium",t(l)?"text-white/80":"text-gray-800"])},u(d.name),3),d.desc?(s(),n("p",{key:0,class:i(["text-xs",t(l)?"text-white/30":"text-gray-400"])},u(d.desc),3)):f("",!0)])]),(s(),n("svg",{class:i(["w-4 h-4",t(l)?"text-white/30":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...b[8]||(b[8]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"},null,-1)])],2))],10,qd))),128))])])])]))}}),Wd={class:"article-detail h-full overflow-y-auto overflow-x-hidden scrollbar-hide"},Kd={class:"relative w-full overflow-hidden aspect-[16/7] shrink-0"},Yd=["src","alt"],Jd={class:"absolute bottom-0 left-0 right-0 p-4"},Qd={class:"text-lg font-bold text-white"},Zd={key:0,class:"text-xs text-white/60 mt-1"},Xd={class:"p-4 space-y-4"},eu={key:0,class:"text-white/90 [&_p]:mb-3 [&_ul]:list-disc [&_ol]:list-decimal [&_li]:ml-4 [&_a]:underline [&_a]:underline-offset-2 [&_h1]:text-lg [&_h2]:text-base [&_h3]:text-sm [&_blockquote]:border-l-2 [&_blockquote]:pl-3 [&_blockquote]:italic"},tu=["innerHTML"],su={key:1,class:"py-4"},nu=["href"],lu=G({__name:"ArticleDetail",props:{article:{}},emits:["back"],setup(a){const c=a,l=B(()=>{const v=c.article?.url;if(!v||typeof v!="string")return"";try{const x=new URL(v);return/^https?:$/i.test(x.protocol)?x.hostname.replace(/^www\./,""):""}catch{return""}}),w=B(()=>{const v=[...c.article.title].reduce((x,m)=>x+m.charCodeAt(0),0)%360;return`linear-gradient(135deg, hsl(${v}, 25%, 12%) 0%, hsl(${(v+40)%360}, 20%, 8%) 100%)`}),g=B(()=>{const v=c.article.content;return v?/<[a-z][\s\S]*>/i.test(v)?ts(v):`<p class="whitespace-pre-wrap">${ss(v)}</p>`:""});return(v,x)=>(s(),n("div",Wd,[e("div",Kd,[a.article.imgSrc&&t(es)(a.article.imgSrc)?(s(),n("img",{key:0,src:a.article.imgSrc,alt:a.article.title,class:"absolute inset-0 w-full h-full object-cover object-center block"},null,8,Yd)):(s(),n("div",{key:1,class:"absolute inset-0",style:q({background:w.value})},null,4)),x[2]||(x[2]=e("div",{class:"absolute inset-0 bg-gradient-to-t from-black/80 via-black/30 to-transparent pointer-events-none"},null,-1)),e("button",{class:"absolute top-3 left-3 p-2 rounded-lg path-glass-icon z-10 transition-colors hover:bg-white/10 text-white/80",onClick:x[0]||(x[0]=m=>v.$emit("back"))},[...x[1]||(x[1]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),e("div",Jd,[e("h2",Qd,u(a.article.title),1),l.value?(s(),n("p",Zd,u(l.value),1)):f("",!0)])]),e("div",Xd,[a.article.content?(s(),n("article",eu,[e("div",{innerHTML:g.value},null,8,tu)])):(s(),n("div",su,[...x[3]||(x[3]=[e("p",{class:"text-sm text-white/50"}," Full article content is not available. Open the link below to read on the source site. ",-1)])])),a.article.url?(s(),n("a",{key:2,href:a.article.url,target:"_blank",rel:"noopener noreferrer",class:"inline-flex items-center gap-2 p-3 rounded-xl transition-colors bg-white/10 hover:bg-white/15 text-white/90"},[...x[4]||(x[4]=[e("svg",{class:"w-4 h-4 shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1),ne(" Read full article ",-1)])],8,nu)):f("",!0)])]))}}),ou={class:"website-detail h-full flex flex-col overflow-hidden"},au={class:"flex-1 min-w-0 pl-8"},iu=["href"],ru={class:"flex-1 min-h-0 relative bg-black/20"},cu=["src"],du=G({__name:"WebsiteDetail",props:{website:{}},emits:["back"],setup(a){const c=a,{isDark:l}=Z(),w=B(()=>{if(!c.website.url)return"";try{return new URL(c.website.url).hostname.replace(/^www\./,"")}catch{return""}});return(g,v)=>(s(),n("div",ou,[e("div",{class:"shrink-0 flex items-center gap-2 px-3 py-2.5",style:q(t(l)?"border-bottom: 1px solid rgba(255, 255, 255, 0.08)":"border-bottom: 1px solid rgba(0, 0, 0, 0.06)")},[e("button",{class:"absolute top-3 left-3 p-2 rounded-lg path-glass-icon z-10 transition-colors hover:bg-white/10",onClick:v[0]||(v[0]=x=>g.$emit("back"))},[...v[2]||(v[2]=[e("svg",{class:"w-4 h-4 text-white/90",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])]),e("div",au,[e("p",{class:i(["text-sm font-medium truncate",t(l)?"text-white/90":"text-gray-900"])},u(a.website.title||"Website"),3),w.value?(s(),n("p",{key:0,class:i(["text-xs truncate",t(l)?"text-white/30":"text-gray-400"])},u(w.value),3)):f("",!0)]),e("a",{href:a.website.url,target:"_blank",rel:"noopener noreferrer",class:i(["flex items-center justify-center w-8 h-8 rounded-lg transition-colors shrink-0",t(l)?"hover:bg-white/10 text-white/50":"hover:bg-black/5 text-gray-400"]),"aria-label":"Open in new tab",title:"Open in new tab",onClick:v[1]||(v[1]=xe(()=>{},["stop"]))},[...v[3]||(v[3]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1)])],10,iu)],4),e("div",ru,[(s(),n("iframe",{key:a.website.url,src:a.website.url,class:"absolute inset-0 w-full h-full border-0",style:{"-ms-overflow-style":"none","scrollbar-width":"none"},title:"Website content"},null,8,cu))])]))}}),uu=De(du,[["__scopeId","data-v-0f5111f5"]]),hu={class:"flex-1 text-center pl-8"},xu={class:"flex-1 min-h-0 overflow-y-auto custom-scrollbar flex flex-col"},pu={class:"px-6 py-8 md:px-8 md:py-10 max-w-lg mx-auto my-auto"},gu={class:"space-y-4"},bu=["href"],vu={class:"flex items-center gap-1"},fu=G({__name:"MagazineSectionDetail",props:{section:{},currentIndex:{},totalSections:{}},emits:["back","navigate"],setup(a){const c=a,{isDark:l}=Z(),w=B(()=>c.section.content.replace(/\[([^\]]*)\]\([^)]+\)/g,"$1").replace(/https?:\/\/\S+/g,"").replace(/\uFE0F/g,"").replace(/\*\*/g,"").replace(/\*([^*\n]+)\*/g,"$1").replace(new RegExp("(?:^|(?<=\\s))[\\p{Emoji_Presentation}\\p{Extended_Pictographic}]+\\s*","gu"),"").replace(/---+/g,"").replace(/^#+\s*/gm,"").replace(/\|/g,", ").replace(/,\s*,+/g,",").split(/\n{2,}|\n\s*[-•]\s+/).map(v=>v.replace(/^\s*[-•]\s+/,"").replace(/(^|\n)\s*,\s*/g,"$1").trim()).filter(v=>v.length>0));return(g,v)=>(s(),n("div",{class:i(["magazine-section-detail h-full flex flex-col overflow-hidden",t(l)?"bg-[#0a0a0a]":"bg-[#faf9f6]"]),style:{"font-family":"Georgia, 'Times New Roman', Times, serif"}},[e("div",{class:"shrink-0 flex items-center justify-between px-4 py-3",style:q(t(l)?"border-bottom: 1px solid rgba(255, 255, 255, 0.08)":"border-bottom: 1px solid rgba(0, 0, 0, 0.06)")},[e("button",{class:"absolute top-3 left-3 min-w-[44px] min-h-[44px] flex items-center justify-center rounded-lg path-glass-icon z-10 transition-colors hover:bg-white/10",onClick:v[0]||(v[0]=x=>g.$emit("back"))},[(s(),n("svg",{class:i(["w-4 h-4",t(l)?"text-white/70":"text-gray-600"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...v[3]||(v[3]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"},null,-1)])],2))]),e("div",hu,[e("span",{class:i(["text-xs uppercase tracking-[0.3em] font-semibold",t(l)?"text-white/30":"text-black/30"])}," AI Brief ",2)]),e("span",{class:i(["text-xs font-mono tabular-nums shrink-0",t(l)?"text-white/25":"text-black/25"])},u(a.currentIndex+1)+"/"+u(a.totalSections),3)],4),e("div",xu,[e("div",pu,[a.section.group?(s(),n("p",{key:0,class:i(["text-xs uppercase tracking-[0.3em] font-semibold mb-4",t(l)?"text-white/25":"text-black/30"])},u(a.section.group),3)):f("",!0),e("h2",{class:i(["text-2xl md:text-3xl font-bold leading-tight mb-4",t(l)?"text-white/95":"text-black/90"])},u(a.section.title),3),a.section.author?(s(),n("p",{key:1,class:i(["text-xs mb-6",t(l)?"text-white/40":"text-black/40"])}," By "+u(a.section.author),3)):f("",!0),e("div",{class:i(["w-12 h-px mb-6",t(l)?"bg-white/15":"bg-black/15"])},null,2),e("div",gu,[(s(!0),n(I,null,P(w.value,(x,m)=>(s(),n("p",{key:m,class:i(["text-base md:text-lg leading-relaxed",t(l)?"text-white/75":"text-black/65"])},u(x),3))),128))]),a.section.url?(s(),n("a",{key:2,href:a.section.url,target:"_blank",rel:"noopener noreferrer",class:i(["inline-flex items-center gap-2 mt-6 min-h-[44px] text-xs transition-colors",t(l)?"text-white/40 hover:text-white/70":"text-black/40 hover:text-black/70"])},[...v[4]||(v[4]=[e("svg",{class:"w-3.5 h-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"})],-1),ne(" Source ",-1)])],10,bu)):f("",!0)])]),e("div",{class:"shrink-0 flex items-center justify-between px-4 py-3",style:q(t(l)?"border-top: 1px solid rgba(255, 255, 255, 0.08)":"border-top: 1px solid rgba(0, 0, 0, 0.06)")},[e("button",{class:i(["flex items-center gap-1.5 px-3 min-h-[44px] rounded-lg text-xs transition-colors",t(l)?"text-white/50 hover:text-white/80 hover:bg-white/5":"text-black/40 hover:text-black/70 hover:bg-black/5"]),onClick:v[1]||(v[1]=x=>g.$emit("navigate","prev"))},[...v[5]||(v[5]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1),ne(" Prev ",-1)])],2),e("div",vu,[(s(!0),n(I,null,P(a.totalSections,x=>(s(),n("div",{key:x,class:i(["w-1.5 h-1.5 rounded-full transition-all duration-200",x-1===a.currentIndex?t(l)?"bg-white/70 scale-125":"bg-black/60 scale-125":t(l)?"bg-white/15":"bg-black/15"])},null,2))),128))]),e("button",{class:i(["flex items-center gap-1.5 px-3 min-h-[44px] rounded-lg text-xs transition-colors",t(l)?"text-white/50 hover:text-white/80 hover:bg-white/5":"text-black/40 hover:text-black/70 hover:bg-black/5"]),onClick:v[2]||(v[2]=x=>g.$emit("navigate","next"))},[...v[6]||(v[6]=[ne(" Next ",-1),e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"})],-1)])],2)],4)],2))}}),mu={class:"flex-1 min-w-0 pl-8"},wu={class:"flex items-center gap-2"},yu={class:"flex-1 min-h-0 overflow-auto custom-scrollbar"},ku={key:0,class:"font-mono text-xs leading-relaxed"},$u={class:"w-full border-collapse"},_u={key:1,class:"flex items-center justify-center h-full"},Cu={class:"text-center space-y-3 px-6"},ju=G({__name:"CodeDetail",emits:["back"],setup(a){const{isDark:c}=Z(),{activeFile:l,activeFileContent:w,activeFileLanguage:g,activeProject:v}=pe(),x=B(()=>w.value),m=B(()=>g.value),_=B(()=>l.value??""),$=B(()=>_.value.split("/").pop()??""),b=B(()=>v.value?.name??""),d=B(()=>x.value?x.value.split(`
|
||
`):[]);return(o,r)=>(s(),n("div",{class:i(["code-detail h-full flex flex-col overflow-hidden",t(c)?"bg-[#1a1a2e]":"bg-[#fafafa]"])},[e("div",{class:"shrink-0 flex items-center gap-2 px-3 py-2",style:q(t(c)?"border-bottom: 1px solid rgba(255, 255, 255, 0.08)":"border-bottom: 1px solid rgba(0, 0, 0, 0.06)")},[e("button",{class:"absolute top-3 left-3 p-2 rounded-lg path-glass-icon z-10 transition-colors hover:bg-white/10",onClick:r[0]||(r[0]=h=>o.$emit("back"))},[(s(),n("svg",{class:i(["w-4 h-4",t(c)?"text-white/70":"text-gray-600"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...r[1]||(r[1]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"},null,-1)])],2))]),e("div",mu,[e("div",wu,[e("span",{class:i(["shrink-0 text-xs px-1.5 py-0.5 rounded font-mono",t(c)?"bg-white/10 text-white/50":"bg-black/5 text-gray-500"])},u(m.value),3),e("p",{class:i(["text-xs font-mono truncate",t(c)?"text-white/70":"text-gray-700"])},u($.value),3)]),b.value?(s(),n("p",{key:0,class:i(["text-xs font-mono mt-0.5 truncate",t(c)?"text-white/25":"text-gray-400"])},u(b.value)+" / "+u(_.value),3)):f("",!0)])],4),e("div",yu,[x.value?(s(),n("div",ku,[e("table",$u,[e("tbody",null,[(s(!0),n(I,null,P(d.value,(h,M)=>(s(),n("tr",{key:M,class:"hover:bg-white/[0.03]"},[e("td",{class:i(["select-none text-right pr-4 pl-4 py-0 align-top w-1",t(c)?"text-white/15":"text-gray-300"]),style:{"min-width":"3rem"}},u(M+1),3),e("td",{class:i(["pr-4 py-0 whitespace-pre",t(c)?"text-white/75":"text-gray-700"])},u(h),3)]))),128))])])])):(s(),n("div",_u,[e("div",Cu,[e("div",{class:i(["w-16 h-16 rounded-2xl flex items-center justify-center mx-auto",t(c)?"bg-white/5":"bg-black/5"])},[(s(),n("svg",{class:i(["w-7 h-7",t(c)?"text-white/20":"text-gray-300"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...r[2]||(r[2]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"},null,-1)])],2))],2),e("p",{class:i(["text-xs",t(c)?"text-white/30":"text-gray-400"])}," Select a file to view its contents. ",2)])]))])],2))}}),Su=De(ju,[["__scopeId","data-v-7f40c0bc"]]),Mu={class:"h-full overflow-y-auto overflow-x-hidden scrollbar-hide"},Tu={class:"min-w-0 flex-1"},Du={class:"p-4 space-y-4"},Iu={key:0,class:"space-y-2"},Bu={key:1,class:"space-y-2"},Lu={key:2,class:"flex items-end gap-2"},Pu={key:0,class:"text-[7px] text-accent font-mono"},Nu={key:3,class:"space-y-2"},Au={key:0,class:"flex gap-3"},zu={key:1,class:"flex gap-3"},Eu={key:2,class:"flex gap-3"},Fu={key:3,class:"flex flex-wrap gap-1.5"},Ru={key:4},Vu={class:"glass-card p-4"},Uu={key:5,class:"flex gap-1.5"},qu={key:6},Gu={key:7,class:"space-y-2"},Ou={key:8},Hu={key:9,class:"space-y-1.5"},Wu={class:"flex items-center gap-2.5"},Ku={key:10},Yu={key:11,class:"flex gap-2"},Ju={class:"absolute bottom-0 left-0 right-0 p-1.5"},Qu={class:"text-xs text-white/80 font-medium truncate"},Zu={key:12,class:"space-y-2"},Xu={class:"flex justify-end"},e0={class:"flex justify-start"},t0={key:13,class:"space-y-2"},s0={class:"grid grid-cols-3 gap-1"},n0={key:14,class:"space-y-2"},l0={class:"space-y-1 px-1"},o0={key:15},a0={key:16},i0={class:"flex items-start gap-2.5"},r0={class:"min-w-0 flex-1"},c0={class:"flex items-center gap-1.5"},d0={class:"flex gap-3 mt-1.5"},u0={key:17,class:"flex flex-col items-center gap-2"},h0={key:18,class:"flex flex-col items-center gap-2"},x0={key:19,class:"text-center py-4"},p0={key:0},g0=G({__name:"DesignSystemDetail",props:{item:{}},emits:["back"],setup(a){const c=a,{isDark:l}=Z(),w=S(!1),g=S(0),v=S(0),x={colors:"Colors",typography:"Typography",spacing:"Spacing",atoms:"Atoms",molecules:"Molecules",organisms:"Organisms"},m=B(()=>x[c.item.category]??c.item.category),_=B(()=>c.item.id==="type-mono"?{fontFamily:'Menlo, Monaco, "Courier New", monospace'}:c.item.id==="type-serif"?{fontFamily:'Georgia, "Times New Roman", Times, serif'}:{fontFamily:"Inter, system-ui, -apple-system, sans-serif"});function $(d){const o=/(?:background-color|color|background):\s*([^;]+)/i.exec(d);return o?o[1].trim():"#333"}async function b(){try{await navigator.clipboard.writeText(c.item.code),w.value=!0,setTimeout(()=>{w.value=!1},2e3)}catch{}}return(d,o)=>(s(),n("div",Mu,[e("div",{class:"shrink-0 px-4 py-3 flex items-center gap-3",style:q(t(l)?"border-bottom: 1px solid rgba(255, 255, 255, 0.08)":"border-bottom: 1px solid rgba(0, 0, 0, 0.06)")},[e("button",{class:i(["min-w-[44px] min-h-[44px] rounded-lg path-glass-icon flex items-center justify-center transition-colors shrink-0",t(l)?"hover:bg-white/10":"hover:bg-black/5"]),onClick:o[0]||(o[0]=r=>d.$emit("back"))},[(s(),n("svg",{class:i(["w-3.5 h-3.5",t(l)?"text-white/70":"text-gray-500"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...o[3]||(o[3]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"},null,-1)])],2))],2),e("div",Tu,[e("h2",{class:i(["text-sm font-semibold truncate",t(l)?"text-white/90":"text-gray-900"])},u(a.item.name),3),e("p",{class:i(["text-xs",t(l)?"text-white/40":"text-gray-400"])},u(m.value),3)]),e("button",{class:i(["text-xs px-2 py-1 rounded-md transition-colors",w.value?"bg-emerald-500/20 text-emerald-400":t(l)?"bg-white/5 text-white/50 hover:bg-white/10":"bg-black/5 text-gray-500 hover:bg-black/10"]),onClick:b},u(w.value?"Copied":"Copy"),3)],4),e("div",Du,[e("p",{class:i(["text-sm leading-relaxed",t(l)?"text-white/60":"text-gray-600"])},u(a.item.description),3),e("div",null,[e("h4",{class:i(["text-xs uppercase tracking-[0.2em] font-semibold mb-2",t(l)?"text-white/30":"text-gray-400"])}," Preview ",2),e("div",{class:i(["rounded-xl p-4 overflow-hidden",t(l)?"bg-white/[0.03] border border-white/10":"bg-black/[0.02] border border-black/10"])},[a.item.category==="colors"?(s(),n("div",Iu,[e("div",{class:i(["h-12 rounded-lg border",t(l)?"border-white/10":"border-black/10"]),style:q({background:$(a.item.code)})},null,6),e("p",{class:i(["text-xs font-mono text-center",t(l)?"text-white/40":"text-gray-400"])},u($(a.item.code)),3)])):a.item.category==="typography"?(s(),n("div",Bu,[e("p",{class:i(["text-2xl font-bold",t(l)?"text-white/90":"text-gray-900"]),style:q(_.value)}," Aa Bb Cc 123 ",6),e("p",{class:i(["text-sm",t(l)?"text-white/60":"text-gray-600"]),style:q(_.value)}," The quick brown fox jumps over the lazy dog. ",6)])):a.item.category==="spacing"?(s(),n("div",Lu,[(s(),n(I,null,P([4,8,12,16,20,24,32],(r,h)=>e("div",{key:h,class:"bg-accent/30 rounded-sm flex items-center justify-center",style:q({width:`${r}px`,height:`${r}px`})},[r>=16?(s(),n("span",Pu,u(r),1)):f("",!0)],4)),64))])):(s(),n("div",Nu,[a.item.id==="atom-glass-btn"?(s(),n("div",Au,[...o[4]||(o[4]=[e("button",{class:"glass-button text-sm"},"Action",-1),e("button",{class:"glass-button text-sm opacity-50 cursor-not-allowed"},"Disabled",-1)])])):a.item.id==="atom-glass-btn-sm"?(s(),n("div",zu,[...o[5]||(o[5]=[e("button",{class:"glass-button glass-button-sm text-xs"},"Small",-1),e("button",{class:"glass-button glass-button-sm text-xs opacity-50 cursor-not-allowed"},"Disabled",-1)])])):a.item.id==="atom-icon-btn"?(s(),n("div",Eu,[e("button",{class:i(["w-9 h-9 rounded-xl path-glass-icon flex items-center justify-center",t(l)?"text-white/70":"text-gray-500"])},[...o[6]||(o[6]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 4v16m8-8H4"})],-1)])],2),e("button",{class:i(["w-9 h-9 rounded-xl path-glass-icon flex items-center justify-center",t(l)?"text-white/70":"text-gray-500"])},[...o[7]||(o[7]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"})],-1)])],2),e("button",{class:i(["w-9 h-9 rounded-xl path-glass-icon flex items-center justify-center",t(l)?"text-white/70":"text-gray-500"])},[...o[8]||(o[8]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],2)])):a.item.id==="atom-badge"?(s(),n("div",Fu,[e("span",{class:i(["text-xs px-2 py-1 rounded-md font-medium",t(l)?"bg-white/10 text-white/60":"bg-black/5 text-gray-600"])},"Science Fiction",2),e("span",{class:i(["text-xs px-2 py-1 rounded-md font-medium",t(l)?"bg-white/10 text-white/60":"bg-black/5 text-gray-600"])},"Drama",2),e("span",{class:i(["text-xs px-2 py-1 rounded-md font-medium",t(l)?"bg-white/10 text-white/60":"bg-black/5 text-gray-600"])},"Thriller",2)])):a.item.id==="mol-glass-card"?(s(),n("div",Ru,[e("div",Vu,[e("h3",{class:i(["text-sm font-semibold mb-1",t(l)?"text-white/90":"text-gray-900"])},"Glass Card",2),e("p",{class:i(["text-xs",t(l)?"text-white/60":"text-gray-500"])},"Content with frosted glass background and subtle border.",2)])])):a.item.id==="atom-nav-tab"?(s(),n("div",Uu,[o[9]||(o[9]=e("button",{class:"text-xs px-2.5 py-1 rounded-md font-medium bg-accent/20 text-accent"},"Films",-1)),e("button",{class:i(["text-xs px-2.5 py-1 rounded-md font-medium",t(l)?"bg-white/5 text-white/50":"bg-black/5 text-gray-500"])},"Songs",2),e("button",{class:i(["text-xs px-2.5 py-1 rounded-md font-medium",t(l)?"bg-white/5 text-white/50":"bg-black/5 text-gray-500"])},"Podcasts",2)])):a.item.id==="atom-input"?(s(),n("div",qu,[e("input",{class:i(["w-full px-3 py-2 rounded-lg text-base outline-none transition-colors",t(l)?"bg-white/5 text-white/80 placeholder:text-white/25 focus:bg-white/10":"bg-black/5 text-gray-800 placeholder:text-gray-400 focus:bg-black/10"]),placeholder:"Search...",readonly:""},null,2)])):a.item.id==="atom-scrollbar"?(s(),n("div",Gu,[e("div",{class:i(["h-16 overflow-y-auto rounded-lg px-3 py-2",t(l)?"bg-white/5":"bg-black/5"]),style:{"scrollbar-width":"thin"}},[(s(),n(I,null,P(8,r=>e("p",{key:r,class:i(["text-xs py-0.5",t(l)?"text-white/40":"text-gray-400"])}," Scrollable content line "+u(r),3)),64))],2),e("p",{class:i(["text-xs text-center",t(l)?"text-white/30":"text-gray-400"])}," 4px wide, translucent thumb ",2)])):a.item.id==="mol-gradient-card"?(s(),n("div",Ou,[...o[10]||(o[10]=[e("div",{class:"gradient-card p-4 rounded-2xl"},[e("h3",{class:"text-sm font-semibold mb-1 text-white"},"Featured"),e("p",{class:"text-xs text-white/70"},"Gradient background card for highlights.")],-1)])])):a.item.id==="mol-source-link"?(s(),n("div",Hu,[e("div",{class:i(["flex items-center justify-between p-3 rounded-xl transition-colors",t(l)?"bg-white/5":"bg-black/5"])},[e("div",Wu,[o[11]||(o[11]=e("span",{class:"text-sm"},"🎬",-1)),e("div",null,[e("p",{class:i(["text-xs font-medium",t(l)?"text-white/80":"text-gray-800"])},"Netflix",2),e("p",{class:i(["text-xs",t(l)?"text-white/30":"text-gray-400"])},"Stream now",2)])]),(s(),n("svg",{class:i(["w-3.5 h-3.5",t(l)?"text-white/30":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...o[12]||(o[12]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"},null,-1)])],2))],2)])):a.item.id==="mol-banner-hero"?(s(),n("div",Ku,[...o[13]||(o[13]=[ns('<div class="relative w-full aspect-[16/7] rounded-lg overflow-hidden"><div class="absolute inset-0" style="background:linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);"></div><div class="absolute inset-0 bg-gradient-to-t from-black/80 via-black/30 to-transparent"></div><div class="absolute bottom-0 left-0 p-3"><h3 class="text-sm font-bold text-white/90">Banner Title</h3><p class="text-xs text-white/50">Subtitle text</p></div></div>',1)])])):a.item.id==="mol-cover-card"?(s(),n("div",Yu,[(s(),n(I,null,P(3,r=>e("div",{key:r,class:"flex-1 rounded-xl overflow-hidden"},[e("div",{class:"aspect-[2/3] relative",style:q({background:`linear-gradient(${120*r}deg, ${["#2d1b69","#1b3a4b","#3b1b2b"][r-1]}, ${["#1a0a3e","#0a2030","#200a1a"][r-1]})`})},[o[14]||(o[14]=e("div",{class:"absolute inset-0 bg-gradient-to-t from-black/60 to-transparent"},null,-1)),e("div",Ju,[e("p",Qu,u(["Film","Album","Series"][r-1]),1)])],4)])),64))])):a.item.id==="org-chat-bubble"?(s(),n("div",Zu,[e("div",Xu,[e("div",{class:i(["max-w-[80%] px-3 py-2 rounded-2xl text-xs",t(l)?"bg-white/10 text-white/90":"bg-black/10 text-gray-800"])}," What films should I watch? ",2)]),e("div",e0,[e("div",{class:i(["max-w-[80%] px-3 py-2 text-xs",t(l)?"text-white/70":"text-gray-600"])}," Here are some great picks from your library... ",2)])])):a.item.id==="org-content-panel"?(s(),n("div",t0,[e("div",{class:"flex gap-1 pb-1.5",style:q(t(l)?"border-bottom: 1px solid rgba(255,255,255,0.08)":"border-bottom: 1px solid rgba(0,0,0,0.06)")},[o[15]||(o[15]=e("span",{class:"text-xs px-2 py-0.5 rounded font-medium bg-accent/20 text-accent"},"Films",-1)),e("span",{class:i(["text-xs px-2 py-0.5 rounded font-medium",t(l)?"text-white/40":"text-gray-400"])},"Songs",2),e("span",{class:i(["text-xs px-2 py-0.5 rounded font-medium",t(l)?"text-white/40":"text-gray-400"])},"Books",2)],4),e("div",s0,[(s(),n(I,null,P(6,r=>e("div",{key:r,class:i(["aspect-[2/3] rounded-md",t(l)?"bg-white/5":"bg-black/5"])},null,2)),64))])])):a.item.id==="org-detail-view"?(s(),n("div",n0,[e("div",{class:i(["relative aspect-[16/7] rounded-lg overflow-hidden",t(l)?"bg-white/5":"bg-black/5"])},[o[17]||(o[17]=e("div",{class:"absolute inset-0 bg-gradient-to-t from-black/60 to-transparent"},null,-1)),e("div",{class:i(["absolute top-1.5 left-1.5 w-4 h-4 rounded-md flex items-center justify-center",t(l)?"bg-white/10":"bg-black/10"])},[(s(),n("svg",{class:i(["w-2.5 h-2.5",t(l)?"text-white/60":"text-gray-500"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...o[16]||(o[16]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"},null,-1)])],2))],2),o[18]||(o[18]=e("div",{class:"absolute bottom-1 left-2"},[e("p",{class:"text-xs font-bold text-white/90"},"Title"),e("p",{class:"text-xs text-white/50"},"Meta")],-1))],2),e("div",l0,[e("div",{class:i(["h-1.5 rounded-full w-full",t(l)?"bg-white/5":"bg-black/5"])},null,2),e("div",{class:i(["h-1.5 rounded-full w-3/4",t(l)?"bg-white/5":"bg-black/5"])},null,2)])])):a.item.id==="org-magazine"?(s(),n("div",o0,[e("div",{class:i(["grid grid-cols-2 gap-px rounded-lg overflow-hidden",t(l)?"bg-white/[0.12]":"bg-black/[0.08]"])},[e("div",{class:i(["col-span-2 px-3 py-3",t(l)?"bg-[#0a0a0a]":"bg-white"])},[e("p",{class:i(["text-[7px] uppercase tracking-[0.3em] mb-0.5",t(l)?"text-white/30":"text-gray-400"])},"Editorial",2),e("p",{class:i(["text-xs font-serif font-bold",t(l)?"text-white/90":"text-gray-900"])},"Hero Headline",2)],2),e("div",{class:i(["px-2 py-2",t(l)?"bg-[#0a0a0a]":"bg-white"])},[e("p",{class:i(["text-xs font-serif font-bold",t(l)?"text-white/80":"text-gray-800"])},"Half Tile",2)],2),e("div",{class:i(["px-2 py-2",t(l)?"bg-[#0a0a0a]":"bg-white"])},[e("p",{class:i(["text-xs font-serif font-bold",t(l)?"text-white/80":"text-gray-800"])},"Half Tile",2)],2)],2)])):a.item.id==="org-nostr-note"?(s(),n("div",a0,[e("div",{class:i(["p-3 rounded-xl",t(l)?"bg-white/[0.03] border border-white/5":"bg-black/[0.02] border border-black/5"])},[e("div",i0,[o[20]||(o[20]=e("div",{class:"w-7 h-7 rounded-full flex items-center justify-center text-xs font-bold shrink-0",style:{background:"rgba(168, 85, 247, 0.2)",color:"rgba(168, 85, 247, 0.8)"}}," F ",-1)),e("div",r0,[e("div",c0,[e("span",{class:i(["text-xs font-semibold",t(l)?"text-white/80":"text-gray-800"])},"fiatjaf",2),e("span",{class:i(["text-xs",t(l)?"text-white/25":"text-gray-300"])},"2h",2)]),e("p",{class:i(["text-xs mt-0.5 leading-relaxed",t(l)?"text-white/50":"text-gray-500"])}," Nostr is the simplest open protocol... ",2),e("div",d0,[e("span",{class:i(["text-xs",t(l)?"text-white/25":"text-gray-300"])},"3 replies",2),o[19]||(o[19]=e("span",{class:"text-xs text-amber-500/70"},"21000 sats",-1))])])])],2)])):a.item.id==="anim-fade-up"?(s(),n("div",u0,[(s(),n("div",{key:g.value,class:i(["animate-fade-up px-4 py-2 rounded-lg text-xs font-medium",t(l)?"bg-white/10 text-white/70":"bg-black/10 text-gray-600"])}," Fade Up (900ms) ",2)),e("button",{class:i(["text-xs px-2 py-0.5 rounded transition-colors",t(l)?"text-white/40 hover:text-white/60":"text-gray-400 hover:text-gray-600"]),onClick:o[1]||(o[1]=r=>g.value++)}," Replay ",2)])):a.item.id==="anim-scale-in"?(s(),n("div",h0,[(s(),n("div",{key:v.value,class:i(["animate-scale-in px-4 py-2 rounded-lg text-xs font-medium",t(l)?"bg-white/10 text-white/70":"bg-black/10 text-gray-600"])}," Scale In (250ms) ",2)),e("button",{class:i(["text-xs px-2 py-0.5 rounded transition-colors",t(l)?"text-white/40 hover:text-white/60":"text-gray-400 hover:text-gray-600"]),onClick:o[2]||(o[2]=r=>v.value++)}," Replay ",2)])):(s(),n("div",x0,[e("p",{class:i(["text-xs",t(l)?"text-white/30":"text-gray-400"])}," See code below for usage pattern ",2)]))]))],2)]),a.item.usedIn?(s(),n("div",p0,[e("h4",{class:i(["text-xs uppercase tracking-[0.2em] font-semibold mb-2",t(l)?"text-white/30":"text-gray-400"])}," Used In ",2),e("div",{class:i(["rounded-xl px-3 py-2.5",t(l)?"bg-white/[0.03] border border-white/10":"bg-black/[0.02] border border-black/10"])},[e("p",{class:i(["text-xs leading-relaxed",t(l)?"text-white/50":"text-gray-500"])},u(a.item.usedIn),3)],2)])):f("",!0),e("div",null,[e("h4",{class:i(["text-xs uppercase tracking-[0.2em] font-semibold mb-2",t(l)?"text-white/30":"text-gray-400"])}," Code ",2),e("pre",{class:i(["rounded-xl p-4 text-xs leading-relaxed font-mono overflow-x-auto",t(l)?"bg-black/40 text-white/70 border border-white/10":"bg-gray-50 text-gray-700 border border-gray-200"])},u(a.item.code),3)])])]))}}),Ge=G({__name:"DetailView",setup(a){const{isCodeMode:c,activeFile:l}=pe();function w(){const{activeFile:F,activeFileContent:O}=pe();F.value=null,O.value=""}const{selectedFilm:g,selectedBook:v,selectedTVSeries:x,selectedImage:m,selectedPlace:_,selectedSong:$,selectedPodcast:b,selectedArticle:d,closeFilmDetail:o,closeBookDetail:r,closeTVSeriesDetail:h,closeImageDetail:M,closePlaceDetail:j,closeSongDetail:L,closePodcastDetail:D,closeArticleDetail:C,selectedWebsite:k,closeWebsiteDetail:p,selectedMagazineSection:y,magazineSectionIndex:A,panelMagazineSections:V,closeMagazineSectionDetail:E,navigateMagazineSection:J,selectedDesignSystemItem:H,closeDesignSystemItem:K}=$e();return(F,O)=>t(g)?(s(),U(xs,{key:0,film:t(g),onBack:t(o)},null,8,["film","onBack"])):t($)?(s(),U(ps,{key:1,song:t($),onBack:t(L)},null,8,["song","onBack"])):t(b)?(s(),U(xd,{key:2,podcast:t(b),onBack:t(D)},null,8,["podcast","onBack"])):t(v)?(s(),U($c,{key:3,book:t(v),onBack:t(r)},null,8,["book","onBack"])):t(x)?(s(),U(Wc,{key:4,series:t(x),onBack:t(h)},null,8,["series","onBack"])):t(m)?(s(),U(wd,{key:5,image:t(m),onBack:t(M)},null,8,["image","onBack"])):t(_)?(s(),U(Hd,{key:6,place:t(_),onBack:t(j)},null,8,["place","onBack"])):t(d)?(s(),U(lu,{key:7,article:t(d),onBack:t(C)},null,8,["article","onBack"])):t(k)?(s(),U(uu,{key:8,website:t(k),onBack:t(p)},null,8,["website","onBack"])):t(y)?(s(),U(fu,{key:9,section:t(y),"current-index":t(A),"total-sections":t(V).length,onBack:t(E),onNavigate:t(J)},null,8,["section","current-index","total-sections","onBack","onNavigate"])):t(c)&&t(l)?(s(),U(Su,{key:10,onBack:w})):t(H)?(s(),U(g0,{key:11,item:t(H),onBack:t(K)},null,8,["item","onBack"])):f("",!0)}}),Oe=G({__name:"CloseButton",emits:["click"],setup(a){const{isDark:c}=Z();return(l,w)=>(s(),n("button",{class:i(["absolute top-3 right-3 z-10 p-2 rounded-lg path-glass-icon transition-colors",t(c)?"text-white/70 hover:bg-white/10":"text-gray-500 hover:bg-black/5 hover:text-gray-800"]),title:"Close","aria-label":"Close",onClick:w[0]||(w[0]=g=>l.$emit("click"))},[...w[1]||(w[1]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M6 18L18 6M6 6l12 12"})],-1)])],2))}}),b0={class:"flex-1 overflow-y-auto p-4"},v0={key:0,class:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-4"},f0={key:1,class:"grid grid-cols-2 sm:grid-cols-3 md:grid-cols-4 gap-3"},m0={key:2,class:"space-y-3"},w0={class:"flex-1 space-y-2 py-1"},y0={key:3,class:"space-y-0"},k0=G({__name:"LoadingContentGrid",props:{variant:{default:"poster"},count:{default:8}},setup(a){const{isDark:c}=Z();return(l,w)=>(s(),n("div",b0,[a.variant==="poster"?(s(),n("div",v0,[(s(!0),n(I,null,P(a.count,g=>(s(),n("div",{key:g,class:i(["aspect-[2/3] rounded-xl animate-pulse",t(c)?"bg-white/10":"bg-black/6"])},null,2))),128))])):a.variant==="square"?(s(),n("div",f0,[(s(!0),n(I,null,P(a.count,g=>(s(),n("div",{key:g,class:"space-y-2"},[e("div",{class:i(["aspect-square rounded-xl animate-pulse",t(c)?"bg-white/10":"bg-black/6"])},null,2),e("div",{class:i(["h-3 rounded animate-pulse w-3/4",t(c)?"bg-white/8":"bg-black/5"])},null,2),e("div",{class:i(["h-2.5 rounded animate-pulse w-1/2",t(c)?"bg-white/5":"bg-black/3"])},null,2)]))),128))])):a.variant==="list"?(s(),n("div",m0,[(s(!0),n(I,null,P(a.count,g=>(s(),n("div",{key:g,class:i(["flex gap-3 p-3 rounded-xl animate-pulse",t(c)?"bg-white/[0.04]":"bg-black/[0.03]"])},[e("div",{class:i(["w-20 h-14 rounded-lg shrink-0",t(c)?"bg-white/10":"bg-black/6"])},null,2),e("div",w0,[e("div",{class:i(["h-3 rounded w-4/5",t(c)?"bg-white/10":"bg-black/6"])},null,2),e("div",{class:i(["h-2.5 rounded w-3/5",t(c)?"bg-white/6":"bg-black/4"])},null,2)])],2))),128))])):a.variant==="magazine"?(s(),n("div",y0,[e("div",{class:i(["h-44 animate-pulse mb-px",t(c)?"bg-white/[0.04]":"bg-black/[0.03]"])},null,2),e("div",{class:i(["grid grid-cols-2 gap-px",t(c)?"bg-white/12":"bg-black/10"])},[(s(!0),n(I,null,P(a.count,g=>(s(),n("div",{key:g,class:i(["p-4 animate-pulse",[t(c)?"bg-[#0a0a0a]":"bg-[#faf9f6]",g<=1?"col-span-2":""]])},[e("div",{class:i(["h-2.5 rounded w-1/3 mb-2",t(c)?"bg-white/8":"bg-black/5"])},null,2),e("div",{class:i(["h-4 rounded w-4/5 mb-2",t(c)?"bg-white/10":"bg-black/6"])},null,2),e("div",{class:i(["h-2.5 rounded w-full",t(c)?"bg-white/6":"bg-black/4"])},null,2)],2))),128))],2)])):f("",!0)]))}}),$0={class:"relative flex-1 flex flex-col min-h-0 overflow-hidden"},_0={key:0,class:"flex-1 flex flex-col min-h-0"},C0={class:"flex items-center gap-3 shrink-0"},j0={key:1,class:"relative flex-1 flex items-center justify-center min-h-0"},S0={class:"relative flex flex-col items-center gap-8"},M0={class:"flex items-center gap-2"},T0={class:"absolute inset-0 pointer-events-none overflow-hidden"},D0=G({__name:"ContextLoader",props:{contextType:{default:"film"}},setup(a){const c=a,{isDark:l}=Z(),w=B(()=>c.contextType==="film"?"Film recommendations":c.contextType==="song"?"Song recommendations":c.contextType==="podcast"?"Podcast recommendations":c.contextType==="book"?"Book recommendations":c.contextType==="tvshow"?"TV Series recommendations":c.contextType==="image"?"Images":c.contextType==="news"?"Articles":c.contextType==="websites"?"Websites":c.contextType==="magazine"?"Brief":"Content"),g=B(()=>["song","podcast","image"].includes(c.contextType)?"square":["news","websites"].includes(c.contextType)?"list":c.contextType==="magazine"?"magazine":"poster"),v=B(()=>c.contextType==="magazine"||["news","websites"].includes(c.contextType)?6:12);return(x,m)=>(s(),n("div",$0,[["film","song","podcast","book","tvshow","image","news","websites","magazine"].includes(a.contextType)?(s(),n("div",_0,[e("div",{class:"p-4 shrink-0 flex items-center justify-between gap-2",style:q(t(l)?"border-bottom: 1px solid rgba(255, 255, 255, 0.08)":"border-bottom: 1px solid rgba(0, 0, 0, 0.06)")},[e("p",{class:i(["text-sm font-medium",t(l)?"text-white/70":"text-gray-600"])},u(w.value),3),e("div",C0,[e("p",{class:i(["text-xs font-mono uppercase tracking-[0.2em] mr-1",t(l)?"text-white/25":"text-gray-400"])}," Surfacing… ",2),ie(x.$slots,"header-actions",{},void 0,!0)])],4),se(k0,{variant:g.value,count:v.value},null,8,["variant","count"])])):(s(),n("div",j0,[e("div",{class:i(["absolute inset-0 opacity-[0.04] pointer-events-none",t(l)?"bg-white":"bg-black"]),style:{"background-image":`url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")`}},null,2),e("div",S0,[e("div",M0,[(s(),n(I,null,P(5,(_,$)=>e("div",{key:$,class:i(["w-12 h-16 rounded-lg overflow-hidden relative animate-cell-pulse",t(l)?"bg-white/8 border border-white/15 shadow-xl shadow-accent/5":"bg-black/6 border border-black/8 shadow-xl shadow-accent/10"]),style:q({animationDelay:`${$*100}ms`})},[e("div",T0,[e("div",{class:i(["absolute inset-0 w-1/2 animate-shimmer-sweep",t(l)?"bg-gradient-to-r from-transparent via-accent/25 to-transparent":"bg-gradient-to-r from-transparent via-accent/35 to-transparent"])},null,2)])],6)),64))]),e("p",{class:i(["text-sm font-medium",t(l)?"text-white/70":"text-gray-600"])},u(w.value),3),e("div",{class:i(["w-40 h-px rounded-full overflow-hidden",t(l)?"bg-white/8":"bg-black/8"])},[...m[0]||(m[0]=[e("div",{class:"h-full bg-accent/90 rounded-full animate-progress-sweep"},null,-1)])],2)])]))]))}}),it=De(D0,[["__scopeId","data-v-ce9be807"]]),I0={key:0,class:"absolute inset-0 pointer-events-none bg-black/20"},B0={key:0,class:"flex-1 min-w-0 flex flex-col relative"},L0={class:"flex flex-wrap gap-1.5 flex-1 min-w-0 justify-center"},P0=["onClick"],N0={key:1,class:"flex-1 min-w-0 flex flex-col"},A0={key:3,class:"flex-1 flex items-center justify-center"},z0={class:"text-center space-y-4 animate-fade-up max-w-sm px-6"},E0={class:"empty-state-icon w-20 h-20 rounded-2xl path-glass-icon flex items-center justify-center mx-auto overflow-hidden"},F0={key:0,class:"flex-1 min-w-0 path-glass-card overflow-hidden flex flex-col order-3 detail-persistent panel-slide-in",style:{"animation-delay":"0.2s"}},R0={key:1,class:"flex-1 flex items-center justify-center"},V0={class:"text-center space-y-4 max-w-[200px] px-4"},U0={class:"empty-state-icon w-16 h-16 rounded-2xl path-glass-icon flex items-center justify-center mx-auto overflow-hidden"},q0={key:1,class:"flex-1 flex flex-col min-h-0"},G0={class:"flex-1 min-h-0 flex flex-col p-2 pb-0"},O0={class:"flex-1 min-h-0 path-glass-card flex flex-col rounded-2xl overflow-hidden"},H0={class:"flex-1 min-h-0 flex flex-col p-2 pb-0"},W0={class:"flex-1 min-h-0 path-glass-card flex flex-col rounded-2xl overflow-hidden"},K0={class:"shrink-0 flex items-center gap-2 px-3 pt-2 pb-1 overflow-x-auto scrollbar-hide"},Y0=["onClick"],J0={key:2,class:"flex-1 flex items-center justify-center"},Q0={class:"text-center space-y-3 px-6"},Z0={class:"empty-state-icon w-16 h-16 rounded-2xl path-glass-icon flex items-center justify-center mx-auto overflow-hidden"},X0={class:"flex-1 min-h-0 flex flex-col p-2 pb-0"},eh={class:"flex-1 min-h-0 path-glass-card flex flex-col rounded-2xl overflow-hidden"},th={class:"flex-1 min-h-0 flex flex-col"},sh={key:1,class:"flex-1 flex items-center justify-center"},nh={class:"text-center space-y-3 px-6"},lh={class:"empty-state-icon w-16 h-16 rounded-2xl path-glass-icon flex items-center justify-center mx-auto overflow-hidden"},oh={class:"shrink-0 pt-3 pb-3",style:{paddingBottom:"calc(12px + env(safe-area-inset-bottom, 0px))"}},ah={class:"flex items-center h-[49px] px-2 gap-1"},ih={key:0,class:"absolute top-1.5 right-[28%] w-1.5 h-1.5 rounded-full bg-accent"},rh={key:0,class:"absolute top-1.5 right-[28%] w-1.5 h-1.5 rounded-full bg-accent"},ch=G({__name:"ChatPage",setup(a){const{hasTrack:c}=ls(),l=rs(),{activeFile:w,isCodeMode:g,exitCodeMode:v,clearActiveFile:x}=pe(),{isDark:m}=Z(),_=!!window.__AIUI_EMBEDDED__,$="/aiui/assets/img/bg-intro-3.webp";ds();const{panelOpen:b,panelFilms:d,panelBooks:o,panelTVSeries:r,panelImages:h,panelPlaces:M,panelSongs:j,panelPodcasts:L,panelWebResults:D,panelWebsites:C,panelMagazineSections:k,panelMagazineHeroImage:p,panelRecipes:y,panelApps:A,panelTitle:V,panelQuery:E,panelResponseText:J,contentType:H,activeTab:K,availableTabs:F,setActiveTab:O,selectedFilm:X,selectedBook:ge,selectedTVSeries:be,selectedImage:ee,selectedPlace:z,selectedSong:N,selectedPodcast:re,selectedArticle:mt,selectedWebsite:wt,selectedMagazineSection:Be,selectedDesignSystemItem:yt,closeFilmDetail:kt,closeBookDetail:$t,closeTVSeriesDetail:_t,closeImageDetail:Ct,closePlaceDetail:jt,closeSongDetail:St,closePodcastDetail:Mt,closeArticleDetail:Tt,closeWebsiteDetail:Dt,closeMagazineSectionDetail:It,closePanel:_e,openFilmDetail:Bt,openBookDetail:Lt,openTVSeriesDetail:Pt,openImageDetail:Nt,openPlaceDetail:At,openSongDetail:zt,openPodcastDetail:Et,openMagazineSectionDetail:Ft}=$e(),Ce=B(()=>l.panelSide),ze=S(window.innerWidth),le=B(()=>ze.value<1024),de=B(()=>ze.value>=1440),te=S("chat"),{isKeyboardOpen:Rt}=os();function Ke(){ze.value=window.innerWidth}function Ye(R){R.key==="Escape"&&g.value&&!le.value&&v()}const Vt=new URLSearchParams(window.location.search).has("mobileChat");oe(()=>{window.addEventListener("resize",Ke),window.addEventListener("keydown",Ye),Vt&&le.value&&(te.value="chat")}),as(()=>{window.removeEventListener("resize",Ke),window.removeEventListener("keydown",Ye)}),ce(b,R=>{R&&le.value&&!_&&(te.value="content")}),ce(V,()=>{b.value&&le.value&&te.value==="chat"&&!_&&(te.value="content")}),ce(K,()=>{b.value&&le.value&&te.value==="chat"&&!_&&(te.value="content")});const ve=B(()=>!!(X.value||ge.value||be.value||ee.value||z.value||N.value||re.value||mt.value||wt.value||Be.value||yt.value||g.value&&w.value));ce(ve,R=>{R&&le.value&&(te.value="context"),!R&&le.value&&te.value==="context"&&(te.value="content")});const Ee=B(()=>b.value&&F.value.length>0);function Je(){kt(),$t(),_t(),Ct(),jt(),St(),Mt(),Tt(),Dt(),It(),x()}const Fe=B(()=>{const R=[];return d.value.forEach(T=>R.push({open:()=>Bt(T)})),o.value.forEach(T=>R.push({open:()=>Lt(T)})),r.value.forEach(T=>R.push({open:()=>Pt(T)})),j.value.forEach(T=>R.push({open:()=>zt(T)})),L.value.forEach(T=>R.push({open:()=>Et(T)})),h.value.forEach(T=>R.push({open:()=>Nt(T)})),M.value.forEach(T=>R.push({open:()=>At(T)})),k.value.forEach((T,Y)=>R.push({open:()=>Ft(T,Y)})),R}),Qe=B(()=>{if(X.value){const R=d.value.indexOf(X.value);return R>=0?R:0}if(ge.value){const R=o.value.indexOf(ge.value);return R>=0?d.value.length+R:0}if(be.value){const R=r.value.indexOf(be.value);return R>=0?d.value.length+o.value.length+R:0}if(N.value){const R=d.value.length+o.value.length+r.value.length,T=j.value.indexOf(N.value);return T>=0?R+T:0}if(re.value){const R=d.value.length+o.value.length+r.value.length+j.value.length,T=L.value.indexOf(re.value);return T>=0?R+T:0}if(ee.value){const R=d.value.length+o.value.length+r.value.length+j.value.length+L.value.length,T=h.value.indexOf(ee.value);return T>=0?R+T:0}if(z.value){const R=d.value.length+o.value.length+r.value.length+j.value.length+L.value.length+h.value.length,T=M.value.indexOf(z.value);return T>=0?R+T:0}if(Be.value){const R=d.value.length+o.value.length+r.value.length+j.value.length+L.value.length+h.value.length+M.value.length,T=k.value.indexOf(Be.value);return T>=0?R+T:0}return 0});function Ze(R){const T=Fe.value;if(!T.length)return;let Y=Qe.value;Y+=R==="next"?1:-1,Y<0&&(Y=T.length-1),Y>=T.length&&(Y=0),Je(),T[Y].open()}const Ut={film:"Films",book:"Books",tvshow:"TV",image:"Images",place:"Places",recipe:"Recipes",song:"Songs",podcast:"Podcasts",news:"News",websites:"Websites",magazine:"Brief",code:"Code","design-system":"Design",app:"Apps",nostr:"Nostr",favorites:"Favorites",discover:"Discover",prompt:"Prompt"};function Xe(R){return Ut[R]??R}const et=B(()=>{if(b.value)return H.value;const T=([...l.messages].reverse().find(Y=>Y.role==="user")?.content??"").toLowerCase();return/\b(podcast|episode)\b/.test(T)?"podcast":/\b(song|music|track|album|band|artist|listen)\b/.test(T)?"song":/\b(book|novel|read|author|fiction|nonfiction|memoir)\b/.test(T)?"book":/\b(tv show|tv series|series|television|binge|season)\b/.test(T)?"tvshow":/\b(image|images|photo|photos|picture|pictures|screenshot|gallery|artwork|illustration)\b/.test(T)?"image":/\b(restaurant|restaurants|place|places|food|eat|dining|cafe|bar|pub|brunch|lunch|dinner)\b/.test(T)?"film":/\b(news|latest|recent|current|what'?s happening|what are people saying)\b/.test(T)?"news":/\b(bip|protocol|debate|sentiment|bearish|bull case|macro)\b/.test(T)?"magazine":/\b(website|websites|where to check|best places|check online|resources?|sources?)\b/.test(T)?"websites":H.value});return(R,T)=>(s(),n("div",{class:i(["h-full flex flex-col relative overflow-hidden transition-colors duration-300",[]]),style:q(t(m)?{background:"#000 url("+$+") center center / cover no-repeat fixed"}:_?{background:"transparent"}:{backgroundColor:"#f5f4f1"})},[t(m)?(s(),n("div",I0)):f("",!0),e("div",{class:i(["flex-1 flex h-full p-3 md:p-4 gap-3 md:gap-4 transition-[padding] duration-200",[le.value?"hidden":""]]),style:q(t(c)&&!le.value?{paddingBottom:"76px"}:{})},[e("main",{class:i(["flex-1 min-w-0 path-glass-card overflow-hidden flex relative panel-slide-in",[de.value?Ce.value==="left"?"order-2":"order-1":Ce.value==="left"?"order-last":"order-first",!de.value&&ve.value&&!Ee.value&&"detail-active"]]),style:{"animation-delay":"0.1s"}},[t(b)&&Ee.value&&(de.value||!ve.value)?(s(),n("div",B0,[se(Oe,{onClick:t(_e)},null,8,["onClick"]),e("div",{class:"shrink-0 flex items-center gap-2 px-4 pr-12 py-3",style:q(t(m)?"border-bottom: 1px solid rgba(255, 255, 255, 0.08)":"border-bottom: 1px solid rgba(0, 0, 0, 0.06)")},[e("div",L0,[(s(!0),n(I,null,P(t(F),Y=>(s(),n("button",{key:Y,class:i(["text-xs px-2 py-1 rounded-md transition-all duration-150",t(K)===Y?"nav-tab-active":t(m)?"text-white/40 hover:text-white/70 hover:bg-white/5":"text-gray-500 hover:text-gray-800 hover:bg-black/5"]),onClick:qt=>t(O)(Y)},u(Xe(Y)),11,P0))),128))])],4),se(fe,{title:"Content failed to load"},{default:ue(()=>[se(at,{"active-tab":t(K),"is-wide-desktop":de.value,"is-mobile":le.value,"panel-films":t(d),"panel-books":t(o),panelTVSeries:t(r),"panel-images":t(h),"panel-places":t(M),"panel-songs":t(j),"panel-podcasts":t(L),"panel-web-results":t(D),"panel-websites":t(C),"panel-magazine-sections":t(k),"panel-magazine-hero-image":t(p),"panel-recipes":t(y),"panel-apps":t(A),"panel-title":t(V),"panel-query":t(E),"panel-response-text":t(J),onClose:t(_e)},null,8,["active-tab","is-wide-desktop","is-mobile","panel-films","panel-books","panelTVSeries","panel-images","panel-places","panel-songs","panel-podcasts","panel-web-results","panel-websites","panel-magazine-sections","panel-magazine-hero-image","panel-recipes","panel-apps","panel-title","panel-query","panel-response-text","onClose"])]),_:1})])):!de.value&&t(b)&&ve.value?(s(),n("div",N0,[se(Oe,{onClick:T[0]||(T[0]=Y=>Ee.value?Je():t(_e)())}),se(fe,{title:"Detail view error"},{default:ue(()=>[se(Ge)]),_:1})])):t(l).isStreaming?(s(),U(it,{key:2,"context-type":et.value},{"header-actions":ue(()=>[se(Oe,{onClick:t(_e)},null,8,["onClick"])]),_:1},8,["context-type"])):(s(),n("div",A0,[e("div",z0,[e("div",E0,[e("span",{class:i(["text-3xl",t(m)?"text-[#fafafa]":"text-gray-800"])},"✦",2)]),e("div",null,[e("h2",{class:i(["text-lg font-bold mb-1",t(m)?"text-white/80":"text-gray-800"])}," Content Surface ",2),e("p",{class:i(["text-sm leading-relaxed",t(m)?"text-white/30":"text-gray-400"])}," Ask about films, songs, or podcasts in the chat to see rich content here. ",2)])])]))],2),de.value?(s(),n("div",F0,[ve.value?(s(),U(fe,{key:0,title:"Detail view error"},{default:ue(()=>[se(Ge)]),_:1})):(s(),n("div",R0,[e("div",V0,[e("div",U0,[e("span",{class:i(["text-2xl",t(m)?"text-[#fafafa]":"text-gray-800"])},"✦",2)]),e("div",null,[e("h2",{class:i(["text-sm font-semibold mb-1",t(m)?"text-white/60":"text-gray-600"])}," Awaiting Context ",2),e("p",{class:i(["text-xs leading-relaxed",t(m)?"text-white/25":"text-gray-400"])}," Select an item to see details here. ",2)])])]))])):f("",!0),e("aside",{class:i(["relative z-[100] w-80 xl:w-96 shrink-0 flex flex-col path-glass-card overflow-visible panel-slide-in",de.value?Ce.value==="left"?"order-1":"order-2":Ce.value==="left"?"order-first":"order-last"]),style:{"animation-delay":"0s"}},[se(fe,{title:"Chat error"},{default:ue(()=>[se(tt,{side:Ce.value,onSwitchSide:T[1]||(T[1]=Y=>t(l).switchSide())},null,8,["side"])]),_:1})],2)],6),le.value?(s(),n("div",q0,[W(e("div",G0,[e("div",O0,[se(fe,{title:"Chat error"},{default:ue(()=>[se(tt,{variant:"standalone","show-close":!1})]),_:1})])],512),[[Le,te.value==="chat"]]),W(e("div",H0,[e("div",W0,[t(b)?(s(),n(I,{key:0},[e("div",K0,[e("button",{class:i(["p-1.5 rounded-lg transition-colors shrink-0",t(m)?"text-white/50 hover:text-white/80 hover:bg-white/5":"text-gray-400 hover:text-gray-700 hover:bg-black/5"]),onClick:T[2]||(T[2]=Y=>te.value="chat")},[...T[8]||(T[8]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1)])],2),(s(!0),n(I,null,P(t(F),Y=>(s(),n("button",{key:Y,class:i(["text-xs px-2.5 py-1.5 rounded-lg font-medium whitespace-nowrap transition-all duration-150",t(K)===Y?"nav-tab-active":t(m)?"text-white/40 hover:text-white/70 hover:bg-white/5":"text-gray-500 hover:text-gray-800 hover:bg-black/5"]),onClick:qt=>t(O)(Y)},u(Xe(Y)),11,Y0))),128))]),se(fe,{title:"Content failed to load"},{default:ue(()=>[se(at,{"active-tab":t(K),"is-wide-desktop":de.value,"is-mobile":le.value,"panel-films":t(d),"panel-books":t(o),panelTVSeries:t(r),"panel-images":t(h),"panel-places":t(M),"panel-songs":t(j),"panel-podcasts":t(L),"panel-web-results":t(D),"panel-websites":t(C),"panel-magazine-sections":t(k),"panel-magazine-hero-image":t(p),"panel-recipes":t(y),"panel-apps":t(A),"panel-title":t(V),"panel-query":t(E),onClose:t(_e)},null,8,["active-tab","is-wide-desktop","is-mobile","panel-films","panel-books","panelTVSeries","panel-images","panel-places","panel-songs","panel-podcasts","panel-web-results","panel-websites","panel-magazine-sections","panel-magazine-hero-image","panel-recipes","panel-apps","panel-title","panel-query","onClose"])]),_:1})],64)):t(l).isStreaming?(s(),U(it,{key:1,"context-type":et.value},null,8,["context-type"])):(s(),n("div",J0,[e("div",Q0,[e("div",Z0,[e("span",{class:i(["text-2xl",t(m)?"text-[#fafafa]":"text-gray-800"])},"✦",2)]),e("p",{class:i(["text-xs",t(m)?"text-white/30":"text-gray-400"])}," Ask about something in the chat to see content here. ",2)])]))])],512),[[Le,te.value==="content"]]),W(e("div",X0,[e("div",eh,[ve.value?(s(),n(I,{key:0},[e("div",th,[se(fe,{title:"Detail view error"},{default:ue(()=>[se(Ge)]),_:1})]),!t(Be)&&Fe.value.length>1?(s(),n("div",{key:0,class:"shrink-0 flex items-center justify-between px-4 py-2",style:q(t(m)?"border-top: 1px solid rgba(255, 255, 255, 0.08)":"border-top: 1px solid rgba(0, 0, 0, 0.06)")},[e("button",{class:i(["flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs transition-colors",t(m)?"text-white/50 hover:text-white/80 hover:bg-white/5":"text-black/40 hover:text-black/70 hover:bg-black/5"]),onClick:T[3]||(T[3]=Y=>Ze("prev"))},[...T[9]||(T[9]=[e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 19l-7-7 7-7"})],-1),ne(" Prev ",-1)])],2),e("span",{class:i(["text-xs font-mono tabular-nums",t(m)?"text-white/25":"text-black/25"])},u(Qe.value+1)+"/"+u(Fe.value.length),3),e("button",{class:i(["flex items-center gap-1.5 px-3 py-1.5 rounded-lg text-xs transition-colors",t(m)?"text-white/50 hover:text-white/80 hover:bg-white/5":"text-black/40 hover:text-black/70 hover:bg-black/5"]),onClick:T[4]||(T[4]=Y=>Ze("next"))},[...T[10]||(T[10]=[ne(" Next ",-1),e("svg",{class:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5l7 7-7 7"})],-1)])],2)],4)):f("",!0)],64)):(s(),n("div",sh,[e("div",nh,[e("div",lh,[(s(),n("svg",{class:i(["w-7 h-7",t(m)?"text-white/30":"text-gray-400"]),fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[...T[11]||(T[11]=[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"},null,-1),e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"1.5",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"},null,-1)])],2))]),e("p",{class:i(["text-xs",t(m)?"text-white/30":"text-gray-400"])}," Tap an item in Content to view details here. ",2)])]))])],512),[[Le,te.value==="context"]]),se(is,{variant:"inline",compact:""}),W(e("div",oh,[e("div",ah,[e("button",{class:i(["flex-1 flex flex-col items-center justify-center h-[49px] min-h-[44px] rounded-xl text-[10px] font-medium tracking-wide transition-all duration-150 gap-0.5",te.value==="chat"?t(m)?"bg-white/10 text-white/90":"bg-black/8 text-gray-900":t(m)?"text-white/40 hover:text-white/60":"text-gray-400 hover:text-gray-600"]),onClick:T[5]||(T[5]=Y=>te.value="chat")},[...T[12]||(T[12]=[e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"})],-1),e("span",null,"Chat",-1)])],2),e("button",{class:i(["flex-1 flex flex-col items-center justify-center h-[49px] min-h-[44px] rounded-xl text-[10px] font-medium tracking-wide transition-all duration-150 relative gap-0.5",te.value==="content"?t(m)?"bg-white/10 text-white/90":"bg-black/8 text-gray-900":t(m)?"text-white/40 hover:text-white/60":"text-gray-400 hover:text-gray-600"]),onClick:T[6]||(T[6]=Y=>te.value="content")},[T[13]||(T[13]=e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"})],-1)),T[14]||(T[14]=e("span",null,"Content",-1)),t(b)&&te.value==="chat"?(s(),n("span",ih)):f("",!0)],2),e("button",{class:i(["flex-1 flex flex-col items-center justify-center h-[49px] min-h-[44px] rounded-xl text-[10px] font-medium tracking-wide transition-all duration-150 relative gap-0.5",te.value==="context"?t(m)?"bg-white/10 text-white/90":"bg-black/8 text-gray-900":t(m)?"text-white/40 hover:text-white/60":"text-gray-400 hover:text-gray-600"]),onClick:T[7]||(T[7]=Y=>te.value="context")},[T[15]||(T[15]=e("svg",{class:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M15 12a3 3 0 11-6 0 3 3 0 016 0z"}),e("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"})],-1)),T[16]||(T[16]=e("span",null,"Context",-1)),ve.value&&te.value!=="context"?(s(),n("span",rh)):f("",!0)],2)])],512),[[Le,!t(Rt)]])])):f("",!0)],4))}}),mh=De(ch,[["__scopeId","data-v-30760816"]]);export{mh as default};
|