UNPKG

@gechiui/components

Version:
72 lines (56 loc) 2.44 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.withGlobalStyles = exports.useGlobalStyles = exports.getMergedGlobalStyles = exports.default = void 0; var _element = require("@gechiui/element"); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _lodash = require("lodash"); var _utils = require("./utils"); /** * External dependencies */ /** * GeChiUI dependencies */ /** * Internal dependencies */ const GlobalStylesContext = (0, _element.createContext)({ style: {} }); GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES = _utils.BLOCK_STYLE_ATTRIBUTES; const getMergedGlobalStyles = (baseGlobalStyles, globalStyle, wrapperPropsStyle, blockAttributes, defaultColors, blockName, fontSizes) => { const baseGlobalColors = { baseColors: baseGlobalStyles || {} }; const blockStyleAttributes = (0, _lodash.pick)(blockAttributes, _utils.BLOCK_STYLE_ATTRIBUTES); // This prevents certain wrapper styles from being applied to blocks that // don't support them yet. const wrapperPropsStyleFiltered = (0, _lodash.pick)(wrapperPropsStyle, _utils.BLOCK_STYLE_ATTRIBUTES); const mergedStyle = { ...baseGlobalColors, ...globalStyle, ...wrapperPropsStyleFiltered }; const blockColors = (0, _utils.getBlockColors)(blockStyleAttributes, defaultColors, blockName, baseGlobalStyles); const blockPaddings = (0, _utils.getBlockPaddings)(mergedStyle, wrapperPropsStyle, blockStyleAttributes, blockColors); const blockTypography = (0, _utils.getBlockTypography)(blockStyleAttributes, fontSizes, blockName, baseGlobalStyles); return { ...mergedStyle, ...blockPaddings, ...blockColors, ...blockTypography }; }; exports.getMergedGlobalStyles = getMergedGlobalStyles; const useGlobalStyles = () => { const globalStyles = (0, _element.useContext)(GlobalStylesContext); return globalStyles; }; exports.useGlobalStyles = useGlobalStyles; const withGlobalStyles = WrappedComponent => props => (0, _element.createElement)(GlobalStylesContext.Consumer, null, globalStyles => (0, _element.createElement)(WrappedComponent, (0, _extends2.default)({}, props, { globalStyles: globalStyles }))); exports.withGlobalStyles = withGlobalStyles; var _default = GlobalStylesContext; exports.default = _default; //# sourceMappingURL=index.native.js.map