@@ -14,14 +14,15 @@ import { ThemeTokenRegistry, ThemeTokens } from './token';
1414 useExisting : forwardRef ( ( ) => SimpleThemeManager ) ,
1515} )
1616export abstract class ThemeManager {
17- abstract apply < Builders extends ThemeBuilderMap > (
17+ abstract buildAndApply < Builders extends ThemeBuilderMap > (
1818 builders : Builders ,
1919 configs : ThemeBuilderConfigMapOf < Builders > ,
2020 ) : void ;
2121 abstract build < Builders extends ThemeBuilderMap > (
2222 builders : Builders ,
2323 configs : ThemeBuilderConfigMapOf < Builders > ,
2424 ) : ThemeTokens ;
25+ abstract apply ( tokens : ThemeTokens ) : void ;
2526}
2627
2728export interface ThemeBuilderMap {
@@ -41,12 +42,12 @@ export class SimpleThemeManager implements ThemeManager {
4142 protected injector = inject ( Injector ) ;
4243 protected tokens = inject ( ThemeTokenRegistry ) ;
4344
44- apply < Builders extends ThemeBuilderMap > (
45+ buildAndApply < Builders extends ThemeBuilderMap > (
4546 builders : Builders ,
4647 configs : ThemeBuilderConfigMapOf < Builders > ,
4748 ) : void {
4849 const tokens = this . build ( builders , configs ) ;
49- for ( const name in tokens ) this . tokens . set ( name , tokens [ name ] ) ;
50+ this . apply ( tokens ) ;
5051 }
5152
5253 build < Builders extends ThemeBuilderMap > (
@@ -61,4 +62,8 @@ export class SimpleThemeManager implements ThemeManager {
6162 { } ,
6263 ) ;
6364 }
65+
66+ apply ( tokens : ThemeTokens ) : void {
67+ for ( const name in tokens ) this . tokens . set ( name , tokens [ name ] ) ;
68+ }
6469}
0 commit comments