css-variables.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.transformToken = exports.token2CSSVar = exports.serializeCSSVar = void 0;
  7. var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
  8. var token2CSSVar = exports.token2CSSVar = function token2CSSVar(token) {
  9. var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
  10. return "--".concat(prefix ? "".concat(prefix, "-") : '').concat(token).replace(/([a-z0-9])([A-Z])/g, '$1-$2').replace(/([A-Z]+)([A-Z][a-z0-9]+)/g, '$1-$2').replace(/([a-z])([A-Z0-9])/g, '$1-$2').toLowerCase();
  11. };
  12. var serializeCSSVar = exports.serializeCSSVar = function serializeCSSVar(cssVars, hashId, options) {
  13. if (!Object.keys(cssVars).length) {
  14. return '';
  15. }
  16. return ".".concat(hashId).concat(options !== null && options !== void 0 && options.scope ? ".".concat(options.scope) : '', "{").concat(Object.entries(cssVars).map(function (_ref) {
  17. var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
  18. key = _ref2[0],
  19. value = _ref2[1];
  20. return "".concat(key, ":").concat(value, ";");
  21. }).join(''), "}");
  22. };
  23. var transformToken = exports.transformToken = function transformToken(token, themeKey, config) {
  24. var cssVars = {};
  25. var result = {};
  26. Object.entries(token).forEach(function (_ref3) {
  27. var _config$preserve, _config$ignore;
  28. var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
  29. key = _ref4[0],
  30. value = _ref4[1];
  31. if (config !== null && config !== void 0 && (_config$preserve = config.preserve) !== null && _config$preserve !== void 0 && _config$preserve[key]) {
  32. result[key] = value;
  33. } else if ((typeof value === 'string' || typeof value === 'number') && !(config !== null && config !== void 0 && (_config$ignore = config.ignore) !== null && _config$ignore !== void 0 && _config$ignore[key])) {
  34. var _config$unitless;
  35. var cssVar = token2CSSVar(key, config === null || config === void 0 ? void 0 : config.prefix);
  36. cssVars[cssVar] = typeof value === 'number' && !(config !== null && config !== void 0 && (_config$unitless = config.unitless) !== null && _config$unitless !== void 0 && _config$unitless[key]) ? "".concat(value, "px") : String(value);
  37. result[key] = "var(".concat(cssVar, ")");
  38. }
  39. });
  40. return [result, serializeCSSVar(cssVars, themeKey, {
  41. scope: config === null || config === void 0 ? void 0 : config.scope
  42. })];
  43. };