@xcritical/theme
Version:
282 lines (257 loc) • 8.4 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var get = _interopDefault(require('lodash.get'));
var isEmpty = _interopDefault(require('lodash.isempty'));
var memoize = _interopDefault(require('micro-memoize'));
var fastEquals = require('fast-equals');
var styledComponents = require('styled-components');
var utilitify = require('utilitify');
var WHITE = '#FFFFFF';
var BLUE = '#0078FF';
var TEAL_BLUE = '#00CAFF';
var ORANGE = '#FF8F00';
var ROSE_MADDER = '#E71D36';
var GREEN = '#2DD070';
var JUNGLE_GREEN = '#1B998B';
var PORTLAND_ORANGE = '#F46036';
var VERDIGRIS = '#5ABCB9';
var GOLDENROD = '#D5A021';
var PURPLE = '#5A51DE';
var BDAZZLED_BLUE = '#2F6690';
var PINK = '#FF004F';
var RED = '#E3111A';
var BRONZE = '#C67C3B';
var TIFFANY = '#1ACEB3';
var YELLOW = '#FFC800';
var ORCHID = '#B959FF';
var BLACK = ' #000';
var BLACK_RAISIN = '#212734';
var DEFAULT = '#212734';
var BLACK_CHAROCOAL = '#31394C';
var CHAROCOAL = BLACK_CHAROCOAL;
var PAYNES_GRAY = '#3D465E';
var GRAY = '#F0F0F0';
var GRAY_BLUE = '#5a6268';
var DARK_LIME = '#28a745';
var BRIGHT_RED = '#dc3545';
var VIVID_YELLOW = '#ffc107';
var STRONG_CYAN = '#17a2b8';
var GRAY_LIGHT = '#f8f9fa';
var PRIMARY = BLUE;
var SECONDARY = GRAY_BLUE;
var SUCCESS = DARK_LIME;
var DANGER = BRIGHT_RED;
var WARNING = VIVID_YELLOW;
var INFO = STRONG_CYAN;
var DARK = PAYNES_GRAY;
var LIGHT = GRAY_LIGHT;
var colors = {
WHITE: WHITE,
BLUE: BLUE,
TEAL_BLUE: TEAL_BLUE,
ORANGE: ORANGE,
ROSE_MADDER: ROSE_MADDER,
GREEN: GREEN,
JUNGLE_GREEN: JUNGLE_GREEN,
PORTLAND_ORANGE: PORTLAND_ORANGE,
VERDIGRIS: VERDIGRIS,
GOLDENROD: GOLDENROD,
PURPLE: PURPLE,
BDAZZLED_BLUE: BDAZZLED_BLUE,
PINK: PINK,
RED: RED,
BRONZE: BRONZE,
TIFFANY: TIFFANY,
YELLOW: YELLOW,
ORCHID: ORCHID,
BLACK: BLACK,
BLACK_RAISIN: BLACK_RAISIN,
DEFAULT: DEFAULT,
BLACK_CHAROCOAL: BLACK_CHAROCOAL,
CHAROCOAL: CHAROCOAL,
PAYNES_GRAY: PAYNES_GRAY,
GRAY: GRAY,
GRAY_BLUE: GRAY_BLUE,
DARK_LIME: DARK_LIME,
BRIGHT_RED: BRIGHT_RED,
VIVID_YELLOW: VIVID_YELLOW,
STRONG_CYAN: STRONG_CYAN,
GRAY_LIGHT: GRAY_LIGHT,
PRIMARY: PRIMARY,
SECONDARY: SECONDARY,
SUCCESS: SUCCESS,
DANGER: DANGER,
WARNING: WARNING,
INFO: INFO,
DARK: DARK,
LIGHT: LIGHT
};
function _extends() {
_extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];
for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}
return target;
};
return _extends.apply(this, arguments);
}
function _taggedTemplateLiteralLoose(strings, raw) {
if (!raw) {
raw = strings.slice(0);
}
strings.raw = raw;
return strings;
}
var _templateObject;
var getAppearancePath = function getAppearancePath(appearanceName, propertyPath // eslint-disable-next-line function-paren-newline
) {
if (appearanceName === void 0) {
appearanceName = 'default';
}
var res = ['appearance', appearanceName].concat(Array.isArray(propertyPath) ? propertyPath : [propertyPath]).filter(function (item) {
return !!item;
});
return res;
};
var mergeBaseTheme = /*#__PURE__*/memoize(function (namespace, defaultTheme, theme) {
return namespace && theme[namespace] && !isEmpty(theme[namespace]) ? utilitify.mergeDeep(defaultTheme, theme[namespace]) : defaultTheme;
}, {
isEqual: fastEquals.shallowEqual
});
var getThemedState = function getThemedState(namespace, defaultTheme) {
return memoize(function (theme, propertyPath) {
if (theme === void 0) {
theme = {};
}
var componentTheme = mergeBaseTheme(namespace, defaultTheme, theme);
return propertyPath ? get(componentTheme, propertyPath) : componentTheme;
}, {
isEqual: fastEquals.shallowEqual
});
};
var compileAppearanceTheme = /*#__PURE__*/memoize(function (namespace, defaultTheme, theme, appearanceName, baseAppearanceName) {
var themeExtractor = getThemedState(namespace, defaultTheme);
if (appearanceName !== baseAppearanceName) {
return utilitify.mergeDeep(themeExtractor(theme, getAppearancePath(baseAppearanceName)) || {}, themeExtractor(theme, getAppearancePath(appearanceName)) || {});
}
return themeExtractor(theme, getAppearancePath(appearanceName)) || {};
}, {
isEqual: fastEquals.shallowEqual
});
function getStatesTheme(theme, stateName, baseState) {
if (baseState === void 0) {
baseState = 'default';
}
var merged = utilitify.mergeDeep(get(theme, baseState, {}), get(theme, stateName, {}));
return function (propertyPath, defaultValue) {
return propertyPath ? get(merged, propertyPath, defaultValue) : merged;
};
}
function getAppearanceTheme(namespace, defaultTheme) {
return memoize(function (theme, appearanceName, propertyPath, baseAppearanceName) {
var themeExtractor = getThemedState(namespace, defaultTheme);
var compiledTheme = compileAppearanceTheme(namespace, defaultTheme, theme, appearanceName, baseAppearanceName != null ? baseAppearanceName : 'default');
if (propertyPath) {
return get(compiledTheme, propertyPath) || themeExtractor(theme, propertyPath);
}
return compiledTheme;
}, {
isEqual: fastEquals.shallowEqual
});
}
var getFontStyle = function getFontStyle(_ref) {
var size = _ref.size,
weight = _ref.weight,
lineHeight = _ref.lineHeight,
_ref$lineHeightRatio = _ref.lineHeightRatio,
lineHeightRatio = _ref$lineHeightRatio === void 0 ? 1.69 : _ref$lineHeightRatio;
return styledComponents.css(_templateObject || (_templateObject = _taggedTemplateLiteralLoose(["\n ", ";\n ", ";\n"])), weight ? "font-weight: " + weight : null, size ? "font-size: " + size + "px; line-height: " + (lineHeight != null ? lineHeight : lineHeightRatio) + ";" : null);
};
var getFontObj = function getFontObj(_temp) {
var _ref2 = _temp === void 0 ? {} : _temp,
size = _ref2.size,
weight = _ref2.weight,
lineHeight = _ref2.lineHeight,
_ref2$lineHeightRatio = _ref2.lineHeightRatio,
lineHeightRatio = _ref2$lineHeightRatio === void 0 ? 1.69 : _ref2$lineHeightRatio;
return _extends({}, weight && {
fontWeight: weight
}, size && {
fontSize: size + "px",
lineHeight: lineHeight != null ? lineHeight : lineHeightRatio
});
};
var rtlSide = function rtlSide(isRTL, property) {
if (isRTL) {
if (property === 'left') {
return 'right';
}
if (property === 'right') {
return 'left';
}
}
return property;
};
var rtlSwapper = function rtlSwapper(isRTL, left, right) {
if (isRTL) {
return [right, left];
}
return [left, right];
};
exports.BDAZZLED_BLUE = BDAZZLED_BLUE;
exports.BLACK = BLACK;
exports.BLACK_CHAROCOAL = BLACK_CHAROCOAL;
exports.BLACK_RAISIN = BLACK_RAISIN;
exports.BLUE = BLUE;
exports.BRIGHT_RED = BRIGHT_RED;
exports.BRONZE = BRONZE;
exports.CHAROCOAL = CHAROCOAL;
exports.DANGER = DANGER;
exports.DARK = DARK;
exports.DARK_LIME = DARK_LIME;
exports.DEFAULT = DEFAULT;
exports.GOLDENROD = GOLDENROD;
exports.GRAY = GRAY;
exports.GRAY_BLUE = GRAY_BLUE;
exports.GRAY_LIGHT = GRAY_LIGHT;
exports.GREEN = GREEN;
exports.INFO = INFO;
exports.JUNGLE_GREEN = JUNGLE_GREEN;
exports.LIGHT = LIGHT;
exports.ORANGE = ORANGE;
exports.ORCHID = ORCHID;
exports.PAYNES_GRAY = PAYNES_GRAY;
exports.PINK = PINK;
exports.PORTLAND_ORANGE = PORTLAND_ORANGE;
exports.PRIMARY = PRIMARY;
exports.PURPLE = PURPLE;
exports.RED = RED;
exports.ROSE_MADDER = ROSE_MADDER;
exports.SECONDARY = SECONDARY;
exports.STRONG_CYAN = STRONG_CYAN;
exports.SUCCESS = SUCCESS;
exports.TEAL_BLUE = TEAL_BLUE;
exports.TIFFANY = TIFFANY;
exports.VERDIGRIS = VERDIGRIS;
exports.VIVID_YELLOW = VIVID_YELLOW;
exports.WARNING = WARNING;
exports.WHITE = WHITE;
exports.YELLOW = YELLOW;
exports.colors = colors;
exports.compileAppearanceTheme = compileAppearanceTheme;
exports.getAppearancePath = getAppearancePath;
exports.getAppearanceTheme = getAppearanceTheme;
exports.getFontObj = getFontObj;
exports.getFontStyle = getFontStyle;
exports.getStatesTheme = getStatesTheme;
exports.getThemedState = getThemedState;
exports.mergeBaseTheme = mergeBaseTheme;
exports.rtlSide = rtlSide;
exports.rtlSwapper = rtlSwapper;
//# sourceMappingURL=theme.cjs.development.js.map