Update WordPress to 5.2
This commit is contained in:
parent
489b5a5914
commit
e00f87f2f5
599 changed files with 119573 additions and 55990 deletions
|
@ -101,7 +101,7 @@ class IXR_Message
|
|||
$chunk_size = 262144;
|
||||
|
||||
/**
|
||||
* Filters the chunk size that can be used to parse an XML-RPC reponse message.
|
||||
* Filters the chunk size that can be used to parse an XML-RPC response message.
|
||||
*
|
||||
* @since 4.4.0
|
||||
*
|
||||
|
|
|
@ -170,7 +170,7 @@ function wp_admin_bar_wp_menu( $wp_admin_bar ) {
|
|||
array(
|
||||
'parent' => 'wp-logo-external',
|
||||
'id' => 'support-forums',
|
||||
'title' => __( 'Support Forums' ),
|
||||
'title' => __( 'Support' ),
|
||||
'href' => __( 'https://wordpress.org/support/' ),
|
||||
)
|
||||
);
|
||||
|
@ -885,11 +885,15 @@ function wp_admin_bar_comments_menu( $wp_admin_bar ) {
|
|||
|
||||
$awaiting_mod = wp_count_comments();
|
||||
$awaiting_mod = $awaiting_mod->moderated;
|
||||
$awaiting_text = sprintf( _n( '%s comment awaiting moderation', '%s comments awaiting moderation', $awaiting_mod ), number_format_i18n( $awaiting_mod ) );
|
||||
$awaiting_text = sprintf(
|
||||
/* translators: %s: number of comments in moderation */
|
||||
_n( '%s Comment in moderation', '%s Comments in moderation', $awaiting_mod ),
|
||||
number_format_i18n( $awaiting_mod )
|
||||
);
|
||||
|
||||
$icon = '<span class="ab-icon"></span>';
|
||||
$title = '<span class="ab-label awaiting-mod pending-count count-' . $awaiting_mod . '" aria-hidden="true">' . number_format_i18n( $awaiting_mod ) . '</span>';
|
||||
$title .= '<span class="screen-reader-text">' . $awaiting_text . '</span>';
|
||||
$title .= '<span class="screen-reader-text comments-in-moderation-text">' . $awaiting_text . '</span>';
|
||||
|
||||
$wp_admin_bar->add_menu(
|
||||
array(
|
||||
|
@ -1043,6 +1047,32 @@ function wp_admin_bar_search_menu( $wp_admin_bar ) {
|
|||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a link to exit recovery mode when Recovery Mode is active.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param WP_Admin_Bar $wp_admin_bar
|
||||
*/
|
||||
function wp_admin_bar_recovery_mode_menu( $wp_admin_bar ) {
|
||||
if ( ! wp_is_recovery_mode() ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$url = wp_login_url();
|
||||
$url = add_query_arg( 'action', WP_Recovery_Mode::EXIT_ACTION, $url );
|
||||
$url = wp_nonce_url( $url, WP_Recovery_Mode::EXIT_ACTION );
|
||||
|
||||
$wp_admin_bar->add_menu(
|
||||
array(
|
||||
'parent' => 'top-secondary',
|
||||
'id' => 'recovery-mode',
|
||||
'title' => __( 'Exit Recovery Mode' ),
|
||||
'href' => $url,
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Add secondary menus.
|
||||
*
|
||||
|
|
|
@ -52,8 +52,8 @@ function get_the_author( $deprecated = '' ) {
|
|||
* @see get_the_author()
|
||||
* @link https://codex.wordpress.org/Template_Tags/the_author
|
||||
*
|
||||
* @param string $deprecated Deprecated.
|
||||
* @param string $deprecated_echo Deprecated. Use get_the_author(). Echo the string or return it.
|
||||
* @param string $deprecated Deprecated.
|
||||
* @param bool $deprecated_echo Deprecated. Use get_the_author(). Echo the string or return it.
|
||||
* @return string|null The author's display name, from get_the_author().
|
||||
*/
|
||||
function the_author( $deprecated = '', $deprecated_echo = true ) {
|
||||
|
@ -153,8 +153,8 @@ function the_modified_author() {
|
|||
*
|
||||
* @global object $authordata The current author's DB object.
|
||||
*
|
||||
* @param string $field Optional. The user field to retrieve. Default empty.
|
||||
* @param int $user_id Optional. User ID.
|
||||
* @param string $field Optional. The user field to retrieve. Default empty.
|
||||
* @param int|false $user_id Optional. User ID.
|
||||
* @return string The author's field from the current author's DB object, otherwise an empty string.
|
||||
*/
|
||||
function get_the_author_meta( $field = '', $user_id = false ) {
|
||||
|
@ -181,9 +181,9 @@ function get_the_author_meta( $field = '', $user_id = false ) {
|
|||
* @since 2.8.0
|
||||
* @since 4.3.0 The `$original_user_id` parameter was added.
|
||||
*
|
||||
* @param string $value The value of the metadata.
|
||||
* @param int $user_id The user ID for the value.
|
||||
* @param int|bool $original_user_id The original user ID, as passed to the function.
|
||||
* @param string $value The value of the metadata.
|
||||
* @param int $user_id The user ID for the value.
|
||||
* @param int|false $original_user_id The original user ID, as passed to the function.
|
||||
*/
|
||||
return apply_filters( "get_the_author_{$field}", $value, $user_id, $original_user_id );
|
||||
}
|
||||
|
@ -193,9 +193,9 @@ function get_the_author_meta( $field = '', $user_id = false ) {
|
|||
*
|
||||
* @since 2.8.0
|
||||
*
|
||||
* @param string $field Selects the field of the users record. See get_the_author_meta()
|
||||
* for the list of possible fields.
|
||||
* @param int $user_id Optional. User ID.
|
||||
* @param string $field Selects the field of the users record. See get_the_author_meta()
|
||||
* for the list of possible fields.
|
||||
* @param int|false $user_id Optional. User ID.
|
||||
*
|
||||
* @see get_the_author_meta()
|
||||
*/
|
||||
|
@ -209,8 +209,8 @@ function the_author_meta( $field = '', $user_id = false ) {
|
|||
*
|
||||
* @since 2.8.0
|
||||
*
|
||||
* @param string $author_meta The value of the metadata.
|
||||
* @param int $user_id The user ID.
|
||||
* @param string $author_meta The value of the metadata.
|
||||
* @param int|false $user_id The user ID.
|
||||
*/
|
||||
echo apply_filters( "the_author_{$field}", $author_meta, $user_id );
|
||||
}
|
||||
|
@ -442,15 +442,15 @@ function wp_list_authors( $args = '' ) {
|
|||
$author_count[ $row->post_author ] = $row->count;
|
||||
}
|
||||
foreach ( $authors as $author_id ) {
|
||||
$author = get_userdata( $author_id );
|
||||
$posts = isset( $author_count[ $author_id ] ) ? $author_count[ $author_id ] : 0;
|
||||
|
||||
if ( $args['exclude_admin'] && 'admin' == $author->display_name ) {
|
||||
if ( ! $posts && $args['hide_empty'] ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$posts = isset( $author_count[ $author->ID ] ) ? $author_count[ $author->ID ] : 0;
|
||||
$author = get_userdata( $author_id );
|
||||
|
||||
if ( ! $posts && $args['hide_empty'] ) {
|
||||
if ( $args['exclude_admin'] && 'admin' === $author->display_name ) {
|
||||
continue;
|
||||
}
|
||||
|
||||
|
|
|
@ -125,10 +125,9 @@ function get_dynamic_block_names() {
|
|||
* @return string The parsed and filtered content.
|
||||
*/
|
||||
function excerpt_remove_blocks( $content ) {
|
||||
$allowed_blocks = array(
|
||||
$allowed_inner_blocks = array(
|
||||
// Classic blocks have their blockName set to null.
|
||||
null,
|
||||
'core/columns',
|
||||
'core/freeform',
|
||||
'core/heading',
|
||||
'core/html',
|
||||
|
@ -141,6 +140,9 @@ function excerpt_remove_blocks( $content ) {
|
|||
'core/table',
|
||||
'core/verse',
|
||||
);
|
||||
|
||||
$allowed_blocks = array_merge( $allowed_inner_blocks, array( 'core/columns' ) );
|
||||
|
||||
/**
|
||||
* Filters the list of blocks that can contribute to the excerpt.
|
||||
*
|
||||
|
@ -154,12 +156,55 @@ function excerpt_remove_blocks( $content ) {
|
|||
$allowed_blocks = apply_filters( 'excerpt_allowed_blocks', $allowed_blocks );
|
||||
$blocks = parse_blocks( $content );
|
||||
$output = '';
|
||||
|
||||
foreach ( $blocks as $block ) {
|
||||
if ( in_array( $block['blockName'], $allowed_blocks, true ) ) {
|
||||
if ( ! empty( $block['innerBlocks'] ) ) {
|
||||
if ( 'core/columns' === $block['blockName'] ) {
|
||||
$output .= _excerpt_render_inner_columns_blocks( $block, $allowed_inner_blocks );
|
||||
continue;
|
||||
}
|
||||
|
||||
// Skip the block if it has disallowed or nested inner blocks.
|
||||
foreach ( $block['innerBlocks'] as $inner_block ) {
|
||||
if (
|
||||
! in_array( $inner_block['blockName'], $allowed_inner_blocks, true ) ||
|
||||
! empty( $inner_block['innerBlocks'] )
|
||||
) {
|
||||
continue 2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$output .= render_block( $block );
|
||||
}
|
||||
}
|
||||
return $output;
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Render inner blocks from the `core/columns` block for generating an excerpt.
|
||||
*
|
||||
* @since 5.2.0
|
||||
* @access private
|
||||
*
|
||||
* @param array $columns The parsed columns block.
|
||||
* @param array $allowed_blocks The list of allowed inner blocks.
|
||||
* @return string The rendered inner blocks.
|
||||
*/
|
||||
function _excerpt_render_inner_columns_blocks( $columns, $allowed_blocks ) {
|
||||
$output = '';
|
||||
|
||||
foreach ( $columns['innerBlocks'] as $column ) {
|
||||
foreach ( $column['innerBlocks'] as $inner_block ) {
|
||||
if ( in_array( $inner_block['blockName'], $allowed_blocks, true ) && empty( $inner_block['innerBlocks'] ) ) {
|
||||
$output .= render_block( $inner_block );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -262,13 +307,6 @@ function parse_blocks( $content ) {
|
|||
* @return string Updated post content.
|
||||
*/
|
||||
function do_blocks( $content ) {
|
||||
// If there are blocks in this content, we shouldn't run wpautop() on it later.
|
||||
$priority = has_filter( 'the_content', 'wpautop' );
|
||||
if ( false !== $priority && doing_filter( 'the_content' ) && has_blocks( $content ) ) {
|
||||
remove_filter( 'the_content', 'wpautop', $priority );
|
||||
add_filter( 'the_content', '_restore_wpautop_hook', $priority + 1 );
|
||||
}
|
||||
|
||||
$blocks = parse_blocks( $content );
|
||||
$output = '';
|
||||
|
||||
|
@ -276,11 +314,18 @@ function do_blocks( $content ) {
|
|||
$output .= render_block( $block );
|
||||
}
|
||||
|
||||
// If there are blocks in this content, we shouldn't run wpautop() on it later.
|
||||
$priority = has_filter( 'the_content', 'wpautop' );
|
||||
if ( false !== $priority && doing_filter( 'the_content' ) && has_blocks( $content ) ) {
|
||||
remove_filter( 'the_content', 'wpautop', $priority );
|
||||
add_filter( 'the_content', '_restore_wpautop_hook', $priority + 1 );
|
||||
}
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* If do_blocks() needs to remove wp_autop() from the `the_content` filter, this re-adds it afterwards,
|
||||
* If do_blocks() needs to remove wpautop() from the `the_content` filter, this re-adds it afterwards,
|
||||
* for subsequent `the_content` usage.
|
||||
*
|
||||
* @access private
|
||||
|
|
75
wp-includes/blocks/calendar.php
Normal file
75
wp-includes/blocks/calendar.php
Normal file
|
@ -0,0 +1,75 @@
|
|||
<?php
|
||||
/**
|
||||
* Server-side rendering of the `core/calendar` block.
|
||||
*
|
||||
* @package WordPress
|
||||
*/
|
||||
|
||||
/**
|
||||
* Renders the `core/calendar` block on server.
|
||||
*
|
||||
* @param array $attributes The block attributes.
|
||||
*
|
||||
* @return string Returns the block content.
|
||||
*/
|
||||
function render_block_core_calendar( $attributes ) {
|
||||
global $monthnum, $year;
|
||||
|
||||
$previous_monthnum = $monthnum;
|
||||
$previous_year = $year;
|
||||
|
||||
if ( isset( $attributes['month'] ) && isset( $attributes['year'] ) ) {
|
||||
$permalink_structure = get_option( 'permalink_structure' );
|
||||
if (
|
||||
strpos( $permalink_structure, '%monthnum%' ) !== false &&
|
||||
strpos( $permalink_structure, '%year%' ) !== false
|
||||
) {
|
||||
// phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
|
||||
$monthnum = $attributes['month'];
|
||||
// phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
|
||||
$year = $attributes['year'];
|
||||
}
|
||||
}
|
||||
|
||||
$custom_class_name = empty( $attributes['className'] ) ? '' : ' ' . $attributes['className'];
|
||||
$align_class_name = empty( $attributes['align'] ) ? '' : ' ' . "align{$attributes['align']}";
|
||||
|
||||
return sprintf(
|
||||
'<div class="%1$s">%2$s</div>',
|
||||
esc_attr( 'wp-block-calendar' . $custom_class_name . $align_class_name ),
|
||||
get_calendar( true, false )
|
||||
);
|
||||
|
||||
// phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
|
||||
$monthnum = $previous_monthnum;
|
||||
// phpcs:ignore WordPress.WP.GlobalVariablesOverride.OverrideProhibited
|
||||
$year = $previous_year;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers the `core/calendar` block on server.
|
||||
*/
|
||||
function register_block_core_calendar() {
|
||||
register_block_type(
|
||||
'core/calendar',
|
||||
array(
|
||||
'attributes' => array(
|
||||
'align' => array(
|
||||
'type' => 'string',
|
||||
),
|
||||
'className' => array(
|
||||
'type' => 'string',
|
||||
),
|
||||
'month' => array(
|
||||
'type' => 'integer',
|
||||
),
|
||||
'year' => array(
|
||||
'type' => 'integer',
|
||||
),
|
||||
),
|
||||
'render_callback' => 'render_block_core_calendar',
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
add_action( 'init', 'register_block_core_calendar' );
|
|
@ -117,6 +117,9 @@ function render_block_core_latest_comments( $attributes = array() ) {
|
|||
}
|
||||
|
||||
$class = 'wp-block-latest-comments';
|
||||
if ( ! empty( $attributes['className'] ) ) {
|
||||
$class .= ' ' . $attributes['className'];
|
||||
}
|
||||
if ( isset( $attributes['align'] ) ) {
|
||||
$class .= " align{$attributes['align']}";
|
||||
}
|
||||
|
@ -151,6 +154,10 @@ register_block_type(
|
|||
'core/latest-comments',
|
||||
array(
|
||||
'attributes' => array(
|
||||
'align' => array(
|
||||
'type' => 'string',
|
||||
'enum' => array( 'left', 'center', 'right', 'wide', 'full' ),
|
||||
),
|
||||
'className' => array(
|
||||
'type' => 'string',
|
||||
),
|
||||
|
@ -172,10 +179,6 @@ register_block_type(
|
|||
'type' => 'boolean',
|
||||
'default' => true,
|
||||
),
|
||||
'align' => array(
|
||||
'type' => 'string',
|
||||
'enum' => array( 'center', 'left', 'right', 'wide', 'full', '' ),
|
||||
),
|
||||
),
|
||||
'render_callback' => 'render_block_core_latest_comments',
|
||||
)
|
||||
|
|
|
@ -14,38 +14,37 @@
|
|||
*/
|
||||
function render_block_core_latest_posts( $attributes ) {
|
||||
$args = array(
|
||||
'numberposts' => $attributes['postsToShow'],
|
||||
'post_status' => 'publish',
|
||||
'order' => $attributes['order'],
|
||||
'orderby' => $attributes['orderBy'],
|
||||
'posts_per_page' => $attributes['postsToShow'],
|
||||
'post_status' => 'publish',
|
||||
'order' => $attributes['order'],
|
||||
'orderby' => $attributes['orderBy'],
|
||||
'suppress_filters' => false,
|
||||
);
|
||||
|
||||
if ( isset( $attributes['categories'] ) ) {
|
||||
$args['category'] = $attributes['categories'];
|
||||
}
|
||||
|
||||
$recent_posts = wp_get_recent_posts( $args );
|
||||
$recent_posts = get_posts( $args );
|
||||
|
||||
$list_items_markup = '';
|
||||
|
||||
foreach ( $recent_posts as $post ) {
|
||||
$post_id = $post['ID'];
|
||||
|
||||
$title = get_the_title( $post_id );
|
||||
$title = get_the_title( $post );
|
||||
if ( ! $title ) {
|
||||
$title = __( '(Untitled)' );
|
||||
}
|
||||
$list_items_markup .= sprintf(
|
||||
'<li><a href="%1$s">%2$s</a>',
|
||||
esc_url( get_permalink( $post_id ) ),
|
||||
esc_html( $title )
|
||||
esc_url( get_permalink( $post ) ),
|
||||
$title
|
||||
);
|
||||
|
||||
if ( isset( $attributes['displayPostDate'] ) && $attributes['displayPostDate'] ) {
|
||||
$list_items_markup .= sprintf(
|
||||
'<time datetime="%1$s" class="wp-block-latest-posts__post-date">%2$s</time>',
|
||||
esc_attr( get_the_date( 'c', $post_id ) ),
|
||||
esc_html( get_the_date( '', $post_id ) )
|
||||
esc_attr( get_the_date( 'c', $post ) ),
|
||||
esc_html( get_the_date( '', $post ) )
|
||||
);
|
||||
}
|
||||
|
||||
|
|
137
wp-includes/blocks/rss.php
Normal file
137
wp-includes/blocks/rss.php
Normal file
|
@ -0,0 +1,137 @@
|
|||
<?php
|
||||
/**
|
||||
* Server-side rendering of the `core/rss` block.
|
||||
*
|
||||
* @package WordPress
|
||||
*/
|
||||
|
||||
/**
|
||||
* Renders the `core/rss` block on server.
|
||||
*
|
||||
* @param array $attributes The block attributes.
|
||||
*
|
||||
* @return string Returns the block content with received rss items.
|
||||
*/
|
||||
function render_block_core_rss( $attributes ) {
|
||||
$rss = fetch_feed( $attributes['feedURL'] );
|
||||
|
||||
if ( is_wp_error( $rss ) ) {
|
||||
return '<div class="components-placeholder"><div class="notice notice-error"><strong>' . __( 'RSS Error:' ) . '</strong> ' . $rss->get_error_message() . '</div></div>';
|
||||
}
|
||||
|
||||
if ( ! $rss->get_item_quantity() ) {
|
||||
// PHP 5.2 compatibility. See: http://simplepie.org/wiki/faq/i_m_getting_memory_leaks.
|
||||
$rss->__destruct();
|
||||
unset( $rss );
|
||||
|
||||
return '<div class="components-placeholder"><div class="notice notice-error">' . __( 'An error has occurred, which probably means the feed is down. Try again later.' ) . '</div></div>';
|
||||
}
|
||||
|
||||
$rss_items = $rss->get_items( 0, $attributes['itemsToShow'] );
|
||||
$list_items = '';
|
||||
foreach ( $rss_items as $item ) {
|
||||
$title = esc_html( trim( strip_tags( $item->get_title() ) ) );
|
||||
if ( empty( $title ) ) {
|
||||
$title = __( '(Untitled)' );
|
||||
}
|
||||
$link = $item->get_link();
|
||||
$link = esc_url( $link );
|
||||
if ( $link ) {
|
||||
$title = "<a href='{$link}'>{$title}</a>";
|
||||
}
|
||||
$title = "<div class='wp-block-rss__item-title'>{$title}</div>";
|
||||
|
||||
$date = '';
|
||||
if ( $attributes['displayDate'] ) {
|
||||
$date = $item->get_date( 'U' );
|
||||
|
||||
if ( $date ) {
|
||||
$date = sprintf(
|
||||
'<time datetime="%1$s" class="wp-block-rss__item-publish-date">%2$s</time> ',
|
||||
date_i18n( get_option( 'c' ), $date ),
|
||||
date_i18n( get_option( 'date_format' ), $date )
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
$author = '';
|
||||
if ( $attributes['displayAuthor'] ) {
|
||||
$author = $item->get_author();
|
||||
if ( is_object( $author ) ) {
|
||||
$author = $author->get_name();
|
||||
$author = '<span class="wp-block-rss__item-author">' . __( 'by' ) . ' ' . esc_html( strip_tags( $author ) ) . '</span>';
|
||||
}
|
||||
}
|
||||
|
||||
$excerpt = '';
|
||||
if ( $attributes['displayExcerpt'] ) {
|
||||
$excerpt = html_entity_decode( $item->get_description(), ENT_QUOTES, get_option( 'blog_charset' ) );
|
||||
$excerpt = esc_attr( wp_trim_words( $excerpt, $attributes['excerptLength'], ' […]' ) );
|
||||
|
||||
// Change existing [...] to […].
|
||||
if ( '[...]' == substr( $excerpt, -5 ) ) {
|
||||
$excerpt = substr( $excerpt, 0, -5 ) . '[…]';
|
||||
}
|
||||
|
||||
$excerpt = '<div class="wp-block-rss__item-excerpt">' . esc_html( $excerpt ) . '</div>';
|
||||
}
|
||||
|
||||
$list_items .= "<li class='wp-block-rss__item'>{$title}{$date}{$author}{$excerpt}</li>";
|
||||
}
|
||||
|
||||
$classes = 'grid' === $attributes['blockLayout'] ? ' is-grid columns-' . $attributes['columns'] : '';
|
||||
$list_items_markup = "<ul class='wp-block-rss{$classes}'>{$list_items}</ul>";
|
||||
|
||||
// PHP 5.2 compatibility. See: http://simplepie.org/wiki/faq/i_m_getting_memory_leaks.
|
||||
$rss->__destruct();
|
||||
unset( $rss );
|
||||
|
||||
return $list_items_markup;
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers the `core/rss` block on server.
|
||||
*/
|
||||
function register_block_core_rss() {
|
||||
register_block_type( 'core/rss',
|
||||
array(
|
||||
'attributes' => array(
|
||||
'columns' => array(
|
||||
'type' => 'number',
|
||||
'default' => 2,
|
||||
),
|
||||
'blockLayout' => array(
|
||||
'type' => 'string',
|
||||
'default' => 'list',
|
||||
),
|
||||
'feedURL' => array(
|
||||
'type' => 'string',
|
||||
'default' => '',
|
||||
),
|
||||
'itemsToShow' => array(
|
||||
'type' => 'number',
|
||||
'default' => 5,
|
||||
),
|
||||
'displayExcerpt' => array(
|
||||
'type' => 'boolean',
|
||||
'default' => false,
|
||||
),
|
||||
'displayAuthor' => array(
|
||||
'type' => 'boolean',
|
||||
'default' => false,
|
||||
),
|
||||
'displayDate' => array(
|
||||
'type' => 'boolean',
|
||||
'default' => false,
|
||||
),
|
||||
'excerptLength' => array(
|
||||
'type' => 'number',
|
||||
'default' => 55,
|
||||
),
|
||||
),
|
||||
'render_callback' => 'render_block_core_rss',
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
add_action( 'init', 'register_block_core_rss' );
|
82
wp-includes/blocks/search.php
Normal file
82
wp-includes/blocks/search.php
Normal file
|
@ -0,0 +1,82 @@
|
|||
<?php
|
||||
/**
|
||||
* Server-side rendering of the `core/search` block.
|
||||
*
|
||||
* @package WordPress
|
||||
*/
|
||||
|
||||
/**
|
||||
* Dynamically renders the `core/search` block.
|
||||
*
|
||||
* @param array $attributes The block attributes.
|
||||
*
|
||||
* @return string The search block markup.
|
||||
*/
|
||||
function render_block_core_search( $attributes ) {
|
||||
static $instance_id = 0;
|
||||
|
||||
$input_id = 'wp-block-search__input-' . ++$instance_id;
|
||||
|
||||
if ( ! empty( $attributes['label'] ) ) {
|
||||
$label_markup = sprintf(
|
||||
'<label for="%s" class="wp-block-search__label">%s</label>',
|
||||
$input_id,
|
||||
$attributes['label']
|
||||
);
|
||||
}
|
||||
|
||||
$input_markup = sprintf(
|
||||
'<input type="search" id="%s" class="wp-block-search__input" name="s" value="%s" placeholder="%s" />',
|
||||
$input_id,
|
||||
esc_attr( get_search_query() ),
|
||||
esc_attr( $attributes['placeholder'] )
|
||||
);
|
||||
|
||||
if ( ! empty( $attributes['buttonText'] ) ) {
|
||||
$button_markup = sprintf(
|
||||
'<button type="submit" class="wp-block-search__button">%s</button>',
|
||||
$attributes['buttonText']
|
||||
);
|
||||
}
|
||||
|
||||
$class = 'wp-block-search';
|
||||
if ( isset( $attributes['className'] ) ) {
|
||||
$class .= ' ' . $attributes['className'];
|
||||
}
|
||||
|
||||
return sprintf(
|
||||
'<form class="%s" role="search" method="get" action="%s">%s</form>',
|
||||
$class,
|
||||
esc_url( home_url( '/' ) ),
|
||||
$label_markup . $input_markup . $button_markup
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers the `core/search` block on the server.
|
||||
*/
|
||||
function register_block_core_search() {
|
||||
register_block_type(
|
||||
'core/search',
|
||||
array(
|
||||
'attributes' => array(
|
||||
'label' => array(
|
||||
'type' => 'string',
|
||||
'default' => __( 'Search' ),
|
||||
),
|
||||
'placeholder' => array(
|
||||
'type' => 'string',
|
||||
'default' => '',
|
||||
),
|
||||
'buttonText' => array(
|
||||
'type' => 'string',
|
||||
'default' => __( 'Search' ),
|
||||
),
|
||||
),
|
||||
|
||||
'render_callback' => 'render_block_core_search',
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
add_action( 'init', 'register_block_core_search' );
|
71
wp-includes/blocks/tag-cloud.php
Normal file
71
wp-includes/blocks/tag-cloud.php
Normal file
|
@ -0,0 +1,71 @@
|
|||
<?php
|
||||
/**
|
||||
* Server-side rendering of the `core/tag-cloud` block.
|
||||
*
|
||||
* @package WordPress
|
||||
*/
|
||||
|
||||
/**
|
||||
* Renders the `core/tag-cloud` block on server.
|
||||
*
|
||||
* @param array $attributes The block attributes.
|
||||
*
|
||||
* @return string Returns the tag cloud for selected taxonomy.
|
||||
*/
|
||||
function render_block_core_tag_cloud( $attributes ) {
|
||||
$class = isset( $attributes['align'] ) ?
|
||||
"wp-block-tag-cloud align{$attributes['align']}" :
|
||||
'wp-block-tag-cloud';
|
||||
|
||||
if ( isset( $attributes['className'] ) ) {
|
||||
$class .= ' ' . $attributes['className'];
|
||||
}
|
||||
|
||||
$args = array(
|
||||
'echo' => false,
|
||||
'taxonomy' => $attributes['taxonomy'],
|
||||
'show_count' => $attributes['showTagCounts'],
|
||||
);
|
||||
|
||||
$tag_cloud = wp_tag_cloud( $args );
|
||||
|
||||
if ( ! $tag_cloud ) {
|
||||
$tag_cloud = esc_html( __( 'No terms to show.' ) );
|
||||
}
|
||||
|
||||
return sprintf(
|
||||
'<p class="%1$s">%2$s</p>',
|
||||
esc_attr( $class ),
|
||||
$tag_cloud
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Registers the `core/tag-cloud` block on server.
|
||||
*/
|
||||
function register_block_core_tag_cloud() {
|
||||
register_block_type(
|
||||
'core/tag-cloud',
|
||||
array(
|
||||
'attributes' => array(
|
||||
'taxonomy' => array(
|
||||
'type' => 'string',
|
||||
'default' => 'post_tag',
|
||||
),
|
||||
'className' => array(
|
||||
'type' => 'string',
|
||||
),
|
||||
'showTagCounts' => array(
|
||||
'type' => 'boolean',
|
||||
'default' => false,
|
||||
),
|
||||
'align' => array(
|
||||
'type' => 'string',
|
||||
),
|
||||
),
|
||||
'render_callback' => 'render_block_core_tag_cloud',
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
add_action( 'init', 'register_block_core_tag_cloud' );
|
|
@ -323,7 +323,7 @@ class WP_Object_Cache {
|
|||
* The blog prefix to prepend to keys in non-global groups.
|
||||
*
|
||||
* @since 3.5.0
|
||||
* @var int
|
||||
* @var string
|
||||
*/
|
||||
private $blog_prefix;
|
||||
|
||||
|
@ -646,7 +646,7 @@ class WP_Object_Cache {
|
|||
/**
|
||||
* Sets the data contents into the cache.
|
||||
*
|
||||
* The cache contents is grouped by the $group parameter followed by the
|
||||
* The cache contents are grouped by the $group parameter followed by the
|
||||
* $key. This allows for duplicate ids in unique groups. Therefore, naming of
|
||||
* the group should be used with care and should follow normal function
|
||||
* naming guidelines outside of core WordPress usage.
|
||||
|
|
|
@ -388,7 +388,10 @@ function redirect_canonical( $requested_url = null, $do_redirect = true ) {
|
|||
}
|
||||
}
|
||||
|
||||
$_parsed_query = rawurlencode_deep( $_parsed_query );
|
||||
$_parsed_query = array_combine(
|
||||
rawurlencode_deep( array_keys( $_parsed_query ) ),
|
||||
rawurlencode_deep( array_values( $_parsed_query ) )
|
||||
);
|
||||
$redirect_url = add_query_arg( $_parsed_query, $redirect_url );
|
||||
}
|
||||
|
||||
|
|
|
@ -464,6 +464,12 @@ function map_meta_cap( $cap, $user_id ) {
|
|||
}
|
||||
}
|
||||
break;
|
||||
case 'resume_plugin':
|
||||
$caps[] = 'resume_plugins';
|
||||
break;
|
||||
case 'resume_theme':
|
||||
$caps[] = 'resume_themes';
|
||||
break;
|
||||
case 'delete_user':
|
||||
case 'delete_users':
|
||||
// If multisite only super admins can delete users.
|
||||
|
@ -950,3 +956,39 @@ function wp_maybe_grant_install_languages_cap( $allcaps ) {
|
|||
|
||||
return $allcaps;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters the user capabilities to grant the 'resume_plugins' and 'resume_themes' capabilities as necessary.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param bool[] $allcaps An array of all the user's capabilities.
|
||||
* @return bool[] Filtered array of the user's capabilities.
|
||||
*/
|
||||
function wp_maybe_grant_resume_extensions_caps( $allcaps ) {
|
||||
// Even in a multisite, regular administrators should be able to resume plugins.
|
||||
if ( ! empty( $allcaps['activate_plugins'] ) ) {
|
||||
$allcaps['resume_plugins'] = true;
|
||||
}
|
||||
|
||||
// Even in a multisite, regular administrators should be able to resume themes.
|
||||
if ( ! empty( $allcaps['switch_themes'] ) ) {
|
||||
$allcaps['resume_themes'] = true;
|
||||
}
|
||||
|
||||
return $allcaps;
|
||||
}
|
||||
|
||||
return;
|
||||
|
||||
// Dummy gettext calls to get strings in the catalog.
|
||||
/* translators: user role for administrators */
|
||||
_x( 'Administrator', 'User role' );
|
||||
/* translators: user role for editors */
|
||||
_x( 'Editor', 'User role' );
|
||||
/* translators: user role for authors */
|
||||
_x( 'Author', 'User role' );
|
||||
/* translators: user role for contributors */
|
||||
_x( 'Contributor', 'User role' );
|
||||
/* translators: user role for subscriber */
|
||||
_x( 'Subscriber', 'User role' );
|
||||
|
|
|
@ -449,7 +449,7 @@ class WP_Http {
|
|||
|
||||
foreach ( $cookies as $name => $value ) {
|
||||
if ( $value instanceof WP_Http_Cookie ) {
|
||||
$cookie_jar[ $value->name ] = new Requests_Cookie( $value->name, $value->value, $value->get_attributes() );
|
||||
$cookie_jar[ $value->name ] = new Requests_Cookie( $value->name, $value->value, $value->get_attributes(), array( 'host-only' => $value->host_only ) );
|
||||
} elseif ( is_scalar( $value ) ) {
|
||||
$cookie_jar[ $name ] = new Requests_Cookie( $name, $value );
|
||||
}
|
||||
|
|
|
@ -15,11 +15,11 @@ if ( ! class_exists( 'Services_JSON' ) ) :
|
|||
* ideal data-interchange language.
|
||||
*
|
||||
* This package provides a simple encoder and decoder for JSON notation. It
|
||||
* is intended for use with client-side Javascript applications that make
|
||||
* is intended for use with client-side JavaScript applications that make
|
||||
* use of HTTPRequest to perform server communication functions - data can
|
||||
* be encoded into JSON notation for use in a client-side javascript, or
|
||||
* decoded from incoming Javascript requests. JSON format is native to
|
||||
* Javascript, and can be directly eval()'ed with no further parsing
|
||||
* be encoded into JSON notation for use in a client-side javaScript, or
|
||||
* decoded from incoming JavaScript requests. JSON format is native to
|
||||
* JavaScript, and can be directly eval()'ed with no further parsing
|
||||
* overhead
|
||||
*
|
||||
* All strings should be in ASCII or UTF-8 format!
|
||||
|
@ -805,7 +805,7 @@ class Services_JSON
|
|||
($top['what'] == SERVICES_JSON_IN_STR) &&
|
||||
(($this->strlen8($this->substr8($chrs, 0, $c)) - $this->strlen8(rtrim($this->substr8($chrs, 0, $c), '\\'))) % 2 != 1)) {
|
||||
// found a quote, we're in a string, and it's not escaped
|
||||
// we know that it's not escaped becase there is _not_ an
|
||||
// we know that it's not escaped because there is _not_ an
|
||||
// odd number of backslashes at the end of the string so far
|
||||
array_pop($stk);
|
||||
//print("Found end of string at {$c}: ".$this->substr8($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n");
|
||||
|
|
|
@ -60,11 +60,11 @@ class WP_oEmbed {
|
|||
'#https?://flic\.kr/.*#i' => array( 'https://www.flickr.com/services/oembed/', true ),
|
||||
'#https?://(.+\.)?smugmug\.com/.*#i' => array( 'https://api.smugmug.com/services/oembed/', true ),
|
||||
'#https?://(www\.)?hulu\.com/watch/.*#i' => array( 'http://www.hulu.com/api/oembed.{format}', true ),
|
||||
'#https?://(www\.)?scribd\.com/doc/.*#i' => array( 'https://www.scribd.com/services/oembed', true ),
|
||||
'#https?://(www\.)?scribd\.com/(doc|document)/.*#i' => array( 'https://www.scribd.com/services/oembed', true ),
|
||||
'#https?://wordpress\.tv/.*#i' => array( 'https://wordpress.tv/oembed/', true ),
|
||||
'#https?://(.+\.)?polldaddy\.com/.*#i' => array( 'https://api.crowdsignal.com/oembed', true ),
|
||||
'#https?://poll\.fm/.*#i' => array( 'https://api.crowdsignal.com/oembed', true ),
|
||||
'#https?://survey\.fm/.*#i' => array( 'https://api.crowdsignal.com/oembed', true ),
|
||||
'#https?://(.+\.)?survey\.fm/.*#i' => array( 'https://api.crowdsignal.com/oembed', true ),
|
||||
'#https?://(www\.)?twitter\.com/\w{1,15}/status(es)?/.*#i' => array( 'https://publish.twitter.com/oembed', true ),
|
||||
'#https?://(www\.)?twitter\.com/\w{1,15}$#i' => array( 'https://publish.twitter.com/oembed', true ),
|
||||
'#https?://(www\.)?twitter\.com/\w{1,15}/likes$#i' => array( 'https://publish.twitter.com/oembed', true ),
|
||||
|
|
|
@ -564,10 +564,10 @@ class SMTP
|
|||
/**
|
||||
* Send an SMTP DATA command.
|
||||
* Issues a data command and sends the msg_data to the server,
|
||||
* finializing the mail transaction. $msg_data is the message
|
||||
* finalizing the mail transaction. $msg_data is the message
|
||||
* that is to be send with the headers. Each header needs to be
|
||||
* on a single line followed by a <CRLF> with the message headers
|
||||
* and the message body being separated by and additional <CRLF>.
|
||||
* and the message body being separated by an additional <CRLF>.
|
||||
* Implements rfc 821: DATA <CRLF>
|
||||
* @param string $msg_data Message data to send
|
||||
* @access public
|
||||
|
|
|
@ -108,7 +108,9 @@ class Walker_Category extends Walker {
|
|||
return;
|
||||
}
|
||||
|
||||
$link = '<a href="' . esc_url( get_term_link( $category ) ) . '" ';
|
||||
$atts = array();
|
||||
$atts['href'] = get_term_link( $category );
|
||||
|
||||
if ( $args['use_desc_for_title'] && ! empty( $category->description ) ) {
|
||||
/**
|
||||
* Filters the category description for display.
|
||||
|
@ -118,11 +120,40 @@ class Walker_Category extends Walker {
|
|||
* @param string $description Category description.
|
||||
* @param object $category Category object.
|
||||
*/
|
||||
$link .= 'title="' . esc_attr( strip_tags( apply_filters( 'category_description', $category->description, $category ) ) ) . '"';
|
||||
$atts['title'] = strip_tags( apply_filters( 'category_description', $category->description, $category ) );
|
||||
}
|
||||
|
||||
$link .= '>';
|
||||
$link .= $cat_name . '</a>';
|
||||
/**
|
||||
* Filters the HTML attributes applied to a category list item's anchor element.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param array $atts {
|
||||
* The HTML attributes applied to the list item's `<a>` element, empty strings are ignored.
|
||||
*
|
||||
* @type string $href The href attribute.
|
||||
* @type string $title The title attribute.
|
||||
* }
|
||||
* @param WP_Term $category Term data object.
|
||||
* @param int $depth Depth of category, used for padding.
|
||||
* @param array $args An array of arguments.
|
||||
* @param int $id ID of the current category.
|
||||
*/
|
||||
$atts = apply_filters( 'category_list_link_attributes', $atts, $category, $depth, $args, $id );
|
||||
|
||||
$attributes = '';
|
||||
foreach ( $atts as $attr => $value ) {
|
||||
if ( ! empty( $value ) ) {
|
||||
$value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value );
|
||||
$attributes .= ' ' . $attr . '="' . $value . '"';
|
||||
}
|
||||
}
|
||||
|
||||
$link = sprintf(
|
||||
'<a%s>%s</a>',
|
||||
$attributes,
|
||||
$cat_name
|
||||
);
|
||||
|
||||
if ( ! empty( $args['feed_image'] ) || ! empty( $args['feed'] ) ) {
|
||||
$link .= ' ';
|
||||
|
@ -134,6 +165,7 @@ class Walker_Category extends Walker {
|
|||
$link .= '<a href="' . esc_url( get_term_feed_link( $category->term_id, $category->taxonomy, $args['feed_type'] ) ) . '"';
|
||||
|
||||
if ( empty( $args['feed'] ) ) {
|
||||
/* translators: %s: category name */
|
||||
$alt = ' alt="' . sprintf( __( 'Feed for all posts filed under %s' ), $cat_name ) . '"';
|
||||
} else {
|
||||
$alt = ' alt="' . $args['feed'] . '"';
|
||||
|
|
|
@ -169,10 +169,14 @@ class Walker_Nav_Menu extends Walker {
|
|||
|
||||
$output .= $indent . '<li' . $id . $class_names . '>';
|
||||
|
||||
$atts = array();
|
||||
$atts['title'] = ! empty( $item->attr_title ) ? $item->attr_title : '';
|
||||
$atts['target'] = ! empty( $item->target ) ? $item->target : '';
|
||||
$atts['rel'] = ! empty( $item->xfn ) ? $item->xfn : '';
|
||||
$atts = array();
|
||||
$atts['title'] = ! empty( $item->attr_title ) ? $item->attr_title : '';
|
||||
$atts['target'] = ! empty( $item->target ) ? $item->target : '';
|
||||
if ( '_blank' === $item->target && empty( $item->xfn ) ) {
|
||||
$atts['rel'] = 'noopener noreferrer';
|
||||
} else {
|
||||
$atts['rel'] = $item->xfn;
|
||||
}
|
||||
$atts['href'] = ! empty( $item->url ) ? $item->url : '';
|
||||
$atts['aria-current'] = $item->current ? 'page' : '';
|
||||
|
||||
|
|
|
@ -183,7 +183,7 @@ class Walker_Page extends Walker {
|
|||
$attributes = '';
|
||||
foreach ( $atts as $attr => $value ) {
|
||||
if ( ! empty( $value ) ) {
|
||||
$value = esc_attr( $value );
|
||||
$value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value );
|
||||
$attributes .= ' ' . $attr . '="' . $value . '"';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -501,14 +501,17 @@ class WP_Admin_Bar {
|
|||
return;
|
||||
}
|
||||
|
||||
$is_parent = ! empty( $node->children );
|
||||
$has_link = ! empty( $node->href );
|
||||
$is_parent = ! empty( $node->children );
|
||||
$has_link = ! empty( $node->href );
|
||||
$is_root_top_item = 'root-default' === $node->parent;
|
||||
$is_top_secondary_item = 'top-secondary' === $node->parent;
|
||||
|
||||
// Allow only numeric values, then casted to integers, and allow a tabindex value of `0` for a11y.
|
||||
$tabindex = ( isset( $node->meta['tabindex'] ) && is_numeric( $node->meta['tabindex'] ) ) ? (int) $node->meta['tabindex'] : '';
|
||||
$aria_attributes = ( '' !== $tabindex ) ? ' tabindex="' . $tabindex . '"' : '';
|
||||
|
||||
$menuclass = '';
|
||||
$arrow = '';
|
||||
|
||||
if ( $is_parent ) {
|
||||
$menuclass = 'menupop ';
|
||||
|
@ -519,6 +522,11 @@ class WP_Admin_Bar {
|
|||
$menuclass .= $node->meta['class'];
|
||||
}
|
||||
|
||||
// Print the arrow icon for the menu children with children.
|
||||
if ( ! $is_root_top_item && ! $is_top_secondary_item && $is_parent ) {
|
||||
$arrow = '<span class="wp-admin-bar-arrow" aria-hidden="true"></span>';
|
||||
}
|
||||
|
||||
if ( $menuclass ) {
|
||||
$menuclass = ' class="' . esc_attr( trim( $menuclass ) ) . '"';
|
||||
}
|
||||
|
@ -542,7 +550,7 @@ class WP_Admin_Bar {
|
|||
}
|
||||
}
|
||||
|
||||
echo ">{$node->title}";
|
||||
echo ">{$arrow}{$node->title}";
|
||||
|
||||
if ( $has_link ) {
|
||||
echo '</a>';
|
||||
|
@ -588,6 +596,7 @@ class WP_Admin_Bar {
|
|||
add_action( 'admin_bar_menu', 'wp_admin_bar_my_account_menu', 0 );
|
||||
add_action( 'admin_bar_menu', 'wp_admin_bar_search_menu', 4 );
|
||||
add_action( 'admin_bar_menu', 'wp_admin_bar_my_account_item', 7 );
|
||||
add_action( 'admin_bar_menu', 'wp_admin_bar_recovery_mode_menu', 8 );
|
||||
|
||||
// Site related.
|
||||
add_action( 'admin_bar_menu', 'wp_admin_bar_sidebar_toggle', 0 );
|
||||
|
|
|
@ -402,7 +402,7 @@ final class WP_Customize_Manager {
|
|||
|
||||
// Add theme update notices.
|
||||
if ( current_user_can( 'install_themes' ) || current_user_can( 'update_themes' ) ) {
|
||||
require_once ABSPATH . '/wp-admin/includes/update.php';
|
||||
require_once ABSPATH . 'wp-admin/includes/update.php';
|
||||
add_action( 'customize_controls_print_footer_scripts', 'wp_print_admin_notice_templates' );
|
||||
}
|
||||
}
|
||||
|
@ -1360,7 +1360,7 @@ final class WP_Customize_Manager {
|
|||
if ( ! $attachment_id ) {
|
||||
|
||||
// Copy file to temp location so that original file won't get deleted from theme after sideloading.
|
||||
$temp_file_name = wp_tempnam( basename( $file_path ) );
|
||||
$temp_file_name = wp_tempnam( wp_basename( $file_path ) );
|
||||
if ( $temp_file_name && copy( $file_path, $temp_file_name ) ) {
|
||||
$file_array['tmp_name'] = $temp_file_name;
|
||||
}
|
||||
|
@ -1621,7 +1621,7 @@ final class WP_Customize_Manager {
|
|||
} else {
|
||||
continue;
|
||||
}
|
||||
$file_name = basename( $attachment['file'] );
|
||||
$file_name = wp_basename( $attachment['file'] );
|
||||
|
||||
// Skip file types that are not recognized.
|
||||
$checked_filetype = wp_check_filetype( $file_name );
|
||||
|
@ -3647,7 +3647,7 @@ final class WP_Customize_Manager {
|
|||
* @type string $capability Capability required for the setting. Default 'edit_theme_options'
|
||||
* @type string|array $theme_supports Theme features required to support the panel. Default is none.
|
||||
* @type string $default Default value for the setting. Default is empty string.
|
||||
* @type string $transport Options for rendering the live preview of changes in Theme Customizer.
|
||||
* @type string $transport Options for rendering the live preview of changes in Customizer.
|
||||
* Using 'refresh' makes the change visible by reloading the whole preview.
|
||||
* Using 'postMessage' allows a custom JavaScript to handle live changes.
|
||||
* @link https://developer.wordpress.org/themes/customize-api
|
||||
|
@ -4594,7 +4594,7 @@ final class WP_Customize_Manager {
|
|||
|
||||
if ( $this->return_url ) {
|
||||
$return_url = $this->return_url;
|
||||
} elseif ( $referer && ! in_array( basename( parse_url( $referer, PHP_URL_PATH ) ), $excluded_referer_basenames, true ) ) {
|
||||
} elseif ( $referer && ! in_array( wp_basename( parse_url( $referer, PHP_URL_PATH ) ), $excluded_referer_basenames, true ) ) {
|
||||
$return_url = $referer;
|
||||
} elseif ( $this->preview_url ) {
|
||||
$return_url = $this->preview_url;
|
||||
|
@ -5729,6 +5729,9 @@ final class WP_Customize_Manager {
|
|||
// Arguments for all queries.
|
||||
$wporg_args = array(
|
||||
'per_page' => 100,
|
||||
'fields' => array(
|
||||
'reviews_url' => true, // Explicitly request the reviews URL to be linked from the customizer.
|
||||
),
|
||||
);
|
||||
|
||||
$args = array_merge( $wporg_args, $args );
|
||||
|
|
|
@ -66,9 +66,9 @@ class WP_Customize_Setting {
|
|||
public $default = '';
|
||||
|
||||
/**
|
||||
* Options for rendering the live preview of changes in Theme Customizer.
|
||||
* Options for rendering the live preview of changes in Customizer.
|
||||
*
|
||||
* Set this value to 'postMessage' to enable a custom Javascript handler to render changes to this setting
|
||||
* Set this value to 'postMessage' to enable a custom JavaScript handler to render changes to this setting
|
||||
* as opposed to reloading the whole page.
|
||||
*
|
||||
* @link https://developer.wordpress.org/themes/customize-api
|
||||
|
|
|
@ -777,7 +777,7 @@ final class WP_Customize_Widgets {
|
|||
'saveBtnLabel' => __( 'Apply' ),
|
||||
'saveBtnTooltip' => __( 'Save and preview changes before publishing them.' ),
|
||||
'removeBtnLabel' => __( 'Remove' ),
|
||||
'removeBtnTooltip' => __( 'Trash widget by moving it to the inactive widgets sidebar.' ),
|
||||
'removeBtnTooltip' => __( 'Keep widget settings and move it to the inactive widgets' ),
|
||||
'error' => __( 'An error has occurred. Please reload the page and try again.' ),
|
||||
'widgetMovedUp' => __( 'Widget moved up' ),
|
||||
'widgetMovedDown' => __( 'Widget moved down' ),
|
||||
|
@ -949,7 +949,7 @@ final class WP_Customize_Widgets {
|
|||
}
|
||||
|
||||
global $wp_registered_widgets, $wp_registered_widget_controls;
|
||||
require_once ABSPATH . '/wp-admin/includes/widgets.php'; // for next_widget_id_number()
|
||||
require_once ABSPATH . 'wp-admin/includes/widgets.php'; // for next_widget_id_number()
|
||||
|
||||
$sort = $wp_registered_widgets;
|
||||
usort( $sort, array( $this, '_sort_name_callback' ) );
|
||||
|
@ -1151,8 +1151,8 @@ final class WP_Customize_Widgets {
|
|||
<style>
|
||||
.widget-customizer-highlighted-widget {
|
||||
outline: none;
|
||||
-webkit-box-shadow: 0 0 2px rgba(30,140,190,0.8);
|
||||
box-shadow: 0 0 2px rgba(30,140,190,0.8);
|
||||
-webkit-box-shadow: 0 0 2px rgba(30, 140, 190, 0.8);
|
||||
box-shadow: 0 0 2px rgba(30, 140, 190, 0.8);
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
}
|
||||
|
|
|
@ -587,14 +587,16 @@ final class _WP_Editors {
|
|||
|
||||
if ( ! wp_is_mobile() ) {
|
||||
if ( $set['_content_editor_dfw'] ) {
|
||||
$mce_buttons[] = 'wp_adv';
|
||||
$mce_buttons[] = 'dfw';
|
||||
} else {
|
||||
$mce_buttons[] = 'fullscreen';
|
||||
$mce_buttons[] = 'wp_adv';
|
||||
}
|
||||
} else {
|
||||
$mce_buttons[] = 'wp_adv';
|
||||
}
|
||||
|
||||
$mce_buttons[] = 'wp_adv';
|
||||
|
||||
/**
|
||||
* Filters the first-row list of TinyMCE buttons (Visual tab).
|
||||
*
|
||||
|
@ -1151,7 +1153,6 @@ final class _WP_Editors {
|
|||
// Link plugin
|
||||
'Link' => __( 'Link' ),
|
||||
'Insert link' => __( 'Insert link' ),
|
||||
'Insert/edit link' => __( 'Insert/edit link' ),
|
||||
'Target' => __( 'Target' ),
|
||||
'New window' => __( 'New window' ),
|
||||
'Text to display' => __( 'Text to display' ),
|
||||
|
|
210
wp-includes/class-wp-fatal-error-handler.php
Normal file
210
wp-includes/class-wp-fatal-error-handler.php
Normal file
|
@ -0,0 +1,210 @@
|
|||
<?php
|
||||
/**
|
||||
* Error Protection API: WP_Fatal_Error_Handler class
|
||||
*
|
||||
* @package WordPress
|
||||
* @since 5.2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Core class used as the default shutdown handler for fatal errors.
|
||||
*
|
||||
* A drop-in 'fatal-error-handler.php' can be used to override the instance of this class and use a custom
|
||||
* implementation for the fatal error handler that WordPress registers. The custom class should extend this class and
|
||||
* can override its methods individually as necessary. The file must return the instance of the class that should be
|
||||
* registered.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
class WP_Fatal_Error_Handler {
|
||||
|
||||
/**
|
||||
* Runs the shutdown handler.
|
||||
*
|
||||
* This method is registered via `register_shutdown_function()`.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
public function handle() {
|
||||
if ( defined( 'WP_SANDBOX_SCRAPING' ) && WP_SANDBOX_SCRAPING ) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
// Bail if no error found.
|
||||
$error = $this->detect_error();
|
||||
if ( ! $error ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! isset( $GLOBALS['wp_locale'] ) ) {
|
||||
load_default_textdomain();
|
||||
}
|
||||
|
||||
if ( ! is_multisite() && wp_recovery_mode()->is_initialized() ) {
|
||||
wp_recovery_mode()->handle_error( $error );
|
||||
}
|
||||
|
||||
// Display the PHP error template if headers not sent.
|
||||
if ( is_admin() || ! headers_sent() ) {
|
||||
$this->display_error_template( $error );
|
||||
}
|
||||
} catch ( Exception $e ) {
|
||||
// Catch exceptions and remain silent.
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Detects the error causing the crash if it should be handled.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return array|null Error that was triggered, or null if no error received or if the error should not be handled.
|
||||
*/
|
||||
protected function detect_error() {
|
||||
$error = error_get_last();
|
||||
|
||||
// No error, just skip the error handling code.
|
||||
if ( null === $error ) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Bail if this error should not be handled.
|
||||
if ( ! $this->should_handle_error( $error ) ) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $error;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines whether we are dealing with an error that WordPress should handle
|
||||
* in order to protect the admin backend against WSODs.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param array $error Error information retrieved from error_get_last().
|
||||
* @return bool Whether WordPress should handle this error.
|
||||
*/
|
||||
protected function should_handle_error( $error ) {
|
||||
$error_types_to_handle = array(
|
||||
E_ERROR,
|
||||
E_PARSE,
|
||||
E_USER_ERROR,
|
||||
E_COMPILE_ERROR,
|
||||
E_RECOVERABLE_ERROR,
|
||||
);
|
||||
|
||||
if ( isset( $error['type'] ) && in_array( $error['type'], $error_types_to_handle, true ) ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters whether a given thrown error should be handled by the fatal error handler.
|
||||
*
|
||||
* This filter is only fired if the error is not already configured to be handled by WordPress core. As such,
|
||||
* it exclusively allows adding further rules for which errors should be handled, but not removing existing
|
||||
* ones.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param bool $should_handle_error Whether the error should be handled by the fatal error handler.
|
||||
* @param array $error Error information retrieved from error_get_last().
|
||||
*/
|
||||
return (bool) apply_filters( 'wp_should_handle_php_error', false, $error );
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays the PHP error template and sends the HTTP status code, typically 500.
|
||||
*
|
||||
* A drop-in 'php-error.php' can be used as a custom template. This drop-in should control the HTTP status code and
|
||||
* print the HTML markup indicating that a PHP error occurred. Note that this drop-in may potentially be executed
|
||||
* very early in the WordPress bootstrap process, so any core functions used that are not part of
|
||||
* `wp-includes/load.php` should be checked for before being called.
|
||||
*
|
||||
* If no such drop-in is available, this will call {@see WP_Fatal_Error_Handler::display_default_error_template()}.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param array $error Error information retrieved from `error_get_last()`.
|
||||
*/
|
||||
protected function display_error_template( $error ) {
|
||||
if ( defined( 'WP_CONTENT_DIR' ) ) {
|
||||
// Load custom PHP error template, if present.
|
||||
$php_error_pluggable = WP_CONTENT_DIR . '/php-error.php';
|
||||
if ( is_readable( $php_error_pluggable ) ) {
|
||||
require_once $php_error_pluggable;
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Otherwise, display the default error template.
|
||||
$this->display_default_error_template( $error );
|
||||
}
|
||||
|
||||
/**
|
||||
* Displays the default PHP error template.
|
||||
*
|
||||
* This method is called conditionally if no 'php-error.php' drop-in is available.
|
||||
*
|
||||
* It calls {@see wp_die()} with a message indicating that the site is experiencing technical difficulties and a
|
||||
* login link to the admin backend. The {@see 'wp_php_error_message'} and {@see 'wp_php_error_args'} filters can
|
||||
* be used to modify these parameters.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param array $error Error information retrieved from `error_get_last()`.
|
||||
*/
|
||||
protected function display_default_error_template( $error ) {
|
||||
if ( ! function_exists( '__' ) ) {
|
||||
wp_load_translations_early();
|
||||
}
|
||||
|
||||
if ( ! function_exists( 'wp_die' ) ) {
|
||||
require_once ABSPATH . WPINC . '/functions.php';
|
||||
}
|
||||
|
||||
if ( is_protected_endpoint() ) {
|
||||
$message = __( 'The site is experiencing technical difficulties. Please check your site admin email inbox for instructions.' );
|
||||
} else {
|
||||
$message = __( 'The site is experiencing technical difficulties.' );
|
||||
}
|
||||
|
||||
$args = array(
|
||||
'response' => 500,
|
||||
'exit' => false,
|
||||
);
|
||||
|
||||
/**
|
||||
* Filters the message that the default PHP error template displays.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $message HTML error message to display.
|
||||
* @param array $error Error information retrieved from `error_get_last()`.
|
||||
*/
|
||||
$message = apply_filters( 'wp_php_error_message', $message, $error );
|
||||
|
||||
/**
|
||||
* Filters the arguments passed to {@see wp_die()} for the default PHP error template.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param array $args Associative array of arguments passed to `wp_die()`. By default these contain a
|
||||
* 'response' key, and optionally 'link_url' and 'link_text' keys.
|
||||
* @param array $error Error information retrieved from `error_get_last()`.
|
||||
*/
|
||||
$args = apply_filters( 'wp_php_error_args', $args, $error );
|
||||
|
||||
$wp_error = new WP_Error(
|
||||
'internal_server_error',
|
||||
$message,
|
||||
array(
|
||||
'error' => $error,
|
||||
)
|
||||
);
|
||||
|
||||
wp_die( $wp_error, '', $args );
|
||||
}
|
||||
}
|
|
@ -60,6 +60,14 @@ class WP_Http_Cookie {
|
|||
*/
|
||||
public $domain;
|
||||
|
||||
/**
|
||||
* host-only flag.
|
||||
*
|
||||
* @since 5.2.0
|
||||
* @var bool
|
||||
*/
|
||||
public $host_only;
|
||||
|
||||
/**
|
||||
* Sets up this cookie object.
|
||||
*
|
||||
|
@ -67,16 +75,18 @@ class WP_Http_Cookie {
|
|||
* or a header string detailing it.
|
||||
*
|
||||
* @since 2.8.0
|
||||
* @since 5.2.0 Added `host_only` to the `$data` parameter.
|
||||
*
|
||||
* @param string|array $data {
|
||||
* Raw cookie data as header string or data array.
|
||||
*
|
||||
* @type string $name Cookie name.
|
||||
* @type mixed $value Value. Should NOT already be urlencoded.
|
||||
* @type string|int $expires Optional. Unix timestamp or formatted date. Default null.
|
||||
* @type string $path Optional. Path. Default '/'.
|
||||
* @type string $domain Optional. Domain. Default host of parsed $requested_url.
|
||||
* @type int $port Optional. Port. Default null.
|
||||
* @type string $name Cookie name.
|
||||
* @type mixed $value Value. Should NOT already be urlencoded.
|
||||
* @type string|int $expires Optional. Unix timestamp or formatted date. Default null.
|
||||
* @type string $path Optional. Path. Default '/'.
|
||||
* @type string $domain Optional. Domain. Default host of parsed $requested_url.
|
||||
* @type int $port Optional. Port. Default null.
|
||||
* @type bool $host_only Optional. host-only storage flag. Default true.
|
||||
* }
|
||||
* @param string $requested_url The URL which the cookie was set on, used for default $domain
|
||||
* and $port values.
|
||||
|
@ -128,7 +138,7 @@ class WP_Http_Cookie {
|
|||
}
|
||||
|
||||
// Set properties based directly on parameters.
|
||||
foreach ( array( 'name', 'value', 'path', 'domain', 'port' ) as $field ) {
|
||||
foreach ( array( 'name', 'value', 'path', 'domain', 'port', 'host_only' ) as $field ) {
|
||||
if ( isset( $data[ $field ] ) ) {
|
||||
$this->$field = $data[ $field ];
|
||||
}
|
||||
|
|
|
@ -164,11 +164,12 @@ class WP_HTTP_Requests_Response extends WP_HTTP_Response {
|
|||
foreach ( $this->response->cookies as $cookie ) {
|
||||
$cookies[] = new WP_Http_Cookie(
|
||||
array(
|
||||
'name' => $cookie->name,
|
||||
'value' => urldecode( $cookie->value ),
|
||||
'expires' => isset( $cookie->attributes['expires'] ) ? $cookie->attributes['expires'] : null,
|
||||
'path' => isset( $cookie->attributes['path'] ) ? $cookie->attributes['path'] : null,
|
||||
'domain' => isset( $cookie->attributes['domain'] ) ? $cookie->attributes['domain'] : null,
|
||||
'name' => $cookie->name,
|
||||
'value' => urldecode( $cookie->value ),
|
||||
'expires' => isset( $cookie->attributes['expires'] ) ? $cookie->attributes['expires'] : null,
|
||||
'path' => isset( $cookie->attributes['path'] ) ? $cookie->attributes['path'] : null,
|
||||
'domain' => isset( $cookie->attributes['domain'] ) ? $cookie->attributes['domain'] : null,
|
||||
'host_only' => isset( $cookie->flags['host-only'] ) ? $cookie->flags['host-only'] : null,
|
||||
)
|
||||
);
|
||||
}
|
||||
|
|
|
@ -115,6 +115,7 @@ class WP_Locale {
|
|||
* @since 2.1.0
|
||||
*
|
||||
* @global string $text_direction
|
||||
* @global string $wp_version
|
||||
*/
|
||||
public function init() {
|
||||
// The Weekdays
|
||||
|
@ -222,7 +223,7 @@ class WP_Locale {
|
|||
$this->text_direction = 'rtl';
|
||||
}
|
||||
|
||||
if ( 'rtl' === $this->text_direction && strpos( get_bloginfo( 'version' ), '-src' ) ) {
|
||||
if ( 'rtl' === $this->text_direction && strpos( $GLOBALS['wp_version'], '-src' ) ) {
|
||||
$this->text_direction = 'ltr';
|
||||
add_action( 'all_admin_notices', array( $this, 'rtl_src_admin_notice' ) );
|
||||
}
|
||||
|
|
|
@ -197,32 +197,51 @@ class WP_Network_Query {
|
|||
*/
|
||||
do_action_ref_array( 'pre_get_networks', array( &$this ) );
|
||||
|
||||
// $args can include anything. Only use the args defined in the query_var_defaults to compute the key.
|
||||
$_args = wp_array_slice_assoc( $this->query_vars, array_keys( $this->query_var_defaults ) );
|
||||
$network_ids = null;
|
||||
|
||||
// Ignore the $fields argument as the queried result will be the same regardless.
|
||||
unset( $_args['fields'] );
|
||||
/**
|
||||
* Filter the sites array before the query takes place.
|
||||
*
|
||||
* Return a non-null value to bypass WordPress's default site queries.
|
||||
*
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param array|null $site_ids Return an array of site data to short-circuit WP's site query,
|
||||
* or null to allow WP to run its normal queries.
|
||||
* @param WP_Network_Query $this The WP_Network_Query instance, passed by reference.
|
||||
*/
|
||||
$network_ids = apply_filters_ref_array( 'networks_pre_query', array( $network_ids, &$this ) );
|
||||
|
||||
$key = md5( serialize( $_args ) );
|
||||
$last_changed = wp_cache_get_last_changed( 'networks' );
|
||||
if ( null === $network_ids ) {
|
||||
|
||||
$cache_key = "get_network_ids:$key:$last_changed";
|
||||
$cache_value = wp_cache_get( $cache_key, 'networks' );
|
||||
// $args can include anything. Only use the args defined in the query_var_defaults to compute the key.
|
||||
$_args = wp_array_slice_assoc( $this->query_vars, array_keys( $this->query_var_defaults ) );
|
||||
|
||||
if ( false === $cache_value ) {
|
||||
$network_ids = $this->get_network_ids();
|
||||
if ( $network_ids ) {
|
||||
$this->set_found_networks();
|
||||
// Ignore the $fields argument as the queried result will be the same regardless.
|
||||
unset( $_args['fields'] );
|
||||
|
||||
$key = md5( serialize( $_args ) );
|
||||
$last_changed = wp_cache_get_last_changed( 'networks' );
|
||||
|
||||
$cache_key = "get_network_ids:$key:$last_changed";
|
||||
$cache_value = wp_cache_get( $cache_key, 'networks' );
|
||||
|
||||
if ( false === $cache_value ) {
|
||||
$network_ids = $this->get_network_ids();
|
||||
if ( $network_ids ) {
|
||||
$this->set_found_networks();
|
||||
}
|
||||
|
||||
$cache_value = array(
|
||||
'network_ids' => $network_ids,
|
||||
'found_networks' => $this->found_networks,
|
||||
);
|
||||
wp_cache_add( $cache_key, $cache_value, 'networks' );
|
||||
} else {
|
||||
$network_ids = $cache_value['network_ids'];
|
||||
$this->found_networks = $cache_value['found_networks'];
|
||||
}
|
||||
|
||||
$cache_value = array(
|
||||
'network_ids' => $network_ids,
|
||||
'found_networks' => $this->found_networks,
|
||||
);
|
||||
wp_cache_add( $cache_key, $cache_value, 'networks' );
|
||||
} else {
|
||||
$network_ids = $cache_value['network_ids'];
|
||||
$this->found_networks = $cache_value['found_networks'];
|
||||
}
|
||||
|
||||
if ( $this->found_networks && $this->query_vars['number'] ) {
|
||||
|
|
223
wp-includes/class-wp-paused-extensions-storage.php
Normal file
223
wp-includes/class-wp-paused-extensions-storage.php
Normal file
|
@ -0,0 +1,223 @@
|
|||
<?php
|
||||
/**
|
||||
* Error Protection API: WP_Paused_Extensions_Storage class
|
||||
*
|
||||
* @package WordPress
|
||||
* @since 5.2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Core class used for storing paused extensions.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
class WP_Paused_Extensions_Storage {
|
||||
|
||||
/**
|
||||
* Type of extension. Used to key extension storage.
|
||||
*
|
||||
* @since 5.2.0
|
||||
* @var string
|
||||
*/
|
||||
protected $type;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $extension_type Extension type. Either 'plugin' or 'theme'.
|
||||
*/
|
||||
public function __construct( $extension_type ) {
|
||||
$this->type = $extension_type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Records an extension error.
|
||||
*
|
||||
* Only one error is stored per extension, with subsequent errors for the same extension overriding the
|
||||
* previously stored error.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $extension Plugin or theme directory name.
|
||||
* @param array $error {
|
||||
* Error that was triggered.
|
||||
*
|
||||
* @type string $type The error type.
|
||||
* @type string $file The name of the file in which the error occurred.
|
||||
* @type string $line The line number in which the error occurred.
|
||||
* @type string $message The error message.
|
||||
* }
|
||||
* @return bool True on success, false on failure.
|
||||
*/
|
||||
public function set( $extension, $error ) {
|
||||
if ( ! $this->is_api_loaded() ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$option_name = $this->get_option_name();
|
||||
|
||||
if ( ! $option_name ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$paused_extensions = (array) get_option( $option_name, array() );
|
||||
|
||||
// Do not update if the error is already stored.
|
||||
if ( isset( $paused_extensions[ $this->type ][ $extension ] ) && $paused_extensions[ $this->type ][ $extension ] === $error ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$paused_extensions[ $this->type ][ $extension ] = $error;
|
||||
|
||||
return update_option( $option_name, $paused_extensions );
|
||||
}
|
||||
|
||||
/**
|
||||
* Forgets a previously recorded extension error.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $extension Plugin or theme directory name.
|
||||
*
|
||||
* @return bool True on success, false on failure.
|
||||
*/
|
||||
public function delete( $extension ) {
|
||||
if ( ! $this->is_api_loaded() ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$option_name = $this->get_option_name();
|
||||
|
||||
if ( ! $option_name ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$paused_extensions = (array) get_option( $option_name, array() );
|
||||
|
||||
// Do not delete if no error is stored.
|
||||
if ( ! isset( $paused_extensions[ $this->type ][ $extension ] ) ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
unset( $paused_extensions[ $this->type ][ $extension ] );
|
||||
|
||||
if ( empty( $paused_extensions[ $this->type ] ) ) {
|
||||
unset( $paused_extensions[ $this->type ] );
|
||||
}
|
||||
|
||||
// Clean up the entire option if we're removing the only error.
|
||||
if ( ! $paused_extensions ) {
|
||||
return delete_option( $option_name );
|
||||
}
|
||||
|
||||
return update_option( $option_name, $paused_extensions );
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the error for an extension, if paused.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $extension Plugin or theme directory name.
|
||||
*
|
||||
* @return array|null Error that is stored, or null if the extension is not paused.
|
||||
*/
|
||||
public function get( $extension ) {
|
||||
if ( ! $this->is_api_loaded() ) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$paused_extensions = $this->get_all();
|
||||
|
||||
if ( ! isset( $paused_extensions[ $extension ] ) ) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $paused_extensions[ $extension ];
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the paused extensions with their errors.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return array Associative array of extension slugs to the error recorded.
|
||||
*/
|
||||
public function get_all() {
|
||||
if ( ! $this->is_api_loaded() ) {
|
||||
return array();
|
||||
}
|
||||
|
||||
$option_name = $this->get_option_name();
|
||||
|
||||
if ( ! $option_name ) {
|
||||
return array();
|
||||
}
|
||||
|
||||
$paused_extensions = (array) get_option( $option_name, array() );
|
||||
|
||||
return isset( $paused_extensions[ $this->type ] ) ? $paused_extensions[ $this->type ] : array();
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove all paused extensions.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function delete_all() {
|
||||
if ( ! $this->is_api_loaded() ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$option_name = $this->get_option_name();
|
||||
|
||||
if ( ! $option_name ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$paused_extensions = (array) get_option( $option_name, array() );
|
||||
|
||||
unset( $paused_extensions[ $this->type ] );
|
||||
|
||||
if ( ! $paused_extensions ) {
|
||||
return delete_option( $option_name );
|
||||
}
|
||||
|
||||
return update_option( $option_name, $paused_extensions );
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the underlying API to store paused extensions is loaded.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return bool True if the API is loaded, false otherwise.
|
||||
*/
|
||||
protected function is_api_loaded() {
|
||||
return function_exists( 'get_option' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the option name for storing paused extensions.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function get_option_name() {
|
||||
if ( ! wp_recovery_mode()->is_active() ) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$session_id = wp_recovery_mode()->get_session_id();
|
||||
if ( empty( $session_id ) ) {
|
||||
return '';
|
||||
}
|
||||
|
||||
return "{$session_id}_paused_extensions";
|
||||
}
|
||||
}
|
|
@ -276,19 +276,19 @@ final class WP_Post {
|
|||
* @return bool
|
||||
*/
|
||||
public function __isset( $key ) {
|
||||
if ( 'ancestors' == $key ) {
|
||||
if ( 'ancestors' === $key ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ( 'page_template' == $key ) {
|
||||
if ( 'page_template' === $key ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ( 'post_category' == $key ) {
|
||||
if ( 'post_category' === $key ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ( 'tags_input' == $key ) {
|
||||
if ( 'tags_input' === $key ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -304,11 +304,11 @@ final class WP_Post {
|
|||
* @return mixed
|
||||
*/
|
||||
public function __get( $key ) {
|
||||
if ( 'page_template' == $key && $this->__isset( $key ) ) {
|
||||
if ( 'page_template' === $key && $this->__isset( $key ) ) {
|
||||
return get_post_meta( $this->ID, '_wp_page_template', true );
|
||||
}
|
||||
|
||||
if ( 'post_category' == $key ) {
|
||||
if ( 'post_category' === $key ) {
|
||||
if ( is_object_in_taxonomy( $this->post_type, 'category' ) ) {
|
||||
$terms = get_the_terms( $this, 'category' );
|
||||
}
|
||||
|
@ -320,7 +320,7 @@ final class WP_Post {
|
|||
return wp_list_pluck( $terms, 'term_id' );
|
||||
}
|
||||
|
||||
if ( 'tags_input' == $key ) {
|
||||
if ( 'tags_input' === $key ) {
|
||||
if ( is_object_in_taxonomy( $this->post_type, 'post_tag' ) ) {
|
||||
$terms = get_the_terms( $this, 'post_tag' );
|
||||
}
|
||||
|
@ -333,7 +333,7 @@ final class WP_Post {
|
|||
}
|
||||
|
||||
// Rest of the values need filtering.
|
||||
if ( 'ancestors' == $key ) {
|
||||
if ( 'ancestors' === $key ) {
|
||||
$value = get_post_ancestors( $this );
|
||||
} else {
|
||||
$value = get_post_meta( $this->ID, $key, true );
|
||||
|
@ -355,11 +355,11 @@ final class WP_Post {
|
|||
* @return array|bool|object|WP_Post
|
||||
*/
|
||||
public function filter( $filter ) {
|
||||
if ( $this->filter == $filter ) {
|
||||
if ( $this->filter === $filter ) {
|
||||
return $this;
|
||||
}
|
||||
|
||||
if ( $filter == 'raw' ) {
|
||||
if ( 'raw' === $filter ) {
|
||||
return self::get_instance( $this->ID );
|
||||
}
|
||||
|
||||
|
|
|
@ -325,6 +325,14 @@ class WP_Query {
|
|||
*/
|
||||
public $is_home = false;
|
||||
|
||||
/**
|
||||
* Signifies whether the current query is for the Privacy Policy page.
|
||||
*
|
||||
* @since 5.2.0
|
||||
* @var bool
|
||||
*/
|
||||
public $is_privacy_policy = false;
|
||||
|
||||
/**
|
||||
* Signifies whether the current query couldn't find anything.
|
||||
*
|
||||
|
@ -463,6 +471,7 @@ class WP_Query {
|
|||
$this->is_comment_feed = false;
|
||||
$this->is_trackback = false;
|
||||
$this->is_home = false;
|
||||
$this->is_privacy_policy = false;
|
||||
$this->is_404 = false;
|
||||
$this->is_paged = false;
|
||||
$this->is_admin = false;
|
||||
|
@ -998,6 +1007,10 @@ class WP_Query {
|
|||
$this->is_home = true;
|
||||
$this->is_posts_page = true;
|
||||
}
|
||||
|
||||
if ( isset( $this->queried_object_id ) && $this->queried_object_id == get_option( 'wp_page_for_privacy_policy' ) ) {
|
||||
$this->is_privacy_policy = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ( $qv['page_id'] ) {
|
||||
|
@ -1006,6 +1019,10 @@ class WP_Query {
|
|||
$this->is_home = true;
|
||||
$this->is_posts_page = true;
|
||||
}
|
||||
|
||||
if ( $qv['page_id'] == get_option( 'wp_page_for_privacy_policy' ) ) {
|
||||
$this->is_privacy_policy = true;
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! empty( $qv['post_type'] ) ) {
|
||||
|
@ -3877,6 +3894,27 @@ class WP_Query {
|
|||
return (bool) $this->is_home;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the query for the Privacy Policy page?
|
||||
*
|
||||
* This is the page which shows the Privacy Policy content of your site.
|
||||
*
|
||||
* Depends on the site's "Change your Privacy Policy page" Privacy Settings 'wp_page_for_privacy_policy'.
|
||||
*
|
||||
* This function will return true only on the page you set as the "Privacy Policy page".
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return bool True, if Privacy Policy page.
|
||||
*/
|
||||
public function is_privacy_policy() {
|
||||
if ( get_option( 'wp_page_for_privacy_policy' ) && $this->is_page( get_option( 'wp_page_for_privacy_policy' ) ) ) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the query for an existing month archive?
|
||||
*
|
||||
|
@ -4155,6 +4193,53 @@ class WP_Query {
|
|||
return;
|
||||
}
|
||||
|
||||
$elements = $this->generate_postdata( $post );
|
||||
if ( false === $elements ) {
|
||||
return;
|
||||
}
|
||||
|
||||
$id = $elements['id'];
|
||||
$authordata = $elements['authordata'];
|
||||
$currentday = $elements['currentday'];
|
||||
$currentmonth = $elements['currentmonth'];
|
||||
$page = $elements['page'];
|
||||
$pages = $elements['pages'];
|
||||
$multipage = $elements['multipage'];
|
||||
$more = $elements['more'];
|
||||
$numpages = $elements['numpages'];
|
||||
|
||||
/**
|
||||
* Fires once the post data has been setup.
|
||||
*
|
||||
* @since 2.8.0
|
||||
* @since 4.1.0 Introduced `$this` parameter.
|
||||
*
|
||||
* @param WP_Post $post The Post object (passed by reference).
|
||||
* @param WP_Query $this The current Query object (passed by reference).
|
||||
*/
|
||||
do_action_ref_array( 'the_post', array( &$post, &$this ) );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate post data.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param WP_Post|object|int $post WP_Post instance or Post ID/object.
|
||||
* @return array|bool $elements Elements of post or false on failure.
|
||||
*/
|
||||
public function generate_postdata( $post ) {
|
||||
|
||||
if ( ! ( $post instanceof WP_Post ) ) {
|
||||
$post = get_post( $post );
|
||||
}
|
||||
|
||||
if ( ! $post ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$id = (int) $post->ID;
|
||||
|
||||
$authordata = get_userdata( $post->post_author );
|
||||
|
@ -4224,18 +4309,9 @@ class WP_Query {
|
|||
$multipage = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fires once the post data has been setup.
|
||||
*
|
||||
* @since 2.8.0
|
||||
* @since 4.1.0 Introduced `$this` parameter.
|
||||
*
|
||||
* @param WP_Post $post The Post object (passed by reference).
|
||||
* @param WP_Query $this The current Query object (passed by reference).
|
||||
*/
|
||||
do_action_ref_array( 'the_post', array( &$post, &$this ) );
|
||||
$elements = compact( 'id', 'authordata', 'currentday', 'currentmonth', 'page', 'pages', 'multipage', 'more', 'numpages' );
|
||||
|
||||
return true;
|
||||
return $elements;
|
||||
}
|
||||
/**
|
||||
* After looping through a nested query, this function
|
||||
|
|
229
wp-includes/class-wp-recovery-mode-cookie-service.php
Normal file
229
wp-includes/class-wp-recovery-mode-cookie-service.php
Normal file
|
@ -0,0 +1,229 @@
|
|||
<?php
|
||||
/**
|
||||
* Error Protection API: WP_Recovery_Mode_Cookie_Service class
|
||||
*
|
||||
* @package WordPress
|
||||
* @since 5.2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Core class used to set, validate, and clear cookies that identify a Recovery Mode session.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
final class WP_Recovery_Mode_Cookie_Service {
|
||||
|
||||
/**
|
||||
* Checks whether the recovery mode cookie is set.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return bool True if the cookie is set, false otherwise.
|
||||
*/
|
||||
public function is_cookie_set() {
|
||||
return ! empty( $_COOKIE[ RECOVERY_MODE_COOKIE ] );
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the recovery mode cookie.
|
||||
*
|
||||
* This must be immediately followed by exiting the request.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
public function set_cookie() {
|
||||
|
||||
$value = $this->generate_cookie();
|
||||
|
||||
setcookie( RECOVERY_MODE_COOKIE, $value, 0, COOKIEPATH, COOKIE_DOMAIN, is_ssl(), true );
|
||||
|
||||
if ( COOKIEPATH !== SITECOOKIEPATH ) {
|
||||
setcookie( RECOVERY_MODE_COOKIE, $value, 0, SITECOOKIEPATH, COOKIE_DOMAIN, is_ssl(), true );
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the recovery mode cookie.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
public function clear_cookie() {
|
||||
setcookie( RECOVERY_MODE_COOKIE, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN );
|
||||
setcookie( RECOVERY_MODE_COOKIE, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN );
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates the recovery mode cookie.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $cookie Optionally specify the cookie string.
|
||||
* If omitted, it will be retrieved from the super global.
|
||||
* @return true|WP_Error True on success, error object on failure.
|
||||
*/
|
||||
public function validate_cookie( $cookie = '' ) {
|
||||
|
||||
if ( ! $cookie ) {
|
||||
if ( empty( $_COOKIE[ RECOVERY_MODE_COOKIE ] ) ) {
|
||||
return new WP_Error( 'no_cookie', __( 'No cookie present.' ) );
|
||||
}
|
||||
|
||||
$cookie = $_COOKIE[ RECOVERY_MODE_COOKIE ];
|
||||
}
|
||||
|
||||
$parts = $this->parse_cookie( $cookie );
|
||||
|
||||
if ( is_wp_error( $parts ) ) {
|
||||
return $parts;
|
||||
}
|
||||
|
||||
list( , $created_at, $random, $signature ) = $parts;
|
||||
|
||||
if ( ! ctype_digit( $created_at ) ) {
|
||||
return new WP_Error( 'invalid_created_at', __( 'Invalid cookie format.' ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter the length of time a Recovery Mode cookie is valid for.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param int $length Length in seconds.
|
||||
*/
|
||||
$length = apply_filters( 'recovery_mode_cookie_length', WEEK_IN_SECONDS );
|
||||
|
||||
if ( time() > $created_at + $length ) {
|
||||
return new WP_Error( 'expired', __( 'Cookie expired.' ) );
|
||||
}
|
||||
|
||||
$to_sign = sprintf( 'recovery_mode|%s|%s', $created_at, $random );
|
||||
$hashed = $this->recovery_mode_hash( $to_sign );
|
||||
|
||||
if ( ! hash_equals( $signature, $hashed ) ) {
|
||||
return new WP_Error( 'signature_mismatch', __( 'Invalid cookie.' ) );
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the session identifier from the cookie.
|
||||
*
|
||||
* The cookie should be validated before calling this API.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $cookie Optionally specify the cookie string.
|
||||
* If omitted, it will be retrieved from the super global.
|
||||
* @return string|WP_Error Session ID on success, or error object on failure.
|
||||
*/
|
||||
public function get_session_id_from_cookie( $cookie = '' ) {
|
||||
if ( ! $cookie ) {
|
||||
if ( empty( $_COOKIE[ RECOVERY_MODE_COOKIE ] ) ) {
|
||||
return new WP_Error( 'no_cookie', __( 'No cookie present.' ) );
|
||||
}
|
||||
|
||||
$cookie = $_COOKIE[ RECOVERY_MODE_COOKIE ];
|
||||
}
|
||||
|
||||
$parts = $this->parse_cookie( $cookie );
|
||||
if ( is_wp_error( $parts ) ) {
|
||||
return $parts;
|
||||
}
|
||||
|
||||
list( , , $random ) = $parts;
|
||||
|
||||
return sha1( $random );
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses the cookie into its four parts.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $cookie Cookie content.
|
||||
* @return array|WP_Error Cookie parts array, or error object on failure.
|
||||
*/
|
||||
private function parse_cookie( $cookie ) {
|
||||
$cookie = base64_decode( $cookie );
|
||||
$parts = explode( '|', $cookie );
|
||||
|
||||
if ( 4 !== count( $parts ) ) {
|
||||
return new WP_Error( 'invalid_format', __( 'Invalid cookie format.' ) );
|
||||
}
|
||||
|
||||
return $parts;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the recovery mode cookie value.
|
||||
*
|
||||
* The cookie is a base64 encoded string with the following format:
|
||||
*
|
||||
* recovery_mode|iat|rand|signature
|
||||
*
|
||||
* Where "recovery_mode" is a constant string,
|
||||
* iat is the time the cookie was generated at,
|
||||
* rand is a randomly generated password that is also used as a session identifier
|
||||
* and signature is an hmac of the preceding 3 parts.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return string Generated cookie content.
|
||||
*/
|
||||
private function generate_cookie() {
|
||||
$to_sign = sprintf( 'recovery_mode|%s|%s', time(), wp_generate_password( 20, false ) );
|
||||
$signed = $this->recovery_mode_hash( $to_sign );
|
||||
|
||||
return base64_encode( sprintf( '%s|%s', $to_sign, $signed ) );
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a form of `wp_hash()` specific to Recovery Mode.
|
||||
*
|
||||
* We cannot use `wp_hash()` because it is defined in `pluggable.php` which is not loaded until after plugins are loaded,
|
||||
* which is too late to verify the recovery mode cookie.
|
||||
*
|
||||
* This tries to use the `AUTH` salts first, but if they aren't valid specific salts will be generated and stored.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $data Data to hash.
|
||||
* @return string|false The hashed $data, or false on failure.
|
||||
*/
|
||||
private function recovery_mode_hash( $data ) {
|
||||
if ( ! defined( 'AUTH_KEY' ) || AUTH_KEY === 'put your unique phrase here' ) {
|
||||
$auth_key = get_site_option( 'recovery_mode_auth_key' );
|
||||
|
||||
if ( ! $auth_key ) {
|
||||
if ( ! function_exists( 'wp_generate_password' ) ) {
|
||||
require_once ABSPATH . WPINC . '/pluggable.php';
|
||||
}
|
||||
|
||||
$auth_key = wp_generate_password( 64, true, true );
|
||||
update_site_option( 'recovery_mode_auth_key', $auth_key );
|
||||
}
|
||||
} else {
|
||||
$auth_key = AUTH_KEY;
|
||||
}
|
||||
|
||||
if ( ! defined( 'AUTH_SALT' ) || AUTH_SALT === 'put your unique phrase here' || AUTH_SALT === $auth_key ) {
|
||||
$auth_salt = get_site_option( 'recovery_mode_auth_salt' );
|
||||
|
||||
if ( ! $auth_salt ) {
|
||||
if ( ! function_exists( 'wp_generate_password' ) ) {
|
||||
require_once ABSPATH . WPINC . '/pluggable.php';
|
||||
}
|
||||
|
||||
$auth_salt = wp_generate_password( 64, true, true );
|
||||
update_site_option( 'recovery_mode_auth_salt', $auth_salt );
|
||||
}
|
||||
} else {
|
||||
$auth_salt = AUTH_SALT;
|
||||
}
|
||||
|
||||
$secret = $auth_key . $auth_salt;
|
||||
|
||||
return hash_hmac( 'sha1', $data, $secret );
|
||||
}
|
||||
}
|
268
wp-includes/class-wp-recovery-mode-email-service.php
Normal file
268
wp-includes/class-wp-recovery-mode-email-service.php
Normal file
|
@ -0,0 +1,268 @@
|
|||
<?php
|
||||
/**
|
||||
* Error Protection API: WP_Recovery_Mode_Email_Link class
|
||||
*
|
||||
* @package WordPress
|
||||
* @since 5.2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Core class used to send an email with a link to begin Recovery Mode.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
final class WP_Recovery_Mode_Email_Service {
|
||||
|
||||
const RATE_LIMIT_OPTION = 'recovery_mode_email_last_sent';
|
||||
|
||||
/**
|
||||
* Service to generate recovery mode URLs.
|
||||
*
|
||||
* @since 5.2.0
|
||||
* @var WP_Recovery_Mode_Link_Service
|
||||
*/
|
||||
private $link_service;
|
||||
|
||||
/**
|
||||
* WP_Recovery_Mode_Email_Service constructor.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param WP_Recovery_Mode_Link_Service $link_service
|
||||
*/
|
||||
public function __construct( WP_Recovery_Mode_Link_Service $link_service ) {
|
||||
$this->link_service = $link_service;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends the recovery mode email if the rate limit has not been sent.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param int $rate_limit Number of seconds before another email can be sent.
|
||||
* @param array $error Error details from {@see error_get_last()}
|
||||
* @param array $extension The extension that caused the error. {
|
||||
* @type string $slug The extension slug. The plugin or theme's directory.
|
||||
* @type string $type The extension type. Either 'plugin' or 'theme'.
|
||||
* }
|
||||
* @return true|WP_Error True if email sent, WP_Error otherwise.
|
||||
*/
|
||||
public function maybe_send_recovery_mode_email( $rate_limit, $error, $extension ) {
|
||||
|
||||
$last_sent = get_option( self::RATE_LIMIT_OPTION );
|
||||
|
||||
if ( ! $last_sent || time() > $last_sent + $rate_limit ) {
|
||||
if ( ! update_option( self::RATE_LIMIT_OPTION, time() ) ) {
|
||||
return new WP_Error( 'storage_error', __( 'Could not update the email last sent time.' ) );
|
||||
}
|
||||
|
||||
$sent = $this->send_recovery_mode_email( $rate_limit, $error, $extension );
|
||||
|
||||
if ( $sent ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return new WP_Error( 'email_failed', __( 'The email could not be sent. Possible reason: your host may have disabled the mail() function.' ) );
|
||||
}
|
||||
|
||||
$err_message = sprintf(
|
||||
/* translators: 1. Last sent as a human time diff 2. Wait time as a human time diff. */
|
||||
__( 'A recovery link was already sent %1$s ago. Please wait another %2$s before requesting a new email.' ),
|
||||
human_time_diff( $last_sent ),
|
||||
human_time_diff( $last_sent + $rate_limit )
|
||||
);
|
||||
|
||||
return new WP_Error( 'email_sent_already', $err_message );
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears the rate limit, allowing a new recovery mode email to be sent immediately.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return bool True on success, false on failure.
|
||||
*/
|
||||
public function clear_rate_limit() {
|
||||
return delete_option( self::RATE_LIMIT_OPTION );
|
||||
}
|
||||
|
||||
/**
|
||||
* Sends the Recovery Mode email to the site admin email address.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param int $rate_limit Number of seconds before another email can be sent.
|
||||
* @param array $error Error details from {@see error_get_last()}
|
||||
* @param array $extension Extension that caused the error.
|
||||
*
|
||||
* @return bool Whether the email was sent successfully.
|
||||
*/
|
||||
private function send_recovery_mode_email( $rate_limit, $error, $extension ) {
|
||||
|
||||
$url = $this->link_service->generate_url();
|
||||
$blogname = wp_specialchars_decode( get_option( 'blogname' ), ENT_QUOTES );
|
||||
|
||||
$switched_locale = false;
|
||||
|
||||
// The switch_to_locale() function is loaded before it can actually be used.
|
||||
if ( function_exists( 'switch_to_locale' ) && isset( $GLOBALS['wp_locale_switcher'] ) ) {
|
||||
$switched_locale = switch_to_locale( get_locale() );
|
||||
}
|
||||
|
||||
if ( $extension ) {
|
||||
$cause = $this->get_cause( $extension );
|
||||
$details = wp_strip_all_tags( wp_get_extension_error_description( $error ) );
|
||||
|
||||
if ( $details ) {
|
||||
$header = __( 'Error Details' );
|
||||
$details = "\n\n" . $header . "\n" . str_pad( '', strlen( $header ), '=' ) . "\n" . $details;
|
||||
}
|
||||
} else {
|
||||
$cause = '';
|
||||
$details = '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Filters the support message sent with the the fatal error protection email.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param $message string The Message to include in the email.
|
||||
*/
|
||||
$support = apply_filters( 'recovery_email_support_info', __( 'Please contact your host for assistance with investigating this issue further.' ) );
|
||||
|
||||
/* translators: Do not translate LINK, EXPIRES, CAUSE, DETAILS, SITEURL, PAGEURL, SUPPORT: those are placeholders. */
|
||||
$message = __(
|
||||
'Howdy!
|
||||
|
||||
Since WordPress 5.2 there is a built-in feature that detects when a plugin or theme causes a fatal error on your site, and notifies you with this automated email.
|
||||
###CAUSE###
|
||||
First, visit your website (###SITEURL###) and check for any visible issues. Next, visit the page where the error was caught (###PAGEURL###) and check for any visible issues.
|
||||
|
||||
###SUPPORT###
|
||||
|
||||
If your site appears broken and you can\'t access your dashboard normally, WordPress now has a special "recovery mode". This lets you safely login to your dashboard and investigate further.
|
||||
|
||||
###LINK###
|
||||
|
||||
To keep your site safe, this link will expire in ###EXPIRES###. Don\'t worry about that, though: a new link will be emailed to you if the error occurs again after it expires.
|
||||
|
||||
###DETAILS###'
|
||||
);
|
||||
$message = str_replace(
|
||||
array(
|
||||
'###LINK###',
|
||||
'###EXPIRES###',
|
||||
'###CAUSE###',
|
||||
'###DETAILS###',
|
||||
'###SITEURL###',
|
||||
'###PAGEURL###',
|
||||
'###SUPPORT###',
|
||||
),
|
||||
array(
|
||||
$url,
|
||||
human_time_diff( time() + $rate_limit ),
|
||||
$cause ? "\n{$cause}\n" : "\n",
|
||||
$details,
|
||||
home_url( '/' ),
|
||||
home_url( $_SERVER['REQUEST_URI'] ),
|
||||
$support,
|
||||
),
|
||||
$message
|
||||
);
|
||||
|
||||
$email = array(
|
||||
'to' => $this->get_recovery_mode_email_address(),
|
||||
/* translators: %s: site name */
|
||||
'subject' => __( '[%s] Your Site is Experiencing a Technical Issue' ),
|
||||
'message' => $message,
|
||||
'headers' => '',
|
||||
);
|
||||
|
||||
/**
|
||||
* Filter the contents of the Recovery Mode email.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param array $email Used to build wp_mail().
|
||||
* @param string $url URL to enter recovery mode.
|
||||
*/
|
||||
$email = apply_filters( 'recovery_mode_email', $email, $url );
|
||||
|
||||
$sent = wp_mail(
|
||||
$email['to'],
|
||||
wp_specialchars_decode( sprintf( $email['subject'], $blogname ) ),
|
||||
$email['message'],
|
||||
$email['headers']
|
||||
);
|
||||
|
||||
if ( $switched_locale ) {
|
||||
restore_previous_locale();
|
||||
}
|
||||
|
||||
return $sent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the email address to send the recovery mode link to.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return string Email address to send recovery mode link to.
|
||||
*/
|
||||
private function get_recovery_mode_email_address() {
|
||||
if ( defined( 'RECOVERY_MODE_EMAIL' ) && is_email( RECOVERY_MODE_EMAIL ) ) {
|
||||
return RECOVERY_MODE_EMAIL;
|
||||
}
|
||||
|
||||
return get_option( 'admin_email' );
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the description indicating the possible cause for the error.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param array $extension The extension that caused the error.
|
||||
* @return string Message about which extension caused the error.
|
||||
*/
|
||||
private function get_cause( $extension ) {
|
||||
|
||||
if ( 'plugin' === $extension['type'] ) {
|
||||
if ( ! function_exists( 'get_plugins' ) ) {
|
||||
require_once ABSPATH . 'wp-admin/includes/plugin.php';
|
||||
}
|
||||
|
||||
$plugins = get_plugins();
|
||||
|
||||
$name = '';
|
||||
|
||||
// Assume plugin main file name first since it is a common convention.
|
||||
if ( isset( $plugins[ "{$extension['slug']}/{$extension['slug']}.php" ] ) ) {
|
||||
$name = $plugins[ "{$extension['slug']}/{$extension['slug']}.php" ]['Name'];
|
||||
} else {
|
||||
foreach ( $plugins as $file => $plugin_data ) {
|
||||
if ( 0 === strpos( $file, "{$extension['slug']}/" ) || $file === $extension['slug'] ) {
|
||||
$name = $plugin_data['Name'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ( empty( $name ) ) {
|
||||
$name = $extension['slug'];
|
||||
}
|
||||
|
||||
/* translators: %s: plugin name */
|
||||
$cause = sprintf( __( 'In this case, WordPress caught an error with one of your plugins, %s.' ), $name );
|
||||
} else {
|
||||
$theme = wp_get_theme( $extension['slug'] );
|
||||
$name = $theme->exists() ? $theme->display( 'Name' ) : $extension['slug'];
|
||||
|
||||
/* translators: %s: theme name */
|
||||
$cause = sprintf( __( 'In this case, WordPress caught an error with your theme, %s.' ), $name );
|
||||
}
|
||||
|
||||
return $cause;
|
||||
}
|
||||
}
|
183
wp-includes/class-wp-recovery-mode-key-service.php
Normal file
183
wp-includes/class-wp-recovery-mode-key-service.php
Normal file
|
@ -0,0 +1,183 @@
|
|||
<?php
|
||||
/**
|
||||
* Error Protection API: WP_Recovery_Mode_Key_Service class
|
||||
*
|
||||
* @package WordPress
|
||||
* @since 5.2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Core class used to generate and validate keys used to enter Recovery Mode.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
final class WP_Recovery_Mode_Key_Service {
|
||||
|
||||
/**
|
||||
* The option name used to store the keys.
|
||||
*
|
||||
* @since 5.2.0
|
||||
* @var string
|
||||
*/
|
||||
private $option_name = 'recovery_keys';
|
||||
|
||||
/**
|
||||
* Creates a recovery mode token.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return string $token A random string to identify its associated key in storage.
|
||||
*/
|
||||
public function generate_recovery_mode_token() {
|
||||
return wp_generate_password( 22, false );
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a recovery mode key.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @global PasswordHash $wp_hasher
|
||||
*
|
||||
* @param string $token A token generated by {@see generate_recovery_mode_token()}.
|
||||
* @return string $key Recovery mode key.
|
||||
*/
|
||||
public function generate_and_store_recovery_mode_key( $token ) {
|
||||
|
||||
global $wp_hasher;
|
||||
|
||||
$key = wp_generate_password( 22, false );
|
||||
|
||||
if ( empty( $wp_hasher ) ) {
|
||||
require_once ABSPATH . WPINC . '/class-phpass.php';
|
||||
$wp_hasher = new PasswordHash( 8, true );
|
||||
}
|
||||
|
||||
$hashed = $wp_hasher->HashPassword( $key );
|
||||
|
||||
$records = $this->get_keys();
|
||||
|
||||
$records[ $token ] = array(
|
||||
'hashed_key' => $hashed,
|
||||
'created_at' => time(),
|
||||
);
|
||||
|
||||
$this->update_keys( $records );
|
||||
|
||||
/**
|
||||
* Fires when a recovery mode key is generated.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $token The recovery data token.
|
||||
* @param string $key The recovery mode key.
|
||||
*/
|
||||
do_action( 'generate_recovery_mode_key', $token, $key );
|
||||
|
||||
return $key;
|
||||
}
|
||||
|
||||
/**
|
||||
* Verifies if the recovery mode key is correct.
|
||||
*
|
||||
* Recovery mode keys can only be used once; the key will be consumed in the process.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $token The token used when generating the given key.
|
||||
* @param string $key The unhashed key.
|
||||
* @param int $ttl Time in seconds for the key to be valid for.
|
||||
* @return true|WP_Error True on success, error object on failure.
|
||||
*/
|
||||
public function validate_recovery_mode_key( $token, $key, $ttl ) {
|
||||
|
||||
$records = $this->get_keys();
|
||||
|
||||
if ( ! isset( $records[ $token ] ) ) {
|
||||
return new WP_Error( 'token_not_found', __( 'Recovery Mode not initialized.' ) );
|
||||
}
|
||||
|
||||
$record = $records[ $token ];
|
||||
|
||||
$this->remove_key( $token );
|
||||
|
||||
if ( ! is_array( $record ) || ! isset( $record['hashed_key'], $record['created_at'] ) ) {
|
||||
return new WP_Error( 'invalid_recovery_key_format', __( 'Invalid recovery key format.' ) );
|
||||
}
|
||||
|
||||
if ( ! wp_check_password( $key, $record['hashed_key'] ) ) {
|
||||
return new WP_Error( 'hash_mismatch', __( 'Invalid recovery key.' ) );
|
||||
}
|
||||
|
||||
if ( time() > $record['created_at'] + $ttl ) {
|
||||
return new WP_Error( 'key_expired', __( 'Recovery key expired.' ) );
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes expired recovery mode keys.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param int $ttl Time in seconds for the keys to be valid for.
|
||||
*/
|
||||
public function clean_expired_keys( $ttl ) {
|
||||
|
||||
$records = $this->get_keys();
|
||||
|
||||
foreach ( $records as $key => $record ) {
|
||||
if ( ! isset( $record['created_at'] ) || time() > $record['created_at'] + $ttl ) {
|
||||
unset( $records[ $key ] );
|
||||
}
|
||||
}
|
||||
|
||||
$this->update_keys( $records );
|
||||
}
|
||||
|
||||
/**
|
||||
* Removes a used recovery key.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $token The token used when generating a recovery mode key.
|
||||
*/
|
||||
private function remove_key( $token ) {
|
||||
|
||||
$records = $this->get_keys();
|
||||
|
||||
if ( ! isset( $records[ $token ] ) ) {
|
||||
return;
|
||||
}
|
||||
|
||||
unset( $records[ $token ] );
|
||||
|
||||
$this->update_keys( $records );
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the recovery key records.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return array Associative array of $token => $data pairs, where $data has keys 'hashed_key'
|
||||
* and 'created_at'.
|
||||
*/
|
||||
private function get_keys() {
|
||||
return (array) get_option( $this->option_name, array() );
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the recovery key records.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param array $keys Associative array of $token => $data pairs, where $data has keys 'hashed_key'
|
||||
* and 'created_at'.
|
||||
* @return bool True on success, false on failure.
|
||||
*/
|
||||
private function update_keys( array $keys ) {
|
||||
return update_option( $this->option_name, $keys );
|
||||
}
|
||||
}
|
127
wp-includes/class-wp-recovery-mode-link-service.php
Normal file
127
wp-includes/class-wp-recovery-mode-link-service.php
Normal file
|
@ -0,0 +1,127 @@
|
|||
<?php
|
||||
/**
|
||||
* Error Protection API: WP_Recovery_Mode_Link_Handler class
|
||||
*
|
||||
* @package WordPress
|
||||
* @since 5.2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Core class used to generate and handle recovery mode links.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
class WP_Recovery_Mode_Link_Service {
|
||||
const LOGIN_ACTION_ENTER = 'enter_recovery_mode';
|
||||
const LOGIN_ACTION_ENTERED = 'entered_recovery_mode';
|
||||
|
||||
/**
|
||||
* Service to generate and validate recovery mode keys.
|
||||
*
|
||||
* @since 5.2.0
|
||||
* @var WP_Recovery_Mode_Key_Service
|
||||
*/
|
||||
private $key_service;
|
||||
|
||||
/**
|
||||
* Service to handle cookies.
|
||||
*
|
||||
* @since 5.2.0
|
||||
* @var WP_Recovery_Mode_Cookie_Service
|
||||
*/
|
||||
private $cookie_service;
|
||||
|
||||
/**
|
||||
* WP_Recovery_Mode_Link_Service constructor.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param WP_Recovery_Mode_Cookie_Service $cookie_service Service to handle setting the recovery mode cookie.
|
||||
* @param WP_Recovery_Mode_Key_Service $key_service Service to handle generating recovery mode keys.
|
||||
*/
|
||||
public function __construct( WP_Recovery_Mode_Cookie_Service $cookie_service, WP_Recovery_Mode_Key_Service $key_service ) {
|
||||
$this->cookie_service = $cookie_service;
|
||||
$this->key_service = $key_service;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates a URL to begin recovery mode.
|
||||
*
|
||||
* Only one recovery mode URL can may be valid at the same time.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return string Generated URL.
|
||||
*/
|
||||
public function generate_url() {
|
||||
$token = $this->key_service->generate_recovery_mode_token();
|
||||
$key = $this->key_service->generate_and_store_recovery_mode_key( $token );
|
||||
|
||||
return $this->get_recovery_mode_begin_url( $token, $key );
|
||||
}
|
||||
|
||||
/**
|
||||
* Enters recovery mode when the user hits wp-login.php with a valid recovery mode link.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param int $ttl Number of seconds the link should be valid for.
|
||||
*/
|
||||
public function handle_begin_link( $ttl ) {
|
||||
if ( ! isset( $GLOBALS['pagenow'] ) || 'wp-login.php' !== $GLOBALS['pagenow'] ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! isset( $_GET['action'], $_GET['rm_token'], $_GET['rm_key'] ) || self::LOGIN_ACTION_ENTER !== $_GET['action'] ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! function_exists( 'wp_generate_password' ) ) {
|
||||
require_once ABSPATH . WPINC . '/pluggable.php';
|
||||
}
|
||||
|
||||
$validated = $this->key_service->validate_recovery_mode_key( $_GET['rm_token'], $_GET['rm_key'], $ttl );
|
||||
|
||||
if ( is_wp_error( $validated ) ) {
|
||||
wp_die( $validated, '' );
|
||||
}
|
||||
|
||||
$this->cookie_service->set_cookie();
|
||||
|
||||
$url = add_query_arg( 'action', self::LOGIN_ACTION_ENTERED, wp_login_url() );
|
||||
wp_redirect( $url );
|
||||
die;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a URL to begin recovery mode.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $token Recovery Mode token created by {@see generate_recovery_mode_token()}.
|
||||
* @param string $key Recovery Mode key created by {@see generate_and_store_recovery_mode_key()}.
|
||||
* @return string Recovery mode begin URL.
|
||||
*/
|
||||
private function get_recovery_mode_begin_url( $token, $key ) {
|
||||
|
||||
$url = add_query_arg(
|
||||
array(
|
||||
'action' => self::LOGIN_ACTION_ENTER,
|
||||
'rm_token' => $token,
|
||||
'rm_key' => $key,
|
||||
),
|
||||
wp_login_url()
|
||||
);
|
||||
|
||||
/**
|
||||
* Filter the URL to begin recovery mode.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $url The generated recovery mode begin URL.
|
||||
* @param string $token The token used to identify the key.
|
||||
* @param string $key The recovery mode key.
|
||||
*/
|
||||
return apply_filters( 'recovery_mode_begin_url', $url, $token, $key );
|
||||
}
|
||||
}
|
467
wp-includes/class-wp-recovery-mode.php
Normal file
467
wp-includes/class-wp-recovery-mode.php
Normal file
|
@ -0,0 +1,467 @@
|
|||
<?php
|
||||
/**
|
||||
* Error Protection API: WP_Recovery_Mode class
|
||||
*
|
||||
* @package WordPress
|
||||
* @since 5.2.0
|
||||
*/
|
||||
|
||||
/**
|
||||
* Core class used to implement Recovery Mode.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
class WP_Recovery_Mode {
|
||||
|
||||
const EXIT_ACTION = 'exit_recovery_mode';
|
||||
|
||||
/**
|
||||
* Service to handle cookies.
|
||||
*
|
||||
* @since 5.2.0
|
||||
* @var WP_Recovery_Mode_Cookie_Service
|
||||
*/
|
||||
private $cookie_service;
|
||||
|
||||
/**
|
||||
* Service to generate a recovery mode key.
|
||||
*
|
||||
* @since 5.2.0
|
||||
* @var WP_Recovery_Mode_Key_Service
|
||||
*/
|
||||
private $key_service;
|
||||
|
||||
/**
|
||||
* Service to generate and validate recovery mode links.
|
||||
*
|
||||
* @since 5.2.0
|
||||
* @var WP_Recovery_Mode_Link_Service
|
||||
*/
|
||||
private $link_service;
|
||||
|
||||
/**
|
||||
* Service to handle sending an email with a recovery mode link.
|
||||
*
|
||||
* @since 5.2.0
|
||||
* @var WP_Recovery_Mode_Email_Service
|
||||
*/
|
||||
private $email_service;
|
||||
|
||||
/**
|
||||
* Is recovery mode initialized.
|
||||
*
|
||||
* @since 5.2.0
|
||||
* @var bool
|
||||
*/
|
||||
private $is_initialized = false;
|
||||
|
||||
/**
|
||||
* Is recovery mode active in this session.
|
||||
*
|
||||
* @since 5.2.0
|
||||
* @var bool
|
||||
*/
|
||||
private $is_active = false;
|
||||
|
||||
/**
|
||||
* Get an ID representing the current recovery mode session.
|
||||
*
|
||||
* @since 5.2.0
|
||||
* @var string
|
||||
*/
|
||||
private $session_id = '';
|
||||
|
||||
/**
|
||||
* WP_Recovery_Mode constructor.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
public function __construct() {
|
||||
$this->cookie_service = new WP_Recovery_Mode_Cookie_Service();
|
||||
$this->key_service = new WP_Recovery_Mode_Key_Service();
|
||||
$this->link_service = new WP_Recovery_Mode_Link_Service( $this->cookie_service, $this->key_service );
|
||||
$this->email_service = new WP_Recovery_Mode_Email_Service( $this->link_service );
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize recovery mode for the current request.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
public function initialize() {
|
||||
$this->is_initialized = true;
|
||||
|
||||
add_action( 'wp_logout', array( $this, 'exit_recovery_mode' ) );
|
||||
add_action( 'login_form_' . self::EXIT_ACTION, array( $this, 'handle_exit_recovery_mode' ) );
|
||||
add_action( 'recovery_mode_clean_expired_keys', array( $this, 'clean_expired_keys' ) );
|
||||
|
||||
if ( ! wp_next_scheduled( 'recovery_mode_clean_expired_keys' ) && ! wp_installing() ) {
|
||||
wp_schedule_event( time(), 'daily', 'recovery_mode_clean_expired_keys' );
|
||||
}
|
||||
|
||||
if ( defined( 'WP_RECOVERY_MODE_SESSION_ID' ) ) {
|
||||
$this->is_active = true;
|
||||
$this->session_id = WP_RECOVERY_MODE_SESSION_ID;
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if ( $this->cookie_service->is_cookie_set() ) {
|
||||
$this->handle_cookie();
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$this->link_service->handle_begin_link( $this->get_link_ttl() );
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether recovery mode is active.
|
||||
*
|
||||
* This will not change after recovery mode has been initialized. {@see WP_Recovery_Mode::run()}.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return bool True if recovery mode is active, false otherwise.
|
||||
*/
|
||||
public function is_active() {
|
||||
return $this->is_active;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the recovery mode session ID.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return string The session ID if recovery mode is active, empty string otherwise.
|
||||
*/
|
||||
public function get_session_id() {
|
||||
return $this->session_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether recovery mode has been initialized.
|
||||
*
|
||||
* Recovery mode should not be used until this point. Initialization happens immediately before loading plugins.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function is_initialized() {
|
||||
return $this->is_initialized;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles a fatal error occurring.
|
||||
*
|
||||
* The calling API should immediately die() after calling this function.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param array $error Error details from {@see error_get_last()}
|
||||
* @return true|WP_Error True if the error was handled and headers have already been sent.
|
||||
* Or the request will exit to try and catch multiple errors at once.
|
||||
* WP_Error if an error occurred preventing it from being handled.
|
||||
*/
|
||||
public function handle_error( array $error ) {
|
||||
|
||||
$extension = $this->get_extension_for_error( $error );
|
||||
|
||||
if ( ! $extension || $this->is_network_plugin( $extension ) ) {
|
||||
return new WP_Error( 'invalid_source', __( 'Error not caused by a plugin or theme.' ) );
|
||||
}
|
||||
|
||||
if ( ! $this->is_active() ) {
|
||||
if ( ! is_protected_endpoint() ) {
|
||||
return new WP_Error( 'non_protected_endpoint', __( 'Error occurred on a non-protected endpoint.' ) );
|
||||
}
|
||||
|
||||
if ( ! function_exists( 'wp_generate_password' ) ) {
|
||||
require_once ABSPATH . WPINC . '/pluggable.php';
|
||||
}
|
||||
|
||||
return $this->email_service->maybe_send_recovery_mode_email( $this->get_email_rate_limit(), $error, $extension );
|
||||
}
|
||||
|
||||
if ( ! $this->store_error( $error ) ) {
|
||||
return new WP_Error( 'storage_error', __( 'Failed to store the error.' ) );
|
||||
}
|
||||
|
||||
if ( headers_sent() ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$this->redirect_protected();
|
||||
}
|
||||
|
||||
/**
|
||||
* Ends the current recovery mode session.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return bool True on success, false on failure.
|
||||
*/
|
||||
public function exit_recovery_mode() {
|
||||
if ( ! $this->is_active() ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->email_service->clear_rate_limit();
|
||||
$this->cookie_service->clear_cookie();
|
||||
|
||||
wp_paused_plugins()->delete_all();
|
||||
wp_paused_themes()->delete_all();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles a request to exit Recovery Mode.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
public function handle_exit_recovery_mode() {
|
||||
$redirect_to = wp_get_referer();
|
||||
|
||||
// Safety check in case referrer returns false.
|
||||
if ( ! $redirect_to ) {
|
||||
$redirect_to = is_user_logged_in() ? admin_url() : home_url();
|
||||
}
|
||||
|
||||
if ( ! $this->is_active() ) {
|
||||
wp_safe_redirect( $redirect_to );
|
||||
die;
|
||||
}
|
||||
|
||||
if ( ! isset( $_GET['action'] ) || self::EXIT_ACTION !== $_GET['action'] ) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ( ! isset( $_GET['_wpnonce'] ) || ! wp_verify_nonce( $_GET['_wpnonce'], self::EXIT_ACTION ) ) {
|
||||
wp_die( __( 'Exit recovery mode link expired.' ) );
|
||||
}
|
||||
|
||||
if ( ! $this->exit_recovery_mode() ) {
|
||||
wp_die( __( 'Failed to exit recovery mode. Please try again later.' ) );
|
||||
}
|
||||
|
||||
wp_safe_redirect( $redirect_to );
|
||||
die;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleans any recovery mode keys that have expired according to the link TTL.
|
||||
*
|
||||
* Executes on a daily cron schedule.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
public function clean_expired_keys() {
|
||||
$this->key_service->clean_expired_keys( $this->get_link_ttl() );
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles checking for the recovery mode cookie and validating it.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
protected function handle_cookie() {
|
||||
$validated = $this->cookie_service->validate_cookie();
|
||||
|
||||
if ( is_wp_error( $validated ) ) {
|
||||
$this->cookie_service->clear_cookie();
|
||||
|
||||
wp_die( $validated, '' );
|
||||
}
|
||||
|
||||
$session_id = $this->cookie_service->get_session_id_from_cookie();
|
||||
if ( is_wp_error( $session_id ) ) {
|
||||
$this->cookie_service->clear_cookie();
|
||||
|
||||
wp_die( $session_id, '' );
|
||||
}
|
||||
|
||||
$this->is_active = true;
|
||||
$this->session_id = $session_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the rate limit between sending new recovery mode email links.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return int Rate limit in seconds.
|
||||
*/
|
||||
protected function get_email_rate_limit() {
|
||||
/**
|
||||
* Filter the rate limit between sending new recovery mode email links.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param int $rate_limit Time to wait in seconds. Defaults to 1 day.
|
||||
*/
|
||||
return apply_filters( 'recovery_mode_email_rate_limit', DAY_IN_SECONDS );
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the number of seconds the recovery mode link is valid for.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @return int Interval in seconds.
|
||||
*/
|
||||
protected function get_link_ttl() {
|
||||
|
||||
$rate_limit = $this->get_email_rate_limit();
|
||||
$valid_for = $rate_limit;
|
||||
|
||||
/**
|
||||
* Filter the amount of time the recovery mode email link is valid for.
|
||||
*
|
||||
* The ttl must be at least as long as the email rate limit.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param int $valid_for The number of seconds the link is valid for.
|
||||
*/
|
||||
$valid_for = apply_filters( 'recovery_mode_email_link_ttl', $valid_for );
|
||||
|
||||
return max( $valid_for, $rate_limit );
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the extension that the error occurred in.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @global array $wp_theme_directories
|
||||
*
|
||||
* @param array $error Error that was triggered.
|
||||
*
|
||||
* @return array|false {
|
||||
* @type string $slug The extension slug. This is the plugin or theme's directory.
|
||||
* @type string $type The extension type. Either 'plugin' or 'theme'.
|
||||
* }
|
||||
*/
|
||||
protected function get_extension_for_error( $error ) {
|
||||
global $wp_theme_directories;
|
||||
|
||||
if ( ! isset( $error['file'] ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( ! defined( 'WP_PLUGIN_DIR' ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$error_file = wp_normalize_path( $error['file'] );
|
||||
$wp_plugin_dir = wp_normalize_path( WP_PLUGIN_DIR );
|
||||
|
||||
if ( 0 === strpos( $error_file, $wp_plugin_dir ) ) {
|
||||
$path = str_replace( $wp_plugin_dir . '/', '', $error_file );
|
||||
$parts = explode( '/', $path );
|
||||
|
||||
return array(
|
||||
'type' => 'plugin',
|
||||
'slug' => $parts[0],
|
||||
);
|
||||
}
|
||||
|
||||
if ( empty( $wp_theme_directories ) ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
foreach ( $wp_theme_directories as $theme_directory ) {
|
||||
$theme_directory = wp_normalize_path( $theme_directory );
|
||||
|
||||
if ( 0 === strpos( $error_file, $theme_directory ) ) {
|
||||
$path = str_replace( $theme_directory . '/', '', $error_file );
|
||||
$parts = explode( '/', $path );
|
||||
|
||||
return array(
|
||||
'type' => 'theme',
|
||||
'slug' => $parts[0],
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given extension a network activated plugin.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param array $extension Extension data.
|
||||
* @return bool True if network plugin, false otherwise.
|
||||
*/
|
||||
protected function is_network_plugin( $extension ) {
|
||||
if ( 'plugin' !== $extension['type'] ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ( ! is_multisite() ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$network_plugins = wp_get_active_network_plugins();
|
||||
|
||||
foreach ( $network_plugins as $plugin ) {
|
||||
if ( 0 === strpos( $plugin, $extension['slug'] . '/' ) ) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Stores the given error so that the extension causing it is paused.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param array $error Error that was triggered.
|
||||
* @return bool True if the error was stored successfully, false otherwise.
|
||||
*/
|
||||
protected function store_error( $error ) {
|
||||
$extension = $this->get_extension_for_error( $error );
|
||||
|
||||
if ( ! $extension ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
switch ( $extension['type'] ) {
|
||||
case 'plugin':
|
||||
return wp_paused_plugins()->set( $extension['slug'], $error );
|
||||
case 'theme':
|
||||
return wp_paused_themes()->set( $extension['slug'], $error );
|
||||
default:
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Redirects the current request to allow recovering multiple errors in one go.
|
||||
*
|
||||
* The redirection will only happen when on a protected endpoint.
|
||||
*
|
||||
* It must be ensured that this method is only called when an error actually occurred and will not occur on the
|
||||
* next request again. Otherwise it will create a redirect loop.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*/
|
||||
protected function redirect_protected() {
|
||||
// Pluggable is usually loaded after plugins, so we manually include it here for redirection functionality.
|
||||
if ( ! function_exists( 'wp_safe_redirect' ) ) {
|
||||
require_once ABSPATH . WPINC . '/pluggable.php';
|
||||
}
|
||||
|
||||
$scheme = is_ssl() ? 'https://' : 'http://';
|
||||
|
||||
$url = "{$scheme}{$_SERVER['HTTP_HOST']}{$_SERVER['REQUEST_URI']}";
|
||||
wp_safe_redirect( $url );
|
||||
exit;
|
||||
}
|
||||
}
|
|
@ -288,32 +288,51 @@ class WP_Site_Query {
|
|||
$this->meta_query_clauses = $this->meta_query->get_sql( 'blog', $wpdb->blogs, 'blog_id', $this );
|
||||
}
|
||||
|
||||
// $args can include anything. Only use the args defined in the query_var_defaults to compute the key.
|
||||
$_args = wp_array_slice_assoc( $this->query_vars, array_keys( $this->query_var_defaults ) );
|
||||
$site_ids = null;
|
||||
|
||||
// Ignore the $fields argument as the queried result will be the same regardless.
|
||||
unset( $_args['fields'] );
|
||||
/**
|
||||
* Filter the sites array before the query takes place.
|
||||
*
|
||||
* Return a non-null value to bypass WordPress's default site queries.
|
||||
*
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param array|null $site_ids Return an array of site data to short-circuit WP's site query,
|
||||
* or null to allow WP to run its normal queries.
|
||||
* @param WP_Site_Query $this The WP_Site_Query instance, passed by reference.
|
||||
*/
|
||||
$site_ids = apply_filters_ref_array( 'sites_pre_query', array( $site_ids, &$this ) );
|
||||
|
||||
$key = md5( serialize( $_args ) );
|
||||
$last_changed = wp_cache_get_last_changed( 'sites' );
|
||||
if ( null === $site_ids ) {
|
||||
|
||||
$cache_key = "get_sites:$key:$last_changed";
|
||||
$cache_value = wp_cache_get( $cache_key, 'sites' );
|
||||
// $args can include anything. Only use the args defined in the query_var_defaults to compute the key.
|
||||
$_args = wp_array_slice_assoc( $this->query_vars, array_keys( $this->query_var_defaults ) );
|
||||
|
||||
if ( false === $cache_value ) {
|
||||
$site_ids = $this->get_site_ids();
|
||||
if ( $site_ids ) {
|
||||
$this->set_found_sites();
|
||||
// Ignore the $fields argument as the queried result will be the same regardless.
|
||||
unset( $_args['fields'] );
|
||||
|
||||
$key = md5( serialize( $_args ) );
|
||||
$last_changed = wp_cache_get_last_changed( 'sites' );
|
||||
|
||||
$cache_key = "get_sites:$key:$last_changed";
|
||||
$cache_value = wp_cache_get( $cache_key, 'sites' );
|
||||
|
||||
if ( false === $cache_value ) {
|
||||
$site_ids = $this->get_site_ids();
|
||||
if ( $site_ids ) {
|
||||
$this->set_found_sites();
|
||||
}
|
||||
|
||||
$cache_value = array(
|
||||
'site_ids' => $site_ids,
|
||||
'found_sites' => $this->found_sites,
|
||||
);
|
||||
wp_cache_add( $cache_key, $cache_value, 'sites' );
|
||||
} else {
|
||||
$site_ids = $cache_value['site_ids'];
|
||||
$this->found_sites = $cache_value['found_sites'];
|
||||
}
|
||||
|
||||
$cache_value = array(
|
||||
'site_ids' => $site_ids,
|
||||
'found_sites' => $this->found_sites,
|
||||
);
|
||||
wp_cache_add( $cache_key, $cache_value, 'sites' );
|
||||
} else {
|
||||
$site_ids = $cache_value['site_ids'];
|
||||
$this->found_sites = $cache_value['found_sites'];
|
||||
}
|
||||
|
||||
if ( $this->found_sites && $this->query_vars['number'] ) {
|
||||
|
|
|
@ -315,7 +315,7 @@ final class WP_Site {
|
|||
if ( false === $details ) {
|
||||
|
||||
switch_to_blog( $this->blog_id );
|
||||
// Create a raw copy of the object for backwards compatibility with the filter below.
|
||||
// Create a raw copy of the object for backward compatibility with the filter below.
|
||||
$details = new stdClass();
|
||||
foreach ( get_object_vars( $this ) as $key => $value ) {
|
||||
$details->$key = $value;
|
||||
|
|
|
@ -289,10 +289,10 @@ final class WP_Theme implements ArrayAccess {
|
|||
$this->template = $this->stylesheet;
|
||||
if ( ! file_exists( $this->theme_root . '/' . $this->stylesheet . '/index.php' ) ) {
|
||||
$error_message = sprintf(
|
||||
/* translators: 1: index.php, 2: Codex URL, 3: style.css */
|
||||
/* translators: 1: index.php, 2: link to documentation, 3: style.css */
|
||||
__( 'Template is missing. Standalone themes need to have a %1$s template file. <a href="%2$s">Child themes</a> need to have a Template header in the %3$s stylesheet.' ),
|
||||
'<code>index.php</code>',
|
||||
__( 'https://codex.wordpress.org/Child_Themes' ),
|
||||
__( 'https://developer.wordpress.org/themes/advanced-topics/child-themes/' ),
|
||||
'<code>style.css</code>'
|
||||
);
|
||||
$this->errors = new WP_Error( 'theme_no_index', $error_message );
|
||||
|
@ -371,6 +371,10 @@ final class WP_Theme implements ArrayAccess {
|
|||
$this->parent = new WP_Theme( $this->template, isset( $theme_root_template ) ? $theme_root_template : $this->theme_root, $this );
|
||||
}
|
||||
|
||||
if ( wp_paused_themes()->get( $this->stylesheet ) && ( ! is_wp_error( $this->errors ) || ! isset( $this->errors->errors['theme_paused'] ) ) ) {
|
||||
$this->errors = new WP_Error( 'theme_paused', __( 'This theme failed to load properly and was paused within the admin backend.' ) );
|
||||
}
|
||||
|
||||
// We're good. If we didn't retrieve from cache, set it.
|
||||
if ( ! is_array( $cache ) ) {
|
||||
$cache = array(
|
||||
|
|
|
@ -6234,7 +6234,14 @@ class wp_xmlrpc_server extends IXR_Server {
|
|||
}
|
||||
|
||||
if ( is_multisite() && upload_is_user_over_quota( false ) ) {
|
||||
$this->error = new IXR_Error( 401, __( 'Sorry, you have used your space allocation.' ) );
|
||||
$this->error = new IXR_Error(
|
||||
401,
|
||||
sprintf(
|
||||
/* translators: %s: allowed space allocation */
|
||||
__( 'Sorry, you have used your space allocation of %s. Please delete some files to upload more files.' ),
|
||||
size_format( get_space_allowed() * MB_IN_BYTES )
|
||||
)
|
||||
);
|
||||
return $this->error;
|
||||
}
|
||||
|
||||
|
|
|
@ -102,7 +102,7 @@ function get_comment_author_email( $comment_ID = 0 ) {
|
|||
* Display the email of the author of the current global $comment.
|
||||
*
|
||||
* Care should be taken to protect the email address and assure that email
|
||||
* harvesters do not capture your commentors' email address. Most assume that
|
||||
* harvesters do not capture your commenter's email address. Most assume that
|
||||
* their email address will not appear in raw form on the site. Doing so will
|
||||
* enable anyone, including those that people don't want to get the email
|
||||
* address and use it for their own means good and bad.
|
||||
|
@ -133,7 +133,7 @@ function comment_author_email( $comment_ID = 0 ) {
|
|||
* Display the html email link to the author of the current comment.
|
||||
*
|
||||
* Care should be taken to protect the email address and assure that email
|
||||
* harvesters do not capture your commentors' email address. Most assume that
|
||||
* harvesters do not capture your commenter's email address. Most assume that
|
||||
* their email address will not appear in raw form on the site. Doing so will
|
||||
* enable anyone, including those that people don't want to get the email
|
||||
* address and use it for their own means good and bad.
|
||||
|
@ -157,7 +157,7 @@ function comment_author_email_link( $linktext = '', $before = '', $after = '', $
|
|||
* Return the html email link to the author of the current comment.
|
||||
*
|
||||
* Care should be taken to protect the email address and assure that email
|
||||
* harvesters do not capture your commentors' email address. Most assume that
|
||||
* harvesters do not capture your commenter's email address. Most assume that
|
||||
* their email address will not appear in raw form on the site. Doing so will
|
||||
* enable anyone, including those that people don't want to get the email
|
||||
* address and use it for their own means good and bad.
|
||||
|
|
|
@ -687,14 +687,24 @@ function wp_allow_comment( $commentdata, $avoid_die = false ) {
|
|||
* @param array $commentdata Comment data.
|
||||
*/
|
||||
do_action( 'comment_duplicate_trigger', $commentdata );
|
||||
|
||||
/**
|
||||
* Filters duplicate comment error message.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $comment_duplicate_message Duplicate comment error message.
|
||||
*/
|
||||
$comment_duplicate_message = apply_filters( 'comment_duplicate_message', __( 'Duplicate comment detected; it looks as though you’ve already said that!' ) );
|
||||
|
||||
if ( true === $avoid_die ) {
|
||||
return new WP_Error( 'comment_duplicate', __( 'Duplicate comment detected; it looks as though you’ve already said that!' ), 409 );
|
||||
return new WP_Error( 'comment_duplicate', $comment_duplicate_message, 409 );
|
||||
} else {
|
||||
if ( wp_doing_ajax() ) {
|
||||
die( __( 'Duplicate comment detected; it looks as though you’ve already said that!' ) );
|
||||
die( $comment_duplicate_message );
|
||||
}
|
||||
|
||||
wp_die( __( 'Duplicate comment detected; it looks as though you’ve already said that!' ), 409 );
|
||||
wp_die( $comment_duplicate_message, 409 );
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -744,7 +754,10 @@ function wp_allow_comment( $commentdata, $avoid_die = false ) {
|
|||
);
|
||||
|
||||
if ( $is_flood ) {
|
||||
return new WP_Error( 'comment_flood', __( 'You are posting comments too quickly. Slow down.' ), 429 );
|
||||
/** This filter is documented in wp-includes/comment-template.php */
|
||||
$comment_flood_message = apply_filters( 'comment_flood_message', __( 'You are posting comments too quickly. Slow down.' ) );
|
||||
|
||||
return new WP_Error( 'comment_flood', $comment_flood_message, 429 );
|
||||
}
|
||||
|
||||
if ( ! empty( $commentdata['user_id'] ) ) {
|
||||
|
@ -888,14 +901,24 @@ function wp_check_comment_flood( $is_flood, $ip, $email, $date, $avoid_die = fal
|
|||
* @param int $time_newcomment Timestamp of when the new comment was posted.
|
||||
*/
|
||||
do_action( 'comment_flood_trigger', $time_lastcomment, $time_newcomment );
|
||||
|
||||
if ( true === $avoid_die ) {
|
||||
return true;
|
||||
} else {
|
||||
/**
|
||||
* Filters the comment flood error message.
|
||||
*
|
||||
* @since 5.2.0
|
||||
*
|
||||
* @param string $comment_flood_message Comment flood error message.
|
||||
*/
|
||||
$comment_flood_message = apply_filters( 'comment_flood_message', __( 'You are posting comments too quickly. Slow down.' ) );
|
||||
|
||||
if ( wp_doing_ajax() ) {
|
||||
die( __( 'You are posting comments too quickly. Slow down.' ) );
|
||||
die( $comment_flood_message );
|
||||
}
|
||||
|
||||
wp_die( __( 'You are posting comments too quickly. Slow down.' ), 429 );
|
||||
wp_die( $comment_flood_message, 429 );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -442,6 +442,10 @@ if ( ! interface_exists( 'JsonSerializable' ) ) {
|
|||
if ( ! function_exists( 'random_int' ) ) {
|
||||
require ABSPATH . WPINC . '/random_compat/random.php';
|
||||
}
|
||||
// sodium_crypto_box was introduced in PHP 7.2
|
||||
if ( ! function_exists( 'sodium_crypto_box' ) ) {
|
||||
require ABSPATH . WPINC . '/sodium_compat/autoload.php';
|
||||
}
|
||||
|
||||
if ( ! function_exists( 'array_replace_recursive' ) ) :
|
||||
/**
|
||||
|
|
|
@ -79,9 +79,49 @@ function wp_schedule_single_event( $timestamp, $hook, $args = array() ) {
|
|||
return $pre;
|
||||
}
|
||||
|
||||
// Don't schedule a duplicate if there's already an identical event due within 10 minutes of it
|
||||
$next = wp_next_scheduled( $hook, $args );
|
||||
if ( $next && abs( $next - $timestamp ) <= 10 * MINUTE_IN_SECONDS ) {
|
||||
/*
|
||||
* Check for a duplicated event.
|
||||
*
|
||||
* Don't schedule an event if there's already an identical event
|
||||
* within 10 minutes.
|
||||
*
|
||||
* When scheduling events within ten minutes of the current time,
|
||||
* all past identical events are considered duplicates.
|
||||
*
|
||||
* When scheduling an event with a past timestamp (ie, before the
|
||||
* current time) all events scheduled within the next ten minutes
|
||||
* are considered duplicates.
|
||||
*/
|
||||
$crons = (array) _get_cron_array();
|
||||
$key = md5( serialize( $event->args ) );
|
||||
$duplicate = false;
|
||||
|
||||
if ( $event->timestamp < time() + 10 * MINUTE_IN_SECONDS ) {
|
||||
$min_timestamp = 0;
|
||||
} else {
|
||||
$min_timestamp = $event->timestamp - 10 * MINUTE_IN_SECONDS;
|
||||
}
|
||||
|
||||
if ( $event->timestamp < time() ) {
|
||||
$max_timestamp = time() + 10 * MINUTE_IN_SECONDS;
|
||||
} else {
|
||||
$max_timestamp = $event->timestamp + 10 * MINUTE_IN_SECONDS;
|
||||
}
|
||||
|
||||
foreach ( $crons as $event_timestamp => $cron ) {
|
||||
if ( $event_timestamp < $min_timestamp ) {
|
||||
continue;
|
||||
}
|
||||
if ( $event_timestamp > $max_timestamp ) {
|
||||
break;
|
||||
}
|
||||
if ( isset( $cron[ $event->hook ][ $key ] ) ) {
|
||||
$duplicate = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if ( $duplicate ) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -107,9 +147,6 @@ function wp_schedule_single_event( $timestamp, $hook, $args = array() ) {
|
|||
return false;
|
||||
}
|
||||
|
||||
$key = md5( serialize( $event->args ) );
|
||||
|
||||
$crons = _get_cron_array();
|
||||
$crons[ $event->timestamp ][ $event->hook ][ $key ] = array(
|
||||
'schedule' => $event->schedule,
|
||||
'args' => $event->args,
|
||||
|
|
|
@ -144,7 +144,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
#wpadminbar .shortlink-input {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-shadow: 0 3px 5px rgba(0,0,0,0.2);
|
||||
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
|
||||
background: #32373c;
|
||||
display: none;
|
||||
position: absolute;
|
||||
|
@ -231,7 +231,8 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
|
||||
#wpadminbar > #wp-toolbar > #wp-admin-bar-root-default .ab-icon,
|
||||
#wpadminbar .ab-icon,
|
||||
#wpadminbar .ab-item:before {
|
||||
#wpadminbar .ab-item:before,
|
||||
.wp-admin-bar-arrow {
|
||||
position: relative;
|
||||
float: right;
|
||||
font: normal 20px/1 dashicons;
|
||||
|
@ -247,7 +248,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
#wpadminbar .ab-item:before,
|
||||
#wpadminbar #adminbarsearch:before {
|
||||
color: #a0a5aa;
|
||||
color: rgba(240,245,250,0.6);
|
||||
color: rgba(240, 245, 250, 0.6);
|
||||
}
|
||||
|
||||
#wpadminbar .ab-icon:before,
|
||||
|
@ -264,7 +265,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
|
||||
#wpadminbar .ab-submenu .ab-item {
|
||||
color: #b4b9be;
|
||||
color: rgba(240,245,250,0.7);
|
||||
color: rgba(240, 245, 250, 0.7);
|
||||
}
|
||||
|
||||
#wpadminbar .quicklinks .menupop ul li a,
|
||||
|
@ -272,7 +273,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
#wpadminbar .quicklinks .menupop.hover ul li a,
|
||||
#wpadminbar.nojs .quicklinks .menupop:hover ul li a {
|
||||
color: #b4b9be;
|
||||
color: rgba(240,245,250,0.7);
|
||||
color: rgba(240, 245, 250, 0.7);
|
||||
}
|
||||
|
||||
#wpadminbar .quicklinks .menupop ul li a:hover,
|
||||
|
@ -308,7 +309,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
color: #00b9eb;
|
||||
}
|
||||
|
||||
#wpadminbar .menupop .menupop > .ab-item:before,
|
||||
#wpadminbar .menupop .menupop > .ab-item .wp-admin-bar-arrow:before,
|
||||
#wpadminbar .ab-top-secondary .menupop .menupop > .ab-item:before {
|
||||
position: absolute;
|
||||
font: normal 17px/1 dashicons;
|
||||
|
@ -322,9 +323,10 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
padding-left: 2em;
|
||||
}
|
||||
|
||||
#wpadminbar .menupop .menupop > .ab-item:before {
|
||||
#wpadminbar .menupop .menupop > .ab-item .wp-admin-bar-arrow:before {
|
||||
top: 1px;
|
||||
left: 4px;
|
||||
left: 10px;
|
||||
padding: 4px 0;
|
||||
content: "\f141";
|
||||
color: inherit;
|
||||
}
|
||||
|
@ -334,7 +336,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
padding-left: 1em;
|
||||
}
|
||||
|
||||
#wpadminbar .ab-top-secondary .menupop .menupop > .ab-item:before {
|
||||
#wpadminbar .ab-top-secondary .menupop .menupop > .ab-item .wp-admin-bar-arrow:before {
|
||||
top: 1px;
|
||||
right: 6px;
|
||||
content: "\f139";
|
||||
|
@ -382,6 +384,22 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
box-shadow: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Recovery Mode
|
||||
*/
|
||||
#wpadminbar #wp-admin-bar-recovery-mode {
|
||||
color: #fff;
|
||||
background-color: #ca4a1f;
|
||||
}
|
||||
|
||||
#wpadminbar .ab-top-menu > #wp-admin-bar-recovery-mode.hover >.ab-item,
|
||||
#wpadminbar.nojq .quicklinks .ab-top-menu > #wp-admin-bar-recovery-mode > .ab-item:focus,
|
||||
#wpadminbar:not(.mobile) .ab-top-menu > #wp-admin-bar-recovery-mode:hover > .ab-item,
|
||||
#wpadminbar:not(.mobile) .ab-top-menu > #wp-admin-bar-recovery-mode > .ab-item:focus {
|
||||
color: #fff;
|
||||
background-color: #c0461e;
|
||||
}
|
||||
|
||||
/**
|
||||
* My Account
|
||||
*/
|
||||
|
@ -633,7 +651,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
padding: 0 24px 0 3px;
|
||||
margin: 0;
|
||||
color: #ccc;
|
||||
background-color: rgba( 255, 255, 255, 0 );
|
||||
background-color: rgba(255, 255, 255, 0);
|
||||
border: none;
|
||||
outline: none;
|
||||
cursor: pointer;
|
||||
|
@ -648,7 +666,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
z-index: 10;
|
||||
color: #000;
|
||||
width: 200px;
|
||||
background-color: rgba( 255, 255, 255, 0.9 );
|
||||
background-color: rgba(255, 255, 255, 0.9);
|
||||
cursor: text;
|
||||
border: 0;
|
||||
}
|
||||
|
@ -726,7 +744,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
z-index: 100000;
|
||||
line-height: normal;
|
||||
text-decoration: none;
|
||||
box-shadow: 0 0 2px 2px rgba(0,0,0,.6);
|
||||
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
2
wp-includes/css/admin-bar-rtl.min.css
vendored
2
wp-includes/css/admin-bar-rtl.min.css
vendored
File diff suppressed because one or more lines are too long
|
@ -144,7 +144,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
#wpadminbar .shortlink-input {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
box-shadow: 0 3px 5px rgba(0,0,0,0.2);
|
||||
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
|
||||
background: #32373c;
|
||||
display: none;
|
||||
position: absolute;
|
||||
|
@ -231,7 +231,8 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
|
||||
#wpadminbar > #wp-toolbar > #wp-admin-bar-root-default .ab-icon,
|
||||
#wpadminbar .ab-icon,
|
||||
#wpadminbar .ab-item:before {
|
||||
#wpadminbar .ab-item:before,
|
||||
.wp-admin-bar-arrow {
|
||||
position: relative;
|
||||
float: left;
|
||||
font: normal 20px/1 dashicons;
|
||||
|
@ -247,7 +248,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
#wpadminbar .ab-item:before,
|
||||
#wpadminbar #adminbarsearch:before {
|
||||
color: #a0a5aa;
|
||||
color: rgba(240,245,250,0.6);
|
||||
color: rgba(240, 245, 250, 0.6);
|
||||
}
|
||||
|
||||
#wpadminbar .ab-icon:before,
|
||||
|
@ -264,7 +265,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
|
||||
#wpadminbar .ab-submenu .ab-item {
|
||||
color: #b4b9be;
|
||||
color: rgba(240,245,250,0.7);
|
||||
color: rgba(240, 245, 250, 0.7);
|
||||
}
|
||||
|
||||
#wpadminbar .quicklinks .menupop ul li a,
|
||||
|
@ -272,7 +273,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
#wpadminbar .quicklinks .menupop.hover ul li a,
|
||||
#wpadminbar.nojs .quicklinks .menupop:hover ul li a {
|
||||
color: #b4b9be;
|
||||
color: rgba(240,245,250,0.7);
|
||||
color: rgba(240, 245, 250, 0.7);
|
||||
}
|
||||
|
||||
#wpadminbar .quicklinks .menupop ul li a:hover,
|
||||
|
@ -308,7 +309,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
color: #00b9eb;
|
||||
}
|
||||
|
||||
#wpadminbar .menupop .menupop > .ab-item:before,
|
||||
#wpadminbar .menupop .menupop > .ab-item .wp-admin-bar-arrow:before,
|
||||
#wpadminbar .ab-top-secondary .menupop .menupop > .ab-item:before {
|
||||
position: absolute;
|
||||
font: normal 17px/1 dashicons;
|
||||
|
@ -322,9 +323,10 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
padding-right: 2em;
|
||||
}
|
||||
|
||||
#wpadminbar .menupop .menupop > .ab-item:before {
|
||||
#wpadminbar .menupop .menupop > .ab-item .wp-admin-bar-arrow:before {
|
||||
top: 1px;
|
||||
right: 4px;
|
||||
right: 10px;
|
||||
padding: 4px 0;
|
||||
content: "\f139";
|
||||
color: inherit;
|
||||
}
|
||||
|
@ -334,7 +336,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
padding-right: 1em;
|
||||
}
|
||||
|
||||
#wpadminbar .ab-top-secondary .menupop .menupop > .ab-item:before {
|
||||
#wpadminbar .ab-top-secondary .menupop .menupop > .ab-item .wp-admin-bar-arrow:before {
|
||||
top: 1px;
|
||||
left: 6px;
|
||||
content: "\f141";
|
||||
|
@ -382,6 +384,22 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
box-shadow: none;
|
||||
}
|
||||
|
||||
/**
|
||||
* Recovery Mode
|
||||
*/
|
||||
#wpadminbar #wp-admin-bar-recovery-mode {
|
||||
color: #fff;
|
||||
background-color: #ca4a1f;
|
||||
}
|
||||
|
||||
#wpadminbar .ab-top-menu > #wp-admin-bar-recovery-mode.hover >.ab-item,
|
||||
#wpadminbar.nojq .quicklinks .ab-top-menu > #wp-admin-bar-recovery-mode > .ab-item:focus,
|
||||
#wpadminbar:not(.mobile) .ab-top-menu > #wp-admin-bar-recovery-mode:hover > .ab-item,
|
||||
#wpadminbar:not(.mobile) .ab-top-menu > #wp-admin-bar-recovery-mode > .ab-item:focus {
|
||||
color: #fff;
|
||||
background-color: #c0461e;
|
||||
}
|
||||
|
||||
/**
|
||||
* My Account
|
||||
*/
|
||||
|
@ -633,7 +651,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
padding: 0 3px 0 24px;
|
||||
margin: 0;
|
||||
color: #ccc;
|
||||
background-color: rgba( 255, 255, 255, 0 );
|
||||
background-color: rgba(255, 255, 255, 0);
|
||||
border: none;
|
||||
outline: none;
|
||||
cursor: pointer;
|
||||
|
@ -648,7 +666,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
z-index: 10;
|
||||
color: #000;
|
||||
width: 200px;
|
||||
background-color: rgba( 255, 255, 255, 0.9 );
|
||||
background-color: rgba(255, 255, 255, 0.9);
|
||||
cursor: text;
|
||||
border: 0;
|
||||
}
|
||||
|
@ -726,7 +744,7 @@ html:lang(he-il) .rtl #wpadminbar * {
|
|||
z-index: 100000;
|
||||
line-height: normal;
|
||||
text-decoration: none;
|
||||
box-shadow: 0 0 2px 2px rgba(0,0,0,.6);
|
||||
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
2
wp-includes/css/admin-bar.min.css
vendored
2
wp-includes/css/admin-bar.min.css
vendored
File diff suppressed because one or more lines are too long
|
@ -149,7 +149,7 @@ TABLE OF CONTENTS:
|
|||
.wp-core-ui .button:focus,
|
||||
.wp-core-ui .button-secondary:focus {
|
||||
border-color: #5b9dd9;
|
||||
box-shadow: 0 0 3px rgba( 0, 115, 170, .8 );
|
||||
box-shadow: 0 0 3px rgba(0, 115, 170, 0.8);
|
||||
}
|
||||
|
||||
.wp-core-ui .button.active,
|
||||
|
@ -158,15 +158,15 @@ TABLE OF CONTENTS:
|
|||
.wp-core-ui .button-secondary:active {
|
||||
background: #eee;
|
||||
border-color: #999;
|
||||
box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
|
||||
box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
|
||||
transform: translateY(1px);
|
||||
}
|
||||
|
||||
.wp-core-ui .button.active:focus {
|
||||
border-color: #5b9dd9;
|
||||
box-shadow:
|
||||
inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ),
|
||||
0 0 3px rgba( 0, 115, 170, .8 );
|
||||
inset 0 2px 5px -3px rgba(0, 0, 0, 0.5),
|
||||
0 0 3px rgba(0, 115, 170, 0.8);
|
||||
}
|
||||
|
||||
.wp-core-ui .button[disabled],
|
||||
|
@ -212,7 +212,7 @@ TABLE OF CONTENTS:
|
|||
color: #124964;
|
||||
box-shadow:
|
||||
0 0 0 1px #5b9dd9,
|
||||
0 0 2px 1px rgba(30, 140, 190, .8);
|
||||
0 0 2px 1px rgba(30, 140, 190, 0.8);
|
||||
/* Only visible in Windows High Contrast mode */
|
||||
outline: 1px solid transparent;
|
||||
}
|
||||
|
@ -268,7 +268,6 @@ TABLE OF CONTENTS:
|
|||
background: #0073aa;
|
||||
border-color: #006799;
|
||||
box-shadow: inset 0 2px 0 #006799;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.wp-core-ui .button-primary[disabled],
|
||||
|
@ -279,7 +278,7 @@ TABLE OF CONTENTS:
|
|||
background: #008ec2 !important;
|
||||
border-color: #007cb2 !important;
|
||||
box-shadow: none !important;
|
||||
text-shadow: 0 -1px 0 rgba( 0, 0, 0, 0.1 ) !important;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.1) !important;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
|
|
2
wp-includes/css/buttons-rtl.min.css
vendored
2
wp-includes/css/buttons-rtl.min.css
vendored
File diff suppressed because one or more lines are too long
|
@ -149,7 +149,7 @@ TABLE OF CONTENTS:
|
|||
.wp-core-ui .button:focus,
|
||||
.wp-core-ui .button-secondary:focus {
|
||||
border-color: #5b9dd9;
|
||||
box-shadow: 0 0 3px rgba( 0, 115, 170, .8 );
|
||||
box-shadow: 0 0 3px rgba(0, 115, 170, 0.8);
|
||||
}
|
||||
|
||||
.wp-core-ui .button.active,
|
||||
|
@ -158,15 +158,15 @@ TABLE OF CONTENTS:
|
|||
.wp-core-ui .button-secondary:active {
|
||||
background: #eee;
|
||||
border-color: #999;
|
||||
box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
|
||||
box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
|
||||
transform: translateY(1px);
|
||||
}
|
||||
|
||||
.wp-core-ui .button.active:focus {
|
||||
border-color: #5b9dd9;
|
||||
box-shadow:
|
||||
inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 ),
|
||||
0 0 3px rgba( 0, 115, 170, .8 );
|
||||
inset 0 2px 5px -3px rgba(0, 0, 0, 0.5),
|
||||
0 0 3px rgba(0, 115, 170, 0.8);
|
||||
}
|
||||
|
||||
.wp-core-ui .button[disabled],
|
||||
|
@ -212,7 +212,7 @@ TABLE OF CONTENTS:
|
|||
color: #124964;
|
||||
box-shadow:
|
||||
0 0 0 1px #5b9dd9,
|
||||
0 0 2px 1px rgba(30, 140, 190, .8);
|
||||
0 0 2px 1px rgba(30, 140, 190, 0.8);
|
||||
/* Only visible in Windows High Contrast mode */
|
||||
outline: 1px solid transparent;
|
||||
}
|
||||
|
@ -268,7 +268,6 @@ TABLE OF CONTENTS:
|
|||
background: #0073aa;
|
||||
border-color: #006799;
|
||||
box-shadow: inset 0 2px 0 #006799;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.wp-core-ui .button-primary[disabled],
|
||||
|
@ -279,7 +278,7 @@ TABLE OF CONTENTS:
|
|||
background: #008ec2 !important;
|
||||
border-color: #007cb2 !important;
|
||||
box-shadow: none !important;
|
||||
text-shadow: 0 -1px 0 rgba( 0, 0, 0, 0.1 ) !important;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.1) !important;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
|
|
2
wp-includes/css/buttons.min.css
vendored
2
wp-includes/css/buttons.min.css
vendored
File diff suppressed because one or more lines are too long
|
@ -47,7 +47,7 @@
|
|||
background: #0085ba !important;
|
||||
border-radius: 50%;
|
||||
border: 2px solid #fff;
|
||||
box-shadow: 0 2px 1px rgba(46,68,83,0.15);
|
||||
box-shadow: 0 2px 1px rgba(46, 68, 83, 0.15);
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
box-sizing: border-box;
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
background: #0085ba !important;
|
||||
border-radius: 50%;
|
||||
border: 2px solid #fff;
|
||||
box-shadow: 0 2px 1px rgba(46,68,83,0.15);
|
||||
box-shadow: 0 2px 1px rgba(46, 68, 83, 0.15);
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
box-sizing: border-box;
|
||||
|
|
File diff suppressed because one or more lines are too long
2
wp-includes/css/dashicons.min.css
vendored
2
wp-includes/css/dashicons.min.css
vendored
File diff suppressed because one or more lines are too long
2033
wp-includes/css/dist/block-editor/style-rtl.css
vendored
Normal file
2033
wp-includes/css/dist/block-editor/style-rtl.css
vendored
Normal file
File diff suppressed because it is too large
Load diff
1
wp-includes/css/dist/block-editor/style-rtl.min.css
vendored
Normal file
1
wp-includes/css/dist/block-editor/style-rtl.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
2045
wp-includes/css/dist/block-editor/style.css
vendored
Normal file
2045
wp-includes/css/dist/block-editor/style.css
vendored
Normal file
File diff suppressed because it is too large
Load diff
9
wp-includes/css/dist/block-editor/style.min.css
vendored
Normal file
9
wp-includes/css/dist/block-editor/style.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
541
wp-includes/css/dist/block-library/editor-rtl.css
vendored
541
wp-includes/css/dist/block-library/editor-rtl.css
vendored
|
@ -28,36 +28,39 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
.block-editor ul.wp-block-archives {
|
||||
padding-right: 2.5em; }
|
||||
|
||||
.wp-block-audio {
|
||||
margin: 0; }
|
||||
|
||||
.editor-block-list__block[data-type="core/button"][data-align="center"] {
|
||||
.block-editor-block-list__block[data-type="core/button"][data-align="center"] {
|
||||
text-align: center; }
|
||||
|
||||
.editor-block-list__block[data-type="core/button"][data-align="right"] {
|
||||
.block-editor-block-list__block[data-type="core/button"][data-align="right"] {
|
||||
text-align: right; }
|
||||
|
||||
.wp-block-button {
|
||||
display: inline-block;
|
||||
margin-bottom: 0;
|
||||
position: relative; }
|
||||
.wp-block-button .editor-rich-text__tinymce.mce-content-body {
|
||||
.wp-block-button [contenteditable] {
|
||||
cursor: text; }
|
||||
.wp-block-button:not(.has-text-color):not(.is-style-outline) .editor-rich-text__tinymce[data-is-placeholder-visible="true"] + .editor-rich-text__tinymce {
|
||||
.wp-block-button:not(.has-text-color):not(.is-style-outline) .block-editor-rich-text__editable[data-is-placeholder-visible="true"] + .block-editor-rich-text__editable {
|
||||
color: #fff; }
|
||||
.wp-block-button .editor-rich-text__tinymce[data-is-placeholder-visible="true"] + .editor-rich-text__tinymce {
|
||||
.wp-block-button .block-editor-rich-text__editable[data-is-placeholder-visible="true"] + .block-editor-rich-text__editable {
|
||||
opacity: 0.8; }
|
||||
.editor-block-preview__content .wp-block-button {
|
||||
.block-editor-block-preview__content .wp-block-button {
|
||||
max-width: 100%; }
|
||||
.editor-block-preview__content .wp-block-button .editor-rich-text__tinymce[data-is-placeholder-visible="true"] {
|
||||
.block-editor-block-preview__content .wp-block-button .block-editor-rich-text__editable[data-is-placeholder-visible="true"] {
|
||||
height: auto; }
|
||||
.editor-block-preview__content .wp-block-button .wp-block-button__link {
|
||||
.block-editor-block-preview__content .wp-block-button .wp-block-button__link {
|
||||
max-width: 100%;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
white-space: nowrap !important;
|
||||
text-overflow: ellipsis; }
|
||||
|
||||
.block-library-button__inline-link {
|
||||
|
@ -69,20 +72,20 @@
|
|||
font-size: 13px;
|
||||
line-height: 1.4;
|
||||
width: 374px; }
|
||||
.block-library-button__inline-link .editor-url-input {
|
||||
.block-library-button__inline-link .block-editor-url-input {
|
||||
width: auto; }
|
||||
.block-library-button__inline-link .editor-url-input__suggestions {
|
||||
.block-library-button__inline-link .block-editor-url-input__suggestions {
|
||||
width: 302px;
|
||||
z-index: 6; }
|
||||
.block-library-button__inline-link > .dashicon {
|
||||
width: 36px; }
|
||||
.block-library-button__inline-link .dashicon {
|
||||
color: #8f98a1; }
|
||||
.block-library-button__inline-link .editor-url-input input[type="text"]:-ms-input-placeholder {
|
||||
.block-library-button__inline-link .block-editor-url-input input[type="text"]:-ms-input-placeholder {
|
||||
color: #8f98a1; }
|
||||
.block-library-button__inline-link .editor-url-input input[type="text"]::-ms-input-placeholder {
|
||||
.block-library-button__inline-link .block-editor-url-input input[type="text"]::-ms-input-placeholder {
|
||||
color: #8f98a1; }
|
||||
.block-library-button__inline-link .editor-url-input input[type="text"]::placeholder {
|
||||
.block-library-button__inline-link .block-editor-url-input input[type="text"]::placeholder {
|
||||
color: #8f98a1; }
|
||||
[data-align="center"] .block-library-button__inline-link {
|
||||
margin-right: auto;
|
||||
|
@ -96,11 +99,15 @@
|
|||
.block-editor .wp-block-categories ul ul {
|
||||
margin-top: 6px; }
|
||||
|
||||
.wp-block-code .editor-plain-text {
|
||||
.wp-block-code .block-editor-plain-text {
|
||||
font-family: Menlo, Consolas, monaco, monospace;
|
||||
font-size: 14px;
|
||||
color: #23282d; }
|
||||
.wp-block-code .editor-plain-text:focus {
|
||||
color: #23282d;
|
||||
/* Fonts smaller than 16px causes mobile safari to zoom. */
|
||||
font-size: 16px; }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-code .block-editor-plain-text {
|
||||
font-size: 13px; } }
|
||||
.wp-block-code .block-editor-plain-text:focus {
|
||||
box-shadow: none; }
|
||||
|
||||
.components-tab-button {
|
||||
|
@ -140,29 +147,29 @@
|
|||
background-color: #555d66;
|
||||
color: #fff; }
|
||||
|
||||
.wp-block-columns .editor-block-list__layout {
|
||||
.wp-block-columns .block-editor-block-list__layout {
|
||||
margin-right: 0;
|
||||
margin-left: 0; }
|
||||
.wp-block-columns .editor-block-list__layout .editor-block-list__block {
|
||||
.wp-block-columns .block-editor-block-list__layout .block-editor-block-list__block {
|
||||
max-width: none; }
|
||||
|
||||
.editor-block-list__block[data-align="full"] .wp-block-columns > .editor-inner-blocks {
|
||||
.block-editor-block-list__block[data-align="full"] .wp-block-columns > .block-editor-inner-blocks {
|
||||
padding-right: 14px;
|
||||
padding-left: 14px; }
|
||||
@media (min-width: 600px) {
|
||||
.editor-block-list__block[data-align="full"] .wp-block-columns > .editor-inner-blocks {
|
||||
.block-editor-block-list__block[data-align="full"] .wp-block-columns > .block-editor-inner-blocks {
|
||||
padding-right: 60px;
|
||||
padding-left: 60px; } }
|
||||
|
||||
.wp-block-columns {
|
||||
display: block; }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout {
|
||||
display: flex;
|
||||
flex-wrap: wrap; }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout {
|
||||
@media (min-width: 782px) {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout {
|
||||
flex-wrap: nowrap; } }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
|
@ -174,69 +181,69 @@
|
|||
word-break: break-word;
|
||||
overflow-wrap: break-word;
|
||||
flex-basis: 100%; }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] > .editor-block-list__block-edit > div > .editor-inner-blocks {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"] > .block-editor-block-list__block-edit > div > .block-editor-inner-blocks {
|
||||
margin-top: -28px;
|
||||
margin-bottom: -28px; }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] > .editor-block-list__block-edit {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"] > .block-editor-block-list__block-edit {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0; }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] > .editor-block-list__block-edit::before {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"] > .block-editor-block-list__block-edit::before {
|
||||
right: 0;
|
||||
left: 0; }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] > .editor-block-list__block-edit > .editor-block-contextual-toolbar {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"] > .block-editor-block-list__block-edit > .block-editor-block-contextual-toolbar {
|
||||
margin-right: -1px; }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"] {
|
||||
margin-right: 14px;
|
||||
margin-left: 14px; } }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] {
|
||||
flex-basis: 50%;
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"] {
|
||||
flex-basis: calc(50% - (16px + 28px));
|
||||
flex-grow: 0; } }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"]:nth-child(odd) {
|
||||
margin-left: 32px; }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"]:nth-child(even) {
|
||||
margin-right: 32px; } }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"]:not(:first-child) {
|
||||
margin-right: 32px; }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"]:not(:last-child) {
|
||||
margin-left: 32px; } }
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"]:nth-child(even) {
|
||||
margin-right: calc(32px + 14px); } }
|
||||
@media (min-width: 782px) {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"]:not(:first-child) {
|
||||
margin-right: calc(32px + 14px); } }
|
||||
|
||||
.wp-block-columns [data-type="core/column"].is-hovered > .block-editor-block-list__block-edit::before {
|
||||
content: none; }
|
||||
|
||||
.wp-block-columns [data-type="core/column"].is-hovered .block-editor-block-list__breadcrumb {
|
||||
display: none; }
|
||||
|
||||
.wp-block-columns [data-type="core/column"] {
|
||||
pointer-events: none; }
|
||||
.wp-block-columns [data-type="core/column"].is-hovered > .editor-block-list__block-edit::before {
|
||||
content: none; }
|
||||
.wp-block-columns [data-type="core/column"].is-hovered .editor-block-list__breadcrumb {
|
||||
display: none; }
|
||||
|
||||
:not(.components-disabled) > .wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] > .editor-block-list__block-edit > * {
|
||||
pointer-events: all; }
|
||||
|
||||
.wp-block-cover-image .editor-rich-text__tinymce[data-is-empty="true"]::before,
|
||||
.wp-block-cover .editor-rich-text__tinymce[data-is-empty="true"]::before {
|
||||
position: inherit; }
|
||||
|
||||
.wp-block-cover-image .editor-rich-text__tinymce:focus a[data-mce-selected],
|
||||
.wp-block-cover .editor-rich-text__tinymce:focus a[data-mce-selected] {
|
||||
padding: 0 2px;
|
||||
margin: 0 -2px;
|
||||
border-radius: 2px;
|
||||
box-shadow: none;
|
||||
background: rgba(255, 255, 255, 0.3); }
|
||||
.wp-block-columns [data-type="core/column"] .block-editor-block-list__layout {
|
||||
pointer-events: all; }
|
||||
|
||||
.wp-block-cover-image.components-placeholder h2,
|
||||
.wp-block-cover.components-placeholder h2 {
|
||||
color: inherit; }
|
||||
|
||||
.wp-block-cover-image.has-left-content .editor-rich-text__inline-toolbar,
|
||||
.wp-block-cover.has-left-content .editor-rich-text__inline-toolbar {
|
||||
justify-content: flex-start; }
|
||||
.wp-block-cover-image.has-right-content .block-editor-rich-text__inline-toolbar,
|
||||
.wp-block-cover-image.has-left-content .block-editor-rich-text__inline-toolbar,
|
||||
.wp-block-cover.has-right-content .block-editor-rich-text__inline-toolbar,
|
||||
.wp-block-cover.has-left-content .block-editor-rich-text__inline-toolbar {
|
||||
display: inline-block; }
|
||||
|
||||
.wp-block-cover-image.has-right-content .editor-rich-text__inline-toolbar,
|
||||
.wp-block-cover.has-right-content .editor-rich-text__inline-toolbar {
|
||||
justify-content: flex-end; }
|
||||
.wp-block-cover-image .block-editor-block-list__layout,
|
||||
.wp-block-cover .block-editor-block-list__layout {
|
||||
width: 100%; }
|
||||
|
||||
.wp-block-cover-image .block-editor-block-list__block,
|
||||
.wp-block-cover .block-editor-block-list__block {
|
||||
color: #f8f9f9; }
|
||||
|
||||
.wp-block-cover-image .wp-block-cover__inner-container,
|
||||
.wp-block-cover .wp-block-cover__inner-container {
|
||||
text-align: right; }
|
||||
|
||||
.wp-block-cover-image .wp-block-cover__inner-container > .block-editor-inner-blocks > .block-editor-block-list__layout,
|
||||
.wp-block-cover .wp-block-cover__inner-container > .block-editor-inner-blocks > .block-editor-block-list__layout {
|
||||
margin-right: 0;
|
||||
margin-left: 0; }
|
||||
|
||||
.wp-block-cover-image.components-placeholder,
|
||||
.wp-block-cover.components-placeholder {
|
||||
|
@ -259,7 +266,9 @@
|
|||
clear: both; }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-embed {
|
||||
min-width: 360px; } }
|
||||
min-width: 360px; }
|
||||
.wp-block-embed.components-placeholder {
|
||||
min-width: 0; } }
|
||||
.wp-block-embed.is-loading {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
@ -275,6 +284,14 @@
|
|||
.wp-block-embed .components-placeholder__error {
|
||||
word-break: break-word; }
|
||||
|
||||
.block-library-embed__interactive-overlay {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
opacity: 0; }
|
||||
|
||||
.wp-block-file {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
@ -296,12 +313,9 @@
|
|||
margin-right: 1em; }
|
||||
|
||||
.wp-block-freeform.block-library-rich-text__tinymce {
|
||||
overflow: hidden;
|
||||
/**
|
||||
* The following gallery styles were replicated
|
||||
* from the styles applied in the tinymce skin,
|
||||
* /wp-includes/js/tinymce/skins/wordpress/wp-content.css.
|
||||
*/ }
|
||||
/* Remove blue highlighting of selected images in WebKit */
|
||||
/* Image captions */
|
||||
/* WP Views */ }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce p,
|
||||
.wp-block-freeform.block-library-rich-text__tinymce li {
|
||||
line-height: 1.8; }
|
||||
|
@ -366,16 +380,76 @@
|
|||
margin-left: auto; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wp-more-tag {
|
||||
width: 96%;
|
||||
height: 0;
|
||||
height: 20px;
|
||||
display: block;
|
||||
margin: 15px auto;
|
||||
outline: 0;
|
||||
cursor: default;
|
||||
border: 2px dashed #bababa; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview-type-gallery::after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both; }
|
||||
background-image: url(/wp-includes/js/tinymce/skins/wordpress/images/more-2x.png);
|
||||
background-size: 1900px 20px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce img::selection {
|
||||
background-color: transparent; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce div.mceTemp {
|
||||
-ms-user-select: element; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption {
|
||||
margin: 0;
|
||||
/* dl browser reset */
|
||||
max-width: 100%; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption a,
|
||||
.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption img {
|
||||
display: block; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption,
|
||||
.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption * {
|
||||
-webkit-user-drag: none; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption .wp-caption-dd {
|
||||
padding-top: 0.5em;
|
||||
margin: 0;
|
||||
/* browser dd reset */ }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview {
|
||||
width: 99.99%;
|
||||
/* All IE need hasLayout, incl. 11 (ugh, not again!!) */
|
||||
position: relative;
|
||||
clear: both;
|
||||
margin-bottom: 16px;
|
||||
border: 1px solid transparent; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview iframe {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
background: transparent; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview .mce-shim {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected="2"] .mce-shim {
|
||||
display: none; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview .loading-placeholder {
|
||||
border: 1px dashed #e8eaeb;
|
||||
padding: 10px; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error {
|
||||
border: 1px solid #e8eaeb;
|
||||
padding: 1em 0;
|
||||
margin: 0;
|
||||
word-wrap: break-word; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error p {
|
||||
margin: 0;
|
||||
text-align: center; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .loading-placeholder,
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .wpview-error {
|
||||
border-color: transparent; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview .dashicons {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
font-size: 32px; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview.wpview-type-gallery::after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .gallery img[data-mce-selected]:focus {
|
||||
outline: none; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .gallery a {
|
||||
|
@ -421,28 +495,40 @@
|
|||
border: none;
|
||||
padding: 0; }
|
||||
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"] .mce-btn.mce-active button,
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"] .mce-btn.mce-active:hover button,
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"] .mce-btn.mce-active i,
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"] .mce-btn.mce-active:hover i {
|
||||
color: #23282d; }
|
||||
div[data-type="core/freeform"] .block-editor-block-list__block-edit::before {
|
||||
transition: border-color 0.1s linear, box-shadow 0.1s linear;
|
||||
border: 1px solid #e2e4e7;
|
||||
outline: 1px solid transparent; }
|
||||
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"] .mce-btn i {
|
||||
font-style: normal; }
|
||||
div[data-type="core/freeform"].is-selected .block-editor-block-list__block-edit::before {
|
||||
border-color: #b5bcc2;
|
||||
border-right-color: transparent; }
|
||||
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"] .mce-toolbar-grp > div {
|
||||
padding: 1px 3px; }
|
||||
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"] .editor-block-list__block-edit::before {
|
||||
outline: 1px solid #e2e4e7; }
|
||||
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"].is-hovered .editor-block-list__breadcrumb {
|
||||
div[data-type="core/freeform"].is-hovered .block-editor-block-list__breadcrumb {
|
||||
display: none; }
|
||||
|
||||
div[data-type="core/freeform"] .editor-block-contextual-toolbar + div {
|
||||
margin-top: 0;
|
||||
padding-top: 0; }
|
||||
|
||||
div[data-type="core/freeform"].is-selected .block-library-rich-text__tinymce::after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both; }
|
||||
|
||||
.mce-toolbar-grp .mce-btn.mce-active button,
|
||||
.mce-toolbar-grp .mce-btn.mce-active:hover button,
|
||||
.mce-toolbar-grp .mce-btn.mce-active i,
|
||||
.mce-toolbar-grp .mce-btn.mce-active:hover i {
|
||||
color: #23282d; }
|
||||
|
||||
.mce-toolbar-grp .mce-rtl .mce-flow-layout-item.mce-last {
|
||||
margin-left: 0;
|
||||
margin-right: 8px; }
|
||||
|
||||
.mce-toolbar-grp .mce-btn i {
|
||||
font-style: normal; }
|
||||
|
||||
.block-library-classic__toolbar {
|
||||
width: auto;
|
||||
margin: 0 -14px;
|
||||
|
@ -451,71 +537,75 @@ div[data-type="core/freeform"] .editor-block-contextual-toolbar + div {
|
|||
z-index: 10;
|
||||
top: 14px;
|
||||
transform: translateY(-14px);
|
||||
border: 1px solid #e2e4e7;
|
||||
border-bottom: none;
|
||||
padding: 0 14px; }
|
||||
.is-selected .block-library-classic__toolbar {
|
||||
border-color: #b5bcc2;
|
||||
border-right-color: transparent; }
|
||||
@media (min-width: 600px) {
|
||||
.block-library-classic__toolbar {
|
||||
padding: 0; } }
|
||||
|
||||
.block-library-classic__toolbar:empty {
|
||||
height: 37px;
|
||||
background: #f5f5f5;
|
||||
border-bottom: 1px solid #e2e4e7; }
|
||||
.block-library-classic__toolbar:empty::before {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||
font-size: 13px;
|
||||
content: attr(data-placeholder);
|
||||
color: #555d66;
|
||||
line-height: 37px;
|
||||
padding: 14px; }
|
||||
|
||||
.block-library-classic__toolbar .mce-tinymce-inline,
|
||||
.block-library-classic__toolbar .mce-tinymce-inline > div,
|
||||
.block-library-classic__toolbar div.mce-toolbar-grp,
|
||||
.block-library-classic__toolbar div.mce-toolbar-grp > div,
|
||||
.block-library-classic__toolbar .mce-menubar,
|
||||
.block-library-classic__toolbar .mce-menubar > div {
|
||||
height: auto !important;
|
||||
width: 100% !important; }
|
||||
|
||||
.block-library-classic__toolbar .mce-container-body.mce-abs-layout {
|
||||
overflow: visible; }
|
||||
|
||||
.block-library-classic__toolbar .mce-menubar,
|
||||
.block-library-classic__toolbar div.mce-toolbar-grp {
|
||||
position: static; }
|
||||
|
||||
.block-library-classic__toolbar .mce-toolbar-grp .mce-toolbar:not(:first-child) {
|
||||
display: none; }
|
||||
|
||||
.block-library-classic__toolbar.has-advanced-toolbar .mce-toolbar-grp .mce-toolbar {
|
||||
display: block; }
|
||||
.block-library-classic__toolbar:empty {
|
||||
height: 37px;
|
||||
background: #f5f5f5;
|
||||
border-bottom: 1px solid #e2e4e7; }
|
||||
.block-library-classic__toolbar:empty::before {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||
font-size: 13px;
|
||||
content: attr(data-placeholder);
|
||||
color: #555d66;
|
||||
line-height: 37px;
|
||||
padding: 14px; }
|
||||
.block-library-classic__toolbar .mce-tinymce-inline,
|
||||
.block-library-classic__toolbar .mce-tinymce-inline > div,
|
||||
.block-library-classic__toolbar div.mce-toolbar-grp,
|
||||
.block-library-classic__toolbar div.mce-toolbar-grp > div,
|
||||
.block-library-classic__toolbar .mce-menubar,
|
||||
.block-library-classic__toolbar .mce-menubar > div {
|
||||
height: auto !important;
|
||||
width: 100% !important; }
|
||||
.block-library-classic__toolbar .mce-container-body.mce-abs-layout {
|
||||
overflow: visible; }
|
||||
.block-library-classic__toolbar .mce-menubar,
|
||||
.block-library-classic__toolbar div.mce-toolbar-grp {
|
||||
position: static; }
|
||||
.block-library-classic__toolbar .mce-toolbar-grp > div {
|
||||
padding: 1px 3px; }
|
||||
.block-library-classic__toolbar .mce-toolbar-grp .mce-toolbar:not(:first-child) {
|
||||
display: none; }
|
||||
.block-library-classic__toolbar.has-advanced-toolbar .mce-toolbar-grp .mce-toolbar {
|
||||
display: block; }
|
||||
|
||||
@media (min-width: 600px) {
|
||||
.editor-block-list__block[data-type="core/freeform"] .editor-block-switcher__no-switcher-icon {
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-switcher__no-switcher-icon {
|
||||
display: none; }
|
||||
.editor-block-list__block[data-type="core/freeform"] .editor-block-contextual-toolbar {
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar {
|
||||
float: left;
|
||||
margin-left: 23px;
|
||||
margin-left: 25px;
|
||||
transform: translateY(-13px);
|
||||
top: 14px; }
|
||||
.editor-block-list__block[data-type="core/freeform"] .editor-block-contextual-toolbar .editor-block-toolbar {
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar {
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
margin-top: 3px; } }
|
||||
@media (min-width: 600px) and (min-width: 782px) {
|
||||
.editor-block-list__block[data-type="core/freeform"] .editor-block-contextual-toolbar .editor-block-toolbar {
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar {
|
||||
margin-top: 0; } }
|
||||
|
||||
@media (min-width: 600px) {
|
||||
.editor-block-list__block[data-type="core/freeform"] .editor-block-contextual-toolbar .editor-block-toolbar::before {
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar::before {
|
||||
content: "";
|
||||
display: block;
|
||||
border-right: 1px solid #e2e4e7;
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px; }
|
||||
.editor-block-list__block[data-type="core/freeform"] .editor-block-contextual-toolbar .components-toolbar {
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar__control.components-button:hover {
|
||||
background-color: transparent; }
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar .components-toolbar {
|
||||
background: transparent;
|
||||
border: none; }
|
||||
.editor-block-list__block[data-type="core/freeform"] .mce-container.mce-toolbar.mce-stack-layout-item {
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .mce-container.mce-toolbar.mce-stack-layout-item {
|
||||
padding-left: 36px; } }
|
||||
|
||||
ul.wp-block-gallery li {
|
||||
|
@ -524,55 +614,54 @@ ul.wp-block-gallery li {
|
|||
.blocks-gallery-item figure:not(.is-selected):focus {
|
||||
outline: none; }
|
||||
|
||||
.blocks-gallery-item img:focus,
|
||||
.blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #0085ba; }
|
||||
|
||||
body.admin-color-sunrise .blocks-gallery-item img:focus, body.admin-color-sunrise .blocks-gallery-item .is-selected {
|
||||
body.admin-color-sunrise .blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #d1864a; }
|
||||
|
||||
body.admin-color-ocean .blocks-gallery-item img:focus, body.admin-color-ocean .blocks-gallery-item .is-selected {
|
||||
body.admin-color-ocean .blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #a3b9a2; }
|
||||
|
||||
body.admin-color-midnight .blocks-gallery-item img:focus, body.admin-color-midnight .blocks-gallery-item .is-selected {
|
||||
body.admin-color-midnight .blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #e14d43; }
|
||||
|
||||
body.admin-color-ectoplasm .blocks-gallery-item img:focus, body.admin-color-ectoplasm .blocks-gallery-item .is-selected {
|
||||
body.admin-color-ectoplasm .blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #a7b656; }
|
||||
|
||||
body.admin-color-coffee .blocks-gallery-item img:focus, body.admin-color-coffee .blocks-gallery-item .is-selected {
|
||||
body.admin-color-coffee .blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #c2a68c; }
|
||||
|
||||
body.admin-color-blue .blocks-gallery-item img:focus, body.admin-color-blue .blocks-gallery-item .is-selected {
|
||||
body.admin-color-blue .blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #82b4cb; }
|
||||
|
||||
body.admin-color-light .blocks-gallery-item img:focus, body.admin-color-light .blocks-gallery-item .is-selected {
|
||||
body.admin-color-light .blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #0085ba; }
|
||||
|
||||
.blocks-gallery-item .is-transient img {
|
||||
opacity: 0.3; }
|
||||
|
||||
.blocks-gallery-item .editor-rich-text {
|
||||
.blocks-gallery-item .block-editor-rich-text {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
max-height: 100%;
|
||||
overflow-y: auto; }
|
||||
|
||||
.blocks-gallery-item .editor-rich-text figcaption:not([data-is-placeholder-visible="true"]) {
|
||||
.blocks-gallery-item .block-editor-rich-text figcaption:not([data-is-placeholder-visible="true"]) {
|
||||
position: relative;
|
||||
overflow: hidden; }
|
||||
|
||||
@supports ((position: -webkit-sticky) or (position: sticky)) {
|
||||
.blocks-gallery-item .is-selected .editor-rich-text {
|
||||
.blocks-gallery-item .is-selected .block-editor-rich-text {
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin-top: -4px; } }
|
||||
|
||||
.blocks-gallery-item .is-selected .editor-rich-text .editor-rich-text__inline-toolbar {
|
||||
.blocks-gallery-item .is-selected .block-editor-rich-text .block-editor-rich-text__inline-toolbar {
|
||||
top: 0; }
|
||||
|
||||
.blocks-gallery-item .is-selected .editor-rich-text .editor-rich-text__tinymce {
|
||||
.blocks-gallery-item .is-selected .block-editor-rich-text figcaption {
|
||||
padding-top: 48px; }
|
||||
|
||||
.blocks-gallery-item .components-form-file-upload,
|
||||
|
@ -593,12 +682,9 @@ body.admin-color-light .blocks-gallery-item img:focus, body.admin-color-light .b
|
|||
.blocks-gallery-item .components-button.block-library-gallery-add-item-button:hover, .blocks-gallery-item .components-button.block-library-gallery-add-item-button:focus {
|
||||
border: 1px solid #555d66; }
|
||||
|
||||
.blocks-gallery-item .editor-rich-text .editor-rich-text__tinymce a {
|
||||
.blocks-gallery-item .block-editor-rich-text figcaption a {
|
||||
color: #fff; }
|
||||
|
||||
.blocks-gallery-item .editor-rich-text .editor-rich-text__tinymce:focus a[data-mce-selected] {
|
||||
color: rgba(0, 0, 0, 0.2); }
|
||||
|
||||
.block-library-gallery-item__inline-menu {
|
||||
padding: 2px;
|
||||
position: absolute;
|
||||
|
@ -678,22 +764,26 @@ body.admin-color-light .block-library-gallery-item__inline-menu {
|
|||
.wp-block-heading h6 {
|
||||
font-size: 0.8em; }
|
||||
|
||||
.wp-block-heading h1.editor-rich-text__tinymce,
|
||||
.wp-block-heading h2.editor-rich-text__tinymce,
|
||||
.wp-block-heading h3.editor-rich-text__tinymce {
|
||||
.wp-block-heading h1,
|
||||
.wp-block-heading h2,
|
||||
.wp-block-heading h3 {
|
||||
line-height: 1.4; }
|
||||
|
||||
.wp-block-heading h4.editor-rich-text__tinymce {
|
||||
.wp-block-heading h4 {
|
||||
line-height: 1.5; }
|
||||
|
||||
.wp-block-html .editor-plain-text {
|
||||
.wp-block-html .block-editor-plain-text {
|
||||
font-family: Menlo, Consolas, monaco, monospace;
|
||||
font-size: 14px;
|
||||
color: #23282d;
|
||||
padding: 0.8em 1em;
|
||||
border: 1px solid #e2e4e7;
|
||||
border-radius: 4px; }
|
||||
.wp-block-html .editor-plain-text:focus {
|
||||
border-radius: 4px;
|
||||
/* Fonts smaller than 16px causes mobile safari to zoom. */
|
||||
font-size: 16px; }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-html .block-editor-plain-text {
|
||||
font-size: 13px; } }
|
||||
.wp-block-html .block-editor-plain-text:focus {
|
||||
box-shadow: none; }
|
||||
|
||||
.wp-block-image {
|
||||
|
@ -719,11 +809,11 @@ body.admin-color-light .block-library-gallery-item__inline-menu {
|
|||
display: block;
|
||||
z-index: 1; }
|
||||
|
||||
.editor-block-list__block[data-type="core/image"][data-align="center"] .wp-block-image {
|
||||
.block-editor-block-list__block[data-type="core/image"][data-align="center"] .wp-block-image {
|
||||
margin-right: auto;
|
||||
margin-left: auto; }
|
||||
|
||||
.editor-block-list__block[data-type="core/image"][data-align="center"][data-resized="false"] .wp-block-image > div {
|
||||
.block-editor-block-list__block[data-type="core/image"][data-align="center"][data-resized="false"] .wp-block-image > div {
|
||||
margin-right: auto;
|
||||
margin-left: auto; }
|
||||
|
||||
|
@ -743,24 +833,24 @@ body.admin-color-light .block-library-gallery-item__inline-menu {
|
|||
.edit-post-sidebar .block-library-image__dimensions .block-library-image__dimensions__row .block-library-image__dimensions__height {
|
||||
margin-right: 5px; }
|
||||
|
||||
.editor-block-list__block[data-type="core/image"] .editor-block-toolbar .editor-url-input__button-modal {
|
||||
.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
left: 0;
|
||||
margin: -1px 0; }
|
||||
@media (min-width: 600px) {
|
||||
.editor-block-list__block[data-type="core/image"] .editor-block-toolbar .editor-url-input__button-modal {
|
||||
.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal {
|
||||
margin: -1px; } }
|
||||
|
||||
[data-type="core/image"][data-align="center"] .editor-block-list__block-edit figure,
|
||||
[data-type="core/image"][data-align="left"] .editor-block-list__block-edit figure,
|
||||
[data-type="core/image"][data-align="right"] .editor-block-list__block-edit figure {
|
||||
[data-type="core/image"][data-align="center"] .block-editor-block-list__block-edit figure,
|
||||
[data-type="core/image"][data-align="left"] .block-editor-block-list__block-edit figure,
|
||||
[data-type="core/image"][data-align="right"] .block-editor-block-list__block-edit figure {
|
||||
margin: 0;
|
||||
display: table; }
|
||||
|
||||
[data-type="core/image"][data-align="center"] .editor-block-list__block-edit .editor-rich-text,
|
||||
[data-type="core/image"][data-align="left"] .editor-block-list__block-edit .editor-rich-text,
|
||||
[data-type="core/image"][data-align="right"] .editor-block-list__block-edit .editor-rich-text {
|
||||
[data-type="core/image"][data-align="center"] .block-editor-block-list__block-edit .block-editor-rich-text,
|
||||
[data-type="core/image"][data-align="left"] .block-editor-block-list__block-edit .block-editor-rich-text,
|
||||
[data-type="core/image"][data-align="right"] .block-editor-block-list__block-edit .block-editor-rich-text {
|
||||
display: table-caption;
|
||||
caption-side: bottom; }
|
||||
|
||||
|
@ -768,10 +858,10 @@ body.admin-color-light .block-library-gallery-item__inline-menu {
|
|||
[data-type="core/image"][data-align="full"] figure img {
|
||||
width: 100%; }
|
||||
|
||||
[data-type="core/image"] .editor-block-list__block-edit figure.is-resized {
|
||||
[data-type="core/image"] .block-editor-block-list__block-edit figure.is-resized {
|
||||
margin: 0;
|
||||
display: table; }
|
||||
[data-type="core/image"] .editor-block-list__block-edit figure.is-resized .editor-rich-text {
|
||||
[data-type="core/image"] .block-editor-block-list__block-edit figure.is-resized .block-editor-rich-text {
|
||||
display: table-caption;
|
||||
caption-side: bottom; }
|
||||
|
||||
|
@ -792,6 +882,28 @@ body.admin-color-light .block-library-gallery-item__inline-menu {
|
|||
.block-editor .wp-block-latest-posts.is-grid {
|
||||
padding-right: 0; }
|
||||
|
||||
.wp-block-latest-posts li a > div {
|
||||
display: inline; }
|
||||
|
||||
.wp-block-legacy-widget__edit-container,
|
||||
.wp-block-legacy-widget__preview {
|
||||
padding-right: 2.5em;
|
||||
padding-left: 2.5em; }
|
||||
|
||||
.wp-block-legacy-widget__edit-container .widget-inside {
|
||||
border: none;
|
||||
display: block; }
|
||||
|
||||
.wp-block-legacy-widget__update-button {
|
||||
margin-right: auto;
|
||||
display: block; }
|
||||
|
||||
.wp-block-legacy-widget__edit-container .widget-inside {
|
||||
box-shadow: none; }
|
||||
|
||||
.wp-block-legacy-widget__preview {
|
||||
overflow: auto; }
|
||||
|
||||
.wp-block-media-text {
|
||||
grid-template-areas: "media-text-media media-text-content" "resizer resizer"; }
|
||||
|
||||
|
@ -806,13 +918,13 @@ body.admin-color-light .block-library-gallery-item__inline-menu {
|
|||
align-self: center;
|
||||
width: 100% !important; }
|
||||
|
||||
.wp-block-media-text .editor-inner-blocks {
|
||||
.wp-block-media-text .block-editor-inner-blocks {
|
||||
word-break: break-word;
|
||||
grid-area: media-text-content;
|
||||
text-align: initial;
|
||||
padding: 0 8% 0 8%; }
|
||||
|
||||
.wp-block-media-text > .editor-inner-blocks > .editor-block-list__layout > .editor-block-list__block {
|
||||
.wp-block-media-text > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-editor-block-list__block {
|
||||
max-width: unset; }
|
||||
|
||||
figure.block-library-media-text__media-container {
|
||||
|
@ -835,13 +947,12 @@ figure.block-library-media-text__media-container {
|
|||
.wp-block-media-text.is-selected.is-stacked-on-mobile .editor-media-container__resizer .components-resizable-box__handle {
|
||||
display: block; } }
|
||||
|
||||
.block-library-list .editor-rich-text__tinymce,
|
||||
.block-library-list .editor-rich-text__tinymce ul,
|
||||
.block-library-list .editor-rich-text__tinymce ol {
|
||||
.editor-styles-wrapper .block-library-list ul,
|
||||
.editor-styles-wrapper .block-library-list ol {
|
||||
padding-right: 1.3em;
|
||||
margin-right: 1.3em; }
|
||||
|
||||
.editor-block-list__block[data-type="core/more"] {
|
||||
.block-editor-block-list__block[data-type="core/more"] {
|
||||
max-width: 100%;
|
||||
text-align: center; }
|
||||
|
||||
|
@ -875,7 +986,7 @@ figure.block-library-media-text__media-container {
|
|||
left: 0;
|
||||
border-top: 3px dashed #ccd0d4; }
|
||||
|
||||
.editor-visual-editor__block[data-type="core/nextpage"] {
|
||||
.block-editor-block-list__block[data-type="core/nextpage"] {
|
||||
max-width: 100%; }
|
||||
|
||||
.wp-block-nextpage {
|
||||
|
@ -902,37 +1013,25 @@ figure.block-library-media-text__media-container {
|
|||
left: 0;
|
||||
border-top: 3px dashed #ccd0d4; }
|
||||
|
||||
.editor-rich-text__tinymce[data-is-placeholder-visible="true"] + .editor-rich-text__tinymce.wp-block-paragraph {
|
||||
.block-editor-rich-text__editable[data-is-placeholder-visible="true"] + .block-editor-rich-text__editable.wp-block-paragraph {
|
||||
padding-left: 108px; }
|
||||
.wp-block .wp-block .editor-rich-text__tinymce[data-is-placeholder-visible="true"] + .editor-rich-text__tinymce.wp-block-paragraph {
|
||||
.wp-block .wp-block .block-editor-rich-text__editable[data-is-placeholder-visible="true"] + .block-editor-rich-text__editable.wp-block-paragraph {
|
||||
padding-left: 36px; }
|
||||
|
||||
.wp-block-preformatted pre {
|
||||
white-space: pre-wrap; }
|
||||
|
||||
.editor-block-list__block[data-type="core/pullquote"][data-align="left"] .block-library-pullquote__content .editor-rich-text__tinymce[data-is-empty="true"]::before,
|
||||
.editor-block-list__block[data-type="core/pullquote"][data-align="left"] .editor-rich-text p, .editor-block-list__block[data-type="core/pullquote"][data-align="right"] .block-library-pullquote__content .editor-rich-text__tinymce[data-is-empty="true"]::before,
|
||||
.editor-block-list__block[data-type="core/pullquote"][data-align="right"] .editor-rich-text p {
|
||||
.block-editor-block-list__block[data-type="core/pullquote"][data-align="left"] .block-editor-rich-text p, .block-editor-block-list__block[data-type="core/pullquote"][data-align="right"] .block-editor-rich-text p {
|
||||
font-size: 20px; }
|
||||
|
||||
.wp-block-pullquote cite .editor-rich-text__tinymce[data-is-empty="true"]::before {
|
||||
font-size: 14px;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; }
|
||||
|
||||
.wp-block-pullquote .editor-rich-text__tinymce[data-is-empty="true"]::before {
|
||||
width: 100%;
|
||||
right: 50%;
|
||||
transform: translateX(50%); }
|
||||
|
||||
.wp-block-pullquote blockquote > .block-library-pullquote__content .editor-rich-text__tinymce[data-is-empty="true"]::before,
|
||||
.wp-block-pullquote blockquote > .editor-rich-text p {
|
||||
.wp-block-pullquote blockquote > .block-editor-rich-text p {
|
||||
font-size: 28px;
|
||||
line-height: 1.6; }
|
||||
|
||||
.wp-block-pullquote.is-style-solid-color {
|
||||
margin-right: 0;
|
||||
margin-left: 0; }
|
||||
.wp-block-pullquote.is-style-solid-color blockquote > .editor-rich-text p {
|
||||
.wp-block-pullquote.is-style-solid-color blockquote > .block-editor-rich-text p {
|
||||
font-size: 32px; }
|
||||
.wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation {
|
||||
text-transform: none;
|
||||
|
@ -946,6 +1045,30 @@ figure.block-library-media-text__media-container {
|
|||
.wp-block-quote__citation {
|
||||
font-size: 13px; }
|
||||
|
||||
.block-editor .wp-block-rss {
|
||||
padding-right: 2.5em; }
|
||||
.block-editor .wp-block-rss.is-grid {
|
||||
padding-right: 0; }
|
||||
|
||||
.wp-block-search .wp-block-search__input {
|
||||
border-radius: 4px;
|
||||
border: 1px solid #8d96a0;
|
||||
color: rgba(14, 28, 46, 0.62);
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||
font-size: 13px; }
|
||||
.wp-block-search .wp-block-search__input:focus {
|
||||
outline: none; }
|
||||
|
||||
.wp-block-search .wp-block-search__button {
|
||||
background: #f7f7f7;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #ccc;
|
||||
box-shadow: inset 0 -1px 0 #ccc;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||
font-size: 13px; }
|
||||
.wp-block-search .wp-block-search__button .wp-block-search__button-rich-text {
|
||||
padding: 6px 10px; }
|
||||
|
||||
.wp-block-shortcode {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
@ -960,7 +1083,7 @@ figure.block-library-media-text__media-container {
|
|||
white-space: nowrap;
|
||||
font-weight: 600;
|
||||
flex-shrink: 0; }
|
||||
.wp-block-shortcode .editor-plain-text {
|
||||
.wp-block-shortcode .block-editor-plain-text {
|
||||
flex-grow: 1; }
|
||||
.wp-block-shortcode .dashicon {
|
||||
margin-left: 8px; }
|
||||
|
@ -973,12 +1096,12 @@ figure.block-library-media-text__media-container {
|
|||
font-size: 1.1em;
|
||||
font-style: italic; }
|
||||
|
||||
.editor-block-list__block[data-type="core/table"][data-align="left"] table, .editor-block-list__block[data-type="core/table"][data-align="right"] table, .editor-block-list__block[data-type="core/table"][data-align="center"] table {
|
||||
.block-editor-block-list__block[data-type="core/table"][data-align="left"] table, .block-editor-block-list__block[data-type="core/table"][data-align="right"] table, .block-editor-block-list__block[data-type="core/table"][data-align="center"] table {
|
||||
width: auto; }
|
||||
|
||||
.editor-block-list__block[data-type="core/table"][data-align="center"] {
|
||||
.block-editor-block-list__block[data-type="core/table"][data-align="center"] {
|
||||
text-align: initial; }
|
||||
.editor-block-list__block[data-type="core/table"][data-align="center"] table {
|
||||
.block-editor-block-list__block[data-type="core/table"][data-align="center"] table {
|
||||
margin: 0 auto; }
|
||||
|
||||
.wp-block-table table {
|
||||
|
@ -988,7 +1111,7 @@ figure.block-library-media-text__media-container {
|
|||
.wp-block-table td,
|
||||
.wp-block-table th {
|
||||
padding: 0;
|
||||
border: 1px solid currentColor; }
|
||||
border: 1px solid #000; }
|
||||
|
||||
.wp-block-table td.is-selected,
|
||||
.wp-block-table th.is-selected {
|
||||
|
@ -999,7 +1122,17 @@ figure.block-library-media-text__media-container {
|
|||
.wp-block-table__cell-content {
|
||||
padding: 0.5em; }
|
||||
|
||||
.wp-block-text-columns .editor-rich-text__tinymce:focus {
|
||||
.block-editor .wp-block-tag-cloud a {
|
||||
display: inline-block;
|
||||
margin-left: 5px; }
|
||||
|
||||
.block-editor .wp-block-tag-cloud span {
|
||||
display: inline-block;
|
||||
margin-right: 5px;
|
||||
color: #8f98a1;
|
||||
text-decoration: none; }
|
||||
|
||||
.wp-block-text-columns .block-editor-rich-text__editable:focus {
|
||||
outline: 1px solid #e2e4e7; }
|
||||
|
||||
pre.wp-block-verse,
|
||||
|
@ -1011,7 +1144,7 @@ pre.wp-block-verse,
|
|||
padding: 1em;
|
||||
overflow: auto; }
|
||||
|
||||
.editor-block-list__block[data-align="center"] {
|
||||
.block-editor-block-list__block[data-align="center"] {
|
||||
text-align: center; }
|
||||
|
||||
.editor-video-poster-control .components-button {
|
||||
|
|
File diff suppressed because one or more lines are too long
541
wp-includes/css/dist/block-library/editor.css
vendored
541
wp-includes/css/dist/block-library/editor.css
vendored
|
@ -28,16 +28,19 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
.block-editor ul.wp-block-archives {
|
||||
padding-left: 2.5em; }
|
||||
|
||||
.wp-block-audio {
|
||||
margin: 0; }
|
||||
|
||||
.editor-block-list__block[data-type="core/button"][data-align="center"] {
|
||||
.block-editor-block-list__block[data-type="core/button"][data-align="center"] {
|
||||
text-align: center; }
|
||||
|
||||
.editor-block-list__block[data-type="core/button"][data-align="right"] {
|
||||
.block-editor-block-list__block[data-type="core/button"][data-align="right"] {
|
||||
/*!rtl:ignore*/
|
||||
text-align: right; }
|
||||
|
||||
|
@ -45,20 +48,20 @@
|
|||
display: inline-block;
|
||||
margin-bottom: 0;
|
||||
position: relative; }
|
||||
.wp-block-button .editor-rich-text__tinymce.mce-content-body {
|
||||
.wp-block-button [contenteditable] {
|
||||
cursor: text; }
|
||||
.wp-block-button:not(.has-text-color):not(.is-style-outline) .editor-rich-text__tinymce[data-is-placeholder-visible="true"] + .editor-rich-text__tinymce {
|
||||
.wp-block-button:not(.has-text-color):not(.is-style-outline) .block-editor-rich-text__editable[data-is-placeholder-visible="true"] + .block-editor-rich-text__editable {
|
||||
color: #fff; }
|
||||
.wp-block-button .editor-rich-text__tinymce[data-is-placeholder-visible="true"] + .editor-rich-text__tinymce {
|
||||
.wp-block-button .block-editor-rich-text__editable[data-is-placeholder-visible="true"] + .block-editor-rich-text__editable {
|
||||
opacity: 0.8; }
|
||||
.editor-block-preview__content .wp-block-button {
|
||||
.block-editor-block-preview__content .wp-block-button {
|
||||
max-width: 100%; }
|
||||
.editor-block-preview__content .wp-block-button .editor-rich-text__tinymce[data-is-placeholder-visible="true"] {
|
||||
.block-editor-block-preview__content .wp-block-button .block-editor-rich-text__editable[data-is-placeholder-visible="true"] {
|
||||
height: auto; }
|
||||
.editor-block-preview__content .wp-block-button .wp-block-button__link {
|
||||
.block-editor-block-preview__content .wp-block-button .wp-block-button__link {
|
||||
max-width: 100%;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
white-space: nowrap !important;
|
||||
text-overflow: ellipsis; }
|
||||
|
||||
.block-library-button__inline-link {
|
||||
|
@ -70,20 +73,20 @@
|
|||
font-size: 13px;
|
||||
line-height: 1.4;
|
||||
width: 374px; }
|
||||
.block-library-button__inline-link .editor-url-input {
|
||||
.block-library-button__inline-link .block-editor-url-input {
|
||||
width: auto; }
|
||||
.block-library-button__inline-link .editor-url-input__suggestions {
|
||||
.block-library-button__inline-link .block-editor-url-input__suggestions {
|
||||
width: 302px;
|
||||
z-index: 6; }
|
||||
.block-library-button__inline-link > .dashicon {
|
||||
width: 36px; }
|
||||
.block-library-button__inline-link .dashicon {
|
||||
color: #8f98a1; }
|
||||
.block-library-button__inline-link .editor-url-input input[type="text"]:-ms-input-placeholder {
|
||||
.block-library-button__inline-link .block-editor-url-input input[type="text"]:-ms-input-placeholder {
|
||||
color: #8f98a1; }
|
||||
.block-library-button__inline-link .editor-url-input input[type="text"]::-ms-input-placeholder {
|
||||
.block-library-button__inline-link .block-editor-url-input input[type="text"]::-ms-input-placeholder {
|
||||
color: #8f98a1; }
|
||||
.block-library-button__inline-link .editor-url-input input[type="text"]::placeholder {
|
||||
.block-library-button__inline-link .block-editor-url-input input[type="text"]::placeholder {
|
||||
color: #8f98a1; }
|
||||
[data-align="center"] .block-library-button__inline-link {
|
||||
margin-left: auto;
|
||||
|
@ -97,11 +100,15 @@
|
|||
.block-editor .wp-block-categories ul ul {
|
||||
margin-top: 6px; }
|
||||
|
||||
.wp-block-code .editor-plain-text {
|
||||
.wp-block-code .block-editor-plain-text {
|
||||
font-family: Menlo, Consolas, monaco, monospace;
|
||||
font-size: 14px;
|
||||
color: #23282d; }
|
||||
.wp-block-code .editor-plain-text:focus {
|
||||
color: #23282d;
|
||||
/* Fonts smaller than 16px causes mobile safari to zoom. */
|
||||
font-size: 16px; }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-code .block-editor-plain-text {
|
||||
font-size: 13px; } }
|
||||
.wp-block-code .block-editor-plain-text:focus {
|
||||
box-shadow: none; }
|
||||
|
||||
.components-tab-button {
|
||||
|
@ -141,29 +148,29 @@
|
|||
background-color: #555d66;
|
||||
color: #fff; }
|
||||
|
||||
.wp-block-columns .editor-block-list__layout {
|
||||
.wp-block-columns .block-editor-block-list__layout {
|
||||
margin-left: 0;
|
||||
margin-right: 0; }
|
||||
.wp-block-columns .editor-block-list__layout .editor-block-list__block {
|
||||
.wp-block-columns .block-editor-block-list__layout .block-editor-block-list__block {
|
||||
max-width: none; }
|
||||
|
||||
.editor-block-list__block[data-align="full"] .wp-block-columns > .editor-inner-blocks {
|
||||
.block-editor-block-list__block[data-align="full"] .wp-block-columns > .block-editor-inner-blocks {
|
||||
padding-left: 14px;
|
||||
padding-right: 14px; }
|
||||
@media (min-width: 600px) {
|
||||
.editor-block-list__block[data-align="full"] .wp-block-columns > .editor-inner-blocks {
|
||||
.block-editor-block-list__block[data-align="full"] .wp-block-columns > .block-editor-inner-blocks {
|
||||
padding-left: 60px;
|
||||
padding-right: 60px; } }
|
||||
|
||||
.wp-block-columns {
|
||||
display: block; }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout {
|
||||
display: flex;
|
||||
flex-wrap: wrap; }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout {
|
||||
@media (min-width: 782px) {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout {
|
||||
flex-wrap: nowrap; } }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex: 1;
|
||||
|
@ -175,69 +182,69 @@
|
|||
word-break: break-word;
|
||||
overflow-wrap: break-word;
|
||||
flex-basis: 100%; }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] > .editor-block-list__block-edit > div > .editor-inner-blocks {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"] > .block-editor-block-list__block-edit > div > .block-editor-inner-blocks {
|
||||
margin-top: -28px;
|
||||
margin-bottom: -28px; }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] > .editor-block-list__block-edit {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"] > .block-editor-block-list__block-edit {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0; }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] > .editor-block-list__block-edit::before {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"] > .block-editor-block-list__block-edit::before {
|
||||
left: 0;
|
||||
right: 0; }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] > .editor-block-list__block-edit > .editor-block-contextual-toolbar {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"] > .block-editor-block-list__block-edit > .block-editor-block-contextual-toolbar {
|
||||
margin-left: -1px; }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"] {
|
||||
margin-left: 14px;
|
||||
margin-right: 14px; } }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] {
|
||||
flex-basis: 50%;
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"] {
|
||||
flex-basis: calc(50% - (16px + 28px));
|
||||
flex-grow: 0; } }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"]:nth-child(odd) {
|
||||
margin-right: 32px; }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"]:nth-child(even) {
|
||||
margin-left: 32px; } }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"]:not(:first-child) {
|
||||
margin-left: 32px; }
|
||||
.wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"]:not(:last-child) {
|
||||
margin-right: 32px; } }
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"]:nth-child(even) {
|
||||
margin-left: calc(32px + 14px); } }
|
||||
@media (min-width: 782px) {
|
||||
.wp-block-columns > .block-editor-inner-blocks > .block-editor-block-list__layout > [data-type="core/column"]:not(:first-child) {
|
||||
margin-left: calc(32px + 14px); } }
|
||||
|
||||
.wp-block-columns [data-type="core/column"].is-hovered > .block-editor-block-list__block-edit::before {
|
||||
content: none; }
|
||||
|
||||
.wp-block-columns [data-type="core/column"].is-hovered .block-editor-block-list__breadcrumb {
|
||||
display: none; }
|
||||
|
||||
.wp-block-columns [data-type="core/column"] {
|
||||
pointer-events: none; }
|
||||
.wp-block-columns [data-type="core/column"].is-hovered > .editor-block-list__block-edit::before {
|
||||
content: none; }
|
||||
.wp-block-columns [data-type="core/column"].is-hovered .editor-block-list__breadcrumb {
|
||||
display: none; }
|
||||
|
||||
:not(.components-disabled) > .wp-block-columns > .editor-inner-blocks > .editor-block-list__layout > [data-type="core/column"] > .editor-block-list__block-edit > * {
|
||||
pointer-events: all; }
|
||||
|
||||
.wp-block-cover-image .editor-rich-text__tinymce[data-is-empty="true"]::before,
|
||||
.wp-block-cover .editor-rich-text__tinymce[data-is-empty="true"]::before {
|
||||
position: inherit; }
|
||||
|
||||
.wp-block-cover-image .editor-rich-text__tinymce:focus a[data-mce-selected],
|
||||
.wp-block-cover .editor-rich-text__tinymce:focus a[data-mce-selected] {
|
||||
padding: 0 2px;
|
||||
margin: 0 -2px;
|
||||
border-radius: 2px;
|
||||
box-shadow: none;
|
||||
background: rgba(255, 255, 255, 0.3); }
|
||||
.wp-block-columns [data-type="core/column"] .block-editor-block-list__layout {
|
||||
pointer-events: all; }
|
||||
|
||||
.wp-block-cover-image.components-placeholder h2,
|
||||
.wp-block-cover.components-placeholder h2 {
|
||||
color: inherit; }
|
||||
|
||||
.wp-block-cover-image.has-left-content .editor-rich-text__inline-toolbar,
|
||||
.wp-block-cover.has-left-content .editor-rich-text__inline-toolbar {
|
||||
justify-content: flex-start; }
|
||||
.wp-block-cover-image.has-right-content .block-editor-rich-text__inline-toolbar,
|
||||
.wp-block-cover-image.has-left-content .block-editor-rich-text__inline-toolbar,
|
||||
.wp-block-cover.has-right-content .block-editor-rich-text__inline-toolbar,
|
||||
.wp-block-cover.has-left-content .block-editor-rich-text__inline-toolbar {
|
||||
display: inline-block; }
|
||||
|
||||
.wp-block-cover-image.has-right-content .editor-rich-text__inline-toolbar,
|
||||
.wp-block-cover.has-right-content .editor-rich-text__inline-toolbar {
|
||||
justify-content: flex-end; }
|
||||
.wp-block-cover-image .block-editor-block-list__layout,
|
||||
.wp-block-cover .block-editor-block-list__layout {
|
||||
width: 100%; }
|
||||
|
||||
.wp-block-cover-image .block-editor-block-list__block,
|
||||
.wp-block-cover .block-editor-block-list__block {
|
||||
color: #f8f9f9; }
|
||||
|
||||
.wp-block-cover-image .wp-block-cover__inner-container,
|
||||
.wp-block-cover .wp-block-cover__inner-container {
|
||||
text-align: left; }
|
||||
|
||||
.wp-block-cover-image .wp-block-cover__inner-container > .block-editor-inner-blocks > .block-editor-block-list__layout,
|
||||
.wp-block-cover .wp-block-cover__inner-container > .block-editor-inner-blocks > .block-editor-block-list__layout {
|
||||
margin-left: 0;
|
||||
margin-right: 0; }
|
||||
|
||||
.wp-block-cover-image.components-placeholder,
|
||||
.wp-block-cover.components-placeholder {
|
||||
|
@ -260,7 +267,9 @@
|
|||
clear: both; }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-embed {
|
||||
min-width: 360px; } }
|
||||
min-width: 360px; }
|
||||
.wp-block-embed.components-placeholder {
|
||||
min-width: 0; } }
|
||||
.wp-block-embed.is-loading {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
@ -276,6 +285,14 @@
|
|||
.wp-block-embed .components-placeholder__error {
|
||||
word-break: break-word; }
|
||||
|
||||
.block-library-embed__interactive-overlay {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
opacity: 0; }
|
||||
|
||||
.wp-block-file {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
@ -297,12 +314,9 @@
|
|||
margin-left: 1em; }
|
||||
|
||||
.wp-block-freeform.block-library-rich-text__tinymce {
|
||||
overflow: hidden;
|
||||
/**
|
||||
* The following gallery styles were replicated
|
||||
* from the styles applied in the tinymce skin,
|
||||
* /wp-includes/js/tinymce/skins/wordpress/wp-content.css.
|
||||
*/ }
|
||||
/* Remove blue highlighting of selected images in WebKit */
|
||||
/* Image captions */
|
||||
/* WP Views */ }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce p,
|
||||
.wp-block-freeform.block-library-rich-text__tinymce li {
|
||||
line-height: 1.8; }
|
||||
|
@ -371,16 +385,76 @@
|
|||
margin-right: auto; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wp-more-tag {
|
||||
width: 96%;
|
||||
height: 0;
|
||||
height: 20px;
|
||||
display: block;
|
||||
margin: 15px auto;
|
||||
outline: 0;
|
||||
cursor: default;
|
||||
border: 2px dashed #bababa; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview-type-gallery::after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both; }
|
||||
background-image: url(/wp-includes/js/tinymce/skins/wordpress/images/more-2x.png);
|
||||
background-size: 1900px 20px;
|
||||
background-repeat: no-repeat;
|
||||
background-position: center; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce img::selection {
|
||||
background-color: transparent; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce div.mceTemp {
|
||||
-ms-user-select: element; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption {
|
||||
margin: 0;
|
||||
/* dl browser reset */
|
||||
max-width: 100%; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption a,
|
||||
.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption img {
|
||||
display: block; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption,
|
||||
.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption * {
|
||||
-webkit-user-drag: none; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce dl.wp-caption .wp-caption-dd {
|
||||
padding-top: 0.5em;
|
||||
margin: 0;
|
||||
/* browser dd reset */ }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview {
|
||||
width: 99.99%;
|
||||
/* All IE need hasLayout, incl. 11 (ugh, not again!!) */
|
||||
position: relative;
|
||||
clear: both;
|
||||
margin-bottom: 16px;
|
||||
border: 1px solid transparent; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview iframe {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
background: transparent; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview .mce-shim {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected="2"] .mce-shim {
|
||||
display: none; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview .loading-placeholder {
|
||||
border: 1px dashed #e8eaeb;
|
||||
padding: 10px; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error {
|
||||
border: 1px solid #e8eaeb;
|
||||
padding: 1em 0;
|
||||
margin: 0;
|
||||
word-wrap: break-word; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview .wpview-error p {
|
||||
margin: 0;
|
||||
text-align: center; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .loading-placeholder,
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview[data-mce-selected] .wpview-error {
|
||||
border-color: transparent; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview .dashicons {
|
||||
display: block;
|
||||
margin: 0 auto;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
font-size: 32px; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .wpview.wpview-type-gallery::after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .gallery img[data-mce-selected]:focus {
|
||||
outline: none; }
|
||||
.wp-block-freeform.block-library-rich-text__tinymce .gallery a {
|
||||
|
@ -426,28 +500,40 @@
|
|||
border: none;
|
||||
padding: 0; }
|
||||
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"] .mce-btn.mce-active button,
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"] .mce-btn.mce-active:hover button,
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"] .mce-btn.mce-active i,
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"] .mce-btn.mce-active:hover i {
|
||||
color: #23282d; }
|
||||
div[data-type="core/freeform"] .block-editor-block-list__block-edit::before {
|
||||
transition: border-color 0.1s linear, box-shadow 0.1s linear;
|
||||
border: 1px solid #e2e4e7;
|
||||
outline: 1px solid transparent; }
|
||||
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"] .mce-btn i {
|
||||
font-style: normal; }
|
||||
div[data-type="core/freeform"].is-selected .block-editor-block-list__block-edit::before {
|
||||
border-color: #b5bcc2;
|
||||
border-left-color: transparent; }
|
||||
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"] .mce-toolbar-grp > div {
|
||||
padding: 1px 3px; }
|
||||
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"] .editor-block-list__block-edit::before {
|
||||
outline: 1px solid #e2e4e7; }
|
||||
|
||||
.editor-block-list__layout .editor-block-list__block[data-type="core/freeform"].is-hovered .editor-block-list__breadcrumb {
|
||||
div[data-type="core/freeform"].is-hovered .block-editor-block-list__breadcrumb {
|
||||
display: none; }
|
||||
|
||||
div[data-type="core/freeform"] .editor-block-contextual-toolbar + div {
|
||||
margin-top: 0;
|
||||
padding-top: 0; }
|
||||
|
||||
div[data-type="core/freeform"].is-selected .block-library-rich-text__tinymce::after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both; }
|
||||
|
||||
.mce-toolbar-grp .mce-btn.mce-active button,
|
||||
.mce-toolbar-grp .mce-btn.mce-active:hover button,
|
||||
.mce-toolbar-grp .mce-btn.mce-active i,
|
||||
.mce-toolbar-grp .mce-btn.mce-active:hover i {
|
||||
color: #23282d; }
|
||||
|
||||
.mce-toolbar-grp .mce-rtl .mce-flow-layout-item.mce-last {
|
||||
margin-right: 0;
|
||||
margin-left: 8px; }
|
||||
|
||||
.mce-toolbar-grp .mce-btn i {
|
||||
font-style: normal; }
|
||||
|
||||
.block-library-classic__toolbar {
|
||||
width: auto;
|
||||
margin: 0 -14px;
|
||||
|
@ -456,71 +542,75 @@ div[data-type="core/freeform"] .editor-block-contextual-toolbar + div {
|
|||
z-index: 10;
|
||||
top: 14px;
|
||||
transform: translateY(-14px);
|
||||
border: 1px solid #e2e4e7;
|
||||
border-bottom: none;
|
||||
padding: 0 14px; }
|
||||
.is-selected .block-library-classic__toolbar {
|
||||
border-color: #b5bcc2;
|
||||
border-left-color: transparent; }
|
||||
@media (min-width: 600px) {
|
||||
.block-library-classic__toolbar {
|
||||
padding: 0; } }
|
||||
|
||||
.block-library-classic__toolbar:empty {
|
||||
height: 37px;
|
||||
background: #f5f5f5;
|
||||
border-bottom: 1px solid #e2e4e7; }
|
||||
.block-library-classic__toolbar:empty::before {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||
font-size: 13px;
|
||||
content: attr(data-placeholder);
|
||||
color: #555d66;
|
||||
line-height: 37px;
|
||||
padding: 14px; }
|
||||
|
||||
.block-library-classic__toolbar .mce-tinymce-inline,
|
||||
.block-library-classic__toolbar .mce-tinymce-inline > div,
|
||||
.block-library-classic__toolbar div.mce-toolbar-grp,
|
||||
.block-library-classic__toolbar div.mce-toolbar-grp > div,
|
||||
.block-library-classic__toolbar .mce-menubar,
|
||||
.block-library-classic__toolbar .mce-menubar > div {
|
||||
height: auto !important;
|
||||
width: 100% !important; }
|
||||
|
||||
.block-library-classic__toolbar .mce-container-body.mce-abs-layout {
|
||||
overflow: visible; }
|
||||
|
||||
.block-library-classic__toolbar .mce-menubar,
|
||||
.block-library-classic__toolbar div.mce-toolbar-grp {
|
||||
position: static; }
|
||||
|
||||
.block-library-classic__toolbar .mce-toolbar-grp .mce-toolbar:not(:first-child) {
|
||||
display: none; }
|
||||
|
||||
.block-library-classic__toolbar.has-advanced-toolbar .mce-toolbar-grp .mce-toolbar {
|
||||
display: block; }
|
||||
.block-library-classic__toolbar:empty {
|
||||
height: 37px;
|
||||
background: #f5f5f5;
|
||||
border-bottom: 1px solid #e2e4e7; }
|
||||
.block-library-classic__toolbar:empty::before {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||
font-size: 13px;
|
||||
content: attr(data-placeholder);
|
||||
color: #555d66;
|
||||
line-height: 37px;
|
||||
padding: 14px; }
|
||||
.block-library-classic__toolbar .mce-tinymce-inline,
|
||||
.block-library-classic__toolbar .mce-tinymce-inline > div,
|
||||
.block-library-classic__toolbar div.mce-toolbar-grp,
|
||||
.block-library-classic__toolbar div.mce-toolbar-grp > div,
|
||||
.block-library-classic__toolbar .mce-menubar,
|
||||
.block-library-classic__toolbar .mce-menubar > div {
|
||||
height: auto !important;
|
||||
width: 100% !important; }
|
||||
.block-library-classic__toolbar .mce-container-body.mce-abs-layout {
|
||||
overflow: visible; }
|
||||
.block-library-classic__toolbar .mce-menubar,
|
||||
.block-library-classic__toolbar div.mce-toolbar-grp {
|
||||
position: static; }
|
||||
.block-library-classic__toolbar .mce-toolbar-grp > div {
|
||||
padding: 1px 3px; }
|
||||
.block-library-classic__toolbar .mce-toolbar-grp .mce-toolbar:not(:first-child) {
|
||||
display: none; }
|
||||
.block-library-classic__toolbar.has-advanced-toolbar .mce-toolbar-grp .mce-toolbar {
|
||||
display: block; }
|
||||
|
||||
@media (min-width: 600px) {
|
||||
.editor-block-list__block[data-type="core/freeform"] .editor-block-switcher__no-switcher-icon {
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-switcher__no-switcher-icon {
|
||||
display: none; }
|
||||
.editor-block-list__block[data-type="core/freeform"] .editor-block-contextual-toolbar {
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar {
|
||||
float: right;
|
||||
margin-right: 23px;
|
||||
margin-right: 25px;
|
||||
transform: translateY(-13px);
|
||||
top: 14px; }
|
||||
.editor-block-list__block[data-type="core/freeform"] .editor-block-contextual-toolbar .editor-block-toolbar {
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar {
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
margin-top: 3px; } }
|
||||
@media (min-width: 600px) and (min-width: 782px) {
|
||||
.editor-block-list__block[data-type="core/freeform"] .editor-block-contextual-toolbar .editor-block-toolbar {
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar {
|
||||
margin-top: 0; } }
|
||||
|
||||
@media (min-width: 600px) {
|
||||
.editor-block-list__block[data-type="core/freeform"] .editor-block-contextual-toolbar .editor-block-toolbar::before {
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar::before {
|
||||
content: "";
|
||||
display: block;
|
||||
border-left: 1px solid #e2e4e7;
|
||||
margin-top: 4px;
|
||||
margin-bottom: 4px; }
|
||||
.editor-block-list__block[data-type="core/freeform"] .editor-block-contextual-toolbar .components-toolbar {
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar .block-editor-block-toolbar .components-toolbar__control.components-button:hover {
|
||||
background-color: transparent; }
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .block-editor-block-contextual-toolbar .components-toolbar {
|
||||
background: transparent;
|
||||
border: none; }
|
||||
.editor-block-list__block[data-type="core/freeform"] .mce-container.mce-toolbar.mce-stack-layout-item {
|
||||
.block-editor-block-list__block[data-type="core/freeform"] .mce-container.mce-toolbar.mce-stack-layout-item {
|
||||
padding-right: 36px; } }
|
||||
|
||||
ul.wp-block-gallery li {
|
||||
|
@ -529,55 +619,54 @@ ul.wp-block-gallery li {
|
|||
.blocks-gallery-item figure:not(.is-selected):focus {
|
||||
outline: none; }
|
||||
|
||||
.blocks-gallery-item img:focus,
|
||||
.blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #0085ba; }
|
||||
|
||||
body.admin-color-sunrise .blocks-gallery-item img:focus, body.admin-color-sunrise .blocks-gallery-item .is-selected {
|
||||
body.admin-color-sunrise .blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #d1864a; }
|
||||
|
||||
body.admin-color-ocean .blocks-gallery-item img:focus, body.admin-color-ocean .blocks-gallery-item .is-selected {
|
||||
body.admin-color-ocean .blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #a3b9a2; }
|
||||
|
||||
body.admin-color-midnight .blocks-gallery-item img:focus, body.admin-color-midnight .blocks-gallery-item .is-selected {
|
||||
body.admin-color-midnight .blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #e14d43; }
|
||||
|
||||
body.admin-color-ectoplasm .blocks-gallery-item img:focus, body.admin-color-ectoplasm .blocks-gallery-item .is-selected {
|
||||
body.admin-color-ectoplasm .blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #a7b656; }
|
||||
|
||||
body.admin-color-coffee .blocks-gallery-item img:focus, body.admin-color-coffee .blocks-gallery-item .is-selected {
|
||||
body.admin-color-coffee .blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #c2a68c; }
|
||||
|
||||
body.admin-color-blue .blocks-gallery-item img:focus, body.admin-color-blue .blocks-gallery-item .is-selected {
|
||||
body.admin-color-blue .blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #82b4cb; }
|
||||
|
||||
body.admin-color-light .blocks-gallery-item img:focus, body.admin-color-light .blocks-gallery-item .is-selected {
|
||||
body.admin-color-light .blocks-gallery-item .is-selected {
|
||||
outline: 4px solid #0085ba; }
|
||||
|
||||
.blocks-gallery-item .is-transient img {
|
||||
opacity: 0.3; }
|
||||
|
||||
.blocks-gallery-item .editor-rich-text {
|
||||
.blocks-gallery-item .block-editor-rich-text {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
max-height: 100%;
|
||||
overflow-y: auto; }
|
||||
|
||||
.blocks-gallery-item .editor-rich-text figcaption:not([data-is-placeholder-visible="true"]) {
|
||||
.blocks-gallery-item .block-editor-rich-text figcaption:not([data-is-placeholder-visible="true"]) {
|
||||
position: relative;
|
||||
overflow: hidden; }
|
||||
|
||||
@supports ((position: -webkit-sticky) or (position: sticky)) {
|
||||
.blocks-gallery-item .is-selected .editor-rich-text {
|
||||
.blocks-gallery-item .is-selected .block-editor-rich-text {
|
||||
right: 0;
|
||||
left: 0;
|
||||
margin-top: -4px; } }
|
||||
|
||||
.blocks-gallery-item .is-selected .editor-rich-text .editor-rich-text__inline-toolbar {
|
||||
.blocks-gallery-item .is-selected .block-editor-rich-text .block-editor-rich-text__inline-toolbar {
|
||||
top: 0; }
|
||||
|
||||
.blocks-gallery-item .is-selected .editor-rich-text .editor-rich-text__tinymce {
|
||||
.blocks-gallery-item .is-selected .block-editor-rich-text figcaption {
|
||||
padding-top: 48px; }
|
||||
|
||||
.blocks-gallery-item .components-form-file-upload,
|
||||
|
@ -598,12 +687,9 @@ body.admin-color-light .blocks-gallery-item img:focus, body.admin-color-light .b
|
|||
.blocks-gallery-item .components-button.block-library-gallery-add-item-button:hover, .blocks-gallery-item .components-button.block-library-gallery-add-item-button:focus {
|
||||
border: 1px solid #555d66; }
|
||||
|
||||
.blocks-gallery-item .editor-rich-text .editor-rich-text__tinymce a {
|
||||
.blocks-gallery-item .block-editor-rich-text figcaption a {
|
||||
color: #fff; }
|
||||
|
||||
.blocks-gallery-item .editor-rich-text .editor-rich-text__tinymce:focus a[data-mce-selected] {
|
||||
color: rgba(0, 0, 0, 0.2); }
|
||||
|
||||
.block-library-gallery-item__inline-menu {
|
||||
padding: 2px;
|
||||
position: absolute;
|
||||
|
@ -683,22 +769,26 @@ body.admin-color-light .block-library-gallery-item__inline-menu {
|
|||
.wp-block-heading h6 {
|
||||
font-size: 0.8em; }
|
||||
|
||||
.wp-block-heading h1.editor-rich-text__tinymce,
|
||||
.wp-block-heading h2.editor-rich-text__tinymce,
|
||||
.wp-block-heading h3.editor-rich-text__tinymce {
|
||||
.wp-block-heading h1,
|
||||
.wp-block-heading h2,
|
||||
.wp-block-heading h3 {
|
||||
line-height: 1.4; }
|
||||
|
||||
.wp-block-heading h4.editor-rich-text__tinymce {
|
||||
.wp-block-heading h4 {
|
||||
line-height: 1.5; }
|
||||
|
||||
.wp-block-html .editor-plain-text {
|
||||
.wp-block-html .block-editor-plain-text {
|
||||
font-family: Menlo, Consolas, monaco, monospace;
|
||||
font-size: 14px;
|
||||
color: #23282d;
|
||||
padding: 0.8em 1em;
|
||||
border: 1px solid #e2e4e7;
|
||||
border-radius: 4px; }
|
||||
.wp-block-html .editor-plain-text:focus {
|
||||
border-radius: 4px;
|
||||
/* Fonts smaller than 16px causes mobile safari to zoom. */
|
||||
font-size: 16px; }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-html .block-editor-plain-text {
|
||||
font-size: 13px; } }
|
||||
.wp-block-html .block-editor-plain-text:focus {
|
||||
box-shadow: none; }
|
||||
|
||||
.wp-block-image {
|
||||
|
@ -724,11 +814,11 @@ body.admin-color-light .block-library-gallery-item__inline-menu {
|
|||
display: block;
|
||||
z-index: 1; }
|
||||
|
||||
.editor-block-list__block[data-type="core/image"][data-align="center"] .wp-block-image {
|
||||
.block-editor-block-list__block[data-type="core/image"][data-align="center"] .wp-block-image {
|
||||
margin-left: auto;
|
||||
margin-right: auto; }
|
||||
|
||||
.editor-block-list__block[data-type="core/image"][data-align="center"][data-resized="false"] .wp-block-image > div {
|
||||
.block-editor-block-list__block[data-type="core/image"][data-align="center"][data-resized="false"] .wp-block-image > div {
|
||||
margin-left: auto;
|
||||
margin-right: auto; }
|
||||
|
||||
|
@ -748,24 +838,24 @@ body.admin-color-light .block-library-gallery-item__inline-menu {
|
|||
.edit-post-sidebar .block-library-image__dimensions .block-library-image__dimensions__row .block-library-image__dimensions__height {
|
||||
margin-left: 5px; }
|
||||
|
||||
.editor-block-list__block[data-type="core/image"] .editor-block-toolbar .editor-url-input__button-modal {
|
||||
.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: -1px 0; }
|
||||
@media (min-width: 600px) {
|
||||
.editor-block-list__block[data-type="core/image"] .editor-block-toolbar .editor-url-input__button-modal {
|
||||
.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal {
|
||||
margin: -1px; } }
|
||||
|
||||
[data-type="core/image"][data-align="center"] .editor-block-list__block-edit figure,
|
||||
[data-type="core/image"][data-align="left"] .editor-block-list__block-edit figure,
|
||||
[data-type="core/image"][data-align="right"] .editor-block-list__block-edit figure {
|
||||
[data-type="core/image"][data-align="center"] .block-editor-block-list__block-edit figure,
|
||||
[data-type="core/image"][data-align="left"] .block-editor-block-list__block-edit figure,
|
||||
[data-type="core/image"][data-align="right"] .block-editor-block-list__block-edit figure {
|
||||
margin: 0;
|
||||
display: table; }
|
||||
|
||||
[data-type="core/image"][data-align="center"] .editor-block-list__block-edit .editor-rich-text,
|
||||
[data-type="core/image"][data-align="left"] .editor-block-list__block-edit .editor-rich-text,
|
||||
[data-type="core/image"][data-align="right"] .editor-block-list__block-edit .editor-rich-text {
|
||||
[data-type="core/image"][data-align="center"] .block-editor-block-list__block-edit .block-editor-rich-text,
|
||||
[data-type="core/image"][data-align="left"] .block-editor-block-list__block-edit .block-editor-rich-text,
|
||||
[data-type="core/image"][data-align="right"] .block-editor-block-list__block-edit .block-editor-rich-text {
|
||||
display: table-caption;
|
||||
caption-side: bottom; }
|
||||
|
||||
|
@ -773,10 +863,10 @@ body.admin-color-light .block-library-gallery-item__inline-menu {
|
|||
[data-type="core/image"][data-align="full"] figure img {
|
||||
width: 100%; }
|
||||
|
||||
[data-type="core/image"] .editor-block-list__block-edit figure.is-resized {
|
||||
[data-type="core/image"] .block-editor-block-list__block-edit figure.is-resized {
|
||||
margin: 0;
|
||||
display: table; }
|
||||
[data-type="core/image"] .editor-block-list__block-edit figure.is-resized .editor-rich-text {
|
||||
[data-type="core/image"] .block-editor-block-list__block-edit figure.is-resized .block-editor-rich-text {
|
||||
display: table-caption;
|
||||
caption-side: bottom; }
|
||||
|
||||
|
@ -797,6 +887,28 @@ body.admin-color-light .block-library-gallery-item__inline-menu {
|
|||
.block-editor .wp-block-latest-posts.is-grid {
|
||||
padding-left: 0; }
|
||||
|
||||
.wp-block-latest-posts li a > div {
|
||||
display: inline; }
|
||||
|
||||
.wp-block-legacy-widget__edit-container,
|
||||
.wp-block-legacy-widget__preview {
|
||||
padding-left: 2.5em;
|
||||
padding-right: 2.5em; }
|
||||
|
||||
.wp-block-legacy-widget__edit-container .widget-inside {
|
||||
border: none;
|
||||
display: block; }
|
||||
|
||||
.wp-block-legacy-widget__update-button {
|
||||
margin-left: auto;
|
||||
display: block; }
|
||||
|
||||
.wp-block-legacy-widget__edit-container .widget-inside {
|
||||
box-shadow: none; }
|
||||
|
||||
.wp-block-legacy-widget__preview {
|
||||
overflow: auto; }
|
||||
|
||||
.wp-block-media-text {
|
||||
grid-template-areas: "media-text-media media-text-content" "resizer resizer"; }
|
||||
|
||||
|
@ -811,13 +923,13 @@ body.admin-color-light .block-library-gallery-item__inline-menu {
|
|||
align-self: center;
|
||||
width: 100% !important; }
|
||||
|
||||
.wp-block-media-text .editor-inner-blocks {
|
||||
.wp-block-media-text .block-editor-inner-blocks {
|
||||
word-break: break-word;
|
||||
grid-area: media-text-content;
|
||||
text-align: initial;
|
||||
padding: 0 8% 0 8%; }
|
||||
|
||||
.wp-block-media-text > .editor-inner-blocks > .editor-block-list__layout > .editor-block-list__block {
|
||||
.wp-block-media-text > .block-editor-inner-blocks > .block-editor-block-list__layout > .block-editor-block-list__block {
|
||||
max-width: unset; }
|
||||
|
||||
figure.block-library-media-text__media-container {
|
||||
|
@ -840,13 +952,12 @@ figure.block-library-media-text__media-container {
|
|||
.wp-block-media-text.is-selected.is-stacked-on-mobile .editor-media-container__resizer .components-resizable-box__handle {
|
||||
display: block; } }
|
||||
|
||||
.block-library-list .editor-rich-text__tinymce,
|
||||
.block-library-list .editor-rich-text__tinymce ul,
|
||||
.block-library-list .editor-rich-text__tinymce ol {
|
||||
.editor-styles-wrapper .block-library-list ul,
|
||||
.editor-styles-wrapper .block-library-list ol {
|
||||
padding-left: 1.3em;
|
||||
margin-left: 1.3em; }
|
||||
|
||||
.editor-block-list__block[data-type="core/more"] {
|
||||
.block-editor-block-list__block[data-type="core/more"] {
|
||||
max-width: 100%;
|
||||
text-align: center; }
|
||||
|
||||
|
@ -880,7 +991,7 @@ figure.block-library-media-text__media-container {
|
|||
right: 0;
|
||||
border-top: 3px dashed #ccd0d4; }
|
||||
|
||||
.editor-visual-editor__block[data-type="core/nextpage"] {
|
||||
.block-editor-block-list__block[data-type="core/nextpage"] {
|
||||
max-width: 100%; }
|
||||
|
||||
.wp-block-nextpage {
|
||||
|
@ -907,37 +1018,25 @@ figure.block-library-media-text__media-container {
|
|||
right: 0;
|
||||
border-top: 3px dashed #ccd0d4; }
|
||||
|
||||
.editor-rich-text__tinymce[data-is-placeholder-visible="true"] + .editor-rich-text__tinymce.wp-block-paragraph {
|
||||
.block-editor-rich-text__editable[data-is-placeholder-visible="true"] + .block-editor-rich-text__editable.wp-block-paragraph {
|
||||
padding-right: 108px; }
|
||||
.wp-block .wp-block .editor-rich-text__tinymce[data-is-placeholder-visible="true"] + .editor-rich-text__tinymce.wp-block-paragraph {
|
||||
.wp-block .wp-block .block-editor-rich-text__editable[data-is-placeholder-visible="true"] + .block-editor-rich-text__editable.wp-block-paragraph {
|
||||
padding-right: 36px; }
|
||||
|
||||
.wp-block-preformatted pre {
|
||||
white-space: pre-wrap; }
|
||||
|
||||
.editor-block-list__block[data-type="core/pullquote"][data-align="left"] .block-library-pullquote__content .editor-rich-text__tinymce[data-is-empty="true"]::before,
|
||||
.editor-block-list__block[data-type="core/pullquote"][data-align="left"] .editor-rich-text p, .editor-block-list__block[data-type="core/pullquote"][data-align="right"] .block-library-pullquote__content .editor-rich-text__tinymce[data-is-empty="true"]::before,
|
||||
.editor-block-list__block[data-type="core/pullquote"][data-align="right"] .editor-rich-text p {
|
||||
.block-editor-block-list__block[data-type="core/pullquote"][data-align="left"] .block-editor-rich-text p, .block-editor-block-list__block[data-type="core/pullquote"][data-align="right"] .block-editor-rich-text p {
|
||||
font-size: 20px; }
|
||||
|
||||
.wp-block-pullquote cite .editor-rich-text__tinymce[data-is-empty="true"]::before {
|
||||
font-size: 14px;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; }
|
||||
|
||||
.wp-block-pullquote .editor-rich-text__tinymce[data-is-empty="true"]::before {
|
||||
width: 100%;
|
||||
left: 50%;
|
||||
transform: translateX(-50%); }
|
||||
|
||||
.wp-block-pullquote blockquote > .block-library-pullquote__content .editor-rich-text__tinymce[data-is-empty="true"]::before,
|
||||
.wp-block-pullquote blockquote > .editor-rich-text p {
|
||||
.wp-block-pullquote blockquote > .block-editor-rich-text p {
|
||||
font-size: 28px;
|
||||
line-height: 1.6; }
|
||||
|
||||
.wp-block-pullquote.is-style-solid-color {
|
||||
margin-left: 0;
|
||||
margin-right: 0; }
|
||||
.wp-block-pullquote.is-style-solid-color blockquote > .editor-rich-text p {
|
||||
.wp-block-pullquote.is-style-solid-color blockquote > .block-editor-rich-text p {
|
||||
font-size: 32px; }
|
||||
.wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation {
|
||||
text-transform: none;
|
||||
|
@ -951,6 +1050,30 @@ figure.block-library-media-text__media-container {
|
|||
.wp-block-quote__citation {
|
||||
font-size: 13px; }
|
||||
|
||||
.block-editor .wp-block-rss {
|
||||
padding-left: 2.5em; }
|
||||
.block-editor .wp-block-rss.is-grid {
|
||||
padding-left: 0; }
|
||||
|
||||
.wp-block-search .wp-block-search__input {
|
||||
border-radius: 4px;
|
||||
border: 1px solid #8d96a0;
|
||||
color: rgba(14, 28, 46, 0.62);
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||
font-size: 13px; }
|
||||
.wp-block-search .wp-block-search__input:focus {
|
||||
outline: none; }
|
||||
|
||||
.wp-block-search .wp-block-search__button {
|
||||
background: #f7f7f7;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #ccc;
|
||||
box-shadow: inset 0 -1px 0 #ccc;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||
font-size: 13px; }
|
||||
.wp-block-search .wp-block-search__button .wp-block-search__button-rich-text {
|
||||
padding: 6px 10px; }
|
||||
|
||||
.wp-block-shortcode {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
|
@ -965,7 +1088,7 @@ figure.block-library-media-text__media-container {
|
|||
white-space: nowrap;
|
||||
font-weight: 600;
|
||||
flex-shrink: 0; }
|
||||
.wp-block-shortcode .editor-plain-text {
|
||||
.wp-block-shortcode .block-editor-plain-text {
|
||||
flex-grow: 1; }
|
||||
.wp-block-shortcode .dashicon {
|
||||
margin-right: 8px; }
|
||||
|
@ -978,12 +1101,12 @@ figure.block-library-media-text__media-container {
|
|||
font-size: 1.1em;
|
||||
font-style: italic; }
|
||||
|
||||
.editor-block-list__block[data-type="core/table"][data-align="left"] table, .editor-block-list__block[data-type="core/table"][data-align="right"] table, .editor-block-list__block[data-type="core/table"][data-align="center"] table {
|
||||
.block-editor-block-list__block[data-type="core/table"][data-align="left"] table, .block-editor-block-list__block[data-type="core/table"][data-align="right"] table, .block-editor-block-list__block[data-type="core/table"][data-align="center"] table {
|
||||
width: auto; }
|
||||
|
||||
.editor-block-list__block[data-type="core/table"][data-align="center"] {
|
||||
.block-editor-block-list__block[data-type="core/table"][data-align="center"] {
|
||||
text-align: initial; }
|
||||
.editor-block-list__block[data-type="core/table"][data-align="center"] table {
|
||||
.block-editor-block-list__block[data-type="core/table"][data-align="center"] table {
|
||||
margin: 0 auto; }
|
||||
|
||||
.wp-block-table table {
|
||||
|
@ -993,7 +1116,7 @@ figure.block-library-media-text__media-container {
|
|||
.wp-block-table td,
|
||||
.wp-block-table th {
|
||||
padding: 0;
|
||||
border: 1px solid currentColor; }
|
||||
border: 1px solid #000; }
|
||||
|
||||
.wp-block-table td.is-selected,
|
||||
.wp-block-table th.is-selected {
|
||||
|
@ -1004,7 +1127,17 @@ figure.block-library-media-text__media-container {
|
|||
.wp-block-table__cell-content {
|
||||
padding: 0.5em; }
|
||||
|
||||
.wp-block-text-columns .editor-rich-text__tinymce:focus {
|
||||
.block-editor .wp-block-tag-cloud a {
|
||||
display: inline-block;
|
||||
margin-right: 5px; }
|
||||
|
||||
.block-editor .wp-block-tag-cloud span {
|
||||
display: inline-block;
|
||||
margin-left: 5px;
|
||||
color: #8f98a1;
|
||||
text-decoration: none; }
|
||||
|
||||
.wp-block-text-columns .block-editor-rich-text__editable:focus {
|
||||
outline: 1px solid #e2e4e7; }
|
||||
|
||||
pre.wp-block-verse,
|
||||
|
@ -1016,7 +1149,7 @@ pre.wp-block-verse,
|
|||
padding: 1em;
|
||||
overflow: auto; }
|
||||
|
||||
.editor-block-list__block[data-align="center"] {
|
||||
.block-editor-block-list__block[data-align="center"] {
|
||||
text-align: center; }
|
||||
|
||||
.editor-video-poster-control .components-button {
|
||||
|
|
File diff suppressed because one or more lines are too long
213
wp-includes/css/dist/block-library/style-rtl.css
vendored
213
wp-includes/css/dist/block-library/style-rtl.css
vendored
|
@ -28,6 +28,9 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
.wp-block-audio figcaption {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 1em;
|
||||
|
@ -39,7 +42,7 @@
|
|||
width: 100%;
|
||||
min-width: 300px; }
|
||||
|
||||
.editor-block-list__layout .reusable-block-edit-panel {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel {
|
||||
align-items: center;
|
||||
background: #f8f9f9;
|
||||
color: #555d66;
|
||||
|
@ -52,38 +55,45 @@
|
|||
margin: 0 -14px;
|
||||
padding: 8px 14px;
|
||||
position: relative;
|
||||
z-index: 7; }
|
||||
.editor-block-list__layout .editor-block-list__layout .reusable-block-edit-panel {
|
||||
border: 1px dashed rgba(145, 151, 162, 0.25);
|
||||
border-bottom: none; }
|
||||
.block-editor-block-list__layout .block-editor-block-list__layout .reusable-block-edit-panel {
|
||||
margin: 0 -14px;
|
||||
padding: 8px 14px; }
|
||||
.editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__spinner {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__spinner {
|
||||
margin: 0 5px; }
|
||||
.editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__info {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__info {
|
||||
margin-left: auto; }
|
||||
.editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__label {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__label {
|
||||
margin-left: 8px;
|
||||
white-space: nowrap;
|
||||
font-weight: 600; }
|
||||
.editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__title {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__title {
|
||||
flex: 1 1 100%;
|
||||
font-size: 14px;
|
||||
height: 30px;
|
||||
margin: 4px 0 8px; }
|
||||
.editor-block-list__layout .reusable-block-edit-panel .components-button.reusable-block-edit-panel__button {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel .components-button.reusable-block-edit-panel__button {
|
||||
flex-shrink: 0; }
|
||||
@media (min-width: 960px) {
|
||||
.editor-block-list__layout .reusable-block-edit-panel {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel {
|
||||
flex-wrap: nowrap; }
|
||||
.editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__title {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__title {
|
||||
margin: 0; }
|
||||
.editor-block-list__layout .reusable-block-edit-panel .components-button.reusable-block-edit-panel__button {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel .components-button.reusable-block-edit-panel__button {
|
||||
margin: 0 5px 0 0; } }
|
||||
|
||||
.editor-block-list__layout .reusable-block-indicator {
|
||||
.editor-block-list__layout .is-selected .reusable-block-edit-panel {
|
||||
border-color: rgba(66, 88, 99, 0.4);
|
||||
border-right-color: transparent; }
|
||||
.is-dark-theme .editor-block-list__layout .is-selected .reusable-block-edit-panel {
|
||||
border-color: rgba(255, 255, 255, 0.45);
|
||||
border-right-color: transparent; }
|
||||
|
||||
.block-editor-block-list__layout .reusable-block-indicator {
|
||||
background: #fff;
|
||||
border-right: 1px dashed #e2e4e7;
|
||||
border: 1px dashed #e2e4e7;
|
||||
color: #555d66;
|
||||
border-bottom: 1px dashed #e2e4e7;
|
||||
top: -14px;
|
||||
height: 30px;
|
||||
padding: 4px;
|
||||
|
@ -113,9 +123,8 @@
|
|||
padding: 12px 24px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
white-space: normal;
|
||||
overflow-wrap: break-word; }
|
||||
.wp-block-button__link:hover, .wp-block-button__link:focus, .wp-block-button__link:active {
|
||||
.wp-block-button__link:hover, .wp-block-button__link:focus, .wp-block-button__link:active, .wp-block-button__link:visited {
|
||||
color: inherit; }
|
||||
|
||||
.is-style-squared .wp-block-button__link {
|
||||
|
@ -124,9 +133,32 @@
|
|||
.is-style-outline {
|
||||
color: #32373c; }
|
||||
.is-style-outline .wp-block-button__link {
|
||||
background: transparent;
|
||||
background-color: transparent;
|
||||
border: 2px solid currentcolor; }
|
||||
|
||||
.wp-block-calendar {
|
||||
text-align: center; }
|
||||
.wp-block-calendar th,
|
||||
.wp-block-calendar tbody td {
|
||||
padding: 4px;
|
||||
border: 1px solid #e2e4e7; }
|
||||
.wp-block-calendar tfoot td {
|
||||
border: none; }
|
||||
.wp-block-calendar table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; }
|
||||
.wp-block-calendar table th {
|
||||
font-weight: 440;
|
||||
background: #edeff0; }
|
||||
.wp-block-calendar a {
|
||||
text-decoration: underline; }
|
||||
.wp-block-calendar tfoot a {
|
||||
color: #00739c; }
|
||||
.wp-block-calendar table tbody,
|
||||
.wp-block-calendar table caption {
|
||||
color: #40464d; }
|
||||
|
||||
.wp-block-categories.alignleft {
|
||||
margin-right: 2em; }
|
||||
|
||||
|
@ -141,7 +173,7 @@
|
|||
flex-wrap: nowrap; } }
|
||||
|
||||
.wp-block-column {
|
||||
flex: 1;
|
||||
flex-grow: 1;
|
||||
margin-bottom: 1em;
|
||||
flex-basis: 100%;
|
||||
min-width: 0;
|
||||
|
@ -149,17 +181,13 @@
|
|||
overflow-wrap: break-word; }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-column {
|
||||
flex-basis: 50%;
|
||||
flex-grow: 0; } }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-column:nth-child(odd) {
|
||||
margin-left: 32px; }
|
||||
.wp-block-column:nth-child(even) {
|
||||
margin-right: 32px; }
|
||||
flex-basis: calc(50% - 16px);
|
||||
flex-grow: 0; }
|
||||
.wp-block-column:nth-child(even) {
|
||||
margin-right: 32px; } }
|
||||
@media (min-width: 782px) {
|
||||
.wp-block-column:not(:first-child) {
|
||||
margin-right: 32px; }
|
||||
.wp-block-column:not(:last-child) {
|
||||
margin-left: 32px; } }
|
||||
margin-right: 32px; } }
|
||||
|
||||
.wp-block-cover-image,
|
||||
.wp-block-cover {
|
||||
|
@ -303,6 +331,28 @@
|
|||
.wp-block-cover.alignleft,
|
||||
.wp-block-cover.alignright {
|
||||
display: flex; }
|
||||
.wp-block-cover-image .wp-block-cover__inner-container,
|
||||
.wp-block-cover .wp-block-cover__inner-container {
|
||||
width: calc(100% - 70px);
|
||||
z-index: 1;
|
||||
color: #f8f9f9; }
|
||||
.wp-block-cover-image p,
|
||||
.wp-block-cover-image h1,
|
||||
.wp-block-cover-image h2,
|
||||
.wp-block-cover-image h3,
|
||||
.wp-block-cover-image h4,
|
||||
.wp-block-cover-image h5,
|
||||
.wp-block-cover-image h6,
|
||||
.wp-block-cover-image .wp-block-subhead,
|
||||
.wp-block-cover p,
|
||||
.wp-block-cover h1,
|
||||
.wp-block-cover h2,
|
||||
.wp-block-cover h3,
|
||||
.wp-block-cover h4,
|
||||
.wp-block-cover h5,
|
||||
.wp-block-cover h6,
|
||||
.wp-block-cover .wp-block-subhead {
|
||||
color: inherit; }
|
||||
|
||||
.wp-block-cover__video-background {
|
||||
position: absolute;
|
||||
|
@ -315,8 +365,8 @@
|
|||
-o-object-fit: cover;
|
||||
object-fit: cover; }
|
||||
|
||||
.editor-block-list__block[data-type="core/embed"][data-align="left"] .editor-block-list__block-edit,
|
||||
.editor-block-list__block[data-type="core/embed"][data-align="right"] .editor-block-list__block-edit,
|
||||
.block-editor-block-list__block[data-type="core/embed"][data-align="left"] .block-editor-block-list__block-edit,
|
||||
.block-editor-block-list__block[data-type="core/embed"][data-align="right"] .block-editor-block-list__block-edit,
|
||||
.wp-block-embed.alignleft,
|
||||
.wp-block-embed.alignright {
|
||||
max-width: 360px;
|
||||
|
@ -449,11 +499,11 @@
|
|||
width: 100%;
|
||||
max-height: 100%;
|
||||
overflow: auto;
|
||||
padding: 40px 10px 5px;
|
||||
padding: 40px 10px 9px;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
background: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 0, rgba(0, 0, 0, 0.3) 60%, transparent); }
|
||||
background: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 0, rgba(0, 0, 0, 0.3) 70%, transparent); }
|
||||
.wp-block-gallery .blocks-gallery-image figcaption img,
|
||||
.wp-block-gallery .blocks-gallery-item figcaption img {
|
||||
display: inline; }
|
||||
|
@ -486,26 +536,50 @@
|
|||
.wp-block-gallery.columns-3 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 2) / 3);
|
||||
margin-left: 16px; }
|
||||
@supports (-ms-ime-align: auto) {
|
||||
.wp-block-gallery.columns-3 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-3 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 2) / 3 - 1px); } }
|
||||
.wp-block-gallery.columns-4 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-4 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 3) / 4);
|
||||
margin-left: 16px; }
|
||||
@supports (-ms-ime-align: auto) {
|
||||
.wp-block-gallery.columns-4 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-4 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 3) / 4 - 1px); } }
|
||||
.wp-block-gallery.columns-5 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-5 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 4) / 5);
|
||||
margin-left: 16px; }
|
||||
@supports (-ms-ime-align: auto) {
|
||||
.wp-block-gallery.columns-5 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-5 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 4) / 5 - 1px); } }
|
||||
.wp-block-gallery.columns-6 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-6 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 5) / 6);
|
||||
margin-left: 16px; }
|
||||
@supports (-ms-ime-align: auto) {
|
||||
.wp-block-gallery.columns-6 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-6 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 5) / 6 - 1px); } }
|
||||
.wp-block-gallery.columns-7 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-7 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 6) / 7);
|
||||
margin-left: 16px; }
|
||||
@supports (-ms-ime-align: auto) {
|
||||
.wp-block-gallery.columns-7 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-7 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 6) / 7 - 1px); } }
|
||||
.wp-block-gallery.columns-8 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-8 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 7) / 8);
|
||||
margin-left: 16px; }
|
||||
@supports (-ms-ime-align: auto) {
|
||||
.wp-block-gallery.columns-8 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-8 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 7) / 8 - 1px); } }
|
||||
.wp-block-gallery.columns-1 .blocks-gallery-image:nth-of-type(1n),
|
||||
.wp-block-gallery.columns-1 .blocks-gallery-item:nth-of-type(1n) {
|
||||
margin-left: 0; }
|
||||
|
@ -689,19 +763,19 @@
|
|||
.wp-block-media-text.is-stacked-on-mobile.has-media-on-the-right {
|
||||
grid-template-areas: "media-text-content" "media-text-media"; } }
|
||||
|
||||
p.is-small-text {
|
||||
.is-small-text {
|
||||
font-size: 14px; }
|
||||
|
||||
p.is-regular-text {
|
||||
.is-regular-text {
|
||||
font-size: 16px; }
|
||||
|
||||
p.is-large-text {
|
||||
.is-large-text {
|
||||
font-size: 36px; }
|
||||
|
||||
p.is-larger-text {
|
||||
.is-larger-text {
|
||||
font-size: 48px; }
|
||||
|
||||
p.has-drop-cap:not(:focus)::first-letter {
|
||||
.has-drop-cap:not(:focus)::first-letter {
|
||||
float: right;
|
||||
font-size: 8.4em;
|
||||
line-height: 0.68;
|
||||
|
@ -710,7 +784,7 @@ p.has-drop-cap:not(:focus)::first-letter {
|
|||
text-transform: uppercase;
|
||||
font-style: normal; }
|
||||
|
||||
p.has-drop-cap:not(:focus)::after {
|
||||
.has-drop-cap:not(:focus)::after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
|
@ -774,6 +848,48 @@ p.has-text-color a {
|
|||
font-size: 18px;
|
||||
text-align: left; }
|
||||
|
||||
.wp-block-rss.alignleft {
|
||||
margin-right: 2em; }
|
||||
|
||||
.wp-block-rss.alignright {
|
||||
margin-left: 2em; }
|
||||
|
||||
.wp-block-rss.is-grid {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: 0;
|
||||
list-style: none; }
|
||||
.wp-block-rss.is-grid li {
|
||||
margin: 0 0 16px 16px;
|
||||
width: 100%; }
|
||||
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-rss.columns-2 li {
|
||||
width: calc(( 100% / 2 ) - 16px); }
|
||||
.wp-block-rss.columns-3 li {
|
||||
width: calc(( 100% / 3 ) - 16px); }
|
||||
.wp-block-rss.columns-4 li {
|
||||
width: calc(( 100% / 4 ) - 16px); }
|
||||
.wp-block-rss.columns-5 li {
|
||||
width: calc(( 100% / 5 ) - 16px); }
|
||||
.wp-block-rss.columns-6 li {
|
||||
width: calc(( 100% / 6 ) - 16px); } }
|
||||
|
||||
.wp-block-rss__item-publish-date,
|
||||
.wp-block-rss__item-author {
|
||||
color: #6c7781;
|
||||
font-size: 13px; }
|
||||
|
||||
.wp-block-search {
|
||||
display: flex;
|
||||
flex-wrap: wrap; }
|
||||
.wp-block-search .wp-block-search__label {
|
||||
width: 100%; }
|
||||
.wp-block-search .wp-block-search__input {
|
||||
flex-grow: 1; }
|
||||
.wp-block-search .wp-block-search__button {
|
||||
margin-right: 10px; }
|
||||
|
||||
.wp-block-separator.is-style-wide {
|
||||
border-bottom-width: 1px; }
|
||||
|
||||
|
@ -805,12 +921,33 @@ p.wp-block-subhead {
|
|||
display: table;
|
||||
width: auto; }
|
||||
|
||||
.wp-block-table.has-subtle-light-gray-background-color {
|
||||
background-color: #f3f4f5; }
|
||||
|
||||
.wp-block-table.has-subtle-pale-green-background-color {
|
||||
background-color: #e9fbe5; }
|
||||
|
||||
.wp-block-table.has-subtle-pale-blue-background-color {
|
||||
background-color: #e7f5fe; }
|
||||
|
||||
.wp-block-table.has-subtle-pale-pink-background-color {
|
||||
background-color: #fcf0ef; }
|
||||
|
||||
.wp-block-table.is-style-stripes {
|
||||
border-spacing: 0;
|
||||
border-collapse: inherit;
|
||||
background-color: transparent;
|
||||
border-bottom: 1px solid #f3f4f5; }
|
||||
.wp-block-table.is-style-stripes tr:nth-child(odd) {
|
||||
background-color: #f3f4f5; }
|
||||
.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tr:nth-child(odd) {
|
||||
background-color: #f3f4f5; }
|
||||
.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tr:nth-child(odd) {
|
||||
background-color: #e9fbe5; }
|
||||
.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tr:nth-child(odd) {
|
||||
background-color: #e7f5fe; }
|
||||
.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tr:nth-child(odd) {
|
||||
background-color: #fcf0ef; }
|
||||
.wp-block-table.is-style-stripes td {
|
||||
border-color: transparent; }
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
215
wp-includes/css/dist/block-library/style.css
vendored
215
wp-includes/css/dist/block-library/style.css
vendored
|
@ -28,6 +28,9 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
.wp-block-audio figcaption {
|
||||
margin-top: 0.5em;
|
||||
margin-bottom: 1em;
|
||||
|
@ -39,7 +42,7 @@
|
|||
width: 100%;
|
||||
min-width: 300px; }
|
||||
|
||||
.editor-block-list__layout .reusable-block-edit-panel {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel {
|
||||
align-items: center;
|
||||
background: #f8f9f9;
|
||||
color: #555d66;
|
||||
|
@ -52,38 +55,45 @@
|
|||
margin: 0 -14px;
|
||||
padding: 8px 14px;
|
||||
position: relative;
|
||||
z-index: 7; }
|
||||
.editor-block-list__layout .editor-block-list__layout .reusable-block-edit-panel {
|
||||
border: 1px dashed rgba(145, 151, 162, 0.25);
|
||||
border-bottom: none; }
|
||||
.block-editor-block-list__layout .block-editor-block-list__layout .reusable-block-edit-panel {
|
||||
margin: 0 -14px;
|
||||
padding: 8px 14px; }
|
||||
.editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__spinner {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__spinner {
|
||||
margin: 0 5px; }
|
||||
.editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__info {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__info {
|
||||
margin-right: auto; }
|
||||
.editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__label {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__label {
|
||||
margin-right: 8px;
|
||||
white-space: nowrap;
|
||||
font-weight: 600; }
|
||||
.editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__title {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__title {
|
||||
flex: 1 1 100%;
|
||||
font-size: 14px;
|
||||
height: 30px;
|
||||
margin: 4px 0 8px; }
|
||||
.editor-block-list__layout .reusable-block-edit-panel .components-button.reusable-block-edit-panel__button {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel .components-button.reusable-block-edit-panel__button {
|
||||
flex-shrink: 0; }
|
||||
@media (min-width: 960px) {
|
||||
.editor-block-list__layout .reusable-block-edit-panel {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel {
|
||||
flex-wrap: nowrap; }
|
||||
.editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__title {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel .reusable-block-edit-panel__title {
|
||||
margin: 0; }
|
||||
.editor-block-list__layout .reusable-block-edit-panel .components-button.reusable-block-edit-panel__button {
|
||||
.block-editor-block-list__layout .reusable-block-edit-panel .components-button.reusable-block-edit-panel__button {
|
||||
margin: 0 0 0 5px; } }
|
||||
|
||||
.editor-block-list__layout .reusable-block-indicator {
|
||||
.editor-block-list__layout .is-selected .reusable-block-edit-panel {
|
||||
border-color: rgba(66, 88, 99, 0.4);
|
||||
border-left-color: transparent; }
|
||||
.is-dark-theme .editor-block-list__layout .is-selected .reusable-block-edit-panel {
|
||||
border-color: rgba(255, 255, 255, 0.45);
|
||||
border-left-color: transparent; }
|
||||
|
||||
.block-editor-block-list__layout .reusable-block-indicator {
|
||||
background: #fff;
|
||||
border-left: 1px dashed #e2e4e7;
|
||||
border: 1px dashed #e2e4e7;
|
||||
color: #555d66;
|
||||
border-bottom: 1px dashed #e2e4e7;
|
||||
top: -14px;
|
||||
height: 30px;
|
||||
padding: 4px;
|
||||
|
@ -114,9 +124,8 @@
|
|||
padding: 12px 24px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
white-space: normal;
|
||||
overflow-wrap: break-word; }
|
||||
.wp-block-button__link:hover, .wp-block-button__link:focus, .wp-block-button__link:active {
|
||||
.wp-block-button__link:hover, .wp-block-button__link:focus, .wp-block-button__link:active, .wp-block-button__link:visited {
|
||||
color: inherit; }
|
||||
|
||||
.is-style-squared .wp-block-button__link {
|
||||
|
@ -125,9 +134,32 @@
|
|||
.is-style-outline {
|
||||
color: #32373c; }
|
||||
.is-style-outline .wp-block-button__link {
|
||||
background: transparent;
|
||||
background-color: transparent;
|
||||
border: 2px solid currentcolor; }
|
||||
|
||||
.wp-block-calendar {
|
||||
text-align: center; }
|
||||
.wp-block-calendar th,
|
||||
.wp-block-calendar tbody td {
|
||||
padding: 4px;
|
||||
border: 1px solid #e2e4e7; }
|
||||
.wp-block-calendar tfoot td {
|
||||
border: none; }
|
||||
.wp-block-calendar table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; }
|
||||
.wp-block-calendar table th {
|
||||
font-weight: 440;
|
||||
background: #edeff0; }
|
||||
.wp-block-calendar a {
|
||||
text-decoration: underline; }
|
||||
.wp-block-calendar tfoot a {
|
||||
color: #00739c; }
|
||||
.wp-block-calendar table tbody,
|
||||
.wp-block-calendar table caption {
|
||||
color: #40464d; }
|
||||
|
||||
.wp-block-categories.alignleft {
|
||||
/*rtl:ignore*/
|
||||
margin-right: 2em; }
|
||||
|
@ -144,7 +176,7 @@
|
|||
flex-wrap: nowrap; } }
|
||||
|
||||
.wp-block-column {
|
||||
flex: 1;
|
||||
flex-grow: 1;
|
||||
margin-bottom: 1em;
|
||||
flex-basis: 100%;
|
||||
min-width: 0;
|
||||
|
@ -152,17 +184,13 @@
|
|||
overflow-wrap: break-word; }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-column {
|
||||
flex-basis: 50%;
|
||||
flex-grow: 0; } }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-column:nth-child(odd) {
|
||||
margin-right: 32px; }
|
||||
.wp-block-column:nth-child(even) {
|
||||
margin-left: 32px; }
|
||||
flex-basis: calc(50% - 16px);
|
||||
flex-grow: 0; }
|
||||
.wp-block-column:nth-child(even) {
|
||||
margin-left: 32px; } }
|
||||
@media (min-width: 782px) {
|
||||
.wp-block-column:not(:first-child) {
|
||||
margin-left: 32px; }
|
||||
.wp-block-column:not(:last-child) {
|
||||
margin-right: 32px; } }
|
||||
margin-left: 32px; } }
|
||||
|
||||
.wp-block-cover-image,
|
||||
.wp-block-cover {
|
||||
|
@ -306,6 +334,28 @@
|
|||
.wp-block-cover.alignleft,
|
||||
.wp-block-cover.alignright {
|
||||
display: flex; }
|
||||
.wp-block-cover-image .wp-block-cover__inner-container,
|
||||
.wp-block-cover .wp-block-cover__inner-container {
|
||||
width: calc(100% - 70px);
|
||||
z-index: 1;
|
||||
color: #f8f9f9; }
|
||||
.wp-block-cover-image p,
|
||||
.wp-block-cover-image h1,
|
||||
.wp-block-cover-image h2,
|
||||
.wp-block-cover-image h3,
|
||||
.wp-block-cover-image h4,
|
||||
.wp-block-cover-image h5,
|
||||
.wp-block-cover-image h6,
|
||||
.wp-block-cover-image .wp-block-subhead,
|
||||
.wp-block-cover p,
|
||||
.wp-block-cover h1,
|
||||
.wp-block-cover h2,
|
||||
.wp-block-cover h3,
|
||||
.wp-block-cover h4,
|
||||
.wp-block-cover h5,
|
||||
.wp-block-cover h6,
|
||||
.wp-block-cover .wp-block-subhead {
|
||||
color: inherit; }
|
||||
|
||||
.wp-block-cover__video-background {
|
||||
position: absolute;
|
||||
|
@ -318,8 +368,8 @@
|
|||
-o-object-fit: cover;
|
||||
object-fit: cover; }
|
||||
|
||||
.editor-block-list__block[data-type="core/embed"][data-align="left"] .editor-block-list__block-edit,
|
||||
.editor-block-list__block[data-type="core/embed"][data-align="right"] .editor-block-list__block-edit,
|
||||
.block-editor-block-list__block[data-type="core/embed"][data-align="left"] .block-editor-block-list__block-edit,
|
||||
.block-editor-block-list__block[data-type="core/embed"][data-align="right"] .block-editor-block-list__block-edit,
|
||||
.wp-block-embed.alignleft,
|
||||
.wp-block-embed.alignright {
|
||||
max-width: 360px;
|
||||
|
@ -453,11 +503,11 @@
|
|||
width: 100%;
|
||||
max-height: 100%;
|
||||
overflow: auto;
|
||||
padding: 40px 10px 5px;
|
||||
padding: 40px 10px 9px;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
font-size: 13px;
|
||||
background: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 0, rgba(0, 0, 0, 0.3) 60%, transparent); }
|
||||
background: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 0, rgba(0, 0, 0, 0.3) 70%, transparent); }
|
||||
.wp-block-gallery .blocks-gallery-image figcaption img,
|
||||
.wp-block-gallery .blocks-gallery-item figcaption img {
|
||||
display: inline; }
|
||||
|
@ -490,26 +540,50 @@
|
|||
.wp-block-gallery.columns-3 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 2) / 3);
|
||||
margin-right: 16px; }
|
||||
@supports (-ms-ime-align: auto) {
|
||||
.wp-block-gallery.columns-3 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-3 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 2) / 3 - 1px); } }
|
||||
.wp-block-gallery.columns-4 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-4 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 3) / 4);
|
||||
margin-right: 16px; }
|
||||
@supports (-ms-ime-align: auto) {
|
||||
.wp-block-gallery.columns-4 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-4 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 3) / 4 - 1px); } }
|
||||
.wp-block-gallery.columns-5 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-5 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 4) / 5);
|
||||
margin-right: 16px; }
|
||||
@supports (-ms-ime-align: auto) {
|
||||
.wp-block-gallery.columns-5 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-5 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 4) / 5 - 1px); } }
|
||||
.wp-block-gallery.columns-6 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-6 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 5) / 6);
|
||||
margin-right: 16px; }
|
||||
@supports (-ms-ime-align: auto) {
|
||||
.wp-block-gallery.columns-6 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-6 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 5) / 6 - 1px); } }
|
||||
.wp-block-gallery.columns-7 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-7 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 6) / 7);
|
||||
margin-right: 16px; }
|
||||
@supports (-ms-ime-align: auto) {
|
||||
.wp-block-gallery.columns-7 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-7 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 6) / 7 - 1px); } }
|
||||
.wp-block-gallery.columns-8 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-8 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 7) / 8);
|
||||
margin-right: 16px; }
|
||||
@supports (-ms-ime-align: auto) {
|
||||
.wp-block-gallery.columns-8 .blocks-gallery-image,
|
||||
.wp-block-gallery.columns-8 .blocks-gallery-item {
|
||||
width: calc((100% - 16px * 7) / 8 - 1px); } }
|
||||
.wp-block-gallery.columns-1 .blocks-gallery-image:nth-of-type(1n),
|
||||
.wp-block-gallery.columns-1 .blocks-gallery-item:nth-of-type(1n) {
|
||||
margin-right: 0; }
|
||||
|
@ -699,19 +773,19 @@
|
|||
.wp-block-media-text.is-stacked-on-mobile.has-media-on-the-right {
|
||||
grid-template-areas: "media-text-content" "media-text-media"; } }
|
||||
|
||||
p.is-small-text {
|
||||
.is-small-text {
|
||||
font-size: 14px; }
|
||||
|
||||
p.is-regular-text {
|
||||
.is-regular-text {
|
||||
font-size: 16px; }
|
||||
|
||||
p.is-large-text {
|
||||
.is-large-text {
|
||||
font-size: 36px; }
|
||||
|
||||
p.is-larger-text {
|
||||
.is-larger-text {
|
||||
font-size: 48px; }
|
||||
|
||||
p.has-drop-cap:not(:focus)::first-letter {
|
||||
.has-drop-cap:not(:focus)::first-letter {
|
||||
float: left;
|
||||
font-size: 8.4em;
|
||||
line-height: 0.68;
|
||||
|
@ -720,7 +794,7 @@ p.has-drop-cap:not(:focus)::first-letter {
|
|||
text-transform: uppercase;
|
||||
font-style: normal; }
|
||||
|
||||
p.has-drop-cap:not(:focus)::after {
|
||||
.has-drop-cap:not(:focus)::after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
|
@ -784,6 +858,50 @@ p.has-text-color a {
|
|||
font-size: 18px;
|
||||
text-align: right; }
|
||||
|
||||
.wp-block-rss.alignleft {
|
||||
/*rtl:ignore*/
|
||||
margin-right: 2em; }
|
||||
|
||||
.wp-block-rss.alignright {
|
||||
/*rtl:ignore*/
|
||||
margin-left: 2em; }
|
||||
|
||||
.wp-block-rss.is-grid {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
padding: 0;
|
||||
list-style: none; }
|
||||
.wp-block-rss.is-grid li {
|
||||
margin: 0 16px 16px 0;
|
||||
width: 100%; }
|
||||
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-rss.columns-2 li {
|
||||
width: calc(( 100% / 2 ) - 16px); }
|
||||
.wp-block-rss.columns-3 li {
|
||||
width: calc(( 100% / 3 ) - 16px); }
|
||||
.wp-block-rss.columns-4 li {
|
||||
width: calc(( 100% / 4 ) - 16px); }
|
||||
.wp-block-rss.columns-5 li {
|
||||
width: calc(( 100% / 5 ) - 16px); }
|
||||
.wp-block-rss.columns-6 li {
|
||||
width: calc(( 100% / 6 ) - 16px); } }
|
||||
|
||||
.wp-block-rss__item-publish-date,
|
||||
.wp-block-rss__item-author {
|
||||
color: #6c7781;
|
||||
font-size: 13px; }
|
||||
|
||||
.wp-block-search {
|
||||
display: flex;
|
||||
flex-wrap: wrap; }
|
||||
.wp-block-search .wp-block-search__label {
|
||||
width: 100%; }
|
||||
.wp-block-search .wp-block-search__input {
|
||||
flex-grow: 1; }
|
||||
.wp-block-search .wp-block-search__button {
|
||||
margin-left: 10px; }
|
||||
|
||||
.wp-block-separator.is-style-wide {
|
||||
border-bottom-width: 1px; }
|
||||
|
||||
|
@ -815,12 +933,33 @@ p.wp-block-subhead {
|
|||
display: table;
|
||||
width: auto; }
|
||||
|
||||
.wp-block-table.has-subtle-light-gray-background-color {
|
||||
background-color: #f3f4f5; }
|
||||
|
||||
.wp-block-table.has-subtle-pale-green-background-color {
|
||||
background-color: #e9fbe5; }
|
||||
|
||||
.wp-block-table.has-subtle-pale-blue-background-color {
|
||||
background-color: #e7f5fe; }
|
||||
|
||||
.wp-block-table.has-subtle-pale-pink-background-color {
|
||||
background-color: #fcf0ef; }
|
||||
|
||||
.wp-block-table.is-style-stripes {
|
||||
border-spacing: 0;
|
||||
border-collapse: inherit;
|
||||
background-color: transparent;
|
||||
border-bottom: 1px solid #f3f4f5; }
|
||||
.wp-block-table.is-style-stripes tr:nth-child(odd) {
|
||||
background-color: #f3f4f5; }
|
||||
.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tr:nth-child(odd) {
|
||||
background-color: #f3f4f5; }
|
||||
.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tr:nth-child(odd) {
|
||||
background-color: #e9fbe5; }
|
||||
.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tr:nth-child(odd) {
|
||||
background-color: #e7f5fe; }
|
||||
.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tr:nth-child(odd) {
|
||||
background-color: #fcf0ef; }
|
||||
.wp-block-table.is-style-stripes td {
|
||||
border-color: transparent; }
|
||||
|
||||
|
|
File diff suppressed because one or more lines are too long
30
wp-includes/css/dist/block-library/theme-rtl.css
vendored
30
wp-includes/css/dist/block-library/theme-rtl.css
vendored
|
@ -28,6 +28,9 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
.wp-block-code {
|
||||
font-family: Menlo, Consolas, monaco, monospace;
|
||||
font-size: 14px;
|
||||
|
@ -38,8 +41,12 @@
|
|||
|
||||
.wp-block-preformatted pre {
|
||||
font-family: Menlo, Consolas, monaco, monospace;
|
||||
font-size: 14px;
|
||||
color: #23282d; }
|
||||
color: #23282d;
|
||||
/* Fonts smaller than 16px causes mobile safari to zoom. */
|
||||
font-size: 16px; }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-preformatted pre {
|
||||
font-size: 14px; } }
|
||||
|
||||
.wp-block-pullquote {
|
||||
border-top: 4px solid #555d66;
|
||||
|
@ -53,7 +60,9 @@
|
|||
font-style: normal; }
|
||||
|
||||
.wp-block-quote {
|
||||
margin: 20px 0; }
|
||||
border-right: 4px solid #000;
|
||||
margin: 20px 0;
|
||||
padding-right: 1em; }
|
||||
.wp-block-quote cite,
|
||||
.wp-block-quote footer, .wp-block-quote__citation {
|
||||
color: #6c7781;
|
||||
|
@ -61,10 +70,19 @@
|
|||
margin-top: 1em;
|
||||
position: relative;
|
||||
font-style: normal; }
|
||||
.wp-block-quote[style*="text-align:right"], .wp-block-quote[style*="text-align: right"] {
|
||||
border-right: none;
|
||||
border-left: 4px solid #000;
|
||||
padding-right: 0;
|
||||
padding-left: 1em; }
|
||||
.wp-block-quote[style*="text-align:center"], .wp-block-quote[style*="text-align: center"] {
|
||||
border: none;
|
||||
padding-right: 0; }
|
||||
.wp-block-quote.is-style-large, .wp-block-quote.is-large {
|
||||
border: none; }
|
||||
|
||||
.wp-block-quote:not(.is-large):not(.is-style-large) {
|
||||
border-right: 4px solid #000;
|
||||
padding-right: 1em; }
|
||||
.wp-block-search .wp-block-search__label {
|
||||
font-weight: bold; }
|
||||
|
||||
.wp-block-separator {
|
||||
border: none;
|
||||
|
|
|
@ -1 +1 @@
|
|||
.wp-block-code{padding:.8em 1em;border:1px solid #e2e4e7;border-radius:4px}.wp-block-code,.wp-block-preformatted pre{font-family:Menlo,Consolas,monaco,monospace;font-size:14px;color:#23282d}.wp-block-pullquote{border-top:4px solid #555d66;border-bottom:4px solid #555d66;color:#40464d}.wp-block-pullquote__citation,.wp-block-pullquote cite,.wp-block-pullquote footer{color:#40464d;text-transform:uppercase;font-size:13px;font-style:normal}.wp-block-quote{margin:20px 0}.wp-block-quote__citation,.wp-block-quote cite,.wp-block-quote footer{color:#6c7781;font-size:13px;margin-top:1em;position:relative;font-style:normal}.wp-block-quote:not(.is-large):not(.is-style-large){border-right:4px solid #000;padding-right:1em}.wp-block-separator{border:none;border-bottom:2px solid #8f98a1;margin:1.65em auto}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){max-width:100px}.wp-block-table{width:100%;min-width:240px;border-collapse:collapse}.wp-block-table td,.wp-block-table th{padding:.5em;border:1px solid;word-break:break-all}
|
||||
.wp-block-code{font-size:14px;padding:.8em 1em;border:1px solid #e2e4e7;border-radius:4px}.wp-block-code,.wp-block-preformatted pre{font-family:Menlo,Consolas,monaco,monospace;color:#23282d}.wp-block-preformatted pre{font-size:16px}@media (min-width:600px){.wp-block-preformatted pre{font-size:14px}}.wp-block-pullquote{border-top:4px solid #555d66;border-bottom:4px solid #555d66;color:#40464d}.wp-block-pullquote__citation,.wp-block-pullquote cite,.wp-block-pullquote footer{color:#40464d;text-transform:uppercase;font-size:13px;font-style:normal}.wp-block-quote{border-right:4px solid #000;margin:20px 0;padding-right:1em}.wp-block-quote__citation,.wp-block-quote cite,.wp-block-quote footer{color:#6c7781;font-size:13px;margin-top:1em;position:relative;font-style:normal}.wp-block-quote[style*="text-align:right"],.wp-block-quote[style*="text-align: right"]{border-right:none;border-left:4px solid #000;padding-right:0;padding-left:1em}.wp-block-quote[style*="text-align:center"],.wp-block-quote[style*="text-align: center"]{border:none;padding-right:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large{border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-separator{border:none;border-bottom:2px solid #8f98a1;margin:1.65em auto}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){max-width:100px}.wp-block-table{width:100%;min-width:240px;border-collapse:collapse}.wp-block-table td,.wp-block-table th{padding:.5em;border:1px solid;word-break:break-all}
|
30
wp-includes/css/dist/block-library/theme.css
vendored
30
wp-includes/css/dist/block-library/theme.css
vendored
|
@ -28,6 +28,9 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
.wp-block-code {
|
||||
font-family: Menlo, Consolas, monaco, monospace;
|
||||
font-size: 14px;
|
||||
|
@ -38,8 +41,12 @@
|
|||
|
||||
.wp-block-preformatted pre {
|
||||
font-family: Menlo, Consolas, monaco, monospace;
|
||||
font-size: 14px;
|
||||
color: #23282d; }
|
||||
color: #23282d;
|
||||
/* Fonts smaller than 16px causes mobile safari to zoom. */
|
||||
font-size: 16px; }
|
||||
@media (min-width: 600px) {
|
||||
.wp-block-preformatted pre {
|
||||
font-size: 14px; } }
|
||||
|
||||
.wp-block-pullquote {
|
||||
border-top: 4px solid #555d66;
|
||||
|
@ -53,7 +60,9 @@
|
|||
font-style: normal; }
|
||||
|
||||
.wp-block-quote {
|
||||
margin: 20px 0; }
|
||||
border-left: 4px solid #000;
|
||||
margin: 20px 0;
|
||||
padding-left: 1em; }
|
||||
.wp-block-quote cite,
|
||||
.wp-block-quote footer, .wp-block-quote__citation {
|
||||
color: #6c7781;
|
||||
|
@ -61,10 +70,19 @@
|
|||
margin-top: 1em;
|
||||
position: relative;
|
||||
font-style: normal; }
|
||||
.wp-block-quote[style*="text-align:right"], .wp-block-quote[style*="text-align: right"] {
|
||||
border-left: none;
|
||||
border-right: 4px solid #000;
|
||||
padding-left: 0;
|
||||
padding-right: 1em; }
|
||||
.wp-block-quote[style*="text-align:center"], .wp-block-quote[style*="text-align: center"] {
|
||||
border: none;
|
||||
padding-left: 0; }
|
||||
.wp-block-quote.is-style-large, .wp-block-quote.is-large {
|
||||
border: none; }
|
||||
|
||||
.wp-block-quote:not(.is-large):not(.is-style-large) {
|
||||
border-left: 4px solid #000;
|
||||
padding-left: 1em; }
|
||||
.wp-block-search .wp-block-search__label {
|
||||
font-weight: bold; }
|
||||
|
||||
.wp-block-separator {
|
||||
border: none;
|
||||
|
|
|
@ -1 +1 @@
|
|||
.wp-block-code{padding:.8em 1em;border:1px solid #e2e4e7;border-radius:4px}.wp-block-code,.wp-block-preformatted pre{font-family:Menlo,Consolas,monaco,monospace;font-size:14px;color:#23282d}.wp-block-pullquote{border-top:4px solid #555d66;border-bottom:4px solid #555d66;color:#40464d}.wp-block-pullquote__citation,.wp-block-pullquote cite,.wp-block-pullquote footer{color:#40464d;text-transform:uppercase;font-size:13px;font-style:normal}.wp-block-quote{margin:20px 0}.wp-block-quote__citation,.wp-block-quote cite,.wp-block-quote footer{color:#6c7781;font-size:13px;margin-top:1em;position:relative;font-style:normal}.wp-block-quote:not(.is-large):not(.is-style-large){border-left:4px solid #000;padding-left:1em}.wp-block-separator{border:none;border-bottom:2px solid #8f98a1;margin:1.65em auto}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){max-width:100px}.wp-block-table{width:100%;min-width:240px;border-collapse:collapse}.wp-block-table td,.wp-block-table th{padding:.5em;border:1px solid;word-break:break-all}
|
||||
.wp-block-code{font-size:14px;padding:.8em 1em;border:1px solid #e2e4e7;border-radius:4px}.wp-block-code,.wp-block-preformatted pre{font-family:Menlo,Consolas,monaco,monospace;color:#23282d}.wp-block-preformatted pre{font-size:16px}@media (min-width:600px){.wp-block-preformatted pre{font-size:14px}}.wp-block-pullquote{border-top:4px solid #555d66;border-bottom:4px solid #555d66;color:#40464d}.wp-block-pullquote__citation,.wp-block-pullquote cite,.wp-block-pullquote footer{color:#40464d;text-transform:uppercase;font-size:13px;font-style:normal}.wp-block-quote{border-left:4px solid #000;margin:20px 0;padding-left:1em}.wp-block-quote__citation,.wp-block-quote cite,.wp-block-quote footer{color:#6c7781;font-size:13px;margin-top:1em;position:relative;font-style:normal}.wp-block-quote[style*="text-align:right"],.wp-block-quote[style*="text-align: right"]{border-left:none;border-right:4px solid #000;padding-left:0;padding-right:1em}.wp-block-quote[style*="text-align:center"],.wp-block-quote[style*="text-align: center"]{border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large{border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-separator{border:none;border-bottom:2px solid #8f98a1;margin:1.65em auto}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){max-width:100px}.wp-block-table{width:100%;min-width:240px;border-collapse:collapse}.wp-block-table td,.wp-block-table th{padding:.5em;border:1px solid;word-break:break-all}
|
295
wp-includes/css/dist/components/style-rtl.css
vendored
295
wp-includes/css/dist/components/style-rtl.css
vendored
|
@ -28,6 +28,43 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
.components-animate__appear {
|
||||
animation: components-animate__appear-animation 0.1s cubic-bezier(0, 0, 0.2, 1) 0s;
|
||||
animation-fill-mode: forwards; }
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.components-animate__appear {
|
||||
animation-duration: 1ms !important; } }
|
||||
.components-animate__appear.is-from-top, .components-animate__appear.is-from-top.is-from-left {
|
||||
transform-origin: top right; }
|
||||
.components-animate__appear.is-from-top.is-from-right {
|
||||
transform-origin: top left; }
|
||||
.components-animate__appear.is-from-bottom, .components-animate__appear.is-from-bottom.is-from-left {
|
||||
transform-origin: bottom right; }
|
||||
.components-animate__appear.is-from-bottom.is-from-right {
|
||||
transform-origin: bottom left; }
|
||||
|
||||
@keyframes components-animate__appear-animation {
|
||||
from {
|
||||
transform: translateY(-2em) scaleY(0) scaleX(0); }
|
||||
to {
|
||||
transform: translateY(0%) scaleY(1) scaleX(1); } }
|
||||
|
||||
.components-animate__slide-in {
|
||||
animation: components-animate__slide-in-animation 0.1s cubic-bezier(0, 0, 0.2, 1);
|
||||
animation-fill-mode: forwards; }
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.components-animate__slide-in {
|
||||
animation-duration: 1ms !important; } }
|
||||
.components-animate__slide-in.is-from-left {
|
||||
transform: translateX(-100%); }
|
||||
|
||||
@keyframes components-animate__slide-in-animation {
|
||||
100% {
|
||||
transform: translateX(0%); } }
|
||||
|
||||
.components-autocomplete__popover .components-popover__content {
|
||||
min-width: 200px; }
|
||||
|
||||
|
@ -49,18 +86,21 @@
|
|||
flex-grow: 1;
|
||||
flex-shrink: 0;
|
||||
align-items: center;
|
||||
padding: 6px;
|
||||
padding: 6px 8px;
|
||||
margin-right: -3px;
|
||||
margin-left: -3px;
|
||||
text-align: right; }
|
||||
.components-autocomplete__result.components-button.is-selected {
|
||||
background-color: #fff;
|
||||
color: #191e23;
|
||||
box-shadow: inset 0 0 0 1px #6c7781, inset 0 0 0 2px #fff;
|
||||
outline: 2px solid transparent;
|
||||
outline-offset: -2px; }
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
outline-offset: -2px;
|
||||
outline: 1px dotted #555d66; }
|
||||
.components-autocomplete__result.components-button:hover {
|
||||
background-color: #fff;
|
||||
color: #191e23;
|
||||
box-shadow: inset 0 0 0 1px #e2e4e7, inset 0 0 0 2px #fff, 0 1px 1px rgba(25, 30, 35, 0.2); }
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
background: #f3f4f5; }
|
||||
|
||||
.components-base-control {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||
|
@ -74,8 +114,10 @@
|
|||
margin-bottom: 4px; }
|
||||
.components-base-control .components-base-control__help {
|
||||
margin-top: -8px;
|
||||
font-style: italic;
|
||||
margin-bottom: 0; }
|
||||
font-style: italic; }
|
||||
|
||||
.components-base-control + .components-base-control {
|
||||
margin-bottom: 16px; }
|
||||
|
||||
.components-button-group {
|
||||
display: inline-block; }
|
||||
|
@ -368,7 +410,7 @@
|
|||
box-shadow: inset 0 0 0 1px #6c7781, inset 0 0 0 2px #fff;
|
||||
outline: 2px solid transparent;
|
||||
outline-offset: -2px; }
|
||||
.components-button.is-busy {
|
||||
.components-button.is-busy, .components-button.is-default.is-busy, .components-button.is-default.is-busy:disabled, .components-button.is-default.is-busy[aria-disabled="true"] {
|
||||
animation: components-button__busy-animation 2500ms infinite linear;
|
||||
background-size: 100px 100%;
|
||||
background-image: repeating-linear-gradient(45deg, #e2e4e7, #fff 11px, #fff 10px, #e2e4e7 20px);
|
||||
|
@ -425,6 +467,8 @@
|
|||
color: rgb(49, 95, 116); }
|
||||
body.admin-color-light .components-button.is-tertiary:not(:disabled):not([aria-disabled="true"]):not(.is-default):hover {
|
||||
color: rgb(0, 93, 140); }
|
||||
.components-button .screen-reader-text {
|
||||
height: auto; }
|
||||
|
||||
@keyframes components-button__busy-animation {
|
||||
0% {
|
||||
|
@ -443,10 +487,12 @@
|
|||
margin-right: 0.5rem; }
|
||||
|
||||
.components-color-palette {
|
||||
margin-left: -14px; }
|
||||
.components-color-palette .components-color-palette__clear {
|
||||
float: left;
|
||||
margin-left: 20px; }
|
||||
margin-left: -14px;
|
||||
width: calc(100% + 14px); }
|
||||
.components-color-palette .components-color-palette__custom-clear-wrapper {
|
||||
width: calc(100% - 14px);
|
||||
display: flex;
|
||||
justify-content: flex-end; }
|
||||
|
||||
.components-color-palette__item-wrapper {
|
||||
display: inline-block;
|
||||
|
@ -475,7 +521,13 @@
|
|||
transition: 100ms box-shadow ease;
|
||||
cursor: pointer; }
|
||||
.components-color-palette__item.is-active {
|
||||
box-shadow: inset 0 0 0 4px; }
|
||||
box-shadow: inset 0 0 0 4px;
|
||||
position: relative;
|
||||
z-index: 1; }
|
||||
.components-color-palette__item.is-active + .dashicons-saved {
|
||||
position: absolute;
|
||||
right: 4px;
|
||||
top: 4px; }
|
||||
.components-color-palette__item::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
|
@ -489,13 +541,15 @@
|
|||
outline: none; }
|
||||
.components-color-palette__item:focus::after {
|
||||
content: "";
|
||||
border: 1px solid #606a73;
|
||||
position: absolute;
|
||||
border: 2px solid #606a73;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
position: absolute;
|
||||
top: -2px;
|
||||
right: -2px;
|
||||
border-radius: 50%; }
|
||||
border-radius: 50%;
|
||||
box-shadow: inset 0 0 0 2px #fff; }
|
||||
|
||||
.components-color-palette__clear-color .components-color-palette__item {
|
||||
color: #fff;
|
||||
|
@ -520,33 +574,10 @@
|
|||
border-bottom: 2px solid #d94f4f;
|
||||
transform: rotate(-45deg) translateY(-13px) translateX(1px); }
|
||||
|
||||
.components-color-palette__custom-color .components-color-palette__item {
|
||||
position: relative;
|
||||
box-shadow: none; }
|
||||
|
||||
.components-color-palette__custom-color .components-color-palette__custom-color-gradient {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
border-radius: 50%;
|
||||
overflow: hidden; }
|
||||
|
||||
.components-color-palette__custom-color .components-color-palette__custom-color-gradient::before {
|
||||
content: "";
|
||||
filter: blur(6px) saturate(0.7) brightness(1.1);
|
||||
display: block;
|
||||
width: 200%;
|
||||
height: 200%;
|
||||
position: absolute;
|
||||
top: -50%;
|
||||
right: -50%;
|
||||
padding-top: 100%;
|
||||
transform: scale(1);
|
||||
background-image: linear-gradient(-330deg, transparent 50%, #ff8100 50%), linear-gradient(-300deg, transparent 50%, #ff5800 50%), linear-gradient(-270deg, transparent 50%, #c92323 50%), linear-gradient(-240deg, transparent 50%, #cc42a2 50%), linear-gradient(-210deg, transparent 50%, #9f49ac 50%), linear-gradient(-180deg, transparent 50%, #306cd3 50%), linear-gradient(-150deg, transparent 50%, #179067 50%), linear-gradient(-120deg, transparent 50%, #0eb5d6 50%), linear-gradient(-90deg, transparent 50%, #50b517 50%), linear-gradient(-60deg, transparent 50%, #ede604 50%), linear-gradient(-30deg, transparent 50%, #fc0 50%), linear-gradient(0deg, transparent 50%, #feac00 50%);
|
||||
background-clip: content-box, content-box, content-box, content-box, content-box, content-box, padding-box, padding-box, padding-box, padding-box, padding-box, padding-box; }
|
||||
.components-color-palette__custom-color {
|
||||
margin-left: 16px; }
|
||||
.components-color-palette__custom-color .components-button {
|
||||
line-height: 22px; }
|
||||
|
||||
.block-editor__container .components-popover.components-color-palette__picker.is-bottom {
|
||||
z-index: 100001; }
|
||||
|
@ -721,6 +752,8 @@
|
|||
align-items: flex-end; }
|
||||
.components-color-picker__inputs-wrapper fieldset {
|
||||
flex: 1; }
|
||||
.components-color-picker__inputs-wrapper .components-color-picker__inputs-fields .components-text-control__input[type="number"] {
|
||||
padding: 2px; }
|
||||
|
||||
.components-color-picker__inputs-fields {
|
||||
display: flex; }
|
||||
|
@ -1669,8 +1702,6 @@ svg.dashicon {
|
|||
border-radius: 0 4px 4px 0 !important; }
|
||||
.components-datetime__time.is-12-hour .components-datetime__time-field-year input {
|
||||
border-radius: 4px 0 0 4px !important; }
|
||||
.components-datetime__time.is-24-hour .components-datetime__time-field-day {
|
||||
order: 0 !important; }
|
||||
|
||||
.components-datetime__time-legend {
|
||||
font-weight: 600;
|
||||
|
@ -1865,13 +1896,90 @@ body.is-dragging-components-draggable {
|
|||
margin: -0.2em 0.1em 0;
|
||||
vertical-align: middle; }
|
||||
|
||||
.components-focal-point-picker-wrapper {
|
||||
background-color: transparent;
|
||||
border: 1px solid #e2e4e7;
|
||||
height: 200px;
|
||||
width: 100%;
|
||||
padding: 14px; }
|
||||
|
||||
.components-focal-point-picker {
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
justify-content: center;
|
||||
position: relative;
|
||||
width: 100%; }
|
||||
.components-focal-point-picker img {
|
||||
height: auto;
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
width: auto;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none; }
|
||||
|
||||
.components-focal-point-picker__icon_container {
|
||||
background-color: transparent;
|
||||
cursor: -webkit-grab;
|
||||
cursor: grab;
|
||||
height: 30px;
|
||||
opacity: 0.8;
|
||||
position: absolute;
|
||||
will-change: transform;
|
||||
width: 30px;
|
||||
z-index: 10000; }
|
||||
.components-focal-point-picker__icon_container.is-dragging {
|
||||
cursor: -webkit-grabbing;
|
||||
cursor: grabbing; }
|
||||
|
||||
.components-focal-point-picker__icon {
|
||||
display: block;
|
||||
height: 100%;
|
||||
right: -15px;
|
||||
position: absolute;
|
||||
top: -15px;
|
||||
width: 100%; }
|
||||
.components-focal-point-picker__icon .components-focal-point-picker__icon-outline {
|
||||
fill: #fff; }
|
||||
.components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #0085ba; }
|
||||
body.admin-color-sunrise .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #d1864a; }
|
||||
body.admin-color-ocean .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #a3b9a2; }
|
||||
body.admin-color-midnight .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #e14d43; }
|
||||
body.admin-color-ectoplasm .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #a7b656; }
|
||||
body.admin-color-coffee .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #c2a68c; }
|
||||
body.admin-color-blue .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #82b4cb; }
|
||||
body.admin-color-light .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #0085ba; }
|
||||
|
||||
.components-focal-point-picker_position-display-container {
|
||||
margin: 1em 0;
|
||||
display: flex; }
|
||||
.components-focal-point-picker_position-display-container .components-base-control__field {
|
||||
margin: 0 0 0 1em; }
|
||||
.components-focal-point-picker_position-display-container input[type="number"].components-text-control__input {
|
||||
max-width: 4em;
|
||||
padding: 6px 4px; }
|
||||
.components-focal-point-picker_position-display-container span {
|
||||
margin: 0 0.2em 0 0; }
|
||||
|
||||
.components-font-size-picker__buttons {
|
||||
max-width: 248px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center; }
|
||||
.components-font-size-picker__buttons .components-range-control__number {
|
||||
height: 24px;
|
||||
line-height: 22px; }
|
||||
height: 30px;
|
||||
margin-right: 0; }
|
||||
.components-font-size-picker__buttons .components-range-control__number[value=""] + .components-button {
|
||||
cursor: default;
|
||||
opacity: 0.3;
|
||||
|
@ -1891,6 +1999,17 @@ body.is-dragging-components-draggable {
|
|||
position: absolute;
|
||||
top: calc(50% - 10px);
|
||||
right: 10px; }
|
||||
.components-font-size-picker__dropdown-content .components-button:hover {
|
||||
color: #191e23;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
background: #f3f4f5; }
|
||||
.components-font-size-picker__dropdown-content .components-button:focus {
|
||||
color: #191e23;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
outline-offset: -2px;
|
||||
outline: 1px dotted #555d66; }
|
||||
|
||||
.components-font-size-picker__buttons .components-font-size-picker__selector {
|
||||
border: 1px solid;
|
||||
|
@ -1926,11 +2045,13 @@ body.is-dragging-components-draggable {
|
|||
padding-right: 6px; }
|
||||
|
||||
.components-form-toggle {
|
||||
position: relative; }
|
||||
position: relative;
|
||||
display: inline-block; }
|
||||
.components-form-toggle .components-form-toggle__on,
|
||||
.components-form-toggle .components-form-toggle__off {
|
||||
position: absolute;
|
||||
top: 6px; }
|
||||
top: 6px;
|
||||
box-sizing: border-box; }
|
||||
.components-form-toggle .components-form-toggle__off {
|
||||
color: #6c7781;
|
||||
fill: currentColor;
|
||||
|
@ -1940,6 +2061,7 @@ body.is-dragging-components-draggable {
|
|||
.components-form-toggle .components-form-toggle__track {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
box-sizing: border-box;
|
||||
vertical-align: top;
|
||||
background-color: #fff;
|
||||
border: 2px solid #6c7781;
|
||||
|
@ -1950,6 +2072,7 @@ body.is-dragging-components-draggable {
|
|||
.components-form-toggle .components-form-toggle__thumb {
|
||||
display: block;
|
||||
position: absolute;
|
||||
box-sizing: border-box;
|
||||
top: 4px;
|
||||
right: 4px;
|
||||
width: 10px;
|
||||
|
@ -2085,7 +2208,6 @@ body.is-dragging-components-draggable {
|
|||
min-height: 24px;
|
||||
background: inherit;
|
||||
border: 0;
|
||||
font-size: 13px;
|
||||
color: #23282d;
|
||||
box-shadow: none; }
|
||||
.components-form-token-field__input-container input[type="text"].components-form-token-field__input:focus,
|
||||
|
@ -2208,14 +2330,16 @@ body.is-dragging-components-draggable {
|
|||
left: 0;
|
||||
pointer-events: none;
|
||||
outline: 4px solid transparent;
|
||||
animation: editor-animation__region-focus 0.2s ease-out;
|
||||
animation-fill-mode: forwards; }
|
||||
box-shadow: inset 0 0 0 4px #33b3db; }
|
||||
|
||||
@keyframes editor-animation__region-focus {
|
||||
from {
|
||||
box-shadow: inset 0 0 0 0 #33b3db; }
|
||||
to {
|
||||
box-shadow: inset 0 0 0 4px #33b3db; } }
|
||||
@supports (outline-offset: 1px) {
|
||||
.components-navigate-regions.is-focusing-regions [role="region"]:focus::after {
|
||||
content: none; }
|
||||
.components-navigate-regions.is-focusing-regions [role="region"]:focus {
|
||||
outline-style: solid;
|
||||
outline-color: #33b3db;
|
||||
outline-width: 4px;
|
||||
outline-offset: -4px; } }
|
||||
|
||||
.components-icon-button {
|
||||
display: flex;
|
||||
|
@ -2234,8 +2358,8 @@ body.is-dragging-components-draggable {
|
|||
.components-icon-button svg {
|
||||
fill: currentColor;
|
||||
outline: none; }
|
||||
.components-icon-button svg:not:only-child {
|
||||
margin-left: 4px; }
|
||||
.components-icon-button.has-text svg {
|
||||
margin-left: 4px; }
|
||||
.components-icon-button:not(:disabled):not([aria-disabled="true"]):not(.is-default):hover {
|
||||
background-color: #fff;
|
||||
color: #191e23;
|
||||
|
@ -2250,16 +2374,17 @@ body.is-dragging-components-draggable {
|
|||
|
||||
.components-menu-group {
|
||||
width: 100%;
|
||||
padding: 7px; }
|
||||
padding: 7px 0; }
|
||||
|
||||
.components-menu-group__label {
|
||||
margin-bottom: 8px;
|
||||
color: #6c7781; }
|
||||
color: #6c7781;
|
||||
padding: 0 7px; }
|
||||
|
||||
.components-menu-item__button,
|
||||
.components-menu-item__button.components-icon-button {
|
||||
width: 100%;
|
||||
padding: 8px;
|
||||
padding: 8px 15px;
|
||||
text-align: right;
|
||||
color: #40464d; }
|
||||
.components-menu-item__button .dashicon,
|
||||
|
@ -2281,7 +2406,11 @@ body.is-dragging-components-draggable {
|
|||
.components-menu-item__button.components-icon-button:hover:not(:disabled):not([aria-disabled="true"]) {
|
||||
color: #191e23;
|
||||
border: none;
|
||||
box-shadow: none; } }
|
||||
box-shadow: none;
|
||||
background: #f3f4f5; } }
|
||||
.components-menu-item__button:hover:not(:disabled):not([aria-disabled="true"]) .components-menu-item__shortcut,
|
||||
.components-menu-item__button.components-icon-button:hover:not(:disabled):not([aria-disabled="true"]) .components-menu-item__shortcut {
|
||||
opacity: 1; }
|
||||
.components-menu-item__button:focus:not(:disabled):not([aria-disabled="true"]),
|
||||
.components-menu-item__button.components-icon-button:focus:not(:disabled):not([aria-disabled="true"]) {
|
||||
color: #191e23;
|
||||
|
@ -2297,11 +2426,11 @@ body.is-dragging-components-draggable {
|
|||
.components-menu-item__info {
|
||||
margin-top: 4px;
|
||||
font-size: 12px;
|
||||
opacity: 0.82; }
|
||||
opacity: 0.84; }
|
||||
|
||||
.components-menu-item__shortcut {
|
||||
align-self: center;
|
||||
opacity: 0.5;
|
||||
opacity: 0.84;
|
||||
margin-left: 0;
|
||||
margin-right: auto;
|
||||
padding-right: 8px;
|
||||
|
@ -2320,6 +2449,9 @@ body.is-dragging-components-draggable {
|
|||
z-index: 100000;
|
||||
animation: edit-post__fade-in-animation 0.2s ease-out 0s;
|
||||
animation-fill-mode: forwards; }
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.components-modal__screen-overlay {
|
||||
animation-duration: 1ms !important; } }
|
||||
|
||||
.components-modal__frame {
|
||||
position: absolute;
|
||||
|
@ -2345,6 +2477,9 @@ body.is-dragging-components-draggable {
|
|||
transform: translate(50%, -50%);
|
||||
animation: components-modal__appear-animation 0.1s ease-out;
|
||||
animation-fill-mode: forwards; } }
|
||||
@media (min-width: 600px) and (prefers-reduced-motion: reduce) {
|
||||
.components-modal__frame {
|
||||
animation-duration: 1ms !important; } }
|
||||
|
||||
@keyframes components-modal__appear-animation {
|
||||
from {
|
||||
|
@ -2372,8 +2507,8 @@ body.is-dragging-components-draggable {
|
|||
position: fixed;
|
||||
width: 100%; } }
|
||||
.components-modal__header .components-modal__header-heading {
|
||||
font-size: 1em;
|
||||
font-weight: 400; }
|
||||
font-size: 1rem;
|
||||
font-weight: 600; }
|
||||
.components-modal__header h1 {
|
||||
line-height: 1;
|
||||
margin: 0; }
|
||||
|
@ -2401,6 +2536,8 @@ body.is-dragging-components-draggable {
|
|||
padding-top: 56px; } }
|
||||
|
||||
.components-notice {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||
font-size: 13px;
|
||||
background-color: #e5f5fa;
|
||||
border-right: 4px solid #00a0d2;
|
||||
margin: 5px 15px 2px;
|
||||
|
@ -2419,11 +2556,14 @@ body.is-dragging-components-draggable {
|
|||
background-color: #f9e2e2; }
|
||||
|
||||
.components-notice__content {
|
||||
margin: 1em 0; }
|
||||
margin: 1em 0 1em 25px; }
|
||||
|
||||
.components-notice__action.components-button, .components-notice__action.components-button.is-link {
|
||||
margin-right: 4px; }
|
||||
|
||||
.components-notice__action.components-button.is-default {
|
||||
vertical-align: initial; }
|
||||
|
||||
.components-notice__dismiss {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
|
@ -2437,7 +2577,7 @@ body.is-dragging-components-draggable {
|
|||
|
||||
.components-notice-list {
|
||||
min-width: 300px;
|
||||
z-index: 9989; }
|
||||
z-index: 29; }
|
||||
|
||||
.components-panel {
|
||||
background: #fff;
|
||||
|
@ -2495,7 +2635,7 @@ body.is-dragging-components-draggable {
|
|||
|
||||
.components-panel__body > .components-panel__body-title:hover,
|
||||
.edit-post-last-revision__panel > .components-icon-button:not(:disabled):not([aria-disabled="true"]):not(.is-default):hover {
|
||||
background: #f8f9f9; }
|
||||
background: #f3f4f5; }
|
||||
|
||||
.components-panel__body-toggle.components-button {
|
||||
position: relative;
|
||||
|
@ -2574,11 +2714,13 @@ body.is-dragging-components-draggable {
|
|||
|
||||
.components-placeholder__label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-weight: 600;
|
||||
margin-bottom: 1em; }
|
||||
.components-placeholder__label .dashicon,
|
||||
.components-placeholder__label .editor-block-icon {
|
||||
.components-placeholder__label .block-editor-block-icon {
|
||||
fill: currentColor;
|
||||
margin-left: 1ch; }
|
||||
|
||||
.components-placeholder__fieldset,
|
||||
|
@ -2844,8 +2986,7 @@ body.is-dragging-components-draggable {
|
|||
display: inline-block;
|
||||
margin-right: 8px;
|
||||
font-weight: 500;
|
||||
width: 50px;
|
||||
padding: 3px 5px !important; }
|
||||
width: 54px; }
|
||||
|
||||
.components-resizable-box__handle {
|
||||
display: none;
|
||||
|
@ -2948,7 +3089,7 @@ body.lockscroll {
|
|||
position: absolute;
|
||||
background-color: #fff;
|
||||
top: 3px;
|
||||
right: 3px;
|
||||
left: 3px;
|
||||
width: 4px;
|
||||
height: 4px;
|
||||
border-radius: 100%;
|
||||
|
@ -3077,12 +3218,12 @@ div.components-toolbar > div + div {
|
|||
background: #191e23;
|
||||
border-width: 0;
|
||||
color: #fff;
|
||||
white-space: nowrap; }
|
||||
white-space: nowrap;
|
||||
text-align: center; }
|
||||
|
||||
.components-tooltip:not(.is-mobile) .components-popover__content {
|
||||
min-width: 0; }
|
||||
|
||||
.components-tooltip__shortcut {
|
||||
display: block;
|
||||
text-align: center;
|
||||
color: #7e8993; }
|
||||
|
|
File diff suppressed because one or more lines are too long
297
wp-includes/css/dist/components/style.css
vendored
297
wp-includes/css/dist/components/style.css
vendored
|
@ -28,6 +28,43 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
.components-animate__appear {
|
||||
animation: components-animate__appear-animation 0.1s cubic-bezier(0, 0, 0.2, 1) 0s;
|
||||
animation-fill-mode: forwards; }
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.components-animate__appear {
|
||||
animation-duration: 1ms !important; } }
|
||||
.components-animate__appear.is-from-top, .components-animate__appear.is-from-top.is-from-left {
|
||||
transform-origin: top left; }
|
||||
.components-animate__appear.is-from-top.is-from-right {
|
||||
transform-origin: top right; }
|
||||
.components-animate__appear.is-from-bottom, .components-animate__appear.is-from-bottom.is-from-left {
|
||||
transform-origin: bottom left; }
|
||||
.components-animate__appear.is-from-bottom.is-from-right {
|
||||
transform-origin: bottom right; }
|
||||
|
||||
@keyframes components-animate__appear-animation {
|
||||
from {
|
||||
transform: translateY(-2em) scaleY(0) scaleX(0); }
|
||||
to {
|
||||
transform: translateY(0%) scaleY(1) scaleX(1); } }
|
||||
|
||||
.components-animate__slide-in {
|
||||
animation: components-animate__slide-in-animation 0.1s cubic-bezier(0, 0, 0.2, 1);
|
||||
animation-fill-mode: forwards; }
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.components-animate__slide-in {
|
||||
animation-duration: 1ms !important; } }
|
||||
.components-animate__slide-in.is-from-left {
|
||||
transform: translateX(100%); }
|
||||
|
||||
@keyframes components-animate__slide-in-animation {
|
||||
100% {
|
||||
transform: translateX(0%); } }
|
||||
|
||||
.components-autocomplete__popover .components-popover__content {
|
||||
min-width: 200px; }
|
||||
|
||||
|
@ -49,18 +86,21 @@
|
|||
flex-grow: 1;
|
||||
flex-shrink: 0;
|
||||
align-items: center;
|
||||
padding: 6px;
|
||||
padding: 6px 8px;
|
||||
margin-left: -3px;
|
||||
margin-right: -3px;
|
||||
text-align: left; }
|
||||
.components-autocomplete__result.components-button.is-selected {
|
||||
background-color: #fff;
|
||||
color: #191e23;
|
||||
box-shadow: inset 0 0 0 1px #6c7781, inset 0 0 0 2px #fff;
|
||||
outline: 2px solid transparent;
|
||||
outline-offset: -2px; }
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
outline-offset: -2px;
|
||||
outline: 1px dotted #555d66; }
|
||||
.components-autocomplete__result.components-button:hover {
|
||||
background-color: #fff;
|
||||
color: #191e23;
|
||||
box-shadow: inset 0 0 0 1px #e2e4e7, inset 0 0 0 2px #fff, 0 1px 1px rgba(25, 30, 35, 0.2); }
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
background: #f3f4f5; }
|
||||
|
||||
.components-base-control {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||
|
@ -74,8 +114,10 @@
|
|||
margin-bottom: 4px; }
|
||||
.components-base-control .components-base-control__help {
|
||||
margin-top: -8px;
|
||||
font-style: italic;
|
||||
margin-bottom: 0; }
|
||||
font-style: italic; }
|
||||
|
||||
.components-base-control + .components-base-control {
|
||||
margin-bottom: 16px; }
|
||||
|
||||
.components-button-group {
|
||||
display: inline-block; }
|
||||
|
@ -368,7 +410,7 @@
|
|||
box-shadow: inset 0 0 0 1px #6c7781, inset 0 0 0 2px #fff;
|
||||
outline: 2px solid transparent;
|
||||
outline-offset: -2px; }
|
||||
.components-button.is-busy {
|
||||
.components-button.is-busy, .components-button.is-default.is-busy, .components-button.is-default.is-busy:disabled, .components-button.is-default.is-busy[aria-disabled="true"] {
|
||||
animation: components-button__busy-animation 2500ms infinite linear;
|
||||
background-size: 100px 100%;
|
||||
background-image: repeating-linear-gradient(-45deg, #e2e4e7, #fff 11px, #fff 10px, #e2e4e7 20px);
|
||||
|
@ -425,6 +467,8 @@
|
|||
color: rgb(49, 95, 116); }
|
||||
body.admin-color-light .components-button.is-tertiary:not(:disabled):not([aria-disabled="true"]):not(.is-default):hover {
|
||||
color: rgb(0, 93, 140); }
|
||||
.components-button .screen-reader-text {
|
||||
height: auto; }
|
||||
|
||||
@keyframes components-button__busy-animation {
|
||||
0% {
|
||||
|
@ -443,10 +487,12 @@
|
|||
margin-left: 0.5rem; }
|
||||
|
||||
.components-color-palette {
|
||||
margin-right: -14px; }
|
||||
.components-color-palette .components-color-palette__clear {
|
||||
float: right;
|
||||
margin-right: 20px; }
|
||||
margin-right: -14px;
|
||||
width: calc(100% + 14px); }
|
||||
.components-color-palette .components-color-palette__custom-clear-wrapper {
|
||||
width: calc(100% - 14px);
|
||||
display: flex;
|
||||
justify-content: flex-end; }
|
||||
|
||||
.components-color-palette__item-wrapper {
|
||||
display: inline-block;
|
||||
|
@ -475,7 +521,13 @@
|
|||
transition: 100ms box-shadow ease;
|
||||
cursor: pointer; }
|
||||
.components-color-palette__item.is-active {
|
||||
box-shadow: inset 0 0 0 4px; }
|
||||
box-shadow: inset 0 0 0 4px;
|
||||
position: relative;
|
||||
z-index: 1; }
|
||||
.components-color-palette__item.is-active + .dashicons-saved {
|
||||
position: absolute;
|
||||
left: 4px;
|
||||
top: 4px; }
|
||||
.components-color-palette__item::after {
|
||||
content: "";
|
||||
position: absolute;
|
||||
|
@ -489,13 +541,15 @@
|
|||
outline: none; }
|
||||
.components-color-palette__item:focus::after {
|
||||
content: "";
|
||||
border: 1px solid #606a73;
|
||||
position: absolute;
|
||||
border: 2px solid #606a73;
|
||||
width: 32px;
|
||||
height: 32px;
|
||||
position: absolute;
|
||||
top: -2px;
|
||||
left: -2px;
|
||||
border-radius: 50%; }
|
||||
border-radius: 50%;
|
||||
box-shadow: inset 0 0 0 2px #fff; }
|
||||
|
||||
.components-color-palette__clear-color .components-color-palette__item {
|
||||
color: #fff;
|
||||
|
@ -520,33 +574,10 @@
|
|||
border-bottom: 2px solid #d94f4f;
|
||||
transform: rotate(45deg) translateY(-13px) translateX(-1px); }
|
||||
|
||||
.components-color-palette__custom-color .components-color-palette__item {
|
||||
position: relative;
|
||||
box-shadow: none; }
|
||||
|
||||
.components-color-palette__custom-color .components-color-palette__custom-color-gradient {
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
border-radius: 50%;
|
||||
overflow: hidden; }
|
||||
|
||||
.components-color-palette__custom-color .components-color-palette__custom-color-gradient::before {
|
||||
content: "";
|
||||
filter: blur(6px) saturate(0.7) brightness(1.1);
|
||||
display: block;
|
||||
width: 200%;
|
||||
height: 200%;
|
||||
position: absolute;
|
||||
top: -50%;
|
||||
left: -50%;
|
||||
padding-top: 100%;
|
||||
transform: scale(1);
|
||||
background-image: linear-gradient(330deg, transparent 50%, #ff8100 50%), linear-gradient(300deg, transparent 50%, #ff5800 50%), linear-gradient(270deg, transparent 50%, #c92323 50%), linear-gradient(240deg, transparent 50%, #cc42a2 50%), linear-gradient(210deg, transparent 50%, #9f49ac 50%), linear-gradient(180deg, transparent 50%, #306cd3 50%), linear-gradient(150deg, transparent 50%, #179067 50%), linear-gradient(120deg, transparent 50%, #0eb5d6 50%), linear-gradient(90deg, transparent 50%, #50b517 50%), linear-gradient(60deg, transparent 50%, #ede604 50%), linear-gradient(30deg, transparent 50%, #fc0 50%), linear-gradient(0deg, transparent 50%, #feac00 50%);
|
||||
background-clip: content-box, content-box, content-box, content-box, content-box, content-box, padding-box, padding-box, padding-box, padding-box, padding-box, padding-box; }
|
||||
.components-color-palette__custom-color {
|
||||
margin-right: 16px; }
|
||||
.components-color-palette__custom-color .components-button {
|
||||
line-height: 22px; }
|
||||
|
||||
.block-editor__container .components-popover.components-color-palette__picker.is-bottom {
|
||||
z-index: 100001; }
|
||||
|
@ -721,6 +752,8 @@
|
|||
align-items: flex-end; }
|
||||
.components-color-picker__inputs-wrapper fieldset {
|
||||
flex: 1; }
|
||||
.components-color-picker__inputs-wrapper .components-color-picker__inputs-fields .components-text-control__input[type="number"] {
|
||||
padding: 2px; }
|
||||
|
||||
.components-color-picker__inputs-fields {
|
||||
display: flex; }
|
||||
|
@ -1673,8 +1706,6 @@ svg.dashicon {
|
|||
border-radius: 4px 0 0 4px !important; }
|
||||
.components-datetime__time.is-12-hour .components-datetime__time-field-year input {
|
||||
border-radius: 0 4px 4px 0 !important; }
|
||||
.components-datetime__time.is-24-hour .components-datetime__time-field-day {
|
||||
order: 0 !important; }
|
||||
|
||||
.components-datetime__time-legend {
|
||||
font-weight: 600;
|
||||
|
@ -1869,13 +1900,90 @@ body.is-dragging-components-draggable {
|
|||
margin: -0.2em 0.1em 0;
|
||||
vertical-align: middle; }
|
||||
|
||||
.components-focal-point-picker-wrapper {
|
||||
background-color: transparent;
|
||||
border: 1px solid #e2e4e7;
|
||||
height: 200px;
|
||||
width: 100%;
|
||||
padding: 14px; }
|
||||
|
||||
.components-focal-point-picker {
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
justify-content: center;
|
||||
position: relative;
|
||||
width: 100%; }
|
||||
.components-focal-point-picker img {
|
||||
height: auto;
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
width: auto;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none; }
|
||||
|
||||
.components-focal-point-picker__icon_container {
|
||||
background-color: transparent;
|
||||
cursor: -webkit-grab;
|
||||
cursor: grab;
|
||||
height: 30px;
|
||||
opacity: 0.8;
|
||||
position: absolute;
|
||||
will-change: transform;
|
||||
width: 30px;
|
||||
z-index: 10000; }
|
||||
.components-focal-point-picker__icon_container.is-dragging {
|
||||
cursor: -webkit-grabbing;
|
||||
cursor: grabbing; }
|
||||
|
||||
.components-focal-point-picker__icon {
|
||||
display: block;
|
||||
height: 100%;
|
||||
left: -15px;
|
||||
position: absolute;
|
||||
top: -15px;
|
||||
width: 100%; }
|
||||
.components-focal-point-picker__icon .components-focal-point-picker__icon-outline {
|
||||
fill: #fff; }
|
||||
.components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #0085ba; }
|
||||
body.admin-color-sunrise .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #d1864a; }
|
||||
body.admin-color-ocean .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #a3b9a2; }
|
||||
body.admin-color-midnight .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #e14d43; }
|
||||
body.admin-color-ectoplasm .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #a7b656; }
|
||||
body.admin-color-coffee .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #c2a68c; }
|
||||
body.admin-color-blue .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #82b4cb; }
|
||||
body.admin-color-light .components-focal-point-picker__icon .components-focal-point-picker__icon-fill {
|
||||
fill: #0085ba; }
|
||||
|
||||
.components-focal-point-picker_position-display-container {
|
||||
margin: 1em 0;
|
||||
display: flex; }
|
||||
.components-focal-point-picker_position-display-container .components-base-control__field {
|
||||
margin: 0 1em 0 0; }
|
||||
.components-focal-point-picker_position-display-container input[type="number"].components-text-control__input {
|
||||
max-width: 4em;
|
||||
padding: 6px 4px; }
|
||||
.components-focal-point-picker_position-display-container span {
|
||||
margin: 0 0 0 0.2em; }
|
||||
|
||||
.components-font-size-picker__buttons {
|
||||
max-width: 248px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center; }
|
||||
.components-font-size-picker__buttons .components-range-control__number {
|
||||
height: 24px;
|
||||
line-height: 22px; }
|
||||
height: 30px;
|
||||
margin-left: 0; }
|
||||
.components-font-size-picker__buttons .components-range-control__number[value=""] + .components-button {
|
||||
cursor: default;
|
||||
opacity: 0.3;
|
||||
|
@ -1895,6 +2003,17 @@ body.is-dragging-components-draggable {
|
|||
position: absolute;
|
||||
top: calc(50% - 10px);
|
||||
left: 10px; }
|
||||
.components-font-size-picker__dropdown-content .components-button:hover {
|
||||
color: #191e23;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
background: #f3f4f5; }
|
||||
.components-font-size-picker__dropdown-content .components-button:focus {
|
||||
color: #191e23;
|
||||
border: none;
|
||||
box-shadow: none;
|
||||
outline-offset: -2px;
|
||||
outline: 1px dotted #555d66; }
|
||||
|
||||
.components-font-size-picker__buttons .components-font-size-picker__selector {
|
||||
border: 1px solid;
|
||||
|
@ -1930,11 +2049,13 @@ body.is-dragging-components-draggable {
|
|||
padding-left: 6px; }
|
||||
|
||||
.components-form-toggle {
|
||||
position: relative; }
|
||||
position: relative;
|
||||
display: inline-block; }
|
||||
.components-form-toggle .components-form-toggle__on,
|
||||
.components-form-toggle .components-form-toggle__off {
|
||||
position: absolute;
|
||||
top: 6px; }
|
||||
top: 6px;
|
||||
box-sizing: border-box; }
|
||||
.components-form-toggle .components-form-toggle__off {
|
||||
color: #6c7781;
|
||||
fill: currentColor;
|
||||
|
@ -1944,6 +2065,7 @@ body.is-dragging-components-draggable {
|
|||
.components-form-toggle .components-form-toggle__track {
|
||||
content: "";
|
||||
display: inline-block;
|
||||
box-sizing: border-box;
|
||||
vertical-align: top;
|
||||
background-color: #fff;
|
||||
border: 2px solid #6c7781;
|
||||
|
@ -1954,6 +2076,7 @@ body.is-dragging-components-draggable {
|
|||
.components-form-toggle .components-form-toggle__thumb {
|
||||
display: block;
|
||||
position: absolute;
|
||||
box-sizing: border-box;
|
||||
top: 4px;
|
||||
left: 4px;
|
||||
width: 10px;
|
||||
|
@ -2089,7 +2212,6 @@ body.is-dragging-components-draggable {
|
|||
min-height: 24px;
|
||||
background: inherit;
|
||||
border: 0;
|
||||
font-size: 13px;
|
||||
color: #23282d;
|
||||
box-shadow: none; }
|
||||
.components-form-token-field__input-container input[type="text"].components-form-token-field__input:focus,
|
||||
|
@ -2212,14 +2334,16 @@ body.is-dragging-components-draggable {
|
|||
right: 0;
|
||||
pointer-events: none;
|
||||
outline: 4px solid transparent;
|
||||
animation: editor-animation__region-focus 0.2s ease-out;
|
||||
animation-fill-mode: forwards; }
|
||||
box-shadow: inset 0 0 0 4px #33b3db; }
|
||||
|
||||
@keyframes editor-animation__region-focus {
|
||||
from {
|
||||
box-shadow: inset 0 0 0 0 #33b3db; }
|
||||
to {
|
||||
box-shadow: inset 0 0 0 4px #33b3db; } }
|
||||
@supports (outline-offset: 1px) {
|
||||
.components-navigate-regions.is-focusing-regions [role="region"]:focus::after {
|
||||
content: none; }
|
||||
.components-navigate-regions.is-focusing-regions [role="region"]:focus {
|
||||
outline-style: solid;
|
||||
outline-color: #33b3db;
|
||||
outline-width: 4px;
|
||||
outline-offset: -4px; } }
|
||||
|
||||
.components-icon-button {
|
||||
display: flex;
|
||||
|
@ -2238,8 +2362,8 @@ body.is-dragging-components-draggable {
|
|||
.components-icon-button svg {
|
||||
fill: currentColor;
|
||||
outline: none; }
|
||||
.components-icon-button svg:not:only-child {
|
||||
margin-right: 4px; }
|
||||
.components-icon-button.has-text svg {
|
||||
margin-right: 4px; }
|
||||
.components-icon-button:not(:disabled):not([aria-disabled="true"]):not(.is-default):hover {
|
||||
background-color: #fff;
|
||||
color: #191e23;
|
||||
|
@ -2254,16 +2378,17 @@ body.is-dragging-components-draggable {
|
|||
|
||||
.components-menu-group {
|
||||
width: 100%;
|
||||
padding: 7px; }
|
||||
padding: 7px 0; }
|
||||
|
||||
.components-menu-group__label {
|
||||
margin-bottom: 8px;
|
||||
color: #6c7781; }
|
||||
color: #6c7781;
|
||||
padding: 0 7px; }
|
||||
|
||||
.components-menu-item__button,
|
||||
.components-menu-item__button.components-icon-button {
|
||||
width: 100%;
|
||||
padding: 8px;
|
||||
padding: 8px 15px;
|
||||
text-align: left;
|
||||
color: #40464d; }
|
||||
.components-menu-item__button .dashicon,
|
||||
|
@ -2285,7 +2410,11 @@ body.is-dragging-components-draggable {
|
|||
.components-menu-item__button.components-icon-button:hover:not(:disabled):not([aria-disabled="true"]) {
|
||||
color: #191e23;
|
||||
border: none;
|
||||
box-shadow: none; } }
|
||||
box-shadow: none;
|
||||
background: #f3f4f5; } }
|
||||
.components-menu-item__button:hover:not(:disabled):not([aria-disabled="true"]) .components-menu-item__shortcut,
|
||||
.components-menu-item__button.components-icon-button:hover:not(:disabled):not([aria-disabled="true"]) .components-menu-item__shortcut {
|
||||
opacity: 1; }
|
||||
.components-menu-item__button:focus:not(:disabled):not([aria-disabled="true"]),
|
||||
.components-menu-item__button.components-icon-button:focus:not(:disabled):not([aria-disabled="true"]) {
|
||||
color: #191e23;
|
||||
|
@ -2301,11 +2430,11 @@ body.is-dragging-components-draggable {
|
|||
.components-menu-item__info {
|
||||
margin-top: 4px;
|
||||
font-size: 12px;
|
||||
opacity: 0.82; }
|
||||
opacity: 0.84; }
|
||||
|
||||
.components-menu-item__shortcut {
|
||||
align-self: center;
|
||||
opacity: 0.5;
|
||||
opacity: 0.84;
|
||||
margin-right: 0;
|
||||
margin-left: auto;
|
||||
padding-left: 8px;
|
||||
|
@ -2324,6 +2453,9 @@ body.is-dragging-components-draggable {
|
|||
z-index: 100000;
|
||||
animation: edit-post__fade-in-animation 0.2s ease-out 0s;
|
||||
animation-fill-mode: forwards; }
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.components-modal__screen-overlay {
|
||||
animation-duration: 1ms !important; } }
|
||||
|
||||
.components-modal__frame {
|
||||
position: absolute;
|
||||
|
@ -2349,6 +2481,9 @@ body.is-dragging-components-draggable {
|
|||
transform: translate(-50%, -50%);
|
||||
animation: components-modal__appear-animation 0.1s ease-out;
|
||||
animation-fill-mode: forwards; } }
|
||||
@media (min-width: 600px) and (prefers-reduced-motion: reduce) {
|
||||
.components-modal__frame {
|
||||
animation-duration: 1ms !important; } }
|
||||
|
||||
@keyframes components-modal__appear-animation {
|
||||
from {
|
||||
|
@ -2376,8 +2511,8 @@ body.is-dragging-components-draggable {
|
|||
position: fixed;
|
||||
width: 100%; } }
|
||||
.components-modal__header .components-modal__header-heading {
|
||||
font-size: 1em;
|
||||
font-weight: 400; }
|
||||
font-size: 1rem;
|
||||
font-weight: 600; }
|
||||
.components-modal__header h1 {
|
||||
line-height: 1;
|
||||
margin: 0; }
|
||||
|
@ -2405,6 +2540,8 @@ body.is-dragging-components-draggable {
|
|||
padding-top: 56px; } }
|
||||
|
||||
.components-notice {
|
||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||
font-size: 13px;
|
||||
background-color: #e5f5fa;
|
||||
border-left: 4px solid #00a0d2;
|
||||
margin: 5px 15px 2px;
|
||||
|
@ -2423,11 +2560,14 @@ body.is-dragging-components-draggable {
|
|||
background-color: #f9e2e2; }
|
||||
|
||||
.components-notice__content {
|
||||
margin: 1em 0; }
|
||||
margin: 1em 25px 1em 0; }
|
||||
|
||||
.components-notice__action.components-button, .components-notice__action.components-button.is-link {
|
||||
margin-left: 4px; }
|
||||
|
||||
.components-notice__action.components-button.is-default {
|
||||
vertical-align: initial; }
|
||||
|
||||
.components-notice__dismiss {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
|
@ -2441,7 +2581,7 @@ body.is-dragging-components-draggable {
|
|||
|
||||
.components-notice-list {
|
||||
min-width: 300px;
|
||||
z-index: 9989; }
|
||||
z-index: 29; }
|
||||
|
||||
.components-panel {
|
||||
background: #fff;
|
||||
|
@ -2499,7 +2639,7 @@ body.is-dragging-components-draggable {
|
|||
|
||||
.components-panel__body > .components-panel__body-title:hover,
|
||||
.edit-post-last-revision__panel > .components-icon-button:not(:disabled):not([aria-disabled="true"]):not(.is-default):hover {
|
||||
background: #f8f9f9; }
|
||||
background: #f3f4f5; }
|
||||
|
||||
.components-panel__body-toggle.components-button {
|
||||
position: relative;
|
||||
|
@ -2580,11 +2720,13 @@ body.is-dragging-components-draggable {
|
|||
|
||||
.components-placeholder__label {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-weight: 600;
|
||||
margin-bottom: 1em; }
|
||||
.components-placeholder__label .dashicon,
|
||||
.components-placeholder__label .editor-block-icon {
|
||||
.components-placeholder__label .block-editor-block-icon {
|
||||
fill: currentColor;
|
||||
margin-right: 1ch; }
|
||||
|
||||
.components-placeholder__fieldset,
|
||||
|
@ -2854,8 +2996,7 @@ body.is-dragging-components-draggable {
|
|||
display: inline-block;
|
||||
margin-left: 8px;
|
||||
font-weight: 500;
|
||||
width: 50px;
|
||||
padding: 3px 5px !important; }
|
||||
width: 54px; }
|
||||
|
||||
.components-resizable-box__handle {
|
||||
display: none;
|
||||
|
@ -2958,6 +3099,7 @@ body.lockscroll {
|
|||
border-radius: 100%;
|
||||
position: relative; }
|
||||
.components-spinner::before {
|
||||
/* rtl:begin:ignore */
|
||||
content: "";
|
||||
position: absolute;
|
||||
background-color: #fff;
|
||||
|
@ -2967,7 +3109,8 @@ body.lockscroll {
|
|||
height: 4px;
|
||||
border-radius: 100%;
|
||||
transform-origin: 6px 6px;
|
||||
animation: components-spinner__animation 1s infinite linear; }
|
||||
animation: components-spinner__animation 1s infinite linear;
|
||||
/* rtl:end:ignore */ }
|
||||
|
||||
@keyframes components-spinner__animation {
|
||||
from {
|
||||
|
@ -3091,12 +3234,12 @@ div.components-toolbar > div + div {
|
|||
background: #191e23;
|
||||
border-width: 0;
|
||||
color: #fff;
|
||||
white-space: nowrap; }
|
||||
white-space: nowrap;
|
||||
text-align: center; }
|
||||
|
||||
.components-tooltip:not(.is-mobile) .components-popover__content {
|
||||
min-width: 0; }
|
||||
|
||||
.components-tooltip__shortcut {
|
||||
display: block;
|
||||
text-align: center;
|
||||
color: #7e8993; }
|
||||
|
|
File diff suppressed because one or more lines are too long
857
wp-includes/css/dist/edit-post/style-rtl.css
vendored
857
wp-includes/css/dist/edit-post/style-rtl.css
vendored
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
857
wp-includes/css/dist/edit-post/style.css
vendored
857
wp-includes/css/dist/edit-post/style.css
vendored
File diff suppressed because it is too large
Load diff
2
wp-includes/css/dist/edit-post/style.min.css
vendored
2
wp-includes/css/dist/edit-post/style.min.css
vendored
File diff suppressed because one or more lines are too long
|
@ -28,6 +28,9 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
body {
|
||||
font-family: "Noto Serif", serif;
|
||||
font-size: 16px;
|
||||
|
@ -35,13 +38,16 @@ body {
|
|||
color: #191e23; }
|
||||
|
||||
p {
|
||||
font-size: 16px;
|
||||
line-height: 1.8; }
|
||||
font-size: inherit;
|
||||
line-height: inherit; }
|
||||
|
||||
ul,
|
||||
ol {
|
||||
margin: 0;
|
||||
padding: 0; }
|
||||
ul li,
|
||||
ol li {
|
||||
margin-bottom: initial; }
|
||||
|
||||
ul {
|
||||
list-style-type: disc; }
|
||||
|
@ -52,6 +58,3 @@ ol {
|
|||
ul ul,
|
||||
ol ul {
|
||||
list-style-type: circle; }
|
||||
|
||||
.mce-content-body {
|
||||
line-height: 1.8; }
|
||||
|
|
|
@ -1 +1 @@
|
|||
body{font-family:"Noto Serif",serif;color:#191e23}body,p{font-size:16px;line-height:1.8}ol,ul{margin:0;padding:0}ul{list-style-type:disc}ol{list-style-type:decimal}ol ul,ul ul{list-style-type:circle}.mce-content-body{line-height:1.8}
|
||||
body{font-family:"Noto Serif",serif;font-size:16px;line-height:1.8;color:#191e23}p{font-size:inherit;line-height:inherit}ol,ul{margin:0;padding:0}ol li,ul li{margin-bottom:0}ul{list-style-type:disc}ol{list-style-type:decimal}ol ul,ul ul{list-style-type:circle}
|
13
wp-includes/css/dist/editor/editor-styles.css
vendored
13
wp-includes/css/dist/editor/editor-styles.css
vendored
|
@ -28,6 +28,9 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
body {
|
||||
font-family: "Noto Serif", serif;
|
||||
font-size: 16px;
|
||||
|
@ -35,13 +38,16 @@ body {
|
|||
color: #191e23; }
|
||||
|
||||
p {
|
||||
font-size: 16px;
|
||||
line-height: 1.8; }
|
||||
font-size: inherit;
|
||||
line-height: inherit; }
|
||||
|
||||
ul,
|
||||
ol {
|
||||
margin: 0;
|
||||
padding: 0; }
|
||||
ul li,
|
||||
ol li {
|
||||
margin-bottom: initial; }
|
||||
|
||||
ul {
|
||||
list-style-type: disc; }
|
||||
|
@ -52,6 +58,3 @@ ol {
|
|||
ul ul,
|
||||
ol ul {
|
||||
list-style-type: circle; }
|
||||
|
||||
.mce-content-body {
|
||||
line-height: 1.8; }
|
||||
|
|
|
@ -1 +1 @@
|
|||
body{font-family:"Noto Serif",serif;color:#191e23}body,p{font-size:16px;line-height:1.8}ol,ul{margin:0;padding:0}ul{list-style-type:disc}ol{list-style-type:decimal}ol ul,ul ul{list-style-type:circle}.mce-content-body{line-height:1.8}
|
||||
body{font-family:"Noto Serif",serif;font-size:16px;line-height:1.8;color:#191e23}p{font-size:inherit;line-height:inherit}ol,ul{margin:0;padding:0}ol li,ul li{margin-bottom:0}ul{list-style-type:disc}ol{list-style-type:decimal}ol ul,ul ul{list-style-type:circle}
|
1931
wp-includes/css/dist/editor/style-rtl.css
vendored
1931
wp-includes/css/dist/editor/style-rtl.css
vendored
File diff suppressed because it is too large
Load diff
File diff suppressed because one or more lines are too long
1943
wp-includes/css/dist/editor/style.css
vendored
1943
wp-includes/css/dist/editor/style.css
vendored
File diff suppressed because it is too large
Load diff
10
wp-includes/css/dist/editor/style.min.css
vendored
10
wp-includes/css/dist/editor/style.min.css
vendored
File diff suppressed because one or more lines are too long
|
@ -28,10 +28,29 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
.editor-format-toolbar__link-container-content {
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
.block-editor-format-toolbar__image-container-content {
|
||||
display: flex; }
|
||||
.block-editor-format-toolbar__image-container-content .components-icon-button {
|
||||
height: 52px;
|
||||
align-self: flex-end; }
|
||||
|
||||
.block-editor-format-toolbar__image-container-value {
|
||||
margin: 7px;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
white-space: nowrap;
|
||||
min-width: 150px;
|
||||
max-width: 500px; }
|
||||
.block-editor-format-toolbar__image-container-value.components-base-control .components-base-control__field {
|
||||
margin-bottom: 0; }
|
||||
|
||||
.block-editor-format-toolbar__link-container-content {
|
||||
display: flex; }
|
||||
|
||||
.editor-format-toolbar__link-container-value {
|
||||
.block-editor-format-toolbar__link-container-value {
|
||||
margin: 7px;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
|
@ -40,5 +59,5 @@
|
|||
white-space: nowrap;
|
||||
min-width: 150px;
|
||||
max-width: 500px; }
|
||||
.editor-format-toolbar__link-container-value.has-invalid-link {
|
||||
.block-editor-format-toolbar__link-container-value.has-invalid-link {
|
||||
color: #d94f4f; }
|
||||
|
|
|
@ -1 +1 @@
|
|||
.editor-format-toolbar__link-container-content{display:flex}.editor-format-toolbar__link-container-value{margin:7px;flex-grow:1;flex-shrink:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:150px;max-width:500px}.editor-format-toolbar__link-container-value.has-invalid-link{color:#d94f4f}
|
||||
.block-editor-format-toolbar__image-container-content{display:flex}.block-editor-format-toolbar__image-container-content .components-icon-button{height:52px;align-self:flex-end}.block-editor-format-toolbar__image-container-value{margin:7px;flex-grow:1;flex-shrink:1;white-space:nowrap;min-width:150px;max-width:500px}.block-editor-format-toolbar__image-container-value.components-base-control .components-base-control__field{margin-bottom:0}.block-editor-format-toolbar__link-container-content{display:flex}.block-editor-format-toolbar__link-container-value{margin:7px;flex-grow:1;flex-shrink:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:150px;max-width:500px}.block-editor-format-toolbar__link-container-value.has-invalid-link{color:#d94f4f}
|
25
wp-includes/css/dist/format-library/style.css
vendored
25
wp-includes/css/dist/format-library/style.css
vendored
|
@ -28,10 +28,29 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
.editor-format-toolbar__link-container-content {
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
.block-editor-format-toolbar__image-container-content {
|
||||
display: flex; }
|
||||
.block-editor-format-toolbar__image-container-content .components-icon-button {
|
||||
height: 52px;
|
||||
align-self: flex-end; }
|
||||
|
||||
.block-editor-format-toolbar__image-container-value {
|
||||
margin: 7px;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
white-space: nowrap;
|
||||
min-width: 150px;
|
||||
max-width: 500px; }
|
||||
.block-editor-format-toolbar__image-container-value.components-base-control .components-base-control__field {
|
||||
margin-bottom: 0; }
|
||||
|
||||
.block-editor-format-toolbar__link-container-content {
|
||||
display: flex; }
|
||||
|
||||
.editor-format-toolbar__link-container-value {
|
||||
.block-editor-format-toolbar__link-container-value {
|
||||
margin: 7px;
|
||||
flex-grow: 1;
|
||||
flex-shrink: 1;
|
||||
|
@ -40,5 +59,5 @@
|
|||
white-space: nowrap;
|
||||
min-width: 150px;
|
||||
max-width: 500px; }
|
||||
.editor-format-toolbar__link-container-value.has-invalid-link {
|
||||
.block-editor-format-toolbar__link-container-value.has-invalid-link {
|
||||
color: #d94f4f; }
|
||||
|
|
|
@ -1 +1 @@
|
|||
.editor-format-toolbar__link-container-content{display:flex}.editor-format-toolbar__link-container-value{margin:7px;flex-grow:1;flex-shrink:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:150px;max-width:500px}.editor-format-toolbar__link-container-value.has-invalid-link{color:#d94f4f}
|
||||
.block-editor-format-toolbar__image-container-content{display:flex}.block-editor-format-toolbar__image-container-content .components-icon-button{height:52px;align-self:flex-end}.block-editor-format-toolbar__image-container-value{margin:7px;flex-grow:1;flex-shrink:1;white-space:nowrap;min-width:150px;max-width:500px}.block-editor-format-toolbar__image-container-value.components-base-control .components-base-control__field{margin-bottom:0}.block-editor-format-toolbar__link-container-content{display:flex}.block-editor-format-toolbar__link-container-value{margin:7px;flex-grow:1;flex-shrink:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:150px;max-width:500px}.block-editor-format-toolbar__link-container-value.has-invalid-link{color:#d94f4f}
|
|
@ -28,6 +28,9 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
.list-reusable-blocks-import-dropdown__content .components-popover__content {
|
||||
padding: 10px; }
|
||||
|
||||
|
|
|
@ -28,6 +28,9 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
.list-reusable-blocks-import-dropdown__content .components-popover__content {
|
||||
padding: 10px; }
|
||||
|
||||
|
|
3
wp-includes/css/dist/nux/style-rtl.css
vendored
3
wp-includes/css/dist/nux/style-rtl.css
vendored
|
@ -28,6 +28,9 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
.nux-dot-tip::before, .nux-dot-tip::after {
|
||||
border-radius: 100%;
|
||||
content: " ";
|
||||
|
|
3
wp-includes/css/dist/nux/style.css
vendored
3
wp-includes/css/dist/nux/style.css
vendored
|
@ -28,6 +28,9 @@
|
|||
/**
|
||||
* Styles that are reused verbatim in a few places
|
||||
*/
|
||||
/**
|
||||
* Allows users to opt-out of animations via OS-level preferences.
|
||||
*/
|
||||
.nux-dot-tip::before, .nux-dot-tip::after {
|
||||
border-radius: 100%;
|
||||
content: " ";
|
||||
|
|
|
@ -34,7 +34,7 @@
|
|||
|
||||
.mce-window {
|
||||
border-radius: 0;
|
||||
box-shadow: 0 3px 6px rgba( 0, 0, 0, 0.3 );
|
||||
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
|
||||
-webkit-font-smoothing: subpixel-antialiased;
|
||||
transition: none;
|
||||
}
|
||||
|
@ -88,7 +88,7 @@
|
|||
.mce-window-head .mce-close:focus .mce-i-remove,
|
||||
div.mce-tab:focus {
|
||||
box-shadow: 0 0 0 1px #5b9dd9,
|
||||
0 0 2px 1px rgba(30, 140, 190, .8);
|
||||
0 0 2px 1px rgba(30, 140, 190, 0.8);
|
||||
}
|
||||
|
||||
.mce-window .mce-window-head .mce-dragh {
|
||||
|
@ -104,7 +104,7 @@ div.mce-tab:focus {
|
|||
#wp-link .query-results {
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 0;
|
||||
box-shadow: inset 0 1px 2px rgba(0,0,0,0.07);
|
||||
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.07);
|
||||
transition: .05s all ease-in-out;
|
||||
}
|
||||
|
||||
|
@ -113,7 +113,7 @@ div.mce-tab:focus {
|
|||
.mce-checkbox:focus i.mce-i-checkbox,
|
||||
#wp-link .query-results:focus {
|
||||
border-color: #5b9dd9;
|
||||
box-shadow: 0 0 2px rgba(30,140,190,0.8);
|
||||
box-shadow: 0 0 2px rgba(30, 140, 190, 0.8);
|
||||
}
|
||||
|
||||
.mce-window .mce-wp-help {
|
||||
|
@ -189,7 +189,7 @@ div.mce-tab:focus {
|
|||
font-weight: 600;
|
||||
margin: 0;
|
||||
background: #eaeaea;
|
||||
background: rgba(0,0,0,0.08);
|
||||
background: rgba(0, 0, 0, 0.08);
|
||||
}
|
||||
|
||||
.mce-window .wp-help-th-center td:nth-child(odd),
|
||||
|
@ -200,9 +200,9 @@ div.mce-tab:focus {
|
|||
/* TinyMCE menus */
|
||||
.mce-menu,
|
||||
.mce-floatpanel.mce-popover {
|
||||
border-color: rgba(0,0,0,0.15);
|
||||
border-color: rgba(0, 0, 0, 0.15);
|
||||
border-radius: 0;
|
||||
box-shadow: 0 3px 5px rgba( 0, 0, 0, 0.2 );
|
||||
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.mce-menu,
|
||||
|
@ -253,7 +253,7 @@ div.mce-toolbar-grp {
|
|||
div.mce-inline-toolbar-grp {
|
||||
border: 1px solid #a0a5aa;
|
||||
border-radius: 2px;
|
||||
box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.15 );
|
||||
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
|
||||
box-sizing: border-box;
|
||||
margin-bottom: 8px;
|
||||
position: absolute;
|
||||
|
@ -413,7 +413,7 @@ div.mce-path {
|
|||
background: #fafafa;
|
||||
border-color: #555d66;
|
||||
color: #23282d;
|
||||
box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba( 0, 0, 0, 0.08 );
|
||||
box-shadow: inset 0 1px 0 #fff, 0 1px 0 rgba(0, 0, 0, 0.08);
|
||||
outline: none;
|
||||
}
|
||||
|
||||
|
@ -422,7 +422,7 @@ div.mce-path {
|
|||
.qt-dfw.active {
|
||||
background: #ebebeb;
|
||||
border-color: #555d66;
|
||||
box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.3 );
|
||||
box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.3);
|
||||
}
|
||||
|
||||
.mce-btn.mce-active,
|
||||
|
@ -534,7 +534,7 @@ div.mce-path {
|
|||
direction: rtl;
|
||||
background: #fff;
|
||||
border: 1px solid #ddd;
|
||||
box-shadow: inset 0 1px 1px -1px rgba(0, 0, 0, .2);
|
||||
box-shadow: inset 0 1px 1px -1px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
.mce-toolbar .mce-btn-group .mce-btn.mce-listbox:hover,
|
||||
|
@ -639,7 +639,7 @@ div.mce-menubar {
|
|||
color: #124964;
|
||||
box-shadow:
|
||||
0 0 0 1px #5b9dd9,
|
||||
0 0 2px 1px rgba(30, 140, 190, .8);
|
||||
0 0 2px 1px rgba(30, 140, 190, 0.8);
|
||||
}
|
||||
|
||||
div.mce-menu .mce-menu-item-sep,
|
||||
|
@ -711,13 +711,13 @@ div.mce-menu .mce-menu-item-sep,
|
|||
|
||||
.mce-window .mce-btn:focus {
|
||||
border-color: #5b9dd9;
|
||||
box-shadow: 0 0 3px rgba( 0, 115, 170, .8 );
|
||||
box-shadow: 0 0 3px rgba(0, 115, 170, 0.8);
|
||||
}
|
||||
|
||||
.mce-window .mce-btn:active {
|
||||
background: #eee;
|
||||
border-color: #999;
|
||||
box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
|
||||
box-shadow: inset 0 2px 5px -3px rgba(0, 0, 0, 0.5);
|
||||
transform: translateY(1px);
|
||||
}
|
||||
|
||||
|
@ -767,7 +767,7 @@ div.mce-menu .mce-menu-item-sep,
|
|||
background: #008ec2 !important;
|
||||
border-color: #007cb2 !important;
|
||||
box-shadow: none !important;
|
||||
text-shadow: 0 -1px 0 rgba( 0, 0, 0, 0.1 ) !important;
|
||||
text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.1) !important;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
|
@ -810,7 +810,7 @@ div.mce-menu .mce-menu-item-sep,
|
|||
|
||||
.mce-tooltip-inner {
|
||||
border-radius: 3px;
|
||||
box-shadow: 0 3px 5px rgba( 0, 0, 0, 0.2 );
|
||||
box-shadow: 0 3px 5px rgba(0, 0, 0, 0.2);
|
||||
color: #fff;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
@ -1140,7 +1140,7 @@ i.mce-i-wp_code:before {
|
|||
.wp-switch-editor:focus {
|
||||
box-shadow:
|
||||
0 0 0 1px #5b9dd9,
|
||||
0 0 2px 1px rgba(30, 140, 190, .8);
|
||||
0 0 2px 1px rgba(30, 140, 190, 0.8);
|
||||
outline: none;
|
||||
color: #23282d;
|
||||
}
|
||||
|
@ -1269,6 +1269,13 @@ i.mce-i-wp_code:before {
|
|||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.mce-toolbar .mce-btn-group .mce-btn.mce-wp-dfw {
|
||||
margin: 7px 0 0 7px;
|
||||
}
|
||||
|
||||
.qt-dfw {
|
||||
margin: 5px 0 0 5px;
|
||||
}
|
||||
|
||||
|
@ -1361,7 +1368,7 @@ i.mce-i-wp_code:before {
|
|||
#wp-link-wrap {
|
||||
display: none;
|
||||
background-color: #fff;
|
||||
box-shadow: 0 3px 6px rgba( 0, 0, 0, 0.3 );
|
||||
box-shadow: 0 3px 6px rgba(0, 0, 0, 0.3);
|
||||
width: 500px;
|
||||
overflow: hidden;
|
||||
margin-right: -250px;
|
||||
|
@ -1450,7 +1457,7 @@ i.mce-i-wp_code:before {
|
|||
outline: none;
|
||||
box-shadow:
|
||||
0 0 0 1px #5b9dd9,
|
||||
0 0 2px 1px rgba(30, 140, 190, .8);
|
||||
0 0 2px 1px rgba(30, 140, 190, 0.8);
|
||||
}
|
||||
|
||||
#wp-link-wrap #link-selector {
|
||||
|
@ -1796,7 +1803,7 @@ div.wp-link-input input {
|
|||
list-style: none;
|
||||
position: absolute;
|
||||
border: 1px solid #5b9dd9;
|
||||
box-shadow: 0 1px 2px rgba( 30, 140, 190, 0.8 );
|
||||
box-shadow: 0 1px 2px rgba(30, 140, 190, 0.8);
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
|
|
2
wp-includes/css/editor-rtl.min.css
vendored
2
wp-includes/css/editor-rtl.min.css
vendored
File diff suppressed because one or more lines are too long
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue