: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in
onClick: value === gradient ? clearGradient : () => onChange(gradient, index),
// translators: %s: The name of the gradient e.g: "Angular red to blue".
(0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Gradient: %s'), name) :
// translators: %s: gradient code e.g: "linear-gradient(90deg, rgba(98,16,153,1) 0%, rgba(172,110,22,1) 100%);".
(0,external_wp_i18n_namespaceObject.sprintf)((0,external_wp_i18n_namespaceObject.__)('Gradient code: %s'), gradient)
}, [gradients, value, onChange, clearGradient]);
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_circular_option_picker.OptionGroup, {
options: gradientOptions,
function MultipleOrigin({
const instanceId = (0,external_wp_compose_namespaceObject.useInstanceId)(MultipleOrigin);
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(v_stack_component, {
children: gradients.map(({
const id = `color-palette-${instanceId}-${index}`;
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(v_stack_component, {
children: [/*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(ColorHeading, {
}), /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SingleOrigin, {
clearGradient: clearGradient,
onChange: gradient => onChange(gradient, index),
function gradient_picker_Component(props) {
'aria-labelledby': ariaLabelledby,
const options = isMultipleOriginArray(props.gradients) ? /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(MultipleOrigin, {
headingLevel: headingLevel,
}) : /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(SingleOrigin, {
} else if (ariaLabelledby) {
'aria-labelledby': ariaLabelledby
'aria-label': (0,external_wp_i18n_namespaceObject.__)('Custom color picker.')
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_circular_option_picker, {
* GradientPicker is a React component that renders a color gradient picker to
* define a multi step gradient. There's either a _linear_ or a _radial_ type
*import { GradientPicker } from '@wordpress/components';
*import { useState } from '@wordpress/element';
*const myGradientPicker = () => {
* const [ gradient, setGradient ] = useState( null );
* onChange={ ( currentGradient ) => setGradient( currentGradient ) }
* 'linear-gradient(135deg,#12c2e9 0%,#c471ed 50%,#f64f59 100%)',
* name: 'Moonlit Asteroid',
* 'linear-gradient(135deg,#0F2027 0%, #203A43 0%, #2c5364 100%)',
* slug: 'moonlit-asteroid',
* 'linear-gradient(135deg,#1E9600 0%, #FFF200 0%, #FF0000 100%)',
function GradientPicker({
disableCustomGradients = false,
__experimentalIsRenderedInSidebar,
const clearGradient = (0,external_wp_element_namespaceObject.useCallback)(() => onChange(undefined), [onChange]);
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsxs)(v_stack_component, {
spacing: gradients.length ? 4 : 0,
children: [!disableCustomGradients && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(custom_gradient_picker, {
__experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,
}), (gradients.length > 0 || clearable) && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(gradient_picker_Component, {
clearGradient: clearGradient,
actions: clearable && !disableCustomGradients && /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(build_module_circular_option_picker.ButtonAction, {
children: (0,external_wp_i18n_namespaceObject.__)('Clear')
headingLevel: headingLevel
/* harmony default export */ const gradient_picker = (GradientPicker);
;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/menu.js
const menu = /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.SVG, {
xmlns: "http://www.w3.org/2000/svg",
children: /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(external_wp_primitives_namespaceObject.Path, {
d: "M5 5v1.5h14V5H5zm0 7.8h14v-1.5H5v1.5zM5 19h14v-1.5H5V19z"
/* harmony default export */ const library_menu = (menu);
;// CONCATENATED MODULE: external ["wp","dom"]
const external_wp_dom_namespaceObject = window["wp"]["dom"];
;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigable-container/container.js
const container_noop = () => {};
const MENU_ITEM_ROLES = ['menuitem', 'menuitemradio', 'menuitemcheckbox'];
function cycleValue(value, total, offset) {
const nextValue = value + offset;
return total + nextValue;
} else if (nextValue >= total) {
return nextValue - total;
class NavigableContainer extends external_wp_element_namespaceObject.Component {
this.onKeyDown = this.onKeyDown.bind(this);
this.bindContainer = this.bindContainer.bind(this);
this.getFocusableContext = this.getFocusableContext.bind(this);
this.getFocusableIndex = this.getFocusableIndex.bind(this);
// We use DOM event listeners instead of React event listeners
// because we want to catch events from the underlying DOM tree
// The React Tree can be different from the DOM tree when using
// portals. Block Toolbars for instance are rendered in a separate
this.container.addEventListener('keydown', this.onKeyDown);
this.container.removeEventListener('keydown', this.onKeyDown);
if (typeof forwardedRef === 'function') {
} else if (forwardedRef && 'current' in forwardedRef) {
forwardedRef.current = ref;
getFocusableContext(target) {
const finder = onlyBrowserTabstops ? external_wp_dom_namespaceObject.focus.tabbable : external_wp_dom_namespaceObject.focus.focusable;
const focusables = finder.find(this.container);
const index = this.getFocusableIndex(focusables, target);
if (index > -1 && target) {
getFocusableIndex(focusables, target) {
return focusables.indexOf(target);
if (this.props.onKeyDown) {
this.props.onKeyDown(event);
onNavigate = container_noop,
const offset = eventToOffset(event);
// eventToOffset returns undefined if the event is not handled by the component.
if (offset !== undefined && stopNavigationEvents) {
// Prevents arrow key handlers bound to the document directly interfering.
event.stopImmediatePropagation();
// When navigating a collection of items, prevent scroll containers
// from scrolling. The preventDefault also prevents Voiceover from
// 'handling' the event, as voiceover will try to use arrow keys
// for highlighting text.
const targetRole = event.target?.getAttribute('role');
const targetHasMenuItemRole = !!targetRole && MENU_ITEM_ROLES.includes(targetRole);
if (targetHasMenuItemRole) {
const activeElement = event.target?.ownerDocument?.activeElement;
const context = getFocusableContext(activeElement);
const nextIndex = cycle ? cycleValue(index, focusables.length, offset) : index + offset;
if (nextIndex >= 0 && nextIndex < focusables.length) {
focusables[nextIndex].focus();
onNavigate(nextIndex, focusables[nextIndex]);
// `preventDefault()` on tab to avoid having the browser move the focus
// after this component has already moved it.
if (event.code === 'Tab') {
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)("div", {
const forwardedNavigableContainer = (props, ref) => {
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(NavigableContainer, {
forwardedNavigableContainer.displayName = 'NavigableContainer';
/* harmony default export */ const container = ((0,external_wp_element_namespaceObject.forwardRef)(forwardedNavigableContainer));
;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/navigable-container/menu.js
function UnforwardedNavigableMenu({
orientation = 'vertical',
const eventToOffset = evt => {
let next = ['ArrowDown'];
let previous = ['ArrowUp'];
if (orientation === 'horizontal') {
previous = ['ArrowLeft'];
if (orientation === 'both') {
next = ['ArrowRight', 'ArrowDown'];
previous = ['ArrowLeft', 'ArrowUp'];
if (next.includes(code)) {
} else if (previous.includes(code)) {
} else if (['ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight'].includes(code)) {
// Key press should be handled, e.g. have event propagation and
// default behavior handled by NavigableContainer but not result
return /*#__PURE__*/(0,external_ReactJSXRuntime_namespaceObject.jsx)(container, {
stopNavigationEvents: true,
onlyBrowserTabstops: false,
"aria-orientation": role !== 'presentation' && (orientation === 'vertical' || orientation === 'horizontal') ? orientation : undefined,
eventToOffset: eventToOffset,
* A container for a navigable menu.
* } from '@wordpress/components';
* function onNavigate( index, target ) {
* console.log( `Navigates to ${ index }`, target );
* const MyNavigableContainer = () => (
* <span>Navigable Menu:</span>
* <NavigableMenu onNavigate={ onNavigate } orientation="horizontal">
* <Button variant="secondary">Item 1</Button>
* <Button variant="secondary">Item 2</Button>
* <Button variant="secondary">Item 3</Button>
const NavigableMenu = (0,external_wp_element_namespaceObject.forwardRef)(UnforwardedNavigableMenu);
/* harmony default export */ const navigable_container_menu = (NavigableMenu);
;// CONCATENATED MODULE: ./node_modules/@wordpress/components/build-module/dropdown-menu/index.js
function dropdown_menu_mergeProps(defaultProps = {}, props = {}) {
if (props.className && defaultProps.className) {
mergedProps.className = dist_clsx(props.className, defaultProps.className);
function dropdown_menu_isFunction(maybeFunc) {
return typeof maybeFunc === 'function';
function UnconnectedDropdownMenu(dropdownMenuProps) {
disableOpenOnArrowDown = false,