: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
defaultView.removeEventListener('resize', onScrollResize, true);
node.removeEventListener('keydown', onKeyDown);
node.removeEventListener('keyup', maintainCaretPosition);
node.removeEventListener('mousedown', addSelectionChangeListener);
node.removeEventListener('touchstart', addSelectionChangeListener);
ownerDocument.removeEventListener('selectionchange', computeCaretRectOnSelectionChange);
defaultView.cancelAnimationFrame(scrollResizeRafId);
defaultView.cancelAnimationFrame(onKeyDownRafId);
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
className: "block-editor__typewriter",
* The exported component. The implementation of Typewriter faced technical
* challenges in Internet Explorer, and is simply skipped, rendering the given
* props children instead.
const TypewriterOrIEBypass = isIE ? props => props.children : Typewriter;
* Ensures that the text selection keeps the same vertical distance from the
* viewport during keyboard events within this component. The vertical distance
* can vary. It is the last clicked or scrolled to position.
/* harmony default export */ const typewriter = (TypewriterOrIEBypass);
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/recursion-provider/index.js
const RenderedRefsContext = (0,external_wp_element_namespaceObject.createContext)({});
* Immutably adds an unique identifier to a set scoped for a given block type.
* @param {Object} renderedBlocks Rendered blocks grouped by block name
* @param {string} blockName Name of the block.
* @param {*} uniqueId Any value that acts as a unique identifier for a block instance.
* @return {Object} The list of rendered blocks grouped by block name.
function addToBlockType(renderedBlocks, blockName, uniqueId) {
[blockName]: renderedBlocks[blockName] ? new Set(renderedBlocks[blockName]) : new Set()
result[blockName].add(uniqueId);
* A React context provider for use with the `useHasRecursion` hook to prevent recursive
* Wrap block content with this provider and provide the same `uniqueId` prop as used
* with `useHasRecursion`.
* @param {*} props.uniqueId Any value that acts as a unique identifier for a block instance.
* @param {string} props.blockName Optional block name.
* @param {JSX.Element} props.children React children.
* @return {JSX.Element} A React element.
function RecursionProvider({
const previouslyRenderedBlocks = (0,external_wp_element_namespaceObject.useContext)(RenderedRefsContext);
} = useBlockEditContext();
blockName = blockName || name;
const newRenderedBlocks = (0,external_wp_element_namespaceObject.useMemo)(() => addToBlockType(previouslyRenderedBlocks, blockName, uniqueId), [previouslyRenderedBlocks, blockName, uniqueId]);
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(RenderedRefsContext.Provider, {
value: newRenderedBlocks,
* A React hook for keeping track of blocks previously rendered up in the block
* tree. Blocks susceptible to recursion can use this hook in their `Edit`
* function to prevent said recursion.
* Use this with the `RecursionProvider` component, using the same `uniqueId` value
* for both the hook and the provider.
* @param {*} uniqueId Any value that acts as a unique identifier for a block instance.
* @param {string} blockName Optional block name.
* @return {boolean} A boolean describing whether the provided id has already been rendered.
function useHasRecursion(uniqueId, blockName = '') {
const previouslyRenderedBlocks = (0,external_wp_element_namespaceObject.useContext)(RenderedRefsContext);
} = useBlockEditContext();
blockName = blockName || name;
return Boolean(previouslyRenderedBlocks[blockName]?.has(uniqueId));
const DeprecatedExperimentalRecursionProvider = props => {
external_wp_deprecated_default()('wp.blockEditor.__experimentalRecursionProvider', {
alternative: 'wp.blockEditor.RecursionProvider'
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(RecursionProvider, {
const DeprecatedExperimentalUseHasRecursion = (...args) => {
external_wp_deprecated_default()('wp.blockEditor.__experimentalUseHasRecursion', {
alternative: 'wp.blockEditor.useHasRecursion'
return useHasRecursion(...args);
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inspector-popover-header/index.js
function InspectorPopoverHeader({
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalVStack, {
className: "block-editor-inspector-popover-header",
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(external_wp_components_namespaceObject.__experimentalHStack, {
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalHeading, {
className: "block-editor-inspector-popover-header__heading",
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalSpacer, {}), actions.map(({
}) => /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
className: "block-editor-inspector-popover-header__action",
variant: !icon && 'tertiary',
}, label)), onClose && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
className: "block-editor-inspector-popover-header__action",
label: (0,external_wp_i18n_namespaceObject.__)('Close'),
}), help && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.__experimentalText, {
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/publish-date-time-picker/index.js
function PublishDateTimePicker({
showPopoverHeaderActions,
const datePickerProps = {
startOfWeek: (0,external_wp_date_namespaceObject.getSettings)().l10n.startOfWeek,
currentDate: isCompact ? undefined : currentDate,
currentTime: isCompact ? currentDate : undefined,
const DatePickerComponent = isCompact ? external_wp_components_namespaceObject.TimePicker : external_wp_components_namespaceObject.DateTimePicker;
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
className: "block-editor-publish-date-time-picker",
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(InspectorPopoverHeader, {
title: (0,external_wp_i18n_namespaceObject.__)('Publish'),
actions: showPopoverHeaderActions ? [{
label: (0,external_wp_i18n_namespaceObject.__)('Now'),
onClick: () => onChange?.(null)
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(DatePickerComponent, {
const PrivatePublishDateTimePicker = (0,external_wp_element_namespaceObject.forwardRef)(PublishDateTimePicker);
function PublicPublishDateTimePicker(props, ref) {
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(PrivatePublishDateTimePicker, {
showPopoverHeaderActions: true,
/* harmony default export */ const publish_date_time_picker = ((0,external_wp_element_namespaceObject.forwardRef)(PublicPublishDateTimePicker));
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/inserter/reusable-block-rename-hint.js
const reusable_block_rename_hint_PREFERENCE_NAME = 'isResuableBlocksrRenameHintVisible';
* This hook was added in 6.3 to help users with the transition from Reusable blocks to Patterns.
* It is only exported for use in the reusable-blocks package as well as block-editor.
* It will be removed in 6.4. and should not be used in any new code.
function useReusableBlocksRenameHint() {
return (0,external_wp_data_namespaceObject.useSelect)(select => {
return (_select$get = select(external_wp_preferences_namespaceObject.store).get('core', reusable_block_rename_hint_PREFERENCE_NAME)) !== null && _select$get !== void 0 ? _select$get : true;
* This component was added in 6.3 to help users with the transition from Reusable blocks to Patterns.
* It is only exported for use in the reusable-blocks package as well as block-editor.
* It will be removed in 6.4. and should not be used in any new code.
function ReusableBlocksRenameHint() {
const isReusableBlocksRenameHint = (0,external_wp_data_namespaceObject.useSelect)(select => {
return (_select$get2 = select(external_wp_preferences_namespaceObject.store).get('core', reusable_block_rename_hint_PREFERENCE_NAME)) !== null && _select$get2 !== void 0 ? _select$get2 : true;
const ref = (0,external_wp_element_namespaceObject.useRef)();
} = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_preferences_namespaceObject.store);
if (!isReusableBlocksRenameHint) {
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)("div", {
className: "reusable-blocks-menu-items__rename-hint",
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
className: "reusable-blocks-menu-items__rename-hint-content",
children: (0,external_wp_i18n_namespaceObject.__)('Reusable blocks are now synced patterns. A synced pattern will behave in exactly the same way as a reusable block.')
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_components_namespaceObject.Button, {
className: "reusable-blocks-menu-items__rename-hint-dismiss",
label: (0,external_wp_i18n_namespaceObject.__)('Dismiss hint'),
// Retain focus when dismissing the element.
const previousElement = external_wp_dom_namespaceObject.focus.tabbable.findPrevious(ref.current);
previousElement?.focus();
setPreference('core', reusable_block_rename_hint_PREFERENCE_NAME, false);
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/index.js
* Block Creation Components
* Content Related Components
* State Related Components
* The following rename hint component can be removed in 6.4.
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/elements/index.js
const elements_ELEMENT_CLASS_NAMES = {
button: 'wp-element-button',
caption: 'wp-element-caption'
const __experimentalGetElementClassName = element => {
return elements_ELEMENT_CLASS_NAMES[element] ? elements_ELEMENT_CLASS_NAMES[element] : '';
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/get-px-from-css-unit.js
* This function was accidentially exposed for mobile/native usage.
* @return {string} Empty string.
/* harmony default export */ const get_px_from_css_unit = (() => '');
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/index.js
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/image-settings-panel.js
function useHasImageSettingsPanel(name, value, inheritedValue) {
// Note: If lightbox `value` exists, that means it was
// defined via the the Global Styles UI and will NOT
// be a boolean value or contain the `allowEditing` property,
// so we should show the settings panel in those cases.
return name === 'core/image' && inheritedValue?.lightbox?.allowEditing || !!value?.lightbox;
function ImageSettingsPanel({
const dropdownMenuProps = useToolsPanelDropdownMenuProps();
const resetLightbox = () => {
const onChangeLightbox = newSetting => {
let lightboxChecked = false;
if (inheritedValue?.lightbox?.enabled) {
lightboxChecked = inheritedValue.lightbox.enabled;