11import { calc } from '@csstools/css-calc' ;
22import { observable } from "@microsoft/fast-element" ;
3- import { type DesignToken } from "@microsoft/fast-foundation" ;
3+ import { DesignToken } from "@microsoft/fast-foundation" ;
44import { Color } from "@adaptive-web/adaptive-ui" ;
55import { formatHex8 } from 'culori' ;
6- import { DesignTokenDefinition , DesignTokenValue , PluginUINodeData } from "@adaptive-web/adaptive-ui-designer-core" ;
6+ import { DesignTokenValue , PluginUINodeData } from "@adaptive-web/adaptive-ui-designer-core" ;
77import { UIController } from "./ui-controller.js" ;
88import { ElementsController } from "./ui-controller-elements.js" ;
99
@@ -12,9 +12,9 @@ import { ElementsController } from "./ui-controller-elements.js";
1212 */
1313export interface UIDesignTokenValue {
1414 /**
15- * The definition of the design token.
15+ * The design token.
1616 */
17- definition : DesignTokenDefinition ;
17+ token : DesignToken < any > ;
1818
1919 /**
2020 * Represents the design token value if all selected nodes have the same value.
@@ -41,7 +41,7 @@ export class DesignTokenController {
4141 * A list of all design tokens which are not already applied to the selected nodes.
4242 */
4343 @observable
44- public availableDesignTokens : DesignTokenDefinition [ ] | null = null ;
44+ public availableDesignTokens : DesignToken < any > [ ] | null = null ;
4545
4646 constructor (
4747 private readonly controller : UIController ,
@@ -67,8 +67,8 @@ export class DesignTokenController {
6767
6868 // Get all design tokens that can be added, which is the full list except any already applied.
6969 this . availableDesignTokens = this . controller . designTokenRegistry . entries . filter ( ( definition ) =>
70- this . designTokenValues ?. find ( ( appliedToken ) => appliedToken . definition . id === definition . id ) === undefined
71- ) ;
70+ this . designTokenValues ?. find ( ( appliedToken ) => appliedToken . token . name === definition . id ) === undefined
71+ ) . map ( def => def . token ) ;
7272 }
7373
7474 /**
@@ -92,12 +92,11 @@ export class DesignTokenController {
9292
9393 const allDesignTokens = this . controller . designTokenRegistry . entries ;
9494
95- allDesignTokens . forEach ( designToken => {
96- if ( tokenValues . has ( designToken . id ) ) {
97- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
98- const set = tokenValues . get ( designToken . id ) ! ;
95+ allDesignTokens . forEach ( def => {
96+ if ( tokenValues . has ( def . id ) ) {
97+ const set = tokenValues . get ( def . id ) ;
9998 designTokens . push ( {
100- definition : designToken ,
99+ token : def . token ,
101100 value : set . size === 1 ? set . values ( ) . next ( ) . value : undefined ,
102101 multipleValues : set . size > 1 ? [ ...set ] . join ( ", " ) : undefined ,
103102 } ) ;
@@ -135,57 +134,57 @@ export class DesignTokenController {
135134 return val ;
136135 }
137136
138- private setDesignTokenForNode ( node : PluginUINodeData , definition : DesignTokenDefinition , value : any ) : void {
137+ private setDesignTokenForNode ( node : PluginUINodeData , token : DesignToken < any > , value : any ) : void {
139138 if ( value ) {
140139 const designToken = new DesignTokenValue ( value ) ;
141- node . designTokens . set ( definition . id , designToken ) ;
140+ node . designTokens . set ( token . name , designToken ) ;
142141 } else {
143- node . designTokens . delete ( definition . id ) ;
142+ node . designTokens . delete ( token . name ) ;
144143 }
145144 // console.log(" after set designTokens", node.id, node.type, node.designTokens);
146145
147146 const element = this . elements . getElementForNode ( node ) ;
148- this . elements . setDesignTokenForElement ( element , definition . token , value ) ;
147+ this . elements . setDesignTokenForElement ( element , token , value ) ;
149148 }
150149
151150 /**
152151 * Sets a design token value (override) for the selected nodes.
153152 *
154- * @param definition - The design token definition
153+ * @param token - The design token definition
155154 * @param value - The value for this design token for the selected nodes
156155 */
157- public setDesignToken ( definition : DesignTokenDefinition , value : any ) : void {
156+ public setDesignToken ( token : DesignToken < any > , value : any ) : void {
158157 const nodes = this . controller . selectedNodes ;
159158
160159 // console.log("--------------------------------");
161- // console.log("DesignTokenController.setDesignToken", definition , value, typeof value, nodes);
160+ // console.log("DesignTokenController.setDesignToken", token , value, typeof value, nodes);
162161
163162 nodes . forEach ( node =>
164- this . setDesignTokenForNode ( node , definition , value )
163+ this . setDesignTokenForNode ( node , token , value )
165164 ) ;
166165
167166 this . setupDesignTokenObservables ( ) ;
168167
169- this . controller . refreshSelectedNodes ( "setDesignToken " + definition . id ) ;
168+ this . controller . refreshSelectedNodes ( "setDesignToken " + token . name ) ;
170169 }
171170
172171 /**
173172 * Removes a design token value (override) from the selected nodes.
174173 *
175- * @param definition - The design token definition
174+ * @param token - The design token definition
176175 */
177- public removeDesignToken ( definition : DesignTokenDefinition ) : void {
176+ public removeDesignToken ( token : DesignToken < any > ) : void {
178177 const nodes = this . controller . selectedNodes ;
179178
180179 // console.log("--------------------------------");
181- // console.log("DesignTokenController.removeDesignToken", definition.id , nodes);
180+ // console.log("DesignTokenController.removeDesignToken", token.name , nodes);
182181
183182 nodes . forEach ( node =>
184- this . setDesignTokenForNode ( node , definition , null )
183+ this . setDesignTokenForNode ( node , token , null )
185184 ) ;
186185
187186 this . setupDesignTokenObservables ( ) ;
188187
189- this . controller . refreshSelectedNodes ( "removeDesignToken " + definition . id ) ;
188+ this . controller . refreshSelectedNodes ( "removeDesignToken " + token . name ) ;
190189 }
191190}
0 commit comments