Update @wordpress packages

Update packages to include these bug fixes from Gutenberg:

- Site Logo: Add option to set site icon from Site Logo block
- Navigation: Enable even more compact setup state.
- Remove template parts from post content inserter an __unstable filter
- Template Editor Mode: Hide editor mode switcher
- Avoid using CSS variables for block gap styles
- Try to fix auto resizing in template part focus mode
- Lower the specificity of font size CSS Custom Properties in the editor
- Site icon: Fix site icon styling to display non-square site icons within a square button
- [Site Editor]: Register block editor shortcuts
- Update regex to handle 404 template slug
- Site Editor: Remove dead code
- [Block Editor]: Restrict delete multi selected blocks shortcut
- Fix: Gradients are not being applied by class
- Update: Make the global styles subtitles font smaller
- Post Content/Title: Reflect changes when previewing post
- ServerSideRender: Fix loading state
- [Block Library]: Fix editable post blocks in Query Loop with zero queryId
- Post Excerpt: Fix previews
- WP59: Contextualize "Export" string to differentiate it from other occurrences in WP Core
- Tools Panel: Fix race conditions caused by conditionally displayed ToolsPanelItems
- ToolsPanel: Allow items to register when panelId is null
- Font Size Picker: Allow non-integers as simple CSS values and in hints
- [Components - FontSizePicker]: Use incremental sequence of numbers as labels for the available font-sizes at the segmented control (conditionally)

See #54487.

Built from https://develop.svn.wordpress.org/trunk@52434


git-svn-id: http://core.svn.wordpress.org/trunk@52026 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
noisysocks 2022-01-04 05:39:28 +00:00
parent 15b614acc3
commit 28a12c8bce
43 changed files with 733 additions and 285 deletions

File diff suppressed because one or more lines are too long

View File

@ -39,9 +39,10 @@ function wp_register_layout_support( $block_type ) {
* @param array $layout Layout object. The one that is passed has already checked
* the existence of default block layout.
* @param bool $has_block_gap_support Whether the theme has support for the block gap.
* @param string $gap_value The block gap value to apply.
* @return string CSS style.
*/
function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false ) {
function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false, $gap_value = null ) {
$layout_type = isset( $layout['type'] ) ? $layout['type'] : 'default';
$style = '';
@ -72,8 +73,9 @@ function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false
$style .= "$selector .alignleft { float: left; margin-right: 2em; }";
$style .= "$selector .alignright { float: right; margin-left: 2em; }";
if ( $has_block_gap_support ) {
$style .= "$selector > * { margin-top: 0; margin-bottom: 0; }";
$style .= "$selector > * + * { margin-top: var( --wp--style--block-gap ); margin-bottom: 0; }";
$gap_style = $gap_value ? $gap_value : 'var( --wp--style--block-gap )';
$style .= "$selector > * { margin-top: 0; margin-bottom: 0; }";
$style .= "$selector > * + * { margin-top: $gap_style; margin-bottom: 0; }";
}
} elseif ( 'flex' === $layout_type ) {
$layout_orientation = isset( $layout['orientation'] ) ? $layout['orientation'] : 'horizontal';
@ -96,7 +98,8 @@ function wp_get_layout_style( $selector, $layout, $has_block_gap_support = false
$style = "$selector {";
$style .= 'display: flex;';
if ( $has_block_gap_support ) {
$style .= 'gap: var( --wp--style--block-gap, 0.5em );';
$gap_style = $gap_value ? $gap_value : 'var( --wp--style--block-gap, 0.5em )';
$style .= "gap: $gap_style;";
} else {
$style .= 'gap: 0.5em;';
}
@ -156,8 +159,13 @@ function wp_render_layout_support_flag( $block_content, $block ) {
$used_layout = $default_layout;
}
$id = uniqid();
$style = wp_get_layout_style( ".wp-container-$id", $used_layout, $has_block_gap_support );
$id = uniqid();
$gap_value = _wp_array_get( $block, array( 'attrs', 'style', 'spacing', 'blockGap' ) );
// Skip if gap value contains unsupported characters.
// Regex for CSS value borrowed from `safecss_filter_attr`, and used here
// because we only want to match against the value, not the CSS attribute.
$gap_value = preg_match( '%[\\\(&=}]|/\*%', $gap_value ) ? null : $gap_value;
$style = wp_get_layout_style( ".wp-container-$id", $used_layout, $has_block_gap_support, $gap_value );
// This assumes the hook only applies to blocks with a single wrapper.
// I think this is a reasonable limitation for that particular hook.
$content = preg_replace(

View File

@ -95,59 +95,6 @@ function wp_skip_spacing_serialization( $block_type ) {
$spacing_support['__experimentalSkipSerialization'];
}
/**
* Renders the spacing gap support to the block wrapper, to ensure
* that the CSS variable is rendered in all environments.
*
* @since 5.9.0
* @access private
*
* @param string $block_content Rendered block content.
* @param array $block Block object.
* @return string Filtered block content.
*/
function wp_render_spacing_gap_support( $block_content, $block ) {
$block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block['blockName'] );
$has_gap_support = block_has_support( $block_type, array( 'spacing', 'blockGap' ), false );
if ( ! $has_gap_support || ! isset( $block['attrs']['style']['spacing']['blockGap'] ) ) {
return $block_content;
}
$gap_value = $block['attrs']['style']['spacing']['blockGap'];
// Skip if gap value contains unsupported characters.
// Regex for CSS value borrowed from `safecss_filter_attr`, and used here
// because we only want to match against the value, not the CSS attribute.
if ( preg_match( '%[\\\(&=}]|/\*%', $gap_value ) ) {
return $block_content;
}
$style = sprintf(
'--wp--style--block-gap: %s',
esc_attr( $gap_value )
);
// Attempt to update an existing style attribute on the wrapper element.
$injected_style = preg_replace(
'/^([^>.]+?)(' . preg_quote( 'style="', '/' ) . ')(?=.+?>)/',
'$1$2' . $style . '; ',
$block_content,
1
);
// If there is no existing style attribute, add one to the wrapper element.
if ( $injected_style === $block_content ) {
$injected_style = preg_replace(
'/<([a-zA-Z0-9]+)([ >])/',
'<$1 style="' . $style . '"$2',
$block_content,
1
);
};
return $injected_style;
}
// Register the block support.
WP_Block_Supports::get_instance()->register(
'spacing',
@ -156,5 +103,3 @@ WP_Block_Supports::get_instance()->register(
'apply' => 'wp_apply_spacing_support',
)
);
add_filter( 'render_block', 'wp_render_spacing_gap_support', 10, 2 );

View File

@ -23,11 +23,10 @@
"link": true
},
"spacing": {
"blockGap": true,
"margin": [ "top", "bottom" ],
"padding": true,
"__experimentalDefaultControls": {
"blockGap": true
"padding": true
}
}
},

View File

