Skip to content

Commit 962cec6

Browse files
committed
AUI: Add support for looking up Token Groups in anatomy
1 parent e21f5ce commit 962cec6

File tree

4 files changed

+31
-5
lines changed

4 files changed

+31
-5
lines changed

packages/adaptive-ui/docs/api-report.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ export class DesignTokenMultiValue<T extends CSSDirective | string> extends Arra
268268

269269
// @public
270270
export abstract class DesignTokenRegistry {
271+
static Groups: Map<string, InteractiveTokenGroup<any>>;
271272
static Shared: Map<string, DesignToken<any>>;
272273
}
273274

packages/adaptive-ui/src/bin/aui.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -264,7 +264,16 @@ function jsonToAUIStyleSheet(obj: SerializableAnatomy): AUIStyleSheet {
264264
const target = entry[0];
265265
const value = entry[1];
266266
const token = DesignTokenRegistry.Shared.get(value);
267-
properties[target] = token ? token as CSSDesignToken<any> : value;
267+
if (token) {
268+
properties[target] = token as CSSDesignToken<any>;
269+
} else {
270+
const group = DesignTokenRegistry.Groups.get(value);
271+
if (group) {
272+
properties[target] = group;
273+
} else {
274+
properties[target] = value;
275+
}
276+
}
268277
});
269278
}
270279

packages/adaptive-ui/src/core/adaptive-design-tokens.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { CSSDirective, cssDirective, htmlDirective } from "@microsoft/fast-eleme
22
import { CSSDesignToken, DesignToken, ValuesOf } from "@microsoft/fast-foundation";
33
import { applyMixins } from './apply-mixins.js';
44
import { StyleProperty } from "./modules/types.js";
5+
import { InteractiveTokenGroup } from "./types.js";
56

67
/**
78
* Standard design token types from the community group and new types defined in Adaptive UI.
@@ -95,6 +96,14 @@ export abstract class DesignTokenRegistry {
9596
* The shared Design Token registry.
9697
*/
9798
public static Shared = new Map<string, DesignToken<any>>();
99+
100+
/**
101+
* The Design Token Group registry.
102+
*
103+
* @remarks
104+
* Currently only Interactive Token Groups are meaningful and supported.
105+
*/
106+
public static Groups = new Map<string, InteractiveTokenGroup<any>>();
98107
}
99108

100109
/**

packages/adaptive-ui/src/core/token-helpers-color.ts

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import {
1515
import { Palette } from "./color/palette.js";
1616
import { Swatch } from "./color/swatch.js";
1717
import { StyleProperty } from "./modules/types.js";
18-
import { DesignTokenType, TypedCSSDesignToken, TypedDesignToken } from "./adaptive-design-tokens.js";
18+
import { DesignTokenRegistry, DesignTokenType, TypedCSSDesignToken, TypedDesignToken } from "./adaptive-design-tokens.js";
1919
import { Recipe, RecipeOptional } from "./recipes.js";
2020
import { createTokenNonCss, createTokenSwatch } from "./token-helpers.js";
2121
import { InteractiveState, InteractiveTokenGroup } from "./types.js";
@@ -158,7 +158,8 @@ export function createTokenColorSet(
158158
(resolve: DesignTokenResolver) =>
159159
resolve(recipeToken).evaluate(resolve)
160160
);
161-
return {
161+
162+
const group = {
162163
name,
163164
type: DesignTokenType.color,
164165
intendedFor: valueToken.intendedFor,
@@ -168,6 +169,8 @@ export function createTokenColorSet(
168169
focus: createTokenColorSetState(valueToken, InteractiveState.focus),
169170
disabled: createTokenColorSetState(valueToken, InteractiveState.disabled),
170171
};
172+
DesignTokenRegistry.Groups.set(name, group);
173+
return group;
171174
}
172175

173176
/**
@@ -214,7 +217,7 @@ export function createForegroundSet(
214217
);
215218
}
216219

217-
return {
220+
const group = {
218221
name: setName,
219222
type: DesignTokenType.color,
220223
intendedFor: foregroundRecipe.intendedFor,
@@ -224,6 +227,8 @@ export function createForegroundSet(
224227
focus: createState(InteractiveState.rest, InteractiveState.focus),
225228
disabled: createState(InteractiveState.disabled, InteractiveState.disabled),
226229
};
230+
DesignTokenRegistry.Groups.set(setName, group);
231+
return group;
227232
}
228233

229234
/**
@@ -264,7 +269,7 @@ export function createForegroundSetBySet(
264269
);
265270
}
266271

267-
return {
272+
const group = {
268273
name: setName,
269274
intendedFor: foregroundRecipe.intendedFor,
270275
type: DesignTokenType.color,
@@ -274,4 +279,6 @@ export function createForegroundSetBySet(
274279
focus: createState(InteractiveState.focus),
275280
disabled: createState(InteractiveState.disabled),
276281
};
282+
DesignTokenRegistry.Groups.set(setName, group);
283+
return group;
277284
}

0 commit comments

Comments
 (0)