UNPKG

@wordpress/block-editor

Version:
73 lines (58 loc) 1.55 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.LayoutProvider = void 0; exports.LayoutStyle = LayoutStyle; exports.defaultLayout = void 0; exports.useLayout = useLayout; var _element = require("@wordpress/element"); var _layouts = require("../../layouts"); var _useSetting = _interopRequireDefault(require("../use-setting")); /** * WordPress dependencies */ /** * Internal dependencies */ const defaultLayout = { type: 'default' }; exports.defaultLayout = defaultLayout; const Layout = (0, _element.createContext)(defaultLayout); /** * Allows to define the layout. */ const LayoutProvider = Layout.Provider; /** * React hook used to retrieve the layout config. */ exports.LayoutProvider = LayoutProvider; function useLayout() { return (0, _element.useContext)(Layout); } function LayoutStyle({ layout = {}, css, ...props }) { const layoutType = (0, _layouts.getLayoutType)(layout.type); const blockGapSupport = (0, _useSetting.default)('spacing.blockGap'); const hasBlockGapSupport = blockGapSupport !== null; if (layoutType) { if (css) { return (0, _element.createElement)("style", null, css); } const layoutStyle = layoutType.getLayoutStyle?.({ hasBlockGapSupport, layout, ...props }); if (layoutStyle) { return (0, _element.createElement)("style", null, layoutStyle); } } return null; } //# sourceMappingURL=layout.js.map