mirror of
https://github.com/WordPress/WordPress.git
synced 2025-01-20 15:21:28 +01:00
Update npm packages to latest versions for 6.4 beta 3.
The npm packages needed a further update for beta 3 in preparation for 6.4. Props @richtabor, @mmaattiiaass, @tellthemachines, @mamaduka, @swissspidy, @scruffian, @andraganescu, @andrewserong, @mujuonly, @get_dave, @ntsekouras, @carlosgprim, @ramonopoly, @jameskoster, @wildworks, @aaronrobertshaw, @czapla, @santosguillamot, @artemiosans, @afercia, @glendaviesnz, @kevin940726, @mikachan, @siobhyb. See #59411. Built from https://develop.svn.wordpress.org/trunk@56808 git-svn-id: http://core.svn.wordpress.org/trunk@56320 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
d783a65dd9
commit
d605f96c0f
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -12,7 +12,8 @@
|
|||||||
* @param array $attributes The block attributes.
|
* @param array $attributes The block attributes.
|
||||||
* @param string $content The block content.
|
* @param string $content The block content.
|
||||||
* @param WP_Block $block The block object.
|
* @param WP_Block $block The block object.
|
||||||
* @return string Returns the block content with the data-id attribute added.
|
*
|
||||||
|
* @return string The block content with the data-id attribute added.
|
||||||
*/
|
*/
|
||||||
function render_block_core_image( $attributes, $content, $block ) {
|
function render_block_core_image( $attributes, $content, $block ) {
|
||||||
|
|
||||||
@ -76,11 +77,12 @@ function render_block_core_image( $attributes, $content, $block ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add the lightboxEnabled flag to the block data.
|
* Adds the lightboxEnabled flag to the block data.
|
||||||
*
|
*
|
||||||
* This is used to determine whether the lightbox should be rendered or not.
|
* This is used to determine whether the lightbox should be rendered or not.
|
||||||
*
|
*
|
||||||
* @param array $block Block data.
|
* @param array $block Block data.
|
||||||
|
*
|
||||||
* @return array Filtered block data.
|
* @return array Filtered block data.
|
||||||
*/
|
*/
|
||||||
function block_core_image_get_lightbox_settings( $block ) {
|
function block_core_image_get_lightbox_settings( $block ) {
|
||||||
@ -113,10 +115,11 @@ function block_core_image_get_lightbox_settings( $block ) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add the directives and layout needed for the lightbox behavior.
|
* Adds the directives and layout needed for the lightbox behavior.
|
||||||
*
|
*
|
||||||
* @param string $block_content Rendered block content.
|
* @param string $block_content Rendered block content.
|
||||||
* @param array $block Block object.
|
* @param array $block Block object.
|
||||||
|
*
|
||||||
* @return string Filtered block content.
|
* @return string Filtered block content.
|
||||||
*/
|
*/
|
||||||
function block_core_image_render_lightbox( $block_content, $block ) {
|
function block_core_image_render_lightbox( $block_content, $block ) {
|
||||||
@ -124,32 +127,32 @@ function block_core_image_render_lightbox( $block_content, $block ) {
|
|||||||
|
|
||||||
$aria_label = __( 'Enlarge image' );
|
$aria_label = __( 'Enlarge image' );
|
||||||
|
|
||||||
|
$processor->next_tag( 'img' );
|
||||||
$alt_attribute = $processor->get_attribute( 'alt' );
|
$alt_attribute = $processor->get_attribute( 'alt' );
|
||||||
|
|
||||||
if ( null !== $alt_attribute ) {
|
// An empty alt attribute `alt=""` is valid for decorative images.
|
||||||
|
if ( is_string( $alt_attribute ) ) {
|
||||||
$alt_attribute = trim( $alt_attribute );
|
$alt_attribute = trim( $alt_attribute );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// It only makes sense to append the alt text to the button aria-label when the alt text is non-empty.
|
||||||
if ( $alt_attribute ) {
|
if ( $alt_attribute ) {
|
||||||
/* translators: %s: Image alt text. */
|
/* translators: %s: Image alt text. */
|
||||||
$aria_label = sprintf( __( 'Enlarge image: %s' ), $alt_attribute );
|
$aria_label = sprintf( __( 'Enlarge image: %s' ), $alt_attribute );
|
||||||
}
|
}
|
||||||
$content = $processor->get_updated_html();
|
|
||||||
|
|
||||||
// Currently, we are only enabling the zoom animation.
|
// Currently, we are only enabling the zoom animation.
|
||||||
$lightbox_animation = 'zoom';
|
$lightbox_animation = 'zoom';
|
||||||
|
|
||||||
// We want to store the src in the context so we can set it dynamically when the lightbox is opened.
|
// Note: We want to store the `src` in the context so we
|
||||||
$z = new WP_HTML_Tag_Processor( $content );
|
// can set it dynamically when the lightbox is opened.
|
||||||
$z->next_tag( 'img' );
|
|
||||||
|
|
||||||
if ( isset( $block['attrs']['id'] ) ) {
|
if ( isset( $block['attrs']['id'] ) ) {
|
||||||
$img_uploaded_src = wp_get_attachment_url( $block['attrs']['id'] );
|
$img_uploaded_src = wp_get_attachment_url( $block['attrs']['id'] );
|
||||||
$img_metadata = wp_get_attachment_metadata( $block['attrs']['id'] );
|
$img_metadata = wp_get_attachment_metadata( $block['attrs']['id'] );
|
||||||
$img_width = $img_metadata['width'];
|
$img_width = $img_metadata['width'];
|
||||||
$img_height = $img_metadata['height'];
|
$img_height = $img_metadata['height'];
|
||||||
} else {
|
} else {
|
||||||
$img_uploaded_src = $z->get_attribute( 'src' );
|
$img_uploaded_src = $processor->get_attribute( 'src' );
|
||||||
$img_width = 'none';
|
$img_width = 'none';
|
||||||
$img_height = 'none';
|
$img_height = 'none';
|
||||||
}
|
}
|
||||||
@ -160,7 +163,7 @@ function block_core_image_render_lightbox( $block_content, $block ) {
|
|||||||
$scale_attr = false;
|
$scale_attr = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
$w = new WP_HTML_Tag_Processor( $content );
|
$w = new WP_HTML_Tag_Processor( $block_content );
|
||||||
$w->next_tag( 'figure' );
|
$w->next_tag( 'figure' );
|
||||||
$w->add_class( 'wp-lightbox-container' );
|
$w->add_class( 'wp-lightbox-container' );
|
||||||
$w->set_attribute( 'data-wp-interactive', true );
|
$w->set_attribute( 'data-wp-interactive', true );
|
||||||
@ -180,7 +183,8 @@ function block_core_image_render_lightbox( $block_content, $block ) {
|
|||||||
"imageCurrentSrc": "",
|
"imageCurrentSrc": "",
|
||||||
"targetWidth": "%s",
|
"targetWidth": "%s",
|
||||||
"targetHeight": "%s",
|
"targetHeight": "%s",
|
||||||
"scaleAttr": "%s"
|
"scaleAttr": "%s",
|
||||||
|
"dialogLabel": "%s"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}',
|
}',
|
||||||
@ -188,7 +192,8 @@ function block_core_image_render_lightbox( $block_content, $block ) {
|
|||||||
$img_uploaded_src,
|
$img_uploaded_src,
|
||||||
$img_width,
|
$img_width,
|
||||||
$img_height,
|
$img_height,
|
||||||
$scale_attr
|
$scale_attr,
|
||||||
|
__( 'Enlarged image' )
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
$w->next_tag( 'img' );
|
$w->next_tag( 'img' );
|
||||||
@ -200,8 +205,10 @@ function block_core_image_render_lightbox( $block_content, $block ) {
|
|||||||
// Wrap the image in the body content with a button.
|
// Wrap the image in the body content with a button.
|
||||||
$img = null;
|
$img = null;
|
||||||
preg_match( '/<img[^>]+>/', $body_content, $img );
|
preg_match( '/<img[^>]+>/', $body_content, $img );
|
||||||
|
|
||||||
$button =
|
$button =
|
||||||
'<button
|
$img[0]
|
||||||
|
. '<button
|
||||||
type="button"
|
type="button"
|
||||||
aria-haspopup="dialog"
|
aria-haspopup="dialog"
|
||||||
aria-label="' . esc_attr( $aria_label ) . '"
|
aria-label="' . esc_attr( $aria_label ) . '"
|
||||||
@ -210,9 +217,8 @@ function block_core_image_render_lightbox( $block_content, $block ) {
|
|||||||
data-wp-style--height="context.core.image.imageButtonHeight"
|
data-wp-style--height="context.core.image.imageButtonHeight"
|
||||||
data-wp-style--left="context.core.image.imageButtonLeft"
|
data-wp-style--left="context.core.image.imageButtonLeft"
|
||||||
data-wp-style--top="context.core.image.imageButtonTop"
|
data-wp-style--top="context.core.image.imageButtonTop"
|
||||||
>
|
></button>';
|
||||||
</button>'
|
|
||||||
. $img[0];
|
|
||||||
$body_content = preg_replace( '/<img[^>]+>/', $button, $body_content );
|
$body_content = preg_replace( '/<img[^>]+>/', $button, $body_content );
|
||||||
|
|
||||||
// We need both a responsive image and an enlarged image to animate
|
// We need both a responsive image and an enlarged image to animate
|
||||||
@ -220,7 +226,7 @@ function block_core_image_render_lightbox( $block_content, $block ) {
|
|||||||
// image is a copy of the one in the body, which animates immediately
|
// image is a copy of the one in the body, which animates immediately
|
||||||
// as the lightbox is opened, while the enlarged one is a full-sized
|
// as the lightbox is opened, while the enlarged one is a full-sized
|
||||||
// version that will likely still be loading as the animation begins.
|
// version that will likely still be loading as the animation begins.
|
||||||
$m = new WP_HTML_Tag_Processor( $content );
|
$m = new WP_HTML_Tag_Processor( $block_content );
|
||||||
$m->next_tag( 'figure' );
|
$m->next_tag( 'figure' );
|
||||||
$m->add_class( 'responsive-image' );
|
$m->add_class( 'responsive-image' );
|
||||||
$m->next_tag( 'img' );
|
$m->next_tag( 'img' );
|
||||||
@ -236,7 +242,7 @@ function block_core_image_render_lightbox( $block_content, $block ) {
|
|||||||
$m->set_attribute( 'data-wp-style--object-fit', 'selectors.core.image.lightboxObjectFit' );
|
$m->set_attribute( 'data-wp-style--object-fit', 'selectors.core.image.lightboxObjectFit' );
|
||||||
$initial_image_content = $m->get_updated_html();
|
$initial_image_content = $m->get_updated_html();
|
||||||
|
|
||||||
$q = new WP_HTML_Tag_Processor( $content );
|
$q = new WP_HTML_Tag_Processor( $block_content );
|
||||||
$q->next_tag( 'figure' );
|
$q->next_tag( 'figure' );
|
||||||
$q->add_class( 'enlarged-image' );
|
$q->add_class( 'enlarged-image' );
|
||||||
$q->next_tag( 'img' );
|
$q->next_tag( 'img' );
|
||||||
@ -252,24 +258,32 @@ function block_core_image_render_lightbox( $block_content, $block ) {
|
|||||||
$q->set_attribute( 'data-wp-style--object-fit', 'selectors.core.image.lightboxObjectFit' );
|
$q->set_attribute( 'data-wp-style--object-fit', 'selectors.core.image.lightboxObjectFit' );
|
||||||
$enlarged_image_content = $q->get_updated_html();
|
$enlarged_image_content = $q->get_updated_html();
|
||||||
|
|
||||||
$background_color = esc_attr( wp_get_global_styles( array( 'color', 'background' ) ) );
|
// If the current theme does NOT have a `theme.json`, or the colors are not defined,
|
||||||
|
// we need to set the background color & close button color to some default values
|
||||||
|
// because we can't get them from the Global Styles.
|
||||||
|
$background_color = '#fff';
|
||||||
|
$close_button_color = '#000';
|
||||||
|
if ( wp_theme_has_theme_json() ) {
|
||||||
|
$global_styles_color = wp_get_global_styles( array( 'color' ) );
|
||||||
|
if ( ! empty( $global_styles_color['background'] ) ) {
|
||||||
|
$background_color = esc_attr( $global_styles_color['background'] );
|
||||||
|
}
|
||||||
|
if ( ! empty( $global_styles_color['text'] ) ) {
|
||||||
|
$close_button_color = esc_attr( $global_styles_color['text'] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$close_button_icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="15" height="15" aria-hidden="true" focusable="false"><path d="M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"></path></svg>';
|
$close_button_icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="15" height="15" aria-hidden="true" focusable="false"><path d="M13 11.8l6.1-6.3-1-1-6.1 6.2-6.1-6.2-1 1 6.1 6.3-6.5 6.7 1 1 6.5-6.6 6.5 6.6 1-1z"></path></svg>';
|
||||||
$close_button_color = esc_attr( wp_get_global_styles( array( 'color', 'text' ) ) );
|
|
||||||
$dialog_label = $alt_attribute ? esc_attr( $alt_attribute ) : esc_attr__( 'Image' );
|
|
||||||
$close_button_label = esc_attr__( 'Close' );
|
$close_button_label = esc_attr__( 'Close' );
|
||||||
|
|
||||||
$lightbox_html = <<<HTML
|
$lightbox_html = <<<HTML
|
||||||
<div data-wp-body="" class="wp-lightbox-overlay $lightbox_animation"
|
<div data-wp-body="" class="wp-lightbox-overlay $lightbox_animation"
|
||||||
data-wp-bind--role="selectors.core.image.roleAttribute"
|
data-wp-bind--role="selectors.core.image.roleAttribute"
|
||||||
aria-label="$dialog_label"
|
data-wp-bind--aria-label="selectors.core.image.dialogLabel"
|
||||||
data-wp-class--initialized="context.core.image.initialized"
|
data-wp-class--initialized="context.core.image.initialized"
|
||||||
data-wp-class--active="context.core.image.lightboxEnabled"
|
data-wp-class--active="context.core.image.lightboxEnabled"
|
||||||
data-wp-class--hideAnimationEnabled="context.core.image.hideAnimationEnabled"
|
data-wp-class--hideAnimationEnabled="context.core.image.hideAnimationEnabled"
|
||||||
data-wp-bind--aria-hidden="!context.core.image.lightboxEnabled"
|
data-wp-bind--aria-modal="selectors.core.image.ariaModal"
|
||||||
aria-hidden="true"
|
|
||||||
data-wp-bind--aria-modal="context.core.image.lightboxEnabled"
|
|
||||||
aria-modal="false"
|
|
||||||
data-wp-effect="effects.core.image.initLightbox"
|
data-wp-effect="effects.core.image.initLightbox"
|
||||||
data-wp-on--keydown="actions.core.image.handleKeydown"
|
data-wp-on--keydown="actions.core.image.handleKeydown"
|
||||||
data-wp-on--touchstart="actions.core.image.handleTouchStart"
|
data-wp-on--touchstart="actions.core.image.handleTouchStart"
|
||||||
@ -282,7 +296,7 @@ function block_core_image_render_lightbox( $block_content, $block ) {
|
|||||||
</button>
|
</button>
|
||||||
<div class="lightbox-image-container">$initial_image_content</div>
|
<div class="lightbox-image-container">$initial_image_content</div>
|
||||||
<div class="lightbox-image-container">$enlarged_image_content</div>
|
<div class="lightbox-image-container">$enlarged_image_content</div>
|
||||||
<div class="scrim" style="background-color: $background_color"></div>
|
<div class="scrim" style="background-color: $background_color" aria-hidden="true"></div>
|
||||||
</div>
|
</div>
|
||||||
HTML;
|
HTML;
|
||||||
|
|
||||||
@ -290,11 +304,13 @@ HTML;
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Ensure that the view script has the `wp-interactivity` dependency.
|
* Ensures that the view script has the `wp-interactivity` dependency.
|
||||||
*
|
*
|
||||||
* @since 6.4.0
|
* @since 6.4.0
|
||||||
*
|
*
|
||||||
* @global WP_Scripts $wp_scripts
|
* @global WP_Scripts $wp_scripts
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
function block_core_image_ensure_interactivity_dependency() {
|
function block_core_image_ensure_interactivity_dependency() {
|
||||||
global $wp_scripts;
|
global $wp_scripts;
|
||||||
@ -310,6 +326,8 @@ add_action( 'wp_print_scripts', 'block_core_image_ensure_interactivity_dependenc
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Registers the `core/image` block on server.
|
* Registers the `core/image` block on server.
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
*/
|
*/
|
||||||
function register_block_core_image() {
|
function register_block_core_image() {
|
||||||
register_block_type_from_metadata(
|
register_block_type_from_metadata(
|
||||||
|
@ -93,6 +93,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.wp-lightbox-container{
|
.wp-lightbox-container{
|
||||||
|
display:flex;
|
||||||
|
flex-direction:column;
|
||||||
position:relative;
|
position:relative;
|
||||||
}
|
}
|
||||||
.wp-lightbox-container button{
|
.wp-lightbox-container button{
|
||||||
@ -109,6 +111,10 @@
|
|||||||
outline:5px auto -webkit-focus-ring-color;
|
outline:5px auto -webkit-focus-ring-color;
|
||||||
outline-offset:5px;
|
outline-offset:5px;
|
||||||
}
|
}
|
||||||
|
.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){
|
||||||
|
background:none;
|
||||||
|
border:none;
|
||||||
|
}
|
||||||
|
|
||||||
.wp-lightbox-overlay{
|
.wp-lightbox-overlay{
|
||||||
box-sizing:border-box;
|
box-sizing:border-box;
|
||||||
@ -123,13 +129,22 @@
|
|||||||
z-index:100000;
|
z-index:100000;
|
||||||
}
|
}
|
||||||
.wp-lightbox-overlay .close-button{
|
.wp-lightbox-overlay .close-button{
|
||||||
|
align-items:center;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
left:calc(env(safe-area-inset-left) + 20px);
|
display:flex;
|
||||||
|
justify-content:center;
|
||||||
|
left:calc(env(safe-area-inset-left) + 16px);
|
||||||
|
min-height:40px;
|
||||||
|
min-width:40px;
|
||||||
padding:0;
|
padding:0;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
top:calc(env(safe-area-inset-top) + 20px);
|
top:calc(env(safe-area-inset-top) + 16px);
|
||||||
z-index:5000000;
|
z-index:5000000;
|
||||||
}
|
}
|
||||||
|
.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){
|
||||||
|
background:none;
|
||||||
|
border:none;
|
||||||
|
}
|
||||||
.wp-lightbox-overlay .lightbox-image-container{
|
.wp-lightbox-overlay .lightbox-image-container{
|
||||||
height:var(--wp--lightbox-container-height);
|
height:var(--wp--lightbox-container-height);
|
||||||
overflow:hidden;
|
overflow:hidden;
|
||||||
|
2
wp-includes/blocks/image/style-rtl.min.css
vendored
2
wp-includes/blocks/image/style-rtl.min.css
vendored
File diff suppressed because one or more lines are too long
@ -93,6 +93,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.wp-lightbox-container{
|
.wp-lightbox-container{
|
||||||
|
display:flex;
|
||||||
|
flex-direction:column;
|
||||||
position:relative;
|
position:relative;
|
||||||
}
|
}
|
||||||
.wp-lightbox-container button{
|
.wp-lightbox-container button{
|
||||||
@ -109,6 +111,10 @@
|
|||||||
outline:5px auto -webkit-focus-ring-color;
|
outline:5px auto -webkit-focus-ring-color;
|
||||||
outline-offset:5px;
|
outline-offset:5px;
|
||||||
}
|
}
|
||||||
|
.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){
|
||||||
|
background:none;
|
||||||
|
border:none;
|
||||||
|
}
|
||||||
|
|
||||||
.wp-lightbox-overlay{
|
.wp-lightbox-overlay{
|
||||||
box-sizing:border-box;
|
box-sizing:border-box;
|
||||||
@ -123,13 +129,22 @@
|
|||||||
z-index:100000;
|
z-index:100000;
|
||||||
}
|
}
|
||||||
.wp-lightbox-overlay .close-button{
|
.wp-lightbox-overlay .close-button{
|
||||||
|
align-items:center;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
|
display:flex;
|
||||||
|
justify-content:center;
|
||||||
|
min-height:40px;
|
||||||
|
min-width:40px;
|
||||||
padding:0;
|
padding:0;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
right:calc(env(safe-area-inset-right) + 20px);
|
right:calc(env(safe-area-inset-right) + 16px);
|
||||||
top:calc(env(safe-area-inset-top) + 20px);
|
top:calc(env(safe-area-inset-top) + 16px);
|
||||||
z-index:5000000;
|
z-index:5000000;
|
||||||
}
|
}
|
||||||
|
.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){
|
||||||
|
background:none;
|
||||||
|
border:none;
|
||||||
|
}
|
||||||
.wp-lightbox-overlay .lightbox-image-container{
|
.wp-lightbox-overlay .lightbox-image-container{
|
||||||
height:var(--wp--lightbox-container-height);
|
height:var(--wp--lightbox-container-height);
|
||||||
left:50%;
|
left:50%;
|
||||||
|
2
wp-includes/blocks/image/style.min.css
vendored
2
wp-includes/blocks/image/style.min.css
vendored
File diff suppressed because one or more lines are too long
@ -1 +1 @@
|
|||||||
<?php return array('dependencies' => array(), 'version' => '8d947c6c7d5f7f3771d1');
|
<?php return array('dependencies' => array(), 'version' => '3417a4e11cf880e590b5');
|
||||||
|
@ -206,7 +206,17 @@ function handleScroll(context) {
|
|||||||
roleAttribute: ({
|
roleAttribute: ({
|
||||||
context
|
context
|
||||||
}) => {
|
}) => {
|
||||||
return context.core.image.lightboxEnabled ? 'dialog' : '';
|
return context.core.image.lightboxEnabled ? 'dialog' : null;
|
||||||
|
},
|
||||||
|
ariaModal: ({
|
||||||
|
context
|
||||||
|
}) => {
|
||||||
|
return context.core.image.lightboxEnabled ? 'true' : null;
|
||||||
|
},
|
||||||
|
dialogLabel: ({
|
||||||
|
context
|
||||||
|
}) => {
|
||||||
|
return context.core.image.lightboxEnabled ? context.core.image.dialogLabel : null;
|
||||||
},
|
},
|
||||||
lightboxObjectFit: ({
|
lightboxObjectFit: ({
|
||||||
context
|
context
|
||||||
@ -218,7 +228,7 @@ function handleScroll(context) {
|
|||||||
enlargedImgSrc: ({
|
enlargedImgSrc: ({
|
||||||
context
|
context
|
||||||
}) => {
|
}) => {
|
||||||
return context.core.image.initialized ? context.core.image.imageUploadedSrc : '';
|
return context.core.image.initialized ? context.core.image.imageUploadedSrc : 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -329,11 +339,11 @@ function setStyles(context, event) {
|
|||||||
naturalHeight,
|
naturalHeight,
|
||||||
offsetWidth: originalWidth,
|
offsetWidth: originalWidth,
|
||||||
offsetHeight: originalHeight
|
offsetHeight: originalHeight
|
||||||
} = event.target.nextElementSibling;
|
} = event.target.previousElementSibling;
|
||||||
let {
|
let {
|
||||||
x: screenPosX,
|
x: screenPosX,
|
||||||
y: screenPosY
|
y: screenPosY
|
||||||
} = event.target.nextElementSibling.getBoundingClientRect();
|
} = event.target.previousElementSibling.getBoundingClientRect();
|
||||||
|
|
||||||
// Natural ratio of the image clicked to open the lightbox.
|
// Natural ratio of the image clicked to open the lightbox.
|
||||||
const naturalRatio = naturalWidth / naturalHeight;
|
const naturalRatio = naturalWidth / naturalHeight;
|
||||||
|
@ -1 +1 @@
|
|||||||
<?php return array('dependencies' => array(), 'version' => 'd147cc02d5d2c29b2a8e');
|
<?php return array('dependencies' => array(), 'version' => '6e38467974481d14d2da');
|
||||||
|
2
wp-includes/blocks/image/view.min.js
vendored
2
wp-includes/blocks/image/view.min.js
vendored
File diff suppressed because one or more lines are too long
@ -48,14 +48,6 @@ function render_block_core_latest_posts( $attributes ) {
|
|||||||
$block_core_latest_posts_excerpt_length = $attributes['excerptLength'];
|
$block_core_latest_posts_excerpt_length = $attributes['excerptLength'];
|
||||||
add_filter( 'excerpt_length', 'block_core_latest_posts_get_excerpt_length', 20 );
|
add_filter( 'excerpt_length', 'block_core_latest_posts_get_excerpt_length', 20 );
|
||||||
|
|
||||||
$filter_latest_posts_excerpt_more = static function ( $more ) use ( $attributes ) {
|
|
||||||
$use_excerpt = 'excerpt' === $attributes['displayPostContentRadio'];
|
|
||||||
/* translators: %1$s is a URL to a post, excerpt truncation character, default … */
|
|
||||||
return $use_excerpt ? sprintf( __( ' … <a href="%1$s" rel="noopener noreferrer">Read more</a>' ), esc_url( get_permalink() ) ) : $more;
|
|
||||||
};
|
|
||||||
|
|
||||||
add_filter( 'excerpt_more', $filter_latest_posts_excerpt_more );
|
|
||||||
|
|
||||||
if ( ! empty( $attributes['categories'] ) ) {
|
if ( ! empty( $attributes['categories'] ) ) {
|
||||||
$args['category__in'] = array_column( $attributes['categories'], 'id' );
|
$args['category__in'] = array_column( $attributes['categories'], 'id' );
|
||||||
}
|
}
|
||||||
@ -151,6 +143,24 @@ function render_block_core_latest_posts( $attributes ) {
|
|||||||
|
|
||||||
$trimmed_excerpt = get_the_excerpt( $post );
|
$trimmed_excerpt = get_the_excerpt( $post );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Adds a "Read more" link with screen reader text.
|
||||||
|
* […] is the default excerpt ending from wp_trim_excerpt() in Core.
|
||||||
|
*/
|
||||||
|
if ( str_ends_with( $trimmed_excerpt, ' […]' ) ) {
|
||||||
|
$excerpt_length = (int) apply_filters( 'excerpt_length', $block_core_latest_posts_excerpt_length );
|
||||||
|
if ( $excerpt_length <= $block_core_latest_posts_excerpt_length ) {
|
||||||
|
$trimmed_excerpt = substr( $trimmed_excerpt, 0, -11 );
|
||||||
|
$trimmed_excerpt .= sprintf(
|
||||||
|
/* translators: 1: A URL to a post, 2: The static string "Read more", 3: The post title only visible to screen readers. */
|
||||||
|
__( '… <a href="%1$s" rel="noopener noreferrer">%2$s<span class="screen-reader-text">: %3$s</span></a>' ),
|
||||||
|
esc_url( $post_link ),
|
||||||
|
__( 'Read more' ),
|
||||||
|
esc_html( $title )
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if ( post_password_required( $post ) ) {
|
if ( post_password_required( $post ) ) {
|
||||||
$trimmed_excerpt = __( 'This content is password protected.' );
|
$trimmed_excerpt = __( 'This content is password protected.' );
|
||||||
}
|
}
|
||||||
|
@ -61,3 +61,6 @@
|
|||||||
.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{
|
.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{
|
||||||
opacity:1;
|
opacity:1;
|
||||||
}
|
}
|
||||||
|
.wp-block-post-featured-image:where(.alignleft,.alignright){
|
||||||
|
width:100%;
|
||||||
|
}
|
@ -1 +1 @@
|
|||||||
.wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:transparent}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}
|
.wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:transparent}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}.wp-block-post-featured-image:where(.alignleft,.alignright){width:100%}
|
@ -61,3 +61,6 @@
|
|||||||
.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{
|
.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{
|
||||||
opacity:1;
|
opacity:1;
|
||||||
}
|
}
|
||||||
|
.wp-block-post-featured-image:where(.alignleft,.alignright){
|
||||||
|
width:100%;
|
||||||
|
}
|
@ -1 +1 @@
|
|||||||
.wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:transparent}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}
|
.wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:transparent}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}.wp-block-post-featured-image:where(.alignleft,.alignright){width:100%}
|
@ -41,3 +41,25 @@
|
|||||||
grid-template-columns:1fr;
|
grid-template-columns:1fr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{
|
||||||
|
-webkit-margin-start:2em;
|
||||||
|
-webkit-margin-end:0;
|
||||||
|
float:left;
|
||||||
|
margin-inline-end:0;
|
||||||
|
margin-inline-start:2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{
|
||||||
|
-webkit-margin-start:0;
|
||||||
|
-webkit-margin-end:2em;
|
||||||
|
float:right;
|
||||||
|
margin-inline-end:2em;
|
||||||
|
margin-inline-start:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{
|
||||||
|
-webkit-margin-start:auto;
|
||||||
|
-webkit-margin-end:auto;
|
||||||
|
margin-inline-end:auto;
|
||||||
|
margin-inline-start:auto;
|
||||||
|
}
|
@ -1 +1 @@
|
|||||||
.wp-block-post-template{list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.wp-block-post-template{background:none}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid{grid-template-columns:1fr}}
|
.wp-block-post-template{list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.wp-block-post-template{background:none}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid{grid-template-columns:1fr}}.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{-webkit-margin-start:2em;-webkit-margin-end:0;float:left;margin-inline-end:0;margin-inline-start:2em}.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{-webkit-margin-start:0;-webkit-margin-end:2em;float:right;margin-inline-end:2em;margin-inline-start:0}.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{-webkit-margin-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-inline-start:auto}
|
@ -41,3 +41,25 @@
|
|||||||
grid-template-columns:1fr;
|
grid-template-columns:1fr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{
|
||||||
|
-webkit-margin-start:2em;
|
||||||
|
-webkit-margin-end:0;
|
||||||
|
float:right;
|
||||||
|
margin-inline-end:0;
|
||||||
|
margin-inline-start:2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{
|
||||||
|
-webkit-margin-start:0;
|
||||||
|
-webkit-margin-end:2em;
|
||||||
|
float:left;
|
||||||
|
margin-inline-end:2em;
|
||||||
|
margin-inline-start:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{
|
||||||
|
-webkit-margin-start:auto;
|
||||||
|
-webkit-margin-end:auto;
|
||||||
|
margin-inline-end:auto;
|
||||||
|
margin-inline-start:auto;
|
||||||
|
}
|
@ -1 +1 @@
|
|||||||
.wp-block-post-template{list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.wp-block-post-template{background:none}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid{grid-template-columns:1fr}}
|
.wp-block-post-template{list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.wp-block-post-template{background:none}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid.wp-block-post-template-is-layout-grid{grid-template-columns:1fr}}.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{-webkit-margin-start:2em;-webkit-margin-end:0;float:right;margin-inline-end:0;margin-inline-start:2em}.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{-webkit-margin-start:0;-webkit-margin-end:2em;float:left;margin-inline-end:2em;margin-inline-start:0}.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{-webkit-margin-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-inline-start:auto}
|
@ -3568,7 +3568,7 @@
|
|||||||
flex-grow:1;
|
flex-grow:1;
|
||||||
height:100%;
|
height:100%;
|
||||||
overflow-y:auto;
|
overflow-y:auto;
|
||||||
padding:32px 24px;
|
padding:16px 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.block-editor-block-patterns-list__list-item .block-editor-block-preview__container{
|
.block-editor-block-patterns-list__list-item .block-editor-block-preview__container{
|
||||||
|
File diff suppressed because one or more lines are too long
2
wp-includes/css/dist/block-editor/style.css
vendored
2
wp-includes/css/dist/block-editor/style.css
vendored
@ -3568,7 +3568,7 @@
|
|||||||
flex-grow:1;
|
flex-grow:1;
|
||||||
height:100%;
|
height:100%;
|
||||||
overflow-y:auto;
|
overflow-y:auto;
|
||||||
padding:32px 24px;
|
padding:16px 24px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.block-editor-block-patterns-list__list-item .block-editor-block-preview__container{
|
.block-editor-block-patterns-list__list-item .block-editor-block-preview__container{
|
||||||
|
File diff suppressed because one or more lines are too long
45
wp-includes/css/dist/block-library/style-rtl.css
vendored
45
wp-includes/css/dist/block-library/style-rtl.css
vendored
@ -1170,6 +1170,8 @@ h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-t
|
|||||||
}
|
}
|
||||||
|
|
||||||
.wp-lightbox-container{
|
.wp-lightbox-container{
|
||||||
|
display:flex;
|
||||||
|
flex-direction:column;
|
||||||
position:relative;
|
position:relative;
|
||||||
}
|
}
|
||||||
.wp-lightbox-container button{
|
.wp-lightbox-container button{
|
||||||
@ -1186,6 +1188,10 @@ h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-t
|
|||||||
outline:5px auto -webkit-focus-ring-color;
|
outline:5px auto -webkit-focus-ring-color;
|
||||||
outline-offset:5px;
|
outline-offset:5px;
|
||||||
}
|
}
|
||||||
|
.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){
|
||||||
|
background:none;
|
||||||
|
border:none;
|
||||||
|
}
|
||||||
|
|
||||||
.wp-lightbox-overlay{
|
.wp-lightbox-overlay{
|
||||||
box-sizing:border-box;
|
box-sizing:border-box;
|
||||||
@ -1200,13 +1206,22 @@ h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-t
|
|||||||
z-index:100000;
|
z-index:100000;
|
||||||
}
|
}
|
||||||
.wp-lightbox-overlay .close-button{
|
.wp-lightbox-overlay .close-button{
|
||||||
|
align-items:center;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
left:calc(env(safe-area-inset-left) + 20px);
|
display:flex;
|
||||||
|
justify-content:center;
|
||||||
|
left:calc(env(safe-area-inset-left) + 16px);
|
||||||
|
min-height:40px;
|
||||||
|
min-width:40px;
|
||||||
padding:0;
|
padding:0;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
top:calc(env(safe-area-inset-top) + 20px);
|
top:calc(env(safe-area-inset-top) + 16px);
|
||||||
z-index:5000000;
|
z-index:5000000;
|
||||||
}
|
}
|
||||||
|
.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){
|
||||||
|
background:none;
|
||||||
|
border:none;
|
||||||
|
}
|
||||||
.wp-lightbox-overlay .lightbox-image-container{
|
.wp-lightbox-overlay .lightbox-image-container{
|
||||||
height:var(--wp--lightbox-container-height);
|
height:var(--wp--lightbox-container-height);
|
||||||
overflow:hidden;
|
overflow:hidden;
|
||||||
@ -2278,6 +2293,9 @@ p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[
|
|||||||
.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{
|
.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{
|
||||||
opacity:1;
|
opacity:1;
|
||||||
}
|
}
|
||||||
|
.wp-block-post-featured-image:where(.alignleft,.alignright){
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
|
||||||
.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous{
|
.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous{
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
@ -2420,6 +2438,29 @@ p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[
|
|||||||
grid-template-columns:1fr;
|
grid-template-columns:1fr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{
|
||||||
|
-webkit-margin-start:2em;
|
||||||
|
-webkit-margin-end:0;
|
||||||
|
float:left;
|
||||||
|
margin-inline-end:0;
|
||||||
|
margin-inline-start:2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{
|
||||||
|
-webkit-margin-start:0;
|
||||||
|
-webkit-margin-end:2em;
|
||||||
|
float:right;
|
||||||
|
margin-inline-end:2em;
|
||||||
|
margin-inline-start:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{
|
||||||
|
-webkit-margin-start:auto;
|
||||||
|
-webkit-margin-end:auto;
|
||||||
|
margin-inline-end:auto;
|
||||||
|
margin-inline-start:auto;
|
||||||
|
}
|
||||||
|
|
||||||
.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{
|
.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{
|
||||||
margin-bottom:.5em;
|
margin-bottom:.5em;
|
||||||
margin-right:.5em;
|
margin-right:.5em;
|
||||||
|
File diff suppressed because one or more lines are too long
45
wp-includes/css/dist/block-library/style.css
vendored
45
wp-includes/css/dist/block-library/style.css
vendored
@ -1170,6 +1170,8 @@ h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-t
|
|||||||
}
|
}
|
||||||
|
|
||||||
.wp-lightbox-container{
|
.wp-lightbox-container{
|
||||||
|
display:flex;
|
||||||
|
flex-direction:column;
|
||||||
position:relative;
|
position:relative;
|
||||||
}
|
}
|
||||||
.wp-lightbox-container button{
|
.wp-lightbox-container button{
|
||||||
@ -1186,6 +1188,10 @@ h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-t
|
|||||||
outline:5px auto -webkit-focus-ring-color;
|
outline:5px auto -webkit-focus-ring-color;
|
||||||
outline-offset:5px;
|
outline-offset:5px;
|
||||||
}
|
}
|
||||||
|
.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){
|
||||||
|
background:none;
|
||||||
|
border:none;
|
||||||
|
}
|
||||||
|
|
||||||
.wp-lightbox-overlay{
|
.wp-lightbox-overlay{
|
||||||
box-sizing:border-box;
|
box-sizing:border-box;
|
||||||
@ -1200,13 +1206,22 @@ h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-t
|
|||||||
z-index:100000;
|
z-index:100000;
|
||||||
}
|
}
|
||||||
.wp-lightbox-overlay .close-button{
|
.wp-lightbox-overlay .close-button{
|
||||||
|
align-items:center;
|
||||||
cursor:pointer;
|
cursor:pointer;
|
||||||
|
display:flex;
|
||||||
|
justify-content:center;
|
||||||
|
min-height:40px;
|
||||||
|
min-width:40px;
|
||||||
padding:0;
|
padding:0;
|
||||||
position:absolute;
|
position:absolute;
|
||||||
right:calc(env(safe-area-inset-right) + 20px);
|
right:calc(env(safe-area-inset-right) + 16px);
|
||||||
top:calc(env(safe-area-inset-top) + 20px);
|
top:calc(env(safe-area-inset-top) + 16px);
|
||||||
z-index:5000000;
|
z-index:5000000;
|
||||||
}
|
}
|
||||||
|
.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){
|
||||||
|
background:none;
|
||||||
|
border:none;
|
||||||
|
}
|
||||||
.wp-lightbox-overlay .lightbox-image-container{
|
.wp-lightbox-overlay .lightbox-image-container{
|
||||||
height:var(--wp--lightbox-container-height);
|
height:var(--wp--lightbox-container-height);
|
||||||
left:50%;
|
left:50%;
|
||||||
@ -2278,6 +2293,9 @@ p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[
|
|||||||
.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{
|
.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{
|
||||||
opacity:1;
|
opacity:1;
|
||||||
}
|
}
|
||||||
|
.wp-block-post-featured-image:where(.alignleft,.alignright){
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
|
||||||
.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous{
|
.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous{
|
||||||
display:inline-block;
|
display:inline-block;
|
||||||
@ -2420,6 +2438,29 @@ p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[
|
|||||||
grid-template-columns:1fr;
|
grid-template-columns:1fr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{
|
||||||
|
-webkit-margin-start:2em;
|
||||||
|
-webkit-margin-end:0;
|
||||||
|
float:right;
|
||||||
|
margin-inline-end:0;
|
||||||
|
margin-inline-start:2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{
|
||||||
|
-webkit-margin-start:0;
|
||||||
|
-webkit-margin-end:2em;
|
||||||
|
float:left;
|
||||||
|
margin-inline-end:2em;
|
||||||
|
margin-inline-start:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{
|
||||||
|
-webkit-margin-start:auto;
|
||||||
|
-webkit-margin-end:auto;
|
||||||
|
margin-inline-end:auto;
|
||||||
|
margin-inline-start:auto;
|
||||||
|
}
|
||||||
|
|
||||||
.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{
|
.wp-block-query-pagination>.wp-block-query-pagination-next,.wp-block-query-pagination>.wp-block-query-pagination-numbers,.wp-block-query-pagination>.wp-block-query-pagination-previous{
|
||||||
margin-bottom:.5em;
|
margin-bottom:.5em;
|
||||||
margin-right:.5em;
|
margin-right:.5em;
|
||||||
|
File diff suppressed because one or more lines are too long
19
wp-includes/css/dist/edit-site/style-rtl.css
vendored
19
wp-includes/css/dist/edit-site/style-rtl.css
vendored
@ -2285,6 +2285,25 @@ h3.edit-site-template-card__template-areas-title{
|
|||||||
margin:0 0 8px;
|
margin:0 0 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.edit-site-template-panel__replace-template-modal{
|
||||||
|
z-index:1000001;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-site-template-panel__replace-template-modal__content{
|
||||||
|
column-count:2;
|
||||||
|
column-gap:24px;
|
||||||
|
}
|
||||||
|
@media (min-width:782px){
|
||||||
|
.edit-site-template-panel__replace-template-modal__content{
|
||||||
|
column-count:3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (min-width:1280px){
|
||||||
|
.edit-site-template-panel__replace-template-modal__content{
|
||||||
|
column-count:4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.edit-site-editor__interface-skeleton{
|
.edit-site-editor__interface-skeleton{
|
||||||
opacity:1;
|
opacity:1;
|
||||||
transition:opacity .1s ease-out;
|
transition:opacity .1s ease-out;
|
||||||
|
File diff suppressed because one or more lines are too long
19
wp-includes/css/dist/edit-site/style.css
vendored
19
wp-includes/css/dist/edit-site/style.css
vendored
@ -2285,6 +2285,25 @@ h3.edit-site-template-card__template-areas-title{
|
|||||||
margin:0 0 8px;
|
margin:0 0 8px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.edit-site-template-panel__replace-template-modal{
|
||||||
|
z-index:1000001;
|
||||||
|
}
|
||||||
|
|
||||||
|
.edit-site-template-panel__replace-template-modal__content{
|
||||||
|
column-count:2;
|
||||||
|
column-gap:24px;
|
||||||
|
}
|
||||||
|
@media (min-width:782px){
|
||||||
|
.edit-site-template-panel__replace-template-modal__content{
|
||||||
|
column-count:3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (min-width:1280px){
|
||||||
|
.edit-site-template-panel__replace-template-modal__content{
|
||||||
|
column-count:4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.edit-site-editor__interface-skeleton{
|
.edit-site-editor__interface-skeleton{
|
||||||
opacity:1;
|
opacity:1;
|
||||||
transition:opacity .1s ease-out;
|
transition:opacity .1s ease-out;
|
||||||
|
2
wp-includes/css/dist/edit-site/style.min.css
vendored
2
wp-includes/css/dist/edit-site/style.min.css
vendored
File diff suppressed because one or more lines are too long
24
wp-includes/css/dist/patterns/style-rtl.css
vendored
24
wp-includes/css/dist/patterns/style-rtl.css
vendored
@ -18,10 +18,30 @@
|
|||||||
.patterns-menu-items__convert-modal{
|
.patterns-menu-items__convert-modal{
|
||||||
z-index:1000001;
|
z-index:1000001;
|
||||||
}
|
}
|
||||||
|
.patterns-menu-items__convert-modal [role=dialog]>[role=document]{
|
||||||
|
width:350px;
|
||||||
|
}
|
||||||
.patterns-menu-items__convert-modal .patterns-menu-items__convert-modal-categories{
|
.patterns-menu-items__convert-modal .patterns-menu-items__convert-modal-categories{
|
||||||
max-width:300px;
|
min-height:40px;
|
||||||
|
position:relative;
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
.patterns-menu-items__convert-modal .components-form-token-field__suggestions-list{
|
||||||
|
background-color:#fff;
|
||||||
|
border:1px solid var(--wp-admin-theme-color);
|
||||||
|
border-bottom-left-radius:2px;
|
||||||
|
border-bottom-right-radius:2px;
|
||||||
|
border-top:none;
|
||||||
|
box-shadow:0 0 0 .5px var(--wp-admin-theme-color);
|
||||||
|
box-sizing:border-box;
|
||||||
|
min-width:auto;
|
||||||
|
position:absolute;
|
||||||
|
right:-1px;
|
||||||
|
width:calc(100% + 2px);
|
||||||
|
z-index:1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.patterns-create-modal__name-input input[type=text]{
|
.patterns-create-modal__name-input input[type=text]{
|
||||||
min-height:34px;
|
margin:0;
|
||||||
|
min-height:40px;
|
||||||
}
|
}
|
@ -1 +1 @@
|
|||||||
:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.patterns-menu-items__convert-modal{z-index:1000001}.patterns-menu-items__convert-modal .patterns-menu-items__convert-modal-categories{max-width:300px}.patterns-create-modal__name-input input[type=text]{min-height:34px}
|
:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.patterns-menu-items__convert-modal{z-index:1000001}.patterns-menu-items__convert-modal [role=dialog]>[role=document]{width:350px}.patterns-menu-items__convert-modal .patterns-menu-items__convert-modal-categories{min-height:40px;position:relative;width:100%}.patterns-menu-items__convert-modal .components-form-token-field__suggestions-list{background-color:#fff;border:1px solid var(--wp-admin-theme-color);border-bottom-left-radius:2px;border-bottom-right-radius:2px;border-top:none;box-shadow:0 0 0 .5px var(--wp-admin-theme-color);box-sizing:border-box;min-width:auto;position:absolute;right:-1px;width:calc(100% + 2px);z-index:1}.patterns-create-modal__name-input input[type=text]{margin:0;min-height:40px}
|
24
wp-includes/css/dist/patterns/style.css
vendored
24
wp-includes/css/dist/patterns/style.css
vendored
@ -18,10 +18,30 @@
|
|||||||
.patterns-menu-items__convert-modal{
|
.patterns-menu-items__convert-modal{
|
||||||
z-index:1000001;
|
z-index:1000001;
|
||||||
}
|
}
|
||||||
|
.patterns-menu-items__convert-modal [role=dialog]>[role=document]{
|
||||||
|
width:350px;
|
||||||
|
}
|
||||||
.patterns-menu-items__convert-modal .patterns-menu-items__convert-modal-categories{
|
.patterns-menu-items__convert-modal .patterns-menu-items__convert-modal-categories{
|
||||||
max-width:300px;
|
min-height:40px;
|
||||||
|
position:relative;
|
||||||
|
width:100%;
|
||||||
|
}
|
||||||
|
.patterns-menu-items__convert-modal .components-form-token-field__suggestions-list{
|
||||||
|
background-color:#fff;
|
||||||
|
border:1px solid var(--wp-admin-theme-color);
|
||||||
|
border-bottom-left-radius:2px;
|
||||||
|
border-bottom-right-radius:2px;
|
||||||
|
border-top:none;
|
||||||
|
box-shadow:0 0 0 .5px var(--wp-admin-theme-color);
|
||||||
|
box-sizing:border-box;
|
||||||
|
left:-1px;
|
||||||
|
min-width:auto;
|
||||||
|
position:absolute;
|
||||||
|
width:calc(100% + 2px);
|
||||||
|
z-index:1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.patterns-create-modal__name-input input[type=text]{
|
.patterns-create-modal__name-input input[type=text]{
|
||||||
min-height:34px;
|
margin:0;
|
||||||
|
min-height:40px;
|
||||||
}
|
}
|
2
wp-includes/css/dist/patterns/style.min.css
vendored
2
wp-includes/css/dist/patterns/style.min.css
vendored
@ -1 +1 @@
|
|||||||
:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.patterns-menu-items__convert-modal{z-index:1000001}.patterns-menu-items__convert-modal .patterns-menu-items__convert-modal-categories{max-width:300px}.patterns-create-modal__name-input input[type=text]{min-height:34px}
|
:root{--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,161;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px;--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.patterns-menu-items__convert-modal{z-index:1000001}.patterns-menu-items__convert-modal [role=dialog]>[role=document]{width:350px}.patterns-menu-items__convert-modal .patterns-menu-items__convert-modal-categories{min-height:40px;position:relative;width:100%}.patterns-menu-items__convert-modal .components-form-token-field__suggestions-list{background-color:#fff;border:1px solid var(--wp-admin-theme-color);border-bottom-left-radius:2px;border-bottom-right-radius:2px;border-top:none;box-shadow:0 0 0 .5px var(--wp-admin-theme-color);box-sizing:border-box;left:-1px;min-width:auto;position:absolute;width:calc(100% + 2px);z-index:1}.patterns-create-modal__name-input input[type=text]{margin:0;min-height:40px}
|
254
wp-includes/js/dist/block-editor.js
vendored
254
wp-includes/js/dist/block-editor.js
vendored
@ -3620,8 +3620,10 @@ __webpack_require__.d(private_selectors_namespaceObject, {
|
|||||||
getBlockRemovalRules: function() { return getBlockRemovalRules; },
|
getBlockRemovalRules: function() { return getBlockRemovalRules; },
|
||||||
getEnabledBlockParents: function() { return getEnabledBlockParents; },
|
getEnabledBlockParents: function() { return getEnabledBlockParents; },
|
||||||
getEnabledClientIdsTree: function() { return getEnabledClientIdsTree; },
|
getEnabledClientIdsTree: function() { return getEnabledClientIdsTree; },
|
||||||
|
getInserterMediaCategories: function() { return getInserterMediaCategories; },
|
||||||
getLastInsertedBlocksClientIds: function() { return getLastInsertedBlocksClientIds; },
|
getLastInsertedBlocksClientIds: function() { return getLastInsertedBlocksClientIds; },
|
||||||
getOpenedBlockSettingsMenu: function() { return getOpenedBlockSettingsMenu; },
|
getOpenedBlockSettingsMenu: function() { return getOpenedBlockSettingsMenu; },
|
||||||
|
getRegisteredInserterMediaCategories: function() { return getRegisteredInserterMediaCategories; },
|
||||||
getRemovalPromptData: function() { return getRemovalPromptData; },
|
getRemovalPromptData: function() { return getRemovalPromptData; },
|
||||||
getStyleOverrides: function() { return getStyleOverrides; },
|
getStyleOverrides: function() { return getStyleOverrides; },
|
||||||
isBlockInterfaceHidden: function() { return private_selectors_isBlockInterfaceHidden; },
|
isBlockInterfaceHidden: function() { return private_selectors_isBlockInterfaceHidden; },
|
||||||
@ -5785,6 +5787,22 @@ function styleOverrides(state = new Map(), action) {
|
|||||||
}
|
}
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Reducer returning a map of the registered inserter media categories.
|
||||||
|
*
|
||||||
|
* @param {Array} state Current state.
|
||||||
|
* @param {Object} action Dispatched action.
|
||||||
|
*
|
||||||
|
* @return {Array} Updated state.
|
||||||
|
*/
|
||||||
|
function registeredInserterMediaCategories(state = [], action) {
|
||||||
|
switch (action.type) {
|
||||||
|
case 'REGISTER_INSERTER_MEDIA_CATEGORY':
|
||||||
|
return [...state, action.category];
|
||||||
|
}
|
||||||
|
return state;
|
||||||
|
}
|
||||||
const combinedReducers = (0,external_wp_data_namespaceObject.combineReducers)({
|
const combinedReducers = (0,external_wp_data_namespaceObject.combineReducers)({
|
||||||
blocks,
|
blocks,
|
||||||
isTyping,
|
isTyping,
|
||||||
@ -5811,7 +5829,8 @@ const combinedReducers = (0,external_wp_data_namespaceObject.combineReducers)({
|
|||||||
styleOverrides,
|
styleOverrides,
|
||||||
removalPromptData,
|
removalPromptData,
|
||||||
blockRemovalRules,
|
blockRemovalRules,
|
||||||
openedBlockSettingsMenu
|
openedBlockSettingsMenu,
|
||||||
|
registeredInserterMediaCategories
|
||||||
});
|
});
|
||||||
function withAutomaticChangeReset(reducer) {
|
function withAutomaticChangeReset(reducer) {
|
||||||
return (state, action) => {
|
return (state, action) => {
|
||||||
@ -9130,6 +9149,58 @@ function getStyleOverrides(state) {
|
|||||||
return state.styleOverrides;
|
return state.styleOverrides;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** @typedef {import('./actions').InserterMediaCategory} InserterMediaCategory */
|
||||||
|
/**
|
||||||
|
* Returns the registered inserter media categories through the public API.
|
||||||
|
*
|
||||||
|
* @param {Object} state Editor state.
|
||||||
|
*
|
||||||
|
* @return {InserterMediaCategory[]} Inserter media categories.
|
||||||
|
*/
|
||||||
|
function getRegisteredInserterMediaCategories(state) {
|
||||||
|
return state.registeredInserterMediaCategories;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns an array containing the allowed inserter media categories.
|
||||||
|
* It merges the registered media categories from extenders with the
|
||||||
|
* core ones. It also takes into account the allowed `mime_types`, which
|
||||||
|
* can be altered by `upload_mimes` filter and restrict some of them.
|
||||||
|
*
|
||||||
|
* @param {Object} state Global application state.
|
||||||
|
*
|
||||||
|
* @return {InserterMediaCategory[]} Client IDs of descendants.
|
||||||
|
*/
|
||||||
|
const getInserterMediaCategories = rememo(state => {
|
||||||
|
const {
|
||||||
|
settings: {
|
||||||
|
inserterMediaCategories,
|
||||||
|
allowedMimeTypes,
|
||||||
|
enableOpenverseMediaCategory
|
||||||
|
},
|
||||||
|
registeredInserterMediaCategories
|
||||||
|
} = state;
|
||||||
|
// The allowed `mime_types` can be altered by `upload_mimes` filter and restrict
|
||||||
|
// some of them. In this case we shouldn't add the category to the available media
|
||||||
|
// categories list in the inserter.
|
||||||
|
if (!inserterMediaCategories && !registeredInserterMediaCategories.length || !allowedMimeTypes) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const coreInserterMediaCategoriesNames = inserterMediaCategories?.map(({
|
||||||
|
name
|
||||||
|
}) => name) || [];
|
||||||
|
const mergedCategories = [...(inserterMediaCategories || []), ...(registeredInserterMediaCategories || []).filter(({
|
||||||
|
name
|
||||||
|
}) => !coreInserterMediaCategoriesNames.includes(name))];
|
||||||
|
return mergedCategories.filter(category => {
|
||||||
|
// Check if Openverse category is enabled.
|
||||||
|
if (!enableOpenverseMediaCategory && category.name === 'openverse') {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return Object.values(allowedMimeTypes).some(mimeType => mimeType.startsWith(`${category.mediaType}/`));
|
||||||
|
});
|
||||||
|
}, state => [state.settings.inserterMediaCategories, state.settings.allowedMimeTypes, state.settings.enableOpenverseMediaCategory, state.registeredInserterMediaCategories]);
|
||||||
|
|
||||||
;// CONCATENATED MODULE: external ["wp","a11y"]
|
;// CONCATENATED MODULE: external ["wp","a11y"]
|
||||||
var external_wp_a11y_namespaceObject = window["wp"]["a11y"];
|
var external_wp_a11y_namespaceObject = window["wp"]["a11y"];
|
||||||
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/selection.js
|
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/utils/selection.js
|
||||||
@ -10759,19 +10830,17 @@ const registerInserterMediaCategory = category => ({
|
|||||||
console.error('Category should have a `fetch` function defined with the following signature `(InserterMediaRequest) => Promise<InserterMediaItem[]>`.');
|
console.error('Category should have a `fetch` function defined with the following signature `(InserterMediaRequest) => Promise<InserterMediaItem[]>`.');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const {
|
const registeredInserterMediaCategories = select.getRegisteredInserterMediaCategories();
|
||||||
inserterMediaCategories = []
|
if (registeredInserterMediaCategories.some(({
|
||||||
} = select.getSettings();
|
|
||||||
if (inserterMediaCategories.some(({
|
|
||||||
name
|
name
|
||||||
}) => name === category.name)) {
|
}) => name === category.name)) {
|
||||||
console.error(`A category is already registered with the same name: "${category.name}".`);
|
console.error(`A category is already registered with the same name: "${category.name}".`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (inserterMediaCategories.some(({
|
if (registeredInserterMediaCategories.some(({
|
||||||
labels: {
|
labels: {
|
||||||
name
|
name
|
||||||
}
|
} = {}
|
||||||
}) => name === category.labels?.name)) {
|
}) => name === category.labels?.name)) {
|
||||||
console.error(`A category is already registered with the same labels.name: "${category.labels.name}".`);
|
console.error(`A category is already registered with the same labels.name: "${category.labels.name}".`);
|
||||||
return;
|
return;
|
||||||
@ -10781,12 +10850,10 @@ const registerInserterMediaCategory = category => ({
|
|||||||
// private, so extenders can only add new inserter media categories and don't have any
|
// private, so extenders can only add new inserter media categories and don't have any
|
||||||
// control over the core media categories.
|
// control over the core media categories.
|
||||||
dispatch({
|
dispatch({
|
||||||
type: 'UPDATE_SETTINGS',
|
type: 'REGISTER_INSERTER_MEDIA_CATEGORY',
|
||||||
settings: {
|
category: {
|
||||||
inserterMediaCategories: [...inserterMediaCategories, {
|
|
||||||
...category,
|
...category,
|
||||||
isExternalResource: true
|
isExternalResource: true
|
||||||
}]
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@ -24785,7 +24852,15 @@ function bubbleEvent(event, Constructor, frame) {
|
|||||||
for (const key in event) {
|
for (const key in event) {
|
||||||
init[key] = event[key];
|
init[key] = event[key];
|
||||||
}
|
}
|
||||||
if (event instanceof frame.ownerDocument.defaultView.MouseEvent) {
|
|
||||||
|
// Check if the event is a MouseEvent generated within the iframe.
|
||||||
|
// If so, adjust the coordinates to be relative to the position of
|
||||||
|
// the iframe. This ensures that components such as Draggable
|
||||||
|
// receive coordinates relative to the window, instead of relative
|
||||||
|
// to the iframe. Without this, the Draggable event handler would
|
||||||
|
// result in components "jumping" position as soon as the user
|
||||||
|
// drags over the iframe.
|
||||||
|
if (event instanceof frame.contentDocument.defaultView.MouseEvent) {
|
||||||
const rect = frame.getBoundingClientRect();
|
const rect = frame.getBoundingClientRect();
|
||||||
init.clientX += rect.left;
|
init.clientX += rect.left;
|
||||||
init.clientY += rect.top;
|
init.clientY += rect.top;
|
||||||
@ -26326,6 +26401,11 @@ const wrap = (namespace, ignore = []) => node => {
|
|||||||
return selector;
|
return selector;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Skip the update when a selector already has a namespace + space (" ").
|
||||||
|
if (selector.trim().startsWith(`${namespace} `)) {
|
||||||
|
return selector;
|
||||||
|
}
|
||||||
|
|
||||||
// Anything other than a root tag is always prefixed.
|
// Anything other than a root tag is always prefixed.
|
||||||
{
|
{
|
||||||
if (!selector.match(IS_ROOT_TAG)) {
|
if (!selector.match(IS_ROOT_TAG)) {
|
||||||
@ -28356,12 +28436,10 @@ function BlockPatternsSyncFilter({
|
|||||||
}, {
|
}, {
|
||||||
value: SYNC_TYPES.full,
|
value: SYNC_TYPES.full,
|
||||||
label: (0,external_wp_i18n_namespaceObject.__)('Synced'),
|
label: (0,external_wp_i18n_namespaceObject.__)('Synced'),
|
||||||
info: (0,external_wp_i18n_namespaceObject.__)('Updated everywhere'),
|
|
||||||
disabled: shouldDisableSyncFilter
|
disabled: shouldDisableSyncFilter
|
||||||
}, {
|
}, {
|
||||||
value: SYNC_TYPES.unsynced,
|
value: SYNC_TYPES.unsynced,
|
||||||
label: (0,external_wp_i18n_namespaceObject.__)('Standard'),
|
label: (0,external_wp_i18n_namespaceObject.__)('Not synced'),
|
||||||
info: (0,external_wp_i18n_namespaceObject.__)('Edit freely'),
|
|
||||||
disabled: shouldDisableSyncFilter
|
disabled: shouldDisableSyncFilter
|
||||||
}], [shouldDisableSyncFilter]);
|
}], [shouldDisableSyncFilter]);
|
||||||
const patternSourceMenuOptions = (0,external_wp_element_namespaceObject.useMemo)(() => [{
|
const patternSourceMenuOptions = (0,external_wp_element_namespaceObject.useMemo)(() => [{
|
||||||
@ -28370,18 +28448,15 @@ function BlockPatternsSyncFilter({
|
|||||||
disabled: shouldDisableNonUserSources
|
disabled: shouldDisableNonUserSources
|
||||||
}, {
|
}, {
|
||||||
value: PATTERN_TYPES.directory,
|
value: PATTERN_TYPES.directory,
|
||||||
label: (0,external_wp_i18n_namespaceObject.__)('Directory'),
|
label: (0,external_wp_i18n_namespaceObject.__)('Pattern Directory'),
|
||||||
info: (0,external_wp_i18n_namespaceObject.__)('Pattern directory & core'),
|
|
||||||
disabled: shouldDisableNonUserSources
|
disabled: shouldDisableNonUserSources
|
||||||
}, {
|
}, {
|
||||||
value: PATTERN_TYPES.theme,
|
value: PATTERN_TYPES.theme,
|
||||||
label: (0,external_wp_i18n_namespaceObject.__)('Theme'),
|
label: (0,external_wp_i18n_namespaceObject.__)('Theme & Plugins'),
|
||||||
info: (0,external_wp_i18n_namespaceObject.__)('Bundled with the theme'),
|
|
||||||
disabled: shouldDisableNonUserSources
|
disabled: shouldDisableNonUserSources
|
||||||
}, {
|
}, {
|
||||||
value: PATTERN_TYPES.user,
|
value: PATTERN_TYPES.user,
|
||||||
label: (0,external_wp_i18n_namespaceObject.__)('User'),
|
label: (0,external_wp_i18n_namespaceObject.__)('User')
|
||||||
info: (0,external_wp_i18n_namespaceObject.__)('Custom created')
|
|
||||||
}], [shouldDisableNonUserSources]);
|
}], [shouldDisableNonUserSources]);
|
||||||
function handleSetSourceFilterChange(newSourceFilter) {
|
function handleSetSourceFilterChange(newSourceFilter) {
|
||||||
setPatternSourceFilter(newSourceFilter);
|
setPatternSourceFilter(newSourceFilter);
|
||||||
@ -28407,7 +28482,7 @@ function BlockPatternsSyncFilter({
|
|||||||
}))
|
}))
|
||||||
})
|
})
|
||||||
}, () => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
|
}, () => (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, {
|
||||||
label: (0,external_wp_i18n_namespaceObject.__)('Author')
|
label: (0,external_wp_i18n_namespaceObject.__)('Source')
|
||||||
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItemsChoice, {
|
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItemsChoice, {
|
||||||
choices: patternSourceMenuOptions,
|
choices: patternSourceMenuOptions,
|
||||||
onSelect: value => {
|
onSelect: value => {
|
||||||
@ -28424,6 +28499,12 @@ function BlockPatternsSyncFilter({
|
|||||||
scrollContainerRef.current?.scrollTo(0, 0);
|
scrollContainerRef.current?.scrollTo(0, 0);
|
||||||
},
|
},
|
||||||
value: patternSyncFilter
|
value: patternSyncFilter
|
||||||
|
})), (0,external_wp_element_namespaceObject.createElement)("div", {
|
||||||
|
className: "block-editor-tool-selector__help"
|
||||||
|
}, (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Patterns are available from the <Link>WordPress.org Pattern Directory</Link>, bundled in the active theme, or created by users on this site. Only patterns created on this site can be synced.'), {
|
||||||
|
Link: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ExternalLink, {
|
||||||
|
href: (0,external_wp_i18n_namespaceObject.__)('https://wordpress.org/patterns/')
|
||||||
|
})
|
||||||
})))));
|
})))));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28615,7 +28696,7 @@ function BlockPatternsCategoryPanel({
|
|||||||
setPatternSourceFilter: onSetPatternSourceFilter,
|
setPatternSourceFilter: onSetPatternSourceFilter,
|
||||||
scrollContainerRef: scrollContainerRef,
|
scrollContainerRef: scrollContainerRef,
|
||||||
category: category
|
category: category
|
||||||
})), category.description && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalText, null, category.description), !currentCategoryPatterns.length && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalText, {
|
})), !currentCategoryPatterns.length && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalText, {
|
||||||
variant: "muted",
|
variant: "muted",
|
||||||
className: "block-editor-inserter__patterns-category-no-results"
|
className: "block-editor-inserter__patterns-category-no-results"
|
||||||
}, (0,external_wp_i18n_namespaceObject.__)('No results found'))), currentCategoryPatterns.length > 0 && (0,external_wp_element_namespaceObject.createElement)(block_patterns_list, {
|
}, (0,external_wp_i18n_namespaceObject.__)('No results found'))), currentCategoryPatterns.length > 0 && (0,external_wp_element_namespaceObject.createElement)(block_patterns_list, {
|
||||||
@ -28694,8 +28775,9 @@ function BlockPatternsTabs({
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/** @typedef {import('./api').InserterMediaRequest} InserterMediaRequest */
|
|
||||||
/** @typedef {import('./api').InserterMediaItem} InserterMediaItem */
|
/** @typedef {import('../../../store/actions').InserterMediaRequest} InserterMediaRequest */
|
||||||
|
/** @typedef {import('../../../store/actions').InserterMediaItem} InserterMediaItem */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Fetches media items based on the provided category.
|
* Fetches media items based on the provided category.
|
||||||
@ -28737,38 +28819,9 @@ function useMediaResults(category, query = {}) {
|
|||||||
isLoading
|
isLoading
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
function useInserterMediaCategories() {
|
|
||||||
const {
|
|
||||||
inserterMediaCategories,
|
|
||||||
allowedMimeTypes,
|
|
||||||
enableOpenverseMediaCategory
|
|
||||||
} = (0,external_wp_data_namespaceObject.useSelect)(select => {
|
|
||||||
const settings = select(store).getSettings();
|
|
||||||
return {
|
|
||||||
inserterMediaCategories: settings.inserterMediaCategories,
|
|
||||||
allowedMimeTypes: settings.allowedMimeTypes,
|
|
||||||
enableOpenverseMediaCategory: settings.enableOpenverseMediaCategory
|
|
||||||
};
|
|
||||||
}, []);
|
|
||||||
// The allowed `mime_types` can be altered by `upload_mimes` filter and restrict
|
|
||||||
// some of them. In this case we shouldn't add the category to the available media
|
|
||||||
// categories list in the inserter.
|
|
||||||
const allowedCategories = (0,external_wp_element_namespaceObject.useMemo)(() => {
|
|
||||||
if (!inserterMediaCategories || !allowedMimeTypes) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
return inserterMediaCategories.filter(category => {
|
|
||||||
// Check if Openverse category is enabled.
|
|
||||||
if (!enableOpenverseMediaCategory && category.name === 'openverse') {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return Object.values(allowedMimeTypes).some(mimeType => mimeType.startsWith(`${category.mediaType}/`));
|
|
||||||
});
|
|
||||||
}, [inserterMediaCategories, allowedMimeTypes, enableOpenverseMediaCategory]);
|
|
||||||
return allowedCategories;
|
|
||||||
}
|
|
||||||
function useMediaCategories(rootClientId) {
|
function useMediaCategories(rootClientId) {
|
||||||
const [categories, setCategories] = (0,external_wp_element_namespaceObject.useState)([]);
|
const [categories, setCategories] = (0,external_wp_element_namespaceObject.useState)([]);
|
||||||
|
const inserterMediaCategories = (0,external_wp_data_namespaceObject.useSelect)(select => unlock(select(store)).getInserterMediaCategories(), []);
|
||||||
const {
|
const {
|
||||||
canInsertImage,
|
canInsertImage,
|
||||||
canInsertVideo,
|
canInsertVideo,
|
||||||
@ -28783,7 +28836,6 @@ function useMediaCategories(rootClientId) {
|
|||||||
canInsertAudio: canInsertBlockType('core/audio', rootClientId)
|
canInsertAudio: canInsertBlockType('core/audio', rootClientId)
|
||||||
};
|
};
|
||||||
}, [rootClientId]);
|
}, [rootClientId]);
|
||||||
const inserterMediaCategories = useInserterMediaCategories();
|
|
||||||
(0,external_wp_element_namespaceObject.useEffect)(() => {
|
(0,external_wp_element_namespaceObject.useEffect)(() => {
|
||||||
(async () => {
|
(async () => {
|
||||||
const _categories = [];
|
const _categories = [];
|
||||||
@ -47405,6 +47457,7 @@ const ListViewBlockContents = (0,external_wp_element_namespaceObject.forwardRef)
|
|||||||
* WordPress dependencies
|
* WordPress dependencies
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
const getBlockPositionDescription = (position, siblingCount, level) => (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: The numerical position of the block. 2: The total number of blocks. 3. The level of nesting for the block. */
|
const getBlockPositionDescription = (position, siblingCount, level) => (0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: The numerical position of the block. 2: The total number of blocks. 3. The level of nesting for the block. */
|
||||||
(0,external_wp_i18n_namespaceObject.__)('Block %1$d of %2$d, Level %3$d'), position, siblingCount, level);
|
(0,external_wp_i18n_namespaceObject.__)('Block %1$d of %2$d, Level %3$d'), position, siblingCount, level);
|
||||||
|
|
||||||
@ -47444,6 +47497,39 @@ function getCommonDepthClientIds(startId, endId, startParents, endParents) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shift focus to the list view item associated with a particular clientId.
|
||||||
|
*
|
||||||
|
* @typedef {import('@wordpress/element').RefObject} RefObject
|
||||||
|
*
|
||||||
|
* @param {string} focusClientId The client ID of the block to focus.
|
||||||
|
* @param {RefObject<HTMLElement>} treeGridElementRef The container element to search within.
|
||||||
|
*/
|
||||||
|
function focusListItem(focusClientId, treeGridElementRef) {
|
||||||
|
const getFocusElement = () => {
|
||||||
|
const row = treeGridElementRef.current?.querySelector(`[role=row][data-block="${focusClientId}"]`);
|
||||||
|
if (!row) return null;
|
||||||
|
// Focus the first focusable in the row, which is the ListViewBlockSelectButton.
|
||||||
|
return external_wp_dom_namespaceObject.focus.focusable.find(row)[0];
|
||||||
|
};
|
||||||
|
let focusElement = getFocusElement();
|
||||||
|
if (focusElement) {
|
||||||
|
focusElement.focus();
|
||||||
|
} else {
|
||||||
|
// The element hasn't been painted yet. Defer focusing on the next frame.
|
||||||
|
// This could happen when all blocks have been deleted and the default block
|
||||||
|
// hasn't been added to the editor yet.
|
||||||
|
window.requestAnimationFrame(() => {
|
||||||
|
focusElement = getFocusElement();
|
||||||
|
|
||||||
|
// Ignore if the element still doesn't exist.
|
||||||
|
if (focusElement) {
|
||||||
|
focusElement.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/block.js
|
;// CONCATENATED MODULE: ./node_modules/@wordpress/block-editor/build-module/components/list-view/block.js
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -47463,7 +47549,6 @@ function getCommonDepthClientIds(startId, endId, startParents, endParents) {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal dependencies
|
* Internal dependencies
|
||||||
*/
|
*/
|
||||||
@ -47529,7 +47614,6 @@ function ListViewBlock({
|
|||||||
// translators: %s: The title of the block.
|
// translators: %s: The title of the block.
|
||||||
(0,external_wp_i18n_namespaceObject.__)('Options for %s'), blockTitle);
|
(0,external_wp_i18n_namespaceObject.__)('Options for %s'), blockTitle);
|
||||||
const {
|
const {
|
||||||
isTreeGridMounted,
|
|
||||||
expand,
|
expand,
|
||||||
collapse,
|
collapse,
|
||||||
BlockSettingsMenu,
|
BlockSettingsMenu,
|
||||||
@ -47547,15 +47631,6 @@ function ListViewBlock({
|
|||||||
'is-visible': isHovered || isFirstSelectedBlock
|
'is-visible': isHovered || isFirstSelectedBlock
|
||||||
});
|
});
|
||||||
|
|
||||||
// If ListView has experimental features related to the Persistent List View,
|
|
||||||
// only focus the selected list item on mount; otherwise the list would always
|
|
||||||
// try to steal the focus from the editor canvas.
|
|
||||||
(0,external_wp_element_namespaceObject.useEffect)(() => {
|
|
||||||
if (!isTreeGridMounted && isSelected) {
|
|
||||||
cellRef.current.focus();
|
|
||||||
}
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
// If multiple blocks are selected, deselect all blocks when the user
|
// If multiple blocks are selected, deselect all blocks when the user
|
||||||
// presses the escape key.
|
// presses the escape key.
|
||||||
const onKeyDown = event => {
|
const onKeyDown = event => {
|
||||||
@ -47581,27 +47656,7 @@ function ListViewBlock({
|
|||||||
if (shouldSelectBlock) {
|
if (shouldSelectBlock) {
|
||||||
selectBlock(undefined, focusClientId, null, null);
|
selectBlock(undefined, focusClientId, null, null);
|
||||||
}
|
}
|
||||||
const getFocusElement = () => {
|
focusListItem(focusClientId, treeGridElementRef);
|
||||||
const row = treeGridElementRef.current?.querySelector(`[role=row][data-block="${focusClientId}"]`);
|
|
||||||
if (!row) return null;
|
|
||||||
// Focus the first focusable in the row, which is the ListViewBlockSelectButton.
|
|
||||||
return external_wp_dom_namespaceObject.focus.focusable.find(row)[0];
|
|
||||||
};
|
|
||||||
let focusElement = getFocusElement();
|
|
||||||
if (focusElement) {
|
|
||||||
focusElement.focus();
|
|
||||||
} else {
|
|
||||||
// The element hasn't been painted yet. Defer focusing on the next frame.
|
|
||||||
// This could happen when all blocks have been deleted and the default block
|
|
||||||
// hasn't been added to the editor yet.
|
|
||||||
window.requestAnimationFrame(() => {
|
|
||||||
focusElement = getFocusElement();
|
|
||||||
// Ignore if the element still doesn't exist.
|
|
||||||
if (focusElement) {
|
|
||||||
focusElement.focus();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}, [selectBlock, treeGridElementRef]);
|
}, [selectBlock, treeGridElementRef]);
|
||||||
const toggleExpanded = (0,external_wp_element_namespaceObject.useCallback)(event => {
|
const toggleExpanded = (0,external_wp_element_namespaceObject.useCallback)(event => {
|
||||||
// Prevent shift+click from opening link in a new window when toggling.
|
// Prevent shift+click from opening link in a new window when toggling.
|
||||||
@ -47862,7 +47917,14 @@ function ListViewBranch(props) {
|
|||||||
// but asynchronous for any other block.
|
// but asynchronous for any other block.
|
||||||
const isSelected = isClientIdSelected(clientId, selectedClientIds);
|
const isSelected = isClientIdSelected(clientId, selectedClientIds);
|
||||||
const isSelectedBranch = isBranchSelected || isSelected && hasNestedBlocks;
|
const isSelectedBranch = isBranchSelected || isSelected && hasNestedBlocks;
|
||||||
const showBlock = isDragged || blockInView || isSelected || isBranchDragged;
|
|
||||||
|
// To avoid performance issues, we only render blocks that are in view,
|
||||||
|
// or blocks that are selected or dragged. If a block is selected,
|
||||||
|
// it is only counted if it is the first of the block selection.
|
||||||
|
// This prevents the entire tree from being rendered when a branch is
|
||||||
|
// selected, or a user selects all blocks, while still enabling scroll
|
||||||
|
// into view behavior when selecting a block or opening the list view.
|
||||||
|
const showBlock = isDragged || blockInView || isBranchDragged || isSelected && clientId === selectedClientIds[0];
|
||||||
return (0,external_wp_element_namespaceObject.createElement)(external_wp_data_namespaceObject.AsyncModeProvider, {
|
return (0,external_wp_element_namespaceObject.createElement)(external_wp_data_namespaceObject.AsyncModeProvider, {
|
||||||
key: clientId,
|
key: clientId,
|
||||||
value: !isSelected
|
value: !isSelected
|
||||||
@ -49720,6 +49782,7 @@ function BlockSettingsDropdown({
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const expanded = (state, action) => {
|
const expanded = (state, action) => {
|
||||||
if (Array.isArray(action.clientIds)) {
|
if (Array.isArray(action.clientIds)) {
|
||||||
return {
|
return {
|
||||||
@ -49813,7 +49876,6 @@ function ListViewComponent({
|
|||||||
});
|
});
|
||||||
const elementRef = (0,external_wp_element_namespaceObject.useRef)();
|
const elementRef = (0,external_wp_element_namespaceObject.useRef)();
|
||||||
const treeGridRef = (0,external_wp_compose_namespaceObject.useMergeRefs)([elementRef, dropZoneRef, ref]);
|
const treeGridRef = (0,external_wp_compose_namespaceObject.useMergeRefs)([elementRef, dropZoneRef, ref]);
|
||||||
const isMounted = (0,external_wp_element_namespaceObject.useRef)(false);
|
|
||||||
const [insertedBlock, setInsertedBlock] = (0,external_wp_element_namespaceObject.useState)(null);
|
const [insertedBlock, setInsertedBlock] = (0,external_wp_element_namespaceObject.useState)(null);
|
||||||
const {
|
const {
|
||||||
setSelectedTreeId
|
setSelectedTreeId
|
||||||
@ -49835,7 +49897,13 @@ function ListViewComponent({
|
|||||||
}
|
}
|
||||||
}, [setSelectedTreeId, updateBlockSelection, onSelect, getBlock]);
|
}, [setSelectedTreeId, updateBlockSelection, onSelect, getBlock]);
|
||||||
(0,external_wp_element_namespaceObject.useEffect)(() => {
|
(0,external_wp_element_namespaceObject.useEffect)(() => {
|
||||||
isMounted.current = true;
|
// If a blocks are already selected when the list view is initially
|
||||||
|
// mounted, shift focus to the first selected block.
|
||||||
|
if (selectedClientIds?.length) {
|
||||||
|
focusListItem(selectedClientIds[0], elementRef);
|
||||||
|
}
|
||||||
|
// Disable reason: Only focus on the selected item when the list view is mounted.
|
||||||
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||||
}, []);
|
}, []);
|
||||||
const expand = (0,external_wp_element_namespaceObject.useCallback)(clientId => {
|
const expand = (0,external_wp_element_namespaceObject.useCallback)(clientId => {
|
||||||
if (!clientId) {
|
if (!clientId) {
|
||||||
@ -49867,7 +49935,6 @@ function ListViewComponent({
|
|||||||
}
|
}
|
||||||
}, [updateBlockSelection]);
|
}, [updateBlockSelection]);
|
||||||
const contextValue = (0,external_wp_element_namespaceObject.useMemo)(() => ({
|
const contextValue = (0,external_wp_element_namespaceObject.useMemo)(() => ({
|
||||||
isTreeGridMounted: isMounted.current,
|
|
||||||
draggedClientIds,
|
draggedClientIds,
|
||||||
expandedState,
|
expandedState,
|
||||||
expand,
|
expand,
|
||||||
@ -50255,7 +50322,6 @@ function useStylesForBlocks({
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal dependencies
|
* Internal dependencies
|
||||||
*/
|
*/
|
||||||
@ -50305,7 +50371,7 @@ function BlockStyles({
|
|||||||
}, (0,external_wp_element_namespaceObject.createElement)("div", {
|
}, (0,external_wp_element_namespaceObject.createElement)("div", {
|
||||||
className: "block-editor-block-styles__variants"
|
className: "block-editor-block-styles__variants"
|
||||||
}, stylesToRender.map(style => {
|
}, stylesToRender.map(style => {
|
||||||
const buttonText = style.isDefault ? (0,external_wp_i18n_namespaceObject.__)('Default') : style.label || style.name;
|
const buttonText = style.label || style.name;
|
||||||
return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
|
return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
|
||||||
__next40pxDefaultSize: true,
|
__next40pxDefaultSize: true,
|
||||||
className: classnames_default()('block-editor-block-styles__item', {
|
className: classnames_default()('block-editor-block-styles__item', {
|
||||||
|
4
wp-includes/js/dist/block-editor.min.js
vendored
4
wp-includes/js/dist/block-editor.min.js
vendored
File diff suppressed because one or more lines are too long
46
wp-includes/js/dist/block-library.js
vendored
46
wp-includes/js/dist/block-library.js
vendored
@ -13098,7 +13098,7 @@ function CoverInspectorControls({
|
|||||||
const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
|
const colorGradientSettings = (0,external_wp_blockEditor_namespaceObject.__experimentalUseMultipleOriginColorsAndGradients)();
|
||||||
const htmlElementMessages = {
|
const htmlElementMessages = {
|
||||||
header: (0,external_wp_i18n_namespaceObject.__)('The <header> element should represent introductory content, typically a group of introductory or navigational aids.'),
|
header: (0,external_wp_i18n_namespaceObject.__)('The <header> element should represent introductory content, typically a group of introductory or navigational aids.'),
|
||||||
main: (0,external_wp_i18n_namespaceObject.__)('The <main> element should be used for the primary content of your document only. '),
|
main: (0,external_wp_i18n_namespaceObject.__)('The <main> element should be used for the primary content of your document only.'),
|
||||||
section: (0,external_wp_i18n_namespaceObject.__)("The <section> element should represent a standalone portion of the document that can't be better represented by another element."),
|
section: (0,external_wp_i18n_namespaceObject.__)("The <section> element should represent a standalone portion of the document that can't be better represented by another element."),
|
||||||
article: (0,external_wp_i18n_namespaceObject.__)('The <article> element should represent a self-contained, syndicatable portion of the document.'),
|
article: (0,external_wp_i18n_namespaceObject.__)('The <article> element should represent a self-contained, syndicatable portion of the document.'),
|
||||||
aside: (0,external_wp_i18n_namespaceObject.__)("The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content."),
|
aside: (0,external_wp_i18n_namespaceObject.__)("The <aside> element should represent a portion of a document whose content is only indirectly related to the document's main content."),
|
||||||
@ -15146,6 +15146,7 @@ class EmbedPreview extends external_wp_element_namespaceObject.Component {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const EmbedEdit = props => {
|
const EmbedEdit = props => {
|
||||||
const {
|
const {
|
||||||
attributes: {
|
attributes: {
|
||||||
@ -15244,6 +15245,22 @@ const EmbedEdit = props => {
|
|||||||
});
|
});
|
||||||
}, [preview?.html, attributesUrl, cannotEmbed, fetching]);
|
}, [preview?.html, attributesUrl, cannotEmbed, fetching]);
|
||||||
|
|
||||||
|
// Try a different provider in case the embed url is not supported.
|
||||||
|
(0,external_wp_element_namespaceObject.useEffect)(() => {
|
||||||
|
if (!cannotEmbed || fetching || !url) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Until X provider is supported in WordPress, as a workaround we use Twitter provider.
|
||||||
|
if ((0,external_wp_url_namespaceObject.getAuthority)(url) === 'x.com') {
|
||||||
|
const newURL = new URL(url);
|
||||||
|
newURL.host = 'twitter.com';
|
||||||
|
setAttributes({
|
||||||
|
url: newURL.toString()
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, [url, cannotEmbed, fetching, setAttributes]);
|
||||||
|
|
||||||
// Handle incoming preview.
|
// Handle incoming preview.
|
||||||
(0,external_wp_element_namespaceObject.useEffect)(() => {
|
(0,external_wp_element_namespaceObject.useEffect)(() => {
|
||||||
if (preview && !isEditingURL) {
|
if (preview && !isEditingURL) {
|
||||||
@ -24104,7 +24121,7 @@ function image_Image({
|
|||||||
});
|
});
|
||||||
const lightboxSetting = (0,external_wp_blockEditor_namespaceObject.useSetting)('lightbox');
|
const lightboxSetting = (0,external_wp_blockEditor_namespaceObject.useSetting)('lightbox');
|
||||||
const showLightboxToggle = !!lightbox || lightboxSetting?.allowEditing === true;
|
const showLightboxToggle = !!lightbox || lightboxSetting?.allowEditing === true;
|
||||||
const lightboxChecked = lightbox?.enabled || !lightbox && lightboxSetting?.enabled;
|
const lightboxChecked = !!lightbox?.enabled || !lightbox && !!lightboxSetting?.enabled;
|
||||||
const dimensionsControl = (0,external_wp_element_namespaceObject.createElement)(DimensionsTool, {
|
const dimensionsControl = (0,external_wp_element_namespaceObject.createElement)(DimensionsTool, {
|
||||||
value: {
|
value: {
|
||||||
width,
|
width,
|
||||||
@ -25942,14 +25959,18 @@ function LatestPostsEdit({
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
const needsReadMore = excerptLength < excerpt.trim().split(' ').length && post.excerpt.raw === '';
|
const needsReadMore = excerptLength < excerpt.trim().split(' ').length && post.excerpt.raw === '';
|
||||||
const postExcerpt = needsReadMore ? (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, excerpt.trim().split(' ', excerptLength).join(' '), (0,external_wp_element_namespaceObject.createInterpolateElement)( /* translators: excerpt truncation character, default … */
|
const postExcerpt = needsReadMore ? (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, excerpt.trim().split(' ', excerptLength).join(' '), (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.sprintf)( /* translators: 1: The static string "Read more", 2: The post title only visible to screen readers. */
|
||||||
(0,external_wp_i18n_namespaceObject.__)(' … <a>Read more</a>'), {
|
(0,external_wp_i18n_namespaceObject.__)('… <a>%1$s<span>: %2$s</span></a>'), (0,external_wp_i18n_namespaceObject.__)('Read more'), titleTrimmed || (0,external_wp_i18n_namespaceObject.__)('(no title)')), {
|
||||||
a:
|
a:
|
||||||
// eslint-disable-next-line jsx-a11y/anchor-has-content
|
// eslint-disable-next-line jsx-a11y/anchor-has-content
|
||||||
(0,external_wp_element_namespaceObject.createElement)("a", {
|
(0,external_wp_element_namespaceObject.createElement)("a", {
|
||||||
|
className: "wp-block-latest-posts__read-more",
|
||||||
href: post.link,
|
href: post.link,
|
||||||
rel: "noopener noreferrer",
|
rel: "noopener noreferrer",
|
||||||
onClick: showRedirectionPreventedNotice
|
onClick: showRedirectionPreventedNotice
|
||||||
|
}),
|
||||||
|
span: (0,external_wp_element_namespaceObject.createElement)("span", {
|
||||||
|
className: "screen-reader-text"
|
||||||
})
|
})
|
||||||
})) : excerpt;
|
})) : excerpt;
|
||||||
return (0,external_wp_element_namespaceObject.createElement)("li", {
|
return (0,external_wp_element_namespaceObject.createElement)("li", {
|
||||||
@ -29175,7 +29196,7 @@ function MediaTextEdit({
|
|||||||
}), mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
|
}), mediaType === 'image' && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
|
||||||
__nextHasNoMarginBottom: true,
|
__nextHasNoMarginBottom: true,
|
||||||
label: (0,external_wp_i18n_namespaceObject.__)('Crop image to fill entire column'),
|
label: (0,external_wp_i18n_namespaceObject.__)('Crop image to fill entire column'),
|
||||||
checked: imageFill,
|
checked: !!imageFill,
|
||||||
onChange: () => setAttributes({
|
onChange: () => setAttributes({
|
||||||
imageFill: !imageFill
|
imageFill: !imageFill
|
||||||
})
|
})
|
||||||
@ -30791,7 +30812,8 @@ function NavigationInnerBlocks({
|
|||||||
// Show the appender while dragging to allow inserting element between item and the appender.
|
// Show the appender while dragging to allow inserting element between item and the appender.
|
||||||
parentOrChildHasSelection ? external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender : false,
|
parentOrChildHasSelection ? external_wp_blockEditor_namespaceObject.InnerBlocks.ButtonBlockAppender : false,
|
||||||
placeholder: showPlaceholder ? placeholder : undefined,
|
placeholder: showPlaceholder ? placeholder : undefined,
|
||||||
__experimentalCaptureToolbars: true
|
__experimentalCaptureToolbars: true,
|
||||||
|
__unstableDisableLayoutClassNames: true
|
||||||
});
|
});
|
||||||
return (0,external_wp_element_namespaceObject.createElement)("div", {
|
return (0,external_wp_element_namespaceObject.createElement)("div", {
|
||||||
...innerBlocksProps
|
...innerBlocksProps
|
||||||
@ -31786,13 +31808,16 @@ const ManageMenusButton = ({
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function DeletedNavigationWarning({
|
function DeletedNavigationWarning({
|
||||||
onCreateNew
|
onCreateNew
|
||||||
}) {
|
}) {
|
||||||
return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_i18n_namespaceObject.__)('Navigation menu has been deleted or is unavailable. '), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
|
return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.Warning, null, (0,external_wp_element_namespaceObject.createInterpolateElement)((0,external_wp_i18n_namespaceObject.__)('Navigation menu has been deleted or is unavailable. <button>Create a new menu?</button>'), {
|
||||||
|
button: (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Button, {
|
||||||
onClick: onCreateNew,
|
onClick: onCreateNew,
|
||||||
variant: "link"
|
variant: "link"
|
||||||
}, (0,external_wp_i18n_namespaceObject.__)('Create a new menu?')));
|
})
|
||||||
|
}));
|
||||||
}
|
}
|
||||||
/* harmony default export */ var deleted_navigation_warning = (DeletedNavigationWarning);
|
/* harmony default export */ var deleted_navigation_warning = (DeletedNavigationWarning);
|
||||||
|
|
||||||
@ -32492,7 +32517,8 @@ function Navigation({
|
|||||||
// These props are used by the navigation editor to override specific
|
// These props are used by the navigation editor to override specific
|
||||||
// navigation block settings.
|
// navigation block settings.
|
||||||
hasSubmenuIndicatorSetting = true,
|
hasSubmenuIndicatorSetting = true,
|
||||||
customPlaceholder: CustomPlaceholder = null
|
customPlaceholder: CustomPlaceholder = null,
|
||||||
|
__unstableLayoutClassNames: layoutClassNames
|
||||||
}) {
|
}) {
|
||||||
const {
|
const {
|
||||||
openSubmenusOnClick,
|
openSubmenusOnClick,
|
||||||
@ -32656,7 +32682,7 @@ function Navigation({
|
|||||||
[(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor?.slug)]: !!backgroundColor?.slug,
|
[(0,external_wp_blockEditor_namespaceObject.getColorClassName)('background-color', backgroundColor?.slug)]: !!backgroundColor?.slug,
|
||||||
[`has-text-decoration-${textDecoration}`]: textDecoration,
|
[`has-text-decoration-${textDecoration}`]: textDecoration,
|
||||||
'block-editor-block-content-overlay': hasBlockOverlay
|
'block-editor-block-content-overlay': hasBlockOverlay
|
||||||
}),
|
}, layoutClassNames),
|
||||||
style: {
|
style: {
|
||||||
color: !textColor?.slug && textColor?.color,
|
color: !textColor?.slug && textColor?.color,
|
||||||
backgroundColor: !backgroundColor?.slug && backgroundColor?.color
|
backgroundColor: !backgroundColor?.slug && backgroundColor?.color
|
||||||
|
2
wp-includes/js/dist/block-library.min.js
vendored
2
wp-includes/js/dist/block-library.min.js
vendored
File diff suppressed because one or more lines are too long
232
wp-includes/js/dist/edit-site.js
vendored
232
wp-includes/js/dist/edit-site.js
vendored
@ -10432,7 +10432,7 @@ const PAGE_CONTENT_BLOCK_TYPES = {
|
|||||||
};
|
};
|
||||||
const POST_TYPE_LABELS = {
|
const POST_TYPE_LABELS = {
|
||||||
[TEMPLATE_POST_TYPE]: (0,external_wp_i18n_namespaceObject.__)('Template'),
|
[TEMPLATE_POST_TYPE]: (0,external_wp_i18n_namespaceObject.__)('Template'),
|
||||||
[TEMPLATE_PART_POST_TYPE]: (0,external_wp_i18n_namespaceObject.__)('Template Part'),
|
[TEMPLATE_PART_POST_TYPE]: (0,external_wp_i18n_namespaceObject.__)('Template part'),
|
||||||
[PATTERN_TYPES.user]: (0,external_wp_i18n_namespaceObject.__)('Pattern'),
|
[PATTERN_TYPES.user]: (0,external_wp_i18n_namespaceObject.__)('Pattern'),
|
||||||
[NAVIGATION_POST_TYPE]: (0,external_wp_i18n_namespaceObject.__)('Navigation')
|
[NAVIGATION_POST_TYPE]: (0,external_wp_i18n_namespaceObject.__)('Navigation')
|
||||||
};
|
};
|
||||||
@ -12254,14 +12254,13 @@ function isSaveViewOpened(state) {
|
|||||||
* @param {Object} state Global application state.
|
* @param {Object} state Global application state.
|
||||||
* @return {Array} Template parts and their blocks in an array.
|
* @return {Array} Template parts and their blocks in an array.
|
||||||
*/
|
*/
|
||||||
const getCurrentTemplateTemplateParts = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => state => {
|
const getCurrentTemplateTemplateParts = (0,external_wp_data_namespaceObject.createRegistrySelector)(select => () => {
|
||||||
const templateType = getEditedPostType(state);
|
|
||||||
const templateId = getEditedPostId(state);
|
|
||||||
const template = select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', templateType, templateId);
|
|
||||||
const templateParts = select(external_wp_coreData_namespaceObject.store).getEntityRecords('postType', TEMPLATE_PART_POST_TYPE, {
|
const templateParts = select(external_wp_coreData_namespaceObject.store).getEntityRecords('postType', TEMPLATE_PART_POST_TYPE, {
|
||||||
per_page: -1
|
per_page: -1
|
||||||
});
|
});
|
||||||
return memoizedGetFilteredTemplatePartBlocks(template.blocks, templateParts);
|
const clientIds = select(external_wp_blockEditor_namespaceObject.store).__experimentalGetGlobalBlocksByName('core/template-part');
|
||||||
|
const blocks = select(external_wp_blockEditor_namespaceObject.store).getBlocksByClientId(clientIds);
|
||||||
|
return memoizedGetFilteredTemplatePartBlocks(blocks, templateParts);
|
||||||
});
|
});
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -16998,6 +16997,20 @@ const symbolFilled = (0,external_wp_element_namespaceObject.createElement)(exter
|
|||||||
}));
|
}));
|
||||||
/* harmony default export */ var symbol_filled = (symbolFilled);
|
/* harmony default export */ var symbol_filled = (symbolFilled);
|
||||||
|
|
||||||
|
;// CONCATENATED MODULE: ./node_modules/@wordpress/icons/build-module/library/upload.js
|
||||||
|
|
||||||
|
/**
|
||||||
|
* WordPress dependencies
|
||||||
|
*/
|
||||||
|
|
||||||
|
const upload = (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.SVG, {
|
||||||
|
xmlns: "http://www.w3.org/2000/svg",
|
||||||
|
viewBox: "0 0 24 24"
|
||||||
|
}, (0,external_wp_element_namespaceObject.createElement)(external_wp_primitives_namespaceObject.Path, {
|
||||||
|
d: "M18.5 15v3.5H13V6.7l4.5 4.1 1-1.1-6.2-5.8-5.8 5.8 1 1.1 4-4v11.7h-6V15H4v5h16v-5z"
|
||||||
|
}));
|
||||||
|
/* harmony default export */ var library_upload = (upload);
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/utils/template-part-create.js
|
;// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/utils/template-part-create.js
|
||||||
/**
|
/**
|
||||||
* External dependencies
|
* External dependencies
|
||||||
@ -17789,7 +17802,7 @@ function AddNewPattern() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
controls.push({
|
controls.push({
|
||||||
icon: library_symbol,
|
icon: library_upload,
|
||||||
onClick: () => {
|
onClick: () => {
|
||||||
patternUploadInputRef.current.click();
|
patternUploadInputRef.current.click();
|
||||||
},
|
},
|
||||||
@ -18561,6 +18574,29 @@ function NavigationMenuEditor({
|
|||||||
})));
|
})));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
;// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar-navigation-screen-pattern/use-navigation-menu-title.js
|
||||||
|
/**
|
||||||
|
* WordPress dependencies
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Internal dependencies
|
||||||
|
*/
|
||||||
|
|
||||||
|
function useNavigationMenuTitle(id) {
|
||||||
|
return (0,external_wp_data_namespaceObject.useSelect)(select => {
|
||||||
|
if (!id) {
|
||||||
|
return undefined;
|
||||||
|
}
|
||||||
|
const editedRecord = select(external_wp_coreData_namespaceObject.store).getEditedEntityRecord('postType', NAVIGATION_POST_TYPE, id);
|
||||||
|
|
||||||
|
// Do not display a 'trashed' navigation menu.
|
||||||
|
return editedRecord.status === 'trash' ? undefined : editedRecord.title;
|
||||||
|
}, [id]);
|
||||||
|
}
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js
|
;// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar-navigation-screen-pattern/template-part-navigation-menu.js
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -18569,7 +18605,6 @@ function NavigationMenuEditor({
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal dependencies
|
* Internal dependencies
|
||||||
*/
|
*/
|
||||||
@ -18578,8 +18613,10 @@ function NavigationMenuEditor({
|
|||||||
function TemplatePartNavigationMenu({
|
function TemplatePartNavigationMenu({
|
||||||
id
|
id
|
||||||
}) {
|
}) {
|
||||||
const [title] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', NAVIGATION_POST_TYPE, 'title', id);
|
const title = useNavigationMenuTitle(id);
|
||||||
if (!id) return null;
|
if (!id || title === undefined) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHeading, {
|
return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.__experimentalHeading, {
|
||||||
className: "edit-site-sidebar-navigation-screen-template-part-navigation-menu__title",
|
className: "edit-site-sidebar-navigation-screen-template-part-navigation-menu__title",
|
||||||
size: "11",
|
size: "11",
|
||||||
@ -18597,22 +18634,24 @@ function TemplatePartNavigationMenu({
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Internal dependencies
|
* Internal dependencies
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function TemplatePartNavigationMenuListItem({
|
function TemplatePartNavigationMenuListItem({
|
||||||
id
|
id
|
||||||
}) {
|
}) {
|
||||||
const [title] = (0,external_wp_coreData_namespaceObject.useEntityProp)('postType', NAVIGATION_POST_TYPE, 'title', id);
|
const title = useNavigationMenuTitle(id);
|
||||||
const linkInfo = useLink({
|
const linkInfo = useLink({
|
||||||
postId: id,
|
postId: id,
|
||||||
postType: NAVIGATION_POST_TYPE
|
postType: NAVIGATION_POST_TYPE
|
||||||
});
|
});
|
||||||
if (!id) return null;
|
if (!id || title === undefined) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
return (0,external_wp_element_namespaceObject.createElement)(SidebarNavigationItem, {
|
return (0,external_wp_element_namespaceObject.createElement)(SidebarNavigationItem, {
|
||||||
withChevron: true,
|
withChevron: true,
|
||||||
...linkInfo
|
...linkInfo
|
||||||
@ -18688,6 +18727,12 @@ function TemplatePartNavigationMenus({
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function getBlocksFromRecord(record) {
|
||||||
|
if (record?.blocks) {
|
||||||
|
return record?.blocks;
|
||||||
|
}
|
||||||
|
return record?.content && typeof record.content !== 'function' ? (0,external_wp_blocks_namespaceObject.parse)(record.content) : [];
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves a list of specific blocks from a given tree of blocks.
|
* Retrieves a list of specific blocks from a given tree of blocks.
|
||||||
@ -18732,7 +18777,7 @@ function useNavigationMenuContent(postType, postId) {
|
|||||||
if (postType !== TEMPLATE_PART_POST_TYPE) {
|
if (postType !== TEMPLATE_PART_POST_TYPE) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const blocks = record?.content && typeof record.content !== 'function' ? (0,external_wp_blocks_namespaceObject.parse)(record.content) : [];
|
const blocks = getBlocksFromRecord(record);
|
||||||
const navigationBlocks = getBlocksOfTypeFromBlocks('core/navigation', blocks);
|
const navigationBlocks = getBlocksOfTypeFromBlocks('core/navigation', blocks);
|
||||||
if (!navigationBlocks.length) {
|
if (!navigationBlocks.length) {
|
||||||
return;
|
return;
|
||||||
@ -21490,7 +21535,7 @@ async function resolvers_fetchInstallFonts(data) {
|
|||||||
}
|
}
|
||||||
async function resolvers_fetchUninstallFonts(fonts) {
|
async function resolvers_fetchUninstallFonts(fonts) {
|
||||||
const data = {
|
const data = {
|
||||||
fontFamilies: fonts
|
font_families: fonts
|
||||||
};
|
};
|
||||||
const config = {
|
const config = {
|
||||||
path: '/wp/v2/fonts',
|
path: '/wp/v2/fonts',
|
||||||
@ -21677,7 +21722,7 @@ function utils_makeFormDataFromFontFamilies(fontFamilies) {
|
|||||||
}
|
}
|
||||||
return family;
|
return family;
|
||||||
});
|
});
|
||||||
formData.append('fontFamilies', JSON.stringify(newFontFamilies));
|
formData.append('font_families', JSON.stringify(newFontFamilies));
|
||||||
return formData;
|
return formData;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29324,6 +29369,148 @@ function PagePanels() {
|
|||||||
}, (0,external_wp_element_namespaceObject.createElement)(PageContent, null)));
|
}, (0,external_wp_element_namespaceObject.createElement)(PageContent, null)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
;// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar-edit-mode/template-panel/replace-template-button.js
|
||||||
|
|
||||||
|
/**
|
||||||
|
* WordPress dependencies
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Internal dependencies
|
||||||
|
*/
|
||||||
|
|
||||||
|
function ReplaceTemplateButton({
|
||||||
|
onClick,
|
||||||
|
availableTemplates
|
||||||
|
}) {
|
||||||
|
const {
|
||||||
|
editEntityRecord
|
||||||
|
} = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_coreData_namespaceObject.store);
|
||||||
|
const [showModal, setShowModal] = (0,external_wp_element_namespaceObject.useState)(false);
|
||||||
|
const onClose = () => {
|
||||||
|
setShowModal(false);
|
||||||
|
};
|
||||||
|
const {
|
||||||
|
postId,
|
||||||
|
postType
|
||||||
|
} = (0,external_wp_data_namespaceObject.useSelect)(select => {
|
||||||
|
return {
|
||||||
|
postId: select(store_store).getEditedPostId(),
|
||||||
|
postType: select(store_store).getEditedPostType()
|
||||||
|
};
|
||||||
|
}, []);
|
||||||
|
const onTemplateSelect = async selectedTemplate => {
|
||||||
|
onClose(); // Close the template suggestions modal first.
|
||||||
|
onClick();
|
||||||
|
await editEntityRecord('postType', postType, postId, {
|
||||||
|
blocks: selectedTemplate.blocks,
|
||||||
|
content: (0,external_wp_blocks_namespaceObject.serialize)(selectedTemplate.blocks)
|
||||||
|
});
|
||||||
|
};
|
||||||
|
if (!availableTemplates.length || availableTemplates.length < 1) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
|
||||||
|
info: (0,external_wp_i18n_namespaceObject.__)('Replace the contents of this template with another.'),
|
||||||
|
onClick: () => setShowModal(true)
|
||||||
|
}, (0,external_wp_i18n_namespaceObject.__)('Replace template')), showModal && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.Modal, {
|
||||||
|
title: (0,external_wp_i18n_namespaceObject.__)('Choose a template'),
|
||||||
|
onRequestClose: onClose,
|
||||||
|
overlayClassName: "edit-site-template-panel__replace-template-modal",
|
||||||
|
isFullScreen: true
|
||||||
|
}, (0,external_wp_element_namespaceObject.createElement)("div", {
|
||||||
|
className: "edit-site-template-panel__replace-template-modal__content"
|
||||||
|
}, (0,external_wp_element_namespaceObject.createElement)(replace_template_button_TemplatesList, {
|
||||||
|
availableTemplates: availableTemplates,
|
||||||
|
onSelect: onTemplateSelect
|
||||||
|
}))));
|
||||||
|
}
|
||||||
|
function replace_template_button_TemplatesList({
|
||||||
|
availableTemplates,
|
||||||
|
onSelect
|
||||||
|
}) {
|
||||||
|
const shownTemplates = (0,external_wp_compose_namespaceObject.useAsyncList)(availableTemplates);
|
||||||
|
return (0,external_wp_element_namespaceObject.createElement)(external_wp_blockEditor_namespaceObject.__experimentalBlockPatternsList, {
|
||||||
|
label: (0,external_wp_i18n_namespaceObject.__)('Templates'),
|
||||||
|
blockPatterns: availableTemplates,
|
||||||
|
shownPatterns: shownTemplates,
|
||||||
|
onClickPattern: onSelect
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
;// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar-edit-mode/template-panel/hooks.js
|
||||||
|
/**
|
||||||
|
* WordPress dependencies
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Internal dependencies
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function injectThemeAttributeInBlockTemplateContent(block, currentThemeStylesheet) {
|
||||||
|
block.innerBlocks = block.innerBlocks.map(innerBlock => {
|
||||||
|
return injectThemeAttributeInBlockTemplateContent(innerBlock, currentThemeStylesheet);
|
||||||
|
});
|
||||||
|
if (block.name === 'core/template-part' && block.attributes.theme === undefined) {
|
||||||
|
block.attributes.theme = currentThemeStylesheet;
|
||||||
|
}
|
||||||
|
return block;
|
||||||
|
}
|
||||||
|
function preparePatterns(patterns, template, currentThemeStylesheet) {
|
||||||
|
// Filter out duplicates.
|
||||||
|
const filterOutDuplicatesByName = (currentItem, index, items) => index === items.findIndex(item => currentItem.name === item.name);
|
||||||
|
|
||||||
|
// Filter out core patterns.
|
||||||
|
const filterOutCorePatterns = pattern => !PATTERN_CORE_SOURCES.includes(pattern.source);
|
||||||
|
|
||||||
|
// Filter only the patterns that are compatible with the current template.
|
||||||
|
const filterCompatiblePatterns = pattern => pattern.templateTypes?.includes(template.slug);
|
||||||
|
return patterns.filter(filterOutCorePatterns && filterOutDuplicatesByName && filterCompatiblePatterns).map(pattern => ({
|
||||||
|
...pattern,
|
||||||
|
keywords: pattern.keywords || [],
|
||||||
|
type: PATTERN_TYPES.theme,
|
||||||
|
blocks: (0,external_wp_blocks_namespaceObject.parse)(pattern.content, {
|
||||||
|
__unstableSkipMigrationLogs: true
|
||||||
|
}).map(block => injectThemeAttributeInBlockTemplateContent(block, currentThemeStylesheet))
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
function useAvailablePatterns(template) {
|
||||||
|
const {
|
||||||
|
blockPatterns,
|
||||||
|
restBlockPatterns,
|
||||||
|
currentThemeStylesheet
|
||||||
|
} = (0,external_wp_data_namespaceObject.useSelect)(select => {
|
||||||
|
var _settings$__experimen;
|
||||||
|
const {
|
||||||
|
getSettings
|
||||||
|
} = unlock(select(store_store));
|
||||||
|
const settings = getSettings();
|
||||||
|
return {
|
||||||
|
blockPatterns: (_settings$__experimen = settings.__experimentalAdditionalBlockPatterns) !== null && _settings$__experimen !== void 0 ? _settings$__experimen : settings.__experimentalBlockPatterns,
|
||||||
|
restBlockPatterns: select(external_wp_coreData_namespaceObject.store).getBlockPatterns(),
|
||||||
|
currentThemeStylesheet: select(external_wp_coreData_namespaceObject.store).getCurrentTheme().stylesheet
|
||||||
|
};
|
||||||
|
}, []);
|
||||||
|
return (0,external_wp_element_namespaceObject.useMemo)(() => {
|
||||||
|
const mergedPatterns = [...(blockPatterns || []), ...(restBlockPatterns || [])];
|
||||||
|
return preparePatterns(mergedPatterns, template, currentThemeStylesheet);
|
||||||
|
}, [blockPatterns, restBlockPatterns, template, currentThemeStylesheet]);
|
||||||
|
}
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar-edit-mode/template-panel/template-actions.js
|
;// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar-edit-mode/template-panel/template-actions.js
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -29339,14 +29526,17 @@ function PagePanels() {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function Actions({
|
function Actions({
|
||||||
template
|
template
|
||||||
}) {
|
}) {
|
||||||
|
const availablePatterns = useAvailablePatterns(template);
|
||||||
const {
|
const {
|
||||||
revertTemplate
|
revertTemplate
|
||||||
} = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
|
} = (0,external_wp_data_namespaceObject.useDispatch)(store_store);
|
||||||
const isRevertable = isTemplateRevertable(template);
|
const isRevertable = isTemplateRevertable(template);
|
||||||
if (!isRevertable) {
|
if (!isRevertable && (!availablePatterns.length || availablePatterns.length < 1)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DropdownMenu, {
|
return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.DropdownMenu, {
|
||||||
@ -29358,13 +29548,17 @@ function Actions({
|
|||||||
}
|
}
|
||||||
}, ({
|
}, ({
|
||||||
onClose
|
onClose
|
||||||
}) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
|
}) => (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuGroup, null, isRevertable && (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.MenuItem, {
|
||||||
info: (0,external_wp_i18n_namespaceObject.__)('Use the template as supplied by the theme.'),
|
info: (0,external_wp_i18n_namespaceObject.__)('Use the template as supplied by the theme.'),
|
||||||
onClick: () => {
|
onClick: () => {
|
||||||
revertTemplate(template);
|
revertTemplate(template);
|
||||||
onClose();
|
onClose();
|
||||||
}
|
}
|
||||||
}, (0,external_wp_i18n_namespaceObject.__)('Clear customizations'))));
|
}, (0,external_wp_i18n_namespaceObject.__)('Clear customizations')), (0,external_wp_element_namespaceObject.createElement)(ReplaceTemplateButton, {
|
||||||
|
availableTemplates: availablePatterns,
|
||||||
|
template: template,
|
||||||
|
onClick: onClose
|
||||||
|
})));
|
||||||
}
|
}
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar-edit-mode/template-panel/template-areas.js
|
;// CONCATENATED MODULE: ./node_modules/@wordpress/edit-site/build-module/components/sidebar-edit-mode/template-panel/template-areas.js
|
||||||
|
4
wp-includes/js/dist/edit-site.min.js
vendored
4
wp-includes/js/dist/edit-site.min.js
vendored
File diff suppressed because one or more lines are too long
95
wp-includes/js/dist/patterns.js
vendored
95
wp-includes/js/dist/patterns.js
vendored
@ -282,41 +282,25 @@ var external_wp_htmlEntities_namespaceObject = window["wp"]["htmlEntities"];
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const unescapeString = arg => {
|
const unescapeString = arg => {
|
||||||
return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(arg);
|
return (0,external_wp_htmlEntities_namespaceObject.decodeEntities)(arg);
|
||||||
};
|
};
|
||||||
const EMPTY_ARRAY = [];
|
|
||||||
const MAX_TERMS_SUGGESTIONS = 20;
|
|
||||||
const DEFAULT_QUERY = {
|
|
||||||
per_page: MAX_TERMS_SUGGESTIONS,
|
|
||||||
_fields: 'id,name',
|
|
||||||
context: 'view'
|
|
||||||
};
|
|
||||||
const CATEGORY_SLUG = 'wp_pattern_category';
|
const CATEGORY_SLUG = 'wp_pattern_category';
|
||||||
function CategorySelector({
|
function CategorySelector({
|
||||||
values,
|
categoryTerms,
|
||||||
onChange
|
onChange,
|
||||||
|
categoryMap
|
||||||
}) {
|
}) {
|
||||||
const [search, setSearch] = (0,external_wp_element_namespaceObject.useState)('');
|
const [search, setSearch] = (0,external_wp_element_namespaceObject.useState)('');
|
||||||
const debouncedSearch = (0,external_wp_compose_namespaceObject.useDebounce)(setSearch, 500);
|
const debouncedSearch = (0,external_wp_compose_namespaceObject.useDebounce)(setSearch, 500);
|
||||||
const {
|
|
||||||
searchResults
|
|
||||||
} = (0,external_wp_data_namespaceObject.useSelect)(select => {
|
|
||||||
const {
|
|
||||||
getEntityRecords
|
|
||||||
} = select(external_wp_coreData_namespaceObject.store);
|
|
||||||
return {
|
|
||||||
searchResults: !!search ? getEntityRecords('taxonomy', CATEGORY_SLUG, {
|
|
||||||
...DEFAULT_QUERY,
|
|
||||||
search
|
|
||||||
}) : EMPTY_ARRAY
|
|
||||||
};
|
|
||||||
}, [search]);
|
|
||||||
const suggestions = (0,external_wp_element_namespaceObject.useMemo)(() => {
|
const suggestions = (0,external_wp_element_namespaceObject.useMemo)(() => {
|
||||||
return (searchResults !== null && searchResults !== void 0 ? searchResults : []).map(term => unescapeString(term.name));
|
return Array.from(categoryMap.values()).map(category => unescapeString(category.label)).filter(category => {
|
||||||
}, [searchResults]);
|
if (search !== '') {
|
||||||
|
return category.toLowerCase().includes(search.toLowerCase());
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}).sort((a, b) => a.localeCompare(b));
|
||||||
|
}, [search, categoryMap]);
|
||||||
function handleChange(termNames) {
|
function handleChange(termNames) {
|
||||||
const uniqueTerms = termNames.reduce((terms, newTerm) => {
|
const uniqueTerms = termNames.reduce((terms, newTerm) => {
|
||||||
if (!terms.some(term => term.toLowerCase() === newTerm.toLowerCase())) {
|
if (!terms.some(term => term.toLowerCase() === newTerm.toLowerCase())) {
|
||||||
@ -326,16 +310,17 @@ function CategorySelector({
|
|||||||
}, []);
|
}, []);
|
||||||
onChange(uniqueTerms);
|
onChange(uniqueTerms);
|
||||||
}
|
}
|
||||||
return (0,external_wp_element_namespaceObject.createElement)(external_wp_element_namespaceObject.Fragment, null, (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FormTokenField, {
|
return (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.FormTokenField, {
|
||||||
className: "patterns-menu-items__convert-modal-categories",
|
className: "patterns-menu-items__convert-modal-categories",
|
||||||
value: values,
|
value: categoryTerms,
|
||||||
suggestions: suggestions,
|
suggestions: suggestions,
|
||||||
onChange: handleChange,
|
onChange: handleChange,
|
||||||
onInputChange: debouncedSearch,
|
onInputChange: debouncedSearch,
|
||||||
maxSuggestions: MAX_TERMS_SUGGESTIONS,
|
|
||||||
label: (0,external_wp_i18n_namespaceObject.__)('Categories'),
|
label: (0,external_wp_i18n_namespaceObject.__)('Categories'),
|
||||||
tokenizeOnBlur: true
|
tokenizeOnBlur: true,
|
||||||
}));
|
__experimentalExpandOnFocus: true,
|
||||||
|
__next40pxDefaultSize: true
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
;// CONCATENATED MODULE: ./node_modules/@wordpress/patterns/build-module/components/create-pattern-modal.js
|
;// CONCATENATED MODULE: ./node_modules/@wordpress/patterns/build-module/components/create-pattern-modal.js
|
||||||
@ -382,6 +367,38 @@ function CreatePatternModal({
|
|||||||
const {
|
const {
|
||||||
createErrorNotice
|
createErrorNotice
|
||||||
} = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
|
} = (0,external_wp_data_namespaceObject.useDispatch)(external_wp_notices_namespaceObject.store);
|
||||||
|
const {
|
||||||
|
corePatternCategories,
|
||||||
|
userPatternCategories
|
||||||
|
} = (0,external_wp_data_namespaceObject.useSelect)(select => {
|
||||||
|
const {
|
||||||
|
getUserPatternCategories,
|
||||||
|
getBlockPatternCategories
|
||||||
|
} = select(external_wp_coreData_namespaceObject.store);
|
||||||
|
return {
|
||||||
|
corePatternCategories: getBlockPatternCategories(),
|
||||||
|
userPatternCategories: getUserPatternCategories()
|
||||||
|
};
|
||||||
|
});
|
||||||
|
const categoryMap = (0,external_wp_element_namespaceObject.useMemo)(() => {
|
||||||
|
// Merge the user and core pattern categories and remove any duplicates.
|
||||||
|
const uniqueCategories = new Map();
|
||||||
|
[...userPatternCategories, ...corePatternCategories].forEach(category => {
|
||||||
|
if (!uniqueCategories.has(category.label) &&
|
||||||
|
// There are two core categories with `Post` label so explicitly remove the one with
|
||||||
|
// the `query` slug to avoid any confusion.
|
||||||
|
category.name !== 'query') {
|
||||||
|
// We need to store the name separately as this is used as the slug in the
|
||||||
|
// taxonomy and may vary from the label.
|
||||||
|
uniqueCategories.set(category.label, {
|
||||||
|
label: category.label,
|
||||||
|
value: category.label,
|
||||||
|
name: category.name
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return uniqueCategories;
|
||||||
|
}, [userPatternCategories, corePatternCategories]);
|
||||||
async function onCreate(patternTitle, sync) {
|
async function onCreate(patternTitle, sync) {
|
||||||
if (!title || isSaving) {
|
if (!title || isSaving) {
|
||||||
return;
|
return;
|
||||||
@ -413,9 +430,16 @@ function CreatePatternModal({
|
|||||||
*/
|
*/
|
||||||
async function findOrCreateTerm(term) {
|
async function findOrCreateTerm(term) {
|
||||||
try {
|
try {
|
||||||
const newTerm = await saveEntityRecord('taxonomy', CATEGORY_SLUG, {
|
// We need to match any existing term to the correct slug to prevent duplicates, eg.
|
||||||
|
// the core `Headers` category uses the singular `header` as the slug.
|
||||||
|
const existingTerm = categoryMap.get(term);
|
||||||
|
const termData = existingTerm ? {
|
||||||
|
name: existingTerm.label,
|
||||||
|
slug: existingTerm.name
|
||||||
|
} : {
|
||||||
name: term
|
name: term
|
||||||
}, {
|
};
|
||||||
|
const newTerm = await saveEntityRecord('taxonomy', CATEGORY_SLUG, termData, {
|
||||||
throwOnError: true
|
throwOnError: true
|
||||||
});
|
});
|
||||||
invalidateResolution('getUserPatternCategories');
|
invalidateResolution('getUserPatternCategories');
|
||||||
@ -449,8 +473,9 @@ function CreatePatternModal({
|
|||||||
placeholder: (0,external_wp_i18n_namespaceObject.__)('My pattern'),
|
placeholder: (0,external_wp_i18n_namespaceObject.__)('My pattern'),
|
||||||
className: "patterns-create-modal__name-input"
|
className: "patterns-create-modal__name-input"
|
||||||
}), (0,external_wp_element_namespaceObject.createElement)(CategorySelector, {
|
}), (0,external_wp_element_namespaceObject.createElement)(CategorySelector, {
|
||||||
values: categoryTerms,
|
categoryTerms: categoryTerms,
|
||||||
onChange: setCategoryTerms
|
onChange: setCategoryTerms,
|
||||||
|
categoryMap: categoryMap
|
||||||
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
|
}), (0,external_wp_element_namespaceObject.createElement)(external_wp_components_namespaceObject.ToggleControl, {
|
||||||
label: (0,external_wp_i18n_namespaceObject.__)('Synced'),
|
label: (0,external_wp_i18n_namespaceObject.__)('Synced'),
|
||||||
help: (0,external_wp_i18n_namespaceObject.__)('Editing the pattern will update it anywhere it is used.'),
|
help: (0,external_wp_i18n_namespaceObject.__)('Editing the pattern will update it anywhere it is used.'),
|
||||||
|
2
wp-includes/js/dist/patterns.min.js
vendored
2
wp-includes/js/dist/patterns.min.js
vendored
File diff suppressed because one or more lines are too long
@ -16,7 +16,7 @@
|
|||||||
*
|
*
|
||||||
* @global string $wp_version
|
* @global string $wp_version
|
||||||
*/
|
*/
|
||||||
$wp_version = '6.4-beta2-56807';
|
$wp_version = '6.4-beta2-56808';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
|
||||||
|
Loading…
Reference in New Issue
Block a user