Skip to content

Commit 41705e4

Browse files
committed
fix(useTheme): resolve non-aliases in themes
1 parent 5dd7abc commit 41705e4

File tree

3 files changed

+5
-1
lines changed

3 files changed

+5
-1
lines changed

apps/docs/src/pages/composables/registration/use-tokens.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ features.resolve('rtl') // { value: true, variation: 'toggle' }
6363
interface TokenTicket extends RegistryTicket {}
6464

6565
interface TokenContext<Z extends TokenTicket> extends RegistryContext<Z> {
66+
isAlias: (token: unknown) => token is string
6667
resolve: (token: string | TokenAlias) => unknown | undefined
6768
}
6869

@@ -89,6 +90,7 @@ features.resolve('rtl') // { value: true, variation: 'toggle' }
8990
* The `flat` option keeps nested objects intact at their base id.
9091
* Supports tokens defined as primitive values or as aliases referencing other tokens.
9192
* Provides a resolve method to recursively resolve tokens and aliases into their final string value.
93+
* Exposes an isAlias method to detect whether a string is an alias (e.g. "{color.primary}").
9294
* Utilizes caching for efficient resolution of repeated token lookups.
9395
* Integrates with a generic registry system (useRegistry) for management of tokens by ID.
9496

packages/0/src/composables/useTheme/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ export function createTheme<
114114
function resolve (colors: Colors): Colors {
115115
const resolved: Colors = {}
116116
for (const [key, value] of Object.entries(colors)) {
117-
resolved[key] = tokens.resolve(value) as string
117+
resolved[key] = tokens.isAlias(value) ? tokens.resolve(value) as string : value
118118
}
119119

120120
return resolved

packages/0/src/composables/useTokens/index.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ export type FlatTokenCollection = {
3939
export interface TokenTicket extends RegistryTicket {}
4040

4141
export interface TokenContext<Z extends TokenTicket> extends RegistryContext<Z> {
42+
isAlias: (token: unknown) => token is string
4243
resolve: (token: string | TokenAlias) => unknown | undefined
4344
}
4445

@@ -157,6 +158,7 @@ export function useTokens<
157158
return {
158159
...registry,
159160
resolve,
161+
isAlias,
160162
} as E
161163
}
162164

0 commit comments

Comments
 (0)