@quarkly/atomize
Version:
Library for creating atomic react components
47 lines (35 loc) • 1.2 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports["default"] = exports.mixins = exports.themed = exports.variants = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _isUndefined2 = _interopRequireDefault(require("lodash/fp/isUndefined"));
var _theme = require("./theme");
var variants = function variants(key) {
return function (props) {
return (0, _theme.getFromTheme)(props, key + "." + props.variant);
};
};
exports.variants = variants;
var themed = function themed(key) {
return function (props) {
return (0, _theme.getFromTheme)(props, key);
};
};
exports.themed = themed;
var mixins = function mixins(props) {
var mix = (0, _theme.themeGet)(props, 'mixins', {});
return Object.keys(mix).reduce(function (acc, mixin) {
if ((0, _isUndefined2["default"])(props[mixin])) {
return acc;
}
return (0, _extends2["default"])((0, _extends2["default"])({}, acc), mix[mixin]);
}, {});
};
exports.mixins = mixins;
var _default = {
variants: variants,
themed: themed,
mixins: mixins
};
exports["default"] = _default;