: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
/* harmony default export */ const justify_content_control_ui = (JustifyContentUI);
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/justify-content-control/index.js
const JustifyContentControl = props => {
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(justify_content_control_ui, {
const JustifyToolbar = props => {
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(justify_content_control_ui, {
* @see https://github.com/WordPress/gutenberg/blob/HEAD/packages/block-editor/src/components/justify-content-control/README.md
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/flex.js
// Used with the default, horizontal flex orientation.
const justifyContentMap = {
'space-between': 'space-between'
// Used with the vertical (column) flex orientation.
const verticalAlignmentMap = {
'space-between': 'space-between'
const flexWrapOptions = ['wrap', 'nowrap'];
/* harmony default export */ const flex = ({
label: (0,external_wp_i18n_namespaceObject.__)('Flex'),
inspectorControls: function FlexLayoutInspectorControls({
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_ReactJSXRuntime_namespaceObject.Fragment, {
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.Flex, {
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FlexLayoutJustifyContentControl, {
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.FlexItem, {
children: allowOrientation && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(OrientationControl, {
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FlexWrapControl, {
toolBarControls: function FlexLayoutToolbarControls({
if (layoutBlockSupport?.allowSwitching) {
allowVerticalAlignment = true
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(block_controls, {
__experimentalShareWithChildBlocks: true,
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FlexLayoutJustifyContentControl, {
}), allowVerticalAlignment && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(FlexLayoutVerticalAlignmentControl, {
getLayoutStyle: function getLayoutStyle({
layoutDefinitions = LAYOUT_DEFINITIONS
orientation = 'horizontal'
// If a block's block.json skips serialization for spacing or spacing.blockGap,
// don't apply the user-defined value to the styles.
const blockGapValue = style?.spacing?.blockGap && !shouldSkipSerialization(blockName, 'spacing', 'blockGap') ? getGapCSSValue(style?.spacing?.blockGap, '0.5em') : undefined;
const justifyContent = justifyContentMap[layout.justifyContent];
const flexWrap = flexWrapOptions.includes(layout.flexWrap) ? layout.flexWrap : 'wrap';
const verticalAlignment = verticalAlignmentMap[layout.verticalAlignment];
const alignItems = alignItemsMap[layout.justifyContent] || alignItemsMap.left;
if (flexWrap && flexWrap !== 'wrap') {
rules.push(`flex-wrap: ${flexWrap}`);
if (orientation === 'horizontal') {
rules.push(`align-items: ${verticalAlignment}`);
rules.push(`justify-content: ${justifyContent}`);
rules.push(`justify-content: ${verticalAlignment}`);
rules.push('flex-direction: column');
rules.push(`align-items: ${alignItems}`);
output = `${appendSelectors(selector)} {
// Output blockGap styles based on rules contained in layout definitions in theme.json.
if (hasBlockGapSupport && blockGapValue) {
output += getBlockGapCSS(selector, layoutDefinitions, 'flex', blockGapValue);
orientation = 'horizontal'
function FlexLayoutVerticalAlignmentControl({
orientation = 'horizontal'
const defaultVerticalAlignment = orientation === 'horizontal' ? verticalAlignmentMap.center : verticalAlignmentMap.top;
verticalAlignment = defaultVerticalAlignment
const onVerticalAlignmentChange = value => {
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(BlockVerticalAlignmentControl, {
onChange: onVerticalAlignmentChange,
value: verticalAlignment,
controls: orientation === 'horizontal' ? ['top', 'center', 'bottom', 'stretch'] : ['top', 'center', 'bottom', 'space-between']
const verticalAlignmentOptions = [{
label: (0,external_wp_i18n_namespaceObject.__)('Align items top')
label: (0,external_wp_i18n_namespaceObject.__)('Align items center')
label: (0,external_wp_i18n_namespaceObject.__)('Align items bottom')
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("fieldset", {
className: "block-editor-hooks__flex-layout-vertical-alignment-control",
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("legend", {
children: (0,external_wp_i18n_namespaceObject.__)('Vertical alignment')
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
children: verticalAlignmentOptions.map((value, icon, label) => {
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
isPressed: verticalAlignment === value,
onClick: () => onVerticalAlignmentChange(value)
placement: 'bottom-start'
function FlexLayoutJustifyContentControl({
orientation = 'horizontal'
const onJustificationChange = value => {
const allowedControls = ['left', 'center', 'right'];
if (orientation === 'horizontal') {
allowedControls.push('space-between');
allowedControls.push('stretch');
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(JustifyContentControl, {
allowedControls: allowedControls,
onChange: onJustificationChange,
popoverProps: POPOVER_PROPS
const justificationOptions = [{
label: (0,external_wp_i18n_namespaceObject.__)('Justify items left')
label: (0,external_wp_i18n_namespaceObject.__)('Justify items center')
label: (0,external_wp_i18n_namespaceObject.__)('Justify items right')
if (orientation === 'horizontal') {
justificationOptions.push({
icon: justify_space_between,
label: (0,external_wp_i18n_namespaceObject.__)('Space between items')
justificationOptions.push({
label: (0,external_wp_i18n_namespaceObject.__)('Stretch items')
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
__nextHasNoMarginBottom: true,
label: (0,external_wp_i18n_namespaceObject.__)('Justification'),
onChange: onJustificationChange,
className: "block-editor-hooks__flex-layout-justification-controls",
children: justificationOptions.map(({
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOptionIcon, {
function FlexWrapControl({
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.ToggleControl, {
__nextHasNoMarginBottom: true,
label: (0,external_wp_i18n_namespaceObject.__)('Allow to wrap to multiple lines'),
flexWrap: value ? 'wrap' : 'nowrap'
checked: flexWrap === 'wrap'
function OrientationControl({
orientation = 'horizontal',
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalToggleGroupControl, {
__nextHasNoMarginBottom: true,
className: "block-editor-hooks__flex-layout-orientation-controls",
label: (0,external_wp_i18n_namespaceObject.__)('Orientation'),
// Make sure the vertical alignment and justification are compatible with the new orientation.
let newVerticalAlignment = verticalAlignment;
let newJustification = justifyContent;
if (value === 'horizontal') {
if (verticalAlignment === 'space-between') {
newVerticalAlignment = 'center';
if (justifyContent === 'stretch') {
newJustification = 'left';
if (verticalAlignment === 'stretch') {
newVerticalAlignment = 'top';
if (justifyContent === 'space-between') {
newJustification = 'left';
verticalAlignment: newVerticalAlignment,
justifyContent: newJustification
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOptionIcon, {
label: (0,external_wp_i18n_namespaceObject.__)('Horizontal')
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalToggleGroupControlOptionIcon, {
label: (0,external_wp_i18n_namespaceObject.__)('Vertical')
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/layouts/flow.js
/* harmony default export */ const flow = ({
label: (0,external_wp_i18n_namespaceObject.__)('Flow'),
inspectorControls: function DefaultLayoutInspectorControls() {
toolBarControls: function DefaultLayoutToolbarControls() {
getLayoutStyle: function getLayoutStyle({
layoutDefinitions = LAYOUT_DEFINITIONS
const blockGapStyleValue = getGapCSSValue(style?.spacing?.blockGap);
// If a block's block.json skips serialization for spacing or
// spacing.blockGap, don't apply the user-defined value to the styles.
if (!shouldSkipSerialization(blockName, 'spacing', 'blockGap')) {
// If an object is provided only use the 'top' value for this kind of gap.
if (blockGapStyleValue?.top) {
blockGapValue = getGapCSSValue(blockGapStyleValue?.top);
} else if (typeof blockGapStyleValue === 'string') {
blockGapValue = getGapCSSValue(blockGapStyleValue);
// Output blockGap styles based on rules contained in layout definitions in theme.json.
if (hasBlockGapSupport && blockGapValue) {
output += getBlockGapCSS(selector, layoutDefinitions, 'default', blockGapValue);
getAlignments(layout, isBlockBasedTheme) {
const alignmentInfo = getAlignmentsInfo(layout);
if (layout.alignments !== undefined) {
if (!layout.alignments.includes('none')) {
layout.alignments.unshift('none');
return layout.alignments.map(alignment => ({
info: alignmentInfo[alignment]
// This is for backwards compatibility with hybrid themes.
if (!isBlockBasedTheme) {
;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/icon/index.js
/** @typedef {{icon: JSX.Element, size?: number} & import('@wordpress/primitives').SVGProps} IconProps */
* @param {IconProps} props icon is the SVG component to render
* size is a number specifiying the icon size in pixels
* Other props will be passed to wrapped SVG component
* @param {import('react').ForwardedRef<HTMLElement>} ref The forwarded ref to the SVG element.