@maggioli-design-system/design-tokens
Version:
This is the Design Token library of Maggioli Design System, here you'll find all the visual data used around the libraries.
62 lines (61 loc) • 2.79 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.flutterFontFormat = exports.flutterFontWeightTransform = exports.flutterToDoubleTransform = void 0;
const handlebars_1 = __importDefault(require("handlebars"));
const fs_1 = __importDefault(require("fs"));
const path_1 = __importDefault(require("path"));
const package_json_1 = require("../../../package.json");
const helpers_1 = require("../helpers");
const helpers_2 = require("./helpers");
const templatePath = path_1.default.resolve(__dirname, './template.hbs');
const template = handlebars_1.default.compile(fs_1.default.readFileSync(templatePath).toString());
handlebars_1.default.registerHelper('getFirstFont', helpers_1.firstArrayElement);
handlebars_1.default.registerHelper('ifEquals', helpers_1.ifEquals);
handlebars_1.default.registerHelper('leadZero', helpers_1.leadZero);
handlebars_1.default.registerHelper('pascalCase', helpers_1.pascalCase);
handlebars_1.default.registerHelper('rgbChannel', helpers_1.rgbChannel);
handlebars_1.default.registerHelper('safeString', helpers_1.safeString);
handlebars_1.default.registerHelper('ifDartTextStyleProp', helpers_1.ifDartTextStyleProp);
handlebars_1.default.registerHelper('getArrayFontName', (value) => {
if (Array.isArray(value))
return value;
return new handlebars_1.default.SafeString(value.replaceAll("'", '').replaceAll(',', '","'));
});
handlebars_1.default.registerHelper('ifFlutterTextThemeVariant', helpers_2.ifFlutterTextThemeVariant);
handlebars_1.default.registerHelper('flutterTextThemeVariant', helpers_2.flutterTextThemeVariant);
handlebars_1.default.registerHelper('ifFlutterCompatible', helpers_2.ifFlutterCompatible);
exports.flutterToDoubleTransform = {
name: 'flutter/toDouble',
type: 'value',
matcher: (token) => {
const attribute = ['lineHeight', 'fontSize', 'letterSpacing'];
return attribute.includes(token.attributes?.state ?? '');
},
transformer: function (token) {
return parseFloat(token.original.value);
},
};
exports.flutterFontWeightTransform = {
name: 'flutter/fontWeight',
type: 'value',
matcher: (token) => {
return token.attributes?.state === 'fontWeight';
},
transformer: function (token) {
return `FontWeight.w${token.original.value}`;
},
};
exports.flutterFontFormat = {
name: 'flutter/font',
formatter: ({ dictionary, platform }) => {
return template({
properties: dictionary.properties,
date: new Date().toUTCString(),
options: platform,
version: package_json_1.version,
});
},
};