UNPKG

@primer/primitives

Version:

Typography, spacing, and color primitives for Primer design system

26 lines (25 loc) 1.84 kB
import { transformTokens } from './utilities/transformTokens.js'; import { asArray } from '../utilities/asArray.js'; export const themeOverrides = { name: 'themeOverrides', preprocessor: (dictionary, config) => { var _a, _b, _c, _d, _e, _f; const extensionProp = ((_b = (_a = config.options) === null || _a === void 0 ? void 0 : _a.themeOverrides) === null || _b === void 0 ? void 0 : _b.extensionProp) || 'org.primer.overrides'; const valueProp = ((_d = (_c = config.options) === null || _c === void 0 ? void 0 : _c.themeOverrides) === null || _d === void 0 ? void 0 : _d.valueProp) || '$value'; const [currentTheme, fallbackTheme] = asArray((_f = (_e = config.options) === null || _e === void 0 ? void 0 : _e.themeOverrides) === null || _f === void 0 ? void 0 : _f.theme); const tokens = transformTokens(dictionary, token => { var _a, _b, _c, _d, _e; // return early if no theme value is set if (!currentTheme || !((_a = token.$extensions) === null || _a === void 0 ? void 0 : _a[extensionProp]) || (!((_b = token.$extensions) === null || _b === void 0 ? void 0 : _b[extensionProp][currentTheme]) && !((_c = token.$extensions) === null || _c === void 0 ? void 0 : _c[extensionProp][fallbackTheme]))) { return token; } // get override const override = ((_d = token.$extensions) === null || _d === void 0 ? void 0 : _d[extensionProp][currentTheme]) || ((_e = token.$extensions) === null || _e === void 0 ? void 0 : _e[extensionProp][fallbackTheme]); // token an theme value exist return Object.assign(Object.assign({}, token), (typeof override === 'object' ? override : { [valueProp]: override })); }); return tokens; }, };