@@ -18,7 +18,14 @@ function buildPresetDescription(source: TweakcnRuntimePresetSource): string {
1818 : 'Imported from tweakcn runtime preset.' ;
1919}
2020
21- function mapRuntimeStylesToFields ( styles : RuntimeStyles ) : Partial < ThemeEditorFields > {
21+ function readRuntimeStyle ( styles : RuntimeStyles , key : string , fallbackStyles ?: RuntimeStyles ) : string | undefined {
22+ return styles [ key ] ?? fallbackStyles ?. [ key ] ;
23+ }
24+
25+ function mapRuntimeStylesToFields (
26+ styles : RuntimeStyles ,
27+ typographyFallbackStyles ?: RuntimeStyles ,
28+ ) : Partial < ThemeEditorFields > {
2229 const radius = styles . radius ?? DEFAULT_FIELDS . radius ;
2330 const ring = styles . ring ?? styles . primary ?? DEFAULT_FIELDS . ring ;
2431 const statusPalette = deriveStatusPalette ( styles ) ;
@@ -62,9 +69,9 @@ function mapRuntimeStylesToFields(styles: RuntimeStyles): Partial<ThemeEditorFie
6269 sidebarAccentForeground : styles [ 'sidebar-accent-foreground' ] ?? DEFAULT_FIELDS . sidebarAccentForeground ,
6370 sidebarBorder : styles [ 'sidebar-border' ] ?? DEFAULT_FIELDS . sidebarBorder ,
6471 sidebarRing : styles [ 'sidebar-ring' ] ?? DEFAULT_FIELDS . sidebarRing ,
65- fontSans : styles [ 'font-sans' ] ?? DEFAULT_FIELDS . fontSans ,
66- fontMono : styles [ 'font-mono' ] ?? DEFAULT_FIELDS . fontMono ,
67- letterSpacing : styles [ 'letter-spacing' ] ?? DEFAULT_FIELDS . letterSpacing ,
72+ fontSans : readRuntimeStyle ( styles , 'font-sans' , typographyFallbackStyles ) ?? DEFAULT_FIELDS . fontSans ,
73+ fontMono : readRuntimeStyle ( styles , 'font-mono' , typographyFallbackStyles ) ?? DEFAULT_FIELDS . fontMono ,
74+ letterSpacing : readRuntimeStyle ( styles , 'letter-spacing' , typographyFallbackStyles ) ?? DEFAULT_FIELDS . letterSpacing ,
6875 radius,
6976 shadowCard : buildShadow ( styles ) ,
7077 shadowFocus : `0 0 0 3px ${ toRgba ( ring , 0.24 ) } ` ,
@@ -78,7 +85,7 @@ function buildPresetFromRuntimeSource(source: TweakcnRuntimePresetSource): Theme
7885 const lightStyles = source . styles . light ;
7986 const darkStyles = source . styles . dark ;
8087 const lightFields = mapRuntimeStylesToFields ( lightStyles ) ;
81- const darkFields = mapRuntimeStylesToFields ( darkStyles ) ;
88+ const darkFields = mapRuntimeStylesToFields ( darkStyles , lightStyles ) ;
8289
8390 return {
8491 id : source . id ,
0 commit comments