2026-03-08 01:48:23 +00:00
const _ _vite _ _mapDeps = ( i , m = _ _vite _ _mapDeps , d = ( m . f || ( m . f = [ "assets/useNostr-BqBiQvAw.js" , "assets/index-BD9qoze1.js" , "assets/index-BNvE9-tw.css" , "assets/ThreadNode-DaJ9aByD.js" ] ) ) ) => i . map ( i => d [ i ] ) ;
import { a as G , Z as qt , $ 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 J , F as I , g as P , i as f , j as Z , r as S , k as B , a0 as Gt , a1 as ct , N as ne , a2 as dt , a3 as ut , a4 as ht , a5 as xt , U as De , a6 as Ot , a7 as Ht , a8 as Wt , P as Kt , z as xe , Q as U , K as le , a9 as ae , aa as ye , _ as pt , A as ce , B as Pe , d as Yt , ab as Qt , L as se , ac as Jt , ad as Zt , ae as Xt , S as es , q as ts , af as ss , o as ns , M as ue , ag as Le , ah as ls } from "./index-BD9qoze1.js" ; import { u as os } from "./chat-Dx-Dx0vd.js" ; import { u as $e , a as pe , e as He , d as gt , M as as , b as is , s as rs , c as cs , f as fe , _ as tt } from "./ChatWindow.vue_vue_type_script_setup_true_lang-DK0BUVLp.js" ; import { _ as ds } from "./FilmGrid.vue_vue_type_script_setup_true_lang-Cv6-zNyf.js" ; import { u as Ae } from "./useContentImages-6RAIPaCD.js" ; import { _ as us } from "./SongGrid.vue_vue_type_script_setup_true_lang-BOXkLn09.js" ; import { useNostr as Ie } from "./useNostr-BqBiQvAw.js" ; import { u as bt , _ as hs } from "./FilmDetail.vue_vue_type_script_setup_true_lang-BOBGVwtd.js" ; import { _ as xs } from "./SongDetail.vue_vue_type_script_setup_true_lang-BGRNHJco.js" ; const ps = { class : "h-full flex flex-col" } , gs = { class : "flex items-center justify-between gap-2" } , bs = { class : "flex items-center gap-2 shrink-0" } , vs = { key : 0 , class : "flex flex-wrap gap-1.5" } , fs = [ "onClick" ] , ms = { class : "flex-1 overflow-y-auto custom-scrollbar px-4 pt-4 pb-16" } , ws = { class : "grid grid-cols-2 sm:grid-cols-3 gap-4" } , ys = [ "aria-label" , "onClick" ] , ks = { class : "cover-card flex-1 min-h-0 relative" } , $s = { key : 0 , class : "absolute inset-0 animate-shimmer" } , _s = [ "src" , "alt" , "onError" ] , Cs = [ "src" , "alt" ] , js = { key : 3 , class : "absolute inset-0 bg-gradient-to-t from-black/60 via-transparent to-transparent pointer-events-none" } , Ss = { class : "absolute bottom-0 left-0 right-0 p-2" } , Ms = { class : "text-xs font-semibold text-white/90 leading-tight truncate" } , Ts = { class : "text-xs text-white/40 truncate mt-0.5" } , Ds = { key : 4 , class : "absolute top-1.5 left-1.5" } , Is = { class : "text-xs px-1.5 py-0.5 rounded bg-black/60 text-amber-400 backdrop-blur-sm font-medium" } , Bs = { key : 5 , class : "absolute top-1.5 right-1.5" } , Ls = { class : "text-xs px-1 py-0.5 rounded bg-black/60 text-white/70 backdrop-blur-sm" } , Ps = { key : 0 , class : "flex items-center justify-center py-12" } , Ns = 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 => qt ( 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" , ps , [ 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" , gs , [ e ( "h3" , { class : i ( [ "text-sm font-bold" , t ( l ) ? "text-white/90" : "text-gray-900" ] ) } , u ( a . title ) , 3 ) , e ( "div" , bs , [ 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 ) , [ [ J , w . value ] ] ) , _ . value . length > 0 ? ( s ( ) , n ( "div" , vs , [ ( 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 )
2026-03-07 23:58:08 +00:00
/* 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 ( 18 px ) ;
border : 1 px 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 - 2 xl /* 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 = 4 px /* micro gap */
2 = 8 px /* tight gap */
3 = 12 px /* small padding */
4 = 16 px /* standard padding */
5 = 20 px /* section padding */
6 = 24 px /* large gap */
8 = 32 px /* section spacing */
12 = 48 px /* 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 - 2 xl /* 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
< / b u t t o n >
/ * g l a s s - b u t t o n :
height : 48 px
background : rgba ( 0 , 0 , 0 , 0.6 )
backdrop - filter : blur ( 18 px )
border - radius : 12 px
border : 1 px solid rgba ( 255 , 255 , 255 , 0.12 )
* / ` , u s e d I n : " C h a t I n p u t s e n d , m o d a l a c t i o n s , p r i m a r y c o n t r o l s " } , { i d : " a t o m - g l a s s - b t n - s m " , n a m e : " G l a s s B u t t o n S m a l l " , c a t e g o r y : " a t o m s " , d e s c r i p t i o n : " C o m p a c t g l a s s b u t t o n v a r i a n t " , c o d e : ` < b u t t o n c l a s s = " g l a s s - b u t t o n - s m " >
Small
< / b u t t o n >
/* 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" ... >
< / b u t t o n >
/ * p a t h - g l a s s - i c o n :
background : transparent
transition : colors
hover : bg - white / 10
* / ` , u s e d I n : " C h a t H e a d e r t o o l b a r , d e t a i l b a c k b u t t o n s , c l o s e b u t t o n s " } , { i d : " a t o m - b a d g e " , n a m e : " G e n r e B a d g e " , c a t e g o r y : " a t o m s " , d e s c r i p t i o n : " T i n y p i l l b a d g e f o r t a g s / g e n r e s " , c o d e : ` < s p a n c l a s s = " t e x t - x s p x - 2 p y - 1 r o u n d e d - m d
font - medium bg - white / 10 text - white / 60 " >
Science Fiction
< / s p a n > ` , u s e d I n : " F i l m G r i d , S o n g G r i d , B o o k G r i d , T V S e r i e s G r i d g e n r e f i l t e r s " } , { i d : " a t o m - n a v - t a b " , n a m e : " N a v T a b " , c a t e g o r y : " a t o m s " , d e s c r i p t i o n : " C o n t e n t p a n e l t a b w i t h a c t i v e s t a t e " , c o d e : ` < b u t t o n c l a s s = " n a v - t a b - a c t i v e " >
Films
< / b u t t o n >
/ * A c t i v e : a c c e n t u n d e r l i n e
Inactive : text - white / 50 hover : text - white
Transition : 200 ms * / ` , u s e d I n : " C o n t e n t P a n e l t a b b a r , m o b i l e c o n t e n t t a b f i l t e r s " } , { i d : " a t o m - i n p u t " , n a m e : " T e x t I n p u t " , c a t e g o r y : " a t o m s " , d e s c r i p t i o n : " S e a r c h / f i l t e r i n p u t f i e l d " , c o d e : ` < i n p u t
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..."
/ > ` , u s e d I n : " A l l g r i d s e a r c h b a r s , P r o j e c t G r i d n e w p r o j e c t " } , { i d : " a t o m - s c r o l l b a r " , n a m e : " C u s t o m S c r o l l b a r " , c a t e g o r y : " a t o m s " , d e s c r i p t i o n : " T h i n t r a n s l u c e n t s c r o l l b a r f o r s c r o l l a r e a s " , c o d e : ` . c u s t o m - s c r o l l b a r : : - w e b k i t - s c r o l l b a r {
width : 4 px ;
}
. custom - scrollbar : : - webkit - scrollbar - thumb {
background : rgba ( 255 , 255 , 255 , 0.1 ) ;
border - radius : 2 px ;
}
/* 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 < / h 3 >
< p > Content < / p >
< / d i v >
/ * g l a s s - c a r d :
background : rgba ( 0 , 0 , 0 , 0.65 )
backdrop - filter : blur ( 18 px )
border : 1 px solid rgba ( 255 , 255 , 255 , 0.12 )
border - radius : 16 px
padding : 16 px
* / ` , u s e d I n : " C h a t W i n d o w c o n t a i n e r , c o n t e n t p a n e l w r a p p e r " } , { i d : " m o l - g r a d i e n t - c a r d " , n a m e : " G r a d i e n t C a r d " , c a t e g o r y : " m o l e c u l e s " , d e s c r i p t i o n : " C a r d w i t h g r a d i e n t b a c k g r o u n d " , c o d e : ` < d i v c l a s s = " g r a d i e n t - c a r d " >
< h3 > Featured < / h 3 >
< p > Content < / p >
< / d i v >
/ * g r a d i e n t - c a r d :
background : linear - gradient ( 135 deg , ... )
border - radius : 16 px
* / ` , u s e d I n : " F e a t u r e d c o n t e n t h i g h l i g h t s , p r o m o t i o n a l s e c t i o n s " } , { i d : " m o l - s o u r c e - l i n k " , n a m e : " S o u r c e L i n k R o w " , c a t e g o r y : " m o l e c u l e s " , d e s c r i p t i o n : " I c o n + l a b e l + e x t e r n a l l i n k a r r o w " , c o d e : ` < a c l a s s = " f l e x i t e m s - c e n t e r j u s t i f y - b e t w e e n
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 < / s p a n >
< div >
< p class = " text - xs font - medium
text - white / 80 " > Name < / p >
< p class = " text - xs
text - white / 30 " > Description < / p >
< / d i v >
< / d i v >
< svg > <!-- external link icon -- > < / s v g >
< / a > ` , u s e d I n : " F i l m D e t a i l , S o n g D e t a i l , P o d c a s t D e t a i l s o u r c e s " } , { i d : " m o l - b a n n e r - h e r o " , n a m e : " B a n n e r H e r o " , c a t e g o r y : " m o l e c u l e s " , d e s c r i p t i o n : " A s p e c t 1 6 / 7 i m a g e w i t h g r a d i e n t o v e r l a y " , c o d e : ` < d i v c l a s s = " r e l a t i v e w - f u l l a s p e c t - [ 1 6 / 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 < / h 2 >
< / d i v >
< / d i v > ` , u s e d I n : " F i l m D e t a i l , T V S e r i e s D e t a i l , B o o k D e t a i l b a n n e r s " } , { i d : " m o l - c o v e r - c a r d " , n a m e : " C o v e r C a r d " , c a t e g o r y : " m o l e c u l e s " , d e s c r i p t i o n : " P o s t e r / c o v e r i m a g e c a r d w i t h o v e r l a y t e x t " , c o d e : ` < b u t t o n c l a s s = " g r o u p r o u n d e d - 2 x l o v e r f l o w - h i d d e n " >
< 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 >
< / d i v >
< / d i v >
< / b u t t o n > ` , u s e d I n : " F i l m G r i d , T V S e r i e s G r i d , S o n g G r i d , B o o k G r i d c a r d s " } , { i d : " o r g - c h a t - b u b b l e " , n a m e : " C h a t B u b b l e " , c a t e g o r y : " o r g a n i s m s " , d e s c r i p t i o n : " A I / U s e r m e s s a g e b u b b l e w i t h s t r e a m i n g " , c o d e : ` < ! - - U s e r b u b b l e - - >
< div class = "flex justify-end" >
< div class = " glass - card max - w - [ 85 % ]
px - 4 py - 3 text - sm text - white / 90 " >
Message text
< / d i v >
< / d i v >
<!-- AI bubble -- >
< div class = "flex justify-start" >
< div class = " max - w - [ 85 % ] px - 4 py - 3
text - sm text - white / 80 " >
Response with markdown
< / d i v >
< / d i v > ` , u s e d I n : " C h a t M e s s a g e . v u e — t h e p r i m a r y c h a t i n t e r f a c e " } , { i d : " o r g - c o n t e n t - p a n e l " , n a m e : " C o n t e n t P a n e l " , c a t e g o r y : " o r g a n i s m s " , d e s c r i p t i o n : " T a b s + g r i d + d e t a i l n a v i g a t i o n " , c o d e : ` < ! - - S t r u c t u r e - - >
< div class = "flex flex-col h-full" >
<!-- Tab bar -- >
< div class = "flex gap-1 px-3 py-2" >
< button class = "nav-tab" > Tab < / b u t t o n >
< / d i v >
<!-- Grid view -- >
< ContentGridView / >
<!-- or Detail view -- >
< DetailView / >
< / d i v > ` , u s e d I n : " C h a t P a g e m i d d l e c o l u m n , m o b i l e C o n t e n t t a b " } , { i d : " o r g - d e t a i l - v i e w " , n a m e : " D e t a i l V i e w " , c a t e g o r y : " o r g a n i s m s " , d e s c r i p t i o n : " F u l l d e t a i l w i t h b a n n e r , b a c k b u t t o n , m e t a d a t a " , c o d e : ` < ! - - P a t t e r n : B a n n e r → M e t a → C o n t e n t - - >
< 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 < / b u t t o n >
< div class = "absolute bottom-0 p-4" >
< h2 > Title < / h 2 >
< div > Metadata < / d i v >
< / d i v >
< / d i v >
<!-- Body -- >
< div class = "p-4 space-y-4" >
< p > Description < / p >
< div > Genre badges < / d i v >
< div > Source links < / d i v >
< / d i v >
< / d i v > ` , u s e d I n : " F i l m D e t a i l , B o o k D e t a i l , T V S e r i e s D e t a i l , S o n g D e t a i l , P o d c a s t D e t a i l " } , { i d : " o r g - m a g a z i n e " , n a m e : " M a g a z i n e G r i d " , c a t e g o r y : " o r g a n i s m s " , d e s c r i p t i o n : " E d i t o r i a l t i l e l a y o u t w i t h h e r o , w i d e , a n d h a l f t i l e s " , c o d e : ` < ! - - M a g a z i n e s t r u c t u r e - - >
< 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 - [ # 0 a0a0a ] " >
< p class = " text - xs uppercase
tracking - [ 0.3 em ] " > Label < / p >
< h2 class = " font - serif text - lg
font - bold " > Title < / h 2 >
< p class = "font-serif text-sm" > Text < / p >
< / b u t t o n >
<!-- Half tiles -- >
< button class = "px-4 py-4 bg-[#0a0a0a]" >
< h3 class = " font - serif text - sm
font - bold " > Title < / h 3 >
< p class = "font-serif text-xs" > Text < / p >
< / b u t t o n >
< /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
< / d i v >
< div class = "flex-1" >
< span class = "text-xs font-semibold" >
author < / s p a n >
< p class = "text-xs text-white/60" >
Note content ... < / p >
< span class = " text - xs
text - amber - 500 / 70 " > 21000 sats < / s p a n >
< / d i v >
< / d i v >
< / d i v > ` , u s e d I n : " N o s t r G r i d . v u e — N o s t r f e e d t a b " } , { i d : " a n i m - f a d e - u p " , n a m e : " F a d e U p " , c a t e g o r y : " a t o m s " , d e s c r i p t i o n : " E n t r y a n i m a t i o n : t r a n s l a t e + o p a c i t y " , c o d e : ` . a n i m a t e - f a d e - u p {
animation : fadeUp 900 ms ease - out ;
}
@ keyframes fadeUp {
from {
opacity : 0 ;
transform : translateY ( 16 px ) ;
}
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 250 ms ease - out ;
}
@ keyframes scaleIn {
from {
opacity : 0 ;
transform : scale ( 0.95 ) ;
}
to {
opacity : 1 ;
transform : scale ( 1 ) ;
}
2026-03-08 01:48:23 +00:00
} ` ,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",Co,[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",jo,[(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,So)),64))]),e("div",Mo,[e("div",To,[(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",Bo,[...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,Io)):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",Lo,[...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",Po,[(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",No)):h.category==="molecules"?(s(),n("path",Ao)):h.category==="organisms"?(s(),n("path",zo)):(s(),n("path",Eo))],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,Do))),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 le(()=>{w(),setTimeout(w,500)}),{pubkey:we,npub:a,
2026-03-07 23:58:08 +00:00
< html > < head > < title > $ { c . title || "Article" } < / t i t l e >
< style >
body { font - family : Georgia , serif ; max - width : 700 px ; margin : 2 em auto ; padding : 0 1 em ; line - height : 1.7 ; color : # 222 ; }
h1 { font - size : 1.8 em ; margin - bottom : 0.5 em ; }
h2 { font - size : 1.4 em ; margin - top : 1.5 em ; }
h3 { font - size : 1.2 em ; margin - top : 1.2 em ; }
code { background : # f0f0f0 ; padding : 2 px 5 px ; border - radius : 3 px ; }
pre { background : # f5f5f5 ; padding : 1 em ; overflow - x : auto ; border - radius : 5 px ; }
blockquote { border - left : 3 px solid # ccc ; padding - left : 1 em ; color : # 555 ; }
img { max - width : 100 % ; }
a { color : # 0066 cc ; }
< / s t y l e > < / h e a d > < b o d y >
$ { c . title ? ` <h1> ${ c . title } </h1> ` : "" }
$ { $ . value }
< / b o d y > < / h t m l > ` ) , D . d o c u m e n t . c l o s e ( ) , D . p r i n t ( ) ) } r e t u r n ( D , C ) = > ( s ( ) , n ( " d i v " , R i , [ _ . v a l u e . l e n g t h > 1 ? ( s ( ) , n ( " a s i d e " , V i , [ C [ 4 ] | | ( C [ 4 ] = e ( " p " , { c l a s s : " t e x t - x s u p p e r c a s e t r a c k i n g - w i d e r t e x t - w h i t e / 3 0 m b - 2 p x - 2 " } , " C o n t e n t s " , - 1 ) ) , ( s ( ! 0 ) , n ( I , n u l l , P ( _ . v a l u e , ( k , p ) = > ( s ( ) , n ( " b u t t o n " , { k e y : p , c l a s s : i ( [ " t e x t - l e f t t e x t - x s l e a d i n g - r e l a x e d p y - 1 p x - 2 r o u n d e d t r a n s i t i o n - c o l o r s t r u n c a t e " , [ r . v a l u e = = = p ? " t e x t - a c c e n t b g - a c c e n t / 1 0 " : " t e x t - w h i t e / 5 0 h o v e r : t e x t - w h i t e / 7 0 h o v e r : b g - w h i t e / 5 " , k . l e v e l = = = 3 ? " p l - 5 " : " " ] ] ) , o n C l i c k : y = > j ( k . i d ) } , u ( k . t e x t ) , 1 1 , U i ) ) ) , 1 2 8 ) ) ] ) ) : f ( " " , ! 0 ) , e ( " d i v " , { r e f _ k e y : " c o n t e n t R e f " , r e f : d , c l a s s : " f l e x - 1 o v e r f l o w - y - a u t o s c r o l l b a r - h i d e " } , [ e ( " d i v " , q i , [ e ( " b u t t o n " , { c l a s s : " m i n - w - [ 4 4 p x ] m i n - h - [ 4 4 p x ] f l e x i t e m s - c e n t e r j u s t i f y - c e n t e r r o u n d e d - l g t e x t - w h i t e / 6 0 h o v e r : t e x t - w h i t e / 8 0 h o v e r : b g - w h i t e / 1 0 t r a n s i t i o n - c o l o r s " , t i t l e : " B a c k " , o n C l i c k : C [ 0 ] | | ( C [ 0 ] = k = > D . $ e m i t ( " b a c k " ) ) } , [ . . . C [ 5 ] | | ( C [ 5 ] = [ e ( " s v g " , { c l a s s : " w - 4 h - 4 " , f i l l : " n o n e " , s t r o k e : " c u r r e n t C o l o r " , v i e w B o x : " 0 0 2 4 2 4 " } , [ e ( " p a t h " , { " s t r o k e - l i n e c a p " : " r o u n d " , " s t r o k e - l i n e j o i n " : " r o u n d " , " s t r o k e - w i d t h " : " 2 " , d : " M 1 5 1 9 l - 7 - 7 7 - 7 " } ) ] , - 1 ) ] ) ] ) , e ( " s p a n " , G i , u ( b . v a l u e ) + " m i n r e a d " , 1 ) , _ . v a l u e . l e n g t h > 1 ? ( s ( ) , n ( " b u t t o n " , { k e y : 0 , c l a s s : " l g : h i d d e n m i n - w - [ 4 4 p x ] m i n - h - [ 4 4 p x ] f l e x i t e m s - c e n t e r j u s t i f y - c e n t e r r o u n d e d - l g t e x t - w h i t e / 6 0 h o v e r : t e x t - w h i t e / 8 0 h o v e r : b g - w h i t e / 1 0 t r a n s i t i o n - c o l o r s " , t i t l e : " T a b l e o f c o n t e n t s " , o n C l i c k : C [ 1 ] | | ( C [ 1 ] = k = > v . v a l u e = ! v . v a l u e ) } , [ . . . C [ 6 ] | | ( C [ 6 ] = [ e ( " s v g " , { c l a s s : " w - 4 h - 4 " , f i l l : " n o n e " , s t r o k e : " c u r r e n t C o l o r " , v i e w B o x : " 0 0 2 4 2 4 " } , [ e ( " p a t h " , { " s t r o k e - l i n e c a p " : " r o u n d " , " s t r o k e - l i n e j o i n " : " r o u n d " , " s t r o k e - w i d t h " : " 2 " , d : " M 4 6 h 1 6 M 4 1 2 h 1 6 M 4 1 8 h 7 " } ) ] , - 1 ) ] ) ] ) ) : f ( " " , ! 0 ) , e ( " b u t t o n " , { c l a s s : " m i n - w - [ 4 4 p x ] m i n - h - [ 4 4 p x ] f l e x i t e m s - c e n t e r j u s t i f y - c e n t e r r o u n d e d - l g t e x t - w h i t e / 6 0 h o v e r : t e x t - w h i t e / 8 0 h o v e r : b g - w h i t e / 1 0 t r a n s i t i o n - c o l o r s " , t i t l e : " D e c r e a s e f o n t s i z e " , d i s a b l e d : g . v a l u e < = 0 , o n C l i c k : C [ 2 ] | | ( C [ 2 ] = k = > g . v a l u e = M a t h . m a x ( 0 , g . v a l u e - 1 ) ) } , [ . . . C [ 7 ] | | ( C [ 7 ] = [ e ( " s p a n " , { c l a s s : " t e x t - x s f o n t - b o l d " } , " A - " , - 1 ) ] ) ] , 8 , O i ) , e ( " b u t t o n " , { c l a s s : " m i n - w - [ 4 4 p x ] m i n - h - [ 4 4 p x ] f l e x i t e m s - c e n t e r j u s t i f y - c e n t e r r o u n d e d - l g t e x t - w h i t e / 6 0 h o v e r : t e x t - w h i t e / 8 0 h o v e r : b g - w h i t e / 1 0 t r a n s i t i o n - c o l o r s " , t i t l e : " I n c r e a s e f o n t s i z e " , d i s a b l e d : g . v a l u e > = l . l e n g t h - 1 , o n C l i c k : C [ 3 ] | | ( C [ 3 ] = k = > g . v a l u e = M a t h . m i n ( l . l e n g t h - 1 , g . v a l u e + 1 ) ) } , [ . . . C [ 8 ] | | ( C [ 8 ] = [ e ( " s p a n " , { c l a s s : " t e x t - x s f o n t - b o l d " } , " A + " , - 1 ) ] ) ] , 8 , H i ) , e ( " b u t t o n " , { c l a s s : " m i n - w - [ 4 4 p x ] m i n - h - [ 4 4 p x ] f l e x i t e m s - c e n t e r j u s t i f y - c e n t e r r o u n d e d - l g t e x t - w h i t e / 6 0 h o v e r : t e x t - w h i t e / 8 0 h o v e r : b g - w h i t e / 1 0 t r a n s i t i o n - c o l o r s " , t i t l e : " P r i n t " , o n C l i c k : L } , [ . . . C [ 9 ] | | ( C [ 9 ] = [ e ( " s v g " , { c l a s s : " w - 4 h - 4 " , f i l l : " n o n e " , s t r o k e : " c u r r e n t C o l o r " , v i e w B o x : " 0 0 2 4 2 4 " } , [ e ( " p a t h " , { " s t r o k e - l i n e c a p " : " r o u n d " , " s t r o k e - l i n e j o i n " : " r o u n d " , " s t r o k e - w i d t h " : " 2 " , d : " M 1 7 1 7 h 2 a 2 2 0 0 0 2 - 2 v - 4 a 2 2 0 0 0 - 2 - 2 H 5 a 2 2 0 0 0 - 2 2 v 4 a 2 2 0 0 0 2 2 h 2 m 2 4 h 6 a 2 2 0 0 0 2 - 2 v - 4 a 2 2 0 0 0 - 2 - 2 H 9 a 2 2 0 0 0 - 2 2 v 4 a 2 2 0 0 0 2 2 z m 8 - 1 2 V 5 a 2 2 0 0 0 - 2 - 2 H 9 a 2 2 0 0 0 - 2 2 v 4 h 1 0 z " } ) ] , - 1 ) ] ) ] ) ] ) , v . v a l u e & & _ . v a l u e . l e n g t h > 1 ? ( s ( ) , n ( " d i v " , W i , [ ( s ( ! 0 ) , n ( I , n u l l , P ( _ . v a l u e , ( k , p ) = > ( s ( ) , n ( " b u t t o n " , { k e y : p , c l a s s : i ( [ " b l o c k w - f u l l t e x t - l e f t t e x t - x s p y - 1 p x - 2 r o u n d e d t r a n s i t i o n - c o l o r s t r u n c a t e " , [ r . v a l u e = = = p ? " t e x t - a c c e n t b g - a c c e n t / 1 0 " : " t e x t - w h i t e / 5 0 h o v e r : t e x t - w h i t e / 7 0 " , k . l e v e l = = = 3 ? " p l - 5 " : " " ] ] ) , o n C l i c k : y = > { j ( k . i d ) , v . v a l u e = ! 1 } } , u ( k . t e x t ) , 1 1 , K i ) ) ) , 1 2 8 ) ) ] ) ) : f ( " " , ! 0 ) , e ( " a r t i c l e " , { r e f _ k e y : " a r t i c l e R e f " , r e f : o , c l a s s : " a r t i c l e - b o d y p x - 4 m d : p x - 8 p y - 6 m a x - w - p r o s e m x - a u t o l e a d i n g - r e l a x e d t e x t - w h i t e / 9 0 " , s t y l e : q ( { f o n t S i z e : l [ g . v a l u e ] + " p x " } ) } , [ a . t i t l e ? ( s ( ) , n ( " h 1 " , Y i , u ( a . t i t l e ) , 1 ) ) : f ( " " , ! 0 ) , e ( " d i v " , { c l a s s : " a r t i c l e - c o n t e n t [ & _ h 2 ] : t e x t - l g [ & _ h 2 ] : f o n t - s e m i b o l d [ & _ h 2 ] : t e x t - w h i t e / 9 6 [ & _ h 2 ] : m t - 8 [ & _ h 2 ] : m b - 3 [ & _ h 3 ] : t e x t - b a s e [ & _ h 3 ] : f o n t - m e d i u m [ & _ h 3 ] : t e x t - w h i t e / 9 0 [ & _ h 3 ] : m t - 6 [ & _ h 3 ] : m b - 2 [ & _ p ] : m b - 4 [ & _ u l ] : l i s t - d i s c [ & _ u l ] : m l - 5 [ & _ u l ] : m b - 4 [ & _ o l ] : l i s t - d e c i m a l [ & _ o l ] : m l - 5 [ & _ o l ] : m b - 4 [ & _ l i ] : m b - 1 [ & _ a ] : t e x t - a c c e n t [ & _ a ] : u n d e r l i n e [ & _ a ] : u n d e r l i n e - o f f s e t - 2 [ & _ b l o c k q u o t e ] : b o r d e r - l - 2 [ & _ b l o c k q u o t e ] : b o r d e r - a c c e n t / 3 0 [ & _ b l o c k q u o t e ] : p l - 4 [ & _ b l o c k q u o t e ] : i t a l i c [ & _ b l o c k q u o t e ] : t e x t - w h i t e / 7 0 [ & _ b l o c k q u o t e ] : m y - 4 [ & _ c o d e ] : b g - w h i t e / 1 0 [ & _ c o d e ] : p x - 1 . 5 [ & _ c o d e ] : p y - 0 . 5 [ & _ c o d e ] : r o u n d e d [ & _ c o d e ] : t e x t - [ 0 . 9 e m ] [ & _ p r e ] : b g - w h i t e / 5 [ & _ p r e ] : r o u n d e d - l g [ & _ p r e ] : p - 4 [ & _ p r e ] : o v e r f l o w - x - a u t o [ & _ p r e ] : m y - 4 [ & _ i m g ] : r o u n
` )[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 le(()=>{b()}),(d,o)=>(s(),n("div",Zi,[w.value?(s(),n(I,{key:0},[e("div",Xi,[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",er,u(g.value),1)]),e("div",tr,[se(Ji,{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",sr,[l.value?(s(),n("div",nr,[...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",or,[e("h4",ar,u(m(r)),1),e("p",ir,u( $ (r)),1),e("div",rr,[e("span",cr,u(v(r.pubkey)),1),e("span",dr,u(x(r.created_at)),1),_(r)?(s(),n("span",ur,"has image")):f("",!0)])])],8,lr))),128)),!l.value&&c.value.length===0?(s(),n("div",hr,[...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 pr(){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 gr(){try{const a=Array.from(Te.value.entries());localStorage.setItem(ft,JSON.stringify(a))}catch{}}pr();function br(){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()}),gr(),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 vr={class:"h-full flex flex-col"},fr={class:"flex gap-2 px-4 pt-3 pb-1"},mr=["onClick"],wr={class:"p-4 space-y-3 border-b border-white/[0.08]"},yr={class:"flex items-center justify-between gap-2"},kr={class:"flex items-center gap-2 shrink-0"},$r={class:"text-xs font-mono text-white/30"},_r={key:1,class:"rounded-lg bg-white/5 border border-white/10 p-3 space-y-2"},Cr=["onKeydown"],jr={class:"flex items-center justify-between gap-2"},Sr=["disabled"],Mr={key:0,class:"space-y-1"},Tr={class:"truncate font-mono text-white/40"},Dr={class:"flex gap-2"},Ir=["disabled"],Br={class:"flex gap-2"},Lr=["onClick"],Pr={class:"flex-1 overflow-y-auto custom-scro
` ):[]);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",fu,[e("div",mu,[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",wu,[x.value?(s(),n("div",yu,[e("table",ku,[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",_u,[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))}}),ju=De(Cu,[["__scopeId","data-v-7f40c0bc"]]),Su={class:"h-full overflow-y-auto overflow-x-hidden scrollbar-hide"},Mu={class:"min-w-0 flex-1"},Tu={class:"p-4 space-y-4"},Du={key:0,class:"space-y-2"},Iu={key:1,class:"space-y-2"},Bu={key:2,class:"flex items-end gap-2"},Lu={key:0,class:"text-[7px] text-accent font-mono"},Pu={key:3,class:"space-y-2"},Nu={key:0,class:"flex gap-3"},Au={key:1,class:"flex gap-3"},zu={key:2,class:"flex gap-3"},Eu={key:3,class:"flex flex-wrap gap-1.5"},Fu={key:4},Ru={class:"glass-card p-4"},Vu={key:5,class:"flex gap-1.5"},Uu={key:6},qu={key:7,class:"space-y-2"},Gu={key:8},Ou={key:9,class:"space-y-1.5"},Hu={class:"flex items-center gap-2.5"},Wu={key:10},Ku={key:11,class:"flex gap-2"},Yu={class:"absolute bottom-0 left-0 right-0 p-1.5"},Qu={class:"text-xs text-white/80 font-medium truncate"},Ju={key:12,class:"space-y-2"},Zu={class:"flex justify-end"},Xu={class:"flex justify-start"},e0={key:13,class:"space-y-2"},t0={class:"grid grid-cols-3 gap-1"},s0={key:14,class:"space-y-2"},n0={class:"space-y-1 px-1"},l0={key:15},o0={key:16},a0={class:"flex items-start gap-2.5"},i0={class:"min-w-0 flex-1"},r0={class:"flex items-center gap-1.5"},c0={class:"flex gap-3 mt-1.5"},d0={key:17,class:"flex flex-col items-center gap-2"},u0={key:18,class:"flex flex-col items-center gap-2"},h0={key:19,class:"text-center py-4"},x0={key:0},p0=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():