@@ -76,22 +76,50 @@ function buildCssSnippet(tagName: string, meta: ComponentMetadata): string {
7676 if ( meta . cssProperties . length > 0 ) {
7777 const propLines = meta . cssProperties
7878 . slice ( 0 , 5 )
79- . map ( ( p ) => ` ${ p . name } : initial;` )
79+ . map ( ( p ) => {
80+ const value = p . default ?? guessDefaultValue ( p . name ) ;
81+ return ` ${ p . name } : ${ value } ;` ;
82+ } )
8083 . join ( '\n' ) ;
81- parts . push ( `${ tagName } {\n${ propLines } \n}` ) ;
84+ parts . push ( `/* Token customization */\n ${ tagName } {\n${ propLines } \n}` ) ;
8285 }
8386
8487 if ( meta . cssParts . length > 0 ) {
8588 const partBlocks = meta . cssParts
8689 . slice ( 0 , 3 )
8790 . map ( ( p ) => `${ tagName } ::part(${ p . name } ) {\n /* ${ p . description || p . name } */\n}` )
8891 . join ( '\n\n' ) ;
89- parts . push ( partBlocks ) ;
92+ parts . push ( `/* Part-based customization */\n${ partBlocks } ` ) ;
93+ }
94+
95+ if ( meta . slots . length > 0 ) {
96+ const slotLines : string [ ] = [ ] ;
97+ const hasDefaultSlot = meta . slots . some ( ( s ) => s . name === '' ) ;
98+ const namedSlots = meta . slots . filter ( ( s ) => s . name !== '' ) ;
99+
100+ if ( hasDefaultSlot ) {
101+ slotLines . push ( `${ tagName } > * { /* default slot content */ }` ) ;
102+ }
103+ for ( const slot of namedSlots . slice ( 0 , 3 ) ) {
104+ slotLines . push ( `${ tagName } [slot="${ slot . name } "] { /* ${ slot . description || slot . name } */ }` ) ;
105+ }
106+
107+ parts . push ( `/* Slot styling — target in light DOM CSS */\n${ slotLines . join ( '\n' ) } ` ) ;
90108 }
91109
92110 return parts . join ( '\n\n' ) ;
93111}
94112
113+ function guessDefaultValue ( propName : string ) : string {
114+ const lower = propName . toLowerCase ( ) ;
115+ if ( / c o l o r | b g | b a c k g r o u n d / . test ( lower ) ) return '#value' ;
116+ if ( / s i z e | f o n t / . test ( lower ) ) return '1rem' ;
117+ if ( / r a d i u s / . test ( lower ) ) return '4px' ;
118+ if ( / s p a c i n g | p a d d i n g | m a r g i n | g a p / . test ( lower ) ) return '1rem' ;
119+ if ( / s h a d o w / . test ( lower ) ) return '0 1px 2px rgba(0,0,0,.1)' ;
120+ return '#value' ;
121+ }
122+
95123// ─── Main Entry Point ───────────────────────────────────────────────────────
96124
97125export function getComponentQuickRef ( meta : ComponentMetadata ) : ComponentQuickRef {
@@ -131,7 +159,7 @@ export function getComponentQuickRef(meta: ComponentMetadata): ComponentQuickRef
131159 const cssProperties : QuickRefCssProperty [ ] = meta . cssProperties . map ( ( p ) => ( {
132160 name : p . name ,
133161 description : p . description ,
134- example : `${ p . name } : initial ;` ,
162+ example : `${ p . name } : ${ p . default ?? guessDefaultValue ( p . name ) } ;` ,
135163 } ) ) ;
136164
137165 const cssParts : QuickRefCssPart [ ] = meta . cssParts . map ( ( p ) => ( {
0 commit comments