UNPKG

@quarkly/atomize

Version:

Library for creating atomic react components

47 lines (35 loc) 1.2 kB
"use strict"; 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;