UNPKG

@wordpress/components

Version:
84 lines (69 loc) 3.49 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("@wordpress/element"); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _utils = require("./utils"); /** * WordPress 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) => { var _baseGlobalStyles$ele, _baseGlobalStyles$blo; // Current support for general styles and blocks. const baseGlobalColors = { baseColors: { color: baseGlobalStyles === null || baseGlobalStyles === void 0 ? void 0 : baseGlobalStyles.color, typography: baseGlobalStyles === null || baseGlobalStyles === void 0 ? void 0 : baseGlobalStyles.typography, elements: { link: baseGlobalStyles === null || baseGlobalStyles === void 0 ? void 0 : (_baseGlobalStyles$ele = baseGlobalStyles.elements) === null || _baseGlobalStyles$ele === void 0 ? void 0 : _baseGlobalStyles$ele.link }, blocks: { 'core/button': baseGlobalStyles === null || baseGlobalStyles === void 0 ? void 0 : (_baseGlobalStyles$blo = baseGlobalStyles.blocks) === null || _baseGlobalStyles$blo === void 0 ? void 0 : _baseGlobalStyles$blo['core/button'] } } }; const blockStyleAttributes = Object.fromEntries(Object.entries(blockAttributes !== null && blockAttributes !== void 0 ? blockAttributes : {}).filter(_ref => { let [key] = _ref; return _utils.BLOCK_STYLE_ATTRIBUTES.includes(key); })); // This prevents certain wrapper styles from being applied to blocks that // don't support them yet. const wrapperPropsStyleFiltered = Object.fromEntries(Object.entries(wrapperPropsStyle !== null && wrapperPropsStyle !== void 0 ? wrapperPropsStyle : {}).filter(_ref2 => { let [key] = _ref2; return _utils.BLOCK_STYLE_ATTRIBUTES.includes(key); })); 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