Editor: Update Packages with the latest bug fixes for 6.5 beta 2.

It includes all the backports from this Gutenberg PR https://github.com/WordPress/gutenberg/pull/59197

Props youknowriad, get_dave.
See #60315.
Built from https://develop.svn.wordpress.org/trunk@57663


git-svn-id: http://core.svn.wordpress.org/trunk@57164 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
youknowriad 2024-02-20 11:16:26 +00:00
parent 63656c178b
commit 433fd94980
58 changed files with 587 additions and 449 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -234,9 +234,6 @@
'link'
),
'textdomain' => 'default',
'usesContext' => array(
'pattern/overrides'
),
'attributes' => array(
'tagName' => array(
'type' => 'string',
@ -2218,9 +2215,6 @@
'subtitle'
),
'textdomain' => 'default',
'usesContext' => array(
'pattern/overrides'
),
'attributes' => array(
'textAlign' => array(
'type' => 'string'
@ -2369,8 +2363,7 @@
'usesContext' => array(
'allowResize',
'imageCrop',
'fixedHeight',
'pattern/overrides'
'fixedHeight'
),
'description' => 'Insert an image to make a visual statement.',
'keywords' => array(
@ -3621,8 +3614,7 @@
),
'textdomain' => 'default',
'usesContext' => array(
'postId',
'pattern/overrides'
'postId'
),
'attributes' => array(
'align' => array(

View File

@ -8,7 +8,6 @@
"description": "Prompt visitors to take action with a button-style link.",
"keywords": [ "link" ],
"textdomain": "default",
"usesContext": [ "pattern/overrides" ],
"attributes": {
"tagName": {
"type": "string",

View File

@ -68,15 +68,30 @@ function render_block_core_footnotes( $attributes, $content, $block ) {
* @since 6.3.0
*/
function register_block_core_footnotes() {
$post_types = get_post_types(
register_block_type_from_metadata(
__DIR__ . '/footnotes',
array(
'show_in_rest' => true,
'public' => true,
'render_callback' => 'render_block_core_footnotes',
)
);
}
add_action( 'init', 'register_block_core_footnotes' );
/**
* Registers the footnotes meta field required for footnotes to work.
*
* @since 6.5.0
*/
function register_block_core_footnotes_post_meta() {
$post_types = get_post_types( array( 'show_in_rest' => true ) );
foreach ( $post_types as $post_type ) {
// Only register the meta field if the post type supports the editor, custom fields, and revisions.
if ( post_type_supports( $post_type, 'editor' ) && post_type_supports( $post_type, 'custom-fields' ) && post_type_supports( $post_type, 'revisions' ) ) {
if (
post_type_supports( $post_type, 'editor' ) &&
post_type_supports( $post_type, 'custom-fields' ) &&
post_type_supports( $post_type, 'revisions' )
) {
register_post_meta(
$post_type,
'footnotes',
@ -89,14 +104,12 @@ function register_block_core_footnotes() {
);
}
}
register_block_type_from_metadata(
__DIR__ . '/footnotes',
array(
'render_callback' => 'render_block_core_footnotes',
)
);
}
add_action( 'init', 'register_block_core_footnotes' );
/**
* Most post types are registered at priority 10, so use priority 20 here in
* order to catch them.
*/
add_action( 'init', 'register_block_core_footnotes_post_meta', 20 );
/**
* Adds the footnotes field to the revisions display.

View File

@ -7,7 +7,6 @@
"description": "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.",
"keywords": [ "title", "subtitle" ],
"textdomain": "default",
"usesContext": [ "pattern/overrides" ],
"attributes": {
"textAlign": {
"type": "string"

View File

@ -4,12 +4,7 @@
"name": "core/image",
"title": "Image",
"category": "media",
"usesContext": [
"allowResize",
"imageCrop",
"fixedHeight",
"pattern/overrides"
],
"usesContext": [ "allowResize", "imageCrop", "fixedHeight" ],
"description": "Insert an image to make a visual statement.",
"keywords": [ "img", "photo", "picture" ],
"textdomain": "default",

View File

@ -127,4 +127,8 @@ figure.wp-block-image:not(.wp-block){
padding-left:0;
padding-right:0;
width:36px;
}
.wp-block-image__toolbar_content_textarea{
width:250px;
}

View File

@ -1 +1 @@
.wp-block-image.wp-block-image.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;filter:none!important}.wp-block-image.wp-block-image.is-selected .components-placeholder>svg{opacity:0}.wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-image.wp-block-image .block-bindings-media-placeholder-message,.wp-block-image.wp-block-image.is-selected .components-placeholder:before{opacity:0}.wp-block-image.wp-block-image.is-selected .block-bindings-media-placeholder-message{opacity:1}.wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{transition:none}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image .is-applying img,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.wp-block-image .components-resizable-box__container{display:table}.wp-block-image .components-resizable-box__container img{display:block;height:inherit;width:inherit}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=right]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__aspect-ratio{align-items:center;display:flex;height:46px;margin-bottom:-8px}.wp-block-image__aspect-ratio .components-button{padding-left:0;padding-right:0;width:36px}
.wp-block-image.wp-block-image.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;filter:none!important}.wp-block-image.wp-block-image.is-selected .components-placeholder>svg{opacity:0}.wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-image.wp-block-image .block-bindings-media-placeholder-message,.wp-block-image.wp-block-image.is-selected .components-placeholder:before{opacity:0}.wp-block-image.wp-block-image.is-selected .block-bindings-media-placeholder-message{opacity:1}.wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{transition:none}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image .is-applying img,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.wp-block-image .components-resizable-box__container{display:table}.wp-block-image .components-resizable-box__container img{display:block;height:inherit;width:inherit}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=right]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__aspect-ratio{align-items:center;display:flex;height:46px;margin-bottom:-8px}.wp-block-image__aspect-ratio .components-button{padding-left:0;padding-right:0;width:36px}.wp-block-image__toolbar_content_textarea{width:250px}

View File

@ -127,4 +127,8 @@ figure.wp-block-image:not(.wp-block){
padding-left:0;
padding-right:0;
width:36px;
}
.wp-block-image__toolbar_content_textarea{
width:250px;
}

View File

@ -1 +1 @@
.wp-block-image.wp-block-image.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;filter:none!important}.wp-block-image.wp-block-image.is-selected .components-placeholder>svg{opacity:0}.wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-image.wp-block-image .block-bindings-media-placeholder-message,.wp-block-image.wp-block-image.is-selected .components-placeholder:before{opacity:0}.wp-block-image.wp-block-image.is-selected .block-bindings-media-placeholder-message{opacity:1}.wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{transition:none}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image .is-applying img,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.wp-block-image .components-resizable-box__container{display:table}.wp-block-image .components-resizable-box__container img{display:block;height:inherit;width:inherit}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=right]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__aspect-ratio{align-items:center;display:flex;height:46px;margin-bottom:-8px}.wp-block-image__aspect-ratio .components-button{padding-left:0;padding-right:0;width:36px}
.wp-block-image.wp-block-image.is-selected .components-placeholder{background-color:#fff;border:none;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;color:#1e1e1e;filter:none!important}.wp-block-image.wp-block-image.is-selected .components-placeholder>svg{opacity:0}.wp-block-image.wp-block-image.is-selected .components-placeholder .components-placeholder__illustration{display:none}.wp-block-image.wp-block-image .block-bindings-media-placeholder-message,.wp-block-image.wp-block-image.is-selected .components-placeholder:before{opacity:0}.wp-block-image.wp-block-image.is-selected .block-bindings-media-placeholder-message{opacity:1}.wp-block-image.wp-block-image .components-button,.wp-block-image.wp-block-image .components-placeholder__instructions,.wp-block-image.wp-block-image .components-placeholder__label{transition:none}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image .is-applying img,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}.wp-block-image .components-resizable-box__container{display:table}.wp-block-image .components-resizable-box__container img{display:block;height:inherit;width:inherit}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=right]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__aspect-ratio{align-items:center;display:flex;height:46px;margin-bottom:-8px}.wp-block-image__aspect-ratio .components-button{padding-left:0;padding-right:0;width:36px}.wp-block-image__toolbar_content_textarea{width:250px}

View File

@ -392,7 +392,6 @@ function block_core_navigation_link_build_variations() {
* Registers the navigation link block.
*
* @uses render_block_core_navigation_link()
* @uses build_navigation_link_block_variations()
* @throws WP_Error An WP_Error exception parsing the block definition.
*/
function register_block_core_navigation_link() {

View File

@ -218,7 +218,7 @@ class WP_Navigation_Block_Renderer {
// it encounters whitespace. This code strips it.
$blocks = block_core_navigation_filter_out_empty_blocks( $parsed_blocks );
if ( function_exists( 'get_hooked_block_markup' ) ) {
if ( function_exists( 'set_ignored_hooked_blocks_metadata' ) ) {
// Run Block Hooks algorithm to inject hooked blocks.
$markup = block_core_navigation_insert_hooked_blocks( $blocks, $navigation_post );
$root_nav_block = parse_blocks( $markup )[0];
@ -390,25 +390,16 @@ class WP_Navigation_Block_Renderer {
$text_decoration = $attributes['style']['typography']['textDecoration'] ?? null;
$text_decoration_class = sprintf( 'has-text-decoration-%s', $text_decoration );
// Sets the is-collapsed class when the navigation is set to always use the overlay.
// This saves us from needing to do this check in the view.js file (see the collapseNav function).
$is_collapsed_class = static::is_always_overlay( $attributes ) ? array( 'is-collapsed' ) : array();
$classes = array_merge(
$colors['css_classes'],
$font_sizes['css_classes'],
$is_responsive_menu ? array( 'is-responsive' ) : array(),
$layout_class ? array( $layout_class ) : array(),
$text_decoration ? array( $text_decoration_class ) : array(),
$is_collapsed_class
$text_decoration ? array( $text_decoration_class ) : array()
);
return implode( ' ', $classes );
}
private static function is_always_overlay( $attributes ) {
return isset( $attributes['overlayMenu'] ) && 'always' === $attributes['overlayMenu'];
}
/**
* Get styles for the navigation block.
*
@ -435,12 +426,16 @@ class WP_Navigation_Block_Renderer {
$colors = block_core_navigation_build_css_colors( $attributes );
$modal_unique_id = wp_unique_id( 'modal-' );
$is_hidden_by_default = isset( $attributes['overlayMenu'] ) && 'always' === $attributes['overlayMenu'];
$responsive_container_classes = array(
'wp-block-navigation__responsive-container',
$is_hidden_by_default ? 'hidden-by-default' : '',
implode( ' ', $colors['overlay_css_classes'] ),
);
$open_button_classes = array(
'wp-block-navigation__responsive-container-open',
$is_hidden_by_default ? 'always-shown' : '',
);
$should_display_icon_label = isset( $attributes['hasIcon'] ) && true === $attributes['hasIcon'];
@ -538,7 +533,7 @@ class WP_Navigation_Block_Renderer {
);
if ( $is_responsive_menu ) {
$nav_element_directives = static::get_nav_element_directives( $is_interactive, $attributes );
$nav_element_directives = static::get_nav_element_directives( $is_interactive );
$wrapper_attributes .= ' ' . $nav_element_directives;
}
@ -552,7 +547,7 @@ class WP_Navigation_Block_Renderer {
* @param array $attributes The block attributes.
* @return string the directives for the navigation element.
*/
private static function get_nav_element_directives( $is_interactive, $attributes ) {
private static function get_nav_element_directives( $is_interactive ) {
if ( ! $is_interactive ) {
return '';
}
@ -569,16 +564,6 @@ class WP_Navigation_Block_Renderer {
data-wp-interactive="core/navigation"'
. $nav_element_context;
/*
* When the navigation's 'overlayMenu' attribute is set to 'always', JavaScript
* is not needed for collapsing the menu because the class is set manually.
*/
if ( ! static::is_always_overlay( $attributes ) ) {
$nav_element_directives .= 'data-wp-init="callbacks.initNav"';
$nav_element_directives .= ' '; // space separator
$nav_element_directives .= 'data-wp-class--is-collapsed="context.isCollapsed"';
}
return $nav_element_directives;
}
@ -1024,7 +1009,7 @@ function block_core_navigation_get_fallback_blocks() {
// In this case default to the (Page List) fallback.
$fallback_blocks = ! empty( $maybe_fallback ) ? $maybe_fallback : $fallback_blocks;
if ( function_exists( 'get_hooked_block_markup' ) ) {
if ( function_exists( 'set_ignored_hooked_blocks_metadata' ) ) {
// Run Block Hooks algorithm to inject hooked blocks.
// We have to run it here because we need the post ID of the Navigation block to track ignored hooked blocks.
$markup = block_core_navigation_insert_hooked_blocks( $fallback_blocks, $navigation_post );
@ -1369,25 +1354,28 @@ function block_core_navigation_get_most_recently_published_navigation() {
}
/**
* Insert hooked blocks into a Navigation block.
* Accepts the serialized markup of a block and its inner blocks, and returns serialized markup of the inner blocks.
*
* Given a Navigation block's inner blocks and its corresponding `wp_navigation` post object,
* this function inserts hooked blocks into it, and returns the serialized inner blocks in a
* mock Navigation block wrapper.
*
* If there are any hooked blocks that need to be inserted as the Navigation block's first or last
* children, the `wp_navigation` post's `_wp_ignored_hooked_blocks` meta is checked to see if any
* of those hooked blocks should be exempted from insertion.
* @param string $serialized_block The serialized markup of a block and its inner blocks.
* @return string
*/
function block_core_navigation_remove_serialized_parent_block( $serialized_block ) {
$start = strpos( $serialized_block, '-->' ) + strlen( '-->' );
$end = strrpos( $serialized_block, '<!--' );
return substr( $serialized_block, $start, $end - $start );
}
/**
* Mock a parsed block for the Navigation block given its inner blocks and the `wp_navigation` post object.
* The `wp_navigation` post's `_wp_ignored_hooked_blocks` meta is queried to add the `metadata.ignoredHookedBlocks` attribute.
*
* @param array $inner_blocks Parsed inner blocks of a Navigation block.
* @param WP_Post $post `wp_navigation` post object corresponding to the block.
* @return string Serialized inner blocks in mock Navigation block wrapper, with hooked blocks inserted, if any.
*
* @return array the normalized parsed blocks.
*/
function block_core_navigation_insert_hooked_blocks( $inner_blocks, $post ) {
$before_block_visitor = null;
$after_block_visitor = null;
$hooked_blocks = get_hooked_blocks();
$attributes = array();
function block_core_navigation_mock_parsed_block( $inner_blocks, $post ) {
$attributes = array();
if ( isset( $post->ID ) ) {
$ignored_hooked_blocks = get_post_meta( $post->ID, '_wp_ignored_hooked_blocks', true );
@ -1405,15 +1393,62 @@ function block_core_navigation_insert_hooked_blocks( $inner_blocks, $post ) {
'innerBlocks' => $inner_blocks,
'innerContent' => array_fill( 0, count( $inner_blocks ), null ),
);
$before_block_visitor = null;
$after_block_visitor = null;
return $mock_anchor_parent_block;
}
/**
* Insert hooked blocks into a Navigation block.
*
* Given a Navigation block's inner blocks and its corresponding `wp_navigation` post object,
* this function inserts hooked blocks into it, and returns the serialized inner blocks in a
* mock Navigation block wrapper.
*
* If there are any hooked blocks that need to be inserted as the Navigation block's first or last
* children, the `wp_navigation` post's `_wp_ignored_hooked_blocks` meta is checked to see if any
* of those hooked blocks should be exempted from insertion.
*
* @param array $inner_blocks Parsed inner blocks of a Navigation block.
* @param WP_Post $post `wp_navigation` post object corresponding to the block.
* @return string Serialized inner blocks in mock Navigation block wrapper, with hooked blocks inserted, if any.
*/
function block_core_navigation_insert_hooked_blocks( $inner_blocks, $post ) {
$mock_navigation_block = block_core_navigation_mock_parsed_block( $inner_blocks, $post );
$hooked_blocks = get_hooked_blocks();
$before_block_visitor = null;
$after_block_visitor = null;
if ( ! empty( $hooked_blocks ) || has_filter( 'hooked_block_types' ) ) {
$before_block_visitor = make_before_block_visitor( $hooked_blocks, $post );
$after_block_visitor = make_after_block_visitor( $hooked_blocks, $post );
$before_block_visitor = make_before_block_visitor( $hooked_blocks, $post, 'insert_hooked_blocks' );
$after_block_visitor = make_after_block_visitor( $hooked_blocks, $post, 'insert_hooked_blocks' );
}
return traverse_and_serialize_block( $mock_anchor_parent_block, $before_block_visitor, $after_block_visitor );
return traverse_and_serialize_block( $mock_navigation_block, $before_block_visitor, $after_block_visitor );
}
/**
* Insert ignoredHookedBlocks meta into the Navigation block and its inner blocks.
*
* Given a Navigation block's inner blocks and its corresponding `wp_navigation` post object,
* this function inserts ignoredHookedBlocks meta into it, and returns the serialized inner blocks in a
* mock Navigation block wrapper.
*
* @param array $inner_blocks Parsed inner blocks of a Navigation block.
* @param WP_Post $post `wp_navigation` post object corresponding to the block.
* @return string Serialized inner blocks in mock Navigation block wrapper, with hooked blocks inserted, if any.
*/
function block_core_navigation_set_ignored_hooked_blocks_metadata( $inner_blocks, $post ) {
$mock_navigation_block = block_core_navigation_mock_parsed_block( $inner_blocks, $post );
$hooked_blocks = get_hooked_blocks();
$before_block_visitor = null;
$after_block_visitor = null;
if ( ! empty( $hooked_blocks ) || has_filter( 'hooked_block_types' ) ) {
$before_block_visitor = make_before_block_visitor( $hooked_blocks, $post, 'set_ignored_hooked_blocks_metadata' );
$after_block_visitor = make_after_block_visitor( $hooked_blocks, $post, 'set_ignored_hooked_blocks_metadata' );
}
return traverse_and_serialize_block( $mock_navigation_block, $before_block_visitor, $after_block_visitor );
}
/**
@ -1422,12 +1457,11 @@ function block_core_navigation_insert_hooked_blocks( $inner_blocks, $post ) {
* @param WP_Post $post Post object.
*/
function block_core_navigation_update_ignore_hooked_blocks_meta( $post ) {
// We run the Block Hooks mechanism so it will return the list of ignored hooked blocks
// in the mock root Navigation block's metadata attribute.
// We ignore the rest of the returned `$markup`; `$post->post_content` already has the hooked
// blocks inserted, whereas `$markup` will have them inserted twice.
$blocks = parse_blocks( $post->post_content );
$markup = block_core_navigation_insert_hooked_blocks( $blocks, $post );
// We run the Block Hooks mechanism to inject the `metadata.ignoredHookedBlocks` attribute into
// all anchor blocks. For the root level, we create a mock Navigation and extract them from there.
$blocks = parse_blocks( $post->post_content );
$markup = block_core_navigation_set_ignored_hooked_blocks_metadata( $blocks, $post );
$root_nav_block = parse_blocks( $markup )[0];
$ignored_hooked_blocks = isset( $root_nav_block['attrs']['metadata']['ignoredHookedBlocks'] )
? $root_nav_block['attrs']['metadata']['ignoredHookedBlocks']
@ -1441,6 +1475,15 @@ function block_core_navigation_update_ignore_hooked_blocks_meta( $post ) {
}
update_post_meta( $post->ID, '_wp_ignored_hooked_blocks', json_encode( $ignored_hooked_blocks ) );
}
$serialized_inner_blocks = block_core_navigation_remove_serialized_parent_block( $markup );
wp_update_post(
array(
'ID' => $post->ID,
'post_content' => $serialized_inner_blocks,
)
);
}
// Before adding our filter, we verify if it's already added in Core.
@ -1450,7 +1493,7 @@ $rest_insert_wp_navigation_core_callback = 'block_core_navigation_' . 'update_ig
// Injection of hooked blocks into the Navigation block relies on some functions present in WP >= 6.5
// that are not present in Gutenberg's WP 6.5 compatibility layer.
if ( function_exists( 'get_hooked_block_markup' ) && ! has_filter( 'rest_insert_wp_navigation', $rest_insert_wp_navigation_core_callback ) ) {
if ( function_exists( 'set_ignored_hooked_blocks_metadata' ) && ! has_filter( 'rest_insert_wp_navigation', $rest_insert_wp_navigation_core_callback ) ) {
add_action( 'rest_insert_wp_navigation', 'block_core_navigation_update_ignore_hooked_blocks_meta', 10, 3 );
}
@ -1470,9 +1513,7 @@ function block_core_navigation_insert_hooked_blocks_into_rest_response( $respons
$content = block_core_navigation_insert_hooked_blocks( $parsed_blocks, $post );
// Remove mock Navigation block wrapper.
$start = strpos( $content, '-->' ) + strlen( '-->' );
$end = strrpos( $content, '<!--' );
$content = substr( $content, $start, $end - $start );
$content = block_core_navigation_remove_serialized_parent_block( $content );
$response->data['content']['raw'] = $content;
$response->data['content']['rendered'] = apply_filters( 'the_content', $content );
@ -1487,6 +1528,6 @@ $rest_prepare_wp_navigation_core_callback = 'block_core_navigation_' . 'insert_h
// Injection of hooked blocks into the Navigation block relies on some functions present in WP >= 6.5
// that are not present in Gutenberg's WP 6.5 compatibility layer.
if ( function_exists( 'get_hooked_block_markup' ) && ! has_filter( 'rest_prepare_wp_navigation', $rest_prepare_wp_navigation_core_callback ) ) {
if ( function_exists( 'set_ignored_hooked_blocks_metadata' ) && ! has_filter( 'rest_prepare_wp_navigation', $rest_prepare_wp_navigation_core_callback ) ) {
add_filter( 'rest_prepare_wp_navigation', 'block_core_navigation_insert_hooked_blocks_into_rest_response', 10, 3 );
}

View File

@ -277,8 +277,10 @@
min-height:1px;
min-width:1px;
}
.is-collapsed .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{
display:none;
@media (min-width:600px){
.wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{
display:none;
}
}
.wp-block-navigation__responsive-container.is-menu-open{

File diff suppressed because one or more lines are too long

View File

@ -277,8 +277,10 @@
min-height:1px;
min-width:1px;
}
.is-collapsed .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{
display:none;
@media (min-width:600px){
.wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{
display:none;
}
}
.wp-block-navigation__responsive-container.is-menu-open{

File diff suppressed because one or more lines are too long

View File

@ -347,18 +347,20 @@ button.wp-block-navigation-item__content{
left:auto;
right:auto;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open){
background-color:inherit;
display:block;
position:relative;
width:100%;
z-index:auto;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close{
display:none;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{
right:0;
@media (min-width:600px){
.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){
background-color:inherit;
display:block;
position:relative;
width:100%;
z-index:auto;
}
.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{
display:none;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{
right:0;
}
}
.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{
@ -400,8 +402,10 @@ button.wp-block-navigation-item__content{
font-size:inherit;
font-weight:inherit;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container-open{
display:none;
@media (min-width:600px){
.wp-block-navigation__responsive-container-open:not(.always-shown){
display:none;
}
}
.wp-block-navigation__responsive-container-close{

File diff suppressed because one or more lines are too long

View File

@ -347,18 +347,20 @@ button.wp-block-navigation-item__content{
left:auto;
right:auto;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open){
background-color:inherit;
display:block;
position:relative;
width:100%;
z-index:auto;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close{
display:none;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{
left:0;
@media (min-width:600px){
.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){
background-color:inherit;
display:block;
position:relative;
width:100%;
z-index:auto;
}
.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{
display:none;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{
left:0;
}
}
.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{
@ -400,8 +402,10 @@ button.wp-block-navigation-item__content{
font-size:inherit;
font-weight:inherit;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container-open{
display:none;
@media (min-width:600px){
.wp-block-navigation__responsive-container-open:not(.always-shown){
display:none;
}
}
.wp-block-navigation__responsive-container-close{

File diff suppressed because one or more lines are too long

View File

@ -29,35 +29,11 @@ var x = (y) => {
}
var y = (x) => (() => (x))
const interactivity_namespaceObject = x({ ["getContext"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.getContext), ["getElement"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.getElement), ["store"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.store) });
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/constants.js
const DEFAULT_BLOCK = {
name: 'core/navigation-link'
};
const PRIORITIZED_INSERTER_BLOCKS = (/* unused pure expression or super */ null && (['core/navigation-link/page', 'core/navigation-link']));
// These parameters must be kept aligned with those in
// lib/compat/wordpress-6.3/navigation-block-preloading.php
// and
// edit-site/src/components/sidebar-navigation-screen-navigation-menus/constants.js
const PRELOADED_NAVIGATION_MENUS_QUERY = {
per_page: 100,
status: ['publish', 'draft'],
order: 'desc',
orderby: 'date'
};
const SELECT_NAVIGATION_MENUS_ARGS = ['postType', 'wp_navigation', PRELOADED_NAVIGATION_MENUS_QUERY];
const NAVIGATION_MOBILE_COLLAPSE = '600px';
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/view.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const focusableSelectors = ['a[href]', 'input:not([disabled]):not([type="hidden"]):not([aria-hidden])', 'select:not([disabled]):not([aria-hidden])', 'textarea:not([disabled]):not([aria-hidden])', 'button:not([disabled]):not([aria-hidden])', '[contenteditable]', '[tabindex]:not([tabindex^="-"])'];
// This is a fix for Safari in iOS/iPadOS. Without it, Safari doesn't focus out
@ -226,24 +202,6 @@ const {
const focusableElements = ref.querySelectorAll(focusableSelectors);
focusableElements?.[0]?.focus();
}
},
initNav() {
const context = (0,interactivity_namespaceObject.getContext)();
const mediaQuery = window.matchMedia(`(max-width: ${NAVIGATION_MOBILE_COLLAPSE})`);
// Run once to set the initial state.
context.isCollapsed = mediaQuery.matches;
function handleCollapse(event) {
context.isCollapsed = event.matches;
}
// Run on resize to update the state.
mediaQuery.addEventListener('change', handleCollapse);
// Remove the listener when the component is unmounted.
return () => {
mediaQuery.removeEventListener('change', handleCollapse);
};
}
}
}, {

View File

@ -1 +1 @@
import*as e from"@wordpress/interactivity";var t={d:(e,n)=>{for(var o in n)t.o(n,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const n=(e=>{var n={};return t.d(n,e),n})({getContext:()=>e.getContext,getElement:()=>e.getElement,store:()=>e.store}),o=["a[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden])","[contenteditable]",'[tabindex]:not([tabindex^="-"])'];document.addEventListener("click",(()=>{}));const{state:l,actions:c}=(0,n.store)("core/navigation",{state:{get roleAttribute(){return"overlay"===(0,n.getContext)().type&&l.isMenuOpen?"dialog":null},get ariaModal(){return"overlay"===(0,n.getContext)().type&&l.isMenuOpen?"true":null},get ariaLabel(){const e=(0,n.getContext)();return"overlay"===e.type&&l.isMenuOpen?e.ariaLabel:null},get isMenuOpen(){return Object.values(l.menuOpenedBy).filter(Boolean).length>0},get menuOpenedBy(){const e=(0,n.getContext)();return"overlay"===e.type?e.overlayOpenedBy:e.submenuOpenedBy}},actions:{openMenuOnHover(){const{type:e,overlayOpenedBy:t}=(0,n.getContext)();"submenu"===e&&0===Object.values(t||{}).filter(Boolean).length&&c.openMenu("hover")},closeMenuOnHover(){c.closeMenu("hover")},openMenuOnClick(){const e=(0,n.getContext)(),{ref:t}=(0,n.getElement)();e.previousFocus=t,c.openMenu("click")},closeMenuOnClick(){c.closeMenu("click"),c.closeMenu("focus")},openMenuOnFocus(){c.openMenu("focus")},toggleMenuOnClick(){const e=(0,n.getContext)(),{ref:t}=(0,n.getElement)();window.document.activeElement!==t&&t.focus();const{menuOpenedBy:o}=l;o.click||o.focus?(c.closeMenu("click"),c.closeMenu("focus")):(e.previousFocus=t,c.openMenu("click"))},handleMenuKeydown(e){const{type:t,firstFocusableElement:o,lastFocusableElement:s}=(0,n.getContext)();if(l.menuOpenedBy.click){if("Escape"===e?.key)return c.closeMenu("click"),void c.closeMenu("focus");"overlay"===t&&"Tab"===e.key&&(e.shiftKey&&window.document.activeElement===o?(e.preventDefault(),s.focus()):e.shiftKey||window.document.activeElement!==s||(e.preventDefault(),o.focus()))}},handleMenuFocusout(e){const{modal:t}=(0,n.getContext)();(null===e.relatedTarget||!t?.contains(e.relatedTarget)&&e.target!==window.document.activeElement)&&(c.closeMenu("click"),c.closeMenu("focus"))},openMenu(e="click"){const{type:t}=(0,n.getContext)();l.menuOpenedBy[e]=!0,"overlay"===t&&document.documentElement.classList.add("has-modal-open")},closeMenu(e="click"){const t=(0,n.getContext)();l.menuOpenedBy[e]=!1,l.isMenuOpen||(t.modal?.contains(window.document.activeElement)&&t.previousFocus?.focus(),t.modal=null,t.previousFocus=null,"overlay"===t.type&&document.documentElement.classList.remove("has-modal-open"))}},callbacks:{initMenu(){const e=(0,n.getContext)(),{ref:t}=(0,n.getElement)();if(l.isMenuOpen){const n=t.querySelectorAll(o);e.modal=t,e.firstFocusableElement=n[0],e.lastFocusableElement=n[n.length-1]}},focusFirstElement(){const{ref:e}=(0,n.getElement)();if(l.isMenuOpen){const t=e.querySelectorAll(o);t?.[0]?.focus()}},initNav(){const e=(0,n.getContext)(),t=window.matchMedia("(max-width: 600px)");function o(t){e.isCollapsed=t.matches}return e.isCollapsed=t.matches,t.addEventListener("change",o),()=>{t.removeEventListener("change",o)}}}},{lock:!0});
import*as e from"@wordpress/interactivity";var t={d:(e,n)=>{for(var o in n)t.o(n,o)&&!t.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:n[o]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const n=(e=>{var n={};return t.d(n,e),n})({getContext:()=>e.getContext,getElement:()=>e.getElement,store:()=>e.store}),o=["a[href]",'input:not([disabled]):not([type="hidden"]):not([aria-hidden])',"select:not([disabled]):not([aria-hidden])","textarea:not([disabled]):not([aria-hidden])","button:not([disabled]):not([aria-hidden])","[contenteditable]",'[tabindex]:not([tabindex^="-"])'];document.addEventListener("click",(()=>{}));const{state:l,actions:c}=(0,n.store)("core/navigation",{state:{get roleAttribute(){return"overlay"===(0,n.getContext)().type&&l.isMenuOpen?"dialog":null},get ariaModal(){return"overlay"===(0,n.getContext)().type&&l.isMenuOpen?"true":null},get ariaLabel(){const e=(0,n.getContext)();return"overlay"===e.type&&l.isMenuOpen?e.ariaLabel:null},get isMenuOpen(){return Object.values(l.menuOpenedBy).filter(Boolean).length>0},get menuOpenedBy(){const e=(0,n.getContext)();return"overlay"===e.type?e.overlayOpenedBy:e.submenuOpenedBy}},actions:{openMenuOnHover(){const{type:e,overlayOpenedBy:t}=(0,n.getContext)();"submenu"===e&&0===Object.values(t||{}).filter(Boolean).length&&c.openMenu("hover")},closeMenuOnHover(){c.closeMenu("hover")},openMenuOnClick(){const e=(0,n.getContext)(),{ref:t}=(0,n.getElement)();e.previousFocus=t,c.openMenu("click")},closeMenuOnClick(){c.closeMenu("click"),c.closeMenu("focus")},openMenuOnFocus(){c.openMenu("focus")},toggleMenuOnClick(){const e=(0,n.getContext)(),{ref:t}=(0,n.getElement)();window.document.activeElement!==t&&t.focus();const{menuOpenedBy:o}=l;o.click||o.focus?(c.closeMenu("click"),c.closeMenu("focus")):(e.previousFocus=t,c.openMenu("click"))},handleMenuKeydown(e){const{type:t,firstFocusableElement:o,lastFocusableElement:u}=(0,n.getContext)();if(l.menuOpenedBy.click){if("Escape"===e?.key)return c.closeMenu("click"),void c.closeMenu("focus");"overlay"===t&&"Tab"===e.key&&(e.shiftKey&&window.document.activeElement===o?(e.preventDefault(),u.focus()):e.shiftKey||window.document.activeElement!==u||(e.preventDefault(),o.focus()))}},handleMenuFocusout(e){const{modal:t}=(0,n.getContext)();(null===e.relatedTarget||!t?.contains(e.relatedTarget)&&e.target!==window.document.activeElement)&&(c.closeMenu("click"),c.closeMenu("focus"))},openMenu(e="click"){const{type:t}=(0,n.getContext)();l.menuOpenedBy[e]=!0,"overlay"===t&&document.documentElement.classList.add("has-modal-open")},closeMenu(e="click"){const t=(0,n.getContext)();l.menuOpenedBy[e]=!1,l.isMenuOpen||(t.modal?.contains(window.document.activeElement)&&t.previousFocus?.focus(),t.modal=null,t.previousFocus=null,"overlay"===t.type&&document.documentElement.classList.remove("has-modal-open"))}},callbacks:{initMenu(){const e=(0,n.getContext)(),{ref:t}=(0,n.getElement)();if(l.isMenuOpen){const n=t.querySelectorAll(o);e.modal=t,e.firstFocusableElement=n[0],e.lastFocusableElement=n[n.length-1]}},focusFirstElement(){const{ref:e}=(0,n.getElement)();if(l.isMenuOpen){const t=e.querySelectorAll(o);t?.[0]?.focus()}}}},{lock:!0});

View File

@ -7,7 +7,7 @@
"description": "Start with the basic building block of all narrative.",
"keywords": [ "text" ],
"textdomain": "default",
"usesContext": [ "postId", "pattern/overrides" ],
"usesContext": [ "postId" ],
"attributes": {
"align": {
"type": "string"

View File

@ -188,7 +188,7 @@ function render_block_core_search( $attributes ) {
)
);
$form_directives = '
data-wp-interactive=\'"core/search"\''
data-wp-interactive="core/search"'
. $form_context .
'data-wp-class--wp-block-search__searchfield-hidden="!context.isSearchInputVisible"
data-wp-on--keydown="actions.handleSearchKeydown"

View File

@ -1271,6 +1271,10 @@ figure.wp-block-image:not(.wp-block){
width:36px;
}
.wp-block-image__toolbar_content_textarea{
width:250px;
}
.wp-block-latest-posts{
padding-right:2.5em;
}
@ -1647,8 +1651,10 @@ figure.wp-block-image:not(.wp-block){
min-height:1px;
min-width:1px;
}
.is-collapsed .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{
display:none;
@media (min-width:600px){
.wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{
display:none;
}
}
.wp-block-navigation__responsive-container.is-menu-open{

File diff suppressed because one or more lines are too long

View File

@ -1269,6 +1269,10 @@ figure.wp-block-image:not(.wp-block){
width:36px;
}
.wp-block-image__toolbar_content_textarea{
width:250px;
}
.wp-block-latest-posts{
padding-left:2.5em;
}
@ -1645,8 +1649,10 @@ figure.wp-block-image:not(.wp-block){
min-height:1px;
min-width:1px;
}
.is-collapsed .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{
display:none;
@media (min-width:600px){
.wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{
display:none;
}
}
.wp-block-navigation__responsive-container.is-menu-open{

File diff suppressed because one or more lines are too long

View File

@ -2027,18 +2027,20 @@ button.wp-block-navigation-item__content{
left:auto;
right:auto;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open){
background-color:inherit;
display:block;
position:relative;
width:100%;
z-index:auto;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close{
display:none;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{
right:0;
@media (min-width:600px){
.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){
background-color:inherit;
display:block;
position:relative;
width:100%;
z-index:auto;
}
.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{
display:none;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{
right:0;
}
}
.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{
@ -2080,8 +2082,10 @@ button.wp-block-navigation-item__content{
font-size:inherit;
font-weight:inherit;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container-open{
display:none;
@media (min-width:600px){
.wp-block-navigation__responsive-container-open:not(.always-shown){
display:none;
}
}
.wp-block-navigation__responsive-container-close{

File diff suppressed because one or more lines are too long

View File

@ -2027,18 +2027,20 @@ button.wp-block-navigation-item__content{
left:auto;
right:auto;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open){
background-color:inherit;
display:block;
position:relative;
width:100%;
z-index:auto;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-close{
display:none;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{
left:0;
@media (min-width:600px){
.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){
background-color:inherit;
display:block;
position:relative;
width:100%;
z-index:auto;
}
.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{
display:none;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{
left:0;
}
}
.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open{
@ -2080,8 +2082,10 @@ button.wp-block-navigation-item__content{
font-size:inherit;
font-weight:inherit;
}
:not(.is-collapsed)>.wp-block-navigation__responsive-container-open{
display:none;
@media (min-width:600px){
.wp-block-navigation__responsive-container-open:not(.always-shown){
display:none;
}
}
.wp-block-navigation__responsive-container-close{

File diff suppressed because one or more lines are too long

View File

@ -1627,7 +1627,7 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp
.edit-site-global-styles-screen-revisions__revision-item.is-selected:before{
background:var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));
}
.edit-site-global-styles-screen-revisions__revision-item.is-selected .edit-site-global-styles-screen-revisions__applied-text,.edit-site-global-styles-screen-revisions__revision-item.is-selected .edit-site-global-styles-screen-revisions__changes,.edit-site-global-styles-screen-revisions__revision-item.is-selected .edit-site-global-styles-screen-revisions__meta{
.edit-site-global-styles-screen-revisions__revision-item.is-selected .edit-site-global-styles-screen-revisions__applied-text,.edit-site-global-styles-screen-revisions__revision-item.is-selected .edit-site-global-styles-screen-revisions__changes>li,.edit-site-global-styles-screen-revisions__revision-item.is-selected .edit-site-global-styles-screen-revisions__meta{
color:#1e1e1e;
}
.edit-site-global-styles-screen-revisions__revision-item:after{
@ -1647,7 +1647,7 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp
display:block;
height:auto;
outline-offset:-2px;
padding:12px 40px 8px 12px;
padding:12px 40px 4px 12px;
position:relative;
width:100%;
z-index:1;
@ -1655,7 +1655,7 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp
.edit-site-global-styles-screen-revisions__applied-text,.edit-site-global-styles-screen-revisions__apply-button.is-primary{
align-self:flex-start;
margin:0 40px 12px 12px;
margin:4px 40px 12px 12px;
}
.edit-site-global-styles-screen-revisions__applied-text,.edit-site-global-styles-screen-revisions__changes,.edit-site-global-styles-screen-revisions__meta{
@ -1675,14 +1675,15 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp
text-transform:uppercase;
}
.edit-site-global-styles-screen-revisions__changes,.edit-site-global-styles-screen-revisions__meta{
.edit-site-global-styles-screen-revisions__meta{
align-items:flex-start;
display:flex;
justify-content:start;
margin-bottom:4px;
text-align:right;
width:100%;
}
.edit-site-global-styles-screen-revisions__changes img,.edit-site-global-styles-screen-revisions__meta img{
.edit-site-global-styles-screen-revisions__meta img{
border-radius:100%;
height:16px;
margin-left:8px;
@ -1694,11 +1695,14 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp
}
.edit-site-global-styles-screen-revisions__changes{
color:#1e1e1e;
line-height:1.4;
margin-bottom:4px;
list-style:disc;
margin-right:12px;
text-align:right;
}
.edit-site-global-styles-screen-revisions__changes li{
margin-bottom:4px;
}
.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination{
gap:2px;
@ -2648,7 +2652,6 @@ body.is-fullscreen-mode .edit-site-list-header{
}
.edit-site-change-status__content .edit-site-change-status__options label .components-text{
display:block;
margin-right:26px;
}
.edit-site-change-status__content .edit-site-change-status__password-legend{
margin-bottom:8px;

File diff suppressed because one or more lines are too long

View File

@ -1627,7 +1627,7 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp
.edit-site-global-styles-screen-revisions__revision-item.is-selected:before{
background:var(--wp-components-color-accent, var(--wp-admin-theme-color, #007cba));
}
.edit-site-global-styles-screen-revisions__revision-item.is-selected .edit-site-global-styles-screen-revisions__applied-text,.edit-site-global-styles-screen-revisions__revision-item.is-selected .edit-site-global-styles-screen-revisions__changes,.edit-site-global-styles-screen-revisions__revision-item.is-selected .edit-site-global-styles-screen-revisions__meta{
.edit-site-global-styles-screen-revisions__revision-item.is-selected .edit-site-global-styles-screen-revisions__applied-text,.edit-site-global-styles-screen-revisions__revision-item.is-selected .edit-site-global-styles-screen-revisions__changes>li,.edit-site-global-styles-screen-revisions__revision-item.is-selected .edit-site-global-styles-screen-revisions__meta{
color:#1e1e1e;
}
.edit-site-global-styles-screen-revisions__revision-item:after{
@ -1647,7 +1647,7 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp
display:block;
height:auto;
outline-offset:-2px;
padding:12px 12px 8px 40px;
padding:12px 12px 4px 40px;
position:relative;
width:100%;
z-index:1;
@ -1655,7 +1655,7 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp
.edit-site-global-styles-screen-revisions__applied-text,.edit-site-global-styles-screen-revisions__apply-button.is-primary{
align-self:flex-start;
margin:0 12px 12px 40px;
margin:4px 12px 12px 40px;
}
.edit-site-global-styles-screen-revisions__applied-text,.edit-site-global-styles-screen-revisions__changes,.edit-site-global-styles-screen-revisions__meta{
@ -1675,14 +1675,15 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp
text-transform:uppercase;
}
.edit-site-global-styles-screen-revisions__changes,.edit-site-global-styles-screen-revisions__meta{
.edit-site-global-styles-screen-revisions__meta{
align-items:flex-start;
display:flex;
justify-content:start;
margin-bottom:4px;
text-align:left;
width:100%;
}
.edit-site-global-styles-screen-revisions__changes img,.edit-site-global-styles-screen-revisions__meta img{
.edit-site-global-styles-screen-revisions__meta img{
border-radius:100%;
height:16px;
margin-right:8px;
@ -1694,11 +1695,14 @@ textarea.edit-site-code-editor-text-area.edit-site-code-editor-text-area:-ms-inp
}
.edit-site-global-styles-screen-revisions__changes{
color:#1e1e1e;
line-height:1.4;
margin-bottom:4px;
list-style:disc;
margin-left:12px;
text-align:left;
}
.edit-site-global-styles-screen-revisions__changes li{
margin-bottom:4px;
}
.edit-site-global-styles-screen-revisions__pagination.edit-site-global-styles-screen-revisions__pagination{
gap:2px;
@ -2648,7 +2652,6 @@ body.is-fullscreen-mode .edit-site-list-header{
}
.edit-site-change-status__content .edit-site-change-status__options label .components-text{
display:block;
margin-left:26px;
}
.edit-site-change-status__content .edit-site-change-status__password-legend{
margin-bottom:8px;

File diff suppressed because one or more lines are too long

View File

@ -460,9 +460,14 @@
font-size:13px;
}
.entities-saved-states__change-summary{
.entities-saved-states__changes{
color:#757575;
font-size:12px;
list-style:disc;
margin:8px 16px 0;
}
.entities-saved-states__changes li{
margin-bottom:4px;
}
.editor-error-boundary{

File diff suppressed because one or more lines are too long

View File

@ -460,9 +460,14 @@
font-size:13px;
}
.entities-saved-states__change-summary{
.entities-saved-states__changes{
color:#757575;
font-size:12px;
list-style:disc;
margin:8px 16px 0;
}
.entities-saved-states__changes li{
margin-bottom:4px;
}
.editor-error-boundary{

File diff suppressed because one or more lines are too long

View File

@ -14109,6 +14109,11 @@ const privateRemoveBlocks = (clientIds, selectPrevious = true, forceRemove = fal
blockNamesForPrompt.add(blockName);
}
if (rules['bindings/core/pattern-overrides']) {
const parentPatternBlocks = select.getBlockParentsByBlockName(clientId, 'core/block');
// We only need to run this check when editing the original pattern, not pattern instances.
if (parentPatternBlocks?.length > 0) {
continue;
}
const blockAttributes = select.getBlockAttributes(clientId);
if (blockAttributes?.metadata?.bindings && JSON.stringify(blockAttributes.metadata.bindings).includes('core/pattern-overrides')) {
blockNamesForPrompt.add(blockName);
@ -14573,6 +14578,18 @@ function mergeOrigins(value) {
}
const mergeCache = new WeakMap();
/**
* For settings like `color.palette`, which have a value that is an object
* with `default`, `theme`, `custom`, with field values that are arrays of
* items, returns the one with the highest priority among these three arrays.
* @param {Object} value Object to extract from
* @return {Array} Array of items extracted from the three origins
*/
function overrideOrigins(value) {
var _ref, _value$custom;
return (_ref = (_value$custom = value.custom) !== null && _value$custom !== void 0 ? _value$custom : value.theme) !== null && _ref !== void 0 ? _ref : value.default;
}
/**
* For settings like `color.palette`, which have a value that is an object
* with `default`, `theme`, `custom`, with field values that are arrays of
@ -14581,7 +14598,7 @@ const mergeCache = new WeakMap();
* @param {Object} value Object to check
* @return {boolean} Whether the object has values in any of the three origins
*/
function hasMergedOrigins(value) {
function hasOriginValue(value) {
return ['default', 'theme', 'custom'].some(key => value?.[key]?.length);
}
function getBlockSettings(state, clientId, ...paths) {
@ -14633,8 +14650,8 @@ function getBlockSettings(state, clientId, ...paths) {
// Return if the setting was found in either the block instance or the store.
if (result !== undefined) {
if (external_wp_blocks_namespaceObject.__EXPERIMENTAL_PATHS_WITH_MERGE[normalizedPath]) {
return mergeOrigins(result);
if (external_wp_blocks_namespaceObject.__EXPERIMENTAL_PATHS_WITH_OVERRIDE[normalizedPath]) {
return overrideOrigins(result);
}
return result;
}
@ -17918,7 +17935,7 @@ function useStyleOverride({
* @return {Object} Settings object.
*/
function useBlockSettings(name, parentLayout) {
const [backgroundImage, backgroundSize, fontFamilies, fontSizes, customFontSize, fontStyle, fontWeight, lineHeight, textColumns, textDecoration, writingMode, textTransform, letterSpacing, padding, margin, blockGap, spacingSizes, units, aspectRatio, minHeight, layout, borderColor, borderRadius, borderStyle, borderWidth, customColorsEnabled, customColors, customDuotone, themeColors, defaultColors, defaultPalette, defaultDuotone, userDuotonePalette, themeDuotonePalette, defaultDuotonePalette, userGradientPalette, themeGradientPalette, defaultGradientPalette, defaultGradients, areCustomGradientsEnabled, isBackgroundEnabled, isLinkEnabled, isTextEnabled, isHeadingEnabled, isButtonEnabled, shadow] = use_settings_useSettings('background.backgroundImage', 'background.backgroundSize', 'typography.fontFamilies', 'typography.fontSizes', 'typography.customFontSize', 'typography.fontStyle', 'typography.fontWeight', 'typography.lineHeight', 'typography.textColumns', 'typography.textDecoration', 'typography.writingMode', 'typography.textTransform', 'typography.letterSpacing', 'spacing.padding', 'spacing.margin', 'spacing.blockGap', 'spacing.spacingSizes', 'spacing.units', 'dimensions.aspectRatio', 'dimensions.minHeight', 'layout', 'border.color', 'border.radius', 'border.style', 'border.width', 'color.custom', 'color.palette.custom', 'color.customDuotone', 'color.palette.theme', 'color.palette.default', 'color.defaultPalette', 'color.defaultDuotone', 'color.duotone.custom', 'color.duotone.theme', 'color.duotone.default', 'color.gradients.custom', 'color.gradients.theme', 'color.gradients.default', 'color.defaultGradients', 'color.customGradient', 'color.background', 'color.link', 'color.text', 'color.heading', 'color.button', 'shadow');
const [backgroundImage, backgroundSize, customFontFamilies, defaultFontFamilies, themeFontFamilies, customFontSizes, defaultFontSizes, themeFontSizes, customFontSize, fontStyle, fontWeight, lineHeight, textColumns, textDecoration, writingMode, textTransform, letterSpacing, padding, margin, blockGap, spacingSizes, units, aspectRatio, minHeight, layout, borderColor, borderRadius, borderStyle, borderWidth, customColorsEnabled, customColors, customDuotone, themeColors, defaultColors, defaultPalette, defaultDuotone, userDuotonePalette, themeDuotonePalette, defaultDuotonePalette, userGradientPalette, themeGradientPalette, defaultGradientPalette, defaultGradients, areCustomGradientsEnabled, isBackgroundEnabled, isLinkEnabled, isTextEnabled, isHeadingEnabled, isButtonEnabled, shadow] = use_settings_useSettings('background.backgroundImage', 'background.backgroundSize', 'typography.fontFamilies.custom', 'typography.fontFamilies.default', 'typography.fontFamilies.theme', 'typography.fontSizes.custom', 'typography.fontSizes.default', 'typography.fontSizes.theme', 'typography.customFontSize', 'typography.fontStyle', 'typography.fontWeight', 'typography.lineHeight', 'typography.textColumns', 'typography.textDecoration', 'typography.writingMode', 'typography.textTransform', 'typography.letterSpacing', 'spacing.padding', 'spacing.margin', 'spacing.blockGap', 'spacing.spacingSizes', 'spacing.units', 'dimensions.aspectRatio', 'dimensions.minHeight', 'layout', 'border.color', 'border.radius', 'border.style', 'border.width', 'color.custom', 'color.palette.custom', 'color.customDuotone', 'color.palette.theme', 'color.palette.default', 'color.defaultPalette', 'color.defaultDuotone', 'color.duotone.custom', 'color.duotone.theme', 'color.duotone.default', 'color.gradients.custom', 'color.gradients.theme', 'color.gradients.default', 'color.defaultGradients', 'color.customGradient', 'color.background', 'color.link', 'color.text', 'color.heading', 'color.button', 'shadow');
const rawSettings = (0,external_wp_element_namespaceObject.useMemo)(() => {
return {
background: {
@ -17955,10 +17972,14 @@ function useBlockSettings(name, parentLayout) {
},
typography: {
fontFamilies: {
custom: fontFamilies
custom: customFontFamilies,
default: defaultFontFamilies,
theme: themeFontFamilies
},
fontSizes: {
custom: fontSizes
custom: customFontSizes,
default: defaultFontSizes,
theme: themeFontSizes
},
customFontSize,
fontStyle,
@ -17993,7 +18014,7 @@ function useBlockSettings(name, parentLayout) {
parentLayout,
shadow
};
}, [backgroundImage, backgroundSize, fontFamilies, fontSizes, customFontSize, fontStyle, fontWeight, lineHeight, textColumns, textDecoration, textTransform, letterSpacing, writingMode, padding, margin, blockGap, spacingSizes, units, aspectRatio, minHeight, layout, parentLayout, borderColor, borderRadius, borderStyle, borderWidth, customColorsEnabled, customColors, customDuotone, themeColors, defaultColors, defaultPalette, defaultDuotone, userDuotonePalette, themeDuotonePalette, defaultDuotonePalette, userGradientPalette, themeGradientPalette, defaultGradientPalette, defaultGradients, areCustomGradientsEnabled, isBackgroundEnabled, isLinkEnabled, isTextEnabled, isHeadingEnabled, isButtonEnabled, shadow]);
}, [backgroundImage, backgroundSize, customFontFamilies, defaultFontFamilies, themeFontFamilies, customFontSizes, defaultFontSizes, themeFontSizes, customFontSize, fontStyle, fontWeight, lineHeight, textColumns, textDecoration, textTransform, letterSpacing, writingMode, padding, margin, blockGap, spacingSizes, units, aspectRatio, minHeight, layout, parentLayout, borderColor, borderRadius, borderStyle, borderWidth, customColorsEnabled, customColors, customDuotone, themeColors, defaultColors, defaultPalette, defaultDuotone, userDuotonePalette, themeDuotonePalette, defaultDuotonePalette, userGradientPalette, themeGradientPalette, defaultGradientPalette, defaultGradients, areCustomGradientsEnabled, isBackgroundEnabled, isLinkEnabled, isTextEnabled, isHeadingEnabled, isButtonEnabled, shadow]);
return useSettingsForBlockElement(rawSettings, name);
}
function createBlockEditFilter(features) {
@ -25345,6 +25366,7 @@ function BorderPanel({
name,
defaultControls = border_panel_DEFAULT_CONTROLS
}) {
var _settings$shadow$pres, _overrideOrigins;
const colors = useColorsPerOrigin(settings);
const decodeValue = (0,external_wp_element_namespaceObject.useCallback)(rawValue => getValueFromVariable({
settings
@ -25402,10 +25424,10 @@ function BorderPanel({
// Shadow
const shadow = decodeValue(inheritedValue?.shadow);
const shadowPresets = settings?.shadow?.presets;
const mergedShadowPresets = shadowPresets ? mergeOrigins(shadowPresets) : [];
const shadowPresets = (_settings$shadow$pres = settings?.shadow?.presets) !== null && _settings$shadow$pres !== void 0 ? _settings$shadow$pres : {};
const overriddenShadowPresets = (_overrideOrigins = overrideOrigins(shadowPresets)) !== null && _overrideOrigins !== void 0 ? _overrideOrigins : [];
const setShadow = newValue => {
const slug = mergedShadowPresets?.find(({
const slug = overriddenShadowPresets?.find(({
shadow: shadowName
}) => shadowName === newValue)?.slug;
onChange(setImmutably(value, ['shadow'], slug ? `var:preset|shadow|${slug}` : newValue || undefined));
@ -27982,10 +28004,10 @@ function useHasTypographyPanel(settings) {
return hasFontFamily || hasLineHeight || hasFontAppearance || hasLetterSpacing || hasTextTransform || hasFontSize || hasTextDecoration || hasWritingMode || hasTextColumns;
}
function useHasFontSizeControl(settings) {
return hasMergedOrigins(settings?.typography?.fontSizes) || settings?.typography?.customFontSize;
return hasOriginValue(settings?.typography?.fontSizes) || settings?.typography?.customFontSize;
}
function useHasFontFamilyControl(settings) {
return hasMergedOrigins(settings?.typography?.fontFamilies);
return hasOriginValue(settings?.typography?.fontFamilies);
}
function useHasLineHeightControl(settings) {
return settings?.typography?.lineHeight;
@ -28018,10 +28040,11 @@ function useHasTextColumnsControl(settings) {
return settings?.typography?.textColumns;
}
function getUniqueFontSizesBySlug(settings) {
const fontSizes = settings?.typography?.fontSizes;
const mergedFontSizes = fontSizes ? mergeOrigins(fontSizes) : [];
var _settings$typography$, _overrideOrigins;
const fontSizes = (_settings$typography$ = settings?.typography?.fontSizes) !== null && _settings$typography$ !== void 0 ? _settings$typography$ : {};
const overriddenFontSizes = (_overrideOrigins = overrideOrigins(fontSizes)) !== null && _overrideOrigins !== void 0 ? _overrideOrigins : [];
const uniqueSizes = [];
for (const currentSize of mergedFontSizes) {
for (const currentSize of overriddenFontSizes) {
if (!uniqueSizes.some(({
slug
}) => slug === currentSize.slug)) {
@ -28068,13 +28091,14 @@ function TypographyPanel({
panelId,
defaultControls = typography_panel_DEFAULT_CONTROLS
}) {
var _settings$typography$2;
const decodeValue = rawValue => getValueFromVariable({
settings
}, '', rawValue);
// Font Family
const hasFontFamilyEnabled = useHasFontFamilyControl(settings);
const fontFamilies = settings?.typography?.fontFamilies;
const fontFamilies = (_settings$typography$2 = settings?.typography?.fontFamilies) !== null && _settings$typography$2 !== void 0 ? _settings$typography$2 : {};
const mergedFontFamilies = fontFamilies ? mergeOrigins(fontFamilies) : [];
const fontFamily = decodeValue(inheritedValue?.typography?.fontFamily);
const setFontFamily = newValue => {
@ -34227,23 +34251,6 @@ function shimAttributeSource(settings) {
}
(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/editor/custom-sources-backwards-compatibility/shim-attribute-source', shimAttributeSource);
// Add the context to all blocks.
(0,external_wp_hooks_namespaceObject.addFilter)('blocks.registerBlockType', 'core/block-bindings-ui', (settings, name) => {
if (!(name in BLOCK_BINDINGS_ALLOWED_BLOCKS)) {
return settings;
}
const contextItems = ['postId', 'postType', 'queryId'];
const usesContextArray = settings.usesContext;
const oldUsesContextArray = new Set(usesContextArray);
contextItems.forEach(item => {
if (!oldUsesContextArray.has(item)) {
usesContextArray.push(item);
}
});
settings.usesContext = usesContextArray;
return settings;
});
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/hooks/use-border-props.js
/**
* Internal dependencies
@ -40499,13 +40506,16 @@ function Iframe({
src: src,
title: (0,external_wp_i18n_namespaceObject.__)('Editor canvas'),
onKeyDown: event => {
if (props.onKeyDown) {
props.onKeyDown(event);
}
// If the event originates from inside the iframe, it means
// it bubbled through the portal, but only with React
// events. We need to to bubble native events as well,
// though by doing so we also trigger another React event,
// so we need to stop the propagation of this event to avoid
// duplication.
if (event.currentTarget.ownerDocument !== event.target.ownerDocument) {
else if (event.currentTarget.ownerDocument !== event.target.ownerDocument) {
event.stopPropagation();
bubbleEvent(event, window.KeyboardEvent, event.currentTarget);
}
@ -58939,6 +58949,7 @@ function useEnter(props) {
content: _value.text
})]);
__unstableMarkAutomaticChange();
return;
}
}
const {
@ -63953,8 +63964,8 @@ const translationMap = {
h4: (0,external_wp_i18n_namespaceObject.__)('H4'),
h5: (0,external_wp_i18n_namespaceObject.__)('H5'),
h6: (0,external_wp_i18n_namespaceObject.__)('H6'),
'settings.color': (0,external_wp_i18n_namespaceObject.__)('Color settings'),
'settings.typography': (0,external_wp_i18n_namespaceObject.__)('Typography settings'),
'settings.color': (0,external_wp_i18n_namespaceObject.__)('Color'),
'settings.typography': (0,external_wp_i18n_namespaceObject.__)('Typography'),
'styles.color': (0,external_wp_i18n_namespaceObject.__)('Colors'),
'styles.spacing': (0,external_wp_i18n_namespaceObject.__)('Spacing'),
'styles.typography': (0,external_wp_i18n_namespaceObject.__)('Typography')
@ -63983,10 +63994,7 @@ function getTranslation(key) {
return blockName || keyArray[1];
}
if (keyArray?.[0] === 'elements') {
const elementName = translationMap[keyArray[1]] || keyArray[1];
return (0,external_wp_i18n_namespaceObject.sprintf)(
// translators: %s: element name, e.g., heading button, link, caption.
(0,external_wp_i18n_namespaceObject.__)('%s element'), elementName);
return translationMap[keyArray[1]] || keyArray[1];
}
return undefined;
}
@ -64029,7 +64037,7 @@ function deepCompare(changedObject, originalObject, parentPath = '') {
*
* @param {Object} next The changed object to compare.
* @param {Object} previous The original object to compare against.
* @return {string[]} An array of translated changes.
* @return {Array[]} A 2-dimensional array of tuples: [ "group", "translated change" ].
*/
function getGlobalStylesChangelist(next, previous) {
const cacheKey = JSON.stringify({
@ -64073,11 +64081,11 @@ function getGlobalStylesChangelist(next, previous) {
const result = [...new Set(changedValueTree)]
/*
* Translate the keys.
* Remove duplicate or empty translations.
* Remove empty translations.
*/.reduce((acc, curr) => {
const translation = getTranslation(curr);
if (translation && !acc.includes(translation)) {
acc.push(translation);
if (translation) {
acc.push([curr.split('.')[0], translation]);
}
return acc;
}, []);
@ -64086,30 +64094,69 @@ function getGlobalStylesChangelist(next, previous) {
}
/**
* From a getGlobalStylesChangelist() result, returns a truncated array of translated changes.
* Appends a translated string indicating the number of changes that were truncated.
* From a getGlobalStylesChangelist() result, returns an array of translated global styles changes, grouped by type.
* The types are 'blocks', 'elements', 'settings', and 'styles'.
*
* @param {Object} next The changed object to compare.
* @param {Object} previous The original object to compare against.
* @param {{maxResults:number}} options Options. maxResults: results to return before truncating.
* @return {string[]} An array of translated changes.
* @return {string[]} An array of translated changes.
*/
function getGlobalStylesChanges(next, previous, options = {}) {
const changes = getGlobalStylesChangelist(next, previous);
const changesLength = changes.length;
let changeList = getGlobalStylesChangelist(next, previous);
const changesLength = changeList.length;
const {
maxResults
} = options;
// Truncate to `n` results if necessary.
if (!!maxResults && changesLength && changesLength > maxResults) {
const deleteCount = changesLength - maxResults;
const andMoreText = (0,external_wp_i18n_namespaceObject.sprintf)(
// translators: %d: number of global styles changes that are not displayed in the UI.
(0,external_wp_i18n_namespaceObject._n)('…and %d more change', '…and %d more changes', deleteCount), deleteCount);
changes.splice(maxResults, deleteCount, andMoreText);
if (changesLength) {
// Truncate to `n` results if necessary.
if (!!maxResults && changesLength > maxResults) {
changeList = changeList.slice(0, maxResults);
}
return Object.entries(changeList.reduce((acc, curr) => {
const group = acc[curr[0]] || [];
if (!group.includes(curr[1])) {
acc[curr[0]] = [...group, curr[1]];
}
return acc;
}, {})).map(([key, changeValues]) => {
const changeValuesLength = changeValues.length;
const joinedChangesValue = changeValues.join((0,external_wp_i18n_namespaceObject.__)(', '));
switch (key) {
case 'blocks':
{
return (0,external_wp_i18n_namespaceObject.sprintf)(
// translators: %s: a list of block names separated by a comma.
(0,external_wp_i18n_namespaceObject._n)('%s block.', '%s blocks.', changeValuesLength), joinedChangesValue);
}
case 'elements':
{
return (0,external_wp_i18n_namespaceObject.sprintf)(
// translators: %s: a list of element names separated by a comma.
(0,external_wp_i18n_namespaceObject._n)('%s element.', '%s elements.', changeValuesLength), joinedChangesValue);
}
case 'settings':
{
return (0,external_wp_i18n_namespaceObject.sprintf)(
// translators: %s: a list of theme.json setting labels separated by a comma.
(0,external_wp_i18n_namespaceObject.__)('%s settings.'), joinedChangesValue);
}
case 'styles':
{
return (0,external_wp_i18n_namespaceObject.sprintf)(
// translators: %s: a list of theme.json top-level styles labels separated by a comma.
(0,external_wp_i18n_namespaceObject.__)('%s styles.'), joinedChangesValue);
}
default:
{
return (0,external_wp_i18n_namespaceObject.sprintf)(
// translators: %s: a list of global styles changes separated by a comma.
(0,external_wp_i18n_namespaceObject.__)('%s.'), joinedChangesValue);
}
}
});
}
return changes;
return get_global_styles_changes_EMPTY_ARRAY;
}
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/global-styles/index.js

File diff suppressed because one or more lines are too long

View File

@ -5283,7 +5283,6 @@ const button_metadata = {
description: "Prompt visitors to take action with a button-style link.",
keywords: ["link"],
textdomain: "default",
usesContext: ["pattern/overrides"],
attributes: {
tagName: {
type: "string",
@ -23928,7 +23927,6 @@ const heading_metadata = {
description: "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.",
keywords: ["title", "subtitle"],
textdomain: "default",
usesContext: ["pattern/overrides"],
attributes: {
textAlign: {
type: "string"
@ -25634,6 +25632,7 @@ const TOOLSPANEL_DROPDOWNMENU_PROPS = {
/**
* Internal dependencies
*/
@ -25772,6 +25771,7 @@ function image_Image({
const [externalBlob, setExternalBlob] = (0,external_wp_element_namespaceObject.useState)();
const clientWidth = useClientWidth(containerRef, [align]);
const hasNonContentControls = blockEditingMode === 'default';
const isContentOnlyMode = blockEditingMode === 'contentOnly';
const isResizable = allowResize && hasNonContentControls && !isWideAligned && isLargeViewport;
const imageSizeOptions = imageSizes.filter(({
slug
@ -26033,7 +26033,71 @@ function image_Image({
onClick: uploadExternal,
icon: library_upload,
label: (0,external_wp_i18n_namespaceObject.__)('Upload to Media Library')
}))), (0,external_React_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
}))), isContentOnlyMode &&
// Add some extra controls for content attributes when content only mode is active.
// With content only mode active, the inspector is hidden, so users need another way
// to edit these attributes.
(0,external_React_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.BlockControls, {
group: "other"
}, (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, {
popoverProps: {
position: 'bottom right'
},
renderToggle: ({
isOpen,
onToggle
}) => (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
onClick: onToggle,
"aria-haspopup": "true",
"aria-expanded": isOpen,
onKeyDown: event => {
if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) {
event.preventDefault();
onToggle();
}
}
}, (0,external_wp_i18n_namespaceObject._x)('Alt', 'Alternative text for an image. Block toolbar label, a low character count is preferred.')),
renderContent: () => (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.TextareaControl, {
className: "wp-block-image__toolbar_content_textarea",
label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
value: alt || '',
onChange: updateAlt,
disabled: lockAltControls,
help: lockAltControls ? (0,external_React_namespaceObject.createElement)(external_React_namespaceObject.Fragment, null, (0,external_wp_i18n_namespaceObject.__)('Connected to a custom field')) : (0,external_React_namespaceObject.createElement)(external_React_namespaceObject.Fragment, null, (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
href: "https://www.w3.org/WAI/tutorials/images/decision-tree"
}, (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image.')), (0,external_React_namespaceObject.createElement)("br", null), (0,external_wp_i18n_namespaceObject.__)('Leave empty if decorative.')),
__nextHasNoMarginBottom: true
})
}), (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.Dropdown, {
popoverProps: {
position: 'bottom right'
},
renderToggle: ({
isOpen,
onToggle
}) => (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.ToolbarButton, {
onClick: onToggle,
"aria-haspopup": "true",
"aria-expanded": isOpen,
onKeyDown: event => {
if (!isOpen && event.keyCode === external_wp_keycodes_namespaceObject.DOWN) {
event.preventDefault();
onToggle();
}
}
}, (0,external_wp_i18n_namespaceObject.__)('Title')),
renderContent: () => (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.TextControl, {
className: "wp-block-image__toolbar_content_textarea",
__nextHasNoMarginBottom: true,
label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
value: title || '',
onChange: onSetTitle,
disabled: lockTitleControls,
help: lockTitleControls ? (0,external_React_namespaceObject.createElement)(external_React_namespaceObject.Fragment, null, (0,external_wp_i18n_namespaceObject.__)('Connected to a custom field')) : (0,external_React_namespaceObject.createElement)(external_React_namespaceObject.Fragment, null, (0,external_wp_i18n_namespaceObject.__)('Describe the role of this image on the page.'), (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
href: "https://www.w3.org/TR/html52/dom.html#the-title-attribute"
}, (0,external_wp_i18n_namespaceObject.__)('(Note: many devices and browsers do not display this text.)')))
})
})), (0,external_React_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.InspectorControls, null, (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalToolsPanel, {
label: (0,external_wp_i18n_namespaceObject.__)('Settings'),
resetAll: resetAll,
dropdownMenuProps: TOOLSPANEL_DROPDOWNMENU_PROPS
@ -26048,7 +26112,7 @@ function image_Image({
label: (0,external_wp_i18n_namespaceObject.__)('Alternative text'),
value: alt || '',
onChange: updateAlt,
disabled: lockAltControls,
readOnly: lockAltControls,
help: lockAltControls ? (0,external_React_namespaceObject.createElement)(external_React_namespaceObject.Fragment, null, (0,external_wp_i18n_namespaceObject.__)('Connected to a custom field')) : (0,external_React_namespaceObject.createElement)(external_React_namespaceObject.Fragment, null, (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
href: "https://www.w3.org/WAI/tutorials/images/decision-tree"
}, (0,external_wp_i18n_namespaceObject.__)('Describe the purpose of the image.')), (0,external_React_namespaceObject.createElement)("br", null), (0,external_wp_i18n_namespaceObject.__)('Leave empty if decorative.')),
@ -26064,7 +26128,7 @@ function image_Image({
label: (0,external_wp_i18n_namespaceObject.__)('Title attribute'),
value: title || '',
onChange: onSetTitle,
disabled: lockTitleControls,
readOnly: lockTitleControls,
help: lockTitleControls ? (0,external_React_namespaceObject.createElement)(external_React_namespaceObject.Fragment, null, (0,external_wp_i18n_namespaceObject.__)('Connected to a custom field')) : (0,external_React_namespaceObject.createElement)(external_React_namespaceObject.Fragment, null, (0,external_wp_i18n_namespaceObject.__)('Describe the role of this image on the page.'), (0,external_React_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
href: "https://www.w3.org/TR/html52/dom.html#the-title-attribute"
}, (0,external_wp_i18n_namespaceObject.__)('(Note: many devices and browsers do not display this text.)')))
@ -26889,7 +26953,7 @@ const image_metadata = {
name: "core/image",
title: "Image",
category: "media",
usesContext: ["allowResize", "imageCrop", "fixedHeight", "pattern/overrides"],
usesContext: ["allowResize", "imageCrop", "fixedHeight"],
description: "Insert an image to make a visual statement.",
keywords: ["img", "photo", "picture"],
textdomain: "default",
@ -32085,7 +32149,6 @@ const PRELOADED_NAVIGATION_MENUS_QUERY = {
orderby: 'date'
};
const SELECT_NAVIGATION_MENUS_ARGS = ['postType', 'wp_navigation', PRELOADED_NAVIGATION_MENUS_QUERY];
const NAVIGATION_MOBILE_COLLAPSE = '600px';
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-library/build-module/navigation/use-navigation-menu.js
/**
@ -34470,7 +34533,6 @@ function AccessibleMenuDescription({
function Navigation({
@ -34639,8 +34701,6 @@ function Navigation({
const textDecoration = attributes.style?.typography?.textDecoration;
const hasBlockOverlay = (0,external_wp_data_namespaceObject.useSelect)(select => select(external_wp_blockEditor_namespaceObject.store).__unstableHasActiveBlockOverlayActive(clientId), [clientId]);
const isResponsive = 'never' !== overlayMenu;
const isMobileBreakPoint = (0,external_wp_compose_namespaceObject.useMediaQuery)(`(max-width: ${NAVIGATION_MOBILE_COLLAPSE})`);
const isCollapsed = 'mobile' === overlayMenu && isMobileBreakPoint || 'always' === overlayMenu;
const blockProps = (0,external_wp_blockEditor_namespaceObject.useBlockProps)({
ref: navRef,
className: classnames_default()(className, {
@ -34651,7 +34711,6 @@ function Navigation({
'is-vertical': orientation === 'vertical',
'no-wrap': flexWrap === 'nowrap',
'is-responsive': isResponsive,
'is-collapsed': isCollapsed,
'has-text-color': !!textColor.color || !!textColor?.class,
[(0,external_wp_blockEditor_namespaceObject.getColorClassName)('color', textColor?.slug)]: !!textColor?.slug,
'has-background': !!backgroundColor.color || backgroundColor.class,
@ -39004,7 +39063,7 @@ const {
description: "Start with the basic building block of all narrative.",
keywords: ["text"],
textdomain: "default",
usesContext: ["postId", "pattern/overrides"],
usesContext: ["postId"],
attributes: {
align: {
type: "string"
@ -39120,7 +39179,7 @@ const paragraph_metadata = {
description: "Start with the basic building block of all narrative.",
keywords: ["text"],
textdomain: "default",
usesContext: ["postId", "pattern/overrides"],
usesContext: ["postId"],
attributes: {
align: {
type: "string"

File diff suppressed because one or more lines are too long

View File

@ -5828,7 +5828,7 @@ __webpack_require__.r(__webpack_exports__);
// EXPORTS
__webpack_require__.d(__webpack_exports__, {
__EXPERIMENTAL_ELEMENTS: () => (/* reexport */ __EXPERIMENTAL_ELEMENTS),
__EXPERIMENTAL_PATHS_WITH_MERGE: () => (/* reexport */ __EXPERIMENTAL_PATHS_WITH_MERGE),
__EXPERIMENTAL_PATHS_WITH_OVERRIDE: () => (/* reexport */ __EXPERIMENTAL_PATHS_WITH_OVERRIDE),
__EXPERIMENTAL_STYLE_PROPERTY: () => (/* reexport */ __EXPERIMENTAL_STYLE_PROPERTY),
__experimentalCloneSanitizedBlock: () => (/* reexport */ __experimentalCloneSanitizedBlock),
__experimentalGetAccessibleBlockLabel: () => (/* reexport */ getAccessibleBlockLabel),
@ -6740,11 +6740,14 @@ const __EXPERIMENTAL_ELEMENTS = {
caption: '.wp-element-caption, .wp-block-audio figcaption, .wp-block-embed figcaption, .wp-block-gallery figcaption, .wp-block-image figcaption, .wp-block-table figcaption, .wp-block-video figcaption',
cite: 'cite'
};
const __EXPERIMENTAL_PATHS_WITH_MERGE = {
// These paths may have three origins, custom, theme, and default,
// and are expected to override other origins with custom, theme,
// and default priority.
const __EXPERIMENTAL_PATHS_WITH_OVERRIDE = {
'color.duotone': true,
'color.gradients': true,
'color.palette': true,
'typography.fontFamilies': true,
'typography.fontSizes': true,
'spacing.spacingSizes': true
};

File diff suppressed because one or more lines are too long

View File

@ -6504,27 +6504,12 @@ const resolvers_getUserPatternCategories = () => async ({
});
};
const resolvers_getNavigationFallbackId = () => async ({
dispatch,
select
dispatch
}) => {
const fallback = await external_wp_apiFetch_default()({
path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp-block-editor/v1/navigation-fallback', {
_embed: true
})
path: (0,external_wp_url_namespaceObject.addQueryArgs)('/wp-block-editor/v1/navigation-fallback')
});
const record = fallback?._embedded?.self;
dispatch.receiveNavigationFallbackId(fallback?.id);
if (record) {
// If the fallback is already in the store, don't invalidate navigation queries.
// Otherwise, invalidate the cache for the scenario where there were no Navigation
// posts in the state and the fallback created one.
const existingFallbackEntityRecord = select.getEntityRecord('postType', 'wp_navigation', fallback?.id);
const invalidateNavigationQueries = !existingFallbackEntityRecord;
dispatch.receiveEntityRecords('postType', 'wp_navigation', record, undefined, invalidateNavigationQueries);
// Resolve to avoid further network requests.
dispatch.finishResolution('getEntityRecord', ['postType', 'wp_navigation', fallback?.id]);
}
};
const resolvers_getDefaultTemplateId = query => async ({
dispatch
@ -7303,7 +7288,7 @@ function useEntityBlockEditor(kind, name, {
if (editedBlocks) {
return editedBlocks;
}
if (!content || typeof content === 'function') {
if (!content || typeof content !== 'string') {
return EMPTY_ARRAY;
}

File diff suppressed because one or more lines are too long

View File

@ -21301,7 +21301,7 @@ const DEFAULT_PAGE_BASE = {
};
const DEFAULT_VIEWS = {
page: [{
title: (0,external_wp_i18n_namespaceObject._x)('All', 'pages'),
title: (0,external_wp_i18n_namespaceObject.__)('All pages'),
slug: 'all',
view: DEFAULT_PAGE_BASE
}, {
@ -21680,91 +21680,6 @@ function DataViewsSidebarContent() {
}));
}
;// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar-navigation-screen-pages-dataviews/index.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const sidebar_navigation_screen_pages_dataviews_PageItem = ({
postType = 'page',
postId,
...props
}) => {
const linkInfo = useLink({
postType,
postId
}, {
backPath: '/page'
});
return (0,external_React_.createElement)(SidebarNavigationItem, {
...linkInfo,
...props
});
};
function SidebarNavigationScreenPagesDataViews() {
const {
records: templateRecords
} = (0,external_wp_coreData_namespaceObject.useEntityRecords)('postType', constants_TEMPLATE_POST_TYPE, {
per_page: -1
});
const {
frontPage,
postsPage
} = (0,external_wp_data_namespaceObject.useSelect)(select => {
const {
getEntityRecord
} = select(external_wp_coreData_namespaceObject.store);
const siteSettings = getEntityRecord('root', 'site');
return {
frontPage: siteSettings?.page_on_front,
postsPage: siteSettings?.page_for_posts
};
}, []);
const templates = (0,external_wp_element_namespaceObject.useMemo)(() => {
if (!templateRecords) {
return [];
}
const isHomePageBlog = frontPage === postsPage;
const homeTemplate = templateRecords?.find(template => template.slug === 'front-page') || templateRecords?.find(template => template.slug === 'home') || templateRecords?.find(template => template.slug === 'index');
return [isHomePageBlog ? homeTemplate : null, ...templateRecords?.filter(({
slug
}) => ['404', 'search'].includes(slug))].filter(Boolean);
}, [templateRecords, frontPage, postsPage]);
return (0,external_React_.createElement)(SidebarNavigationScreen, {
title: (0,external_wp_i18n_namespaceObject.__)('Pages'),
description: (0,external_wp_i18n_namespaceObject.__)('Browse and manage pages.'),
content: (0,external_React_.createElement)(DataViewsSidebarContent, null),
backPath: "/page",
footer: (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalVStack, {
spacing: 0
}, templates?.map(item => (0,external_React_.createElement)(sidebar_navigation_screen_pages_dataviews_PageItem, {
postType: constants_TEMPLATE_POST_TYPE,
postId: item.id,
key: item.id,
icon: library_layout,
withChevron: true
}, (0,external_React_.createElement)(external_wp_components_namespaceObject.__experimentalTruncate, {
numberOfLines: 1
}, (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(item.title?.rendered || (0,external_wp_i18n_namespaceObject.__)('(no title)'))))))
});
}
;// CONCATENATED MODULE: external ["wp","dom"]
const external_wp_dom_namespaceObject = window["wp"]["dom"];
;// CONCATENATED MODULE: external ["wp","escapeHtml"]
@ -22155,6 +22070,7 @@ function SidebarNavigationScreenPage({
/**
* Internal dependencies
*/
@ -22173,6 +22089,7 @@ function SidebarNavigationScreenPage({
const {
useLocation: sidebar_useLocation
} = unlock(external_wp_router_namespaceObject.privateApis);
@ -22199,7 +22116,10 @@ function SidebarScreens() {
path: "/page"
}, (0,external_React_.createElement)(SidebarNavigationScreenPages, null)), (0,external_React_.createElement)(SidebarScreenWrapper, {
path: "/pages"
}, (0,external_React_.createElement)(SidebarNavigationScreenPagesDataViews, null)), (0,external_React_.createElement)(SidebarScreenWrapper, {
}, (0,external_React_.createElement)(SidebarNavigationScreen, {
title: (0,external_wp_i18n_namespaceObject.__)('Pages'),
content: (0,external_React_.createElement)(DataViewsSidebarContent, null)
})), (0,external_React_.createElement)(SidebarScreenWrapper, {
path: "/page/:postId"
}, (0,external_React_.createElement)(SidebarNavigationScreenPage, null)), (0,external_React_.createElement)(SidebarScreenWrapper, {
path: "/:postType(wp_template)"
@ -24752,8 +24672,8 @@ function usePageContentFocusCommands() {
if (currentPostType !== 'wp_template') {
commands.push({
name: 'core/switch-to-template-focus',
/* translators: %1$s: template title */
label: (0,external_wp_i18n_namespaceObject.sprintf)('Edit template: %s', (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title)),
label: (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: template title */
(0,external_wp_i18n_namespaceObject.__)('Edit template: %s'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title)),
icon: library_layout,
callback: ({
close
@ -24835,9 +24755,9 @@ function useManipulateDocumentCommands() {
}
const commands = [];
if (isTemplateRevertable(template) && !isEditingPage) {
const label = template.type === constants_TEMPLATE_POST_TYPE ? /* translators: %1$s: template title */
(0,external_wp_i18n_namespaceObject.sprintf)('Reset template: %s', (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title)) : /* translators: %1$s: template part title */
(0,external_wp_i18n_namespaceObject.sprintf)('Reset template part: %s', (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title));
const label = template.type === constants_TEMPLATE_POST_TYPE ? (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: template title */
(0,external_wp_i18n_namespaceObject.__)('Reset template: %s'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title)) : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: template part title */
(0,external_wp_i18n_namespaceObject.__)('Reset template part: %s'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title));
commands.push({
name: 'core/reset-template',
label,
@ -24851,9 +24771,9 @@ function useManipulateDocumentCommands() {
});
}
if (isTemplateRemovable(template) && !isEditingPage) {
const label = template.type === constants_TEMPLATE_POST_TYPE ? /* translators: %1$s: template title */
(0,external_wp_i18n_namespaceObject.sprintf)('Delete template: %s', (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title)) : /* translators: %1$s: template part title */
(0,external_wp_i18n_namespaceObject.sprintf)('Delete template part: %s', (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title));
const label = template.type === constants_TEMPLATE_POST_TYPE ? (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: template title */
(0,external_wp_i18n_namespaceObject.__)('Delete template: %s'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title)) : (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: %s: template part title */
(0,external_wp_i18n_namespaceObject.__)('Delete template part: %s'), (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(template.title));
const path = template.type === constants_TEMPLATE_POST_TYPE ? '/wp_template' : '/wp_template_part/all';
commands.push({
name: 'core/remove-template',
@ -26262,16 +26182,71 @@ function extractFontWeights(fontFaces) {
});
return result;
}
/*
* Format the font family to use in the CSS font-family property of a CSS rule.
*
* The input can be a string with the font family name or a string with multiple font family names separated by commas.
* It follows the recommendations from the CSS Fonts Module Level 4.
* https://www.w3.org/TR/css-fonts-4/#font-family-prop
*
* @param {string} input - The font family.
* @return {string} The formatted font family.
*
* Example:
* formatFontFamily( "Open Sans, Font+Name, sans-serif" ) => '"Open Sans", "Font+Name", sans-serif'
* formatFontFamily( "'Open Sans', generic(kai), sans-serif" ) => '"Open Sans", sans-serif'
* formatFontFamily( "DotGothic16, Slabo 27px, serif" ) => '"DotGothic16","Slabo 27px",serif'
* formatFontFamily( "Mine's, Moe's Typography" ) => `"mine's","Moe's Typography"`
*/
function formatFontFamily(input) {
return input.split(',').map(font => {
font = font.trim(); // Remove any leading or trailing white spaces
// If the font doesn't start with quotes and contains a space, then wrap in quotes.
// Check that string starts with a single or double quote and not a space
if (!(font.startsWith('"') || font.startsWith("'")) && font.indexOf(' ') !== -1) {
return `"${font}"`;
// Matches strings that are not exclusively alphabetic characters or hyphens, and do not exactly follow the pattern generic(alphabetic characters or hyphens).
const regex = /^(?!generic\([ a-zA-Z\-]+\)$)(?!^[a-zA-Z\-]+$).+/;
const output = input.trim();
const formatItem = item => {
item = item.trim();
if (item.match(regex)) {
// removes leading and trailing quotes.
item = item.replace(/^["']|["']$/g, '');
return `"${item}"`;
}
return font; // Return font as is if no transformation is needed
}).join(', ');
return item;
};
if (output.includes(',')) {
return output.split(',').map(formatItem).filter(item => item !== '').join(', ');
}
return formatItem(output);
}
/*
* Format the font face name to use in the font-family property of a font face.
*
* The input can be a string with the font face name or a string with multiple font face names separated by commas.
* It removes the leading and trailing quotes from the font face name.
*
* @param {string} input - The font face name.
* @return {string} The formatted font face name.
*
* Example:
* formatFontFaceName("Open Sans") => "Open Sans"
* formatFontFaceName("'Open Sans', sans-serif") => "Open Sans"
* formatFontFaceName(", 'Open Sans', 'Helvetica Neue', sans-serif") => "Open Sans"
*/
function formatFontFaceName(input) {
let output = input.trim();
if (output.includes(',')) {
output = output.split(',')
// finds the first item that is not an empty string.
.find(item => item.trim() !== '').trim();
}
// removes leading and trailing quotes.
output = output.replace(/^["']|["']$/g, '');
// Firefox needs the font name to be wrapped in double quotes meanwhile other browsers don't.
if (window.navigator.userAgent.toLowerCase().includes('firefox')) {
output = `"${output}"`;
}
return output;
}
function getFamilyPreviewStyle(family) {
const style = {
@ -26402,7 +26377,7 @@ async function loadFontFaceInBrowser(fontFace, source, addTo = 'all') {
} else {
return;
}
const newFont = new window.FontFace(formatFontFamily(fontFace.fontFamily), dataSource, {
const newFont = new window.FontFace(formatFontFaceName(fontFace.fontFamily), dataSource, {
style: fontFace.fontStyle,
weight: fontFace.fontWeight
});
@ -26895,7 +26870,7 @@ function FontLibraryProvider({
if (font.fontFace) {
font.fontFace.forEach(face => {
// Load font faces just in the iframe because they already are in the document.
loadFontFaceInBrowser(face, getDisplaySrcFromFontFace(face.src), 'iframe');
loadFontFaceInBrowser(face, getDisplaySrcFromFontFace(face.src), 'all');
});
}
});
@ -31776,13 +31751,25 @@ var vmtx$1 = Object.freeze( { __proto__: null, vmtx: vmtx } );
/* eslint-enable */
;// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/global-styles/font-library-modal/utils/make-families-from-faces.js
/**
* WordPress dependencies
*/
/**
* Internal dependencies
*/
const {
kebabCase: make_families_from_faces_kebabCase
} = unlock(external_wp_components_namespaceObject.privateApis);
function makeFamiliesFromFaces(fontFaces) {
const fontFamiliesObject = fontFaces.reduce((acc, item) => {
if (!acc[item.fontFamily]) {
acc[item.fontFamily] = {
name: item.fontFamily,
fontFamily: item.fontFamily,
slug: item.fontFamily.replace(/\s+/g, '-').toLowerCase(),
slug: make_families_from_faces_kebabCase(item.fontFamily.toLowerCase()),
fontFace: []
};
}
@ -33022,14 +33009,15 @@ function ChangesSummary({
const changes = getGlobalStylesChanges(revision, previousRevision, {
maxResults: 7
});
const changesLength = changes.length;
if (!changesLength) {
if (!changes.length) {
return null;
}
return (0,external_React_.createElement)("span", {
return (0,external_React_.createElement)("ul", {
"data-testid": "global-styles-revision-changes",
className: "edit-site-global-styles-screen-revisions__changes"
}, changes.join(', '), ".");
}, changes.map(change => (0,external_React_.createElement)("li", {
key: change
}, change)));
}
/**
@ -33152,6 +33140,7 @@ function RevisionsButtons({
className: "edit-site-global-styles-screen-revisions__applied-text"
}, (0,external_wp_i18n_namespaceObject.__)('These styles are already applied to your site.')) : (0,external_React_.createElement)(external_wp_components_namespaceObject.Button, {
disabled: areStylesEqual,
size: "compact",
variant: "primary",
className: "edit-site-global-styles-screen-revisions__apply-button",
onClick: onApplyRevision
@ -42642,13 +42631,13 @@ function Media({
record: media
} = (0,external_wp_coreData_namespaceObject.useEntityRecord)('root', 'media', id);
const currentSize = size.find(s => !!media?.media_details?.sizes[s]);
const mediaDetails = media?.media_details?.sizes[currentSize];
if (!mediaDetails) {
const mediaUrl = media?.media_details?.sizes[currentSize]?.source_url || media?.source_url;
if (!mediaUrl) {
return null;
}
return (0,external_React_.createElement)("img", {
...props,
src: mediaDetails.source_url,
src: mediaUrl,
alt: media.alt_text
});
}

File diff suppressed because one or more lines are too long

View File

@ -6607,9 +6607,11 @@ function GlobalStylesDescription({
const globalStylesChanges = getGlobalStylesChanges(currentEditorGlobalStyles, savedRecord, {
maxResults: 10
});
return globalStylesChanges.length ? (0,external_React_.createElement)(external_wp_components_namespaceObject.PanelRow, {
className: "entities-saved-states__change-summary"
}, globalStylesChanges.join(', '), ".") : null;
return globalStylesChanges.length ? (0,external_React_.createElement)("ul", {
className: "entities-saved-states__changes"
}, globalStylesChanges.map(change => (0,external_React_.createElement)("li", {
key: change
}, change))) : null;
}
function EntityDescription({
record,

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -120,6 +120,7 @@ const PARTIAL_SYNCING_SUPPORTED_BLOCKS = {
rel: (0,external_wp_i18n_namespaceObject.__)('Link Relationship')
},
'core/image': {
id: (0,external_wp_i18n_namespaceObject.__)('Image ID'),
url: (0,external_wp_i18n_namespaceObject.__)('URL'),
title: (0,external_wp_i18n_namespaceObject.__)('Title'),
alt: (0,external_wp_i18n_namespaceObject.__)('Alt Text')

File diff suppressed because one or more lines are too long

View File

@ -16,7 +16,7 @@
*
* @global string $wp_version
*/
$wp_version = '6.5-beta1-57662';
$wp_version = '6.5-beta1-57663';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.