@ -98,17 +98,7 @@
}
},
"spacing": {
"blockGap": true,
"units": [
"px",
"em",
"rem",
"vh",
"vw"
],
"__experimentalDefaultControls": {
"blockGap": true
}
"units": [ "px", "em", "rem", "vh", "vw" ]
},
"__experimentalLayout": {
"allowSwitching": false,

View File

@ -293,7 +293,6 @@
}
.wp-block-navigation-placeholder__controls {
padding: 8px;
border-radius: 2px;
background-color: #fff;
box-shadow: inset 0 0 0 1px #1e1e1e;
@ -302,19 +301,23 @@
display: none;
position: relative;
z-index: 1;
padding: 4px 8px;
float: right;
width: 100%;
}
.is-large .wp-block-navigation-placeholder__controls {
padding: 4px 8px;
}
.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls {
display: flex;
}
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions {
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator + hr,
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions > :nth-last-child(3),
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions > :nth-last-child(2) {
display: none;
}
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions {
flex-direction: column;
}
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr {
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr {
display: none;
}
.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon {
@ -334,6 +337,10 @@
margin-left: 4px;
}
.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset {
flex-direction: row !important;
}
.wp-block-navigation-placeholder__actions {
display: flex;
font-size: 13px;

File diff suppressed because one or more lines are too long

View File

@ -293,7 +293,6 @@
}
.wp-block-navigation-placeholder__controls {
padding: 8px;
border-radius: 2px;
background-color: #fff;
box-shadow: inset 0 0 0 1px #1e1e1e;
@ -302,19 +301,23 @@
display: none;
position: relative;
z-index: 1;
padding: 4px 8px;
float: left;
width: 100%;
}
.is-large .wp-block-navigation-placeholder__controls {
padding: 4px 8px;
}
.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls {
display: flex;
}
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions {
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator + hr,
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions > :nth-last-child(3),
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions > :nth-last-child(2) {
display: none;
}
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions {
flex-direction: column;
}
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr {
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr {
display: none;
}
.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon {
@ -334,6 +337,10 @@
margin-right: 4px;
}
.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset {
flex-direction: row !important;
}
.wp-block-navigation-placeholder__actions {
display: flex;
font-size: 13px;

File diff suppressed because one or more lines are too long

View File

@ -36,11 +36,16 @@ function render_block_core_post_content( $attributes, $content, $block ) {
$seen_ids[ $post_id ] = true;
// Check is needed for backward compatibility with third-party plugins
// that might rely on the `in_the_loop` check; calling `the_post` sets it to true.
if ( ! in_the_loop() && have_posts() ) {
the_post();
}
$content = get_the_content( null, false, $post_id );
// When inside the main loop, we want to use queried object
// so that `the_preview` for the current post can apply.
// We force this behavior by omitting the third argument (post ID) from the `get_the_content`.
$content = get_the_content( null, false );
/** This filter is documented in wp-includes/post-template.php */
$content = apply_filters( 'the_content', str_replace( ']]>', ']]&gt;', $content ) );
unset( $seen_ids[ $post_id ] );

View File

@ -18,7 +18,7 @@ function render_block_core_post_excerpt( $attributes, $content, $block ) {
return '';
}
$excerpt = get_the_excerpt( $block->context['postId'] );
$excerpt = get_the_excerpt();
if ( empty( $excerpt ) ) {
return '';

View File

@ -20,7 +20,7 @@ function render_block_core_post_title( $attributes, $content, $block ) {
}
$post_ID = $block->context['postId'];
$title = get_the_title( $post_ID );
$title = get_the_title();
if ( ! $title ) {
return '';

View File

@ -76,6 +76,23 @@ function register_block_core_site_logo_setting() {
add_action( 'rest_api_init', 'register_block_core_site_logo_setting', 10 );
/**
* Register a core site setting for a site icon
*/
function register_block_core_site_icon_setting() {
register_setting(
'general',
'site_icon',
array(
'show_in_rest' => true,
'type' => 'integer',
'description' => __( 'Site icon.' ),
)
);
}
add_action( 'rest_api_init', 'register_block_core_site_icon_setting', 10 );
/**
* Registers the `core/site-logo` block on the server.
*/

View File

@ -16,12 +16,16 @@
"linkTarget": {
"type": "string",
"default": "_self"
},
"shouldSyncIcon": {
"type": "boolean"
}
},
"example": {
"viewportWidth": 500,
"attributes": {
"width": 350
"width": 350,
"className": "block-editor-block-types-list__site-logo-example"
}
},
"supports": {

View File

@ -317,7 +317,7 @@ class WP_Theme_JSON {
'spacing' => array(
'margin' => null,
'padding' => null,
'blockGap' => null,
'blockGap' => 'top',
),
'typography' => array(
'fontFamily' => null,
@ -472,17 +472,28 @@ class WP_Theme_JSON {
$output = array_intersect_key( $input, array_flip( self::VALID_TOP_LEVEL_KEYS ) );
// Some styles are only meant to be available at the top-level (e.g.: blockGap),
// hence, the schema for blocks & elements should not have them.
$styles_non_top_level = self::VALID_STYLES;
foreach ( array_keys( $styles_non_top_level ) as $section ) {
foreach ( array_keys( $styles_non_top_level[ $section ] ) as $prop ) {
if ( 'top' === $styles_non_top_level[ $section ][ $prop ] ) {
unset( $styles_non_top_level[ $section ][ $prop ] );
}
}
}
// Build the schema based on valid block & element names.
$schema = array();
$schema_styles_elements = array();
foreach ( $valid_element_names as $element ) {
$schema_styles_elements[ $element ] = self::VALID_STYLES;
$schema_styles_elements[ $element ] = $styles_non_top_level;
}
$schema_styles_blocks = array();
$schema_settings_blocks = array();
foreach ( $valid_block_names as $block ) {
$schema_settings_blocks[ $block ] = self::VALID_SETTINGS;
$schema_styles_blocks[ $block ] = self::VALID_STYLES;
$schema_styles_blocks[ $block ] = $styles_non_top_level;
$schema_styles_blocks[ $block ]['elements'] = $schema_styles_elements;
}
$schema['styles'] = self::VALID_STYLES;

View File

@ -1391,7 +1391,6 @@ figure.wp-block-image:not(.wp-block) {
}
.wp-block-navigation-placeholder__controls {
padding: 8px;
border-radius: 2px;
background-color: #fff;
box-shadow: inset 0 0 0 1px #1e1e1e;
@ -1400,19 +1399,23 @@ figure.wp-block-image:not(.wp-block) {
display: none;
position: relative;
z-index: 1;
padding: 4px 8px;
float: right;
width: 100%;
}
.is-large .wp-block-navigation-placeholder__controls {
padding: 4px 8px;
}
.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls {
display: flex;
}
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions {
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator + hr,
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions > :nth-last-child(3),
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions > :nth-last-child(2) {
display: none;
}
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions {
flex-direction: column;
}
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr {
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr {
display: none;
}
.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon {
@ -1432,6 +1435,10 @@ figure.wp-block-image:not(.wp-block) {
margin-left: 4px;
}
.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset {
flex-direction: row !important;
}
.wp-block-navigation-placeholder__actions {
display: flex;
font-size: 13px;
@ -2602,8 +2609,6 @@ div[data-type="core/post-featured-image"] img {
*/
/* stylelint-disable function-comma-space-after */
/* stylelint-enable function-comma-space-after */
--wp--preset--font-size--normal: 16px;
--wp--preset--font-size--huge: 42px;
}
:root .editor-styles-wrapper .has-very-light-gray-background-color {
background-color: #eee;
@ -2639,6 +2644,11 @@ div[data-type="core/post-featured-image"] img {
background: linear-gradient(-135deg, #020381 0%, #2874fc 100%);
}
.editor-styles-wrapper {
--wp--preset--font-size--normal: 16px;
--wp--preset--font-size--huge: 42px;
}
.editor-styles-wrapper .has-regular-font-size {
font-size: 16px;
}

File diff suppressed because one or more lines are too long

View File

@ -1396,7 +1396,6 @@ figure.wp-block-image:not(.wp-block) {
}
.wp-block-navigation-placeholder__controls {
padding: 8px;
border-radius: 2px;
background-color: #fff;
box-shadow: inset 0 0 0 1px #1e1e1e;
@ -1405,19 +1404,23 @@ figure.wp-block-image:not(.wp-block) {
display: none;
position: relative;
z-index: 1;
padding: 4px 8px;
float: left;
width: 100%;
}
.is-large .wp-block-navigation-placeholder__controls {
padding: 4px 8px;
}
.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls {
display: flex;
}
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions {
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator + hr,
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions > :nth-last-child(3),
.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions > :nth-last-child(2) {
display: none;
}
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions {
flex-direction: column;
}
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr {
.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr {
display: none;
}
.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon {
@ -1437,6 +1440,10 @@ figure.wp-block-image:not(.wp-block) {
margin-right: 4px;
}
.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset {
flex-direction: row !important;
}
.wp-block-navigation-placeholder__actions {
display: flex;
font-size: 13px;
@ -2610,8 +2617,6 @@ div[data-type="core/post-featured-image"] img {
*/
/* stylelint-disable function-comma-space-after */
/* stylelint-enable function-comma-space-after */
--wp--preset--font-size--normal: 16px;
--wp--preset--font-size--huge: 42px;
}
:root .editor-styles-wrapper .has-very-light-gray-background-color {
background-color: #eee;
@ -2647,6 +2652,11 @@ div[data-type="core/post-featured-image"] img {
background: linear-gradient(135deg, #020381 0%, #2874fc 100%);
}
.editor-styles-wrapper {
--wp--preset--font-size--normal: 16px;
--wp--preset--font-size--huge: 42px;
}
.editor-styles-wrapper .has-regular-font-size {
font-size: 16px;
}

File diff suppressed because one or more lines are too long

View File

@ -732,10 +732,13 @@ body.is-fullscreen-mode .interface-interface-skeleton {
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) rgba(255, 255, 255, 0.1), inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
}
}
.edit-post-fullscreen-mode-close_site-icon {
.edit-post-fullscreen-mode-close.has-icon .edit-post-fullscreen-mode-close_site-icon {
width: 36px;
height: 36px;
border-radius: 2px;
-o-object-fit: cover;
object-fit: cover;
margin-top: -1px;
}
.edit-post-header-toolbar {

File diff suppressed because one or more lines are too long

View File

@ -732,10 +732,13 @@ body.is-fullscreen-mode .interface-interface-skeleton {
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) rgba(255, 255, 255, 0.1), inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
}
}
.edit-post-fullscreen-mode-close_site-icon {
.edit-post-fullscreen-mode-close.has-icon .edit-post-fullscreen-mode-close_site-icon {
width: 36px;
height: 36px;
border-radius: 2px;
-o-object-fit: cover;
object-fit: cover;
margin-top: -1px;
}
.edit-post-header-toolbar {

File diff suppressed because one or more lines are too long

View File

@ -580,7 +580,8 @@ body.is-fullscreen-mode .interface-interface-skeleton {
.edit-site-global-styles-subtitle {
margin-bottom: 0 !important;
text-transform: uppercase;
font-weight: 500;
font-weight: 500 !important;
font-size: 11px !important;
}
.edit-site-screen-color-palette-toggle.edit-site-screen-color-palette-toggle {
@ -914,10 +915,13 @@ body.is-navigation-sidebar-open .edit-site-header .edit-site-header_end .compone
.edit-site-navigation-toggle__button.has-icon:focus::before {
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) rgba(255, 255, 255, 0.1), inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
}
.edit-site-navigation-toggle__site-icon {
.edit-site-navigation-toggle__button .edit-site-navigation-toggle__site-icon {
width: 36px;
height: 36px;
border-radius: 2px;
-o-object-fit: cover;
object-fit: cover;
margin-top: -1px;
}
.edit-site-navigation-panel {

File diff suppressed because one or more lines are too long

View File

@ -580,7 +580,8 @@ body.is-fullscreen-mode .interface-interface-skeleton {
.edit-site-global-styles-subtitle {
margin-bottom: 0 !important;
text-transform: uppercase;
font-weight: 500;
font-weight: 500 !important;
font-size: 11px !important;
}
.edit-site-screen-color-palette-toggle.edit-site-screen-color-palette-toggle {
@ -914,10 +915,13 @@ body.is-navigation-sidebar-open .edit-site-header .edit-site-header_end .compone
.edit-site-navigation-toggle__button.has-icon:focus::before {
box-shadow: inset 0 0 0 var(--wp-admin-border-width-focus) rgba(255, 255, 255, 0.1), inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
}
.edit-site-navigation-toggle__site-icon {
.edit-site-navigation-toggle__button .edit-site-navigation-toggle__site-icon {
width: 36px;
height: 36px;
border-radius: 2px;
-o-object-fit: cover;
object-fit: cover;
margin-top: -1px;
}
.edit-site-navigation-panel {

File diff suppressed because one or more lines are too long

View File

@ -12733,6 +12733,15 @@ function BlockTools(_ref) {
insertBeforeBlock(Object(external_lodash_["first"])(clientIds));
}
} else if (isMatch('core/block-editor/delete-multi-selection', event)) {
/**
* Check if the target element is a text area, input or
* event.defaultPrevented and return early. In all these
* cases backspace could be handled elsewhere.
*/
if (['INPUT', 'TEXTAREA'].includes(event.target.nodeName) || event.defaultPrevented) {
return;
}
const clientIds = getSelectedBlockClientIds();
if (clientIds.length > 1) {
@ -19177,6 +19186,9 @@ var rememo = __webpack_require__("pPDe");
// EXTERNAL MODULE: external ["wp","element"]
var external_wp_element_ = __webpack_require__("GRId");
// EXTERNAL MODULE: external ["wp","hooks"]
var external_wp_hooks_ = __webpack_require__("g56x");
// EXTERNAL MODULE: ./node_modules/@wordpress/icons/build-module/library/symbol.js
var symbol = __webpack_require__("+WrK");
@ -19193,6 +19205,7 @@ var symbol = __webpack_require__("+WrK");
/**
* A block selection object.
*
@ -20378,16 +20391,32 @@ const canInsertBlockTypeUnmemoized = function (state, blockName) {
const blockAllowedParentBlocks = blockType.parent;
const parentName = getBlockName(state, rootClientId);
const hasBlockAllowedParent = checkAllowList(blockAllowedParentBlocks, parentName);
const canInsert = hasParentAllowedBlock === null && hasBlockAllowedParent === null || hasParentAllowedBlock === true || hasBlockAllowedParent === true;
if (hasParentAllowedBlock !== null && hasBlockAllowedParent !== null) {
return hasParentAllowedBlock || hasBlockAllowedParent;
} else if (hasParentAllowedBlock !== null) {
return hasParentAllowedBlock;
} else if (hasBlockAllowedParent !== null) {
return hasBlockAllowedParent;
if (!canInsert) {
return canInsert;
}
/**
* This filter is an ad-hoc solution to prevent adding template parts inside post content.
* Conceptually, having a filter inside a selector is bad pattern so this code will be
* replaced by a declarative API that doesn't the following drawbacks:
*
* Filters are not reactive: Upon switching between "template mode" and non "template mode",
* the filter and selector won't necessarily be executed again. For now, it doesn't matter much
* because you can't switch between the two modes while the inserter stays open.
*
* Filters are global: Once they're defined, they will affect all editor instances and all registries.
* An ideal API would only affect specific editor instances.
*/
return true;
return Object(external_wp_hooks_["applyFilters"])('blockEditor.__unstableCanInsertBlockType', canInsert, blockType, rootClientId, {
// Pass bound selectors of the current registry. If we're in a nested
// context, the data will differ from the one selected from the root
// registry.
getBlock: getBlock.bind(null, state),
getBlockParentsByBlockName: getBlockParentsByBlockName.bind(null, state)
});
};
/**
* Determines if the given block type is allowed to be inserted into the block list.
@ -23172,7 +23201,6 @@ function getGradientSlugByValue(gradients, value) {
return gradient && gradient.slug;
}
const EMPTY_OBJECT = {};
function __experimentalUseGradient() {
let {
gradientAttribute = 'gradient',
@ -23181,8 +23209,10 @@ function __experimentalUseGradient() {
const {
clientId
} = Object(_block_edit__WEBPACK_IMPORTED_MODULE_3__[/* useBlockEditContext */ "c"])();
const gradientsPerOrigin = Object(_use_setting__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])('color.gradients') || EMPTY_OBJECT;
const allGradients = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useMemo"])(() => [...((gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : gradientsPerOrigin.custom) || []), ...((gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : gradientsPerOrigin.theme) || []), ...((gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : gradientsPerOrigin.default) || [])], [gradientsPerOrigin]);
const userGradientPalette = Object(_use_setting__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])('color.gradients.custom');
const themeGradientPalette = Object(_use_setting__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])('color.gradients.theme');
const defaultGradientPalette = Object(_use_setting__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"])('color.gradients.default');
const allGradients = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_1__["useMemo"])(() => [...(userGradientPalette || []), ...(themeGradientPalette || []), ...(defaultGradientPalette || [])], [userGradientPalette, themeGradientPalette, defaultGradientPalette]);
const {
gradient,
customGradient
@ -26090,15 +26120,19 @@ const flexWrapOptions = ['wrap', 'nowrap'];
}));
},
save: function FlexLayoutStyle(_ref3) {
var _style$spacing$blockG, _style$spacing;
let {
selector,
layout
layout,
style
} = _ref3;
const {
orientation = 'horizontal'
} = layout;
const blockGapSupport = Object(use_setting["a" /* default */])('spacing.blockGap');
const hasBlockGapStylesSupport = blockGapSupport !== null;
const blockGapValue = (_style$spacing$blockG = style === null || style === void 0 ? void 0 : (_style$spacing = style.spacing) === null || _style$spacing === void 0 ? void 0 : _style$spacing.blockGap) !== null && _style$spacing$blockG !== void 0 ? _style$spacing$blockG : 'var( --wp--style--block-gap, 0.5em )';
const justifyContent = justifyContentMap[layout.justifyContent] || justifyContentMap.left;
const flexWrap = flexWrapOptions.includes(layout.flexWrap) ? layout.flexWrap : 'wrap';
const rowOrientation = `
@ -26114,7 +26148,7 @@ const flexWrapOptions = ['wrap', 'nowrap'];
return Object(external_wp_element_["createElement"])("style", null, `
${appendSelectors(selector)} {
display: flex;
gap: ${hasBlockGapStylesSupport ? 'var( --wp--style--block-gap, 0.5em )' : '0.5em'};
gap: ${hasBlockGapStylesSupport ? blockGapValue : '0.5em'};
flex-wrap: ${flexWrap};
${orientation === 'horizontal' ? rowOrientation : columnOrientation}
}
@ -26351,9 +26385,12 @@ var stretch_wide = __webpack_require__("beZb");
return null;
},
save: function DefaultLayoutStyle(_ref2) {
var _style$spacing$blockG, _style$spacing;
let {
selector,
layout = {}
layout = {},
style
} = _ref2;
const {
contentSize,
@ -26361,7 +26398,8 @@ var stretch_wide = __webpack_require__("beZb");
} = layout;
const blockGapSupport = Object(use_setting["a" /* default */])('spacing.blockGap');
const hasBlockGapStylesSupport = blockGapSupport !== null;
let style = !!contentSize || !!wideSize ? `
const blockGapValue = (_style$spacing$blockG = style === null || style === void 0 ? void 0 : (_style$spacing = style.spacing) === null || _style$spacing === void 0 ? void 0 : _style$spacing.blockGap) !== null && _style$spacing$blockG !== void 0 ? _style$spacing$blockG : 'var( --wp--style--block-gap )';
let output = !!contentSize || !!wideSize ? `
${appendSelectors(selector, '> *')} {
max-width: ${contentSize !== null && contentSize !== void 0 ? contentSize : wideSize};
margin-left: auto !important;
@ -26376,7 +26414,7 @@ var stretch_wide = __webpack_require__("beZb");
max-width: none;
}
` : '';
style += `
output += `
${appendSelectors(selector, '> [data-align="left"]')} {
float: left;
margin-right: 2em;
@ -26390,18 +26428,18 @@ var stretch_wide = __webpack_require__("beZb");
`;
if (hasBlockGapStylesSupport) {
style += `
output += `
${appendSelectors(selector, '> *')} {
margin-top: 0;
margin-bottom: 0;
}
${appendSelectors(selector, '> * + *')} {
margin-top: var( --wp--style--block-gap );
margin-top: ${blockGapValue};
}
`;
}
return Object(external_wp_element_["createElement"])("style", null, style);
return Object(external_wp_element_["createElement"])("style", null, output);
},
getOrientation() {
@ -34360,6 +34398,7 @@ const justifyLeft = Object(_wordpress_element__WEBPACK_IMPORTED_MODULE_0__["crea
/* unused harmony export Trail */
/* unused harmony export Transition */
/* unused harmony export config */
/* unused harmony export easings */
/* unused harmony export inferTo */
/* unused harmony export interpolate */
/* unused harmony export to */
@ -34546,8 +34585,8 @@ function useChain(refs, timeSteps, timeFrame = 1000) {
props.delay = key => delay + callProp(memoizedDelayProp || 0, key);
});
ctrl.start();
});
ref.start();
}
});
} else {
@ -34597,13 +34636,65 @@ const config = {
friction: 120
}
};
const c1 = 1.70158;
const c2 = c1 * 1.525;
const c3 = c1 + 1;
const c4 = 2 * Math.PI / 3;
const c5 = 2 * Math.PI / 4.5;
const linear = t => t;
const bounceOut = x => {
const n1 = 7.5625;
const d1 = 2.75;
if (x < 1 / d1) {
return n1 * x * x;
} else if (x < 2 / d1) {
return n1 * (x -= 1.5 / d1) * x + 0.75;
} else if (x < 2.5 / d1) {
return n1 * (x -= 2.25 / d1) * x + 0.9375;
} else {
return n1 * (x -= 2.625 / d1) * x + 0.984375;
}
};
const easings = {
linear: x => x,
easeInQuad: x => x * x,
easeOutQuad: x => 1 - (1 - x) * (1 - x),
easeInOutQuad: x => x < 0.5 ? 2 * x * x : 1 - Math.pow(-2 * x + 2, 2) / 2,
easeInCubic: x => x * x * x,
easeOutCubic: x => 1 - Math.pow(1 - x, 3),
easeInOutCubic: x => x < 0.5 ? 4 * x * x * x : 1 - Math.pow(-2 * x + 2, 3) / 2,
easeInQuart: x => x * x * x * x,
easeOutQuart: x => 1 - Math.pow(1 - x, 4),
easeInOutQuart: x => x < 0.5 ? 8 * x * x * x * x : 1 - Math.pow(-2 * x + 2, 4) / 2,
easeInQuint: x => x * x * x * x * x,
easeOutQuint: x => 1 - Math.pow(1 - x, 5),
easeInOutQuint: x => x < 0.5 ? 16 * x * x * x * x * x : 1 - Math.pow(-2 * x + 2, 5) / 2,
easeInSine: x => 1 - Math.cos(x * Math.PI / 2),
easeOutSine: x => Math.sin(x * Math.PI / 2),
easeInOutSine: x => -(Math.cos(Math.PI * x) - 1) / 2,
easeInExpo: x => x === 0 ? 0 : Math.pow(2, 10 * x - 10),
easeOutExpo: x => x === 1 ? 1 : 1 - Math.pow(2, -10 * x),
easeInOutExpo: x => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? Math.pow(2, 20 * x - 10) / 2 : (2 - Math.pow(2, -20 * x + 10)) / 2,
easeInCirc: x => 1 - Math.sqrt(1 - Math.pow(x, 2)),
easeOutCirc: x => Math.sqrt(1 - Math.pow(x - 1, 2)),
easeInOutCirc: x => x < 0.5 ? (1 - Math.sqrt(1 - Math.pow(2 * x, 2))) / 2 : (Math.sqrt(1 - Math.pow(-2 * x + 2, 2)) + 1) / 2,
easeInBack: x => c3 * x * x * x - c1 * x * x,
easeOutBack: x => 1 + c3 * Math.pow(x - 1, 3) + c1 * Math.pow(x - 1, 2),
easeInOutBack: x => x < 0.5 ? Math.pow(2 * x, 2) * ((c2 + 1) * 2 * x - c2) / 2 : (Math.pow(2 * x - 2, 2) * ((c2 + 1) * (x * 2 - 2) + c2) + 2) / 2,
easeInElastic: x => x === 0 ? 0 : x === 1 ? 1 : -Math.pow(2, 10 * x - 10) * Math.sin((x * 10 - 10.75) * c4),
easeOutElastic: x => x === 0 ? 0 : x === 1 ? 1 : Math.pow(2, -10 * x) * Math.sin((x * 10 - 0.75) * c4) + 1,
easeInOutElastic: x => x === 0 ? 0 : x === 1 ? 1 : x < 0.5 ? -(Math.pow(2, 20 * x - 10) * Math.sin((20 * x - 11.125) * c5)) / 2 : Math.pow(2, -20 * x + 10) * Math.sin((20 * x - 11.125) * c5) / 2 + 1,
easeInBounce: x => 1 - bounceOut(1 - x),
easeOutBounce: bounceOut,
easeInOutBounce: x => x < 0.5 ? (1 - bounceOut(1 - 2 * x)) / 2 : (1 + bounceOut(2 * x - 1)) / 2
};
const defaults = _extends({}, config.default, {
mass: 1,
damping: 1,
easing: linear,
easing: easings.linear,
clamp: false
});
@ -34738,7 +34829,8 @@ function scheduleProps(callId, {
}
function onResume() {
if (delay > 0) {
if (delay > 0 && !_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* Globals */ "b"].skipAnimation) {
state.delayed = true;
timeout = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* raf */ "w"].setTimeout(onStart, delay);
state.pauseQueue.add(onPause);
state.timeouts.add(timeout);
@ -34748,6 +34840,10 @@ function scheduleProps(callId, {
}
function onStart() {
if (state.delayed) {
state.delayed = false;
}
state.pauseQueue.delete(onPause);
state.timeouts.delete(timeout);
@ -35015,6 +35111,7 @@ class SpringValue extends FrameValue {
this.defaultProps = {};
this._state = {
paused: false,
delayed: false,
pauseQueue: new Set(),
resumeQueue: new Set(),
timeouts: new Set()
@ -35062,6 +35159,10 @@ class SpringValue extends FrameValue {
return isPaused(this);
}
get isDelayed() {
return this._state.delayed;
}
advance(dt) {
let idle = true;
let changed = false;
@ -35265,7 +35366,11 @@ class SpringValue extends FrameValue {
this.queue = [];
}
return Promise.all(queue.map(props => this._update(props))).then(results => getCombinedResult(this, results));
return Promise.all(queue.map(props => {
const up = this._update(props);
return up;
})).then(results => getCombinedResult(this, results));
}
stop(cancel) {
@ -35798,7 +35903,9 @@ class Controller {
}
get idle() {
return !this._state.asyncTo && Object.values(this.springs).every(spring => spring.idle);
return !this._state.asyncTo && Object.values(this.springs).every(spring => {
return spring.idle && !spring.isDelayed && !spring.isPaused;
});
}
get item() {
@ -36361,24 +36468,50 @@ const initSpringRef = () => SpringRef();
const useSpringRef = () => Object(react__WEBPACK_IMPORTED_MODULE_1__["useState"])(initSpringRef)[0];
function useTrail(length, propsArg, deps) {
var _passedRef;
const propsFn = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* is */ "s"].fun(propsArg) && propsArg;
if (propsFn && !deps) deps = [];
let reverse = true;
let passedRef = undefined;
const result = useSprings(length, (i, ctrl) => {
const props = propsFn ? propsFn(i, ctrl) : propsArg;
passedRef = props.ref;
reverse = reverse && props.reverse;
return props;
}, deps || [{}]);
const ref = result[1];
const ref = (_passedRef = passedRef) != null ? _passedRef : result[1];
Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* useLayoutEffect */ "A"])(() => {
Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* each */ "k"])(ref.current, (ctrl, i) => {
const parent = ref.current[i + (reverse ? 1 : -1)];
if (parent) ctrl.start({
to: parent.springs
});
if (parent) {
ctrl.start({
to: parent.springs
});
} else {
ctrl.start();
}
});
}, deps);
ref['start'] = propsArg => {
const results = [];
Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* each */ "k"])(ref.current, (ctrl, i) => {
const props = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* is */ "s"].fun(propsArg) ? propsArg(i, ctrl) : propsArg;
const parent = ref.current[i + (reverse ? 1 : -1)];
if (parent) {
results.push(ctrl.start(_extends({}, props, {
to: parent.springs
})));
} else {
results.push(ctrl.start(_extends({}, props)));
}
});
return results;
};
if (propsFn || arguments.length == 3) {
ref['_getProps'] = (propsArg, ctrl, i) => {
const props = _react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* is */ "s"].fun(propsArg) ? propsArg(i, ctrl) : propsArg;
@ -36412,6 +36545,7 @@ function useTransition(data, props, deps) {
sort,
trail = 0,
expires = true,
exitBeforeEnter = false,
onDestroyed,
ref: propsRef,
config: propsConfig
@ -36424,14 +36558,16 @@ function useTransition(data, props, deps) {
Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* useLayoutEffect */ "A"])(() => {
usedTransitions.current = transitions;
});
Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* useOnce */ "C"])(() => () => Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* each */ "k"])(usedTransitions.current, t => {
if (t.expired) {
clearTimeout(t.expirationId);
}
Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* useOnce */ "C"])(() => () => {
Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* each */ "k"])(usedTransitions.current, t => {
if (t.expired) {
clearTimeout(t.expirationId);
}
detachRefs(t.ctrl, ref);
t.ctrl.stop(true);
}));
detachRefs(t.ctrl, ref);
t.ctrl.stop(true);
});
});
const keys = getKeys(items, propsFn ? propsFn() : props, prevTransitions);
const expired = reset && usedTransitions.current || [];
Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* useLayoutEffect */ "A"])(() => Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* each */ "k"])(expired, ({
@ -36491,6 +36627,8 @@ function useTransition(data, props, deps) {
const forceUpdate = Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* useForceUpdate */ "z"])();
const defaultProps = getDefaultProps(props);
const changes = new Map();
const exitingTransitions = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(new Map());
const forceChange = Object(react__WEBPACK_IMPORTED_MODULE_1__["useRef"])(false);
Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* each */ "k"])(transitions, (t, i) => {
const key = t.key;
const prevPhase = t.phase;
@ -36576,30 +36714,53 @@ function useTransition(data, props, deps) {
}
if (idle && transitions.some(t => t.expired)) {
exitingTransitions.current.delete(t);
if (exitBeforeEnter) {
forceChange.current = true;
}
forceUpdate();
}
}
};
const springs = getSprings(t.ctrl, payload);
changes.set(t, {
phase,
springs,
payload
});
if (phase === TransitionPhase.LEAVE && exitBeforeEnter) {
exitingTransitions.current.set(t, {
phase,
springs,
payload
});
} else {
changes.set(t, {
phase,
springs,
payload
});
}
});
const context = Object(react__WEBPACK_IMPORTED_MODULE_1__["useContext"])(SpringContext);
const prevContext = Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* usePrev */ "D"])(context);
const hasContext = context !== prevContext && hasProps(context);
Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* useLayoutEffect */ "A"])(() => {
if (hasContext) Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* each */ "k"])(transitions, t => {
t.ctrl.start({
default: context
if (hasContext) {
Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* each */ "k"])(transitions, t => {
t.ctrl.start({
default: context
});
});
});
}
}, [context]);
Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* each */ "k"])(changes, (_, t) => {
if (exitingTransitions.current.size) {
const ind = transitions.findIndex(state => state.key === t.key);
transitions.splice(ind, 1);
}
});
Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* useLayoutEffect */ "A"])(() => {
Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* each */ "k"])(changes, ({
Object(_react_spring_shared__WEBPACK_IMPORTED_MODULE_0__[/* each */ "k"])(exitingTransitions.current.size ? exitingTransitions.current : changes, ({
phase,
payload
}, t) => {
@ -36618,10 +36779,14 @@ function useTransition(data, props, deps) {
if (payload) {
replaceRef(ctrl, payload.ref);
if (ctrl.ref) {
if (ctrl.ref && !forceChange.current) {
ctrl.update(payload);
} else {
ctrl.start(payload);
if (forceChange.current) {
forceChange.current = false;
}
}
}
});
@ -37172,7 +37337,7 @@ raf.setTimeout = (handler, ms) => {
let cancel = () => {
let i = timeouts.findIndex(t => t.cancel == cancel);
if (~i) timeouts.splice(i, 1);
__raf.count -= ~i ? 1 : 0;
pendingCount -= ~i ? 1 : 0;
};
let timeout = {
@ -37181,7 +37346,7 @@ raf.setTimeout = (handler, ms) => {
cancel
};
timeouts.splice(findTimeout(time), 0, timeout);
__raf.count += 1;
pendingCount += 1;
start();
return timeout;
};
@ -37189,8 +37354,11 @@ raf.setTimeout = (handler, ms) => {
let findTimeout = time => ~(~timeouts.findIndex(t => t.time > time) || ~timeouts.length);
raf.cancel = fn => {
onStartQueue.delete(fn);
onFrameQueue.delete(fn);
updateQueue.delete(fn);
writeQueue.delete(fn);
onFinishQueue.delete(fn);
};
raf.sync = fn => {
@ -37245,6 +37413,7 @@ raf.advance = () => {
};
let ts = -1;
let pendingCount = 0;
let sync = false;
function schedule(fn, queue) {
@ -37267,6 +37436,10 @@ function start() {
}
}
function stop() {
ts = -1;
}
function loop() {
if (~ts) {
nativeRaf(loop);
@ -37281,7 +37454,7 @@ function react_spring_rafz_esm_update() {
if (count) {
eachSafely(timeouts.splice(0, count), t => t.handler());
__raf.count -= count;
pendingCount -= count;
}
onStartQueue.flush();
@ -37289,6 +37462,10 @@ function react_spring_rafz_esm_update() {
onFrameQueue.flush();
writeQueue.flush();
onFinishQueue.flush();
if (!pendingCount) {
stop();
}
}
function makeQueue() {
@ -37296,21 +37473,21 @@ function makeQueue() {
let current = next;
return {
add(fn) {
__raf.count += current == next && !next.has(fn) ? 1 : 0;
pendingCount += current == next && !next.has(fn) ? 1 : 0;
next.add(fn);
},
delete(fn) {
__raf.count -= current == next && next.has(fn) ? 1 : 0;
pendingCount -= current == next && next.has(fn) ? 1 : 0;
return next.delete(fn);
},
flush(arg) {
if (current.size) {
next = new Set();
__raf.count -= current.size;
pendingCount -= current.size;
eachSafely(current, fn => fn(arg) && next.add(fn));
__raf.count += next.size;
pendingCount += next.size;
current = next;
}
}
@ -37329,7 +37506,13 @@ function eachSafely(values, each) {
}
const __raf = {
count: 0,
count() {
return pendingCount;
},
isRunning() {
return ts >= 0;
},
clear() {
ts = -1;
@ -37339,7 +37522,7 @@ const __raf = {
onFrameQueue = makeQueue();
writeQueue = makeQueue();
onFinishQueue = makeQueue();
__raf.count = 0;
pendingCount = 0;
}
};
@ -37949,14 +38132,53 @@ const setHidden = (target, key, value) => Object.defineProperty(target, key, {
const numberRegex = /[+\-]?(?:0|[1-9]\d*)(?:\.\d*)?(?:[eE][+\-]?\d+)?/g;
const colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d\.]+%?\))/gi;
const unitRegex = new RegExp(`(${numberRegex.source})(%|[a-z]+)`, 'i');
let namedColorRegex;
const rgbaRegex = /rgba\(([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+), ([0-9\.-]+)\)/gi;
const cssVariableRegex = /var\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\)/;
const variableToRgba = input => {
const [token, fallback] = parseCSSVariable(input);
if (!token) {
return input;
}
const value = window.getComputedStyle(document.documentElement).getPropertyValue(token);
if (value) {
return value.trim();
} else if (fallback && fallback.startsWith('--')) {
const _value = window.getComputedStyle(document.documentElement).getPropertyValue(fallback);
if (_value) {
return _value;
} else {
return input;
}
} else if (fallback && cssVariableRegex.test(fallback)) {
return variableToRgba(fallback);
} else if (fallback) {
return fallback;
}
return input;
};
const parseCSSVariable = current => {
const match = cssVariableRegex.exec(current);
if (!match) return [,];
const [, token, fallback] = match;
return [token, fallback];
};
let namedColorRegex;
const rgbaRound = (_, p1, p2, p3, p4) => `rgba(${Math.round(p1)}, ${Math.round(p2)}, ${Math.round(p3)}, ${p4})`;
const createStringInterpolator = config => {
if (!namedColorRegex) namedColorRegex = colors$1 ? new RegExp(`(${Object.keys(colors$1).join('|')})(?!\\w)`, 'g') : /^\b$/;
const output = config.output.map(value => getFluidValue(value).replace(colorRegex, colorToRgba).replace(namedColorRegex, colorToRgba));
const output = config.output.map(value => {
return getFluidValue(value).replace(cssVariableRegex, variableToRgba).replace(colorRegex, colorToRgba).replace(namedColorRegex, colorToRgba);
});
const keyframes = output.map(value => value.match(numberRegex).map(Number));
const outputRanges = keyframes[0].map((_, i) => keyframes.map(values => {
if (!(i in values)) {
@ -38005,7 +38227,7 @@ function deprecateDirectCall() {
}
function isAnimatedString(value) {
return is.str(value) && (value[0] == '#' || /\d/.test(value) || value in (colors$1 || {}));
return is.str(value) && (value[0] == '#' || /\d/.test(value) || cssVariableRegex.test(value) || value in (colors$1 || {}));
}
const useOnce = effect => Object(external_React_["useEffect"])(effect, emptyDeps);
@ -42194,7 +42416,6 @@ function ColorPanel(_ref) {
const COLOR_SUPPORT_KEY = 'color';
const EMPTY_OBJECT = {};
const hasColorSupport = blockType => {
const colorSupport = Object(external_wp_blocks_["getBlockSupport"])(blockType, COLOR_SUPPORT_KEY);
@ -42364,7 +42585,7 @@ function immutableSet(object, path, value) {
function ColorEdit(props) {
var _gradientsPerOrigin$t, _style$color6, _style$color7, _style$color8, _style$elements2, _style$elements2$link, _style$elements2$link2, _style$elements3, _style$elements3$link, _style$elements3$link2;
var _style$color6, _style$color7, _style$color8, _style$elements2, _style$elements2$link, _style$elements2$link2, _style$elements3, _style$elements3$link, _style$elements3$link2;
const {
name: blockName,
@ -42377,15 +42598,17 @@ function ColorEdit(props) {
const themePalette = Object(use_setting["a" /* default */])('color.palette.theme');
const defaultPalette = Object(use_setting["a" /* default */])('color.palette.default');
const allSolids = Object(external_wp_element_["useMemo"])(() => [...(userPalette || []), ...(themePalette || []), ...(defaultPalette || [])], [userPalette, themePalette, defaultPalette]);
const gradientsPerOrigin = Object(use_setting["a" /* default */])('color.gradients') || EMPTY_OBJECT;
const userGradientPalette = Object(use_setting["a" /* default */])('color.gradients.custom');
const themeGradientPalette = Object(use_setting["a" /* default */])('color.gradients.theme');
const defaultGradientPalette = Object(use_setting["a" /* default */])('color.gradients.default');
const allGradients = Object(external_wp_element_["useMemo"])(() => [...(userGradientPalette || []), ...(themeGradientPalette || []), ...(defaultGradientPalette || [])], [userGradientPalette, themeGradientPalette, defaultGradientPalette]);
const areCustomSolidsEnabled = Object(use_setting["a" /* default */])('color.custom');
const areCustomGradientsEnabled = Object(use_setting["a" /* default */])('color.customGradient');
const isBackgroundEnabled = Object(use_setting["a" /* default */])('color.background');
const isLinkEnabled = Object(use_setting["a" /* default */])('color.link');
const isTextEnabled = Object(use_setting["a" /* default */])('color.text');
const solidsEnabled = areCustomSolidsEnabled || !themePalette || (themePalette === null || themePalette === void 0 ? void 0 : themePalette.length) > 0;
const gradientsEnabled = areCustomGradientsEnabled || !(gradientsPerOrigin !== null && gradientsPerOrigin !== void 0 && gradientsPerOrigin.theme) || (gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : (_gradientsPerOrigin$t = gradientsPerOrigin.theme) === null || _gradientsPerOrigin$t === void 0 ? void 0 : _gradientsPerOrigin$t.length) > 0;
const allGradients = Object(external_wp_element_["useMemo"])(() => [...((gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : gradientsPerOrigin.custom) || []), ...((gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : gradientsPerOrigin.theme) || []), ...((gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : gradientsPerOrigin.default) || [])], [gradientsPerOrigin]); // Shouldn't be needed but right now the ColorGradientsPanel
const gradientsEnabled = areCustomGradientsEnabled || !themeGradientPalette || (themeGradientPalette === null || themeGradientPalette === void 0 ? void 0 : themeGradientPalette.length) > 0; // Shouldn't be needed but right now the ColorGradientsPanel
// can trigger both onChangeColor and onChangeBackground
// synchronously causing our two callbacks to override changes
// from each other.
@ -44409,6 +44632,7 @@ function compileStyleValue(uncompiledValue) {
function getInlineStyles() {
let styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
const ignoredStyles = ['spacing.blockGap'];
const output = {};
Object.keys(external_wp_blocks_["__EXPERIMENTAL_STYLE_PROPERTY"]).forEach(propKey => {
const path = external_wp_blocks_["__EXPERIMENTAL_STYLE_PROPERTY"][propKey].value;
@ -44428,7 +44652,7 @@ function getInlineStyles() {
output[name] = compileStyleValue(value);
}
});
} else {
} else if (!ignoredStyles.includes(path.join('.'))) {
output[propKey] = compileStyleValue(Object(external_lodash_["get"])(styles, path));
}
}
@ -45103,7 +45327,8 @@ const withLayoutStyles = Object(external_wp_compose_["createHigherOrderComponent
});
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, shouldRenderLayoutStyles && element && Object(external_wp_element_["createPortal"])(Object(external_wp_element_["createElement"])(block_list_layout["b" /* LayoutStyle */], {
selector: `.wp-container-${id}`,
layout: usedLayout
layout: usedLayout,
style: attributes === null || attributes === void 0 ? void 0 : attributes.style
}), element), Object(external_wp_element_["createElement"])(BlockListBlock, Object(esm_extends["a" /* default */])({}, props, {
className: className
})));
@ -45251,7 +45476,7 @@ function getColorClassesAndStyles(attributes) {
style: styleProp
};
}
const use_color_props_EMPTY_OBJECT = {};
const EMPTY_OBJECT = {};
/**
* Determines the color related props for a block derived from its color block
* support attributes.
@ -45276,7 +45501,7 @@ function useColorProps(attributes) {
const userPalette = Object(use_setting["a" /* default */])('color.palette.custom') || [];
const themePalette = Object(use_setting["a" /* default */])('color.palette.theme') || [];
const defaultPalette = Object(use_setting["a" /* default */])('color.palette.default') || [];
const gradientsPerOrigin = Object(use_setting["a" /* default */])('color.gradients') || use_color_props_EMPTY_OBJECT;
const gradientsPerOrigin = Object(use_setting["a" /* default */])('color.gradients') || EMPTY_OBJECT;
const colors = Object(external_wp_element_["useMemo"])(() => [...(userPalette || []), ...(themePalette || []), ...(defaultPalette || [])], [userPalette, themePalette, defaultPalette]);
const gradients = Object(external_wp_element_["useMemo"])(() => [...((gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : gradientsPerOrigin.custom) || []), ...((gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : gradientsPerOrigin.theme) || []), ...((gradientsPerOrigin === null || gradientsPerOrigin === void 0 ? void 0 : gradientsPerOrigin.default) || [])], [gradientsPerOrigin]);
const colorProps = getColorClassesAndStyles(attributes); // Force inline styles to apply colors when themes do not load their color

File diff suppressed because one or more lines are too long

View File

@ -6554,11 +6554,10 @@ const columns_metadata = {
link: true
},
spacing: {
blockGap: true,
margin: ["top", "bottom"],
padding: true,
__experimentalDefaultControls: {
blockGap: true
padding: true
}
}
},
@ -23054,11 +23053,7 @@ const navigation_metadata = {
}
},
spacing: {
blockGap: true,
units: ["px", "em", "rem", "vh", "vw"],
__experimentalDefaultControls: {
blockGap: true
}
units: ["px", "em", "rem", "vh", "vw"]
},
__experimentalLayout: {
allowSwitching: false,
@ -26438,7 +26433,7 @@ function PostAuthorEdit(_ref) {
attributes,
setAttributes
} = _ref;
const isDescendentOfQueryLoop = !!queryId;
const isDescendentOfQueryLoop = Number.isFinite(queryId);
const {
authorId,
authorDetails,
@ -26897,7 +26892,7 @@ function Content(props) {
postId
} = {}
} = props;
const isDescendentOfQueryLoop = !!queryId;
const isDescendentOfQueryLoop = Number.isFinite(queryId);
const userCanEdit = useCanEditEntity('postType', postType, postId);
const isEditable = userCanEdit && !isDescendentOfQueryLoop;
return isEditable ? Object(external_wp_element_["createElement"])(EditableContent, props) : Object(external_wp_element_["createElement"])(ReadOnlyContent, {
@ -27025,7 +27020,7 @@ function PostDateEdit(_ref) {
},
setAttributes
} = _ref;
const isDescendentOfQueryLoop = !!queryId;
const isDescendentOfQueryLoop = Number.isFinite(queryId);
const [siteFormat] = Object(external_wp_coreData_["useEntityProp"])('root', 'site', 'date_format');
const [date, setDate] = Object(external_wp_coreData_["useEntityProp"])('postType', postType, 'date', postId);
@ -27300,7 +27295,7 @@ function PostExcerptEditor(_ref) {
queryId
}
} = _ref;
const isDescendentOfQueryLoop = !!queryId;
const isDescendentOfQueryLoop = Number.isFinite(queryId);
const userCanEdit = useCanEditEntity('postType', postType, postId);
const isEditable = userCanEdit && !isDescendentOfQueryLoop;
const [rawExcerpt, setExcerpt, {
@ -27590,7 +27585,7 @@ function PostFeaturedImageDisplay(_ref) {
queryId
}
} = _ref;
const isDescendentOfQueryLoop = !!queryId;
const isDescendentOfQueryLoop = Number.isFinite(queryId);
const {
isLink,
height,
@ -28510,7 +28505,7 @@ function PostTitleEdit(_ref) {
}
} = _ref;
const TagName = 0 === level ? 'p' : 'h' + level;
const isDescendentOfQueryLoop = !!queryId;
const isDescendentOfQueryLoop = Number.isFinite(queryId);
const userCanEdit = useCanEditEntity('postType', postType, postId);
const [rawTitle = '', setTitle, fullTitle] = Object(external_wp_coreData_["useEntityProp"])('postType', postType, 'title', postId);
const [link] = Object(external_wp_coreData_["useEntityProp"])('postType', postType, 'link', postId);
@ -33641,7 +33636,8 @@ const SiteLogo = _ref => {
width,
height,
isLink,
linkTarget
linkTarget,
shouldSyncIcon
},
containerRef,
isSelected,
@ -33649,7 +33645,10 @@ const SiteLogo = _ref => {
setLogo,
logoUrl,
siteUrl,
logoId
logoId,
iconId,
setIcon,
canUserEdit
} = _ref;
const clientWidth = useClientWidth(containerRef, [align]);
const isLargeViewport = Object(external_wp_compose_["useViewportMatch"])('medium');
@ -33680,6 +33679,16 @@ const SiteLogo = _ref => {
...Object(external_lodash_["pick"])(getSettings(), ['imageEditing', 'maxWidth'])
};
}, []);
Object(external_wp_element_["useEffect"])(() => {
// Turn the `Use as site icon` toggle off if it is on but the logo and icon have
// fallen out of sync. This can happen if the toggle is saved in the `on` position,
// but changes are later made to the site icon in the Customizer.
if (shouldSyncIcon && logoId !== iconId) {
setAttributes({
shouldSyncIcon: false
});
}
}, []);
Object(external_wp_element_["useEffect"])(() => {
if (!isSelected) {
setIsEditingImage(false);
@ -33828,6 +33837,14 @@ const SiteLogo = _ref => {
});
}
}, imgWrapper);
const syncSiteIconHelpText = Object(external_wp_element_["createInterpolateElement"])(Object(external_wp_i18n_["__"])('Site Icons are what you see in browser tabs, bookmark bars, and within the WordPress mobile apps. To use a custom icon that is different from your site logo, use the <a>Site Icon settings</a>.'), {
a: // eslint-disable-next-line jsx-a11y/anchor-has-content
Object(external_wp_element_["createElement"])("a", {
href: siteUrl + '/wp-admin/customize.php?autofocus[section]=title_tagline',
target: "_blank",
rel: "noopener noreferrer"
})
});
return Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["InspectorControls"], null, Object(external_wp_element_["createElement"])(external_wp_components_["PanelBody"], {
title: Object(external_wp_i18n_["__"])('Settings')
}, Object(external_wp_element_["createElement"])(external_wp_components_["RangeControl"], {
@ -33852,6 +33869,16 @@ const SiteLogo = _ref => {
linkTarget: value ? '_blank' : '_self'
}),
checked: linkTarget === '_blank'
})), canUserEdit && Object(external_wp_element_["createElement"])(external_wp_element_["Fragment"], null, Object(external_wp_element_["createElement"])(external_wp_components_["ToggleControl"], {
label: Object(external_wp_i18n_["__"])('Use as site icon'),
onChange: value => {
setAttributes({
shouldSyncIcon: value
});
setIcon(value ? logoId : undefined);
},
checked: !!shouldSyncIcon,
help: syncSiteIconHelpText
})))), Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockControls"], {
group: "block"
}, canEditImage && !isEditingImage && Object(external_wp_element_["createElement"])(external_wp_components_["ToolbarButton"], {
@ -33869,7 +33896,9 @@ function LogoEdit(_ref2) {
isSelected
} = _ref2;
const {
width
className: styleClass,
width,
shouldSyncIcon
} = attributes;
const [logoUrl, setLogoUrl] = Object(external_wp_element_["useState"])();
const ref = Object(external_wp_element_["useRef"])();
@ -33877,6 +33906,7 @@ function LogoEdit(_ref2) {
siteLogoId,
canUserEdit,
url,
siteIconId,
mediaItemData,
isRequestingMediaItem
} = Object(external_wp_data_["useSelect"])(select => {
@ -33896,6 +33926,8 @@ function LogoEdit(_ref2) {
const _siteLogoId = _canUserEdit ? _siteLogo : _readOnlyLogo;
const _siteIconId = siteSettings === null || siteSettings === void 0 ? void 0 : siteSettings.site_icon;
const mediaItem = _siteLogoId && select(external_wp_coreData_["store"]).getMedia(_siteLogoId, {
context: 'view'
});
@ -33913,15 +33945,54 @@ function LogoEdit(_ref2) {
url: mediaItem.source_url,
alt: mediaItem.alt_text
},
isRequestingMediaItem: _isRequestingMediaItem
isRequestingMediaItem: _isRequestingMediaItem,
siteIconId: _siteIconId
};
}, []);
const {
getGlobalBlockCount
} = Object(external_wp_data_["useSelect"])(external_wp_blockEditor_["store"]);
const {
editEntityRecord
} = Object(external_wp_data_["useDispatch"])(external_wp_coreData_["store"]);
Object(external_wp_element_["useEffect"])(() => {
// Cleanup function to discard unsaved changes to the icon and logo when
// the block is removed.
return () => {
// Do nothing if the block is being rendered in the styles preview or the
// block inserter.
if (styleClass !== null && styleClass !== void 0 && styleClass.includes('block-editor-block-types-list__site-logo-example') || styleClass !== null && styleClass !== void 0 && styleClass.includes('block-editor-block-styles__block-preview-container')) {
return;
}
const setLogo = newValue => editEntityRecord('root', 'site', undefined, {
site_logo: newValue
const logoBlockCount = getGlobalBlockCount('core/site-logo'); // Only discard unsaved changes if we are removing the last Site Logo block
// on the page.
if (logoBlockCount === 0) {
editEntityRecord('root', 'site', undefined, {
site_logo: undefined,
site_icon: undefined
});
}
};
}, []);
const setLogo = function (newValue) {
let shouldForceSync = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
// `shouldForceSync` is used to force syncing when the attribute
// may not have updated yet.
if (shouldSyncIcon || shouldForceSync) {
setIcon(newValue);
}
editEntityRecord('root', 'site', undefined, {
site_logo: newValue
});
};
const setIcon = newValue => editEntityRecord('root', 'site', undefined, {
site_icon: newValue
});
let alt = null;
@ -33934,7 +34005,26 @@ function LogoEdit(_ref2) {
}
}
const onSelectLogo = media => {
const onInitialSelectLogo = media => {
// Initialize the syncSiteIcon toggle. If we currently have no Site logo and no
// site icon, automatically sync the logo to the icon.
if (shouldSyncIcon === undefined) {
const shouldForceSync = !siteIconId;
setAttributes({
shouldSyncIcon: shouldForceSync
}); // Because we cannot rely on the `shouldSyncIcon` attribute to have updated by
// the time `setLogo` is called, pass an argument to force the syncing.
onSelectLogo(media, shouldForceSync);
return;
}
onSelectLogo(media);
};
const onSelectLogo = function (media) {
let shouldForceSync = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (!media) {
return;
}
@ -33946,7 +34036,7 @@ function LogoEdit(_ref2) {
return;
}
setLogo(media.id);
setLogo(media.id, shouldForceSync);
};
const onRemoveLogo = () => {
@ -33996,7 +34086,10 @@ function LogoEdit(_ref2) {
logoUrl: logoUrl,
setLogo: setLogo,
logoId: (mediaItemData === null || mediaItemData === void 0 ? void 0 : mediaItemData.id) || siteLogoId,
siteUrl: url
siteUrl: url,
setIcon: setIcon,
iconId: siteIconId,
canUserEdit: canUserEdit
});
}
@ -34031,7 +34124,7 @@ function LogoEdit(_ref2) {
}, isLoading && Object(external_wp_element_["createElement"])("span", {
className: "components-placeholder__preview"
}, Object(external_wp_element_["createElement"])(external_wp_components_["Spinner"], null))), !logoUrl && canUserEdit && Object(external_wp_element_["createElement"])(external_wp_blockEditor_["MediaPlaceholder"], {
onSelect: onSelectLogo,
onSelect: onInitialSelectLogo,
accept: ACCEPT_MEDIA_STRING,
allowedTypes: site_logo_edit_ALLOWED_MEDIA_TYPES,
onError: onUploadError,
@ -34081,12 +34174,16 @@ const site_logo_metadata = {
linkTarget: {
type: "string",
"default": "_self"
},
shouldSyncIcon: {
type: "boolean"
}
},
example: {
viewportWidth: 500,
attributes: {
width: 350
width: 350,
className: "block-editor-block-types-list__site-logo-example"
}
},
supports: {
@ -39554,7 +39651,31 @@ const template_part_settings = {
edit: TemplatePartEdit
}; // Importing this file includes side effects. This is whitelisted in block-library/package.json under sideEffects
Object(external_wp_hooks_["addFilter"])('blocks.registerBlockType', 'core/template-part', enhanceTemplatePartVariations);
Object(external_wp_hooks_["addFilter"])('blocks.registerBlockType', 'core/template-part', enhanceTemplatePartVariations); // Prevent adding template parts inside post templates.
const DISALLOWED_PARENTS = ['core/post-template', 'core/post-content'];
Object(external_wp_hooks_["addFilter"])('blockEditor.__unstableCanInsertBlockType', 'removeTemplatePartsFromPostTemplates', (can, blockType, rootClientId, _ref2) => {
let {
getBlock,
getBlockParentsByBlockName
} = _ref2;
if (blockType.name !== 'core/template-part') {
return can;
}
for (const disallowedParentType of DISALLOWED_PARENTS) {
var _getBlock;
const hasDisallowedParent = ((_getBlock = getBlock(rootClientId)) === null || _getBlock === void 0 ? void 0 : _getBlock.name) === disallowedParentType || getBlockParentsByBlockName(rootClientId, disallowedParentType).length;
if (hasDisallowedParent) {
return false;
}
}
return true;
});
// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/term-description.js

File diff suppressed because one or more lines are too long

View File

@ -41251,7 +41251,7 @@ const NameContainer = Object(emotion_styled_base_browser_esm["a" /* default */])
} : undefined)("line-height:", space(8), ";margin-left:", space(2), ";margin-right:", space(2), ";white-space:nowrap;overflow:hidden;" + ( true ? "" : undefined));
const PaletteHeading = /*#__PURE__*/Object(emotion_styled_base_browser_esm["a" /* default */])(heading_component, true ? {
target: "e5bw3225"
} : undefined)("text-transform:uppercase;line-height:", space(6), ";&&&{margin-bottom:0;}" + ( true ? "" : undefined));
} : undefined)("text-transform:uppercase;line-height:", space(6), ";font-weight:500;&&&{font-size:11px;margin-bottom:0;}" + ( true ? "" : undefined));
const PaletteActionsContainer = /*#__PURE__*/Object(emotion_styled_base_browser_esm["a" /* default */])(view_component["a" /* default */], true ? {
target: "e5bw3224"
} : undefined)("height:", space(6), ";display:flex;" + ( true ? "" : undefined));
@ -51484,12 +51484,13 @@ const FONT_SIZES_ALIASES = ['1', '2', '3', '4', '5'];
*/
function splitValueAndUnitFromSize(size) {
/**
* The first matched result is ignored as it's the left
* hand side of the capturing group in the regex.
*/
const [, numericValue, unit] = size.split(/(\d+)/);
return [numericValue, unit];
const [numericValue, unit] = `${size}`.match(/[\d\.]+|\D+/g);
if (!isNaN(parseFloat(numericValue)) && isFinite(numericValue)) {
return [numericValue, unit];
}
return [];
}
/**
* Some themes use css vars for their font sizes, so until we
@ -51500,7 +51501,7 @@ function splitValueAndUnitFromSize(size) {
*/
function isSimpleCssValue(value) {
const sizeRegex = /^(?!0)\d+(px|em|rem|vw|vh|%)?$/i;
const sizeRegex = /^[\d\.]+(px|em|rem|vw|vh|%)?$/i;
return sizeRegex.test(value);
}
/**
@ -51534,7 +51535,7 @@ function getSelectOptions(optionsArray, disableCustomFontSizes) {
key: slug,
name,
size,
__experimentalHint: size && isSimpleCssValue(size) && parseInt(size)
__experimentalHint: size && isSimpleCssValue(size) && parseFloat(size)
};
});
}
@ -58858,20 +58859,28 @@ const DEFAULT_COLUMNS = 2;
const generateMenuItems = _ref => {
let {
panelItems,
shouldReset
shouldReset,
currentMenuItems
} = _ref;
const menuItems = {
default: {},
optional: {}
};
panelItems.forEach(_ref2 => {
var _currentMenuItems$gro;
let {
hasValue,
isShownByDefault,
label
} = _ref2;
const group = isShownByDefault ? 'default' : 'optional';
menuItems[group][label] = shouldReset ? false : hasValue();
const group = isShownByDefault ? 'default' : 'optional'; // If a menu item for this label already exists, do not overwrite its value.
// This can cause default controls that have been flagged as customized to
// lose their value.
const existingItemValue = currentMenuItems === null || currentMenuItems === void 0 ? void 0 : (_currentMenuItems$gro = currentMenuItems[group]) === null || _currentMenuItems$gro === void 0 ? void 0 : _currentMenuItems$gro[label];
const value = existingItemValue !== undefined ? existingItemValue : hasValue();
menuItems[group][label] = shouldReset ? false : value;
});
return menuItems;
};
@ -58900,7 +58909,19 @@ function useToolsPanel(props) {
const [panelItems, setPanelItems] = Object(external_wp_element_["useState"])([]);
const registerPanelItem = item => {
setPanelItems(items => [...items, item]);
setPanelItems(items => {
const newItems = [...items]; // If an item with this label is already registered, remove it first.
// This can happen when an item is moved between the default and optional
// groups.
const existingIndex = newItems.findIndex(oldItem => oldItem.label === item.label);
if (existingIndex !== -1) {
newItems.splice(existingIndex, 1);
}
return [...newItems, item];
});
}; // Panels need to deregister on unmount to avoid orphans in menu state.
// This is an issue when panel items are being injected via SlotFills.
@ -58910,11 +58931,16 @@ function useToolsPanel(props) {
// controls, e.g. both panels have a "padding" control, the
// deregistration of the first panel doesn't occur until after the
// registration of the next.
const index = panelItems.findIndex(item => item.label === label);
setPanelItems(items => {
const newItems = [...items];
const index = newItems.findIndex(item => item.label === label);
if (index !== -1) {
setPanelItems(items => items.splice(index, 1));
}
if (index !== -1) {
newItems.splice(index, 1);
}
return newItems;
});
}; // Manage and share display state of menu items representing child controls.
@ -58924,22 +58950,28 @@ function useToolsPanel(props) {
}); // Setup menuItems state as panel items register themselves.
Object(external_wp_element_["useEffect"])(() => {
const items = generateMenuItems({
panelItems,
shouldReset: false
setMenuItems(prevState => {
const items = generateMenuItems({
panelItems,
shouldReset: false,
currentMenuItems: prevState
});
return items;
});
setMenuItems(items);
}, [panelItems]); // Force a menu item to be checked.
// This is intended for use with default panel items. They are displayed
// separately to optional items and have different display states,
//.we need to update that when their value is customized.
// we need to update that when their value is customized.
const flagItemCustomization = function (label) {
let group = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'default';
setMenuItems({ ...menuItems,
[group]: { ...menuItems[group],
[label]: true
}
setMenuItems(items => {
const newState = { ...items,
[group]: { ...items[group],
[label]: true
}
};
return newState;
});
}; // Whether all optional menu items are hidden or not must be tracked
// in order to later determine if the panel display is empty and handle

File diff suppressed because one or more lines are too long

View File

@ -3746,12 +3746,12 @@ var external_wp_blockLibrary_ = __webpack_require__("QyPg");
// EXTERNAL MODULE: external ["wp","data"]
var external_wp_data_ = __webpack_require__("1ZqX");
// EXTERNAL MODULE: ./node_modules/@wordpress/interface/build-module/index.js + 17 modules
var build_module = __webpack_require__("U60i");
// EXTERNAL MODULE: external ["wp","hooks"]
var external_wp_hooks_ = __webpack_require__("g56x");
// EXTERNAL MODULE: ./node_modules/@wordpress/interface/build-module/index.js + 17 modules
var build_module = __webpack_require__("U60i");
// EXTERNAL MODULE: external ["wp","mediaUtils"]
var external_wp_mediaUtils_ = __webpack_require__("6aBm");
@ -5918,17 +5918,23 @@ function ModeSwitcher() {
shortcut,
isRichEditingEnabled,
isCodeEditingEnabled,
isEditingTemplate,
mode
} = Object(external_wp_data_["useSelect"])(select => ({
shortcut: select(external_wp_keyboardShortcuts_["store"]).getShortcutRepresentation('core/edit-post/toggle-mode'),
isRichEditingEnabled: select(external_wp_editor_["store"]).getEditorSettings().richEditingEnabled,
isCodeEditingEnabled: select(external_wp_editor_["store"]).getEditorSettings().codeEditingEnabled,
isEditingTemplate: select(store["a" /* store */]).isEditingTemplate(),
mode: select(store["a" /* store */]).getEditorMode()
}), []);
const {
switchEditorMode
} = Object(external_wp_data_["useDispatch"])(store["a" /* store */]);
if (isEditingTemplate) {
return null;
}
if (!isRichEditingEnabled || !isCodeEditingEnabled) {
return null;
}
@ -9571,6 +9577,7 @@ function PluginSidebarMoreMenuItem(props) {
/**
* Internal dependencies
*/
@ -9578,6 +9585,7 @@ function PluginSidebarMoreMenuItem(props) {
/**
* Reinitializes the editor after the user chooses to reboot the editor after
* an unhandled error occurs, replacing previously mounted editor element using
@ -9617,6 +9625,15 @@ function reinitializeEditor(postType, postId, target, settings, initialEdits) {
*/
function initializeEditor(id, postType, postId, settings, initialEdits) {
// Prevent adding template part in the post editor.
// Only add the filter when the post editor is initialized, not imported.
Object(external_wp_hooks_["addFilter"])('blockEditor.__unstableCanInsertBlockType', 'removeTemplatePartsFromInserter', (can, blockType) => {
if (!Object(external_wp_data_["select"])(store["a" /* store */]).isEditingTemplate() && blockType.name === 'core/template-part') {
return false;
}
return can;
});
const target = document.getElementById(id);
const reboot = reinitializeEditor.bind(null, postType, postId, target, settings, initialEdits);
Object(external_wp_data_["dispatch"])(build_module["i" /* store */]).setFeatureDefaults('core/edit-post', {

File diff suppressed because one or more lines are too long

View File

@ -488,7 +488,7 @@ function SiteExport() {
icon: library_download,
onClick: handleExport,
info: Object(external_wp_i18n_["__"])('Download your templates and template parts.')
}, Object(external_wp_i18n_["__"])('Export'));
}, Object(external_wp_i18n_["_x"])('Export', 'site exporter menu item'));
}
// EXTERNAL MODULE: external ["wp","dataControls"]
@ -530,23 +530,18 @@ const TEMPLATES_TOP_LEVEL = [...TEMPLATES_PRIMARY, ...TEMPLATES_SECONDARY];
const TEMPLATES_GENERAL = ['page-home'];
const TEMPLATES_POSTS_PREFIXES = ['post-', 'author-', 'single-post-', 'tag-'];
const TEMPLATES_PAGES_PREFIXES = ['page-'];
const TEMPLATES_NEW_OPTIONS = ['front-page', 'single-post', 'page', 'archive', 'search', '404', 'index'];
const TEMPLATE_OVERRIDES = {
singular: ['single', 'page'],
index: ['archive', '404', 'search', 'singular', 'home'],
home: ['front-page']
};
const MENU_ROOT = 'root';
const MENU_CONTENT_CATEGORIES = 'content-categories';
const MENU_CONTENT_PAGES = 'content-pages';
const MENU_CONTENT_POSTS = 'content-posts';
const MENU_TEMPLATE_PARTS = 'template-parts';
const MENU_TEMPLATES = 'templates';
const MENU_TEMPLATES_GENERAL = 'templates-general';
const MENU_TEMPLATES_PAGES = 'templates-pages';
const MENU_TEMPLATES_POSTS = 'templates-posts';
const MENU_TEMPLATES_UNUSED = 'templates-unused';
const SEARCH_DEBOUNCE_IN_MS = 75;
const MENU_TEMPLATE_PARTS_HEADERS = 'template-parts-headers';
const MENU_TEMPLATE_PARTS_FOOTERS = 'template-parts-footers';
const MENU_TEMPLATE_PARTS_SIDEBARS = 'template-parts-sidebars';
@ -6264,14 +6259,41 @@ function ResizableEditor(_ref) {
return;
}
const resizeObserver = new iframe.contentWindow.ResizeObserver(() => {
setHeight(iframe.contentDocument.querySelector(`.edit-site-block-editor__block-list`).offsetHeight);
}); // Observing the <html> rather than the <body> because the latter
// gets destroyed and remounted after initialization in <Iframe>.
let animationFrame = null;
resizeObserver.observe(iframe.contentDocument.documentElement);
function resizeHeight() {
if (!animationFrame) {
// Throttle the updates on animation frame.
animationFrame = iframe.contentWindow.requestAnimationFrame(() => {
setHeight(iframe.contentDocument.documentElement.scrollHeight);
animationFrame = null;
});
}
}
let resizeObserver;
function registerObserver() {
var _resizeObserver;
(_resizeObserver = resizeObserver) === null || _resizeObserver === void 0 ? void 0 : _resizeObserver.disconnect();
resizeObserver = new iframe.contentWindow.ResizeObserver(resizeHeight); // Observing the <html> rather than the <body> because the latter
// gets destroyed and remounted after initialization in <Iframe>.
resizeObserver.observe(iframe.contentDocument.documentElement);
resizeHeight();
} // This is only required in Firefox for some unknown reasons.
iframe.addEventListener('load', registerObserver); // This is required in Chrome and Safari.
registerObserver();
return () => {
resizeObserver.disconnect();
var _iframe$contentWindow, _resizeObserver2;
(_iframe$contentWindow = iframe.contentWindow) === null || _iframe$contentWindow === void 0 ? void 0 : _iframe$contentWindow.cancelAnimationFrame(animationFrame);
(_resizeObserver2 = resizeObserver) === null || _resizeObserver2 === void 0 ? void 0 : _resizeObserver2.disconnect();
iframe.removeEventListener('load', registerObserver);
};
}, [enableResizing]);
const resizeWidthBy = Object(external_wp_element_["useCallback"])(deltaPixels => {
@ -6320,7 +6342,10 @@ function ResizableEditor(_ref) {
styles: settings.styles
}), Object(external_wp_element_["createElement"])("style", null, // Forming a "block formatting context" to prevent margin collapsing.
// @see https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Block_formatting_context
`.edit-site-block-editor__block-list { display: flow-root; }`)),
`.is-root-container { display: flow-root; }`), enableResizing && Object(external_wp_element_["createElement"])("style", null, // Force the <html> and <body>'s heights to fit the content.
`html, body { height: -moz-fit-content !important; height: fit-content !important; min-height: 0 !important; }`, // Some themes will have `min-height: 100vh` for the root container,
// which isn't a requirement in auto resize mode.
`.is-root-container { min-height: 0 !important; }`)),
ref: ref,
name: "editor-canvas",
className: "edit-site-visual-editor__editor-canvas"
@ -6418,7 +6443,7 @@ function BlockEditor(_ref) {
clearSelectedBlock();
}
}
}, Object(external_wp_element_["createElement"])(back_button, null), Object(external_wp_element_["createElement"])(resizable_editor // Reinitialize the editor and reset the states when the template changes.
}, Object(external_wp_element_["createElement"])(external_wp_blockEditor_["BlockEditorKeyboardShortcuts"].Register, null), Object(external_wp_element_["createElement"])(back_button, null), Object(external_wp_element_["createElement"])(resizable_editor // Reinitialize the editor and reset the states when the template changes.
, {
key: templateId,
enableResizing: isTemplatePart && // Disable resizing in mobile viewport.

File diff suppressed because one or more lines are too long

View File

@ -5267,6 +5267,7 @@ const TRANSLATED_SITE_PROPERTIES = {
title: Object(external_wp_i18n_["__"])('Title'),
description: Object(external_wp_i18n_["__"])('Tagline'),
site_logo: Object(external_wp_i18n_["__"])('Logo'),
site_icon: Object(external_wp_i18n_["__"])('Icon'),
show_on_front: Object(external_wp_i18n_["__"])('Show on front'),
page_on_front: Object(external_wp_i18n_["__"])('Page on front')
};

File diff suppressed because one or more lines are too long

View File

@ -307,6 +307,14 @@ function ServerSideRender(props) {
const hasEmptyResponse = response === '';
const hasError = response === null || response === void 0 ? void 0 : response.error;
if (isLoading) {
return Object(external_wp_element_["createElement"])(LoadingResponsePlaceholder, Object(esm_extends["a" /* default */])({}, props, {
showLoader: showLoader
}), hasResponse && Object(external_wp_element_["createElement"])(external_wp_element_["RawHTML"], {
className: className
}, response));
}
if (hasEmptyResponse || !hasResponse) {
return Object(external_wp_element_["createElement"])(EmptyResponsePlaceholder, props);
}
@ -317,14 +325,6 @@ function ServerSideRender(props) {
}, props));
}
if (isLoading) {
return Object(external_wp_element_["createElement"])(LoadingResponsePlaceholder, Object(esm_extends["a" /* default */])({}, props, {
showLoader: showLoader
}), hasResponse && Object(external_wp_element_["createElement"])(external_wp_element_["RawHTML"], {
className: className
}, response));
}
return Object(external_wp_element_["createElement"])(external_wp_element_["RawHTML"], {
className: className
}, response);

View File

@ -1,2 +1,2 @@
/*! This file is auto-generated */
this.wp=this.wp||{},this.wp.serverSideRender=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s="4dqW")}({"1ZqX":function(e,t){e.exports=window.wp.data},"4dqW":function(e,t,r){"use strict";r.r(t);var n=r("wx14"),o=r("GRId"),c=r("1ZqX"),u=r("NMb1"),l=r.n(u),s=r("YLtl"),i=r("K9lf"),a=r("l3Sj"),d=r("ywyh"),p=r.n(d),f=r("Mmq9"),b=r("tI+e"),w=r("HSyU");function O(e){let{className:t}=e;return Object(o.createElement)(b.Placeholder,{className:t},Object(a.__)("Block rendered as empty."))}function j(e){let{response:t,className:r}=e;const n=Object(a.sprintf)(Object(a.__)("Error loading block: %s"),t.errorMsg);return Object(o.createElement)(b.Placeholder,{className:r},n)}function m(e){let{children:t,showLoader:r}=e;return Object(o.createElement)("div",{style:{position:"relative"}},r&&Object(o.createElement)("div",{style:{position:"absolute",top:"50%",left:"50%",marginTop:"-9px",marginLeft:"-9px"}},Object(o.createElement)(b.Spinner,null)),Object(o.createElement)("div",{style:{opacity:r?"0.3":1}},t))}function y(e){const{attributes:t,block:r,className:c,httpMethod:u="GET",urlQueryArgs:l,EmptyResponsePlaceholder:a=O,ErrorResponsePlaceholder:d=j,LoadingResponsePlaceholder:b=m}=e,y=Object(o.useRef)(!0),[h,v]=Object(o.useState)(!1),S=Object(o.useRef)(),[g,E]=Object(o.useState)(null),x=Object(i.usePrevious)(e),[P,M]=Object(o.useState)(!1);function R(){if(!y.current)return;M(!0);const e=t&&Object(w.__experimentalSanitizeBlockAttributes)(r,t),n="POST"===u,o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Object(f.addQueryArgs)("/wp/v2/block-renderer/"+e,{context:"edit",...null!==t?{attributes:t}:{},...r})}(r,n?null:null!=e?e:null,l),c=n?{attributes:null!=e?e:null}:null,s=S.current=p()({path:o,data:c,method:n?"POST":"GET"}).then(e=>{y.current&&s===S.current&&e&&E(e.rendered)}).catch(e=>{y.current&&s===S.current&&E({error:!0,errorMsg:e.message})}).finally(()=>{y.current&&s===S.current&&M(!1)});return s}const _=Object(i.useDebounce)(R,500);Object(o.useEffect)(()=>()=>{y.current=!1},[]),Object(o.useEffect)(()=>{void 0===x?R():Object(s.isEqual)(x,e)||_()}),Object(o.useEffect)(()=>{if(!P)return;const e=setTimeout(()=>{v(!0)},1e3);return()=>clearTimeout(e)},[P]);const T=!!g,N=""===g,L=null==g?void 0:g.error;return N||!T?Object(o.createElement)(a,e):L?Object(o.createElement)(d,Object(n.a)({response:g},e)):P?Object(o.createElement)(b,Object(n.a)({},e,{showLoader:h}),T&&Object(o.createElement)(o.RawHTML,{className:c},g)):Object(o.createElement)(o.RawHTML,{className:c},g)}const h={},v=Object(c.withSelect)(e=>{const t=e("core/editor");if(t){const e=t.getCurrentPostId();if(e&&"number"==typeof e)return{currentPostId:e}}return h})(e=>{let{urlQueryArgs:t=h,currentPostId:r,...c}=e;const u=Object(o.useMemo)(()=>r?{post_id:r,...t}:t,[r,t]);return Object(o.createElement)(y,Object(n.a)({urlQueryArgs:u},c))});window&&window.wp&&window.wp.components&&(window.wp.components.ServerSideRender=Object(o.forwardRef)((e,t)=>(l()("wp.components.ServerSideRender",{since:"5.3",alternative:"wp.serverSideRender"}),Object(o.createElement)(v,Object(n.a)({},e,{ref:t})))));t.default=v},GRId:function(e,t){e.exports=window.wp.element},HSyU:function(e,t){e.exports=window.wp.blocks},K9lf:function(e,t){e.exports=window.wp.compose},Mmq9:function(e,t){e.exports=window.wp.url},NMb1:function(e,t){e.exports=window.wp.deprecated},YLtl:function(e,t){e.exports=window.lodash},l3Sj:function(e,t){e.exports=window.wp.i18n},"tI+e":function(e,t){e.exports=window.wp.components},wx14:function(e,t,r){"use strict";function n(){return(n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}r.d(t,"a",(function(){return n}))},ywyh:function(e,t){e.exports=window.wp.apiFetch}}).default;
this.wp=this.wp||{},this.wp.serverSideRender=function(e){var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s="4dqW")}({"1ZqX":function(e,t){e.exports=window.wp.data},"4dqW":function(e,t,r){"use strict";r.r(t);var n=r("wx14"),o=r("GRId"),c=r("1ZqX"),u=r("NMb1"),l=r.n(u),s=r("YLtl"),i=r("K9lf"),a=r("l3Sj"),d=r("ywyh"),p=r.n(d),f=r("Mmq9"),b=r("tI+e"),w=r("HSyU");function O(e){let{className:t}=e;return Object(o.createElement)(b.Placeholder,{className:t},Object(a.__)("Block rendered as empty."))}function j(e){let{response:t,className:r}=e;const n=Object(a.sprintf)(Object(a.__)("Error loading block: %s"),t.errorMsg);return Object(o.createElement)(b.Placeholder,{className:r},n)}function m(e){let{children:t,showLoader:r}=e;return Object(o.createElement)("div",{style:{position:"relative"}},r&&Object(o.createElement)("div",{style:{position:"absolute",top:"50%",left:"50%",marginTop:"-9px",marginLeft:"-9px"}},Object(o.createElement)(b.Spinner,null)),Object(o.createElement)("div",{style:{opacity:r?"0.3":1}},t))}function y(e){const{attributes:t,block:r,className:c,httpMethod:u="GET",urlQueryArgs:l,EmptyResponsePlaceholder:a=O,ErrorResponsePlaceholder:d=j,LoadingResponsePlaceholder:b=m}=e,y=Object(o.useRef)(!0),[h,v]=Object(o.useState)(!1),S=Object(o.useRef)(),[g,E]=Object(o.useState)(null),x=Object(i.usePrevious)(e),[P,M]=Object(o.useState)(!1);function R(){if(!y.current)return;M(!0);const e=t&&Object(w.__experimentalSanitizeBlockAttributes)(r,t),n="POST"===u,o=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return Object(f.addQueryArgs)("/wp/v2/block-renderer/"+e,{context:"edit",...null!==t?{attributes:t}:{},...r})}(r,n?null:null!=e?e:null,l),c=n?{attributes:null!=e?e:null}:null,s=S.current=p()({path:o,data:c,method:n?"POST":"GET"}).then(e=>{y.current&&s===S.current&&e&&E(e.rendered)}).catch(e=>{y.current&&s===S.current&&E({error:!0,errorMsg:e.message})}).finally(()=>{y.current&&s===S.current&&M(!1)});return s}const _=Object(i.useDebounce)(R,500);Object(o.useEffect)(()=>()=>{y.current=!1},[]),Object(o.useEffect)(()=>{void 0===x?R():Object(s.isEqual)(x,e)||_()}),Object(o.useEffect)(()=>{if(!P)return;const e=setTimeout(()=>{v(!0)},1e3);return()=>clearTimeout(e)},[P]);const T=!!g,N=""===g,L=null==g?void 0:g.error;return P?Object(o.createElement)(b,Object(n.a)({},e,{showLoader:h}),T&&Object(o.createElement)(o.RawHTML,{className:c},g)):N||!T?Object(o.createElement)(a,e):L?Object(o.createElement)(d,Object(n.a)({response:g},e)):Object(o.createElement)(o.RawHTML,{className:c},g)}const h={},v=Object(c.withSelect)(e=>{const t=e("core/editor");if(t){const e=t.getCurrentPostId();if(e&&"number"==typeof e)return{currentPostId:e}}return h})(e=>{let{urlQueryArgs:t=h,currentPostId:r,...c}=e;const u=Object(o.useMemo)(()=>r?{post_id:r,...t}:t,[r,t]);return Object(o.createElement)(y,Object(n.a)({urlQueryArgs:u},c))});window&&window.wp&&window.wp.components&&(window.wp.components.ServerSideRender=Object(o.forwardRef)((e,t)=>(l()("wp.components.ServerSideRender",{since:"5.3",alternative:"wp.serverSideRender"}),Object(o.createElement)(v,Object(n.a)({},e,{ref:t})))));t.default=v},GRId:function(e,t){e.exports=window.wp.element},HSyU:function(e,t){e.exports=window.wp.blocks},K9lf:function(e,t){e.exports=window.wp.compose},Mmq9:function(e,t){e.exports=window.wp.url},NMb1:function(e,t){e.exports=window.wp.deprecated},YLtl:function(e,t){e.exports=window.lodash},l3Sj:function(e,t){e.exports=window.wp.i18n},"tI+e":function(e,t){e.exports=window.wp.components},wx14:function(e,t,r){"use strict";function n(){return(n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}r.d(t,"a",(function(){return n}))},ywyh:function(e,t){e.exports=window.wp.apiFetch}}).default;

View File

@ -781,7 +781,7 @@ class WP_REST_Templates_Controller extends WP_REST_Controller {
'context' => array( 'embed', 'view', 'edit' ),
'required' => true,
'minLength' => 1,
'pattern' => '[a-zA-Z_\-]+',
'pattern' => '[a-zA-Z0-9_\-]+',
),
'theme' => array(
'description' => __( 'Theme identifier for the template.' ),

View File

@ -16,7 +16,7 @@
*
* @global string $wp_version
*/
$wp_version = '5.9-beta4-52433';
$wp_version = '5.9-beta4-52434';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.