1- import { densityAdjustmentUnits } from "@adaptive-web/adaptive-ui"
1+ import { densityAdjustmentUnits , DesignTokenMetadata } from "@adaptive-web/adaptive-ui"
22import {
33 accentBaseColor ,
44 accentFillDiscernible ,
@@ -148,12 +148,16 @@ import {
148148 warningStrokeSubtle ,
149149 wcagContrastLevel ,
150150} from "@adaptive-web/adaptive-ui/reference" ;
151- import { AdaptiveDesignToken , DesignTokenRegistry } from "./design-token-registry.js" ;
151+ import { AdaptiveDesignToken , AdaptiveDesignTokenOrGroup , DesignTokenRegistry } from "./design-token-registry.js" ;
152152
153153/**
154154 * A collection of DesignTokens for adding to a {@link DesignTokenRegistry}.
155155 */
156- type DesignTokenStore = Array < AdaptiveDesignToken > ;
156+ type Store < T extends { name : string } & DesignTokenMetadata > = Array < T > ;
157+
158+ type DesignTokenStore = Store < AdaptiveDesignToken > ;
159+
160+ type DesignTokenOrGroupStore = Store < AdaptiveDesignTokenOrGroup > ;
157161
158162const designTokens : DesignTokenStore = [
159163 accentBaseColor ,
@@ -203,7 +207,7 @@ const designTokens: DesignTokenStore = [
203207 strokeStrongRestDelta ,
204208] ;
205209
206- const colorTokens : DesignTokenStore = [
210+ const colorTokens : DesignTokenOrGroupStore = [
207211 // Layer
208212 layerFillFixedMinus4 ,
209213 layerFillFixedMinus3 ,
@@ -214,89 +218,89 @@ const colorTokens: DesignTokenStore = [
214218 layerFillFixedPlus2 ,
215219 layerFillFixedPlus3 ,
216220 layerFillFixedPlus4 ,
217- layerFillInteractive . rest ,
221+ layerFillInteractive ,
218222 // Fill
219223 accentBaseColor ,
220- accentFillStealth . rest ,
221- accentFillSubtle . rest ,
222- accentFillIdeal . rest ,
223- accentFillDiscernible . rest ,
224- accentFillReadable . rest ,
224+ accentFillStealth ,
225+ accentFillSubtle ,
226+ accentFillIdeal ,
227+ accentFillDiscernible ,
228+ accentFillReadable ,
225229 highlightBaseColor ,
226- highlightFillStealth . rest ,
227- highlightFillSubtle . rest ,
228- highlightFillIdeal . rest ,
229- highlightFillDiscernible . rest ,
230- highlightFillReadable . rest ,
230+ highlightFillStealth ,
231+ highlightFillSubtle ,
232+ highlightFillIdeal ,
233+ highlightFillDiscernible ,
234+ highlightFillReadable ,
231235 criticalBaseColor ,
232- criticalFillStealth . rest ,
233- criticalFillSubtle . rest ,
234- criticalFillIdeal . rest ,
235- criticalFillDiscernible . rest ,
236- criticalFillReadable . rest ,
236+ criticalFillStealth ,
237+ criticalFillSubtle ,
238+ criticalFillIdeal ,
239+ criticalFillDiscernible ,
240+ criticalFillReadable ,
237241 warningBaseColor ,
238- warningFillStealth . rest ,
239- warningFillSubtle . rest ,
240- warningFillIdeal . rest ,
241- warningFillDiscernible . rest ,
242- warningFillReadable . rest ,
242+ warningFillStealth ,
243+ warningFillSubtle ,
244+ warningFillIdeal ,
245+ warningFillDiscernible ,
246+ warningFillReadable ,
243247 successBaseColor ,
244- successFillStealth . rest ,
245- successFillSubtle . rest ,
246- successFillIdeal . rest ,
247- successFillDiscernible . rest ,
248- successFillReadable . rest ,
248+ successFillStealth ,
249+ successFillSubtle ,
250+ successFillIdeal ,
251+ successFillDiscernible ,
252+ successFillReadable ,
249253 infoBaseColor ,
250- infoFillStealth . rest ,
251- infoFillSubtle . rest ,
252- infoFillIdeal . rest ,
253- infoFillDiscernible . rest ,
254- infoFillReadable . rest ,
254+ infoFillStealth ,
255+ infoFillSubtle ,
256+ infoFillIdeal ,
257+ infoFillDiscernible ,
258+ infoFillReadable ,
255259 neutralBaseColor ,
256- neutralFillStealth . rest ,
257- neutralFillSubtle . rest ,
258- neutralFillIdeal . rest ,
259- neutralFillDiscernible . rest ,
260- neutralFillReadable . rest ,
260+ neutralFillStealth ,
261+ neutralFillSubtle ,
262+ neutralFillIdeal ,
263+ neutralFillDiscernible ,
264+ neutralFillReadable ,
261265 // Stroke
262266 focusStroke ,
263267 focusStrokeOuter ,
264268 focusStrokeInner ,
265- accentStrokeSafety . rest ,
266- accentStrokeSubtle . rest ,
267- accentStrokeDiscernible . rest ,
268- accentStrokeReadable . rest ,
269- accentStrokeStrong . rest ,
270- highlightStrokeSafety . rest ,
271- highlightStrokeSubtle . rest ,
272- highlightStrokeDiscernible . rest ,
273- highlightStrokeReadable . rest ,
274- highlightStrokeStrong . rest ,
275- criticalStrokeSafety . rest ,
276- criticalStrokeSubtle . rest ,
277- criticalStrokeDiscernible . rest ,
278- criticalStrokeReadable . rest ,
279- criticalStrokeStrong . rest ,
280- warningStrokeSafety . rest ,
281- warningStrokeSubtle . rest ,
282- warningStrokeDiscernible . rest ,
283- warningStrokeReadable . rest ,
284- warningStrokeStrong . rest ,
285- successStrokeSafety . rest ,
286- successStrokeSubtle . rest ,
287- successStrokeDiscernible . rest ,
288- successStrokeReadable . rest ,
289- successStrokeStrong . rest ,
290- infoStrokeSafety . rest ,
291- infoStrokeSubtle . rest ,
292- infoStrokeDiscernible . rest ,
293- infoStrokeReadable . rest ,
294- infoStrokeStrong . rest ,
295- neutralStrokeSafety . rest ,
296- neutralStrokeSubtle . rest ,
297- neutralStrokeDiscernible . rest ,
298- neutralStrokeReadable . rest ,
299- neutralStrokeStrong . rest ,
269+ accentStrokeSafety ,
270+ accentStrokeSubtle ,
271+ accentStrokeDiscernible ,
272+ accentStrokeReadable ,
273+ accentStrokeStrong ,
274+ highlightStrokeSafety ,
275+ highlightStrokeSubtle ,
276+ highlightStrokeDiscernible ,
277+ highlightStrokeReadable ,
278+ highlightStrokeStrong ,
279+ criticalStrokeSafety ,
280+ criticalStrokeSubtle ,
281+ criticalStrokeDiscernible ,
282+ criticalStrokeReadable ,
283+ criticalStrokeStrong ,
284+ warningStrokeSafety ,
285+ warningStrokeSubtle ,
286+ warningStrokeDiscernible ,
287+ warningStrokeReadable ,
288+ warningStrokeStrong ,
289+ successStrokeSafety ,
290+ successStrokeSubtle ,
291+ successStrokeDiscernible ,
292+ successStrokeReadable ,
293+ successStrokeStrong ,
294+ infoStrokeSafety ,
295+ infoStrokeSubtle ,
296+ infoStrokeDiscernible ,
297+ infoStrokeReadable ,
298+ infoStrokeStrong ,
299+ neutralStrokeSafety ,
300+ neutralStrokeSubtle ,
301+ neutralStrokeDiscernible ,
302+ neutralStrokeReadable ,
303+ neutralStrokeStrong ,
300304] ;
301305
302306const strokeWidthTokens : DesignTokenStore = [
@@ -369,9 +373,9 @@ const effectsTokens: DesignTokenStore = [
369373 elevationDialog ,
370374] ;
371375
372- function registerStore (
373- store : DesignTokenStore ,
374- registry : DesignTokenRegistry
376+ function registerStore < T extends { name : string } & DesignTokenMetadata > (
377+ store : Store < T > ,
378+ registry : DesignTokenRegistry < T >
375379) : void {
376380 store . forEach ( ( token ) => {
377381 // console.log("registerStore", token);
@@ -384,7 +388,7 @@ function registerStore(
384388// interface for mapping tokens to other recipes or fixed values as well.
385389// For now we've grouped the color tokens since by default those are all recipes/derived.
386390
387- export const registerTokens = ( registry : DesignTokenRegistry ) => {
391+ export const registerTokens = ( registry : DesignTokenRegistry < AdaptiveDesignToken > ) => {
388392 registerStore ( designTokens , registry ) ;
389393 // This could be optimized, but some tokens are intended to be modified as well as applied as style properties.
390394 registerStore ( strokeWidthTokens , registry ) ;
@@ -393,7 +397,7 @@ export const registerTokens = (registry: DesignTokenRegistry) => {
393397 registerStore ( effectsTokens , registry ) ;
394398} ;
395399
396- export const registerAppliableTokens = ( registry : DesignTokenRegistry ) => {
400+ export const registerAppliableTokens = ( registry : DesignTokenRegistry < AdaptiveDesignTokenOrGroup > ) => {
397401 registerStore ( colorTokens , registry ) ;
398402 registerStore ( strokeWidthTokens , registry ) ;
399403 registerStore ( densityTokens , registry ) ;
0 commit comments