UNPKG

@quarkly/atomize

Version:

Library for creating atomic react components

58 lines (44 loc) 2.03 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = exports.getBreakpoints = exports.createBreakpointRule = exports.themeGet = exports.variantGet = exports.getFromTheme = void 0; var _memoize2 = _interopRequireDefault(require("lodash/fp/memoize")); var _isUndefined2 = _interopRequireDefault(require("lodash/fp/isUndefined")); var _get2 = _interopRequireDefault(require("lodash/fp/get")); var _themeDefault = _interopRequireDefault(require("../constants/themeDefault")); var getFromTheme = function getFromTheme(props, key) { return (0, _get2["default"])(key, props.theme) || (0, _get2["default"])(key, _themeDefault["default"]); }; exports.getFromTheme = getFromTheme; var variantGet = function variantGet(props, key, name) { var variants = getFromTheme(props, key); if ((0, _isUndefined2["default"])(variants)) return name; var value = (0, _get2["default"])(name, variants); return (0, _isUndefined2["default"])(value) ? name : value; }; exports.variantGet = variantGet; var themeGet = function themeGet(props, key, def) { var value = getFromTheme(props, key); return (0, _isUndefined2["default"])(value) ? def : value; }; exports.themeGet = themeGet; var createBreakpointRule = function createBreakpointRule(point) { return point.map(function (_ref) { var type = _ref.type, value = _ref.value; return value === true ? "(" + type + ")" : "(" + type + ": " + value + "px)"; }).join(' and '); }; exports.createBreakpointRule = createBreakpointRule; var getBreakpoints = (0, _memoize2["default"])(function (props) { var breakpoints = getFromTheme(props, 'breakpoints'); return Object.entries(breakpoints).reduce(function (acc, _ref2) { var key = _ref2[0], point = _ref2[1]; acc[key] = "@media " + createBreakpointRule(point); return acc; }, {}); }); exports.getBreakpoints = getBreakpoints; var _default = _themeDefault["default"]; exports["default"] = _default;