diff --git a/.changeset/nice-scissors-think.md b/.changeset/nice-scissors-think.md new file mode 100644 index 0000000..56c7b41 --- /dev/null +++ b/.changeset/nice-scissors-think.md @@ -0,0 +1,5 @@ +--- +'@tokens-studio/sd-transforms': patch +--- + +Check for color transforms that the value is of type string, since other color object types could occur from previously ran transforms. diff --git a/package-lock.json b/package-lock.json index 9f22d13..5384c85 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@tokens-studio/sd-transforms", - "version": "1.2.3", + "version": "1.2.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@tokens-studio/sd-transforms", - "version": "1.2.3", + "version": "1.2.4", "license": "MIT", "dependencies": { "@bundled-es-modules/deepmerge": "^4.3.1", diff --git a/src/css/transformHEXRGBa.ts b/src/css/transformHEXRGBa.ts index 77d1e8a..6ac5716 100644 --- a/src/css/transformHEXRGBa.ts +++ b/src/css/transformHEXRGBa.ts @@ -24,8 +24,8 @@ export function transformHEXRGBaForCSS(token: DesignToken): DesignToken['value'] }); }; - const transformProp = (val: Record, prop: string) => { - if (val[prop] !== undefined) { + const transformProp = (val: Record, prop: string) => { + if (val[prop] !== undefined && typeof val[prop] === 'string') { val[prop] = transformHEXRGBa(val[prop]); } return val; diff --git a/src/register.ts b/src/register.ts index ff51914..9d14369 100644 --- a/src/register.ts +++ b/src/register.ts @@ -167,6 +167,7 @@ export async function register(sd: typeof StyleDictionary, transformOpts?: Trans type: 'value', transitive: true, filter: token => + typeof (token.$value ?? token.value) === 'string' && (token.$type ?? token.type) === 'color' && token.$extensions && token.$extensions['studio.tokens']?.modify,