Skip to content

Commit 7e3c259

Browse files
committed
feat(theming): use name to prefix TokensBuilder tokens
1 parent 0b27e52 commit 7e3c259

1 file changed

Lines changed: 14 additions & 3 deletions

File tree

packages/theming/src/builders/tokens.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,29 @@ export interface TokensBuilderConfig extends ThemeTokens {}
1111
* requested to generate tokens.
1212
*
1313
* @remarks
14-
* The `name` assigned to this builder has no effects.
14+
* The `name` assigned to this builder will be used as the prefix for the
15+
* tokens. An empty string can be used to avoid prefixing the tokens.
1516
*
1617
* @example
1718
* ```ts
18-
* withThemeBuilder("name-does-not-matter", TokensBuilder, {
19+
* withThemeBuilder("tokens-", TokensBuilder, {
20+
* "primary-color": "#ff0000",
21+
* }),
22+
* ```
23+
*
24+
* @example
25+
* ```ts
26+
* withThemeBuilder("", TokensBuilder, {
1927
* "primary-color": "#ff0000",
2028
* }),
2129
* ```
2230
*/
2331
@Injectable({ providedIn: 'root' })
2432
export class TokensBuilder implements ThemeBuilder<TokensBuilderConfig> {
2533
build(context: ThemeBuilderContext<TokensBuilderConfig>): ThemeTokens {
26-
return context.config;
34+
const tokens: ThemeTokens = {};
35+
for (const [key, value] of Object.entries(context.config))
36+
tokens[`${context.name}${key}`] = value;
37+
return tokens;
2738
}
2839
}

0 commit comments

Comments
 (0)