���ѧۧݧ�ӧ�� �ާ֧ߧ֧էا֧� - ���֧էѧܧ�ڧ��ӧѧ�� - /var/www/nitsch.de/wp-includes/php-compat/blocks.tar
���ѧ٧ѧ�
spacer/editor.css 0000775 00000003477 00000000000 0010002 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .block-editor-block-list__block[data-type="core/spacer"]::before { content: ""; display: block; position: absolute; z-index: 1; width: 100%; min-height: 8px; min-width: 8px; height: 100%; } .wp-block-spacer.is-hovered .block-library-spacer__resize-container, .block-library-spacer__resize-container.has-show-handle, .wp-block-spacer.is-selected.custom-sizes-disabled { background: rgba(0, 0, 0, 0.1); } .is-dark-theme .wp-block-spacer.is-hovered .block-library-spacer__resize-container, .is-dark-theme .block-library-spacer__resize-container.has-show-handle, .is-dark-theme .wp-block-spacer.is-selected.custom-sizes-disabled { background: rgba(255, 255, 255, 0.15); } .block-library-spacer__resize-container { clear: both; } .block-library-spacer__resize-container:not(.is-resizing) { height: 100% !important; width: 100% !important; } .block-library-spacer__resize-container .components-resizable-box__handle::before { content: none; } .block-library-spacer__resize-container.resize-horizontal { margin-bottom: 0; height: 100% !important; } spacer/editor.min.css 0000775 00000001703 00000000000 0010552 0 ustar 00 .block-editor-block-list__block[data-type="core/spacer"]:before{content:"";display:block;height:100%;min-height:8px;min-width:8px;position:absolute;width:100%;z-index:1}.block-library-spacer__resize-container.has-show-handle,.wp-block-spacer.is-hovered .block-library-spacer__resize-container,.wp-block-spacer.is-selected.custom-sizes-disabled{background:rgba(0,0,0,.1)}.is-dark-theme .block-library-spacer__resize-container.has-show-handle,.is-dark-theme .wp-block-spacer.is-hovered .block-library-spacer__resize-container,.is-dark-theme .wp-block-spacer.is-selected.custom-sizes-disabled{background:hsla(0,0%,100%,.15)}.block-library-spacer__resize-container{clear:both}.block-library-spacer__resize-container:not(.is-resizing){height:100%!important;width:100%!important}.block-library-spacer__resize-container .components-resizable-box__handle:before{content:none}.block-library-spacer__resize-container.resize-horizontal{height:100%!important;margin-bottom:0} spacer/style-rtl.css 0000775 00000000043 00000000000 0010435 0 ustar 00 .wp-block-spacer { clear: both; } spacer/editor-rtl.min.css 0000775 00000001703 00000000000 0011351 0 ustar 00 .block-editor-block-list__block[data-type="core/spacer"]:before{content:"";display:block;height:100%;min-height:8px;min-width:8px;position:absolute;width:100%;z-index:1}.block-library-spacer__resize-container.has-show-handle,.wp-block-spacer.is-hovered .block-library-spacer__resize-container,.wp-block-spacer.is-selected.custom-sizes-disabled{background:rgba(0,0,0,.1)}.is-dark-theme .block-library-spacer__resize-container.has-show-handle,.is-dark-theme .wp-block-spacer.is-hovered .block-library-spacer__resize-container,.is-dark-theme .wp-block-spacer.is-selected.custom-sizes-disabled{background:hsla(0,0%,100%,.15)}.block-library-spacer__resize-container{clear:both}.block-library-spacer__resize-container:not(.is-resizing){height:100%!important;width:100%!important}.block-library-spacer__resize-container .components-resizable-box__handle:before{content:none}.block-library-spacer__resize-container.resize-horizontal{height:100%!important;margin-bottom:0} spacer/style.min.css 0000775 00000000034 00000000000 0010420 0 ustar 00 .wp-block-spacer{clear:both} spacer/block.json 0000775 00000001245 00000000000 0007756 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/spacer", "title": "Spacer", "category": "design", "description": "Add white space between blocks and customize its height.", "textdomain": "default", "attributes": { "height": { "type": "string", "default": "100px" }, "width": { "type": "string" } }, "usesContext": [ "orientation" ], "supports": { "anchor": true, "spacing": { "margin": [ "top", "bottom" ], "__experimentalDefaultControls": { "margin": true } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-spacer-editor", "style": "wp-block-spacer" } spacer/style-rtl.min.css 0000775 00000000034 00000000000 0011217 0 ustar 00 .wp-block-spacer{clear:both} spacer/style.css 0000775 00000000043 00000000000 0007636 0 ustar 00 .wp-block-spacer { clear: both; } spacer/editor-rtl.css 0000775 00000003477 00000000000 0010601 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .block-editor-block-list__block[data-type="core/spacer"]::before { content: ""; display: block; position: absolute; z-index: 1; width: 100%; min-height: 8px; min-width: 8px; height: 100%; } .wp-block-spacer.is-hovered .block-library-spacer__resize-container, .block-library-spacer__resize-container.has-show-handle, .wp-block-spacer.is-selected.custom-sizes-disabled { background: rgba(0, 0, 0, 0.1); } .is-dark-theme .wp-block-spacer.is-hovered .block-library-spacer__resize-container, .is-dark-theme .block-library-spacer__resize-container.has-show-handle, .is-dark-theme .wp-block-spacer.is-selected.custom-sizes-disabled { background: rgba(255, 255, 255, 0.15); } .block-library-spacer__resize-container { clear: both; } .block-library-spacer__resize-container:not(.is-resizing) { height: 100% !important; width: 100% !important; } .block-library-spacer__resize-container .components-resizable-box__handle::before { content: none; } .block-library-spacer__resize-container.resize-horizontal { margin-bottom: 0; height: 100% !important; } loginout/style-rtl.css 0000775 00000000060 00000000000 0011017 0 ustar 00 .wp-block-loginout { box-sizing: border-box; } loginout/style.min.css 0000775 00000000051 00000000000 0011002 0 ustar 00 .wp-block-loginout{box-sizing:border-box} loginout/block.json 0000775 00000002446 00000000000 0010345 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/loginout", "title": "Login/out", "category": "theme", "description": "Show login & logout links.", "keywords": [ "login", "logout", "form" ], "textdomain": "default", "attributes": { "displayLoginAsForm": { "type": "boolean", "default": false }, "redirectToCurrent": { "type": "boolean", "default": true } }, "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "className": true, "color": { "background": true, "text": false, "gradients": true, "link": true }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-loginout" } loginout/style-rtl.min.css 0000775 00000000051 00000000000 0011601 0 ustar 00 .wp-block-loginout{box-sizing:border-box} loginout/style.css 0000775 00000000060 00000000000 0010220 0 ustar 00 .wp-block-loginout { box-sizing: border-box; } latest-posts.php 0000775 00000024333 00000000000 0007672 0 ustar 00 <?php /** * Server-side rendering of the `core/latest-posts` block. * * @package WordPress */ /** * The excerpt length set by the Latest Posts core block * set at render time and used by the block itself. * * @var int */ global $block_core_latest_posts_excerpt_length; $block_core_latest_posts_excerpt_length = 0; /** * Callback for the excerpt_length filter used by * the Latest Posts block at render time. * * @since 5.4.0 * * @global int $block_core_latest_posts_excerpt_length Excerpt length set by the Latest Posts core block. * * @return int Returns the global $block_core_latest_posts_excerpt_length variable * to allow the excerpt_length filter respect the Latest Block setting. */ function block_core_latest_posts_get_excerpt_length() { global $block_core_latest_posts_excerpt_length; return $block_core_latest_posts_excerpt_length; } /** * Renders the `core/latest-posts` block on server. * * @since 5.0.0 * * @global WP_Post $post Global post object. * @global int $block_core_latest_posts_excerpt_length Excerpt length set by the Latest Posts core block. * * @param array $attributes The block attributes. * * @return string Returns the post content with latest posts added. */ function render_block_core_latest_posts( $attributes ) { global $post, $block_core_latest_posts_excerpt_length; static $rendering_stack = array(); $args = array( 'posts_per_page' => $attributes['postsToShow'], 'post_status' => 'publish', 'order' => $attributes['order'], 'orderby' => $attributes['orderBy'], 'ignore_sticky_posts' => true, 'no_found_rows' => true, ); $block_core_latest_posts_excerpt_length = $attributes['excerptLength']; add_filter( 'excerpt_length', 'block_core_latest_posts_get_excerpt_length', 20 ); if ( ! empty( $attributes['categories'] ) ) { $args['category__in'] = array_column( $attributes['categories'], 'id' ); } if ( isset( $attributes['selectedAuthor'] ) ) { $args['author'] = $attributes['selectedAuthor']; } $query = new WP_Query( $args ); if ( isset( $attributes['displayFeaturedImage'] ) && $attributes['displayFeaturedImage'] ) { update_post_thumbnail_cache( $query ); } $list_items_markup = ''; // Snapshot the current global post so it can be restored after the loop. // We use have_posts()/the_post() rather than foreach so that setup_postdata() // is called for each post, establishing the correct global context for // do_blocks() and other filters that run during full-content rendering. $previous_post = $post ?? null; while ( $query->have_posts() ) { $query->the_post(); $post_link = esc_url( get_permalink() ); $title = get_the_title(); if ( ! $title ) { $title = __( '(no title)' ); } $list_items_markup .= '<li>'; if ( $attributes['displayFeaturedImage'] && has_post_thumbnail() ) { $image_style = ''; if ( isset( $attributes['featuredImageSizeWidth'] ) ) { $image_style .= sprintf( 'max-width:%spx;', $attributes['featuredImageSizeWidth'] ); } if ( isset( $attributes['featuredImageSizeHeight'] ) ) { $image_style .= sprintf( 'max-height:%spx;', $attributes['featuredImageSizeHeight'] ); } $image_classes = 'wp-block-latest-posts__featured-image'; if ( isset( $attributes['featuredImageAlign'] ) ) { $image_classes .= ' align' . $attributes['featuredImageAlign']; } $featured_image = get_the_post_thumbnail( null, $attributes['featuredImageSizeSlug'], array( 'style' => esc_attr( $image_style ), ) ); if ( $attributes['addLinkToFeaturedImage'] ) { $featured_image = sprintf( '<a href="%1$s" aria-label="%2$s">%3$s</a>', esc_url( $post_link ), esc_attr( $title ), $featured_image ); } $list_items_markup .= sprintf( '<div class="%1$s">%2$s</div>', esc_attr( $image_classes ), $featured_image ); } $list_items_markup .= sprintf( '<a class="wp-block-latest-posts__post-title" href="%1$s">%2$s</a>', esc_url( $post_link ), $title ); if ( isset( $attributes['displayAuthor'] ) && $attributes['displayAuthor'] ) { $author_display_name = get_the_author_meta( 'display_name' ); /* translators: byline. %s: author. */ $byline = sprintf( __( 'by %s' ), $author_display_name ); if ( ! empty( $author_display_name ) ) { $list_items_markup .= sprintf( '<div class="wp-block-latest-posts__post-author">%1$s</div>', $byline ); } } 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' ) ), get_the_date( '' ) ); } if ( isset( $attributes['displayPostContent'] ) && $attributes['displayPostContent'] && isset( $attributes['displayPostContentRadio'] ) && 'excerpt' === $attributes['displayPostContentRadio'] ) { $trimmed_excerpt = get_the_excerpt(); /* * Adds a "Read more" link with screen reader text. * […] is the default excerpt ending from wp_trim_excerpt() in Core. */ if ( str_ends_with( $trimmed_excerpt, ' […]' ) ) { /** This filter is documented in wp-includes/formatting.php */ $excerpt_length = (int) apply_filters( 'excerpt_length', $block_core_latest_posts_excerpt_length ); if ( $excerpt_length <= $block_core_latest_posts_excerpt_length ) { $trimmed_excerpt = substr( $trimmed_excerpt, 0, -11 ); $trimmed_excerpt .= sprintf( /* translators: 1: A URL to a post, 2: Hidden accessibility text: Post title */ __( '… <a class="wp-block-latest-posts__read-more" href="%1$s" rel="noopener">Read more<span class="screen-reader-text">: %2$s</span></a>' ), esc_url( $post_link ), esc_html( $title ) ); } } if ( post_password_required() ) { $trimmed_excerpt = __( 'This content is password protected.' ); } $list_items_markup .= sprintf( '<div class="wp-block-latest-posts__post-excerpt">%1$s</div>', $trimmed_excerpt ); } if ( isset( $attributes['displayPostContent'] ) && $attributes['displayPostContent'] && isset( $attributes['displayPostContentRadio'] ) && 'full_post' === $attributes['displayPostContentRadio'] ) { if ( post_password_required() ) { $post_content = __( 'This content is password protected.' ); } else { $post_id = get_the_ID(); $post_content = get_post_field( 'post_content', $post_id, 'raw' ); // Check if we're already rendering this post to prevent infinite recursion. if ( in_array( $post_id, $rendering_stack, true ) ) { $post_content = ''; } else { $rendering_stack[] = $post_id; try { // Run through the actions that are typically taken on the_content. $post_content = _wp_apply_block_content_filters( $post_content, 'latest-posts' ); } finally { array_pop( $rendering_stack ); } } } $post_content = str_replace( ']]>', ']]>', $post_content ); $list_items_markup .= sprintf( '<div class="wp-block-latest-posts__post-full-content">%1$s</div>', $post_content ); } $list_items_markup .= "</li>\n"; } // Restore the post context that was active before this secondary query. // wp_reset_postdata() is intentionally not used here: when this block is // rendered inside another post's content (e.g. via do_blocks()), it would // restore to the main query post rather than the outer rendering post. $post = $previous_post; if ( $previous_post instanceof WP_Post ) { setup_postdata( $previous_post ); } remove_filter( 'excerpt_length', 'block_core_latest_posts_get_excerpt_length', 20 ); $layout = $attributes['layout'] ?? array(); $legacy_layout_type = ( isset( $attributes['postLayout'] ) && 'grid' === $attributes['postLayout'] ) ? 'grid' : 'default'; $layout_type = $layout['type'] ?? $legacy_layout_type; $column_count = $layout['columnCount'] ?? ( $attributes['columns'] ?? null ); $classes = array( 'wp-block-latest-posts__list' ); if ( 'grid' === $layout_type ) { $classes[] = 'is-grid'; } if ( 'grid' === $layout_type && ! empty( $column_count ) ) { $classes[] = sanitize_title( 'columns-' . $column_count ); } if ( 'grid' === $layout_type && ! empty( $column_count ) && ! empty( $layout['minimumColumnWidth'] ) ) { $classes[] = 'has-native-responsive-grid'; } if ( isset( $attributes['displayPostDate'] ) && $attributes['displayPostDate'] ) { $classes[] = 'has-dates'; } if ( isset( $attributes['displayAuthor'] ) && $attributes['displayAuthor'] ) { $classes[] = 'has-author'; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<ul %1$s>%2$s</ul>', $wrapper_attributes, $list_items_markup ); } /** * Registers the `core/latest-posts` block on server. * * @since 5.0.0 */ function register_block_core_latest_posts() { register_block_type_from_metadata( __DIR__ . '/latest-posts', array( 'render_callback' => 'render_block_core_latest_posts', ) ); } add_action( 'init', 'register_block_core_latest_posts' ); /** * Handles outdated versions of the `core/latest-posts` block by converting * attribute `categories` from a numeric string to an array with key `id`. * * This is done to accommodate the changes introduced in #20781 that sought to * add support for multiple categories to the block. However, given that this * block is dynamic, the usual provisions for block migration are insufficient, * as they only act when a block is loaded in the editor. * * TODO: Remove when and if the bottom client-side deprecation for this block * is removed. * * @since 5.5.0 * * @param array $block A single parsed block object. * * @return array The migrated block object. */ function block_core_latest_posts_migrate_categories( $block ) { if ( 'core/latest-posts' === $block['blockName'] && ! empty( $block['attrs']['categories'] ) && is_string( $block['attrs']['categories'] ) ) { $block['attrs']['categories'] = array( array( 'id' => absint( $block['attrs']['categories'] ) ), ); } return $block; } add_filter( 'render_block_data', 'block_core_latest_posts_migrate_categories' ); query-pagination-numbers.php 0000775 00000011134 00000000000 0012170 0 ustar 00 <?php /** * Server-side rendering of the `core/query-pagination-numbers` block. * * @package WordPress */ /** * Renders the `core/query-pagination-numbers` block on the server. * * @since 5.8.0 * * @global WP_Query $wp_query WordPress Query object. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the pagination numbers for the Query. */ function render_block_core_query_pagination_numbers( $attributes, $content, $block ) { $page_key = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page'; $enhanced_pagination = (bool) ( $block->context['enhancedPagination'] ?? false ); $page = empty( $_GET[ $page_key ] ) ? 1 : (int) $_GET[ $page_key ]; $max_page = (int) ( $block->context['query']['pages'] ?? 0 ); $wrapper_attributes = get_block_wrapper_attributes(); $content = ''; global $wp_query; $mid_size = isset( $block->attributes['midSize'] ) ? (int) $block->attributes['midSize'] : null; if ( isset( $block->context['query']['inherit'] ) && $block->context['query']['inherit'] ) { // Take into account if we have set a bigger `max page` // than what the query has. $total = ! $max_page || $max_page > $wp_query->max_num_pages ? $wp_query->max_num_pages : $max_page; $paginate_args = array( 'prev_next' => false, 'total' => $total, ); if ( null !== $mid_size ) { $paginate_args['mid_size'] = $mid_size; } $content = paginate_links( $paginate_args ); } else { $block_query = new WP_Query( build_query_vars_from_query_block( $block, $page ) ); // `paginate_links` works with the global $wp_query, so we have to // temporarily switch it with our custom query. $prev_wp_query = $wp_query; $wp_query = $block_query; $total = ! $max_page || $max_page > $wp_query->max_num_pages ? $wp_query->max_num_pages : $max_page; $paginate_args = array( 'base' => '%_%', 'format' => "?$page_key=%#%", 'current' => max( 1, $page ), 'total' => $total, 'prev_next' => false, ); if ( null !== $mid_size ) { $paginate_args['mid_size'] = $mid_size; } if ( 1 !== $page ) { /** * `paginate_links` doesn't use the provided `format` when the page is `1`. * This is great for the main query as it removes the extra query params * making the URL shorter, but in the case of multiple custom queries is * problematic. It results in returning an empty link which ends up with * a link to the current page. * * A way to address this is to add a `fake` query arg with no value that * is the same for all custom queries. This way the link is not empty and * preserves all the other existent query args. * * @see https://developer.wordpress.org/reference/functions/paginate_links/ * * The proper fix of this should be in core. Track Ticket: * @see https://core.trac.wordpress.org/ticket/53868 * * TODO: After two WP versions (starting from the WP version the core patch landed), * we should remove this and call `paginate_links` with the proper new arg. */ $paginate_args['add_args'] = array( 'cst' => '' ); } // We still need to preserve `paged` query param if exists, as is used // for Queries that inherit from global context. $paged = empty( $_GET['paged'] ) ? null : (int) $_GET['paged']; if ( $paged ) { $paginate_args['add_args'] = array( 'paged' => $paged ); } $content = paginate_links( $paginate_args ); wp_reset_postdata(); // Restore original Post Data. $wp_query = $prev_wp_query; } if ( empty( $content ) ) { return ''; } if ( $enhanced_pagination ) { $p = new WP_HTML_Tag_Processor( $content ); $tag_index = 0; while ( $p->next_tag( array( 'class_name' => 'page-numbers' ) ) ) { if ( null === $p->get_attribute( 'data-wp-key' ) ) { $p->set_attribute( 'data-wp-key', 'index-' . $tag_index++ ); } if ( 'A' === $p->get_tag() ) { $p->set_attribute( 'data-wp-on--click', 'core/query::actions.navigate' ); } } $content = $p->get_updated_html(); } return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $content ); } /** * Registers the `core/query-pagination-numbers` block on the server. * * @since 5.8.0 */ function register_block_core_query_pagination_numbers() { register_block_type_from_metadata( __DIR__ . '/query-pagination-numbers', array( 'render_callback' => 'render_block_core_query_pagination_numbers', ) ); } add_action( 'init', 'register_block_core_query_pagination_numbers' ); audio/editor.css 0000775 00000000405 00000000000 0007612 0 ustar 00 .wp-block-audio { margin-left: 0; margin-right: 0; position: relative; } .wp-block-audio.is-transient audio { opacity: 0.3; } .wp-block-audio .components-spinner { position: absolute; top: 50%; left: 50%; margin-top: -9px; margin-left: -9px; } audio/editor.min.css 0000775 00000000325 00000000000 0010375 0 ustar 00 .wp-block-audio{margin-left:0;margin-right:0;position:relative}.wp-block-audio.is-transient audio{opacity:.3}.wp-block-audio .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%} audio/style-rtl.css 0000775 00000004122 00000000000 0010263 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-audio { box-sizing: border-box; } .wp-block-audio :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-audio audio { width: 100%; min-width: 300px; } audio/theme-rtl.min.css 0000775 00000000272 00000000000 0011011 0 ustar 00 .wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:hsla(0,0%,100%,.65)}.wp-block-audio{margin:0 0 1em} audio/editor-rtl.min.css 0000775 00000000327 00000000000 0011176 0 ustar 00 .wp-block-audio{margin-left:0;margin-right:0;position:relative}.wp-block-audio.is-transient audio{opacity:.3}.wp-block-audio .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%} audio/style.min.css 0000775 00000000234 00000000000 0010246 0 ustar 00 .wp-block-audio{box-sizing:border-box}.wp-block-audio :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-audio audio{min-width:300px;width:100%} audio/theme-rtl.css 0000775 00000004170 00000000000 0010230 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-audio :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-audio :where(figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-audio { margin: 0 0 1em 0; } audio/block.json 0000775 00000002457 00000000000 0007610 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/audio", "title": "Audio", "category": "media", "description": "Embed a simple audio player.", "keywords": [ "music", "sound", "podcast", "recording" ], "textdomain": "default", "attributes": { "blob": { "type": "string", "role": "local" }, "src": { "type": "string", "source": "attribute", "selector": "audio", "attribute": "src", "role": "content" }, "caption": { "type": "rich-text", "source": "rich-text", "selector": "figcaption", "role": "content" }, "id": { "type": "number", "role": "content" }, "autoplay": { "type": "boolean", "source": "attribute", "selector": "audio", "attribute": "autoplay" }, "loop": { "type": "boolean", "source": "attribute", "selector": "audio", "attribute": "loop" }, "preload": { "type": "string", "source": "attribute", "selector": "audio", "attribute": "preload" } }, "supports": { "anchor": true, "align": true, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-audio-editor", "style": "wp-block-audio" } audio/style-rtl.min.css 0000775 00000000234 00000000000 0011045 0 ustar 00 .wp-block-audio{box-sizing:border-box}.wp-block-audio :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-audio audio{min-width:300px;width:100%} audio/style.css 0000775 00000004122 00000000000 0007464 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-audio { box-sizing: border-box; } .wp-block-audio :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-audio audio { width: 100%; min-width: 300px; } audio/editor-rtl.css 0000775 00000000407 00000000000 0010413 0 ustar 00 .wp-block-audio { margin-right: 0; margin-left: 0; position: relative; } .wp-block-audio.is-transient audio { opacity: 0.3; } .wp-block-audio .components-spinner { position: absolute; top: 50%; right: 50%; margin-top: -9px; margin-right: -9px; } audio/theme.css 0000775 00000004170 00000000000 0007431 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-audio :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-audio :where(figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-audio { margin: 0 0 1em 0; } audio/theme.min.css 0000775 00000000272 00000000000 0010212 0 ustar 00 .wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:hsla(0,0%,100%,.65)}.wp-block-audio{margin:0 0 1em} index.php 0000775 00000011760 00000000000 0006337 0 ustar 00 <?php /** * Used to set up all core blocks used with the block editor. * * @package WordPress */ // Don't load directly. if ( ! defined( 'ABSPATH' ) ) { exit; } define( 'BLOCKS_PATH', ABSPATH . WPINC . '/blocks/' ); // Include files required for core blocks registration. require BLOCKS_PATH . 'legacy-widget.php'; require BLOCKS_PATH . 'widget-group.php'; require BLOCKS_PATH . 'require-dynamic-blocks.php'; /** * Registers core block style handles. * * While {@see register_block_style_handle()} is typically used for that, the way it is * implemented is inefficient for core block styles. Registering those style handles here * avoids unnecessary logic and filesystem lookups in the other function. * * @since 6.3.0 */ function register_core_block_style_handles() { $wp_version = wp_get_wp_version(); if ( ! wp_should_load_separate_core_block_assets() ) { return; } $blocks_url = includes_url( 'blocks/' ); $suffix = wp_scripts_get_suffix(); $wp_styles = wp_styles(); $style_fields = array( 'style' => 'style', 'editorStyle' => 'editor', ); static $core_blocks_meta; if ( ! $core_blocks_meta ) { $core_blocks_meta = require BLOCKS_PATH . 'blocks-json.php'; } $files = false; $transient_name = 'wp_core_block_css_files'; /* * Ignore transient cache when the development mode is set to 'core'. Why? To avoid interfering with * the core developer's workflow. */ $can_use_cached = ! wp_is_development_mode( 'core' ); if ( $can_use_cached ) { $cached_files = get_transient( $transient_name ); // Check the validity of cached values by checking against the current WordPress version. if ( is_array( $cached_files ) && isset( $cached_files['version'] ) && $cached_files['version'] === $wp_version && isset( $cached_files['files'] ) ) { $files = $cached_files['files']; } } if ( ! $files ) { $files = glob( wp_normalize_path( BLOCKS_PATH . '**/**.css' ) ); // Normalize BLOCKS_PATH prior to substitution for Windows environments. $normalized_blocks_path = wp_normalize_path( BLOCKS_PATH ); $files = array_map( static function ( $file ) use ( $normalized_blocks_path ) { return str_replace( $normalized_blocks_path, '', $file ); }, $files ); // Save core block style paths in cache when not in development mode. if ( $can_use_cached ) { set_transient( $transient_name, array( 'version' => $wp_version, 'files' => $files, ) ); } } $register_style = static function ( $name, $filename, $style_handle ) use ( $blocks_url, $suffix, $wp_styles, $files ) { $style_path = "{$name}/{$filename}{$suffix}.css"; $path = wp_normalize_path( BLOCKS_PATH . $style_path ); if ( ! in_array( $style_path, $files, true ) ) { $wp_styles->add( $style_handle, false ); return; } $wp_styles->add( $style_handle, $blocks_url . $style_path ); $wp_styles->add_data( $style_handle, 'path', $path ); $rtl_file = "{$name}/{$filename}-rtl{$suffix}.css"; if ( is_rtl() && in_array( $rtl_file, $files, true ) ) { $wp_styles->add_data( $style_handle, 'rtl', 'replace' ); $wp_styles->add_data( $style_handle, 'suffix', $suffix ); $wp_styles->add_data( $style_handle, 'path', str_replace( "{$suffix}.css", "-rtl{$suffix}.css", $path ) ); } }; foreach ( $core_blocks_meta as $name => $schema ) { /** This filter is documented in wp-includes/blocks.php */ $schema = apply_filters( 'block_type_metadata', $schema ); // Backfill these properties similar to `register_block_type_from_metadata()`. if ( ! isset( $schema['style'] ) ) { $schema['style'] = "wp-block-{$name}"; } if ( ! isset( $schema['editorStyle'] ) ) { $schema['editorStyle'] = "wp-block-{$name}-editor"; } // Register block theme styles. $register_style( $name, 'theme', "wp-block-{$name}-theme" ); foreach ( $style_fields as $style_field => $filename ) { $style_handle = $schema[ $style_field ]; if ( is_array( $style_handle ) ) { continue; } $register_style( $name, $filename, $style_handle ); } } } add_action( 'init', 'register_core_block_style_handles', 9 ); /** * Registers core block types using metadata files. * Dynamic core blocks are registered separately. * * @since 5.5.0 */ function register_core_block_types_from_metadata() { $block_folders = require BLOCKS_PATH . 'require-static-blocks.php'; foreach ( $block_folders as $block_folder ) { register_block_type_from_metadata( BLOCKS_PATH . $block_folder ); } } add_action( 'init', 'register_core_block_types_from_metadata' ); /** * Registers the core block metadata collection. * * This function is hooked into the 'init' action with a priority of 9, * ensuring that the core block metadata is registered before the regular * block initialization that happens at priority 10. * * @since 6.7.0 */ function wp_register_core_block_metadata_collection() { wp_register_block_metadata_collection( BLOCKS_PATH, BLOCKS_PATH . 'blocks-json.php' ); } add_action( 'init', 'wp_register_core_block_metadata_collection', 9 ); rss.php 0000775 00000011001 00000000000 0006023 0 ustar 00 <?php /** * Server-side rendering of the `core/rss` block. * * @package WordPress */ /** * Renders the `core/rss` block on server. * * @since 5.2.0 * * @param array $attributes The block attributes. * * @return string Returns the block content with received rss items. */ function render_block_core_rss( $attributes ) { if ( in_array( untrailingslashit( $attributes['feedURL'] ), array( site_url(), home_url() ), true ) ) { return '<div class="components-placeholder"><div class="notice notice-error">' . __( 'Adding an RSS feed to this site’s homepage is not supported, as it could lead to a loop that slows down your site. Try using another block, like the <strong>Latest Posts</strong> block, to list posts from the site.' ) . '</div></div>'; } $rss = fetch_feed( $attributes['feedURL'] ); if ( is_wp_error( $rss ) ) { return '<div class="components-placeholder"><div class="notice notice-error"><strong>' . __( 'RSS Error:' ) . '</strong> ' . esc_html( $rss->get_error_message() ) . '</div></div>'; } if ( ! $rss->get_item_quantity() ) { 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 = ''; $open_in_new_tab = ! empty( $attributes['openInNewTab'] ); $rel = ! empty( $attributes['rel'] ) ? trim( $attributes['rel'] ) : ''; $link_attributes = ''; if ( $open_in_new_tab ) { $link_attributes .= ' target="_blank"'; } if ( '' !== $rel ) { $link_attributes .= ' rel="' . esc_attr( $rel ) . '"'; } foreach ( $rss_items as $item ) { $title = esc_html( trim( strip_tags( html_entity_decode( $item->get_title() ) ) ) ); if ( empty( $title ) ) { $title = __( '(no title)' ); } $link = $item->get_link(); $link = esc_url( $link ); if ( $link ) { $title = "<a href='{$link}'{$link_attributes}>{$title}</a>"; } $title = "<div class='wp-block-rss__item-title'>{$title}</div>"; $date_markup = ''; if ( ! empty( $attributes['displayDate'] ) ) { $timestamp = $item->get_date( 'U' ); if ( $timestamp ) { $gmt_offset = get_option( 'gmt_offset' ); $timestamp += (int) ( (float) $gmt_offset * HOUR_IN_SECONDS ); $date_markup = sprintf( '<time datetime="%1$s" class="wp-block-rss__item-publish-date">%2$s</time> ', esc_attr( date_i18n( 'c', $timestamp ) ), esc_html( date_i18n( get_option( 'date_format' ), $timestamp ) ) ); } } $author = ''; if ( $attributes['displayAuthor'] ) { $author = $item->get_author(); if ( is_object( $author ) ) { $author = $author->get_name(); if ( ! empty( $author ) ) { $author = '<span class="wp-block-rss__item-author">' . sprintf( /* translators: byline. %s: author. */ __( 'by %s' ), esc_html( strip_tags( $author ) ) ) . '</span>'; } } } $excerpt = ''; $description = $item->get_description(); if ( $attributes['displayExcerpt'] && ! empty( $description ) ) { $excerpt = html_entity_decode( $description, ENT_QUOTES, get_option( 'blog_charset' ) ); $excerpt = esc_attr( wp_trim_words( $excerpt, $attributes['excerptLength'], ' […]' ) ); // Change existing [...] to […]. if ( str_ends_with( $excerpt, '[...]' ) ) { $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_markup}{$author}{$excerpt}</li>"; } $classnames = array(); if ( isset( $attributes['blockLayout'] ) && 'grid' === $attributes['blockLayout'] ) { $classnames[] = 'is-grid'; } if ( isset( $attributes['columns'] ) && 'grid' === $attributes['blockLayout'] ) { $classnames[] = 'columns-' . $attributes['columns']; } if ( $attributes['displayDate'] ) { $classnames[] = 'has-dates'; } if ( $attributes['displayAuthor'] ) { $classnames[] = 'has-authors'; } if ( $attributes['displayExcerpt'] ) { $classnames[] = 'has-excerpts'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classnames ) ) ); return sprintf( '<ul %s>%s</ul>', $wrapper_attributes, $list_items ); } /** * Registers the `core/rss` block on server. * * @since 5.2.0 */ function register_block_core_rss() { register_block_type_from_metadata( __DIR__ . '/rss', array( 'render_callback' => 'render_block_core_rss', ) ); } add_action( 'init', 'register_block_core_rss' ); term-description/style-rtl.css 0000775 00000000340 00000000000 0012450 0 ustar 00 :where(.wp-block-term-description) { box-sizing: border-box; margin-top: var(--wp--style--block-gap); margin-bottom: var(--wp--style--block-gap); } .wp-block-term-description p { margin-top: 0; margin-bottom: 0; } term-description/style.min.css 0000775 00000000304 00000000000 0012433 0 ustar 00 :where(.wp-block-term-description){box-sizing:border-box;margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-term-description p{margin-bottom:0;margin-top:0} term-description/block.json 0000775 00000002360 00000000000 0011770 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/term-description", "title": "Term Description", "category": "theme", "description": "Display the description of categories, tags and custom taxonomies when viewing an archive.", "textdomain": "default", "usesContext": [ "termId", "taxonomy" ], "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "padding": true, "margin": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } } } term-description/style-rtl.min.css 0000775 00000000304 00000000000 0013232 0 ustar 00 :where(.wp-block-term-description){box-sizing:border-box;margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-term-description p{margin-bottom:0;margin-top:0} term-description/style.css 0000775 00000000340 00000000000 0011651 0 ustar 00 :where(.wp-block-term-description) { box-sizing: border-box; margin-top: var(--wp--style--block-gap); margin-bottom: var(--wp--style--block-gap); } .wp-block-term-description p { margin-top: 0; margin-bottom: 0; } query-no-results.php 0000775 00000003467 00000000000 0010513 0 ustar 00 <?php /** * Server-side rendering of the `core/query-no-results` block. * * @package WordPress */ /** * Renders the `core/query-no-results` block on the server. * * @since 6.0.0 * * @global WP_Query $wp_query WordPress Query object. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the wrapper for the no results block. */ function render_block_core_query_no_results( $attributes, $content, $block ) { if ( empty( trim( $content ) ) ) { return ''; } $page_key = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page'; $page = empty( $_GET[ $page_key ] ) ? 1 : (int) $_GET[ $page_key ]; // Override the custom query with the global query if needed. $use_global_query = ( isset( $block->context['query']['inherit'] ) && $block->context['query']['inherit'] ); if ( $use_global_query ) { global $wp_query; $query = $wp_query; } else { $query_args = build_query_vars_from_query_block( $block, $page ); $query = new WP_Query( $query_args ); } if ( $query->post_count > 0 ) { return ''; } $classes = ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) ? 'has-link-color' : ''; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $content ); } /** * Registers the `core/query-no-results` block on the server. * * @since 6.0.0 */ function register_block_core_query_no_results() { register_block_type_from_metadata( __DIR__ . '/query-no-results', array( 'render_callback' => 'render_block_core_query_no_results', ) ); } add_action( 'init', 'register_block_core_query_no_results' ); term-count/style-rtl.css 0000775 00000000062 00000000000 0011256 0 ustar 00 .wp-block-term-count { box-sizing: border-box; } term-count/style.min.css 0000775 00000000053 00000000000 0011241 0 ustar 00 .wp-block-term-count{box-sizing:border-box} term-count/block.json 0000775 00000002422 00000000000 0010574 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/term-count", "title": "Term Count", "category": "theme", "description": "Displays the post count of a taxonomy term.", "textdomain": "default", "usesContext": [ "termId", "taxonomy" ], "attributes": { "bracketType": { "type": "string", "enum": [ "none", "round", "square", "curly", "angle" ], "default": "round" } }, "supports": { "anchor": true, "html": false, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "color": true, "width": true, "style": true } } }, "style": "wp-block-term-count" } term-count/style-rtl.min.css 0000775 00000000053 00000000000 0012040 0 ustar 00 .wp-block-term-count{box-sizing:border-box} term-count/style.css 0000775 00000000062 00000000000 0010457 0 ustar 00 .wp-block-term-count { box-sizing: border-box; } post-featured-image.php 0000775 00000022354 00000000000 0011073 0 ustar 00 <?php /** * Server-side rendering of the `core/post-featured-image` block. * * @package WordPress */ /** * Renders the `core/post-featured-image` block on the server. * * @since 5.8.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the featured image for the current post. */ function render_block_core_post_featured_image( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { return ''; } $post_ID = $block->context['postId']; $is_link = isset( $attributes['isLink'] ) && $attributes['isLink']; $size_slug = $attributes['sizeSlug'] ?? 'post-thumbnail'; $attr = get_block_core_post_featured_image_border_attributes( $attributes ); $overlay_markup = get_block_core_post_featured_image_overlay_element_markup( $attributes ); if ( $is_link ) { $title = get_the_title( $post_ID ); if ( $title ) { $attr['alt'] = trim( strip_tags( $title ) ); } else { $attr['alt'] = sprintf( // translators: %d is the post ID. __( 'Untitled post %d' ), $post_ID ); } } $extra_styles = ''; $has_width = array_key_exists( 'width', $attributes ) && null !== $attributes['width'] && '' !== $attributes['width']; $has_height = array_key_exists( 'height', $attributes ) && null !== $attributes['height'] && '' !== $attributes['height']; if ( ! empty( $attributes['aspectRatio'] ) ) { // If there's no non-default value set, let the image's width and height attributes determine its intrinsic aspect ratio. if ( 'auto' !== $attributes['aspectRatio'] ) { $extra_styles .= esc_attr( safecss_filter_attr( 'aspect-ratio:' . $attributes['aspectRatio'] ) ) . ';'; } $extra_styles .= 'width:100%;'; } if ( $has_height ) { $extra_styles .= esc_attr( safecss_filter_attr( 'height:' . $attributes['height'] ) ) . ';'; } elseif ( $has_width ) { $extra_styles .= 'height:auto;'; } if ( $has_width ) { $extra_styles .= esc_attr( safecss_filter_attr( 'width:' . $attributes['width'] ) ) . ';'; } if ( ! empty( $attributes['scale'] ) ) { $extra_styles .= esc_attr( safecss_filter_attr( 'object-fit:' . $attributes['scale'] ) ) . ';'; } if ( ! empty( $attributes['style']['shadow'] ) ) { $shadow_styles = wp_style_engine_get_styles( array( 'shadow' => $attributes['style']['shadow'] ) ); if ( ! empty( $shadow_styles['css'] ) ) { $extra_styles .= $shadow_styles['css']; } } if ( ! empty( $extra_styles ) ) { $attr['style'] = empty( $attr['style'] ) ? $extra_styles : $attr['style'] . $extra_styles; } $featured_image = get_the_post_thumbnail( $post_ID, $size_slug, $attr ); // Get the first image from the post. if ( $attributes['useFirstImageFromPost'] && ! $featured_image ) { $content_post = get_post( $post_ID ); $content = $content_post->post_content; $processor = new WP_HTML_Tag_Processor( $content ); /* * Transfer the image tag from the post into a new text snippet. * Because the HTML API doesn't currently expose a way to extract * HTML substrings this is necessary as a workaround. Of note, this * is different than directly extracting the IMG tag: * - If there are duplicate attributes in the source there will only be one in the output. * - If there are single-quoted or unquoted attributes they will be double-quoted in the output. * - If there are named character references in the attribute values they may be replaced with their direct code points. E.g. `…` becomes `…`. * In the future there will likely be a mechanism to copy snippets of HTML from * one document into another, via the HTML Processor's `get_outer_html()` or * equivalent. When that happens it would be appropriate to replace this custom * code with that canonical code. */ if ( $processor->next_tag( 'img' ) ) { $tag_html = new WP_HTML_Tag_Processor( '<img>' ); $tag_html->next_tag(); foreach ( $processor->get_attribute_names_with_prefix( '' ) as $name ) { $tag_html->set_attribute( $name, $processor->get_attribute( $name ) ); } if ( ! empty( $attr['style'] ) ) { $existing_style = $tag_html->get_attribute( 'style' ); $style = is_string( $existing_style ) && '' !== $existing_style ? rtrim( $existing_style, ';' ) . ';' . $attr['style'] : $attr['style']; $tag_html->set_attribute( 'style', $style ); } $featured_image = $tag_html->get_updated_html(); } } if ( ! $featured_image ) { return ''; } if ( $is_link ) { $link_target = $attributes['linkTarget']; $rel = ! empty( $attributes['rel'] ) ? 'rel="' . esc_attr( $attributes['rel'] ) . '"' : ''; $featured_image = sprintf( '<a href="%1$s" target="%2$s" %3$s>%4$s%5$s</a>', esc_url( get_the_permalink( $post_ID ) ), esc_attr( $link_target ), $rel, $featured_image, $overlay_markup ); } else { $featured_image = $featured_image . $overlay_markup; } $wrapper_attributes = get_block_wrapper_attributes(); return "<figure {$wrapper_attributes}>{$featured_image}</figure>"; } /** * Generate markup for the HTML element that will be used for the overlay. * * @since 6.1.0 * * @param array $attributes Block attributes. * * @return string HTML markup in string format. */ function get_block_core_post_featured_image_overlay_element_markup( $attributes ) { $has_dim_background = isset( $attributes['dimRatio'] ) && $attributes['dimRatio']; $has_gradient = isset( $attributes['gradient'] ) && $attributes['gradient']; $has_custom_gradient = isset( $attributes['customGradient'] ) && $attributes['customGradient']; $has_solid_overlay = isset( $attributes['overlayColor'] ) && $attributes['overlayColor']; $has_custom_overlay = isset( $attributes['customOverlayColor'] ) && $attributes['customOverlayColor']; $class_names = array( 'wp-block-post-featured-image__overlay' ); $styles = array(); if ( ! $has_dim_background ) { return ''; } // Apply border classes and styles. $border_attributes = get_block_core_post_featured_image_border_attributes( $attributes ); if ( ! empty( $border_attributes['class'] ) ) { $class_names[] = $border_attributes['class']; } if ( ! empty( $border_attributes['style'] ) ) { $styles[] = $border_attributes['style']; } // Apply overlay and gradient classes. $class_names[] = 'has-background-dim'; $class_names[] = "has-background-dim-{$attributes['dimRatio']}"; if ( $has_solid_overlay ) { $class_names[] = "has-{$attributes['overlayColor']}-background-color"; } if ( $has_gradient || $has_custom_gradient ) { $class_names[] = 'has-background-gradient'; } if ( $has_gradient ) { $class_names[] = "has-{$attributes['gradient']}-gradient-background"; } // Apply background styles. if ( $has_custom_gradient ) { $styles[] = sprintf( 'background-image: %s;', $attributes['customGradient'] ); } if ( $has_custom_overlay ) { $styles[] = sprintf( 'background-color: %s;', $attributes['customOverlayColor'] ); } return sprintf( '<span class="%s" style="%s" aria-hidden="true"></span>', esc_attr( implode( ' ', $class_names ) ), esc_attr( safecss_filter_attr( implode( ' ', $styles ) ) ) ); } /** * Generates class names and styles to apply the border support styles for * the Post Featured Image block. * * @since 6.1.0 * * @param array $attributes The block attributes. * @return array The border-related classnames and styles for the block. */ function get_block_core_post_featured_image_border_attributes( $attributes ) { $border_styles = array(); $sides = array( 'top', 'right', 'bottom', 'left' ); // Border radius. if ( isset( $attributes['style']['border']['radius'] ) ) { $border_styles['radius'] = $attributes['style']['border']['radius']; } // Border style. if ( isset( $attributes['style']['border']['style'] ) ) { $border_styles['style'] = $attributes['style']['border']['style']; } // Border width. if ( isset( $attributes['style']['border']['width'] ) ) { $border_styles['width'] = $attributes['style']['border']['width']; } // Border color. $preset_color = array_key_exists( 'borderColor', $attributes ) ? "var:preset|color|{$attributes['borderColor']}" : null; $custom_color = $attributes['style']['border']['color'] ?? null; $border_styles['color'] = $preset_color ? $preset_color : $custom_color; // Individual border styles e.g. top, left etc. foreach ( $sides as $side ) { $border = $attributes['style']['border'][ $side ] ?? null; $border_styles[ $side ] = array( 'color' => $border['color'] ?? null, 'style' => $border['style'] ?? null, 'width' => $border['width'] ?? null, ); } $styles = wp_style_engine_get_styles( array( 'border' => $border_styles ) ); $attributes = array(); if ( ! empty( $styles['classnames'] ) ) { $attributes['class'] = $styles['classnames']; } if ( ! empty( $styles['css'] ) ) { $attributes['style'] = $styles['css']; } return $attributes; } /** * Registers the `core/post-featured-image` block on the server. * * @since 5.8.0 */ function register_block_core_post_featured_image() { register_block_type_from_metadata( __DIR__ . '/post-featured-image', array( 'render_callback' => 'render_block_core_post_featured_image', ) ); } add_action( 'init', 'register_block_core_post_featured_image' ); shortcode/editor.css 0000775 00000005075 00000000000 0010513 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .blocks-shortcode__textarea { box-sizing: border-box; max-height: 250px; resize: none; font-family: Menlo, Consolas, monaco, monospace !important; color: #1e1e1e !important; background: #fff !important; padding: 12px !important; border: 1px solid #1e1e1e !important; box-shadow: none !important; border-radius: 2px !important; font-size: 16px !important; } @media (min-width: 600px) { .blocks-shortcode__textarea { font-size: 13px !important; } } .blocks-shortcode__textarea:focus { border-color: var(--wp-admin-theme-color) !important; box-shadow: 0 0 0 1px var(--wp-admin-theme-color) !important; outline: 2px solid transparent !important; } shortcode/editor.min.css 0000775 00000001107 00000000000 0011265 0 ustar 00 .blocks-shortcode__textarea{background:#fff!important;border:1px solid #1e1e1e!important;border-radius:2px!important;box-shadow:none!important;box-sizing:border-box;color:#1e1e1e!important;font-family:Menlo,Consolas,monaco,monospace!important;font-size:16px!important;max-height:250px;padding:12px!important;resize:none}@media (min-width:600px){.blocks-shortcode__textarea{font-size:13px!important}}.blocks-shortcode__textarea:focus{border-color:var(--wp-admin-theme-color)!important;box-shadow:0 0 0 1px var(--wp-admin-theme-color)!important;outline:2px solid transparent!important} shortcode/editor-rtl.min.css 0000775 00000001107 00000000000 0012064 0 ustar 00 .blocks-shortcode__textarea{background:#fff!important;border:1px solid #1e1e1e!important;border-radius:2px!important;box-shadow:none!important;box-sizing:border-box;color:#1e1e1e!important;font-family:Menlo,Consolas,monaco,monospace!important;font-size:16px!important;max-height:250px;padding:12px!important;resize:none}@media (min-width:600px){.blocks-shortcode__textarea{font-size:13px!important}}.blocks-shortcode__textarea:focus{border-color:var(--wp-admin-theme-color)!important;box-shadow:0 0 0 1px var(--wp-admin-theme-color)!important;outline:2px solid transparent!important} shortcode/block.json 0000775 00000001023 00000000000 0010465 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/shortcode", "title": "Shortcode", "category": "widgets", "description": "Insert additional custom elements with a WordPress shortcode.", "textdomain": "default", "attributes": { "text": { "type": "string", "source": "raw", "role": "content" } }, "supports": { "className": false, "customClassName": false, "html": false, "customCSS": false, "visibility": false }, "editorStyle": "wp-block-shortcode-editor" } shortcode/editor-rtl.css 0000775 00000005075 00000000000 0011312 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .blocks-shortcode__textarea { box-sizing: border-box; max-height: 250px; resize: none; font-family: Menlo, Consolas, monaco, monospace !important; color: #1e1e1e !important; background: #fff !important; padding: 12px !important; border: 1px solid #1e1e1e !important; box-shadow: none !important; border-radius: 2px !important; font-size: 16px !important; } @media (min-width: 600px) { .blocks-shortcode__textarea { font-size: 13px !important; } } .blocks-shortcode__textarea:focus { border-color: var(--wp-admin-theme-color) !important; box-shadow: 0 0 0 1px var(--wp-admin-theme-color) !important; outline: 2px solid transparent !important; } home-link.php 0000775 00000011137 00000000000 0007111 0 ustar 00 <?php /** * Server-side rendering of the `core/home-link` block. * * @package WordPress */ /** * Build an array with CSS classes and inline styles defining the colors * which will be applied to the home link markup in the front-end. * * @since 6.0.0 * * @param array $context home link block context. * @return array Colors CSS classes and inline styles. */ function block_core_home_link_build_css_colors( $context ) { $colors = array( 'css_classes' => array(), 'inline_styles' => '', ); // Text color. $has_named_text_color = array_key_exists( 'textColor', $context ); $has_custom_text_color = isset( $context['style']['color']['text'] ); // If has text color. if ( $has_custom_text_color || $has_named_text_color ) { // Add has-text-color class. $colors['css_classes'][] = 'has-text-color'; } if ( $has_named_text_color ) { // Add the color class. $colors['css_classes'][] = sprintf( 'has-%s-color', $context['textColor'] ); } elseif ( $has_custom_text_color ) { // Add the custom color inline style. $colors['inline_styles'] .= sprintf( 'color: %s;', $context['style']['color']['text'] ); } // Background color. $has_named_background_color = array_key_exists( 'backgroundColor', $context ); $has_custom_background_color = isset( $context['style']['color']['background'] ); // If has background color. if ( $has_custom_background_color || $has_named_background_color ) { // Add has-background class. $colors['css_classes'][] = 'has-background'; } if ( $has_named_background_color ) { // Add the background-color class. $colors['css_classes'][] = sprintf( 'has-%s-background-color', $context['backgroundColor'] ); } elseif ( $has_custom_background_color ) { // Add the custom background-color inline style. $colors['inline_styles'] .= sprintf( 'background-color: %s;', $context['style']['color']['background'] ); } return $colors; } /** * Builds an array with classes and style for the li wrapper * * @since 6.0.0 * * @param array $context Home link block context. * @return string The li wrapper attributes. */ function block_core_home_link_build_li_wrapper_attributes( $context ) { $colors = block_core_home_link_build_css_colors( $context ); $classes = array_merge( $colors['css_classes'] ); $style_attribute = $colors['inline_styles']; $classes[] = 'wp-block-navigation-item'; if ( is_front_page() ) { $classes[] = 'current-menu-item'; } elseif ( is_home() && ( (int) get_option( 'page_for_posts' ) !== get_queried_object_id() ) ) { // Edge case where the Reading settings has a posts page set but not a static homepage. $classes[] = 'current-menu-item'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ), 'style' => $style_attribute, ) ); return $wrapper_attributes; } /** * Renders the `core/home-link` block. * * @since 6.0.0 * * @param array $attributes The block attributes. * @param string $content The saved content. * @param WP_Block $block The parsed block. * * @return string Returns the post content with the home url added. */ function render_block_core_home_link( $attributes, $content, $block ) { if ( empty( $attributes['label'] ) ) { $attributes['label'] = __( 'Home' ); } $aria_current = ''; if ( is_front_page() ) { $aria_current = ' aria-current="page"'; } elseif ( is_home() && ( (int) get_option( 'page_for_posts' ) !== get_queried_object_id() ) ) { // Edge case where the Reading settings has a posts page set but not a static homepage. $aria_current = ' aria-current="page"'; } $target = ''; if ( isset( $attributes['opensInNewTab'] ) && true === $attributes['opensInNewTab'] ) { $target = ' target="_blank"'; } $description = ''; if ( ! empty( $attributes['description'] ) ) { $description = '<span class="wp-block-navigation-item__description">' . wp_kses_post( $attributes['description'] ) . '</span>'; } return sprintf( '<li %1$s><a class="wp-block-home-link__content wp-block-navigation-item__content" href="%2$s" rel="home" %3$s%4$s>%5$s%6$s</a></li>', block_core_home_link_build_li_wrapper_attributes( $block->context ), esc_url( home_url() ), $target, $aria_current, wp_kses_post( $attributes['label'] ), $description ); } /** * Register the home block * * @since 6.0.0 * * @uses render_block_core_home_link() * @throws WP_Error An WP_Error exception parsing the block definition. */ function register_block_core_home_link() { register_block_type_from_metadata( __DIR__ . '/home-link', array( 'render_callback' => 'render_block_core_home_link', ) ); } add_action( 'init', 'register_block_core_home_link' ); latest-comments/style-rtl.css 0000775 00000002637 00000000000 0012312 0 ustar 00 :where(.wp-block-latest-comments) { padding-right: 0; } ol.wp-block-latest-comments { margin-right: 0; box-sizing: border-box; } :where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment)) { line-height: 1.1; } :where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment-excerpt p)) { line-height: 1.8; } .has-dates :where(.wp-block-latest-comments:not([style*=line-height])), .has-excerpts :where(.wp-block-latest-comments:not([style*=line-height])) { line-height: 1.5; } .wp-block-latest-comments__comment { list-style: none; margin-bottom: 1em; } .has-avatars .wp-block-latest-comments__comment { min-height: 2.25em; list-style: none; } .has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta, .has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt { margin-right: 3.25em; } .wp-block-latest-comments__comment-excerpt p { font-size: 0.875em; margin: 0.36em 0 1.4em; } .wp-block-latest-comments__comment-date { display: block; font-size: 0.75em; } .wp-block-latest-comments .avatar, .wp-block-latest-comments__comment-avatar { border-radius: 1.5em; display: block; float: right; height: 2.5em; margin-left: 0.75em; width: 2.5em; } .wp-block-latest-comments[style*=font-size] a, .wp-block-latest-comments[class*=-font-size] a { font-size: inherit; } latest-comments/style.min.css 0000775 00000002404 00000000000 0012265 0 ustar 00 :where(.wp-block-latest-comments){padding-left:0}ol.wp-block-latest-comments{box-sizing:border-box;margin-left:0}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment)){line-height:1.1}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment-excerpt p)){line-height:1.8}.has-dates :where(.wp-block-latest-comments:not([style*=line-height])),.has-excerpts :where(.wp-block-latest-comments:not([style*=line-height])){line-height:1.5}.wp-block-latest-comments__comment{list-style:none;margin-bottom:1em}.has-avatars .wp-block-latest-comments__comment{list-style:none;min-height:2.25em}.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt,.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta{margin-left:3.25em}.wp-block-latest-comments__comment-excerpt p{font-size:.875em;margin:.36em 0 1.4em}.wp-block-latest-comments__comment-date{display:block;font-size:.75em}.wp-block-latest-comments .avatar,.wp-block-latest-comments__comment-avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;width:2.5em}.wp-block-latest-comments[class*=-font-size] a,.wp-block-latest-comments[style*=font-size] a{font-size:inherit} latest-comments/block.json 0000775 00000002563 00000000000 0011624 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/latest-comments", "title": "Latest Comments", "category": "widgets", "description": "Display a list of your most recent comments.", "keywords": [ "recent comments" ], "textdomain": "default", "attributes": { "commentsToShow": { "type": "number", "default": 5, "minimum": 1, "maximum": 100 }, "displayAvatar": { "type": "boolean", "default": true }, "displayDate": { "type": "boolean", "default": true }, "displayContent": { "type": "string", "default": "excerpt", "enum": [ "none", "excerpt", "full" ] } }, "supports": { "anchor": true, "align": true, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "html": false, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-latest-comments" } latest-comments/style-rtl.min.css 0000775 00000002407 00000000000 0013067 0 ustar 00 :where(.wp-block-latest-comments){padding-right:0}ol.wp-block-latest-comments{box-sizing:border-box;margin-right:0}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment)){line-height:1.1}:where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment-excerpt p)){line-height:1.8}.has-dates :where(.wp-block-latest-comments:not([style*=line-height])),.has-excerpts :where(.wp-block-latest-comments:not([style*=line-height])){line-height:1.5}.wp-block-latest-comments__comment{list-style:none;margin-bottom:1em}.has-avatars .wp-block-latest-comments__comment{list-style:none;min-height:2.25em}.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt,.has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta{margin-right:3.25em}.wp-block-latest-comments__comment-excerpt p{font-size:.875em;margin:.36em 0 1.4em}.wp-block-latest-comments__comment-date{display:block;font-size:.75em}.wp-block-latest-comments .avatar,.wp-block-latest-comments__comment-avatar{border-radius:1.5em;display:block;float:right;height:2.5em;margin-left:.75em;width:2.5em}.wp-block-latest-comments[class*=-font-size] a,.wp-block-latest-comments[style*=font-size] a{font-size:inherit} latest-comments/style.css 0000775 00000002634 00000000000 0011510 0 ustar 00 :where(.wp-block-latest-comments) { padding-left: 0; } ol.wp-block-latest-comments { margin-left: 0; box-sizing: border-box; } :where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment)) { line-height: 1.1; } :where(.wp-block-latest-comments:not([style*=line-height] .wp-block-latest-comments__comment-excerpt p)) { line-height: 1.8; } .has-dates :where(.wp-block-latest-comments:not([style*=line-height])), .has-excerpts :where(.wp-block-latest-comments:not([style*=line-height])) { line-height: 1.5; } .wp-block-latest-comments__comment { list-style: none; margin-bottom: 1em; } .has-avatars .wp-block-latest-comments__comment { min-height: 2.25em; list-style: none; } .has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-meta, .has-avatars .wp-block-latest-comments__comment .wp-block-latest-comments__comment-excerpt { margin-left: 3.25em; } .wp-block-latest-comments__comment-excerpt p { font-size: 0.875em; margin: 0.36em 0 1.4em; } .wp-block-latest-comments__comment-date { display: block; font-size: 0.75em; } .wp-block-latest-comments .avatar, .wp-block-latest-comments__comment-avatar { border-radius: 1.5em; display: block; float: left; height: 2.5em; margin-right: 0.75em; width: 2.5em; } .wp-block-latest-comments[style*=font-size] a, .wp-block-latest-comments[class*=-font-size] a { font-size: inherit; } navigation-overlay-close.php 0000775 00000003345 00000000000 0012151 0 ustar 00 <?php /** * Server-side registering of the `core/navigation-overlay-close` block. * * @package WordPress */ /** * Renders the `core/navigation-overlay-close` block on server. * * @since 7.0.0 * * @param array $attributes The block attributes. * * @return string Returns the block content. */ function render_block_core_navigation_overlay_close( $attributes ) { $text = empty( $attributes['text'] ) ? __( 'Close' ) : $attributes['text']; $display_mode = empty( $attributes['displayMode'] ) ? 'icon' : $attributes['displayMode']; $show_icon = 'both' === $display_mode || 'icon' === $display_mode; $show_text = 'both' === $display_mode || 'text' === $display_mode; $button_text = ''; if ( $show_icon ) { $button_text .= '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" focusable="false"><path d="M13 11.8l6.1-6.3-1.1-1-6.1 6.2-6.1-6.2-1.1 1 6.1 6.3-6.5 6.7 1.1 1 6.5-6.6 6.5 6.6 1.1-1z" /></svg>'; } if ( $show_text ) { $button_text .= '<span class="wp-block-navigation-overlay-close__text">' . wp_kses_post( $text ) . '</span>'; } $wrapper_attributes = get_block_wrapper_attributes(); $html_content = sprintf( '<button %1$s type="button" %2$s >%3$s</button>', $wrapper_attributes, ! $show_text ? 'aria-label="' . __( 'Close' ) . '"' : '', $button_text ); return $html_content; } /** * Registers the navigation overlay close block. * * @since 7.0.0 */ function register_block_core_navigation_overlay_close() { register_block_type_from_metadata( __DIR__ . '/navigation-overlay-close', array( 'render_callback' => 'render_block_core_navigation_overlay_close', ) ); } add_action( 'init', 'register_block_core_navigation_overlay_close' ); html/editor.css 0000775 00000006474 00000000000 0007471 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-library-html__edit .block-library-html__preview-overlay { position: absolute; width: 100%; height: 100%; top: 0; left: 0; } .block-library-html__edit-code { margin: 16px; } .block-library-html__edit-code .block-library-html__edit-code-button { justify-content: center; } @media (min-width: 600px) { .block-library-html__modal:not(.is-full-screen) { height: 9999rem; } } .block-library-html__modal .components-modal__children-container { height: 100%; } .block-library-html__modal-tabs { flex: 1; } .block-library-html__modal-content { flex: 1; } .block-library-html__modal-tab { height: 100%; display: flex; flex-direction: column; margin: 0; box-sizing: border-box; border: 1px solid #e0e0e0; border-radius: 2px; padding: 16px; font-family: Menlo, Consolas, monaco, monospace; } .block-library-html__modal-editor { width: 100%; height: 100%; flex: 1; border: none; background: transparent; padding: 0; font-family: inherit; font-size: inherit; line-height: inherit; color: inherit; resize: none; /*rtl:ignore*/ direction: ltr; overflow-x: auto; box-sizing: border-box; } .block-library-html__modal-editor:focus { outline: none; box-shadow: none; } .block-library-html__preview { display: flex; align-items: center; justify-content: center; min-height: 0; overflow-y: auto; flex: 1; } .block-library-html__preview iframe { height: 100%; } html/editor.min.css 0000775 00000002237 00000000000 0010244 0 ustar 00 .block-library-html__edit .block-library-html__preview-overlay{height:100%;left:0;position:absolute;top:0;width:100%}.block-library-html__edit-code{margin:16px}.block-library-html__edit-code .block-library-html__edit-code-button{justify-content:center}@media (min-width:600px){.block-library-html__modal:not(.is-full-screen){height:9999rem}}.block-library-html__modal .components-modal__children-container{height:100%}.block-library-html__modal-content,.block-library-html__modal-tabs{flex:1}.block-library-html__modal-tab{border:1px solid #e0e0e0;border-radius:2px;box-sizing:border-box;display:flex;flex-direction:column;font-family:Menlo,Consolas,monaco,monospace;height:100%;margin:0;padding:16px}.block-library-html__modal-editor{background:transparent;border:none;box-sizing:border-box;color:inherit;direction:ltr;flex:1;font-family:inherit;font-size:inherit;height:100%;line-height:inherit;overflow-x:auto;padding:0;resize:none;width:100%}.block-library-html__modal-editor:focus{box-shadow:none;outline:none}.block-library-html__preview{align-items:center;display:flex;flex:1;justify-content:center;min-height:0;overflow-y:auto}.block-library-html__preview iframe{height:100%} html/editor-rtl.min.css 0000775 00000002240 00000000000 0011035 0 ustar 00 .block-library-html__edit .block-library-html__preview-overlay{height:100%;position:absolute;right:0;top:0;width:100%}.block-library-html__edit-code{margin:16px}.block-library-html__edit-code .block-library-html__edit-code-button{justify-content:center}@media (min-width:600px){.block-library-html__modal:not(.is-full-screen){height:9999rem}}.block-library-html__modal .components-modal__children-container{height:100%}.block-library-html__modal-content,.block-library-html__modal-tabs{flex:1}.block-library-html__modal-tab{border:1px solid #e0e0e0;border-radius:2px;box-sizing:border-box;display:flex;flex-direction:column;font-family:Menlo,Consolas,monaco,monospace;height:100%;margin:0;padding:16px}.block-library-html__modal-editor{background:transparent;border:none;box-sizing:border-box;color:inherit;direction:ltr;flex:1;font-family:inherit;font-size:inherit;height:100%;line-height:inherit;overflow-x:auto;padding:0;resize:none;width:100%}.block-library-html__modal-editor:focus{box-shadow:none;outline:none}.block-library-html__preview{align-items:center;display:flex;flex:1;justify-content:center;min-height:0;overflow-y:auto}.block-library-html__preview iframe{height:100%} html/block.json 0000775 00000001117 00000000000 0007443 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/html", "title": "Custom HTML", "category": "widgets", "description": "Add custom HTML code and preview it as you edit.", "keywords": [ "embed" ], "textdomain": "default", "attributes": { "content": { "type": "string", "role": "local" } }, "supports": { "customClassName": false, "className": false, "html": false, "interactivity": { "clientNavigation": true }, "listView": true, "customCSS": false, "visibility": false }, "editorStyle": "wp-block-html-editor" } html/editor-rtl.css 0000775 00000006454 00000000000 0010266 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-library-html__edit .block-library-html__preview-overlay { position: absolute; width: 100%; height: 100%; top: 0; right: 0; } .block-library-html__edit-code { margin: 16px; } .block-library-html__edit-code .block-library-html__edit-code-button { justify-content: center; } @media (min-width: 600px) { .block-library-html__modal:not(.is-full-screen) { height: 9999rem; } } .block-library-html__modal .components-modal__children-container { height: 100%; } .block-library-html__modal-tabs { flex: 1; } .block-library-html__modal-content { flex: 1; } .block-library-html__modal-tab { height: 100%; display: flex; flex-direction: column; margin: 0; box-sizing: border-box; border: 1px solid #e0e0e0; border-radius: 2px; padding: 16px; font-family: Menlo, Consolas, monaco, monospace; } .block-library-html__modal-editor { width: 100%; height: 100%; flex: 1; border: none; background: transparent; padding: 0; font-family: inherit; font-size: inherit; line-height: inherit; color: inherit; resize: none; direction: ltr; overflow-x: auto; box-sizing: border-box; } .block-library-html__modal-editor:focus { outline: none; box-shadow: none; } .block-library-html__preview { display: flex; align-items: center; justify-content: center; min-height: 0; overflow-y: auto; flex: 1; } .block-library-html__preview iframe { height: 100%; } embed/editor.css 0000775 00000001532 00000000000 0007567 0 ustar 00 /** * Breakpoints & Media Queries */ .wp-block-embed { margin-left: 0; margin-right: 0; clear: both; } .wp-block-embed.is-loading { display: flex; justify-content: center; } .wp-block-embed .wp-block-embed__placeholder-input { flex: 1 1 auto; } .wp-block-embed .components-placeholder__error { word-break: break-word; } .wp-block-post-content .wp-block-embed__learn-more a { color: var(--wp-admin-theme-color); } .block-library-embed__interactive-overlay { position: absolute; top: 0; left: 0; right: 0; bottom: 0; opacity: 0; } .wp-block[data-align=left] > .wp-block-embed, .wp-block[data-align=right] > .wp-block-embed { max-width: 360px; width: 100%; } .wp-block[data-align=left] > .wp-block-embed .wp-block-embed__wrapper, .wp-block[data-align=right] > .wp-block-embed .wp-block-embed__wrapper { min-width: 280px; } embed/editor.min.css 0000775 00000001303 00000000000 0010345 0 ustar 00 .wp-block-embed{clear:both;margin-left:0;margin-right:0}.wp-block-embed.is-loading{display:flex;justify-content:center}.wp-block-embed .wp-block-embed__placeholder-input{flex:1 1 auto}.wp-block-embed .components-placeholder__error{word-break:break-word}.wp-block-post-content .wp-block-embed__learn-more a{color:var(--wp-admin-theme-color)}.block-library-embed__interactive-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.wp-block[data-align=left]>.wp-block-embed,.wp-block[data-align=right]>.wp-block-embed{max-width:360px;width:100%}.wp-block[data-align=left]>.wp-block-embed .wp-block-embed__wrapper,.wp-block[data-align=right]>.wp-block-embed .wp-block-embed__wrapper{min-width:280px} embed/style-rtl.css 0000775 00000007355 00000000000 0010251 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block[data-align=left] > [data-type="core/embed"], .wp-block[data-align=right] > [data-type="core/embed"], .wp-block-embed.alignleft, .wp-block-embed.alignright { max-width: 360px; width: 100%; } .wp-block[data-align=left] > [data-type="core/embed"] .wp-block-embed__wrapper, .wp-block[data-align=right] > [data-type="core/embed"] .wp-block-embed__wrapper, .wp-block-embed.alignleft .wp-block-embed__wrapper, .wp-block-embed.alignright .wp-block-embed__wrapper { min-width: 280px; } .wp-block-cover .wp-block-embed { min-width: 320px; min-height: 240px; } .wp-block-group.is-layout-flex .wp-block-embed { flex: 1 1 0%; min-width: 0; } .wp-block-embed { overflow-wrap: break-word; } .wp-block-embed :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-embed iframe { max-width: 100%; } .wp-block-embed__wrapper { position: relative; } .wp-embed-responsive .wp-has-aspect-ratio .wp-block-embed__wrapper::before { content: ""; display: block; padding-top: 50%; } .wp-embed-responsive .wp-has-aspect-ratio iframe { position: absolute; top: 0; left: 0; bottom: 0; right: 0; height: 100%; width: 100%; } .wp-embed-responsive .wp-embed-aspect-21-9 .wp-block-embed__wrapper::before { padding-top: 42.85%; } .wp-embed-responsive .wp-embed-aspect-18-9 .wp-block-embed__wrapper::before { padding-top: 50%; } .wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper::before { padding-top: 56.25%; } .wp-embed-responsive .wp-embed-aspect-4-3 .wp-block-embed__wrapper::before { padding-top: 75%; } .wp-embed-responsive .wp-embed-aspect-1-1 .wp-block-embed__wrapper::before { padding-top: 100%; } .wp-embed-responsive .wp-embed-aspect-9-16 .wp-block-embed__wrapper::before { padding-top: 177.77%; } .wp-embed-responsive .wp-embed-aspect-1-2 .wp-block-embed__wrapper::before { padding-top: 200%; } embed/theme-rtl.min.css 0000775 00000000272 00000000000 0010764 0 ustar 00 .wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:hsla(0,0%,100%,.65)}.wp-block-embed{margin:0 0 1em} embed/editor-rtl.min.css 0000775 00000001303 00000000000 0011144 0 ustar 00 .wp-block-embed{clear:both;margin-left:0;margin-right:0}.wp-block-embed.is-loading{display:flex;justify-content:center}.wp-block-embed .wp-block-embed__placeholder-input{flex:1 1 auto}.wp-block-embed .components-placeholder__error{word-break:break-word}.wp-block-post-content .wp-block-embed__learn-more a{color:var(--wp-admin-theme-color)}.block-library-embed__interactive-overlay{bottom:0;left:0;opacity:0;position:absolute;right:0;top:0}.wp-block[data-align=left]>.wp-block-embed,.wp-block[data-align=right]>.wp-block-embed{max-width:360px;width:100%}.wp-block[data-align=left]>.wp-block-embed .wp-block-embed__wrapper,.wp-block[data-align=right]>.wp-block-embed .wp-block-embed__wrapper{min-width:280px} embed/style.min.css 0000775 00000003203 00000000000 0010220 0 ustar 00 .wp-block-embed.alignleft,.wp-block-embed.alignright,.wp-block[data-align=left]>[data-type="core/embed"],.wp-block[data-align=right]>[data-type="core/embed"]{max-width:360px;width:100%}.wp-block-embed.alignleft .wp-block-embed__wrapper,.wp-block-embed.alignright .wp-block-embed__wrapper,.wp-block[data-align=left]>[data-type="core/embed"] .wp-block-embed__wrapper,.wp-block[data-align=right]>[data-type="core/embed"] .wp-block-embed__wrapper{min-width:280px}.wp-block-cover .wp-block-embed{min-height:240px;min-width:320px}.wp-block-group.is-layout-flex .wp-block-embed{flex:1 1 0%;min-width:0}.wp-block-embed{overflow-wrap:break-word}.wp-block-embed :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-embed iframe{max-width:100%}.wp-block-embed__wrapper{position:relative}.wp-embed-responsive .wp-has-aspect-ratio .wp-block-embed__wrapper:before{content:"";display:block;padding-top:50%}.wp-embed-responsive .wp-has-aspect-ratio iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.wp-embed-responsive .wp-embed-aspect-21-9 .wp-block-embed__wrapper:before{padding-top:42.85%}.wp-embed-responsive .wp-embed-aspect-18-9 .wp-block-embed__wrapper:before{padding-top:50%}.wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper:before{padding-top:56.25%}.wp-embed-responsive .wp-embed-aspect-4-3 .wp-block-embed__wrapper:before{padding-top:75%}.wp-embed-responsive .wp-embed-aspect-1-1 .wp-block-embed__wrapper:before{padding-top:100%}.wp-embed-responsive .wp-embed-aspect-9-16 .wp-block-embed__wrapper:before{padding-top:177.77%}.wp-embed-responsive .wp-embed-aspect-1-2 .wp-block-embed__wrapper:before{padding-top:200%} embed/theme-rtl.css 0000775 00000004170 00000000000 0010203 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-embed :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-embed :where(figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-embed { margin: 0 0 1em 0; } embed/block.json 0000775 00000002036 00000000000 0007554 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/embed", "title": "Embed", "category": "embed", "description": "Add a block that displays content pulled from other sites, like Twitter or YouTube.", "textdomain": "default", "attributes": { "url": { "type": "string", "role": "content" }, "caption": { "type": "rich-text", "source": "rich-text", "selector": "figcaption", "role": "content" }, "type": { "type": "string", "role": "content" }, "providerNameSlug": { "type": "string", "role": "content" }, "allowResponsive": { "type": "boolean", "default": true }, "responsive": { "type": "boolean", "default": false, "role": "content" }, "previewable": { "type": "boolean", "default": true, "role": "content" } }, "supports": { "anchor": true, "align": true, "spacing": { "margin": true }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-embed-editor", "style": "wp-block-embed" } embed/style-rtl.min.css 0000775 00000003203 00000000000 0011017 0 ustar 00 .wp-block-embed.alignleft,.wp-block-embed.alignright,.wp-block[data-align=left]>[data-type="core/embed"],.wp-block[data-align=right]>[data-type="core/embed"]{max-width:360px;width:100%}.wp-block-embed.alignleft .wp-block-embed__wrapper,.wp-block-embed.alignright .wp-block-embed__wrapper,.wp-block[data-align=left]>[data-type="core/embed"] .wp-block-embed__wrapper,.wp-block[data-align=right]>[data-type="core/embed"] .wp-block-embed__wrapper{min-width:280px}.wp-block-cover .wp-block-embed{min-height:240px;min-width:320px}.wp-block-group.is-layout-flex .wp-block-embed{flex:1 1 0%;min-width:0}.wp-block-embed{overflow-wrap:break-word}.wp-block-embed :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-embed iframe{max-width:100%}.wp-block-embed__wrapper{position:relative}.wp-embed-responsive .wp-has-aspect-ratio .wp-block-embed__wrapper:before{content:"";display:block;padding-top:50%}.wp-embed-responsive .wp-has-aspect-ratio iframe{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.wp-embed-responsive .wp-embed-aspect-21-9 .wp-block-embed__wrapper:before{padding-top:42.85%}.wp-embed-responsive .wp-embed-aspect-18-9 .wp-block-embed__wrapper:before{padding-top:50%}.wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper:before{padding-top:56.25%}.wp-embed-responsive .wp-embed-aspect-4-3 .wp-block-embed__wrapper:before{padding-top:75%}.wp-embed-responsive .wp-embed-aspect-1-1 .wp-block-embed__wrapper:before{padding-top:100%}.wp-embed-responsive .wp-embed-aspect-9-16 .wp-block-embed__wrapper:before{padding-top:177.77%}.wp-embed-responsive .wp-embed-aspect-1-2 .wp-block-embed__wrapper:before{padding-top:200%} embed/style.css 0000775 00000007355 00000000000 0007452 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block[data-align=left] > [data-type="core/embed"], .wp-block[data-align=right] > [data-type="core/embed"], .wp-block-embed.alignleft, .wp-block-embed.alignright { max-width: 360px; width: 100%; } .wp-block[data-align=left] > [data-type="core/embed"] .wp-block-embed__wrapper, .wp-block[data-align=right] > [data-type="core/embed"] .wp-block-embed__wrapper, .wp-block-embed.alignleft .wp-block-embed__wrapper, .wp-block-embed.alignright .wp-block-embed__wrapper { min-width: 280px; } .wp-block-cover .wp-block-embed { min-width: 320px; min-height: 240px; } .wp-block-group.is-layout-flex .wp-block-embed { flex: 1 1 0%; min-width: 0; } .wp-block-embed { overflow-wrap: break-word; } .wp-block-embed :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-embed iframe { max-width: 100%; } .wp-block-embed__wrapper { position: relative; } .wp-embed-responsive .wp-has-aspect-ratio .wp-block-embed__wrapper::before { content: ""; display: block; padding-top: 50%; } .wp-embed-responsive .wp-has-aspect-ratio iframe { position: absolute; top: 0; right: 0; bottom: 0; left: 0; height: 100%; width: 100%; } .wp-embed-responsive .wp-embed-aspect-21-9 .wp-block-embed__wrapper::before { padding-top: 42.85%; } .wp-embed-responsive .wp-embed-aspect-18-9 .wp-block-embed__wrapper::before { padding-top: 50%; } .wp-embed-responsive .wp-embed-aspect-16-9 .wp-block-embed__wrapper::before { padding-top: 56.25%; } .wp-embed-responsive .wp-embed-aspect-4-3 .wp-block-embed__wrapper::before { padding-top: 75%; } .wp-embed-responsive .wp-embed-aspect-1-1 .wp-block-embed__wrapper::before { padding-top: 100%; } .wp-embed-responsive .wp-embed-aspect-9-16 .wp-block-embed__wrapper::before { padding-top: 177.77%; } .wp-embed-responsive .wp-embed-aspect-1-2 .wp-block-embed__wrapper::before { padding-top: 200%; } embed/editor-rtl.css 0000775 00000001532 00000000000 0010366 0 ustar 00 /** * Breakpoints & Media Queries */ .wp-block-embed { margin-right: 0; margin-left: 0; clear: both; } .wp-block-embed.is-loading { display: flex; justify-content: center; } .wp-block-embed .wp-block-embed__placeholder-input { flex: 1 1 auto; } .wp-block-embed .components-placeholder__error { word-break: break-word; } .wp-block-post-content .wp-block-embed__learn-more a { color: var(--wp-admin-theme-color); } .block-library-embed__interactive-overlay { position: absolute; top: 0; right: 0; left: 0; bottom: 0; opacity: 0; } .wp-block[data-align=left] > .wp-block-embed, .wp-block[data-align=right] > .wp-block-embed { max-width: 360px; width: 100%; } .wp-block[data-align=left] > .wp-block-embed .wp-block-embed__wrapper, .wp-block[data-align=right] > .wp-block-embed .wp-block-embed__wrapper { min-width: 280px; } embed/theme.css 0000775 00000004170 00000000000 0007404 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-embed :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-embed :where(figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-embed { margin: 0 0 1em 0; } embed/theme.min.css 0000775 00000000272 00000000000 0010165 0 ustar 00 .wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:hsla(0,0%,100%,.65)}.wp-block-embed{margin:0 0 1em} read-more/style-rtl.css 0000775 00000000520 00000000000 0011033 0 ustar 00 .wp-block-read-more { display: block; width: -moz-fit-content; width: fit-content; } .wp-block-read-more:where(:not([style*=text-decoration])) { text-decoration: none; } .wp-block-read-more:where(:not([style*=text-decoration])):focus, .wp-block-read-more:where(:not([style*=text-decoration])):active { text-decoration: none; } read-more/style.min.css 0000775 00000000460 00000000000 0011021 0 ustar 00 .wp-block-read-more{display:block;width:-moz-fit-content;width:fit-content}.wp-block-read-more:where(:not([style*=text-decoration])){text-decoration:none}.wp-block-read-more:where(:not([style*=text-decoration])):active,.wp-block-read-more:where(:not([style*=text-decoration])):focus{text-decoration:none} read-more/block.json 0000775 00000002430 00000000000 0010351 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/read-more", "title": "Read More", "category": "theme", "description": "Displays the link of a post, page, or any other content-type.", "textdomain": "default", "attributes": { "content": { "type": "string", "role": "content" }, "linkTarget": { "type": "string", "default": "_self" } }, "usesContext": [ "postId" ], "supports": { "anchor": true, "html": false, "color": { "gradients": true, "text": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalLetterSpacing": true, "__experimentalTextDecoration": true, "__experimentalDefaultControls": { "fontSize": true, "textDecoration": true } }, "spacing": { "margin": [ "top", "bottom" ], "padding": true, "__experimentalDefaultControls": { "padding": true } }, "__experimentalBorder": { "color": true, "radius": true, "width": true, "__experimentalDefaultControls": { "width": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-read-more" } read-more/style-rtl.min.css 0000775 00000000460 00000000000 0011620 0 ustar 00 .wp-block-read-more{display:block;width:-moz-fit-content;width:fit-content}.wp-block-read-more:where(:not([style*=text-decoration])){text-decoration:none}.wp-block-read-more:where(:not([style*=text-decoration])):active,.wp-block-read-more:where(:not([style*=text-decoration])):focus{text-decoration:none} read-more/style.css 0000775 00000000520 00000000000 0010234 0 ustar 00 .wp-block-read-more { display: block; width: -moz-fit-content; width: fit-content; } .wp-block-read-more:where(:not([style*=text-decoration])) { text-decoration: none; } .wp-block-read-more:where(:not([style*=text-decoration])):focus, .wp-block-read-more:where(:not([style*=text-decoration])):active { text-decoration: none; } post-title/style-rtl.css 0000775 00000000464 00000000000 0011273 0 ustar 00 .wp-block-post-title { word-break: break-word; box-sizing: border-box; } .wp-block-post-title :where(a) { display: inline-block; font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; letter-spacing: inherit; line-height: inherit; text-decoration: inherit; } post-title/style.min.css 0000775 00000000405 00000000000 0011251 0 ustar 00 .wp-block-post-title{box-sizing:border-box;word-break:break-word}.wp-block-post-title :where(a){display:inline-block;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-decoration:inherit} post-title/block.json 0000775 00000003361 00000000000 0010606 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-title", "title": "Title", "category": "theme", "description": "Displays the title of a post, page, or any other content-type.", "textdomain": "default", "usesContext": [ "postId", "postType", "queryId" ], "attributes": { "level": { "type": "number", "default": 2 }, "levelOptions": { "type": "array" }, "isLink": { "type": "boolean", "default": false, "role": "content" }, "rel": { "type": "string", "attribute": "rel", "default": "", "role": "content" }, "linkTarget": { "type": "string", "default": "_self", "role": "content" }, "placeholder": { "type": "string" } }, "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-post-title" } post-title/style-rtl.min.css 0000775 00000000405 00000000000 0012050 0 ustar 00 .wp-block-post-title{box-sizing:border-box;word-break:break-word}.wp-block-post-title :where(a){display:inline-block;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-decoration:inherit} post-title/style.css 0000775 00000000464 00000000000 0010474 0 ustar 00 .wp-block-post-title { word-break: break-word; box-sizing: border-box; } .wp-block-post-title :where(a) { display: inline-block; font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; letter-spacing: inherit; line-height: inherit; text-decoration: inherit; } breadcrumbs.php 0000775 00000045161 00000000000 0007523 0 ustar 00 <?php /** * Server-side rendering of the `core/breadcrumbs` block. * * @package WordPress */ /** * Renders the `core/breadcrumbs` block on the server. * * @since 7.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the post breadcrumb for hierarchical post types. */ function render_block_core_breadcrumbs( $attributes, $content, $block ) { $is_front_page = is_front_page(); if ( ! $attributes['showOnHomePage'] && $is_front_page ) { return ''; } $is_home = is_home(); $page_for_posts = get_option( 'page_for_posts' ); $breadcrumb_items = array(); if ( $attributes['showHomeItem'] ) { // We make `home` a link if not on front page, or if front page // is set to a custom page and is paged. if ( ! $is_front_page || ( 'page' === get_option( 'show_on_front' ) && (int) get_query_var( 'page' ) > 1 ) ) { $breadcrumb_items[] = array( 'label' => __( 'Home' ), 'url' => home_url( '/' ), ); } else { $breadcrumb_items[] = block_core_breadcrumbs_create_item( __( 'Home' ), block_core_breadcrumbs_is_paged() ); } } // Handle home. if ( $is_home ) { // These checks are explicitly nested in order not to execute the `else` branch. if ( $page_for_posts ) { $breadcrumb_items[] = block_core_breadcrumbs_create_item( block_core_breadcrumbs_get_post_title( $page_for_posts ), block_core_breadcrumbs_is_paged() ); } if ( block_core_breadcrumbs_is_paged() ) { $breadcrumb_items[] = block_core_breadcrumbs_create_page_number_item(); } } elseif ( $is_front_page ) { // Handle front page. // This check is explicitly nested in order not to execute the `else` branch. // If front page is set to custom page and is paged, add the page number. if ( (int) get_query_var( 'page' ) > 1 ) { $breadcrumb_items[] = block_core_breadcrumbs_create_page_number_item( 'page' ); } } elseif ( is_search() ) { // Handle search results. $is_paged = block_core_breadcrumbs_is_paged(); /* translators: %s: search query */ $text = sprintf( __( 'Search results for: "%s"' ), wp_trim_words( get_search_query(), 10 ) ); $breadcrumb_items[] = block_core_breadcrumbs_create_item( $text, $is_paged ); // Add the "Page X" as the current page if paginated. if ( $is_paged ) { $breadcrumb_items[] = block_core_breadcrumbs_create_page_number_item(); } } elseif ( is_404() ) { // Handle 404 pages. $breadcrumb_items[] = array( 'label' => __( 'Page not found' ), ); } elseif ( is_archive() ) { // Handle archive pages (taxonomy, post type, date, author archives). $archive_breadcrumbs = block_core_breadcrumbs_get_archive_breadcrumbs(); if ( ! empty( $archive_breadcrumbs ) ) { $breadcrumb_items = array_merge( $breadcrumb_items, $archive_breadcrumbs ); } } else { // Handle single post/page breadcrumbs. if ( ! isset( $block->context['postId'] ) || ! isset( $block->context['postType'] ) ) { return ''; } $post_id = $block->context['postId']; $post_type = $block->context['postType']; $post = get_post( $post_id ); if ( ! $post ) { return ''; } // For non-hierarchical post types with parents (e.g., attachments), build trail for the parent. $post_parent = $post->post_parent; $parent_post = null; if ( ! is_post_type_hierarchical( $post_type ) && $post_parent ) { $parent_post = get_post( $post_parent ); if ( $parent_post ) { $post_id = $parent_post->ID; $post_type = $parent_post->post_type; $post_parent = $parent_post->post_parent; } } // Determine breadcrumb type. // Some non-hierarchical post types (e.g., attachments) can have parents. // Use hierarchical breadcrumbs if a parent exists, otherwise use taxonomy breadcrumbs. $show_terms = false; if ( ! is_post_type_hierarchical( $post_type ) && ! $post_parent ) { $show_terms = true; } elseif ( empty( get_object_taxonomies( $post_type, 'objects' ) ) ) { $show_terms = false; } else { $show_terms = $attributes['prefersTaxonomy']; } // Add post type archive link if applicable. $post_type_object = get_post_type_object( $post_type ); $archive_link = get_post_type_archive_link( $post_type ); if ( $archive_link && untrailingslashit( home_url() ) !== untrailingslashit( $archive_link ) ) { $label = $post_type_object->labels->archives; if ( 'post' === $post_type && $page_for_posts ) { $label = block_core_breadcrumbs_get_post_title( $page_for_posts ); } $breadcrumb_items[] = array( 'label' => $label, 'url' => $archive_link, ); } // Build breadcrumb trail based on hierarchical structure or taxonomy terms. if ( ! $show_terms ) { $breadcrumb_items = array_merge( $breadcrumb_items, block_core_breadcrumbs_get_hierarchical_post_type_breadcrumbs( $post_id ) ); } else { $breadcrumb_items = array_merge( $breadcrumb_items, block_core_breadcrumbs_get_terms_breadcrumbs( $post_id, $post_type ) ); } // Add post title: linked when viewing a paginated page, plain text otherwise. $is_paged = (int) get_query_var( 'page' ) > 1 || (int) get_query_var( 'cpage' ) > 1; $title = block_core_breadcrumbs_get_post_title( $post ); if ( $is_paged ) { $breadcrumb_items[] = array( 'label' => $title, 'url' => get_permalink( $post ), 'allow_html' => true, ); $breadcrumb_items[] = block_core_breadcrumbs_create_page_number_item( (int) get_query_var( 'cpage' ) > 1 ? 'cpage' : 'page' ); } else { $breadcrumb_items[] = array( 'label' => $title, 'allow_html' => true, ); } } // Remove current item if disabled. if ( ! $attributes['showCurrentItem'] && ! empty( $breadcrumb_items ) ) { array_pop( $breadcrumb_items ); } /** * Filters the breadcrumb items array before rendering. * * Allows developers to modify, add, or remove breadcrumb items. * * @since 7.0.0 * * @param array[] $breadcrumb_items { * Array of breadcrumb item data. * * @type string $label The breadcrumb text. * @type string $url Optional. The breadcrumb link URL. * @type bool $allow_html Optional. Whether to allow HTML in the label. * When true, the label will be sanitized with wp_kses_post(), * allowing only safe HTML tags. When false or omitted, all HTML * will be escaped with esc_html(). Default false. * } */ $breadcrumb_items = apply_filters( 'block_core_breadcrumbs_items', $breadcrumb_items ); if ( empty( $breadcrumb_items ) ) { return ''; } $wrapper_attributes = get_block_wrapper_attributes( array( 'style' => '--separator: "' . addcslashes( $attributes['separator'], '\\"' ) . '";', 'aria-label' => __( 'Breadcrumbs' ), ) ); $breadcrumb_html = sprintf( '<nav %s><ol>%s</ol></nav>', $wrapper_attributes, implode( '', array_map( static function ( $item ) { $label = ! empty( $item['allow_html'] ) ? wp_kses_post( $item['label'] ) : esc_html( $item['label'] ); if ( ! empty( $item['url'] ) ) { return '<li><a href="' . esc_url( $item['url'] ) . '">' . $label . '</a></li>'; } return '<li><span aria-current="page">' . $label . '</span></li>'; }, $breadcrumb_items ) ) ); return $breadcrumb_html; } /** * Checks if we're on a paginated view (page 2 or higher). * * @since 7.0.0 * * @return bool True if paged > 1, false otherwise. */ function block_core_breadcrumbs_is_paged() { $paged = (int) get_query_var( 'paged' ); return $paged > 1; } /** * Creates a "Page X" breadcrumb item for paginated views. * * @since 7.0.0 * @param string $query_var Optional. Query variable to get current page number. Default 'paged'. * @return array The "Page X" breadcrumb item data. */ function block_core_breadcrumbs_create_page_number_item( $query_var = 'paged' ) { $paged = (int) get_query_var( $query_var ); if ( 'cpage' === $query_var ) { return array( 'label' => sprintf( /* translators: %s: comment page number */ __( 'Comments Page %s' ), number_format_i18n( $paged ) ), ); } return array( 'label' => sprintf( /* translators: %s: page number */ __( 'Page %s' ), number_format_i18n( $paged ) ), ); } /** * Creates a breadcrumb item that's either a link or current page item. * * When paginated (is_paged is true), creates a link to page 1. * Otherwise, creates a span marked as the current page. * * @since 7.0.0 * * @param string $text The text content. * @param bool $is_paged Whether we're on a paginated view. * * @return array The breadcrumb item data. */ function block_core_breadcrumbs_create_item( $text, $is_paged = false ) { $item = array( 'label' => $text ); if ( $is_paged ) { $item['url'] = get_pagenum_link( 1 ); } return $item; } /** * Gets a post title with fallback for empty titles. * * @since 7.0.0 * * @param int|WP_Post $post_id_or_object The post ID or post object. * * @return string The post title or fallback text. */ function block_core_breadcrumbs_get_post_title( $post_id_or_object ) { $title = get_the_title( $post_id_or_object ); if ( strlen( $title ) === 0 ) { $title = __( '(no title)' ); } return $title; } /** * Generates breadcrumb items from hierarchical post type ancestors. * * @since 7.0.0 * * @param int $post_id The post ID. * * @return array Array of breadcrumb item data. */ function block_core_breadcrumbs_get_hierarchical_post_type_breadcrumbs( $post_id ) { $breadcrumb_items = array(); $ancestors = get_post_ancestors( $post_id ); $ancestors = array_reverse( $ancestors ); foreach ( $ancestors as $ancestor_id ) { $breadcrumb_items[] = array( 'label' => block_core_breadcrumbs_get_post_title( $ancestor_id ), 'url' => get_permalink( $ancestor_id ), 'allow_html' => true, ); } return $breadcrumb_items; } /** * Generates breadcrumb items for hierarchical term ancestors. * * For hierarchical taxonomies, retrieves and formats ancestor terms as breadcrumb links. * * @since 7.0.0 * * @param int $term_id The term ID. * @param string $taxonomy The taxonomy name. * * @return array Array of breadcrumb item data for ancestors. */ function block_core_breadcrumbs_get_term_ancestors_items( $term_id, $taxonomy ) { $breadcrumb_items = array(); // Check if taxonomy is hierarchical and add ancestor term links. if ( is_taxonomy_hierarchical( $taxonomy ) ) { $term_ancestors = get_ancestors( $term_id, $taxonomy, 'taxonomy' ); $term_ancestors = array_reverse( $term_ancestors ); foreach ( $term_ancestors as $ancestor_id ) { $ancestor_term = get_term( $ancestor_id, $taxonomy ); if ( $ancestor_term && ! is_wp_error( $ancestor_term ) ) { $breadcrumb_items[] = array( 'label' => $ancestor_term->name, 'url' => get_term_link( $ancestor_term ), ); } } } return $breadcrumb_items; } /** * Generates breadcrumb items for archive pages. * * Handles taxonomy archives, post type archives, date archives, and author archives. * For hierarchical taxonomies, includes ancestor terms in the breadcrumb trail. * * @since 7.0.0 * * @return array Array of breadcrumb item data. */ function block_core_breadcrumbs_get_archive_breadcrumbs() { $breadcrumb_items = array(); // Date archive (check first since it doesn't have a queried object). if ( is_date() ) { $year = get_query_var( 'year' ); $month = get_query_var( 'monthnum' ); $day = get_query_var( 'day' ); // Fallback to 'm' query var for plain permalinks. // Plain permalinks use ?m=YYYYMMDD format instead of separate query vars. if ( ! $year ) { $m = get_query_var( 'm' ); if ( $m ) { $year = substr( $m, 0, 4 ); $month = substr( $m, 4, 2 ); $day = (int) substr( $m, 6, 2 ); } } $is_paged = block_core_breadcrumbs_is_paged(); if ( $year ) { if ( $month ) { // Year is linked if we have month. $breadcrumb_items[] = array( 'label' => $year, 'url' => get_year_link( $year ), ); if ( $day ) { // Month is linked if we have day. $breadcrumb_items[] = array( 'label' => date_i18n( 'F', mktime( 0, 0, 0, $month, 1, $year ) ), 'url' => get_month_link( $year, $month ), ); // Add day (current if not paginated, link if paginated). $breadcrumb_items[] = block_core_breadcrumbs_create_item( $day, $is_paged ); } else { // Add month (current if not paginated, link if paginated). $breadcrumb_items[] = block_core_breadcrumbs_create_item( date_i18n( 'F', mktime( 0, 0, 0, $month, 1, $year ) ), $is_paged ); } } else { // Add year (current if not paginated, link if paginated). $breadcrumb_items[] = block_core_breadcrumbs_create_item( $year, $is_paged ); } } // Add pagination breadcrumb if on a paged date archive. if ( $is_paged ) { $breadcrumb_items[] = block_core_breadcrumbs_create_page_number_item(); } return $breadcrumb_items; } // For other archive types, we need a queried object. $queried_object = get_queried_object(); if ( ! $queried_object ) { return array(); } $is_paged = block_core_breadcrumbs_is_paged(); // Taxonomy archive (category, tag, custom taxonomy). if ( $queried_object instanceof WP_Term ) { $term = $queried_object; $taxonomy = $term->taxonomy; // Add hierarchical term ancestors if applicable. $breadcrumb_items = array_merge( $breadcrumb_items, block_core_breadcrumbs_get_term_ancestors_items( $term->term_id, $taxonomy ) ); // Add current term (current if not paginated, link if paginated). $breadcrumb_items[] = block_core_breadcrumbs_create_item( $term->name, $is_paged ); } elseif ( is_post_type_archive() ) { // Post type archive. $post_type = get_query_var( 'post_type' ); if ( is_array( $post_type ) ) { $post_type = reset( $post_type ); } $post_type_object = get_post_type_object( $post_type ); /** This filter is documented in wp-includes/general-template.php */ $title = apply_filters( 'post_type_archive_title', $post_type_object->labels->archives, $post_type ); // phpcs:ignore WordPress.NamingConventions.PrefixAllGlobals.NonPrefixedHooknameFound if ( $post_type_object ) { // Add post type (current if not paginated, link if paginated). $breadcrumb_items[] = block_core_breadcrumbs_create_item( $title ? $title : $post_type_object->labels->archives, $is_paged ); } } elseif ( is_author() ) { // Author archive. $author = $queried_object; // Add author (current if not paginated, link if paginated). $breadcrumb_items[] = block_core_breadcrumbs_create_item( $author->display_name, $is_paged ); } // Add pagination breadcrumb if on a paged archive. if ( $is_paged ) { $breadcrumb_items[] = block_core_breadcrumbs_create_page_number_item(); } return $breadcrumb_items; } /** * Generates breadcrumb items from taxonomy terms. * * Finds the first publicly queryable taxonomy with terms assigned to the post * and generates breadcrumb links, including hierarchical term ancestors if applicable. * * @since 7.0.0 * * @param int $post_id The post ID. * @param string $post_type The post type name. * * @return array Array of breadcrumb item data. */ function block_core_breadcrumbs_get_terms_breadcrumbs( $post_id, $post_type ) { $breadcrumb_items = array(); // Get public taxonomies for this post type. $taxonomies = wp_filter_object_list( get_object_taxonomies( $post_type, 'objects' ), array( 'publicly_queryable' => true, 'show_in_rest' => true, ) ); if ( empty( $taxonomies ) ) { return $breadcrumb_items; } /** * Filters breadcrumb settings (taxonomy and term selection) for a post or post type. * * Allows developers to specify which taxonomy and term should be used in the * breadcrumb trail when a post type has multiple taxonomies or when a post is * assigned to multiple terms within a taxonomy. * * @since 7.0.0 * * @param array $settings { * Array of breadcrumb settings. Default empty array. * * @type string $taxonomy Optional. Taxonomy slug to use for breadcrumbs. * The taxonomy must be registered for the post type and have * terms assigned to the post. If not found or has no terms, * fall back to the first available taxonomy with terms. * @type string $term Optional. Term slug to use when the post has multiple terms * in the selected taxonomy. If the term is not found or not * assigned to the post, fall back to the first term. If the * post has only one term, that term is used regardless. * } * @param string $post_type The post type slug. * @param int $post_id The post ID. */ $settings = apply_filters( 'block_core_breadcrumbs_post_type_settings', array(), $post_type, $post_id ); $taxonomy_name = null; $terms = array(); // Try preferred taxonomy first if specified. if ( ! empty( $settings['taxonomy'] ) ) { foreach ( $taxonomies as $taxonomy ) { if ( $taxonomy->name === $settings['taxonomy'] ) { $post_terms = get_the_terms( $post_id, $taxonomy->name ); if ( ! empty( $post_terms ) && ! is_wp_error( $post_terms ) ) { $taxonomy_name = $taxonomy->name; $terms = $post_terms; } break; } } } // If no preferred taxonomy or it didn't have terms, find the first taxonomy with terms. if ( empty( $terms ) ) { foreach ( $taxonomies as $taxonomy ) { $post_terms = get_the_terms( $post_id, $taxonomy->name ); if ( ! empty( $post_terms ) && ! is_wp_error( $post_terms ) ) { $taxonomy_name = $taxonomy->name; $terms = $post_terms; break; } } } if ( ! empty( $terms ) ) { // Select which term to use. $term = reset( $terms ); // Try preferred term if specified and post has multiple terms. if ( ! empty( $settings['term'] ) && count( $terms ) > 1 ) { foreach ( $terms as $candidate_term ) { if ( $candidate_term->slug === $settings['term'] ) { $term = $candidate_term; break; } } } // Add hierarchical term ancestors if applicable. $breadcrumb_items = array_merge( $breadcrumb_items, block_core_breadcrumbs_get_term_ancestors_items( $term->term_id, $taxonomy_name ) ); $breadcrumb_items[] = array( 'label' => $term->name, 'url' => get_term_link( $term ), ); } return $breadcrumb_items; } /** * Registers the `core/breadcrumbs` block on the server. * * @since 7.0.0 */ function register_block_core_breadcrumbs() { register_block_type_from_metadata( __DIR__ . '/breadcrumbs', array( 'render_callback' => 'render_block_core_breadcrumbs', ) ); } add_action( 'init', 'register_block_core_breadcrumbs' ); list/style-rtl.css 0000775 00000001574 00000000000 0010145 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ ol, ul { box-sizing: border-box; } :root :where(.wp-block-list.has-background) { padding: 1.25em 2.375em; } list/style.min.css 0000775 00000000137 00000000000 0010122 0 ustar 00 ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:1.25em 2.375em} list/block.json 0000775 00000003555 00000000000 0007462 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/list", "title": "List", "category": "text", "allowedBlocks": [ "core/list-item" ], "description": "An organized collection of items displayed in a specific order.", "keywords": [ "bullet list", "ordered list", "numbered list" ], "textdomain": "default", "attributes": { "ordered": { "type": "boolean", "default": false, "role": "content" }, "values": { "type": "string", "source": "html", "selector": "ol,ul", "multiline": "li", "default": "", "role": "content" }, "type": { "type": "string" }, "start": { "type": "number" }, "reversed": { "type": "boolean" }, "placeholder": { "type": "string" } }, "supports": { "anchor": true, "html": false, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "__unstablePasteTextInline": true, "__experimentalOnMerge": true, "__experimentalSlashInserter": true, "interactivity": { "clientNavigation": true }, "listView": true }, "selectors": { "border": ".wp-block-list:not(.wp-block-list .wp-block-list)" }, "editorStyle": "wp-block-list-editor", "style": "wp-block-list" } list/style-rtl.min.css 0000775 00000000137 00000000000 0010721 0 ustar 00 ol,ul{box-sizing:border-box}:root :where(.wp-block-list.has-background){padding:1.25em 2.375em} list/style.css 0000775 00000001574 00000000000 0007346 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ ol, ul { box-sizing: border-box; } :root :where(.wp-block-list.has-background) { padding: 1.25em 2.375em; } verse/style-rtl.css 0000775 00000000277 00000000000 0010315 0 ustar 00 pre.wp-block-verse { box-sizing: border-box; overflow: auto; white-space: pre-wrap; min-width: 1em; word-break: break-word; } :where(pre.wp-block-verse) { font-family: inherit; } verse/style.min.css 0000775 00000000237 00000000000 0010274 0 ustar 00 pre.wp-block-verse{box-sizing:border-box;min-width:1em;overflow:auto;white-space:pre-wrap;word-break:break-word}:where(pre.wp-block-verse){font-family:inherit} verse/block.json 0000775 00000003353 00000000000 0007627 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/verse", "title": "Poetry", "category": "text", "description": "Insert poetry. Use special spacing formats. Or quote song lyrics.", "keywords": [ "poetry", "poem", "verse", "stanza", "song", "lyrics" ], "textdomain": "default", "attributes": { "content": { "type": "rich-text", "source": "rich-text", "selector": "pre", "__unstablePreserveWhiteSpace": true, "role": "content" } }, "supports": { "anchor": true, "background": { "backgroundImage": true, "backgroundSize": true, "gradient": true, "__experimentalDefaultControls": { "backgroundImage": true, "gradient": true } }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "dimensions": { "minHeight": true, "__experimentalDefaultControls": { "minHeight": false } }, "typography": { "fontSize": true, "__experimentalFontFamily": true, "lineHeight": true, "textAlign": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalWritingMode": true, "__experimentalDefaultControls": { "fontSize": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "__experimentalBorder": { "radius": true, "width": true, "color": true, "style": true }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-verse", "editorStyle": "wp-block-verse-editor" } verse/style-rtl.min.css 0000775 00000000237 00000000000 0011073 0 ustar 00 pre.wp-block-verse{box-sizing:border-box;min-width:1em;overflow:auto;white-space:pre-wrap;word-break:break-word}:where(pre.wp-block-verse){font-family:inherit} verse/style.css 0000775 00000000277 00000000000 0007516 0 ustar 00 pre.wp-block-verse { box-sizing: border-box; overflow: auto; white-space: pre-wrap; min-width: 1em; word-break: break-word; } :where(pre.wp-block-verse) { font-family: inherit; } tabs/style-rtl.css 0000775 00000000054 00000000000 0010113 0 ustar 00 .wp-block-tabs { box-sizing: border-box; } tabs/style.min.css 0000775 00000000045 00000000000 0010076 0 ustar 00 .wp-block-tabs{box-sizing:border-box} tabs/block.json 0000775 00000002054 00000000000 0007431 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/tabs", "title": "Tabs", "description": "Display content in a tabbed interface to help users navigate detailed content with ease.", "category": "design", "textdomain": "default", "allowedBlocks": [ "core/tab-list", "core/tab-panels" ], "attributes": { "activeTabIndex": { "type": "number", "default": 0 }, "editorActiveTabIndex": { "type": "number", "role": "local" } }, "supports": { "align": true, "anchor": true, "color": { "text": true, "background": true, "__experimentalDefaultControls": { "text": true, "background": true } }, "layout": { "allowEditing": false }, "html": false, "interactivity": true, "spacing": { "blockGap": true, "margin": true, "padding": true }, "typography": { "fontSize": true, "__experimentalFontFamily": true } }, "usesContext": [ "core/tabs-list", "core/tabs-id" ], "style": "wp-block-tabs", "viewScriptModule": "@wordpress/block-library/tabs/view" } tabs/style-rtl.min.css 0000775 00000000045 00000000000 0010675 0 ustar 00 .wp-block-tabs{box-sizing:border-box} tabs/style.css 0000775 00000000054 00000000000 0007314 0 ustar 00 .wp-block-tabs { box-sizing: border-box; } details/editor.css 0000775 00000000064 00000000000 0010137 0 ustar 00 .wp-block-details summary div { display: inline; } details/editor.min.css 0000775 00000000055 00000000000 0010721 0 ustar 00 .wp-block-details summary div{display:inline} details/style-rtl.css 0000775 00000000141 00000000000 0010604 0 ustar 00 .wp-block-details { box-sizing: border-box; } .wp-block-details summary { cursor: pointer; } details/editor-rtl.min.css 0000775 00000000055 00000000000 0011520 0 ustar 00 .wp-block-details summary div{display:inline} details/style.min.css 0000775 00000000121 00000000000 0010565 0 ustar 00 .wp-block-details{box-sizing:border-box}.wp-block-details summary{cursor:pointer} details/block.json 0000775 00000003257 00000000000 0010133 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/details", "title": "Details", "category": "text", "description": "Hide and show additional content.", "keywords": [ "summary", "toggle", "disclosure" ], "textdomain": "default", "attributes": { "showContent": { "type": "boolean", "default": false }, "summary": { "type": "rich-text", "source": "rich-text", "selector": "summary", "role": "content" }, "name": { "type": "string", "source": "attribute", "attribute": "name", "selector": ".wp-block-details" }, "placeholder": { "type": "string" } }, "supports": { "__experimentalOnEnter": true, "align": [ "wide", "full" ], "anchor": true, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "__experimentalBorder": { "color": true, "width": true, "style": true }, "html": false, "spacing": { "margin": true, "padding": true, "blockGap": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "layout": { "allowEditing": false }, "interactivity": { "clientNavigation": true }, "allowedBlocks": true }, "editorStyle": "wp-block-details-editor", "style": "wp-block-details" } details/style-rtl.min.css 0000775 00000000121 00000000000 0011364 0 ustar 00 .wp-block-details{box-sizing:border-box}.wp-block-details summary{cursor:pointer} details/style.css 0000775 00000000141 00000000000 0010005 0 ustar 00 .wp-block-details { box-sizing: border-box; } .wp-block-details summary { cursor: pointer; } details/editor-rtl.css 0000775 00000000064 00000000000 0010736 0 ustar 00 .wp-block-details summary div { display: inline; } query-total.php 0000775 00000004647 00000000000 0007524 0 ustar 00 <?php /** * Server-side rendering of the `core/query-total` block. * * @package WordPress */ /** * Renders the `query-total` block on the server. * * @since 6.8.0 * * @global WP_Query $wp_query WordPress Query object. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string The rendered block content. */ function render_block_core_query_total( $attributes, $content, $block ) { global $wp_query; $wrapper_attributes = get_block_wrapper_attributes(); if ( $block->context['query']['inherit'] ?? false ) { $query_to_use = $wp_query; $current_page = max( 1, (int) get_query_var( 'paged', 1 ) ); } else { $page_key = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page'; $current_page = (int) ( $_GET[ $page_key ] ?? 1 ); $query_to_use = new WP_Query( build_query_vars_from_query_block( $block, $current_page ) ); } $max_rows = $query_to_use->found_posts; $posts_per_page = (int) $query_to_use->get( 'posts_per_page' ); // Calculate the range of posts being displayed. $start = ( 0 === $max_rows ) ? 0 : ( ( $current_page - 1 ) * $posts_per_page + 1 ); $end = min( $start + $posts_per_page - 1, $max_rows ); // Prepare the display based on the `displayType` attribute. $output = ''; switch ( $attributes['displayType'] ) { case 'range-display': if ( $start === $end ) { $output = sprintf( /* translators: 1: Start index of posts, 2: Total number of posts */ __( 'Displaying %1$s of %2$s' ), $start, $max_rows ); } else { $output = sprintf( /* translators: 1: Start index of posts, 2: End index of posts, 3: Total number of posts */ __( 'Displaying %1$s – %2$s of %3$s' ), $start, $end, $max_rows ); } break; case 'total-results': default: // translators: %d: number of results. $output = sprintf( _n( '%d result found', '%d results found', $max_rows ), $max_rows ); break; } return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $output ); } /** * Registers the `query-total` block. * * @since 6.8.0 */ function register_block_core_query_total() { register_block_type_from_metadata( __DIR__ . '/query-total', array( 'render_callback' => 'render_block_core_query_total', ) ); } add_action( 'init', 'register_block_core_query_total' ); avatar.php 0000775 00000013006 00000000000 0006501 0 ustar 00 <?php /** * Server-side rendering of the `core/avatar` block. * * @package WordPress */ /** * Renders the `core/avatar` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Return the avatar. */ function render_block_core_avatar( $attributes, $content, $block ) { $size = $attributes['size'] ?? 96; $wrapper_attributes = get_block_wrapper_attributes(); $border_attributes = get_block_core_avatar_border_attributes( $attributes ); // Class gets passed through `esc_attr` via `get_avatar`. $image_classes = ! empty( $border_attributes['class'] ) ? "wp-block-avatar__image {$border_attributes['class']}" : 'wp-block-avatar__image'; // Unlike class, `get_avatar` doesn't filter the styles via `esc_attr`. // The style engine does pass the border styles through // `safecss_filter_attr` however. $image_styles = ! empty( $border_attributes['style'] ) ? sprintf( ' style="%s"', esc_attr( $border_attributes['style'] ) ) : ''; if ( ! isset( $block->context['commentId'] ) ) { if ( isset( $attributes['userId'] ) ) { $author_id = $attributes['userId']; } elseif ( isset( $block->context['postId'] ) ) { $author_id = get_post_field( 'post_author', $block->context['postId'] ); } else { $author_id = get_query_var( 'author' ); } if ( empty( $author_id ) ) { return ''; } $author_name = get_the_author_meta( 'display_name', $author_id ); // translators: %s: Author name. $alt = sprintf( __( '%s Avatar' ), $author_name ); $avatar_block = get_avatar( $author_id, $size, '', $alt, array( 'extra_attr' => $image_styles, 'class' => $image_classes, ) ); if ( isset( $attributes['isLink'] ) && $attributes['isLink'] ) { $label = ''; if ( '_blank' === $attributes['linkTarget'] ) { // translators: %s is the Author name. $label = 'aria-label="' . esc_attr( sprintf( __( '(%s author archive, opens in a new tab)' ), $author_name ) ) . '"'; } // translators: 1: Author archive link. 2: Link target. %3$s Aria label. %4$s Avatar image. $avatar_block = sprintf( '<a href="%1$s" target="%2$s" %3$s class="wp-block-avatar__link">%4$s</a>', esc_url( get_author_posts_url( $author_id ) ), esc_attr( $attributes['linkTarget'] ), $label, $avatar_block ); } return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $avatar_block ); } $comment = get_comment( $block->context['commentId'] ); if ( ! $comment ) { return ''; } /* translators: %s: Author name. */ $alt = sprintf( __( '%s Avatar' ), $comment->comment_author ); $avatar_block = get_avatar( $comment, $size, '', $alt, array( 'extra_attr' => $image_styles, 'class' => $image_classes, ) ); if ( isset( $attributes['isLink'] ) && $attributes['isLink'] && isset( $comment->comment_author_url ) && '' !== $comment->comment_author_url ) { $label = ''; if ( '_blank' === $attributes['linkTarget'] ) { // translators: %s: Comment author name. $label = 'aria-label="' . esc_attr( sprintf( __( '(%s website link, opens in a new tab)' ), $comment->comment_author ) ) . '"'; } $avatar_block = sprintf( '<a href="%1$s" target="%2$s" %3$s class="wp-block-avatar__link">%4$s</a>', esc_url( $comment->comment_author_url ), esc_attr( $attributes['linkTarget'] ), $label, $avatar_block ); } return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $avatar_block ); } /** * Generates class names and styles to apply the border support styles for * the Avatar block. * * @since 6.3.0 * * @param array $attributes The block attributes. * @return array The border-related classnames and styles for the block. */ function get_block_core_avatar_border_attributes( $attributes ) { $border_styles = array(); $sides = array( 'top', 'right', 'bottom', 'left' ); // Border radius. if ( isset( $attributes['style']['border']['radius'] ) ) { $border_styles['radius'] = $attributes['style']['border']['radius']; } // Border style. if ( isset( $attributes['style']['border']['style'] ) ) { $border_styles['style'] = $attributes['style']['border']['style']; } // Border width. if ( isset( $attributes['style']['border']['width'] ) ) { $border_styles['width'] = $attributes['style']['border']['width']; } // Border color. $preset_color = array_key_exists( 'borderColor', $attributes ) ? "var:preset|color|{$attributes['borderColor']}" : null; $custom_color = $attributes['style']['border']['color'] ?? null; $border_styles['color'] = $preset_color ? $preset_color : $custom_color; // Individual border styles e.g. top, left etc. foreach ( $sides as $side ) { $border = $attributes['style']['border'][ $side ] ?? null; $border_styles[ $side ] = array( 'color' => $border['color'] ?? null, 'style' => $border['style'] ?? null, 'width' => $border['width'] ?? null, ); } $styles = wp_style_engine_get_styles( array( 'border' => $border_styles ) ); $attributes = array(); if ( ! empty( $styles['classnames'] ) ) { $attributes['class'] = $styles['classnames']; } if ( ! empty( $styles['css'] ) ) { $attributes['style'] = $styles['css']; } return $attributes; } /** * Registers the `core/avatar` block on the server. * * @since 6.0.0 */ function register_block_core_avatar() { register_block_type_from_metadata( __DIR__ . '/avatar', array( 'render_callback' => 'render_block_core_avatar', ) ); } add_action( 'init', 'register_block_core_avatar' ); post-author-name/style-rtl.css 0000775 00000000070 00000000000 0012363 0 ustar 00 .wp-block-post-author-name { box-sizing: border-box; } post-author-name/style.min.css 0000775 00000000061 00000000000 0012346 0 ustar 00 .wp-block-post-author-name{box-sizing:border-box} post-author-name/block.json 0000775 00000002671 00000000000 0011710 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-author-name", "title": "Author Name", "category": "theme", "description": "The author name.", "textdomain": "default", "attributes": { "isLink": { "type": "boolean", "default": false, "role": "content" }, "linkTarget": { "type": "string", "default": "_self", "role": "content" } }, "usesContext": [ "postType", "postId" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "html": false, "spacing": { "margin": true, "padding": true }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-post-author-name" } post-author-name/style-rtl.min.css 0000775 00000000061 00000000000 0013145 0 ustar 00 .wp-block-post-author-name{box-sizing:border-box} post-author-name/style.css 0000775 00000000070 00000000000 0011564 0 ustar 00 .wp-block-post-author-name { box-sizing: border-box; } terms-query/block.json 0000775 00000001633 00000000000 0010777 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/terms-query", "title": "Terms Query", "category": "theme", "description": "An advanced block that allows displaying taxonomy terms based on different query parameters and visual configurations.", "keywords": [ "terms", "taxonomy", "categories", "tags", "list" ], "textdomain": "default", "attributes": { "termQuery": { "type": "object", "default": { "perPage": 10, "taxonomy": "category", "order": "asc", "orderBy": "name", "include": [], "hideEmpty": true, "showNested": false, "inherit": false } }, "tagName": { "type": "string", "default": "div" } }, "usesContext": [ "templateSlug" ], "providesContext": { "termQuery": "termQuery" }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "layout": true, "interactivity": true } } post-author-name.php 0000775 00000003652 00000000000 0010434 0 ustar 00 <?php /** * Server-side rendering of the `core/post-author-name` block. * * @package WordPress */ /** * Renders the `core/post-author-name` block on the server. * * @since 6.2.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the rendered post author name block. */ function render_block_core_post_author_name( $attributes, $content, $block ) { if ( isset( $block->context['postId'] ) ) { $author_id = get_post_field( 'post_author', $block->context['postId'] ); } else { $author_id = get_query_var( 'author' ); } if ( empty( $author_id ) ) { return ''; } if ( isset( $block->context['postType'] ) && ! post_type_supports( $block->context['postType'], 'author' ) ) { return ''; } $author_name = get_the_author_meta( 'display_name', $author_id ); if ( isset( $attributes['isLink'] ) && $attributes['isLink'] ) { $author_name = sprintf( '<a href="%1$s" target="%2$s" class="wp-block-post-author-name__link">%3$s</a>', esc_url( get_author_posts_url( $author_id ) ), esc_attr( $attributes['linkTarget'] ), $author_name ); } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $author_name ); } /** * Registers the `core/post-author-name` block on the server. * * @since 6.2.0 */ function register_block_core_post_author_name() { register_block_type_from_metadata( __DIR__ . '/post-author-name', array( 'render_callback' => 'render_block_core_post_author_name', ) ); } add_action( 'init', 'register_block_core_post_author_name' ); site-title.php 0000775 00000003510 00000000000 0007305 0 ustar 00 <?php /** * Server-side rendering of the `core/site-title` block. * * @package WordPress */ /** * Renders the `core/site-title` block on the server. * * @since 5.8.0 * * @param array $attributes The block attributes. * * @return string The render. */ function render_block_core_site_title( $attributes ) { $site_title = get_bloginfo( 'name' ); if ( ! trim( $site_title ) ) { return ''; } $tag_name = 'h1'; $classes = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}"; if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes .= ' has-link-color'; } if ( isset( $attributes['level'] ) ) { $tag_name = 0 === $attributes['level'] ? 'p' : 'h' . (int) $attributes['level']; } if ( $attributes['isLink'] ) { $aria_current = ! is_paged() && ( is_front_page() || is_home() && ( (int) get_option( 'page_for_posts' ) !== get_queried_object_id() ) ) ? ' aria-current="page"' : ''; $link_target = ! empty( $attributes['linkTarget'] ) ? $attributes['linkTarget'] : '_self'; $site_title = sprintf( '<a href="%1$s" target="%2$s" rel="home"%3$s>%4$s</a>', esc_url( home_url() ), esc_attr( $link_target ), $aria_current, esc_html( $site_title ) ); } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => trim( $classes ) ) ); return sprintf( '<%1$s %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, // already pre-escaped if it is a link. $attributes['isLink'] ? $site_title : esc_html( $site_title ) ); } /** * Registers the `core/site-title` block on the server. * * @since 5.8.0 */ function register_block_core_site_title() { register_block_type_from_metadata( __DIR__ . '/site-title', array( 'render_callback' => 'render_block_core_site_title', ) ); } add_action( 'init', 'register_block_core_site_title' ); comments-pagination-previous.php 0000775 00000003376 00000000000 0013062 0 ustar 00 <?php /** * Server-side rendering of the `core/comments-pagination-previous` block. * * @package WordPress */ /** * Renders the `core/comments-pagination-previous` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the previous posts link for the comments pagination. */ function render_block_core_comments_pagination_previous( $attributes, $content, $block ) { $default_label = __( 'Older Comments' ); $label = isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ? $attributes['label'] : $default_label; $pagination_arrow = get_comments_pagination_arrow( $block, 'previous' ); if ( $pagination_arrow ) { $label = $pagination_arrow . $label; } $filter_link_attributes = static function () { return get_block_wrapper_attributes(); }; add_filter( 'previous_comments_link_attributes', $filter_link_attributes ); $comment_vars = build_comment_query_vars_from_block( $block ); $previous_comments_link = get_previous_comments_link( $label, $comment_vars['paged'] ?? null ); remove_filter( 'previous_comments_link_attributes', $filter_link_attributes ); if ( ! isset( $previous_comments_link ) ) { return ''; } return $previous_comments_link; } /** * Registers the `core/comments-pagination-previous` block on the server. * * @since 6.0.0 */ function register_block_core_comments_pagination_previous() { register_block_type_from_metadata( __DIR__ . '/comments-pagination-previous', array( 'render_callback' => 'render_block_core_comments_pagination_previous', ) ); } add_action( 'init', 'register_block_core_comments_pagination_previous' ); comments.php 0000775 00000015200 00000000000 0007046 0 ustar 00 <?php /** * Server-side rendering of the `core/comments` block. * * @package WordPress */ /** * Renders the `core/comments` block on the server. * * This render callback is mainly for rendering a dynamic, legacy version of * this block (the old `core/post-comments`). It uses the `comments_template()` * function to generate the output, in the same way as classic PHP themes. * * As this callback will always run during SSR, first we need to check whether * the block is in legacy mode. If not, the HTML generated in the editor is * returned instead. * * @since 6.1.0 * * @global WP_Post $post Global post object. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the filtered post comments for the current post wrapped inside "p" tags. */ function render_block_core_comments( $attributes, $content, $block ) { global $post; if ( ! isset( $block->context['postId'] ) ) { return ''; } $post_id = $block->context['postId']; // Return early if there are no comments and comments are closed. if ( ! comments_open( $post_id ) && (int) get_comments_number( $post_id ) === 0 ) { return ''; } // If this isn't the legacy block, we need to render the static version of this block. $is_legacy = 'core/post-comments' === $block->name || ! empty( $attributes['legacy'] ); if ( ! $is_legacy ) { return $block->render( array( 'dynamic' => false ) ); } $post_before = $post; $post = get_post( $post_id ); setup_postdata( $post ); ob_start(); /* * There's a deprecation warning generated by WP Core. * Ideally this deprecation is removed from Core. * In the meantime, this removes it from the output. */ add_filter( 'deprecated_file_trigger_error', '__return_false' ); comments_template(); remove_filter( 'deprecated_file_trigger_error', '__return_false' ); $output = ob_get_clean(); $post = $post_before; $classnames = array(); // Adds the old class name for styles' backwards compatibility. if ( isset( $attributes['legacy'] ) ) { $classnames[] = 'wp-block-post-comments'; } if ( isset( $attributes['textAlign'] ) ) { $classnames[] = 'has-text-align-' . $attributes['textAlign']; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classnames ) ) ); /* * Enqueues scripts and styles required only for the legacy version. That is * why they are not defined in `block.json`. */ wp_enqueue_script( 'comment-reply' ); enqueue_legacy_post_comments_block_styles( $block->name ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $output ); } /** * Registers the `core/comments` block on the server. * * @since 6.1.0 */ function register_block_core_comments() { register_block_type_from_metadata( __DIR__ . '/comments', array( 'render_callback' => 'render_block_core_comments', 'skip_inner_blocks' => true, ) ); } add_action( 'init', 'register_block_core_comments' ); /** * Use the button block classes for the form-submit button. * * @since 6.1.0 * * @param array $fields The default comment form arguments. * * @return array Returns the modified fields. */ function comments_block_form_defaults( $fields ) { if ( wp_is_block_theme() ) { $fields['submit_button'] = '<input name="%1$s" type="submit" id="%2$s" class="%3$s wp-block-button__link ' . wp_theme_get_element_class_name( 'button' ) . '" value="%4$s" />'; $fields['submit_field'] = '<p class="form-submit wp-block-button">%1$s %2$s</p>'; } return $fields; } add_filter( 'comment_form_defaults', 'comments_block_form_defaults' ); /** * Enqueues styles from the legacy `core/post-comments` block. These styles are * required only by the block's fallback. * * @since 6.1.0 * * @param string $block_name Name of the new block type. */ function enqueue_legacy_post_comments_block_styles( $block_name ) { static $are_styles_enqueued = false; if ( ! $are_styles_enqueued ) { $handles = array( 'wp-block-post-comments', 'wp-block-buttons', 'wp-block-button', ); foreach ( $handles as $handle ) { wp_enqueue_block_style( $block_name, array( 'handle' => $handle ) ); } $are_styles_enqueued = true; } } /** * Ensures backwards compatibility for any users running the Gutenberg plugin * who have used Post Comments before it was merged into Comments Query Loop. * * The same approach was followed when core/query-loop was renamed to * core/post-template. * * @since 6.1.0 * * @see https://github.com/WordPress/gutenberg/pull/41807 * @see https://github.com/WordPress/gutenberg/pull/32514 */ function register_legacy_post_comments_block() { $registry = WP_Block_Type_Registry::get_instance(); /* * Remove the old `post-comments` block if it was already registered, as it * is about to be replaced by the type defined below. */ if ( $registry->is_registered( 'core/post-comments' ) ) { unregister_block_type( 'core/post-comments' ); } // Recreate the legacy block metadata. $metadata = array( 'name' => 'core/post-comments', 'category' => 'theme', 'attributes' => array( 'textAlign' => array( 'type' => 'string', ), ), 'uses_context' => array( 'postId', 'postType', ), 'supports' => array( 'html' => false, 'align' => array( 'wide', 'full' ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalDefaultControls' => array( 'fontSize' => true, ), ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, ), ), 'inserter' => false, ), 'style' => array( 'wp-block-post-comments', 'wp-block-buttons', 'wp-block-button', ), 'render_callback' => 'render_block_core_comments', 'skip_inner_blocks' => true, ); /* * Filters the metadata object, the same way it's done inside * `register_block_type_from_metadata()`. This applies some default filters, * like `_wp_multiple_block_styles`, which is required in this case because * the block has multiple styles. */ /** This filter is documented in wp-includes/blocks.php */ $metadata = apply_filters( 'block_type_metadata', $metadata ); register_block_type( 'core/post-comments', $metadata ); } add_action( 'init', 'register_legacy_post_comments_block', 21 ); post-terms/style-rtl.css 0000775 00000000204 00000000000 0011274 0 ustar 00 .wp-block-post-terms { box-sizing: border-box; } .wp-block-post-terms .wp-block-post-terms__separator { white-space: pre-wrap; } post-terms/style.min.css 0000775 00000000165 00000000000 0011265 0 ustar 00 .wp-block-post-terms{box-sizing:border-box}.wp-block-post-terms .wp-block-post-terms__separator{white-space:pre-wrap} post-terms/block.json 0000775 00000002775 00000000000 0010627 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-terms", "title": "Post Terms", "category": "theme", "description": "Post terms.", "textdomain": "default", "attributes": { "term": { "type": "string" }, "separator": { "type": "string", "default": ", " }, "prefix": { "type": "string", "default": "", "role": "content" }, "suffix": { "type": "string", "default": "", "role": "content" } }, "usesContext": [ "postId", "postType" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-post-terms" } post-terms/style-rtl.min.css 0000775 00000000165 00000000000 0012064 0 ustar 00 .wp-block-post-terms{box-sizing:border-box}.wp-block-post-terms .wp-block-post-terms__separator{white-space:pre-wrap} post-terms/style.css 0000775 00000000204 00000000000 0010475 0 ustar 00 .wp-block-post-terms { box-sizing: border-box; } .wp-block-post-terms .wp-block-post-terms__separator { white-space: pre-wrap; } accordion-heading/style-rtl.css 0000775 00000001563 00000000000 0012526 0 ustar 00 .wp-block-accordion-heading__toggle { font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; text-decoration: inherit; word-spacing: inherit; font-style: inherit; background: none; border: none; color: inherit; padding: var(--wp--preset--spacing--20, 1em) 0; cursor: pointer; overflow: hidden; display: flex; align-items: center; text-align: inherit; width: 100%; } .wp-block-accordion-heading__toggle:not(:focus-visible) { outline: none; } .wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title { text-decoration: underline; } .wp-block-accordion-heading__toggle-title { flex: 1; } .wp-block-accordion-heading__toggle-icon { width: 1.2em; height: 1.2em; display: flex; align-items: center; justify-content: center; } accordion-heading/style.min.css 0000775 00000001361 00000000000 0012505 0 ustar 00 .wp-block-accordion-heading__toggle{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;overflow:hidden;padding:var(--wp--preset--spacing--20,1em) 0;text-align:inherit;text-decoration:inherit;text-transform:inherit;width:100%;word-spacing:inherit}.wp-block-accordion-heading__toggle:not(:focus-visible){outline:none}.wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title{text-decoration:underline}.wp-block-accordion-heading__toggle-title{flex:1}.wp-block-accordion-heading__toggle-icon{align-items:center;display:flex;height:1.2em;justify-content:center;width:1.2em} accordion-heading/block.json 0000775 00000004177 00000000000 0012046 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/accordion-heading", "title": "Accordion Heading", "category": "design", "description": "Displays a heading that toggles the accordion panel.", "parent": [ "core/accordion-item" ], "usesContext": [ "core/accordion-icon-position", "core/accordion-show-icon", "core/accordion-heading-level" ], "supports": { "anchor": true, "color": { "background": true, "gradients": true }, "align": false, "interactivity": true, "spacing": { "padding": true, "__experimentalDefaultControls": { "padding": true }, "__experimentalSkipSerialization": true, "__experimentalSelector": ".wp-block-accordion-heading__toggle" }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "typography": { "__experimentalSkipSerialization": [ "textDecoration", "letterSpacing" ], "fontSize": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true, "fontFamily": true } }, "shadow": true, "visibility": false, "lock": false }, "selectors": { "typography": { "letterSpacing": ".wp-block-accordion-heading .wp-block-accordion-heading__toggle-title", "textDecoration": ".wp-block-accordion-heading .wp-block-accordion-heading__toggle-title" } }, "attributes": { "openByDefault": { "type": "boolean", "default": false }, "title": { "type": "rich-text", "source": "rich-text", "selector": ".wp-block-accordion-heading__toggle-title", "role": "content" }, "level": { "type": "number" }, "iconPosition": { "type": "string", "enum": [ "left", "right" ], "default": "right" }, "showIcon": { "type": "boolean", "default": true } }, "textdomain": "default" } accordion-heading/style-rtl.min.css 0000775 00000001361 00000000000 0013304 0 ustar 00 .wp-block-accordion-heading__toggle{align-items:center;background:none;border:none;color:inherit;cursor:pointer;display:flex;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;overflow:hidden;padding:var(--wp--preset--spacing--20,1em) 0;text-align:inherit;text-decoration:inherit;text-transform:inherit;width:100%;word-spacing:inherit}.wp-block-accordion-heading__toggle:not(:focus-visible){outline:none}.wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title{text-decoration:underline}.wp-block-accordion-heading__toggle-title{flex:1}.wp-block-accordion-heading__toggle-icon{align-items:center;display:flex;height:1.2em;justify-content:center;width:1.2em} accordion-heading/style.css 0000775 00000001563 00000000000 0011727 0 ustar 00 .wp-block-accordion-heading__toggle { font-family: inherit; font-size: inherit; font-weight: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; text-decoration: inherit; word-spacing: inherit; font-style: inherit; background: none; border: none; color: inherit; padding: var(--wp--preset--spacing--20, 1em) 0; cursor: pointer; overflow: hidden; display: flex; align-items: center; text-align: inherit; width: 100%; } .wp-block-accordion-heading__toggle:not(:focus-visible) { outline: none; } .wp-block-accordion-heading__toggle:hover .wp-block-accordion-heading__toggle-title { text-decoration: underline; } .wp-block-accordion-heading__toggle-title { flex: 1; } .wp-block-accordion-heading__toggle-icon { width: 1.2em; height: 1.2em; display: flex; align-items: center; justify-content: center; } paragraph.php 0000775 00000002163 00000000000 0007172 0 ustar 00 <?php /** * Server-side rendering of the `core/paragraph` block. * * @package WordPress */ /** * Append the `wp-block-paragraph` class before rendering the stored * `core/paragraph` block contents. * * For example, the following block content: * <p class="align-left">Hello World</p> * * Would be transformed to: * <p class="align-left wp-block-paragraph">Hello World</p> * * @since 7.0.0 * * @param string $block_content The block content. * * @return string Filtered block content. */ function block_core_paragraph_add_class( $block_content ) { if ( ! $block_content ) { return $block_content; } $processor = new WP_HTML_Tag_Processor( $block_content ); if ( $processor->next_tag( 'p' ) ) { $processor->add_class( 'wp-block-paragraph' ); } return $processor->get_updated_html(); } add_filter( 'render_block_core/paragraph', 'block_core_paragraph_add_class' ); /** * Registers the `core/paragraph` block on server. * * @since 7.0.0 */ function register_block_core_paragraph() { register_block_type_from_metadata( __DIR__ . '/paragraph' ); } add_action( 'init', 'register_block_core_paragraph' ); require-static-blocks.php 0000775 00000001027 00000000000 0011437 0 ustar 00 <?php // This file was autogenerated by tools/gutenberg/copy.js, do not change manually! // Returns folder names for static blocks necessary for core blocks registration. return array( 'accordion-heading', 'accordion-panel', 'audio', 'buttons', 'code', 'column', 'columns', 'embed', 'freeform', 'group', 'html', 'list-item', 'math', 'missing', 'more', 'nextpage', 'preformatted', 'pullquote', 'quote', 'separator', 'social-links', 'spacer', 'tab-panels', 'table', 'terms-query', 'text-columns', 'verse', ); media-text/editor.css 0000775 00000002014 00000000000 0010550 0 ustar 00 .wp-block-media-text__media { position: relative; } .wp-block-media-text__media.is-transient img { opacity: 0.3; } .wp-block-media-text__media .components-spinner { position: absolute; top: 50%; left: 50%; margin-top: -9px; margin-left: -9px; } .wp-block-media-text .__resizable_base__ { grid-column: 1/span 2; grid-row: 2; } .wp-block-media-text .editor-media-container__resizer { width: 100% !important; } .wp-block-media-text.is-image-fill .editor-media-container__resizer, .wp-block-media-text.is-image-fill .components-placeholder.has-illustration, .wp-block-media-text.is-image-fill-element .editor-media-container__resizer, .wp-block-media-text.is-image-fill-element .components-placeholder.has-illustration { height: 100% !important; } .wp-block-media-text > .block-editor-block-list__layout > .block-editor-block-list__block { max-width: unset; } /* Make the featured image placeholder the same height as the media selection area. */ .wp-block-media-text--placeholder-image { min-height: 205px; } media-text/editor.min.css 0000775 00000001523 00000000000 0011336 0 ustar 00 .wp-block-media-text__media{position:relative}.wp-block-media-text__media.is-transient img{opacity:.3}.wp-block-media-text__media .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.wp-block-media-text .__resizable_base__{grid-column:1/span 2;grid-row:2}.wp-block-media-text .editor-media-container__resizer{width:100%!important}.wp-block-media-text.is-image-fill .components-placeholder.has-illustration,.wp-block-media-text.is-image-fill .editor-media-container__resizer,.wp-block-media-text.is-image-fill-element .components-placeholder.has-illustration,.wp-block-media-text.is-image-fill-element .editor-media-container__resizer{height:100%!important}.wp-block-media-text>.block-editor-block-list__layout>.block-editor-block-list__block{max-width:unset}.wp-block-media-text--placeholder-image{min-height:205px} media-text/style-rtl.css 0000775 00000006410 00000000000 0011225 0 ustar 00 /** * Breakpoints & Media Queries */ .wp-block-media-text { direction: ltr; display: grid; grid-template-columns: 50% 1fr; grid-template-rows: auto; box-sizing: border-box; } .wp-block-media-text.has-media-on-the-right { grid-template-columns: 1fr 50%; } .wp-block-media-text.is-vertically-aligned-top > .wp-block-media-text__content, .wp-block-media-text.is-vertically-aligned-top > .wp-block-media-text__media { align-self: start; } .wp-block-media-text > .wp-block-media-text__content, .wp-block-media-text > .wp-block-media-text__media, .wp-block-media-text.is-vertically-aligned-center > .wp-block-media-text__content, .wp-block-media-text.is-vertically-aligned-center > .wp-block-media-text__media { align-self: center; } .wp-block-media-text.is-vertically-aligned-bottom > .wp-block-media-text__content, .wp-block-media-text.is-vertically-aligned-bottom > .wp-block-media-text__media { align-self: end; } .wp-block-media-text > .wp-block-media-text__media { grid-column: 1; grid-row: 1; margin: 0; } .wp-block-media-text > .wp-block-media-text__content { direction: rtl; grid-column: 2; grid-row: 1; padding: 0 8% 0 8%; word-break: break-word; } .wp-block-media-text.has-media-on-the-right > .wp-block-media-text__media { grid-column: 2; grid-row: 1; } .wp-block-media-text.has-media-on-the-right > .wp-block-media-text__content { grid-column: 1; grid-row: 1; } .wp-block-media-text__media a { display: block; } .wp-block-media-text__media img, .wp-block-media-text__media video { height: auto; max-width: unset; width: 100%; vertical-align: middle; } /* `is-image-fill` is deprecated and the styles are kept for backwards compatibility. */ .wp-block-media-text.is-image-fill > .wp-block-media-text__media { height: 100%; min-height: 250px; background-size: cover; } .wp-block-media-text.is-image-fill > .wp-block-media-text__media > a { display: block; height: 100%; } .wp-block-media-text.is-image-fill > .wp-block-media-text__media img { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } /* Image fill for versions 8 and onwards */ .wp-block-media-text.is-image-fill-element > .wp-block-media-text__media { position: relative; height: 100%; min-height: 250px; } .wp-block-media-text.is-image-fill-element > .wp-block-media-text__media > a { display: block; height: 100%; } .wp-block-media-text.is-image-fill-element > .wp-block-media-text__media img { position: absolute; width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; } /* * Here we here not able to use a mobile first CSS approach. * Custom widths are set using inline styles, and on mobile, * we need 100% width, so we use important to overwrite the inline style. * If the style were set on mobile first, on desktop styles, * we would have no way of setting the style again to the inline style. */ @media (max-width: 600px) { .wp-block-media-text.is-stacked-on-mobile { grid-template-columns: 100% !important; } .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__media { grid-column: 1; grid-row: 1; } .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content { grid-column: 1; grid-row: 2; } } media-text/editor-rtl.min.css 0000775 00000001525 00000000000 0012137 0 ustar 00 .wp-block-media-text__media{position:relative}.wp-block-media-text__media.is-transient img{opacity:.3}.wp-block-media-text__media .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.wp-block-media-text .__resizable_base__{grid-column:1/span 2;grid-row:2}.wp-block-media-text .editor-media-container__resizer{width:100%!important}.wp-block-media-text.is-image-fill .components-placeholder.has-illustration,.wp-block-media-text.is-image-fill .editor-media-container__resizer,.wp-block-media-text.is-image-fill-element .components-placeholder.has-illustration,.wp-block-media-text.is-image-fill-element .editor-media-container__resizer{height:100%!important}.wp-block-media-text>.block-editor-block-list__layout>.block-editor-block-list__block{max-width:unset}.wp-block-media-text--placeholder-image{min-height:205px} media-text/style.min.css 0000775 00000004603 00000000000 0011212 0 ustar 00 .wp-block-media-text{box-sizing:border-box;direction:ltr;display:grid;grid-template-columns:50% 1fr;grid-template-rows:auto}.wp-block-media-text.has-media-on-the-right{grid-template-columns:1fr 50%}.wp-block-media-text.is-vertically-aligned-top>.wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-top>.wp-block-media-text__media{align-self:start}.wp-block-media-text.is-vertically-aligned-center>.wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-center>.wp-block-media-text__media,.wp-block-media-text>.wp-block-media-text__content,.wp-block-media-text>.wp-block-media-text__media{align-self:center}.wp-block-media-text.is-vertically-aligned-bottom>.wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-bottom>.wp-block-media-text__media{align-self:end}.wp-block-media-text>.wp-block-media-text__media{grid-column:1;grid-row:1;margin:0}.wp-block-media-text>.wp-block-media-text__content{direction:ltr;grid-column:2;grid-row:1;padding:0 8%;word-break:break-word}.wp-block-media-text.has-media-on-the-right>.wp-block-media-text__media{grid-column:2;grid-row:1}.wp-block-media-text.has-media-on-the-right>.wp-block-media-text__content{grid-column:1;grid-row:1}.wp-block-media-text__media a{display:block}.wp-block-media-text__media img,.wp-block-media-text__media video{height:auto;max-width:unset;vertical-align:middle;width:100%}.wp-block-media-text.is-image-fill>.wp-block-media-text__media{background-size:cover;height:100%;min-height:250px}.wp-block-media-text.is-image-fill>.wp-block-media-text__media>a{display:block;height:100%}.wp-block-media-text.is-image-fill>.wp-block-media-text__media img{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media{height:100%;min-height:250px;position:relative}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media>a{display:block;height:100%}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media img{height:100%;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%}@media (max-width:600px){.wp-block-media-text.is-stacked-on-mobile{grid-template-columns:100%!important}.wp-block-media-text.is-stacked-on-mobile>.wp-block-media-text__media{grid-column:1;grid-row:1}.wp-block-media-text.is-stacked-on-mobile>.wp-block-media-text__content{grid-column:1;grid-row:2}} media-text/block.json 0000775 00000005560 00000000000 0010546 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/media-text", "title": "Media & Text", "category": "media", "description": "Set media and words side-by-side for a richer layout.", "keywords": [ "image", "video" ], "textdomain": "default", "attributes": { "align": { "type": "string", "default": "none" }, "mediaAlt": { "type": "string", "source": "attribute", "selector": "figure img", "attribute": "alt", "default": "", "role": "content" }, "mediaPosition": { "type": "string", "default": "left" }, "mediaId": { "type": "number", "role": "content" }, "mediaUrl": { "type": "string", "source": "attribute", "selector": "figure video,figure img", "attribute": "src", "role": "content" }, "mediaLink": { "type": "string" }, "linkDestination": { "type": "string" }, "linkTarget": { "type": "string", "source": "attribute", "selector": "figure a", "attribute": "target" }, "href": { "type": "string", "source": "attribute", "selector": "figure a", "attribute": "href", "role": "content" }, "rel": { "type": "string", "source": "attribute", "selector": "figure a", "attribute": "rel" }, "linkClass": { "type": "string", "source": "attribute", "selector": "figure a", "attribute": "class" }, "mediaType": { "type": "string", "role": "content" }, "mediaWidth": { "type": "number", "default": 50 }, "mediaSizeSlug": { "type": "string" }, "isStackedOnMobile": { "type": "boolean", "default": true }, "verticalAlignment": { "type": "string" }, "imageFill": { "type": "boolean" }, "focalPoint": { "type": "object" }, "useFeaturedImage": { "type": "boolean", "default": false } }, "usesContext": [ "postId", "postType" ], "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "color": { "gradients": true, "heading": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "allowedBlocks": true }, "editorStyle": "wp-block-media-text-editor", "style": "wp-block-media-text" } media-text/style-rtl.min.css 0000775 00000004603 00000000000 0012011 0 ustar 00 .wp-block-media-text{box-sizing:border-box;direction:ltr;display:grid;grid-template-columns:50% 1fr;grid-template-rows:auto}.wp-block-media-text.has-media-on-the-right{grid-template-columns:1fr 50%}.wp-block-media-text.is-vertically-aligned-top>.wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-top>.wp-block-media-text__media{align-self:start}.wp-block-media-text.is-vertically-aligned-center>.wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-center>.wp-block-media-text__media,.wp-block-media-text>.wp-block-media-text__content,.wp-block-media-text>.wp-block-media-text__media{align-self:center}.wp-block-media-text.is-vertically-aligned-bottom>.wp-block-media-text__content,.wp-block-media-text.is-vertically-aligned-bottom>.wp-block-media-text__media{align-self:end}.wp-block-media-text>.wp-block-media-text__media{grid-column:1;grid-row:1;margin:0}.wp-block-media-text>.wp-block-media-text__content{direction:rtl;grid-column:2;grid-row:1;padding:0 8%;word-break:break-word}.wp-block-media-text.has-media-on-the-right>.wp-block-media-text__media{grid-column:2;grid-row:1}.wp-block-media-text.has-media-on-the-right>.wp-block-media-text__content{grid-column:1;grid-row:1}.wp-block-media-text__media a{display:block}.wp-block-media-text__media img,.wp-block-media-text__media video{height:auto;max-width:unset;vertical-align:middle;width:100%}.wp-block-media-text.is-image-fill>.wp-block-media-text__media{background-size:cover;height:100%;min-height:250px}.wp-block-media-text.is-image-fill>.wp-block-media-text__media>a{display:block;height:100%}.wp-block-media-text.is-image-fill>.wp-block-media-text__media img{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media{height:100%;min-height:250px;position:relative}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media>a{display:block;height:100%}.wp-block-media-text.is-image-fill-element>.wp-block-media-text__media img{height:100%;-o-object-fit:cover;object-fit:cover;position:absolute;width:100%}@media (max-width:600px){.wp-block-media-text.is-stacked-on-mobile{grid-template-columns:100%!important}.wp-block-media-text.is-stacked-on-mobile>.wp-block-media-text__media{grid-column:1;grid-row:1}.wp-block-media-text.is-stacked-on-mobile>.wp-block-media-text__content{grid-column:1;grid-row:2}} media-text/style.css 0000775 00000006744 00000000000 0010440 0 ustar 00 /** * Breakpoints & Media Queries */ .wp-block-media-text { /*rtl:begin:ignore*/ direction: ltr; /*rtl:end:ignore*/ display: grid; grid-template-columns: 50% 1fr; grid-template-rows: auto; box-sizing: border-box; } .wp-block-media-text.has-media-on-the-right { grid-template-columns: 1fr 50%; } .wp-block-media-text.is-vertically-aligned-top > .wp-block-media-text__content, .wp-block-media-text.is-vertically-aligned-top > .wp-block-media-text__media { align-self: start; } .wp-block-media-text > .wp-block-media-text__content, .wp-block-media-text > .wp-block-media-text__media, .wp-block-media-text.is-vertically-aligned-center > .wp-block-media-text__content, .wp-block-media-text.is-vertically-aligned-center > .wp-block-media-text__media { align-self: center; } .wp-block-media-text.is-vertically-aligned-bottom > .wp-block-media-text__content, .wp-block-media-text.is-vertically-aligned-bottom > .wp-block-media-text__media { align-self: end; } .wp-block-media-text > .wp-block-media-text__media { /*rtl:begin:ignore*/ grid-column: 1; grid-row: 1; /*rtl:end:ignore*/ margin: 0; } .wp-block-media-text > .wp-block-media-text__content { direction: ltr; /*rtl:begin:ignore*/ grid-column: 2; grid-row: 1; /*rtl:end:ignore*/ padding: 0 8% 0 8%; word-break: break-word; } .wp-block-media-text.has-media-on-the-right > .wp-block-media-text__media { /*rtl:begin:ignore*/ grid-column: 2; grid-row: 1; /*rtl:end:ignore*/ } .wp-block-media-text.has-media-on-the-right > .wp-block-media-text__content { /*rtl:begin:ignore*/ grid-column: 1; grid-row: 1; /*rtl:end:ignore*/ } .wp-block-media-text__media a { display: block; } .wp-block-media-text__media img, .wp-block-media-text__media video { height: auto; max-width: unset; width: 100%; vertical-align: middle; } /* `is-image-fill` is deprecated and the styles are kept for backwards compatibility. */ .wp-block-media-text.is-image-fill > .wp-block-media-text__media { height: 100%; min-height: 250px; background-size: cover; } .wp-block-media-text.is-image-fill > .wp-block-media-text__media > a { display: block; height: 100%; } .wp-block-media-text.is-image-fill > .wp-block-media-text__media img { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); border: 0; } /* Image fill for versions 8 and onwards */ .wp-block-media-text.is-image-fill-element > .wp-block-media-text__media { position: relative; height: 100%; min-height: 250px; } .wp-block-media-text.is-image-fill-element > .wp-block-media-text__media > a { display: block; height: 100%; } .wp-block-media-text.is-image-fill-element > .wp-block-media-text__media img { position: absolute; width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; } /* * Here we here not able to use a mobile first CSS approach. * Custom widths are set using inline styles, and on mobile, * we need 100% width, so we use important to overwrite the inline style. * If the style were set on mobile first, on desktop styles, * we would have no way of setting the style again to the inline style. */ @media (max-width: 600px) { .wp-block-media-text.is-stacked-on-mobile { grid-template-columns: 100% !important; } .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__media { grid-column: 1; grid-row: 1; } .wp-block-media-text.is-stacked-on-mobile > .wp-block-media-text__content { grid-column: 1; grid-row: 2; } } media-text/editor-rtl.css 0000775 00000002016 00000000000 0011351 0 ustar 00 .wp-block-media-text__media { position: relative; } .wp-block-media-text__media.is-transient img { opacity: 0.3; } .wp-block-media-text__media .components-spinner { position: absolute; top: 50%; right: 50%; margin-top: -9px; margin-right: -9px; } .wp-block-media-text .__resizable_base__ { grid-column: 1/span 2; grid-row: 2; } .wp-block-media-text .editor-media-container__resizer { width: 100% !important; } .wp-block-media-text.is-image-fill .editor-media-container__resizer, .wp-block-media-text.is-image-fill .components-placeholder.has-illustration, .wp-block-media-text.is-image-fill-element .editor-media-container__resizer, .wp-block-media-text.is-image-fill-element .components-placeholder.has-illustration { height: 100% !important; } .wp-block-media-text > .block-editor-block-list__layout > .block-editor-block-list__block { max-width: unset; } /* Make the featured image placeholder the same height as the media selection area. */ .wp-block-media-text--placeholder-image { min-height: 205px; } post-time-to-read.php 0000775 00000014413 00000000000 0010500 0 ustar 00 <?php /** * Server-side rendering of the `core/post-time-to-read` block. * * @package WordPress */ /** * Counts words or characters in a provided text string. * * This function currently employs an array of regular expressions * to parse HTML and count words, which may result in inaccurate * word counts. However, it is designed primarily to agree with the * corresponding JavaScript function. * * Any improvements in the word counting, for example with the HTML API * and {@see \IntlBreakIterator::createWordInstance()} should coordinate * with changes to the JavaScript implementation to ensure consistency * between the editor and the rendered page. * * @since 6.9.0 * * @param string $text Text to count elements in. * @param string $type The type of count. Accepts 'words', 'characters_excluding_spaces', or 'characters_including_spaces'. * * @return string The rendered word count. */ function block_core_post_time_to_read_word_count( $text, $type ) { $settings = array( 'html_regexp' => '/<\/?[a-z][^>]*?>/i', 'html_comment_regexp' => '/<!--[\s\S]*?-->/', 'space_regexp' => '/ | /i', 'html_entity_regexp' => '/&\S+?;/', 'connector_regexp' => "/--|\x{2014}/u", 'remove_regexp' => "/[\x{0021}-\x{0040}\x{005B}-\x{0060}\x{007B}-\x{007E}\x{0080}-\x{00BF}\x{00D7}\x{00F7}\x{2000}-\x{2BFF}\x{2E00}-\x{2E7F}]/u", 'astral_regexp' => "/[\x{010000}-\x{10FFFF}]/u", 'words_regexp' => '/\S\s+/u', 'characters_excluding_spaces_regexp' => '/\S/u', 'characters_including_spaces_regexp' => "/[^\f\n\r\t\v\x{00AD}\x{2028}\x{2029}]/u", ); $count = 0; if ( '' === trim( $text ) ) { return $count; } // Sanitize type to one of three possibilities: 'words', 'characters_excluding_spaces' or 'characters_including_spaces'. if ( 'characters_excluding_spaces' !== $type && 'characters_including_spaces' !== $type ) { $type = 'words'; } $text .= "\n"; // Replace all HTML with a new-line. $text = preg_replace( $settings['html_regexp'], "\n", $text ); // Remove all HTML comments. $text = preg_replace( $settings['html_comment_regexp'], '', $text ); // If a shortcode regular expression has been provided use it to remove shortcodes. if ( ! empty( $settings['shortcodes_regexp'] ) ) { $text = preg_replace( $settings['shortcodes_regexp'], "\n", $text ); } // Normalize non-breaking space to a normal space. $text = preg_replace( $settings['space_regexp'], ' ', $text ); if ( 'words' === $type ) { // Remove HTML Entities. $text = preg_replace( $settings['html_entity_regexp'], '', $text ); // Convert connectors to spaces to count attached text as words. $text = preg_replace( $settings['connector_regexp'], ' ', $text ); // Remove unwanted characters. $text = preg_replace( $settings['remove_regexp'], '', $text ); } else { // Convert HTML Entities to "a". $text = preg_replace( $settings['html_entity_regexp'], 'a', $text ); // Remove surrogate points. $text = preg_replace( $settings['astral_regexp'], 'a', $text ); } // Match with the selected type regular expression to count the items. return (int) preg_match_all( $settings[ $type . '_regexp' ], $text ); } /** * Renders the `core/post-time-to-read` block on the server. * * @since 6.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the rendered post author name block. */ function render_block_core_post_time_to_read( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { return ''; } $content = get_the_content(); $average_reading_rate = $attributes['averageReadingSpeed'] ?? 189; $display_mode = $attributes['displayMode'] ?? 'time'; $word_count_type = wp_get_word_count_type(); $total_words = block_core_post_time_to_read_word_count( $content, $word_count_type ); $parts = array(); // Add "time to read" part, if enabled. if ( 'time' === $display_mode ) { if ( ! empty( $attributes['displayAsRange'] ) ) { // Calculate faster reading rate with 20% speed = lower minutes, // and slower reading rate with 20% speed = higher minutes. $min_minutes = max( 1, (int) round( $total_words / $average_reading_rate * 0.8 ) ); $max_minutes = max( 1, (int) round( $total_words / $average_reading_rate * 1.2 ) ); if ( $min_minutes === $max_minutes ) { $max_minutes = $min_minutes + 1; } /* translators: 1: minimum minutes, 2: maximum minutes to read the post. */ $time_string = sprintf( /* translators: 1: minimum minutes, 2: maximum minutes to read the post. */ _x( '%1$s–%2$s minutes', 'Range of minutes to read' ), $min_minutes, $max_minutes ); } else { $minutes_to_read = max( 1, (int) round( $total_words / $average_reading_rate ) ); $time_string = sprintf( /* translators: %s: the number of minutes to read the post. */ _n( '%s minute', '%s minutes', $minutes_to_read ), $minutes_to_read ); } $parts[] = $time_string; } // Add "word count" part, if enabled. if ( 'words' === $display_mode ) { $word_count_string = 'words' === $word_count_type ? sprintf( /* translators: %s: the number of words in the post. */ _n( '%s word', '%s words', $total_words ), number_format_i18n( $total_words ) ) : sprintf( /* translators: %s: the number of characters in the post. */ _n( '%s character', '%s characters', $total_words ), number_format_i18n( $total_words ) ); $parts[] = $word_count_string; } $display_string = implode( '<br>', $parts ); $align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}"; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $display_string ); } /** * Registers the `core/post-time-to-read` block on the server. * * @since 6.9.0 */ function register_block_core_post_time_to_read() { register_block_type_from_metadata( __DIR__ . '/post-time-to-read', array( 'render_callback' => 'render_block_core_post_time_to_read', ) ); } add_action( 'init', 'register_block_core_post_time_to_read' ); post-author-biography/style-rtl.css 0000775 00000000126 00000000000 0013431 0 ustar 00 .wp-block-post-author-biography { box-sizing: border-box; white-space: pre-wrap; } post-author-biography/style.min.css 0000775 00000000113 00000000000 0013410 0 ustar 00 .wp-block-post-author-biography{box-sizing:border-box;white-space:pre-wrap} post-author-biography/block.json 0000775 00000002353 00000000000 0012751 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-author-biography", "title": "Author Biography", "category": "theme", "description": "The author biography.", "textdomain": "default", "usesContext": [ "postType", "postId" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "spacing": { "margin": true, "padding": true }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-post-author-biography" } post-author-biography/style-rtl.min.css 0000775 00000000113 00000000000 0014207 0 ustar 00 .wp-block-post-author-biography{box-sizing:border-box;white-space:pre-wrap} post-author-biography/style.css 0000775 00000000126 00000000000 0012632 0 ustar 00 .wp-block-post-author-biography { box-sizing: border-box; white-space: pre-wrap; } query-pagination.php 0000775 00000002230 00000000000 0010514 0 ustar 00 <?php /** * Server-side rendering of the `core/query-pagination` block. * * @package WordPress */ /** * Renders the `core/query-pagination` block on the server. * * @since 5.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * * @return string Returns the wrapper for the Query pagination. */ function render_block_core_query_pagination( $attributes, $content ) { if ( empty( trim( $content ) ) ) { return ''; } $classes = ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) ? 'has-link-color' : ''; $wrapper_attributes = get_block_wrapper_attributes( array( 'aria-label' => __( 'Pagination' ), 'class' => $classes, ) ); return sprintf( '<nav %1$s>%2$s</nav>', $wrapper_attributes, $content ); } /** * Registers the `core/query-pagination` block on the server. * * @since 5.8.0 */ function register_block_core_query_pagination() { register_block_type_from_metadata( __DIR__ . '/query-pagination', array( 'render_callback' => 'render_block_core_query_pagination', ) ); } add_action( 'init', 'register_block_core_query_pagination' ); comments-pagination-next.php 0000775 00000003604 00000000000 0012156 0 ustar 00 <?php /** * Server-side rendering of the `core/comments-pagination-next` block. * * @package WordPress */ /** * Renders the `core/comments-pagination-next` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the next comments link for the query pagination. */ function render_block_core_comments_pagination_next( $attributes, $content, $block ) { // Bail out early if the post ID is not set for some reason. if ( empty( $block->context['postId'] ) ) { return ''; } $comment_vars = build_comment_query_vars_from_block( $block ); $max_page = ( new WP_Comment_Query( $comment_vars ) )->max_num_pages; $default_label = __( 'Newer Comments' ); $label = isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ? $attributes['label'] : $default_label; $pagination_arrow = get_comments_pagination_arrow( $block, 'next' ); $filter_link_attributes = static function () { return get_block_wrapper_attributes(); }; add_filter( 'next_comments_link_attributes', $filter_link_attributes ); if ( $pagination_arrow ) { $label .= $pagination_arrow; } $next_comments_link = get_next_comments_link( $label, $max_page, $comment_vars['paged'] ?? null ); remove_filter( 'next_posts_link_attributes', $filter_link_attributes ); if ( ! isset( $next_comments_link ) ) { return ''; } return $next_comments_link; } /** * Registers the `core/comments-pagination-next` block on the server. * * @since 6.0.0 */ function register_block_core_comments_pagination_next() { register_block_type_from_metadata( __DIR__ . '/comments-pagination-next', array( 'render_callback' => 'render_block_core_comments_pagination_next', ) ); } add_action( 'init', 'register_block_core_comments_pagination_next' ); calendar/style-rtl.css 0000775 00000001402 00000000000 0010731 0 ustar 00 /** * Colors */ .wp-block-calendar { text-align: center; } .wp-block-calendar th, .wp-block-calendar td { padding: 0.25em; border: 1px solid; } .wp-block-calendar th { font-weight: 400; } .wp-block-calendar caption { background-color: inherit; } .wp-block-calendar table { width: 100%; border-collapse: collapse; } .wp-block-calendar table.has-background th { background-color: inherit; } .wp-block-calendar table.has-text-color th { color: inherit; } .wp-block-calendar :where(table:not(.has-text-color)) { color: #40464d; } .wp-block-calendar :where(table:not(.has-text-color)) th, .wp-block-calendar :where(table:not(.has-text-color)) td { border-color: #ddd; } :where(.wp-block-calendar table:not(.has-background) th) { background: #ddd; } calendar/style.min.css 0000775 00000001225 00000000000 0010717 0 ustar 00 .wp-block-calendar{text-align:center}.wp-block-calendar td,.wp-block-calendar th{border:1px solid;padding:.25em}.wp-block-calendar th{font-weight:400}.wp-block-calendar caption{background-color:inherit}.wp-block-calendar table{border-collapse:collapse;width:100%}.wp-block-calendar table.has-background th{background-color:inherit}.wp-block-calendar table.has-text-color th{color:inherit}.wp-block-calendar :where(table:not(.has-text-color)){color:#40464d}.wp-block-calendar :where(table:not(.has-text-color)) td,.wp-block-calendar :where(table:not(.has-text-color)) th{border-color:#ddd}:where(.wp-block-calendar table:not(.has-background) th){background:#ddd} calendar/block.json 0000775 00000002047 00000000000 0010253 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/calendar", "title": "Calendar", "category": "widgets", "description": "A calendar of your site’s posts.", "keywords": [ "posts", "archive" ], "textdomain": "default", "attributes": { "month": { "type": "integer" }, "year": { "type": "integer" } }, "supports": { "anchor": true, "align": true, "html": false, "color": { "link": true, "__experimentalSkipSerialization": [ "text", "background" ], "__experimentalDefaultControls": { "background": true, "text": true }, "__experimentalSelector": "table, th" }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-calendar" } calendar/style-rtl.min.css 0000775 00000001225 00000000000 0011516 0 ustar 00 .wp-block-calendar{text-align:center}.wp-block-calendar td,.wp-block-calendar th{border:1px solid;padding:.25em}.wp-block-calendar th{font-weight:400}.wp-block-calendar caption{background-color:inherit}.wp-block-calendar table{border-collapse:collapse;width:100%}.wp-block-calendar table.has-background th{background-color:inherit}.wp-block-calendar table.has-text-color th{color:inherit}.wp-block-calendar :where(table:not(.has-text-color)){color:#40464d}.wp-block-calendar :where(table:not(.has-text-color)) td,.wp-block-calendar :where(table:not(.has-text-color)) th{border-color:#ddd}:where(.wp-block-calendar table:not(.has-background) th){background:#ddd} calendar/style.css 0000775 00000001402 00000000000 0010132 0 ustar 00 /** * Colors */ .wp-block-calendar { text-align: center; } .wp-block-calendar th, .wp-block-calendar td { padding: 0.25em; border: 1px solid; } .wp-block-calendar th { font-weight: 400; } .wp-block-calendar caption { background-color: inherit; } .wp-block-calendar table { width: 100%; border-collapse: collapse; } .wp-block-calendar table.has-background th { background-color: inherit; } .wp-block-calendar table.has-text-color th { color: inherit; } .wp-block-calendar :where(table:not(.has-text-color)) { color: #40464d; } .wp-block-calendar :where(table:not(.has-text-color)) th, .wp-block-calendar :where(table:not(.has-text-color)) td { border-color: #ddd; } :where(.wp-block-calendar table:not(.has-background) th) { background: #ddd; } quote/style-rtl.css 0000775 00000001374 00000000000 0010325 0 ustar 00 .wp-block-quote { box-sizing: border-box; overflow-wrap: break-word; } .wp-block-quote.is-style-large:where(:not(.is-style-plain)), .wp-block-quote.is-large:where(:not(.is-style-plain)) { margin-bottom: 1em; padding: 0 1em; } .wp-block-quote.is-style-large:where(:not(.is-style-plain)) p, .wp-block-quote.is-large:where(:not(.is-style-plain)) p { font-size: 1.5em; font-style: italic; line-height: 1.6; } .wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite, .wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer, .wp-block-quote.is-large:where(:not(.is-style-plain)) cite, .wp-block-quote.is-large:where(:not(.is-style-plain)) footer { font-size: 1.125em; text-align: left; } .wp-block-quote > cite { display: block; } quote/theme-rtl.min.css 0000775 00000000757 00000000000 0011055 0 ustar 00 .wp-block-quote{border-right:.25em solid;margin:0 0 1.75em;padding-right:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:.25em solid;border-right:none;padding-left:1em;padding-right:0}.wp-block-quote:where(.has-text-align-center){border:none;padding-right:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none} quote/style.min.css 0000775 00000001273 00000000000 0010306 0 ustar 00 .wp-block-quote{box-sizing:border-box;overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:right}.wp-block-quote>cite{display:block} quote/theme-rtl.css 0000775 00000001134 00000000000 0010261 0 ustar 00 .wp-block-quote { border-right: 0.25em solid currentColor; margin: 0 0 1.75em 0; padding-right: 1em; } .wp-block-quote cite, .wp-block-quote footer { color: currentColor; font-size: 0.8125em; position: relative; font-style: normal; } .wp-block-quote:where(.has-text-align-right) { border-right: none; border-left: 0.25em solid currentColor; padding-right: 0; padding-left: 1em; } .wp-block-quote:where(.has-text-align-center) { border: none; padding-right: 0; } .wp-block-quote:where(.is-style-plain), .wp-block-quote.is-style-large, .wp-block-quote.is-large { border: none; } quote/block.json 0000775 00000004332 00000000000 0007636 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/quote", "title": "Quote", "category": "text", "description": "Give quoted text visual emphasis. \"In quoting others, we cite ourselves.\" — Julio Cortázar", "keywords": [ "blockquote", "cite" ], "textdomain": "default", "attributes": { "value": { "type": "string", "source": "html", "selector": "blockquote", "multiline": "p", "default": "", "role": "content" }, "citation": { "type": "rich-text", "source": "rich-text", "selector": "cite", "role": "content" }, "textAlign": { "type": "string" } }, "supports": { "anchor": true, "align": [ "left", "right", "wide", "full" ], "html": false, "background": { "backgroundImage": true, "backgroundSize": true, "gradient": true, "__experimentalDefaultControls": { "backgroundImage": true, "gradient": true } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "dimensions": { "minHeight": true, "__experimentalDefaultControls": { "minHeight": false } }, "__experimentalOnEnter": true, "__experimentalOnMerge": true, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "color": { "gradients": true, "heading": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "layout": { "allowEditing": false }, "spacing": { "blockGap": true, "padding": true, "margin": true }, "interactivity": { "clientNavigation": true }, "allowedBlocks": true }, "styles": [ { "name": "default", "label": "Default", "isDefault": true }, { "name": "plain", "label": "Plain" } ], "editorStyle": "wp-block-quote-editor", "style": "wp-block-quote" } quote/style-rtl.min.css 0000775 00000001272 00000000000 0011104 0 ustar 00 .wp-block-quote{box-sizing:border-box;overflow-wrap:break-word}.wp-block-quote.is-large:where(:not(.is-style-plain)),.wp-block-quote.is-style-large:where(:not(.is-style-plain)){margin-bottom:1em;padding:0 1em}.wp-block-quote.is-large:where(:not(.is-style-plain)) p,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) p{font-size:1.5em;font-style:italic;line-height:1.6}.wp-block-quote.is-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-large:where(:not(.is-style-plain)) footer,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite,.wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer{font-size:1.125em;text-align:left}.wp-block-quote>cite{display:block} quote/style.css 0000775 00000001375 00000000000 0007527 0 ustar 00 .wp-block-quote { box-sizing: border-box; overflow-wrap: break-word; } .wp-block-quote.is-style-large:where(:not(.is-style-plain)), .wp-block-quote.is-large:where(:not(.is-style-plain)) { margin-bottom: 1em; padding: 0 1em; } .wp-block-quote.is-style-large:where(:not(.is-style-plain)) p, .wp-block-quote.is-large:where(:not(.is-style-plain)) p { font-size: 1.5em; font-style: italic; line-height: 1.6; } .wp-block-quote.is-style-large:where(:not(.is-style-plain)) cite, .wp-block-quote.is-style-large:where(:not(.is-style-plain)) footer, .wp-block-quote.is-large:where(:not(.is-style-plain)) cite, .wp-block-quote.is-large:where(:not(.is-style-plain)) footer { font-size: 1.125em; text-align: right; } .wp-block-quote > cite { display: block; } quote/theme.css 0000775 00000001131 00000000000 0007457 0 ustar 00 .wp-block-quote { border-left: 0.25em solid currentColor; margin: 0 0 1.75em 0; padding-left: 1em; } .wp-block-quote cite, .wp-block-quote footer { color: currentColor; font-size: 0.8125em; position: relative; font-style: normal; } .wp-block-quote:where(.has-text-align-right) { border-left: none; border-right: 0.25em solid currentColor; padding-left: 0; padding-right: 1em; } .wp-block-quote:where(.has-text-align-center) { border: none; padding-left: 0; } .wp-block-quote:where(.is-style-plain), .wp-block-quote.is-style-large, .wp-block-quote.is-large { border: none; } quote/theme.min.css 0000775 00000000754 00000000000 0010253 0 ustar 00 .wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none} comments-title.php 0000775 00000005343 00000000000 0010174 0 ustar 00 <?php /** * Server-side rendering of the `core/comments-title` block. * * @package WordPress */ /** * Renders the `core/comments-title` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * * @return string Return the post comments title. */ function render_block_core_comments_title( $attributes ) { if ( post_password_required() ) { return; } $align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}"; $show_post_title = ! empty( $attributes['showPostTitle'] ) && $attributes['showPostTitle']; $show_comments_count = ! empty( $attributes['showCommentsCount'] ) && $attributes['showCommentsCount']; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) ); $comments_count = get_comments_number(); $post_title = get_the_title(); $tag_name = 'h2'; if ( isset( $attributes['level'] ) ) { $tag_name = 'h' . $attributes['level']; } if ( '0' === $comments_count ) { return; } if ( $show_comments_count ) { if ( $show_post_title ) { if ( '1' === $comments_count ) { /* translators: %s: Post title. */ $comments_title = sprintf( __( 'One response to “%s”' ), $post_title ); } else { $comments_title = sprintf( /* translators: 1: Number of comments, 2: Post title. */ _n( '%1$s response to “%2$s”', '%1$s responses to “%2$s”', $comments_count ), number_format_i18n( $comments_count ), $post_title ); } } elseif ( '1' === $comments_count ) { $comments_title = __( 'One response' ); } else { $comments_title = sprintf( /* translators: %s: Number of comments. */ _n( '%s response', '%s responses', $comments_count ), number_format_i18n( $comments_count ) ); } } elseif ( $show_post_title ) { if ( '1' === $comments_count ) { /* translators: %s: Post title. */ $comments_title = sprintf( __( 'Response to “%s”' ), $post_title ); } else { /* translators: %s: Post title. */ $comments_title = sprintf( __( 'Responses to “%s”' ), $post_title ); } } elseif ( '1' === $comments_count ) { $comments_title = __( 'Response' ); } else { $comments_title = __( 'Responses' ); } return sprintf( '<%1$s id="comments" %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, $comments_title ); } /** * Registers the `core/comments-title` block on the server. * * @since 6.0.0 */ function register_block_core_comments_title() { register_block_type_from_metadata( __DIR__ . '/comments-title', array( 'render_callback' => 'render_block_core_comments_title', ) ); } add_action( 'init', 'register_block_core_comments_title' ); pullquote/editor.css 0000775 00000000372 00000000000 0010546 0 ustar 00 .wp-block-pullquote.is-style-solid-color blockquote p { font-size: 32px; } .wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation { text-transform: none; font-style: normal; } .wp-block-pullquote__citation { color: inherit; } pullquote/editor.min.css 0000775 00000000336 00000000000 0011330 0 ustar 00 .wp-block-pullquote.is-style-solid-color blockquote p{font-size:32px}.wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation{font-style:normal;text-transform:none}.wp-block-pullquote__citation{color:inherit} pullquote/style-rtl.css 0000775 00000004033 00000000000 0011215 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-pullquote { text-align: center; overflow-wrap: break-word; box-sizing: border-box; margin: 0 0 1em 0; padding: 4em 0; } .wp-block-pullquote p, .wp-block-pullquote blockquote { color: inherit; } .wp-block-pullquote blockquote { margin: 0; } .wp-block-pullquote p { margin-top: 0; } .wp-block-pullquote p:last-child { margin-bottom: 0; } .wp-block-pullquote.alignleft, .wp-block-pullquote.alignright { max-width: 420px; } .wp-block-pullquote cite, .wp-block-pullquote footer { position: relative; } .wp-block-pullquote .has-text-color a { color: inherit; } .wp-block-pullquote.has-text-align-left blockquote { text-align: right; } .wp-block-pullquote.has-text-align-right blockquote { text-align: left; } .wp-block-pullquote.has-text-align-center blockquote { text-align: center; } .wp-block-pullquote.is-style-solid-color { border: none; } .wp-block-pullquote.is-style-solid-color blockquote { margin-right: auto; margin-left: auto; max-width: 60%; } .wp-block-pullquote.is-style-solid-color blockquote p { margin-top: 0; margin-bottom: 0; font-size: 2em; } .wp-block-pullquote.is-style-solid-color blockquote cite { text-transform: none; font-style: normal; } .wp-block-pullquote :where(cite) { color: inherit; display: block; } pullquote/theme-rtl.min.css 0000775 00000000433 00000000000 0011741 0 ustar 00 .wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote :where(cite),.wp-block-pullquote :where(footer),.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase} pullquote/editor-rtl.min.css 0000775 00000000336 00000000000 0012127 0 ustar 00 .wp-block-pullquote.is-style-solid-color blockquote p{font-size:32px}.wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation{font-style:normal;text-transform:none}.wp-block-pullquote__citation{color:inherit} pullquote/style.min.css 0000775 00000002136 00000000000 0011202 0 ustar 00 .wp-block-pullquote{box-sizing:border-box;margin:0 0 1em;overflow-wrap:break-word;padding:4em 0;text-align:center}.wp-block-pullquote blockquote,.wp-block-pullquote p{color:inherit}.wp-block-pullquote blockquote{margin:0}.wp-block-pullquote p{margin-top:0}.wp-block-pullquote p:last-child{margin-bottom:0}.wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{max-width:420px}.wp-block-pullquote cite,.wp-block-pullquote footer{position:relative}.wp-block-pullquote .has-text-color a{color:inherit}.wp-block-pullquote.has-text-align-left blockquote{text-align:left}.wp-block-pullquote.has-text-align-right blockquote{text-align:right}.wp-block-pullquote.has-text-align-center blockquote{text-align:center}.wp-block-pullquote.is-style-solid-color{border:none}.wp-block-pullquote.is-style-solid-color blockquote{margin-left:auto;margin-right:auto;max-width:60%}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:2em;margin-bottom:0;margin-top:0}.wp-block-pullquote.is-style-solid-color blockquote cite{font-style:normal;text-transform:none}.wp-block-pullquote :where(cite){color:inherit;display:block} pullquote/theme-rtl.css 0000775 00000000537 00000000000 0011164 0 ustar 00 .wp-block-pullquote { border-top: 4px solid currentColor; border-bottom: 4px solid currentColor; margin-bottom: 1.75em; color: currentColor; } .wp-block-pullquote :where(cite), .wp-block-pullquote :where(footer), .wp-block-pullquote__citation { color: currentColor; text-transform: uppercase; font-size: 0.8125em; font-style: normal; } pullquote/block.json 0000775 00000003527 00000000000 0010540 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/pullquote", "title": "Pullquote", "category": "text", "description": "Give special visual emphasis to a quote from your text.", "textdomain": "default", "attributes": { "value": { "type": "rich-text", "source": "rich-text", "selector": "p", "role": "content" }, "citation": { "type": "rich-text", "source": "rich-text", "selector": "cite", "role": "content" } }, "supports": { "anchor": true, "align": [ "left", "right", "wide", "full" ], "background": { "backgroundImage": true, "backgroundSize": true, "gradient": true, "__experimentalDefaultControls": { "backgroundImage": true, "gradient": true } }, "color": { "gradients": true, "background": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "dimensions": { "minHeight": true }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "__experimentalStyle": { "typography": { "fontSize": "1.5em", "lineHeight": "1.6" } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-pullquote-editor", "style": "wp-block-pullquote" } pullquote/style-rtl.min.css 0000775 00000002136 00000000000 0012001 0 ustar 00 .wp-block-pullquote{box-sizing:border-box;margin:0 0 1em;overflow-wrap:break-word;padding:4em 0;text-align:center}.wp-block-pullquote blockquote,.wp-block-pullquote p{color:inherit}.wp-block-pullquote blockquote{margin:0}.wp-block-pullquote p{margin-top:0}.wp-block-pullquote p:last-child{margin-bottom:0}.wp-block-pullquote.alignleft,.wp-block-pullquote.alignright{max-width:420px}.wp-block-pullquote cite,.wp-block-pullquote footer{position:relative}.wp-block-pullquote .has-text-color a{color:inherit}.wp-block-pullquote.has-text-align-left blockquote{text-align:right}.wp-block-pullquote.has-text-align-right blockquote{text-align:left}.wp-block-pullquote.has-text-align-center blockquote{text-align:center}.wp-block-pullquote.is-style-solid-color{border:none}.wp-block-pullquote.is-style-solid-color blockquote{margin-left:auto;margin-right:auto;max-width:60%}.wp-block-pullquote.is-style-solid-color blockquote p{font-size:2em;margin-bottom:0;margin-top:0}.wp-block-pullquote.is-style-solid-color blockquote cite{font-style:normal;text-transform:none}.wp-block-pullquote :where(cite){color:inherit;display:block} pullquote/style.css 0000775 00000004033 00000000000 0010416 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-pullquote { text-align: center; overflow-wrap: break-word; box-sizing: border-box; margin: 0 0 1em 0; padding: 4em 0; } .wp-block-pullquote p, .wp-block-pullquote blockquote { color: inherit; } .wp-block-pullquote blockquote { margin: 0; } .wp-block-pullquote p { margin-top: 0; } .wp-block-pullquote p:last-child { margin-bottom: 0; } .wp-block-pullquote.alignleft, .wp-block-pullquote.alignright { max-width: 420px; } .wp-block-pullquote cite, .wp-block-pullquote footer { position: relative; } .wp-block-pullquote .has-text-color a { color: inherit; } .wp-block-pullquote.has-text-align-left blockquote { text-align: left; } .wp-block-pullquote.has-text-align-right blockquote { text-align: right; } .wp-block-pullquote.has-text-align-center blockquote { text-align: center; } .wp-block-pullquote.is-style-solid-color { border: none; } .wp-block-pullquote.is-style-solid-color blockquote { margin-left: auto; margin-right: auto; max-width: 60%; } .wp-block-pullquote.is-style-solid-color blockquote p { margin-top: 0; margin-bottom: 0; font-size: 2em; } .wp-block-pullquote.is-style-solid-color blockquote cite { text-transform: none; font-style: normal; } .wp-block-pullquote :where(cite) { color: inherit; display: block; } pullquote/editor-rtl.css 0000775 00000000372 00000000000 0011345 0 ustar 00 .wp-block-pullquote.is-style-solid-color blockquote p { font-size: 32px; } .wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation { text-transform: none; font-style: normal; } .wp-block-pullquote__citation { color: inherit; } pullquote/theme.css 0000775 00000000537 00000000000 0010365 0 ustar 00 .wp-block-pullquote { border-top: 4px solid currentColor; border-bottom: 4px solid currentColor; margin-bottom: 1.75em; color: currentColor; } .wp-block-pullquote :where(cite), .wp-block-pullquote :where(footer), .wp-block-pullquote__citation { color: currentColor; text-transform: uppercase; font-size: 0.8125em; font-style: normal; } pullquote/theme.min.css 0000775 00000000433 00000000000 0011142 0 ustar 00 .wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote :where(cite),.wp-block-pullquote :where(footer),.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase} post-author-biography.php 0000775 00000002764 00000000000 0011503 0 ustar 00 <?php /** * Server-side rendering of the `core/post-author-biography` block. * * @package WordPress */ /** * Renders the `core/post-author-biography` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the rendered post author biography block. */ function render_block_core_post_author_biography( $attributes, $content, $block ) { if ( isset( $block->context['postId'] ) ) { $author_id = get_post_field( 'post_author', $block->context['postId'] ); } else { $author_id = get_query_var( 'author' ); } if ( empty( $author_id ) ) { return ''; } $author_biography = get_the_author_meta( 'description', $author_id ); if ( empty( $author_biography ) ) { return ''; } $align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}"; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) ); return sprintf( '<div %1$s>', $wrapper_attributes ) . $author_biography . '</div>'; } /** * Registers the `core/post-author-biography` block on the server. * * @since 6.0.0 */ function register_block_core_post_author_biography() { register_block_type_from_metadata( __DIR__ . '/post-author-biography', array( 'render_callback' => 'render_block_core_post_author_biography', ) ); } add_action( 'init', 'register_block_core_post_author_biography' ); post-terms.php 0000775 00000007070 00000000000 0007344 0 ustar 00 <?php /** * Server-side rendering of the `core/post-terms` block. * * @package WordPress */ /** * Renders the `core/post-terms` block on the server. * * @since 5.8.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the filtered post terms for the current post wrapped inside "a" tags. */ function render_block_core_post_terms( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) || ! isset( $attributes['term'] ) ) { return ''; } if ( ! is_taxonomy_viewable( $attributes['term'] ) ) { return ''; } $classes = array( 'taxonomy-' . $attributes['term'] ); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $separator = empty( $attributes['separator'] ) ? ' ' : $attributes['separator']; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); $prefix = "<div $wrapper_attributes>"; if ( isset( $attributes['prefix'] ) && $attributes['prefix'] ) { $prefix .= '<span class="wp-block-post-terms__prefix">' . $attributes['prefix'] . '</span>'; } $suffix = '</div>'; if ( isset( $attributes['suffix'] ) && $attributes['suffix'] ) { $suffix = '<span class="wp-block-post-terms__suffix">' . $attributes['suffix'] . '</span>' . $suffix; } $post_terms = get_the_term_list( $block->context['postId'], $attributes['term'], wp_kses_post( $prefix ), '<span class="wp-block-post-terms__separator">' . esc_html( $separator ) . '</span>', wp_kses_post( $suffix ) ); if ( is_wp_error( $post_terms ) || empty( $post_terms ) ) { return ''; } return $post_terms; } /** * Returns the available variations for the `core/post-terms` block. * * @since 6.5.0 * * @return array The available variations for the block. */ function block_core_post_terms_build_variations() { $taxonomies = get_taxonomies( array( 'publicly_queryable' => true, 'show_in_rest' => true, ), 'objects' ); // Split the available taxonomies to `built_in` and custom ones, // in order to prioritize the `built_in` taxonomies at the // search results. $built_ins = array(); $custom_variations = array(); // Create and register the eligible taxonomies variations. foreach ( $taxonomies as $taxonomy ) { $variation = array( 'name' => $taxonomy->name, 'title' => $taxonomy->label, 'description' => sprintf( /* translators: %s: taxonomy's label */ __( 'Display a list of assigned terms from the taxonomy: %s' ), $taxonomy->label ), 'attributes' => array( 'term' => $taxonomy->name, ), 'isActive' => array( 'term' ), 'scope' => array( 'inserter', 'transform' ), ); // Set the category variation as the default one. if ( 'category' === $taxonomy->name ) { $variation['isDefault'] = true; } if ( $taxonomy->_builtin ) { $built_ins[] = $variation; } else { $custom_variations[] = $variation; } } return array_merge( $built_ins, $custom_variations ); } /** * Registers the `core/post-terms` block on the server. * * @since 5.8.0 */ function register_block_core_post_terms() { register_block_type_from_metadata( __DIR__ . '/post-terms', array( 'render_callback' => 'render_block_core_post_terms', 'variation_callback' => 'block_core_post_terms_build_variations', ) ); } add_action( 'init', 'register_block_core_post_terms' ); tab-panel.php 0000775 00000003205 00000000000 0007066 0 ustar 00 <?php /** * Tab Panel Block * * @package WordPress */ /** * Render callback for core/tab-panel. * * @since 7.1.0 * * @param array $attributes Block attributes. * @param string $content Block content. * @param \WP_Block $block Block instance. * * @return string Updated HTML. */ function block_core_tab_panel_render( array $attributes, string $content, \WP_Block $block ): string { $tabs_id = $block->context['core/tabs-id'] ?? ''; static $tab_counters = array(); if ( ! isset( $tab_counters[ $tabs_id ] ) ) { $tab_counters[ $tabs_id ] = 0; } $tab_index = $tab_counters[ $tabs_id ]; ++$tab_counters[ $tabs_id ]; $tag_processor = new WP_HTML_Tag_Processor( $content ); $tag_processor->next_tag( array( 'class_name' => 'wp-block-tab-panel' ) ); // Use the user's custom anchor if present, otherwise fall back to // the generated position-based ID. $tab_id = (string) $tag_processor->get_attribute( 'id' ); if ( empty( $tab_id ) ) { $tab_id = ! empty( $tabs_id ) ? $tabs_id . '-tab-' . $tab_index : 'tab-' . $tab_index; $tag_processor->set_attribute( 'id', $tab_id ); } $tag_processor->set_attribute( 'aria-labelledby', 'tab__' . $tab_id ); $tag_processor->set_attribute( 'data-wp-bind--hidden', '!state.isActiveTab' ); return (string) $tag_processor->get_updated_html(); } /** * Registers the `core/tab-panel` block on the server. * * @hook init * * @since 7.1.0 */ function register_block_core_tab_panel() { register_block_type_from_metadata( __DIR__ . '/tab-panel', array( 'render_callback' => 'block_core_tab_panel_render', ) ); } add_action( 'init', 'register_block_core_tab_panel' ); post-date.php 0000775 00000007154 00000000000 0007132 0 ustar 00 <?php /** * Server-side rendering of the `core/post-date` block. * * @package WordPress */ /** * Renders the `core/post-date` block on the server. * * @since 5.8.0 * @since 6.9.0 Added `datetime` attribute and Block Bindings support. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the filtered post date for the current post wrapped inside "time" tags. */ function render_block_core_post_date( $attributes, $content, $block ) { $classes = array(); if ( ! isset( $attributes['datetime'] ) && ! ( isset( $attributes['metadata']['bindings']['datetime']['source'] ) && isset( $attributes['metadata']['bindings']['datetime']['args'] ) ) ) { /* * This is the legacy version of the block that didn't have the `datetime` attribute. * This branch needs to be kept for backward compatibility. */ $source = get_block_bindings_source( 'core/post-data' ); if ( isset( $attributes['displayType'] ) && 'modified' === $attributes['displayType'] ) { $source_args = array( 'field' => 'modified', ); } else { $source_args = array( 'field' => 'date', ); } $attributes['datetime'] = $source->get_value( $source_args, $block, 'datetime' ); } if ( isset( $source_args['field'] ) && 'modified' === $source_args['field'] ) { $classes[] = 'wp-block-post-date__modified-date'; } if ( empty( $attributes['datetime'] ) ) { // If the `datetime` attribute is set but empty, it could be because Block Bindings // set it that way. This can happen e.g. if the block is bound to the // post's last modified date, and the latter lies before the publish date. // (See https://github.com/WordPress/gutenberg/pull/46839 where this logic was originally // implemented.) // In this case, we have to respect and return the empty value. return ''; } $unformatted_date = $attributes['datetime']; $post_timestamp = strtotime( $unformatted_date ); if ( isset( $attributes['format'] ) && 'human-diff' === $attributes['format'] ) { if ( $post_timestamp > time() ) { // translators: %s: human-readable time difference. $formatted_date = sprintf( __( '%s from now' ), human_time_diff( $post_timestamp ) ); } else { // translators: %s: human-readable time difference. $formatted_date = sprintf( __( '%s ago' ), human_time_diff( $post_timestamp ) ); } } else { $format = empty( $attributes['format'] ) ? get_option( 'date_format' ) : $attributes['format']; $formatted_date = wp_date( $format, $post_timestamp ); } if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); $time_tag = sprintf( '<time datetime="%1$s">%2$s</time>', esc_attr( $unformatted_date ), esc_html( $formatted_date ) ); if ( isset( $attributes['isLink'] ) && $attributes['isLink'] && isset( $block->context['postId'] ) ) { $time_tag = sprintf( '<a href="%1$s">%2$s</a>', esc_url( get_the_permalink( $block->context['postId'] ) ), $time_tag ); } return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $time_tag ); } /** * Registers the `core/post-date` block on the server. * * @since 5.8.0 */ function register_block_core_post_date() { register_block_type_from_metadata( __DIR__ . '/post-date', array( 'render_callback' => 'render_block_core_post_date', ) ); } add_action( 'init', 'register_block_core_post_date' ); accordion-item/style-rtl.css 0000775 00000001007 00000000000 0012056 0 ustar 00 .wp-block-accordion-item.is-open > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon { transform: rotate(-45deg); } .wp-block-accordion-item { /* Add transitions only for users who do not prefer reduced motion */ } @media (prefers-reduced-motion: no-preference) { .wp-block-accordion-item { transition: grid-template-rows 0.3s ease-out; } .wp-block-accordion-item > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon { transition: transform 0.2s ease-in-out; } } accordion-item/style.min.css 0000775 00000000564 00000000000 0012050 0 ustar 00 .wp-block-accordion-item.is-open>.wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon{transform:rotate(45deg)}@media (prefers-reduced-motion:no-preference){.wp-block-accordion-item{transition:grid-template-rows .3s ease-out}.wp-block-accordion-item>.wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon{transition:transform .2s ease-in-out}} accordion-item/block.json 0000775 00000002641 00000000000 0011377 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/accordion-item", "title": "Accordion Item", "category": "design", "description": "Wraps the heading and panel in one unit.", "parent": [ "core/accordion" ], "allowedBlocks": [ "core/accordion-heading", "core/accordion-panel" ], "supports": { "html": false, "color": { "background": true, "gradients": true }, "interactivity": true, "spacing": { "margin": [ "top", "bottom" ], "padding": true, "blockGap": true }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "shadow": true, "layout": { "allowEditing": false }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "contentRole": true }, "attributes": { "openByDefault": { "type": "boolean", "default": false } }, "providesContext": { "core/accordion-open-by-default": "openByDefault" }, "textdomain": "default", "style": "wp-block-accordion-item" } accordion-item/style-rtl.min.css 0000775 00000000565 00000000000 0012650 0 ustar 00 .wp-block-accordion-item.is-open>.wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon{transform:rotate(-45deg)}@media (prefers-reduced-motion:no-preference){.wp-block-accordion-item{transition:grid-template-rows .3s ease-out}.wp-block-accordion-item>.wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon{transition:transform .2s ease-in-out}} accordion-item/style.css 0000775 00000001006 00000000000 0011256 0 ustar 00 .wp-block-accordion-item.is-open > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon { transform: rotate(45deg); } .wp-block-accordion-item { /* Add transitions only for users who do not prefer reduced motion */ } @media (prefers-reduced-motion: no-preference) { .wp-block-accordion-item { transition: grid-template-rows 0.3s ease-out; } .wp-block-accordion-item > .wp-block-accordion-heading .wp-block-accordion-heading__toggle-icon { transition: transform 0.2s ease-in-out; } } rss/editor.css 0000775 00000000323 00000000000 0007317 0 ustar 00 .wp-block-rss li a > div { display: inline; } .wp-block-rss__placeholder-form .wp-block-rss__placeholder-input { flex: 1 1 auto; } .wp-block-rss .wp-block-rss { all: inherit; margin: 0; padding: 0; } rss/editor.min.css 0000775 00000000260 00000000000 0010101 0 ustar 00 .wp-block-rss li a>div{display:inline}.wp-block-rss__placeholder-form .wp-block-rss__placeholder-input{flex:1 1 auto}.wp-block-rss .wp-block-rss{all:inherit;margin:0;padding:0} rss/style-rtl.css 0000775 00000005304 00000000000 0007774 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ ul.wp-block-rss.alignleft { margin-right: 2em; } ul.wp-block-rss.alignright { margin-left: 2em; } ul.wp-block-rss.is-grid { display: flex; flex-wrap: wrap; padding: 0; } ul.wp-block-rss.is-grid li { margin: 0 0 1em 1em; width: 100%; } @media (min-width: 600px) { ul.wp-block-rss.columns-2 li { width: calc(100% / 2 - 1em); } ul.wp-block-rss.columns-3 li { width: calc(100% / 3 - 1em); } ul.wp-block-rss.columns-4 li { width: calc(100% / 4 - 1em); } ul.wp-block-rss.columns-5 li { width: calc(100% / 5 - 1em); } ul.wp-block-rss.columns-6 li { width: calc(100% / 6 - 1em); } } .wp-block-rss__item-publish-date, .wp-block-rss__item-author { display: block; font-size: 0.8125em; } .wp-block-rss { box-sizing: border-box; list-style: none; padding: 0; } rss/editor-rtl.min.css 0000775 00000000260 00000000000 0010700 0 ustar 00 .wp-block-rss li a>div{display:inline}.wp-block-rss__placeholder-form .wp-block-rss__placeholder-input{flex:1 1 auto}.wp-block-rss .wp-block-rss{all:inherit;margin:0;padding:0} rss/style.min.css 0000775 00000001214 00000000000 0007753 0 ustar 00 ul.wp-block-rss.alignleft{margin-right:2em}ul.wp-block-rss.alignright{margin-left:2em}ul.wp-block-rss.is-grid{display:flex;flex-wrap:wrap;padding:0}ul.wp-block-rss.is-grid li{margin:0 1em 1em 0;width:100%}@media (min-width:600px){ul.wp-block-rss.columns-2 li{width:calc(50% - 1em)}ul.wp-block-rss.columns-3 li{width:calc(33.33333% - 1em)}ul.wp-block-rss.columns-4 li{width:calc(25% - 1em)}ul.wp-block-rss.columns-5 li{width:calc(20% - 1em)}ul.wp-block-rss.columns-6 li{width:calc(16.66667% - 1em)}}.wp-block-rss__item-author,.wp-block-rss__item-publish-date{display:block;font-size:.8125em}.wp-block-rss{box-sizing:border-box;list-style:none;padding:0} rss/block.json 0000775 00000002647 00000000000 0007317 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/rss", "title": "RSS", "category": "widgets", "description": "Display entries from any RSS or Atom feed.", "keywords": [ "atom", "feed" ], "textdomain": "default", "attributes": { "columns": { "type": "number", "default": 2 }, "blockLayout": { "type": "string", "default": "list" }, "feedURL": { "type": "string", "default": "", "role": "content" }, "itemsToShow": { "type": "number", "default": 5 }, "displayExcerpt": { "type": "boolean", "default": false }, "displayAuthor": { "type": "boolean", "default": false }, "displayDate": { "type": "boolean", "default": false }, "excerptLength": { "type": "number", "default": 55 }, "openInNewTab": { "type": "boolean", "default": false }, "rel": { "type": "string" } }, "supports": { "anchor": true, "align": true, "html": false, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "padding": false, "margin": false } }, "color": { "background": true, "text": true, "gradients": true, "link": true } }, "editorStyle": "wp-block-rss-editor", "style": "wp-block-rss" } rss/style-rtl.min.css 0000775 00000001214 00000000000 0010552 0 ustar 00 ul.wp-block-rss.alignleft{margin-right:2em}ul.wp-block-rss.alignright{margin-left:2em}ul.wp-block-rss.is-grid{display:flex;flex-wrap:wrap;padding:0}ul.wp-block-rss.is-grid li{margin:0 0 1em 1em;width:100%}@media (min-width:600px){ul.wp-block-rss.columns-2 li{width:calc(50% - 1em)}ul.wp-block-rss.columns-3 li{width:calc(33.33333% - 1em)}ul.wp-block-rss.columns-4 li{width:calc(25% - 1em)}ul.wp-block-rss.columns-5 li{width:calc(20% - 1em)}ul.wp-block-rss.columns-6 li{width:calc(16.66667% - 1em)}}.wp-block-rss__item-author,.wp-block-rss__item-publish-date{display:block;font-size:.8125em}.wp-block-rss{box-sizing:border-box;list-style:none;padding:0} rss/style.css 0000775 00000005346 00000000000 0007203 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ ul.wp-block-rss.alignleft { /*rtl:ignore*/ margin-right: 2em; } ul.wp-block-rss.alignright { /*rtl:ignore*/ margin-left: 2em; } ul.wp-block-rss.is-grid { display: flex; flex-wrap: wrap; padding: 0; } ul.wp-block-rss.is-grid li { margin: 0 1em 1em 0; width: 100%; } @media (min-width: 600px) { ul.wp-block-rss.columns-2 li { width: calc(100% / 2 - 1em); } ul.wp-block-rss.columns-3 li { width: calc(100% / 3 - 1em); } ul.wp-block-rss.columns-4 li { width: calc(100% / 4 - 1em); } ul.wp-block-rss.columns-5 li { width: calc(100% / 5 - 1em); } ul.wp-block-rss.columns-6 li { width: calc(100% / 6 - 1em); } } .wp-block-rss__item-publish-date, .wp-block-rss__item-author { display: block; font-size: 0.8125em; } .wp-block-rss { box-sizing: border-box; list-style: none; padding: 0; } rss/editor-rtl.css 0000775 00000000323 00000000000 0010116 0 ustar 00 .wp-block-rss li a > div { display: inline; } .wp-block-rss__placeholder-form .wp-block-rss__placeholder-input { flex: 1 1 auto; } .wp-block-rss .wp-block-rss { all: inherit; margin: 0; padding: 0; } details.php 0000775 00000002732 00000000000 0006654 0 ustar 00 <?php /** * Server-side rendering of the `core/details` block. * * @package WordPress */ /** * Sets fetchpriority="low" on all IMG tags within the collapsed Details block. * * Images in a collapsed Details block are hidden until the block is expanded, so they should * not compete with any resources in the critical rendering path, such as the LCP element image. * * @since 7.0.0 * * @param string $block_content The block content. * @param array $block The full block, including name and attributes. * @return string Modified HTML with fetchpriority="low" on all IMG tags when the showContent attribute is false. */ function block_core_details_set_img_fetchpriority_low( $block_content, array $block ): string { if ( ! is_string( $block_content ) ) { return ''; } // If the Details block is open by default, short-circuit to let core add fetchpriority=high if appropriate. if ( $block['attrs']['showContent'] ?? false ) { return $block_content; } $tags = new WP_HTML_Tag_Processor( $block_content ); while ( $tags->next_tag( 'IMG' ) ) { $tags->set_attribute( 'fetchpriority', 'low' ); } return $tags->get_updated_html(); } add_filter( 'render_block_core/details', 'block_core_details_set_img_fetchpriority_low', 10, 2 ); /** * Registers the `core/details` block on server. * * @since 7.0.0 */ function register_block_core_details() { register_block_type_from_metadata( __DIR__ . '/details' ); } add_action( 'init', 'register_block_core_details' ); post-date/style-rtl.css 0000775 00000000061 00000000000 0011060 0 ustar 00 .wp-block-post-date { box-sizing: border-box; } post-date/style.min.css 0000775 00000000052 00000000000 0011043 0 ustar 00 .wp-block-post-date{box-sizing:border-box} post-date/block.json 0000775 00000002643 00000000000 0010404 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-date", "title": "Date", "category": "theme", "description": "Display a custom date.", "textdomain": "default", "attributes": { "datetime": { "type": "string", "role": "content" }, "format": { "type": "string" }, "isLink": { "type": "boolean", "default": false, "role": "content" } }, "usesContext": [ "postId", "postType", "queryId" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } } } post-date/style-rtl.min.css 0000775 00000000052 00000000000 0011642 0 ustar 00 .wp-block-post-date{box-sizing:border-box} post-date/style.css 0000775 00000000061 00000000000 0010261 0 ustar 00 .wp-block-post-date { box-sizing: border-box; } more/editor.css 0000775 00000003020 00000000000 0007447 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .block-editor-block-list__block[data-type="core/more"] { max-width: 100%; text-align: center; margin-top: 28px; margin-bottom: 28px; } .wp-block-more { display: block; text-align: center; white-space: nowrap; } .wp-block-more .rich-text { position: relative; font-size: 13px; text-transform: uppercase; font-weight: var(--wpds-typography-font-weight-emphasis, 600); font-family: -apple-system, system-ui, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; color: #757575; display: inline-flex; white-space: nowrap; text-align: center; background: #fff; padding: 10px 36px; } .wp-block-more::before { content: ""; position: absolute; top: 50%; left: 0; right: 0; border-top: 3px dashed #ccc; } more/editor.min.css 0000775 00000001206 00000000000 0010235 0 ustar 00 .block-editor-block-list__block[data-type="core/more"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-more{display:block;text-align:center;white-space:nowrap}.wp-block-more .rich-text{background:#fff;color:#757575;display:inline-flex;font-family:-apple-system,system-ui,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:var(--wpds-typography-font-weight-emphasis,600);padding:10px 36px;position:relative;text-align:center;text-transform:uppercase;white-space:nowrap}.wp-block-more:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%} more/editor-rtl.min.css 0000775 00000001206 00000000000 0011034 0 ustar 00 .block-editor-block-list__block[data-type="core/more"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-more{display:block;text-align:center;white-space:nowrap}.wp-block-more .rich-text{background:#fff;color:#757575;display:inline-flex;font-family:-apple-system,system-ui,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:var(--wpds-typography-font-weight-emphasis,600);padding:10px 36px;position:relative;text-align:center;text-transform:uppercase;white-space:nowrap}.wp-block-more:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%} more/block.json 0000775 00000001277 00000000000 0007450 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/more", "title": "More", "category": "design", "description": "Content before this block will be shown in the excerpt on your archives page.", "keywords": [ "read more" ], "textdomain": "default", "attributes": { "customText": { "type": "string", "default": "", "role": "content" }, "noTeaser": { "type": "boolean", "default": false } }, "supports": { "customClassName": false, "className": false, "html": false, "multiple": false, "visibility": false, "interactivity": { "clientNavigation": true }, "customCSS": false }, "editorStyle": "wp-block-more-editor" } more/editor-rtl.css 0000775 00000003020 00000000000 0010246 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .block-editor-block-list__block[data-type="core/more"] { max-width: 100%; text-align: center; margin-top: 28px; margin-bottom: 28px; } .wp-block-more { display: block; text-align: center; white-space: nowrap; } .wp-block-more .rich-text { position: relative; font-size: 13px; text-transform: uppercase; font-weight: var(--wpds-typography-font-weight-emphasis, 600); font-family: -apple-system, system-ui, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; color: #757575; display: inline-flex; white-space: nowrap; text-align: center; background: #fff; padding: 10px 36px; } .wp-block-more::before { content: ""; position: absolute; top: 50%; right: 0; left: 0; border-top: 3px dashed #ccc; } query-total/style-rtl.css 0000775 00000000063 00000000000 0011450 0 ustar 00 .wp-block-query-total { box-sizing: border-box; } query-total/style.min.css 0000775 00000000054 00000000000 0011433 0 ustar 00 .wp-block-query-total{box-sizing:border-box} query-total/block.json 0000775 00000002510 00000000000 0010763 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query-total", "title": "Query Total", "category": "theme", "ancestor": [ "core/query" ], "description": "Display the total number of results in a query.", "textdomain": "default", "attributes": { "displayType": { "type": "string", "default": "total-results" } }, "usesContext": [ "queryId", "query" ], "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "spacing": { "margin": true, "padding": true }, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-query-total" } query-total/style-rtl.min.css 0000775 00000000054 00000000000 0012232 0 ustar 00 .wp-block-query-total{box-sizing:border-box} query-total/style.css 0000775 00000000063 00000000000 0010651 0 ustar 00 .wp-block-query-total { box-sizing: border-box; } query-pagination-numbers/editor.css 0000775 00000000364 00000000000 0013462 0 ustar 00 .wp-block-query-pagination-numbers a { text-decoration: underline; } .wp-block-query-pagination-numbers .page-numbers { margin-right: 2px; } .wp-block-query-pagination-numbers .page-numbers:last-child { /*rtl:ignore*/ margin-right: 0; } query-pagination-numbers/editor.min.css 0000775 00000000314 00000000000 0014237 0 ustar 00 .wp-block-query-pagination-numbers a{text-decoration:underline}.wp-block-query-pagination-numbers .page-numbers{margin-right:2px}.wp-block-query-pagination-numbers .page-numbers:last-child{margin-right:0} query-pagination-numbers/editor-rtl.min.css 0000775 00000000313 00000000000 0015035 0 ustar 00 .wp-block-query-pagination-numbers a{text-decoration:underline}.wp-block-query-pagination-numbers .page-numbers{margin-left:2px}.wp-block-query-pagination-numbers .page-numbers:last-child{margin-right:0} query-pagination-numbers/block.json 0000775 00000002130 00000000000 0013440 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query-pagination-numbers", "title": "Page Numbers", "category": "theme", "parent": [ "core/query-pagination" ], "description": "Displays a list of page numbers for pagination.", "textdomain": "default", "attributes": { "midSize": { "type": "number", "default": 2 } }, "usesContext": [ "queryId", "query", "enhancedPagination" ], "supports": { "anchor": true, "reusable": false, "html": false, "color": { "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-query-pagination-numbers-editor" } query-pagination-numbers/editor-rtl.css 0000775 00000000342 00000000000 0014255 0 ustar 00 .wp-block-query-pagination-numbers a { text-decoration: underline; } .wp-block-query-pagination-numbers .page-numbers { margin-left: 2px; } .wp-block-query-pagination-numbers .page-numbers:last-child { margin-right: 0; } social-link.php 0000775 00000204022 00000000000 0007430 0 ustar 00 <?php /** * Server-side rendering of the `core/social-link` blocks. * * @package WordPress */ /** * Renders the `core/social-link` block on server. * * @since 5.4.0 * * @param Array $attributes The block attributes. * @param String $content InnerBlocks content of the Block. * @param WP_Block $block Block object. * * @return string Rendered HTML of the referenced block. */ function render_block_core_social_link( $attributes, $content, $block ) { $open_in_new_tab = $block->context['openInNewTab'] ?? false; $text = ! empty( $attributes['label'] ) ? trim( $attributes['label'] ) : ''; $service = $attributes['service'] ?? 'Icon'; $url = $attributes['url'] ?? false; $text = $text ? $text : block_core_social_link_get_name( $service ); $rel = $attributes['rel'] ?? ''; $show_labels = array_key_exists( 'showLabels', $block->context ) ? $block->context['showLabels'] : false; // Don't render a link if there is no URL set. if ( ! $url ) { return ''; } /** * Prepend emails with `mailto:` if not set. * The `is_email` returns false for emails with schema. */ if ( is_email( $url ) ) { $url = 'mailto:' . antispambot( $url ); } /** * Prepend URL with https:// if it doesn't appear to contain a scheme * and it's not a relative link or a fragment. */ if ( ! parse_url( $url, PHP_URL_SCHEME ) && ! str_starts_with( $url, '//' ) && ! str_starts_with( $url, '#' ) ) { $url = 'https://' . $url; } $icon = block_core_social_link_get_icon( $service ); $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => 'wp-social-link wp-social-link-' . $service . block_core_social_link_get_color_classes( $block->context ), 'style' => block_core_social_link_get_color_styles( $block->context ), ) ); $link = '<li ' . $wrapper_attributes . '>'; $link .= '<a href="' . esc_url( $url ) . '" class="wp-block-social-link-anchor">'; $link .= $icon; $link .= '<span class="wp-block-social-link-label' . ( $show_labels ? '' : ' screen-reader-text' ) . '">' . esc_html( $text ) . '</span>'; $link .= '</a></li>'; $processor = new WP_HTML_Tag_Processor( $link ); $processor->next_tag( 'a' ); if ( $open_in_new_tab ) { $processor->set_attribute( 'rel', trim( $rel . ' noopener nofollow' ) ); $processor->set_attribute( 'target', '_blank' ); } elseif ( '' !== $rel ) { $processor->set_attribute( 'rel', trim( $rel ) ); } return $processor->get_updated_html(); } /** * Registers the `core/social-link` blocks. * * @since 5.4.0 */ function register_block_core_social_link() { register_block_type_from_metadata( __DIR__ . '/social-link', array( 'render_callback' => 'render_block_core_social_link', ) ); } add_action( 'init', 'register_block_core_social_link' ); /** * Returns the SVG for social link. * * @since 5.4.0 * * @param string $service The service icon. * * @return string SVG Element for service icon. */ function block_core_social_link_get_icon( $service ) { $services = block_core_social_link_services(); if ( isset( $services[ $service ] ) && isset( $services[ $service ]['icon'] ) ) { return $services[ $service ]['icon']; } return $services['share']['icon']; } /** * Returns the brand name for social link. * * @since 5.4.0 * * @param string $service The service icon. * * @return string Brand label. */ function block_core_social_link_get_name( $service ) { $services = block_core_social_link_services(); if ( isset( $services[ $service ] ) && isset( $services[ $service ]['name'] ) ) { return $services[ $service ]['name']; } return $services['share']['name']; } /** * Returns the SVG for social link. * * @since 5.4.0 * * @param string $service The service slug to extract data from. * @param string $field The field ('name', 'icon', etc) to extract for a service. * * @return array|string */ function block_core_social_link_services( $service = '', $field = '' ) { $services_data = array( 'fivehundredpx' => array( 'name' => _x( '500px', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M6.94026,15.1412c.00437.01213.108.29862.168.44064a6.55008,6.55008,0,1,0,6.03191-9.09557,6.68654,6.68654,0,0,0-2.58357.51467A8.53914,8.53914,0,0,0,8.21268,8.61344L8.209,8.61725V3.22948l9.0504-.00008c.32934-.0036.32934-.46353.32934-.61466s0-.61091-.33035-.61467L7.47248,2a.43.43,0,0,0-.43131.42692v7.58355c0,.24466.30476.42131.58793.4819.553.11812.68074-.05864.81617-.2457l.018-.02481A10.52673,10.52673,0,0,1,9.32258,9.258a5.35268,5.35268,0,1,1,7.58985,7.54976,5.417,5.417,0,0,1-3.80867,1.56365,5.17483,5.17483,0,0,1-2.69822-.74478l.00342-4.61111a2.79372,2.79372,0,0,1,.71372-1.78792,2.61611,2.61611,0,0,1,1.98282-.89477,2.75683,2.75683,0,0,1,1.95525.79477,2.66867,2.66867,0,0,1,.79656,1.909,2.724,2.724,0,0,1-2.75849,2.748,4.94651,4.94651,0,0,1-.86254-.13719c-.31234-.093-.44519.34058-.48892.48349-.16811.54966.08453.65862.13687.67489a3.75751,3.75751,0,0,0,1.25234.18375,3.94634,3.94634,0,1,0-2.82444-6.742,3.67478,3.67478,0,0,0-1.13028,2.584l-.00041.02323c-.0035.11667-.00579,2.881-.00644,3.78811l-.00407-.00451a6.18521,6.18521,0,0,1-1.0851-1.86092c-.10544-.27856-.34358-.22925-.66857-.12917-.14192.04372-.57386.17677-.47833.489Zm4.65165-1.08338a.51346.51346,0,0,0,.19513.31818l.02276.022a.52945.52945,0,0,0,.3517.18416.24242.24242,0,0,0,.16577-.0611c.05473-.05082.67382-.67812.73287-.738l.69041.68819a.28978.28978,0,0,0,.21437.11032.53239.53239,0,0,0,.35708-.19486c.29792-.30419.14885-.46821.07676-.54751l-.69954-.69975.72952-.73469c.16-.17311.01874-.35708-.12218-.498-.20461-.20461-.402-.25742-.52855-.14083l-.7254.72665-.73354-.73375a.20128.20128,0,0,0-.14179-.05695.54135.54135,0,0,0-.34379.19648c-.22561.22555-.274.38149-.15656.5059l.73374.7315-.72942.73072A.26589.26589,0,0,0,11.59191,14.05782Zm1.59866-9.915A8.86081,8.86081,0,0,0,9.854,4.776a.26169.26169,0,0,0-.16938.22759.92978.92978,0,0,0,.08619.42094c.05682.14524.20779.531.50006.41955a8.40969,8.40969,0,0,1,2.91968-.55484,7.87875,7.87875,0,0,1,3.086.62286,8.61817,8.61817,0,0,1,2.30562,1.49315.2781.2781,0,0,0,.18318.07586c.15529,0,.30425-.15253.43167-.29551.21268-.23861.35873-.4369.1492-.63538a8.50425,8.50425,0,0,0-2.62312-1.694A9.0177,9.0177,0,0,0,13.19058,4.14283ZM19.50945,18.6236h0a.93171.93171,0,0,0-.36642-.25406.26589.26589,0,0,0-.27613.06613l-.06943.06929A7.90606,7.90606,0,0,1,7.60639,18.505a7.57284,7.57284,0,0,1-1.696-2.51537,8.58715,8.58715,0,0,1-.5147-1.77754l-.00871-.04864c-.04939-.25873-.28755-.27684-.62981-.22448-.14234.02178-.5755.088-.53426.39969l.001.00712a9.08807,9.08807,0,0,0,15.406,4.99094c.00193-.00192.04753-.04718.0725-.07436C19.79425,19.16234,19.87422,18.98728,19.50945,18.6236Z"></path></svg>', ), 'amazon' => array( 'name' => _x( 'Amazon', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.582,8.182C11.934,8.367,9.78,8.49,8.238,9.166c-1.781,0.769-3.03,2.337-3.03,4.644 c0,2.953,1.86,4.429,4.253,4.429c2.02,0,3.125-0.477,4.685-2.065c0.516,0.747,0.685,1.109,1.629,1.894 c0.212,0.114,0.483,0.103,0.672-0.066l0.006,0.006c0.567-0.505,1.599-1.401,2.18-1.888c0.231-0.188,0.19-0.496,0.009-0.754 c-0.52-0.718-1.072-1.303-1.072-2.634V8.305c0-1.876,0.133-3.599-1.249-4.891C15.23,2.369,13.422,2,12.04,2 C9.336,2,6.318,3.01,5.686,6.351C5.618,6.706,5.877,6.893,6.109,6.945l2.754,0.298C9.121,7.23,9.308,6.977,9.357,6.72 c0.236-1.151,1.2-1.706,2.284-1.706c0.584,0,1.249,0.215,1.595,0.738c0.398,0.584,0.346,1.384,0.346,2.061V8.182z M13.049,14.088 c-0.451,0.8-1.169,1.291-1.967,1.291c-1.09,0-1.728-0.83-1.728-2.061c0-2.42,2.171-2.86,4.227-2.86v0.615 C13.582,12.181,13.608,13.104,13.049,14.088z M20.683,19.339C18.329,21.076,14.917,22,11.979,22c-4.118,0-7.826-1.522-10.632-4.057 c-0.22-0.199-0.024-0.471,0.241-0.317c3.027,1.762,6.771,2.823,10.639,2.823c2.608,0,5.476-0.541,8.115-1.66 C20.739,18.62,21.072,19.051,20.683,19.339z M21.336,21.043c-0.194,0.163-0.379,0.076-0.293-0.139 c0.284-0.71,0.92-2.298,0.619-2.684c-0.301-0.386-1.99-0.183-2.749-0.092c-0.23,0.027-0.266-0.173-0.059-0.319 c1.348-0.946,3.555-0.673,3.811-0.356C22.925,17.773,22.599,19.986,21.336,21.043z"></path></svg>', ), 'bandcamp' => array( 'name' => _x( 'Bandcamp', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M15.27 17.289 3 17.289 8.73 6.711 21 6.711 15.27 17.289"></path></svg>', ), 'behance' => array( 'name' => _x( 'Behance', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M7.799,5.698c0.589,0,1.12,0.051,1.606,0.156c0.482,0.102,0.894,0.273,1.241,0.507c0.344,0.235,0.612,0.546,0.804,0.938 c0.188,0.387,0.281,0.871,0.281,1.443c0,0.619-0.141,1.137-0.421,1.551c-0.284,0.413-0.7,0.751-1.255,1.014 c0.756,0.218,1.317,0.601,1.689,1.146c0.374,0.549,0.557,1.205,0.557,1.975c0,0.623-0.12,1.161-0.359,1.612 c-0.241,0.457-0.569,0.828-0.973,1.114c-0.408,0.288-0.876,0.5-1.399,0.637C9.052,17.931,8.514,18,7.963,18H2V5.698H7.799 M7.449,10.668c0.481,0,0.878-0.114,1.192-0.345c0.311-0.228,0.463-0.603,0.463-1.119c0-0.286-0.051-0.523-0.152-0.707 C8.848,8.315,8.711,8.171,8.536,8.07C8.362,7.966,8.166,7.894,7.94,7.854c-0.224-0.044-0.457-0.06-0.697-0.06H4.709v2.874H7.449z M7.6,15.905c0.267,0,0.521-0.024,0.759-0.077c0.243-0.053,0.457-0.137,0.637-0.261c0.182-0.12,0.332-0.283,0.441-0.491 C9.547,14.87,9.6,14.602,9.6,14.278c0-0.633-0.18-1.084-0.533-1.357c-0.356-0.27-0.83-0.404-1.413-0.404H4.709v3.388L7.6,15.905z M16.162,15.864c0.367,0.358,0.897,0.538,1.583,0.538c0.493,0,0.92-0.125,1.277-0.374c0.354-0.248,0.571-0.514,0.654-0.79h2.155 c-0.347,1.072-0.872,1.838-1.589,2.299C19.534,18,18.67,18.23,17.662,18.23c-0.701,0-1.332-0.113-1.899-0.337 c-0.567-0.227-1.041-0.544-1.439-0.958c-0.389-0.415-0.689-0.907-0.904-1.484c-0.213-0.574-0.32-1.21-0.32-1.899 c0-0.666,0.11-1.288,0.329-1.863c0.222-0.577,0.529-1.075,0.933-1.492c0.406-0.42,0.885-0.751,1.444-0.994 c0.558-0.241,1.175-0.363,1.857-0.363c0.754,0,1.414,0.145,1.98,0.44c0.563,0.291,1.026,0.686,1.389,1.181 c0.363,0.493,0.622,1.057,0.783,1.69c0.16,0.632,0.217,1.292,0.171,1.983h-6.428C15.557,14.84,15.795,15.506,16.162,15.864 M18.973,11.184c-0.291-0.321-0.783-0.496-1.384-0.496c-0.39,0-0.714,0.066-0.973,0.2c-0.254,0.132-0.461,0.297-0.621,0.491 c-0.157,0.197-0.265,0.405-0.328,0.628c-0.063,0.217-0.101,0.413-0.111,0.587h3.98C19.478,11.969,19.265,11.509,18.973,11.184z M15.057,7.738h4.985V6.524h-4.985L15.057,7.738z"></path></svg>', ), 'bluesky' => array( 'name' => _x( 'Bluesky', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M6.3,4.2c2.3,1.7,4.8,5.3,5.7,7.2.9-1.9,3.4-5.4,5.7-7.2,1.7-1.3,4.3-2.2,4.3.9s-.4,5.2-.6,5.9c-.7,2.6-3.3,3.2-5.6,2.8,4,.7,5.1,3,2.9,5.3-5,5.2-6.7-2.8-6.7-2.8,0,0-1.7,8-6.7,2.8-2.2-2.3-1.2-4.6,2.9-5.3-2.3.4-4.9-.3-5.6-2.8-.2-.7-.6-5.3-.6-5.9,0-3.1,2.7-2.1,4.3-.9h0Z"></path></svg>', ), 'chain' => array( 'name' => _x( 'Link', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M15.6,7.2H14v1.5h1.6c2,0,3.7,1.7,3.7,3.7s-1.7,3.7-3.7,3.7H14v1.5h1.6c2.8,0,5.2-2.3,5.2-5.2,0-2.9-2.3-5.2-5.2-5.2zM4.7,12.4c0-2,1.7-3.7,3.7-3.7H10V7.2H8.4c-2.9,0-5.2,2.3-5.2,5.2,0,2.9,2.3,5.2,5.2,5.2H10v-1.5H8.4c-2,0-3.7-1.7-3.7-3.7zm4.6.9h5.3v-1.5H9.3v1.5z"></path></svg>', ), 'codepen' => array( 'name' => _x( 'CodePen', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M22.016,8.84c-0.002-0.013-0.005-0.025-0.007-0.037c-0.005-0.025-0.008-0.048-0.015-0.072 c-0.003-0.015-0.01-0.028-0.013-0.042c-0.008-0.02-0.015-0.04-0.023-0.062c-0.007-0.015-0.013-0.028-0.02-0.042 c-0.008-0.02-0.018-0.037-0.03-0.057c-0.007-0.013-0.017-0.027-0.025-0.038c-0.012-0.018-0.023-0.035-0.035-0.052 c-0.01-0.013-0.02-0.025-0.03-0.037c-0.015-0.017-0.028-0.032-0.043-0.045c-0.01-0.012-0.022-0.023-0.035-0.035 c-0.015-0.015-0.032-0.028-0.048-0.04c-0.012-0.01-0.025-0.02-0.037-0.03c-0.005-0.003-0.01-0.008-0.015-0.012l-9.161-6.096 c-0.289-0.192-0.666-0.192-0.955,0L2.359,8.237C2.354,8.24,2.349,8.245,2.344,8.249L2.306,8.277 c-0.017,0.013-0.033,0.027-0.048,0.04C2.246,8.331,2.234,8.342,2.222,8.352c-0.015,0.015-0.028,0.03-0.042,0.047 c-0.012,0.013-0.022,0.023-0.03,0.037C2.139,8.453,2.125,8.471,2.115,8.488C2.107,8.501,2.099,8.514,2.09,8.526 C2.079,8.548,2.069,8.565,2.06,8.585C2.054,8.6,2.047,8.613,2.04,8.626C2.032,8.648,2.025,8.67,2.019,8.69 c-0.005,0.013-0.01,0.027-0.013,0.042C1.999,8.755,1.995,8.778,1.99,8.803C1.989,8.817,1.985,8.828,1.984,8.84 C1.978,8.879,1.975,8.915,1.975,8.954v6.093c0,0.037,0.003,0.075,0.008,0.112c0.002,0.012,0.005,0.025,0.007,0.038 c0.005,0.023,0.008,0.047,0.015,0.072c0.003,0.015,0.008,0.028,0.013,0.04c0.007,0.022,0.013,0.042,0.022,0.063 c0.007,0.015,0.013,0.028,0.02,0.04c0.008,0.02,0.018,0.038,0.03,0.058c0.007,0.013,0.015,0.027,0.025,0.038 c0.012,0.018,0.023,0.035,0.035,0.052c0.01,0.013,0.02,0.025,0.03,0.037c0.013,0.015,0.028,0.032,0.042,0.045 c0.012,0.012,0.023,0.023,0.035,0.035c0.015,0.013,0.032,0.028,0.048,0.04l0.038,0.03c0.005,0.003,0.01,0.007,0.013,0.01 l9.163,6.095C11.668,21.953,11.833,22,12,22c0.167,0,0.332-0.047,0.478-0.144l9.163-6.095l0.015-0.01 c0.013-0.01,0.027-0.02,0.037-0.03c0.018-0.013,0.035-0.028,0.048-0.04c0.013-0.012,0.025-0.023,0.035-0.035 c0.017-0.015,0.03-0.032,0.043-0.045c0.01-0.013,0.02-0.025,0.03-0.037c0.013-0.018,0.025-0.035,0.035-0.052 c0.008-0.013,0.018-0.027,0.025-0.038c0.012-0.02,0.022-0.038,0.03-0.058c0.007-0.013,0.013-0.027,0.02-0.04 c0.008-0.022,0.015-0.042,0.023-0.063c0.003-0.013,0.01-0.027,0.013-0.04c0.007-0.025,0.01-0.048,0.015-0.072 c0.002-0.013,0.005-0.027,0.007-0.037c0.003-0.042,0.007-0.079,0.007-0.117V8.954C22.025,8.915,22.022,8.879,22.016,8.84z M12.862,4.464l6.751,4.49l-3.016,2.013l-3.735-2.492V4.464z M11.138,4.464v4.009l-3.735,2.494L4.389,8.954L11.138,4.464z M3.699,10.562L5.853,12l-2.155,1.438V10.562z M11.138,19.536l-6.749-4.491l3.015-2.011l3.735,2.492V19.536z M12,14.035L8.953,12 L12,9.966L15.047,12L12,14.035z M12.862,19.536v-4.009l3.735-2.492l3.016,2.011L12.862,19.536z M20.303,13.438L18.147,12 l2.156-1.438L20.303,13.438z"></path></svg>', ), 'deviantart' => array( 'name' => _x( 'DeviantArt', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M 18.19 5.636 18.19 2 18.188 2 14.553 2 14.19 2.366 12.474 5.636 11.935 6 5.81 6 5.81 10.994 9.177 10.994 9.477 11.357 5.81 18.363 5.81 22 5.811 22 9.447 22 9.81 21.634 11.526 18.364 12.065 18 18.19 18 18.19 13.006 14.823 13.006 14.523 12.641 18.19 5.636z"></path></svg>', ), 'discord' => array( 'name' => _x( 'Discord', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" version="1.1" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M20.317 4.369A19.88 19.88 0 0 0 15.894 3a14.145 14.145 0 0 0-.719 1.518 19.205 19.205 0 0 0-5.351 0A14.183 14.183 0 0 0 9.104 3 19.896 19.896 0 0 0 4.682 4.369a18.921 18.921 0 0 0-3.012 12.52 19.929 19.929 0 0 0 6.081 3.097c.487-.65.922-1.339 1.3-2.061a12.445 12.445 0 0 1-1.958-.896c.165-.12.326-.246.483-.374a12.445 12.445 0 0 0 8.946 0c.157.128.318.253.483.374-.627.371-1.281.683-1.958.896.379.722.813 1.41 1.3 2.061a19.94 19.94 0 0 0 6.081-3.097 18.921 18.921 0 0 0-3.012-12.52ZM8.12 15.233c-1.202 0-2.184-1.09-2.184-2.431 0-1.34.97-2.431 2.184-2.431 1.213 0 2.202 1.09 2.184 2.431 0 1.341-.97 2.431-2.184 2.431Zm7.757 0c-1.202 0-2.184-1.09-2.184-2.431 0-1.34.97-2.431 2.184-2.431 1.213 0 2.202 1.09 2.184 2.431 0 1.341-.97 2.431-2.184 2.431Z"/></svg>', ), 'dribbble' => array( 'name' => _x( 'Dribbble', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,22C6.486,22,2,17.514,2,12S6.486,2,12,2c5.514,0,10,4.486,10,10S17.514,22,12,22z M20.434,13.369 c-0.292-0.092-2.644-0.794-5.32-0.365c1.117,3.07,1.572,5.57,1.659,6.09C18.689,17.798,20.053,15.745,20.434,13.369z M15.336,19.876c-0.127-0.749-0.623-3.361-1.822-6.477c-0.019,0.006-0.038,0.013-0.056,0.019c-4.818,1.679-6.547,5.02-6.701,5.334 c1.448,1.129,3.268,1.803,5.243,1.803C13.183,20.555,14.311,20.313,15.336,19.876z M5.654,17.724 c0.193-0.331,2.538-4.213,6.943-5.637c0.111-0.036,0.224-0.07,0.337-0.102c-0.214-0.485-0.448-0.971-0.692-1.45 c-4.266,1.277-8.405,1.223-8.778,1.216c-0.003,0.087-0.004,0.174-0.004,0.261C3.458,14.207,4.29,16.21,5.654,17.724z M3.639,10.264 c0.382,0.005,3.901,0.02,7.897-1.041c-1.415-2.516-2.942-4.631-3.167-4.94C5.979,5.41,4.193,7.613,3.639,10.264z M9.998,3.709 c0.236,0.316,1.787,2.429,3.187,5c3.037-1.138,4.323-2.867,4.477-3.085C16.154,4.286,14.17,3.471,12,3.471 C11.311,3.471,10.641,3.554,9.998,3.709z M18.612,6.612C18.432,6.855,17,8.69,13.842,9.979c0.199,0.407,0.389,0.821,0.567,1.237 c0.063,0.148,0.124,0.295,0.184,0.441c2.842-0.357,5.666,0.215,5.948,0.275C20.522,9.916,19.801,8.065,18.612,6.612z"></path></svg>', ), 'dropbox' => array( 'name' => _x( 'Dropbox', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,6.134L6.069,9.797L2,6.54l5.883-3.843L12,6.134z M2,13.054l5.883,3.843L12,13.459L6.069,9.797L2,13.054z M12,13.459 l4.116,3.439L22,13.054l-4.069-3.257L12,13.459z M22,6.54l-5.884-3.843L12,6.134l5.931,3.663L22,6.54z M12.011,14.2l-4.129,3.426 l-1.767-1.153v1.291l5.896,3.539l5.897-3.539v-1.291l-1.769,1.153L12.011,14.2z"></path></svg>', ), 'etsy' => array( 'name' => _x( 'Etsy', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M9.16033,4.038c0-.27174.02717-.43478.48913-.43478h6.22283c1.087,0,1.68478.92391,2.11957,2.663l.35326,1.38587h1.05978C19.59511,3.712,19.75815,2,19.75815,2s-2.663.29891-4.23913.29891h-7.962L3.29076,2.163v1.1413L4.731,3.57609c1.00543.19022,1.25.40761,1.33152,1.33152,0,0,.08152,2.71739.08152,7.20109s-.08152,7.17391-.08152,7.17391c0,.81522-.32609,1.11413-1.33152,1.30435l-1.44022.27174V22l4.2663-.13587h7.11957c1.60326,0,5.32609.13587,5.32609.13587.08152-.97826.625-5.40761.70652-5.89674H19.7038L18.644,18.52174c-.84239,1.90217-2.06522,2.038-3.42391,2.038H11.1712c-1.3587,0-2.01087-.54348-2.01087-1.712V12.65217s3.0163,0,3.99457.08152c.76087.05435,1.22283.27174,1.46739,1.33152l.32609,1.413h1.16848l-.08152-3.55978.163-3.587H15.02989l-.38043,1.57609c-.24457,1.03261-.40761,1.22283-1.46739,1.33152-1.38587.13587-4.02174.1087-4.02174.1087Z"></path></svg>', ), 'facebook' => array( 'name' => _x( 'Facebook', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12 2C6.5 2 2 6.5 2 12c0 5 3.7 9.1 8.4 9.9v-7H7.9V12h2.5V9.8c0-2.5 1.5-3.9 3.8-3.9 1.1 0 2.2.2 2.2.2v2.5h-1.3c-1.2 0-1.6.8-1.6 1.6V12h2.8l-.4 2.9h-2.3v7C18.3 21.1 22 17 22 12c0-5.5-4.5-10-10-10z"></path></svg>', ), 'feed' => array( 'name' => _x( 'RSS Feed', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M2,8.667V12c5.515,0,10,4.485,10,10h3.333C15.333,14.637,9.363,8.667,2,8.667z M2,2v3.333 c9.19,0,16.667,7.477,16.667,16.667H22C22,10.955,13.045,2,2,2z M4.5,17C3.118,17,2,18.12,2,19.5S3.118,22,4.5,22S7,20.88,7,19.5 S5.882,17,4.5,17z"></path></svg>', ), 'flickr' => array( 'name' => _x( 'Flickr', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M6.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5S9.25,7,6.5,7z M17.5,7c-2.75,0-5,2.25-5,5s2.25,5,5,5s5-2.25,5-5 S20.25,7,17.5,7z"></path></svg>', ), 'foursquare' => array( 'name' => _x( 'Foursquare', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M17.573,2c0,0-9.197,0-10.668,0S5,3.107,5,3.805s0,16.948,0,16.948c0,0.785,0.422,1.077,0.66,1.172 c0.238,0.097,0.892,0.177,1.285-0.275c0,0,5.035-5.843,5.122-5.93c0.132-0.132,0.132-0.132,0.262-0.132h3.26 c1.368,0,1.588-0.977,1.732-1.552c0.078-0.318,0.692-3.428,1.225-6.122l0.675-3.368C19.56,2.893,19.14,2,17.573,2z M16.495,7.22 c-0.053,0.252-0.372,0.518-0.665,0.518c-0.293,0-4.157,0-4.157,0c-0.467,0-0.802,0.318-0.802,0.787v0.508 c0,0.467,0.337,0.798,0.805,0.798c0,0,3.197,0,3.528,0s0.655,0.362,0.583,0.715c-0.072,0.353-0.407,2.102-0.448,2.295 c-0.04,0.193-0.262,0.523-0.655,0.523c-0.33,0-2.88,0-2.88,0c-0.523,0-0.683,0.068-1.033,0.503 c-0.35,0.437-3.505,4.223-3.505,4.223c-0.032,0.035-0.063,0.027-0.063-0.015V4.852c0-0.298,0.26-0.648,0.648-0.648 c0,0,8.228,0,8.562,0c0.315,0,0.61,0.297,0.528,0.683L16.495,7.22z"></path></svg>', ), 'goodreads' => array( 'name' => _x( 'Goodreads', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M17.3,17.5c-0.2,0.8-0.5,1.4-1,1.9c-0.4,0.5-1,0.9-1.7,1.2C13.9,20.9,13.1,21,12,21c-0.6,0-1.3-0.1-1.9-0.2 c-0.6-0.1-1.1-0.4-1.6-0.7c-0.5-0.3-0.9-0.7-1.2-1.2c-0.3-0.5-0.5-1.1-0.5-1.7h1.5c0.1,0.5,0.2,0.9,0.5,1.2 c0.2,0.3,0.5,0.6,0.9,0.8c0.3,0.2,0.7,0.3,1.1,0.4c0.4,0.1,0.8,0.1,1.2,0.1c1.4,0,2.5-0.4,3.1-1.2c0.6-0.8,1-2,1-3.5v-1.7h0 c-0.4,0.8-0.9,1.4-1.6,1.9c-0.7,0.5-1.5,0.7-2.4,0.7c-1,0-1.9-0.2-2.6-0.5C8.7,15,8.1,14.5,7.7,14c-0.5-0.6-0.8-1.3-1-2.1 c-0.2-0.8-0.3-1.6-0.3-2.5c0-0.9,0.1-1.7,0.4-2.5c0.3-0.8,0.6-1.5,1.1-2c0.5-0.6,1.1-1,1.8-1.4C10.3,3.2,11.1,3,12,3 c0.5,0,0.9,0.1,1.3,0.2c0.4,0.1,0.8,0.3,1.1,0.5c0.3,0.2,0.6,0.5,0.9,0.8c0.3,0.3,0.5,0.6,0.6,1h0V3.4h1.5V15 C17.6,15.9,17.5,16.7,17.3,17.5z M13.8,14.1c0.5-0.3,0.9-0.7,1.3-1.1c0.3-0.5,0.6-1,0.8-1.6c0.2-0.6,0.3-1.2,0.3-1.9 c0-0.6-0.1-1.2-0.2-1.9c-0.1-0.6-0.4-1.2-0.7-1.7c-0.3-0.5-0.7-0.9-1.3-1.2c-0.5-0.3-1.1-0.5-1.9-0.5s-1.4,0.2-1.9,0.5 c-0.5,0.3-1,0.7-1.3,1.2C8.5,6.4,8.3,7,8.1,7.6C8,8.2,7.9,8.9,7.9,9.5c0,0.6,0.1,1.3,0.2,1.9C8.3,12,8.6,12.5,8.9,13 c0.3,0.5,0.8,0.8,1.3,1.1c0.5,0.3,1.1,0.4,1.9,0.4C12.7,14.5,13.3,14.4,13.8,14.1z"></path></svg>', ), 'google' => array( 'name' => _x( 'Google', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12.02,10.18v3.72v0.01h5.51c-0.26,1.57-1.67,4.22-5.5,4.22c-3.31,0-6.01-2.75-6.01-6.12s2.7-6.12,6.01-6.12 c1.87,0,3.13,0.8,3.85,1.48l2.84-2.76C16.99,2.99,14.73,2,12.03,2c-5.52,0-10,4.48-10,10s4.48,10,10,10c5.77,0,9.6-4.06,9.6-9.77 c0-0.83-0.11-1.42-0.25-2.05H12.02z"></path></svg>', ), 'github' => array( 'name' => _x( 'GitHub', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,4.419,2.865,8.166,6.839,9.489c0.5,0.09,0.682-0.218,0.682-0.484 c0-0.236-0.009-0.866-0.014-1.699c-2.782,0.602-3.369-1.34-3.369-1.34c-0.455-1.157-1.11-1.465-1.11-1.465 c-0.909-0.62,0.069-0.608,0.069-0.608c1.004,0.071,1.532,1.03,1.532,1.03c0.891,1.529,2.341,1.089,2.91,0.833 c0.091-0.647,0.349-1.086,0.635-1.337c-2.22-0.251-4.555-1.111-4.555-4.943c0-1.091,0.39-1.984,1.03-2.682 C6.546,8.54,6.202,7.524,6.746,6.148c0,0,0.84-0.269,2.75,1.025C10.295,6.95,11.15,6.84,12,6.836 c0.85,0.004,1.705,0.114,2.504,0.336c1.909-1.294,2.748-1.025,2.748-1.025c0.546,1.376,0.202,2.394,0.1,2.646 c0.64,0.699,1.026,1.591,1.026,2.682c0,3.841-2.337,4.687-4.565,4.935c0.359,0.307,0.679,0.917,0.679,1.852 c0,1.335-0.012,2.415-0.012,2.741c0,0.269,0.18,0.579,0.688,0.481C19.138,20.161,22,16.416,22,12C22,6.477,17.523,2,12,2z"></path></svg>', ), 'gravatar' => array( 'name' => _x( 'Gravatar', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M10.8001 4.69937V10.6494C10.8001 11.1001 10.9791 11.5323 11.2978 11.851C11.6165 12.1697 12.0487 12.3487 12.4994 12.3487C12.9501 12.3487 13.3824 12.1697 13.7011 11.851C14.0198 11.5323 14.1988 11.1001 14.1988 10.6494V6.69089C15.2418 7.05861 16.1371 7.75537 16.7496 8.67617C17.3622 9.59698 17.6589 10.6919 17.595 11.796C17.5311 12.9001 17.1101 13.9535 16.3954 14.7975C15.6807 15.6415 14.711 16.2303 13.6325 16.4753C12.5541 16.7202 11.4252 16.608 10.4161 16.1555C9.40691 15.703 8.57217 14.9348 8.03763 13.9667C7.50308 12.9985 7.29769 11.8828 7.45242 10.7877C7.60714 9.69266 8.11359 8.67755 8.89545 7.89537C9.20904 7.57521 9.38364 7.14426 9.38132 6.69611C9.37899 6.24797 9.19994 5.81884 8.88305 5.50195C8.56616 5.18506 8.13704 5.00601 7.68889 5.00369C7.24075 5.00137 6.80979 5.17597 6.48964 5.48956C5.09907 6.8801 4.23369 8.7098 4.04094 10.6669C3.84819 12.624 4.34 14.5873 5.43257 16.2224C6.52515 17.8575 8.15088 19.0632 10.0328 19.634C11.9146 20.2049 13.9362 20.1055 15.753 19.3529C17.5699 18.6003 19.0695 17.241 19.9965 15.5066C20.9234 13.7722 21.2203 11.7701 20.8366 9.84133C20.4528 7.91259 19.4122 6.17658 17.892 4.92911C16.3717 3.68163 14.466 2.99987 12.4994 3C12.0487 3 11.6165 3.17904 11.2978 3.49773C10.9791 3.81643 10.8001 4.24867 10.8001 4.69937Z" /></svg>', ), 'instagram' => array( 'name' => _x( 'Instagram', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,4.622c2.403,0,2.688,0.009,3.637,0.052c0.877,0.04,1.354,0.187,1.671,0.31c0.42,0.163,0.72,0.358,1.035,0.673 c0.315,0.315,0.51,0.615,0.673,1.035c0.123,0.317,0.27,0.794,0.31,1.671c0.043,0.949,0.052,1.234,0.052,3.637 s-0.009,2.688-0.052,3.637c-0.04,0.877-0.187,1.354-0.31,1.671c-0.163,0.42-0.358,0.72-0.673,1.035 c-0.315,0.315-0.615,0.51-1.035,0.673c-0.317,0.123-0.794,0.27-1.671,0.31c-0.949,0.043-1.233,0.052-3.637,0.052 s-2.688-0.009-3.637-0.052c-0.877-0.04-1.354-0.187-1.671-0.31c-0.42-0.163-0.72-0.358-1.035-0.673 c-0.315-0.315-0.51-0.615-0.673-1.035c-0.123-0.317-0.27-0.794-0.31-1.671C4.631,14.688,4.622,14.403,4.622,12 s0.009-2.688,0.052-3.637c0.04-0.877,0.187-1.354,0.31-1.671c0.163-0.42,0.358-0.72,0.673-1.035 c0.315-0.315,0.615-0.51,1.035-0.673c0.317-0.123,0.794-0.27,1.671-0.31C9.312,4.631,9.597,4.622,12,4.622 M12,3 C9.556,3,9.249,3.01,8.289,3.054C7.331,3.098,6.677,3.25,6.105,3.472C5.513,3.702,5.011,4.01,4.511,4.511 c-0.5,0.5-0.808,1.002-1.038,1.594C3.25,6.677,3.098,7.331,3.054,8.289C3.01,9.249,3,9.556,3,12c0,2.444,0.01,2.751,0.054,3.711 c0.044,0.958,0.196,1.612,0.418,2.185c0.23,0.592,0.538,1.094,1.038,1.594c0.5,0.5,1.002,0.808,1.594,1.038 c0.572,0.222,1.227,0.375,2.185,0.418C9.249,20.99,9.556,21,12,21s2.751-0.01,3.711-0.054c0.958-0.044,1.612-0.196,2.185-0.418 c0.592-0.23,1.094-0.538,1.594-1.038c0.5-0.5,0.808-1.002,1.038-1.594c0.222-0.572,0.375-1.227,0.418-2.185 C20.99,14.751,21,14.444,21,12s-0.01-2.751-0.054-3.711c-0.044-0.958-0.196-1.612-0.418-2.185c-0.23-0.592-0.538-1.094-1.038-1.594 c-0.5-0.5-1.002-0.808-1.594-1.038c-0.572-0.222-1.227-0.375-2.185-0.418C14.751,3.01,14.444,3,12,3L12,3z M12,7.378 c-2.552,0-4.622,2.069-4.622,4.622S9.448,16.622,12,16.622s4.622-2.069,4.622-4.622S14.552,7.378,12,7.378z M12,15 c-1.657,0-3-1.343-3-3s1.343-3,3-3s3,1.343,3,3S13.657,15,12,15z M16.804,6.116c-0.596,0-1.08,0.484-1.08,1.08 s0.484,1.08,1.08,1.08c0.596,0,1.08-0.484,1.08-1.08S17.401,6.116,16.804,6.116z"></path></svg>', ), 'lastfm' => array( 'name' => _x( 'Last.fm', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M10.5002,0 C4.7006,0 0,4.70109753 0,10.4998496 C0,16.2989526 4.7006,21 10.5002,21 C16.299,21 21,16.2989526 21,10.4998496 C21,4.70109753 16.299,0 10.5002,0 Z M14.69735,14.7204413 C13.3164,14.7151781 12.4346,14.0870017 11.83445,12.6859357 L11.6816001,12.3451305 L10.35405,9.31011397 C9.92709997,8.26875064 8.85260001,7.57120012 7.68010001,7.57120012 C6.06945001,7.57120012 4.75925001,8.88509738 4.75925001,10.5009524 C4.75925001,12.1164565 6.06945001,13.4303036 7.68010001,13.4303036 C8.77200001,13.4303036 9.76514999,12.827541 10.2719501,11.8567047 C10.2893,11.8235214 10.3239,11.8019673 10.36305,11.8038219 C10.4007,11.8053759 10.43535,11.8287847 10.4504,11.8631709 L10.98655,13.1045863 C11.0016,13.1389726 10.9956,13.17782 10.97225,13.2068931 C10.1605001,14.1995341 8.96020001,14.7683115 7.68010001,14.7683115 C5.33305,14.7683115 3.42340001,12.8535563 3.42340001,10.5009524 C3.42340001,8.14679459 5.33300001,6.23203946 7.68010001,6.23203946 C9.45720002,6.23203946 10.8909,7.19074535 11.6138,8.86359341 C11.6205501,8.88018505 12.3412,10.5707777 12.97445,12.0190621 C13.34865,12.8739575 13.64615,13.3959676 14.6288,13.4291508 C15.5663001,13.4612814 16.25375,12.9121534 16.25375,12.1484869 C16.25375,11.4691321 15.8320501,11.3003585 14.8803,10.98216 C13.2365,10.4397989 12.34495,9.88605929 12.34495,8.51817658 C12.34495,7.1809207 13.26665,6.31615054 14.692,6.31615054 C15.62875,6.31615054 16.3155,6.7286858 16.79215,7.5768142 C16.80495,7.60062396 16.8079001,7.62814302 16.8004001,7.65420843 C16.7929,7.68027384 16.7748,7.70212868 16.7507001,7.713808 L15.86145,8.16900031 C15.8178001,8.19200805 15.7643,8.17807308 15.73565,8.13847371 C15.43295,7.71345711 15.0956,7.52513451 14.6423,7.52513451 C14.05125,7.52513451 13.6220001,7.92899802 13.6220001,8.48649708 C13.6220001,9.17382194 14.1529001,9.34144259 15.0339,9.61923972 C15.14915,9.65578139 15.26955,9.69397731 15.39385,9.73432853 C16.7763,10.1865133 17.57675,10.7311301 17.57675,12.1836251 C17.57685,13.629654 16.3389,14.7204413 14.69735,14.7204413 Z"></path></svg>', ), 'linkedin' => array( 'name' => _x( 'LinkedIn', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.7,3H4.3C3.582,3,3,3.582,3,4.3v15.4C3,20.418,3.582,21,4.3,21h15.4c0.718,0,1.3-0.582,1.3-1.3V4.3 C21,3.582,20.418,3,19.7,3z M8.339,18.338H5.667v-8.59h2.672V18.338z M7.004,8.574c-0.857,0-1.549-0.694-1.549-1.548 c0-0.855,0.691-1.548,1.549-1.548c0.854,0,1.547,0.694,1.547,1.548C8.551,7.881,7.858,8.574,7.004,8.574z M18.339,18.338h-2.669 v-4.177c0-0.996-0.017-2.278-1.387-2.278c-1.389,0-1.601,1.086-1.601,2.206v4.249h-2.667v-8.59h2.559v1.174h0.037 c0.356-0.675,1.227-1.387,2.526-1.387c2.703,0,3.203,1.779,3.203,4.092V18.338z"></path></svg>', ), 'mail' => array( 'name' => _x( 'Mail', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19,5H5c-1.1,0-2,.9-2,2v10c0,1.1.9,2,2,2h14c1.1,0,2-.9,2-2V7c0-1.1-.9-2-2-2zm.5,12c0,.3-.2.5-.5.5H5c-.3,0-.5-.2-.5-.5V9.8l7.5,5.6,7.5-5.6V17zm0-9.1L12,13.6,4.5,7.9V7c0-.3.2-.5.5-.5h14c.3,0,.5.2.5.5v.9z"></path></svg>', ), 'mastodon' => array( 'name' => _x( 'Mastodon', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M23.193 7.879c0-5.206-3.411-6.732-3.411-6.732C18.062.357 15.108.025 12.041 0h-.076c-3.068.025-6.02.357-7.74 1.147 0 0-3.411 1.526-3.411 6.732 0 1.192-.023 2.618.015 4.129.124 5.092.934 10.109 5.641 11.355 2.17.574 4.034.695 5.535.612 2.722-.15 4.25-.972 4.25-.972l-.09-1.975s-1.945.613-4.129.539c-2.165-.074-4.449-.233-4.799-2.891a5.499 5.499 0 0 1-.048-.745s2.125.52 4.817.643c1.646.075 3.19-.097 4.758-.283 3.007-.359 5.625-2.212 5.954-3.905.517-2.665.475-6.507.475-6.507zm-4.024 6.709h-2.497V8.469c0-1.29-.543-1.944-1.628-1.944-1.2 0-1.802.776-1.802 2.312v3.349h-2.483v-3.35c0-1.536-.602-2.312-1.802-2.312-1.085 0-1.628.655-1.628 1.944v6.119H4.832V8.284c0-1.289.328-2.313.987-3.07.68-.758 1.569-1.146 2.674-1.146 1.278 0 2.246.491 2.886 1.474L12 6.585l.622-1.043c.64-.983 1.608-1.474 2.886-1.474 1.104 0 1.994.388 2.674 1.146.658.757.986 1.781.986 3.07v6.304z"/></svg>', ), 'meetup' => array( 'name' => _x( 'Meetup', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M19.24775,14.722a3.57032,3.57032,0,0,1-2.94457,3.52073,3.61886,3.61886,0,0,1-.64652.05634c-.07314-.0008-.10187.02846-.12507.09547A2.38881,2.38881,0,0,1,13.49453,20.094a2.33092,2.33092,0,0,1-1.827-.50716.13635.13635,0,0,0-.19878-.00408,3.191,3.191,0,0,1-2.104.60248,3.26309,3.26309,0,0,1-3.00324-2.71993,2.19076,2.19076,0,0,1-.03512-.30865c-.00156-.08579-.03413-.1189-.11608-.13493a2.86421,2.86421,0,0,1-1.23189-.56111,2.945,2.945,0,0,1-1.166-2.05749,2.97484,2.97484,0,0,1,.87524-2.50774.112.112,0,0,0,.02091-.16107,2.7213,2.7213,0,0,1-.36648-1.48A2.81256,2.81256,0,0,1,6.57673,7.58838a.35764.35764,0,0,0,.28869-.22819,4.2208,4.2208,0,0,1,6.02892-1.90111.25161.25161,0,0,0,.22023.0243,3.65608,3.65608,0,0,1,3.76031.90678A3.57244,3.57244,0,0,1,17.95918,8.626a2.97339,2.97339,0,0,1,.01829.57356.10637.10637,0,0,0,.0853.12792,1.97669,1.97669,0,0,1,1.27939,1.33733,2.00266,2.00266,0,0,1-.57112,2.12652c-.05284.05166-.04168.08328-.01173.13489A3.51189,3.51189,0,0,1,19.24775,14.722Zm-6.35959-.27836a1.6984,1.6984,0,0,0,1.14556,1.61113,3.82039,3.82039,0,0,0,1.036.17935,1.46888,1.46888,0,0,0,.73509-.12255.44082.44082,0,0,0,.26057-.44274.45312.45312,0,0,0-.29211-.43375.97191.97191,0,0,0-.20678-.063c-.21326-.03806-.42754-.0701-.63973-.11215a.54787.54787,0,0,1-.50172-.60926,2.75864,2.75864,0,0,1,.1773-.901c.1763-.535.414-1.045.64183-1.55913A12.686,12.686,0,0,0,15.85,10.47863a1.58461,1.58461,0,0,0,.04861-.87208,1.04531,1.04531,0,0,0-.85432-.83981,1.60658,1.60658,0,0,0-1.23654.16594.27593.27593,0,0,1-.36286-.03413c-.085-.0747-.16594-.15379-.24918-.23055a.98682.98682,0,0,0-1.33577-.04933,6.1468,6.1468,0,0,1-.4989.41615.47762.47762,0,0,1-.51535.03566c-.17448-.09307-.35512-.175-.53531-.25665a1.74949,1.74949,0,0,0-.56476-.2016,1.69943,1.69943,0,0,0-1.61654.91787,8.05815,8.05815,0,0,0-.32952.80126c-.45471,1.2557-.82507,2.53825-1.20838,3.81639a1.24151,1.24151,0,0,0,.51532,1.44389,1.42659,1.42659,0,0,0,1.22008.17166,1.09728,1.09728,0,0,0,.66994-.69764c.44145-1.04111.839-2.09989,1.25981-3.14926.11581-.28876.22792-.57874.35078-.86438a.44548.44548,0,0,1,.69189-.19539.50521.50521,0,0,1,.15044.43836,1.75625,1.75625,0,0,1-.14731.50453c-.27379.69219-.55265,1.38236-.82766,2.074a2.0836,2.0836,0,0,0-.14038.42876.50719.50719,0,0,0,.27082.57722.87236.87236,0,0,0,.66145.02739.99137.99137,0,0,0,.53406-.532q.61571-1.20914,1.228-2.42031.28423-.55863.57585-1.1133a.87189.87189,0,0,1,.29055-.35253.34987.34987,0,0,1,.37634-.01265.30291.30291,0,0,1,.12434.31459.56716.56716,0,0,1-.04655.1915c-.05318.12739-.10286.25669-.16183.38156-.34118.71775-.68754,1.43273-1.02568,2.152A2.00213,2.00213,0,0,0,12.88816,14.44366Zm4.78568,5.28972a.88573.88573,0,0,0-1.77139.00465.8857.8857,0,0,0,1.77139-.00465Zm-14.83838-7.296a.84329.84329,0,1,0,.00827-1.68655.8433.8433,0,0,0-.00827,1.68655Zm10.366-9.43673a.83506.83506,0,1,0-.0091,1.67.83505.83505,0,0,0,.0091-1.67Zm6.85014,5.22a.71651.71651,0,0,0-1.433.0093.71656.71656,0,0,0,1.433-.0093ZM5.37528,6.17908A.63823.63823,0,1,0,6.015,5.54483.62292.62292,0,0,0,5.37528,6.17908Zm6.68214,14.80843a.54949.54949,0,1,0-.55052.541A.54556.54556,0,0,0,12.05742,20.98752Zm8.53235-8.49689a.54777.54777,0,0,0-.54027.54023.53327.53327,0,0,0,.532.52293.51548.51548,0,0,0,.53272-.5237A.53187.53187,0,0,0,20.58977,12.49063ZM7.82846,2.4715a.44927.44927,0,1,0,.44484.44766A.43821.43821,0,0,0,7.82846,2.4715Zm13.775,7.60492a.41186.41186,0,0,0-.40065.39623.40178.40178,0,0,0,.40168.40168A.38994.38994,0,0,0,22,10.48172.39946.39946,0,0,0,21.60349,10.07642ZM5.79193,17.96207a.40469.40469,0,0,0-.397-.39646.399.399,0,0,0-.396.405.39234.39234,0,0,0,.39939.389A.39857.39857,0,0,0,5.79193,17.96207Z"></path></svg>', ), 'medium' => array( 'name' => _x( 'Medium', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.2,12c0,3-2.4,5.4-5.3,5.4S2.6,15,2.6,12s2.4-5.4,5.3-5.4S13.2,9,13.2,12 M19.1,12c0,2.8-1.2,5-2.7,5s-2.7-2.3-2.7-5s1.2-5,2.7-5C17.9,7,19.1,9.2,19.1,12 M21.4,12c0,2.5-0.4,4.5-0.9,4.5c-0.5,0-0.9-2-0.9-4.5s0.4-4.5,0.9-4.5C21,7.5,21.4,9.5,21.4,12"></path></svg>', ), 'patreon' => array( 'name' => _x( 'Patreon', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M20 8.40755C19.9969 6.10922 18.2543 4.22555 16.2097 3.54588C13.6708 2.70188 10.3222 2.82421 7.89775 3.99921C4.95932 5.42355 4.03626 8.54355 4.00186 11.6552C3.97363 14.2136 4.2222 20.9517 7.92225 20.9997C10.6715 21.0356 11.0809 17.3967 12.3529 15.6442C13.258 14.3974 14.4233 14.0452 15.8578 13.6806C18.3233 13.0537 20.0036 11.0551 20 8.40755Z" /></svg>', ), 'pinterest' => array( 'name' => _x( 'Pinterest', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12.289,2C6.617,2,3.606,5.648,3.606,9.622c0,1.846,1.025,4.146,2.666,4.878c0.25,0.111,0.381,0.063,0.439-0.169 c0.044-0.175,0.267-1.029,0.365-1.428c0.032-0.128,0.017-0.237-0.091-0.362C6.445,11.911,6.01,10.75,6.01,9.668 c0-2.777,2.194-5.464,5.933-5.464c3.23,0,5.49,2.108,5.49,5.122c0,3.407-1.794,5.768-4.13,5.768c-1.291,0-2.257-1.021-1.948-2.277 c0.372-1.495,1.089-3.112,1.089-4.191c0-0.967-0.542-1.775-1.663-1.775c-1.319,0-2.379,1.309-2.379,3.059 c0,1.115,0.394,1.869,0.394,1.869s-1.302,5.279-1.54,6.261c-0.405,1.666,0.053,4.368,0.094,4.604 c0.021,0.126,0.167,0.169,0.25,0.063c0.129-0.165,1.699-2.419,2.142-4.051c0.158-0.59,0.817-2.995,0.817-2.995 c0.43,0.784,1.681,1.446,3.013,1.446c3.963,0,6.822-3.494,6.822-7.833C20.394,5.112,16.849,2,12.289,2"></path></svg>', ), 'pocket' => array( 'name' => _x( 'Pocket', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M21.927,4.194C21.667,3.48,20.982,3,20.222,3h-0.01h-1.721H3.839C3.092,3,2.411,3.47,2.145,4.17 C2.066,4.378,2.026,4.594,2.026,4.814v6.035l0.069,1.2c0.29,2.73,1.707,5.115,3.899,6.778c0.039,0.03,0.079,0.059,0.119,0.089 l0.025,0.018c1.175,0.859,2.491,1.441,3.91,1.727c0.655,0.132,1.325,0.2,1.991,0.2c0.615,0,1.232-0.057,1.839-0.17 c0.073-0.014,0.145-0.028,0.219-0.044c0.02-0.004,0.042-0.012,0.064-0.023c1.359-0.297,2.621-0.864,3.753-1.691l0.025-0.018 c0.04-0.029,0.08-0.058,0.119-0.089c2.192-1.664,3.609-4.049,3.898-6.778l0.069-1.2V4.814C22.026,4.605,22,4.398,21.927,4.194z M17.692,10.481l-4.704,4.512c-0.266,0.254-0.608,0.382-0.949,0.382c-0.342,0-0.684-0.128-0.949-0.382l-4.705-4.512 C5.838,9.957,5.82,9.089,6.344,8.542c0.524-0.547,1.392-0.565,1.939-0.04l3.756,3.601l3.755-3.601 c0.547-0.524,1.415-0.506,1.939,0.04C18.256,9.089,18.238,9.956,17.692,10.481z"></path></svg>', ), 'reddit' => array( 'name' => _x( 'Reddit', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M5.27 9.221A2.775 2.775 0 0 0 2.498 11.993a2.785 2.785 0 0 0 1.6 2.511 5.337 5.337 0 0 0 2.374 4.11 9.386 9.386 0 0 0 5.539 1.7 9.386 9.386 0 0 0 5.541-1.7 5.331 5.331 0 0 0 2.372-4.114 2.787 2.787 0 0 0 1.583-2.5 2.775 2.775 0 0 0-2.772-2.772 2.742 2.742 0 0 0-1.688.574 9.482 9.482 0 0 0-4.637-1.348v-.008a2.349 2.349 0 0 1 2.011-2.316 1.97 1.97 0 0 0 1.926 1.521 1.98 1.98 0 0 0 1.978-1.978 1.98 1.98 0 0 0-1.978-1.978 1.985 1.985 0 0 0-1.938 1.578 3.183 3.183 0 0 0-2.849 3.172v.011a9.463 9.463 0 0 0-4.59 1.35 2.741 2.741 0 0 0-1.688-.574Zm6.736 9.1a3.162 3.162 0 0 1-2.921-1.944.215.215 0 0 1 .014-.2.219.219 0 0 1 .168-.106 27.327 27.327 0 0 1 2.74-.133 27.357 27.357 0 0 1 2.74.133.219.219 0 0 1 .168.106.215.215 0 0 1 .014.2 3.158 3.158 0 0 1-2.921 1.944Zm3.743-3.157a1.265 1.265 0 0 1-1.4-1.371 1.954 1.954 0 0 1 .482-1.442 1.15 1.15 0 0 1 .842-.379 1.7 1.7 0 0 1 1.49 1.777 1.323 1.323 0 0 1-.325 1.015 1.476 1.476 0 0 1-1.089.4Zm-7.485 0a1.476 1.476 0 0 1-1.086-.4 1.323 1.323 0 0 1-.325-1.016 1.7 1.7 0 0 1 1.49-1.777 1.151 1.151 0 0 1 .843.379 1.951 1.951 0 0 1 .481 1.441 1.276 1.276 0 0 1-1.403 1.373Z"></path></svg>', ), 'share' => array( 'name' => _x( 'Share Icon', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9 11.8l6.1-4.5c.1.4.4.7.9.7h2c.6 0 1-.4 1-1V5c0-.6-.4-1-1-1h-2c-.6 0-1 .4-1 1v.4l-6.4 4.8c-.2-.1-.4-.2-.6-.2H6c-.6 0-1 .4-1 1v2c0 .6.4 1 1 1h2c.2 0 .4-.1.6-.2l6.4 4.8v.4c0 .6.4 1 1 1h2c.6 0 1-.4 1-1v-2c0-.6-.4-1-1-1h-2c-.5 0-.8.3-.9.7L9 12.2v-.4z"/></svg>', ), 'skype' => array( 'name' => _x( 'Skype', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M10.113,2.699c0.033-0.006,0.067-0.013,0.1-0.02c0.033,0.017,0.066,0.033,0.098,0.051L10.113,2.699z M2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223z M21.275,13.771 c0.007-0.035,0.011-0.071,0.018-0.106c-0.018-0.031-0.033-0.064-0.052-0.095L21.275,13.771z M13.563,21.199 c0.032,0.019,0.065,0.035,0.096,0.053c0.036-0.006,0.071-0.011,0.105-0.017L13.563,21.199z M22,16.386 c0,1.494-0.581,2.898-1.637,3.953c-1.056,1.057-2.459,1.637-3.953,1.637c-0.967,0-1.914-0.251-2.75-0.725 c0.036-0.006,0.071-0.011,0.105-0.017l-0.202-0.035c0.032,0.019,0.065,0.035,0.096,0.053c-0.543,0.096-1.099,0.147-1.654,0.147 c-1.275,0-2.512-0.25-3.676-0.743c-1.125-0.474-2.135-1.156-3.002-2.023c-0.867-0.867-1.548-1.877-2.023-3.002 c-0.493-1.164-0.743-2.401-0.743-3.676c0-0.546,0.049-1.093,0.142-1.628c0.018,0.032,0.033,0.064,0.051,0.095L2.72,10.223 c-0.006,0.034-0.011,0.069-0.017,0.103C2.244,9.5,2,8.566,2,7.615c0-1.493,0.582-2.898,1.637-3.953 c1.056-1.056,2.46-1.638,3.953-1.638c0.915,0,1.818,0.228,2.622,0.655c-0.033,0.007-0.067,0.013-0.1,0.02l0.199,0.031 c-0.032-0.018-0.066-0.034-0.098-0.051c0.002,0,0.003-0.001,0.004-0.001c0.586-0.112,1.187-0.169,1.788-0.169 c1.275,0,2.512,0.249,3.676,0.742c1.124,0.476,2.135,1.156,3.002,2.024c0.868,0.867,1.548,1.877,2.024,3.002 c0.493,1.164,0.743,2.401,0.743,3.676c0,0.575-0.054,1.15-0.157,1.712c-0.018-0.031-0.033-0.064-0.052-0.095l0.034,0.201 c0.007-0.035,0.011-0.071,0.018-0.106C21.754,14.494,22,15.432,22,16.386z M16.817,14.138c0-1.331-0.613-2.743-3.033-3.282 l-2.209-0.49c-0.84-0.192-1.807-0.444-1.807-1.237c0-0.794,0.679-1.348,1.903-1.348c2.468,0,2.243,1.696,3.468,1.696 c0.645,0,1.209-0.379,1.209-1.031c0-1.521-2.435-2.663-4.5-2.663c-2.242,0-4.63,0.952-4.63,3.488c0,1.221,0.436,2.521,2.839,3.123 l2.984,0.745c0.903,0.223,1.129,0.731,1.129,1.189c0,0.762-0.758,1.507-2.129,1.507c-2.679,0-2.307-2.062-3.743-2.062 c-0.645,0-1.113,0.444-1.113,1.078c0,1.236,1.501,2.886,4.856,2.886C15.236,17.737,16.817,16.199,16.817,14.138z"></path></svg>', ), 'snapchat' => array( 'name' => _x( 'Snapchat', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12.065,2a5.526,5.526,0,0,1,3.132.892A5.854,5.854,0,0,1,17.326,5.4a5.821,5.821,0,0,1,.351,2.33q0,.612-.117,2.487a.809.809,0,0,0,.365.091,1.93,1.93,0,0,0,.664-.176,1.93,1.93,0,0,1,.664-.176,1.3,1.3,0,0,1,.729.234.7.7,0,0,1,.351.6.839.839,0,0,1-.41.7,2.732,2.732,0,0,1-.9.41,3.192,3.192,0,0,0-.9.378.728.728,0,0,0-.41.618,1.575,1.575,0,0,0,.156.56,6.9,6.9,0,0,0,1.334,1.953,5.6,5.6,0,0,0,1.881,1.315,5.875,5.875,0,0,0,1.042.3.42.42,0,0,1,.365.456q0,.911-2.852,1.341a1.379,1.379,0,0,0-.143.507,1.8,1.8,0,0,1-.182.605.451.451,0,0,1-.429.241,5.878,5.878,0,0,1-.807-.085,5.917,5.917,0,0,0-.833-.085,4.217,4.217,0,0,0-.807.065,2.42,2.42,0,0,0-.82.293,6.682,6.682,0,0,0-.755.5q-.351.267-.755.527a3.886,3.886,0,0,1-.989.436A4.471,4.471,0,0,1,11.831,22a4.307,4.307,0,0,1-1.256-.176,3.784,3.784,0,0,1-.976-.436q-.4-.26-.749-.527a6.682,6.682,0,0,0-.755-.5,2.422,2.422,0,0,0-.807-.293,4.432,4.432,0,0,0-.82-.065,5.089,5.089,0,0,0-.853.1,5,5,0,0,1-.762.1.474.474,0,0,1-.456-.241,1.819,1.819,0,0,1-.182-.618,1.411,1.411,0,0,0-.143-.521q-2.852-.429-2.852-1.341a.42.42,0,0,1,.365-.456,5.793,5.793,0,0,0,1.042-.3,5.524,5.524,0,0,0,1.881-1.315,6.789,6.789,0,0,0,1.334-1.953A1.575,1.575,0,0,0,6,12.9a.728.728,0,0,0-.41-.618,3.323,3.323,0,0,0-.9-.384,2.912,2.912,0,0,1-.9-.41.814.814,0,0,1-.41-.684.71.71,0,0,1,.338-.593,1.208,1.208,0,0,1,.716-.241,1.976,1.976,0,0,1,.625.169,2.008,2.008,0,0,0,.69.169.919.919,0,0,0,.416-.091q-.117-1.849-.117-2.474A5.861,5.861,0,0,1,6.385,5.4,5.516,5.516,0,0,1,8.625,2.819,7.075,7.075,0,0,1,12.062,2Z"></path></svg>', ), 'soundcloud' => array( 'name' => _x( 'SoundCloud', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M8.9,16.1L9,14L8.9,9.5c0-0.1,0-0.1-0.1-0.1c0,0-0.1-0.1-0.1-0.1c-0.1,0-0.1,0-0.1,0.1c0,0-0.1,0.1-0.1,0.1L8.3,14l0.1,2.1 c0,0.1,0,0.1,0.1,0.1c0,0,0.1,0.1,0.1,0.1C8.8,16.3,8.9,16.3,8.9,16.1z M11.4,15.9l0.1-1.8L11.4,9c0-0.1,0-0.2-0.1-0.2 c0,0-0.1,0-0.1,0s-0.1,0-0.1,0c-0.1,0-0.1,0.1-0.1,0.2l0,0.1l-0.1,5c0,0,0,0.7,0.1,2v0c0,0.1,0,0.1,0.1,0.1c0.1,0.1,0.1,0.1,0.2,0.1 c0.1,0,0.1,0,0.2-0.1c0.1,0,0.1-0.1,0.1-0.2L11.4,15.9z M2.4,12.9L2.5,14l-0.2,1.1c0,0.1,0,0.1-0.1,0.1c0,0-0.1,0-0.1-0.1L2.1,14 l0.1-1.1C2.2,12.9,2.3,12.9,2.4,12.9C2.3,12.9,2.4,12.9,2.4,12.9z M3.1,12.2L3.3,14l-0.2,1.8c0,0.1,0,0.1-0.1,0.1 c-0.1,0-0.1,0-0.1-0.1L2.8,14L3,12.2C3,12.2,3,12.2,3.1,12.2C3.1,12.2,3.1,12.2,3.1,12.2z M3.9,11.9L4.1,14l-0.2,2.1 c0,0.1,0,0.1-0.1,0.1c-0.1,0-0.1,0-0.1-0.1L3.5,14l0.2-2.1c0-0.1,0-0.1,0.1-0.1C3.9,11.8,3.9,11.8,3.9,11.9z M4.7,11.9L4.9,14 l-0.2,2.1c0,0.1-0.1,0.1-0.1,0.1c-0.1,0-0.1,0-0.1-0.1L4.3,14l0.2-2.2c0-0.1,0-0.1,0.1-0.1C4.7,11.7,4.7,11.8,4.7,11.9z M5.6,12 l0.2,2l-0.2,2.1c0,0.1-0.1,0.1-0.1,0.1c0,0-0.1,0-0.1,0c0,0,0-0.1,0-0.1L5.1,14l0.2-2c0,0,0-0.1,0-0.1s0.1,0,0.1,0 C5.5,11.9,5.5,11.9,5.6,12L5.6,12z M6.4,10.7L6.6,14l-0.2,2.1c0,0,0,0.1,0,0.1c0,0-0.1,0-0.1,0c-0.1,0-0.1-0.1-0.2-0.2L5.9,14 l0.2-3.3c0-0.1,0.1-0.2,0.2-0.2c0,0,0.1,0,0.1,0C6.4,10.7,6.4,10.7,6.4,10.7z M7.2,10l0.2,4.1l-0.2,2.1c0,0,0,0.1,0,0.1 c0,0-0.1,0-0.1,0c-0.1,0-0.2-0.1-0.2-0.2l-0.1-2.1L6.8,10c0-0.1,0.1-0.2,0.2-0.2c0,0,0.1,0,0.1,0S7.2,9.9,7.2,10z M8,9.6L8.2,14 L8,16.1c0,0.1-0.1,0.2-0.2,0.2c-0.1,0-0.2-0.1-0.2-0.2L7.5,14l0.1-4.4c0-0.1,0-0.1,0.1-0.1c0,0,0.1-0.1,0.1-0.1c0.1,0,0.1,0,0.1,0.1 C8,9.6,8,9.6,8,9.6z M11.4,16.1L11.4,16.1L11.4,16.1z M9.7,9.6L9.8,14l-0.1,2.1c0,0.1,0,0.1-0.1,0.2s-0.1,0.1-0.2,0.1 c-0.1,0-0.1,0-0.1-0.1s-0.1-0.1-0.1-0.2L9.2,14l0.1-4.4c0-0.1,0-0.1,0.1-0.2s0.1-0.1,0.2-0.1c0.1,0,0.1,0,0.2,0.1S9.7,9.5,9.7,9.6 L9.7,9.6z M10.6,9.8l0.1,4.3l-0.1,2c0,0.1,0,0.1-0.1,0.2c0,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.2-0.1c0,0-0.1-0.1-0.1-0.2L10,14 l0.1-4.3c0-0.1,0-0.1,0.1-0.2c0,0,0.1-0.1,0.2-0.1c0.1,0,0.1,0,0.2,0.1S10.6,9.7,10.6,9.8z M12.4,14l-0.1,2c0,0.1,0,0.1-0.1,0.2 c-0.1,0.1-0.1,0.1-0.2,0.1c-0.1,0-0.1,0-0.2-0.1c-0.1-0.1-0.1-0.1-0.1-0.2l-0.1-1l-0.1-1l0.1-5.5v0c0-0.1,0-0.2,0.1-0.2 c0.1,0,0.1-0.1,0.2-0.1c0,0,0.1,0,0.1,0c0.1,0,0.1,0.1,0.1,0.2L12.4,14z M22.1,13.9c0,0.7-0.2,1.3-0.7,1.7c-0.5,0.5-1.1,0.7-1.7,0.7 h-6.8c-0.1,0-0.1,0-0.2-0.1c-0.1-0.1-0.1-0.1-0.1-0.2V8.2c0-0.1,0.1-0.2,0.2-0.3c0.5-0.2,1-0.3,1.6-0.3c1.1,0,2.1,0.4,2.9,1.1 c0.8,0.8,1.3,1.7,1.4,2.8c0.3-0.1,0.6-0.2,1-0.2c0.7,0,1.3,0.2,1.7,0.7C21.8,12.6,22.1,13.2,22.1,13.9L22.1,13.9z"></path></svg>', ), 'spotify' => array( 'name' => _x( 'Spotify', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12,2C6.477,2,2,6.477,2,12c0,5.523,4.477,10,10,10c5.523,0,10-4.477,10-10C22,6.477,17.523,2,12,2 M16.586,16.424 c-0.18,0.295-0.563,0.387-0.857,0.207c-2.348-1.435-5.304-1.76-8.785-0.964c-0.335,0.077-0.67-0.133-0.746-0.469 c-0.077-0.335,0.132-0.67,0.469-0.746c3.809-0.871,7.077-0.496,9.713,1.115C16.673,15.746,16.766,16.13,16.586,16.424 M17.81,13.7 c-0.226,0.367-0.706,0.482-1.072,0.257c-2.687-1.652-6.785-2.131-9.965-1.166C6.36,12.917,5.925,12.684,5.8,12.273 C5.675,11.86,5.908,11.425,6.32,11.3c3.632-1.102,8.147-0.568,11.234,1.328C17.92,12.854,18.035,13.335,17.81,13.7 M17.915,10.865 c-3.223-1.914-8.54-2.09-11.618-1.156C5.804,9.859,5.281,9.58,5.131,9.086C4.982,8.591,5.26,8.069,5.755,7.919 c3.532-1.072,9.404-0.865,13.115,1.338c0.445,0.264,0.59,0.838,0.327,1.282C18.933,10.983,18.359,11.129,17.915,10.865"></path></svg>', ), 'telegram' => array( 'name' => _x( 'Telegram', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 128 128" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M28.9700376,63.3244248 C47.6273373,55.1957357 60.0684594,49.8368063 66.2934036,47.2476366 C84.0668845,39.855031 87.7600616,38.5708563 90.1672227,38.528 C90.6966555,38.5191258 91.8804274,38.6503351 92.6472251,39.2725385 C93.294694,39.7979149 93.4728387,40.5076237 93.5580865,41.0057381 C93.6433345,41.5038525 93.7494885,42.63857 93.6651041,43.5252052 C92.7019529,53.6451182 88.5344133,78.2034783 86.4142057,89.5379542 C85.5170662,94.3339958 83.750571,95.9420841 82.0403991,96.0994568 C78.3237996,96.4414641 75.5015827,93.6432685 71.9018743,91.2836143 C66.2690414,87.5912212 63.0868492,85.2926952 57.6192095,81.6896017 C51.3004058,77.5256038 55.3966232,75.2369981 58.9976911,71.4967761 C59.9401076,70.5179421 76.3155302,55.6232293 76.6324771,54.2720454 C76.6721165,54.1030573 76.7089039,53.4731496 76.3346867,53.1405352 C75.9604695,52.8079208 75.4081573,52.921662 75.0095933,53.0121213 C74.444641,53.1403447 65.4461175,59.0880351 48.0140228,70.8551922 C45.4598218,72.6091037 43.1463059,73.4636682 41.0734751,73.4188859 C38.7883453,73.3695169 34.3926725,72.1268388 31.1249416,71.0646282 C27.1169366,69.7617838 23.931454,69.0729605 24.208838,66.8603276 C24.3533167,65.7078514 25.9403832,64.5292172 28.9700376,63.3244248 Z" /></svg>', ), 'threads' => array( 'name' => _x( 'Threads', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M16.3 11.3c-.1 0-.2-.1-.2-.1-.1-2.6-1.5-4-3.9-4-1.4 0-2.6.6-3.3 1.7l1.3.9c.5-.8 1.4-1 2-1 .8 0 1.4.2 1.7.7.3.3.5.8.5 1.3-.7-.1-1.4-.2-2.2-.1-2.2.1-3.7 1.4-3.6 3.2 0 .9.5 1.7 1.3 2.2.7.4 1.5.6 2.4.6 1.2-.1 2.1-.5 2.7-1.3.5-.6.8-1.4.9-2.4.6.3 1 .8 1.2 1.3.4.9.4 2.4-.8 3.6-1.1 1.1-2.3 1.5-4.3 1.5-2.1 0-3.8-.7-4.8-2S5.7 14.3 5.7 12c0-2.3.5-4.1 1.5-5.4 1.1-1.3 2.7-2 4.8-2 2.2 0 3.8.7 4.9 2 .5.7.9 1.5 1.2 2.5l1.5-.4c-.3-1.2-.8-2.2-1.5-3.1-1.3-1.7-3.3-2.6-6-2.6-2.6 0-4.7.9-6 2.6C4.9 7.2 4.3 9.3 4.3 12s.6 4.8 1.9 6.4c1.4 1.7 3.4 2.6 6 2.6 2.3 0 4-.6 5.3-2 1.8-1.8 1.7-4 1.1-5.4-.4-.9-1.2-1.7-2.3-2.3zm-4 3.8c-1 .1-2-.4-2-1.3 0-.7.5-1.5 2.1-1.6h.5c.6 0 1.1.1 1.6.2-.2 2.3-1.3 2.7-2.2 2.7z"/></svg>', ), 'tiktok' => array( 'name' => _x( 'TikTok', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 32 32" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M16.708 0.027c1.745-0.027 3.48-0.011 5.213-0.027 0.105 2.041 0.839 4.12 2.333 5.563 1.491 1.479 3.6 2.156 5.652 2.385v5.369c-1.923-0.063-3.855-0.463-5.6-1.291-0.76-0.344-1.468-0.787-2.161-1.24-0.009 3.896 0.016 7.787-0.025 11.667-0.104 1.864-0.719 3.719-1.803 5.255-1.744 2.557-4.771 4.224-7.88 4.276-1.907 0.109-3.812-0.411-5.437-1.369-2.693-1.588-4.588-4.495-4.864-7.615-0.032-0.667-0.043-1.333-0.016-1.984 0.24-2.537 1.495-4.964 3.443-6.615 2.208-1.923 5.301-2.839 8.197-2.297 0.027 1.975-0.052 3.948-0.052 5.923-1.323-0.428-2.869-0.308-4.025 0.495-0.844 0.547-1.485 1.385-1.819 2.333-0.276 0.676-0.197 1.427-0.181 2.145 0.317 2.188 2.421 4.027 4.667 3.828 1.489-0.016 2.916-0.88 3.692-2.145 0.251-0.443 0.532-0.896 0.547-1.417 0.131-2.385 0.079-4.76 0.095-7.145 0.011-5.375-0.016-10.735 0.025-16.093z" /></svg>', ), 'tumblr' => array( 'name' => _x( 'Tumblr', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M17.04 21.28h-3.28c-2.84 0-4.94-1.37-4.94-5.02v-5.67H6.08V7.5c2.93-.73 4.11-3.3 4.3-5.48h3.01v4.93h3.47v3.65H13.4v4.93c0 1.47.73 2.01 1.92 2.01h1.73v3.75z" /></path></svg>', ), 'twitch' => array( 'name' => _x( 'Twitch', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M16.499,8.089h-1.636v4.91h1.636V8.089z M12,8.089h-1.637v4.91H12V8.089z M4.228,3.178L3,6.451v13.092h4.499V22h2.456 l2.454-2.456h3.681L21,14.636V3.178H4.228z M19.364,13.816l-2.864,2.865H12l-2.453,2.453V16.68H5.863V4.814h13.501V13.816z"></path></svg>', ), 'twitter' => array( 'name' => _x( 'Twitter', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M22.23,5.924c-0.736,0.326-1.527,0.547-2.357,0.646c0.847-0.508,1.498-1.312,1.804-2.27 c-0.793,0.47-1.671,0.812-2.606,0.996C18.324,4.498,17.257,4,16.077,4c-2.266,0-4.103,1.837-4.103,4.103 c0,0.322,0.036,0.635,0.106,0.935C8.67,8.867,5.647,7.234,3.623,4.751C3.27,5.357,3.067,6.062,3.067,6.814 c0,1.424,0.724,2.679,1.825,3.415c-0.673-0.021-1.305-0.206-1.859-0.513c0,0.017,0,0.034,0,0.052c0,1.988,1.414,3.647,3.292,4.023 c-0.344,0.094-0.707,0.144-1.081,0.144c-0.264,0-0.521-0.026-0.772-0.074c0.522,1.63,2.038,2.816,3.833,2.85 c-1.404,1.1-3.174,1.756-5.096,1.756c-0.331,0-0.658-0.019-0.979-0.057c1.816,1.164,3.973,1.843,6.29,1.843 c7.547,0,11.675-6.252,11.675-11.675c0-0.178-0.004-0.355-0.012-0.531C20.985,7.47,21.68,6.747,22.23,5.924z"></path></svg>', ), 'vimeo' => array( 'name' => _x( 'Vimeo', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M22.396,7.164c-0.093,2.026-1.507,4.799-4.245,8.32C15.322,19.161,12.928,21,10.97,21c-1.214,0-2.24-1.119-3.079-3.359 c-0.56-2.053-1.119-4.106-1.68-6.159C5.588,9.243,4.921,8.122,4.206,8.122c-0.156,0-0.701,0.328-1.634,0.98L1.594,7.841 c1.027-0.902,2.04-1.805,3.037-2.708C6.001,3.95,7.03,3.327,7.715,3.264c1.619-0.156,2.616,0.951,2.99,3.321 c0.404,2.557,0.685,4.147,0.841,4.769c0.467,2.121,0.981,3.181,1.542,3.181c0.435,0,1.09-0.688,1.963-2.065 c0.871-1.376,1.338-2.422,1.401-3.142c0.125-1.187-0.343-1.782-1.401-1.782c-0.498,0-1.012,0.115-1.541,0.341 c1.023-3.35,2.977-4.977,5.862-4.884C21.511,3.066,22.52,4.453,22.396,7.164z"></path></svg>', ), 'vk' => array( 'name' => _x( 'VK', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M22,7.1c0.2,0.4-0.4,1.5-1.6,3.1c-0.2,0.2-0.4,0.5-0.7,0.9c-0.5,0.7-0.9,1.1-0.9,1.4c-0.1,0.3-0.1,0.6,0.1,0.8 c0.1,0.1,0.4,0.4,0.8,0.9h0l0,0c1,0.9,1.6,1.7,2,2.3c0,0,0,0.1,0.1,0.1c0,0.1,0,0.1,0.1,0.3c0,0.1,0,0.2,0,0.4 c0,0.1-0.1,0.2-0.3,0.3c-0.1,0.1-0.4,0.1-0.6,0.1l-2.7,0c-0.2,0-0.4,0-0.6-0.1c-0.2-0.1-0.4-0.1-0.5-0.2l-0.2-0.1 c-0.2-0.1-0.5-0.4-0.7-0.7s-0.5-0.6-0.7-0.8c-0.2-0.2-0.4-0.4-0.6-0.6C14.8,15,14.6,15,14.4,15c0,0,0,0-0.1,0c0,0-0.1,0.1-0.2,0.2 c-0.1,0.1-0.2,0.2-0.2,0.3c-0.1,0.1-0.1,0.3-0.2,0.5c-0.1,0.2-0.1,0.5-0.1,0.8c0,0.1,0,0.2,0,0.3c0,0.1-0.1,0.2-0.1,0.2l0,0.1 c-0.1,0.1-0.3,0.2-0.6,0.2h-1.2c-0.5,0-1,0-1.5-0.2c-0.5-0.1-1-0.3-1.4-0.6s-0.7-0.5-1.1-0.7s-0.6-0.4-0.7-0.6l-0.3-0.3 c-0.1-0.1-0.2-0.2-0.3-0.3s-0.4-0.5-0.7-0.9s-0.7-1-1.1-1.6c-0.4-0.6-0.8-1.3-1.3-2.2C2.9,9.4,2.5,8.5,2.1,7.5C2,7.4,2,7.3,2,7.2 c0-0.1,0-0.1,0-0.2l0-0.1c0.1-0.1,0.3-0.2,0.6-0.2l2.9,0c0.1,0,0.2,0,0.2,0.1S5.9,6.9,5.9,7L6,7c0.1,0.1,0.2,0.2,0.3,0.3 C6.4,7.7,6.5,8,6.7,8.4C6.9,8.8,7,9,7.1,9.2l0.2,0.3c0.2,0.4,0.4,0.8,0.6,1.1c0.2,0.3,0.4,0.5,0.5,0.7s0.3,0.3,0.4,0.4 c0.1,0.1,0.3,0.1,0.4,0.1c0.1,0,0.2,0,0.3-0.1c0,0,0,0,0.1-0.1c0,0,0.1-0.1,0.1-0.2c0.1-0.1,0.1-0.3,0.1-0.5c0-0.2,0.1-0.5,0.1-0.8 c0-0.4,0-0.8,0-1.3c0-0.3,0-0.5-0.1-0.8c0-0.2-0.1-0.4-0.1-0.5L9.6,7.6C9.4,7.3,9.1,7.2,8.7,7.1C8.6,7.1,8.6,7,8.7,6.9 C8.9,6.7,9,6.6,9.1,6.5c0.4-0.2,1.2-0.3,2.5-0.3c0.6,0,1,0.1,1.4,0.1c0.1,0,0.3,0.1,0.3,0.1c0.1,0.1,0.2,0.1,0.2,0.3 c0,0.1,0.1,0.2,0.1,0.3s0,0.3,0,0.5c0,0.2,0,0.4,0,0.6c0,0.2,0,0.4,0,0.7c0,0.3,0,0.6,0,0.9c0,0.1,0,0.2,0,0.4c0,0.2,0,0.4,0,0.5 c0,0.1,0,0.3,0,0.4s0.1,0.3,0.1,0.4c0.1,0.1,0.1,0.2,0.2,0.3c0.1,0,0.1,0,0.2,0c0.1,0,0.2,0,0.3-0.1c0.1-0.1,0.2-0.2,0.4-0.4 s0.3-0.4,0.5-0.7c0.2-0.3,0.5-0.7,0.7-1.1c0.4-0.7,0.8-1.5,1.1-2.3c0-0.1,0.1-0.1,0.1-0.2c0-0.1,0.1-0.1,0.1-0.1l0,0l0.1,0 c0,0,0,0,0.1,0s0.2,0,0.2,0l3,0c0.3,0,0.5,0,0.7,0S21.9,7,21.9,7L22,7.1z"></path></svg>', ), 'wordpress' => array( 'name' => _x( 'WordPress', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12.158,12.786L9.46,20.625c0.806,0.237,1.657,0.366,2.54,0.366c1.047,0,2.051-0.181,2.986-0.51 c-0.024-0.038-0.046-0.079-0.065-0.124L12.158,12.786z M3.009,12c0,3.559,2.068,6.634,5.067,8.092L3.788,8.341 C3.289,9.459,3.009,10.696,3.009,12z M18.069,11.546c0-1.112-0.399-1.881-0.741-2.48c-0.456-0.741-0.883-1.368-0.883-2.109 c0-0.826,0.627-1.596,1.51-1.596c0.04,0,0.078,0.005,0.116,0.007C16.472,3.904,14.34,3.009,12,3.009 c-3.141,0-5.904,1.612-7.512,4.052c0.211,0.007,0.41,0.011,0.579,0.011c0.94,0,2.396-0.114,2.396-0.114 C7.947,6.93,8.004,7.642,7.52,7.699c0,0-0.487,0.057-1.029,0.085l3.274,9.739l1.968-5.901l-1.401-3.838 C9.848,7.756,9.389,7.699,9.389,7.699C8.904,7.67,8.961,6.93,9.446,6.958c0,0,1.484,0.114,2.368,0.114 c0.94,0,2.397-0.114,2.397-0.114c0.485-0.028,0.542,0.684,0.057,0.741c0,0-0.488,0.057-1.029,0.085l3.249,9.665l0.897-2.996 C17.841,13.284,18.069,12.316,18.069,11.546z M19.889,7.686c0.039,0.286,0.06,0.593,0.06,0.924c0,0.912-0.171,1.938-0.684,3.22 l-2.746,7.94c2.673-1.558,4.47-4.454,4.47-7.771C20.991,10.436,20.591,8.967,19.889,7.686z M12,22C6.486,22,2,17.514,2,12 C2,6.486,6.486,2,12,2c5.514,0,10,4.486,10,10C22,17.514,17.514,22,12,22z"></path></svg>', ), 'whatsapp' => array( 'name' => _x( 'WhatsApp', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M 12.011719 2 C 6.5057187 2 2.0234844 6.478375 2.0214844 11.984375 C 2.0204844 13.744375 2.4814687 15.462563 3.3554688 16.976562 L 2 22 L 7.2324219 20.763672 C 8.6914219 21.559672 10.333859 21.977516 12.005859 21.978516 L 12.009766 21.978516 C 17.514766 21.978516 21.995047 17.499141 21.998047 11.994141 C 22.000047 9.3251406 20.962172 6.8157344 19.076172 4.9277344 C 17.190172 3.0407344 14.683719 2.001 12.011719 2 z M 12.009766 4 C 14.145766 4.001 16.153109 4.8337969 17.662109 6.3417969 C 19.171109 7.8517969 20.000047 9.8581875 19.998047 11.992188 C 19.996047 16.396187 16.413812 19.978516 12.007812 19.978516 C 10.674812 19.977516 9.3544062 19.642812 8.1914062 19.007812 L 7.5175781 18.640625 L 6.7734375 18.816406 L 4.8046875 19.28125 L 5.2851562 17.496094 L 5.5019531 16.695312 L 5.0878906 15.976562 C 4.3898906 14.768562 4.0204844 13.387375 4.0214844 11.984375 C 4.0234844 7.582375 7.6067656 4 12.009766 4 z M 8.4765625 7.375 C 8.3095625 7.375 8.0395469 7.4375 7.8105469 7.6875 C 7.5815469 7.9365 6.9355469 8.5395781 6.9355469 9.7675781 C 6.9355469 10.995578 7.8300781 12.182609 7.9550781 12.349609 C 8.0790781 12.515609 9.68175 15.115234 12.21875 16.115234 C 14.32675 16.946234 14.754891 16.782234 15.212891 16.740234 C 15.670891 16.699234 16.690438 16.137687 16.898438 15.554688 C 17.106437 14.971687 17.106922 14.470187 17.044922 14.367188 C 16.982922 14.263188 16.816406 14.201172 16.566406 14.076172 C 16.317406 13.951172 15.090328 13.348625 14.861328 13.265625 C 14.632328 13.182625 14.464828 13.140625 14.298828 13.390625 C 14.132828 13.640625 13.655766 14.201187 13.509766 14.367188 C 13.363766 14.534188 13.21875 14.556641 12.96875 14.431641 C 12.71875 14.305641 11.914938 14.041406 10.960938 13.191406 C 10.218937 12.530406 9.7182656 11.714844 9.5722656 11.464844 C 9.4272656 11.215844 9.5585938 11.079078 9.6835938 10.955078 C 9.7955938 10.843078 9.9316406 10.663578 10.056641 10.517578 C 10.180641 10.371578 10.223641 10.267562 10.306641 10.101562 C 10.389641 9.9355625 10.347156 9.7890625 10.285156 9.6640625 C 10.223156 9.5390625 9.737625 8.3065 9.515625 7.8125 C 9.328625 7.3975 9.131125 7.3878594 8.953125 7.3808594 C 8.808125 7.3748594 8.6425625 7.375 8.4765625 7.375 z"></path></svg>', ), 'x' => array( 'name' => _x( 'X', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M13.982 10.622 20.54 3h-1.554l-5.693 6.618L8.745 3H3.5l6.876 10.007L3.5 21h1.554l6.012-6.989L15.868 21h5.245l-7.131-10.378Zm-2.128 2.474-.697-.997-5.543-7.93H8l4.474 6.4.697.996 5.815 8.318h-2.387l-4.745-6.787Z" /></svg>', ), 'yelp' => array( 'name' => _x( 'Yelp', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M12.271,16.718v1.417q-.011,3.257-.067,3.4a.707.707,0,0,1-.569.446,4.637,4.637,0,0,1-2.024-.424A4.609,4.609,0,0,1,7.8,20.565a.844.844,0,0,1-.19-.4.692.692,0,0,1,.044-.29,3.181,3.181,0,0,1,.379-.524q.335-.412,2.019-2.409.011,0,.669-.781a.757.757,0,0,1,.44-.274.965.965,0,0,1,.552.039.945.945,0,0,1,.418.324.732.732,0,0,1,.139.468Zm-1.662-2.8a.783.783,0,0,1-.58.781l-1.339.435q-3.067.981-3.257.981a.711.711,0,0,1-.6-.4,2.636,2.636,0,0,1-.19-.836,9.134,9.134,0,0,1,.011-1.857,3.559,3.559,0,0,1,.335-1.389.659.659,0,0,1,.625-.357,22.629,22.629,0,0,1,2.253.859q.781.324,1.283.524l.937.379a.771.771,0,0,1,.4.34A.982.982,0,0,1,10.609,13.917Zm9.213,3.313a4.467,4.467,0,0,1-1.021,1.8,4.559,4.559,0,0,1-1.512,1.417.671.671,0,0,1-.7-.078q-.156-.112-2.052-3.2l-.524-.859a.761.761,0,0,1-.128-.513.957.957,0,0,1,.217-.513.774.774,0,0,1,.926-.29q.011.011,1.327.446,2.264.736,2.7.887a2.082,2.082,0,0,1,.524.229.673.673,0,0,1,.245.68Zm-7.5-7.049q.056,1.137-.6,1.361-.647.19-1.272-.792L6.237,4.08a.7.7,0,0,1,.212-.691,5.788,5.788,0,0,1,2.314-1,5.928,5.928,0,0,1,2.5-.352.681.681,0,0,1,.547.5q.034.2.245,3.407T12.327,10.181Zm7.384,1.2a.679.679,0,0,1-.29.658q-.167.112-3.67.959-.747.167-1.015.257l.011-.022a.769.769,0,0,1-.513-.044.914.914,0,0,1-.413-.357.786.786,0,0,1,0-.971q.011-.011.836-1.137,1.394-1.908,1.673-2.275a2.423,2.423,0,0,1,.379-.435A.7.7,0,0,1,17.435,8a4.482,4.482,0,0,1,1.372,1.489,4.81,4.81,0,0,1,.9,1.868v.034Z"></path></svg>', ), 'youtube' => array( 'name' => _x( 'YouTube', 'social link block variation name' ), 'icon' => '<svg width="24" height="24" viewBox="0 0 24 24" version="1.1" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false"><path d="M21.8,8.001c0,0-0.195-1.378-0.795-1.985c-0.76-0.797-1.613-0.801-2.004-0.847c-2.799-0.202-6.997-0.202-6.997-0.202 h-0.009c0,0-4.198,0-6.997,0.202C4.608,5.216,3.756,5.22,2.995,6.016C2.395,6.623,2.2,8.001,2.2,8.001S2,9.62,2,11.238v1.517 c0,1.618,0.2,3.237,0.2,3.237s0.195,1.378,0.795,1.985c0.761,0.797,1.76,0.771,2.205,0.855c1.6,0.153,6.8,0.201,6.8,0.201 s4.203-0.006,7.001-0.209c0.391-0.047,1.243-0.051,2.004-0.847c0.6-0.607,0.795-1.985,0.795-1.985s0.2-1.618,0.2-3.237v-1.517 C22,9.62,21.8,8.001,21.8,8.001z M9.935,14.594l-0.001-5.62l5.404,2.82L9.935,14.594z"></path></svg>', ), ); /** * Filter the list of available social service. * * This can be used to change icons or add custom icons (additionally to variations in the editor). * Icons should be directly renderable - therefore SVGs work best. * * @since 6.9.0 * * @param array $services_data The list of services. Each item is an array containing a 'name' and 'icon' key. * @return array The list of social services. */ $services_data = apply_filters( 'block_core_social_link_get_services', $services_data ); if ( ! empty( $service ) && ! empty( $field ) && isset( $services_data[ $service ] ) && ( 'icon' === $field || 'name' === $field ) ) { return $services_data[ $service ][ $field ]; } elseif ( ! empty( $service ) && isset( $services_data[ $service ] ) ) { return $services_data[ $service ]; } return $services_data; } /** * Returns CSS styles for icon and icon background colors. * * @since 5.7.0 * * @param array $context Block context passed to Social Link. * * @return string Inline CSS styles for link's icon and background colors. */ function block_core_social_link_get_color_styles( $context ) { $styles = array(); if ( array_key_exists( 'iconColorValue', $context ) ) { $styles[] = 'color:' . $context['iconColorValue'] . ';'; } if ( array_key_exists( 'iconBackgroundColorValue', $context ) ) { $styles[] = 'background-color:' . $context['iconBackgroundColorValue'] . ';'; } return implode( '', $styles ); } /** * Returns CSS classes for icon and icon background colors. * * @since 6.3.0 * * @param array $context Block context passed to Social Sharing Link. * * @return string CSS classes for link's icon and background colors. */ function block_core_social_link_get_color_classes( $context ) { $classes = array(); if ( array_key_exists( 'iconColor', $context ) ) { $classes[] = 'has-' . $context['iconColor'] . '-color'; } if ( array_key_exists( 'iconBackgroundColor', $context ) ) { $classes[] = 'has-' . $context['iconBackgroundColor'] . '-background-color'; } return ' ' . implode( ' ', $classes ); } icon/editor.css 0000775 00000006364 00000000000 0007453 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Typography */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block[data-align=center] > .wp-block-icon { display: flex; justify-content: center; } .wp-block-icon__inserter-sidebar { padding-bottom: 24px; } @media (min-width: 782px) { .wp-block-icon__inserter-sidebar { overflow-x: visible; overflow-y: auto; position: absolute; top: 72px; left: 0; bottom: 0; width: 280px; padding-top: 24px; padding-inline: 24px; } } @media (min-width: 782px) { .wp-block-icon__inserter-panel { margin-inline-start: 280px; } } .wp-block-icon__inserter-loading { display: flex; justify-content: center; padding: 24px; } .wp-block-icon__inserter-grid-icons-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); } .wp-block-icon__inserter-grid-no-results { display: flex; justify-content: center; } .wp-block-icon__inserter-grid-icons-list-item { display: flex; flex-direction: column; height: auto !important; } .wp-block-icon__inserter-grid-icons-list-item-icon { padding: 12px; } .wp-block-icon__inserter-grid-icons-list-item-icon svg { display: block; width: 24px; height: 24px; } .wp-block-icon__inserter-grid-icons-list-item-title { font-size: 12px; padding: 4px 4px 8px; overflow-wrap: break-word; } .wp-block-icon__toolbar-content { width: 250px; } .wp-block-icon__placeholder { backdrop-filter: blur(100px); } icon/editor.min.css 0000775 00000002136 00000000000 0010226 0 ustar 00 .wp-block[data-align=center]>.wp-block-icon{display:flex;justify-content:center}.wp-block-icon__inserter-sidebar{padding-bottom:24px}@media (min-width:782px){.wp-block-icon__inserter-sidebar{bottom:0;left:0;overflow-x:visible;overflow-y:auto;padding-top:24px;padding-inline:24px;position:absolute;top:72px;width:280px}.wp-block-icon__inserter-panel{margin-inline-start:280px}}.wp-block-icon__inserter-loading{display:flex;justify-content:center;padding:24px}.wp-block-icon__inserter-grid-icons-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.wp-block-icon__inserter-grid-no-results{display:flex;justify-content:center}.wp-block-icon__inserter-grid-icons-list-item{display:flex;flex-direction:column;height:auto!important}.wp-block-icon__inserter-grid-icons-list-item-icon{padding:12px}.wp-block-icon__inserter-grid-icons-list-item-icon svg{display:block;height:24px;width:24px}.wp-block-icon__inserter-grid-icons-list-item-title{font-size:12px;overflow-wrap:break-word;padding:4px 4px 8px}.wp-block-icon__toolbar-content{width:250px}.wp-block-icon__placeholder{backdrop-filter:blur(100px)} icon/style-rtl.css 0000775 00000001053 00000000000 0010112 0 ustar 00 /** * Editor and frontend styles for the Icon Block. */ /* Icon Block styles. */ .wp-block-icon { line-height: 0; } .wp-block-icon.aligncenter { display: flex; justify-content: center; } .wp-block-icon svg { box-sizing: border-box; fill: currentColor; } .wp-block-icon svg.is-flip-horizontal { transform: scaleX(-1); } .wp-block-icon svg.is-flip-vertical { transform: scaleY(-1); } .wp-block-icon svg.is-flip-horizontal.is-flip-vertical { transform: scaleX(-1) scaleY(-1); } :where(.wp-block-icon) svg { width: 100%; height: 100%; } icon/editor-rtl.min.css 0000775 00000002137 00000000000 0011026 0 ustar 00 .wp-block[data-align=center]>.wp-block-icon{display:flex;justify-content:center}.wp-block-icon__inserter-sidebar{padding-bottom:24px}@media (min-width:782px){.wp-block-icon__inserter-sidebar{bottom:0;overflow-x:visible;overflow-y:auto;padding-top:24px;padding-inline:24px;position:absolute;right:0;top:72px;width:280px}.wp-block-icon__inserter-panel{margin-inline-start:280px}}.wp-block-icon__inserter-loading{display:flex;justify-content:center;padding:24px}.wp-block-icon__inserter-grid-icons-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.wp-block-icon__inserter-grid-no-results{display:flex;justify-content:center}.wp-block-icon__inserter-grid-icons-list-item{display:flex;flex-direction:column;height:auto!important}.wp-block-icon__inserter-grid-icons-list-item-icon{padding:12px}.wp-block-icon__inserter-grid-icons-list-item-icon svg{display:block;height:24px;width:24px}.wp-block-icon__inserter-grid-icons-list-item-title{font-size:12px;overflow-wrap:break-word;padding:4px 4px 8px}.wp-block-icon__toolbar-content{width:250px}.wp-block-icon__placeholder{backdrop-filter:blur(100px)} icon/style.min.css 0000775 00000000624 00000000000 0010100 0 ustar 00 .wp-block-icon{line-height:0}.wp-block-icon.aligncenter{display:flex;justify-content:center}.wp-block-icon svg{fill:currentColor;box-sizing:border-box}.wp-block-icon svg.is-flip-horizontal{transform:scaleX(-1)}.wp-block-icon svg.is-flip-vertical{transform:scaleY(-1)}.wp-block-icon svg.is-flip-horizontal.is-flip-vertical{transform:scaleX(-1) scaleY(-1)}:where(.wp-block-icon) svg{height:100%;width:100%} icon/block.json 0000775 00000003226 00000000000 0007432 0 ustar 00 { "apiVersion": 3, "$schema": "https://schemas.wp.org/trunk/block.json", "name": "core/icon", "title": "Icon", "category": "media", "description": "Insert an SVG icon.", "keywords": [ "icon", "svg" ], "textdomain": "default", "attributes": { "icon": { "type": "string", "role": "content" }, "flipHorizontal": { "type": "boolean", "default": false }, "flipVertical": { "type": "boolean", "default": false }, "rotation": { "type": "number", "default": 0 } }, "supports": { "anchor": true, "ariaLabel": { "__experimentalSkipSerialization": true }, "align": [ "left", "center", "right" ], "html": false, "color": { "__experimentalSkipSerialization": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalSkipSerialization": true, "__experimentalDefaultControls": { "color": false, "radius": false, "style": false, "width": false } }, "spacing": { "padding": true, "margin": true, "__experimentalSkipSerialization": [ "padding" ], "__experimentalDefaultControls": { "margin": false, "padding": false } }, "dimensions": { "width": true, "__experimentalSkipSerialization": [ "width" ], "__experimentalDefaultControls": { "width": true } } }, "selectors": { "root": ".wp-block-icon svg", "css": ".wp-block-icon", "spacing": { "margin": ".wp-block-icon" } }, "style": "wp-block-icon", "editorStyle": "wp-block-icon-editor" } icon/style-rtl.min.css 0000775 00000000624 00000000000 0010677 0 ustar 00 .wp-block-icon{line-height:0}.wp-block-icon.aligncenter{display:flex;justify-content:center}.wp-block-icon svg{fill:currentColor;box-sizing:border-box}.wp-block-icon svg.is-flip-horizontal{transform:scaleX(-1)}.wp-block-icon svg.is-flip-vertical{transform:scaleY(-1)}.wp-block-icon svg.is-flip-horizontal.is-flip-vertical{transform:scaleX(-1) scaleY(-1)}:where(.wp-block-icon) svg{height:100%;width:100%} icon/style.css 0000775 00000001053 00000000000 0007313 0 ustar 00 /** * Editor and frontend styles for the Icon Block. */ /* Icon Block styles. */ .wp-block-icon { line-height: 0; } .wp-block-icon.aligncenter { display: flex; justify-content: center; } .wp-block-icon svg { box-sizing: border-box; fill: currentColor; } .wp-block-icon svg.is-flip-horizontal { transform: scaleX(-1); } .wp-block-icon svg.is-flip-vertical { transform: scaleY(-1); } .wp-block-icon svg.is-flip-horizontal.is-flip-vertical { transform: scaleX(-1) scaleY(-1); } :where(.wp-block-icon) svg { width: 100%; height: 100%; } icon/editor-rtl.css 0000775 00000006365 00000000000 0010253 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Typography */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block[data-align=center] > .wp-block-icon { display: flex; justify-content: center; } .wp-block-icon__inserter-sidebar { padding-bottom: 24px; } @media (min-width: 782px) { .wp-block-icon__inserter-sidebar { overflow-x: visible; overflow-y: auto; position: absolute; top: 72px; right: 0; bottom: 0; width: 280px; padding-top: 24px; padding-inline: 24px; } } @media (min-width: 782px) { .wp-block-icon__inserter-panel { margin-inline-start: 280px; } } .wp-block-icon__inserter-loading { display: flex; justify-content: center; padding: 24px; } .wp-block-icon__inserter-grid-icons-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); } .wp-block-icon__inserter-grid-no-results { display: flex; justify-content: center; } .wp-block-icon__inserter-grid-icons-list-item { display: flex; flex-direction: column; height: auto !important; } .wp-block-icon__inserter-grid-icons-list-item-icon { padding: 12px; } .wp-block-icon__inserter-grid-icons-list-item-icon svg { display: block; width: 24px; height: 24px; } .wp-block-icon__inserter-grid-icons-list-item-title { font-size: 12px; padding: 4px 4px 8px; overflow-wrap: break-word; } .wp-block-icon__toolbar-content { width: 250px; } .wp-block-icon__placeholder { backdrop-filter: blur(100px); } post-content/style-rtl.css 0000775 00000000060 00000000000 0011614 0 ustar 00 .wp-block-post-content { display: flow-root; } post-content/style.min.css 0000775 00000000051 00000000000 0011577 0 ustar 00 .wp-block-post-content{display:flow-root} post-content/block.json 0000775 00000003362 00000000000 0011140 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-content", "title": "Content", "category": "theme", "description": "Displays the contents of a post or page.", "textdomain": "default", "usesContext": [ "postId", "postType", "queryId" ], "attributes": { "tagName": { "type": "string", "default": "div" } }, "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "layout": true, "background": { "backgroundImage": true, "backgroundSize": true, "gradient": true, "__experimentalDefaultControls": { "backgroundImage": true } }, "dimensions": { "minHeight": true }, "spacing": { "blockGap": true, "padding": true, "margin": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "color": { "gradients": true, "heading": true, "link": true, "__experimentalDefaultControls": { "background": false, "text": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-post-content", "editorStyle": "wp-block-post-content-editor" } post-content/style-rtl.min.css 0000775 00000000051 00000000000 0012376 0 ustar 00 .wp-block-post-content{display:flow-root} post-content/style.css 0000775 00000000060 00000000000 0011015 0 ustar 00 .wp-block-post-content { display: flow-root; } categories.php 0000775 00000011512 00000000000 0007350 0 ustar 00 <?php /** * Server-side rendering of the `core/categories` block. * * @package WordPress */ /** * Renders the `core/categories` block on server. * * @since 5.0.0 * @since 6.7.0 Enable client-side rendering if enhancedPagination context is true. * * @param array $attributes The block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the categories list/dropdown markup. */ function render_block_core_categories( $attributes, $content, $block ) { static $block_id = 0; ++$block_id; $taxonomy = get_taxonomy( $attributes['taxonomy'] ); $args = array( 'echo' => false, 'hierarchical' => ! empty( $attributes['showHierarchy'] ), 'orderby' => 'name', 'show_count' => ! empty( $attributes['showPostCounts'] ), 'taxonomy' => $attributes['taxonomy'], 'title_li' => '', 'hide_empty' => empty( $attributes['showEmpty'] ), ); if ( ! empty( $attributes['showOnlyTopLevel'] ) && $attributes['showOnlyTopLevel'] ) { $args['parent'] = 0; } if ( ! empty( $attributes['displayAsDropdown'] ) ) { $id = 'wp-block-categories-' . $block_id; $args['id'] = $id; $args['name'] = $taxonomy->query_var; $args['value_field'] = 'slug'; $args['show_option_none'] = sprintf( /* translators: %s: taxonomy's singular name */ __( 'Select %s' ), $taxonomy->labels->singular_name ); // Pre-select the current term using query var. $args['selected'] = get_query_var( $taxonomy->query_var ); $show_label = empty( $attributes['showLabel'] ) ? ' screen-reader-text' : ''; $default_label = $taxonomy->label; $label_text = ! empty( $attributes['label'] ) ? wp_kses_post( $attributes['label'] ) : $default_label; $wrapper_markup = '<div %1$s><label class="wp-block-categories__label' . $show_label . '" for="' . esc_attr( $id ) . '">' . $label_text . '</label>%2$s</div>'; $items_markup = wp_dropdown_categories( $args ); $type = 'dropdown'; if ( ! is_admin() ) { // Inject the dropdown script immediately after the select dropdown. $items_markup = preg_replace( '#(?<=</select>)#', build_dropdown_script_block_core_categories( $id ), $items_markup, 1 ); } } else { $args['show_option_none'] = $taxonomy->labels->no_terms; $wrapper_markup = '<ul %1$s>%2$s</ul>'; $items_markup = wp_list_categories( $args ); $type = 'list'; if ( ! empty( $block->context['enhancedPagination'] ) ) { $p = new WP_HTML_Tag_Processor( $items_markup ); while ( $p->next_tag( 'a' ) ) { $p->set_attribute( 'data-wp-on--click', 'core/query::actions.navigate' ); } $items_markup = $p->get_updated_html(); } } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => "wp-block-categories-{$type} wp-block-categories-taxonomy-{$attributes['taxonomy']}" ) ); return sprintf( $wrapper_markup, $wrapper_attributes, $items_markup ); } /** * Generates the inline script for a categories dropdown field. * * @since 5.0.0 * * @param string $dropdown_id ID of the dropdown field. * * @return string Returns the dropdown onChange redirection script. */ function build_dropdown_script_block_core_categories( $dropdown_id ) { ob_start(); $exports = array( $dropdown_id, home_url() ); ?> <script> ( ( [ dropdownId, homeUrl ] ) => { const dropdown = document.getElementById( dropdownId ); function onSelectChange() { setTimeout( () => { if ( 'escape' === dropdown.dataset.lastkey ) { return; } // Only navigate if a valid term is selected (not the default "Select [taxonomy]" option) if ( dropdown.value && dropdown.value !== '-1' && dropdown instanceof HTMLSelectElement ) { const url = new URL( homeUrl ); url.searchParams.set( dropdown.name, dropdown.value ); location.href = url.href; } }, 250 ); } function onKeyUp( event ) { if ( 'Escape' === event.key ) { dropdown.dataset.lastkey = 'escape'; } else { delete dropdown.dataset.lastkey; } } function onClick() { delete dropdown.dataset.lastkey; } dropdown.addEventListener( 'keyup', onKeyUp ); dropdown.addEventListener( 'click', onClick ); dropdown.addEventListener( 'change', onSelectChange ); } )( <?php echo wp_json_encode( $exports, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ); ?> ); </script> <?php return wp_get_inline_script_tag( trim( str_replace( array( '<script>', '</script>' ), '', ob_get_clean() ) ) . "\n//# sourceURL=" . rawurlencode( __FUNCTION__ ) ); } /** * Registers the `core/categories` block on server. * * @since 5.0.0 */ function register_block_core_categories() { register_block_type_from_metadata( __DIR__ . '/categories', array( 'render_callback' => 'render_block_core_categories', ) ); } add_action( 'init', 'register_block_core_categories' ); paragraph/editor.css 0000775 00000001536 00000000000 0010464 0 ustar 00 .block-editor-block-list__block[data-type="core/paragraph"].has-drop-cap:focus { min-height: auto !important; } .block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder] { opacity: 1; } .block-editor-block-list__block[data-empty=true] + .block-editor-block-list__block[data-empty=true]:not([data-custom-placeholder=true]) [data-rich-text-placeholder] { opacity: 0; } .block-editor-block-list__block[data-type="core/paragraph"].has-text-align-right[style*="writing-mode: vertical-rl"], .block-editor-block-list__block[data-type="core/paragraph"].has-text-align-left[style*="writing-mode: vertical-lr"] { rotate: 180deg; } .is-zoomed-out .block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder] { opacity: 0; } html[dir=rtl] .has-drop-cap:not(:focus)::first-letter { float: initial; margin-left: 0.1em; } paragraph/editor.min.css 0000775 00000001435 00000000000 0011244 0 ustar 00 .block-editor-block-list__block[data-type="core/paragraph"].has-drop-cap:focus{min-height:auto!important}.block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder]{opacity:1}.block-editor-block-list__block[data-empty=true]+.block-editor-block-list__block[data-empty=true]:not([data-custom-placeholder=true]) [data-rich-text-placeholder]{opacity:0}.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-left[style*="writing-mode: vertical-lr"],.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg}.is-zoomed-out .block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder]{opacity:0}html[dir=rtl] .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em} paragraph/style-rtl.css 0000775 00000003034 00000000000 0011130 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .is-small-text { font-size: 0.875em; } .is-regular-text { font-size: 1em; } .is-large-text { font-size: 2.25em; } .is-larger-text { font-size: 3em; } .has-drop-cap:not(:focus)::first-letter { float: right; font-size: 8.4em; line-height: 0.68; font-weight: 100; margin: 0.05em 0 0 0.1em; text-transform: uppercase; font-style: normal; } body.rtl .has-drop-cap:not(:focus)::first-letter { float: initial; margin-right: 0.1em; } p.has-drop-cap.has-background { overflow: hidden; } :root :where(p.has-background) { padding: 1.25em 2.375em; } :where(p.has-text-color:not(.has-link-color)) a { color: inherit; } p.has-text-align-right[style*="writing-mode:vertical-rl"], p.has-text-align-left[style*="writing-mode:vertical-lr"] { rotate: 180deg; } paragraph/editor-rtl.min.css 0000775 00000001436 00000000000 0012044 0 ustar 00 .block-editor-block-list__block[data-type="core/paragraph"].has-drop-cap:focus{min-height:auto!important}.block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder]{opacity:1}.block-editor-block-list__block[data-empty=true]+.block-editor-block-list__block[data-empty=true]:not([data-custom-placeholder=true]) [data-rich-text-placeholder]{opacity:0}.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-left[style*="writing-mode: vertical-lr"],.block-editor-block-list__block[data-type="core/paragraph"].has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg}.is-zoomed-out .block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder]{opacity:0}html[dir=rtl] .has-drop-cap:not(:focus):first-letter{float:none;margin-right:.1em} paragraph/style.min.css 0000775 00000001217 00000000000 0011114 0 ustar 00 .is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:left;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em .1em 0 0;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-left:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg} paragraph/block.json 0000775 00000003537 00000000000 0010454 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/paragraph", "title": "Paragraph", "category": "text", "description": "Start with the basic building block of all narrative.", "keywords": [ "text" ], "textdomain": "default", "attributes": { "content": { "type": "rich-text", "source": "rich-text", "selector": "p", "role": "content" }, "dropCap": { "type": "boolean", "default": false }, "placeholder": { "type": "string" }, "direction": { "type": "string", "enum": [ "ltr", "rtl" ] } }, "supports": { "align": [ "wide", "full" ], "splitting": true, "anchor": true, "className": false, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "textColumns": true, "textIndent": true, "__experimentalFontFamily": true, "__experimentalTextDecoration": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalTextTransform": true, "__experimentalWritingMode": true, "fitText": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalSelector": "p", "__unstablePasteTextInline": true, "interactivity": { "clientNavigation": true } }, "selectors": { "root": "p", "typography": { "textIndent": ".wp-block-paragraph + .wp-block-paragraph" } }, "editorStyle": "wp-block-paragraph-editor", "style": "wp-block-paragraph" } paragraph/style-rtl.min.css 0000775 00000001221 00000000000 0011706 0 ustar 00 .is-small-text{font-size:.875em}.is-regular-text{font-size:1em}.is-large-text{font-size:2.25em}.is-larger-text{font-size:3em}.has-drop-cap:not(:focus):first-letter{float:right;font-size:8.4em;font-style:normal;font-weight:100;line-height:.68;margin:.05em 0 0 .1em;text-transform:uppercase}body.rtl .has-drop-cap:not(:focus):first-letter{float:none;margin-right:.1em}p.has-drop-cap.has-background{overflow:hidden}:root :where(p.has-background){padding:1.25em 2.375em}:where(p.has-text-color:not(.has-link-color)) a{color:inherit}p.has-text-align-left[style*="writing-mode:vertical-lr"],p.has-text-align-right[style*="writing-mode:vertical-rl"]{rotate:180deg} paragraph/style.css 0000775 00000003032 00000000000 0010327 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .is-small-text { font-size: 0.875em; } .is-regular-text { font-size: 1em; } .is-large-text { font-size: 2.25em; } .is-larger-text { font-size: 3em; } .has-drop-cap:not(:focus)::first-letter { float: left; font-size: 8.4em; line-height: 0.68; font-weight: 100; margin: 0.05em 0.1em 0 0; text-transform: uppercase; font-style: normal; } body.rtl .has-drop-cap:not(:focus)::first-letter { float: initial; margin-left: 0.1em; } p.has-drop-cap.has-background { overflow: hidden; } :root :where(p.has-background) { padding: 1.25em 2.375em; } :where(p.has-text-color:not(.has-link-color)) a { color: inherit; } p.has-text-align-right[style*="writing-mode:vertical-rl"], p.has-text-align-left[style*="writing-mode:vertical-lr"] { rotate: 180deg; } paragraph/editor-rtl.css 0000775 00000001537 00000000000 0011264 0 ustar 00 .block-editor-block-list__block[data-type="core/paragraph"].has-drop-cap:focus { min-height: auto !important; } .block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder] { opacity: 1; } .block-editor-block-list__block[data-empty=true] + .block-editor-block-list__block[data-empty=true]:not([data-custom-placeholder=true]) [data-rich-text-placeholder] { opacity: 0; } .block-editor-block-list__block[data-type="core/paragraph"].has-text-align-right[style*="writing-mode: vertical-rl"], .block-editor-block-list__block[data-type="core/paragraph"].has-text-align-left[style*="writing-mode: vertical-lr"] { rotate: 180deg; } .is-zoomed-out .block-editor-block-list__block[data-empty=true] [data-rich-text-placeholder] { opacity: 0; } html[dir=rtl] .has-drop-cap:not(:focus)::first-letter { float: initial; margin-right: 0.1em; } footnotes/style-rtl.css 0000775 00000000527 00000000000 0011207 0 ustar 00 .editor-styles-wrapper, .entry-content { counter-reset: footnotes; } a[data-fn].fn { vertical-align: super; font-size: smaller; counter-increment: footnotes; display: inline-flex; text-decoration: none; text-indent: -9999999px; } a[data-fn].fn::after { content: "[" counter(footnotes) "]"; text-indent: 0; float: right; } footnotes/style.min.css 0000775 00000000437 00000000000 0011172 0 ustar 00 .editor-styles-wrapper,.entry-content{counter-reset:footnotes}a[data-fn].fn{counter-increment:footnotes;display:inline-flex;font-size:smaller;text-decoration:none;text-indent:-9999999px;vertical-align:super}a[data-fn].fn:after{content:"[" counter(footnotes) "]";float:left;text-indent:0} footnotes/block.json 0000775 00000002626 00000000000 0010525 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/footnotes", "title": "Footnotes", "category": "text", "description": "Display footnotes added to the page.", "keywords": [ "references" ], "textdomain": "default", "usesContext": [ "postId", "postType" ], "supports": { "anchor": true, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": false, "color": false, "width": false, "style": false } }, "color": { "background": true, "link": true, "text": true, "__experimentalDefaultControls": { "link": true, "text": true } }, "html": false, "multiple": false, "reusable": false, "inserter": false, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalTextDecoration": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalTextTransform": true, "__experimentalWritingMode": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-footnotes" } footnotes/style-rtl.min.css 0000775 00000000440 00000000000 0011763 0 ustar 00 .editor-styles-wrapper,.entry-content{counter-reset:footnotes}a[data-fn].fn{counter-increment:footnotes;display:inline-flex;font-size:smaller;text-decoration:none;text-indent:-9999999px;vertical-align:super}a[data-fn].fn:after{content:"[" counter(footnotes) "]";float:right;text-indent:0} footnotes/style.css 0000775 00000000526 00000000000 0010407 0 ustar 00 .editor-styles-wrapper, .entry-content { counter-reset: footnotes; } a[data-fn].fn { vertical-align: super; font-size: smaller; counter-increment: footnotes; display: inline-flex; text-decoration: none; text-indent: -9999999px; } a[data-fn].fn::after { content: "[" counter(footnotes) "]"; text-indent: 0; float: left; } comments-pagination.php 0000775 00000002355 00000000000 0011204 0 ustar 00 <?php /** * Server-side rendering of the `core/comments-pagination` block. * * @package WordPress */ /** * Renders the `core/comments-pagination` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * * @return string Returns the wrapper for the Comments pagination. */ function render_block_core_comments_pagination( $attributes, $content ) { if ( empty( trim( $content ) ) ) { return ''; } if ( post_password_required() ) { return; } $classes = ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) ? 'has-link-color' : ''; $wrapper_attributes = get_block_wrapper_attributes( array( 'aria-label' => __( 'Comments pagination' ), 'class' => $classes, ) ); return sprintf( '<nav %1$s>%2$s</nav>', $wrapper_attributes, $content ); } /** * Registers the `core/comments-pagination` block on the server. * * @since 6.0.0 */ function register_block_core_comments_pagination() { register_block_type_from_metadata( __DIR__ . '/comments-pagination', array( 'render_callback' => 'render_block_core_comments_pagination', ) ); } add_action( 'init', 'register_block_core_comments_pagination' ); playlist-track.php 0000775 00000004667 00000000000 0010203 0 ustar 00 <?php /** * Server-side rendering of the `core/playlist-track` block. * * @package WordPress */ /** * Renders the `core/playlist-track` block on server. * * @since 7.1.0 * * @param array $attributes The block attributes. * @param string $content The block content. * @param WP_Block|null $block The block instance. * * @return string Returns the Playlist Track. */ function render_block_core_playlist_track( $attributes, $content = '', $block = null ) { if ( empty( $attributes['id'] ) ) { return ''; } $wrapper_attributes = get_block_wrapper_attributes(); $show_images = true; if ( $block instanceof WP_Block && isset( $block->context['showImages'] ) ) { $show_images = $block->context['showImages']; } $artist = $attributes['artist'] ?? ''; $image = $attributes['image'] ?? ''; $alt = $attributes['imageAlt'] ?? ''; $length = $attributes['length'] ?? ''; $title = isset( $attributes['title'] ) && ! empty( $attributes['title'] ) ? $attributes['title'] : __( 'Unknown title' ); $html = '<li ' . $wrapper_attributes . '>'; $html .= '<button data-wp-on--click="actions.changeTrack" data-wp-bind--aria-current="state.isCurrentTrack" class="wp-block-playlist-track__button">'; if ( $show_images && $image ) { $html .= '<img class="wp-block-playlist-track__image" src="' . esc_url( $image ) . '" alt="' . esc_attr( $alt ) . '" />'; } $html .= '<span class="wp-block-playlist-track__content">'; if ( $title ) { $html .= '<span class="wp-block-playlist-track__title">' . esc_html( $title ) . '</span>'; } if ( $artist ) { $html .= '<span class="wp-block-playlist-track__artist">' . esc_html( $artist ) . '</span>'; } $html .= '</span>'; if ( $length ) { $html .= '<span class="wp-block-playlist-track__length">'; $html .= '<span class="screen-reader-text">' . esc_html__( 'Duration:' ) . ' </span>'; $html .= esc_html( $length ); $html .= '</span>'; } $html .= '<span class="screen-reader-text" data-wp-text="state.trackButtonActionLabel">'; $html .= esc_html__( 'Play' ); $html .= '</span>'; $html .= '</button>'; $html .= '</li>'; return $html; } /** * Registers the `core/playlist-track` block on server. * * @since 7.1.0 */ function register_block_core_playlist_track() { register_block_type_from_metadata( __DIR__ . '/playlist-track', array( 'render_callback' => 'render_block_core_playlist_track', ) ); } add_action( 'init', 'register_block_core_playlist_track' ); comments-pagination-previous/block.json 0000775 00000002021 00000000000 0014320 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comments-pagination-previous", "title": "Comments Previous Page", "category": "theme", "parent": [ "core/comments-pagination" ], "description": "Displays the previous comment's page link.", "textdomain": "default", "attributes": { "label": { "type": "string" } }, "usesContext": [ "postId", "comments/paginationArrow" ], "supports": { "anchor": true, "reusable": false, "html": false, "color": { "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } } } missing/block.json 0000775 00000001274 00000000000 0010154 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/missing", "title": "Unsupported", "category": "text", "description": "Your site doesn’t include support for this block.", "textdomain": "default", "attributes": { "originalName": { "type": "string" }, "originalUndelimitedContent": { "type": "string" }, "originalContent": { "type": "string", "source": "raw" } }, "supports": { "className": false, "customClassName": false, "inserter": false, "html": false, "lock": false, "reusable": false, "renaming": false, "visibility": false, "interactivity": { "clientNavigation": true }, "customCSS": false } } widget-group/block.json 0000775 00000000620 00000000000 0011112 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/widget-group", "title": "Widget Group", "category": "widgets", "attributes": { "title": { "type": "string" } }, "supports": { "html": false, "inserter": true, "customClassName": true, "reusable": false }, "editorStyle": "wp-block-widget-group-editor", "style": "wp-block-widget-group" } query-no-results/block.json 0000775 00000001627 00000000000 0011763 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query-no-results", "title": "No Results", "category": "theme", "description": "Contains the block elements used to render content when no query results are found.", "ancestor": [ "core/query" ], "textdomain": "default", "usesContext": [ "queryId", "query" ], "supports": { "anchor": true, "align": true, "reusable": false, "html": false, "color": { "gradients": true, "link": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } } } cover/editor.css 0000775 00000005426 00000000000 0007637 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-cover.is-placeholder { padding: 0 !important; display: flex; align-items: stretch; min-height: 240px; } .wp-block-cover.is-placeholder .components-placeholder.is-large { justify-content: flex-start; z-index: 1; } .wp-block-cover.is-placeholder:focus::after { min-height: auto; } .wp-block-cover.components-placeholder h2 { color: inherit; } .wp-block-cover.is-transient { position: relative; } .wp-block-cover.is-transient::before { background-color: #fff; content: ""; height: 100%; opacity: 0.3; position: absolute; width: 100%; z-index: 1; } .wp-block-cover.is-transient .wp-block-cover__inner-container { z-index: 2; } .wp-block-cover.is-transient .components-spinner { z-index: 3; } .wp-block-cover .components-spinner { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); margin: 0; } .wp-block-cover .wp-block-cover__inner-container { text-align: left; margin-left: 0; margin-right: 0; } .wp-block-cover .wp-block-cover__placeholder-background-options { width: 100%; } .wp-block-cover .wp-block-cover__image--placeholder-image { position: absolute; top: 0; right: 0; bottom: 0; left: 0; } [data-align=left] > .wp-block-cover, [data-align=right] > .wp-block-cover { max-width: 420px; width: 100%; } .block-library-cover__reset-button { margin-left: auto; } .block-library-cover__resize-container { position: absolute !important; top: 0; left: 0; right: 0; bottom: 0; min-height: 50px; } .components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .components-popover__content > div, .components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .block-library-cover__resize-container { pointer-events: none; overflow: visible; } .block-editor-block-patterns-list__list-item .has-parallax.wp-block-cover { background-attachment: scroll; } .color-block-support-panel__inner-wrapper > :not(.block-editor-tools-panel-color-gradient-settings__item) { margin-top: 24px; } cover/editor.min.css 0000775 00000003371 00000000000 0010416 0 ustar 00 .wp-block-cover.is-placeholder{align-items:stretch;display:flex;min-height:240px;padding:0!important}.wp-block-cover.is-placeholder .components-placeholder.is-large{justify-content:flex-start;z-index:1}.wp-block-cover.is-placeholder:focus:after{min-height:auto}.wp-block-cover.components-placeholder h2{color:inherit}.wp-block-cover.is-transient{position:relative}.wp-block-cover.is-transient:before{background-color:#fff;content:"";height:100%;opacity:.3;position:absolute;width:100%;z-index:1}.wp-block-cover.is-transient .wp-block-cover__inner-container{z-index:2}.wp-block-cover.is-transient .components-spinner{z-index:3}.wp-block-cover .components-spinner{left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.wp-block-cover .wp-block-cover__inner-container{margin-left:0;margin-right:0;text-align:left}.wp-block-cover .wp-block-cover__placeholder-background-options{width:100%}.wp-block-cover .wp-block-cover__image--placeholder-image{bottom:0;left:0;position:absolute;right:0;top:0}[data-align=left]>.wp-block-cover,[data-align=right]>.wp-block-cover{max-width:420px;width:100%}.block-library-cover__reset-button{margin-left:auto}.block-library-cover__resize-container{bottom:0;left:0;min-height:50px;position:absolute!important;right:0;top:0}.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .block-library-cover__resize-container,.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .components-popover__content>div{overflow:visible;pointer-events:none}.block-editor-block-patterns-list__list-item .has-parallax.wp-block-cover{background-attachment:scroll}.color-block-support-panel__inner-wrapper>:not(.block-editor-tools-panel-color-gradient-settings__item){margin-top:24px} cover/style-rtl.css 0000775 00000054402 00000000000 0010306 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-cover-image, .wp-block-cover { min-height: 430px; padding: 1em; position: relative; background-position: center center; display: flex; justify-content: center; align-items: center; overflow: hidden; overflow: clip; box-sizing: border-box; direction: ltr; /** * Set a default background color for has-background-dim _unless_ it includes another * background-color class (e.g. has-green-background-color). The presence of another * background-color class implies that another style will provide the background color * for the overlay. * * See: * - Issue with background color specificity: https://github.com/WordPress/gutenberg/issues/26545 * - Issue with alternative fix: https://github.com/WordPress/gutenberg/issues/26545 */ } .wp-block-cover-image.has-background-dim:not([class*=-background-color]), .wp-block-cover-image .has-background-dim:not([class*=-background-color]), .wp-block-cover.has-background-dim:not([class*=-background-color]), .wp-block-cover .has-background-dim:not([class*=-background-color]) { background-color: #000; } .wp-block-cover-image .has-background-dim.has-background-gradient, .wp-block-cover .has-background-dim.has-background-gradient { background-color: transparent; } .wp-block-cover-image.has-background-dim::before, .wp-block-cover.has-background-dim::before { content: ""; background-color: inherit; } .wp-block-cover-image.has-background-dim:not(.has-background-gradient)::before, .wp-block-cover-image .wp-block-cover__background, .wp-block-cover-image .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim:not(.has-background-gradient)::before, .wp-block-cover .wp-block-cover__background, .wp-block-cover .wp-block-cover__gradient-background { position: absolute; top: 0; right: 0; bottom: 0; left: 0; opacity: 0.5; } .wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background { opacity: 0.1; } .wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background { opacity: 0.2; } .wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background { opacity: 0.3; } .wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background { opacity: 0.4; } .wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background { opacity: 0.5; } .wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background { opacity: 0.6; } .wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background { opacity: 0.7; } .wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background { opacity: 0.8; } .wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background { opacity: 0.9; } .wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background { opacity: 1; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0 { opacity: 0; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10 { opacity: 0.1; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20 { opacity: 0.2; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30 { opacity: 0.3; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40 { opacity: 0.4; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50 { opacity: 0.5; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60 { opacity: 0.6; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70 { opacity: 0.7; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80 { opacity: 0.8; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90 { opacity: 0.9; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100 { opacity: 1; } .wp-block-cover-image.alignleft, .wp-block-cover-image.alignright, .wp-block-cover.alignleft, .wp-block-cover.alignright { max-width: 420px; width: 100%; } .wp-block-cover-image.aligncenter, .wp-block-cover-image.alignleft, .wp-block-cover-image.alignright, .wp-block-cover.aligncenter, .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 { position: relative; width: 100%; color: inherit; direction: rtl; } .wp-block-cover-image.is-position-top-left, .wp-block-cover.is-position-top-left { align-items: flex-start; justify-content: flex-start; } .wp-block-cover-image.is-position-top-center, .wp-block-cover.is-position-top-center { align-items: flex-start; justify-content: center; } .wp-block-cover-image.is-position-top-right, .wp-block-cover.is-position-top-right { align-items: flex-start; justify-content: flex-end; } .wp-block-cover-image.is-position-center-left, .wp-block-cover.is-position-center-left { align-items: center; justify-content: flex-start; } .wp-block-cover-image.is-position-center-center, .wp-block-cover.is-position-center-center { align-items: center; justify-content: center; } .wp-block-cover-image.is-position-center-right, .wp-block-cover.is-position-center-right { align-items: center; justify-content: flex-end; } .wp-block-cover-image.is-position-bottom-left, .wp-block-cover.is-position-bottom-left { align-items: flex-end; justify-content: flex-start; } .wp-block-cover-image.is-position-bottom-center, .wp-block-cover.is-position-bottom-center { align-items: flex-end; justify-content: center; } .wp-block-cover-image.is-position-bottom-right, .wp-block-cover.is-position-bottom-right { align-items: flex-end; justify-content: flex-end; } .wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container { margin: 0; } .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container { margin: 0; width: auto; } .wp-block-cover-image .wp-block-cover__image-background, .wp-block-cover-image video.wp-block-cover__video-background, .wp-block-cover .wp-block-cover__image-background, .wp-block-cover video.wp-block-cover__video-background { position: absolute; top: 0; right: 0; left: 0; bottom: 0; margin: 0; padding: 0; width: 100%; height: 100%; max-width: none; max-height: none; -o-object-fit: cover; object-fit: cover; outline: none; border: none; box-shadow: none; } .wp-block-cover-image .wp-block-cover__embed-background, .wp-block-cover .wp-block-cover__embed-background { position: absolute; top: 0; right: 0; left: 0; bottom: 0; margin: 0; padding: 0; width: 100%; height: 100%; max-width: none; max-height: none; outline: none; border: none; box-shadow: none; pointer-events: none; } .wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper, .wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper { position: absolute; top: 0; right: 0; left: 0; bottom: 0; margin: 0; padding: 0; width: 100%; height: 100%; } .wp-block-cover-image .wp-block-cover__embed-background iframe, .wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper iframe, .wp-block-cover .wp-block-cover__embed-background iframe, .wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper iframe { position: absolute; top: 50%; right: 50%; width: 100vw; height: 100vh; min-width: 100%; min-height: 100%; transform: translate(50%, -50%); pointer-events: none; } .wp-block-cover-image.has-parallax, .wp-block-cover.has-parallax, .wp-block-cover__image-background.has-parallax, video.wp-block-cover__video-background.has-parallax { background-attachment: fixed; background-size: cover; background-repeat: no-repeat; } @supports (-webkit-touch-callout: inherit) { .wp-block-cover-image.has-parallax, .wp-block-cover.has-parallax, .wp-block-cover__image-background.has-parallax, video.wp-block-cover__video-background.has-parallax { background-attachment: scroll; } } @media (prefers-reduced-motion: reduce) { .wp-block-cover-image.has-parallax, .wp-block-cover.has-parallax, .wp-block-cover__image-background.has-parallax, video.wp-block-cover__video-background.has-parallax { background-attachment: scroll; } } .wp-block-cover-image.is-repeated, .wp-block-cover.is-repeated, .wp-block-cover__image-background.is-repeated, video.wp-block-cover__video-background.is-repeated { background-repeat: repeat; background-size: auto; } section.wp-block-cover-image h2, .wp-block-cover-image-text, .wp-block-cover-text { color: #fff; } section.wp-block-cover-image h2 a, section.wp-block-cover-image h2 a:hover, section.wp-block-cover-image h2 a:focus, section.wp-block-cover-image h2 a:active, .wp-block-cover-image-text a, .wp-block-cover-image-text a:hover, .wp-block-cover-image-text a:focus, .wp-block-cover-image-text a:active, .wp-block-cover-text a, .wp-block-cover-text a:hover, .wp-block-cover-text a:focus, .wp-block-cover-text a:active { color: #fff; } .wp-block-cover-image .wp-block-cover.has-left-content { justify-content: flex-start; } .wp-block-cover-image .wp-block-cover.has-right-content { justify-content: flex-end; } section.wp-block-cover-image.has-left-content > h2, .wp-block-cover-image.has-left-content .wp-block-cover-image-text, .wp-block-cover.has-left-content .wp-block-cover-text { margin-right: 0; text-align: right; } section.wp-block-cover-image.has-right-content > h2, .wp-block-cover-image.has-right-content .wp-block-cover-image-text, .wp-block-cover.has-right-content .wp-block-cover-text { margin-left: 0; text-align: left; } section.wp-block-cover-image > h2, .wp-block-cover-image .wp-block-cover-image-text, .wp-block-cover .wp-block-cover-text { font-size: 2em; line-height: 1.25; z-index: 1; margin-bottom: 0; max-width: 840px; padding: 0.44em; text-align: center; } :where(.wp-block-cover:not(.has-text-color)), :where(.wp-block-cover-image:not(.has-text-color)) { color: #fff; } :where(.wp-block-cover.is-light:not(.has-text-color)), :where(.wp-block-cover-image.is-light:not(.has-text-color)) { color: #000; } :root :where(.wp-block-cover p:not(.has-text-color)), :root :where(.wp-block-cover h1:not(.has-text-color)), :root :where(.wp-block-cover h2:not(.has-text-color)), :root :where(.wp-block-cover h3:not(.has-text-color)), :root :where(.wp-block-cover h4:not(.has-text-color)), :root :where(.wp-block-cover h5:not(.has-text-color)), :root :where(.wp-block-cover h6:not(.has-text-color)) { color: inherit; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__video-background { z-index: 0; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__embed-background { z-index: 0; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__image-background { z-index: 0; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)).has-background-dim:not(.has-background-gradient)::before, body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__background, body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__gradient-background { z-index: 1; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__inner-container { z-index: 1; } .has-modal-open body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__inner-container { z-index: auto; } cover/editor-rtl.min.css 0000775 00000003373 00000000000 0011217 0 ustar 00 .wp-block-cover.is-placeholder{align-items:stretch;display:flex;min-height:240px;padding:0!important}.wp-block-cover.is-placeholder .components-placeholder.is-large{justify-content:flex-start;z-index:1}.wp-block-cover.is-placeholder:focus:after{min-height:auto}.wp-block-cover.components-placeholder h2{color:inherit}.wp-block-cover.is-transient{position:relative}.wp-block-cover.is-transient:before{background-color:#fff;content:"";height:100%;opacity:.3;position:absolute;width:100%;z-index:1}.wp-block-cover.is-transient .wp-block-cover__inner-container{z-index:2}.wp-block-cover.is-transient .components-spinner{z-index:3}.wp-block-cover .components-spinner{margin:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.wp-block-cover .wp-block-cover__inner-container{margin-left:0;margin-right:0;text-align:right}.wp-block-cover .wp-block-cover__placeholder-background-options{width:100%}.wp-block-cover .wp-block-cover__image--placeholder-image{bottom:0;left:0;position:absolute;right:0;top:0}[data-align=left]>.wp-block-cover,[data-align=right]>.wp-block-cover{max-width:420px;width:100%}.block-library-cover__reset-button{margin-right:auto}.block-library-cover__resize-container{bottom:0;left:0;min-height:50px;position:absolute!important;right:0;top:0}.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .block-library-cover__resize-container,.components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .components-popover__content>div{overflow:visible;pointer-events:none}.block-editor-block-patterns-list__list-item .has-parallax.wp-block-cover{background-attachment:scroll}.color-block-support-panel__inner-wrapper>:not(.block-editor-tools-panel-color-gradient-settings__item){margin-top:24px} cover/style.min.css 0000775 00000047534 00000000000 0010301 0 ustar 00 .wp-block-cover,.wp-block-cover-image{align-items:center;background-position:50%;box-sizing:border-box;display:flex;justify-content:center;min-height:430px;overflow:hidden;overflow:clip;padding:1em;position:relative}.wp-block-cover .has-background-dim:not([class*=-background-color]),.wp-block-cover-image .has-background-dim:not([class*=-background-color]),.wp-block-cover-image.has-background-dim:not([class*=-background-color]),.wp-block-cover.has-background-dim:not([class*=-background-color]){background-color:#000}.wp-block-cover .has-background-dim.has-background-gradient,.wp-block-cover-image .has-background-dim.has-background-gradient{background-color:transparent}.wp-block-cover-image.has-background-dim:before,.wp-block-cover.has-background-dim:before{background-color:inherit;content:""}.wp-block-cover .wp-block-cover__background,.wp-block-cover .wp-block-cover__gradient-background,.wp-block-cover-image .wp-block-cover__background,.wp-block-cover-image .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim:not(.has-background-gradient):before,.wp-block-cover.has-background-dim:not(.has-background-gradient):before{bottom:0;left:0;opacity:.5;position:absolute;right:0;top:0}.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient):before{opacity:.1}.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient):before{opacity:.2}.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient):before{opacity:.3}.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient):before{opacity:.4}.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient):before{opacity:.5}.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient):before{opacity:.6}.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient):before{opacity:.7}.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient):before{opacity:.8}.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient):before{opacity:.9}.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient):before{opacity:1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0{opacity:0}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10{opacity:.1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20{opacity:.2}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30{opacity:.3}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40{opacity:.4}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50{opacity:.5}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60{opacity:.6}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70{opacity:.7}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80{opacity:.8}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90{opacity:.9}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100{opacity:1}.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.alignleft,.wp-block-cover.alignright{max-width:420px;width:100%}.wp-block-cover-image.aligncenter,.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.aligncenter,.wp-block-cover.alignleft,.wp-block-cover.alignright{display:flex}.wp-block-cover .wp-block-cover__inner-container,.wp-block-cover-image .wp-block-cover__inner-container{color:inherit;position:relative;width:100%}.wp-block-cover-image.is-position-top-left,.wp-block-cover.is-position-top-left{align-items:flex-start;justify-content:flex-start}.wp-block-cover-image.is-position-top-center,.wp-block-cover.is-position-top-center{align-items:flex-start;justify-content:center}.wp-block-cover-image.is-position-top-right,.wp-block-cover.is-position-top-right{align-items:flex-start;justify-content:flex-end}.wp-block-cover-image.is-position-center-left,.wp-block-cover.is-position-center-left{align-items:center;justify-content:flex-start}.wp-block-cover-image.is-position-center-center,.wp-block-cover.is-position-center-center{align-items:center;justify-content:center}.wp-block-cover-image.is-position-center-right,.wp-block-cover.is-position-center-right{align-items:center;justify-content:flex-end}.wp-block-cover-image.is-position-bottom-left,.wp-block-cover.is-position-bottom-left{align-items:flex-end;justify-content:flex-start}.wp-block-cover-image.is-position-bottom-center,.wp-block-cover.is-position-bottom-center{align-items:flex-end;justify-content:center}.wp-block-cover-image.is-position-bottom-right,.wp-block-cover.is-position-bottom-right{align-items:flex-end;justify-content:flex-end}.wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container{margin:0}.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container{margin:0;width:auto}.wp-block-cover .wp-block-cover__image-background,.wp-block-cover video.wp-block-cover__video-background,.wp-block-cover-image .wp-block-cover__image-background,.wp-block-cover-image video.wp-block-cover__video-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;-o-object-fit:cover;object-fit:cover;outline:none;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover .wp-block-cover__embed-background,.wp-block-cover-image .wp-block-cover__embed-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;outline:none;padding:0;pointer-events:none;position:absolute;right:0;top:0;width:100%}.wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper,.wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper{bottom:0;height:100%;left:0;margin:0;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper iframe,.wp-block-cover .wp-block-cover__embed-background iframe,.wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper iframe,.wp-block-cover-image .wp-block-cover__embed-background iframe{height:100vh;left:50%;min-height:100%;min-width:100%;pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%);width:100vw}.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:fixed;background-repeat:no-repeat;background-size:cover}@supports (-webkit-touch-callout:inherit){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}@media (prefers-reduced-motion:reduce){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}.wp-block-cover-image.is-repeated,.wp-block-cover.is-repeated,.wp-block-cover__image-background.is-repeated,video.wp-block-cover__video-background.is-repeated{background-repeat:repeat;background-size:auto}.wp-block-cover-image-text,.wp-block-cover-image-text a,.wp-block-cover-image-text a:active,.wp-block-cover-image-text a:focus,.wp-block-cover-image-text a:hover,.wp-block-cover-text,.wp-block-cover-text a,.wp-block-cover-text a:active,.wp-block-cover-text a:focus,.wp-block-cover-text a:hover,section.wp-block-cover-image h2,section.wp-block-cover-image h2 a,section.wp-block-cover-image h2 a:active,section.wp-block-cover-image h2 a:focus,section.wp-block-cover-image h2 a:hover{color:#fff}.wp-block-cover-image .wp-block-cover.has-left-content{justify-content:flex-start}.wp-block-cover-image .wp-block-cover.has-right-content{justify-content:flex-end}.wp-block-cover-image.has-left-content .wp-block-cover-image-text,.wp-block-cover.has-left-content .wp-block-cover-text,section.wp-block-cover-image.has-left-content>h2{margin-left:0;text-align:left}.wp-block-cover-image.has-right-content .wp-block-cover-image-text,.wp-block-cover.has-right-content .wp-block-cover-text,section.wp-block-cover-image.has-right-content>h2{margin-right:0;text-align:right}.wp-block-cover .wp-block-cover-text,.wp-block-cover-image .wp-block-cover-image-text,section.wp-block-cover-image>h2{font-size:2em;line-height:1.25;margin-bottom:0;max-width:840px;padding:.44em;text-align:center;z-index:1}:where(.wp-block-cover-image:not(.has-text-color)),:where(.wp-block-cover:not(.has-text-color)){color:#fff}:where(.wp-block-cover-image.is-light:not(.has-text-color)),:where(.wp-block-cover.is-light:not(.has-text-color)){color:#000}:root :where(.wp-block-cover h1:not(.has-text-color)),:root :where(.wp-block-cover h2:not(.has-text-color)),:root :where(.wp-block-cover h3:not(.has-text-color)),:root :where(.wp-block-cover h4:not(.has-text-color)),:root :where(.wp-block-cover h5:not(.has-text-color)),:root :where(.wp-block-cover h6:not(.has-text-color)),:root :where(.wp-block-cover p:not(.has-text-color)){color:inherit}body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__video-background{z-index:0}body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__embed-background{z-index:0}body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__image-background{z-index:0}body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__background,body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__gradient-background,body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)).has-background-dim:not(.has-background-gradient):before{z-index:1}body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__inner-container{z-index:1}.has-modal-open body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__inner-container{z-index:auto} cover/block.json 0000775 00000006210 00000000000 0007614 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/cover", "title": "Cover", "category": "media", "description": "Add an image or video with a text overlay.", "textdomain": "default", "attributes": { "url": { "type": "string", "role": "content" }, "useFeaturedImage": { "type": "boolean", "default": false }, "id": { "type": "number" }, "alt": { "type": "string", "default": "" }, "hasParallax": { "type": "boolean", "default": false }, "isRepeated": { "type": "boolean", "default": false }, "dimRatio": { "type": "number", "default": 100 }, "overlayColor": { "type": "string" }, "customOverlayColor": { "type": "string" }, "isUserOverlayColor": { "type": "boolean" }, "backgroundType": { "type": "string", "default": "image" }, "focalPoint": { "type": "object" }, "minHeight": { "type": "number" }, "minHeightUnit": { "type": "string" }, "gradient": { "type": "string" }, "customGradient": { "type": "string" }, "contentPosition": { "type": "string" }, "isDark": { "type": "boolean", "default": true }, "templateLock": { "type": [ "string", "boolean" ], "enum": [ "all", "insert", "contentOnly", false ] }, "tagName": { "type": "string", "default": "div" }, "sizeSlug": { "type": "string" }, "poster": { "type": "string", "source": "attribute", "selector": "video", "attribute": "poster" }, "allowedVideoProviders": { "type": "array", "default": [ "youtube", "vimeo", "videopress", "animoto", "tiktok", "wordpress-tv" ] } }, "usesContext": [ "postId", "postType" ], "supports": { "anchor": true, "align": true, "html": false, "shadow": true, "spacing": { "padding": true, "margin": [ "top", "bottom" ], "blockGap": true, "__experimentalDefaultControls": { "padding": true, "blockGap": true } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "color": { "heading": true, "text": true, "background": false, "__experimentalSkipSerialization": [ "gradients" ], "enableContrastChecker": false }, "dimensions": { "aspectRatio": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "layout": { "allowJustification": false }, "interactivity": { "clientNavigation": true }, "filter": { "duotone": true }, "allowedBlocks": true }, "selectors": { "filter": { "duotone": ".wp-block-cover > .wp-block-cover__image-background, .wp-block-cover > .wp-block-cover__video-background" } }, "editorStyle": "wp-block-cover-editor", "style": "wp-block-cover" } cover/style-rtl.min.css 0000775 00000047570 00000000000 0011100 0 ustar 00 .wp-block-cover,.wp-block-cover-image{align-items:center;background-position:50%;box-sizing:border-box;direction:ltr;display:flex;justify-content:center;min-height:430px;overflow:hidden;overflow:clip;padding:1em;position:relative}.wp-block-cover .has-background-dim:not([class*=-background-color]),.wp-block-cover-image .has-background-dim:not([class*=-background-color]),.wp-block-cover-image.has-background-dim:not([class*=-background-color]),.wp-block-cover.has-background-dim:not([class*=-background-color]){background-color:#000}.wp-block-cover .has-background-dim.has-background-gradient,.wp-block-cover-image .has-background-dim.has-background-gradient{background-color:transparent}.wp-block-cover-image.has-background-dim:before,.wp-block-cover.has-background-dim:before{background-color:inherit;content:""}.wp-block-cover .wp-block-cover__background,.wp-block-cover .wp-block-cover__gradient-background,.wp-block-cover-image .wp-block-cover__background,.wp-block-cover-image .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim:not(.has-background-gradient):before,.wp-block-cover.has-background-dim:not(.has-background-gradient):before{bottom:0;left:0;opacity:.5;position:absolute;right:0;top:0}.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient):before{opacity:.1}.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient):before{opacity:.2}.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient):before{opacity:.3}.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient):before{opacity:.4}.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient):before{opacity:.5}.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient):before{opacity:.6}.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient):before{opacity:.7}.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient):before{opacity:.8}.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient):before{opacity:.9}.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient):before,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background,.wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background,.wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient):before{opacity:1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0{opacity:0}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10{opacity:.1}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20{opacity:.2}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30{opacity:.3}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40{opacity:.4}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50{opacity:.5}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60{opacity:.6}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70{opacity:.7}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80{opacity:.8}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90{opacity:.9}.wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100,.wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100{opacity:1}.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.alignleft,.wp-block-cover.alignright{max-width:420px;width:100%}.wp-block-cover-image.aligncenter,.wp-block-cover-image.alignleft,.wp-block-cover-image.alignright,.wp-block-cover.aligncenter,.wp-block-cover.alignleft,.wp-block-cover.alignright{display:flex}.wp-block-cover .wp-block-cover__inner-container,.wp-block-cover-image .wp-block-cover__inner-container{color:inherit;direction:rtl;position:relative;width:100%}.wp-block-cover-image.is-position-top-left,.wp-block-cover.is-position-top-left{align-items:flex-start;justify-content:flex-start}.wp-block-cover-image.is-position-top-center,.wp-block-cover.is-position-top-center{align-items:flex-start;justify-content:center}.wp-block-cover-image.is-position-top-right,.wp-block-cover.is-position-top-right{align-items:flex-start;justify-content:flex-end}.wp-block-cover-image.is-position-center-left,.wp-block-cover.is-position-center-left{align-items:center;justify-content:flex-start}.wp-block-cover-image.is-position-center-center,.wp-block-cover.is-position-center-center{align-items:center;justify-content:center}.wp-block-cover-image.is-position-center-right,.wp-block-cover.is-position-center-right{align-items:center;justify-content:flex-end}.wp-block-cover-image.is-position-bottom-left,.wp-block-cover.is-position-bottom-left{align-items:flex-end;justify-content:flex-start}.wp-block-cover-image.is-position-bottom-center,.wp-block-cover.is-position-bottom-center{align-items:flex-end;justify-content:center}.wp-block-cover-image.is-position-bottom-right,.wp-block-cover.is-position-bottom-right{align-items:flex-end;justify-content:flex-end}.wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container{margin:0}.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container,.wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container{margin:0;width:auto}.wp-block-cover .wp-block-cover__image-background,.wp-block-cover video.wp-block-cover__video-background,.wp-block-cover-image .wp-block-cover__image-background,.wp-block-cover-image video.wp-block-cover__video-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;-o-object-fit:cover;object-fit:cover;outline:none;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover .wp-block-cover__embed-background,.wp-block-cover-image .wp-block-cover__embed-background{border:none;bottom:0;box-shadow:none;height:100%;left:0;margin:0;max-height:none;max-width:none;outline:none;padding:0;pointer-events:none;position:absolute;right:0;top:0;width:100%}.wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper,.wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper{bottom:0;height:100%;left:0;margin:0;padding:0;position:absolute;right:0;top:0;width:100%}.wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper iframe,.wp-block-cover .wp-block-cover__embed-background iframe,.wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper iframe,.wp-block-cover-image .wp-block-cover__embed-background iframe{height:100vh;min-height:100%;min-width:100%;pointer-events:none;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);width:100vw}.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:fixed;background-repeat:no-repeat;background-size:cover}@supports (-webkit-touch-callout:inherit){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}@media (prefers-reduced-motion:reduce){.wp-block-cover-image.has-parallax,.wp-block-cover.has-parallax,.wp-block-cover__image-background.has-parallax,video.wp-block-cover__video-background.has-parallax{background-attachment:scroll}}.wp-block-cover-image.is-repeated,.wp-block-cover.is-repeated,.wp-block-cover__image-background.is-repeated,video.wp-block-cover__video-background.is-repeated{background-repeat:repeat;background-size:auto}.wp-block-cover-image-text,.wp-block-cover-image-text a,.wp-block-cover-image-text a:active,.wp-block-cover-image-text a:focus,.wp-block-cover-image-text a:hover,.wp-block-cover-text,.wp-block-cover-text a,.wp-block-cover-text a:active,.wp-block-cover-text a:focus,.wp-block-cover-text a:hover,section.wp-block-cover-image h2,section.wp-block-cover-image h2 a,section.wp-block-cover-image h2 a:active,section.wp-block-cover-image h2 a:focus,section.wp-block-cover-image h2 a:hover{color:#fff}.wp-block-cover-image .wp-block-cover.has-left-content{justify-content:flex-start}.wp-block-cover-image .wp-block-cover.has-right-content{justify-content:flex-end}.wp-block-cover-image.has-left-content .wp-block-cover-image-text,.wp-block-cover.has-left-content .wp-block-cover-text,section.wp-block-cover-image.has-left-content>h2{margin-right:0;text-align:right}.wp-block-cover-image.has-right-content .wp-block-cover-image-text,.wp-block-cover.has-right-content .wp-block-cover-text,section.wp-block-cover-image.has-right-content>h2{margin-left:0;text-align:left}.wp-block-cover .wp-block-cover-text,.wp-block-cover-image .wp-block-cover-image-text,section.wp-block-cover-image>h2{font-size:2em;line-height:1.25;margin-bottom:0;max-width:840px;padding:.44em;text-align:center;z-index:1}:where(.wp-block-cover-image:not(.has-text-color)),:where(.wp-block-cover:not(.has-text-color)){color:#fff}:where(.wp-block-cover-image.is-light:not(.has-text-color)),:where(.wp-block-cover.is-light:not(.has-text-color)){color:#000}:root :where(.wp-block-cover h1:not(.has-text-color)),:root :where(.wp-block-cover h2:not(.has-text-color)),:root :where(.wp-block-cover h3:not(.has-text-color)),:root :where(.wp-block-cover h4:not(.has-text-color)),:root :where(.wp-block-cover h5:not(.has-text-color)),:root :where(.wp-block-cover h6:not(.has-text-color)),:root :where(.wp-block-cover p:not(.has-text-color)){color:inherit}body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__video-background{z-index:0}body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__embed-background{z-index:0}body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__image-background{z-index:0}body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__background,body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__gradient-background,body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)).has-background-dim:not(.has-background-gradient):before{z-index:1}body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__inner-container{z-index:1}.has-modal-open body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background+.wp-block-cover__inner-container)) .wp-block-cover__inner-container{z-index:auto} cover/style.css 0000775 00000054442 00000000000 0007513 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-cover-image, .wp-block-cover { min-height: 430px; padding: 1em; position: relative; background-position: center center; display: flex; justify-content: center; align-items: center; overflow: hidden; overflow: clip; box-sizing: border-box; /*rtl:raw: direction: ltr; */ /** * Set a default background color for has-background-dim _unless_ it includes another * background-color class (e.g. has-green-background-color). The presence of another * background-color class implies that another style will provide the background color * for the overlay. * * See: * - Issue with background color specificity: https://github.com/WordPress/gutenberg/issues/26545 * - Issue with alternative fix: https://github.com/WordPress/gutenberg/issues/26545 */ } .wp-block-cover-image.has-background-dim:not([class*=-background-color]), .wp-block-cover-image .has-background-dim:not([class*=-background-color]), .wp-block-cover.has-background-dim:not([class*=-background-color]), .wp-block-cover .has-background-dim:not([class*=-background-color]) { background-color: #000; } .wp-block-cover-image .has-background-dim.has-background-gradient, .wp-block-cover .has-background-dim.has-background-gradient { background-color: transparent; } .wp-block-cover-image.has-background-dim::before, .wp-block-cover.has-background-dim::before { content: ""; background-color: inherit; } .wp-block-cover-image.has-background-dim:not(.has-background-gradient)::before, .wp-block-cover-image .wp-block-cover__background, .wp-block-cover-image .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim:not(.has-background-gradient)::before, .wp-block-cover .wp-block-cover__background, .wp-block-cover .wp-block-cover__gradient-background { position: absolute; top: 0; left: 0; bottom: 0; right: 0; opacity: 0.5; } .wp-block-cover-image.has-background-dim.has-background-dim-10:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-10:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-10 .wp-block-cover__gradient-background { opacity: 0.1; } .wp-block-cover-image.has-background-dim.has-background-dim-20:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-20:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-20 .wp-block-cover__gradient-background { opacity: 0.2; } .wp-block-cover-image.has-background-dim.has-background-dim-30:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-30:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-30 .wp-block-cover__gradient-background { opacity: 0.3; } .wp-block-cover-image.has-background-dim.has-background-dim-40:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-40:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-40 .wp-block-cover__gradient-background { opacity: 0.4; } .wp-block-cover-image.has-background-dim.has-background-dim-50:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-50:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-50 .wp-block-cover__gradient-background { opacity: 0.5; } .wp-block-cover-image.has-background-dim.has-background-dim-60:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-60:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-60 .wp-block-cover__gradient-background { opacity: 0.6; } .wp-block-cover-image.has-background-dim.has-background-dim-70:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-70:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-70 .wp-block-cover__gradient-background { opacity: 0.7; } .wp-block-cover-image.has-background-dim.has-background-dim-80:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-80:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-80 .wp-block-cover__gradient-background { opacity: 0.8; } .wp-block-cover-image.has-background-dim.has-background-dim-90:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-90:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-90 .wp-block-cover__gradient-background { opacity: 0.9; } .wp-block-cover-image.has-background-dim.has-background-dim-100:not(.has-background-gradient)::before, .wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__background, .wp-block-cover-image.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background, .wp-block-cover.has-background-dim.has-background-dim-100:not(.has-background-gradient)::before, .wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__background, .wp-block-cover.has-background-dim.has-background-dim-100 .wp-block-cover__gradient-background { opacity: 1; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-0, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-0, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-0 { opacity: 0; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-10, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-10, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-10 { opacity: 0.1; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-20, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-20, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-20 { opacity: 0.2; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-30, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-30, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-30 { opacity: 0.3; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-40, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-40, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-40 { opacity: 0.4; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-50, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-50, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-50 { opacity: 0.5; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-60, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-60, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-60 { opacity: 0.6; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-70, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-70, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-70 { opacity: 0.7; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-80, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-80, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-80 { opacity: 0.8; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-90, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-90, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-90 { opacity: 0.9; } .wp-block-cover-image .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100, .wp-block-cover-image .wp-block-cover__background.has-background-dim.has-background-dim-100, .wp-block-cover .wp-block-cover__gradient-background.has-background-dim.has-background-dim-100, .wp-block-cover .wp-block-cover__background.has-background-dim.has-background-dim-100 { opacity: 1; } .wp-block-cover-image.alignleft, .wp-block-cover-image.alignright, .wp-block-cover.alignleft, .wp-block-cover.alignright { max-width: 420px; width: 100%; } .wp-block-cover-image.aligncenter, .wp-block-cover-image.alignleft, .wp-block-cover-image.alignright, .wp-block-cover.aligncenter, .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 { position: relative; width: 100%; color: inherit; /*rtl:raw: direction: rtl; */ } .wp-block-cover-image.is-position-top-left, .wp-block-cover.is-position-top-left { align-items: flex-start; justify-content: flex-start; } .wp-block-cover-image.is-position-top-center, .wp-block-cover.is-position-top-center { align-items: flex-start; justify-content: center; } .wp-block-cover-image.is-position-top-right, .wp-block-cover.is-position-top-right { align-items: flex-start; justify-content: flex-end; } .wp-block-cover-image.is-position-center-left, .wp-block-cover.is-position-center-left { align-items: center; justify-content: flex-start; } .wp-block-cover-image.is-position-center-center, .wp-block-cover.is-position-center-center { align-items: center; justify-content: center; } .wp-block-cover-image.is-position-center-right, .wp-block-cover.is-position-center-right { align-items: center; justify-content: flex-end; } .wp-block-cover-image.is-position-bottom-left, .wp-block-cover.is-position-bottom-left { align-items: flex-end; justify-content: flex-start; } .wp-block-cover-image.is-position-bottom-center, .wp-block-cover.is-position-bottom-center { align-items: flex-end; justify-content: center; } .wp-block-cover-image.is-position-bottom-right, .wp-block-cover.is-position-bottom-right { align-items: flex-end; justify-content: flex-end; } .wp-block-cover-image.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position .wp-block-cover__inner-container { margin: 0; } .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container, .wp-block-cover-image.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-left .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-top-right .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-left .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-center-right .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-left .wp-block-cover__inner-container, .wp-block-cover.has-custom-content-position.has-custom-content-position.is-position-bottom-right .wp-block-cover__inner-container { margin: 0; width: auto; } .wp-block-cover-image .wp-block-cover__image-background, .wp-block-cover-image video.wp-block-cover__video-background, .wp-block-cover .wp-block-cover__image-background, .wp-block-cover video.wp-block-cover__video-background { position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: 0; padding: 0; width: 100%; height: 100%; max-width: none; max-height: none; -o-object-fit: cover; object-fit: cover; outline: none; border: none; box-shadow: none; } .wp-block-cover-image .wp-block-cover__embed-background, .wp-block-cover .wp-block-cover__embed-background { position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: 0; padding: 0; width: 100%; height: 100%; max-width: none; max-height: none; outline: none; border: none; box-shadow: none; pointer-events: none; } .wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper, .wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper { position: absolute; top: 0; left: 0; right: 0; bottom: 0; margin: 0; padding: 0; width: 100%; height: 100%; } .wp-block-cover-image .wp-block-cover__embed-background iframe, .wp-block-cover-image .wp-block-cover__embed-background .wp-block-embed__wrapper iframe, .wp-block-cover .wp-block-cover__embed-background iframe, .wp-block-cover .wp-block-cover__embed-background .wp-block-embed__wrapper iframe { position: absolute; top: 50%; left: 50%; width: 100vw; height: 100vh; min-width: 100%; min-height: 100%; transform: translate(-50%, -50%); pointer-events: none; } .wp-block-cover-image.has-parallax, .wp-block-cover.has-parallax, .wp-block-cover__image-background.has-parallax, video.wp-block-cover__video-background.has-parallax { background-attachment: fixed; background-size: cover; background-repeat: no-repeat; } @supports (-webkit-touch-callout: inherit) { .wp-block-cover-image.has-parallax, .wp-block-cover.has-parallax, .wp-block-cover__image-background.has-parallax, video.wp-block-cover__video-background.has-parallax { background-attachment: scroll; } } @media (prefers-reduced-motion: reduce) { .wp-block-cover-image.has-parallax, .wp-block-cover.has-parallax, .wp-block-cover__image-background.has-parallax, video.wp-block-cover__video-background.has-parallax { background-attachment: scroll; } } .wp-block-cover-image.is-repeated, .wp-block-cover.is-repeated, .wp-block-cover__image-background.is-repeated, video.wp-block-cover__video-background.is-repeated { background-repeat: repeat; background-size: auto; } section.wp-block-cover-image h2, .wp-block-cover-image-text, .wp-block-cover-text { color: #fff; } section.wp-block-cover-image h2 a, section.wp-block-cover-image h2 a:hover, section.wp-block-cover-image h2 a:focus, section.wp-block-cover-image h2 a:active, .wp-block-cover-image-text a, .wp-block-cover-image-text a:hover, .wp-block-cover-image-text a:focus, .wp-block-cover-image-text a:active, .wp-block-cover-text a, .wp-block-cover-text a:hover, .wp-block-cover-text a:focus, .wp-block-cover-text a:active { color: #fff; } .wp-block-cover-image .wp-block-cover.has-left-content { justify-content: flex-start; } .wp-block-cover-image .wp-block-cover.has-right-content { justify-content: flex-end; } section.wp-block-cover-image.has-left-content > h2, .wp-block-cover-image.has-left-content .wp-block-cover-image-text, .wp-block-cover.has-left-content .wp-block-cover-text { margin-left: 0; text-align: left; } section.wp-block-cover-image.has-right-content > h2, .wp-block-cover-image.has-right-content .wp-block-cover-image-text, .wp-block-cover.has-right-content .wp-block-cover-text { margin-right: 0; text-align: right; } section.wp-block-cover-image > h2, .wp-block-cover-image .wp-block-cover-image-text, .wp-block-cover .wp-block-cover-text { font-size: 2em; line-height: 1.25; z-index: 1; margin-bottom: 0; max-width: 840px; padding: 0.44em; text-align: center; } :where(.wp-block-cover:not(.has-text-color)), :where(.wp-block-cover-image:not(.has-text-color)) { color: #fff; } :where(.wp-block-cover.is-light:not(.has-text-color)), :where(.wp-block-cover-image.is-light:not(.has-text-color)) { color: #000; } :root :where(.wp-block-cover p:not(.has-text-color)), :root :where(.wp-block-cover h1:not(.has-text-color)), :root :where(.wp-block-cover h2:not(.has-text-color)), :root :where(.wp-block-cover h3:not(.has-text-color)), :root :where(.wp-block-cover h4:not(.has-text-color)), :root :where(.wp-block-cover h5:not(.has-text-color)), :root :where(.wp-block-cover h6:not(.has-text-color)) { color: inherit; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__video-background { z-index: 0; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__embed-background { z-index: 0; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__image-background { z-index: 0; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)).has-background-dim:not(.has-background-gradient)::before, body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__background, body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__gradient-background { z-index: 1; } body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__inner-container { z-index: 1; } .has-modal-open body:not(.editor-styles-wrapper) .wp-block-cover:not(.wp-block-cover:has(.wp-block-cover__background + .wp-block-cover__inner-container)) .wp-block-cover__inner-container { z-index: auto; } cover/editor-rtl.css 0000775 00000005430 00000000000 0010431 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-cover.is-placeholder { padding: 0 !important; display: flex; align-items: stretch; min-height: 240px; } .wp-block-cover.is-placeholder .components-placeholder.is-large { justify-content: flex-start; z-index: 1; } .wp-block-cover.is-placeholder:focus::after { min-height: auto; } .wp-block-cover.components-placeholder h2 { color: inherit; } .wp-block-cover.is-transient { position: relative; } .wp-block-cover.is-transient::before { background-color: #fff; content: ""; height: 100%; opacity: 0.3; position: absolute; width: 100%; z-index: 1; } .wp-block-cover.is-transient .wp-block-cover__inner-container { z-index: 2; } .wp-block-cover.is-transient .components-spinner { z-index: 3; } .wp-block-cover .components-spinner { position: absolute; top: 50%; right: 50%; transform: translate(50%, -50%); margin: 0; } .wp-block-cover .wp-block-cover__inner-container { text-align: right; margin-right: 0; margin-left: 0; } .wp-block-cover .wp-block-cover__placeholder-background-options { width: 100%; } .wp-block-cover .wp-block-cover__image--placeholder-image { position: absolute; top: 0; left: 0; bottom: 0; right: 0; } [data-align=left] > .wp-block-cover, [data-align=right] > .wp-block-cover { max-width: 420px; width: 100%; } .block-library-cover__reset-button { margin-right: auto; } .block-library-cover__resize-container { position: absolute !important; top: 0; right: 0; left: 0; bottom: 0; min-height: 50px; } .components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .components-popover__content > div, .components-popover.block-editor-block-popover.block-library-cover__resizable-box-popover .block-library-cover__resize-container { pointer-events: none; overflow: visible; } .block-editor-block-patterns-list__list-item .has-parallax.wp-block-cover { background-attachment: scroll; } .color-block-support-panel__inner-wrapper > :not(.block-editor-tools-panel-color-gradient-settings__item) { margin-top: 24px; } categories/editor.css 0000775 00000000420 00000000000 0010633 0 ustar 00 .wp-block-categories ul { padding-left: 2.5em; } .wp-block-categories ul ul { margin-top: 6px; } /* Center alignment for classic themes. */ [data-align=center] .wp-block-categories { text-align: center; } .wp-block-categories__indentation { padding-left: 16px; } categories/editor.min.css 0000775 00000000304 00000000000 0011416 0 ustar 00 .wp-block-categories ul{padding-left:2.5em}.wp-block-categories ul ul{margin-top:6px}[data-align=center] .wp-block-categories{text-align:center}.wp-block-categories__indentation{padding-left:16px} categories/style-rtl.css 0000775 00000000675 00000000000 0011320 0 ustar 00 .wp-block-categories { box-sizing: border-box; } .wp-block-categories.alignleft { margin-right: 2em; } .wp-block-categories.alignright { margin-left: 2em; } .wp-block-categories { /* Only apply the text align on dropdowns, not lists. */ } .wp-block-categories.wp-block-categories-dropdown.aligncenter { text-align: center; } .wp-block-categories .wp-block-categories__label:not(.screen-reader-text) { width: 100%; display: block; } categories/editor-rtl.min.css 0000775 00000000306 00000000000 0012217 0 ustar 00 .wp-block-categories ul{padding-right:2.5em}.wp-block-categories ul ul{margin-top:6px}[data-align=center] .wp-block-categories{text-align:center}.wp-block-categories__indentation{padding-right:16px} categories/style.min.css 0000775 00000000476 00000000000 0011302 0 ustar 00 .wp-block-categories{box-sizing:border-box}.wp-block-categories.alignleft{margin-right:2em}.wp-block-categories.alignright{margin-left:2em}.wp-block-categories.wp-block-categories-dropdown.aligncenter{text-align:center}.wp-block-categories .wp-block-categories__label:not(.screen-reader-text){display:block;width:100%} categories/block.json 0000775 00000003656 00000000000 0010636 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/categories", "title": "Terms List", "category": "widgets", "description": "Display a list of all terms of a given taxonomy.", "keywords": [ "categories" ], "textdomain": "default", "attributes": { "taxonomy": { "type": "string", "default": "category" }, "displayAsDropdown": { "type": "boolean", "default": false }, "showHierarchy": { "type": "boolean", "default": false }, "showPostCounts": { "type": "boolean", "default": false }, "showOnlyTopLevel": { "type": "boolean", "default": false }, "showEmpty": { "type": "boolean", "default": false }, "label": { "type": "string", "role": "content" }, "showLabel": { "type": "boolean", "default": true } }, "usesContext": [ "enhancedPagination" ], "supports": { "anchor": true, "align": true, "html": false, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "editorStyle": "wp-block-categories-editor", "style": "wp-block-categories" } categories/style-rtl.min.css 0000775 00000000476 00000000000 0012101 0 ustar 00 .wp-block-categories{box-sizing:border-box}.wp-block-categories.alignleft{margin-right:2em}.wp-block-categories.alignright{margin-left:2em}.wp-block-categories.wp-block-categories-dropdown.aligncenter{text-align:center}.wp-block-categories .wp-block-categories__label:not(.screen-reader-text){display:block;width:100%} categories/style.css 0000775 00000000737 00000000000 0010520 0 ustar 00 .wp-block-categories { box-sizing: border-box; } .wp-block-categories.alignleft { /*rtl:ignore*/ margin-right: 2em; } .wp-block-categories.alignright { /*rtl:ignore*/ margin-left: 2em; } .wp-block-categories { /* Only apply the text align on dropdowns, not lists. */ } .wp-block-categories.wp-block-categories-dropdown.aligncenter { text-align: center; } .wp-block-categories .wp-block-categories__label:not(.screen-reader-text) { width: 100%; display: block; } categories/editor-rtl.css 0000775 00000000422 00000000000 0011434 0 ustar 00 .wp-block-categories ul { padding-right: 2.5em; } .wp-block-categories ul ul { margin-top: 6px; } /* Center alignment for classic themes. */ [data-align=center] .wp-block-categories { text-align: center; } .wp-block-categories__indentation { padding-right: 16px; } image/editor.css 0000775 00000011667 00000000000 0007607 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-image.wp-block-image .block-editor-media-placeholder.is-small { min-height: 60px; } figure.wp-block-image:not(.wp-block) { margin: 0; } .wp-block-image { position: relative; } .wp-block-image.is-transient:not(.alignwide):not(.alignfull), .wp-block-image:has(img.is-swapping-media):not(.alignwide):not(.alignfull) { width: -moz-fit-content; width: fit-content; } .wp-block-image .is-applying img, .wp-block-image.is-transient img, .wp-block-image img.is-swapping-media { opacity: 0.3; } .wp-block-image figcaption img { display: inline; } .wp-block-image .components-spinner { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); margin: 0; } .wp-block-image__placeholder { aspect-ratio: 4/3; } .wp-block-image__placeholder.has-illustration::before { background: #fff; opacity: 0.8; } .wp-block-image__placeholder .components-placeholder__illustration { opacity: 0.1; } .wp-block-image.is-selected .block-editor-media-placeholder { filter: none !important; } .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) { .block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal { margin: -1px; } } [data-align=wide] > .wp-block-image img, [data-align=full] > .wp-block-image img { height: auto; width: 100%; } .wp-block[data-align=left] > .wp-block-image, .wp-block[data-align=center] > .wp-block-image, .wp-block[data-align=right] > .wp-block-image { display: table; } .wp-block[data-align=left] > .wp-block-image > figcaption, .wp-block[data-align=center] > .wp-block-image > figcaption, .wp-block[data-align=right] > .wp-block-image > figcaption { display: table-caption; caption-side: bottom; } .wp-block[data-align=left] > .wp-block-image { margin-right: 1em; margin-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block[data-align=right] > .wp-block-image { margin-left: 1em; margin-right: 0; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block[data-align=center] > .wp-block-image { margin-left: auto; margin-right: auto; text-align: center; } .wp-block[data-align]:has(> .wp-block-image) { position: relative; } .wp-block-image__crop-area { position: relative; max-width: 100%; width: 100%; overflow: hidden; } .wp-block-image__crop-area .reactEasyCrop_Container { pointer-events: auto; } .wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image { border: none; border-radius: 0; } .wp-block-image__crop-icon { padding: 0 8px; min-width: 48px; display: flex; justify-content: center; align-items: center; } .wp-block-image__crop-icon svg { fill: currentColor; } .wp-block-image__zoom .components-popover__content { min-width: 260px; overflow: visible !important; } .wp-block-image__toolbar_content_textarea__container { padding: 8px; } .wp-block-image__toolbar_content_textarea { width: 250px; } image/editor.min.css 0000775 00000005062 00000000000 0010361 0 ustar 00 .wp-block-image.wp-block-image .block-editor-media-placeholder.is-small{min-height:60px}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image.is-transient:not(.alignwide):not(.alignfull),.wp-block-image:has(img.is-swapping-media):not(.alignwide):not(.alignfull){width:-moz-fit-content;width:fit-content}.wp-block-image .is-applying img,.wp-block-image img.is-swapping-media,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.wp-block-image__placeholder{aspect-ratio:4/3}.wp-block-image__placeholder.has-illustration:before{background:#fff;opacity:.8}.wp-block-image__placeholder .components-placeholder__illustration{opacity:.1}.wp-block-image.is-selected .block-editor-media-placeholder{filter:none!important}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=right]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block[data-align]:has(>.wp-block-image){position:relative}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container{pointer-events:auto}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__toolbar_content_textarea__container{padding:8px}.wp-block-image__toolbar_content_textarea{width:250px} image/style-rtl.css 0000775 00000030300 00000000000 0010241 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-image > a, .wp-block-image > figure > a { display: inline-block; } .wp-block-image img { height: auto; max-width: 100%; vertical-align: bottom; box-sizing: border-box; } @media not (prefers-reduced-motion) { .wp-block-image img.hide { visibility: hidden; } .wp-block-image img.show { animation: show-content-image 0.4s; } } .wp-block-image[style*=border-radius] > a, .wp-block-image[style*=border-radius] img { border-radius: inherit; } .wp-block-image.has-custom-border img { box-sizing: border-box; } .wp-block-image.aligncenter { text-align: center; } .wp-block-image.alignfull > a, .wp-block-image.alignwide > a { width: 100%; } .wp-block-image.alignfull img, .wp-block-image.alignwide img { height: auto; width: 100%; } .wp-block-image.alignleft, .wp-block-image.alignright, .wp-block-image.aligncenter, .wp-block-image .alignleft, .wp-block-image .alignright, .wp-block-image .aligncenter { display: table; } .wp-block-image.alignleft > figcaption, .wp-block-image.alignright > figcaption, .wp-block-image.aligncenter > figcaption, .wp-block-image .alignleft > figcaption, .wp-block-image .alignright > figcaption, .wp-block-image .aligncenter > figcaption { display: table-caption; caption-side: bottom; } .wp-block-image .alignleft { float: left; margin-left: 0; margin-right: 1em; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block-image .alignright { float: right; margin-right: 0; margin-left: 1em; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block-image .aligncenter { margin-right: auto; margin-left: auto; } .wp-block-image :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-image.is-style-circle-mask img { border-radius: 9999px; } @supports ((-webkit-mask-image: none) or (mask-image: none)) or (-webkit-mask-image: none) { .wp-block-image.is-style-circle-mask img { -webkit-mask-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>'); mask-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>'); mask-mode: alpha; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; border-radius: 0; } } :root :where(.wp-block-image.is-style-rounded img, .wp-block-image .is-style-rounded img) { border-radius: 9999px; } .wp-block-image figure { margin: 0; } .wp-lightbox-container { position: relative; display: flex; flex-direction: column; } .wp-lightbox-container img { cursor: zoom-in; } .wp-lightbox-container img:hover + button { opacity: 1; } .wp-lightbox-container button { opacity: 0; border: none; background-color: rgba(90, 90, 90, 0.25); backdrop-filter: blur(16px) saturate(180%); cursor: zoom-in; display: flex; justify-content: center; align-items: center; width: 20px; height: 20px; position: absolute; z-index: 100; top: 16px; left: 16px; text-align: center; padding: 0; border-radius: 4px; } @media not (prefers-reduced-motion) { .wp-lightbox-container button { transition: opacity 0.2s ease; } } .wp-lightbox-container button:focus-visible { outline: 3px auto rgba(90, 90, 90, 0.25); outline: 3px auto -webkit-focus-ring-color; outline-offset: 3px; } .wp-lightbox-container button:hover { cursor: pointer; opacity: 1; } .wp-lightbox-container button:focus { opacity: 1; } .wp-lightbox-container button:hover, .wp-lightbox-container button:focus, .wp-lightbox-container button:not(:hover):not(:active):not(.has-background) { background-color: rgba(90, 90, 90, 0.25); border: none; } .wp-lightbox-overlay { position: fixed; top: 0; right: 0; z-index: 100000; overflow: hidden; width: 100%; height: 100vh; box-sizing: border-box; visibility: hidden; cursor: zoom-out; } .wp-lightbox-overlay .wp-lightbox-close-button { font-family: inherit; position: absolute; top: calc(env(safe-area-inset-top) + 16px); left: calc(env(safe-area-inset-left) + 16px); padding: 0 4px; cursor: pointer; z-index: 5000000; min-width: 40px; min-height: 40px; display: flex; gap: 8px; align-items: center; justify-content: center; line-height: 1; } .wp-lightbox-overlay .wp-lightbox-close-button:hover, .wp-lightbox-overlay .wp-lightbox-close-button:focus, .wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background) { background: none; border: none; } .wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg { height: 1em; width: 1em; } .wp-lightbox-overlay .wp-lightbox-close-icon svg { display: block; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev, .wp-lightbox-overlay .wp-lightbox-navigation-button-next { position: absolute; padding: 0 8px; z-index: 2000002; font-family: inherit; min-width: 40px; min-height: 40px; gap: 4px; display: flex; cursor: pointer; align-items: center; justify-content: center; bottom: 16px; line-height: 1; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden], .wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden] { display: none; } @media (min-width: 960px) { .wp-lightbox-overlay .wp-lightbox-navigation-button-prev, .wp-lightbox-overlay .wp-lightbox-navigation-button-next { bottom: 50%; transform: translateY(-50%); } } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover, .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus, .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background), .wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover, .wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus, .wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background) { background: none; border: none; padding: 0 8px; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg, .wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg { width: 1.5em; height: 1.5em; display: block; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev { right: calc(env(safe-area-inset-right) + 16px); } .wp-lightbox-overlay .wp-lightbox-navigation-button-next { left: calc(env(safe-area-inset-left) + 16px); } .wp-lightbox-overlay .wp-lightbox-navigation-icon svg { vertical-align: middle; } .wp-lightbox-overlay .lightbox-image-container { position: absolute; overflow: hidden; top: 50%; right: 50%; transform-origin: top right; transform: translate(50%, -50%); width: var(--wp--lightbox-container-width); height: var(--wp--lightbox-container-height); z-index: 2000001; } .wp-lightbox-overlay .wp-block-image { position: relative; transform-origin: 100% 0; display: flex; width: 100%; height: 100%; justify-content: center; align-items: center; box-sizing: border-box; z-index: 3000000; margin: 0; } .wp-lightbox-overlay .wp-block-image img { min-width: var(--wp--lightbox-image-width); min-height: var(--wp--lightbox-image-height); width: var(--wp--lightbox-image-width); height: var(--wp--lightbox-image-height); } .wp-lightbox-overlay .wp-block-image figcaption { display: none; } .wp-lightbox-overlay button { border: none; background: none; } .wp-lightbox-overlay .scrim { width: 100%; height: 100%; position: absolute; z-index: 2000000; background-color: rgb(255, 255, 255); opacity: 0.9; } .wp-lightbox-overlay.active { visibility: visible; } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.active { animation: both turn-on-visibility 0.25s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.active img { animation: both turn-on-visibility 0.35s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.show-closing-animation:not(.active) { animation: both turn-off-visibility 0.35s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.show-closing-animation:not(.active) img { animation: both turn-off-visibility 0.25s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.zoom.active { opacity: 1; visibility: visible; animation: none; } .wp-lightbox-overlay.zoom.active .lightbox-image-container { animation: lightbox-zoom-in 0.4s; } .wp-lightbox-overlay.zoom.active .lightbox-image-container img { animation: none; } .wp-lightbox-overlay.zoom.active .scrim { animation: turn-on-visibility 0.4s forwards; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) { animation: none; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container { animation: lightbox-zoom-out 0.4s; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img { animation: none; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim { animation: turn-off-visibility 0.4s forwards; } } @keyframes show-content-image { 0% { visibility: hidden; } 99% { visibility: hidden; } 100% { visibility: visible; } } @keyframes turn-on-visibility { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes turn-off-visibility { 0% { opacity: 1; visibility: visible; } 99% { opacity: 0; visibility: visible; } 100% { opacity: 0; visibility: hidden; } } @keyframes lightbox-zoom-in { 0% { transform: translate(calc(-1*((-100vw + var(--wp--lightbox-scrollbar-width)) / 2 + var(--wp--lightbox-initial-left-position))), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); } 100% { transform: translate(50%, -50%) scale(1, 1); } } @keyframes lightbox-zoom-out { 0% { visibility: visible; transform: translate(50%, -50%) scale(1, 1); } 99% { visibility: visible; } 100% { visibility: hidden; transform: translate(calc(-1*((-100vw + var(--wp--lightbox-scrollbar-width)) / 2 + var(--wp--lightbox-initial-left-position))), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); } } image/theme-rtl.min.css 0000775 00000000306 00000000000 0010770 0 ustar 00 :root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:hsla(0,0%,100%,.65)}.wp-block-image{margin:0 0 1em} image/editor-rtl.min.css 0000775 00000005062 00000000000 0011160 0 ustar 00 .wp-block-image.wp-block-image .block-editor-media-placeholder.is-small{min-height:60px}figure.wp-block-image:not(.wp-block){margin:0}.wp-block-image{position:relative}.wp-block-image.is-transient:not(.alignwide):not(.alignfull),.wp-block-image:has(img.is-swapping-media):not(.alignwide):not(.alignfull){width:-moz-fit-content;width:fit-content}.wp-block-image .is-applying img,.wp-block-image img.is-swapping-media,.wp-block-image.is-transient img{opacity:.3}.wp-block-image figcaption img{display:inline}.wp-block-image .components-spinner{margin:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.wp-block-image__placeholder{aspect-ratio:4/3}.wp-block-image__placeholder.has-illustration:before{background:#fff;opacity:.8}.wp-block-image__placeholder .components-placeholder__illustration{opacity:.1}.wp-block-image.is-selected .block-editor-media-placeholder{filter:none!important}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=right]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block[data-align]:has(>.wp-block-image){position:relative}.wp-block-image__crop-area{max-width:100%;overflow:hidden;position:relative;width:100%}.wp-block-image__crop-area .reactEasyCrop_Container{pointer-events:auto}.wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image{border:none;border-radius:0}.wp-block-image__crop-icon{align-items:center;display:flex;justify-content:center;min-width:48px;padding:0 8px}.wp-block-image__crop-icon svg{fill:currentColor}.wp-block-image__zoom .components-popover__content{min-width:260px;overflow:visible!important}.wp-block-image__toolbar_content_textarea__container{padding:8px}.wp-block-image__toolbar_content_textarea{width:250px} image/style.min.css 0000775 00000021153 00000000000 0010232 0 ustar 00 .wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;opacity:0;padding:0;position:absolute;right:16px;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;left:0;overflow:hidden;position:fixed;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);left:50%;overflow:hidden;position:absolute;top:50%;transform:translate(-50%,-50%);transform-origin:top left;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:0 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(-50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(-50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position)),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}} image/theme-rtl.css 0000775 00000004204 00000000000 0010207 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ :root :where(.wp-block-image figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme :root :where(.wp-block-image figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-image { margin: 0 0 1em 0; } image/block.json 0000775 00000006217 00000000000 0007567 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/image", "title": "Image", "category": "media", "usesContext": [ "allowResize", "imageCrop", "fixedHeight", "navigationButtonType", "postId", "postType", "queryId", "galleryId" ], "description": "Insert an image to make a visual statement.", "keywords": [ "img", "photo", "picture" ], "textdomain": "default", "attributes": { "blob": { "type": "string", "role": "local" }, "url": { "type": "string", "source": "attribute", "selector": "img", "attribute": "src", "role": "content" }, "alt": { "type": "string", "source": "attribute", "selector": "img", "attribute": "alt", "default": "", "role": "content" }, "caption": { "type": "rich-text", "source": "rich-text", "selector": "figcaption", "role": "content" }, "lightbox": { "type": "object", "enabled": { "type": "boolean" } }, "title": { "type": "string", "source": "attribute", "selector": "img", "attribute": "title", "role": "content" }, "href": { "type": "string", "source": "attribute", "selector": "figure > a", "attribute": "href", "role": "content" }, "rel": { "type": "string", "source": "attribute", "selector": "figure > a", "attribute": "rel" }, "linkClass": { "type": "string", "source": "attribute", "selector": "figure > a", "attribute": "class" }, "id": { "type": "number", "role": "content" }, "width": { "type": "string" }, "height": { "type": "string" }, "aspectRatio": { "type": "string" }, "scale": { "type": "string" }, "focalPoint": { "type": "object" }, "sizeSlug": { "type": "string" }, "linkDestination": { "type": "string" }, "linkTarget": { "type": "string", "source": "attribute", "selector": "figure > a", "attribute": "target" }, "isDecorative": { "type": "boolean", "default": false } }, "supports": { "interactivity": true, "align": [ "left", "center", "right", "wide", "full" ], "anchor": true, "color": { "text": false, "background": false }, "filter": { "duotone": true }, "spacing": { "margin": true }, "__experimentalBorder": { "color": true, "radius": true, "width": true, "__experimentalSkipSerialization": true, "__experimentalDefaultControls": { "color": true, "radius": true, "width": true } }, "shadow": { "__experimentalSkipSerialization": true } }, "selectors": { "dimensions": ".wp-block-image img, .wp-block-image .components-placeholder", "border": ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder", "shadow": ".wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder", "filter": { "duotone": ".wp-block-image img, .wp-block-image .components-placeholder" } }, "styles": [ { "name": "default", "label": "Default", "isDefault": true }, { "name": "rounded", "label": "Rounded" } ], "editorStyle": "wp-block-image-editor", "style": "wp-block-image" } image/style-rtl.min.css 0000775 00000021165 00000000000 0011034 0 ustar 00 .wp-block-image>a,.wp-block-image>figure>a{display:inline-block}.wp-block-image img{box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom}@media not (prefers-reduced-motion){.wp-block-image img.hide{visibility:hidden}.wp-block-image img.show{animation:show-content-image .4s}}.wp-block-image[style*=border-radius] img,.wp-block-image[style*=border-radius]>a{border-radius:inherit}.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-image.aligncenter{text-align:center}.wp-block-image.alignfull>a,.wp-block-image.alignwide>a{width:100%}.wp-block-image.alignfull img,.wp-block-image.alignwide img{height:auto;width:100%}.wp-block-image .aligncenter,.wp-block-image .alignleft,.wp-block-image .alignright,.wp-block-image.aligncenter,.wp-block-image.alignleft,.wp-block-image.alignright{display:table}.wp-block-image .aligncenter>figcaption,.wp-block-image .alignleft>figcaption,.wp-block-image .alignright>figcaption,.wp-block-image.aligncenter>figcaption,.wp-block-image.alignleft>figcaption,.wp-block-image.alignright>figcaption{caption-side:bottom;display:table-caption}.wp-block-image .alignleft{float:left;margin:.5em 1em .5em 0}.wp-block-image .alignright{float:right;margin:.5em 0 .5em 1em}.wp-block-image .aligncenter{margin-left:auto;margin-right:auto}.wp-block-image :where(figcaption){margin-bottom:1em;margin-top:.5em}.wp-block-image.is-style-circle-mask img{border-radius:9999px}@supports ((-webkit-mask-image:none) or (mask-image:none)) or (-webkit-mask-image:none){.wp-block-image.is-style-circle-mask img{border-radius:0;-webkit-mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-image:url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>');mask-mode:alpha;-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}}:root :where(.wp-block-image.is-style-rounded img,.wp-block-image .is-style-rounded img){border-radius:9999px}.wp-block-image figure{margin:0}.wp-lightbox-container{display:flex;flex-direction:column;position:relative}.wp-lightbox-container img{cursor:zoom-in}.wp-lightbox-container img:hover+button{opacity:1}.wp-lightbox-container button{align-items:center;backdrop-filter:blur(16px) saturate(180%);background-color:rgba(90,90,90,.25);border:none;border-radius:4px;cursor:zoom-in;display:flex;height:20px;justify-content:center;left:16px;opacity:0;padding:0;position:absolute;text-align:center;top:16px;width:20px;z-index:100}@media not (prefers-reduced-motion){.wp-lightbox-container button{transition:opacity .2s ease}}.wp-lightbox-container button:focus-visible{outline:3px auto rgba(90,90,90,.25);outline:3px auto -webkit-focus-ring-color;outline-offset:3px}.wp-lightbox-container button:hover{cursor:pointer;opacity:1}.wp-lightbox-container button:focus{opacity:1}.wp-lightbox-container button:focus,.wp-lightbox-container button:hover,.wp-lightbox-container button:not(:hover):not(:active):not(.has-background){background-color:rgba(90,90,90,.25);border:none}.wp-lightbox-overlay{box-sizing:border-box;cursor:zoom-out;height:100vh;overflow:hidden;position:fixed;right:0;top:0;visibility:hidden;width:100%;z-index:100000}.wp-lightbox-overlay .wp-lightbox-close-button{align-items:center;cursor:pointer;display:flex;font-family:inherit;gap:8px;justify-content:center;left:calc(env(safe-area-inset-left) + 16px);line-height:1;min-height:40px;min-width:40px;padding:0 4px;position:absolute;top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .wp-lightbox-close-button:focus,.wp-lightbox-overlay .wp-lightbox-close-button:hover,.wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg{height:1em;width:1em}.wp-lightbox-overlay .wp-lightbox-close-icon svg{display:block}.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{align-items:center;bottom:16px;cursor:pointer;display:flex;font-family:inherit;gap:4px;justify-content:center;line-height:1;min-height:40px;min-width:40px;padding:0 8px;position:absolute;z-index:2000002}.wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden],.wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden]{display:none}@media (min-width:960px){.wp-lightbox-overlay .wp-lightbox-navigation-button-next,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{bottom:50%;transform:translateY(-50%)}}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background),.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background){background:none;border:none;padding:0 8px}.wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg,.wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg{display:block;height:1.5em;width:1.5em}.wp-lightbox-overlay .wp-lightbox-navigation-button-prev{right:calc(env(safe-area-inset-right) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-button-next{left:calc(env(safe-area-inset-left) + 16px)}.wp-lightbox-overlay .wp-lightbox-navigation-icon svg{vertical-align:middle}.wp-lightbox-overlay .lightbox-image-container{height:var(--wp--lightbox-container-height);overflow:hidden;position:absolute;right:50%;top:50%;transform:translate(50%,-50%);transform-origin:top right;width:var(--wp--lightbox-container-width);z-index:2000001}.wp-lightbox-overlay .wp-block-image{align-items:center;box-sizing:border-box;display:flex;height:100%;justify-content:center;margin:0;position:relative;transform-origin:100% 0;width:100%;z-index:3000000}.wp-lightbox-overlay .wp-block-image img{height:var(--wp--lightbox-image-height);min-height:var(--wp--lightbox-image-height);min-width:var(--wp--lightbox-image-width);width:var(--wp--lightbox-image-width)}.wp-lightbox-overlay .wp-block-image figcaption{display:none}.wp-lightbox-overlay button{background:none;border:none}.wp-lightbox-overlay .scrim{background-color:#fff;height:100%;opacity:.9;position:absolute;width:100%;z-index:2000000}.wp-lightbox-overlay.active{visibility:visible}@media not (prefers-reduced-motion){.wp-lightbox-overlay.active{animation:turn-on-visibility .25s both}.wp-lightbox-overlay.active img{animation:turn-on-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active){animation:turn-off-visibility .35s both}.wp-lightbox-overlay.show-closing-animation:not(.active) img{animation:turn-off-visibility .25s both}.wp-lightbox-overlay.zoom.active{animation:none;opacity:1;visibility:visible}.wp-lightbox-overlay.zoom.active .lightbox-image-container{animation:lightbox-zoom-in .4s}.wp-lightbox-overlay.zoom.active .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.active .scrim{animation:turn-on-visibility .4s forwards}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active){animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container{animation:lightbox-zoom-out .4s}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img{animation:none}.wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim{animation:turn-off-visibility .4s forwards}}@keyframes show-content-image{0%{visibility:hidden}99%{visibility:hidden}to{visibility:visible}}@keyframes turn-on-visibility{0%{opacity:0}to{opacity:1}}@keyframes turn-off-visibility{0%{opacity:1;visibility:visible}99%{opacity:0;visibility:visible}to{opacity:0;visibility:hidden}}@keyframes lightbox-zoom-in{0%{transform:translate(calc(((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position))*-1),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale))}to{transform:translate(50%,-50%) scale(1)}}@keyframes lightbox-zoom-out{0%{transform:translate(50%,-50%) scale(1);visibility:visible}99%{visibility:visible}to{transform:translate(calc(((-100vw + var(--wp--lightbox-scrollbar-width))/2 + var(--wp--lightbox-initial-left-position))*-1),calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale));visibility:hidden}} image/style.css 0000775 00000030434 00000000000 0007452 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-image > a, .wp-block-image > figure > a { display: inline-block; } .wp-block-image img { height: auto; max-width: 100%; vertical-align: bottom; box-sizing: border-box; } @media not (prefers-reduced-motion) { .wp-block-image img.hide { visibility: hidden; } .wp-block-image img.show { animation: show-content-image 0.4s; } } .wp-block-image[style*=border-radius] > a, .wp-block-image[style*=border-radius] img { border-radius: inherit; } .wp-block-image.has-custom-border img { box-sizing: border-box; } .wp-block-image.aligncenter { text-align: center; } .wp-block-image.alignfull > a, .wp-block-image.alignwide > a { width: 100%; } .wp-block-image.alignfull img, .wp-block-image.alignwide img { height: auto; width: 100%; } .wp-block-image.alignleft, .wp-block-image.alignright, .wp-block-image.aligncenter, .wp-block-image .alignleft, .wp-block-image .alignright, .wp-block-image .aligncenter { display: table; } .wp-block-image.alignleft > figcaption, .wp-block-image.alignright > figcaption, .wp-block-image.aligncenter > figcaption, .wp-block-image .alignleft > figcaption, .wp-block-image .alignright > figcaption, .wp-block-image .aligncenter > figcaption { display: table-caption; caption-side: bottom; } .wp-block-image .alignleft { /*rtl:ignore*/ float: left; /*rtl:ignore*/ margin-left: 0; /*rtl:ignore*/ margin-right: 1em; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block-image .alignright { /*rtl:ignore*/ float: right; /*rtl:ignore*/ margin-right: 0; /*rtl:ignore*/ margin-left: 1em; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block-image .aligncenter { margin-left: auto; margin-right: auto; } .wp-block-image :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-image.is-style-circle-mask img { border-radius: 9999px; } @supports ((-webkit-mask-image: none) or (mask-image: none)) or (-webkit-mask-image: none) { .wp-block-image.is-style-circle-mask img { -webkit-mask-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>'); mask-image: url('data:image/svg+xml;utf8,<svg viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><circle cx="50" cy="50" r="50"/></svg>'); mask-mode: alpha; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; -webkit-mask-size: contain; mask-size: contain; -webkit-mask-position: center; mask-position: center; border-radius: 0; } } :root :where(.wp-block-image.is-style-rounded img, .wp-block-image .is-style-rounded img) { border-radius: 9999px; } .wp-block-image figure { margin: 0; } .wp-lightbox-container { position: relative; display: flex; flex-direction: column; } .wp-lightbox-container img { cursor: zoom-in; } .wp-lightbox-container img:hover + button { opacity: 1; } .wp-lightbox-container button { opacity: 0; border: none; background-color: rgba(90, 90, 90, 0.25); backdrop-filter: blur(16px) saturate(180%); cursor: zoom-in; display: flex; justify-content: center; align-items: center; width: 20px; height: 20px; position: absolute; z-index: 100; top: 16px; right: 16px; text-align: center; padding: 0; border-radius: 4px; } @media not (prefers-reduced-motion) { .wp-lightbox-container button { transition: opacity 0.2s ease; } } .wp-lightbox-container button:focus-visible { outline: 3px auto rgba(90, 90, 90, 0.25); outline: 3px auto -webkit-focus-ring-color; outline-offset: 3px; } .wp-lightbox-container button:hover { cursor: pointer; opacity: 1; } .wp-lightbox-container button:focus { opacity: 1; } .wp-lightbox-container button:hover, .wp-lightbox-container button:focus, .wp-lightbox-container button:not(:hover):not(:active):not(.has-background) { background-color: rgba(90, 90, 90, 0.25); border: none; } .wp-lightbox-overlay { position: fixed; top: 0; left: 0; z-index: 100000; overflow: hidden; width: 100%; height: 100vh; box-sizing: border-box; visibility: hidden; cursor: zoom-out; } .wp-lightbox-overlay .wp-lightbox-close-button { font-family: inherit; position: absolute; top: calc(env(safe-area-inset-top) + 16px); right: calc(env(safe-area-inset-right) + 16px); padding: 0 4px; cursor: pointer; z-index: 5000000; min-width: 40px; min-height: 40px; display: flex; gap: 8px; align-items: center; justify-content: center; line-height: 1; } .wp-lightbox-overlay .wp-lightbox-close-button:hover, .wp-lightbox-overlay .wp-lightbox-close-button:focus, .wp-lightbox-overlay .wp-lightbox-close-button:not(:hover):not(:active):not(.has-background) { background: none; border: none; } .wp-lightbox-overlay .wp-lightbox-close-button:has(.wp-lightbox-close-text:not([hidden])) .wp-lightbox-close-icon svg { height: 1em; width: 1em; } .wp-lightbox-overlay .wp-lightbox-close-icon svg { display: block; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev, .wp-lightbox-overlay .wp-lightbox-navigation-button-next { position: absolute; padding: 0 8px; z-index: 2000002; font-family: inherit; min-width: 40px; min-height: 40px; gap: 4px; display: flex; cursor: pointer; align-items: center; justify-content: center; bottom: 16px; line-height: 1; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev[hidden], .wp-lightbox-overlay .wp-lightbox-navigation-button-next[hidden] { display: none; } @media (min-width: 960px) { .wp-lightbox-overlay .wp-lightbox-navigation-button-prev, .wp-lightbox-overlay .wp-lightbox-navigation-button-next { bottom: 50%; transform: translateY(-50%); } } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:hover, .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:focus, .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:not(:hover):not(:active):not(.has-background), .wp-lightbox-overlay .wp-lightbox-navigation-button-next:hover, .wp-lightbox-overlay .wp-lightbox-navigation-button-next:focus, .wp-lightbox-overlay .wp-lightbox-navigation-button-next:not(:hover):not(:active):not(.has-background) { background: none; border: none; padding: 0 8px; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg, .wp-lightbox-overlay .wp-lightbox-navigation-button-next:has(.wp-lightbox-navigation-text:not([hidden])) .wp-lightbox-navigation-icon svg { width: 1.5em; height: 1.5em; display: block; } .wp-lightbox-overlay .wp-lightbox-navigation-button-prev { left: calc(env(safe-area-inset-left) + 16px); } .wp-lightbox-overlay .wp-lightbox-navigation-button-next { right: calc(env(safe-area-inset-right) + 16px); } .wp-lightbox-overlay .wp-lightbox-navigation-icon svg { vertical-align: middle; } .wp-lightbox-overlay .lightbox-image-container { position: absolute; overflow: hidden; top: 50%; left: 50%; transform-origin: top left; transform: translate(-50%, -50%); width: var(--wp--lightbox-container-width); height: var(--wp--lightbox-container-height); z-index: 2000001; } .wp-lightbox-overlay .wp-block-image { position: relative; transform-origin: 0 0; display: flex; width: 100%; height: 100%; justify-content: center; align-items: center; box-sizing: border-box; z-index: 3000000; margin: 0; } .wp-lightbox-overlay .wp-block-image img { min-width: var(--wp--lightbox-image-width); min-height: var(--wp--lightbox-image-height); width: var(--wp--lightbox-image-width); height: var(--wp--lightbox-image-height); } .wp-lightbox-overlay .wp-block-image figcaption { display: none; } .wp-lightbox-overlay button { border: none; background: none; } .wp-lightbox-overlay .scrim { width: 100%; height: 100%; position: absolute; z-index: 2000000; background-color: rgb(255, 255, 255); opacity: 0.9; } .wp-lightbox-overlay.active { visibility: visible; } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.active { animation: both turn-on-visibility 0.25s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.active img { animation: both turn-on-visibility 0.35s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.show-closing-animation:not(.active) { animation: both turn-off-visibility 0.35s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.show-closing-animation:not(.active) img { animation: both turn-off-visibility 0.25s; } } @media not (prefers-reduced-motion) { .wp-lightbox-overlay.zoom.active { opacity: 1; visibility: visible; animation: none; } .wp-lightbox-overlay.zoom.active .lightbox-image-container { animation: lightbox-zoom-in 0.4s; } .wp-lightbox-overlay.zoom.active .lightbox-image-container img { animation: none; } .wp-lightbox-overlay.zoom.active .scrim { animation: turn-on-visibility 0.4s forwards; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) { animation: none; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container { animation: lightbox-zoom-out 0.4s; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container img { animation: none; } .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .scrim { animation: turn-off-visibility 0.4s forwards; } } @keyframes show-content-image { 0% { visibility: hidden; } 99% { visibility: hidden; } 100% { visibility: visible; } } @keyframes turn-on-visibility { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes turn-off-visibility { 0% { opacity: 1; visibility: visible; } 99% { opacity: 0; visibility: visible; } 100% { opacity: 0; visibility: hidden; } } @keyframes lightbox-zoom-in { 0% { transform: translate(calc((-100vw + var(--wp--lightbox-scrollbar-width)) / 2 + var(--wp--lightbox-initial-left-position)), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); } 100% { transform: translate(-50%, -50%) scale(1, 1); } } @keyframes lightbox-zoom-out { 0% { visibility: visible; transform: translate(-50%, -50%) scale(1, 1); } 99% { visibility: visible; } 100% { visibility: hidden; transform: translate(calc((-100vw + var(--wp--lightbox-scrollbar-width)) / 2 + var(--wp--lightbox-initial-left-position)), calc(-50vh + var(--wp--lightbox-initial-top-position))) scale(var(--wp--lightbox-scale)); } } image/editor-rtl.css 0000775 00000011667 00000000000 0010406 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-image.wp-block-image .block-editor-media-placeholder.is-small { min-height: 60px; } figure.wp-block-image:not(.wp-block) { margin: 0; } .wp-block-image { position: relative; } .wp-block-image.is-transient:not(.alignwide):not(.alignfull), .wp-block-image:has(img.is-swapping-media):not(.alignwide):not(.alignfull) { width: -moz-fit-content; width: fit-content; } .wp-block-image .is-applying img, .wp-block-image.is-transient img, .wp-block-image img.is-swapping-media { opacity: 0.3; } .wp-block-image figcaption img { display: inline; } .wp-block-image .components-spinner { position: absolute; top: 50%; right: 50%; transform: translate(50%, -50%); margin: 0; } .wp-block-image__placeholder { aspect-ratio: 4/3; } .wp-block-image__placeholder.has-illustration::before { background: #fff; opacity: 0.8; } .wp-block-image__placeholder .components-placeholder__illustration { opacity: 0.1; } .wp-block-image.is-selected .block-editor-media-placeholder { filter: none !important; } .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) { .block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal { margin: -1px; } } [data-align=wide] > .wp-block-image img, [data-align=full] > .wp-block-image img { height: auto; width: 100%; } .wp-block[data-align=left] > .wp-block-image, .wp-block[data-align=center] > .wp-block-image, .wp-block[data-align=right] > .wp-block-image { display: table; } .wp-block[data-align=left] > .wp-block-image > figcaption, .wp-block[data-align=center] > .wp-block-image > figcaption, .wp-block[data-align=right] > .wp-block-image > figcaption { display: table-caption; caption-side: bottom; } .wp-block[data-align=left] > .wp-block-image { margin-left: 1em; margin-right: 0; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block[data-align=right] > .wp-block-image { margin-right: 1em; margin-left: 0; margin-top: 0.5em; margin-bottom: 0.5em; } .wp-block[data-align=center] > .wp-block-image { margin-right: auto; margin-left: auto; text-align: center; } .wp-block[data-align]:has(> .wp-block-image) { position: relative; } .wp-block-image__crop-area { position: relative; max-width: 100%; width: 100%; overflow: hidden; } .wp-block-image__crop-area .reactEasyCrop_Container { pointer-events: auto; } .wp-block-image__crop-area .reactEasyCrop_Container .reactEasyCrop_Image { border: none; border-radius: 0; } .wp-block-image__crop-icon { padding: 0 8px; min-width: 48px; display: flex; justify-content: center; align-items: center; } .wp-block-image__crop-icon svg { fill: currentColor; } .wp-block-image__zoom .components-popover__content { min-width: 260px; overflow: visible !important; } .wp-block-image__toolbar_content_textarea__container { padding: 8px; } .wp-block-image__toolbar_content_textarea { width: 250px; } image/theme.css 0000775 00000004204 00000000000 0007410 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ :root :where(.wp-block-image figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme :root :where(.wp-block-image figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-image { margin: 0 0 1em 0; } image/theme.min.css 0000775 00000000306 00000000000 0010171 0 ustar 00 :root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:hsla(0,0%,100%,.65)}.wp-block-image{margin:0 0 1em} navigation-link/editor.css 0000775 00000007272 00000000000 0011614 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Appender */ .wp-block-navigation .block-list-appender { position: relative; } /** * Submenus. */ .wp-block-navigation .has-child { cursor: pointer; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { z-index: 28; } .wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container { z-index: 29; } .wp-block-navigation .has-child.is-selected > .wp-block-navigation__submenu-container, .wp-block-navigation .has-child.has-child-selected > .wp-block-navigation__submenu-container { visibility: visible !important; opacity: 1 !important; min-width: 200px !important; height: auto !important; width: auto !important; overflow: visible !important; } /** * Navigation Items. */ .wp-block-navigation-item .wp-block-navigation-item__content { cursor: text; } .wp-block-navigation-item.is-editing, .wp-block-navigation-item.is-selected { min-width: 20px; } .wp-block-navigation-item .block-list-appender { margin-top: 16px; margin-right: auto; margin-bottom: 16px; margin-left: 16px; } .wp-block-navigation-link__invalid-item { color: #000; } /** * Menu item setup state. Is shown when a menu item has no URL configured. */ .wp-block-navigation-link__placeholder { position: relative; text-decoration: none !important; box-shadow: none !important; background-image: none !important; } .wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span { -webkit-text-decoration: wavy underline; text-decoration: wavy underline; -webkit-text-decoration-skip-ink: none; text-decoration-skip-ink: none; text-underline-offset: 0.25rem; } .wp-block-navigation-link__placeholder.wp-block-navigation-item__content { cursor: pointer; } /** * Link Control Transforms */ .link-control-transform { border-top: 1px solid #ccc; padding: 0 16px 8px 16px; } .link-control-transform__subheading { font-size: 11px; text-transform: uppercase; font-weight: var(--wpds-typography-font-weight-emphasis, 600); color: #1e1e1e; margin-bottom: 1.5em; } .link-control-transform__items { display: flex; justify-content: space-between; } .link-control-transform__item { flex-basis: 33%; flex-direction: column; gap: 8px; height: auto; } .link-ui-page-creator { max-width: 350px; min-width: auto; width: 90vw; padding-top: 8px; } .link-ui-page-creator__inner { padding: 16px; } .link-ui-page-creator__back { margin-left: 8px; text-transform: uppercase; } /** * Error text styling for missing entity help text. */ .navigation-link-control__error-text { color: #cc1818; } .navigation-link-to__action-button { grid-column: auto; } .navigation-link-to__action-button:nth-last-child(1 of .navigation-link-to__action-button):nth-child(odd of .navigation-link-to__action-button) { grid-column: 1/-1; } .navigation-link-to__action-button.navigation-link-to__action-button.navigation-link-to__action-button { justify-content: center; } navigation-link/editor.min.css 0000775 00000004465 00000000000 0012377 0 ustar 00 .wp-block-navigation .block-list-appender{position:relative}.wp-block-navigation .has-child{cursor:pointer}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container{z-index:29}.wp-block-navigation .has-child.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation .has-child.is-selected>.wp-block-navigation__submenu-container{height:auto!important;min-width:200px!important;opacity:1!important;overflow:visible!important;visibility:visible!important;width:auto!important}.wp-block-navigation-item .wp-block-navigation-item__content{cursor:text}.wp-block-navigation-item.is-editing,.wp-block-navigation-item.is-selected{min-width:20px}.wp-block-navigation-item .block-list-appender{margin:16px auto 16px 16px}.wp-block-navigation-link__invalid-item{color:#000}.wp-block-navigation-link__placeholder{background-image:none!important;box-shadow:none!important;position:relative;text-decoration:none!important}.wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span{-webkit-text-decoration:wavy underline;text-decoration:wavy underline;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-offset:.25rem}.wp-block-navigation-link__placeholder.wp-block-navigation-item__content{cursor:pointer}.link-control-transform{border-top:1px solid #ccc;padding:0 16px 8px}.link-control-transform__subheading{color:#1e1e1e;font-size:11px;font-weight:var(--wpds-typography-font-weight-emphasis,600);margin-bottom:1.5em;text-transform:uppercase}.link-control-transform__items{display:flex;justify-content:space-between}.link-control-transform__item{flex-basis:33%;flex-direction:column;gap:8px;height:auto}.link-ui-page-creator{max-width:350px;min-width:auto;padding-top:8px;width:90vw}.link-ui-page-creator__inner{padding:16px}.link-ui-page-creator__back{margin-left:8px;text-transform:uppercase}.navigation-link-control__error-text{color:#cc1818}.navigation-link-to__action-button{grid-column:auto}.navigation-link-to__action-button:nth-last-child(1 of .navigation-link-to__action-button):nth-child(odd of .navigation-link-to__action-button){grid-column:1/-1}.navigation-link-to__action-button.navigation-link-to__action-button.navigation-link-to__action-button{justify-content:center} navigation-link/style-rtl.css 0000775 00000002173 00000000000 0012260 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-navigation .wp-block-navigation-item__label { overflow-wrap: break-word; } .wp-block-navigation .wp-block-navigation-item__description { display: none; } .link-ui-tools { outline: 1px solid #f0f0f0; padding: 8px; } .link-ui-block-inserter { padding-top: 8px; } .link-ui-block-inserter__back { margin-right: 8px; text-transform: uppercase; } navigation-link/shared/render-submenu-icon.php 0000775 00000000721 00000000000 0015444 0 ustar 00 <?php /** * Shared helper function for rendering the submenu icon. * * @package WordPress */ /** * Returns the submenu SVG chevron icon. * * @since 5.9.0 * * @return string */ function block_core_shared_navigation_render_submenu_icon() { return '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false"><path d="M1.50002 4L6.00002 8L10.5 4" stroke-width="1.5"></path></svg>'; } navigation-link/shared/item-should-render.php 0000775 00000002775 00000000000 0015305 0 ustar 00 <?php /** * Shared helper function for checking if navigation items should render. * * @package WordPress */ /** * Checks if a navigation item should render based on post status. * * @since 7.0.0 * * @param array $attributes The block attributes. * @param WP_Block $block The parsed block. * @return bool True if the item should render, false otherwise. */ function block_core_shared_navigation_item_should_render( $attributes, $block ) { $navigation_link_has_id = isset( $attributes['id'] ) && is_numeric( $attributes['id'] ); $is_post_type = isset( $attributes['kind'] ) && 'post-type' === $attributes['kind']; $is_post_type = $is_post_type || isset( $attributes['type'] ) && ( 'post' === $attributes['type'] || 'page' === $attributes['type'] ); // Don't render the block's subtree if it is a draft or if the ID does not exist. if ( $is_post_type && $navigation_link_has_id ) { $post = get_post( $attributes['id'] ); /** * Filter allowed post_status for navigation link block to render. * * @since 6.8.0 * * @param array $post_status Array of allowed post statuses. * @param array $attributes Block attributes. * @param WP_Block $block The parsed block. */ $allowed_post_status = (array) apply_filters( 'render_block_core_navigation_link_allowed_post_status', array( 'publish' ), $attributes, $block ); if ( ! $post || ! in_array( $post->post_status, $allowed_post_status, true ) ) { return false; } } return true; } navigation-link/editor-rtl.min.css 0000775 00000004466 00000000000 0013177 0 ustar 00 .wp-block-navigation .block-list-appender{position:relative}.wp-block-navigation .has-child{cursor:pointer}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container{z-index:29}.wp-block-navigation .has-child.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation .has-child.is-selected>.wp-block-navigation__submenu-container{height:auto!important;min-width:200px!important;opacity:1!important;overflow:visible!important;visibility:visible!important;width:auto!important}.wp-block-navigation-item .wp-block-navigation-item__content{cursor:text}.wp-block-navigation-item.is-editing,.wp-block-navigation-item.is-selected{min-width:20px}.wp-block-navigation-item .block-list-appender{margin:16px 16px 16px auto}.wp-block-navigation-link__invalid-item{color:#000}.wp-block-navigation-link__placeholder{background-image:none!important;box-shadow:none!important;position:relative;text-decoration:none!important}.wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span{-webkit-text-decoration:wavy underline;text-decoration:wavy underline;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-underline-offset:.25rem}.wp-block-navigation-link__placeholder.wp-block-navigation-item__content{cursor:pointer}.link-control-transform{border-top:1px solid #ccc;padding:0 16px 8px}.link-control-transform__subheading{color:#1e1e1e;font-size:11px;font-weight:var(--wpds-typography-font-weight-emphasis,600);margin-bottom:1.5em;text-transform:uppercase}.link-control-transform__items{display:flex;justify-content:space-between}.link-control-transform__item{flex-basis:33%;flex-direction:column;gap:8px;height:auto}.link-ui-page-creator{max-width:350px;min-width:auto;padding-top:8px;width:90vw}.link-ui-page-creator__inner{padding:16px}.link-ui-page-creator__back{margin-right:8px;text-transform:uppercase}.navigation-link-control__error-text{color:#cc1818}.navigation-link-to__action-button{grid-column:auto}.navigation-link-to__action-button:nth-last-child(1 of .navigation-link-to__action-button):nth-child(odd of .navigation-link-to__action-button){grid-column:1/-1}.navigation-link-to__action-button.navigation-link-to__action-button.navigation-link-to__action-button{justify-content:center} navigation-link/style.min.css 0000775 00000000474 00000000000 0012245 0 ustar 00 .wp-block-navigation .wp-block-navigation-item__label{overflow-wrap:break-word}.wp-block-navigation .wp-block-navigation-item__description{display:none}.link-ui-tools{outline:1px solid #f0f0f0;padding:8px}.link-ui-block-inserter{padding-top:8px}.link-ui-block-inserter__back{margin-left:8px;text-transform:uppercase} navigation-link/block.json 0000775 00000003563 00000000000 0011600 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/navigation-link", "title": "Custom Link", "category": "design", "parent": [ "core/navigation" ], "allowedBlocks": [ "core/navigation-link", "core/navigation-submenu", "core/page-list" ], "description": "Add a page, link, or another item to your navigation.", "textdomain": "default", "attributes": { "label": { "type": "string", "role": "content" }, "type": { "type": "string" }, "description": { "type": "string" }, "rel": { "type": "string" }, "id": { "type": "number" }, "opensInNewTab": { "type": "boolean", "default": false }, "url": { "type": "string", "role": "content" }, "title": { "type": "string" }, "kind": { "type": "string" }, "isTopLevelLink": { "type": "boolean" } }, "usesContext": [ "textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "style" ], "supports": { "anchor": true, "reusable": false, "html": false, "__experimentalSlashInserter": true, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "renaming": false, "interactivity": { "clientNavigation": true } }, "selectors": { "states": { "-current": ".wp-block-navigation .current-menu-item" } }, "editorStyle": "wp-block-navigation-link-editor", "style": "wp-block-navigation-link" } navigation-link/style-rtl.min.css 0000775 00000000475 00000000000 0013045 0 ustar 00 .wp-block-navigation .wp-block-navigation-item__label{overflow-wrap:break-word}.wp-block-navigation .wp-block-navigation-item__description{display:none}.link-ui-tools{outline:1px solid #f0f0f0;padding:8px}.link-ui-block-inserter{padding-top:8px}.link-ui-block-inserter__back{margin-right:8px;text-transform:uppercase} navigation-link/style.css 0000775 00000002172 00000000000 0011460 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-navigation .wp-block-navigation-item__label { overflow-wrap: break-word; } .wp-block-navigation .wp-block-navigation-item__description { display: none; } .link-ui-tools { outline: 1px solid #f0f0f0; padding: 8px; } .link-ui-block-inserter { padding-top: 8px; } .link-ui-block-inserter__back { margin-left: 8px; text-transform: uppercase; } navigation-link/editor-rtl.css 0000775 00000007273 00000000000 0012414 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Appender */ .wp-block-navigation .block-list-appender { position: relative; } /** * Submenus. */ .wp-block-navigation .has-child { cursor: pointer; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { z-index: 28; } .wp-block-navigation .has-child:hover .wp-block-navigation__submenu-container { z-index: 29; } .wp-block-navigation .has-child.is-selected > .wp-block-navigation__submenu-container, .wp-block-navigation .has-child.has-child-selected > .wp-block-navigation__submenu-container { visibility: visible !important; opacity: 1 !important; min-width: 200px !important; height: auto !important; width: auto !important; overflow: visible !important; } /** * Navigation Items. */ .wp-block-navigation-item .wp-block-navigation-item__content { cursor: text; } .wp-block-navigation-item.is-editing, .wp-block-navigation-item.is-selected { min-width: 20px; } .wp-block-navigation-item .block-list-appender { margin-top: 16px; margin-left: auto; margin-bottom: 16px; margin-right: 16px; } .wp-block-navigation-link__invalid-item { color: #000; } /** * Menu item setup state. Is shown when a menu item has no URL configured. */ .wp-block-navigation-link__placeholder { position: relative; text-decoration: none !important; box-shadow: none !important; background-image: none !important; } .wp-block-navigation-link__placeholder .wp-block-navigation-link__placeholder-text span { -webkit-text-decoration: wavy underline; text-decoration: wavy underline; -webkit-text-decoration-skip-ink: none; text-decoration-skip-ink: none; text-underline-offset: 0.25rem; } .wp-block-navigation-link__placeholder.wp-block-navigation-item__content { cursor: pointer; } /** * Link Control Transforms */ .link-control-transform { border-top: 1px solid #ccc; padding: 0 16px 8px 16px; } .link-control-transform__subheading { font-size: 11px; text-transform: uppercase; font-weight: var(--wpds-typography-font-weight-emphasis, 600); color: #1e1e1e; margin-bottom: 1.5em; } .link-control-transform__items { display: flex; justify-content: space-between; } .link-control-transform__item { flex-basis: 33%; flex-direction: column; gap: 8px; height: auto; } .link-ui-page-creator { max-width: 350px; min-width: auto; width: 90vw; padding-top: 8px; } .link-ui-page-creator__inner { padding: 16px; } .link-ui-page-creator__back { margin-right: 8px; text-transform: uppercase; } /** * Error text styling for missing entity help text. */ .navigation-link-control__error-text { color: #cc1818; } .navigation-link-to__action-button { grid-column: auto; } .navigation-link-to__action-button:nth-last-child(1 of .navigation-link-to__action-button):nth-child(odd of .navigation-link-to__action-button) { grid-column: 1/-1; } .navigation-link-to__action-button.navigation-link-to__action-button.navigation-link-to__action-button { justify-content: center; } avatar/editor.css 0000775 00000000207 00000000000 0007767 0 ustar 00 .wp-block-avatar__image img { width: 100%; } .wp-block-avatar.aligncenter .components-resizable-box__container { margin: 0 auto; } avatar/editor.min.css 0000775 00000000167 00000000000 0010556 0 ustar 00 .wp-block-avatar__image img{width:100%}.wp-block-avatar.aligncenter .components-resizable-box__container{margin:0 auto} avatar/style-rtl.css 0000775 00000000252 00000000000 0010440 0 ustar 00 .wp-block-avatar { box-sizing: border-box; line-height: 0; } .wp-block-avatar img { box-sizing: border-box; } .wp-block-avatar.aligncenter { text-align: center; } avatar/editor-rtl.min.css 0000775 00000000167 00000000000 0011355 0 ustar 00 .wp-block-avatar__image img{width:100%}.wp-block-avatar.aligncenter .components-resizable-box__container{margin:0 auto} avatar/style.min.css 0000775 00000000212 00000000000 0010417 0 ustar 00 .wp-block-avatar{line-height:0}.wp-block-avatar,.wp-block-avatar img{box-sizing:border-box}.wp-block-avatar.aligncenter{text-align:center} avatar/block.json 0000775 00000002407 00000000000 0007760 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/avatar", "title": "Avatar", "category": "theme", "description": "Add a user’s avatar.", "textdomain": "default", "attributes": { "userId": { "type": "number" }, "size": { "type": "number", "default": 96 }, "isLink": { "type": "boolean", "default": false }, "linkTarget": { "type": "string", "default": "_self" } }, "usesContext": [ "postType", "postId", "commentId" ], "supports": { "anchor": true, "html": false, "align": true, "alignWide": false, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "__experimentalBorder": { "__experimentalSkipSerialization": true, "radius": true, "width": true, "color": true, "style": true, "__experimentalDefaultControls": { "radius": true } }, "color": { "text": false, "background": false }, "filter": { "duotone": true }, "interactivity": { "clientNavigation": true } }, "selectors": { "border": ".wp-block-avatar img", "filter": { "duotone": ".wp-block-avatar img" } }, "editorStyle": "wp-block-avatar-editor", "style": "wp-block-avatar" } avatar/style-rtl.min.css 0000775 00000000212 00000000000 0011216 0 ustar 00 .wp-block-avatar{line-height:0}.wp-block-avatar,.wp-block-avatar img{box-sizing:border-box}.wp-block-avatar.aligncenter{text-align:center} avatar/style.css 0000775 00000000252 00000000000 0007641 0 ustar 00 .wp-block-avatar { box-sizing: border-box; line-height: 0; } .wp-block-avatar img { box-sizing: border-box; } .wp-block-avatar.aligncenter { text-align: center; } avatar/editor-rtl.css 0000775 00000000207 00000000000 0010566 0 ustar 00 .wp-block-avatar__image img { width: 100%; } .wp-block-avatar.aligncenter .components-resizable-box__container { margin: 0 auto; } term-template/editor.css 0000775 00000000733 00000000000 0011275 0 ustar 00 /** * Colors */ .wp-block-term-template .term-loading .term-loading-placeholder { width: 100%; height: 1.5em; margin-bottom: 0.25em; background-color: #f0f0f0; border-radius: 2px; } @media not (prefers-reduced-motion) { .wp-block-term-template .term-loading .term-loading-placeholder { animation: loadingpulse 1.5s ease-in-out infinite; } } @keyframes loadingpulse { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } } term-template/editor.min.css 0000775 00000000557 00000000000 0012063 0 ustar 00 .wp-block-term-template .term-loading .term-loading-placeholder{background-color:#f0f0f0;border-radius:2px;height:1.5em;margin-bottom:.25em;width:100%}@media not (prefers-reduced-motion){.wp-block-term-template .term-loading .term-loading-placeholder{animation:loadingpulse 1.5s ease-in-out infinite}}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}} term-template/style-rtl.css 0000775 00000000217 00000000000 0011743 0 ustar 00 .wp-block-term-template { margin-top: 0; margin-bottom: 0; max-width: 100%; list-style: none; padding: 0; box-sizing: border-box; } term-template/editor-rtl.min.css 0000775 00000000557 00000000000 0012662 0 ustar 00 .wp-block-term-template .term-loading .term-loading-placeholder{background-color:#f0f0f0;border-radius:2px;height:1.5em;margin-bottom:.25em;width:100%}@media not (prefers-reduced-motion){.wp-block-term-template .term-loading .term-loading-placeholder{animation:loadingpulse 1.5s ease-in-out infinite}}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}} term-template/style.min.css 0000775 00000000164 00000000000 0011727 0 ustar 00 .wp-block-term-template{box-sizing:border-box;list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0} term-template/block.json 0000775 00000002672 00000000000 0011266 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/term-template", "title": "Term Template", "category": "theme", "ancestor": [ "core/terms-query" ], "description": "Contains the block elements used to render a taxonomy term, like the name, description, and more.", "textdomain": "default", "usesContext": [ "termQuery" ], "supports": { "anchor": true, "reusable": false, "html": false, "align": [ "wide", "full" ], "layout": true, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "spacing": { "margin": true, "padding": true, "blockGap": { "__experimentalDefault": "1.25em" }, "__experimentalDefaultControls": { "blockGap": true, "padding": false, "margin": false } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true } }, "style": "wp-block-term-template", "editorStyle": "wp-block-term-template-editor" } term-template/style-rtl.min.css 0000775 00000000164 00000000000 0012526 0 ustar 00 .wp-block-term-template{box-sizing:border-box;list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0} term-template/style.css 0000775 00000000217 00000000000 0011144 0 ustar 00 .wp-block-term-template { margin-top: 0; margin-bottom: 0; max-width: 100%; list-style: none; padding: 0; box-sizing: border-box; } term-template/editor-rtl.css 0000775 00000000733 00000000000 0012074 0 ustar 00 /** * Colors */ .wp-block-term-template .term-loading .term-loading-placeholder { width: 100%; height: 1.5em; margin-bottom: 0.25em; background-color: #f0f0f0; border-radius: 2px; } @media not (prefers-reduced-motion) { .wp-block-term-template .term-loading .term-loading-placeholder { animation: loadingpulse 1.5s ease-in-out infinite; } } @keyframes loadingpulse { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } } query-pagination-previous/block.json 0000775 00000002055 00000000000 0013647 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query-pagination-previous", "title": "Previous Page", "category": "theme", "parent": [ "core/query-pagination" ], "description": "Displays the previous posts page link.", "textdomain": "default", "attributes": { "label": { "type": "string" } }, "usesContext": [ "queryId", "query", "paginationArrow", "showLabel", "enhancedPagination" ], "supports": { "anchor": true, "reusable": false, "html": false, "color": { "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } } } latest-comments.php 0000775 00000012766 00000000000 0010356 0 ustar 00 <?php /** * Server-side rendering of the `core/latest-comments` block. * * @package WordPress */ /** * Get the post title. * * The post title is fetched and if it is blank then a default string is * returned. * * Copied from `wp-admin/includes/template.php`, but we can't include that * file because: * * 1. It causes bugs with test fixture generation and strange Docker 255 error * codes. * 2. It's in the admin; ideally we *shouldn't* be including files from the * admin for a block's output. It's a very small/simple function as well, * so duplicating it isn't too terrible. * * @since 3.3.0 * * @param int|WP_Post $post Optional. Post ID or WP_Post object. Default is global $post. * @return string The post title if set; "(no title)" if no title is set. */ function wp_latest_comments_draft_or_post_title( $post = 0 ) { $title = get_the_title( $post ); if ( empty( $title ) ) { $title = __( '(no title)' ); } return $title; } /** * Renders the `core/latest-comments` block on server. * * @since 5.1.0 * * @param array $attributes The block attributes. * * @return string Returns the post content with latest comments added. */ function render_block_core_latest_comments( $attributes ) { // Handle backward compatibility: check for old displayExcerpt attribute if ( isset( $attributes['displayExcerpt'] ) ) { $display_content = $attributes['displayExcerpt'] ? 'excerpt' : 'none'; } else { $display_content = $attributes['displayContent'] ?? 'excerpt'; } $comments = get_comments( /** This filter is documented in wp-includes/widgets/class-wp-widget-recent-comments.php */ apply_filters( 'widget_comments_args', array( 'number' => $attributes['commentsToShow'], 'status' => 'approve', 'post_status' => 'publish', ), array() ) ); $list_items_markup = ''; if ( ! empty( $comments ) ) { // Prime the cache for associated posts. This is copied from \WP_Widget_Recent_Comments::widget(). $post_ids = array_unique( wp_list_pluck( $comments, 'comment_post_ID' ) ); _prime_post_caches( $post_ids, strpos( get_option( 'permalink_structure' ), '%category%' ), false ); foreach ( $comments as $comment ) { $list_items_markup .= '<li class="wp-block-latest-comments__comment">'; if ( $attributes['displayAvatar'] ) { $avatar = get_avatar( $comment, 48, '', '', array( 'class' => 'wp-block-latest-comments__comment-avatar', ) ); if ( $avatar ) { $list_items_markup .= $avatar; } } $list_items_markup .= '<article>'; $list_items_markup .= '<footer class="wp-block-latest-comments__comment-meta">'; $author_url = get_comment_author_url( $comment ); if ( empty( $author_url ) && ! empty( $comment->user_id ) ) { $author_url = get_author_posts_url( $comment->user_id ); } $author_markup = ''; if ( $author_url ) { $author_markup .= '<a class="wp-block-latest-comments__comment-author" href="' . esc_url( $author_url ) . '">' . get_comment_author( $comment ) . '</a>'; } else { $author_markup .= '<span class="wp-block-latest-comments__comment-author">' . get_comment_author( $comment ) . '</span>'; } // `_draft_or_post_title` calls `esc_html()` so we don't need to wrap that call in // `esc_html`. $post_title = '<a class="wp-block-latest-comments__comment-link" href="' . esc_url( get_comment_link( $comment ) ) . '">' . wp_latest_comments_draft_or_post_title( $comment->comment_post_ID ) . '</a>'; $list_items_markup .= sprintf( /* translators: 1: author name (inside <a> or <span> tag, based on if they have a URL), 2: post title related to this comment */ __( '%1$s on %2$s' ), $author_markup, $post_title ); if ( $attributes['displayDate'] ) { $list_items_markup .= sprintf( '<time datetime="%1$s" class="wp-block-latest-comments__comment-date">%2$s</time>', esc_attr( get_comment_date( 'c', $comment ) ), date_i18n( get_option( 'date_format' ), get_comment_date( 'U', $comment ) ) ); } $list_items_markup .= '</footer>'; if ( 'full' === $display_content ) { $comment_text = post_password_required( $comment->comment_post_ID ) ? __( 'Password protected' ) : get_comment_text( $comment ); $list_items_markup .= '<div class="wp-block-latest-comments__comment-excerpt">' . wpautop( $comment_text ) . '</div>'; } elseif ( 'excerpt' === $display_content ) { $list_items_markup .= '<div class="wp-block-latest-comments__comment-excerpt">' . wpautop( get_comment_excerpt( $comment ) ) . '</div>'; } $list_items_markup .= '</article></li>'; } } $classnames = array(); if ( $attributes['displayAvatar'] ) { $classnames[] = 'has-avatars'; } if ( $attributes['displayDate'] ) { $classnames[] = 'has-dates'; } if ( 'none' !== $display_content ) { $classnames[] = 'has-excerpts'; } if ( empty( $comments ) ) { $classnames[] = 'no-comments'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classnames ) ) ); return ! empty( $comments ) ? sprintf( '<ol %1$s>%2$s</ol>', $wrapper_attributes, $list_items_markup ) : sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, __( 'No comments to show.' ) ); } /** * Registers the `core/latest-comments` block. * * @since 5.3.0 */ function register_block_core_latest_comments() { register_block_type_from_metadata( __DIR__ . '/latest-comments', array( 'render_callback' => 'render_block_core_latest_comments', ) ); } add_action( 'init', 'register_block_core_latest_comments' ); block/block.json 0000775 00000001141 00000000000 0007566 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/block", "title": "Pattern", "category": "reusable", "description": "Reuse this design across your site.", "keywords": [ "reusable" ], "textdomain": "default", "attributes": { "ref": { "type": "number" }, "content": { "type": "object", "default": {} } }, "providesContext": { "pattern/overrides": "content" }, "supports": { "customClassName": false, "html": false, "inserter": false, "renaming": false, "interactivity": { "clientNavigation": true }, "customCSS": false } } comment-template/style-rtl.css 0000775 00000001037 00000000000 0012437 0 ustar 00 .wp-block-comment-template { box-sizing: border-box; margin-bottom: 0; max-width: 100%; list-style: none; padding: 0; } .wp-block-comment-template li { clear: both; } .wp-block-comment-template ol { margin-bottom: 0; max-width: 100%; list-style: none; padding-right: 2rem; } .wp-block-comment-template.alignleft { float: right; } .wp-block-comment-template.aligncenter { margin-right: auto; margin-left: auto; width: -moz-fit-content; width: fit-content; } .wp-block-comment-template.alignright { float: left; } comment-template/style.min.css 0000775 00000000707 00000000000 0012425 0 ustar 00 .wp-block-comment-template{box-sizing:border-box;list-style:none;margin-bottom:0;max-width:100%;padding:0}.wp-block-comment-template li{clear:both}.wp-block-comment-template ol{list-style:none;margin-bottom:0;max-width:100%;padding-left:2rem}.wp-block-comment-template.alignleft{float:left}.wp-block-comment-template.aligncenter{margin-left:auto;margin-right:auto;width:-moz-fit-content;width:fit-content}.wp-block-comment-template.alignright{float:right} comment-template/block.json 0000775 00000002261 00000000000 0011753 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comment-template", "title": "Comment Template", "category": "design", "parent": [ "core/comments" ], "description": "Contains the block elements used to display a comment, like the title, date, author, avatar and more.", "textdomain": "default", "usesContext": [ "postId" ], "supports": { "anchor": true, "align": true, "html": false, "reusable": false, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-comment-template" } comment-template/style-rtl.min.css 0000775 00000000710 00000000000 0013216 0 ustar 00 .wp-block-comment-template{box-sizing:border-box;list-style:none;margin-bottom:0;max-width:100%;padding:0}.wp-block-comment-template li{clear:both}.wp-block-comment-template ol{list-style:none;margin-bottom:0;max-width:100%;padding-right:2rem}.wp-block-comment-template.alignleft{float:right}.wp-block-comment-template.aligncenter{margin-left:auto;margin-right:auto;width:-moz-fit-content;width:fit-content}.wp-block-comment-template.alignright{float:left} comment-template/style.css 0000775 00000001036 00000000000 0011637 0 ustar 00 .wp-block-comment-template { box-sizing: border-box; margin-bottom: 0; max-width: 100%; list-style: none; padding: 0; } .wp-block-comment-template li { clear: both; } .wp-block-comment-template ol { margin-bottom: 0; max-width: 100%; list-style: none; padding-left: 2rem; } .wp-block-comment-template.alignleft { float: left; } .wp-block-comment-template.aligncenter { margin-left: auto; margin-right: auto; width: -moz-fit-content; width: fit-content; } .wp-block-comment-template.alignright { float: right; } post-comments-link.php 0000775 00000004275 00000000000 0010776 0 ustar 00 <?php /** * Server-side rendering of the `core/post-comments-link` block. * * @package WordPress */ /** * Renders the `core/post-comments-link` block on the server. * * @since 6.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the rendered link. */ function render_block_core_post_comments_link( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) || isset( $block->context['postId'] ) && ! comments_open( $block->context['postId'] ) ) { return ''; } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); $comments_number = (int) get_comments_number( $block->context['postId'] ); $comments_link = get_comments_link( $block->context['postId'] ); $post_title = get_the_title( $block->context['postId'] ); $comment_html = ''; if ( 0 === $comments_number ) { $comment_html = sprintf( /* translators: %s post title */ __( 'No comments<span class="screen-reader-text"> on %s</span>' ), $post_title ); } else { $comment_html = sprintf( /* translators: 1: Number of comments, 2: post title */ _n( '%1$s comment<span class="screen-reader-text"> on %2$s</span>', '%1$s comments<span class="screen-reader-text"> on %2$s</span>', $comments_number ), esc_html( number_format_i18n( $comments_number ) ), $post_title ); } return '<div ' . $wrapper_attributes . '><a href=' . esc_url( $comments_link ) . '>' . $comment_html . '</a></div>'; } /** * Registers the `core/post-comments-link` block on the server. * * @since 6.9.0 */ function register_block_core_post_comments_link() { register_block_type_from_metadata( __DIR__ . '/post-comments-link', array( 'render_callback' => 'render_block_core_post_comments_link', ) ); } add_action( 'init', 'register_block_core_post_comments_link' ); heading.php 0000775 00000002425 00000000000 0006625 0 ustar 00 <?php /** * Appending the wp-block-heading to before rendering the stored `core/heading` block contents. * * @package WordPress */ /** * Adds a wp-block-heading class to the heading block content. * * For example, the following block content: * <h2 class="align-left">Hello World</h2> * * Would be transformed to: * <h2 class="align-left wp-block-heading">Hello World</h2> * * @since 6.2.0 * * @param array $attributes Attributes of the block being rendered. * @param string $content Content of the block being rendered. * * @return string The content of the block being rendered. */ function block_core_heading_render( $attributes, $content ) { if ( ! $content ) { return $content; } $p = new WP_HTML_Tag_Processor( $content ); $header_tags = array( 'H1', 'H2', 'H3', 'H4', 'H5', 'H6' ); while ( $p->next_tag() ) { if ( in_array( $p->get_tag(), $header_tags, true ) ) { $p->add_class( 'wp-block-heading' ); break; } } return $p->get_updated_html(); } /** * Registers the `core/heading` block on server. * * @since 6.2.0 */ function register_block_core_heading() { register_block_type_from_metadata( __DIR__ . '/heading', array( 'render_callback' => 'block_core_heading_render', ) ); } add_action( 'init', 'register_block_core_heading' ); columns/editor.css 0000775 00000000247 00000000000 0010175 0 ustar 00 .wp-block-columns :where(.wp-block) { max-width: none; margin-left: 0; margin-right: 0; } html :where(.wp-block-column) { margin-top: 0; margin-bottom: 0; } columns/editor.min.css 0000775 00000000213 00000000000 0010750 0 ustar 00 .wp-block-columns :where(.wp-block){margin-left:0;margin-right:0;max-width:none}html :where(.wp-block-column){margin-bottom:0;margin-top:0} columns/style-rtl.css 0000775 00000007414 00000000000 0010651 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-columns { display: flex; box-sizing: border-box; flex-wrap: wrap !important; } @media (min-width: 782px) { .wp-block-columns { flex-wrap: nowrap !important; } } .wp-block-columns { align-items: initial !important; /** * All Columns Alignment */ } .wp-block-columns.are-vertically-aligned-top { align-items: flex-start; } .wp-block-columns.are-vertically-aligned-center { align-items: center; } .wp-block-columns.are-vertically-aligned-bottom { align-items: flex-end; } @media (max-width: 781px) { .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; } } @media (min-width: 782px) { .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 0; flex-grow: 1; } .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*=flex-basis] { flex-grow: 0; } } .wp-block-columns.is-not-stacked-on-mobile { flex-wrap: nowrap !important; } .wp-block-columns.is-not-stacked-on-mobile > .wp-block-column { flex-basis: 0; flex-grow: 1; } .wp-block-columns.is-not-stacked-on-mobile > .wp-block-column[style*=flex-basis] { flex-grow: 0; } :where(.wp-block-columns) { margin-bottom: 1.75em; } :where(.wp-block-columns.has-background) { padding: 1.25em 2.375em; } .wp-block-column { flex-grow: 1; min-width: 0; word-break: break-word; overflow-wrap: break-word; /** * Individual Column Alignment */ } .wp-block-column.is-vertically-aligned-top { align-self: flex-start; } .wp-block-column.is-vertically-aligned-center { align-self: center; } .wp-block-column.is-vertically-aligned-bottom { align-self: flex-end; } .wp-block-column.is-vertically-aligned-stretch { align-self: stretch; } .wp-block-column.is-vertically-aligned-top, .wp-block-column.is-vertically-aligned-center, .wp-block-column.is-vertically-aligned-bottom { width: 100%; } columns/editor-rtl.min.css 0000775 00000000213 00000000000 0011547 0 ustar 00 .wp-block-columns :where(.wp-block){margin-left:0;margin-right:0;max-width:none}html :where(.wp-block-column){margin-bottom:0;margin-top:0} columns/style.min.css 0000775 00000003060 00000000000 0010625 0 ustar 00 .wp-block-columns{box-sizing:border-box;display:flex;flex-wrap:wrap!important}@media (min-width:782px){.wp-block-columns{flex-wrap:nowrap!important}}.wp-block-columns{align-items:normal!important}.wp-block-columns.are-vertically-aligned-top{align-items:flex-start}.wp-block-columns.are-vertically-aligned-center{align-items:center}.wp-block-columns.are-vertically-aligned-bottom{align-items:flex-end}@media (max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}}@media (min-width:782px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{flex-grow:0}}.wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap!important}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{flex-grow:0}:where(.wp-block-columns){margin-bottom:1.75em}:where(.wp-block-columns.has-background){padding:1.25em 2.375em}.wp-block-column{flex-grow:1;min-width:0;overflow-wrap:break-word;word-break:break-word}.wp-block-column.is-vertically-aligned-top{align-self:flex-start}.wp-block-column.is-vertically-aligned-center{align-self:center}.wp-block-column.is-vertically-aligned-bottom{align-self:flex-end}.wp-block-column.is-vertically-aligned-stretch{align-self:stretch}.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{width:100%} columns/block.json 0000775 00000003671 00000000000 0010166 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/columns", "title": "Columns", "category": "design", "allowedBlocks": [ "core/column" ], "description": "Display content in multiple columns, with blocks added to each column.", "textdomain": "default", "attributes": { "verticalAlignment": { "type": "string" }, "isStackedOnMobile": { "type": "boolean", "default": true }, "templateLock": { "type": [ "string", "boolean" ], "enum": [ "all", "insert", "contentOnly", false ] } }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "gradients": true, "link": true, "heading": true, "button": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "blockGap": { "__experimentalDefault": "2em", "sides": [ "horizontal", "vertical" ] }, "margin": [ "top", "bottom" ], "padding": true, "__experimentalDefaultControls": { "padding": true, "blockGap": true } }, "layout": { "allowSwitching": false, "allowInheriting": false, "allowEditing": false, "default": { "type": "flex", "flexWrap": "nowrap" } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "shadow": true }, "editorStyle": "wp-block-columns-editor", "style": "wp-block-columns" } columns/style-rtl.min.css 0000775 00000003060 00000000000 0011424 0 ustar 00 .wp-block-columns{box-sizing:border-box;display:flex;flex-wrap:wrap!important}@media (min-width:782px){.wp-block-columns{flex-wrap:nowrap!important}}.wp-block-columns{align-items:normal!important}.wp-block-columns.are-vertically-aligned-top{align-items:flex-start}.wp-block-columns.are-vertically-aligned-center{align-items:center}.wp-block-columns.are-vertically-aligned-bottom{align-items:flex-end}@media (max-width:781px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:100%!important}}@media (min-width:782px){.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*=flex-basis]{flex-grow:0}}.wp-block-columns.is-not-stacked-on-mobile{flex-wrap:nowrap!important}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column{flex-basis:0;flex-grow:1}.wp-block-columns.is-not-stacked-on-mobile>.wp-block-column[style*=flex-basis]{flex-grow:0}:where(.wp-block-columns){margin-bottom:1.75em}:where(.wp-block-columns.has-background){padding:1.25em 2.375em}.wp-block-column{flex-grow:1;min-width:0;overflow-wrap:break-word;word-break:break-word}.wp-block-column.is-vertically-aligned-top{align-self:flex-start}.wp-block-column.is-vertically-aligned-center{align-self:center}.wp-block-column.is-vertically-aligned-bottom{align-self:flex-end}.wp-block-column.is-vertically-aligned-stretch{align-self:stretch}.wp-block-column.is-vertically-aligned-bottom,.wp-block-column.is-vertically-aligned-center,.wp-block-column.is-vertically-aligned-top{width:100%} columns/style.css 0000775 00000007414 00000000000 0010052 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-columns { display: flex; box-sizing: border-box; flex-wrap: wrap !important; } @media (min-width: 782px) { .wp-block-columns { flex-wrap: nowrap !important; } } .wp-block-columns { align-items: initial !important; /** * All Columns Alignment */ } .wp-block-columns.are-vertically-aligned-top { align-items: flex-start; } .wp-block-columns.are-vertically-aligned-center { align-items: center; } .wp-block-columns.are-vertically-aligned-bottom { align-items: flex-end; } @media (max-width: 781px) { .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 100% !important; } } @media (min-width: 782px) { .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column { flex-basis: 0; flex-grow: 1; } .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column[style*=flex-basis] { flex-grow: 0; } } .wp-block-columns.is-not-stacked-on-mobile { flex-wrap: nowrap !important; } .wp-block-columns.is-not-stacked-on-mobile > .wp-block-column { flex-basis: 0; flex-grow: 1; } .wp-block-columns.is-not-stacked-on-mobile > .wp-block-column[style*=flex-basis] { flex-grow: 0; } :where(.wp-block-columns) { margin-bottom: 1.75em; } :where(.wp-block-columns.has-background) { padding: 1.25em 2.375em; } .wp-block-column { flex-grow: 1; min-width: 0; word-break: break-word; overflow-wrap: break-word; /** * Individual Column Alignment */ } .wp-block-column.is-vertically-aligned-top { align-self: flex-start; } .wp-block-column.is-vertically-aligned-center { align-self: center; } .wp-block-column.is-vertically-aligned-bottom { align-self: flex-end; } .wp-block-column.is-vertically-aligned-stretch { align-self: stretch; } .wp-block-column.is-vertically-aligned-top, .wp-block-column.is-vertically-aligned-center, .wp-block-column.is-vertically-aligned-bottom { width: 100%; } columns/editor-rtl.css 0000775 00000000247 00000000000 0010774 0 ustar 00 .wp-block-columns :where(.wp-block) { max-width: none; margin-right: 0; margin-left: 0; } html :where(.wp-block-column) { margin-top: 0; margin-bottom: 0; } page-list/editor.css 0000775 00000006057 00000000000 0010407 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-navigation.items-justified-space-between .wp-block-page-list > div, .wp-block-navigation.items-justified-space-between .wp-block-page-list { display: contents; flex: 1; } .wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list > div, .wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list, .wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list > div, .wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list { flex: inherit; } .wp-block-navigation .wp-block-navigation__submenu-container > .wp-block-page-list { display: block; } .wp-block-pages-list__item__link { pointer-events: none; } @media (min-width: 600px) { .wp-block-page-list-modal { max-width: 480px; } } .wp-block-page-list-modal-buttons { display: flex; justify-content: flex-end; gap: 12px; } .wp-block-page-list .open-on-click:focus-within > .wp-block-navigation__submenu-container { visibility: visible; opacity: 1; width: auto; height: auto; min-width: 200px; } .wp-block-page-list__loading-indicator-container { padding: 8px 12px; } page-list/editor.min.css 0000775 00000002040 00000000000 0011155 0 ustar 00 .wp-block-navigation.items-justified-space-between .wp-block-page-list,.wp-block-navigation.items-justified-space-between .wp-block-page-list>div{display:contents;flex:1}.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list>div,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list>div{flex:inherit}.wp-block-navigation .wp-block-navigation__submenu-container>.wp-block-page-list{display:block}.wp-block-pages-list__item__link{pointer-events:none}@media (min-width:600px){.wp-block-page-list-modal{max-width:480px}}.wp-block-page-list-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-page-list .open-on-click:focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;visibility:visible;width:auto}.wp-block-page-list__loading-indicator-container{padding:8px 12px} page-list/style-rtl.css 0000775 00000000704 00000000000 0011051 0 ustar 00 .wp-block-navigation .wp-block-page-list { display: flex; flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); flex-wrap: var(--navigation-layout-wrap, wrap); background-color: inherit; } .wp-block-navigation .wp-block-navigation-item { background-color: inherit; } .wp-block-page-list { box-sizing: border-box; } page-list/editor-rtl.min.css 0000775 00000002040 00000000000 0011754 0 ustar 00 .wp-block-navigation.items-justified-space-between .wp-block-page-list,.wp-block-navigation.items-justified-space-between .wp-block-page-list>div{display:contents;flex:1}.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list>div,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list,.wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list>div{flex:inherit}.wp-block-navigation .wp-block-navigation__submenu-container>.wp-block-page-list{display:block}.wp-block-pages-list__item__link{pointer-events:none}@media (min-width:600px){.wp-block-page-list-modal{max-width:480px}}.wp-block-page-list-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-page-list .open-on-click:focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;visibility:visible;width:auto}.wp-block-page-list__loading-indicator-container{padding:8px 12px} page-list/style.min.css 0000775 00000000624 00000000000 0011035 0 ustar 00 .wp-block-navigation .wp-block-page-list{align-items:var(--navigation-layout-align,initial);background-color:inherit;display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation .wp-block-navigation-item{background-color:inherit}.wp-block-page-list{box-sizing:border-box} page-list/block.json 0000775 00000003372 00000000000 0010371 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/page-list", "title": "Page List", "category": "widgets", "allowedBlocks": [ "core/page-list-item" ], "description": "Display a list of all pages.", "keywords": [ "menu", "navigation" ], "textdomain": "default", "attributes": { "parentPageID": { "type": "integer", "default": 0 } }, "usesContext": [ "textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "style", "openSubmenusOnClick", "submenuVisibility", "core/isInsideSubmenu" ], "supports": { "anchor": true, "reusable": false, "html": false, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "color": { "text": true, "background": true, "link": true, "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true }, "spacing": { "padding": true, "margin": true, "__experimentalDefaultControls": { "padding": false, "margin": false } }, "contentRole": true }, "editorStyle": "wp-block-page-list-editor", "style": "wp-block-page-list" } page-list/style-rtl.min.css 0000775 00000000624 00000000000 0011634 0 ustar 00 .wp-block-navigation .wp-block-page-list{align-items:var(--navigation-layout-align,initial);background-color:inherit;display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation .wp-block-navigation-item{background-color:inherit}.wp-block-page-list{box-sizing:border-box} page-list/style.css 0000775 00000000704 00000000000 0010252 0 ustar 00 .wp-block-navigation .wp-block-page-list { display: flex; flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); flex-wrap: var(--navigation-layout-wrap, wrap); background-color: inherit; } .wp-block-navigation .wp-block-navigation-item { background-color: inherit; } .wp-block-page-list { box-sizing: border-box; } page-list/editor-rtl.css 0000775 00000006057 00000000000 0011206 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-navigation.items-justified-space-between .wp-block-page-list > div, .wp-block-navigation.items-justified-space-between .wp-block-page-list { display: contents; flex: 1; } .wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list > div, .wp-block-navigation.items-justified-space-between.has-child-selected .wp-block-page-list, .wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list > div, .wp-block-navigation.items-justified-space-between.is-selected .wp-block-page-list { flex: inherit; } .wp-block-navigation .wp-block-navigation__submenu-container > .wp-block-page-list { display: block; } .wp-block-pages-list__item__link { pointer-events: none; } @media (min-width: 600px) { .wp-block-page-list-modal { max-width: 480px; } } .wp-block-page-list-modal-buttons { display: flex; justify-content: flex-end; gap: 12px; } .wp-block-page-list .open-on-click:focus-within > .wp-block-navigation__submenu-container { visibility: visible; opacity: 1; width: auto; height: auto; min-width: 200px; } .wp-block-page-list__loading-indicator-container { padding: 8px 12px; } site-title/editor.css 0000775 00000000115 00000000000 0010572 0 ustar 00 .wp-block-site-title__placeholder { padding: 1em 0; border: 1px dashed; } site-title/editor.min.css 0000775 00000000102 00000000000 0011350 0 ustar 00 .wp-block-site-title__placeholder{border:1px dashed;padding:1em 0} site-title/style-rtl.css 0000775 00000000423 00000000000 0011245 0 ustar 00 .wp-block-site-title { box-sizing: border-box; } .wp-block-site-title :where(a) { color: inherit; font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; letter-spacing: inherit; line-height: inherit; text-decoration: inherit; } site-title/editor-rtl.min.css 0000775 00000000102 00000000000 0012147 0 ustar 00 .wp-block-site-title__placeholder{border:1px dashed;padding:1em 0} site-title/style.min.css 0000775 00000000350 00000000000 0011227 0 ustar 00 .wp-block-site-title{box-sizing:border-box}.wp-block-site-title :where(a){color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-decoration:inherit} site-title/block.json 0000775 00000003361 00000000000 0010565 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/site-title", "title": "Site Title", "category": "theme", "description": "Displays the name of this site. Update the block, and the changes apply everywhere it’s used. This will also appear in the browser title bar and in search results.", "textdomain": "default", "attributes": { "level": { "type": "number", "default": 1 }, "levelOptions": { "type": "array", "default": [ 0, 1, 2, 3, 4, 5, 6 ] }, "isLink": { "type": "boolean", "default": true, "role": "content" }, "linkTarget": { "type": "string", "default": "_self", "role": "content" } }, "example": { "viewportWidth": 500 }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "padding": true, "margin": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalWritingMode": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true } }, "editorStyle": "wp-block-site-title-editor", "style": "wp-block-site-title" } site-title/style-rtl.min.css 0000775 00000000350 00000000000 0012026 0 ustar 00 .wp-block-site-title{box-sizing:border-box}.wp-block-site-title :where(a){color:inherit;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-decoration:inherit} site-title/style.css 0000775 00000000423 00000000000 0010446 0 ustar 00 .wp-block-site-title { box-sizing: border-box; } .wp-block-site-title :where(a) { color: inherit; font-family: inherit; font-size: inherit; font-style: inherit; font-weight: inherit; letter-spacing: inherit; line-height: inherit; text-decoration: inherit; } site-title/editor-rtl.css 0000775 00000000115 00000000000 0011371 0 ustar 00 .wp-block-site-title__placeholder { padding: 1em 0; border: 1px dashed; } post-comments-count/style-rtl.css 0000775 00000000073 00000000000 0013121 0 ustar 00 .wp-block-post-comments-count { box-sizing: border-box; } post-comments-count/style.min.css 0000775 00000000064 00000000000 0013104 0 ustar 00 .wp-block-post-comments-count{box-sizing:border-box} post-comments-count/block.json 0000775 00000002154 00000000000 0012437 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-comments-count", "title": "Comments Count", "category": "theme", "description": "Display a post's comments count.", "textdomain": "default", "usesContext": [ "postId" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "html": false, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-post-comments-count" } post-comments-count/style-rtl.min.css 0000775 00000000064 00000000000 0013703 0 ustar 00 .wp-block-post-comments-count{box-sizing:border-box} post-comments-count/style.css 0000775 00000000073 00000000000 0012322 0 ustar 00 .wp-block-post-comments-count { box-sizing: border-box; } comment-template.php 0000775 00000010616 00000000000 0010502 0 ustar 00 <?php /** * Server-side rendering of the `core/comment-template` block. * * @package WordPress */ /** * Function that recursively renders a list of nested comments. * * @since 6.3.0 Changed render_block_context priority to `1`. * * @global int $comment_depth * * @param WP_Comment[] $comments The array of comments. * @param WP_Block $block Block instance. * @return string */ function block_core_comment_template_render_comments( $comments, $block ) { global $comment_depth; $thread_comments = get_option( 'thread_comments' ); $thread_comments_depth = get_option( 'thread_comments_depth' ); if ( empty( $comment_depth ) ) { $comment_depth = 1; } $content = ''; foreach ( $comments as $comment ) { $comment_id = $comment->comment_ID; $filter_block_context = static function ( $context ) use ( $comment_id ) { $context['commentId'] = $comment_id; return $context; }; /* * We set commentId context through the `render_block_context` filter so * that dynamically inserted blocks (at `render_block` filter stage) * will also receive that context. * * Use an early priority to so that other 'render_block_context' filters * have access to the values. */ add_filter( 'render_block_context', $filter_block_context, 1 ); /* * We construct a new WP_Block instance from the parsed block so that * it'll receive any changes made by the `render_block_data` filter. */ $block_content = ( new WP_Block( $block->parsed_block ) )->render( array( 'dynamic' => false ) ); remove_filter( 'render_block_context', $filter_block_context, 1 ); $children = $comment->get_children(); /* * We need to create the CSS classes BEFORE recursing into the children. * This is because comment_class() uses globals like `$comment_alt` * and `$comment_thread_alt` which are order-sensitive. * * The `false` parameter at the end means that we do NOT want the function * to `echo` the output but to return a string. * See https://developer.wordpress.org/reference/functions/comment_class/#parameters. */ $comment_classes = comment_class( '', $comment->comment_ID, $comment->comment_post_ID, false ); // If the comment has children, recurse to create the HTML for the nested // comments. if ( ! empty( $children ) && ! empty( $thread_comments ) ) { if ( $comment_depth < $thread_comments_depth ) { ++$comment_depth; $inner_content = block_core_comment_template_render_comments( $children, $block ); $block_content .= sprintf( '<ol>%1$s</ol>', $inner_content ); --$comment_depth; } else { $block_content .= block_core_comment_template_render_comments( $children, $block ); } } $content .= sprintf( '<li id="comment-%1$s" %2$s>%3$s</li>', $comment->comment_ID, $comment_classes, $block_content ); } return $content; } /** * Renders the `core/comment-template` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the HTML representing the comments using the layout * defined by the block's inner blocks. */ function render_block_core_comment_template( $attributes, $content, $block ) { // Bail out early if the post ID is not set for some reason. if ( empty( $block->context['postId'] ) ) { return ''; } if ( post_password_required( $block->context['postId'] ) ) { return; } $comment_query = new WP_Comment_Query( build_comment_query_vars_from_block( $block ) ); // Get an array of comments for the current post. $comments = $comment_query->get_comments(); if ( count( $comments ) === 0 ) { return ''; } $comment_order = get_option( 'comment_order' ); if ( 'desc' === $comment_order ) { $comments = array_reverse( $comments ); } $wrapper_attributes = get_block_wrapper_attributes(); return sprintf( '<ol %1$s>%2$s</ol>', $wrapper_attributes, block_core_comment_template_render_comments( $comments, $block ) ); } /** * Registers the `core/comment-template` block on the server. * * @since 6.0.0 */ function register_block_core_comment_template() { register_block_type_from_metadata( __DIR__ . '/comment-template', array( 'render_callback' => 'render_block_core_comment_template', 'skip_inner_blocks' => true, ) ); } add_action( 'init', 'register_block_core_comment_template' ); latest-posts/editor.css 0000775 00000000437 00000000000 0011160 0 ustar 00 .wp-block-latest-posts > li { overflow: hidden; } .wp-block-latest-posts li a > div { display: inline; } :root :where(.wp-block-latest-posts) { padding-left: 2.5em; } :root :where(.wp-block-latest-posts.is-grid), :root :where(.wp-block-latest-posts__list) { padding-left: 0; } latest-posts/editor.min.css 0000775 00000000370 00000000000 0011736 0 ustar 00 .wp-block-latest-posts>li{overflow:hidden}.wp-block-latest-posts li a>div{display:inline}:root :where(.wp-block-latest-posts){padding-left:2.5em}:root :where(.wp-block-latest-posts.is-grid),:root :where(.wp-block-latest-posts__list){padding-left:0} latest-posts/style-rtl.css 0000775 00000010743 00000000000 0011632 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-latest-posts { box-sizing: border-box; } .wp-block-latest-posts.alignleft { margin-right: 2em; } .wp-block-latest-posts.alignright { margin-left: 2em; } .wp-block-latest-posts.wp-block-latest-posts__list { list-style: none; } .wp-block-latest-posts.wp-block-latest-posts__list li { clear: both; overflow-wrap: break-word; } .wp-block-latest-posts.is-grid:not(.is-layout-grid) { display: flex; flex-wrap: wrap; } .wp-block-latest-posts.is-grid:not(.is-layout-grid) li { margin: 0 0 1.25em 1.25em; width: 100%; } @media (min-width: 600px) { .wp-block-latest-posts.columns-2:not(.is-layout-grid) li { width: calc(100% / 2 - 1.25em + 1.25em / 2); } .wp-block-latest-posts.columns-2:not(.is-layout-grid) li:nth-child(2n) { margin-left: 0; } .wp-block-latest-posts.columns-3:not(.is-layout-grid) li { width: calc(100% / 3 - 1.25em + 1.25em / 3); } .wp-block-latest-posts.columns-3:not(.is-layout-grid) li:nth-child(3n) { margin-left: 0; } .wp-block-latest-posts.columns-4:not(.is-layout-grid) li { width: calc(100% / 4 - 1.25em + 1.25em / 4); } .wp-block-latest-posts.columns-4:not(.is-layout-grid) li:nth-child(4n) { margin-left: 0; } .wp-block-latest-posts.columns-5:not(.is-layout-grid) li { width: calc(100% / 5 - 1.25em + 1.25em / 5); } .wp-block-latest-posts.columns-5:not(.is-layout-grid) li:nth-child(5n) { margin-left: 0; } .wp-block-latest-posts.columns-6:not(.is-layout-grid) li { width: calc(100% / 6 - 1.25em + 1.25em / 6); } .wp-block-latest-posts.columns-6:not(.is-layout-grid) li:nth-child(6n) { margin-left: 0; } } @media (max-width: 600px) { .wp-block-latest-posts-is-layout-grid[class*=columns-]:not(.has-native-responsive-grid) { grid-template-columns: 1fr; } } :root :where(.wp-block-latest-posts.is-grid) { padding: 0; } :root :where(.wp-block-latest-posts.wp-block-latest-posts__list) { padding-right: 0; } .wp-block-latest-posts__post-date, .wp-block-latest-posts__post-author { display: block; font-size: 0.8125em; } .wp-block-latest-posts__post-excerpt, .wp-block-latest-posts__post-full-content { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-latest-posts__featured-image a { display: inline-block; } .wp-block-latest-posts__featured-image img { height: auto; width: auto; max-width: 100%; } .wp-block-latest-posts__featured-image.alignleft { margin-right: 1em; float: left; } .wp-block-latest-posts__featured-image.alignright { margin-left: 1em; float: right; } .wp-block-latest-posts__featured-image.aligncenter { margin-bottom: 1em; text-align: center; } latest-posts/editor-rtl.min.css 0000775 00000000372 00000000000 0012537 0 ustar 00 .wp-block-latest-posts>li{overflow:hidden}.wp-block-latest-posts li a>div{display:inline}:root :where(.wp-block-latest-posts){padding-right:2.5em}:root :where(.wp-block-latest-posts.is-grid),:root :where(.wp-block-latest-posts__list){padding-right:0} latest-posts/style.min.css 0000775 00000004265 00000000000 0011617 0 ustar 00 .wp-block-latest-posts{box-sizing:border-box}.wp-block-latest-posts.alignleft{margin-right:2em}.wp-block-latest-posts.alignright{margin-left:2em}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none}.wp-block-latest-posts.wp-block-latest-posts__list li{clear:both;overflow-wrap:break-word}.wp-block-latest-posts.is-grid:not(.is-layout-grid){display:flex;flex-wrap:wrap}.wp-block-latest-posts.is-grid:not(.is-layout-grid) li{margin:0 1.25em 1.25em 0;width:100%}@media (min-width:600px){.wp-block-latest-posts.columns-2:not(.is-layout-grid) li{width:calc(50% - .625em)}.wp-block-latest-posts.columns-2:not(.is-layout-grid) li:nth-child(2n){margin-right:0}.wp-block-latest-posts.columns-3:not(.is-layout-grid) li{width:calc(33.33333% - .83333em)}.wp-block-latest-posts.columns-3:not(.is-layout-grid) li:nth-child(3n){margin-right:0}.wp-block-latest-posts.columns-4:not(.is-layout-grid) li{width:calc(25% - .9375em)}.wp-block-latest-posts.columns-4:not(.is-layout-grid) li:nth-child(4n){margin-right:0}.wp-block-latest-posts.columns-5:not(.is-layout-grid) li{width:calc(20% - 1em)}.wp-block-latest-posts.columns-5:not(.is-layout-grid) li:nth-child(5n){margin-right:0}.wp-block-latest-posts.columns-6:not(.is-layout-grid) li{width:calc(16.66667% - 1.04167em)}.wp-block-latest-posts.columns-6:not(.is-layout-grid) li:nth-child(6n){margin-right:0}}@media (max-width:600px){.wp-block-latest-posts-is-layout-grid[class*=columns-]:not(.has-native-responsive-grid){grid-template-columns:1fr}}:root :where(.wp-block-latest-posts.is-grid){padding:0}:root :where(.wp-block-latest-posts.wp-block-latest-posts__list){padding-left:0}.wp-block-latest-posts__post-author,.wp-block-latest-posts__post-date{display:block;font-size:.8125em}.wp-block-latest-posts__post-excerpt,.wp-block-latest-posts__post-full-content{margin-bottom:1em;margin-top:.5em}.wp-block-latest-posts__featured-image a{display:inline-block}.wp-block-latest-posts__featured-image img{height:auto;max-width:100%;width:auto}.wp-block-latest-posts__featured-image.alignleft{float:left;margin-right:1em}.wp-block-latest-posts__featured-image.alignright{float:right;margin-left:1em}.wp-block-latest-posts__featured-image.aligncenter{margin-bottom:1em;text-align:center} latest-posts/block.json 0000775 00000005045 00000000000 0011145 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/latest-posts", "title": "Latest Posts", "category": "widgets", "description": "Display a list of your most recent posts.", "keywords": [ "recent posts" ], "textdomain": "default", "attributes": { "categories": { "type": "array", "items": { "type": "object" } }, "selectedAuthor": { "type": "number" }, "postsToShow": { "type": "number", "default": 5 }, "displayPostContent": { "type": "boolean", "default": false }, "displayPostContentRadio": { "type": "string", "default": "excerpt" }, "excerptLength": { "type": "number", "default": 55 }, "displayAuthor": { "type": "boolean", "default": false }, "displayPostDate": { "type": "boolean", "default": false }, "order": { "type": "string", "default": "desc" }, "orderBy": { "type": "string", "default": "date" }, "displayFeaturedImage": { "type": "boolean", "default": false }, "featuredImageAlign": { "type": "string", "enum": [ "left", "center", "right" ] }, "featuredImageSizeSlug": { "type": "string", "default": "thumbnail" }, "featuredImageSizeWidth": { "type": "number", "default": null }, "featuredImageSizeHeight": { "type": "number", "default": null }, "addLinkToFeaturedImage": { "type": "boolean", "default": false } }, "supports": { "anchor": true, "align": true, "html": false, "layout": true, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "margin": true, "padding": true, "blockGap": { "__experimentalDefault": "1.25em" }, "__experimentalDefaultControls": { "blockGap": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-latest-posts-editor", "style": "wp-block-latest-posts" } latest-posts/style-rtl.min.css 0000775 00000004261 00000000000 0012412 0 ustar 00 .wp-block-latest-posts{box-sizing:border-box}.wp-block-latest-posts.alignleft{margin-right:2em}.wp-block-latest-posts.alignright{margin-left:2em}.wp-block-latest-posts.wp-block-latest-posts__list{list-style:none}.wp-block-latest-posts.wp-block-latest-posts__list li{clear:both;overflow-wrap:break-word}.wp-block-latest-posts.is-grid:not(.is-layout-grid){display:flex;flex-wrap:wrap}.wp-block-latest-posts.is-grid:not(.is-layout-grid) li{margin:0 0 1.25em 1.25em;width:100%}@media (min-width:600px){.wp-block-latest-posts.columns-2:not(.is-layout-grid) li{width:calc(50% - .625em)}.wp-block-latest-posts.columns-2:not(.is-layout-grid) li:nth-child(2n){margin-left:0}.wp-block-latest-posts.columns-3:not(.is-layout-grid) li{width:calc(33.33333% - .83333em)}.wp-block-latest-posts.columns-3:not(.is-layout-grid) li:nth-child(3n){margin-left:0}.wp-block-latest-posts.columns-4:not(.is-layout-grid) li{width:calc(25% - .9375em)}.wp-block-latest-posts.columns-4:not(.is-layout-grid) li:nth-child(4n){margin-left:0}.wp-block-latest-posts.columns-5:not(.is-layout-grid) li{width:calc(20% - 1em)}.wp-block-latest-posts.columns-5:not(.is-layout-grid) li:nth-child(5n){margin-left:0}.wp-block-latest-posts.columns-6:not(.is-layout-grid) li{width:calc(16.66667% - 1.04167em)}.wp-block-latest-posts.columns-6:not(.is-layout-grid) li:nth-child(6n){margin-left:0}}@media (max-width:600px){.wp-block-latest-posts-is-layout-grid[class*=columns-]:not(.has-native-responsive-grid){grid-template-columns:1fr}}:root :where(.wp-block-latest-posts.is-grid){padding:0}:root :where(.wp-block-latest-posts.wp-block-latest-posts__list){padding-right:0}.wp-block-latest-posts__post-author,.wp-block-latest-posts__post-date{display:block;font-size:.8125em}.wp-block-latest-posts__post-excerpt,.wp-block-latest-posts__post-full-content{margin-bottom:1em;margin-top:.5em}.wp-block-latest-posts__featured-image a{display:inline-block}.wp-block-latest-posts__featured-image img{height:auto;max-width:100%;width:auto}.wp-block-latest-posts__featured-image.alignleft{float:left;margin-right:1em}.wp-block-latest-posts__featured-image.alignright{float:right;margin-left:1em}.wp-block-latest-posts__featured-image.aligncenter{margin-bottom:1em;text-align:center} latest-posts/style.css 0000775 00000011115 00000000000 0011025 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-latest-posts { box-sizing: border-box; } .wp-block-latest-posts.alignleft { /*rtl:ignore*/ margin-right: 2em; } .wp-block-latest-posts.alignright { /*rtl:ignore*/ margin-left: 2em; } .wp-block-latest-posts.wp-block-latest-posts__list { list-style: none; } .wp-block-latest-posts.wp-block-latest-posts__list li { clear: both; overflow-wrap: break-word; } .wp-block-latest-posts.is-grid:not(.is-layout-grid) { display: flex; flex-wrap: wrap; } .wp-block-latest-posts.is-grid:not(.is-layout-grid) li { margin: 0 1.25em 1.25em 0; width: 100%; } @media (min-width: 600px) { .wp-block-latest-posts.columns-2:not(.is-layout-grid) li { width: calc(100% / 2 - 1.25em + 1.25em / 2); } .wp-block-latest-posts.columns-2:not(.is-layout-grid) li:nth-child(2n) { margin-right: 0; } .wp-block-latest-posts.columns-3:not(.is-layout-grid) li { width: calc(100% / 3 - 1.25em + 1.25em / 3); } .wp-block-latest-posts.columns-3:not(.is-layout-grid) li:nth-child(3n) { margin-right: 0; } .wp-block-latest-posts.columns-4:not(.is-layout-grid) li { width: calc(100% / 4 - 1.25em + 1.25em / 4); } .wp-block-latest-posts.columns-4:not(.is-layout-grid) li:nth-child(4n) { margin-right: 0; } .wp-block-latest-posts.columns-5:not(.is-layout-grid) li { width: calc(100% / 5 - 1.25em + 1.25em / 5); } .wp-block-latest-posts.columns-5:not(.is-layout-grid) li:nth-child(5n) { margin-right: 0; } .wp-block-latest-posts.columns-6:not(.is-layout-grid) li { width: calc(100% / 6 - 1.25em + 1.25em / 6); } .wp-block-latest-posts.columns-6:not(.is-layout-grid) li:nth-child(6n) { margin-right: 0; } } @media (max-width: 600px) { .wp-block-latest-posts-is-layout-grid[class*=columns-]:not(.has-native-responsive-grid) { grid-template-columns: 1fr; } } :root :where(.wp-block-latest-posts.is-grid) { padding: 0; } :root :where(.wp-block-latest-posts.wp-block-latest-posts__list) { padding-left: 0; } .wp-block-latest-posts__post-date, .wp-block-latest-posts__post-author { display: block; font-size: 0.8125em; } .wp-block-latest-posts__post-excerpt, .wp-block-latest-posts__post-full-content { margin-top: 0.5em; margin-bottom: 1em; } .wp-block-latest-posts__featured-image a { display: inline-block; } .wp-block-latest-posts__featured-image img { height: auto; width: auto; max-width: 100%; } .wp-block-latest-posts__featured-image.alignleft { /*rtl:ignore*/ margin-right: 1em; /*rtl:ignore*/ float: left; } .wp-block-latest-posts__featured-image.alignright { /*rtl:ignore*/ margin-left: 1em; /*rtl:ignore*/ float: right; } .wp-block-latest-posts__featured-image.aligncenter { margin-bottom: 1em; text-align: center; } latest-posts/editor-rtl.css 0000775 00000000441 00000000000 0011752 0 ustar 00 .wp-block-latest-posts > li { overflow: hidden; } .wp-block-latest-posts li a > div { display: inline; } :root :where(.wp-block-latest-posts) { padding-right: 2.5em; } :root :where(.wp-block-latest-posts.is-grid), :root :where(.wp-block-latest-posts__list) { padding-right: 0; } list-item/block.json 0000775 00000002720 00000000000 0010407 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/list-item", "title": "List Item", "category": "text", "parent": [ "core/list" ], "allowedBlocks": [ "core/list" ], "description": "An individual item within a list.", "textdomain": "default", "attributes": { "placeholder": { "type": "string" }, "content": { "type": "rich-text", "source": "rich-text", "selector": "li", "role": "content" } }, "supports": { "anchor": true, "html": false, "className": false, "splitting": true, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true }, "color": { "gradients": true, "link": true, "background": true, "__experimentalDefaultControls": { "text": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "selectors": { "root": ".wp-block-list > li", "border": ".wp-block-list:not(.wp-block-list .wp-block-list) > li" } } gallery/editor.css 0000775 00000010452 00000000000 0010153 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ :root :where(figure.wp-block-gallery) { display: block; } :root :where(figure.wp-block-gallery) > .blocks-gallery-caption { flex: 0 0 100%; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .components-placeholder__label { display: none; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .block-editor-media-placeholder__button { margin-bottom: 0; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder { margin: 0; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder .components-placeholder__label { display: flex; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder figcaption { z-index: 2; } :root :where(figure.wp-block-gallery) .components-spinner { position: absolute; top: 50%; left: 50%; margin-top: -9px; margin-left: -9px; } /** * Gallery inspector controls settings. */ .gallery-settings-buttons .components-button:first-child { margin-right: 8px; } /** * Deprecated css past this point. This can be removed once all galleries are migrated * to V2. */ .blocks-gallery-item figure:not(.is-selected):focus, .blocks-gallery-item img:focus { outline: none; } .blocks-gallery-item figure.is-selected::before { box-shadow: 0 0 0 1px #fff inset, 0 0 0 3px var(--wp-admin-theme-color) inset; content: ""; outline: 2px solid transparent; position: absolute; top: 0; right: 0; bottom: 0; left: 0; z-index: 1; pointer-events: none; } .blocks-gallery-item figure.is-transient img { opacity: 0.3; } .blocks-gallery-item .block-editor-media-placeholder { margin: 0; height: 100%; } .blocks-gallery-item .block-editor-media-placeholder .components-placeholder__label { display: flex; } .wp-block-gallery ul.blocks-gallery-grid { padding: 0; margin: 0; } @media (min-width: 600px) { .wp-block-update-gallery-modal { max-width: 480px; } } .wp-block-update-gallery-modal-buttons { display: flex; justify-content: flex-end; gap: 12px; } .wp-block-gallery__source-settings { grid-column: 1/-1; display: flex; flex-direction: column; gap: 8px; } .wp-block-gallery__source-settings .wp-block-gallery__source-description { margin: 0; color: #757575; font-size: 12px; } .wp-block-gallery__source-settings .components-button { justify-content: center; width: 100%; } .wp-block-gallery__source-notice { grid-column: 1/-1; margin: 0; } gallery/editor.min.css 0000775 00000003735 00000000000 0010743 0 ustar 00 :root :where(figure.wp-block-gallery){display:block}:root :where(figure.wp-block-gallery)>.blocks-gallery-caption{flex:0 0 100%}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .components-placeholder__label{display:none}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .block-editor-media-placeholder__button{margin-bottom:0}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder{margin:0}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder .components-placeholder__label{display:flex}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder figcaption{z-index:2}:root :where(figure.wp-block-gallery) .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.gallery-settings-buttons .components-button:first-child{margin-right:8px}.blocks-gallery-item figure:not(.is-selected):focus,.blocks-gallery-item img:focus{outline:none}.blocks-gallery-item figure.is-selected:before{bottom:0;box-shadow:0 0 0 1px #fff inset,0 0 0 3px var(--wp-admin-theme-color) inset;content:"";left:0;outline:2px solid transparent;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.blocks-gallery-item figure.is-transient img{opacity:.3}.blocks-gallery-item .block-editor-media-placeholder{height:100%;margin:0}.blocks-gallery-item .block-editor-media-placeholder .components-placeholder__label{display:flex}.wp-block-gallery ul.blocks-gallery-grid{margin:0;padding:0}@media (min-width:600px){.wp-block-update-gallery-modal{max-width:480px}}.wp-block-update-gallery-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-gallery__source-settings{display:flex;flex-direction:column;gap:8px;grid-column:1/-1}.wp-block-gallery__source-settings .wp-block-gallery__source-description{color:#757575;font-size:12px;margin:0}.wp-block-gallery__source-settings .components-button{justify-content:center;width:100%}.wp-block-gallery__source-notice{grid-column:1/-1;margin:0} gallery/style-rtl.css 0000775 00000046443 00000000000 0010635 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-gallery:not(.has-nested-images), .blocks-gallery-grid:not(.has-nested-images) { display: flex; flex-wrap: wrap; list-style-type: none; padding: 0; margin: 0; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item { margin: 0 0 1em 1em; display: flex; flex-grow: 1; flex-direction: column; justify-content: center; position: relative; width: calc(50% - 1em); } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(even), .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(even), .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(even), .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(even) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure { margin: 0; height: 100%; display: flex; align-items: flex-end; justify-content: flex-start; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img { display: block; max-width: 100%; height: auto; width: auto; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption { position: absolute; bottom: 0; width: 100%; max-height: 100%; overflow: auto; padding: 3em 0.77em 0.7em; color: #fff; text-align: center; font-size: 0.8em; background: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 0, rgba(0, 0, 0, 0.3) 70%, transparent); box-sizing: border-box; margin: 0; z-index: 2; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img { display: inline; } .wp-block-gallery:not(.has-nested-images) figcaption, .blocks-gallery-grid:not(.has-nested-images) figcaption { flex-grow: 1; } .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a, .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img, .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a, .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img { width: 100%; height: 100%; flex: 1; -o-object-fit: cover; object-fit: cover; } .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item { width: 100%; margin-left: 0; } @media (min-width: 600px) { .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item { width: calc(33.3333333333% - 0.6666666667em); margin-left: 1em; } .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item { width: calc(25% - 0.75em); margin-left: 1em; } .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item { width: calc(20% - 0.8em); margin-left: 1em; } .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item { width: calc(16.6666666667% - 0.8333333333em); margin-left: 1em; } .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item { width: calc(14.2857142857% - 0.8571428571em); margin-left: 1em; } .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item { width: calc(12.5% - 0.875em); margin-left: 1em; } .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n), .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n), .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n), .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n), .wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n), .blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n), .blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n), .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n), .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n), .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n), .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n), .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n), .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n), .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n), .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n), .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n), .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n), .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n), .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n), .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n), .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n), .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n) { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n), .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n), .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n), .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n) { margin-left: 0; } } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child { margin-left: 0; } .wp-block-gallery:not(.has-nested-images).alignleft, .wp-block-gallery:not(.has-nested-images).alignright, .blocks-gallery-grid:not(.has-nested-images).alignleft, .blocks-gallery-grid:not(.has-nested-images).alignright { max-width: 420px; width: 100%; } .wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure, .blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure { justify-content: center; } .wp-block-gallery:not(.is-cropped) .blocks-gallery-item { align-self: flex-start; } figure.wp-block-gallery.has-nested-images { align-items: normal; } .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px) / 2); margin: 0; } .wp-block-gallery.has-nested-images figure.wp-block-image { display: flex; flex-grow: 1; justify-content: center; position: relative; flex-direction: column; max-width: 100%; box-sizing: border-box; } .wp-block-gallery.has-nested-images figure.wp-block-image > div, .wp-block-gallery.has-nested-images figure.wp-block-image > a { margin: 0; flex-direction: column; flex-grow: 1; } .wp-block-gallery.has-nested-images figure.wp-block-image img { display: block; height: auto; max-width: 100% !important; width: auto; } .wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { position: absolute; bottom: 0; left: 0; right: 0; max-height: 100%; } .wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before { content: ""; height: 100%; max-height: 3em; pointer-events: none; backdrop-filter: blur(3px); -webkit-mask-image: linear-gradient(0deg, #000 20%, transparent 100%); mask-image: linear-gradient(0deg, #000 20%, transparent 100%); } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { color: #fff; text-shadow: 0 0 1.5px #000; font-size: 13px; margin: 0; overflow: auto; padding: 1em; text-align: center; box-sizing: border-box; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar { width: 12px; height: 12px; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track { background-color: transparent; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb { background-color: transparent; border-radius: 8px; border: 3px solid transparent; background-clip: padding-box; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb { background-color: rgba(255, 255, 255, 0.8); } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { scrollbar-width: thin; scrollbar-gutter: stable both-edges; scrollbar-color: transparent transparent; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within { scrollbar-color: rgba(255, 255, 255, 0.8) transparent; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { will-change: transform; } @media (hover: none) { .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { scrollbar-color: rgba(255, 255, 255, 0.8) transparent; } } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { background: linear-gradient(0deg, rgba(0, 0, 0, 0.4) 0%, transparent 100%); } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption img { display: inline; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption a { color: inherit; } .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img { box-sizing: border-box; } .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded > div, .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded > a, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border > div, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border > a { flex: 1 1 auto; } .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption { flex: initial; background: none; color: inherit; margin: 0; padding: 10px 10px 9px; position: relative; text-shadow: none; } .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded::before, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border::before { content: none; } .wp-block-gallery.has-nested-images figcaption { flex-grow: 1; flex-basis: 100%; text-align: center; } .wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image) { margin-top: 0; margin-bottom: auto; } .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) { align-self: inherit; } .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) > div:not(.components-drop-zone), .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) > a { display: flex; } .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a, .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img { width: 100%; flex: 1 0 0%; height: 100%; -o-object-fit: cover; object-fit: cover; } .wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image) { width: 100%; } @media (min-width: 600px) { .wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image) { width: calc(33.3333333333% - var(--wp--style--unstable-gallery-gap, 16px) * 0.6666666667); } .wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image) { width: calc(25% - var(--wp--style--unstable-gallery-gap, 16px) * 0.75); } .wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image) { width: calc(20% - var(--wp--style--unstable-gallery-gap, 16px) * 0.8); } .wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image) { width: calc(16.6666666667% - var(--wp--style--unstable-gallery-gap, 16px) * 0.8333333333); } .wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image) { width: calc(14.2857142857% - var(--wp--style--unstable-gallery-gap, 16px) * 0.8571428571); } .wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image) { width: calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px) * 0.875); } .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image) { width: calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px) * 0.6666666667); } .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2), .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2) ~ figure.wp-block-image:not(#individual-image) { width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px) * 0.5); } .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(1) { width: 100%; } } .wp-block-gallery.has-nested-images.alignleft, .wp-block-gallery.has-nested-images.alignright { max-width: 420px; width: 100%; } .wp-block-gallery.has-nested-images.aligncenter { justify-content: center; } gallery/theme-rtl.min.css 0000775 00000000205 00000000000 0011343 0 ustar 00 .blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:hsla(0,0%,100%,.65)} gallery/editor-rtl.min.css 0000775 00000003736 00000000000 0011543 0 ustar 00 :root :where(figure.wp-block-gallery){display:block}:root :where(figure.wp-block-gallery)>.blocks-gallery-caption{flex:0 0 100%}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .components-placeholder__label{display:none}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .block-editor-media-placeholder__button{margin-bottom:0}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder{margin:0}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder .components-placeholder__label{display:flex}:root :where(figure.wp-block-gallery) .block-editor-media-placeholder figcaption{z-index:2}:root :where(figure.wp-block-gallery) .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.gallery-settings-buttons .components-button:first-child{margin-left:8px}.blocks-gallery-item figure:not(.is-selected):focus,.blocks-gallery-item img:focus{outline:none}.blocks-gallery-item figure.is-selected:before{bottom:0;box-shadow:0 0 0 1px #fff inset,0 0 0 3px var(--wp-admin-theme-color) inset;content:"";left:0;outline:2px solid transparent;pointer-events:none;position:absolute;right:0;top:0;z-index:1}.blocks-gallery-item figure.is-transient img{opacity:.3}.blocks-gallery-item .block-editor-media-placeholder{height:100%;margin:0}.blocks-gallery-item .block-editor-media-placeholder .components-placeholder__label{display:flex}.wp-block-gallery ul.blocks-gallery-grid{margin:0;padding:0}@media (min-width:600px){.wp-block-update-gallery-modal{max-width:480px}}.wp-block-update-gallery-modal-buttons{display:flex;gap:12px;justify-content:flex-end}.wp-block-gallery__source-settings{display:flex;flex-direction:column;gap:8px;grid-column:1/-1}.wp-block-gallery__source-settings .wp-block-gallery__source-description{color:#757575;font-size:12px;margin:0}.wp-block-gallery__source-settings .components-button{justify-content:center;width:100%}.wp-block-gallery__source-notice{grid-column:1/-1;margin:0} gallery/style.min.css 0000775 00000037630 00000000000 0010616 0 ustar 00 .blocks-gallery-grid:not(.has-nested-images),.wp-block-gallery:not(.has-nested-images){display:flex;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item{display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0 1em 1em 0;position:relative;width:calc(50% - 1em)}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n){margin-right:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure{align-items:flex-end;display:flex;height:100%;justify-content:flex-start;margin:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img{display:block;height:auto;max-width:100%;width:auto}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:.8em;margin:0;max-height:100%;overflow:auto;padding:3em .77em .7em;position:absolute;text-align:center;width:100%;z-index:2}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img{display:inline}.blocks-gallery-grid:not(.has-nested-images) figcaption,.wp-block-gallery:not(.has-nested-images) figcaption{flex-grow:1}.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img{flex:1;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item{margin-right:0;width:100%}@media (min-width:600px){.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item{margin-right:1em;width:calc(33.33333% - .66667em)}.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item{margin-right:1em;width:calc(25% - .75em)}.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item{margin-right:1em;width:calc(20% - .8em)}.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item{margin-right:1em;width:calc(16.66667% - .83333em)}.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item{margin-right:1em;width:calc(14.28571% - .85714em)}.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item{margin-right:1em;width:calc(12.5% - .875em)}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n){margin-right:0}}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child{margin-right:0}.blocks-gallery-grid:not(.has-nested-images).alignleft,.blocks-gallery-grid:not(.has-nested-images).alignright,.wp-block-gallery:not(.has-nested-images).alignleft,.wp-block-gallery:not(.has-nested-images).alignright{max-width:420px;width:100%}.blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure{justify-content:center}.wp-block-gallery:not(.is-cropped) .blocks-gallery-item{align-self:flex-start}figure.wp-block-gallery.has-nested-images{align-items:normal}.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image){margin:0;width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)/2)}.wp-block-gallery.has-nested-images figure.wp-block-image{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;position:relative}.wp-block-gallery.has-nested-images figure.wp-block-image>a,.wp-block-gallery.has-nested-images figure.wp-block-image>div{flex-direction:column;flex-grow:1;margin:0}.wp-block-gallery.has-nested-images figure.wp-block-image img{display:block;height:auto;max-width:100%!important;width:auto}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption):before{bottom:0;left:0;max-height:100%;position:absolute;right:0}.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption):before{backdrop-filter:blur(3px);content:"";height:100%;-webkit-mask-image:linear-gradient(0deg,#000 20%,transparent);mask-image:linear-gradient(0deg,#000 20%,transparent);max-height:3em;pointer-events:none}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{box-sizing:border-box;color:#fff;font-size:13px;margin:0;overflow:auto;padding:1em;text-align:center;text-shadow:0 0 1.5px #000}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar{height:12px;width:12px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track{background-color:transparent}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,.8)}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover{scrollbar-color:hsla(0,0%,100%,.8) transparent}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{will-change:transform}@media (hover:none){.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{scrollbar-color:hsla(0,0%,100%,.8) transparent}}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{background:linear-gradient(0deg,rgba(0,0,0,.4),transparent)}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{display:inline}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption a{color:inherit}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>a,.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>div,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>a,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>div{flex:1 1 auto}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption{background:none;color:inherit;flex:initial;margin:0;padding:10px 10px 9px;position:relative;text-shadow:none}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border:before,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded:before{content:none}.wp-block-gallery.has-nested-images figcaption{flex-basis:100%;flex-grow:1;text-align:center}.wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image){margin-bottom:auto;margin-top:0}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image){align-self:inherit}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>div:not(.components-drop-zone){display:flex}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img{flex:1 0 0%;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image){width:100%}@media (min-width:600px){.wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image){width:calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image){width:calc(25% - var(--wp--style--unstable-gallery-gap, 16px)*.75)}.wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image){width:calc(20% - var(--wp--style--unstable-gallery-gap, 16px)*.8)}.wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image){width:calc(16.66667% - var(--wp--style--unstable-gallery-gap, 16px)*.83333)}.wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image){width:calc(14.28571% - var(--wp--style--unstable-gallery-gap, 16px)*.85714)}.wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image){width:calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px)*.875)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image){width:calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2),.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2)~figure.wp-block-image:not(#individual-image){width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)*.5)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:last-child{width:100%}}.wp-block-gallery.has-nested-images.alignleft,.wp-block-gallery.has-nested-images.alignright{max-width:420px;width:100%}.wp-block-gallery.has-nested-images.aligncenter{justify-content:center} gallery/theme-rtl.css 0000775 00000004070 00000000000 0010565 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .blocks-gallery-caption { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .blocks-gallery-caption { color: rgba(255, 255, 255, 0.65); } gallery/block.json 0000775 00000006727 00000000000 0010152 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/gallery", "title": "Gallery", "category": "media", "usesContext": [ "galleryId", "postId", "postType" ], "allowedBlocks": [ "core/image" ], "description": "Display multiple images in a rich gallery.", "keywords": [ "images", "photos" ], "textdomain": "default", "attributes": { "images": { "type": "array", "default": [], "source": "query", "selector": ".blocks-gallery-item", "query": { "url": { "type": "string", "source": "attribute", "selector": "img", "attribute": "src" }, "fullUrl": { "type": "string", "source": "attribute", "selector": "img", "attribute": "data-full-url" }, "link": { "type": "string", "source": "attribute", "selector": "img", "attribute": "data-link" }, "alt": { "type": "string", "source": "attribute", "selector": "img", "attribute": "alt", "default": "" }, "id": { "type": "string", "source": "attribute", "selector": "img", "attribute": "data-id" }, "caption": { "type": "rich-text", "source": "rich-text", "selector": ".blocks-gallery-item__caption" } } }, "ids": { "type": "array", "items": { "type": "number" }, "default": [] }, "dynamicContent": { "type": "object" }, "navigationButtonType": { "type": "string", "default": "icon", "enum": [ "icon", "text", "both" ] }, "shortCodeTransforms": { "type": "array", "items": { "type": "object" }, "default": [] }, "columns": { "type": "number", "minimum": 1, "maximum": 8 }, "caption": { "type": "rich-text", "source": "rich-text", "selector": ".blocks-gallery-caption", "role": "content" }, "imageCrop": { "type": "boolean", "default": true }, "randomOrder": { "type": "boolean", "default": false }, "fixedHeight": { "type": "boolean", "default": true }, "linkTarget": { "type": "string" }, "linkTo": { "type": "string" }, "sizeSlug": { "type": "string", "default": "large" }, "allowResize": { "type": "boolean", "default": false }, "aspectRatio": { "type": "string", "default": "auto" } }, "providesContext": { "allowResize": "allowResize", "imageCrop": "imageCrop", "fixedHeight": "fixedHeight", "navigationButtonType": "navigationButtonType" }, "supports": { "anchor": true, "align": true, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "color": true, "radius": true } }, "html": false, "units": [ "px", "em", "rem", "vh", "vw" ], "spacing": { "margin": true, "padding": true, "blockGap": { "sides": [ "horizontal", "vertical" ], "__experimentalDefault": "var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )" }, "__experimentalDefaultControls": { "blockGap": true, "margin": false, "padding": false } }, "color": { "text": false, "background": true, "gradients": true }, "layout": { "allowSwitching": false, "allowInheriting": false, "allowEditing": false, "default": { "type": "flex" } }, "interactivity": { "clientNavigation": true }, "listView": true }, "editorStyle": "wp-block-gallery-editor", "style": "wp-block-gallery" } gallery/style-rtl.min.css 0000775 00000037616 00000000000 0011421 0 ustar 00 .blocks-gallery-grid:not(.has-nested-images),.wp-block-gallery:not(.has-nested-images){display:flex;flex-wrap:wrap;list-style-type:none;margin:0;padding:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item{display:flex;flex-direction:column;flex-grow:1;justify-content:center;margin:0 0 1em 1em;position:relative;width:calc(50% - 1em)}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(2n){margin-left:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure{align-items:flex-end;display:flex;height:100%;justify-content:flex-start;margin:0}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img{display:block;height:auto;max-width:100%;width:auto}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption{background:linear-gradient(0deg,rgba(0,0,0,.7),rgba(0,0,0,.3) 70%,transparent);bottom:0;box-sizing:border-box;color:#fff;font-size:.8em;margin:0;max-height:100%;overflow:auto;padding:3em .77em .7em;position:absolute;text-align:center;width:100%;z-index:2}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img{display:inline}.blocks-gallery-grid:not(.has-nested-images) figcaption,.wp-block-gallery:not(.has-nested-images) figcaption{flex-grow:1}.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a,.blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a,.wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img{flex:1;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item{margin-left:0;width:100%}@media (min-width:600px){.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item{margin-left:1em;width:calc(33.33333% - .66667em)}.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item{margin-left:1em;width:calc(25% - .75em)}.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item{margin-left:1em;width:calc(20% - .8em)}.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item{margin-left:1em;width:calc(16.66667% - .83333em)}.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item{margin-left:1em;width:calc(14.28571% - .85714em)}.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image,.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image,.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item{margin-left:1em;width:calc(12.5% - .875em)}.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n),.wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n){margin-left:0}}.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child,.blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child,.wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child{margin-left:0}.blocks-gallery-grid:not(.has-nested-images).alignleft,.blocks-gallery-grid:not(.has-nested-images).alignright,.wp-block-gallery:not(.has-nested-images).alignleft,.wp-block-gallery:not(.has-nested-images).alignright{max-width:420px;width:100%}.blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure,.wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure{justify-content:center}.wp-block-gallery:not(.is-cropped) .blocks-gallery-item{align-self:flex-start}figure.wp-block-gallery.has-nested-images{align-items:normal}.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image){margin:0;width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)/2)}.wp-block-gallery.has-nested-images figure.wp-block-image{box-sizing:border-box;display:flex;flex-direction:column;flex-grow:1;justify-content:center;max-width:100%;position:relative}.wp-block-gallery.has-nested-images figure.wp-block-image>a,.wp-block-gallery.has-nested-images figure.wp-block-image>div{flex-direction:column;flex-grow:1;margin:0}.wp-block-gallery.has-nested-images figure.wp-block-image img{display:block;height:auto;max-width:100%!important;width:auto}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption):before{bottom:0;left:0;max-height:100%;position:absolute;right:0}.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption):before{backdrop-filter:blur(3px);content:"";height:100%;-webkit-mask-image:linear-gradient(0deg,#000 20%,transparent);mask-image:linear-gradient(0deg,#000 20%,transparent);max-height:3em;pointer-events:none}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{box-sizing:border-box;color:#fff;font-size:13px;margin:0;overflow:auto;padding:1em;text-align:center;text-shadow:0 0 1.5px #000}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar{height:12px;width:12px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track{background-color:transparent}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:transparent;border:3px solid transparent;border-radius:8px}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb{background-color:hsla(0,0%,100%,.8)}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{scrollbar-color:transparent transparent;scrollbar-gutter:stable both-edges;scrollbar-width:thin}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within,.wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover{scrollbar-color:hsla(0,0%,100%,.8) transparent}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{will-change:transform}@media (hover:none){.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{scrollbar-color:hsla(0,0%,100%,.8) transparent}}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{background:linear-gradient(0deg,rgba(0,0,0,.4),transparent)}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption img{display:inline}.wp-block-gallery.has-nested-images figure.wp-block-image figcaption a{color:inherit}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img{box-sizing:border-box}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>a,.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border>div,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>a,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded>div{flex:1 1 auto}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption{background:none;color:inherit;flex:initial;margin:0;padding:10px 10px 9px;position:relative;text-shadow:none}.wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border:before,.wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded:before{content:none}.wp-block-gallery.has-nested-images figcaption{flex-basis:100%;flex-grow:1;text-align:center}.wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image){margin-bottom:auto;margin-top:0}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image){align-self:inherit}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image)>div:not(.components-drop-zone){display:flex}.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a,.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img{flex:1 0 0%;height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image){width:100%}@media (min-width:600px){.wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image){width:calc(33.33333% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image){width:calc(25% - var(--wp--style--unstable-gallery-gap, 16px)*.75)}.wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image){width:calc(20% - var(--wp--style--unstable-gallery-gap, 16px)*.8)}.wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image){width:calc(16.66667% - var(--wp--style--unstable-gallery-gap, 16px)*.83333)}.wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image){width:calc(14.28571% - var(--wp--style--unstable-gallery-gap, 16px)*.85714)}.wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image){width:calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px)*.875)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image){width:calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px)*.66667)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2),.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2)~figure.wp-block-image:not(#individual-image){width:calc(50% - var(--wp--style--unstable-gallery-gap, 16px)*.5)}.wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:last-child{width:100%}}.wp-block-gallery.has-nested-images.alignleft,.wp-block-gallery.has-nested-images.alignright{max-width:420px;width:100%}.wp-block-gallery.has-nested-images.aligncenter{justify-content:center} gallery/style.css 0000775 00000046464 00000000000 0010041 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-gallery:not(.has-nested-images), .blocks-gallery-grid:not(.has-nested-images) { display: flex; flex-wrap: wrap; list-style-type: none; padding: 0; margin: 0; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item { margin: 0 1em 1em 0; display: flex; flex-grow: 1; flex-direction: column; justify-content: center; position: relative; width: calc(50% - 1em); } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:nth-of-type(even), .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:nth-of-type(even), .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:nth-of-type(even), .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:nth-of-type(even) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figure, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figure, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figure, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figure { margin: 0; height: 100%; display: flex; align-items: flex-end; justify-content: flex-start; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image img, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item img { display: block; max-width: 100%; height: auto; width: auto; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption { position: absolute; bottom: 0; width: 100%; max-height: 100%; overflow: auto; padding: 3em 0.77em 0.7em; color: #fff; text-align: center; font-size: 0.8em; background: linear-gradient(0deg, rgba(0, 0, 0, 0.7) 0, rgba(0, 0, 0, 0.3) 70%, transparent); box-sizing: border-box; margin: 0; z-index: 2; } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image figcaption img, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item figcaption img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image figcaption img, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item figcaption img { display: inline; } .wp-block-gallery:not(.has-nested-images) figcaption, .blocks-gallery-grid:not(.has-nested-images) figcaption { flex-grow: 1; } .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image a, .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-image img, .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item a, .wp-block-gallery:not(.has-nested-images).is-cropped .blocks-gallery-item img, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image a, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-image img, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item a, .blocks-gallery-grid:not(.has-nested-images).is-cropped .blocks-gallery-item img { width: 100%; height: 100%; flex: 1; -o-object-fit: cover; object-fit: cover; } .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item { width: 100%; margin-right: 0; } @media (min-width: 600px) { .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item { width: calc(33.3333333333% - 0.6666666667em); margin-right: 1em; } .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item { width: calc(25% - 0.75em); margin-right: 1em; } .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item { width: calc(20% - 0.8em); margin-right: 1em; } .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item { width: calc(16.6666666667% - 0.8333333333em); margin-right: 1em; } .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item { width: calc(14.2857142857% - 0.8571428571em); margin-right: 1em; } .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image, .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item, .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image, .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item { width: calc(12.5% - 0.875em); margin-right: 1em; } .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n), .wp-block-gallery:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n), .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-image:nth-of-type(1n), .blocks-gallery-grid:not(.has-nested-images).columns-1 .blocks-gallery-item:nth-of-type(1n) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n), .wp-block-gallery:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n), .blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-image:nth-of-type(2n), .blocks-gallery-grid:not(.has-nested-images).columns-2 .blocks-gallery-item:nth-of-type(2n) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n), .wp-block-gallery:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n), .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-image:nth-of-type(3n), .blocks-gallery-grid:not(.has-nested-images).columns-3 .blocks-gallery-item:nth-of-type(3n) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n), .wp-block-gallery:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n), .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-image:nth-of-type(4n), .blocks-gallery-grid:not(.has-nested-images).columns-4 .blocks-gallery-item:nth-of-type(4n) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n), .wp-block-gallery:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n), .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-image:nth-of-type(5n), .blocks-gallery-grid:not(.has-nested-images).columns-5 .blocks-gallery-item:nth-of-type(5n) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n), .wp-block-gallery:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n), .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-image:nth-of-type(6n), .blocks-gallery-grid:not(.has-nested-images).columns-6 .blocks-gallery-item:nth-of-type(6n) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n), .wp-block-gallery:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n), .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-image:nth-of-type(7n), .blocks-gallery-grid:not(.has-nested-images).columns-7 .blocks-gallery-item:nth-of-type(7n) { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n), .wp-block-gallery:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n), .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-image:nth-of-type(8n), .blocks-gallery-grid:not(.has-nested-images).columns-8 .blocks-gallery-item:nth-of-type(8n) { margin-right: 0; } } .wp-block-gallery:not(.has-nested-images) .blocks-gallery-image:last-child, .wp-block-gallery:not(.has-nested-images) .blocks-gallery-item:last-child, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-image:last-child, .blocks-gallery-grid:not(.has-nested-images) .blocks-gallery-item:last-child { margin-right: 0; } .wp-block-gallery:not(.has-nested-images).alignleft, .wp-block-gallery:not(.has-nested-images).alignright, .blocks-gallery-grid:not(.has-nested-images).alignleft, .blocks-gallery-grid:not(.has-nested-images).alignright { max-width: 420px; width: 100%; } .wp-block-gallery:not(.has-nested-images).aligncenter .blocks-gallery-item figure, .blocks-gallery-grid:not(.has-nested-images).aligncenter .blocks-gallery-item figure { justify-content: center; } .wp-block-gallery:not(.is-cropped) .blocks-gallery-item { align-self: flex-start; } figure.wp-block-gallery.has-nested-images { align-items: normal; } .wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px) / 2); margin: 0; } .wp-block-gallery.has-nested-images figure.wp-block-image { display: flex; flex-grow: 1; justify-content: center; position: relative; flex-direction: column; max-width: 100%; box-sizing: border-box; } .wp-block-gallery.has-nested-images figure.wp-block-image > div, .wp-block-gallery.has-nested-images figure.wp-block-image > a { margin: 0; flex-direction: column; flex-grow: 1; } .wp-block-gallery.has-nested-images figure.wp-block-image img { display: block; height: auto; max-width: 100% !important; width: auto; } .wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { position: absolute; bottom: 0; right: 0; left: 0; max-height: 100%; } .wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before { content: ""; height: 100%; max-height: 3em; pointer-events: none; backdrop-filter: blur(3px); -webkit-mask-image: linear-gradient(0deg, #000 20%, transparent 100%); mask-image: linear-gradient(0deg, #000 20%, transparent 100%); } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { color: #fff; text-shadow: 0 0 1.5px #000; font-size: 13px; margin: 0; overflow: auto; padding: 1em; text-align: center; box-sizing: border-box; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar { width: 12px; height: 12px; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-track { background-color: transparent; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption::-webkit-scrollbar-thumb { background-color: transparent; border-radius: 8px; border: 3px solid transparent; background-clip: padding-box; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover::-webkit-scrollbar-thumb, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus::-webkit-scrollbar-thumb, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within::-webkit-scrollbar-thumb { background-color: rgba(255, 255, 255, 0.8); } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { scrollbar-width: thin; scrollbar-gutter: stable both-edges; scrollbar-color: transparent transparent; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:hover, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus, .wp-block-gallery.has-nested-images figure.wp-block-image figcaption:focus-within { scrollbar-color: rgba(255, 255, 255, 0.8) transparent; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { will-change: transform; } @media (hover: none) { .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { scrollbar-color: rgba(255, 255, 255, 0.8) transparent; } } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption { background: linear-gradient(0deg, rgba(0, 0, 0, 0.4) 0%, transparent 100%); } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption img { display: inline; } .wp-block-gallery.has-nested-images figure.wp-block-image figcaption a { color: inherit; } .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border img { box-sizing: border-box; } .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded > div, .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded > a, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border > div, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border > a { flex: 1 1 auto; } .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded figcaption, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border figcaption { flex: initial; background: none; color: inherit; margin: 0; padding: 10px 10px 9px; position: relative; text-shadow: none; } .wp-block-gallery.has-nested-images figure.wp-block-image.is-style-rounded::before, .wp-block-gallery.has-nested-images figure.wp-block-image.has-custom-border::before { content: none; } .wp-block-gallery.has-nested-images figcaption { flex-grow: 1; flex-basis: 100%; text-align: center; } .wp-block-gallery.has-nested-images:not(.is-cropped) figure.wp-block-image:not(#individual-image) { margin-top: 0; margin-bottom: auto; } .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) { align-self: inherit; } .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) > div:not(.components-drop-zone), .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) > a { display: flex; } .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) a, .wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image:not(#individual-image) img { width: 100%; flex: 1 0 0%; height: 100%; -o-object-fit: cover; object-fit: cover; } .wp-block-gallery.has-nested-images.columns-1 figure.wp-block-image:not(#individual-image) { width: 100%; } @media (min-width: 600px) { .wp-block-gallery.has-nested-images.columns-3 figure.wp-block-image:not(#individual-image) { width: calc(33.3333333333% - var(--wp--style--unstable-gallery-gap, 16px) * 0.6666666667); } .wp-block-gallery.has-nested-images.columns-4 figure.wp-block-image:not(#individual-image) { width: calc(25% - var(--wp--style--unstable-gallery-gap, 16px) * 0.75); } .wp-block-gallery.has-nested-images.columns-5 figure.wp-block-image:not(#individual-image) { width: calc(20% - var(--wp--style--unstable-gallery-gap, 16px) * 0.8); } .wp-block-gallery.has-nested-images.columns-6 figure.wp-block-image:not(#individual-image) { width: calc(16.6666666667% - var(--wp--style--unstable-gallery-gap, 16px) * 0.8333333333); } .wp-block-gallery.has-nested-images.columns-7 figure.wp-block-image:not(#individual-image) { width: calc(14.2857142857% - var(--wp--style--unstable-gallery-gap, 16px) * 0.8571428571); } .wp-block-gallery.has-nested-images.columns-8 figure.wp-block-image:not(#individual-image) { width: calc(12.5% - var(--wp--style--unstable-gallery-gap, 16px) * 0.875); } .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image) { width: calc(33.33% - var(--wp--style--unstable-gallery-gap, 16px) * 0.6666666667); } .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2), .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(2) ~ figure.wp-block-image:not(#individual-image) { width: calc(50% - var(--wp--style--unstable-gallery-gap, 16px) * 0.5); } .wp-block-gallery.has-nested-images.columns-default figure.wp-block-image:not(#individual-image):first-child:nth-last-child(1) { width: 100%; } } .wp-block-gallery.has-nested-images.alignleft, .wp-block-gallery.has-nested-images.alignright { max-width: 420px; width: 100%; } .wp-block-gallery.has-nested-images.aligncenter { justify-content: center; } gallery/editor-rtl.css 0000775 00000010453 00000000000 0010753 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ :root :where(figure.wp-block-gallery) { display: block; } :root :where(figure.wp-block-gallery) > .blocks-gallery-caption { flex: 0 0 100%; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .components-placeholder__label { display: none; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder.is-appender .block-editor-media-placeholder__button { margin-bottom: 0; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder { margin: 0; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder .components-placeholder__label { display: flex; } :root :where(figure.wp-block-gallery) .block-editor-media-placeholder figcaption { z-index: 2; } :root :where(figure.wp-block-gallery) .components-spinner { position: absolute; top: 50%; right: 50%; margin-top: -9px; margin-right: -9px; } /** * Gallery inspector controls settings. */ .gallery-settings-buttons .components-button:first-child { margin-left: 8px; } /** * Deprecated css past this point. This can be removed once all galleries are migrated * to V2. */ .blocks-gallery-item figure:not(.is-selected):focus, .blocks-gallery-item img:focus { outline: none; } .blocks-gallery-item figure.is-selected::before { box-shadow: 0 0 0 1px #fff inset, 0 0 0 3px var(--wp-admin-theme-color) inset; content: ""; outline: 2px solid transparent; position: absolute; top: 0; left: 0; bottom: 0; right: 0; z-index: 1; pointer-events: none; } .blocks-gallery-item figure.is-transient img { opacity: 0.3; } .blocks-gallery-item .block-editor-media-placeholder { margin: 0; height: 100%; } .blocks-gallery-item .block-editor-media-placeholder .components-placeholder__label { display: flex; } .wp-block-gallery ul.blocks-gallery-grid { padding: 0; margin: 0; } @media (min-width: 600px) { .wp-block-update-gallery-modal { max-width: 480px; } } .wp-block-update-gallery-modal-buttons { display: flex; justify-content: flex-end; gap: 12px; } .wp-block-gallery__source-settings { grid-column: 1/-1; display: flex; flex-direction: column; gap: 8px; } .wp-block-gallery__source-settings .wp-block-gallery__source-description { margin: 0; color: #757575; font-size: 12px; } .wp-block-gallery__source-settings .components-button { justify-content: center; width: 100%; } .wp-block-gallery__source-notice { grid-column: 1/-1; margin: 0; } gallery/theme.css 0000775 00000004070 00000000000 0007766 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .blocks-gallery-caption { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .blocks-gallery-caption { color: rgba(255, 255, 255, 0.65); } gallery/theme.min.css 0000775 00000000205 00000000000 0010544 0 ustar 00 .blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:hsla(0,0%,100%,.65)} post-comments-form/editor.css 0000775 00000000214 00000000000 0012260 0 ustar 00 .wp-block-post-comments-form * { pointer-events: none; } .wp-block-post-comments-form *.block-editor-warning * { pointer-events: auto; } post-comments-form/editor.min.css 0000775 00000000174 00000000000 0013047 0 ustar 00 .wp-block-post-comments-form *{pointer-events:none}.wp-block-post-comments-form .block-editor-warning *{pointer-events:auto} post-comments-form/style-rtl.css 0000775 00000004273 00000000000 0012742 0 ustar 00 /** * Colors */ :where(.wp-block-post-comments-form textarea), :where(.wp-block-post-comments-form input:not([type=submit])) { border-width: 1px; border-style: solid; border-color: #949494; font-size: 1em; font-family: inherit; } :where(.wp-block-post-comments-form textarea), :where(.wp-block-post-comments-form input:where(:not([type=submit]):not([type=checkbox]))) { padding: calc(0.667em + 2px); } .wp-block-post-comments-form { box-sizing: border-box; } .wp-block-post-comments-form[style*=font-weight] :where(.comment-reply-title) { font-weight: inherit; } .wp-block-post-comments-form[style*=font-family] :where(.comment-reply-title) { font-family: inherit; } .wp-block-post-comments-form[class*=-font-size] :where(.comment-reply-title), .wp-block-post-comments-form[style*=font-size] :where(.comment-reply-title) { font-size: inherit; } .wp-block-post-comments-form[style*=line-height] :where(.comment-reply-title) { line-height: inherit; } .wp-block-post-comments-form[style*=font-style] :where(.comment-reply-title) { font-style: inherit; } .wp-block-post-comments-form[style*=letter-spacing] :where(.comment-reply-title) { letter-spacing: inherit; } .wp-block-post-comments-form :where(input[type=submit]) { box-shadow: none; cursor: pointer; display: inline-block; text-align: center; overflow-wrap: break-word; } .wp-block-post-comments-form .comment-form textarea, .wp-block-post-comments-form .comment-form input:not([type=submit]):not([type=checkbox]):not([type=hidden]) { display: block; box-sizing: border-box; width: 100%; } .wp-block-post-comments-form .comment-form-author label, .wp-block-post-comments-form .comment-form-email label, .wp-block-post-comments-form .comment-form-url label { display: block; margin-bottom: 0.25em; } .wp-block-post-comments-form .comment-form-cookies-consent { display: flex; gap: 0.25em; } .wp-block-post-comments-form .comment-form-cookies-consent #wp-comment-cookies-consent { margin-top: 0.35em; } .wp-block-post-comments-form .comment-reply-title { margin-bottom: 0; } .wp-block-post-comments-form .comment-reply-title :where(small) { font-size: var(--wp--preset--font-size--medium, smaller); margin-right: 0.5em; } post-comments-form/editor-rtl.min.css 0000775 00000000174 00000000000 0013646 0 ustar 00 .wp-block-post-comments-form *{pointer-events:none}.wp-block-post-comments-form .block-editor-warning *{pointer-events:auto} post-comments-form/style.min.css 0000775 00000003707 00000000000 0012726 0 ustar 00 :where(.wp-block-post-comments-form input:not([type=submit])),:where(.wp-block-post-comments-form textarea){border:1px solid #949494;font-family:inherit;font-size:1em}:where(.wp-block-post-comments-form input:where(:not([type=submit]):not([type=checkbox]))),:where(.wp-block-post-comments-form textarea){padding:calc(.667em + 2px)}.wp-block-post-comments-form{box-sizing:border-box}.wp-block-post-comments-form[style*=font-weight] :where(.comment-reply-title){font-weight:inherit}.wp-block-post-comments-form[style*=font-family] :where(.comment-reply-title){font-family:inherit}.wp-block-post-comments-form[class*=-font-size] :where(.comment-reply-title),.wp-block-post-comments-form[style*=font-size] :where(.comment-reply-title){font-size:inherit}.wp-block-post-comments-form[style*=line-height] :where(.comment-reply-title){line-height:inherit}.wp-block-post-comments-form[style*=font-style] :where(.comment-reply-title){font-style:inherit}.wp-block-post-comments-form[style*=letter-spacing] :where(.comment-reply-title){letter-spacing:inherit}.wp-block-post-comments-form :where(input[type=submit]){box-shadow:none;cursor:pointer;display:inline-block;overflow-wrap:break-word;text-align:center}.wp-block-post-comments-form .comment-form input:not([type=submit]):not([type=checkbox]):not([type=hidden]),.wp-block-post-comments-form .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments-form .comment-form-author label,.wp-block-post-comments-form .comment-form-email label,.wp-block-post-comments-form .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments-form .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments-form .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments-form .comment-reply-title{margin-bottom:0}.wp-block-post-comments-form .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-left:.5em} post-comments-form/block.json 0000775 00000002474 00000000000 0012257 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-comments-form", "title": "Comments Form", "category": "theme", "description": "Display a post's comments form.", "textdomain": "default", "usesContext": [ "postId", "postType" ], "supports": { "anchor": true, "html": false, "color": { "gradients": true, "heading": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalTextTransform": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "editorStyle": "wp-block-post-comments-form-editor", "style": [ "wp-block-post-comments-form", "wp-block-buttons", "wp-block-button" ], "example": { "attributes": { "style": { "typography": { "textAlign": "center" } } } } } post-comments-form/style-rtl.min.css 0000775 00000003710 00000000000 0013517 0 ustar 00 :where(.wp-block-post-comments-form input:not([type=submit])),:where(.wp-block-post-comments-form textarea){border:1px solid #949494;font-family:inherit;font-size:1em}:where(.wp-block-post-comments-form input:where(:not([type=submit]):not([type=checkbox]))),:where(.wp-block-post-comments-form textarea){padding:calc(.667em + 2px)}.wp-block-post-comments-form{box-sizing:border-box}.wp-block-post-comments-form[style*=font-weight] :where(.comment-reply-title){font-weight:inherit}.wp-block-post-comments-form[style*=font-family] :where(.comment-reply-title){font-family:inherit}.wp-block-post-comments-form[class*=-font-size] :where(.comment-reply-title),.wp-block-post-comments-form[style*=font-size] :where(.comment-reply-title){font-size:inherit}.wp-block-post-comments-form[style*=line-height] :where(.comment-reply-title){line-height:inherit}.wp-block-post-comments-form[style*=font-style] :where(.comment-reply-title){font-style:inherit}.wp-block-post-comments-form[style*=letter-spacing] :where(.comment-reply-title){letter-spacing:inherit}.wp-block-post-comments-form :where(input[type=submit]){box-shadow:none;cursor:pointer;display:inline-block;overflow-wrap:break-word;text-align:center}.wp-block-post-comments-form .comment-form input:not([type=submit]):not([type=checkbox]):not([type=hidden]),.wp-block-post-comments-form .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments-form .comment-form-author label,.wp-block-post-comments-form .comment-form-email label,.wp-block-post-comments-form .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments-form .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments-form .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments-form .comment-reply-title{margin-bottom:0}.wp-block-post-comments-form .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-right:.5em} post-comments-form/style.css 0000775 00000004272 00000000000 0012142 0 ustar 00 /** * Colors */ :where(.wp-block-post-comments-form textarea), :where(.wp-block-post-comments-form input:not([type=submit])) { border-width: 1px; border-style: solid; border-color: #949494; font-size: 1em; font-family: inherit; } :where(.wp-block-post-comments-form textarea), :where(.wp-block-post-comments-form input:where(:not([type=submit]):not([type=checkbox]))) { padding: calc(0.667em + 2px); } .wp-block-post-comments-form { box-sizing: border-box; } .wp-block-post-comments-form[style*=font-weight] :where(.comment-reply-title) { font-weight: inherit; } .wp-block-post-comments-form[style*=font-family] :where(.comment-reply-title) { font-family: inherit; } .wp-block-post-comments-form[class*=-font-size] :where(.comment-reply-title), .wp-block-post-comments-form[style*=font-size] :where(.comment-reply-title) { font-size: inherit; } .wp-block-post-comments-form[style*=line-height] :where(.comment-reply-title) { line-height: inherit; } .wp-block-post-comments-form[style*=font-style] :where(.comment-reply-title) { font-style: inherit; } .wp-block-post-comments-form[style*=letter-spacing] :where(.comment-reply-title) { letter-spacing: inherit; } .wp-block-post-comments-form :where(input[type=submit]) { box-shadow: none; cursor: pointer; display: inline-block; text-align: center; overflow-wrap: break-word; } .wp-block-post-comments-form .comment-form textarea, .wp-block-post-comments-form .comment-form input:not([type=submit]):not([type=checkbox]):not([type=hidden]) { display: block; box-sizing: border-box; width: 100%; } .wp-block-post-comments-form .comment-form-author label, .wp-block-post-comments-form .comment-form-email label, .wp-block-post-comments-form .comment-form-url label { display: block; margin-bottom: 0.25em; } .wp-block-post-comments-form .comment-form-cookies-consent { display: flex; gap: 0.25em; } .wp-block-post-comments-form .comment-form-cookies-consent #wp-comment-cookies-consent { margin-top: 0.35em; } .wp-block-post-comments-form .comment-reply-title { margin-bottom: 0; } .wp-block-post-comments-form .comment-reply-title :where(small) { font-size: var(--wp--preset--font-size--medium, smaller); margin-left: 0.5em; } post-comments-form/editor-rtl.css 0000775 00000000214 00000000000 0013057 0 ustar 00 .wp-block-post-comments-form * { pointer-events: none; } .wp-block-post-comments-form *.block-editor-warning * { pointer-events: auto; } navigation/editor.css 0000775 00000036265 00000000000 0010665 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ /** * Editor only CSS. */ .editor-styles-wrapper .wp-block-navigation ul { margin-top: 0; margin-bottom: 0; margin-left: 0; padding-left: 0; } .editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block { margin: revert; } .wp-block-navigation-item__label { display: inline; } /** * Submenus. */ .wp-block-navigation__container, .wp-block-navigation-item { background-color: inherit; } .wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover > .wp-block-navigation__submenu-container { opacity: 0; visibility: hidden; } .has-child.is-selected > .wp-block-navigation__submenu-container, .has-child.has-child-selected > .wp-block-navigation__submenu-container { display: flex; opacity: 1; visibility: visible; } .is-dragging-components-draggable .has-child.is-dragging-within > .wp-block-navigation__submenu-container { opacity: 1; visibility: visible; } .is-editing > .wp-block-navigation__container { visibility: visible; opacity: 1; display: flex; flex-direction: column; } .is-dragging-components-draggable .wp-block-navigation-link > .wp-block-navigation__container { opacity: 1; visibility: hidden; } .is-dragging-components-draggable .wp-block-navigation-link > .wp-block-navigation__container .block-editor-block-draggable-chip-wrapper { visibility: visible; } .is-editing > .wp-block-navigation__submenu-container > .block-list-appender { display: block; position: static; width: 100%; } .is-editing > .wp-block-navigation__submenu-container > .block-list-appender .block-editor-button-block-appender { color: #fff; background: #1e1e1e; padding: 0; width: 24px; margin-right: 0; margin-left: auto; } .wp-block-navigation__submenu-container .block-list-appender { display: none; } /** * Colors Selector component */ .block-library-colors-selector { width: auto; } .block-library-colors-selector .block-library-colors-selector__toggle { display: block; margin: 0 auto; padding: 3px; width: auto; } .block-library-colors-selector .block-library-colors-selector__icon-container { height: 30px; position: relative; margin: 0 auto; padding: 3px; display: flex; align-items: center; border-radius: 4px; } .block-library-colors-selector .block-library-colors-selector__state-selection { margin-left: auto; margin-right: auto; border-radius: 11px; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2); width: 22px; min-width: 22px; height: 22px; min-height: 22px; line-height: 20px; padding: 2px; } .block-library-colors-selector .block-library-colors-selector__state-selection > svg { min-width: auto !important; } .block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color > svg, .block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color > svg path { color: inherit; } .block-library-colors-selector__popover .color-palette-controller-container { padding: 16px; } .block-library-colors-selector__popover .components-base-control__label { height: 20px; line-height: 20px; } .block-library-colors-selector__popover .component-color-indicator { float: right; margin-top: 2px; } .block-library-colors-selector__popover .components-panel__body-title { display: none; } .wp-block-navigation .wp-block + .block-list-appender .block-editor-button-block-appender { background-color: #1e1e1e; color: #fff; height: 24px; } .wp-block-navigation .wp-block + .block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender { padding: 0; } .wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender { background-color: transparent; color: #1e1e1e; } /** * Setup state */ @keyframes loadingpulse { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } } .components-placeholder.wp-block-navigation-placeholder { outline: none; padding: 0; box-shadow: none; background: none; min-height: 0; } .components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset { font-size: inherit; } .components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button { margin-bottom: 0; } .components-placeholder.wp-block-navigation-placeholder { color: inherit; } .wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder { color: #1e1e1e; } .wp-block-navigation-placeholder__preview { display: flex; align-items: center; min-width: 96px; font-size: 13px; font-family: -apple-system, system-ui, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; } .wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview { display: none; } .wp-block-navigation-placeholder__preview { color: currentColor; background: transparent; } .wp-block-navigation-placeholder__preview::before { content: ""; display: block; position: absolute; top: 0; right: 0; bottom: 0; left: 0; pointer-events: none; border: 1px dashed currentColor; border-radius: inherit; } .wp-block-navigation-placeholder__preview > svg { fill: currentColor; } .wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset, .wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset { min-height: 90px; } .wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset { min-height: 132px; } .wp-block-navigation-placeholder__preview, .wp-block-navigation-placeholder__controls { padding: 6px 8px; flex-direction: row; align-items: flex-start; } .wp-block-navigation-placeholder__controls { border-radius: 2px; background-color: #fff; box-shadow: inset 0 0 0 1px #1e1e1e; display: none; position: relative; z-index: 1; } .wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls { display: flex; } .wp-block-navigation-placeholder__controls { float: left; width: 100%; } .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator, .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator + hr, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator + hr { display: none; } .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions, .wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions { flex-direction: column; align-items: flex-start; } .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr, .wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr { display: none; } .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon { margin-right: 12px; height: 36px; } .wp-block-navigation-placeholder__actions__indicator { display: flex; padding: 0 6px 0 0; align-items: center; justify-content: flex-start; line-height: 0; height: 36px; margin-left: 4px; } .wp-block-navigation-placeholder__actions__indicator svg { margin-right: 4px; fill: currentColor; } .wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset { flex-direction: row !important; } .wp-block-navigation-placeholder__actions { display: flex; font-size: 13px; font-family: -apple-system, system-ui, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; gap: 6px; align-items: center; } .wp-block-navigation-placeholder__actions .components-dropdown, .wp-block-navigation-placeholder__actions > .components-button { margin-right: 0; } .wp-block-navigation-placeholder__actions { height: 100%; } .wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr { border: 0; min-height: 1px; min-width: 1px; background-color: #1e1e1e; margin: auto 0; height: 100%; max-height: 16px; } /** * Mobile menu. */ @media (min-width: 600px) { .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close { display: none; } } .wp-block-navigation__responsive-container.is-menu-open { position: fixed; top: 159px; } @media (min-width: 782px) { .wp-block-navigation__responsive-container.is-menu-open { top: 97px; } } @media (min-width: 782px) { .wp-block-navigation__responsive-container.is-menu-open { left: 36px; } } @media (min-width: 960px) { .wp-block-navigation__responsive-container.is-menu-open { left: 160px; } } .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open, .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open { top: 145px; } .is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open { left: 0; top: 159px; } @media (min-width: 782px) { .is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open { top: 65px; } } .is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open, .is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open { top: 113px; } body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open { top: 0; right: 0; bottom: 0; left: 0; } .components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open, .components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close { padding: 0; height: auto; color: inherit; } .components-heading.wp-block-navigation-off-canvas-editor__title { margin: 0; } .wp-block-navigation-off-canvas-editor__header { margin-bottom: 8px; } .is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender { margin-top: 16px; } @keyframes fadein { 0% { opacity: 0; } 100% { opacity: 1; } } .wp-block-navigation__loading-indicator-container { padding: 8px 12px; } .wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator { margin-top: 0; } @keyframes fadeouthalf { 0% { opacity: 1; } 100% { opacity: 0.5; } } .wp-block-navigation-delete-menu-button { width: 100%; justify-content: center; margin-bottom: 16px; } .components-button.is-link.wp-block-navigation-manage-menus-button { margin-bottom: 16px; } .wp-block-navigation__overlay-menu-preview { display: flex; align-items: center; justify-content: space-between; width: 100%; background-color: #f0f0f0; padding: 0 24px; height: 64px !important; grid-column: span 2; } .wp-block-navigation__overlay-menu-preview.open { border-color: #e0e0e0; background-color: #fff; } .wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty { display: none; } .wp-block-navigation-placeholder__actions hr + hr { display: none; } /** * Navigation selector styles */ .wp-block-navigation__navigation-selector { margin-bottom: 16px; width: 100%; } .wp-block-navigation__navigation-selector-button { border: 1px solid; justify-content: space-between; width: 100%; } .wp-block-navigation__navigation-selector-button__icon { flex: 0 0 auto; } .wp-block-navigation__navigation-selector-button__label { flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .wp-block-navigation__navigation-selector-button--createnew { border: 1px solid; margin-bottom: 16px; width: 100%; } .wp-block-navigation__responsive-container-open.components-button { opacity: 1; } .wp-block-navigation__menu-inspector-controls__empty-message { margin-left: 24px; } .editor-sidebar__panel .wp-block-navigation__submenu-header { margin-top: 0; margin-bottom: 0; } .wp-block-navigation__submenu-accessibility-notice { grid-column: span 2; } .wp-block-navigation__overlay-selector { position: relative; } .wp-block-navigation__overlay-selector-controls { margin-bottom: 8px; } .wp-block-navigation__overlay-create-button { position: absolute; top: -4px; right: 0; z-index: 1; } .wp-block-navigation__overlay-preview { border: 1px solid #ddd; border-radius: 2px; overflow-y: auto; max-height: 200px; background: #fff; } .wp-block-navigation__overlay-preview-loading { display: flex; align-items: center; justify-content: center; min-height: 200px; background: #f0f0f0; } .wp-block-navigation__overlay-preview-empty { display: flex; align-items: center; justify-content: center; min-height: 200px; padding: 16px; text-align: center; color: #757575; background: #f0f0f0; font-style: italic; } .wp-block-navigation__overlay-preview-placeholder { width: 100%; height: 200px; background: #f0f0f0; animation: wp-block-navigation-overlay-preview-pulse 1.5s ease-in-out infinite; } @keyframes wp-block-navigation-overlay-preview-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .wp-block-navigation__deleted-overlay-warning { margin-top: 12px; } .wp-block-navigation__overlay-create-button-prominent { width: 100%; justify-content: center; margin-bottom: 8px; } .wp-block-navigation__overlay-help-text-wrapper { margin-top: 8px; } navigation/editor.min.css 0000775 00000026561 00000000000 0011445 0 ustar 00 .editor-styles-wrapper .wp-block-navigation ul{margin-bottom:0;margin-left:0;margin-top:0;padding-left:0}.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block{margin:revert}.wp-block-navigation-item__label{display:inline}.wp-block-navigation-item,.wp-block-navigation__container{background-color:inherit}.wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover>.wp-block-navigation__submenu-container{opacity:0;visibility:hidden}.has-child.has-child-selected>.wp-block-navigation__submenu-container,.has-child.is-selected>.wp-block-navigation__submenu-container{display:flex;opacity:1;visibility:visible}.is-dragging-components-draggable .has-child.is-dragging-within>.wp-block-navigation__submenu-container{opacity:1;visibility:visible}.is-editing>.wp-block-navigation__container{display:flex;flex-direction:column;opacity:1;visibility:visible}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container{opacity:1;visibility:hidden}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container .block-editor-block-draggable-chip-wrapper{visibility:visible}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender{display:block;position:static;width:100%}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender .block-editor-button-block-appender{background:#1e1e1e;color:#fff;margin-left:auto;margin-right:0;padding:0;width:24px}.wp-block-navigation__submenu-container .block-list-appender{display:none}.block-library-colors-selector{width:auto}.block-library-colors-selector .block-library-colors-selector__toggle{display:block;margin:0 auto;padding:3px;width:auto}.block-library-colors-selector .block-library-colors-selector__icon-container{align-items:center;border-radius:4px;display:flex;height:30px;margin:0 auto;padding:3px;position:relative}.block-library-colors-selector .block-library-colors-selector__state-selection{border-radius:11px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);height:22px;line-height:20px;margin-left:auto;margin-right:auto;min-height:22px;min-width:22px;padding:2px;width:22px}.block-library-colors-selector .block-library-colors-selector__state-selection>svg{min-width:auto!important}.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg,.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg path{color:inherit}.block-library-colors-selector__popover .color-palette-controller-container{padding:16px}.block-library-colors-selector__popover .components-base-control__label{height:20px;line-height:20px}.block-library-colors-selector__popover .component-color-indicator{float:right;margin-top:2px}.block-library-colors-selector__popover .components-panel__body-title{display:none}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender{background-color:#1e1e1e;color:#fff;height:24px}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender{padding:0}.wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender{background-color:transparent;color:#1e1e1e}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.components-placeholder.wp-block-navigation-placeholder{background:none;box-shadow:none;min-height:0;outline:none;padding:0}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset{font-size:inherit}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button{margin-bottom:0}.components-placeholder.wp-block-navigation-placeholder{color:inherit}.wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder{color:#1e1e1e}.wp-block-navigation-placeholder__preview{align-items:center;display:flex;font-family:-apple-system,system-ui,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;min-width:96px}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview{display:none}.wp-block-navigation-placeholder__preview{background:transparent;color:currentColor}.wp-block-navigation-placeholder__preview:before{border:1px dashed;border-radius:inherit;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview>svg{fill:currentColor}.wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset,.wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset{min-height:90px}.wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset{min-height:132px}.wp-block-navigation-placeholder__controls,.wp-block-navigation-placeholder__preview{align-items:flex-start;flex-direction:row;padding:6px 8px}.wp-block-navigation-placeholder__controls{background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:none;position:relative;z-index:1}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls{display:flex}.wp-block-navigation-placeholder__controls{float:left;width:100%}.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr{display:none}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions{align-items:flex-start;flex-direction:column}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr{display:none}.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon{height:36px;margin-right:12px}.wp-block-navigation-placeholder__actions__indicator{align-items:center;display:flex;height:36px;justify-content:flex-start;line-height:0;margin-left:4px;padding:0 6px 0 0}.wp-block-navigation-placeholder__actions__indicator svg{fill:currentColor;margin-right:4px}.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset{flex-direction:row!important}.wp-block-navigation-placeholder__actions{align-items:center;display:flex;font-family:-apple-system,system-ui,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;gap:6px}.wp-block-navigation-placeholder__actions .components-dropdown,.wp-block-navigation-placeholder__actions>.components-button{margin-right:0}.wp-block-navigation-placeholder__actions{height:100%}.wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr{background-color:#1e1e1e;border:0;height:100%;margin:auto 0;max-height:16px;min-height:1px;min-width:1px}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{display:none}}.wp-block-navigation__responsive-container.is-menu-open{position:fixed;top:159px}@media (min-width:782px){.wp-block-navigation__responsive-container.is-menu-open{left:36px;top:97px}}@media (min-width:960px){.wp-block-navigation__responsive-container.is-menu-open{left:160px}}.is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:145px}.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{left:0;top:159px}@media (min-width:782px){.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{top:65px}}.is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:113px}body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open{bottom:0;left:0;right:0;top:0}.components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close,.components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{color:inherit;height:auto;padding:0}.components-heading.wp-block-navigation-off-canvas-editor__title{margin:0}.wp-block-navigation-off-canvas-editor__header{margin-bottom:8px}.is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender{margin-top:16px}@keyframes fadein{0%{opacity:0}to{opacity:1}}.wp-block-navigation__loading-indicator-container{padding:8px 12px}.wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator{margin-top:0}@keyframes fadeouthalf{0%{opacity:1}to{opacity:.5}}.wp-block-navigation-delete-menu-button{justify-content:center;margin-bottom:16px;width:100%}.components-button.is-link.wp-block-navigation-manage-menus-button{margin-bottom:16px}.wp-block-navigation__overlay-menu-preview{align-items:center;background-color:#f0f0f0;display:flex;grid-column:span 2;height:64px!important;justify-content:space-between;padding:0 24px;width:100%}.wp-block-navigation__overlay-menu-preview.open{background-color:#fff;border-color:#e0e0e0}.wp-block-navigation-placeholder__actions hr+hr,.wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty{display:none}.wp-block-navigation__navigation-selector{margin-bottom:16px;width:100%}.wp-block-navigation__navigation-selector-button{border:1px solid;justify-content:space-between;width:100%}.wp-block-navigation__navigation-selector-button__icon{flex:0 0 auto}.wp-block-navigation__navigation-selector-button__label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-navigation__navigation-selector-button--createnew{border:1px solid;margin-bottom:16px;width:100%}.wp-block-navigation__responsive-container-open.components-button{opacity:1}.wp-block-navigation__menu-inspector-controls__empty-message{margin-left:24px}.editor-sidebar__panel .wp-block-navigation__submenu-header{margin-bottom:0;margin-top:0}.wp-block-navigation__submenu-accessibility-notice{grid-column:span 2}.wp-block-navigation__overlay-selector{position:relative}.wp-block-navigation__overlay-selector-controls{margin-bottom:8px}.wp-block-navigation__overlay-create-button{position:absolute;right:0;top:-4px;z-index:1}.wp-block-navigation__overlay-preview{background:#fff;border:1px solid #ddd;border-radius:2px;max-height:200px;overflow-y:auto}.wp-block-navigation__overlay-preview-empty,.wp-block-navigation__overlay-preview-loading{align-items:center;background:#f0f0f0;display:flex;justify-content:center;min-height:200px}.wp-block-navigation__overlay-preview-empty{color:#757575;font-style:italic;padding:16px;text-align:center}.wp-block-navigation__overlay-preview-placeholder{animation:wp-block-navigation-overlay-preview-pulse 1.5s ease-in-out infinite;background:#f0f0f0;height:200px;width:100%}@keyframes wp-block-navigation-overlay-preview-pulse{0%,to{opacity:1}50%{opacity:.5}}.wp-block-navigation__deleted-overlay-warning{margin-top:12px}.wp-block-navigation__overlay-create-button-prominent{justify-content:center;margin-bottom:8px;width:100%}.wp-block-navigation__overlay-help-text-wrapper{margin-top:8px} navigation/style-rtl.css 0000775 00000060451 00000000000 0011330 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-navigation { position: relative; } .wp-block-navigation ul { margin-top: 0; margin-bottom: 0; margin-right: 0; padding-right: 0; } .wp-block-navigation ul, .wp-block-navigation ul li { list-style: none; } .wp-block-navigation .wp-block-navigation-item { background-color: inherit; display: flex; align-items: center; position: relative; } .wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty { display: none; } .wp-block-navigation .wp-block-navigation-item__content { display: block; z-index: 1; } .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content { color: inherit; } .wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content { text-decoration: underline; } .wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus, .wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active { text-decoration: underline; } .wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content { text-decoration: line-through; } .wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus, .wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active { text-decoration: line-through; } .wp-block-navigation :where(a), .wp-block-navigation :where(a:focus), .wp-block-navigation :where(a:active) { text-decoration: none; } .wp-block-navigation .wp-block-navigation__submenu-icon { align-self: center; line-height: 0; display: inline-block; font-size: inherit; padding: 0; background-color: inherit; color: currentColor; border: none; width: 0.6em; height: 0.6em; margin-right: 0.25em; } .wp-block-navigation .wp-block-navigation__submenu-icon svg { display: inline-block; stroke: currentColor; width: inherit; height: inherit; margin-top: 0.075em; } .wp-block-navigation { --navigation-layout-justification-setting: flex-start; --navigation-layout-direction: row; --navigation-layout-wrap: wrap; --navigation-layout-justify: flex-start; --navigation-layout-align: center; } .wp-block-navigation.is-vertical { --navigation-layout-direction: column; --navigation-layout-justify: initial; --navigation-layout-align: flex-start; } .wp-block-navigation.no-wrap { --navigation-layout-wrap: nowrap; } .wp-block-navigation.items-justified-center { --navigation-layout-justification-setting: center; --navigation-layout-justify: center; } .wp-block-navigation.items-justified-center.is-vertical { --navigation-layout-align: center; } .wp-block-navigation.items-justified-right { --navigation-layout-justification-setting: flex-end; --navigation-layout-justify: flex-end; } .wp-block-navigation.items-justified-right.is-vertical { --navigation-layout-align: flex-end; } .wp-block-navigation.items-justified-space-between { --navigation-layout-justification-setting: space-between; --navigation-layout-justify: space-between; } :where(.wp-block-navigation) ul li { padding: 0; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { background-color: inherit; color: inherit; position: absolute; z-index: 2; display: flex; flex-direction: column; align-items: normal; opacity: 0; } @media not (prefers-reduced-motion) { .wp-block-navigation .has-child .wp-block-navigation__submenu-container { transition: opacity 0.1s linear; } } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { visibility: hidden; width: 0; height: 0; overflow: hidden; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content { display: flex; flex-grow: 1; padding: 0.5em 1em; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon { margin-left: 0; margin-right: auto; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content { margin: 0; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { right: -1px; top: 100%; } @media (min-width: 782px) { .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { right: 100%; top: -1px; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 100%; height: 100%; display: block; width: 0.5em; background: transparent; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon { margin-left: 0.25em; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg { transform: rotate(90deg); } } @media (hover: hover) { .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container { visibility: visible; overflow: visible; opacity: 1; width: auto; height: auto; min-width: 200px; } } .wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container, .wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true] ~ .wp-block-navigation__submenu-container { visibility: visible; overflow: visible; opacity: 1; width: auto; height: auto; min-width: 200px; } .wp-block-navigation .has-child.open-always { flex-wrap: var(--navigation-layout-wrap, wrap); flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); gap: var(--wp--style--block-gap, 2em); } .wp-block-navigation .has-child.open-always .wp-block-navigation-item { justify-content: var(--navigation-layout-justify, initial); } .wp-block-navigation .has-child.open-always.wp-block-navigation-submenu, .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container { gap: var(--wp--style--block-gap, 2em); } .wp-block-navigation .has-child.open-always.wp-block-navigation-submenu, .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container, .wp-block-navigation .has-child.open-always .wp-block-navigation-item { padding-top: 0; padding-bottom: 0; } .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container { padding-right: var(--wp--style--block-gap, 2em); padding-left: var(--wp--style--block-gap, 2em); } .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0; } .wp-block-navigation .has-child.open-always > .wp-block-navigation-item__content, .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content { flex-grow: 0; } .wp-block-navigation .has-child.open-always > .wp-block-navigation__submenu-container { visibility: visible; overflow: visible; opacity: 1; width: auto; height: auto; flex-basis: 100%; position: static; border: none; background-color: transparent; color: inherit; } .wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container { right: 0; top: 100%; } @media (min-width: 782px) { .wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { right: 100%; top: 0; } } .wp-block-navigation-submenu { position: relative; display: flex; } .wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg { stroke: currentColor; } button.wp-block-navigation-item__content { background-color: transparent; border: none; color: currentColor; font-size: inherit; font-family: inherit; letter-spacing: inherit; line-height: inherit; font-style: inherit; font-weight: inherit; text-transform: inherit; text-align: right; } .wp-block-navigation-submenu__toggle { cursor: pointer; } .wp-block-navigation-submenu__toggle[aria-expanded=true] + .wp-block-navigation__submenu-icon > svg, .wp-block-navigation-submenu__toggle[aria-expanded=true] > svg { transform: rotate(-180deg); } .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle { padding-right: 0; padding-left: 0.85em; } .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle + .wp-block-navigation__submenu-icon { margin-right: -0.6em; pointer-events: none; } .wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle) { padding: 0; } /** * Margins */ .wp-block-navigation__responsive-container, .wp-block-navigation__responsive-close, .wp-block-navigation__responsive-dialog, .wp-block-navigation .wp-block-page-list, .wp-block-navigation__container, .wp-block-navigation__responsive-container-content { gap: inherit; } /** * Paddings */ :where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)), :where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)) { padding: 0.5em 1em; } :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)), :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)), :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content), :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content) { padding: 0.5em 1em; } /** * Justifications. */ .wp-block-navigation.items-justified-space-between .wp-block-page-list > .has-child:last-child .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-space-between > .wp-block-navigation__container > .has-child:last-child .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-page-list > .has-child .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container { right: auto; left: 0; } .wp-block-navigation.items-justified-space-between .wp-block-page-list > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-space-between > .wp-block-navigation__container > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-page-list > .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { right: -1px; left: -1px; } @media (min-width: 782px) { .wp-block-navigation.items-justified-space-between .wp-block-page-list > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-space-between > .wp-block-navigation__container > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-page-list > .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { right: auto; left: 100%; } } .wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container { background-color: #fff; border: 1px solid rgba(0, 0, 0, 0.15); } .wp-block-navigation.has-background .wp-block-navigation__submenu-container { background-color: inherit; } .wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container { color: #000; } .wp-block-navigation__container { display: flex; flex-wrap: var(--navigation-layout-wrap, wrap); flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); list-style: none; margin: 0; padding-right: 0; } .wp-block-navigation__container .is-responsive { display: none; } .wp-block-navigation__container:only-child, .wp-block-page-list:only-child { flex-grow: 1; } /** * Mobile menu. */ @keyframes overlay-menu__fade-in-animation { from { opacity: 0; transform: translateY(0.5em); } to { opacity: 1; transform: translateY(0); } } .wp-block-navigation__responsive-container { display: none; position: fixed; top: 0; right: 0; left: 0; bottom: 0; } .wp-block-navigation__responsive-container :where(.wp-block-navigation-item a) { color: inherit; } .wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content { display: flex; flex-wrap: var(--navigation-layout-wrap, wrap); flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); } .wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open) { color: inherit !important; background-color: inherit !important; } .wp-block-navigation__responsive-container.is-menu-open { display: flex; flex-direction: column; background-color: inherit; } @media not (prefers-reduced-motion) { .wp-block-navigation__responsive-container.is-menu-open { animation: overlay-menu__fade-in-animation 0.1s ease-out; animation-fill-mode: forwards; } } .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { padding-top: clamp(1rem, var(--wp--style--root--padding-top), 20rem); padding-left: clamp(1rem, var(--wp--style--root--padding-right), 20rem); padding-bottom: clamp(1rem, var(--wp--style--root--padding-bottom), 20rem); padding-right: clamp(1rem, var(--wp--style--root--padding-left), 20rem); } .wp-block-navigation__responsive-container.is-menu-open { overflow: auto; z-index: 100000; } .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content { padding-top: calc(2rem + 24px); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content { overflow: visible; display: flex; flex-direction: column; flex-wrap: nowrap; align-items: var(--navigation-layout-justification-setting, inherit); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container { justify-content: flex-start; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon { display: none; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container { opacity: 1; visibility: visible; height: auto; width: auto; overflow: initial; min-width: 200px; position: static; border: none; padding-right: 2rem; padding-left: 2rem; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container { gap: inherit; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container { padding-top: var(--wp--style--block-gap, 2em); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content { padding: 0; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list { display: flex; flex-direction: column; align-items: var(--navigation-layout-justification-setting, initial); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item .wp-block-navigation__submenu-container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-page-list { color: inherit !important; background: transparent !important; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container { left: auto; right: auto; } .wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__overlay-container { display: none; width: 100%; } .wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__responsive-close { max-width: none; } .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content > *:not(.wp-block-navigation__overlay-container) { display: none; } .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container { display: block; } .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container .wp-block-navigation__submenu-container { left: auto; right: 0; } @media (min-width: 600px) { .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: block; width: 100%; position: relative; z-index: auto; background-color: inherit; } .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close { display: none; } .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container { right: 0; } } .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { background-color: #fff; } .wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { color: #000; } .wp-block-navigation__toggle_button_label { font-size: 1rem; font-weight: bold; } .wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { vertical-align: middle; cursor: pointer; color: currentColor; background: transparent; border: none; margin: 0; padding: 0; text-transform: inherit; } .wp-block-navigation__responsive-container-open svg, .wp-block-navigation__responsive-container-close svg { fill: currentColor; pointer-events: none; display: block; width: 24px; height: 24px; } .wp-block-navigation__responsive-container-open { display: flex; } .wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open { font-family: inherit; font-weight: inherit; font-size: inherit; } @media (min-width: 600px) { .wp-block-navigation__responsive-container-open:not(.always-shown) { display: none; } } .wp-block-navigation__responsive-container-close { position: absolute; top: 0; left: 0; z-index: 2; } .wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close { font-family: inherit; font-weight: inherit; font-size: inherit; } .disable-default-overlay .wp-block-navigation__responsive-container-close { top: clamp(1rem, var(--wp--style--root--padding-left), 20rem); left: clamp(1rem, var(--wp--style--root--padding-left), 20rem); } .wp-block-navigation__responsive-close { width: 100%; } .has-modal-open .wp-block-navigation__responsive-close { max-width: var(--wp--style--global--wide-size, 100%); margin-right: auto; margin-left: auto; } .wp-block-navigation__responsive-close:focus { outline: none; } .is-menu-open .wp-block-navigation__responsive-close, .is-menu-open .wp-block-navigation__responsive-dialog, .is-menu-open .wp-block-navigation__responsive-container-content { box-sizing: border-box; } .wp-block-navigation__responsive-dialog { position: relative; } .has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog { margin-top: 46px; } @media (min-width: 782px) { .has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog { margin-top: 32px; } } html.has-modal-open { overflow: hidden; } navigation/editor-rtl.min.css 0000775 00000026564 00000000000 0012247 0 ustar 00 .editor-styles-wrapper .wp-block-navigation ul{margin-bottom:0;margin-right:0;margin-top:0;padding-right:0}.editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block{margin:revert}.wp-block-navigation-item__label{display:inline}.wp-block-navigation-item,.wp-block-navigation__container{background-color:inherit}.wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover>.wp-block-navigation__submenu-container{opacity:0;visibility:hidden}.has-child.has-child-selected>.wp-block-navigation__submenu-container,.has-child.is-selected>.wp-block-navigation__submenu-container{display:flex;opacity:1;visibility:visible}.is-dragging-components-draggable .has-child.is-dragging-within>.wp-block-navigation__submenu-container{opacity:1;visibility:visible}.is-editing>.wp-block-navigation__container{display:flex;flex-direction:column;opacity:1;visibility:visible}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container{opacity:1;visibility:hidden}.is-dragging-components-draggable .wp-block-navigation-link>.wp-block-navigation__container .block-editor-block-draggable-chip-wrapper{visibility:visible}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender{display:block;position:static;width:100%}.is-editing>.wp-block-navigation__submenu-container>.block-list-appender .block-editor-button-block-appender{background:#1e1e1e;color:#fff;margin-left:0;margin-right:auto;padding:0;width:24px}.wp-block-navigation__submenu-container .block-list-appender{display:none}.block-library-colors-selector{width:auto}.block-library-colors-selector .block-library-colors-selector__toggle{display:block;margin:0 auto;padding:3px;width:auto}.block-library-colors-selector .block-library-colors-selector__icon-container{align-items:center;border-radius:4px;display:flex;height:30px;margin:0 auto;padding:3px;position:relative}.block-library-colors-selector .block-library-colors-selector__state-selection{border-radius:11px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);height:22px;line-height:20px;margin-left:auto;margin-right:auto;min-height:22px;min-width:22px;padding:2px;width:22px}.block-library-colors-selector .block-library-colors-selector__state-selection>svg{min-width:auto!important}.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg,.block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color>svg path{color:inherit}.block-library-colors-selector__popover .color-palette-controller-container{padding:16px}.block-library-colors-selector__popover .components-base-control__label{height:20px;line-height:20px}.block-library-colors-selector__popover .component-color-indicator{float:left;margin-top:2px}.block-library-colors-selector__popover .components-panel__body-title{display:none}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender{background-color:#1e1e1e;color:#fff;height:24px}.wp-block-navigation .wp-block+.block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender{padding:0}.wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender{background-color:transparent;color:#1e1e1e}@keyframes loadingpulse{0%{opacity:1}50%{opacity:.5}to{opacity:1}}.components-placeholder.wp-block-navigation-placeholder{background:none;box-shadow:none;min-height:0;outline:none;padding:0}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset{font-size:inherit}.components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button{margin-bottom:0}.components-placeholder.wp-block-navigation-placeholder{color:inherit}.wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder{color:#1e1e1e}.wp-block-navigation-placeholder__preview{align-items:center;display:flex;font-family:-apple-system,system-ui,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;min-width:96px}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview{display:none}.wp-block-navigation-placeholder__preview{background:transparent;color:currentColor}.wp-block-navigation-placeholder__preview:before{border:1px dashed;border-radius:inherit;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0}.wp-block-navigation-placeholder__preview>svg{fill:currentColor}.wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset,.wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset{min-height:90px}.wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset{min-height:132px}.wp-block-navigation-placeholder__controls,.wp-block-navigation-placeholder__preview{align-items:flex-start;flex-direction:row;padding:6px 8px}.wp-block-navigation-placeholder__controls{background-color:#fff;border-radius:2px;box-shadow:inset 0 0 0 1px #1e1e1e;display:none;position:relative;z-index:1}.wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls{display:flex}.wp-block-navigation-placeholder__controls{float:right;width:100%}.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator,.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator+hr{display:none}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions{align-items:flex-start;flex-direction:column}.is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr,.wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr{display:none}.wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon{height:36px;margin-left:12px}.wp-block-navigation-placeholder__actions__indicator{align-items:center;display:flex;height:36px;justify-content:flex-start;line-height:0;margin-right:4px;padding:0 0 0 6px}.wp-block-navigation-placeholder__actions__indicator svg{fill:currentColor;margin-left:4px}.wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset{flex-direction:row!important}.wp-block-navigation-placeholder__actions{align-items:center;display:flex;font-family:-apple-system,system-ui,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;gap:6px}.wp-block-navigation-placeholder__actions .components-dropdown,.wp-block-navigation-placeholder__actions>.components-button{margin-left:0}.wp-block-navigation-placeholder__actions{height:100%}.wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr{background-color:#1e1e1e;border:0;height:100%;margin:auto 0;max-height:16px;min-height:1px;min-width:1px}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close{display:none}}.wp-block-navigation__responsive-container.is-menu-open{position:fixed;top:159px}@media (min-width:782px){.wp-block-navigation__responsive-container.is-menu-open{right:36px;top:97px}}@media (min-width:960px){.wp-block-navigation__responsive-container.is-menu-open{right:160px}}.is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:145px}.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{right:0;top:159px}@media (min-width:782px){.is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open{top:65px}}.is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open,.is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open{top:113px}body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open{bottom:0;left:0;right:0;top:0}.components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close,.components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{color:inherit;height:auto;padding:0}.components-heading.wp-block-navigation-off-canvas-editor__title{margin:0}.wp-block-navigation-off-canvas-editor__header{margin-bottom:8px}.is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender{margin-top:16px}@keyframes fadein{0%{opacity:0}to{opacity:1}}.wp-block-navigation__loading-indicator-container{padding:8px 12px}.wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator{margin-top:0}@keyframes fadeouthalf{0%{opacity:1}to{opacity:.5}}.wp-block-navigation-delete-menu-button{justify-content:center;margin-bottom:16px;width:100%}.components-button.is-link.wp-block-navigation-manage-menus-button{margin-bottom:16px}.wp-block-navigation__overlay-menu-preview{align-items:center;background-color:#f0f0f0;display:flex;grid-column:span 2;height:64px!important;justify-content:space-between;padding:0 24px;width:100%}.wp-block-navigation__overlay-menu-preview.open{background-color:#fff;border-color:#e0e0e0}.wp-block-navigation-placeholder__actions hr+hr,.wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty{display:none}.wp-block-navigation__navigation-selector{margin-bottom:16px;width:100%}.wp-block-navigation__navigation-selector-button{border:1px solid;justify-content:space-between;width:100%}.wp-block-navigation__navigation-selector-button__icon{flex:0 0 auto}.wp-block-navigation__navigation-selector-button__label{flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-block-navigation__navigation-selector-button--createnew{border:1px solid;margin-bottom:16px;width:100%}.wp-block-navigation__responsive-container-open.components-button{opacity:1}.wp-block-navigation__menu-inspector-controls__empty-message{margin-right:24px}.editor-sidebar__panel .wp-block-navigation__submenu-header{margin-bottom:0;margin-top:0}.wp-block-navigation__submenu-accessibility-notice{grid-column:span 2}.wp-block-navigation__overlay-selector{position:relative}.wp-block-navigation__overlay-selector-controls{margin-bottom:8px}.wp-block-navigation__overlay-create-button{left:0;position:absolute;top:-4px;z-index:1}.wp-block-navigation__overlay-preview{background:#fff;border:1px solid #ddd;border-radius:2px;max-height:200px;overflow-y:auto}.wp-block-navigation__overlay-preview-empty,.wp-block-navigation__overlay-preview-loading{align-items:center;background:#f0f0f0;display:flex;justify-content:center;min-height:200px}.wp-block-navigation__overlay-preview-empty{color:#757575;font-style:italic;padding:16px;text-align:center}.wp-block-navigation__overlay-preview-placeholder{animation:wp-block-navigation-overlay-preview-pulse 1.5s ease-in-out infinite;background:#f0f0f0;height:200px;width:100%}@keyframes wp-block-navigation-overlay-preview-pulse{0%,to{opacity:1}50%{opacity:.5}}.wp-block-navigation__deleted-overlay-warning{margin-top:12px}.wp-block-navigation__overlay-create-button-prominent{justify-content:center;margin-bottom:8px;width:100%}.wp-block-navigation__overlay-help-text-wrapper{margin-top:8px} navigation/style.min.css 0000775 00000050450 00000000000 0011311 0 ustar 00 .wp-block-navigation{position:relative}.wp-block-navigation ul{margin-bottom:0;margin-left:0;margin-top:0;padding-left:0}.wp-block-navigation ul,.wp-block-navigation ul li{list-style:none}.wp-block-navigation .wp-block-navigation-item{align-items:center;background-color:inherit;display:flex;position:relative}.wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty{display:none}.wp-block-navigation .wp-block-navigation-item__content{display:block;z-index:1}.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:inherit}.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus{text-decoration:underline}.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus{text-decoration:line-through}.wp-block-navigation :where(a),.wp-block-navigation :where(a:active),.wp-block-navigation :where(a:focus){text-decoration:none}.wp-block-navigation .wp-block-navigation__submenu-icon{align-self:center;background-color:inherit;border:none;color:currentColor;display:inline-block;font-size:inherit;height:.6em;line-height:0;margin-left:.25em;padding:0;width:.6em}.wp-block-navigation .wp-block-navigation__submenu-icon svg{stroke:currentColor;display:inline-block;height:inherit;margin-top:.075em;width:inherit}.wp-block-navigation{--navigation-layout-justification-setting:flex-start;--navigation-layout-direction:row;--navigation-layout-wrap:wrap;--navigation-layout-justify:flex-start;--navigation-layout-align:center}.wp-block-navigation.is-vertical{--navigation-layout-direction:column;--navigation-layout-justify:initial;--navigation-layout-align:flex-start}.wp-block-navigation.no-wrap{--navigation-layout-wrap:nowrap}.wp-block-navigation.items-justified-center{--navigation-layout-justification-setting:center;--navigation-layout-justify:center}.wp-block-navigation.items-justified-center.is-vertical{--navigation-layout-align:center}.wp-block-navigation.items-justified-right{--navigation-layout-justification-setting:flex-end;--navigation-layout-justify:flex-end}.wp-block-navigation.items-justified-right.is-vertical{--navigation-layout-align:flex-end}.wp-block-navigation.items-justified-space-between{--navigation-layout-justification-setting:space-between;--navigation-layout-justify:space-between}:where(.wp-block-navigation) ul li{padding:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{align-items:normal;background-color:inherit;color:inherit;display:flex;flex-direction:column;opacity:0;position:absolute;z-index:2}@media not (prefers-reduced-motion){.wp-block-navigation .has-child .wp-block-navigation__submenu-container{transition:opacity .1s linear}}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{height:0;overflow:hidden;visibility:hidden;width:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content{display:flex;flex-grow:1;padding:.5em 1em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content .wp-block-navigation__submenu-icon{margin-left:auto;margin-right:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{margin:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{left:-1px;top:100%}@media (min-width:782px){.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:-1px}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;position:absolute;right:100%;width:.5em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon{margin-right:.25em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg{transform:rotate(-90deg)}}@media (hover:hover){.wp-block-navigation .has-child:not(.open-on-click):hover>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}}.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true]~.wp-block-navigation__submenu-container,.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child.open-always{align-items:var(--navigation-layout-align,initial);flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);gap:var(--wp--style--block-gap,2em)}.wp-block-navigation .has-child.open-always,.wp-block-navigation .has-child.open-always .wp-block-navigation-item{justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container,.wp-block-navigation .has-child.open-always.wp-block-navigation-submenu{gap:var(--wp--style--block-gap,2em)}.wp-block-navigation .has-child.open-always .wp-block-navigation-item,.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container,.wp-block-navigation .has-child.open-always.wp-block-navigation-submenu{padding-bottom:0;padding-top:0}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container{padding-left:var(--wp--style--block-gap,2em);padding-right:var(--wp--style--block-gap,2em)}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container .wp-block-navigation-item__content{padding:0}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content,.wp-block-navigation .has-child.open-always>.wp-block-navigation-item__content{flex-grow:0}.wp-block-navigation .has-child.open-always>.wp-block-navigation__submenu-container{background-color:transparent;border:none;color:inherit;flex-basis:100%;height:auto;opacity:1;overflow:visible;position:static;visibility:visible;width:auto}.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container{left:0;top:100%}@media (min-width:782px){.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:0}}.wp-block-navigation-submenu{display:flex;position:relative}.wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg{stroke:currentColor}button.wp-block-navigation-item__content{background-color:transparent;border:none;color:currentColor;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-align:left;text-transform:inherit}.wp-block-navigation-submenu__toggle{cursor:pointer}.wp-block-navigation-submenu__toggle[aria-expanded=true]+.wp-block-navigation__submenu-icon>svg,.wp-block-navigation-submenu__toggle[aria-expanded=true]>svg{transform:rotate(180deg)}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{padding-left:0;padding-right:.85em}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{margin-left:-.6em;pointer-events:none}.wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle){padding:0}.wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{gap:inherit}:where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)){padding:.5em 1em}:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content){padding:.5em 1em}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container{left:auto;right:0}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:-1px;right:-1px}@media (min-width:782px){.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:auto;right:100%}}.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container{background-color:#fff;border:1px solid rgba(0,0,0,.15)}.wp-block-navigation.has-background .wp-block-navigation__submenu-container{background-color:inherit}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container{color:#000}.wp-block-navigation__container{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial);list-style:none;margin:0;padding-left:0}.wp-block-navigation__container .is-responsive{display:none}.wp-block-navigation__container:only-child,.wp-block-page-list:only-child{flex-grow:1}@keyframes overlay-menu__fade-in-animation{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}.wp-block-navigation__responsive-container{bottom:0;display:none;left:0;position:fixed;right:0;top:0}.wp-block-navigation__responsive-container :where(.wp-block-navigation-item a){color:inherit}.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open){background-color:inherit!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open{background-color:inherit;display:flex;flex-direction:column}@media not (prefers-reduced-motion){.wp-block-navigation__responsive-container.is-menu-open{animation:overlay-menu__fade-in-animation .1s ease-out;animation-fill-mode:forwards}}.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){padding:clamp(1rem,var(--wp--style--root--padding-top),20rem) clamp(1rem,var(--wp--style--root--padding-right),20rem) clamp(1rem,var(--wp--style--root--padding-bottom),20rem) clamp(1rem,var(--wp--style--root--padding-left),20rem)}.wp-block-navigation__responsive-container.is-menu-open{overflow:auto;z-index:100000}.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content{padding-top:calc(2rem + 24px)}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-justification-setting,inherit);display:flex;flex-direction:column;flex-wrap:nowrap;overflow:visible}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list{justify-content:flex-start}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon{display:none}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container{border:none;height:auto;min-width:200px;opacity:1;overflow:initial;padding-left:2rem;padding-right:2rem;position:static;visibility:visible;width:auto}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{gap:inherit}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{padding-top:var(--wp--style--block-gap,2em)}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content{padding:0}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list{align-items:var(--navigation-layout-justification-setting,initial);display:flex;flex-direction:column}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item .wp-block-navigation__submenu-container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-page-list{background:transparent!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:auto;right:auto}.wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__overlay-container{display:none;width:100%}.wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__responsive-close{max-width:none}.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content>:not(.wp-block-navigation__overlay-container){display:none}.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container{display:block}.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container .wp-block-navigation__submenu-container{left:0;right:auto}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){background-color:inherit;display:block;position:relative;width:100%;z-index:auto}.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:0}}.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){background-color:#fff}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){color:#000}.wp-block-navigation__toggle_button_label{font-size:1rem;font-weight:700}.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open{background:transparent;border:none;color:currentColor;cursor:pointer;margin:0;padding:0;text-transform:inherit;vertical-align:middle}.wp-block-navigation__responsive-container-close svg,.wp-block-navigation__responsive-container-open svg{fill:currentColor;display:block;height:24px;pointer-events:none;width:24px}.wp-block-navigation__responsive-container-open{display:flex}.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{font-family:inherit;font-size:inherit;font-weight:inherit}@media (min-width:600px){.wp-block-navigation__responsive-container-open:not(.always-shown){display:none}}.wp-block-navigation__responsive-container-close{position:absolute;right:0;top:0;z-index:2}.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close{font-family:inherit;font-size:inherit;font-weight:inherit}.disable-default-overlay .wp-block-navigation__responsive-container-close{right:clamp(1rem,var(--wp--style--root--padding-left),20rem);top:clamp(1rem,var(--wp--style--root--padding-left),20rem)}.wp-block-navigation__responsive-close{width:100%}.has-modal-open .wp-block-navigation__responsive-close{margin-left:auto;margin-right:auto;max-width:var(--wp--style--global--wide-size,100%)}.wp-block-navigation__responsive-close:focus{outline:none}.is-menu-open .wp-block-navigation__responsive-close,.is-menu-open .wp-block-navigation__responsive-container-content,.is-menu-open .wp-block-navigation__responsive-dialog{box-sizing:border-box}.wp-block-navigation__responsive-dialog{position:relative}.has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog{margin-top:46px}@media (min-width:782px){.has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog{margin-top:32px}}html.has-modal-open{overflow:hidden} navigation/block.json 0000775 00000006626 00000000000 0010650 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/navigation", "title": "Navigation", "category": "theme", "allowedBlocks": [ "core/navigation-link", "core/search", "core/social-links", "core/page-list", "core/spacer", "core/home-link", "core/icon", "core/site-title", "core/site-logo", "core/navigation-submenu", "core/loginout", "core/buttons" ], "description": "A collection of blocks that allow visitors to get around your site.", "keywords": [ "menu", "navigation", "links" ], "textdomain": "default", "attributes": { "ref": { "type": "number" }, "textColor": { "type": "string" }, "customTextColor": { "type": "string" }, "rgbTextColor": { "type": "string" }, "backgroundColor": { "type": "string" }, "customBackgroundColor": { "type": "string" }, "rgbBackgroundColor": { "type": "string" }, "showSubmenuIcon": { "type": "boolean", "default": true }, "submenuVisibility": { "type": "string", "enum": [ "hover", "click", "always" ], "default": "hover" }, "overlayMenu": { "type": "string", "default": "mobile" }, "overlay": { "type": "string" }, "icon": { "type": "string", "default": "handle" }, "hasIcon": { "type": "boolean", "default": true }, "__unstableLocation": { "type": "string" }, "overlayBackgroundColor": { "type": "string" }, "customOverlayBackgroundColor": { "type": "string" }, "overlayTextColor": { "type": "string" }, "customOverlayTextColor": { "type": "string" }, "maxNestingLevel": { "type": "number", "default": 5 }, "templateLock": { "type": [ "string", "boolean" ], "enum": [ "all", "insert", "contentOnly", false ] } }, "providesContext": { "textColor": "textColor", "customTextColor": "customTextColor", "backgroundColor": "backgroundColor", "customBackgroundColor": "customBackgroundColor", "overlayTextColor": "overlayTextColor", "customOverlayTextColor": "customOverlayTextColor", "overlayBackgroundColor": "overlayBackgroundColor", "customOverlayBackgroundColor": "customOverlayBackgroundColor", "fontSize": "fontSize", "customFontSize": "customFontSize", "showSubmenuIcon": "showSubmenuIcon", "submenuVisibility": "submenuVisibility", "openSubmenusOnClick": "openSubmenusOnClick", "style": "style", "maxNestingLevel": "maxNestingLevel" }, "supports": { "anchor": true, "align": [ "wide", "full" ], "ariaLabel": true, "contentRole": true, "html": false, "inserter": true, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalTextTransform": true, "__experimentalFontFamily": true, "__experimentalLetterSpacing": true, "__experimentalTextDecoration": true, "__experimentalSkipSerialization": [ "textDecoration" ], "__experimentalDefaultControls": { "fontSize": true } }, "spacing": { "blockGap": true, "units": [ "px", "em", "rem", "vh", "vw" ], "__experimentalDefaultControls": { "blockGap": true } }, "layout": { "allowSwitching": false, "allowInheriting": false, "allowVerticalAlignment": false, "allowSizingOnChildren": true, "default": { "type": "flex" } }, "interactivity": true, "renaming": false }, "editorStyle": "wp-block-navigation-editor", "style": "wp-block-navigation" } navigation/style-rtl.min.css 0000775 00000050457 00000000000 0012117 0 ustar 00 .wp-block-navigation{position:relative}.wp-block-navigation ul{margin-bottom:0;margin-right:0;margin-top:0;padding-right:0}.wp-block-navigation ul,.wp-block-navigation ul li{list-style:none}.wp-block-navigation .wp-block-navigation-item{align-items:center;background-color:inherit;display:flex;position:relative}.wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty{display:none}.wp-block-navigation .wp-block-navigation-item__content{display:block;z-index:1}.wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content{color:inherit}.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus{text-decoration:underline}.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active,.wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus{text-decoration:line-through}.wp-block-navigation :where(a),.wp-block-navigation :where(a:active),.wp-block-navigation :where(a:focus){text-decoration:none}.wp-block-navigation .wp-block-navigation__submenu-icon{align-self:center;background-color:inherit;border:none;color:currentColor;display:inline-block;font-size:inherit;height:.6em;line-height:0;margin-right:.25em;padding:0;width:.6em}.wp-block-navigation .wp-block-navigation__submenu-icon svg{stroke:currentColor;display:inline-block;height:inherit;margin-top:.075em;width:inherit}.wp-block-navigation{--navigation-layout-justification-setting:flex-start;--navigation-layout-direction:row;--navigation-layout-wrap:wrap;--navigation-layout-justify:flex-start;--navigation-layout-align:center}.wp-block-navigation.is-vertical{--navigation-layout-direction:column;--navigation-layout-justify:initial;--navigation-layout-align:flex-start}.wp-block-navigation.no-wrap{--navigation-layout-wrap:nowrap}.wp-block-navigation.items-justified-center{--navigation-layout-justification-setting:center;--navigation-layout-justify:center}.wp-block-navigation.items-justified-center.is-vertical{--navigation-layout-align:center}.wp-block-navigation.items-justified-right{--navigation-layout-justification-setting:flex-end;--navigation-layout-justify:flex-end}.wp-block-navigation.items-justified-right.is-vertical{--navigation-layout-align:flex-end}.wp-block-navigation.items-justified-space-between{--navigation-layout-justification-setting:space-between;--navigation-layout-justify:space-between}:where(.wp-block-navigation) ul li{padding:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{align-items:normal;background-color:inherit;color:inherit;display:flex;flex-direction:column;opacity:0;position:absolute;z-index:2}@media not (prefers-reduced-motion){.wp-block-navigation .has-child .wp-block-navigation__submenu-container{transition:opacity .1s linear}}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{height:0;overflow:hidden;visibility:hidden;width:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content{display:flex;flex-grow:1;padding:.5em 1em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content .wp-block-navigation__submenu-icon{margin-left:0;margin-right:auto}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content{margin:0}.wp-block-navigation .has-child .wp-block-navigation__submenu-container{right:-1px;top:100%}@media (min-width:782px){.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:-1px}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;left:100%;position:absolute;width:.5em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon{margin-left:.25em}.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg{transform:rotate(90deg)}}@media (hover:hover){.wp-block-navigation .has-child:not(.open-on-click):hover>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}}.wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true]~.wp-block-navigation__submenu-container,.wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within>.wp-block-navigation__submenu-container{height:auto;min-width:200px;opacity:1;overflow:visible;visibility:visible;width:auto}.wp-block-navigation .has-child.open-always{align-items:var(--navigation-layout-align,initial);flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);gap:var(--wp--style--block-gap,2em)}.wp-block-navigation .has-child.open-always,.wp-block-navigation .has-child.open-always .wp-block-navigation-item{justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container,.wp-block-navigation .has-child.open-always.wp-block-navigation-submenu{gap:var(--wp--style--block-gap,2em)}.wp-block-navigation .has-child.open-always .wp-block-navigation-item,.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container,.wp-block-navigation .has-child.open-always.wp-block-navigation-submenu{padding-bottom:0;padding-top:0}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container{padding-left:var(--wp--style--block-gap,2em);padding-right:var(--wp--style--block-gap,2em)}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container .wp-block-navigation-item__content{padding:0}.wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content,.wp-block-navigation .has-child.open-always>.wp-block-navigation-item__content{flex-grow:0}.wp-block-navigation .has-child.open-always>.wp-block-navigation__submenu-container{background-color:transparent;border:none;color:inherit;flex-basis:100%;height:auto;opacity:1;overflow:visible;position:static;visibility:visible;width:auto}.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container{right:0;top:100%}@media (min-width:782px){.wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:0}}.wp-block-navigation-submenu{display:flex;position:relative}.wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg{stroke:currentColor}button.wp-block-navigation-item__content{background-color:transparent;border:none;color:currentColor;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-align:right;text-transform:inherit}.wp-block-navigation-submenu__toggle{cursor:pointer}.wp-block-navigation-submenu__toggle[aria-expanded=true]+.wp-block-navigation__submenu-icon>svg,.wp-block-navigation-submenu__toggle[aria-expanded=true]>svg{transform:rotate(-180deg)}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle{padding-left:.85em;padding-right:0}.wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle+.wp-block-navigation__submenu-icon{margin-right:-.6em;pointer-events:none}.wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle){padding:0}.wp-block-navigation .wp-block-page-list,.wp-block-navigation__container,.wp-block-navigation__responsive-close,.wp-block-navigation__responsive-container,.wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-dialog{gap:inherit}:where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)){padding:.5em 1em}:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content),:where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content){padding:.5em 1em}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container{left:0;right:auto}.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:-1px;right:-1px}@media (min-width:782px){.wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-right .wp-block-page-list>.has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between .wp-block-page-list>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation.items-justified-space-between>.wp-block-navigation__container>.has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;right:auto}}.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container{background-color:#fff;border:1px solid rgba(0,0,0,.15)}.wp-block-navigation.has-background .wp-block-navigation__submenu-container{background-color:inherit}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container{color:#000}.wp-block-navigation__container{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial);list-style:none;margin:0;padding-right:0}.wp-block-navigation__container .is-responsive{display:none}.wp-block-navigation__container:only-child,.wp-block-page-list:only-child{flex-grow:1}@keyframes overlay-menu__fade-in-animation{0%{opacity:0;transform:translateY(.5em)}to{opacity:1;transform:translateY(0)}}.wp-block-navigation__responsive-container{bottom:0;display:none;left:0;position:fixed;right:0;top:0}.wp-block-navigation__responsive-container :where(.wp-block-navigation-item a){color:inherit}.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-align,initial);display:flex;flex-direction:var(--navigation-layout-direction,initial);flex-wrap:var(--navigation-layout-wrap,wrap);justify-content:var(--navigation-layout-justify,initial)}.wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open){background-color:inherit!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open{background-color:inherit;display:flex;flex-direction:column}@media not (prefers-reduced-motion){.wp-block-navigation__responsive-container.is-menu-open{animation:overlay-menu__fade-in-animation .1s ease-out;animation-fill-mode:forwards}}.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){padding:clamp(1rem,var(--wp--style--root--padding-top),20rem) clamp(1rem,var(--wp--style--root--padding-left),20rem) clamp(1rem,var(--wp--style--root--padding-bottom),20rem) clamp(1rem,var(--wp--style--root--padding-right),20rem)}.wp-block-navigation__responsive-container.is-menu-open{overflow:auto;z-index:100000}.wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content{padding-top:calc(2rem + 24px)}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content{align-items:var(--navigation-layout-justification-setting,inherit);display:flex;flex-direction:column;flex-wrap:nowrap;overflow:visible}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list{justify-content:flex-start}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon{display:none}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container{border:none;height:auto;min-width:200px;opacity:1;overflow:initial;padding-left:2rem;padding-right:2rem;position:static;visibility:visible;width:auto}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{gap:inherit}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container{padding-top:var(--wp--style--block-gap,2em)}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content{padding:0}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list{align-items:var(--navigation-layout-justification-setting,initial);display:flex;flex-direction:column}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item .wp-block-navigation__submenu-container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__container,.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-page-list{background:transparent!important;color:inherit!important}.wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{left:auto;right:auto}.wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__overlay-container{display:none;width:100%}.wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__responsive-close{max-width:none}.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content>:not(.wp-block-navigation__overlay-container){display:none}.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container{display:block}.wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container .wp-block-navigation__submenu-container{left:auto;right:0}@media (min-width:600px){.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open){background-color:inherit;display:block;position:relative;width:100%;z-index:auto}.wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close{display:none}.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container{right:0}}.wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){background-color:#fff}.wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay){color:#000}.wp-block-navigation__toggle_button_label{font-size:1rem;font-weight:700}.wp-block-navigation__responsive-container-close,.wp-block-navigation__responsive-container-open{background:transparent;border:none;color:currentColor;cursor:pointer;margin:0;padding:0;text-transform:inherit;vertical-align:middle}.wp-block-navigation__responsive-container-close svg,.wp-block-navigation__responsive-container-open svg{fill:currentColor;display:block;height:24px;pointer-events:none;width:24px}.wp-block-navigation__responsive-container-open{display:flex}.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open{font-family:inherit;font-size:inherit;font-weight:inherit}@media (min-width:600px){.wp-block-navigation__responsive-container-open:not(.always-shown){display:none}}.wp-block-navigation__responsive-container-close{left:0;position:absolute;top:0;z-index:2}.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close{font-family:inherit;font-size:inherit;font-weight:inherit}.disable-default-overlay .wp-block-navigation__responsive-container-close{left:clamp(1rem,var(--wp--style--root--padding-left),20rem);top:clamp(1rem,var(--wp--style--root--padding-left),20rem)}.wp-block-navigation__responsive-close{width:100%}.has-modal-open .wp-block-navigation__responsive-close{margin-left:auto;margin-right:auto;max-width:var(--wp--style--global--wide-size,100%)}.wp-block-navigation__responsive-close:focus{outline:none}.is-menu-open .wp-block-navigation__responsive-close,.is-menu-open .wp-block-navigation__responsive-container-content,.is-menu-open .wp-block-navigation__responsive-dialog{box-sizing:border-box}.wp-block-navigation__responsive-dialog{position:relative}.has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog{margin-top:46px}@media (min-width:782px){.has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog{margin-top:32px}}html.has-modal-open{overflow:hidden} navigation/style.css 0000775 00000060442 00000000000 0010531 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-navigation { position: relative; } .wp-block-navigation ul { margin-top: 0; margin-bottom: 0; margin-left: 0; padding-left: 0; } .wp-block-navigation ul, .wp-block-navigation ul li { list-style: none; } .wp-block-navigation .wp-block-navigation-item { background-color: inherit; display: flex; align-items: center; position: relative; } .wp-block-navigation .wp-block-navigation-item .wp-block-navigation__submenu-container:empty { display: none; } .wp-block-navigation .wp-block-navigation-item__content { display: block; z-index: 1; } .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content { color: inherit; } .wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content { text-decoration: underline; } .wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:focus, .wp-block-navigation.has-text-decoration-underline .wp-block-navigation-item__content:active { text-decoration: underline; } .wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content { text-decoration: line-through; } .wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:focus, .wp-block-navigation.has-text-decoration-line-through .wp-block-navigation-item__content:active { text-decoration: line-through; } .wp-block-navigation :where(a), .wp-block-navigation :where(a:focus), .wp-block-navigation :where(a:active) { text-decoration: none; } .wp-block-navigation .wp-block-navigation__submenu-icon { align-self: center; line-height: 0; display: inline-block; font-size: inherit; padding: 0; background-color: inherit; color: currentColor; border: none; width: 0.6em; height: 0.6em; margin-left: 0.25em; } .wp-block-navigation .wp-block-navigation__submenu-icon svg { display: inline-block; stroke: currentColor; width: inherit; height: inherit; margin-top: 0.075em; } .wp-block-navigation { --navigation-layout-justification-setting: flex-start; --navigation-layout-direction: row; --navigation-layout-wrap: wrap; --navigation-layout-justify: flex-start; --navigation-layout-align: center; } .wp-block-navigation.is-vertical { --navigation-layout-direction: column; --navigation-layout-justify: initial; --navigation-layout-align: flex-start; } .wp-block-navigation.no-wrap { --navigation-layout-wrap: nowrap; } .wp-block-navigation.items-justified-center { --navigation-layout-justification-setting: center; --navigation-layout-justify: center; } .wp-block-navigation.items-justified-center.is-vertical { --navigation-layout-align: center; } .wp-block-navigation.items-justified-right { --navigation-layout-justification-setting: flex-end; --navigation-layout-justify: flex-end; } .wp-block-navigation.items-justified-right.is-vertical { --navigation-layout-align: flex-end; } .wp-block-navigation.items-justified-space-between { --navigation-layout-justification-setting: space-between; --navigation-layout-justify: space-between; } :where(.wp-block-navigation) ul li { padding: 0; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { background-color: inherit; color: inherit; position: absolute; z-index: 2; display: flex; flex-direction: column; align-items: normal; opacity: 0; } @media not (prefers-reduced-motion) { .wp-block-navigation .has-child .wp-block-navigation__submenu-container { transition: opacity 0.1s linear; } } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { visibility: hidden; width: 0; height: 0; overflow: hidden; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content { display: flex; flex-grow: 1; padding: 0.5em 1em; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content .wp-block-navigation__submenu-icon { margin-right: 0; margin-left: auto; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content { margin: 0; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container { left: -1px; top: 100%; } @media (min-width: 782px) { .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { left: 100%; top: -1px; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before { content: ""; position: absolute; right: 100%; height: 100%; display: block; width: 0.5em; background: transparent; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon { margin-right: 0.25em; } .wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon svg { transform: rotate(-90deg); } } @media (hover: hover) { .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container { visibility: visible; overflow: visible; opacity: 1; width: auto; height: auto; min-width: 200px; } } .wp-block-navigation .has-child:not(.open-on-click):not(.open-on-hover-click):focus-within > .wp-block-navigation__submenu-container, .wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded=true] ~ .wp-block-navigation__submenu-container { visibility: visible; overflow: visible; opacity: 1; width: auto; height: auto; min-width: 200px; } .wp-block-navigation .has-child.open-always { flex-wrap: var(--navigation-layout-wrap, wrap); flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); gap: var(--wp--style--block-gap, 2em); } .wp-block-navigation .has-child.open-always .wp-block-navigation-item { justify-content: var(--navigation-layout-justify, initial); } .wp-block-navigation .has-child.open-always.wp-block-navigation-submenu, .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container { gap: var(--wp--style--block-gap, 2em); } .wp-block-navigation .has-child.open-always.wp-block-navigation-submenu, .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container, .wp-block-navigation .has-child.open-always .wp-block-navigation-item { padding-top: 0; padding-bottom: 0; } .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container { padding-left: var(--wp--style--block-gap, 2em); padding-right: var(--wp--style--block-gap, 2em); } .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0; } .wp-block-navigation .has-child.open-always > .wp-block-navigation-item__content, .wp-block-navigation .has-child.open-always .wp-block-navigation__submenu-container > .wp-block-navigation-item > .wp-block-navigation-item__content { flex-grow: 0; } .wp-block-navigation .has-child.open-always > .wp-block-navigation__submenu-container { visibility: visible; overflow: visible; opacity: 1; width: auto; height: auto; flex-basis: 100%; position: static; border: none; background-color: transparent; color: inherit; } .wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container { left: 0; top: 100%; } @media (min-width: 782px) { .wp-block-navigation.has-background .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { left: 100%; top: 0; } } .wp-block-navigation-submenu { position: relative; display: flex; } .wp-block-navigation-submenu .wp-block-navigation__submenu-icon svg { stroke: currentColor; } button.wp-block-navigation-item__content { background-color: transparent; border: none; color: currentColor; font-size: inherit; font-family: inherit; letter-spacing: inherit; line-height: inherit; font-style: inherit; font-weight: inherit; text-transform: inherit; text-align: left; } .wp-block-navigation-submenu__toggle { cursor: pointer; } .wp-block-navigation-submenu__toggle[aria-expanded=true] + .wp-block-navigation__submenu-icon > svg, .wp-block-navigation-submenu__toggle[aria-expanded=true] > svg { transform: rotate(180deg); } .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle { padding-left: 0; padding-right: 0.85em; } .wp-block-navigation-item.open-on-click .wp-block-navigation-submenu__toggle + .wp-block-navigation__submenu-icon { margin-left: -0.6em; pointer-events: none; } .wp-block-navigation-item.open-on-click button.wp-block-navigation-item__content:not(.wp-block-navigation-submenu__toggle) { padding: 0; } /** * Margins */ .wp-block-navigation__responsive-container, .wp-block-navigation__responsive-close, .wp-block-navigation__responsive-dialog, .wp-block-navigation .wp-block-page-list, .wp-block-navigation__container, .wp-block-navigation__responsive-container-content { gap: inherit; } /** * Paddings */ :where(.wp-block-navigation.has-background .wp-block-navigation-item a:not(.wp-element-button)), :where(.wp-block-navigation.has-background .wp-block-navigation-submenu a:not(.wp-element-button)) { padding: 0.5em 1em; } :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item a:not(.wp-element-button)), :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu a:not(.wp-element-button)), :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu button.wp-block-navigation-item__content), :where(.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-pages-list__item button.wp-block-navigation-item__content) { padding: 0.5em 1em; } /** * Justifications. */ .wp-block-navigation.items-justified-space-between .wp-block-page-list > .has-child:last-child .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-space-between > .wp-block-navigation__container > .has-child:last-child .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-page-list > .has-child .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container { left: auto; right: 0; } .wp-block-navigation.items-justified-space-between .wp-block-page-list > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-space-between > .wp-block-navigation__container > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-page-list > .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { left: -1px; right: -1px; } @media (min-width: 782px) { .wp-block-navigation.items-justified-space-between .wp-block-page-list > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-space-between > .wp-block-navigation__container > .has-child:last-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-page-list > .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation.items-justified-right .wp-block-navigation__container .has-child .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { left: auto; right: 100%; } } .wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container { background-color: #fff; border: 1px solid rgba(0, 0, 0, 0.15); } .wp-block-navigation.has-background .wp-block-navigation__submenu-container { background-color: inherit; } .wp-block-navigation:not(.has-text-color) .wp-block-navigation__submenu-container { color: #000; } .wp-block-navigation__container { display: flex; flex-wrap: var(--navigation-layout-wrap, wrap); flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); list-style: none; margin: 0; padding-left: 0; } .wp-block-navigation__container .is-responsive { display: none; } .wp-block-navigation__container:only-child, .wp-block-page-list:only-child { flex-grow: 1; } /** * Mobile menu. */ @keyframes overlay-menu__fade-in-animation { from { opacity: 0; transform: translateY(0.5em); } to { opacity: 1; transform: translateY(0); } } .wp-block-navigation__responsive-container { display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0; } .wp-block-navigation__responsive-container :where(.wp-block-navigation-item a) { color: inherit; } .wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content { display: flex; flex-wrap: var(--navigation-layout-wrap, wrap); flex-direction: var(--navigation-layout-direction, initial); justify-content: var(--navigation-layout-justify, initial); align-items: var(--navigation-layout-align, initial); } .wp-block-navigation__responsive-container:not(.is-menu-open.is-menu-open) { color: inherit !important; background-color: inherit !important; } .wp-block-navigation__responsive-container.is-menu-open { display: flex; flex-direction: column; background-color: inherit; } @media not (prefers-reduced-motion) { .wp-block-navigation__responsive-container.is-menu-open { animation: overlay-menu__fade-in-animation 0.1s ease-out; animation-fill-mode: forwards; } } .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { padding-top: clamp(1rem, var(--wp--style--root--padding-top), 20rem); padding-right: clamp(1rem, var(--wp--style--root--padding-right), 20rem); padding-bottom: clamp(1rem, var(--wp--style--root--padding-bottom), 20rem); padding-left: clamp(1rem, var(--wp--style--root--padding-left), 20rem); } .wp-block-navigation__responsive-container.is-menu-open { overflow: auto; z-index: 100000; } .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) .wp-block-navigation__responsive-container-content { padding-top: calc(2rem + 24px); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content { overflow: visible; display: flex; flex-direction: column; flex-wrap: nowrap; align-items: var(--navigation-layout-justification-setting, inherit); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container { justify-content: flex-start; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon { display: none; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container { opacity: 1; visibility: visible; height: auto; width: auto; overflow: initial; min-width: 200px; position: static; border: none; padding-left: 2rem; padding-right: 2rem; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container { gap: inherit; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container { padding-top: var(--wp--style--block-gap, 2em); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content { padding: 0; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation__container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-navigation-item, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-container-content .wp-block-page-list { display: flex; flex-direction: column; align-items: var(--navigation-layout-justification-setting, initial); } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item .wp-block-navigation__submenu-container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__container, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation-item, .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-page-list { color: inherit !important; background: transparent !important; } .wp-block-navigation__responsive-container.is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container { right: auto; left: auto; } .wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__overlay-container { display: none; width: 100%; } .wp-block-navigation__responsive-container.disable-default-overlay .wp-block-navigation__responsive-close { max-width: none; } .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content > *:not(.wp-block-navigation__overlay-container) { display: none; } .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container { display: block; } .wp-block-navigation__responsive-container.disable-default-overlay.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__overlay-container .wp-block-navigation__submenu-container { right: auto; left: 0; } @media (min-width: 600px) { .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: block; width: 100%; position: relative; z-index: auto; background-color: inherit; } .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) .wp-block-navigation__responsive-container-close { display: none; } .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container.wp-block-navigation__submenu-container { left: 0; } } .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { background-color: #fff; } .wp-block-navigation:not(.has-text-color) .wp-block-navigation__responsive-container.is-menu-open:not(.disable-default-overlay) { color: #000; } .wp-block-navigation__toggle_button_label { font-size: 1rem; font-weight: bold; } .wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { vertical-align: middle; cursor: pointer; color: currentColor; background: transparent; border: none; margin: 0; padding: 0; text-transform: inherit; } .wp-block-navigation__responsive-container-open svg, .wp-block-navigation__responsive-container-close svg { fill: currentColor; pointer-events: none; display: block; width: 24px; height: 24px; } .wp-block-navigation__responsive-container-open { display: flex; } .wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open { font-family: inherit; font-weight: inherit; font-size: inherit; } @media (min-width: 600px) { .wp-block-navigation__responsive-container-open:not(.always-shown) { display: none; } } .wp-block-navigation__responsive-container-close { position: absolute; top: 0; right: 0; z-index: 2; } .wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close { font-family: inherit; font-weight: inherit; font-size: inherit; } .disable-default-overlay .wp-block-navigation__responsive-container-close { top: clamp(1rem, var(--wp--style--root--padding-left), 20rem); right: clamp(1rem, var(--wp--style--root--padding-left), 20rem); } .wp-block-navigation__responsive-close { width: 100%; } .has-modal-open .wp-block-navigation__responsive-close { max-width: var(--wp--style--global--wide-size, 100%); margin-left: auto; margin-right: auto; } .wp-block-navigation__responsive-close:focus { outline: none; } .is-menu-open .wp-block-navigation__responsive-close, .is-menu-open .wp-block-navigation__responsive-dialog, .is-menu-open .wp-block-navigation__responsive-container-content { box-sizing: border-box; } .wp-block-navigation__responsive-dialog { position: relative; } .has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog { margin-top: 46px; } @media (min-width: 782px) { .has-modal-open .admin-bar .is-menu-open:where(:not(.disable-default-overlay)) .wp-block-navigation__responsive-dialog { margin-top: 32px; } } html.has-modal-open { overflow: hidden; } navigation/editor-rtl.css 0000775 00000036270 00000000000 0011460 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ /** * Editor only CSS. */ .editor-styles-wrapper .wp-block-navigation ul { margin-top: 0; margin-bottom: 0; margin-right: 0; padding-right: 0; } .editor-styles-wrapper .wp-block-navigation .wp-block-navigation-item.wp-block { margin: revert; } .wp-block-navigation-item__label { display: inline; } /** * Submenus. */ .wp-block-navigation__container, .wp-block-navigation-item { background-color: inherit; } .wp-block-navigation:not(.is-selected):not(.has-child-selected) .has-child:hover > .wp-block-navigation__submenu-container { opacity: 0; visibility: hidden; } .has-child.is-selected > .wp-block-navigation__submenu-container, .has-child.has-child-selected > .wp-block-navigation__submenu-container { display: flex; opacity: 1; visibility: visible; } .is-dragging-components-draggable .has-child.is-dragging-within > .wp-block-navigation__submenu-container { opacity: 1; visibility: visible; } .is-editing > .wp-block-navigation__container { visibility: visible; opacity: 1; display: flex; flex-direction: column; } .is-dragging-components-draggable .wp-block-navigation-link > .wp-block-navigation__container { opacity: 1; visibility: hidden; } .is-dragging-components-draggable .wp-block-navigation-link > .wp-block-navigation__container .block-editor-block-draggable-chip-wrapper { visibility: visible; } .is-editing > .wp-block-navigation__submenu-container > .block-list-appender { display: block; position: static; width: 100%; } .is-editing > .wp-block-navigation__submenu-container > .block-list-appender .block-editor-button-block-appender { color: #fff; background: #1e1e1e; padding: 0; width: 24px; margin-left: 0; margin-right: auto; } .wp-block-navigation__submenu-container .block-list-appender { display: none; } /** * Colors Selector component */ .block-library-colors-selector { width: auto; } .block-library-colors-selector .block-library-colors-selector__toggle { display: block; margin: 0 auto; padding: 3px; width: auto; } .block-library-colors-selector .block-library-colors-selector__icon-container { height: 30px; position: relative; margin: 0 auto; padding: 3px; display: flex; align-items: center; border-radius: 4px; } .block-library-colors-selector .block-library-colors-selector__state-selection { margin-right: auto; margin-left: auto; border-radius: 11px; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2); width: 22px; min-width: 22px; height: 22px; min-height: 22px; line-height: 20px; padding: 2px; } .block-library-colors-selector .block-library-colors-selector__state-selection > svg { min-width: auto !important; } .block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color > svg, .block-library-colors-selector .block-library-colors-selector__state-selection.has-text-color > svg path { color: inherit; } .block-library-colors-selector__popover .color-palette-controller-container { padding: 16px; } .block-library-colors-selector__popover .components-base-control__label { height: 20px; line-height: 20px; } .block-library-colors-selector__popover .component-color-indicator { float: left; margin-top: 2px; } .block-library-colors-selector__popover .components-panel__body-title { display: none; } .wp-block-navigation .wp-block + .block-list-appender .block-editor-button-block-appender { background-color: #1e1e1e; color: #fff; height: 24px; } .wp-block-navigation .wp-block + .block-list-appender .block-editor-button-block-appender.block-editor-button-block-appender.block-editor-button-block-appender { padding: 0; } .wp-block-navigation .wp-block .wp-block .block-editor-button-block-appender { background-color: transparent; color: #1e1e1e; } /** * Setup state */ @keyframes loadingpulse { 0% { opacity: 1; } 50% { opacity: 0.5; } 100% { opacity: 1; } } .components-placeholder.wp-block-navigation-placeholder { outline: none; padding: 0; box-shadow: none; background: none; min-height: 0; } .components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset { font-size: inherit; } .components-placeholder.wp-block-navigation-placeholder .components-placeholder__fieldset .components-button { margin-bottom: 0; } .components-placeholder.wp-block-navigation-placeholder { color: inherit; } .wp-block-navigation.is-selected .components-placeholder.wp-block-navigation-placeholder { color: #1e1e1e; } .wp-block-navigation-placeholder__preview { display: flex; align-items: center; min-width: 96px; font-size: 13px; font-family: -apple-system, system-ui, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; } .wp-block-navigation.is-selected .wp-block-navigation-placeholder__preview { display: none; } .wp-block-navigation-placeholder__preview { color: currentColor; background: transparent; } .wp-block-navigation-placeholder__preview::before { content: ""; display: block; position: absolute; top: 0; left: 0; bottom: 0; right: 0; pointer-events: none; border: 1px dashed currentColor; border-radius: inherit; } .wp-block-navigation-placeholder__preview > svg { fill: currentColor; } .wp-block-navigation.is-vertical .is-small .components-placeholder__fieldset, .wp-block-navigation.is-vertical .is-medium .components-placeholder__fieldset { min-height: 90px; } .wp-block-navigation.is-vertical .is-large .components-placeholder__fieldset { min-height: 132px; } .wp-block-navigation-placeholder__preview, .wp-block-navigation-placeholder__controls { padding: 6px 8px; flex-direction: row; align-items: flex-start; } .wp-block-navigation-placeholder__controls { border-radius: 2px; background-color: #fff; box-shadow: inset 0 0 0 1px #1e1e1e; display: none; position: relative; z-index: 1; } .wp-block-navigation.is-selected .wp-block-navigation-placeholder__controls { display: flex; } .wp-block-navigation-placeholder__controls { float: right; width: 100%; } .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator, .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator + hr, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator, .is-medium .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions__indicator + hr { display: none; } .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions, .wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions { flex-direction: column; align-items: flex-start; } .is-small .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr, .wp-block-navigation.is-vertical .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__actions hr { display: none; } .wp-block-navigation-placeholder__controls .wp-block-navigation-placeholder__icon { margin-left: 12px; height: 36px; } .wp-block-navigation-placeholder__actions__indicator { display: flex; padding: 0 0 0 6px; align-items: center; justify-content: flex-start; line-height: 0; height: 36px; margin-right: 4px; } .wp-block-navigation-placeholder__actions__indicator svg { margin-left: 4px; fill: currentColor; } .wp-block-navigation .components-placeholder.is-medium .components-placeholder__fieldset { flex-direction: row !important; } .wp-block-navigation-placeholder__actions { display: flex; font-size: 13px; font-family: -apple-system, system-ui, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; gap: 6px; align-items: center; } .wp-block-navigation-placeholder__actions .components-dropdown, .wp-block-navigation-placeholder__actions > .components-button { margin-left: 0; } .wp-block-navigation-placeholder__actions { height: 100%; } .wp-block-navigation-placeholder__actions.wp-block-navigation-placeholder__actions hr { border: 0; min-height: 1px; min-width: 1px; background-color: #1e1e1e; margin: auto 0; height: 100%; max-height: 16px; } /** * Mobile menu. */ @media (min-width: 600px) { .wp-block-navigation__responsive-container:not(.is-menu-open) .components-button.wp-block-navigation__responsive-container-close { display: none; } } .wp-block-navigation__responsive-container.is-menu-open { position: fixed; top: 159px; } @media (min-width: 782px) { .wp-block-navigation__responsive-container.is-menu-open { top: 97px; } } @media (min-width: 782px) { .wp-block-navigation__responsive-container.is-menu-open { right: 36px; } } @media (min-width: 960px) { .wp-block-navigation__responsive-container.is-menu-open { right: 160px; } } .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open, .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open { top: 145px; } .is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open { right: 0; top: 159px; } @media (min-width: 782px) { .is-fullscreen-mode .wp-block-navigation__responsive-container.is-menu-open { top: 65px; } } .is-fullscreen-mode .is-mobile-preview .wp-block-navigation__responsive-container.is-menu-open, .is-fullscreen-mode .is-tablet-preview .wp-block-navigation__responsive-container.is-menu-open { top: 113px; } body.editor-styles-wrapper .wp-block-navigation__responsive-container.is-menu-open { top: 0; left: 0; bottom: 0; right: 0; } .components-button.wp-block-navigation__responsive-container-open.wp-block-navigation__responsive-container-open, .components-button.wp-block-navigation__responsive-container-close.wp-block-navigation__responsive-container-close { padding: 0; height: auto; color: inherit; } .components-heading.wp-block-navigation-off-canvas-editor__title { margin: 0; } .wp-block-navigation-off-canvas-editor__header { margin-bottom: 8px; } .is-menu-open .wp-block-navigation__responsive-container-content * .block-list-appender { margin-top: 16px; } @keyframes fadein { 0% { opacity: 0; } 100% { opacity: 1; } } .wp-block-navigation__loading-indicator-container { padding: 8px 12px; } .wp-block-navigation .wp-block-navigation__uncontrolled-inner-blocks-loading-indicator { margin-top: 0; } @keyframes fadeouthalf { 0% { opacity: 1; } 100% { opacity: 0.5; } } .wp-block-navigation-delete-menu-button { width: 100%; justify-content: center; margin-bottom: 16px; } .components-button.is-link.wp-block-navigation-manage-menus-button { margin-bottom: 16px; } .wp-block-navigation__overlay-menu-preview { display: flex; align-items: center; justify-content: space-between; width: 100%; background-color: #f0f0f0; padding: 0 24px; height: 64px !important; grid-column: span 2; } .wp-block-navigation__overlay-menu-preview.open { border-color: #e0e0e0; background-color: #fff; } .wp-block-navigation__toolbar-menu-selector.components-toolbar-group:empty { display: none; } .wp-block-navigation-placeholder__actions hr + hr { display: none; } /** * Navigation selector styles */ .wp-block-navigation__navigation-selector { margin-bottom: 16px; width: 100%; } .wp-block-navigation__navigation-selector-button { border: 1px solid; justify-content: space-between; width: 100%; } .wp-block-navigation__navigation-selector-button__icon { flex: 0 0 auto; } .wp-block-navigation__navigation-selector-button__label { flex: 0 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .wp-block-navigation__navigation-selector-button--createnew { border: 1px solid; margin-bottom: 16px; width: 100%; } .wp-block-navigation__responsive-container-open.components-button { opacity: 1; } .wp-block-navigation__menu-inspector-controls__empty-message { margin-right: 24px; } .editor-sidebar__panel .wp-block-navigation__submenu-header { margin-top: 0; margin-bottom: 0; } .wp-block-navigation__submenu-accessibility-notice { grid-column: span 2; } .wp-block-navigation__overlay-selector { position: relative; } .wp-block-navigation__overlay-selector-controls { margin-bottom: 8px; } .wp-block-navigation__overlay-create-button { position: absolute; top: -4px; left: 0; z-index: 1; } .wp-block-navigation__overlay-preview { border: 1px solid #ddd; border-radius: 2px; overflow-y: auto; max-height: 200px; background: #fff; } .wp-block-navigation__overlay-preview-loading { display: flex; align-items: center; justify-content: center; min-height: 200px; background: #f0f0f0; } .wp-block-navigation__overlay-preview-empty { display: flex; align-items: center; justify-content: center; min-height: 200px; padding: 16px; text-align: center; color: #757575; background: #f0f0f0; font-style: italic; } .wp-block-navigation__overlay-preview-placeholder { width: 100%; height: 200px; background: #f0f0f0; animation: wp-block-navigation-overlay-preview-pulse 1.5s ease-in-out infinite; } @keyframes wp-block-navigation-overlay-preview-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .wp-block-navigation__deleted-overlay-warning { margin-top: 12px; } .wp-block-navigation__overlay-create-button-prominent { width: 100%; justify-content: center; margin-bottom: 8px; } .wp-block-navigation__overlay-help-text-wrapper { margin-top: 8px; } buttons/editor.css 0000775 00000002437 00000000000 0010216 0 ustar 00 .wp-block-buttons > .wp-block { margin: 0; } .wp-block-buttons > .wp-block-button.wp-block-button.wp-block-button.wp-block-button.wp-block-button { margin: 0; } .wp-block-buttons > .block-list-appender { display: inline-flex; align-items: center; } .wp-block-buttons.is-vertical > .block-list-appender .block-list-appender__toggle { justify-content: flex-start; } .wp-block-buttons > .wp-block-button:focus { box-shadow: none; } .wp-block-buttons { /* stylelint-disable @stylistic/indentation -- Disable the stylelint rule, otherwise this selector is ugly! */ } .wp-block-buttons:not(.is-content-justification-space-between, .is-content-justification-right, .is-content-justification-left, .is-content-justification-center) .wp-block[data-align=center] { /* stylelint-enable @stylistic/indentation */ margin-left: auto; margin-right: auto; margin-top: 0; width: 100%; } .wp-block-buttons:not(.is-content-justification-space-between, .is-content-justification-right, .is-content-justification-left, .is-content-justification-center) .wp-block[data-align=center] .wp-block-button { margin-bottom: 0; } .wp-block[data-align=center] > .wp-block-buttons { align-items: center; justify-content: center; } .wp-block[data-align=right] > .wp-block-buttons { justify-content: flex-end; } buttons/editor.min.css 0000775 00000001756 00000000000 0011003 0 ustar 00 .wp-block-buttons>.wp-block,.wp-block-buttons>.wp-block-button.wp-block-button.wp-block-button.wp-block-button.wp-block-button{margin:0}.wp-block-buttons>.block-list-appender{align-items:center;display:inline-flex}.wp-block-buttons.is-vertical>.block-list-appender .block-list-appender__toggle{justify-content:flex-start}.wp-block-buttons>.wp-block-button:focus{box-shadow:none}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center]{margin-left:auto;margin-right:auto;margin-top:0;width:100%}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center] .wp-block-button{margin-bottom:0}.wp-block[data-align=center]>.wp-block-buttons{align-items:center;justify-content:center}.wp-block[data-align=right]>.wp-block-buttons{justify-content:flex-end} buttons/style-rtl.css 0000775 00000003306 00000000000 0010663 0 ustar 00 .wp-block-buttons { box-sizing: border-box; } .wp-block-buttons.is-vertical { flex-direction: column; } .wp-block-buttons.is-vertical > .wp-block-button:last-child { margin-bottom: 0; } .wp-block-buttons > .wp-block-button { display: inline-block; margin: 0; } .wp-block-buttons.is-content-justification-left { justify-content: flex-start; } .wp-block-buttons.is-content-justification-left.is-vertical { align-items: flex-start; } .wp-block-buttons.is-content-justification-center { justify-content: center; } .wp-block-buttons.is-content-justification-center.is-vertical { align-items: center; } .wp-block-buttons.is-content-justification-right { justify-content: flex-end; } .wp-block-buttons.is-content-justification-right.is-vertical { align-items: flex-end; } .wp-block-buttons.is-content-justification-space-between { justify-content: space-between; } .wp-block-buttons.aligncenter { text-align: center; } .wp-block-buttons { /* stylelint-disable @stylistic/indentation -- Disable the stylelint rule, otherwise this selector is ugly! */ } .wp-block-buttons:not(.is-content-justification-space-between, .is-content-justification-right, .is-content-justification-left, .is-content-justification-center) .wp-block-button.aligncenter { /* stylelint-enable @stylistic/indentation */ margin-right: auto; margin-left: auto; width: 100%; } .wp-block-buttons[style*=text-decoration] .wp-block-button, .wp-block-buttons[style*=text-decoration] .wp-block-button__link { text-decoration: inherit; } .wp-block-buttons.has-custom-font-size .wp-block-button__link { font-size: inherit; } .wp-block-buttons .wp-block-button__link { width: 100%; } .wp-block-button.aligncenter { text-align: center; } buttons/editor-rtl.min.css 0000775 00000001756 00000000000 0011602 0 ustar 00 .wp-block-buttons>.wp-block,.wp-block-buttons>.wp-block-button.wp-block-button.wp-block-button.wp-block-button.wp-block-button{margin:0}.wp-block-buttons>.block-list-appender{align-items:center;display:inline-flex}.wp-block-buttons.is-vertical>.block-list-appender .block-list-appender__toggle{justify-content:flex-start}.wp-block-buttons>.wp-block-button:focus{box-shadow:none}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center]{margin-left:auto;margin-right:auto;margin-top:0;width:100%}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block[data-align=center] .wp-block-button{margin-bottom:0}.wp-block[data-align=center]>.wp-block-buttons{align-items:center;justify-content:center}.wp-block[data-align=right]>.wp-block-buttons{justify-content:flex-end} buttons/style.min.css 0000775 00000002563 00000000000 0010652 0 ustar 00 .wp-block-buttons{box-sizing:border-box}.wp-block-buttons.is-vertical{flex-direction:column}.wp-block-buttons.is-vertical>.wp-block-button:last-child{margin-bottom:0}.wp-block-buttons>.wp-block-button{display:inline-block;margin:0}.wp-block-buttons.is-content-justification-left{justify-content:flex-start}.wp-block-buttons.is-content-justification-left.is-vertical{align-items:flex-start}.wp-block-buttons.is-content-justification-center{justify-content:center}.wp-block-buttons.is-content-justification-center.is-vertical{align-items:center}.wp-block-buttons.is-content-justification-right{justify-content:flex-end}.wp-block-buttons.is-content-justification-right.is-vertical{align-items:flex-end}.wp-block-buttons.is-content-justification-space-between{justify-content:space-between}.wp-block-buttons.aligncenter{text-align:center}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block-button.aligncenter{margin-left:auto;margin-right:auto;width:100%}.wp-block-buttons[style*=text-decoration] .wp-block-button,.wp-block-buttons[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons .wp-block-button__link{width:100%}.wp-block-button.aligncenter{text-align:center} buttons/block.json 0000775 00000003141 00000000000 0010174 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/buttons", "title": "Buttons", "category": "design", "allowedBlocks": [ "core/button" ], "description": "Prompt visitors to take action with a group of button-style links.", "keywords": [ "link" ], "textdomain": "default", "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "__experimentalExposeControlsToChildren": true, "color": { "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "spacing": { "blockGap": [ "horizontal", "vertical" ], "padding": true, "margin": [ "top", "bottom" ], "__experimentalDefaultControls": { "blockGap": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "layout": { "allowSwitching": false, "allowInheriting": false, "default": { "type": "flex" } }, "interactivity": { "clientNavigation": true }, "listView": true, "contentRole": true }, "editorStyle": "wp-block-buttons-editor", "style": "wp-block-buttons" } buttons/style-rtl.min.css 0000775 00000002563 00000000000 0011451 0 ustar 00 .wp-block-buttons{box-sizing:border-box}.wp-block-buttons.is-vertical{flex-direction:column}.wp-block-buttons.is-vertical>.wp-block-button:last-child{margin-bottom:0}.wp-block-buttons>.wp-block-button{display:inline-block;margin:0}.wp-block-buttons.is-content-justification-left{justify-content:flex-start}.wp-block-buttons.is-content-justification-left.is-vertical{align-items:flex-start}.wp-block-buttons.is-content-justification-center{justify-content:center}.wp-block-buttons.is-content-justification-center.is-vertical{align-items:center}.wp-block-buttons.is-content-justification-right{justify-content:flex-end}.wp-block-buttons.is-content-justification-right.is-vertical{align-items:flex-end}.wp-block-buttons.is-content-justification-space-between{justify-content:space-between}.wp-block-buttons.aligncenter{text-align:center}.wp-block-buttons:not(.is-content-justification-space-between,.is-content-justification-right,.is-content-justification-left,.is-content-justification-center) .wp-block-button.aligncenter{margin-left:auto;margin-right:auto;width:100%}.wp-block-buttons[style*=text-decoration] .wp-block-button,.wp-block-buttons[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons .wp-block-button__link{width:100%}.wp-block-button.aligncenter{text-align:center} buttons/style.css 0000775 00000003306 00000000000 0010064 0 ustar 00 .wp-block-buttons { box-sizing: border-box; } .wp-block-buttons.is-vertical { flex-direction: column; } .wp-block-buttons.is-vertical > .wp-block-button:last-child { margin-bottom: 0; } .wp-block-buttons > .wp-block-button { display: inline-block; margin: 0; } .wp-block-buttons.is-content-justification-left { justify-content: flex-start; } .wp-block-buttons.is-content-justification-left.is-vertical { align-items: flex-start; } .wp-block-buttons.is-content-justification-center { justify-content: center; } .wp-block-buttons.is-content-justification-center.is-vertical { align-items: center; } .wp-block-buttons.is-content-justification-right { justify-content: flex-end; } .wp-block-buttons.is-content-justification-right.is-vertical { align-items: flex-end; } .wp-block-buttons.is-content-justification-space-between { justify-content: space-between; } .wp-block-buttons.aligncenter { text-align: center; } .wp-block-buttons { /* stylelint-disable @stylistic/indentation -- Disable the stylelint rule, otherwise this selector is ugly! */ } .wp-block-buttons:not(.is-content-justification-space-between, .is-content-justification-right, .is-content-justification-left, .is-content-justification-center) .wp-block-button.aligncenter { /* stylelint-enable @stylistic/indentation */ margin-left: auto; margin-right: auto; width: 100%; } .wp-block-buttons[style*=text-decoration] .wp-block-button, .wp-block-buttons[style*=text-decoration] .wp-block-button__link { text-decoration: inherit; } .wp-block-buttons.has-custom-font-size .wp-block-button__link { font-size: inherit; } .wp-block-buttons .wp-block-button__link { width: 100%; } .wp-block-button.aligncenter { text-align: center; } buttons/editor-rtl.css 0000775 00000002437 00000000000 0011015 0 ustar 00 .wp-block-buttons > .wp-block { margin: 0; } .wp-block-buttons > .wp-block-button.wp-block-button.wp-block-button.wp-block-button.wp-block-button { margin: 0; } .wp-block-buttons > .block-list-appender { display: inline-flex; align-items: center; } .wp-block-buttons.is-vertical > .block-list-appender .block-list-appender__toggle { justify-content: flex-start; } .wp-block-buttons > .wp-block-button:focus { box-shadow: none; } .wp-block-buttons { /* stylelint-disable @stylistic/indentation -- Disable the stylelint rule, otherwise this selector is ugly! */ } .wp-block-buttons:not(.is-content-justification-space-between, .is-content-justification-right, .is-content-justification-left, .is-content-justification-center) .wp-block[data-align=center] { /* stylelint-enable @stylistic/indentation */ margin-right: auto; margin-left: auto; margin-top: 0; width: 100%; } .wp-block-buttons:not(.is-content-justification-space-between, .is-content-justification-right, .is-content-justification-left, .is-content-justification-center) .wp-block[data-align=center] .wp-block-button { margin-bottom: 0; } .wp-block[data-align=center] > .wp-block-buttons { align-items: center; justify-content: center; } .wp-block[data-align=right] > .wp-block-buttons { justify-content: flex-end; } gallery.php 0000775 00000053511 00000000000 0006667 0 ustar 00 <?php /** * Server-side rendering of the `core/gallery` block. * * @package WordPress */ /** * Handles backwards compatibility for Gallery Blocks, * whose images feature a `data-id` attribute. * * Now that the Gallery Block contains inner Image Blocks, * we add a custom `data-id` attribute before rendering the gallery * so that the Image Block can pick it up in its render_callback. * * @since 5.9.0 * * @param array $parsed_block The block being rendered. * @return array The migrated block object. */ function block_core_gallery_data_id_backcompatibility( $parsed_block ) { if ( 'core/gallery' === $parsed_block['blockName'] ) { foreach ( $parsed_block['innerBlocks'] as $key => $inner_block ) { if ( 'core/image' === $inner_block['blockName'] ) { if ( ! isset( $parsed_block['innerBlocks'][ $key ]['attrs']['data-id'] ) && isset( $inner_block['attrs']['id'] ) ) { $parsed_block['innerBlocks'][ $key ]['attrs']['data-id'] = esc_attr( $inner_block['attrs']['id'] ); } } } } return $parsed_block; } add_filter( 'render_block_data', 'block_core_gallery_data_id_backcompatibility' ); /** * Adds a unique ID to the gallery block context. * * @since 7.0.0 * * @param array $context Default context. * @param array $parsed_block Block being rendered, filtered by render_block_data. * @return array Filtered context. */ function block_core_gallery_render_context( $context, $parsed_block ) { if ( 'core/gallery' === $parsed_block['blockName'] ) { $context['galleryId'] = uniqid(); } return $context; } add_filter( 'render_block_context', 'block_core_gallery_render_context', 10, 2 ); /** * Returns the column gap value used for Gallery image width calculations. * * @since 7.1.0 * * @param string|array|null $gap Gallery block gap value. * @param string $fallback_gap Fallback gap value. * @return string Gallery column gap value. */ function block_core_gallery_get_column_gap_value( $gap, $fallback_gap ) { if ( is_array( $gap ) ) { $gap = $gap['left'] ?? $fallback_gap; } // Make sure $gap is a string to avoid PHP 8.1 deprecation error in preg_match() when the value is null. $gap = is_string( $gap ) ? $gap : ''; // Skip if gap value contains unsupported characters. // Regex for CSS value borrowed from `safecss_filter_attr`, and used here // because we only want to match against the value, not the CSS attribute. $gap = $gap && preg_match( '%[\\\(&=}]|/\*%', $gap ) ? null : $gap; // Get spacing CSS variable from preset value if provided. if ( is_string( $gap ) && str_contains( $gap, 'var:preset|spacing|' ) ) { $index_to_splice = strrpos( $gap, '|' ) + 1; $slug = _wp_to_kebab_case( substr( $gap, $index_to_splice ) ); $gap = "var(--wp--preset--spacing--$slug)"; } $gap_column = ( null !== $gap && '' !== $gap ) ? $gap : $fallback_gap; // The unstable gallery gap calculation requires a real value (such as `0px`) and not `0`. return '0' === $gap_column ? '0px' : $gap_column; } /** * Resolves a Gallery block's `dynamicContent` to an ordered list of image * attachment IDs. * * The `source` key is the dispatch discriminator and `args` holds the source's * parameters. This `{ source, args }` shape mirrors the Block Bindings metadata * shape so dynamic mode can migrate to an `innerBlocks` binding with minimal * change. `core/attached-media` is a context-relative anchor (the post the gallery is * rendered within); future sources translate their REST-named `args` (`author`, * `categories`, `after`/`before`, `media_type`, etc.) into `WP_Query` arguments * here. * * @since 7.0.0 * * @param array $source The gallery's `dynamicContent` attribute. * @param WP_Block $block The gallery block instance being rendered. * @return int[] Ordered list of image attachment IDs. */ function block_core_gallery_resolve_dynamic_source( $source, $block ) { if ( ! is_array( $source ) ) { return array(); } $source_name = $source['source'] ?? null; $args = isset( $source['args'] ) && is_array( $source['args'] ) ? $source['args'] : array(); switch ( $source_name ) { case 'core/attached-media': // Prefer the post supplied via block context, falling back to the post // being rendered. The fallback is what lets a post-bound template (e.g. // `single`/`page`) resolve against the actual post at render time even // though the editor has no concrete post to preview — the editor gates // the dynamic-mode UI on that same context (see `use-dynamic-gallery.js`). $post_id = $block->context['postId'] ?? get_the_ID(); if ( ! $post_id ) { return array(); } // Map the camelCase `args` (block-attribute convention) to WP_Query // names, defaulting to the same order as the editor preview (see // `dynamic-source.js`). Only REST-supported orderby values are // allowed; `menu_order` is intentionally unsupported (it isn't a // valid media REST `orderby`). $orderby = $args['orderBy'] ?? 'date'; if ( ! in_array( $orderby, array( 'date', 'title' ), true ) ) { $orderby = 'date'; } $order = strtoupper( $args['order'] ?? 'desc' ) === 'ASC' ? 'ASC' : 'DESC'; // Bound the number of resolved images until the gallery supports // pagination. Kept in sync with the editor query's `per_page` cap; a // case-insensitive grep for `max_images` finds both this and // `MAX_IMAGES` in `dynamic-source.js`. $max_images = 100; $query = new WP_Query( array( 'post_parent' => $post_id, 'post_type' => 'attachment', 'post_status' => 'inherit', 'post_mime_type' => 'image', 'orderby' => $orderby, 'order' => $order, 'posts_per_page' => $max_images, 'fields' => 'ids', 'no_found_rows' => true, ) ); return array_map( 'intval', $query->posts ); } // Unknown or not-yet-implemented source type. return array(); } /** * Builds the link-related image block attributes for a dynamically rendered * gallery image, mapping the gallery-wide `linkTo` setting onto a single image. * * Mirrors the editor's `getHrefAndDestination()` (see `gallery/utils.js`). * * @since 7.0.0 * * @param int $attachment_id The image attachment ID. * @param array $attributes The gallery block attributes. * @return array Partial image block attributes (`href`, `linkDestination`, * `linkTarget`, `rel`, `lightbox`). */ function block_core_gallery_dynamic_image_link_attributes( $attachment_id, $attributes ) { $link_to = $attributes['linkTo'] ?? 'none'; $attrs = array(); switch ( $link_to ) { // Gutenberg uses 'media'/'attachment'; WP Core uses 'file'/'post'. case 'media': case 'file': $attrs['href'] = wp_get_attachment_url( $attachment_id ); $attrs['linkDestination'] = 'media'; break; case 'attachment': case 'post': $attrs['href'] = get_attachment_link( $attachment_id ); $attrs['linkDestination'] = 'attachment'; break; case 'lightbox': $attrs['linkDestination'] = 'none'; $attrs['lightbox'] = array( 'enabled' => true ); break; } if ( ! empty( $attrs['href'] ) && '_blank' === ( $attributes['linkTarget'] ?? '' ) ) { $attrs['linkTarget'] = '_blank'; $attrs['rel'] = 'noopener'; } return $attrs; } /** * Renders a single `core/image` block for a Gallery block running in dynamic * mode, applying the gallery-wide settings that affect how an image renders. * * The image markup is generated here (via `wp_get_attachment_image()`) and * rendered through a real `core/image` block instance so that the image block's * own render callback and lightbox behavior run, and so the gallery's existing * lightbox/interactivity post-processing can pick it up. * * @since 7.0.0 * * @param int $attachment_id The image attachment ID. * @param array $attributes The gallery block attributes. * @param array $context Context to expose to the inner image block. * @return string The rendered image block HTML, or an empty string on failure. */ function block_core_gallery_render_dynamic_image( $attachment_id, $attributes, $context ) { $size_slug = $attributes['sizeSlug'] ?? 'large'; $aspect_ratio = $attributes['aspectRatio'] ?? 'auto'; $img_attr = array( 'class' => 'wp-image-' . $attachment_id ); if ( $aspect_ratio && 'auto' !== $aspect_ratio ) { // Run the aspect ratio through the same sanitization used for every other // block inline style, so an unsafe value can't break out of the style // attribute or inject additional markup. $img_attr['style'] = safecss_filter_attr( sprintf( 'aspect-ratio:%s;object-fit:cover;', $aspect_ratio ) ); } $image_markup = wp_get_attachment_image( $attachment_id, $size_slug, false, $img_attr ); if ( ! $image_markup ) { return ''; } $image_attributes = array_merge( array( 'id' => $attachment_id, 'data-id' => (string) $attachment_id, 'sizeSlug' => $size_slug, ), block_core_gallery_dynamic_image_link_attributes( $attachment_id, $attributes ) ); if ( $aspect_ratio && 'auto' !== $aspect_ratio ) { $image_attributes['aspectRatio'] = $aspect_ratio; $image_attributes['scale'] = 'cover'; } // Wrap in a link when the gallery links images somewhere. if ( ! empty( $image_attributes['href'] ) ) { $image_markup = sprintf( '<a href="%1$s"%2$s%3$s>%4$s</a>', esc_url( $image_attributes['href'] ), isset( $image_attributes['linkTarget'] ) ? ' target="' . esc_attr( $image_attributes['linkTarget'] ) . '"' : '', isset( $image_attributes['rel'] ) ? ' rel="' . esc_attr( $image_attributes['rel'] ) . '"' : '', $image_markup ); } // Use the raw caption (`post_excerpt`) so the frontend mirrors the editor // preview, which builds the caption from the REST `caption.raw` value. Gap: // the REST API exposes no caption run through `wp_get_attachment_caption`, so // that filter isn't applied here either. $attachment = get_post( $attachment_id ); $caption = $attachment ? $attachment->post_excerpt : ''; if ( '' !== $caption ) { $image_markup .= sprintf( '<figcaption class="wp-element-caption">%s</figcaption>', wp_kses_post( $caption ) ); } $figure = sprintf( '<figure class="wp-block-image size-%1$s">%2$s</figure>', esc_attr( $size_slug ), $image_markup ); $image_block = array( 'blockName' => 'core/image', 'attrs' => $image_attributes, 'innerBlocks' => array(), 'innerHTML' => $figure, 'innerContent' => array( $figure ), ); return ( new WP_Block( $image_block, $context ) )->render(); } /** * Renders the `core/gallery` block on the server. * * @since 6.0.0 * * @param array $attributes Attributes of the block being rendered. * @param string $content Content of the block being rendered. * @param array $block The block instance being rendered. * @return string The content of the block being rendered. */ function block_core_gallery_render( $attributes, $content, $block ) { static $global_styles = null; // In dynamic mode the gallery's images are resolved at render time instead of // being authored as inner blocks, so `save.js` persists at most the // gallery-level caption — a bare `<figcaption>`, or nothing when there is no // caption. Resolve the configured source to a list of attachments, render an // image block for each, and build the gallery `<figure>` wrapper from scratch. // The gap/randomOrder/lightbox post-processing below then runs over the // constructed markup unchanged. if ( ! empty( $attributes['dynamicContent'] ) ) { $attachment_ids = block_core_gallery_resolve_dynamic_source( $attributes['dynamicContent'], $block ); // Nothing resolved — no attachments, or an unrecognized source. Render // nothing rather than an empty gallery wrapper; a saved caption is // meaningless without images, so it is intentionally dropped too. if ( empty( $attachment_ids ) ) { return ''; } // The source query only fetched IDs (`fields => ids`), which skips // WP_Query's cache priming. Each image rendered below reads the // attachment post and its meta (via `wp_get_attachment_image()`, // `get_post()`, etc.), so warm the post and meta caches in a single pair // of queries up front instead of paying ~two queries per attachment. // Term cache is left cold: the render path doesn't read attachment terms. if ( count( $attachment_ids ) > 1 ) { _prime_post_caches( $attachment_ids, false, true ); } // Expose the gallery's provided context (plus galleryId/postId/postType) // to each image block, since these images are rendered outside the // gallery's real inner-block tree. $image_context = array_merge( is_array( $block->context ) ? $block->context : array(), array( 'allowResize' => $attributes['allowResize'] ?? false, 'imageCrop' => $attributes['imageCrop'] ?? true, 'fixedHeight' => $attributes['fixedHeight'] ?? true, 'navigationButtonType' => $attributes['navigationButtonType'] ?? 'icon', ) ); $images_markup = ''; foreach ( $attachment_ids as $attachment_id ) { $images_markup .= block_core_gallery_render_dynamic_image( $attachment_id, $attributes, $image_context ); } // Build the wrapper rather than parsing/splicing saved markup. // `get_block_wrapper_attributes()` supplies the block-support // classes/styles (align, color, border, spacing, anchor id); the layout // render filter adds the flex layout classes downstream — the same way a // static gallery's wrapper is composed (`useBlockProps.save()` plus that // filter). Only the gallery-specific classes are added explicitly, and // they mirror `save.js` (kept in sync deliberately — see that file). $gallery_classes = 'wp-block-gallery has-nested-images'; $gallery_classes .= isset( $attributes['columns'] ) ? ' columns-' . (int) $attributes['columns'] : ' columns-default'; if ( $attributes['imageCrop'] ?? true ) { $gallery_classes .= ' is-cropped'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $gallery_classes ) ); // In dynamic mode `save.js` persists only the gallery-level caption, so // `$content` is the saved `<figcaption>` (or empty). Append it after the // resolved images — matching the static gallery's `{images}{caption}` // order — without parsing it. $content = sprintf( '<figure %s>%s%s</figure>', $wrapper_attributes, $images_markup, $content ); } // Adds a style tag for the --wp--style--unstable-gallery-gap var. // The Gallery block needs to recalculate Image block width based on // the current gap setting in order to maintain the number of flex columns // so a css var is added to allow this. $style_attr = is_array( $attributes['style'] ?? null ) ? $attributes['style'] : array(); if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN && function_exists( 'gutenberg_resolve_style_state_aliases' ) ) { $style_attr = gutenberg_resolve_style_state_aliases( $style_attr, 'core/gallery' ); } $unique_gallery_classname = wp_unique_id( 'wp-block-gallery-' ); $processed_content = new WP_HTML_Tag_Processor( $content ); $processed_content->next_tag(); $processed_content->add_class( $unique_gallery_classname ); // --gallery-block--gutter-size is deprecated. --wp--style--gallery-gap-default should be used by themes that want to set a default // gap on the gallery. $fallback_gap = 'var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )'; if ( null === $global_styles ) { $global_styles = function_exists( 'wp_get_global_styles' ) ? wp_get_global_styles() : array(); } $global_gallery_styles = $global_styles['blocks']['core/gallery'] ?? array(); $global_gallery_gap = $global_gallery_styles['spacing']['blockGap'] ?? $fallback_gap; $has_block_gap = is_array( $style_attr['spacing'] ?? null ) && array_key_exists( 'blockGap', $style_attr['spacing'] ); // Prefer the block's own gap value, then Gallery global styles. Missing // values fall back to the Gallery blockGap default. $block_gap = $has_block_gap ? $style_attr['spacing']['blockGap'] : $global_gallery_gap; $gap_column = block_core_gallery_get_column_gap_value( $block_gap, $fallback_gap ); // Set the CSS variable to the column value for Gallery's flex width calculations. $gallery_styles = array( array( 'selector' => ".wp-block-gallery.{$unique_gallery_classname}", 'declarations' => array( '--wp--style--unstable-gallery-gap' => $gap_column, ), ), ); $global_settings = wp_get_global_settings(); $viewport_settings = $global_settings['viewport'] ?? null; $responsive_media_queries = array(); foreach ( array( 'WP_Theme_JSON_Gutenberg', 'WP_Theme_JSON' ) as $theme_json_class_name ) { if ( method_exists( $theme_json_class_name, 'get_viewport_media_queries' ) ) { $responsive_media_queries = $theme_json_class_name::get_viewport_media_queries( $viewport_settings ); break; } } foreach ( $responsive_media_queries as $breakpoint => $media_query ) { $viewport_style = $style_attr[ $breakpoint ] ?? null; $has_viewport_block_gap = is_array( $viewport_style ) && is_array( $viewport_style['spacing'] ?? null ) && array_key_exists( 'blockGap', $viewport_style['spacing'] ); $has_global_viewport_block_gap = is_array( $global_gallery_styles[ $breakpoint ]['spacing'] ?? null ) && array_key_exists( 'blockGap', $global_gallery_styles[ $breakpoint ]['spacing'] ); // Viewport-specific block values win. Gallery global viewport values // only apply when the block has no base gap, so they do not override an instance value. if ( $has_viewport_block_gap ) { $viewport_gap = $viewport_style['spacing']['blockGap']; } elseif ( ! $has_block_gap && $has_global_viewport_block_gap ) { $viewport_gap = $global_gallery_styles[ $breakpoint ]['spacing']['blockGap']; } else { continue; } if ( null === $viewport_gap ) { continue; } $gallery_styles[] = array( 'selector' => ".wp-block-gallery.{$unique_gallery_classname}", 'declarations' => array( '--wp--style--unstable-gallery-gap' => block_core_gallery_get_column_gap_value( $viewport_gap, $fallback_gap ), ), 'rules_group' => $media_query, ); } wp_style_engine_get_stylesheet_from_css_rules( $gallery_styles, array( 'context' => 'block-supports' ) ); // The WP_HTML_Tag_Processor class calls get_updated_html() internally // when the instance is treated as a string, but here we explicitly // convert it to a string. $updated_content = $processed_content->get_updated_html(); /* * Randomize the order of image blocks. Ideally we should shuffle * the `$parsed_block['innerBlocks']` via the `render_block_data` hook. * However, this hook doesn't apply inner block updates when blocks are * nested. * @todo In the future, if this hook supports updating innerBlocks in * nested blocks, it should be refactored. * * @see: https://github.com/WordPress/gutenberg/pull/58733 */ if ( ! empty( $attributes['randomOrder'] ) ) { // This pattern matches figure elements with the `wp-block-image` // class to avoid the gallery's wrapping `figure` element and // extract images only. $pattern = '/<figure[^>]*\bwp-block-image\b[^>]*>.*?<\/figure>/s'; preg_match_all( $pattern, $updated_content, $matches ); if ( $matches ) { $image_blocks = $matches[0]; shuffle( $image_blocks ); $i = 0; $updated_content = preg_replace_callback( $pattern, static function () use ( $image_blocks, &$i ) { return $image_blocks[ $i++ ]; }, $updated_content ); } } // Gets all image IDs from the state that match this gallery's ID. $state = wp_interactivity_state( 'core/image' ); $gallery_id = $block->context['galleryId'] ?? null; $image_ids = array(); // Extracts image IDs from state metadata that match the current gallery ID. if ( isset( $gallery_id ) && isset( $state['metadata'] ) ) { foreach ( $state['metadata'] as $image_id => $metadata ) { if ( isset( $metadata['galleryId'] ) && $metadata['galleryId'] === $gallery_id ) { $image_ids[] = $image_id; } } } // If there are image IDs associated with this gallery, set interactivity // attributes and order metadata for lightbox navigation. if ( ! empty( $image_ids ) ) { $total = count( $image_ids ); $lightbox_index = 0; $processor = new WP_HTML_Tag_Processor( $updated_content ); $processor->next_tag(); $processor->set_attribute( 'data-wp-interactive', 'core/gallery' ); $processor->set_attribute( 'data-wp-context', wp_json_encode( array( 'galleryId' => $gallery_id ), JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP ) ); while ( $processor->next_tag( 'figure' ) ) { $wp_key = $processor->get_attribute( 'data-wp-key' ); if ( $wp_key && isset( $state['metadata'][ $wp_key ] ) ) { $alt = $state['metadata'][ $wp_key ]['alt']; wp_interactivity_state( 'core/image', array( 'metadata' => array( $wp_key => array( 'customAriaLabel' => empty( $alt ) /* translators: %1$s: current image index, %2$s: total number of images */ ? sprintf( __( 'Enlarged image %1$s of %2$s' ), $lightbox_index + 1, $total ) /* translators: %1$s: current image index, %2$s: total number of images, %3$s: Image alt text */ : sprintf( __( 'Enlarged image %1$s of %2$s: %3$s' ), $lightbox_index + 1, $total, $alt ), /* translators: %1$s: current image index, %2$s: total number of images */ 'triggerButtonAriaLabel' => sprintf( __( 'Enlarge %1$s of %2$s' ), $lightbox_index + 1, $total ), 'order' => $lightbox_index, ), ), ) ); ++$lightbox_index; } } return $processor->get_updated_html(); } return $updated_content; } /** * Registers the `core/gallery` block on server. * * @since 5.9.0 */ function register_block_core_gallery() { register_block_type_from_metadata( __DIR__ . '/gallery', array( 'render_callback' => 'block_core_gallery_render', ) ); } add_action( 'init', 'register_block_core_gallery' ); navigation-submenu/editor.css 0000775 00000006172 00000000000 0012333 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-navigation-submenu { display: block; } .wp-block-navigation-submenu .wp-block-navigation__submenu-container { z-index: 28; } .wp-block-navigation-submenu.is-selected > .wp-block-navigation__submenu-container, .wp-block-navigation-submenu.has-child-selected > .wp-block-navigation__submenu-container { visibility: visible !important; opacity: 1 !important; min-width: 200px !important; height: auto !important; width: auto !important; position: absolute; left: -1px; top: 100%; } @media (min-width: 782px) { .wp-block-navigation-submenu.is-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation-submenu.has-child-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { left: 100%; top: -1px; } .wp-block-navigation-submenu.is-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before, .wp-block-navigation-submenu.has-child-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before { content: ""; position: absolute; right: 100%; height: 100%; display: block; width: 0.5em; background: transparent; } } navigation-submenu/editor.min.css 0000775 00000002120 00000000000 0013102 0 ustar 00 .wp-block-navigation-submenu{display:block}.wp-block-navigation-submenu .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container{height:auto!important;left:-1px;min-width:200px!important;opacity:1!important;position:absolute;top:100%;visibility:visible!important;width:auto!important}@media (min-width:782px){.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{left:100%;top:-1px}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;position:absolute;right:100%;width:.5em}} navigation-submenu/editor-rtl.min.css 0000775 00000002121 00000000000 0013702 0 ustar 00 .wp-block-navigation-submenu{display:block}.wp-block-navigation-submenu .wp-block-navigation__submenu-container{z-index:28}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container{height:auto!important;min-width:200px!important;opacity:1!important;position:absolute;right:-1px;top:100%;visibility:visible!important;width:auto!important}@media (min-width:782px){.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container{right:100%;top:-1px}.wp-block-navigation-submenu.has-child-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before,.wp-block-navigation-submenu.is-selected>.wp-block-navigation__submenu-container .wp-block-navigation__submenu-container:before{background:transparent;content:"";display:block;height:100%;left:100%;position:absolute;width:.5em}} navigation-submenu/block.json 0000775 00000003442 00000000000 0012315 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/navigation-submenu", "title": "Submenu", "category": "design", "parent": [ "core/navigation" ], "description": "Add a submenu to your navigation.", "textdomain": "default", "attributes": { "label": { "type": "string", "role": "content" }, "type": { "type": "string" }, "description": { "type": "string" }, "rel": { "type": "string" }, "id": { "type": "number" }, "opensInNewTab": { "type": "boolean", "default": false }, "url": { "type": "string", "role": "content" }, "title": { "type": "string" }, "kind": { "type": "string" }, "isTopLevelItem": { "type": "boolean" }, "isParentSubmenu": { "type": "boolean", "default": true } }, "providesContext": { "core/isInsideSubmenu": "isParentSubmenu" }, "usesContext": [ "textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "maxNestingLevel", "openSubmenusOnClick", "submenuVisibility", "style" ], "supports": { "anchor": true, "reusable": false, "html": false, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-navigation-submenu-editor", "style": "wp-block-navigation-submenu" } navigation-submenu/editor-rtl.css 0000775 00000006173 00000000000 0013133 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-navigation-submenu { display: block; } .wp-block-navigation-submenu .wp-block-navigation__submenu-container { z-index: 28; } .wp-block-navigation-submenu.is-selected > .wp-block-navigation__submenu-container, .wp-block-navigation-submenu.has-child-selected > .wp-block-navigation__submenu-container { visibility: visible !important; opacity: 1 !important; min-width: 200px !important; height: auto !important; width: auto !important; position: absolute; right: -1px; top: 100%; } @media (min-width: 782px) { .wp-block-navigation-submenu.is-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container, .wp-block-navigation-submenu.has-child-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { right: 100%; top: -1px; } .wp-block-navigation-submenu.is-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before, .wp-block-navigation-submenu.has-child-selected > .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 100%; height: 100%; display: block; width: 0.5em; background: transparent; } } column/block.json 0000775 00000003120 00000000000 0007770 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/column", "title": "Column", "category": "design", "parent": [ "core/columns" ], "description": "A single column within a columns block.", "textdomain": "default", "attributes": { "verticalAlignment": { "type": "string" }, "width": { "type": "string" }, "templateLock": { "type": [ "string", "boolean" ], "enum": [ "all", "insert", "contentOnly", false ] } }, "supports": { "__experimentalOnEnter": true, "anchor": true, "reusable": false, "html": false, "color": { "gradients": true, "heading": true, "button": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "shadow": true, "spacing": { "blockGap": true, "padding": true, "__experimentalDefaultControls": { "padding": true, "blockGap": true } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "layout": true, "interactivity": { "clientNavigation": true }, "allowedBlocks": true } } post-content.php 0000775 00000005154 00000000000 0007665 0 ustar 00 <?php /** * Server-side rendering of the `core/post-content` block. * * @package WordPress */ /** * Renders the `core/post-content` block on the server. * * @since 5.8.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the filtered post content of the current post. */ function render_block_core_post_content( $attributes, $content, $block ) { static $seen_ids = array(); if ( ! isset( $block->context['postId'] ) ) { return ''; } $post_id = $block->context['postId']; if ( isset( $seen_ids[ $post_id ] ) ) { // WP_DEBUG_DISPLAY must only be honored when WP_DEBUG. This precedent // is set in `wp_debug_mode()`. $is_debug = WP_DEBUG && WP_DEBUG_DISPLAY; return $is_debug ? // translators: Visible only in the front end, this warning takes the place of a faulty block. __( '[block rendering halted]' ) : ''; } $seen_ids[ $post_id ] = true; // When inside the main loop, we want to use queried object // so that `the_preview` for the current post can apply. // We force this behavior by omitting the third argument (post ID) from the `get_the_content`. $content = get_the_content(); // Check for nextpage to display page links for paginated posts. if ( has_block( 'core/nextpage' ) ) { $content .= wp_link_pages( array( 'echo' => 0 ) ); } /** This filter is documented in wp-includes/post-template.php */ $content = apply_filters( 'the_content', str_replace( ']]>', ']]>', $content ) ); unset( $seen_ids[ $post_id ] ); if ( empty( $content ) ) { return ''; } $tag_name = 'div'; if ( isset( $attributes['tagName'] ) && is_string( $attributes['tagName'] ) ) { /** * The allowed tag names match the options offered in the editor. * * @see packages/block-library/src/post-content/edit.js */ $allowed_tag_names = array( 'div', 'main', 'section', 'article' ); $normalized_tag_name = strtolower( $attributes['tagName'] ); if ( in_array( $normalized_tag_name, $allowed_tag_names, true ) ) { $tag_name = $normalized_tag_name; } } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => 'entry-content' ) ); return sprintf( '<%1$s %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, $content ); } /** * Registers the `core/post-content` block on the server. * * @since 5.8.0 */ function register_block_core_post_content() { register_block_type_from_metadata( __DIR__ . '/post-content', array( 'render_callback' => 'render_block_core_post_content', ) ); } add_action( 'init', 'register_block_core_post_content' ); archives/style-rtl.css 0000775 00000000151 00000000000 0010764 0 ustar 00 .wp-block-archives { box-sizing: border-box; } .wp-block-archives-dropdown label { display: block; } archives/style.min.css 0000775 00000000131 00000000000 0010745 0 ustar 00 .wp-block-archives{box-sizing:border-box}.wp-block-archives-dropdown label{display:block} archives/block.json 0000775 00000002603 00000000000 0010304 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/archives", "title": "Archives", "category": "widgets", "description": "Display a date archive of your posts.", "textdomain": "default", "attributes": { "displayAsDropdown": { "type": "boolean", "default": false }, "showLabel": { "type": "boolean", "default": true }, "showPostCounts": { "type": "boolean", "default": false }, "type": { "type": "string", "default": "monthly" } }, "supports": { "anchor": true, "align": true, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true }, "html": false, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "interactivity": { "clientNavigation": true } } } archives/style-rtl.min.css 0000775 00000000131 00000000000 0011544 0 ustar 00 .wp-block-archives{box-sizing:border-box}.wp-block-archives-dropdown label{display:block} archives/style.css 0000775 00000000151 00000000000 0010165 0 ustar 00 .wp-block-archives { box-sizing: border-box; } .wp-block-archives-dropdown label { display: block; } comment-author-name/style-rtl.css 0000775 00000000073 00000000000 0013043 0 ustar 00 .wp-block-comment-author-name { box-sizing: border-box; } comment-author-name/style.min.css 0000775 00000000064 00000000000 0013026 0 ustar 00 .wp-block-comment-author-name{box-sizing:border-box} comment-author-name/block.json 0000775 00000002661 00000000000 0012364 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comment-author-name", "title": "Comment Author Name", "category": "theme", "ancestor": [ "core/comment-template" ], "description": "Displays the name of the author of the comment.", "textdomain": "default", "attributes": { "isLink": { "type": "boolean", "default": true }, "linkTarget": { "type": "string", "default": "_self" } }, "usesContext": [ "commentId" ], "supports": { "anchor": true, "html": false, "spacing": { "margin": true, "padding": true }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-comment-author-name" } comment-author-name/style-rtl.min.css 0000775 00000000064 00000000000 0013625 0 ustar 00 .wp-block-comment-author-name{box-sizing:border-box} comment-author-name/style.css 0000775 00000000073 00000000000 0012244 0 ustar 00 .wp-block-comment-author-name { box-sizing: border-box; } playlist/editor.css 0000775 00000000143 00000000000 0010351 0 ustar 00 .wp-block-playlist__waveform-color-controls { display: grid; grid-column: 1/-1; row-gap: 0; } playlist/editor.min.css 0000775 00000000124 00000000000 0011132 0 ustar 00 .wp-block-playlist__waveform-color-controls{display:grid;grid-column:1/-1;row-gap:0} playlist/style-rtl.css 0000775 00000026467 00000000000 0011043 0 ustar 00 .waveform-player { font-family: inherit; color: inherit; line-height: var(--waveform-line-height, 1.4); --wfp-accent: #71717a; --wfp-button-color: rgba(255, 255, 255, .9); --wfp-text-color: #ffffff; --wfp-text-secondary-color: rgba(255, 255, 255, .6); --wfp-btn-artwork-color: rgba(255, 255, 255, .9); --wfp-btn-artwork-scrim: rgba(0, 0, 0, .5); } .waveform-player.waveform-theme-light { --wfp-button-color: rgba(0, 0, 0, .8); --wfp-text-color: #333333; --wfp-text-secondary-color: rgba(0, 0, 0, .6); } .waveform-player * { box-sizing: border-box; } .waveform-body { display: flex; flex-direction: column; gap: var(--waveform-body-gap, 8px); } .waveform-track { display: flex; align-items: center; gap: var(--waveform-track-gap, 12px); position: relative; } .waveform-btn { width: var(--wfp-btn-size, 36px); height: var(--wfp-btn-size, 36px); min-width: var(--wfp-btn-size, 36px); border-radius: var(--wfp-btn-radius, 50%); border: 2px solid currentColor; background: transparent; color: var(--wfp-button-color, inherit); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; padding: 0; opacity: 0.9; flex-shrink: 0; } .waveform-btn:hover:not(:disabled) { opacity: 1; transform: scale(1.05); } .waveform-btn-minimal { width: calc(var(--wfp-btn-size, 36px) * 1.1); height: calc(var(--wfp-btn-size, 36px) * 1.1); min-width: calc(var(--wfp-btn-size, 36px) * 1.1); border: none; border-radius: 0; opacity: 0.7; } .waveform-btn-minimal:hover:not(:disabled) { opacity: 1; transform: none; } .waveform-btn.waveform-btn-minimal svg { width: calc(var(--wfp-btn-size, 36px) * 0.94); height: calc(var(--wfp-btn-size, 36px) * 0.94); } .waveform-btn:disabled { cursor: not-allowed; opacity: 0.3; } .waveform-btn > * { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; } .waveform-btn svg { width: calc(var(--wfp-btn-size, 36px) * 0.45); height: calc(var(--wfp-btn-size, 36px) * 0.45); fill: currentColor; display: block; } .waveform-btn-has-artwork { --wfp-btn-size: 64px; --wfp-btn-radius: 8px; position: relative; overflow: hidden; border: none; color: var(--wfp-btn-artwork-color); } .waveform-btn > .waveform-btn-artwork { display: block; position: absolute; inset: 0; width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; pointer-events: none; z-index: 0; } .waveform-btn-has-artwork:after { content: ""; position: absolute; inset: 0; background: var(--wfp-btn-artwork-scrim); pointer-events: none; z-index: 1; } .waveform-btn-has-artwork > :not(.waveform-btn-artwork) { position: relative; z-index: 2; } .waveform-icon-play svg { margin-right: 1px; } .waveform-container { flex: 1; position: relative; min-height: 60px; cursor: pointer; min-width: 0; width: 100%; } .waveform-container:focus-visible { outline: 2px solid currentColor; } .waveform-container canvas { display: block; width: 100%; height: 100%; max-width: 100%; transition: opacity 0.3s ease; position: relative; z-index: 1; } .waveform-info { display: flex; align-items: center; gap: 8px; font-size: 13px; min-height: 20px; } .waveform-text { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; } .waveform-title { color: var(--wfp-text-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500; } .waveform-artist { color: var(--wfp-text-secondary-color); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .waveform-time { color: var(--wfp-text-secondary-color); font-size: 11px; white-space: nowrap; flex-shrink: 0; } .waveform-bpm { color: var(--wfp-text-secondary-color); font-size: 11px; white-space: nowrap; flex-shrink: 0; display: inline-flex; align-items: center; gap: 4px; } .waveform-loading { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.1019607843); z-index: 10; } .waveform-error { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.2); z-index: 10; } .waveform-error-text { font-size: 12px; opacity: 0.7; text-align: center; padding: 0 20px; } .waveform-markers { position: absolute; inset: 0; pointer-events: none; z-index: 5; } .waveform-marker { position: absolute; top: 0; width: 2px; height: 100%; background: rgba(255, 255, 255, 0.5019607843); border: none; padding: 0; cursor: pointer; pointer-events: all; transition: all 0.2s; } .waveform-marker:hover { width: 4px; z-index: 20; } .waveform-marker.active { width: 4px; background: currentColor; z-index: 10; } .waveform-marker-tooltip { position: absolute; bottom: calc(100% + 4px); right: 50%; transform: translate(50%); background: rgba(0, 0, 0, 0.9019607843); color: #fff; padding: 4px 8px; border-radius: 4px; font-size: 11px; white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity 0.2s; z-index: 1000; } .waveform-marker:hover .waveform-marker-tooltip, .waveform-marker.show-label .waveform-marker-tooltip { opacity: 1; } .waveform-hover-time { position: absolute; bottom: calc(100% + 4px); transform: translate(50%); background: rgba(0, 0, 0, 0.9019607843); color: #fff; padding: 3px 7px; border-radius: 4px; font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity 0.15s; z-index: 1000; } .waveform-seek-handle { position: absolute; top: 50%; right: 0; width: 11px; height: 11px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3490196078); transform: translate(50%, -50%) scale(0); opacity: 0; transition: opacity 0.12s ease, transform 0.12s ease; pointer-events: none; z-index: 6; } .waveform-seek-handle.is-visible { opacity: 1; transform: translate(50%, -50%) scale(1); } .waveform-seek-handle.is-active { transform: translate(50%, -50%) scale(1.25); } .waveform-btn:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; } .waveform-marker:focus-visible { outline: 2px solid currentColor; outline-offset: 1px; width: 4px; } .waveform-speed { position: relative; flex-shrink: 0; } .speed-btn { background: transparent; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 4px; padding: 4px 8px; color: inherit; font-size: 11px; cursor: pointer; transition: all 0.2s; min-width: 40px; } .speed-btn:hover { background: rgba(255, 255, 255, 0.0509803922); border-color: rgba(255, 255, 255, 0.3019607843); } .speed-value { font-weight: 600; } .speed-menu { position: absolute; bottom: 100%; left: 0; margin-bottom: 4px; background: rgba(0, 0, 0, 0.9490196078); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 6px; padding: 4px; z-index: 100; min-width: 60px; } .speed-option { display: block; width: 100%; background: transparent; border: none; color: rgba(255, 255, 255, 0.7019607843); padding: 6px 12px; font-size: 12px; cursor: pointer; transition: all 0.2s; text-align: right; border-radius: 4px; } .speed-option:hover { background: rgba(255, 255, 255, 0.1019607843); color: #fff; } .speed-option.active { background: rgba(255, 255, 255, 0.1607843137); color: #fff; font-weight: 600; } .waveform-player.waveform-focused { outline: 2px solid var(--wfp-accent); outline-offset: 2px; border-radius: 4px; } .waveform-player:focus { outline: none; } .waveform-player:focus-visible { outline: 1px solid var(--wfp-accent); outline-offset: 1px; } .waveform-layout-preview .waveform-meta { display: none !important; } .waveform-layout-preview .waveform-info { justify-content: center; } .waveform-layout-preview .waveform-text { flex: 0 1 auto; align-items: center; text-align: center; } .waveform-player.waveform-focused { outline: none; } .waveform-track.waveform-align-top { align-items: flex-start; } .waveform-track.waveform-align-top .waveform-btn { margin-top: 5px; } .waveform-track.waveform-align-center { align-items: center; } .waveform-track.waveform-align-bottom { align-items: flex-end; } .waveform-track.waveform-align-bottom .waveform-btn { margin-bottom: 5px; } @media (max-width: 480px) { .waveform-btn { width: var(--wfp-btn-size, 32px); height: var(--wfp-btn-size, 32px); min-width: var(--wfp-btn-size, 32px); } .waveform-container { min-height: 50px; } .waveform-info { font-size: 12px; } .waveform-artist, .waveform-time, .waveform-bpm { font-size: 10px; } } @media (prefers-reduced-motion: reduce) { .waveform-player *, .waveform-player *:before, .waveform-player *:after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; } } .wp-block-playlist { box-sizing: border-box; } .wp-block-playlist .wp-block-playlist__waveform-player { width: 100%; margin: var(--wp--preset--spacing--20, 0.625em) 0; position: relative; } .wp-block-playlist .wp-block-playlist__waveform-player:focus-visible { outline: revert; outline-offset: revert; } .wp-block-playlist .waveform-track { height: 100px; gap: 0; } .wp-block-playlist .waveform-btn { border: none; border-radius: 0; border-end-start-radius: 0.125rem; border-start-start-radius: 0.125rem; width: 100px; height: 100px; min-width: 100px; background: currentColor; margin: 0; } .wp-block-playlist .waveform-btn:hover:not(:disabled) { transform: none; } .wp-block-playlist .waveform-btn svg { width: 3rem; height: 3rem; } .wp-block-playlist .waveform-btn .waveform-icon-pause svg { width: 2.625rem; height: 2.625rem; } .wp-block-playlist .waveform-player.has-play-button-artwork .waveform-btn { background-image: var(--wp--playlist--play-button-artwork); background-position: center; background-size: cover; color: #fff; } .wp-block-playlist .waveform-player.has-play-button-artwork .waveform-btn svg { filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45)); } .wp-block-playlist .waveform-player.has-play-button-artwork .waveform-btn svg path { fill: #fff !important; } .wp-block-playlist .waveform-track.waveform-align-bottom .waveform-btn { margin-bottom: 0; } .wp-block-playlist .waveform-btn:focus-visible, .wp-block-playlist .waveform-container:focus-visible { outline: revert; outline-offset: revert; } .wp-block-playlist .waveform-artist { opacity: 0.7; } .wp-block-playlist .waveform-info, .wp-block-playlist .waveform-artist, .wp-block-playlist .waveform-title, .wp-block-playlist .waveform-time { font-size: inherit; } .wp-block-playlist .wp-block-playlist__tracklist { margin: 0; padding-right: 0; list-style: none; } .wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-is-hidden { display: none; } .wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-artist-is-hidden .wp-block-playlist-track__artist { display: none; } .wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-length-is-hidden .wp-block-playlist-track__length { display: none; } .wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-show-numbers { counter-reset: playlist-track; } playlist/editor-rtl.min.css 0000775 00000000124 00000000000 0011731 0 ustar 00 .wp-block-playlist__waveform-color-controls{display:grid;grid-column:1/-1;row-gap:0} playlist/style.min.css 0000775 00000022343 00000000000 0011013 0 ustar 00 .waveform-player{--wfp-accent:#71717a;--wfp-button-color:hsla(0,0%,100%,.9);--wfp-text-color:#fff;--wfp-text-secondary-color:hsla(0,0%,100%,.6);--wfp-btn-artwork-color:hsla(0,0%,100%,.9);--wfp-btn-artwork-scrim:rgba(0,0,0,.5);color:inherit;font-family:inherit;line-height:var(--waveform-line-height,1.4)}.waveform-player.waveform-theme-light{--wfp-button-color:rgba(0,0,0,.8);--wfp-text-color:#333;--wfp-text-secondary-color:rgba(0,0,0,.6)}.waveform-player *{box-sizing:border-box}.waveform-body{display:flex;flex-direction:column;gap:var(--waveform-body-gap,8px)}.waveform-track{gap:var(--waveform-track-gap,12px);position:relative}.waveform-btn,.waveform-track{align-items:center;display:flex}.waveform-btn{background:transparent;border:2px solid;border-radius:var(--wfp-btn-radius,50%);color:var(--wfp-button-color,inherit);cursor:pointer;flex-shrink:0;height:var(--wfp-btn-size,36px);justify-content:center;min-width:var(--wfp-btn-size,36px);opacity:.9;padding:0;transition:all .2s ease;width:var(--wfp-btn-size,36px)}.waveform-btn:hover:not(:disabled){opacity:1;transform:scale(1.05)}.waveform-btn-minimal{border:none;border-radius:0;height:calc(var(--wfp-btn-size, 36px)*1.1);min-width:calc(var(--wfp-btn-size, 36px)*1.1);opacity:.7;width:calc(var(--wfp-btn-size, 36px)*1.1)}.waveform-btn-minimal:hover:not(:disabled){opacity:1;transform:none}.waveform-btn.waveform-btn-minimal svg{height:calc(var(--wfp-btn-size, 36px)*.94);width:calc(var(--wfp-btn-size, 36px)*.94)}.waveform-btn:disabled{cursor:not-allowed;opacity:.3}.waveform-btn>*{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.waveform-btn svg{fill:currentColor;display:block;height:calc(var(--wfp-btn-size, 36px)*.45);width:calc(var(--wfp-btn-size, 36px)*.45)}.waveform-btn-has-artwork{--wfp-btn-size:64px;--wfp-btn-radius:8px;border:none;color:var(--wfp-btn-artwork-color);overflow:hidden;position:relative}.waveform-btn>.waveform-btn-artwork{display:block;height:100%;inset:0;-o-object-fit:cover;object-fit:cover;pointer-events:none;position:absolute;width:100%;z-index:0}.waveform-btn-has-artwork:after{background:var(--wfp-btn-artwork-scrim);content:"";inset:0;pointer-events:none;position:absolute;z-index:1}.waveform-btn-has-artwork>:not(.waveform-btn-artwork){position:relative;z-index:2}.waveform-icon-play svg{margin-left:1px}.waveform-container{cursor:pointer;flex:1;min-height:60px;min-width:0;position:relative;width:100%}.waveform-container:focus-visible{outline:2px solid currentColor}.waveform-container canvas{display:block;height:100%;max-width:100%;position:relative;transition:opacity .3s ease;width:100%;z-index:1}.waveform-info{align-items:center;display:flex;font-size:13px;gap:8px;min-height:20px}.waveform-text{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.waveform-title{color:var(--wfp-text-color);font-weight:500}.waveform-artist,.waveform-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.waveform-artist{color:var(--wfp-text-secondary-color);font-size:11px}.waveform-bpm,.waveform-time{color:var(--wfp-text-secondary-color);flex-shrink:0;font-size:11px;white-space:nowrap}.waveform-bpm{align-items:center;display:inline-flex;gap:4px}.waveform-loading{background:rgba(0,0,0,.102)}.waveform-error,.waveform-loading{inset:0;position:absolute;z-index:10}.waveform-error{align-items:center;background:rgba(0,0,0,.2);display:flex;justify-content:center}.waveform-error-text{font-size:12px;opacity:.7;padding:0 20px;text-align:center}.waveform-markers{inset:0;pointer-events:none;position:absolute;z-index:5}.waveform-marker{background:hsla(0,0%,100%,.502);border:none;cursor:pointer;height:100%;padding:0;pointer-events:all;position:absolute;top:0;transition:all .2s;width:2px}.waveform-marker:hover{width:4px;z-index:20}.waveform-marker.active{background:currentColor;width:4px;z-index:10}.waveform-marker-tooltip{background:rgba(0,0,0,.902);border-radius:4px;bottom:calc(100% + 4px);color:#fff;font-size:11px;left:50%;opacity:0;padding:4px 8px;pointer-events:none;position:absolute;transform:translate(-50%);transition:opacity .2s;white-space:nowrap;z-index:1000}.waveform-marker.show-label .waveform-marker-tooltip,.waveform-marker:hover .waveform-marker-tooltip{opacity:1}.waveform-hover-time{background:rgba(0,0,0,.902);border-radius:4px;bottom:calc(100% + 4px);color:#fff;font-size:11px;font-variant-numeric:tabular-nums;padding:3px 7px;transform:translate(-50%);transition:opacity .15s;white-space:nowrap;z-index:1000}.waveform-hover-time,.waveform-seek-handle{opacity:0;pointer-events:none;position:absolute}.waveform-seek-handle{background:#fff;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,.349);height:11px;left:0;top:50%;transform:translate(-50%,-50%) scale(0);transition:opacity .12s ease,transform .12s ease;width:11px;z-index:6}.waveform-seek-handle.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.waveform-seek-handle.is-active{transform:translate(-50%,-50%) scale(1.25)}.waveform-btn:focus-visible{outline:2px solid currentColor;outline-offset:2px}.waveform-marker:focus-visible{outline:2px solid currentColor;outline-offset:1px;width:4px}.waveform-speed{flex-shrink:0;position:relative}.speed-btn{background:transparent;border:1px solid hsla(0,0%,100%,.2);border-radius:4px;color:inherit;cursor:pointer;font-size:11px;min-width:40px;padding:4px 8px;transition:all .2s}.speed-btn:hover{background:hsla(0,0%,100%,.051);border-color:hsla(0,0%,100%,.302)}.speed-value{font-weight:600}.speed-menu{background:rgba(0,0,0,.949);border:1px solid hsla(0,0%,100%,.2);border-radius:6px;bottom:100%;margin-bottom:4px;min-width:60px;padding:4px;position:absolute;right:0;z-index:100}.speed-option{background:transparent;border:none;border-radius:4px;color:hsla(0,0%,100%,.702);cursor:pointer;display:block;font-size:12px;padding:6px 12px;text-align:left;transition:all .2s;width:100%}.speed-option:hover{background:hsla(0,0%,100%,.102);color:#fff}.speed-option.active{background:hsla(0,0%,100%,.161);color:#fff;font-weight:600}.waveform-player.waveform-focused{border-radius:4px;outline:2px solid var(--wfp-accent);outline-offset:2px}.waveform-player:focus{outline:none}.waveform-player:focus-visible{outline:1px solid var(--wfp-accent);outline-offset:1px}.waveform-layout-preview .waveform-meta{display:none!important}.waveform-layout-preview .waveform-info{justify-content:center}.waveform-layout-preview .waveform-text{align-items:center;flex:0 1 auto;text-align:center}.waveform-player.waveform-focused{outline:none}.waveform-track.waveform-align-top{align-items:flex-start}.waveform-track.waveform-align-top .waveform-btn{margin-top:5px}.waveform-track.waveform-align-center{align-items:center}.waveform-track.waveform-align-bottom{align-items:flex-end}.waveform-track.waveform-align-bottom .waveform-btn{margin-bottom:5px}@media (max-width:480px){.waveform-btn{height:var(--wfp-btn-size,32px);min-width:var(--wfp-btn-size,32px);width:var(--wfp-btn-size,32px)}.waveform-container{min-height:50px}.waveform-info{font-size:12px}.waveform-artist,.waveform-bpm,.waveform-time{font-size:10px}}@media (prefers-reduced-motion:reduce){.waveform-player *,.waveform-player :after,.waveform-player :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.wp-block-playlist{box-sizing:border-box}.wp-block-playlist .wp-block-playlist__waveform-player{margin:var(--wp--preset--spacing--20,.625em) 0;position:relative;width:100%}.wp-block-playlist .wp-block-playlist__waveform-player:focus-visible{outline:revert;outline-offset:revert}.wp-block-playlist .waveform-track{gap:0;height:100px}.wp-block-playlist .waveform-btn{background:currentColor;border:none;border-end-start-radius:.125rem;border-radius:0;border-start-start-radius:.125rem;height:100px;margin:0;min-width:100px;width:100px}.wp-block-playlist .waveform-btn:hover:not(:disabled){transform:none}.wp-block-playlist .waveform-btn svg{height:3rem;width:3rem}.wp-block-playlist .waveform-btn .waveform-icon-pause svg{height:2.625rem;width:2.625rem}.wp-block-playlist .waveform-player.has-play-button-artwork .waveform-btn{background-image:var(--wp--playlist--play-button-artwork);background-position:50%;background-size:cover;color:#fff}.wp-block-playlist .waveform-player.has-play-button-artwork .waveform-btn svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}.wp-block-playlist .waveform-player.has-play-button-artwork .waveform-btn svg path{fill:#fff!important}.wp-block-playlist .waveform-track.waveform-align-bottom .waveform-btn{margin-bottom:0}.wp-block-playlist .waveform-btn:focus-visible,.wp-block-playlist .waveform-container:focus-visible{outline:revert;outline-offset:revert}.wp-block-playlist .waveform-artist{opacity:.7}.wp-block-playlist .waveform-artist,.wp-block-playlist .waveform-info,.wp-block-playlist .waveform-time,.wp-block-playlist .waveform-title{font-size:inherit}.wp-block-playlist .wp-block-playlist__tracklist{list-style:none;margin:0;padding-left:0}.wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-artist-is-hidden .wp-block-playlist-track__artist,.wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-is-hidden,.wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-length-is-hidden .wp-block-playlist-track__length{display:none}.wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-show-numbers{counter-reset:playlist-track} playlist/block.json 0000775 00000003734 00000000000 0010347 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/playlist", "title": "Playlist", "category": "media", "description": "Embed a simple playlist.", "keywords": [ "music", "sound" ], "textdomain": "default", "allowedBlocks": [ "core/playlist-track" ], "attributes": { "type": { "type": "string", "default": "audio" }, "order": { "type": "string", "default": "asc" }, "showTracklist": { "type": "boolean", "default": true }, "showImages": { "type": "boolean", "default": true }, "showPlayButtonArtwork": { "type": "boolean", "default": false }, "showArtists": { "type": "boolean", "default": true }, "showNumbers": { "type": "boolean", "default": true }, "showTrackLength": { "type": "boolean", "default": true }, "waveformStyle": { "type": "string", "enum": [ "bars", "mirror", "line", "blocks", "dots", "seekbar" ], "default": "bars" }, "waveformColor": { "type": "string" }, "waveformGradient": { "type": "string" }, "waveformBackgroundColor": { "type": "string" }, "waveformBackgroundGradient": { "type": "string" }, "caption": { "type": "string" } }, "providesContext": { "showArtists": "showArtists", "showImages": "showImages" }, "supports": { "anchor": true, "align": true, "__experimentalExposeControlsToChildren": true, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "__experimentalBorder": { "color": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "style": true, "width": true } }, "interactivity": true, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "__experimentalDefaultControls": { "fontSize": true } } }, "editorStyle": "wp-block-playlist-editor", "style": "wp-block-playlist" } playlist/style-rtl.min.css 0000775 00000022342 00000000000 0011611 0 ustar 00 .waveform-player{--wfp-accent:#71717a;--wfp-button-color:hsla(0,0%,100%,.9);--wfp-text-color:#fff;--wfp-text-secondary-color:hsla(0,0%,100%,.6);--wfp-btn-artwork-color:hsla(0,0%,100%,.9);--wfp-btn-artwork-scrim:rgba(0,0,0,.5);color:inherit;font-family:inherit;line-height:var(--waveform-line-height,1.4)}.waveform-player.waveform-theme-light{--wfp-button-color:rgba(0,0,0,.8);--wfp-text-color:#333;--wfp-text-secondary-color:rgba(0,0,0,.6)}.waveform-player *{box-sizing:border-box}.waveform-body{display:flex;flex-direction:column;gap:var(--waveform-body-gap,8px)}.waveform-track{gap:var(--waveform-track-gap,12px);position:relative}.waveform-btn,.waveform-track{align-items:center;display:flex}.waveform-btn{background:transparent;border:2px solid;border-radius:var(--wfp-btn-radius,50%);color:var(--wfp-button-color,inherit);cursor:pointer;flex-shrink:0;height:var(--wfp-btn-size,36px);justify-content:center;min-width:var(--wfp-btn-size,36px);opacity:.9;padding:0;transition:all .2s ease;width:var(--wfp-btn-size,36px)}.waveform-btn:hover:not(:disabled){opacity:1;transform:scale(1.05)}.waveform-btn-minimal{border:none;border-radius:0;height:calc(var(--wfp-btn-size, 36px)*1.1);min-width:calc(var(--wfp-btn-size, 36px)*1.1);opacity:.7;width:calc(var(--wfp-btn-size, 36px)*1.1)}.waveform-btn-minimal:hover:not(:disabled){opacity:1;transform:none}.waveform-btn.waveform-btn-minimal svg{height:calc(var(--wfp-btn-size, 36px)*.94);width:calc(var(--wfp-btn-size, 36px)*.94)}.waveform-btn:disabled{cursor:not-allowed;opacity:.3}.waveform-btn>*{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.waveform-btn svg{fill:currentColor;display:block;height:calc(var(--wfp-btn-size, 36px)*.45);width:calc(var(--wfp-btn-size, 36px)*.45)}.waveform-btn-has-artwork{--wfp-btn-size:64px;--wfp-btn-radius:8px;border:none;color:var(--wfp-btn-artwork-color);overflow:hidden;position:relative}.waveform-btn>.waveform-btn-artwork{display:block;height:100%;inset:0;-o-object-fit:cover;object-fit:cover;pointer-events:none;position:absolute;width:100%;z-index:0}.waveform-btn-has-artwork:after{background:var(--wfp-btn-artwork-scrim);content:"";inset:0;pointer-events:none;position:absolute;z-index:1}.waveform-btn-has-artwork>:not(.waveform-btn-artwork){position:relative;z-index:2}.waveform-icon-play svg{margin-right:1px}.waveform-container{cursor:pointer;flex:1;min-height:60px;min-width:0;position:relative;width:100%}.waveform-container:focus-visible{outline:2px solid currentColor}.waveform-container canvas{display:block;height:100%;max-width:100%;position:relative;transition:opacity .3s ease;width:100%;z-index:1}.waveform-info{align-items:center;display:flex;font-size:13px;gap:8px;min-height:20px}.waveform-text{display:flex;flex:1;flex-direction:column;gap:2px;min-width:0}.waveform-title{color:var(--wfp-text-color);font-weight:500}.waveform-artist,.waveform-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.waveform-artist{color:var(--wfp-text-secondary-color);font-size:11px}.waveform-bpm,.waveform-time{color:var(--wfp-text-secondary-color);flex-shrink:0;font-size:11px;white-space:nowrap}.waveform-bpm{align-items:center;display:inline-flex;gap:4px}.waveform-loading{background:rgba(0,0,0,.102)}.waveform-error,.waveform-loading{inset:0;position:absolute;z-index:10}.waveform-error{align-items:center;background:rgba(0,0,0,.2);display:flex;justify-content:center}.waveform-error-text{font-size:12px;opacity:.7;padding:0 20px;text-align:center}.waveform-markers{inset:0;pointer-events:none;position:absolute;z-index:5}.waveform-marker{background:hsla(0,0%,100%,.502);border:none;cursor:pointer;height:100%;padding:0;pointer-events:all;position:absolute;top:0;transition:all .2s;width:2px}.waveform-marker:hover{width:4px;z-index:20}.waveform-marker.active{background:currentColor;width:4px;z-index:10}.waveform-marker-tooltip{background:rgba(0,0,0,.902);border-radius:4px;bottom:calc(100% + 4px);color:#fff;font-size:11px;opacity:0;padding:4px 8px;pointer-events:none;position:absolute;right:50%;transform:translate(50%);transition:opacity .2s;white-space:nowrap;z-index:1000}.waveform-marker.show-label .waveform-marker-tooltip,.waveform-marker:hover .waveform-marker-tooltip{opacity:1}.waveform-hover-time{background:rgba(0,0,0,.902);border-radius:4px;bottom:calc(100% + 4px);color:#fff;font-size:11px;font-variant-numeric:tabular-nums;padding:3px 7px;transform:translate(50%);transition:opacity .15s;white-space:nowrap;z-index:1000}.waveform-hover-time,.waveform-seek-handle{opacity:0;pointer-events:none;position:absolute}.waveform-seek-handle{background:#fff;border-radius:50%;box-shadow:0 1px 4px rgba(0,0,0,.349);height:11px;right:0;top:50%;transform:translate(50%,-50%) scale(0);transition:opacity .12s ease,transform .12s ease;width:11px;z-index:6}.waveform-seek-handle.is-visible{opacity:1;transform:translate(50%,-50%) scale(1)}.waveform-seek-handle.is-active{transform:translate(50%,-50%) scale(1.25)}.waveform-btn:focus-visible{outline:2px solid currentColor;outline-offset:2px}.waveform-marker:focus-visible{outline:2px solid currentColor;outline-offset:1px;width:4px}.waveform-speed{flex-shrink:0;position:relative}.speed-btn{background:transparent;border:1px solid hsla(0,0%,100%,.2);border-radius:4px;color:inherit;cursor:pointer;font-size:11px;min-width:40px;padding:4px 8px;transition:all .2s}.speed-btn:hover{background:hsla(0,0%,100%,.051);border-color:hsla(0,0%,100%,.302)}.speed-value{font-weight:600}.speed-menu{background:rgba(0,0,0,.949);border:1px solid hsla(0,0%,100%,.2);border-radius:6px;bottom:100%;left:0;margin-bottom:4px;min-width:60px;padding:4px;position:absolute;z-index:100}.speed-option{background:transparent;border:none;border-radius:4px;color:hsla(0,0%,100%,.702);cursor:pointer;display:block;font-size:12px;padding:6px 12px;text-align:right;transition:all .2s;width:100%}.speed-option:hover{background:hsla(0,0%,100%,.102);color:#fff}.speed-option.active{background:hsla(0,0%,100%,.161);color:#fff;font-weight:600}.waveform-player.waveform-focused{border-radius:4px;outline:2px solid var(--wfp-accent);outline-offset:2px}.waveform-player:focus{outline:none}.waveform-player:focus-visible{outline:1px solid var(--wfp-accent);outline-offset:1px}.waveform-layout-preview .waveform-meta{display:none!important}.waveform-layout-preview .waveform-info{justify-content:center}.waveform-layout-preview .waveform-text{align-items:center;flex:0 1 auto;text-align:center}.waveform-player.waveform-focused{outline:none}.waveform-track.waveform-align-top{align-items:flex-start}.waveform-track.waveform-align-top .waveform-btn{margin-top:5px}.waveform-track.waveform-align-center{align-items:center}.waveform-track.waveform-align-bottom{align-items:flex-end}.waveform-track.waveform-align-bottom .waveform-btn{margin-bottom:5px}@media (max-width:480px){.waveform-btn{height:var(--wfp-btn-size,32px);min-width:var(--wfp-btn-size,32px);width:var(--wfp-btn-size,32px)}.waveform-container{min-height:50px}.waveform-info{font-size:12px}.waveform-artist,.waveform-bpm,.waveform-time{font-size:10px}}@media (prefers-reduced-motion:reduce){.waveform-player *,.waveform-player :after,.waveform-player :before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.wp-block-playlist{box-sizing:border-box}.wp-block-playlist .wp-block-playlist__waveform-player{margin:var(--wp--preset--spacing--20,.625em) 0;position:relative;width:100%}.wp-block-playlist .wp-block-playlist__waveform-player:focus-visible{outline:revert;outline-offset:revert}.wp-block-playlist .waveform-track{gap:0;height:100px}.wp-block-playlist .waveform-btn{background:currentColor;border:none;border-end-start-radius:.125rem;border-radius:0;border-start-start-radius:.125rem;height:100px;margin:0;min-width:100px;width:100px}.wp-block-playlist .waveform-btn:hover:not(:disabled){transform:none}.wp-block-playlist .waveform-btn svg{height:3rem;width:3rem}.wp-block-playlist .waveform-btn .waveform-icon-pause svg{height:2.625rem;width:2.625rem}.wp-block-playlist .waveform-player.has-play-button-artwork .waveform-btn{background-image:var(--wp--playlist--play-button-artwork);background-position:50%;background-size:cover;color:#fff}.wp-block-playlist .waveform-player.has-play-button-artwork .waveform-btn svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.45))}.wp-block-playlist .waveform-player.has-play-button-artwork .waveform-btn svg path{fill:#fff!important}.wp-block-playlist .waveform-track.waveform-align-bottom .waveform-btn{margin-bottom:0}.wp-block-playlist .waveform-btn:focus-visible,.wp-block-playlist .waveform-container:focus-visible{outline:revert;outline-offset:revert}.wp-block-playlist .waveform-artist{opacity:.7}.wp-block-playlist .waveform-artist,.wp-block-playlist .waveform-info,.wp-block-playlist .waveform-time,.wp-block-playlist .waveform-title{font-size:inherit}.wp-block-playlist .wp-block-playlist__tracklist{list-style:none;margin:0;padding-right:0}.wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-artist-is-hidden .wp-block-playlist-track__artist,.wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-is-hidden,.wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-length-is-hidden .wp-block-playlist-track__length{display:none}.wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-show-numbers{counter-reset:playlist-track} playlist/style.css 0000775 00000026470 00000000000 0010236 0 ustar 00 .waveform-player { font-family: inherit; color: inherit; line-height: var(--waveform-line-height, 1.4); --wfp-accent: #71717a; --wfp-button-color: rgba(255, 255, 255, .9); --wfp-text-color: #ffffff; --wfp-text-secondary-color: rgba(255, 255, 255, .6); --wfp-btn-artwork-color: rgba(255, 255, 255, .9); --wfp-btn-artwork-scrim: rgba(0, 0, 0, .5); } .waveform-player.waveform-theme-light { --wfp-button-color: rgba(0, 0, 0, .8); --wfp-text-color: #333333; --wfp-text-secondary-color: rgba(0, 0, 0, .6); } .waveform-player * { box-sizing: border-box; } .waveform-body { display: flex; flex-direction: column; gap: var(--waveform-body-gap, 8px); } .waveform-track { display: flex; align-items: center; gap: var(--waveform-track-gap, 12px); position: relative; } .waveform-btn { width: var(--wfp-btn-size, 36px); height: var(--wfp-btn-size, 36px); min-width: var(--wfp-btn-size, 36px); border-radius: var(--wfp-btn-radius, 50%); border: 2px solid currentColor; background: transparent; color: var(--wfp-button-color, inherit); cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.2s ease; padding: 0; opacity: 0.9; flex-shrink: 0; } .waveform-btn:hover:not(:disabled) { opacity: 1; transform: scale(1.05); } .waveform-btn-minimal { width: calc(var(--wfp-btn-size, 36px) * 1.1); height: calc(var(--wfp-btn-size, 36px) * 1.1); min-width: calc(var(--wfp-btn-size, 36px) * 1.1); border: none; border-radius: 0; opacity: 0.7; } .waveform-btn-minimal:hover:not(:disabled) { opacity: 1; transform: none; } .waveform-btn.waveform-btn-minimal svg { width: calc(var(--wfp-btn-size, 36px) * 0.94); height: calc(var(--wfp-btn-size, 36px) * 0.94); } .waveform-btn:disabled { cursor: not-allowed; opacity: 0.3; } .waveform-btn > * { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; } .waveform-btn svg { width: calc(var(--wfp-btn-size, 36px) * 0.45); height: calc(var(--wfp-btn-size, 36px) * 0.45); fill: currentColor; display: block; } .waveform-btn-has-artwork { --wfp-btn-size: 64px; --wfp-btn-radius: 8px; position: relative; overflow: hidden; border: none; color: var(--wfp-btn-artwork-color); } .waveform-btn > .waveform-btn-artwork { display: block; position: absolute; inset: 0; width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; pointer-events: none; z-index: 0; } .waveform-btn-has-artwork:after { content: ""; position: absolute; inset: 0; background: var(--wfp-btn-artwork-scrim); pointer-events: none; z-index: 1; } .waveform-btn-has-artwork > :not(.waveform-btn-artwork) { position: relative; z-index: 2; } .waveform-icon-play svg { margin-left: 1px; } .waveform-container { flex: 1; position: relative; min-height: 60px; cursor: pointer; min-width: 0; width: 100%; } .waveform-container:focus-visible { outline: 2px solid currentColor; } .waveform-container canvas { display: block; width: 100%; height: 100%; max-width: 100%; transition: opacity 0.3s ease; position: relative; z-index: 1; } .waveform-info { display: flex; align-items: center; gap: 8px; font-size: 13px; min-height: 20px; } .waveform-text { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; } .waveform-title { color: var(--wfp-text-color); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 500; } .waveform-artist { color: var(--wfp-text-secondary-color); font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .waveform-time { color: var(--wfp-text-secondary-color); font-size: 11px; white-space: nowrap; flex-shrink: 0; } .waveform-bpm { color: var(--wfp-text-secondary-color); font-size: 11px; white-space: nowrap; flex-shrink: 0; display: inline-flex; align-items: center; gap: 4px; } .waveform-loading { position: absolute; inset: 0; background: rgba(0, 0, 0, 0.1019607843); z-index: 10; } .waveform-error { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.2); z-index: 10; } .waveform-error-text { font-size: 12px; opacity: 0.7; text-align: center; padding: 0 20px; } .waveform-markers { position: absolute; inset: 0; pointer-events: none; z-index: 5; } .waveform-marker { position: absolute; top: 0; width: 2px; height: 100%; background: rgba(255, 255, 255, 0.5019607843); border: none; padding: 0; cursor: pointer; pointer-events: all; transition: all 0.2s; } .waveform-marker:hover { width: 4px; z-index: 20; } .waveform-marker.active { width: 4px; background: currentColor; z-index: 10; } .waveform-marker-tooltip { position: absolute; bottom: calc(100% + 4px); left: 50%; transform: translate(-50%); background: rgba(0, 0, 0, 0.9019607843); color: #fff; padding: 4px 8px; border-radius: 4px; font-size: 11px; white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity 0.2s; z-index: 1000; } .waveform-marker:hover .waveform-marker-tooltip, .waveform-marker.show-label .waveform-marker-tooltip { opacity: 1; } .waveform-hover-time { position: absolute; bottom: calc(100% + 4px); transform: translate(-50%); background: rgba(0, 0, 0, 0.9019607843); color: #fff; padding: 3px 7px; border-radius: 4px; font-size: 11px; font-variant-numeric: tabular-nums; white-space: nowrap; pointer-events: none; opacity: 0; transition: opacity 0.15s; z-index: 1000; } .waveform-seek-handle { position: absolute; top: 50%; left: 0; width: 11px; height: 11px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3490196078); transform: translate(-50%, -50%) scale(0); opacity: 0; transition: opacity 0.12s ease, transform 0.12s ease; pointer-events: none; z-index: 6; } .waveform-seek-handle.is-visible { opacity: 1; transform: translate(-50%, -50%) scale(1); } .waveform-seek-handle.is-active { transform: translate(-50%, -50%) scale(1.25); } .waveform-btn:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; } .waveform-marker:focus-visible { outline: 2px solid currentColor; outline-offset: 1px; width: 4px; } .waveform-speed { position: relative; flex-shrink: 0; } .speed-btn { background: transparent; border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 4px; padding: 4px 8px; color: inherit; font-size: 11px; cursor: pointer; transition: all 0.2s; min-width: 40px; } .speed-btn:hover { background: rgba(255, 255, 255, 0.0509803922); border-color: rgba(255, 255, 255, 0.3019607843); } .speed-value { font-weight: 600; } .speed-menu { position: absolute; bottom: 100%; right: 0; margin-bottom: 4px; background: rgba(0, 0, 0, 0.9490196078); border: 1px solid rgba(255, 255, 255, 0.2); border-radius: 6px; padding: 4px; z-index: 100; min-width: 60px; } .speed-option { display: block; width: 100%; background: transparent; border: none; color: rgba(255, 255, 255, 0.7019607843); padding: 6px 12px; font-size: 12px; cursor: pointer; transition: all 0.2s; text-align: left; border-radius: 4px; } .speed-option:hover { background: rgba(255, 255, 255, 0.1019607843); color: #fff; } .speed-option.active { background: rgba(255, 255, 255, 0.1607843137); color: #fff; font-weight: 600; } .waveform-player.waveform-focused { outline: 2px solid var(--wfp-accent); outline-offset: 2px; border-radius: 4px; } .waveform-player:focus { outline: none; } .waveform-player:focus-visible { outline: 1px solid var(--wfp-accent); outline-offset: 1px; } .waveform-layout-preview .waveform-meta { display: none !important; } .waveform-layout-preview .waveform-info { justify-content: center; } .waveform-layout-preview .waveform-text { flex: 0 1 auto; align-items: center; text-align: center; } .waveform-player.waveform-focused { outline: none; } .waveform-track.waveform-align-top { align-items: flex-start; } .waveform-track.waveform-align-top .waveform-btn { margin-top: 5px; } .waveform-track.waveform-align-center { align-items: center; } .waveform-track.waveform-align-bottom { align-items: flex-end; } .waveform-track.waveform-align-bottom .waveform-btn { margin-bottom: 5px; } @media (max-width: 480px) { .waveform-btn { width: var(--wfp-btn-size, 32px); height: var(--wfp-btn-size, 32px); min-width: var(--wfp-btn-size, 32px); } .waveform-container { min-height: 50px; } .waveform-info { font-size: 12px; } .waveform-artist, .waveform-time, .waveform-bpm { font-size: 10px; } } @media (prefers-reduced-motion: reduce) { .waveform-player *, .waveform-player *:before, .waveform-player *:after { transition-duration: 0.01ms !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; } } .wp-block-playlist { box-sizing: border-box; } .wp-block-playlist .wp-block-playlist__waveform-player { width: 100%; margin: var(--wp--preset--spacing--20, 0.625em) 0; position: relative; } .wp-block-playlist .wp-block-playlist__waveform-player:focus-visible { outline: revert; outline-offset: revert; } .wp-block-playlist .waveform-track { height: 100px; gap: 0; } .wp-block-playlist .waveform-btn { border: none; border-radius: 0; border-end-start-radius: 0.125rem; border-start-start-radius: 0.125rem; width: 100px; height: 100px; min-width: 100px; background: currentColor; margin: 0; } .wp-block-playlist .waveform-btn:hover:not(:disabled) { transform: none; } .wp-block-playlist .waveform-btn svg { width: 3rem; height: 3rem; } .wp-block-playlist .waveform-btn .waveform-icon-pause svg { width: 2.625rem; height: 2.625rem; } .wp-block-playlist .waveform-player.has-play-button-artwork .waveform-btn { background-image: var(--wp--playlist--play-button-artwork); background-position: center; background-size: cover; color: #fff; } .wp-block-playlist .waveform-player.has-play-button-artwork .waveform-btn svg { filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.45)); } .wp-block-playlist .waveform-player.has-play-button-artwork .waveform-btn svg path { fill: #fff !important; } .wp-block-playlist .waveform-track.waveform-align-bottom .waveform-btn { margin-bottom: 0; } .wp-block-playlist .waveform-btn:focus-visible, .wp-block-playlist .waveform-container:focus-visible { outline: revert; outline-offset: revert; } .wp-block-playlist .waveform-artist { opacity: 0.7; } .wp-block-playlist .waveform-info, .wp-block-playlist .waveform-artist, .wp-block-playlist .waveform-title, .wp-block-playlist .waveform-time { font-size: inherit; } .wp-block-playlist .wp-block-playlist__tracklist { margin: 0; padding-left: 0; list-style: none; } .wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-is-hidden { display: none; } .wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-artist-is-hidden .wp-block-playlist-track__artist { display: none; } .wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-length-is-hidden .wp-block-playlist-track__length { display: none; } .wp-block-playlist .wp-block-playlist__tracklist.wp-block-playlist__tracklist-show-numbers { counter-reset: playlist-track; } playlist/editor-rtl.css 0000775 00000000143 00000000000 0011150 0 ustar 00 .wp-block-playlist__waveform-color-controls { display: grid; grid-column: 1/-1; row-gap: 0; } tabs.php 0000775 00000007555 00000000000 0006170 0 ustar 00 <?php /** * Tabs Block * * @package WordPress */ /** * Extract tabs list from tab-panel innerblocks. * * @since 7.1.0 * * @param array $innerblocks Parsed inner blocks of tabs block. * @param string $tabs_id Unique ID for the tabs instance, used to generate tab IDs. * * @return array List of tab IDs. */ function block_core_tabs_generate_tabs_list( array $innerblocks = array(), string $tabs_id = '' ): array { $tabs_list = array(); // Find tab-panel block foreach ( $innerblocks as $inner_block ) { if ( 'core/tab-panels' === ( $inner_block['blockName'] ?? '' ) ) { $tab_index = 0; foreach ( $inner_block['innerBlocks'] ?? array() as $tab_block ) { if ( 'core/tab-panel' === ( $tab_block['blockName'] ?? '' ) ) { $attrs = $tab_block['attrs'] ?? array(); $tab_id = ! empty( $attrs['anchor'] ) ? $attrs['anchor'] : ( ! empty( $tabs_id ) ? $tabs_id . '-tab-' . $tab_index : 'tab-' . $tab_index ); $tabs_list[] = esc_attr( $tab_id ); ++$tab_index; } } break; } } return $tabs_list; } /** * Filter to provide tabs list context to core/tabs and core/tab-list blocks. * It is more performant to do this here, once, rather than in the tabs render and tabs context filters. * In this way core/tabs is both a provider and a consumer of the core/tabs-list context. * * @since 7.1.0 * * @param array $context Default block context. * @param array $parsed_block The block being rendered. * * @return array Modified context. */ function block_core_tabs_provide_context( array $context, array $parsed_block ): array { if ( 'core/tabs' === $parsed_block['blockName'] ) { // Generate a unique ID for the tabs instance first, so it can be used // to derive stable tab IDs. $tabs_id = $parsed_block['attrs']['anchor'] ?? wp_unique_id( 'tabs_' ); $tabs_list = block_core_tabs_generate_tabs_list( $parsed_block['innerBlocks'] ?? array(), $tabs_id ); $context['core/tabs-list'] = $tabs_list; $context['core/tabs-id'] = $tabs_id; } return $context; } add_filter( 'render_block_context', 'block_core_tabs_provide_context', 10, 2 ); /** * Render callback for core/tabs. * * @since 7.1.0 * * @param array $attributes Block attributes. * @param string $content Block content. * @param \WP_Block $block WP_Block instance. * * @return string Updated HTML. */ function block_core_tabs_render_block_callback( array $attributes, string $content, \WP_Block $block ): string { $active_tab_index = $attributes['activeTabIndex'] ?? 0; $tabs_list = $block->context['core/tabs-list'] ?? array(); $tabs_id = $block->context['core/tabs-id'] ?? null; if ( empty( $tabs_id ) ) { // If malformed tabs, return early to avoid errors. return ''; } $tag_processor = new WP_HTML_Tag_Processor( $content ); $tag_processor->next_tag( array( 'class_name' => 'wp-block-tabs' ) ); $tag_processor->set_attribute( 'data-wp-interactive', 'core/tabs' ); $tag_processor->set_attribute( 'data-wp-context', wp_json_encode( array( 'tabsId' => $tabs_id, 'activeTabIndex' => $active_tab_index, ) ) ); $tag_processor->set_attribute( 'data-wp-init', 'callbacks.onTabsInit' ); $tag_processor->set_attribute( 'data-wp-on--keydown', 'actions.handleTabKeyDown' ); $output = $tag_processor->get_updated_html(); /** * Builds a client side state for just this tabs instance, so each * core/tabs block manages its own state, like context. */ wp_interactivity_state( 'core/tabs', array( $tabs_id => $tabs_list, ) ); return $output; } /** * Registers the `core/tabs` block on the server. * * @since 7.1.0 */ function register_block_core_tabs() { register_block_type_from_metadata( __DIR__ . '/tabs', array( 'render_callback' => 'block_core_tabs_render_block_callback', ) ); } add_action( 'init', 'register_block_core_tabs' ); search/editor.css 0000775 00000000563 00000000000 0007763 0 ustar 00 .wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper { margin: auto; } .wp-block-search :where(.wp-block-search__button) { height: auto; border-radius: initial; display: flex; align-items: center; justify-content: center; text-align: center; } .wp-block-search__inspector-controls .components-base-control { margin-bottom: 0; } search/editor.min.css 0000775 00000000506 00000000000 0010542 0 ustar 00 .wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper{margin:auto}.wp-block-search :where(.wp-block-search__button){align-items:center;border-radius:initial;display:flex;height:auto;justify-content:center;text-align:center}.wp-block-search__inspector-controls .components-base-control{margin-bottom:0} search/style-rtl.css 0000775 00000007074 00000000000 0010440 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-search__button { margin-right: 10px; word-break: normal; } .wp-block-search__button.has-icon { line-height: 0; } .wp-block-search__button svg { min-width: 24px; min-height: 24px; width: 1.25em; height: 1.25em; fill: currentColor; vertical-align: text-bottom; } :where(.wp-block-search__button) { border: 1px solid #ccc; padding: 6px 10px; } .wp-block-search__inside-wrapper { display: flex; flex: auto; flex-wrap: nowrap; max-width: 100%; } .wp-block-search__label { width: 100%; } .wp-block-search.wp-block-search__button-only .wp-block-search__button { margin-right: 0; flex-shrink: 0; max-width: 100%; box-sizing: border-box; display: flex; justify-content: center; } .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper { transition-property: width; min-width: 0 !important; } .wp-block-search.wp-block-search__button-only .wp-block-search__input { transition-duration: 300ms; flex-basis: 100%; } .wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden { overflow: hidden; } .wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper { overflow: hidden; } .wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input { width: 0 !important; min-width: 0 !important; padding-right: 0 !important; padding-left: 0 !important; border-right-width: 0 !important; border-left-width: 0 !important; flex-grow: 0; margin: 0; flex-basis: 0; } :where(.wp-block-search__input) { font-family: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; font-style: inherit; padding: 8px; flex-grow: 1; margin-right: 0; margin-left: 0; min-width: 3rem; border: 1px solid #949494; text-decoration: unset !important; -webkit-appearance: initial; -moz-appearance: initial; appearance: initial; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) { padding: 4px; border-width: 1px; border-style: solid; border-color: #949494; background-color: #fff; box-sizing: border-box; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input { border-radius: 0; border: none; padding: 0 4px; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus { outline: none; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button) { padding: 4px 8px; } .wp-block-search.aligncenter .wp-block-search__inside-wrapper { margin: auto; } .wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper { float: left; } search/theme-rtl.min.css 0000775 00000000176 00000000000 0011160 0 ustar 00 .wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em} search/editor-rtl.min.css 0000775 00000000506 00000000000 0011341 0 ustar 00 .wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper{margin:auto}.wp-block-search :where(.wp-block-search__button){align-items:center;border-radius:initial;display:flex;height:auto;justify-content:center;text-align:center}.wp-block-search__inspector-controls .components-base-control{margin-bottom:0} search/style.min.css 0000775 00000004610 00000000000 0010414 0 ustar 00 .wp-block-search__button{margin-left:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;height:1.25em;min-height:24px;min-width:24px;vertical-align:text-bottom;width:1.25em}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button{box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;margin-left:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__input){-webkit-appearance:initial;-moz-appearance:initial;appearance:none;border:1px solid #949494;flex-grow:1;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important;text-transform:inherit}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){background-color:#fff;border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:right} search/theme-rtl.css 0000775 00000000225 00000000000 0010371 0 ustar 00 .wp-block-search .wp-block-search__label { font-weight: bold; } .wp-block-search__button { border: 1px solid #ccc; padding: 0.375em 0.625em; } search/block.json 0000775 00000005077 00000000000 0007755 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/search", "title": "Search", "category": "widgets", "description": "Help visitors find your content.", "keywords": [ "find" ], "textdomain": "default", "attributes": { "label": { "type": "string", "role": "content" }, "showLabel": { "type": "boolean", "default": true }, "placeholder": { "type": "string", "default": "", "role": "content" }, "width": { "type": "number" }, "widthUnit": { "type": "string" }, "buttonText": { "type": "string", "role": "content" }, "buttonPosition": { "type": "string", "default": "button-outside" }, "buttonUseIcon": { "type": "boolean", "default": false }, "query": { "type": "object", "default": {} }, "tagName": { "type": "string", "default": "" } }, "supports": { "anchor": true, "align": [ "left", "center", "right" ], "color": { "gradients": true, "__experimentalSkipSerialization": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "interactivity": true, "typography": { "__experimentalSkipSerialization": true, "__experimentalSelector": ".wp-block-search__label, .wp-block-search__input, .wp-block-search__button", "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "color": true, "radius": true, "width": true, "__experimentalSkipSerialization": true, "__experimentalDefaultControls": { "color": true, "radius": true, "width": true } }, "spacing": { "margin": true }, "html": false }, "editorStyle": "wp-block-search-editor", "style": "wp-block-search", "selectors": { "color": ".wp-block-search .wp-block-search__button, .wp-block-search.wp-block-search__no-button .wp-block-search__input", "border": ".wp-block-search.wp-block-search__button-outside .wp-block-search__input, .wp-block-search.wp-block-search__button-outside .wp-block-search__button, .wp-block-search.wp-block-search__no-button .wp-block-search__input, .wp-block-search.wp-block-search__button-only .wp-block-search__input, .wp-block-search.wp-block-search__button-only .wp-block-search__button, .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper" } } search/style-rtl.min.css 0000775 00000004611 00000000000 0011214 0 ustar 00 .wp-block-search__button{margin-right:10px;word-break:normal}.wp-block-search__button.has-icon{line-height:0}.wp-block-search__button svg{fill:currentColor;height:1.25em;min-height:24px;min-width:24px;vertical-align:text-bottom;width:1.25em}:where(.wp-block-search__button){border:1px solid #ccc;padding:6px 10px}.wp-block-search__inside-wrapper{display:flex;flex:auto;flex-wrap:nowrap;max-width:100%}.wp-block-search__label{width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__button{box-sizing:border-box;display:flex;flex-shrink:0;justify-content:center;margin-right:0;max-width:100%}.wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{min-width:0!important;transition-property:width}.wp-block-search.wp-block-search__button-only .wp-block-search__input{flex-basis:100%;transition-duration:.3s}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden,.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper{overflow:hidden}.wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input{border-left-width:0!important;border-right-width:0!important;flex-basis:0;flex-grow:0;margin:0;min-width:0!important;padding-left:0!important;padding-right:0!important;width:0!important}:where(.wp-block-search__input){-webkit-appearance:initial;-moz-appearance:initial;appearance:none;border:1px solid #949494;flex-grow:1;font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important;text-transform:inherit}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){background-color:#fff;border:1px solid #949494;box-sizing:border-box;padding:4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input{border:none;border-radius:0;padding:0 4px}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus{outline:none}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button){padding:4px 8px}.wp-block-search.aligncenter .wp-block-search__inside-wrapper{margin:auto}.wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper{float:left} search/style.css 0000775 00000007073 00000000000 0007640 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-search__button { margin-left: 10px; word-break: normal; } .wp-block-search__button.has-icon { line-height: 0; } .wp-block-search__button svg { min-width: 24px; min-height: 24px; width: 1.25em; height: 1.25em; fill: currentColor; vertical-align: text-bottom; } :where(.wp-block-search__button) { border: 1px solid #ccc; padding: 6px 10px; } .wp-block-search__inside-wrapper { display: flex; flex: auto; flex-wrap: nowrap; max-width: 100%; } .wp-block-search__label { width: 100%; } .wp-block-search.wp-block-search__button-only .wp-block-search__button { margin-left: 0; flex-shrink: 0; max-width: 100%; box-sizing: border-box; display: flex; justify-content: center; } .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper { transition-property: width; min-width: 0 !important; } .wp-block-search.wp-block-search__button-only .wp-block-search__input { transition-duration: 300ms; flex-basis: 100%; } .wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden { overflow: hidden; } .wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__inside-wrapper { overflow: hidden; } .wp-block-search.wp-block-search__button-only.wp-block-search__searchfield-hidden .wp-block-search__input { width: 0 !important; min-width: 0 !important; padding-left: 0 !important; padding-right: 0 !important; border-left-width: 0 !important; border-right-width: 0 !important; flex-grow: 0; margin: 0; flex-basis: 0; } :where(.wp-block-search__input) { font-family: inherit; font-weight: inherit; font-size: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; font-style: inherit; padding: 8px; flex-grow: 1; margin-left: 0; margin-right: 0; min-width: 3rem; border: 1px solid #949494; text-decoration: unset !important; -webkit-appearance: initial; -moz-appearance: initial; appearance: initial; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) { padding: 4px; border-width: 1px; border-style: solid; border-color: #949494; background-color: #fff; box-sizing: border-box; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input { border-radius: 0; border: none; padding: 0 4px; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) .wp-block-search__input:focus { outline: none; } :where(.wp-block-search__button-inside .wp-block-search__inside-wrapper) :where(.wp-block-search__button) { padding: 4px 8px; } .wp-block-search.aligncenter .wp-block-search__inside-wrapper { margin: auto; } .wp-block[data-align=right] .wp-block-search.wp-block-search__button-only .wp-block-search__inside-wrapper { float: right; } search/editor-rtl.css 0000775 00000000563 00000000000 0010562 0 ustar 00 .wp-block[data-align=center] .wp-block-search .wp-block-search__inside-wrapper { margin: auto; } .wp-block-search :where(.wp-block-search__button) { height: auto; border-radius: initial; display: flex; align-items: center; justify-content: center; text-align: center; } .wp-block-search__inspector-controls .components-base-control { margin-bottom: 0; } search/theme.css 0000775 00000000225 00000000000 0007572 0 ustar 00 .wp-block-search .wp-block-search__label { font-weight: bold; } .wp-block-search__button { border: 1px solid #ccc; padding: 0.375em 0.625em; } search/theme.min.css 0000775 00000000176 00000000000 0010361 0 ustar 00 .wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em} query-pagination/editor.css 0000775 00000000425 00000000000 0012007 0 ustar 00 .wp-block[data-align=center] > .wp-block-query-pagination { justify-content: center; } :where(.editor-styles-wrapper) .wp-block-query-pagination { max-width: 100%; } :where(.editor-styles-wrapper) .wp-block-query-pagination.block-editor-block-list__layout { margin: 0; } query-pagination/editor.min.css 0000775 00000000373 00000000000 0012573 0 ustar 00 .wp-block[data-align=center]>.wp-block-query-pagination{justify-content:center}:where(.editor-styles-wrapper) .wp-block-query-pagination{max-width:100%}:where(.editor-styles-wrapper) .wp-block-query-pagination.block-editor-block-list__layout{margin:0} query-pagination/style-rtl.css 0000775 00000001503 00000000000 0012456 0 ustar 00 .wp-block-query-pagination.is-content-justification-space-between > .wp-block-query-pagination-next:last-of-type { margin-inline-start: auto; } .wp-block-query-pagination.is-content-justification-space-between > .wp-block-query-pagination-previous:first-child { margin-inline-end: auto; } .wp-block-query-pagination .wp-block-query-pagination-previous-arrow { margin-left: 1ch; display: inline-block; } .wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron) { transform: scaleX(-1);; } .wp-block-query-pagination .wp-block-query-pagination-next-arrow { margin-right: 1ch; display: inline-block; } .wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron) { transform: scaleX(-1);; } .wp-block-query-pagination.aligncenter { justify-content: center; } query-pagination/editor-rtl.min.css 0000775 00000000373 00000000000 0013372 0 ustar 00 .wp-block[data-align=center]>.wp-block-query-pagination{justify-content:center}:where(.editor-styles-wrapper) .wp-block-query-pagination{max-width:100%}:where(.editor-styles-wrapper) .wp-block-query-pagination.block-editor-block-list__layout{margin:0} query-pagination/style.min.css 0000775 00000001374 00000000000 0012447 0 ustar 00 .wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{margin-inline-start:auto}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{margin-inline-end:auto}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow{display:inline-block;margin-right:1ch}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-query-pagination .wp-block-query-pagination-next-arrow{display:inline-block;margin-left:1ch}.wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-query-pagination.aligncenter{justify-content:center} query-pagination/block.json 0000775 00000003075 00000000000 0012000 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query-pagination", "title": "Pagination", "category": "theme", "ancestor": [ "core/query" ], "allowedBlocks": [ "core/query-pagination-previous", "core/query-pagination-numbers", "core/query-pagination-next" ], "description": "Displays a paginated navigation to next/previous set of posts, when applicable.", "textdomain": "default", "attributes": { "paginationArrow": { "type": "string", "default": "none" }, "showLabel": { "type": "boolean", "default": true } }, "usesContext": [ "queryId", "query" ], "providesContext": { "paginationArrow": "paginationArrow", "showLabel": "showLabel" }, "supports": { "anchor": true, "align": true, "reusable": false, "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "layout": { "allowSwitching": false, "allowInheriting": false, "default": { "type": "flex" } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-query-pagination-editor", "style": "wp-block-query-pagination" } query-pagination/style-rtl.min.css 0000775 00000001376 00000000000 0013250 0 ustar 00 .wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-next:last-of-type{margin-inline-start:auto}.wp-block-query-pagination.is-content-justification-space-between>.wp-block-query-pagination-previous:first-child{margin-inline-end:auto}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow{display:inline-block;margin-left:1ch}.wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-query-pagination .wp-block-query-pagination-next-arrow{display:inline-block;margin-right:1ch}.wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-query-pagination.aligncenter{justify-content:center} query-pagination/style.css 0000775 00000001547 00000000000 0011667 0 ustar 00 .wp-block-query-pagination.is-content-justification-space-between > .wp-block-query-pagination-next:last-of-type { margin-inline-start: auto; } .wp-block-query-pagination.is-content-justification-space-between > .wp-block-query-pagination-previous:first-child { margin-inline-end: auto; } .wp-block-query-pagination .wp-block-query-pagination-previous-arrow { margin-right: 1ch; display: inline-block; } .wp-block-query-pagination .wp-block-query-pagination-previous-arrow:not(.is-arrow-chevron) { transform: scaleX(1) /*rtl:scaleX(-1);*/; } .wp-block-query-pagination .wp-block-query-pagination-next-arrow { margin-left: 1ch; display: inline-block; } .wp-block-query-pagination .wp-block-query-pagination-next-arrow:not(.is-arrow-chevron) { transform: scaleX(1) /*rtl:scaleX(-1);*/; } .wp-block-query-pagination.aligncenter { justify-content: center; } query-pagination/editor-rtl.css 0000775 00000000425 00000000000 0012606 0 ustar 00 .wp-block[data-align=center] > .wp-block-query-pagination { justify-content: center; } :where(.editor-styles-wrapper) .wp-block-query-pagination { max-width: 100%; } :where(.editor-styles-wrapper) .wp-block-query-pagination.block-editor-block-list__layout { margin: 0; } comment-author-name.php 0000775 00000004130 00000000000 0011101 0 ustar 00 <?php /** * Server-side rendering of the `core/comment-author-name` block. * * @package WordPress */ /** * Renders the `core/comment-author-name` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Return the post comment's author. */ function render_block_core_comment_author_name( $attributes, $content, $block ) { if ( ! isset( $block->context['commentId'] ) ) { return ''; } $comment = get_comment( $block->context['commentId'] ); $commenter = wp_get_current_commenter(); $show_pending_links = isset( $commenter['comment_author'] ) && $commenter['comment_author']; if ( empty( $comment ) ) { return ''; } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); $comment_author = get_comment_author( $comment ); $link = get_comment_author_url( $comment ); if ( ! empty( $link ) && ! empty( $attributes['isLink'] ) && ! empty( $attributes['linkTarget'] ) ) { $comment_author = sprintf( '<a rel="external nofollow ugc" href="%1$s" target="%2$s" >%3$s</a>', esc_url( $link ), esc_attr( $attributes['linkTarget'] ), $comment_author ); } if ( '0' === $comment->comment_approved && ! $show_pending_links ) { $comment_author = wp_kses( $comment_author, array() ); } return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $comment_author ); } /** * Registers the `core/comment-author-name` block on the server. * * @since 6.0.0 */ function register_block_core_comment_author_name() { register_block_type_from_metadata( __DIR__ . '/comment-author-name', array( 'render_callback' => 'render_block_core_comment_author_name', ) ); } add_action( 'init', 'register_block_core_comment_author_name' ); search.php 0000775 00000062000 00000000000 0006466 0 ustar 00 <?php /** * Server-side rendering of the `core/search` block. * * @package WordPress */ /** * Dynamically renders the `core/search` block. * * @since 6.3.0 Using block.json `viewScript` to register script, and update `view_script_handles()` only when needed. * * @param array $attributes The block attributes. * * @return string The search block markup. */ function render_block_core_search( $attributes ) { // Older versions of the Search block defaulted the label and buttonText // attributes to `__( 'Search' )` meaning that many posts contain `<!-- // wp:search /-->`. Support these by defaulting an undefined label and // buttonText to `__( 'Search' )`. $attributes = wp_parse_args( $attributes, array( 'label' => __( 'Search' ), 'buttonText' => __( 'Search' ), ) ); $input_id = wp_unique_id( 'wp-block-search__input-' ); $classnames = classnames_for_block_core_search( $attributes ); $show_label = ! empty( $attributes['showLabel'] ); $use_icon_button = ! empty( $attributes['buttonUseIcon'] ); $show_button = ( ! empty( $attributes['buttonPosition'] ) && 'no-button' === $attributes['buttonPosition'] ) ? false : true; $button_position = $show_button ? $attributes['buttonPosition'] : null; $query_params = ( ! empty( $attributes['query'] ) ) ? $attributes['query'] : array(); $button = ''; $query_params_markup = ''; $inline_styles = styles_for_block_core_search( $attributes ); $color_classes = get_color_classes_for_block_core_search( $attributes ); $typography_classes = get_typography_classes_for_block_core_search( $attributes ); $is_button_inside = ! empty( $attributes['buttonPosition'] ) && 'button-inside' === $attributes['buttonPosition']; // Border color classes need to be applied to the elements that have a border color. $border_color_classes = get_border_color_classes_for_block_core_search( $attributes ); // This variable is a constant and its value is always false at this moment. // It is defined this way because some values depend on it, in case it changes in the future. $open_by_default = false; $label_inner_html = empty( $attributes['label'] ) ? __( 'Search' ) : wp_kses_post( $attributes['label'] ); $label = new WP_HTML_Tag_Processor( sprintf( '<label %1$s>%2$s</label>', $inline_styles['label'], $label_inner_html ) ); if ( $label->next_tag() ) { $label->set_attribute( 'for', $input_id ); $label->add_class( 'wp-block-search__label' ); if ( $show_label && ! empty( $attributes['label'] ) ) { if ( ! empty( $typography_classes ) ) { $label->add_class( $typography_classes ); } } else { $label->add_class( 'screen-reader-text' ); } } $input = new WP_HTML_Tag_Processor( sprintf( '<input type="search" name="s" required %s/>', $inline_styles['input'] ) ); $input_classes = array( 'wp-block-search__input' ); if ( ! $is_button_inside && ! empty( $border_color_classes ) ) { $input_classes[] = $border_color_classes; } if ( ! empty( $typography_classes ) ) { $input_classes[] = $typography_classes; } if ( ! $show_button && ! empty( $color_classes ) ) { $input_classes[] = $color_classes; } if ( $input->next_tag() ) { $input->add_class( implode( ' ', $input_classes ) ); $input->set_attribute( 'id', $input_id ); $input->set_attribute( 'value', get_search_query( false ) ); $input->set_attribute( 'placeholder', $attributes['placeholder'] ); // If it's interactive, enqueue the script module and add the directives. $is_expandable_searchfield = 'button-only' === $button_position; if ( $is_expandable_searchfield ) { wp_enqueue_script_module( '@wordpress/block-library/search/view' ); $input->set_attribute( 'data-wp-bind--aria-hidden', '!context.isSearchInputVisible' ); $input->set_attribute( 'data-wp-bind--tabindex', 'state.tabindex' ); // Adding these attributes manually is needed until the Interactivity API // SSR logic is added to core. $input->set_attribute( 'aria-hidden', 'true' ); $input->set_attribute( 'tabindex', '-1' ); } } if ( count( $query_params ) > 0 ) { foreach ( $query_params as $param => $value ) { $query_params_markup .= sprintf( '<input type="hidden" name="%s" value="%s" />', esc_attr( $param ), esc_attr( $value ) ); } } if ( $show_button ) { $button_classes = array( 'wp-block-search__button' ); $button_internal_markup = ''; if ( ! empty( $color_classes ) ) { $button_classes[] = $color_classes; } if ( ! empty( $typography_classes ) ) { $button_classes[] = $typography_classes; } if ( ! $is_button_inside && ! empty( $border_color_classes ) ) { $button_classes[] = $border_color_classes; } if ( ! $use_icon_button ) { if ( ! empty( $attributes['buttonText'] ) ) { $button_internal_markup = wp_kses_post( $attributes['buttonText'] ); } } else { $button_classes[] = 'has-icon'; $button_internal_markup = '<svg class="search-icon" viewBox="0 0 24 24" width="24" height="24"> <path d="M13 5c-3.3 0-6 2.7-6 6 0 1.4.5 2.7 1.3 3.7l-3.8 3.8 1.1 1.1 3.8-3.8c1 .8 2.3 1.3 3.7 1.3 3.3 0 6-2.7 6-6S16.3 5 13 5zm0 10.5c-2.5 0-4.5-2-4.5-4.5s2-4.5 4.5-4.5 4.5 2 4.5 4.5-2 4.5-4.5 4.5z"></path> </svg>'; } // Include the button element class. $button_classes[] = wp_theme_get_element_class_name( 'button' ); $button = new WP_HTML_Tag_Processor( sprintf( '<button type="submit" %s>%s</button>', $inline_styles['button'], $button_internal_markup ) ); if ( $button->next_tag() ) { $button->add_class( implode( ' ', $button_classes ) ); if ( 'button-only' === $attributes['buttonPosition'] ) { $button->set_attribute( 'data-wp-bind--aria-label', 'state.ariaLabel' ); $button->set_attribute( 'data-wp-bind--aria-controls', 'state.ariaControls' ); $button->set_attribute( 'data-wp-bind--aria-expanded', 'context.isSearchInputVisible' ); $button->set_attribute( 'data-wp-bind--type', 'state.type' ); $button->set_attribute( 'data-wp-on--click', 'actions.openSearchInput' ); // Adding these attributes manually is needed until the Interactivity // API SSR logic is added to core. $button->set_attribute( 'aria-label', __( 'Expand search field' ) ); $button->set_attribute( 'aria-controls', 'wp-block-search__input-' . $input_id ); $button->set_attribute( 'aria-expanded', 'false' ); $button->set_attribute( 'type', 'button' ); } else { $button->set_attribute( 'aria-label', wp_strip_all_tags( $attributes['buttonText'] ) ); } } } $field_markup_classes = array( 'wp-block-search__inside-wrapper', ); if ( $is_button_inside && ! empty( $border_color_classes ) ) { $field_markup_classes[] = $border_color_classes; } $field_markup = sprintf( '<div class="%s" %s>%s</div>', esc_attr( implode( ' ', $field_markup_classes ) ), $inline_styles['wrapper'], $input . $query_params_markup . $button ); $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classnames ) ); $form_directives = ''; // If it's interactive, add the directives. if ( $is_expandable_searchfield ) { $aria_label_expanded = __( 'Submit Search' ); $aria_label_collapsed = __( 'Expand search field' ); $form_context = wp_interactivity_data_wp_context( array( 'isSearchInputVisible' => $open_by_default, 'inputId' => $input_id, 'ariaLabelExpanded' => $aria_label_expanded, 'ariaLabelCollapsed' => $aria_label_collapsed, ) ); $form_directives = ' data-wp-interactive="core/search" ' . $form_context . ' data-wp-class--wp-block-search__searchfield-hidden="!context.isSearchInputVisible" data-wp-on--keydown="actions.handleSearchKeydown" data-wp-on--focusout="actions.handleSearchFocusout" '; } /* * The semantic <search> landmark wrapper is opt-in to preserve back * compatibility with themes targeting <form role="search">. The block * exposes a per-instance HTML element selector with three values: * * - 'search' forces the <search> wrapper * - 'form' forces the original <form role="search"> markup * - empty defers to the 'search-element' html5 sub-feature * ( add_theme_support( 'html5', array( 'search-element' ) ) ), * matching the opt-in added to get_search_form() in core */ $tag_name = $attributes['tagName'] ?? ''; $use_search_element = 'search' === $tag_name || ( '' === $tag_name && current_theme_supports( 'html5', 'search-element' ) ); /* * Only the wrapper markup differs between the semantic <search> landmark * and the classic <form role="search">. Positional specifiers keep a * single argument list usable by both formats, since the action URL * precedes the wrapper attributes in the <search> variant. */ $format = $use_search_element ? '<search %2$s %3$s><form method="get" action="%1$s">%4$s</form></search>' : '<form role="search" method="get" action="%1$s" %2$s %3$s>%4$s</form>'; return sprintf( $format, esc_url( home_url( '/' ) ), $wrapper_attributes, $form_directives, $label . $field_markup ); } /** * Registers the `core/search` block on the server. * * @since 5.2.0 */ function register_block_core_search() { register_block_type_from_metadata( __DIR__ . '/search', array( 'render_callback' => 'render_block_core_search', ) ); } add_action( 'init', 'register_block_core_search' ); /** * Builds the correct top level classnames for the 'core/search' block. * * @since 5.6.0 * * @param array $attributes The block attributes. * * @return string The classnames used in the block. */ function classnames_for_block_core_search( $attributes ) { $classnames = array(); if ( ! empty( $attributes['buttonPosition'] ) ) { if ( 'button-inside' === $attributes['buttonPosition'] ) { $classnames[] = 'wp-block-search__button-inside'; } if ( 'button-outside' === $attributes['buttonPosition'] ) { $classnames[] = 'wp-block-search__button-outside'; } if ( 'no-button' === $attributes['buttonPosition'] ) { $classnames[] = 'wp-block-search__no-button'; } if ( 'button-only' === $attributes['buttonPosition'] ) { $classnames[] = 'wp-block-search__button-only wp-block-search__searchfield-hidden'; } } if ( isset( $attributes['buttonUseIcon'] ) ) { if ( ! empty( $attributes['buttonPosition'] ) && 'no-button' !== $attributes['buttonPosition'] ) { if ( $attributes['buttonUseIcon'] ) { $classnames[] = 'wp-block-search__icon-button'; } else { $classnames[] = 'wp-block-search__text-button'; } } } return implode( ' ', $classnames ); } /** * This generates a CSS rule for the given border property and side if provided. * Based on whether the Search block is configured to display the button inside * or not, the generated rule is injected into the appropriate collection of * styles for later application in the block's markup. * * @since 6.1.0 * * @param array $attributes The block attributes. * @param string $property Border property to generate rule for e.g. width or color. * @param string $side Optional side border. The dictates the value retrieved and final CSS property. * @param array $wrapper_styles Current collection of wrapper styles. * @param array $button_styles Current collection of button styles. * @param array $input_styles Current collection of input styles. */ function apply_block_core_search_border_style( $attributes, $property, $side, &$wrapper_styles, &$button_styles, &$input_styles ) { $is_button_inside = isset( $attributes['buttonPosition'] ) && 'button-inside' === $attributes['buttonPosition']; $path = array( 'style', 'border', $property ); if ( $side ) { array_splice( $path, 2, 0, $side ); } $value = _wp_array_get( $attributes, $path, false ); if ( empty( $value ) ) { return; } if ( 'color' === $property && $side ) { $has_color_preset = str_contains( $value, 'var:preset|color|' ); if ( $has_color_preset ) { $named_color_value = substr( $value, strrpos( $value, '|' ) + 1 ); $value = sprintf( 'var(--wp--preset--color--%s)', $named_color_value ); } } $property_suffix = $side ? sprintf( '%s-%s', $side, $property ) : $property; if ( $is_button_inside ) { $wrapper_styles[] = sprintf( 'border-%s: %s;', $property_suffix, esc_attr( $value ) ); } else { $button_styles[] = sprintf( 'border-%s: %s;', $property_suffix, esc_attr( $value ) ); $input_styles[] = sprintf( 'border-%s: %s;', $property_suffix, esc_attr( $value ) ); } } /** * This adds CSS rules for a given border property e.g. width or color. It * injects rules into the provided wrapper, button and input style arrays for * uniform "flat" borders or those with individual sides configured. * * @since 6.1.0 * * @param array $attributes The block attributes. * @param string $property Border property to generate rule for e.g. width or color. * @param array $wrapper_styles Current collection of wrapper styles. * @param array $button_styles Current collection of button styles. * @param array $input_styles Current collection of input styles. */ function apply_block_core_search_border_styles( $attributes, $property, &$wrapper_styles, &$button_styles, &$input_styles ) { apply_block_core_search_border_style( $attributes, $property, null, $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_style( $attributes, $property, 'top', $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_style( $attributes, $property, 'right', $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_style( $attributes, $property, 'bottom', $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_style( $attributes, $property, 'left', $wrapper_styles, $button_styles, $input_styles ); } /** * Builds an array of inline styles for the search block. * * The result will contain one entry for shared styles such as those for the * inner input or button and a second for the inner wrapper should the block * be positioning the button "inside". * * @since 5.8.0 * * @param array $attributes The block attributes. * * @return array Style HTML attribute. */ function styles_for_block_core_search( $attributes ) { $wrapper_styles = array(); $button_styles = array(); $input_styles = array(); $label_styles = array(); $is_button_inside = ! empty( $attributes['buttonPosition'] ) && 'button-inside' === $attributes['buttonPosition']; $show_label = ( isset( $attributes['showLabel'] ) ) && false !== $attributes['showLabel']; // Add width styles. $has_width = ! empty( $attributes['width'] ) && ! empty( $attributes['widthUnit'] ); if ( $has_width ) { $wrapper_styles[] = sprintf( 'width: %d%s;', esc_attr( $attributes['width'] ), esc_attr( $attributes['widthUnit'] ) ); } // Add border width and color styles. apply_block_core_search_border_styles( $attributes, 'width', $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_styles( $attributes, 'color', $wrapper_styles, $button_styles, $input_styles ); apply_block_core_search_border_styles( $attributes, 'style', $wrapper_styles, $button_styles, $input_styles ); // Add border radius styles. $has_border_radius = ! empty( $attributes['style']['border']['radius'] ); if ( $has_border_radius ) { $default_padding = '4px'; $border_radius = $attributes['style']['border']['radius']; if ( is_array( $border_radius ) ) { // Apply styles for individual corner border radii. foreach ( $border_radius as $key => $value ) { // Get border-radius CSS variable from preset value if provided. if ( is_string( $value ) && str_contains( $value, 'var:preset|border-radius|' ) ) { $index_to_splice = strrpos( $value, '|' ) + 1; $slug = _wp_to_kebab_case( substr( $value, $index_to_splice ) ); $value = "var(--wp--preset--border-radius--$slug)"; } if ( null !== $value ) { // Convert camelCase key to kebab-case. $name = strtolower( preg_replace( '/(?<!^)[A-Z]/', '-$0', $key ) ); // Add shared styles for individual border radii for input & button. $border_style = sprintf( 'border-%s-radius: %s;', esc_attr( $name ), esc_attr( $value ) ); $input_styles[] = $border_style; $button_styles[] = $border_style; // Add adjusted border radius styles for the wrapper element // if button is positioned inside. if ( $is_button_inside && ( intval( $value ) !== 0 || str_contains( $value, 'var(--wp--preset--border-radius--' ) ) ) { $wrapper_styles[] = sprintf( 'border-%s-radius: calc(%s + %s);', esc_attr( $name ), esc_attr( $value ), $default_padding ); } } } } else { // Numeric check is for backwards compatibility purposes. $border_radius = is_numeric( $border_radius ) ? $border_radius . 'px' : $border_radius; // Get border-radius CSS variable from preset value if provided. if ( is_string( $border_radius ) && str_contains( $border_radius, 'var:preset|border-radius|' ) ) { $index_to_splice = strrpos( $border_radius, '|' ) + 1; $slug = _wp_to_kebab_case( substr( $border_radius, $index_to_splice ) ); $border_radius = "var(--wp--preset--border-radius--$slug)"; } $border_style = sprintf( 'border-radius: %s;', esc_attr( $border_radius ) ); $input_styles[] = $border_style; $button_styles[] = $border_style; if ( $is_button_inside && intval( $border_radius ) !== 0 ) { // Adjust wrapper border radii to maintain visual consistency // with inner elements when button is positioned inside. $wrapper_styles[] = sprintf( 'border-radius: calc(%s + %s);', esc_attr( $border_radius ), $default_padding ); } } } $use_input_for_colors = ! empty( $attributes['buttonPosition'] ) && 'no-button' === $attributes['buttonPosition']; // Add color styles. $has_text_color = ! empty( $attributes['style']['color']['text'] ); if ( $has_text_color ) { $text_color_style = sprintf( 'color: %s;', $attributes['style']['color']['text'] ); if ( $use_input_for_colors ) { $input_styles[] = $text_color_style; } else { $button_styles[] = $text_color_style; } } $has_background_color = ! empty( $attributes['style']['color']['background'] ); if ( $has_background_color ) { $background_color_style = sprintf( 'background-color: %s;', $attributes['style']['color']['background'] ); if ( $use_input_for_colors ) { $input_styles[] = $background_color_style; } else { $button_styles[] = $background_color_style; } } $has_custom_gradient = ! empty( $attributes['style']['color']['gradient'] ); if ( $has_custom_gradient ) { $custom_gradient_style = sprintf( 'background: %s;', $attributes['style']['color']['gradient'] ); if ( $use_input_for_colors ) { $input_styles[] = $custom_gradient_style; } else { $button_styles[] = $custom_gradient_style; } } // Get typography styles to be shared across inner elements. $typography_styles = esc_attr( get_typography_styles_for_block_core_search( $attributes ) ); if ( ! empty( $typography_styles ) ) { $label_styles [] = $typography_styles; $button_styles[] = $typography_styles; $input_styles [] = $typography_styles; } // Typography text-decoration is only applied to the label and button. if ( ! empty( $attributes['style']['typography']['textDecoration'] ) ) { $text_decoration_value = sprintf( 'text-decoration: %s;', esc_attr( $attributes['style']['typography']['textDecoration'] ) ); $button_styles[] = $text_decoration_value; // Input opts out of text decoration. if ( $show_label ) { $label_styles[] = $text_decoration_value; } } return array( 'input' => ! empty( $input_styles ) ? sprintf( ' style="%s"', esc_attr( safecss_filter_attr( implode( ' ', $input_styles ) ) ) ) : '', 'button' => ! empty( $button_styles ) ? sprintf( ' style="%s"', esc_attr( safecss_filter_attr( implode( ' ', $button_styles ) ) ) ) : '', 'wrapper' => ! empty( $wrapper_styles ) ? sprintf( ' style="%s"', esc_attr( safecss_filter_attr( implode( ' ', $wrapper_styles ) ) ) ) : '', 'label' => ! empty( $label_styles ) ? sprintf( ' style="%s"', esc_attr( safecss_filter_attr( implode( ' ', $label_styles ) ) ) ) : '', ); } /** * Returns typography classnames depending on whether there are named font sizes/families. * * @since 6.1.0 * * @param array $attributes The block attributes. * * @return string The typography color classnames to be applied to the block elements. */ function get_typography_classes_for_block_core_search( $attributes ) { $typography_classes = array(); $has_named_font_family = ! empty( $attributes['fontFamily'] ); $has_named_font_size = ! empty( $attributes['fontSize'] ); if ( $has_named_font_size ) { $typography_classes[] = sprintf( 'has-%s-font-size', esc_attr( $attributes['fontSize'] ) ); } if ( $has_named_font_family ) { $typography_classes[] = sprintf( 'has-%s-font-family', esc_attr( $attributes['fontFamily'] ) ); } return implode( ' ', $typography_classes ); } /** * Returns typography styles to be included in an HTML style tag. * This excludes text-decoration, which is applied only to the label and button elements of the search block. * * @since 6.1.0 * * @param array $attributes The block attributes. * * @return string A string of typography CSS declarations. */ function get_typography_styles_for_block_core_search( $attributes ) { $typography_styles = array(); // Add typography styles. if ( ! empty( $attributes['style']['typography']['fontSize'] ) ) { $typography_styles[] = sprintf( 'font-size: %s;', wp_get_typography_font_size_value( array( 'size' => $attributes['style']['typography']['fontSize'], ) ) ); } if ( ! empty( $attributes['style']['typography']['fontFamily'] ) ) { $typography_styles[] = sprintf( 'font-family: %s;', $attributes['style']['typography']['fontFamily'] ); } if ( ! empty( $attributes['style']['typography']['letterSpacing'] ) ) { $typography_styles[] = sprintf( 'letter-spacing: %s;', $attributes['style']['typography']['letterSpacing'] ); } if ( ! empty( $attributes['style']['typography']['fontWeight'] ) ) { $typography_styles[] = sprintf( 'font-weight: %s;', $attributes['style']['typography']['fontWeight'] ); } if ( ! empty( $attributes['style']['typography']['fontStyle'] ) ) { $typography_styles[] = sprintf( 'font-style: %s;', $attributes['style']['typography']['fontStyle'] ); } if ( ! empty( $attributes['style']['typography']['lineHeight'] ) ) { $typography_styles[] = sprintf( 'line-height: %s;', $attributes['style']['typography']['lineHeight'] ); } if ( ! empty( $attributes['style']['typography']['textTransform'] ) ) { $typography_styles[] = sprintf( 'text-transform: %s;', $attributes['style']['typography']['textTransform'] ); } return implode( '', $typography_styles ); } /** * Returns border color classnames depending on whether there are named or custom border colors. * * @since 5.9.0 * * @param array $attributes The block attributes. * * @return string The border color classnames to be applied to the block elements. */ function get_border_color_classes_for_block_core_search( $attributes ) { $border_color_classes = array(); $has_custom_border_color = ! empty( $attributes['style']['border']['color'] ); $has_named_border_color = ! empty( $attributes['borderColor'] ); if ( $has_custom_border_color || $has_named_border_color ) { $border_color_classes[] = 'has-border-color'; } if ( $has_named_border_color ) { $border_color_classes[] = sprintf( 'has-%s-border-color', esc_attr( $attributes['borderColor'] ) ); } return implode( ' ', $border_color_classes ); } /** * Returns color classnames depending on whether there are named or custom text and background colors. * * @since 5.9.0 * * @param array $attributes The block attributes. * * @return string The color classnames to be applied to the block elements. */ function get_color_classes_for_block_core_search( $attributes ) { $classnames = array(); // Text color. $has_named_text_color = ! empty( $attributes['textColor'] ); $has_custom_text_color = ! empty( $attributes['style']['color']['text'] ); if ( $has_named_text_color ) { $classnames[] = sprintf( 'has-text-color has-%s-color', $attributes['textColor'] ); } elseif ( $has_custom_text_color ) { // If a custom 'textColor' was selected instead of a preset, still add the generic `has-text-color` class. $classnames[] = 'has-text-color'; } // Background color. $has_named_background_color = ! empty( $attributes['backgroundColor'] ); $has_custom_background_color = ! empty( $attributes['style']['color']['background'] ); $has_named_gradient = ! empty( $attributes['gradient'] ); $has_custom_gradient = ! empty( $attributes['style']['color']['gradient'] ); if ( $has_named_background_color || $has_custom_background_color || $has_named_gradient || $has_custom_gradient ) { $classnames[] = 'has-background'; } if ( $has_named_background_color ) { $classnames[] = sprintf( 'has-%s-background-color', $attributes['backgroundColor'] ); } if ( $has_named_gradient ) { $classnames[] = sprintf( 'has-%s-gradient-background', $attributes['gradient'] ); } return implode( ' ', $classnames ); } legacy-widget.php 0000775 00000007653 00000000000 0007763 0 ustar 00 <?php /** * Server-side rendering of the `core/legacy-widget` block. * * @package WordPress */ /** * Renders the 'core/legacy-widget' block. * * @since 5.8.0 * * @global WP_Widget_Factory $wp_widget_factory. * * @param array $attributes The block attributes. * * @return string Rendered block. */ function render_block_core_legacy_widget( $attributes ) { global $wp_widget_factory; if ( isset( $attributes['id'] ) ) { $sidebar_id = wp_find_widgets_sidebar( $attributes['id'] ); return wp_render_widget( $attributes['id'], $sidebar_id ); } if ( ! isset( $attributes['idBase'] ) ) { return ''; } $id_base = $attributes['idBase']; $widget_key = $wp_widget_factory->get_widget_key( $id_base ); $widget_object = $wp_widget_factory->get_widget_object( $id_base ); if ( ! $widget_key || ! $widget_object ) { return ''; } if ( isset( $attributes['instance']['encoded'], $attributes['instance']['hash'] ) ) { $serialized_instance = base64_decode( $attributes['instance']['encoded'] ); if ( ! hash_equals( wp_hash( $serialized_instance ), (string) $attributes['instance']['hash'] ) ) { return ''; } $instance = unserialize( $serialized_instance ); } else { $instance = array(); } $args = array( 'widget_id' => $widget_object->id, 'widget_name' => $widget_object->name, ); ob_start(); the_widget( $widget_key, $instance, $args ); return ob_get_clean(); } /** * Registers the 'core/legacy-widget' block. * * @since 5.8.0 */ function register_block_core_legacy_widget() { register_block_type_from_metadata( __DIR__ . '/legacy-widget', array( 'render_callback' => 'render_block_core_legacy_widget', ) ); } add_action( 'init', 'register_block_core_legacy_widget' ); /** * Intercepts any request with legacy-widget-preview in the query param and, if * set, renders a page containing a preview of the requested Legacy Widget * block. * * @since 5.8.0 */ function handle_legacy_widget_preview_iframe() { if ( empty( $_GET['legacy-widget-preview'] ) ) { return; } if ( ! current_user_can( 'edit_theme_options' ) ) { return; } define( 'IFRAME_REQUEST', true ); ?> <!doctype html> <html <?php language_attributes(); ?>> <head> <meta charset="<?php bloginfo( 'charset' ); ?>" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <link rel="profile" href="https://gmpg.org/xfn/11" /> <?php wp_head(); ?> <style> /* Reset theme styles */ html, body, #page, #content { padding: 0 !important; margin: 0 !important; } /* Hide root level text nodes */ body { font-size: 0 !important; } /* Hide non-widget elements */ body *:not(#page):not(#content):not(.widget):not(.widget *) { display: none !important; font-size: 0 !important; height: 0 !important; left: -9999px !important; max-height: 0 !important; max-width: 0 !important; opacity: 0 !important; pointer-events: none !important; position: absolute !important; top: -9999px !important; transform: translate(-9999px, -9999px) !important; visibility: hidden !important; z-index: -999 !important; } /* Restore widget font-size */ .widget { font-size: var(--global--font-size-base); } </style> </head> <body <?php body_class(); ?>> <div id="page" class="site"> <div id="content" class="site-content"> <?php $registry = WP_Block_Type_Registry::get_instance(); $block = $registry->get_registered( 'core/legacy-widget' ); echo $block->render( $_GET['legacy-widget-preview'] ); ?> </div><!-- #content --> </div><!-- #page --> <?php wp_footer(); ?> </body> </html> <?php exit; } // Use admin_init instead of init to ensure get_current_screen function is already available. // This isn't strictly required, but enables better compatibility with existing plugins. // See: https://github.com/WordPress/gutenberg/issues/32624. add_action( 'admin_init', 'handle_legacy_widget_preview_iframe', 20 ); file/editor.css 0000775 00000001575 00000000000 0007441 0 ustar 00 .wp-block[data-align=left] > .wp-block-file, .wp-block[data-align=right] > .wp-block-file { height: auto; } .wp-block[data-align=center] > .wp-block-file { text-align: center; } .wp-block-file { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; margin-bottom: 0; } .wp-block-file .components-resizable-box__container { margin-bottom: 1em; } .wp-block-file .wp-block-file__preview { margin-bottom: 1em; width: 100%; height: 100%; } .wp-block-file .wp-block-file__preview-overlay { position: absolute; top: 0; right: 0; bottom: 0; left: 0; } .wp-block-file .wp-block-file__content-wrapper { flex-grow: 1; } .wp-block-file a { min-width: 1em; } .wp-block-file a:not(.wp-block-file__button) { display: inline-block; } .wp-block-file .wp-block-file__button-richtext-wrapper { display: inline-block; margin-left: 0.75em; } file/editor.min.css 0000775 00000001372 00000000000 0010216 0 ustar 00 .wp-block[data-align=left]>.wp-block-file,.wp-block[data-align=right]>.wp-block-file{height:auto}.wp-block[data-align=center]>.wp-block-file{text-align:center}.wp-block-file{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:0}.wp-block-file .components-resizable-box__container{margin-bottom:1em}.wp-block-file .wp-block-file__preview{height:100%;margin-bottom:1em;width:100%}.wp-block-file .wp-block-file__preview-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.wp-block-file .wp-block-file__content-wrapper{flex-grow:1}.wp-block-file a{min-width:1em}.wp-block-file a:not(.wp-block-file__button){display:inline-block}.wp-block-file .wp-block-file__button-richtext-wrapper{display:inline-block;margin-left:.75em} file/style-rtl.css 0000775 00000001410 00000000000 0010076 0 ustar 00 /** * Colors */ .wp-block-file { box-sizing: border-box; } .wp-block-file:not(.wp-element-button) { font-size: 0.8em; } .wp-block-file.aligncenter { text-align: center; } .wp-block-file.alignright { text-align: right; } .wp-block-file * + .wp-block-file__button { margin-right: 0.75em; } :where(.wp-block-file) { margin-bottom: 1.5em; } .wp-block-file__embed { margin-bottom: 1em; } :where(.wp-block-file__button) { border-radius: 2em; padding: 0.5em 1em; display: inline-block; } :where(.wp-block-file__button):where(a):hover, :where(.wp-block-file__button):where(a):visited, :where(.wp-block-file__button):where(a):focus, :where(.wp-block-file__button):where(a):active { box-shadow: none; color: #fff; opacity: 0.85; text-decoration: none; } file/editor-rtl.min.css 0000775 00000001373 00000000000 0011016 0 ustar 00 .wp-block[data-align=left]>.wp-block-file,.wp-block[data-align=right]>.wp-block-file{height:auto}.wp-block[data-align=center]>.wp-block-file{text-align:center}.wp-block-file{align-items:center;display:flex;flex-wrap:wrap;justify-content:space-between;margin-bottom:0}.wp-block-file .components-resizable-box__container{margin-bottom:1em}.wp-block-file .wp-block-file__preview{height:100%;margin-bottom:1em;width:100%}.wp-block-file .wp-block-file__preview-overlay{bottom:0;left:0;position:absolute;right:0;top:0}.wp-block-file .wp-block-file__content-wrapper{flex-grow:1}.wp-block-file a{min-width:1em}.wp-block-file a:not(.wp-block-file__button){display:inline-block}.wp-block-file .wp-block-file__button-richtext-wrapper{display:inline-block;margin-right:.75em} file/style.min.css 0000775 00000001216 00000000000 0010065 0 ustar 00 .wp-block-file{box-sizing:border-box}.wp-block-file:not(.wp-element-button){font-size:.8em}.wp-block-file.aligncenter{text-align:center}.wp-block-file.alignright{text-align:right}.wp-block-file *+.wp-block-file__button{margin-left:.75em}:where(.wp-block-file){margin-bottom:1.5em}.wp-block-file__embed{margin-bottom:1em}:where(.wp-block-file__button){border-radius:2em;display:inline-block;padding:.5em 1em}:where(.wp-block-file__button):where(a):active,:where(.wp-block-file__button):where(a):focus,:where(.wp-block-file__button):where(a):hover,:where(.wp-block-file__button):where(a):visited{box-shadow:none;color:#fff;opacity:.85;text-decoration:none} file/block.json 0000775 00000003530 00000000000 0007417 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/file", "title": "File", "category": "media", "description": "Add a link to a downloadable file.", "keywords": [ "document", "pdf", "download" ], "textdomain": "default", "attributes": { "id": { "type": "number" }, "blob": { "type": "string", "role": "local" }, "href": { "type": "string", "role": "content" }, "fileId": { "type": "string", "source": "attribute", "selector": "a:not([download])", "attribute": "id" }, "fileName": { "type": "rich-text", "source": "rich-text", "selector": "a:not([download])", "role": "content" }, "textLinkHref": { "type": "string", "source": "attribute", "selector": "a:not([download])", "attribute": "href", "role": "content" }, "textLinkTarget": { "type": "string", "source": "attribute", "selector": "a:not([download])", "attribute": "target" }, "showDownloadButton": { "type": "boolean", "default": true }, "downloadButtonText": { "type": "rich-text", "source": "rich-text", "selector": "a[download]", "role": "content" }, "displayPreview": { "type": "boolean" }, "previewHeight": { "type": "number", "default": 600 } }, "supports": { "anchor": true, "align": true, "spacing": { "margin": true, "padding": true }, "color": { "gradients": true, "link": true, "text": false, "__experimentalDefaultControls": { "background": true, "link": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } }, "interactivity": true }, "editorStyle": "wp-block-file-editor", "style": "wp-block-file" } file/style-rtl.min.css 0000775 00000001217 00000000000 0010665 0 ustar 00 .wp-block-file{box-sizing:border-box}.wp-block-file:not(.wp-element-button){font-size:.8em}.wp-block-file.aligncenter{text-align:center}.wp-block-file.alignright{text-align:right}.wp-block-file *+.wp-block-file__button{margin-right:.75em}:where(.wp-block-file){margin-bottom:1.5em}.wp-block-file__embed{margin-bottom:1em}:where(.wp-block-file__button){border-radius:2em;display:inline-block;padding:.5em 1em}:where(.wp-block-file__button):where(a):active,:where(.wp-block-file__button):where(a):focus,:where(.wp-block-file__button):where(a):hover,:where(.wp-block-file__button):where(a):visited{box-shadow:none;color:#fff;opacity:.85;text-decoration:none} file/style.css 0000775 00000001430 00000000000 0007301 0 ustar 00 /** * Colors */ .wp-block-file { box-sizing: border-box; } .wp-block-file:not(.wp-element-button) { font-size: 0.8em; } .wp-block-file.aligncenter { text-align: center; } .wp-block-file.alignright { /*rtl:ignore*/ text-align: right; } .wp-block-file * + .wp-block-file__button { margin-left: 0.75em; } :where(.wp-block-file) { margin-bottom: 1.5em; } .wp-block-file__embed { margin-bottom: 1em; } :where(.wp-block-file__button) { border-radius: 2em; padding: 0.5em 1em; display: inline-block; } :where(.wp-block-file__button):where(a):hover, :where(.wp-block-file__button):where(a):visited, :where(.wp-block-file__button):where(a):focus, :where(.wp-block-file__button):where(a):active { box-shadow: none; color: #fff; opacity: 0.85; text-decoration: none; } file/editor-rtl.css 0000775 00000001576 00000000000 0010241 0 ustar 00 .wp-block[data-align=left] > .wp-block-file, .wp-block[data-align=right] > .wp-block-file { height: auto; } .wp-block[data-align=center] > .wp-block-file { text-align: center; } .wp-block-file { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; margin-bottom: 0; } .wp-block-file .components-resizable-box__container { margin-bottom: 1em; } .wp-block-file .wp-block-file__preview { margin-bottom: 1em; width: 100%; height: 100%; } .wp-block-file .wp-block-file__preview-overlay { position: absolute; top: 0; left: 0; bottom: 0; right: 0; } .wp-block-file .wp-block-file__content-wrapper { flex-grow: 1; } .wp-block-file a { min-width: 1em; } .wp-block-file a:not(.wp-block-file__button) { display: inline-block; } .wp-block-file .wp-block-file__button-richtext-wrapper { display: inline-block; margin-right: 0.75em; } tab-panel/style-rtl.css 0000775 00000000126 00000000000 0011025 0 ustar 00 .wp-block-tab-panel[hidden], .wp-block-tab-panel:empty { display: none !important; } tab-panel/style.min.css 0000775 00000000115 00000000000 0011006 0 ustar 00 .wp-block-tab-panel:empty,.wp-block-tab-panel[hidden]{display:none!important} tab-panel/block.json 0000775 00000001662 00000000000 0010347 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/tab-panel", "title": "Tab Panel", "description": "Content for a tab in a tabbed interface.", "category": "design", "textdomain": "default", "attributes": { "label": { "type": "string", "default": "" } }, "parent": [ "core/tab-panels" ], "usesContext": [ "core/tabs-id" ], "supports": { "anchor": true, "html": false, "color": { "background": true, "text": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "layout": true, "spacing": { "blockGap": true, "padding": true }, "typography": { "fontSize": true, "__experimentalFontFamily": true, "__experimentalDefaultControls": { "fontSize": true, "__experimentalFontFamily": true } }, "visibility": false }, "providesContext": { "core/tab-label": "label" }, "style": "wp-block-tab-panel" } tab-panel/style-rtl.min.css 0000775 00000000115 00000000000 0011605 0 ustar 00 .wp-block-tab-panel:empty,.wp-block-tab-panel[hidden]{display:none!important} tab-panel/style.css 0000775 00000000126 00000000000 0010226 0 ustar 00 .wp-block-tab-panel[hidden], .wp-block-tab-panel:empty { display: none !important; } file.php 0000775 00000003527 00000000000 0006151 0 ustar 00 <?php /** * Server-side rendering of the `core/file` block. * * @package WordPress */ /** * When the `core/file` block is rendering, check if we need to enqueue the `wp-block-file-view` script. * * @since 5.8.0 * * @param array $attributes The block attributes. * @param string $content The block content. * * @return string Returns the block content. */ function render_block_core_file( $attributes, $content ) { if ( empty( $attributes['displayPreview'] ) ) { return $content; } // If it's interactive, enqueue the script module and add the directives. wp_enqueue_script_module( '@wordpress/block-library/file/view' ); $processor = new WP_HTML_Tag_Processor( $content ); if ( $processor->next_tag() ) { $processor->set_attribute( 'data-wp-interactive', 'core/file' ); } // If there are no OBJECT elements, something might have already modified the block. if ( ! $processor->next_tag( 'OBJECT' ) ) { return $content; } $processor->set_attribute( 'data-wp-bind--hidden', '!state.hasPdfPreview' ); $processor->set_attribute( 'hidden', true ); $filename = $processor->get_attribute( 'aria-label' ); $has_filename = is_string( $filename ) && ! empty( $filename ) && 'PDF embed' !== $filename; $label = $has_filename ? sprintf( /* translators: %s: filename. */ __( 'Embed of %s.' ), $filename ) : __( 'PDF embed' ); // Update object's aria-label attribute if present in block HTML. // Match an aria-label attribute from an object tag. $processor->set_attribute( 'aria-label', $label ); return $processor->get_updated_html(); } /** * Registers the `core/file` block on server. * * @since 5.8.0 */ function register_block_core_file() { register_block_type_from_metadata( __DIR__ . '/file', array( 'render_callback' => 'render_block_core_file', ) ); } add_action( 'init', 'register_block_core_file' ); block.php 0000775 00000006062 00000000000 0006321 0 ustar 00 <?php /** * Server-side rendering of the `core/block` block. * * @package WordPress */ /** * Renders the `core/block` block on server. * * @since 5.0.0 * * @global WP_Embed $wp_embed * * @param array $attributes The block attributes. * * @return string Rendered HTML of the referenced block. */ function render_block_core_block( $attributes, $content, $block_instance ) { static $seen_refs = array(); if ( empty( $attributes['ref'] ) ) { return ''; } $reusable_block = get_post( $attributes['ref'] ); if ( ! $reusable_block || 'wp_block' !== $reusable_block->post_type ) { return ''; } if ( isset( $seen_refs[ $attributes['ref'] ] ) ) { // WP_DEBUG_DISPLAY must only be honored when WP_DEBUG. This precedent // is set in `wp_debug_mode()`. $is_debug = WP_DEBUG && WP_DEBUG_DISPLAY; return $is_debug ? // translators: Visible only in the front end, this warning takes the place of a faulty block. __( '[block rendering halted]' ) : ''; } if ( 'publish' !== $reusable_block->post_status || ! empty( $reusable_block->post_password ) ) { return ''; } $seen_refs[ $attributes['ref'] ] = true; // Handle embeds for reusable blocks. global $wp_embed; $content = $wp_embed->run_shortcode( $reusable_block->post_content ); $content = $wp_embed->autoembed( $content ); // Back compat. // For blocks that have not been migrated in the editor, add some back compat // so that front-end rendering continues to work. // This matches the `v2` deprecation. Removes the inner `values` property // from every item. if ( isset( $attributes['content'] ) ) { foreach ( $attributes['content'] as &$content_data ) { if ( isset( $content_data['values'] ) ) { $is_assoc_array = is_array( $content_data['values'] ) && ! wp_is_numeric_array( $content_data['values'] ); if ( $is_assoc_array ) { $content_data = $content_data['values']; } } } } // This matches the `v1` deprecation. Rename `overrides` to `content`. if ( isset( $attributes['overrides'] ) && ! isset( $attributes['content'] ) ) { $attributes['content'] = $attributes['overrides']; } // Apply Block Hooks. $content = apply_block_hooks_to_content_from_post_object( $content, $reusable_block ); /** * We attach the blocks from $content as inner blocks to the Synced Pattern block instance. * This ensures that block context available to the Synced Pattern block instance is provided to * those blocks. */ $block_instance->parsed_block['innerBlocks'] = parse_blocks( $content ); $block_instance->parsed_block['innerContent'] = array_fill( 0, count( $block_instance->parsed_block['innerBlocks'] ), null ); $block_instance->refresh_context_dependents(); $content = $block_instance->render( array( 'dynamic' => false ) ); unset( $seen_refs[ $attributes['ref'] ] ); return $content; } /** * Registers the `core/block` block. * * @since 5.3.0 */ function register_block_core_block() { register_block_type_from_metadata( __DIR__ . '/block', array( 'render_callback' => 'render_block_core_block', ) ); } add_action( 'init', 'register_block_core_block' ); template-part/editor.css 0000775 00000006776 00000000000 0011311 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-editor-template-part__selection-modal { z-index: 1000001; } .block-editor-template-part__selection-modal .block-editor-block-patterns-list { -moz-column-count: 2; column-count: 2; -moz-column-gap: 24px; column-gap: 24px; } @media (min-width: 1280px) { .block-editor-template-part__selection-modal .block-editor-block-patterns-list { -moz-column-count: 3; column-count: 3; } } .block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item { -moz-column-break-inside: avoid; break-inside: avoid-column; } .block-library-template-part__selection-search { background: #fff; position: sticky; top: 0; padding: 16px 0; z-index: 2; } .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-highlighted::after, .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-selected::after, .block-editor-block-list__block:not(.remove-outline).is-reusable.is-highlighted::after, .block-editor-block-list__block:not(.remove-outline).is-reusable.is-selected::after { outline-color: var(--wp-block-synced-color); } .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus::after, .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus::after { outline-color: var(--wp-block-synced-color); } .is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.has-editable-outline::after { border: none; } template-part/editor.min.css 0000775 00000002654 00000000000 0012062 0 ustar 00 .block-editor-template-part__selection-modal{z-index:1000001}.block-editor-template-part__selection-modal .block-editor-block-patterns-list{-moz-column-count:2;column-count:2;-moz-column-gap:24px;column-gap:24px}@media (min-width:1280px){.block-editor-template-part__selection-modal .block-editor-block-patterns-list{-moz-column-count:3;column-count:3}}.block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{-moz-column-break-inside:avoid;break-inside:avoid-column}.block-library-template-part__selection-search{background:#fff;padding:16px 0;position:sticky;top:0;z-index:2}.block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after,.block-editor-block-list__block:not(.remove-outline).is-reusable.is-highlighted:after,.block-editor-block-list__block:not(.remove-outline).is-reusable.is-selected:after,.block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus:after,.block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-highlighted:after,.block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-selected:after{outline-color:var(--wp-block-synced-color)}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.has-editable-outline:after{border:none} template-part/theme-rtl.min.css 0000775 00000000151 00000000000 0012463 0 ustar 00 :root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} template-part/editor-rtl.min.css 0000775 00000002654 00000000000 0012661 0 ustar 00 .block-editor-template-part__selection-modal{z-index:1000001}.block-editor-template-part__selection-modal .block-editor-block-patterns-list{-moz-column-count:2;column-count:2;-moz-column-gap:24px;column-gap:24px}@media (min-width:1280px){.block-editor-template-part__selection-modal .block-editor-block-patterns-list{-moz-column-count:3;column-count:3}}.block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{-moz-column-break-inside:avoid;break-inside:avoid-column}.block-library-template-part__selection-search{background:#fff;padding:16px 0;position:sticky;top:0;z-index:2}.block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus:after,.block-editor-block-list__block:not(.remove-outline).is-reusable.is-highlighted:after,.block-editor-block-list__block:not(.remove-outline).is-reusable.is-selected:after,.block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus:after,.block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-highlighted:after,.block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-selected:after{outline-color:var(--wp-block-synced-color)}.is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.has-editable-outline:after{border:none} template-part/theme-rtl.css 0000775 00000001604 00000000000 0011705 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ :root :where(.wp-block-template-part.has-background) { padding: 1.25em 2.375em; margin-top: 0; margin-bottom: 0; } template-part/block.json 0000775 00000001240 00000000000 0011253 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/template-part", "title": "Template Part", "category": "theme", "description": "Edit the different global regions of your site, like the header, footer, sidebar, or create your own.", "textdomain": "default", "attributes": { "slug": { "type": "string" }, "theme": { "type": "string" }, "tagName": { "type": "string" }, "area": { "type": "string" } }, "supports": { "align": true, "html": false, "reusable": false, "renaming": false, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-template-part-editor" } template-part/editor-rtl.css 0000775 00000006776 00000000000 0012110 0 ustar 00 /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-editor-template-part__selection-modal { z-index: 1000001; } .block-editor-template-part__selection-modal .block-editor-block-patterns-list { -moz-column-count: 2; column-count: 2; -moz-column-gap: 24px; column-gap: 24px; } @media (min-width: 1280px) { .block-editor-template-part__selection-modal .block-editor-block-patterns-list { -moz-column-count: 3; column-count: 3; } } .block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item { -moz-column-break-inside: avoid; break-inside: avoid-column; } .block-library-template-part__selection-search { background: #fff; position: sticky; top: 0; padding: 16px 0; z-index: 2; } .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-highlighted::after, .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.is-selected::after, .block-editor-block-list__block:not(.remove-outline).is-reusable.is-highlighted::after, .block-editor-block-list__block:not(.remove-outline).is-reusable.is-selected::after { outline-color: var(--wp-block-synced-color); } .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.block-editor-block-list__block:not([contenteditable]):focus::after, .block-editor-block-list__block:not(.remove-outline).is-reusable.block-editor-block-list__block:not([contenteditable]):focus::after { outline-color: var(--wp-block-synced-color); } .is-outline-mode .block-editor-block-list__block:not(.remove-outline).wp-block-template-part.has-editable-outline::after { border: none; } template-part/theme.css 0000775 00000001604 00000000000 0011106 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ :root :where(.wp-block-template-part.has-background) { padding: 1.25em 2.375em; margin-top: 0; margin-bottom: 0; } template-part/theme.min.css 0000775 00000000151 00000000000 0011664 0 ustar 00 :root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} comments-pagination-next/block.json 0000775 00000002005 00000000000 0013424 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comments-pagination-next", "title": "Comments Next Page", "category": "theme", "parent": [ "core/comments-pagination" ], "description": "Displays the next comment's page link.", "textdomain": "default", "attributes": { "label": { "type": "string" } }, "usesContext": [ "postId", "comments/paginationArrow" ], "supports": { "anchor": true, "reusable": false, "html": false, "color": { "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } } } comment-edit-link.php 0000775 00000003261 00000000000 0010545 0 ustar 00 <?php /** * Server-side rendering of the `core/comment-edit-link` block. * * @package WordPress */ /** * Renders the `core/comment-edit-link` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Return the post comment's date. */ function render_block_core_comment_edit_link( $attributes, $content, $block ) { if ( ! isset( $block->context['commentId'] ) || ! current_user_can( 'edit_comment', $block->context['commentId'] ) ) { return ''; } $edit_comment_link = get_edit_comment_link( $block->context['commentId'] ); $link_atts = ''; if ( ! empty( $attributes['linkTarget'] ) ) { $link_atts .= sprintf( 'target="%s"', esc_attr( $attributes['linkTarget'] ) ); } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<div %1$s><a href="%2$s" %3$s>%4$s</a></div>', $wrapper_attributes, esc_url( $edit_comment_link ), $link_atts, esc_html__( 'Edit' ) ); } /** * Registers the `core/comment-edit-link` block on the server. * * @since 6.0.0 */ function register_block_core_comment_edit_link() { register_block_type_from_metadata( __DIR__ . '/comment-edit-link', array( 'render_callback' => 'render_block_core_comment_edit_link', ) ); } add_action( 'init', 'register_block_core_comment_edit_link' ); term-count.php 0000775 00000003463 00000000000 0007326 0 ustar 00 <?php /** * Server-side rendering of the `core/term-count` block. * * @package WordPress */ /** * Renders the `core/term-count` block on the server. * * @since 6.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the count of the current taxonomy term wrapped inside a heading tag. */ function render_block_core_term_count( $attributes, $content, $block ) { // Get term from context or from the current query. if ( isset( $block->context['termId'] ) && isset( $block->context['taxonomy'] ) ) { $term = get_term( $block->context['termId'], $block->context['taxonomy'] ); } else { $term = get_queried_object(); if ( ! $term instanceof WP_Term ) { $term = null; } } if ( ! $term || is_wp_error( $term ) ) { return ''; } $term_count = $term->count; // Format the term count based on bracket type. switch ( $attributes['bracketType'] ) { case 'none': // No formatting needed. break; case 'round': $term_count = "({$term_count})"; break; case 'square': $term_count = "[{$term_count}]"; break; case 'curly': $term_count = "{{$term_count}}"; break; case 'angle': $term_count = "<{$term_count}>"; break; default: // Default to no formatting for unknown types. break; } $wrapper_attributes = get_block_wrapper_attributes(); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $term_count ); } /** * Registers the `core/term-count` block on the server. * * @since 6.9.0 */ function register_block_core_term_count() { register_block_type_from_metadata( __DIR__ . '/term-count', array( 'render_callback' => 'render_block_core_term_count', ) ); } add_action( 'init', 'register_block_core_term_count' ); post-template/style-rtl.css 0000775 00000007177 00000000000 0011775 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-post-template { margin-top: 0; margin-bottom: 0; max-width: 100%; list-style: none; padding: 0; box-sizing: border-box; } .wp-block-post-template.is-flex-container { flex-direction: row; display: flex; flex-wrap: wrap; gap: 1.25em; } .wp-block-post-template.is-flex-container > li { margin: 0; width: 100%; } @media (min-width: 600px) { .wp-block-post-template.is-flex-container.is-flex-container.columns-2 > li { width: calc(100% / 2 - 1.25em + 1.25em / 2); } .wp-block-post-template.is-flex-container.is-flex-container.columns-3 > li { width: calc(100% / 3 - 1.25em + 1.25em / 3); } .wp-block-post-template.is-flex-container.is-flex-container.columns-4 > li { width: calc(100% / 4 - 1.25em + 1.25em / 4); } .wp-block-post-template.is-flex-container.is-flex-container.columns-5 > li { width: calc(100% / 5 - 1.25em + 1.25em / 5); } .wp-block-post-template.is-flex-container.is-flex-container.columns-6 > li { width: calc(100% / 6 - 1.25em + 1.25em / 6); } } @media (max-width: 600px) { .wp-block-post-template-is-layout-grid[class*=columns-]:not(.has-native-responsive-grid) { grid-template-columns: 1fr; } } .wp-block-post-template-is-layout-constrained > li > .alignright, .wp-block-post-template-is-layout-flow > li > .alignright { float: left; margin-inline-start: 2em; margin-inline-end: 0; } .wp-block-post-template-is-layout-constrained > li > .alignleft, .wp-block-post-template-is-layout-flow > li > .alignleft { float: right; margin-inline-start: 0; margin-inline-end: 2em; } .wp-block-post-template-is-layout-constrained > li > .aligncenter, .wp-block-post-template-is-layout-flow > li > .aligncenter { margin-inline-start: auto; margin-inline-end: auto; } post-template/style.min.css 0000775 00000002661 00000000000 0011751 0 ustar 00 .wp-block-post-template{box-sizing:border-box;list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid[class*=columns-]:not(.has-native-responsive-grid){grid-template-columns:1fr}}.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{float:right;margin-inline-end:0;margin-inline-start:2em}.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{float:left;margin-inline-end:2em;margin-inline-start:0}.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{margin-inline-end:auto;margin-inline-start:auto} post-template/block.json 0000775 00000003101 00000000000 0011270 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-template", "title": "Post Template", "category": "theme", "ancestor": [ "core/query" ], "description": "Contains the block elements used to render a post, like the title, date, featured image, content or excerpt, and more.", "textdomain": "default", "usesContext": [ "queryId", "query", "displayLayout", "templateSlug", "previewPostType", "enhancedPagination", "postType", "postId" ], "supports": { "anchor": true, "reusable": false, "html": false, "align": [ "wide", "full" ], "layout": true, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "spacing": { "margin": true, "padding": true, "blockGap": { "__experimentalDefault": "1.25em" }, "__experimentalDefaultControls": { "blockGap": true, "padding": false, "margin": false } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true } }, "style": "wp-block-post-template", "editorStyle": "wp-block-post-template-editor" } post-template/style-rtl.min.css 0000775 00000002661 00000000000 0012550 0 ustar 00 .wp-block-post-template{box-sizing:border-box;list-style:none;margin-bottom:0;margin-top:0;max-width:100%;padding:0}.wp-block-post-template.is-flex-container{display:flex;flex-direction:row;flex-wrap:wrap;gap:1.25em}.wp-block-post-template.is-flex-container>li{margin:0;width:100%}@media (min-width:600px){.wp-block-post-template.is-flex-container.is-flex-container.columns-2>li{width:calc(50% - .625em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-3>li{width:calc(33.33333% - .83333em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-4>li{width:calc(25% - .9375em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-5>li{width:calc(20% - 1em)}.wp-block-post-template.is-flex-container.is-flex-container.columns-6>li{width:calc(16.66667% - 1.04167em)}}@media (max-width:600px){.wp-block-post-template-is-layout-grid[class*=columns-]:not(.has-native-responsive-grid){grid-template-columns:1fr}}.wp-block-post-template-is-layout-constrained>li>.alignright,.wp-block-post-template-is-layout-flow>li>.alignright{float:left;margin-inline-end:0;margin-inline-start:2em}.wp-block-post-template-is-layout-constrained>li>.alignleft,.wp-block-post-template-is-layout-flow>li>.alignleft{float:right;margin-inline-end:2em;margin-inline-start:0}.wp-block-post-template-is-layout-constrained>li>.aligncenter,.wp-block-post-template-is-layout-flow>li>.aligncenter{margin-inline-end:auto;margin-inline-start:auto} post-template/style.css 0000775 00000007177 00000000000 0011176 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-post-template { margin-top: 0; margin-bottom: 0; max-width: 100%; list-style: none; padding: 0; box-sizing: border-box; } .wp-block-post-template.is-flex-container { flex-direction: row; display: flex; flex-wrap: wrap; gap: 1.25em; } .wp-block-post-template.is-flex-container > li { margin: 0; width: 100%; } @media (min-width: 600px) { .wp-block-post-template.is-flex-container.is-flex-container.columns-2 > li { width: calc(100% / 2 - 1.25em + 1.25em / 2); } .wp-block-post-template.is-flex-container.is-flex-container.columns-3 > li { width: calc(100% / 3 - 1.25em + 1.25em / 3); } .wp-block-post-template.is-flex-container.is-flex-container.columns-4 > li { width: calc(100% / 4 - 1.25em + 1.25em / 4); } .wp-block-post-template.is-flex-container.is-flex-container.columns-5 > li { width: calc(100% / 5 - 1.25em + 1.25em / 5); } .wp-block-post-template.is-flex-container.is-flex-container.columns-6 > li { width: calc(100% / 6 - 1.25em + 1.25em / 6); } } @media (max-width: 600px) { .wp-block-post-template-is-layout-grid[class*=columns-]:not(.has-native-responsive-grid) { grid-template-columns: 1fr; } } .wp-block-post-template-is-layout-constrained > li > .alignright, .wp-block-post-template-is-layout-flow > li > .alignright { float: right; margin-inline-start: 2em; margin-inline-end: 0; } .wp-block-post-template-is-layout-constrained > li > .alignleft, .wp-block-post-template-is-layout-flow > li > .alignleft { float: left; margin-inline-start: 0; margin-inline-end: 2em; } .wp-block-post-template-is-layout-constrained > li > .aligncenter, .wp-block-post-template-is-layout-flow > li > .aligncenter { margin-inline-start: auto; margin-inline-end: auto; } widget-group.php 0000775 00000004606 00000000000 0007646 0 ustar 00 <?php /** * Server-side rendering of the `core/widget-group` block. * * @package WordPress */ /** * Renders the 'core/widget-group' block. * * @since 5.9.0 * * @global array $wp_registered_sidebars * @global int|string $_sidebar_being_rendered * * @param array $attributes The block attributes. * @param string $content The block content. * @param WP_Block $block The block. * * @return string Rendered block. */ function render_block_core_widget_group( $attributes, $content, $block ) { global $wp_registered_sidebars, $_sidebar_being_rendered; if ( isset( $wp_registered_sidebars[ $_sidebar_being_rendered ] ) ) { $before_title = $wp_registered_sidebars[ $_sidebar_being_rendered ]['before_title']; $after_title = $wp_registered_sidebars[ $_sidebar_being_rendered ]['after_title']; } else { $before_title = '<h2 class="widget-title">'; $after_title = '</h2>'; } $html = ''; if ( ! empty( $attributes['title'] ) ) { $html .= $before_title . esc_html( $attributes['title'] ) . $after_title; } $html .= '<div class="wp-widget-group__inner-blocks">'; foreach ( $block->inner_blocks as $inner_block ) { $html .= $inner_block->render(); } $html .= '</div>'; return $html; } /** * Registers the 'core/widget-group' block. * * @since 5.9.0 */ function register_block_core_widget_group() { register_block_type_from_metadata( __DIR__ . '/widget-group', array( 'render_callback' => 'render_block_core_widget_group', ) ); } add_action( 'init', 'register_block_core_widget_group' ); /** * Make a note of the sidebar being rendered before WordPress starts rendering * it. This lets us get to the current sidebar in * render_block_core_widget_group(). * * @since 5.9.0 * * @global int|string $_sidebar_being_rendered * * @param int|string $index Index, name, or ID of the dynamic sidebar. */ function note_sidebar_being_rendered( $index ) { global $_sidebar_being_rendered; $_sidebar_being_rendered = $index; } add_action( 'dynamic_sidebar_before', 'note_sidebar_being_rendered' ); /** * Clear whatever we set in note_sidebar_being_rendered() after WordPress * finishes rendering a sidebar. * * @since 5.9.0 * * @global int|string $_sidebar_being_rendered */ function discard_sidebar_being_rendered() { global $_sidebar_being_rendered; unset( $_sidebar_being_rendered ); } add_action( 'dynamic_sidebar_after', 'discard_sidebar_being_rendered' ); comments-title/editor.css 0000775 00000000077 00000000000 0011462 0 ustar 00 .wp-block-comments-title.has-background { padding: inherit; } comments-title/editor.min.css 0000775 00000000070 00000000000 0012235 0 ustar 00 .wp-block-comments-title.has-background{padding:inherit} comments-title/editor-rtl.min.css 0000775 00000000070 00000000000 0013034 0 ustar 00 .wp-block-comments-title.has-background{padding:inherit} comments-title/block.json 0000775 00000002722 00000000000 0011446 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comments-title", "title": "Comments Title", "category": "theme", "ancestor": [ "core/comments" ], "description": "Displays a title with the number of comments.", "textdomain": "default", "usesContext": [ "postId", "postType" ], "attributes": { "showPostTitle": { "type": "boolean", "default": true }, "showCommentsCount": { "type": "boolean", "default": true }, "level": { "type": "number", "default": 2 }, "levelOptions": { "type": "array" } }, "supports": { "anchor": true, "align": true, "html": false, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true }, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true, "__experimentalFontFamily": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true } }, "interactivity": { "clientNavigation": true } } } comments-title/editor-rtl.css 0000775 00000000077 00000000000 0012261 0 ustar 00 .wp-block-comments-title.has-background { padding: inherit; } table/editor.css 0000775 00000007120 00000000000 0007601 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block[data-align=left] > .wp-block-table, .wp-block[data-align=right] > .wp-block-table, .wp-block[data-align=center] > .wp-block-table { height: auto; } .wp-block[data-align=left] > .wp-block-table table, .wp-block[data-align=right] > .wp-block-table table, .wp-block[data-align=center] > .wp-block-table table { width: auto; } .wp-block[data-align=left] > .wp-block-table td, .wp-block[data-align=left] > .wp-block-table th, .wp-block[data-align=right] > .wp-block-table td, .wp-block[data-align=right] > .wp-block-table th, .wp-block[data-align=center] > .wp-block-table td, .wp-block[data-align=center] > .wp-block-table th { word-break: break-word; } .wp-block[data-align=center] > .wp-block-table { text-align: initial; } .wp-block[data-align=center] > .wp-block-table table { margin: 0 auto; } .wp-block-table td, .wp-block-table th { border: 1px solid; padding: 0.5em; } .wp-block-table td.is-selected, .wp-block-table th.is-selected { border-color: var(--wp-admin-theme-color); box-shadow: inset 0 0 0 1px var(--wp-admin-theme-color); border-style: double; } .wp-block-table table.has-individual-borders > *, .wp-block-table table.has-individual-borders tr, .wp-block-table table.has-individual-borders th, .wp-block-table table.has-individual-borders td { border-width: 1px; border-style: solid; border-color: currentColor; } .blocks-table__placeholder-form.blocks-table__placeholder-form { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; } @media (min-width: 782px) { .blocks-table__placeholder-form.blocks-table__placeholder-form { flex-direction: row; align-items: flex-end; } } .blocks-table__placeholder-input { width: 112px; } table/editor.min.css 0000775 00000002727 00000000000 0010373 0 ustar 00 .wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{height:auto}.wp-block[data-align=center]>.wp-block-table table,.wp-block[data-align=left]>.wp-block-table table,.wp-block[data-align=right]>.wp-block-table table{width:auto}.wp-block[data-align=center]>.wp-block-table td,.wp-block[data-align=center]>.wp-block-table th,.wp-block[data-align=left]>.wp-block-table td,.wp-block[data-align=left]>.wp-block-table th,.wp-block[data-align=right]>.wp-block-table td,.wp-block[data-align=right]>.wp-block-table th{word-break:break-word}.wp-block[data-align=center]>.wp-block-table{text-align:initial}.wp-block[data-align=center]>.wp-block-table table{margin:0 auto}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table td.is-selected,.wp-block-table th.is-selected{border-color:var(--wp-admin-theme-color);border-style:double;box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color)}.wp-block-table table.has-individual-borders td,.wp-block-table table.has-individual-borders th,.wp-block-table table.has-individual-borders tr,.wp-block-table table.has-individual-borders>*{border:1px solid}.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-start;display:flex;flex-direction:column;gap:8px}@media (min-width:782px){.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-end;flex-direction:row}}.blocks-table__placeholder-input{width:112px} table/style-rtl.css 0000775 00000011730 00000000000 0010254 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-table { overflow-x: auto; } .wp-block-table table { border-collapse: collapse; width: 100%; } .wp-block-table thead { border-bottom: 3px solid; } .wp-block-table tfoot { border-top: 3px solid; } .wp-block-table td, .wp-block-table th { border: 1px solid; padding: 0.5em; } .wp-block-table .has-fixed-layout { table-layout: fixed; width: 100%; } .wp-block-table .has-fixed-layout td, .wp-block-table .has-fixed-layout th { word-break: break-word; } .wp-block-table.alignleft, .wp-block-table.aligncenter, .wp-block-table.alignright { display: table; width: auto; } .wp-block-table.alignleft td, .wp-block-table.alignleft th, .wp-block-table.aligncenter td, .wp-block-table.aligncenter th, .wp-block-table.alignright td, .wp-block-table.alignright th { word-break: break-word; } .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; } .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background-color: #f0f0f0; } .wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd) { background-color: #f3f4f5; } .wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd) { background-color: #e9fbe5; } .wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd) { background-color: #e7f5fe; } .wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd) { background-color: #fcf0ef; } .wp-block-table.is-style-stripes th, .wp-block-table.is-style-stripes td { border-color: transparent; } .wp-block-table.is-style-stripes { border-bottom: 1px solid #f0f0f0; } .wp-block-table .has-border-color > *, .wp-block-table .has-border-color tr, .wp-block-table .has-border-color th, .wp-block-table .has-border-color td { border-color: inherit; } .wp-block-table table[style*=border-top-color] > *, .wp-block-table table[style*=border-top-color] tr:first-child { border-top-color: inherit; } .wp-block-table table[style*=border-top-color] > * th, .wp-block-table table[style*=border-top-color] > * td, .wp-block-table table[style*=border-top-color] tr:first-child th, .wp-block-table table[style*=border-top-color] tr:first-child td { border-top-color: inherit; } .wp-block-table table[style*=border-top-color] tr:not(:first-child) { border-top-color: currentColor; } .wp-block-table table[style*=border-right-color] > *, .wp-block-table table[style*=border-right-color] tr, .wp-block-table table[style*=border-right-color] th, .wp-block-table table[style*=border-right-color] td:last-child { border-left-color: inherit; } .wp-block-table table[style*=border-bottom-color] > *, .wp-block-table table[style*=border-bottom-color] tr:last-child { border-bottom-color: inherit; } .wp-block-table table[style*=border-bottom-color] > * th, .wp-block-table table[style*=border-bottom-color] > * td, .wp-block-table table[style*=border-bottom-color] tr:last-child th, .wp-block-table table[style*=border-bottom-color] tr:last-child td { border-bottom-color: inherit; } .wp-block-table table[style*=border-bottom-color] tr:not(:last-child) { border-bottom-color: currentColor; } .wp-block-table table[style*=border-left-color] > *, .wp-block-table table[style*=border-left-color] tr, .wp-block-table table[style*=border-left-color] th, .wp-block-table table[style*=border-left-color] td:first-child { border-right-color: inherit; } .wp-block-table table[style*=border-style] > *, .wp-block-table table[style*=border-style] tr, .wp-block-table table[style*=border-style] th, .wp-block-table table[style*=border-style] td { border-style: inherit; } .wp-block-table table[style*=border-width] > *, .wp-block-table table[style*=border-width] tr, .wp-block-table table[style*=border-width] th, .wp-block-table table[style*=border-width] td { border-width: inherit; border-style: inherit; } table/theme-rtl.min.css 0000775 00000000362 00000000000 0010777 0 ustar 00 .wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:hsla(0,0%,100%,.65)} table/editor-rtl.min.css 0000775 00000002727 00000000000 0011172 0 ustar 00 .wp-block[data-align=center]>.wp-block-table,.wp-block[data-align=left]>.wp-block-table,.wp-block[data-align=right]>.wp-block-table{height:auto}.wp-block[data-align=center]>.wp-block-table table,.wp-block[data-align=left]>.wp-block-table table,.wp-block[data-align=right]>.wp-block-table table{width:auto}.wp-block[data-align=center]>.wp-block-table td,.wp-block[data-align=center]>.wp-block-table th,.wp-block[data-align=left]>.wp-block-table td,.wp-block[data-align=left]>.wp-block-table th,.wp-block[data-align=right]>.wp-block-table td,.wp-block[data-align=right]>.wp-block-table th{word-break:break-word}.wp-block[data-align=center]>.wp-block-table{text-align:initial}.wp-block[data-align=center]>.wp-block-table table{margin:0 auto}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table td.is-selected,.wp-block-table th.is-selected{border-color:var(--wp-admin-theme-color);border-style:double;box-shadow:inset 0 0 0 1px var(--wp-admin-theme-color)}.wp-block-table table.has-individual-borders td,.wp-block-table table.has-individual-borders th,.wp-block-table table.has-individual-borders tr,.wp-block-table table.has-individual-borders>*{border:1px solid}.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-start;display:flex;flex-direction:column;gap:8px}@media (min-width:782px){.blocks-table__placeholder-form.blocks-table__placeholder-form{align-items:flex-end;flex-direction:row}}.blocks-table__placeholder-input{width:112px} table/style.min.css 0000775 00000007504 00000000000 0010243 0 ustar 00 .wp-block-table{overflow-x:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table thead{border-bottom:3px solid}.wp-block-table tfoot{border-top:3px solid}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table .has-fixed-layout{table-layout:fixed;width:100%}.wp-block-table .has-fixed-layout td,.wp-block-table .has-fixed-layout th{word-break:break-word}.wp-block-table.aligncenter,.wp-block-table.alignleft,.wp-block-table.alignright{display:table;width:auto}.wp-block-table.aligncenter td,.wp-block-table.aligncenter th,.wp-block-table.alignleft td,.wp-block-table.alignleft th,.wp-block-table.alignright td,.wp-block-table.alignright th{word-break:break-word}.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{background-color:transparent;border-collapse:inherit;border-spacing:0}.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:#f0f0f0}.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd){background-color:#f3f4f5}.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd){background-color:#e9fbe5}.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd){background-color:#e7f5fe}.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd){background-color:#fcf0ef}.wp-block-table.is-style-stripes td,.wp-block-table.is-style-stripes th{border-color:transparent}.wp-block-table.is-style-stripes{border-bottom:1px solid #f0f0f0}.wp-block-table .has-border-color td,.wp-block-table .has-border-color th,.wp-block-table .has-border-color tr,.wp-block-table .has-border-color>*{border-color:inherit}.wp-block-table table[style*=border-top-color] tr:first-child,.wp-block-table table[style*=border-top-color] tr:first-child td,.wp-block-table table[style*=border-top-color] tr:first-child th,.wp-block-table table[style*=border-top-color]>*,.wp-block-table table[style*=border-top-color]>* td,.wp-block-table table[style*=border-top-color]>* th{border-top-color:inherit}.wp-block-table table[style*=border-top-color] tr:not(:first-child){border-top-color:currentColor}.wp-block-table table[style*=border-right-color] td:last-child,.wp-block-table table[style*=border-right-color] th,.wp-block-table table[style*=border-right-color] tr,.wp-block-table table[style*=border-right-color]>*{border-right-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:last-child,.wp-block-table table[style*=border-bottom-color] tr:last-child td,.wp-block-table table[style*=border-bottom-color] tr:last-child th,.wp-block-table table[style*=border-bottom-color]>*,.wp-block-table table[style*=border-bottom-color]>* td,.wp-block-table table[style*=border-bottom-color]>* th{border-bottom-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:not(:last-child){border-bottom-color:currentColor}.wp-block-table table[style*=border-left-color] td:first-child,.wp-block-table table[style*=border-left-color] th,.wp-block-table table[style*=border-left-color] tr,.wp-block-table table[style*=border-left-color]>*{border-left-color:inherit}.wp-block-table table[style*=border-style] td,.wp-block-table table[style*=border-style] th,.wp-block-table table[style*=border-style] tr,.wp-block-table table[style*=border-style]>*{border-style:inherit}.wp-block-table table[style*=border-width] td,.wp-block-table table[style*=border-width] th,.wp-block-table table[style*=border-width] tr,.wp-block-table table[style*=border-width]>*{border-style:inherit;border-width:inherit} table/theme-rtl.css 0000775 00000004270 00000000000 0010217 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-table { margin: 0 0 1em 0; } .wp-block-table td, .wp-block-table th { word-break: normal; } .wp-block-table :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-table :where(figcaption) { color: rgba(255, 255, 255, 0.65); } table/block.json 0000775 00000010634 00000000000 0007572 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/table", "title": "Table", "category": "text", "description": "Create structured content in rows and columns to display information.", "textdomain": "default", "attributes": { "hasFixedLayout": { "type": "boolean", "default": true }, "caption": { "type": "rich-text", "source": "rich-text", "selector": "figcaption", "role": "content" }, "head": { "type": "array", "default": [], "source": "query", "selector": "thead tr", "query": { "cells": { "type": "array", "default": [], "source": "query", "selector": "td,th", "query": { "content": { "type": "rich-text", "source": "rich-text", "role": "content" }, "tag": { "type": "string", "default": "td", "source": "tag" }, "scope": { "type": "string", "source": "attribute", "attribute": "scope" }, "align": { "type": "string", "source": "attribute", "attribute": "data-align" }, "colspan": { "type": "string", "source": "attribute", "attribute": "colspan" }, "rowspan": { "type": "string", "source": "attribute", "attribute": "rowspan" } } } } }, "body": { "type": "array", "default": [], "source": "query", "selector": "tbody tr", "query": { "cells": { "type": "array", "default": [], "source": "query", "selector": "td,th", "query": { "content": { "type": "rich-text", "source": "rich-text", "role": "content" }, "tag": { "type": "string", "default": "td", "source": "tag" }, "scope": { "type": "string", "source": "attribute", "attribute": "scope" }, "align": { "type": "string", "source": "attribute", "attribute": "data-align" }, "colspan": { "type": "string", "source": "attribute", "attribute": "colspan" }, "rowspan": { "type": "string", "source": "attribute", "attribute": "rowspan" } } } } }, "foot": { "type": "array", "default": [], "source": "query", "selector": "tfoot tr", "query": { "cells": { "type": "array", "default": [], "source": "query", "selector": "td,th", "query": { "content": { "type": "rich-text", "source": "rich-text", "role": "content" }, "tag": { "type": "string", "default": "td", "source": "tag" }, "scope": { "type": "string", "source": "attribute", "attribute": "scope" }, "align": { "type": "string", "source": "attribute", "attribute": "data-align" }, "colspan": { "type": "string", "source": "attribute", "attribute": "colspan" }, "rowspan": { "type": "string", "source": "attribute", "attribute": "rowspan" } } } } } }, "supports": { "anchor": true, "align": true, "color": { "__experimentalSkipSerialization": true, "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "__experimentalSkipSerialization": true, "color": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "style": true, "width": true } }, "interactivity": { "clientNavigation": true } }, "selectors": { "root": ".wp-block-table > table", "spacing": ".wp-block-table" }, "styles": [ { "name": "regular", "label": "Default", "isDefault": true }, { "name": "stripes", "label": "Stripes" } ], "editorStyle": "wp-block-table-editor", "style": "wp-block-table" } table/style-rtl.min.css 0000775 00000007504 00000000000 0011042 0 ustar 00 .wp-block-table{overflow-x:auto}.wp-block-table table{border-collapse:collapse;width:100%}.wp-block-table thead{border-bottom:3px solid}.wp-block-table tfoot{border-top:3px solid}.wp-block-table td,.wp-block-table th{border:1px solid;padding:.5em}.wp-block-table .has-fixed-layout{table-layout:fixed;width:100%}.wp-block-table .has-fixed-layout td,.wp-block-table .has-fixed-layout th{word-break:break-word}.wp-block-table.aligncenter,.wp-block-table.alignleft,.wp-block-table.alignright{display:table;width:auto}.wp-block-table.aligncenter td,.wp-block-table.aligncenter th,.wp-block-table.alignleft td,.wp-block-table.alignleft th,.wp-block-table.alignright td,.wp-block-table.alignright th{word-break:break-word}.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{background-color:transparent;border-collapse:inherit;border-spacing:0}.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:#f0f0f0}.wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd){background-color:#f3f4f5}.wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd){background-color:#e9fbe5}.wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd){background-color:#e7f5fe}.wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd){background-color:#fcf0ef}.wp-block-table.is-style-stripes td,.wp-block-table.is-style-stripes th{border-color:transparent}.wp-block-table.is-style-stripes{border-bottom:1px solid #f0f0f0}.wp-block-table .has-border-color td,.wp-block-table .has-border-color th,.wp-block-table .has-border-color tr,.wp-block-table .has-border-color>*{border-color:inherit}.wp-block-table table[style*=border-top-color] tr:first-child,.wp-block-table table[style*=border-top-color] tr:first-child td,.wp-block-table table[style*=border-top-color] tr:first-child th,.wp-block-table table[style*=border-top-color]>*,.wp-block-table table[style*=border-top-color]>* td,.wp-block-table table[style*=border-top-color]>* th{border-top-color:inherit}.wp-block-table table[style*=border-top-color] tr:not(:first-child){border-top-color:currentColor}.wp-block-table table[style*=border-right-color] td:last-child,.wp-block-table table[style*=border-right-color] th,.wp-block-table table[style*=border-right-color] tr,.wp-block-table table[style*=border-right-color]>*{border-left-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:last-child,.wp-block-table table[style*=border-bottom-color] tr:last-child td,.wp-block-table table[style*=border-bottom-color] tr:last-child th,.wp-block-table table[style*=border-bottom-color]>*,.wp-block-table table[style*=border-bottom-color]>* td,.wp-block-table table[style*=border-bottom-color]>* th{border-bottom-color:inherit}.wp-block-table table[style*=border-bottom-color] tr:not(:last-child){border-bottom-color:currentColor}.wp-block-table table[style*=border-left-color] td:first-child,.wp-block-table table[style*=border-left-color] th,.wp-block-table table[style*=border-left-color] tr,.wp-block-table table[style*=border-left-color]>*{border-right-color:inherit}.wp-block-table table[style*=border-style] td,.wp-block-table table[style*=border-style] th,.wp-block-table table[style*=border-style] tr,.wp-block-table table[style*=border-style]>*{border-style:inherit}.wp-block-table table[style*=border-width] td,.wp-block-table table[style*=border-width] th,.wp-block-table table[style*=border-width] tr,.wp-block-table table[style*=border-width]>*{border-style:inherit;border-width:inherit} table/style.css 0000775 00000011730 00000000000 0007455 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-table { overflow-x: auto; } .wp-block-table table { border-collapse: collapse; width: 100%; } .wp-block-table thead { border-bottom: 3px solid; } .wp-block-table tfoot { border-top: 3px solid; } .wp-block-table td, .wp-block-table th { border: 1px solid; padding: 0.5em; } .wp-block-table .has-fixed-layout { table-layout: fixed; width: 100%; } .wp-block-table .has-fixed-layout td, .wp-block-table .has-fixed-layout th { word-break: break-word; } .wp-block-table.alignleft, .wp-block-table.aligncenter, .wp-block-table.alignright { display: table; width: auto; } .wp-block-table.alignleft td, .wp-block-table.alignleft th, .wp-block-table.aligncenter td, .wp-block-table.aligncenter th, .wp-block-table.alignright td, .wp-block-table.alignright th { word-break: break-word; } .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; } .wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background-color: #f0f0f0; } .wp-block-table.is-style-stripes.has-subtle-light-gray-background-color tbody tr:nth-child(odd) { background-color: #f3f4f5; } .wp-block-table.is-style-stripes.has-subtle-pale-green-background-color tbody tr:nth-child(odd) { background-color: #e9fbe5; } .wp-block-table.is-style-stripes.has-subtle-pale-blue-background-color tbody tr:nth-child(odd) { background-color: #e7f5fe; } .wp-block-table.is-style-stripes.has-subtle-pale-pink-background-color tbody tr:nth-child(odd) { background-color: #fcf0ef; } .wp-block-table.is-style-stripes th, .wp-block-table.is-style-stripes td { border-color: transparent; } .wp-block-table.is-style-stripes { border-bottom: 1px solid #f0f0f0; } .wp-block-table .has-border-color > *, .wp-block-table .has-border-color tr, .wp-block-table .has-border-color th, .wp-block-table .has-border-color td { border-color: inherit; } .wp-block-table table[style*=border-top-color] > *, .wp-block-table table[style*=border-top-color] tr:first-child { border-top-color: inherit; } .wp-block-table table[style*=border-top-color] > * th, .wp-block-table table[style*=border-top-color] > * td, .wp-block-table table[style*=border-top-color] tr:first-child th, .wp-block-table table[style*=border-top-color] tr:first-child td { border-top-color: inherit; } .wp-block-table table[style*=border-top-color] tr:not(:first-child) { border-top-color: currentColor; } .wp-block-table table[style*=border-right-color] > *, .wp-block-table table[style*=border-right-color] tr, .wp-block-table table[style*=border-right-color] th, .wp-block-table table[style*=border-right-color] td:last-child { border-right-color: inherit; } .wp-block-table table[style*=border-bottom-color] > *, .wp-block-table table[style*=border-bottom-color] tr:last-child { border-bottom-color: inherit; } .wp-block-table table[style*=border-bottom-color] > * th, .wp-block-table table[style*=border-bottom-color] > * td, .wp-block-table table[style*=border-bottom-color] tr:last-child th, .wp-block-table table[style*=border-bottom-color] tr:last-child td { border-bottom-color: inherit; } .wp-block-table table[style*=border-bottom-color] tr:not(:last-child) { border-bottom-color: currentColor; } .wp-block-table table[style*=border-left-color] > *, .wp-block-table table[style*=border-left-color] tr, .wp-block-table table[style*=border-left-color] th, .wp-block-table table[style*=border-left-color] td:first-child { border-left-color: inherit; } .wp-block-table table[style*=border-style] > *, .wp-block-table table[style*=border-style] tr, .wp-block-table table[style*=border-style] th, .wp-block-table table[style*=border-style] td { border-style: inherit; } .wp-block-table table[style*=border-width] > *, .wp-block-table table[style*=border-width] tr, .wp-block-table table[style*=border-width] th, .wp-block-table table[style*=border-width] td { border-width: inherit; border-style: inherit; } table/editor-rtl.css 0000775 00000007120 00000000000 0010400 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block[data-align=left] > .wp-block-table, .wp-block[data-align=right] > .wp-block-table, .wp-block[data-align=center] > .wp-block-table { height: auto; } .wp-block[data-align=left] > .wp-block-table table, .wp-block[data-align=right] > .wp-block-table table, .wp-block[data-align=center] > .wp-block-table table { width: auto; } .wp-block[data-align=left] > .wp-block-table td, .wp-block[data-align=left] > .wp-block-table th, .wp-block[data-align=right] > .wp-block-table td, .wp-block[data-align=right] > .wp-block-table th, .wp-block[data-align=center] > .wp-block-table td, .wp-block[data-align=center] > .wp-block-table th { word-break: break-word; } .wp-block[data-align=center] > .wp-block-table { text-align: initial; } .wp-block[data-align=center] > .wp-block-table table { margin: 0 auto; } .wp-block-table td, .wp-block-table th { border: 1px solid; padding: 0.5em; } .wp-block-table td.is-selected, .wp-block-table th.is-selected { border-color: var(--wp-admin-theme-color); box-shadow: inset 0 0 0 1px var(--wp-admin-theme-color); border-style: double; } .wp-block-table table.has-individual-borders > *, .wp-block-table table.has-individual-borders tr, .wp-block-table table.has-individual-borders th, .wp-block-table table.has-individual-borders td { border-width: 1px; border-style: solid; border-color: currentColor; } .blocks-table__placeholder-form.blocks-table__placeholder-form { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; } @media (min-width: 782px) { .blocks-table__placeholder-form.blocks-table__placeholder-form { flex-direction: row; align-items: flex-end; } } .blocks-table__placeholder-input { width: 112px; } table/theme.css 0000775 00000004270 00000000000 0007420 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-table { margin: 0 0 1em 0; } .wp-block-table td, .wp-block-table th { word-break: normal; } .wp-block-table :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-table :where(figcaption) { color: rgba(255, 255, 255, 0.65); } table/theme.min.css 0000775 00000000362 00000000000 0010200 0 ustar 00 .wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:hsla(0,0%,100%,.65)} navigation-link.php 0000775 00000040416 00000000000 0010322 0 ustar 00 <?php /** * Server-side registering and rendering of the `core/navigation-link` block. * * @package WordPress */ require_once __DIR__ . '/navigation-link/shared/item-should-render.php'; require_once __DIR__ . '/navigation-link/shared/render-submenu-icon.php'; /** * Build an array with CSS classes and inline styles defining the colors * which will be applied to the navigation markup in the front-end. * * @since 5.9.0 * * @param array $context Navigation block context. * @param array $attributes Block attributes. * @param bool $is_sub_menu Whether the link is part of a sub-menu. Default false. * @return array Colors CSS classes and inline styles. */ function block_core_navigation_link_build_css_colors( $context, $attributes, $is_sub_menu = false ) { $colors = array( 'css_classes' => array(), 'inline_styles' => '', ); // Text color. $named_text_color = null; $custom_text_color = null; if ( $is_sub_menu && array_key_exists( 'customOverlayTextColor', $context ) ) { $custom_text_color = $context['customOverlayTextColor']; } elseif ( $is_sub_menu && array_key_exists( 'overlayTextColor', $context ) ) { $named_text_color = $context['overlayTextColor']; } elseif ( array_key_exists( 'customTextColor', $context ) ) { $custom_text_color = $context['customTextColor']; } elseif ( array_key_exists( 'textColor', $context ) ) { $named_text_color = $context['textColor']; } elseif ( isset( $context['style']['color']['text'] ) ) { $custom_text_color = $context['style']['color']['text']; } // If has text color. if ( ! is_null( $named_text_color ) ) { // Add the color class. array_push( $colors['css_classes'], 'has-text-color', sprintf( 'has-%s-color', $named_text_color ) ); } elseif ( ! is_null( $custom_text_color ) ) { // Add the custom color inline style. $colors['css_classes'][] = 'has-text-color'; $colors['inline_styles'] .= sprintf( 'color: %s;', $custom_text_color ); } // Background color. $named_background_color = null; $custom_background_color = null; if ( $is_sub_menu && array_key_exists( 'customOverlayBackgroundColor', $context ) ) { $custom_background_color = $context['customOverlayBackgroundColor']; } elseif ( $is_sub_menu && array_key_exists( 'overlayBackgroundColor', $context ) ) { $named_background_color = $context['overlayBackgroundColor']; } elseif ( array_key_exists( 'customBackgroundColor', $context ) ) { $custom_background_color = $context['customBackgroundColor']; } elseif ( array_key_exists( 'backgroundColor', $context ) ) { $named_background_color = $context['backgroundColor']; } elseif ( isset( $context['style']['color']['background'] ) ) { $custom_background_color = $context['style']['color']['background']; } // If has background color. if ( ! is_null( $named_background_color ) ) { // Add the background-color class. array_push( $colors['css_classes'], 'has-background', sprintf( 'has-%s-background-color', $named_background_color ) ); } elseif ( ! is_null( $custom_background_color ) ) { // Add the custom background-color inline style. $colors['css_classes'][] = 'has-background'; $colors['inline_styles'] .= sprintf( 'background-color: %s;', $custom_background_color ); } return $colors; } /** * Build an array with CSS classes and inline styles defining the font sizes * which will be applied to the navigation markup in the front-end. * * This function is no longer used internally and is kept only for backward * compatibility with third-party code that may call it directly. * * @since 5.9.0 * @deprecated 7.0.0 * * @param array $context Navigation block context. * @return array Font size CSS classes and inline styles. */ function block_core_navigation_link_build_css_font_sizes( $context ) { _deprecated_function( __FUNCTION__, '7.0.0' ); // CSS classes. $font_sizes = array( 'css_classes' => array(), 'inline_styles' => '', ); $has_named_font_size = array_key_exists( 'fontSize', $context ); $has_custom_font_size = isset( $context['style']['typography']['fontSize'] ); if ( $has_named_font_size ) { // Add the font size class. $font_sizes['css_classes'][] = sprintf( 'has-%s-font-size', $context['fontSize'] ); } elseif ( $has_custom_font_size ) { // Add the custom font size inline style. $font_sizes['inline_styles'] = sprintf( 'font-size: %s;', wp_get_typography_font_size_value( array( 'size' => $context['style']['typography']['fontSize'], ) ) ); } return $font_sizes; } /** * Returns the top-level submenu SVG chevron icon. * * @since 5.9.0 * @deprecated 7.0.0 Use block_core_shared_navigation_render_submenu_icon() instead. * * @return string */ function block_core_navigation_link_render_submenu_icon() { _deprecated_function( __FUNCTION__, '7.0.0', 'block_core_shared_navigation_render_submenu_icon()' ); return block_core_shared_navigation_render_submenu_icon(); } /** * Decodes a url if it's encoded, returning the same url if not. * * @since 6.2.0 * * @param string $url The url to decode. * * @return string $url Returns the decoded url. */ function block_core_navigation_link_maybe_urldecode( $url ) { $is_url_encoded = false; $query = parse_url( $url, PHP_URL_QUERY ); $query_params = wp_parse_args( $query ); foreach ( $query_params as $query_param ) { $can_query_param_be_encoded = is_string( $query_param ) && ! empty( $query_param ); if ( ! $can_query_param_be_encoded ) { continue; } if ( rawurldecode( $query_param ) !== $query_param ) { $is_url_encoded = true; break; } } if ( $is_url_encoded ) { return rawurldecode( $url ); } return $url; } /** * Renders the `core/navigation-link` block. * * @since 5.9.0 * * @param array $attributes The block attributes. * @param string $content The saved content. * @param WP_Block $block The parsed block. * * @return string Returns the post content with the legacy widget added. */ function render_block_core_navigation_link( $attributes, $content, $block ) { // Check if this navigation item should render based on post status. if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) { $should_render = gutenberg_block_core_shared_navigation_item_should_render( $attributes, $block ); } else { $should_render = block_core_shared_navigation_item_should_render( $attributes, $block ); } if ( ! $should_render ) { return ''; } // Don't render the block's subtree if it has no label. if ( empty( $attributes['label'] ) ) { return ''; } $classes = array(); // Render inner blocks first to check if any menu items will actually display. $inner_blocks_html = ''; foreach ( $block->inner_blocks as $inner_block ) { $inner_blocks_html .= $inner_block->render(); } $has_submenu = ! empty( trim( $inner_blocks_html ) ); $css_classes = trim( implode( ' ', $classes ) ); $kind = empty( $attributes['kind'] ) ? 'post_type' : str_replace( '-', '_', $attributes['kind'] ); $is_active = ! empty( $attributes['id'] ) && get_queried_object_id() === (int) $attributes['id'] && ! empty( get_queried_object()->$kind ); if ( is_post_type_archive() && ! empty( $attributes['url'] ) ) { $queried_archive_link = get_post_type_archive_link( get_queried_object()->name ); if ( $attributes['url'] === $queried_archive_link ) { $is_active = true; } } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $css_classes . ' wp-block-navigation-item' . ( $has_submenu ? ' has-child' : '' ) . ( $is_active ? ' current-menu-item' : '' ), ) ); $html = '<li ' . $wrapper_attributes . '>' . '<a class="wp-block-navigation-item__content" '; // Start appending HTML attributes to anchor tag. if ( isset( $attributes['url'] ) ) { $html .= ' href="' . esc_url( block_core_navigation_link_maybe_urldecode( $attributes['url'] ) ) . '"'; } if ( $is_active ) { $html .= ' aria-current="page"'; } if ( isset( $attributes['opensInNewTab'] ) && true === $attributes['opensInNewTab'] ) { $html .= ' target="_blank" '; } if ( isset( $attributes['rel'] ) ) { $html .= ' rel="' . esc_attr( $attributes['rel'] ) . '"'; } elseif ( isset( $attributes['nofollow'] ) && $attributes['nofollow'] ) { $html .= ' rel="nofollow"'; } if ( isset( $attributes['title'] ) ) { $html .= ' title="' . esc_attr( $attributes['title'] ) . '"'; } // End appending HTML attributes to anchor tag. // Start anchor tag content. $html .= '>' . // Wrap title with span to isolate it from submenu icon. '<span class="wp-block-navigation-item__label">'; if ( isset( $attributes['label'] ) ) { $html .= wp_kses_post( $attributes['label'] ); } $html .= '</span>'; // Add description if available. if ( ! empty( $attributes['description'] ) ) { $html .= '<span class="wp-block-navigation-item__description">'; $html .= wp_kses_post( $attributes['description'] ); $html .= '</span>'; } $html .= '</a>'; // End anchor tag content. if ( isset( $block->context['showSubmenuIcon'] ) && $block->context['showSubmenuIcon'] && $has_submenu ) { // The submenu icon can be hidden by a CSS rule on the Navigation Block. $html .= '<span class="wp-block-navigation__submenu-icon">'; if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) { $html .= gutenberg_block_core_shared_navigation_render_submenu_icon(); } else { $html .= block_core_shared_navigation_render_submenu_icon(); } $html .= '</span>'; } if ( $has_submenu ) { $html .= sprintf( '<ul class="wp-block-navigation__submenu-container">%s</ul>', $inner_blocks_html ); } $html .= '</li>'; return $html; } /** * Returns a navigation link variation * * @since 5.9.0 * * @param WP_Taxonomy|WP_Post_Type $entity post type or taxonomy entity. * @param string $kind string of value 'taxonomy' or 'post-type'. * * @return array */ function build_variation_for_navigation_link( $entity, $kind ) { $title = ''; $description = ''; // Get default labels based on entity type $default_labels = null; if ( $entity instanceof WP_Post_Type ) { $default_labels = WP_Post_Type::get_default_labels(); } elseif ( $entity instanceof WP_Taxonomy ) { $default_labels = WP_Taxonomy::get_default_labels(); } // Get title and check if it's default $is_default_title = false; if ( property_exists( $entity->labels, 'item_link' ) ) { $title = $entity->labels->item_link; if ( isset( $default_labels['item_link'] ) ) { $is_default_title = in_array( $title, $default_labels['item_link'], true ); } } // Get description and check if it's default $is_default_description = false; if ( property_exists( $entity->labels, 'item_link_description' ) ) { $description = $entity->labels->item_link_description; if ( isset( $default_labels['item_link_description'] ) ) { $is_default_description = in_array( $description, $default_labels['item_link_description'], true ); } } // Calculate singular name once (used for both title and description) $singular = $entity->labels->singular_name ?? ucfirst( $entity->name ); // Set default title if needed if ( $is_default_title || '' === $title ) { /* translators: %s: Singular label of the entity. */ $title = sprintf( __( '%s link' ), $singular ); } // Default description if needed. // Use a single space character instead of an empty string to prevent fallback to the // block.json default description ("Add a page, link, or another item to your navigation."). // An empty string would be treated as missing and trigger the fallback, while a single // space appears blank in the UI but prevents the fallback behavior. // We avoid generating descriptions like "A link to a %s" to prevent grammatical errors // (e.g., "A link to a event" should be "A link to an event"). if ( $is_default_description || '' === $description ) { $description = ' '; } $variation = array( 'name' => $entity->name, 'title' => $title, 'description' => $description, 'attributes' => array( 'type' => $entity->name, 'kind' => $kind, ), ); // Tweak some value for the variations. $variation_overrides = array( 'post_tag' => array( 'name' => 'tag', 'attributes' => array( 'type' => 'tag', 'kind' => $kind, ), ), 'post_format' => array( // The item_link and item_link_description for post formats is the // same as for tags, so need to be overridden. 'title' => __( 'Post Format Link' ), 'description' => __( 'A link to a post format' ), 'attributes' => array( 'type' => 'post_format', 'kind' => $kind, ), ), ); if ( array_key_exists( $entity->name, $variation_overrides ) ) { $variation = array_merge( $variation, $variation_overrides[ $entity->name ] ); } return $variation; } /** * Filters the registered variations for a block type. * Returns the dynamically built variations for all post-types and taxonomies. * * @since 6.5.0 * * @param array $variations Array of registered variations for a block type. * @param WP_Block_Type $block_type The full block type object. * @return array Numerically indexed array of block variations. */ function block_core_navigation_link_filter_variations( $variations, $block_type ) { if ( 'core/navigation-link' !== $block_type->name ) { return $variations; } $generated_variations = block_core_navigation_link_build_variations(); /* * IMPORTANT: Order matters for deduplication. * * The variations returned from this filter are bootstrapped to JavaScript and * processed by the block variations reducer. The reducer uses `getUniqueItemsByName()` * (packages/blocks/src/store/reducer.js:51-57) which keeps the FIRST variation with * a given 'name' and discards later duplicates when processing the array in order. * * By placing generated variations first in `array_merge()`, the improved * labels (e.g., "Product link" instead of generic "Post Link") are processed first * and preserved. The generic incoming variations are then discarded as duplicates. * * Why `array_merge()` instead of manual deduplication? * - Both arrays use numeric indices (0, 1, 2...), so `array_merge()` concatenates * and re-indexes them sequentially, preserving order * - The reducer handles deduplication, so it is not needed here * - This keeps the PHP code simple and relies on the established JavaScript behavior * * See: https://github.com/WordPress/gutenberg/pull/72517 */ return array_merge( $generated_variations, $variations ); } /** * Returns an array of variations for the navigation link block. * * @since 6.5.0 * * @return array */ function block_core_navigation_link_build_variations() { $post_types = get_post_types( array( 'show_in_nav_menus' => true ), 'objects' ); $taxonomies = get_taxonomies( array( 'show_in_nav_menus' => true ), 'objects' ); /* * Use two separate arrays as a way to order the variations in the UI. * Known variations (like Post Link and Page Link) are added to the * `built_ins` array. Variations for custom post types and taxonomies are * added to the `variations` array and will always appear after `built-ins. */ $built_ins = array(); $variations = array(); if ( $post_types ) { foreach ( $post_types as $post_type ) { $variation = build_variation_for_navigation_link( $post_type, 'post-type' ); if ( $post_type->_builtin ) { $built_ins[] = $variation; } else { $variations[] = $variation; } } } if ( $taxonomies ) { foreach ( $taxonomies as $taxonomy ) { $variation = build_variation_for_navigation_link( $taxonomy, 'taxonomy' ); if ( $taxonomy->_builtin ) { $built_ins[] = $variation; } else { $variations[] = $variation; } } } $all_variations = array_merge( $built_ins, $variations ); return $all_variations; } /** * Registers the navigation link block. * * @since 5.9.0 * * @uses render_block_core_navigation_link() * @throws WP_Error An WP_Error exception parsing the block definition. */ function register_block_core_navigation_link() { register_block_type_from_metadata( __DIR__ . '/navigation-link', array( 'render_callback' => 'render_block_core_navigation_link', ) ); } add_action( 'init', 'register_block_core_navigation_link' ); /** * Creates all variations for post types / taxonomies dynamically (= each time when variations are requested). * Do not use variation_callback, to also account for unregistering post types/taxonomies later on. */ add_filter( 'get_block_type_variations', 'block_core_navigation_link_filter_variations', 10, 2 ); nextpage/editor.css 0000775 00000002773 00000000000 0010336 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .block-editor-block-list__block[data-type="core/nextpage"] { max-width: 100%; text-align: center; margin-top: 28px; margin-bottom: 28px; } .wp-block-nextpage { display: block; text-align: center; white-space: nowrap; } .wp-block-nextpage > span { font-size: 13px; position: relative; text-transform: uppercase; font-weight: var(--wpds-typography-font-weight-emphasis, 600); font-family: -apple-system, system-ui, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; color: #757575; border-radius: 4px; background: #fff; padding: 6px 8px; height: 24px; } .wp-block-nextpage::before { content: ""; position: absolute; top: 50%; left: 0; right: 0; border-top: 3px dashed #ccc; } nextpage/editor.min.css 0000775 00000001163 00000000000 0011110 0 ustar 00 .block-editor-block-list__block[data-type="core/nextpage"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-nextpage{display:block;text-align:center;white-space:nowrap}.wp-block-nextpage>span{background:#fff;border-radius:4px;color:#757575;font-family:-apple-system,system-ui,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:var(--wpds-typography-font-weight-emphasis,600);height:24px;padding:6px 8px;position:relative;text-transform:uppercase}.wp-block-nextpage:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%} nextpage/editor-rtl.min.css 0000775 00000001163 00000000000 0011707 0 ustar 00 .block-editor-block-list__block[data-type="core/nextpage"]{margin-bottom:28px;margin-top:28px;max-width:100%;text-align:center}.wp-block-nextpage{display:block;text-align:center;white-space:nowrap}.wp-block-nextpage>span{background:#fff;border-radius:4px;color:#757575;font-family:-apple-system,system-ui,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:13px;font-weight:var(--wpds-typography-font-weight-emphasis,600);height:24px;padding:6px 8px;position:relative;text-transform:uppercase}.wp-block-nextpage:before{border-top:3px dashed #ccc;content:"";left:0;position:absolute;right:0;top:50%} nextpage/block.json 0000775 00000001052 00000000000 0010310 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/nextpage", "title": "Page Break", "category": "design", "description": "Separate your content into a multi-page experience.", "keywords": [ "next page", "pagination" ], "parent": [ "core/post-content" ], "textdomain": "default", "supports": { "customClassName": false, "className": false, "html": false, "visibility": false, "interactivity": { "clientNavigation": true }, "customCSS": false }, "editorStyle": "wp-block-nextpage-editor" } nextpage/editor-rtl.css 0000775 00000002773 00000000000 0011135 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .block-editor-block-list__block[data-type="core/nextpage"] { max-width: 100%; text-align: center; margin-top: 28px; margin-bottom: 28px; } .wp-block-nextpage { display: block; text-align: center; white-space: nowrap; } .wp-block-nextpage > span { font-size: 13px; position: relative; text-transform: uppercase; font-weight: var(--wpds-typography-font-weight-emphasis, 600); font-family: -apple-system, system-ui, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif; color: #757575; border-radius: 4px; background: #fff; padding: 6px 8px; height: 24px; } .wp-block-nextpage::before { content: ""; position: absolute; top: 50%; right: 0; left: 0; border-top: 3px dashed #ccc; } archives.php 0000775 00000010441 00000000000 0007027 0 ustar 00 <?php /** * Server-side rendering of the `core/archives` block. * * @package WordPress */ /** * Renders the `core/archives` block on server. * * @since 5.0.0 * * @see WP_Widget_Archives * * @param array $attributes The block attributes. * * @return string Returns the post content with archives added. */ function render_block_core_archives( $attributes ) { $show_post_count = ! empty( $attributes['showPostCounts'] ); $type = $attributes['type'] ?? 'monthly'; $class = 'wp-block-archives-list'; if ( ! empty( $attributes['displayAsDropdown'] ) ) { $class = 'wp-block-archives-dropdown'; $dropdown_id = wp_unique_id( 'wp-block-archives-' ); $title = __( 'Archives' ); /** This filter is documented in wp-includes/widgets/class-wp-widget-archives.php */ $dropdown_args = apply_filters( 'widget_archives_dropdown_args', array( 'type' => $type, 'format' => 'option', 'show_post_count' => $show_post_count, ) ); $dropdown_args['echo'] = 0; $archives = wp_get_archives( $dropdown_args ); $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $class ) ); switch ( $dropdown_args['type'] ) { case 'yearly': $label = __( 'Select Year' ); break; case 'monthly': $label = __( 'Select Month' ); break; case 'daily': $label = __( 'Select Day' ); break; case 'weekly': $label = __( 'Select Week' ); break; default: $label = __( 'Select Post' ); break; } $show_label = empty( $attributes['showLabel'] ) ? ' screen-reader-text' : ''; $block_content = '<label for="' . $dropdown_id . '" class="wp-block-archives__label' . $show_label . '">' . esc_html( $title ) . '</label> <select id="' . esc_attr( $dropdown_id ) . '" name="archive-dropdown"> <option value="">' . esc_html( $label ) . '</option>' . $archives . '</select>'; // Inject the dropdown script immediately after the select dropdown. $block_content .= block_core_archives_build_dropdown_script( $dropdown_id ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $block_content ); } /** This filter is documented in wp-includes/widgets/class-wp-widget-archives.php */ $archives_args = apply_filters( 'widget_archives_args', array( 'type' => $type, 'show_post_count' => $show_post_count, ) ); $archives_args['echo'] = 0; $archives = wp_get_archives( $archives_args ); $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $class ) ); if ( empty( $archives ) ) { return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, __( 'No archives to show.' ) ); } return sprintf( '<ul %1$s>%2$s</ul>', $wrapper_attributes, $archives ); } /** * Generates the inline script for an archives dropdown field. * * @since 6.9.0 * * @param string $dropdown_id ID of the dropdown field. * * @return string Returns the dropdown onChange redirection script. */ function block_core_archives_build_dropdown_script( $dropdown_id ) { ob_start(); $exports = array( $dropdown_id, home_url() ); ?> <script> ( ( [ dropdownId, homeUrl ] ) => { const dropdown = document.getElementById( dropdownId ); function onSelectChange() { setTimeout( () => { if ( 'escape' === dropdown.dataset.lastkey ) { return; } if ( dropdown.value ) { location.href = dropdown.value; } }, 250 ); } function onKeyUp( event ) { if ( 'Escape' === event.key ) { dropdown.dataset.lastkey = 'escape'; } else { delete dropdown.dataset.lastkey; } } function onClick() { delete dropdown.dataset.lastkey; } dropdown.addEventListener( 'keyup', onKeyUp ); dropdown.addEventListener( 'click', onClick ); dropdown.addEventListener( 'change', onSelectChange ); } )( <?php echo wp_json_encode( $exports, JSON_HEX_TAG | JSON_UNESCAPED_SLASHES ); ?> ); </script> <?php return wp_get_inline_script_tag( trim( str_replace( array( '<script>', '</script>' ), '', ob_get_clean() ) ) . "\n//# sourceURL=" . rawurlencode( __FUNCTION__ ) ); } /** * Register archives block. * * @since 5.0.0 */ function register_block_core_archives() { register_block_type_from_metadata( __DIR__ . '/archives', array( 'render_callback' => 'render_block_core_archives', ) ); } add_action( 'init', 'register_block_core_archives' ); button/editor.css 0000775 00000001063 00000000000 0010025 0 ustar 00 /** * Colors */ .wp-block[data-align=center] > .wp-block-button { text-align: center; margin-left: auto; margin-right: auto; } .wp-block[data-align=right] > .wp-block-button { /*!rtl:ignore*/ text-align: right; } .wp-block-button { position: relative; cursor: text; } .wp-block-button:focus { box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--wp-admin-theme-color); outline: 2px solid transparent; outline-offset: -2px; } .wp-block-button[data-rich-text-placeholder]::after { opacity: 0.8; } div[data-type="core/button"] { display: table; } button/editor.min.css 0000775 00000000702 00000000000 0010606 0 ustar 00 .wp-block[data-align=center]>.wp-block-button{margin-left:auto;margin-right:auto;text-align:center}.wp-block[data-align=right]>.wp-block-button{text-align:right}.wp-block-button{cursor:text;position:relative}.wp-block-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.wp-block-button[data-rich-text-placeholder]:after{opacity:.8}div[data-type="core/button"]{display:table} button/style-rtl.css 0000775 00000005455 00000000000 0010507 0 ustar 00 .wp-block-button__link { cursor: pointer; display: inline-block; text-align: center; word-break: break-word; box-sizing: border-box; height: 100%; align-content: center; } .wp-block-button__link.aligncenter { text-align: center; } .wp-block-button__link.alignright { text-align: right; } :where(.wp-block-button__link) { box-shadow: none; text-decoration: none; border-radius: 9999px; padding: calc(0.667em + 2px) calc(1.333em + 2px); } .wp-block-button[style*=text-decoration] .wp-block-button__link { text-decoration: inherit; } .wp-block-buttons > .wp-block-button.has-custom-width { max-width: none; } .wp-block-buttons > .wp-block-button.has-custom-width .wp-block-button__link { width: 100%; } .wp-block-buttons > .wp-block-button.has-custom-font-size .wp-block-button__link { font-size: inherit; } .wp-block-buttons > .wp-block-button[class*=wp-block-button__width] { width: calc(var(--wp--block-button--width) * 1% - var(--wp--style--block-gap, 0.5em) * (1 - var(--wp--block-button--width) / 100)); } .wp-block-buttons > .wp-block-button.wp-block-button__width-25 { width: calc(25% - var(--wp--style--block-gap, 0.5em) * 0.75); } .wp-block-buttons > .wp-block-button.wp-block-button__width-50 { width: calc(50% - var(--wp--style--block-gap, 0.5em) * 0.5); } .wp-block-buttons > .wp-block-button.wp-block-button__width-75 { width: calc(75% - var(--wp--style--block-gap, 0.5em) * 0.25); } .wp-block-buttons > .wp-block-button.wp-block-button__width-100 { width: 100%; flex-basis: 100%; } .wp-block-buttons.is-vertical > .wp-block-button[class*=wp-block-button__width] { width: calc(var(--wp--block-button--width) * 1%); } .wp-block-buttons.is-vertical > .wp-block-button.wp-block-button__width-25 { width: 25%; } .wp-block-buttons.is-vertical > .wp-block-button.wp-block-button__width-50 { width: 50%; } .wp-block-buttons.is-vertical > .wp-block-button.wp-block-button__width-75 { width: 75%; } .wp-block-button.is-style-squared, .wp-block-button__link.wp-block-button.is-style-squared { border-radius: 0; } .wp-block-button.no-border-radius, .wp-block-button__link.no-border-radius { border-radius: 0 !important; } :root :where(.wp-block-button.is-style-outline > .wp-block-button__link), :root :where(.wp-block-button .wp-block-button__link.is-style-outline) { border: 2px solid currentColor; padding: 0.667em 1.333em; } :root :where(.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color)), :root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color)) { color: currentColor; } :root :where(.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background)), :root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background)) { background-color: transparent; background-image: none; } button/editor-rtl.min.css 0000775 00000000702 00000000000 0011405 0 ustar 00 .wp-block[data-align=center]>.wp-block-button{margin-left:auto;margin-right:auto;text-align:center}.wp-block[data-align=right]>.wp-block-button{text-align:right}.wp-block-button{cursor:text;position:relative}.wp-block-button:focus{box-shadow:0 0 0 1px #fff,0 0 0 3px var(--wp-admin-theme-color);outline:2px solid transparent;outline-offset:-2px}.wp-block-button[data-rich-text-placeholder]:after{opacity:.8}div[data-type="core/button"]{display:table} button/style.min.css 0000775 00000004777 00000000000 0010500 0 ustar 00 .wp-block-button__link{align-content:center;box-sizing:border-box;cursor:pointer;display:inline-block;height:100%;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button[class*=wp-block-button__width]{width:calc(var(--wp--block-button--width)*1% - var(--wp--style--block-gap, .5em)*(1 - var(--wp--block-button--width)/100))}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button[class*=wp-block-button__width]{width:calc(var(--wp--block-button--width)*1%)}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}:root :where(.wp-block-button .wp-block-button__link.is-style-outline),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link){border:2px solid;padding:.667em 1.333em}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color)){color:currentColor}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background)){background-color:transparent;background-image:none} button/block.json 0000775 00000006400 00000000000 0010012 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/button", "title": "Button", "category": "design", "parent": [ "core/buttons" ], "description": "Prompt visitors to take action with a button-style link.", "keywords": [ "link" ], "textdomain": "default", "attributes": { "tagName": { "type": "string", "enum": [ "a", "button" ], "default": "a" }, "type": { "type": "string", "default": "button" }, "url": { "type": "string", "source": "attribute", "selector": "a", "attribute": "href", "role": "content" }, "title": { "type": "string", "source": "attribute", "selector": "a,button", "attribute": "title", "role": "content" }, "text": { "type": "rich-text", "source": "rich-text", "selector": "a,button", "role": "content" }, "linkTarget": { "type": "string", "source": "attribute", "selector": "a", "attribute": "target", "role": "content" }, "rel": { "type": "string", "source": "attribute", "selector": "a", "attribute": "rel", "role": "content" }, "placeholder": { "type": "string" }, "backgroundColor": { "type": "string" }, "textColor": { "type": "string" }, "gradient": { "type": "string" } }, "supports": { "anchor": true, "splitting": true, "align": false, "alignWide": false, "color": { "__experimentalSkipSerialization": true, "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "dimensions": { "width": true, "__experimentalSkipSerialization": [ "width" ], "__experimentalDefaultControls": { "width": true } }, "typography": { "__experimentalSkipSerialization": [ "fontSize", "lineHeight", "textAlign", "fontFamily", "fontWeight", "fontStyle", "textTransform", "textDecoration", "letterSpacing" ], "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalWritingMode": true, "__experimentalDefaultControls": { "fontSize": true } }, "reusable": false, "shadow": { "__experimentalSkipSerialization": true }, "spacing": { "__experimentalSkipSerialization": true, "padding": [ "horizontal", "vertical" ], "__experimentalDefaultControls": { "padding": true } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalSkipSerialization": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "interactivity": { "clientNavigation": true } }, "styles": [ { "name": "fill", "label": "Fill", "isDefault": true }, { "name": "outline", "label": "Outline" } ], "editorStyle": "wp-block-button-editor", "style": "wp-block-button", "selectors": { "root": ".wp-block-button .wp-block-button__link", "typography": { "writingMode": ".wp-block-button" }, "dimensions": { "root": ".wp-block-button", "width": ".wp-block-button" } } } button/style-rtl.min.css 0000775 00000004777 00000000000 0011277 0 ustar 00 .wp-block-button__link{align-content:center;box-sizing:border-box;cursor:pointer;display:inline-block;height:100%;text-align:center;word-break:break-word}.wp-block-button__link.aligncenter{text-align:center}.wp-block-button__link.alignright{text-align:right}:where(.wp-block-button__link){border-radius:9999px;box-shadow:none;padding:calc(.667em + 2px) calc(1.333em + 2px);text-decoration:none}.wp-block-button[style*=text-decoration] .wp-block-button__link{text-decoration:inherit}.wp-block-buttons>.wp-block-button.has-custom-width{max-width:none}.wp-block-buttons>.wp-block-button.has-custom-width .wp-block-button__link{width:100%}.wp-block-buttons>.wp-block-button.has-custom-font-size .wp-block-button__link{font-size:inherit}.wp-block-buttons>.wp-block-button[class*=wp-block-button__width]{width:calc(var(--wp--block-button--width)*1% - var(--wp--style--block-gap, .5em)*(1 - var(--wp--block-button--width)/100))}.wp-block-buttons>.wp-block-button.wp-block-button__width-25{width:calc(25% - var(--wp--style--block-gap, .5em)*.75)}.wp-block-buttons>.wp-block-button.wp-block-button__width-50{width:calc(50% - var(--wp--style--block-gap, .5em)*.5)}.wp-block-buttons>.wp-block-button.wp-block-button__width-75{width:calc(75% - var(--wp--style--block-gap, .5em)*.25)}.wp-block-buttons>.wp-block-button.wp-block-button__width-100{flex-basis:100%;width:100%}.wp-block-buttons.is-vertical>.wp-block-button[class*=wp-block-button__width]{width:calc(var(--wp--block-button--width)*1%)}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-25{width:25%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-50{width:50%}.wp-block-buttons.is-vertical>.wp-block-button.wp-block-button__width-75{width:75%}.wp-block-button.is-style-squared,.wp-block-button__link.wp-block-button.is-style-squared{border-radius:0}.wp-block-button.no-border-radius,.wp-block-button__link.no-border-radius{border-radius:0!important}:root :where(.wp-block-button .wp-block-button__link.is-style-outline),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link){border:2px solid;padding:.667em 1.333em}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-text-color)){color:currentColor}:root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background)),:root :where(.wp-block-button.is-style-outline>.wp-block-button__link:not(.has-background)){background-color:transparent;background-image:none} button/style.css 0000775 00000005476 00000000000 0007713 0 ustar 00 .wp-block-button__link { cursor: pointer; display: inline-block; text-align: center; word-break: break-word; box-sizing: border-box; height: 100%; align-content: center; } .wp-block-button__link.aligncenter { text-align: center; } .wp-block-button__link.alignright { /*rtl:ignore*/ text-align: right; } :where(.wp-block-button__link) { box-shadow: none; text-decoration: none; border-radius: 9999px; padding: calc(0.667em + 2px) calc(1.333em + 2px); } .wp-block-button[style*=text-decoration] .wp-block-button__link { text-decoration: inherit; } .wp-block-buttons > .wp-block-button.has-custom-width { max-width: none; } .wp-block-buttons > .wp-block-button.has-custom-width .wp-block-button__link { width: 100%; } .wp-block-buttons > .wp-block-button.has-custom-font-size .wp-block-button__link { font-size: inherit; } .wp-block-buttons > .wp-block-button[class*=wp-block-button__width] { width: calc(var(--wp--block-button--width) * 1% - var(--wp--style--block-gap, 0.5em) * (1 - var(--wp--block-button--width) / 100)); } .wp-block-buttons > .wp-block-button.wp-block-button__width-25 { width: calc(25% - var(--wp--style--block-gap, 0.5em) * 0.75); } .wp-block-buttons > .wp-block-button.wp-block-button__width-50 { width: calc(50% - var(--wp--style--block-gap, 0.5em) * 0.5); } .wp-block-buttons > .wp-block-button.wp-block-button__width-75 { width: calc(75% - var(--wp--style--block-gap, 0.5em) * 0.25); } .wp-block-buttons > .wp-block-button.wp-block-button__width-100 { width: 100%; flex-basis: 100%; } .wp-block-buttons.is-vertical > .wp-block-button[class*=wp-block-button__width] { width: calc(var(--wp--block-button--width) * 1%); } .wp-block-buttons.is-vertical > .wp-block-button.wp-block-button__width-25 { width: 25%; } .wp-block-buttons.is-vertical > .wp-block-button.wp-block-button__width-50 { width: 50%; } .wp-block-buttons.is-vertical > .wp-block-button.wp-block-button__width-75 { width: 75%; } .wp-block-button.is-style-squared, .wp-block-button__link.wp-block-button.is-style-squared { border-radius: 0; } .wp-block-button.no-border-radius, .wp-block-button__link.no-border-radius { border-radius: 0 !important; } :root :where(.wp-block-button.is-style-outline > .wp-block-button__link), :root :where(.wp-block-button .wp-block-button__link.is-style-outline) { border: 2px solid currentColor; padding: 0.667em 1.333em; } :root :where(.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-text-color)), :root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-text-color)) { color: currentColor; } :root :where(.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-background)), :root :where(.wp-block-button .wp-block-button__link.is-style-outline:not(.has-background)) { background-color: transparent; background-image: none; } button/editor-rtl.css 0000775 00000001041 00000000000 0010620 0 ustar 00 /** * Colors */ .wp-block[data-align=center] > .wp-block-button { text-align: center; margin-right: auto; margin-left: auto; } .wp-block[data-align=right] > .wp-block-button { text-align: right; } .wp-block-button { position: relative; cursor: text; } .wp-block-button:focus { box-shadow: 0 0 0 1px #fff, 0 0 0 3px var(--wp-admin-theme-color); outline: 2px solid transparent; outline-offset: -2px; } .wp-block-button[data-rich-text-placeholder]::after { opacity: 0.8; } div[data-type="core/button"] { display: table; } comments-pagination-numbers/editor.css 0000775 00000000375 00000000000 0014144 0 ustar 00 .wp-block-comments-pagination-numbers a { text-decoration: underline; } .wp-block-comments-pagination-numbers .page-numbers { margin-right: 2px; } .wp-block-comments-pagination-numbers .page-numbers:last-child { /*rtl:ignore*/ margin-right: 0; } comments-pagination-numbers/editor.min.css 0000775 00000000325 00000000000 0014721 0 ustar 00 .wp-block-comments-pagination-numbers a{text-decoration:underline}.wp-block-comments-pagination-numbers .page-numbers{margin-right:2px}.wp-block-comments-pagination-numbers .page-numbers:last-child{margin-right:0} comments-pagination-numbers/editor-rtl.min.css 0000775 00000000324 00000000000 0015517 0 ustar 00 .wp-block-comments-pagination-numbers a{text-decoration:underline}.wp-block-comments-pagination-numbers .page-numbers{margin-left:2px}.wp-block-comments-pagination-numbers .page-numbers:last-child{margin-right:0} comments-pagination-numbers/block.json 0000775 00000002101 00000000000 0014116 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comments-pagination-numbers", "title": "Comments Page Numbers", "category": "theme", "parent": [ "core/comments-pagination" ], "description": "Displays a list of page numbers for comments pagination.", "textdomain": "default", "usesContext": [ "postId" ], "supports": { "anchor": true, "reusable": false, "html": false, "color": { "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "padding": true } } } } comments-pagination-numbers/editor-rtl.css 0000775 00000000353 00000000000 0014737 0 ustar 00 .wp-block-comments-pagination-numbers a { text-decoration: underline; } .wp-block-comments-pagination-numbers .page-numbers { margin-left: 2px; } .wp-block-comments-pagination-numbers .page-numbers:last-child { margin-right: 0; } calendar.php 0000775 00000013673 00000000000 0007006 0 ustar 00 <?php /** * Server-side rendering of the `core/calendar` block. * * @package WordPress */ /** * Renders the `core/calendar` block on server. * * @since 5.2.0 * * @global int $monthnum. * @global int $year. * * @param array $attributes The block attributes. * * @return string Returns the block content. */ function render_block_core_calendar( $attributes ) { global $monthnum, $year; // Calendar shouldn't be rendered // when there are no published posts on the site. if ( ! block_core_calendar_has_published_posts() ) { if ( is_user_logged_in() ) { return '<div>' . __( 'The calendar block is hidden because there are no published posts.' ) . '</div>'; } return ''; } $previous_monthnum = $monthnum; $previous_year = $year; if ( isset( $attributes['month'] ) && isset( $attributes['year'] ) ) { $permalink_structure = get_option( 'permalink_structure' ); if ( str_contains( $permalink_structure, '%monthnum%' ) && str_contains( $permalink_structure, '%year%' ) ) { $monthnum = $attributes['month']; $year = $attributes['year']; } } $color_block_styles = array(); // Text color. $preset_text_color = array_key_exists( 'textColor', $attributes ) ? "var:preset|color|{$attributes['textColor']}" : null; $custom_text_color = $attributes['style']['color']['text'] ?? null; $color_block_styles['text'] = $preset_text_color ? $preset_text_color : $custom_text_color; // Background Color. $preset_background_color = array_key_exists( 'backgroundColor', $attributes ) ? "var:preset|color|{$attributes['backgroundColor']}" : null; $custom_background_color = $attributes['style']['color']['background'] ?? null; $color_block_styles['background'] = $preset_background_color ? $preset_background_color : $custom_background_color; // Generate color styles and classes. $styles = wp_style_engine_get_styles( array( 'color' => $color_block_styles ), array( 'convert_vars_to_classnames' => true ) ); $inline_styles = empty( $styles['css'] ) ? '' : sprintf( ' style="%s"', esc_attr( $styles['css'] ) ); $classnames = empty( $styles['classnames'] ) ? '' : ' ' . esc_attr( $styles['classnames'] ); if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classnames .= ' has-link-color'; } // Apply color classes and styles to the calendar. $calendar = str_replace( '<table', '<table' . $inline_styles, get_calendar( true, false ) ); $calendar = str_replace( 'class="wp-calendar-table', 'class="wp-calendar-table' . $classnames, $calendar ); $wrapper_attributes = get_block_wrapper_attributes(); $output = sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $calendar ); $monthnum = $previous_monthnum; $year = $previous_year; return $output; } /** * Registers the `core/calendar` block on server. * * @since 5.2.0 */ function register_block_core_calendar() { register_block_type_from_metadata( __DIR__ . '/calendar', array( 'render_callback' => 'render_block_core_calendar', ) ); } add_action( 'init', 'register_block_core_calendar' ); /** * Returns whether or not there are any published posts. * * Used to hide the calendar block when there are no published posts. * This compensates for a known Core bug: https://core.trac.wordpress.org/ticket/12016 * * @since 5.9.0 * * @return bool Has any published posts or not. */ function block_core_calendar_has_published_posts() { // Multisite already has an option that stores the count of the published posts. // Let's use that for multisites. if ( is_multisite() ) { return 0 < (int) get_option( 'post_count' ); } // On single sites we try our own cached option first. $has_published_posts = get_option( 'wp_calendar_block_has_published_posts', null ); if ( null !== $has_published_posts ) { return (bool) $has_published_posts; } // No cache hit, let's update the cache and return the cached value. return block_core_calendar_update_has_published_posts(); } /** * Queries the database for any published post and saves * a flag whether any published post exists or not. * * @since 5.9.0 * * @global wpdb $wpdb WordPress database abstraction object. * * @return bool Has any published posts or not. */ function block_core_calendar_update_has_published_posts() { global $wpdb; $has_published_posts = (bool) $wpdb->get_var( "SELECT 1 as test FROM {$wpdb->posts} WHERE post_type = 'post' AND post_status = 'publish' LIMIT 1" ); update_option( 'wp_calendar_block_has_published_posts', $has_published_posts ); return $has_published_posts; } // We only want to register these functions and actions when // we are on single sites. On multi sites we use `post_count` option. if ( ! is_multisite() ) { /** * Handler for updating the has published posts flag when a post is deleted. * * @since 5.9.0 * * @param int $post_id Deleted post ID. */ function block_core_calendar_update_has_published_post_on_delete( $post_id ) { $post = get_post( $post_id ); if ( ! $post || 'publish' !== $post->post_status || 'post' !== $post->post_type ) { return; } block_core_calendar_update_has_published_posts(); } /** * Handler for updating the has published posts flag when a post status changes. * * @since 5.9.0 * * @param string $new_status The status the post is changing to. * @param string $old_status The status the post is changing from. * @param WP_Post $post Post object. */ function block_core_calendar_update_has_published_post_on_transition_post_status( $new_status, $old_status, $post ) { if ( $new_status === $old_status ) { return; } if ( 'post' !== get_post_type( $post ) ) { return; } if ( 'publish' !== $new_status && 'publish' !== $old_status ) { return; } block_core_calendar_update_has_published_posts(); } add_action( 'delete_post', 'block_core_calendar_update_has_published_post_on_delete' ); add_action( 'transition_post_status', 'block_core_calendar_update_has_published_post_on_transition_post_status', 10, 3 ); } navigation-submenu.php 0000775 00000025452 00000000000 0011046 0 ustar 00 <?php /** * Server-side rendering of the `core/navigation-submenu` block. * * @package WordPress */ require_once __DIR__ . '/navigation-link/shared/item-should-render.php'; require_once __DIR__ . '/navigation-link/shared/render-submenu-icon.php'; /** * Renders the submenu icon SVG for the Navigation Submenu block. * * @since 5.9.0 * @deprecated 7.0.0 Use block_core_shared_navigation_render_submenu_icon() instead. * * @return string SVG markup for the submenu icon. */ function block_core_navigation_submenu_render_submenu_icon() { _deprecated_function( __FUNCTION__, '7.0.0', 'block_core_shared_navigation_render_submenu_icon()' ); return block_core_shared_navigation_render_submenu_icon(); } /** * Returns the submenu visibility value with backward compatibility * for the deprecated openSubmenusOnClick attribute. * * This function centralizes the migration logic from the boolean * openSubmenusOnClick to the new submenuVisibility enum. * * Backward compatibility handling: * - Legacy blocks (saved before migration, never opened in editor): * Have openSubmenusOnClick in database. Parent Navigation block passes it via context. * We prioritize openSubmenusOnClick to preserve the original behavior. * * - Migrated blocks (opened in editor after migration): * JavaScript deprecation removes openSubmenusOnClick and sets submenuVisibility. * We use submenuVisibility since openSubmenusOnClick is null. * * - New blocks (created after migration): * Only have submenuVisibility, openSubmenusOnClick is null. * We use submenuVisibility. * * @since 6.9.0 * * @param array $context Block context from parent Navigation block. * @return string The visibility mode: 'hover', 'click', or 'always'. */ function block_core_navigation_submenu_get_submenu_visibility( $context ) { $deprecated_open_submenus_on_click = $context['openSubmenusOnClick'] ?? null; // For backward compatibility, prioritize the legacy attribute if present. If it has been loaded and saved in the editor, then // the deprecated attribute will be replaced by submenuVisibility. if ( null !== $deprecated_open_submenus_on_click ) { // Convert boolean to string: true -> 'click', false -> 'hover'. return ! empty( $deprecated_open_submenus_on_click ) ? 'click' : 'hover'; } $submenu_visibility = $context['submenuVisibility'] ?? null; // Use submenuVisibility for migrated/new blocks. return $submenu_visibility ?? 'hover'; } /** * Renders the `core/navigation-submenu` block. * * @since 5.9.0 * * @param array $attributes The block attributes. * @param string $content The saved content. * @param WP_Block $block The parsed block. * * @return string Returns the post content with the legacy widget added. */ function render_block_core_navigation_submenu( $attributes, $content, $block ) { // Check if this navigation item should render based on post status. if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) { $should_render = gutenberg_block_core_shared_navigation_item_should_render( $attributes, $block ); } else { $should_render = block_core_shared_navigation_item_should_render( $attributes, $block ); } if ( ! $should_render ) { return ''; } // Don't render the block's subtree if it has no label. if ( empty( $attributes['label'] ) ) { return ''; } // Render inner blocks first to check if any menu items will actually display. $inner_blocks_html = ''; foreach ( $block->inner_blocks as $inner_block ) { $inner_blocks_html .= $inner_block->render(); } $has_submenu = ! empty( trim( $inner_blocks_html ) ); $kind = empty( $attributes['kind'] ) ? 'post_type' : str_replace( '-', '_', $attributes['kind'] ); $is_active = ! empty( $attributes['id'] ) && get_queried_object_id() === (int) $attributes['id'] && ! empty( get_queried_object()->$kind ); if ( is_post_type_archive() && ! empty( $attributes['url'] ) ) { $queried_archive_link = get_post_type_archive_link( get_queried_object()->name ); if ( $attributes['url'] === $queried_archive_link ) { $is_active = true; } } $show_submenu_indicators = isset( $block->context['showSubmenuIcon'] ) && $block->context['showSubmenuIcon']; $computed_visibility = block_core_navigation_submenu_get_submenu_visibility( $block->context ); $open_on_click = 'click' === $computed_visibility; $open_on_hover = 'hover' === $computed_visibility; $open_on_hover_and_click = $open_on_hover && $show_submenu_indicators; $classes = array( 'wp-block-navigation-item', ); if ( $has_submenu ) { $classes[] = 'has-child'; } if ( $open_on_click ) { $classes[] = 'open-on-click'; } if ( $open_on_hover_and_click ) { $classes[] = 'open-on-hover-click'; } if ( 'always' === $computed_visibility ) { $classes[] = 'open-always'; } if ( $is_active ) { $classes[] = 'current-menu-item'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ), ) ); $label = ''; if ( isset( $attributes['label'] ) ) { $label .= wp_kses_post( $attributes['label'] ); } $aria_label = sprintf( /* translators: Accessibility text. %s: Parent page title. */ __( '%s submenu' ), wp_strip_all_tags( $label ) ); $html = '<li ' . $wrapper_attributes . '>'; // If Submenus open on hover or are always open, we render an anchor tag with attributes. // If submenu icons are set to show, we also render a submenu button, so the submenu can be opened on click. if ( ! $open_on_click ) { $item_url = $attributes['url'] ?? ''; // Start appending HTML attributes to anchor tag. $html .= '<a class="wp-block-navigation-item__content"'; // The href attribute on a and area elements is not required; // when those elements do not have href attributes they do not create hyperlinks. // But also The href attribute must have a value that is a valid URL potentially // surrounded by spaces. // see: https://html.spec.whatwg.org/multipage/links.html#links-created-by-a-and-area-elements. if ( ! empty( $item_url ) ) { $html .= ' href="' . esc_url( $item_url ) . '"'; } if ( $is_active ) { $html .= ' aria-current="page"'; } if ( isset( $attributes['opensInNewTab'] ) && true === $attributes['opensInNewTab'] ) { $html .= ' target="_blank" '; } if ( isset( $attributes['rel'] ) ) { $html .= ' rel="' . esc_attr( $attributes['rel'] ) . '"'; } elseif ( isset( $attributes['nofollow'] ) && $attributes['nofollow'] ) { $html .= ' rel="nofollow"'; } if ( isset( $attributes['title'] ) ) { $html .= ' title="' . esc_attr( $attributes['title'] ) . '"'; } $html .= '>'; // End appending HTML attributes to anchor tag. $html .= '<span class="wp-block-navigation-item__label">'; $html .= $label; $html .= '</span>'; // Add description if available. if ( ! empty( $attributes['description'] ) ) { $html .= '<span class="wp-block-navigation-item__description">'; $html .= wp_kses_post( $attributes['description'] ); $html .= '</span>'; } $html .= '</a>'; // End anchor tag content. if ( $show_submenu_indicators && $has_submenu ) { // The submenu icon is rendered in a button here // so that there's a clickable element to open the submenu. $html .= '<button aria-label="' . esc_attr( $aria_label ) . '" class="wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle" aria-expanded="false">'; if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) { $html .= gutenberg_block_core_shared_navigation_render_submenu_icon(); } else { $html .= block_core_shared_navigation_render_submenu_icon(); } $html .= '</button>'; } } else { $html .= '<button aria-label="' . esc_attr( $aria_label ) . '" class="wp-block-navigation-item__content wp-block-navigation-submenu__toggle" aria-expanded="false">'; // Wrap title with span to isolate it from submenu icon. $html .= '<span class="wp-block-navigation-item__label">'; $html .= $label; $html .= '</span>'; // Add description if available. if ( ! empty( $attributes['description'] ) ) { $html .= '<span class="wp-block-navigation-item__description">'; $html .= wp_kses_post( $attributes['description'] ); $html .= '</span>'; } $html .= '</button>'; if ( $has_submenu ) { $html .= '<span class="wp-block-navigation__submenu-icon">'; if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) { $html .= gutenberg_block_core_shared_navigation_render_submenu_icon(); } else { $html .= block_core_shared_navigation_render_submenu_icon(); } $html .= '</span>'; } } if ( $has_submenu ) { // Copy some attributes from the parent block to this one. // Ideally this would happen in the client when the block is created. if ( array_key_exists( 'overlayTextColor', $block->context ) ) { $attributes['textColor'] = $block->context['overlayTextColor']; } if ( array_key_exists( 'overlayBackgroundColor', $block->context ) ) { $attributes['backgroundColor'] = $block->context['overlayBackgroundColor']; } if ( array_key_exists( 'customOverlayTextColor', $block->context ) ) { $attributes['style']['color']['text'] = $block->context['customOverlayTextColor']; } if ( array_key_exists( 'customOverlayBackgroundColor', $block->context ) ) { $attributes['style']['color']['background'] = $block->context['customOverlayBackgroundColor']; } // This allows us to be able to get a response from wp_apply_colors_support. $block->block_type->supports['color'] = true; $colors_supports = wp_apply_colors_support( $block->block_type, $attributes ); $css_classes = 'wp-block-navigation__submenu-container'; if ( array_key_exists( 'class', $colors_supports ) ) { $css_classes .= ' ' . $colors_supports['class']; } $style_attribute = ''; if ( array_key_exists( 'style', $colors_supports ) ) { $style_attribute = $colors_supports['style']; } if ( strpos( $inner_blocks_html, 'current-menu-item' ) ) { $tag_processor = new WP_HTML_Tag_Processor( $html ); while ( $tag_processor->next_tag( array( 'class_name' => 'wp-block-navigation-item' ) ) ) { $tag_processor->add_class( 'current-menu-ancestor' ); } $html = $tag_processor->get_updated_html(); } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $css_classes, 'style' => $style_attribute, ) ); $html .= sprintf( '<ul %s>%s</ul>', $wrapper_attributes, $inner_blocks_html ); } $html .= '</li>'; return $html; } /** * Register the navigation submenu block. * * @since 5.9.0 * * @uses render_block_core_navigation_submenu() * @throws WP_Error An WP_Error exception parsing the block definition. */ function register_block_core_navigation_submenu() { register_block_type_from_metadata( __DIR__ . '/navigation-submenu', array( 'render_callback' => 'render_block_core_navigation_submenu', ) ); } add_action( 'init', 'register_block_core_navigation_submenu' ); playlist-track/style-rtl.css 0000775 00000003423 00000000000 0012130 0 ustar 00 .wp-block-playlist-track:has([aria-current=true]) { background-color: color-mix(in srgb, currentColor 10%, transparent); } .wp-block-playlist-track:hover { background-color: color-mix(in srgb, currentColor 15%, transparent); } .wp-block-playlist__tracklist-show-numbers .wp-block-playlist-track { counter-increment: playlist-track; } .wp-block-playlist-track .wp-block-playlist-track__button { display: flex; align-items: center; width: 100%; padding: var(--wp--preset--spacing--20, 0.5em); font-size: inherit; font-family: inherit; text-align: right; background-color: transparent; color: inherit; border: 0; outline-offset: 2px; cursor: pointer; } .wp-block-playlist__tracklist-show-numbers .wp-block-playlist-track .wp-block-playlist-track__button::before { content: counter(playlist-track); width: 2ch; margin-left: var(--wp--preset--spacing--20, 0.5em); font-size: 0.85em; opacity: 0.7; } .wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__image { flex: 0 0 50px; width: 50px; height: 50px; margin-left: var(--wp--preset--spacing--20, 0.5em); border: 1px solid rgba(0, 0, 0, 0.08); box-sizing: border-box; -o-object-fit: cover; object-fit: cover; } .wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__content { flex: 1 1 0; min-width: 0; } .wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__title { display: block; } .wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__artist { display: block; font-size: 0.85em; opacity: 0.7; margin-top: 0.125em; } .wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__length { margin-right: auto; font-size: 0.85em; opacity: 0.7; } playlist-track/style.min.css 0000775 00000003073 00000000000 0012114 0 ustar 00 .wp-block-playlist-track:has([aria-current=true]){background-color:color-mix(in srgb,currentColor 10%,transparent)}.wp-block-playlist-track:hover{background-color:color-mix(in srgb,currentColor 15%,transparent)}.wp-block-playlist__tracklist-show-numbers .wp-block-playlist-track{counter-increment:playlist-track}.wp-block-playlist-track .wp-block-playlist-track__button{align-items:center;background-color:transparent;border:0;color:inherit;cursor:pointer;display:flex;font-family:inherit;font-size:inherit;outline-offset:2px;padding:var(--wp--preset--spacing--20,.5em);text-align:left;width:100%}.wp-block-playlist__tracklist-show-numbers .wp-block-playlist-track .wp-block-playlist-track__button:before{content:counter(playlist-track);font-size:.85em;margin-right:var(--wp--preset--spacing--20,.5em);opacity:.7;width:2ch}.wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__image{border:1px solid rgba(0,0,0,.08);box-sizing:border-box;flex:0 0 50px;height:50px;margin-right:var(--wp--preset--spacing--20,.5em);-o-object-fit:cover;object-fit:cover;width:50px}.wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__content{flex:1 1 0;min-width:0}.wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__title{display:block}.wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__artist{display:block;font-size:.85em;margin-top:.125em;opacity:.7}.wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__length{font-size:.85em;margin-left:auto;opacity:.7} playlist-track/block.json 0000775 00000001633 00000000000 0011445 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/playlist-track", "title": "Playlist track", "category": "media", "parent": [ "core/playlist" ], "description": "Playlist track.", "keywords": [ "music", "sound" ], "textdomain": "default", "usesContext": [ "showArtists", "showImages" ], "attributes": { "blob": { "type": "string", "role": "local" }, "id": { "type": "number" }, "src": { "type": "string" }, "type": { "type": "string", "default": "audio" }, "album": { "type": "string" }, "artist": { "type": "string" }, "image": { "type": "string" }, "imageAlt": { "type": "string" }, "length": { "type": "string" }, "title": { "type": "string" } }, "supports": { "html": false, "interactivity": { "clientNavigation": true }, "reusable": false }, "style": "wp-block-playlist-track" } playlist-track/style-rtl.min.css 0000775 00000003073 00000000000 0012713 0 ustar 00 .wp-block-playlist-track:has([aria-current=true]){background-color:color-mix(in srgb,currentColor 10%,transparent)}.wp-block-playlist-track:hover{background-color:color-mix(in srgb,currentColor 15%,transparent)}.wp-block-playlist__tracklist-show-numbers .wp-block-playlist-track{counter-increment:playlist-track}.wp-block-playlist-track .wp-block-playlist-track__button{align-items:center;background-color:transparent;border:0;color:inherit;cursor:pointer;display:flex;font-family:inherit;font-size:inherit;outline-offset:2px;padding:var(--wp--preset--spacing--20,.5em);text-align:right;width:100%}.wp-block-playlist__tracklist-show-numbers .wp-block-playlist-track .wp-block-playlist-track__button:before{content:counter(playlist-track);font-size:.85em;margin-left:var(--wp--preset--spacing--20,.5em);opacity:.7;width:2ch}.wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__image{border:1px solid rgba(0,0,0,.08);box-sizing:border-box;flex:0 0 50px;height:50px;margin-left:var(--wp--preset--spacing--20,.5em);-o-object-fit:cover;object-fit:cover;width:50px}.wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__content{flex:1 1 0;min-width:0}.wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__title{display:block}.wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__artist{display:block;font-size:.85em;margin-top:.125em;opacity:.7}.wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__length{font-size:.85em;margin-right:auto;opacity:.7} playlist-track/style.css 0000775 00000003423 00000000000 0011331 0 ustar 00 .wp-block-playlist-track:has([aria-current=true]) { background-color: color-mix(in srgb, currentColor 10%, transparent); } .wp-block-playlist-track:hover { background-color: color-mix(in srgb, currentColor 15%, transparent); } .wp-block-playlist__tracklist-show-numbers .wp-block-playlist-track { counter-increment: playlist-track; } .wp-block-playlist-track .wp-block-playlist-track__button { display: flex; align-items: center; width: 100%; padding: var(--wp--preset--spacing--20, 0.5em); font-size: inherit; font-family: inherit; text-align: left; background-color: transparent; color: inherit; border: 0; outline-offset: 2px; cursor: pointer; } .wp-block-playlist__tracklist-show-numbers .wp-block-playlist-track .wp-block-playlist-track__button::before { content: counter(playlist-track); width: 2ch; margin-right: var(--wp--preset--spacing--20, 0.5em); font-size: 0.85em; opacity: 0.7; } .wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__image { flex: 0 0 50px; width: 50px; height: 50px; margin-right: var(--wp--preset--spacing--20, 0.5em); border: 1px solid rgba(0, 0, 0, 0.08); box-sizing: border-box; -o-object-fit: cover; object-fit: cover; } .wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__content { flex: 1 1 0; min-width: 0; } .wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__title { display: block; } .wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__artist { display: block; font-size: 0.85em; opacity: 0.7; margin-top: 0.125em; } .wp-block-playlist-track .wp-block-playlist-track__button .wp-block-playlist-track__length { margin-left: auto; font-size: 0.85em; opacity: 0.7; } pattern.php 0000775 00000003374 00000000000 0006707 0 ustar 00 <?php /** * Server-side rendering of the `core/pattern` block. * * @package WordPress */ /** * Registers the `core/pattern` block on the server. * * @since 5.9.0 */ function register_block_core_pattern() { register_block_type_from_metadata( __DIR__ . '/pattern', array( 'render_callback' => 'render_block_core_pattern', ) ); } /** * Renders the `core/pattern` block on the server. * * @since 6.3.0 Backwards compatibility: blocks with no `syncStatus` attribute do not receive block wrapper. * * @global WP_Embed $wp_embed Used to process embedded content within patterns * * @param array $attributes Block attributes. * * @return string Returns the output of the pattern. */ function render_block_core_pattern( $attributes ) { static $seen_refs = array(); if ( empty( $attributes['slug'] ) ) { return ''; } $slug = $attributes['slug']; $registry = WP_Block_Patterns_Registry::get_instance(); if ( ! $registry->is_registered( $slug ) ) { return ''; } if ( isset( $seen_refs[ $attributes['slug'] ] ) ) { // WP_DEBUG_DISPLAY must only be honored when WP_DEBUG. This precedent // is set in `wp_debug_mode()`. $is_debug = WP_DEBUG && WP_DEBUG_DISPLAY; return $is_debug ? // translators: Visible only in the front end, this warning takes the place of a faulty block. %s represents a pattern's slug. sprintf( __( '[block rendering halted for pattern "%s"]' ), $slug ) : ''; } $pattern = $registry->get_registered( $slug ); $content = $pattern['content']; $seen_refs[ $attributes['slug'] ] = true; $content = do_blocks( $content ); global $wp_embed; $content = $wp_embed->autoembed( $content ); unset( $seen_refs[ $attributes['slug'] ] ); return $content; } add_action( 'init', 'register_block_core_pattern' ); site-logo/editor.css 0000775 00000006567 00000000000 0010432 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block[data-align=center] > .wp-block-site-logo, .wp-block-site-logo.aligncenter > div { display: table; margin-left: auto; margin-right: auto; } .wp-block-site-logo a { pointer-events: none; } .wp-block-site-logo .custom-logo-link { cursor: inherit; } .wp-block-site-logo .custom-logo-link:focus { box-shadow: none; } .wp-block-site-logo img { display: block; height: auto; max-width: 100%; } .wp-block-site-logo.is-transient { position: relative; } .wp-block-site-logo.is-transient img { opacity: 0.3; } .wp-block-site-logo.is-transient .components-spinner { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); margin: 0; } .wp-block-site-logo.wp-block-site-logo.is-default-size .components-placeholder { height: 60px; width: 60px; } .wp-block-site-logo.wp-block-site-logo > div, .wp-block-site-logo.wp-block-site-logo .components-resizable-box__container { border-radius: inherit; } .wp-block-site-logo.wp-block-site-logo .components-placeholder { display: flex; justify-content: center; align-items: center; padding: 0; border-radius: inherit; min-height: 48px; min-width: 48px; height: 100%; width: 100%; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-form-file-upload { display: none; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-drop-zone__content-text { display: none; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button { padding: 0; margin: auto; display: flex; justify-content: center; align-items: center; width: 48px; height: 48px; border-radius: 50%; position: relative; background: var(--wp-admin-theme-color); border-color: var(--wp-admin-theme-color); border-style: solid; color: #fff; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button > svg { color: inherit; } .block-library-site-logo__inspector-media-replace-container { position: relative; } .block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title { word-break: break-all; white-space: normal; text-align: start; -moz-text-align-last: center; text-align-last: center; } .block-library-site-logo__inspector-media-replace-container img { width: 20px; min-width: 20px; aspect-ratio: 1; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2); border-radius: 2px; } .block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-readonly-logo-preview { padding: 6px 12px; display: flex; height: 40px; } site-logo/editor.min.css 0000775 00000004423 00000000000 0011201 0 ustar 00 .wp-block-site-logo.aligncenter>div,.wp-block[data-align=center]>.wp-block-site-logo{display:table;margin-left:auto;margin-right:auto}.wp-block-site-logo a{pointer-events:none}.wp-block-site-logo .custom-logo-link{cursor:inherit}.wp-block-site-logo .custom-logo-link:focus{box-shadow:none}.wp-block-site-logo img{display:block;height:auto;max-width:100%}.wp-block-site-logo.is-transient{position:relative}.wp-block-site-logo.is-transient img{opacity:.3}.wp-block-site-logo.is-transient .components-spinner{left:50%;margin:0;position:absolute;top:50%;transform:translate(-50%,-50%)}.wp-block-site-logo.wp-block-site-logo.is-default-size .components-placeholder{height:60px;width:60px}.wp-block-site-logo.wp-block-site-logo .components-resizable-box__container,.wp-block-site-logo.wp-block-site-logo>div{border-radius:inherit}.wp-block-site-logo.wp-block-site-logo .components-placeholder{align-items:center;border-radius:inherit;display:flex;height:100%;justify-content:center;min-height:48px;min-width:48px;padding:0;width:100%}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-drop-zone__content-text,.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-form-file-upload{display:none}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;margin:auto;padding:0;position:relative;width:48px}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button>svg{color:inherit}.block-library-site-logo__inspector-media-replace-container{position:relative}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title{text-align:start;-moz-text-align-last:center;text-align-last:center;white-space:normal;word-break:break-all}.block-library-site-logo__inspector-media-replace-container img{aspect-ratio:1;border-radius:2px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);min-width:20px;width:20px}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-readonly-logo-preview{display:flex;height:40px;padding:6px 12px} site-logo/style-rtl.css 0000775 00000001026 00000000000 0011064 0 ustar 00 .wp-block-site-logo { box-sizing: border-box; line-height: 0; } .wp-block-site-logo a { display: inline-block; line-height: 0; } .wp-block-site-logo.is-default-size img { width: 120px; height: auto; } .wp-block-site-logo img { height: auto; max-width: 100%; } .wp-block-site-logo a, .wp-block-site-logo img { border-radius: inherit; } .wp-block-site-logo.aligncenter { margin-right: auto; margin-left: auto; text-align: center; } :root :where(.wp-block-site-logo.is-style-rounded) { border-radius: 9999px; } site-logo/editor-rtl.min.css 0000775 00000004423 00000000000 0012000 0 ustar 00 .wp-block-site-logo.aligncenter>div,.wp-block[data-align=center]>.wp-block-site-logo{display:table;margin-left:auto;margin-right:auto}.wp-block-site-logo a{pointer-events:none}.wp-block-site-logo .custom-logo-link{cursor:inherit}.wp-block-site-logo .custom-logo-link:focus{box-shadow:none}.wp-block-site-logo img{display:block;height:auto;max-width:100%}.wp-block-site-logo.is-transient{position:relative}.wp-block-site-logo.is-transient img{opacity:.3}.wp-block-site-logo.is-transient .components-spinner{margin:0;position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}.wp-block-site-logo.wp-block-site-logo.is-default-size .components-placeholder{height:60px;width:60px}.wp-block-site-logo.wp-block-site-logo .components-resizable-box__container,.wp-block-site-logo.wp-block-site-logo>div{border-radius:inherit}.wp-block-site-logo.wp-block-site-logo .components-placeholder{align-items:center;border-radius:inherit;display:flex;height:100%;justify-content:center;min-height:48px;min-width:48px;padding:0;width:100%}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-drop-zone__content-text,.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-form-file-upload{display:none}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;margin:auto;padding:0;position:relative;width:48px}.wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button>svg{color:inherit}.block-library-site-logo__inspector-media-replace-container{position:relative}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title{text-align:start;-moz-text-align-last:center;text-align-last:center;white-space:normal;word-break:break-all}.block-library-site-logo__inspector-media-replace-container img{aspect-ratio:1;border-radius:2px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2);min-width:20px;width:20px}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-readonly-logo-preview{display:flex;height:40px;padding:6px 12px} site-logo/style.min.css 0000775 00000000705 00000000000 0011052 0 ustar 00 .wp-block-site-logo{box-sizing:border-box;line-height:0}.wp-block-site-logo a{display:inline-block;line-height:0}.wp-block-site-logo.is-default-size img{height:auto;width:120px}.wp-block-site-logo img{height:auto;max-width:100%}.wp-block-site-logo a,.wp-block-site-logo img{border-radius:inherit}.wp-block-site-logo.aligncenter{margin-left:auto;margin-right:auto;text-align:center}:root :where(.wp-block-site-logo.is-style-rounded){border-radius:9999px} site-logo/block.json 0000775 00000002734 00000000000 0010407 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/site-logo", "title": "Site Logo", "category": "theme", "description": "Display an image to represent this site. Update this block and the changes apply everywhere.", "textdomain": "default", "attributes": { "width": { "type": "number" }, "isLink": { "type": "boolean", "default": true, "role": "content" }, "linkTarget": { "type": "string", "default": "_self", "role": "content" }, "shouldSyncIcon": { "type": "boolean" } }, "example": { "viewportWidth": 500, "attributes": { "width": 350, "className": "block-editor-block-types-list__site-logo-example" } }, "supports": { "anchor": true, "html": false, "align": true, "alignWide": false, "color": { "text": false, "background": false }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "interactivity": { "clientNavigation": true }, "filter": { "duotone": true } }, "styles": [ { "name": "default", "label": "Default", "isDefault": true }, { "name": "rounded", "label": "Rounded" } ], "selectors": { "filter": { "duotone": ".wp-block-site-logo img, .wp-block-site-logo .components-placeholder__illustration, .wp-block-site-logo .components-placeholder::before" } }, "editorStyle": "wp-block-site-logo-editor", "style": "wp-block-site-logo" } site-logo/style-rtl.min.css 0000775 00000000705 00000000000 0011651 0 ustar 00 .wp-block-site-logo{box-sizing:border-box;line-height:0}.wp-block-site-logo a{display:inline-block;line-height:0}.wp-block-site-logo.is-default-size img{height:auto;width:120px}.wp-block-site-logo img{height:auto;max-width:100%}.wp-block-site-logo a,.wp-block-site-logo img{border-radius:inherit}.wp-block-site-logo.aligncenter{margin-left:auto;margin-right:auto;text-align:center}:root :where(.wp-block-site-logo.is-style-rounded){border-radius:9999px} site-logo/style.css 0000775 00000001026 00000000000 0010265 0 ustar 00 .wp-block-site-logo { box-sizing: border-box; line-height: 0; } .wp-block-site-logo a { display: inline-block; line-height: 0; } .wp-block-site-logo.is-default-size img { width: 120px; height: auto; } .wp-block-site-logo img { height: auto; max-width: 100%; } .wp-block-site-logo a, .wp-block-site-logo img { border-radius: inherit; } .wp-block-site-logo.aligncenter { margin-left: auto; margin-right: auto; text-align: center; } :root :where(.wp-block-site-logo.is-style-rounded) { border-radius: 9999px; } site-logo/editor-rtl.css 0000775 00000006567 00000000000 0011231 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block[data-align=center] > .wp-block-site-logo, .wp-block-site-logo.aligncenter > div { display: table; margin-right: auto; margin-left: auto; } .wp-block-site-logo a { pointer-events: none; } .wp-block-site-logo .custom-logo-link { cursor: inherit; } .wp-block-site-logo .custom-logo-link:focus { box-shadow: none; } .wp-block-site-logo img { display: block; height: auto; max-width: 100%; } .wp-block-site-logo.is-transient { position: relative; } .wp-block-site-logo.is-transient img { opacity: 0.3; } .wp-block-site-logo.is-transient .components-spinner { position: absolute; top: 50%; right: 50%; transform: translate(50%, -50%); margin: 0; } .wp-block-site-logo.wp-block-site-logo.is-default-size .components-placeholder { height: 60px; width: 60px; } .wp-block-site-logo.wp-block-site-logo > div, .wp-block-site-logo.wp-block-site-logo .components-resizable-box__container { border-radius: inherit; } .wp-block-site-logo.wp-block-site-logo .components-placeholder { display: flex; justify-content: center; align-items: center; padding: 0; border-radius: inherit; min-height: 48px; min-width: 48px; height: 100%; width: 100%; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-form-file-upload { display: none; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-drop-zone__content-text { display: none; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button { padding: 0; margin: auto; display: flex; justify-content: center; align-items: center; width: 48px; height: 48px; border-radius: 50%; position: relative; background: var(--wp-admin-theme-color); border-color: var(--wp-admin-theme-color); border-style: solid; color: #fff; } .wp-block-site-logo.wp-block-site-logo .components-placeholder .components-button.components-button > svg { color: inherit; } .block-library-site-logo__inspector-media-replace-container { position: relative; } .block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title { word-break: break-all; white-space: normal; text-align: start; -moz-text-align-last: center; text-align-last: center; } .block-library-site-logo__inspector-media-replace-container img { width: 20px; min-width: 20px; aspect-ratio: 1; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.2); border-radius: 2px; } .block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-readonly-logo-preview { padding: 6px 12px; display: flex; height: 40px; } page-list.php 0000775 00000033047 00000000000 0007117 0 ustar 00 <?php /** * Server-side rendering of the `core/pages` block. * * @package WordPress */ /** * Returns the submenu visibility value with backward compatibility * for the deprecated openSubmenusOnClick attribute. * * @since 7.0.0 * * @param array $context Block context from parent Navigation block. * @return string The visibility mode: 'hover', 'click', or 'always'. */ function block_core_page_list_get_submenu_visibility( $context ) { $deprecated_open_submenus_on_click = $context['openSubmenusOnClick'] ?? null; // For backward compatibility, prioritize the legacy attribute if present. If it has been loaded and saved in the editor, then // the deprecated attribute will be replaced by submenuVisibility. if ( null !== $deprecated_open_submenus_on_click ) { // Convert boolean to string: true -> 'click', false -> 'hover'. return ! empty( $deprecated_open_submenus_on_click ) ? 'click' : 'hover'; } $submenu_visibility = $context['submenuVisibility'] ?? null; // Use submenuVisibility for migrated/new blocks. return $submenu_visibility ?? 'hover'; } /** * Build an array with CSS classes and inline styles defining the colors * which will be applied to the pages markup in the front-end when it is a descendant of navigation. * * @since 5.8.0 * * @param array $attributes Block attributes. * @param array $context Navigation block context. * @return array Colors CSS classes and inline styles. */ function block_core_page_list_build_css_colors( $attributes, $context ) { $colors = array( 'css_classes' => array(), 'inline_styles' => '', 'overlay_css_classes' => array(), 'overlay_inline_styles' => '', ); // Text color. $has_named_text_color = array_key_exists( 'textColor', $context ); $has_picked_text_color = array_key_exists( 'customTextColor', $context ); $has_custom_text_color = isset( $context['style']['color']['text'] ); // If has text color. if ( $has_custom_text_color || $has_picked_text_color || $has_named_text_color ) { // Add has-text-color class. $colors['css_classes'][] = 'has-text-color'; } if ( $has_named_text_color ) { // Add the color class. $colors['css_classes'][] = sprintf( 'has-%s-color', _wp_to_kebab_case( $context['textColor'] ) ); } elseif ( $has_picked_text_color ) { $colors['inline_styles'] .= sprintf( 'color: %s;', $context['customTextColor'] ); } elseif ( $has_custom_text_color ) { // Add the custom color inline style. $colors['inline_styles'] .= sprintf( 'color: %s;', $context['style']['color']['text'] ); } // Background color. $has_named_background_color = array_key_exists( 'backgroundColor', $context ); $has_picked_background_color = array_key_exists( 'customBackgroundColor', $context ); $has_custom_background_color = isset( $context['style']['color']['background'] ); // If has background color. if ( $has_custom_background_color || $has_picked_background_color || $has_named_background_color ) { // Add has-background class. $colors['css_classes'][] = 'has-background'; } if ( $has_named_background_color ) { // Add the background-color class. $colors['css_classes'][] = sprintf( 'has-%s-background-color', _wp_to_kebab_case( $context['backgroundColor'] ) ); } elseif ( $has_picked_background_color ) { $colors['inline_styles'] .= sprintf( 'background-color: %s;', $context['customBackgroundColor'] ); } elseif ( $has_custom_background_color ) { // Add the custom background-color inline style. $colors['inline_styles'] .= sprintf( 'background-color: %s;', $context['style']['color']['background'] ); } // Overlay text color. $has_named_overlay_text_color = array_key_exists( 'overlayTextColor', $context ); $has_picked_overlay_text_color = array_key_exists( 'customOverlayTextColor', $context ); // If it has a text color. if ( $has_named_overlay_text_color || $has_picked_overlay_text_color ) { $colors['overlay_css_classes'][] = 'has-text-color'; } // Give overlay colors priority, fall back to Navigation block colors, then global styles. if ( $has_named_overlay_text_color ) { $colors['overlay_css_classes'][] = sprintf( 'has-%s-color', _wp_to_kebab_case( $context['overlayTextColor'] ) ); } elseif ( $has_picked_overlay_text_color ) { $colors['overlay_inline_styles'] .= sprintf( 'color: %s;', $context['customOverlayTextColor'] ); } // Overlay background colors. $has_named_overlay_background_color = array_key_exists( 'overlayBackgroundColor', $context ); $has_picked_overlay_background_color = array_key_exists( 'customOverlayBackgroundColor', $context ); // If has background color. if ( $has_named_overlay_background_color || $has_picked_overlay_background_color ) { $colors['overlay_css_classes'][] = 'has-background'; } if ( $has_named_overlay_background_color ) { $colors['overlay_css_classes'][] = sprintf( 'has-%s-background-color', _wp_to_kebab_case( $context['overlayBackgroundColor'] ) ); } elseif ( $has_picked_overlay_background_color ) { $colors['overlay_inline_styles'] .= sprintf( 'background-color: %s;', $context['customOverlayBackgroundColor'] ); } return $colors; } /** * Outputs Page list markup from an array of pages with nested children. * * @since 5.8.0 * * @param string $submenu_visibility The submenu visibility mode: 'hover', 'click', or 'always'. * @param boolean $show_submenu_icons Whether to show submenu indicator icons. * @param boolean $is_navigation_child If block is a child of Navigation block. * @param array $nested_pages The array of nested pages. * @param boolean $is_nested Whether the submenu is nested or not. * @param array $active_page_ancestor_ids An array of ancestor ids for active page. * @param array $colors Color information for overlay styles. * @param integer $depth The nesting depth. * * @return string List markup. */ function block_core_page_list_render_nested_page_list( $submenu_visibility, $show_submenu_icons, $is_navigation_child, $nested_pages, $is_nested, $active_page_ancestor_ids = array(), $colors = array(), $depth = 0 ) { if ( empty( $nested_pages ) ) { return; } $front_page_id = (int) get_option( 'page_on_front' ); $markup = ''; // Compute visibility mode flags once $open_on_click = 'click' === $submenu_visibility; $open_on_hover = 'hover' === $submenu_visibility; $open_always = 'always' === $submenu_visibility; foreach ( (array) $nested_pages as $page ) { $css_class = $page['is_active'] ? ' current-menu-item' : ''; $aria_current = $page['is_active'] ? ' aria-current="page"' : ''; $style_attribute = ''; $css_class .= in_array( $page['page_id'], $active_page_ancestor_ids, true ) ? ' current-menu-ancestor' : ''; if ( isset( $page['children'] ) ) { $css_class .= ' has-child'; } if ( $is_navigation_child ) { $css_class .= ' wp-block-navigation-item'; // Class assignment logic matches JS editor rendering in page-list-item/edit.js // Note: elseif ensures open-on-hover-click is mutually exclusive with open-on-click if ( $open_on_click ) { $css_class .= ' open-on-click'; } elseif ( $open_on_hover && $show_submenu_icons ) { $css_class .= ' open-on-hover-click'; } elseif ( $open_always ) { $css_class .= ' open-always'; } } $navigation_child_content_class = $is_navigation_child ? ' wp-block-navigation-item__content' : ''; // If this is the first level of submenus, include the overlay colors. if ( ( ( 0 < $depth && ! $is_nested ) || $is_nested ) && isset( $colors['overlay_css_classes'], $colors['overlay_inline_styles'] ) ) { $css_class .= ' ' . trim( implode( ' ', $colors['overlay_css_classes'] ) ); if ( '' !== $colors['overlay_inline_styles'] ) { $style_attribute = sprintf( ' style="%s"', esc_attr( $colors['overlay_inline_styles'] ) ); } } if ( (int) $page['page_id'] === $front_page_id ) { $css_class .= ' menu-item-home'; } $title = $page['title'] ? $page['title'] : __( '(no title)' ); $aria_label = sprintf( /* translators: Accessibility text. %s: Parent page title. */ __( '%s submenu' ), wp_strip_all_tags( $title ) ); $markup .= '<li class="wp-block-pages-list__item' . esc_attr( $css_class ) . '"' . $style_attribute . '>'; if ( isset( $page['children'] ) && $is_navigation_child && $open_on_click ) { $markup .= '<button aria-label="' . esc_attr( $aria_label ) . '" class="' . esc_attr( $navigation_child_content_class ) . ' wp-block-navigation-submenu__toggle" aria-expanded="false">' . wp_kses_post( $title ) . '</button><span class="wp-block-page-list__submenu-icon wp-block-navigation__submenu-icon"><svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false"><path d="M1.50002 4L6.00002 8L10.5 4" stroke-width="1.5"></path></svg></span>'; } else { $markup .= '<a class="wp-block-pages-list__item__link' . esc_attr( $navigation_child_content_class ) . '" href="' . esc_url( $page['link'] ) . '"' . $aria_current . '>' . wp_kses_post( $title ) . '</a>'; } if ( isset( $page['children'] ) ) { if ( $is_navigation_child && $show_submenu_icons && ! $open_on_click ) { $markup .= '<button aria-label="' . esc_attr( $aria_label ) . '" class="wp-block-navigation__submenu-icon wp-block-navigation-submenu__toggle" aria-expanded="false">'; $markup .= '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" fill="none" aria-hidden="true" focusable="false"><path d="M1.50002 4L6.00002 8L10.5 4" stroke-width="1.5"></path></svg>'; $markup .= '</button>'; } $markup .= '<ul class="wp-block-navigation__submenu-container">'; $markup .= block_core_page_list_render_nested_page_list( $submenu_visibility, $show_submenu_icons, $is_navigation_child, $page['children'], $is_nested, $active_page_ancestor_ids, $colors, $depth + 1 ); $markup .= '</ul>'; } $markup .= '</li>'; } return $markup; } /** * Outputs nested array of pages * * @since 5.8.0 * * @param array $current_level The level being iterated through. * @param array $children The children grouped by parent post ID. * * @return array The nested array of pages. */ function block_core_page_list_nest_pages( $current_level, $children ) { if ( empty( $current_level ) ) { return; } foreach ( (array) $current_level as $key => $current ) { if ( isset( $children[ $key ] ) ) { $current_level[ $key ]['children'] = block_core_page_list_nest_pages( $children[ $key ], $children ); } } return $current_level; } /** * Renders the `core/page-list` block on server. * * @since 5.8.0 * * @param array $attributes The block attributes. * @param string $content The saved content. * @param WP_Block $block The parsed block. * * @return string Returns the page list markup. */ function render_block_core_page_list( $attributes, $content, $block ) { static $block_id = 0; ++$block_id; $parent_page_id = $attributes['parentPageID']; $is_nested = ! empty( $block->context['core/isInsideSubmenu'] ); $all_pages = get_pages( array( 'sort_column' => 'menu_order,post_title', 'order' => 'asc', ) ); // If there are no pages, there is nothing to show. if ( empty( $all_pages ) ) { return; } $top_level_pages = array(); $pages_with_children = array(); $active_page_ancestor_ids = array(); foreach ( (array) $all_pages as $page ) { $is_active = ! empty( $page->ID ) && ( get_queried_object_id() === $page->ID ); if ( $is_active ) { $active_page_ancestor_ids = get_post_ancestors( $page->ID ); } if ( $page->post_parent ) { $pages_with_children[ $page->post_parent ][ $page->ID ] = array( 'page_id' => $page->ID, 'title' => $page->post_title, 'link' => get_permalink( $page ), 'is_active' => $is_active, ); } else { $top_level_pages[ $page->ID ] = array( 'page_id' => $page->ID, 'title' => $page->post_title, 'link' => get_permalink( $page ), 'is_active' => $is_active, ); } } $colors = block_core_page_list_build_css_colors( $attributes, $block->context ); $classes = array_merge( $colors['css_classes'] ); $style_attribute = $colors['inline_styles']; $css_classes = trim( implode( ' ', $classes ) ); $nested_pages = block_core_page_list_nest_pages( $top_level_pages, $pages_with_children ); if ( 0 !== $parent_page_id ) { // If the parent page has no child pages, there is nothing to show. if ( ! array_key_exists( $parent_page_id, $pages_with_children ) ) { return; } $nested_pages = block_core_page_list_nest_pages( $pages_with_children[ $parent_page_id ], $pages_with_children ); } $is_navigation_child = array_key_exists( 'showSubmenuIcon', $block->context ); // Get submenu visibility with backward compatibility for openSubmenusOnClick. $submenu_visibility = $is_navigation_child ? block_core_page_list_get_submenu_visibility( $block->context ) : 'hover'; $show_submenu_icons = array_key_exists( 'showSubmenuIcon', $block->context ) ? $block->context['showSubmenuIcon'] : false; $wrapper_markup = $is_nested ? '%2$s' : '<ul %1$s>%2$s</ul>'; $items_markup = block_core_page_list_render_nested_page_list( $submenu_visibility, $show_submenu_icons, $is_navigation_child, $nested_pages, $is_nested, $active_page_ancestor_ids, $colors ); $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $css_classes, 'style' => $style_attribute, ) ); return sprintf( $wrapper_markup, $wrapper_attributes, $items_markup ); } /** * Registers the `core/pages` block on server. * * @since 5.8.0 */ function register_block_core_page_list() { register_block_type_from_metadata( __DIR__ . '/page-list', array( 'render_callback' => 'render_block_core_page_list', ) ); } add_action( 'init', 'register_block_core_page_list' ); accordion/style-rtl.css 0000775 00000000061 00000000000 0011121 0 ustar 00 .wp-block-accordion { box-sizing: border-box; } accordion/style.min.css 0000775 00000000052 00000000000 0011104 0 ustar 00 .wp-block-accordion{box-sizing:border-box} accordion/block.json 0000775 00000003720 00000000000 0010442 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/accordion", "title": "Accordion", "category": "design", "description": "Displays a foldable layout that groups content in collapsible sections.", "example": {}, "supports": { "anchor": true, "html": false, "align": [ "wide", "full" ], "background": { "backgroundImage": true, "backgroundSize": true, "gradient": true, "__experimentalDefaultControls": { "backgroundImage": true } }, "color": { "background": true, "gradients": true }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "spacing": { "padding": true, "margin": [ "top", "bottom" ], "blockGap": true }, "shadow": true, "layout": true, "ariaLabel": true, "interactivity": true, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "contentRole": true, "listView": true }, "attributes": { "iconPosition": { "type": "string", "default": "right" }, "showIcon": { "type": "boolean", "default": true }, "autoclose": { "type": "boolean", "default": false }, "headingLevel": { "type": "number", "default": 3 }, "levelOptions": { "type": "array" } }, "providesContext": { "core/accordion-icon-position": "iconPosition", "core/accordion-show-icon": "showIcon", "core/accordion-heading-level": "headingLevel" }, "allowedBlocks": [ "core/accordion-item" ], "textdomain": "default", "viewScriptModule": "@wordpress/block-library/accordion/view" } accordion/style-rtl.min.css 0000775 00000000052 00000000000 0011703 0 ustar 00 .wp-block-accordion{box-sizing:border-box} accordion/style.css 0000775 00000000061 00000000000 0010322 0 ustar 00 .wp-block-accordion { box-sizing: border-box; } footnotes.php 0000775 00000007352 00000000000 0007252 0 ustar 00 <?php /** * Server-side rendering of the `core/footnotes` block. * * @package WordPress */ /** * Renders the `core/footnotes` block on the server. * * @since 6.3.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the HTML representing the footnotes. */ function render_block_core_footnotes( $attributes, $content, $block ) { // Bail out early if the post ID is not set for some reason. if ( empty( $block->context['postId'] ) ) { return ''; } if ( post_password_required( $block->context['postId'] ) ) { return ''; } $footnotes = get_post_meta( $block->context['postId'], 'footnotes', true ); if ( ! $footnotes ) { return ''; } $footnotes = json_decode( $footnotes, true ); if ( ! is_array( $footnotes ) || count( $footnotes ) === 0 ) { return ''; } $wrapper_attributes = get_block_wrapper_attributes(); $footnote_index = 1; $block_content = ''; foreach ( $footnotes as $footnote ) { // Translators: %d: Integer representing the number of return links on the page. $aria_label = sprintf( __( 'Jump to footnote reference %1$d' ), $footnote_index ); $block_content .= sprintf( '<li id="%1$s">%2$s <a href="#%1$s-link" aria-label="%3$s">↩︎</a></li>', esc_attr( $footnote['id'] ), wp_kses_post( $footnote['content'] ), esc_attr( $aria_label ) ); ++$footnote_index; } return sprintf( '<ol %1$s>%2$s</ol>', $wrapper_attributes, $block_content ); } /** * Registers the `core/footnotes` block on the server. * * @since 6.3.0 */ function register_block_core_footnotes() { register_block_type_from_metadata( __DIR__ . '/footnotes', array( 'render_callback' => 'render_block_core_footnotes', ) ); } add_action( 'init', 'register_block_core_footnotes' ); /** * Registers the footnotes meta field required for footnotes to work. * * @since 6.5.0 */ function register_block_core_footnotes_post_meta() { $post_types = get_post_types( array( 'show_in_rest' => true ) ); foreach ( $post_types as $post_type ) { // Only register the meta field if the post type supports the editor, custom fields, and revisions. if ( post_type_supports( $post_type, 'editor' ) && post_type_supports( $post_type, 'custom-fields' ) && post_type_supports( $post_type, 'revisions' ) ) { register_post_meta( $post_type, 'footnotes', array( 'show_in_rest' => true, 'single' => true, 'type' => 'string', 'revisions_enabled' => true, ) ); } } } /* * Most post types are registered at priority 10, so use priority 20 here in * order to catch them. */ add_action( 'init', 'register_block_core_footnotes_post_meta', 20 ); /** * Adds the footnotes field to the revisions display. * * @since 6.3.0 * * @param array $fields The revision fields. * @return array The revision fields. */ function wp_add_footnotes_to_revision( $fields ) { $fields['footnotes'] = __( 'Footnotes' ); return $fields; } add_filter( '_wp_post_revision_fields', 'wp_add_footnotes_to_revision' ); /** * Gets the footnotes field from the revision for the revisions screen. * * @since 6.3.0 * * @param string $revision_field The field value, but $revision->$field * (footnotes) does not exist. * @param string $field The field name, in this case "footnotes". * @param object $revision The revision object to compare against. * @return string The field value. */ function wp_get_footnotes_from_revision( $revision_field, $field, $revision ) { return get_metadata( 'post', $revision->ID, $field, true ); } add_filter( '_wp_post_revision_field_footnotes', 'wp_get_footnotes_from_revision', 10, 3 ); text-columns/editor.css 0000775 00000001551 00000000000 0011156 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-text-columns .block-editor-rich-text__editable:focus { outline: 1px solid #ddd; } text-columns/editor.min.css 0000775 00000000126 00000000000 0011735 0 ustar 00 .wp-block-text-columns .block-editor-rich-text__editable:focus{outline:1px solid #ddd} text-columns/style-rtl.css 0000775 00000001031 00000000000 0011620 0 ustar 00 .wp-block-text-columns { display: flex; } .wp-block-text-columns.aligncenter { display: flex; } .wp-block-text-columns .wp-block-column { margin: 0 1em; padding: 0; } .wp-block-text-columns .wp-block-column:first-child { margin-right: 0; } .wp-block-text-columns .wp-block-column:last-child { margin-left: 0; } .wp-block-text-columns.columns-2 .wp-block-column { width: 50%; } .wp-block-text-columns.columns-3 .wp-block-column { width: 33.3333333333%; } .wp-block-text-columns.columns-4 .wp-block-column { width: 25%; } text-columns/editor-rtl.min.css 0000775 00000000126 00000000000 0012534 0 ustar 00 .wp-block-text-columns .block-editor-rich-text__editable:focus{outline:1px solid #ddd} text-columns/style.min.css 0000775 00000000711 00000000000 0011607 0 ustar 00 .wp-block-text-columns,.wp-block-text-columns.aligncenter{display:flex}.wp-block-text-columns .wp-block-column{margin:0 1em;padding:0}.wp-block-text-columns .wp-block-column:first-child{margin-left:0}.wp-block-text-columns .wp-block-column:last-child{margin-right:0}.wp-block-text-columns.columns-2 .wp-block-column{width:50%}.wp-block-text-columns.columns-3 .wp-block-column{width:33.3333333333%}.wp-block-text-columns.columns-4 .wp-block-column{width:25%} text-columns/block.json 0000775 00000001420 00000000000 0011136 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/text-columns", "title": "Text Columns (deprecated)", "icon": "columns", "category": "design", "description": "This block is deprecated. Please use the Columns block instead.", "textdomain": "default", "attributes": { "content": { "type": "array", "source": "query", "selector": "p", "query": { "children": { "type": "string", "source": "html" } }, "default": [ {}, {} ] }, "columns": { "type": "number", "default": 2 }, "width": { "type": "string" } }, "supports": { "inserter": false, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-text-columns-editor", "style": "wp-block-text-columns" } text-columns/style-rtl.min.css 0000775 00000000711 00000000000 0012406 0 ustar 00 .wp-block-text-columns,.wp-block-text-columns.aligncenter{display:flex}.wp-block-text-columns .wp-block-column{margin:0 1em;padding:0}.wp-block-text-columns .wp-block-column:first-child{margin-right:0}.wp-block-text-columns .wp-block-column:last-child{margin-left:0}.wp-block-text-columns.columns-2 .wp-block-column{width:50%}.wp-block-text-columns.columns-3 .wp-block-column{width:33.3333333333%}.wp-block-text-columns.columns-4 .wp-block-column{width:25%} text-columns/style.css 0000775 00000001031 00000000000 0011021 0 ustar 00 .wp-block-text-columns { display: flex; } .wp-block-text-columns.aligncenter { display: flex; } .wp-block-text-columns .wp-block-column { margin: 0 1em; padding: 0; } .wp-block-text-columns .wp-block-column:first-child { margin-left: 0; } .wp-block-text-columns .wp-block-column:last-child { margin-right: 0; } .wp-block-text-columns.columns-2 .wp-block-column { width: 50%; } .wp-block-text-columns.columns-3 .wp-block-column { width: 33.3333333333%; } .wp-block-text-columns.columns-4 .wp-block-column { width: 25%; } text-columns/editor-rtl.css 0000775 00000001551 00000000000 0011755 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-text-columns .block-editor-rich-text__editable:focus { outline: 1px solid #ddd; } pattern/block.json 0000775 00000000662 00000000000 0010160 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/pattern", "title": "Pattern Placeholder", "category": "theme", "description": "Show a block pattern.", "supports": { "html": false, "inserter": false, "renaming": false, "visibility": false, "interactivity": { "clientNavigation": true } }, "textdomain": "default", "attributes": { "slug": { "type": "string" } } } post-excerpt/editor.css 0000775 00000000127 00000000000 0011147 0 ustar 00 .wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline { display: inline; } post-excerpt/editor.min.css 0000775 00000000120 00000000000 0011722 0 ustar 00 .wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline{display:inline} post-excerpt/style-rtl.css 0000775 00000000605 00000000000 0011621 0 ustar 00 :where(.wp-block-post-excerpt) { box-sizing: border-box; margin-top: var(--wp--style--block-gap); margin-bottom: var(--wp--style--block-gap); } .wp-block-post-excerpt__excerpt { margin-top: 0; margin-bottom: 0; } .wp-block-post-excerpt__more-text { margin-top: var(--wp--style--block-gap); margin-bottom: 0; } .wp-block-post-excerpt__more-link { display: inline-block; } post-excerpt/editor-rtl.min.css 0000775 00000000120 00000000000 0012521 0 ustar 00 .wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline{display:inline} post-excerpt/style.min.css 0000775 00000000523 00000000000 0011603 0 ustar 00 :where(.wp-block-post-excerpt){box-sizing:border-box;margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__excerpt{margin-bottom:0;margin-top:0}.wp-block-post-excerpt__more-text{margin-bottom:0;margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__more-link{display:inline-block} post-excerpt/block.json 0000775 00000003037 00000000000 0011137 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-excerpt", "title": "Excerpt", "category": "theme", "description": "Display the excerpt.", "textdomain": "default", "attributes": { "moreText": { "type": "string", "role": "content" }, "showMoreOnNewLine": { "type": "boolean", "default": true }, "excerptLength": { "type": "number", "default": 55 } }, "usesContext": [ "postId", "postType", "queryId" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "textColumns": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "editorStyle": "wp-block-post-excerpt-editor", "style": "wp-block-post-excerpt" } post-excerpt/style-rtl.min.css 0000775 00000000523 00000000000 0012402 0 ustar 00 :where(.wp-block-post-excerpt){box-sizing:border-box;margin-bottom:var(--wp--style--block-gap);margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__excerpt{margin-bottom:0;margin-top:0}.wp-block-post-excerpt__more-text{margin-bottom:0;margin-top:var(--wp--style--block-gap)}.wp-block-post-excerpt__more-link{display:inline-block} post-excerpt/style.css 0000775 00000000605 00000000000 0011022 0 ustar 00 :where(.wp-block-post-excerpt) { box-sizing: border-box; margin-top: var(--wp--style--block-gap); margin-bottom: var(--wp--style--block-gap); } .wp-block-post-excerpt__excerpt { margin-top: 0; margin-bottom: 0; } .wp-block-post-excerpt__more-text { margin-top: var(--wp--style--block-gap); margin-bottom: 0; } .wp-block-post-excerpt__more-link { display: inline-block; } post-excerpt/editor-rtl.css 0000775 00000000127 00000000000 0011746 0 ustar 00 .wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline { display: inline; } home-link/block.json 0000775 00000002402 00000000000 0010360 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/home-link", "category": "design", "parent": [ "core/navigation" ], "title": "Home Link", "description": "Create a link that always points to the homepage of the site. Usually not necessary if there is already a site title link present in the header.", "textdomain": "default", "attributes": { "label": { "type": "string", "role": "content" }, "opensInNewTab": { "type": "boolean", "default": false }, "description": { "type": "string" } }, "usesContext": [ "textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "fontSize", "customFontSize", "style" ], "supports": { "anchor": true, "reusable": false, "html": false, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-home-link-editor", "style": "wp-block-home-link" } breadcrumbs/style-rtl.css 0000775 00000000710 00000000000 0011452 0 ustar 00 .wp-block-breadcrumbs { box-sizing: border-box; } .wp-block-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; } .wp-block-breadcrumbs li { margin: 0; padding: 0; display: flex; align-items: center; } .wp-block-breadcrumbs li:not(:last-child)::after { content: var(--separator, "/")/""; margin: 0 0.5em; opacity: 0.7; } .wp-block-breadcrumbs span { color: inherit; } breadcrumbs/style.min.css 0000775 00000000533 00000000000 0011440 0 ustar 00 .wp-block-breadcrumbs{box-sizing:border-box}.wp-block-breadcrumbs ol{flex-wrap:wrap;list-style:none}.wp-block-breadcrumbs li,.wp-block-breadcrumbs ol{align-items:center;display:flex;margin:0;padding:0}.wp-block-breadcrumbs li:not(:last-child):after{content:var(--separator,"/")/"";margin:0 .5em;opacity:.7}.wp-block-breadcrumbs span{color:inherit} breadcrumbs/block.json 0000775 00000003142 00000000000 0010770 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/breadcrumbs", "title": "Breadcrumbs", "category": "theme", "description": "Display a breadcrumb trail showing the path to the current page.", "textdomain": "default", "attributes": { "prefersTaxonomy": { "type": "boolean", "default": false }, "separator": { "type": "string", "default": "/" }, "showHomeItem": { "type": "boolean", "default": true }, "showCurrentItem": { "type": "boolean", "default": true }, "showOnHomePage": { "type": "boolean", "default": false } }, "usesContext": [ "postId", "postType", "templateSlug" ], "supports": { "anchor": true, "html": false, "align": [ "wide", "full" ], "spacing": { "margin": true, "padding": true }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": false, "color": true, "width": true, "style": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-breadcrumbs" } breadcrumbs/style-rtl.min.css 0000775 00000000533 00000000000 0012237 0 ustar 00 .wp-block-breadcrumbs{box-sizing:border-box}.wp-block-breadcrumbs ol{flex-wrap:wrap;list-style:none}.wp-block-breadcrumbs li,.wp-block-breadcrumbs ol{align-items:center;display:flex;margin:0;padding:0}.wp-block-breadcrumbs li:not(:last-child):after{content:var(--separator,"/")/"";margin:0 .5em;opacity:.7}.wp-block-breadcrumbs span{color:inherit} breadcrumbs/style.css 0000775 00000000710 00000000000 0010653 0 ustar 00 .wp-block-breadcrumbs { box-sizing: border-box; } .wp-block-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; } .wp-block-breadcrumbs li { margin: 0; padding: 0; display: flex; align-items: center; } .wp-block-breadcrumbs li:not(:last-child)::after { content: var(--separator, "/")/""; margin: 0 0.5em; opacity: 0.7; } .wp-block-breadcrumbs span { color: inherit; } post-comments-form.php 0000775 00000005365 00000000000 0011005 0 ustar 00 <?php /** * Server-side rendering of the `core/post-comments-form` block. * * @package WordPress */ /** * Renders the `core/post-comments-form` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the filtered post comments form for the current post. */ function render_block_core_post_comments_form( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { return ''; } if ( post_password_required( $block->context['postId'] ) ) { return; } $classes = array( 'comment-respond' ); // See comment further below. if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); add_filter( 'comment_form_defaults', 'post_comments_form_block_form_defaults' ); ob_start(); comment_form( array(), $block->context['postId'] ); $form = ob_get_clean(); remove_filter( 'comment_form_defaults', 'post_comments_form_block_form_defaults' ); // We use the outermost wrapping `<div />` returned by `comment_form()` // which is identified by its default classname `comment-respond` to inject // our wrapper attributes. This way, it is guaranteed that all styling applied // to the block is carried along when the comment form is moved to the location // of the 'Reply' link that the user clicked by Core's `comment-reply.js` script. $form = str_replace( 'class="comment-respond"', $wrapper_attributes, $form ); // Enqueue the comment-reply script. wp_enqueue_script( 'comment-reply' ); return $form; } /** * Registers the `core/post-comments-form` block on the server. * * @since 6.0.0 */ function register_block_core_post_comments_form() { register_block_type_from_metadata( __DIR__ . '/post-comments-form', array( 'render_callback' => 'render_block_core_post_comments_form', ) ); } add_action( 'init', 'register_block_core_post_comments_form' ); /** * Use the button block classes for the form-submit button. * * @since 6.0.0 * * @param array $fields The default comment form arguments. * * @return array Returns the modified fields. */ function post_comments_form_block_form_defaults( $fields ) { if ( wp_is_block_theme() ) { $fields['submit_button'] = '<input name="%1$s" type="submit" id="%2$s" class="wp-block-button__link ' . wp_theme_get_element_class_name( 'button' ) . '" value="%4$s" />'; $fields['submit_field'] = '<p class="form-submit wp-block-button">%1$s %2$s</p>'; } return $fields; } query/editor.css 0000775 00000007253 00000000000 0007666 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-library-query-pattern__selection-modal .block-editor-block-patterns-list { -moz-column-count: 2; column-count: 2; -moz-column-gap: 24px; column-gap: 24px; } @media (min-width: 1280px) { .block-library-query-pattern__selection-modal .block-editor-block-patterns-list { -moz-column-count: 3; column-count: 3; } } .block-library-query-pattern__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item { -moz-column-break-inside: avoid; break-inside: avoid-column; } .block-library-query-pattern__selection-modal .block-library-query-pattern__selection-search { background: #fff; position: sticky; top: 0; padding: 16px 0; transform: translateY(-4px); margin-bottom: -4px; z-index: 2; } @media (min-width: 600px) { .wp-block-query__enhanced-pagination-modal { max-width: 480px; } } .block-editor-block-settings-menu__popover.is-expanded { overflow-y: scroll; } .block-editor-block-settings-menu__popover .block-library-query-pattern__selection-content { height: 100%; } .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { display: grid; grid-template-columns: 1fr; } @media (min-width: 600px) { .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { grid-template-columns: 1fr 1fr; } } .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { grid-gap: 12px; min-width: 280px; } @media (min-width: 600px) { .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { min-width: 480px; } } .block-editor-block-settings-menu__popover .block-editor-block-patterns-list__list-item { margin-bottom: 0; } .wp-block-query > .block-editor-media-placeholder.is-small { min-height: 60px; } query/editor.min.css 0000775 00000003067 00000000000 0010447 0 ustar 00 .block-library-query-pattern__selection-modal .block-editor-block-patterns-list{-moz-column-count:2;column-count:2;-moz-column-gap:24px;column-gap:24px}@media (min-width:1280px){.block-library-query-pattern__selection-modal .block-editor-block-patterns-list{-moz-column-count:3;column-count:3}}.block-library-query-pattern__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{-moz-column-break-inside:avoid;break-inside:avoid-column}.block-library-query-pattern__selection-modal .block-library-query-pattern__selection-search{background:#fff;margin-bottom:-4px;padding:16px 0;position:sticky;top:0;transform:translateY(-4px);z-index:2}@media (min-width:600px){.wp-block-query__enhanced-pagination-modal{max-width:480px}}.block-editor-block-settings-menu__popover.is-expanded{overflow-y:scroll}.block-editor-block-settings-menu__popover .block-library-query-pattern__selection-content{height:100%}.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{display:grid;grid-template-columns:1fr}@media (min-width:600px){.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{grid-template-columns:1fr 1fr}}.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{grid-gap:12px;min-width:280px}@media (min-width:600px){.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{min-width:480px}}.block-editor-block-settings-menu__popover .block-editor-block-patterns-list__list-item{margin-bottom:0}.wp-block-query>.block-editor-media-placeholder.is-small{min-height:60px} query/editor-rtl.min.css 0000775 00000003067 00000000000 0011246 0 ustar 00 .block-library-query-pattern__selection-modal .block-editor-block-patterns-list{-moz-column-count:2;column-count:2;-moz-column-gap:24px;column-gap:24px}@media (min-width:1280px){.block-library-query-pattern__selection-modal .block-editor-block-patterns-list{-moz-column-count:3;column-count:3}}.block-library-query-pattern__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{-moz-column-break-inside:avoid;break-inside:avoid-column}.block-library-query-pattern__selection-modal .block-library-query-pattern__selection-search{background:#fff;margin-bottom:-4px;padding:16px 0;position:sticky;top:0;transform:translateY(-4px);z-index:2}@media (min-width:600px){.wp-block-query__enhanced-pagination-modal{max-width:480px}}.block-editor-block-settings-menu__popover.is-expanded{overflow-y:scroll}.block-editor-block-settings-menu__popover .block-library-query-pattern__selection-content{height:100%}.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{display:grid;grid-template-columns:1fr}@media (min-width:600px){.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{grid-template-columns:1fr 1fr}}.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{grid-gap:12px;min-width:280px}@media (min-width:600px){.block-editor-block-settings-menu__popover .block-editor-block-patterns-list{min-width:480px}}.block-editor-block-settings-menu__popover .block-editor-block-patterns-list__list-item{margin-bottom:0}.wp-block-query>.block-editor-media-placeholder.is-small{min-height:60px} query/block.json 0000775 00000002476 00000000000 0007655 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query", "title": "Query Loop", "category": "theme", "description": "An advanced block that allows displaying post types based on different query parameters and visual configurations.", "keywords": [ "posts", "list", "blog", "blogs", "custom post types" ], "textdomain": "default", "attributes": { "queryId": { "type": "number" }, "query": { "type": "object", "default": { "perPage": null, "pages": 0, "offset": 0, "postType": "post", "order": "desc", "orderBy": "date", "author": "", "search": "", "exclude": [], "sticky": "", "inherit": true, "taxQuery": null, "parents": [], "format": [], "excludeCurrent": null } }, "tagName": { "type": "string", "default": "div" }, "namespace": { "type": "string" }, "enhancedPagination": { "type": "boolean", "default": false } }, "usesContext": [ "templateSlug", "postType" ], "providesContext": { "queryId": "queryId", "query": "query", "displayLayout": "displayLayout", "enhancedPagination": "enhancedPagination" }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "layout": true, "interactivity": true }, "editorStyle": "wp-block-query-editor" } query/editor-rtl.css 0000775 00000007253 00000000000 0010465 0 ustar 00 /** * Breakpoints & Media Queries */ /** * Colors */ /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-library-query-pattern__selection-modal .block-editor-block-patterns-list { -moz-column-count: 2; column-count: 2; -moz-column-gap: 24px; column-gap: 24px; } @media (min-width: 1280px) { .block-library-query-pattern__selection-modal .block-editor-block-patterns-list { -moz-column-count: 3; column-count: 3; } } .block-library-query-pattern__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item { -moz-column-break-inside: avoid; break-inside: avoid-column; } .block-library-query-pattern__selection-modal .block-library-query-pattern__selection-search { background: #fff; position: sticky; top: 0; padding: 16px 0; transform: translateY(-4px); margin-bottom: -4px; z-index: 2; } @media (min-width: 600px) { .wp-block-query__enhanced-pagination-modal { max-width: 480px; } } .block-editor-block-settings-menu__popover.is-expanded { overflow-y: scroll; } .block-editor-block-settings-menu__popover .block-library-query-pattern__selection-content { height: 100%; } .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { display: grid; grid-template-columns: 1fr; } @media (min-width: 600px) { .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { grid-template-columns: 1fr 1fr; } } .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { grid-gap: 12px; min-width: 280px; } @media (min-width: 600px) { .block-editor-block-settings-menu__popover .block-editor-block-patterns-list { min-width: 480px; } } .block-editor-block-settings-menu__popover .block-editor-block-patterns-list__list-item { margin-bottom: 0; } .wp-block-query > .block-editor-media-placeholder.is-small { min-height: 60px; } post-author.php 0000775 00000005256 00000000000 0007520 0 ustar 00 <?php /** * Server-side rendering of the `core/post-author` block. * * @package WordPress */ /** * Renders the `core/post-author` block on the server. * * @since 5.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the rendered author block. */ function render_block_core_post_author( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { $author_id = get_query_var( 'author' ); } else { $author_id = get_post_field( 'post_author', $block->context['postId'] ); } if ( empty( $author_id ) ) { return ''; } if ( isset( $block->context['postType'] ) && ! post_type_supports( $block->context['postType'], 'author' ) ) { return ''; } $avatar = ! empty( $attributes['avatarSize'] ) ? get_avatar( $author_id, $attributes['avatarSize'] ) : null; $link = get_author_posts_url( $author_id ); $author_name = get_the_author_meta( 'display_name', $author_id ); if ( ! empty( $attributes['isLink'] && ! empty( $attributes['linkTarget'] ) ) ) { $author_name = sprintf( '<a href="%1$s" target="%2$s">%3$s</a>', esc_url( $link ), esc_attr( $attributes['linkTarget'] ), $author_name ); } $byline = ! empty( $attributes['byline'] ) ? $attributes['byline'] : false; $classes = array(); if ( isset( $attributes['itemsJustification'] ) ) { $classes[] = 'items-justified-' . $attributes['itemsJustification']; } if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<div %1$s>', $wrapper_attributes ) . ( ! empty( $attributes['showAvatar'] ) ? '<div class="wp-block-post-author__avatar">' . $avatar . '</div>' : '' ) . '<div class="wp-block-post-author__content">' . ( ! empty( $byline ) ? '<p class="wp-block-post-author__byline">' . wp_kses_post( $byline ) . '</p>' : '' ) . '<p class="wp-block-post-author__name">' . $author_name . '</p>' . ( ! empty( $attributes['showBio'] ) ? '<p class="wp-block-post-author__bio">' . get_the_author_meta( 'user_description', $author_id ) . '</p>' : '' ) . '</div>' . '</div>'; } /** * Registers the `core/post-author` block on the server. * * @since 5.9.0 */ function register_block_core_post_author() { register_block_type_from_metadata( __DIR__ . '/post-author', array( 'render_callback' => 'render_block_core_post_author', ) ); } add_action( 'init', 'register_block_core_post_author' ); require-dynamic-blocks.php 0000775 00000012210 00000000000 0011570 0 ustar 00 <?php // This file was autogenerated by tools/gutenberg/copy.js, do not change manually! // Requires files for dynamic blocks necessary for core blocks registration. require_once ABSPATH . WPINC . '/blocks/accordion.php'; require_once ABSPATH . WPINC . '/blocks/accordion-item.php'; require_once ABSPATH . WPINC . '/blocks/archives.php'; require_once ABSPATH . WPINC . '/blocks/avatar.php'; require_once ABSPATH . WPINC . '/blocks/block.php'; require_once ABSPATH . WPINC . '/blocks/breadcrumbs.php'; require_once ABSPATH . WPINC . '/blocks/button.php'; require_once ABSPATH . WPINC . '/blocks/calendar.php'; require_once ABSPATH . WPINC . '/blocks/categories.php'; require_once ABSPATH . WPINC . '/blocks/comment-author-name.php'; require_once ABSPATH . WPINC . '/blocks/comment-content.php'; require_once ABSPATH . WPINC . '/blocks/comment-date.php'; require_once ABSPATH . WPINC . '/blocks/comment-edit-link.php'; require_once ABSPATH . WPINC . '/blocks/comment-reply-link.php'; require_once ABSPATH . WPINC . '/blocks/comment-template.php'; require_once ABSPATH . WPINC . '/blocks/comments.php'; require_once ABSPATH . WPINC . '/blocks/comments-pagination.php'; require_once ABSPATH . WPINC . '/blocks/comments-pagination-next.php'; require_once ABSPATH . WPINC . '/blocks/comments-pagination-numbers.php'; require_once ABSPATH . WPINC . '/blocks/comments-pagination-previous.php'; require_once ABSPATH . WPINC . '/blocks/comments-title.php'; require_once ABSPATH . WPINC . '/blocks/cover.php'; require_once ABSPATH . WPINC . '/blocks/details.php'; require_once ABSPATH . WPINC . '/blocks/file.php'; require_once ABSPATH . WPINC . '/blocks/footnotes.php'; require_once ABSPATH . WPINC . '/blocks/gallery.php'; require_once ABSPATH . WPINC . '/blocks/heading.php'; require_once ABSPATH . WPINC . '/blocks/home-link.php'; require_once ABSPATH . WPINC . '/blocks/icon.php'; require_once ABSPATH . WPINC . '/blocks/image.php'; require_once ABSPATH . WPINC . '/blocks/latest-comments.php'; require_once ABSPATH . WPINC . '/blocks/latest-posts.php'; require_once ABSPATH . WPINC . '/blocks/list.php'; require_once ABSPATH . WPINC . '/blocks/loginout.php'; require_once ABSPATH . WPINC . '/blocks/media-text.php'; require_once ABSPATH . WPINC . '/blocks/navigation.php'; require_once ABSPATH . WPINC . '/blocks/navigation-link.php'; require_once ABSPATH . WPINC . '/blocks/navigation-overlay-close.php'; require_once ABSPATH . WPINC . '/blocks/navigation-submenu.php'; require_once ABSPATH . WPINC . '/blocks/page-list.php'; require_once ABSPATH . WPINC . '/blocks/page-list-item.php'; require_once ABSPATH . WPINC . '/blocks/paragraph.php'; require_once ABSPATH . WPINC . '/blocks/pattern.php'; require_once ABSPATH . WPINC . '/blocks/playlist.php'; require_once ABSPATH . WPINC . '/blocks/playlist-track.php'; require_once ABSPATH . WPINC . '/blocks/post-author.php'; require_once ABSPATH . WPINC . '/blocks/post-author-biography.php'; require_once ABSPATH . WPINC . '/blocks/post-author-name.php'; require_once ABSPATH . WPINC . '/blocks/post-comments-count.php'; require_once ABSPATH . WPINC . '/blocks/post-comments-form.php'; require_once ABSPATH . WPINC . '/blocks/post-comments-link.php'; require_once ABSPATH . WPINC . '/blocks/post-content.php'; require_once ABSPATH . WPINC . '/blocks/post-date.php'; require_once ABSPATH . WPINC . '/blocks/post-excerpt.php'; require_once ABSPATH . WPINC . '/blocks/post-featured-image.php'; require_once ABSPATH . WPINC . '/blocks/post-navigation-link.php'; require_once ABSPATH . WPINC . '/blocks/post-template.php'; require_once ABSPATH . WPINC . '/blocks/post-terms.php'; require_once ABSPATH . WPINC . '/blocks/post-time-to-read.php'; require_once ABSPATH . WPINC . '/blocks/post-title.php'; require_once ABSPATH . WPINC . '/blocks/query.php'; require_once ABSPATH . WPINC . '/blocks/query-no-results.php'; require_once ABSPATH . WPINC . '/blocks/query-pagination.php'; require_once ABSPATH . WPINC . '/blocks/query-pagination-next.php'; require_once ABSPATH . WPINC . '/blocks/query-pagination-numbers.php'; require_once ABSPATH . WPINC . '/blocks/query-pagination-previous.php'; require_once ABSPATH . WPINC . '/blocks/query-title.php'; require_once ABSPATH . WPINC . '/blocks/query-total.php'; require_once ABSPATH . WPINC . '/blocks/read-more.php'; require_once ABSPATH . WPINC . '/blocks/rss.php'; require_once ABSPATH . WPINC . '/blocks/search.php'; require_once ABSPATH . WPINC . '/blocks/shortcode.php'; require_once ABSPATH . WPINC . '/blocks/site-logo.php'; require_once ABSPATH . WPINC . '/blocks/site-tagline.php'; require_once ABSPATH . WPINC . '/blocks/site-title.php'; require_once ABSPATH . WPINC . '/blocks/social-link.php'; require_once ABSPATH . WPINC . '/blocks/tab-list.php'; require_once ABSPATH . WPINC . '/blocks/tab-panel.php'; require_once ABSPATH . WPINC . '/blocks/tabs.php'; require_once ABSPATH . WPINC . '/blocks/tag-cloud.php'; require_once ABSPATH . WPINC . '/blocks/template-part.php'; require_once ABSPATH . WPINC . '/blocks/term-count.php'; require_once ABSPATH . WPINC . '/blocks/term-description.php'; require_once ABSPATH . WPINC . '/blocks/term-name.php'; require_once ABSPATH . WPINC . '/blocks/term-template.php'; require_once ABSPATH . WPINC . '/blocks/video.php'; tag-cloud.php 0000775 00000003062 00000000000 0007103 0 ustar 00 <?php /** * Server-side rendering of the `core/tag-cloud` block. * * @package WordPress */ /** * Renders the `core/tag-cloud` block on server. * * @since 5.2.0 * * @param array $attributes The block attributes. * * @return string Returns the tag cloud for selected taxonomy. */ function render_block_core_tag_cloud( $attributes ) { $smallest_font_size = $attributes['smallestFontSize']; $unit = preg_match( '/^[0-9.]+(?P<unit>[a-z%]+)$/i', $smallest_font_size, $m ) ? $m['unit'] : 'pt'; $args = array( 'echo' => false, 'unit' => $unit, 'taxonomy' => $attributes['taxonomy'], 'show_count' => $attributes['showTagCounts'], 'number' => $attributes['numberOfTags'], 'smallest' => floatVal( $attributes['smallestFontSize'] ), 'largest' => floatVal( $attributes['largestFontSize'] ), ); $tag_cloud = wp_tag_cloud( $args ); if ( empty( $tag_cloud ) ) { // Display placeholder content when there are no tags only in editor. if ( wp_is_serving_rest_request() ) { $tag_cloud = __( 'There’s no content to show here yet.' ); } else { return ''; } } $wrapper_attributes = get_block_wrapper_attributes(); return sprintf( '<p %1$s>%2$s</p>', $wrapper_attributes, $tag_cloud ); } /** * Registers the `core/tag-cloud` block on server. * * @since 5.2.0 */ function register_block_core_tag_cloud() { register_block_type_from_metadata( __DIR__ . '/tag-cloud', array( 'render_callback' => 'render_block_core_tag_cloud', ) ); } add_action( 'init', 'register_block_core_tag_cloud' ); term-name/style-rtl.css 0000775 00000000061 00000000000 0011045 0 ustar 00 .wp-block-term-name { box-sizing: border-box; } term-name/style.min.css 0000775 00000000052 00000000000 0011030 0 ustar 00 .wp-block-term-name{box-sizing:border-box} term-name/block.json 0000775 00000002641 00000000000 0010367 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/term-name", "title": "Term Name", "category": "theme", "description": "Displays the name of a taxonomy term.", "keywords": [ "term title" ], "textdomain": "default", "usesContext": [ "termId", "taxonomy" ], "attributes": { "level": { "type": "number", "default": 0 }, "isLink": { "type": "boolean", "default": false }, "levelOptions": { "type": "array" } }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "color": true, "width": true, "style": true } } }, "style": "wp-block-term-name" } term-name/style-rtl.min.css 0000775 00000000052 00000000000 0011627 0 ustar 00 .wp-block-term-name{box-sizing:border-box} term-name/style.css 0000775 00000000061 00000000000 0010246 0 ustar 00 .wp-block-term-name { box-sizing: border-box; } page-list-item/block.json 0000775 00000002176 00000000000 0011326 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/page-list-item", "title": "Page List Item", "category": "widgets", "parent": [ "core/page-list" ], "description": "Displays a page inside a list of all pages.", "keywords": [ "page", "menu", "navigation" ], "textdomain": "default", "attributes": { "id": { "type": "number" }, "label": { "type": "string" }, "title": { "type": "string" }, "link": { "type": "string" }, "hasChildren": { "type": "boolean" } }, "usesContext": [ "textColor", "customTextColor", "backgroundColor", "customBackgroundColor", "overlayTextColor", "customOverlayTextColor", "overlayBackgroundColor", "customOverlayBackgroundColor", "fontSize", "customFontSize", "showSubmenuIcon", "style", "openSubmenusOnClick", "submenuVisibility" ], "supports": { "anchor": true, "reusable": false, "html": false, "lock": false, "inserter": false, "__experimentalToolbar": false, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-page-list-editor", "style": "wp-block-page-list" } post-navigation-link/style-rtl.css 0000775 00000001302 00000000000 0013234 0 ustar 00 .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous { display: inline-block; margin-left: 1ch; } .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous:not(.is-arrow-chevron) { transform: scaleX(-1);; } .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next { display: inline-block; margin-right: 1ch; } .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next:not(.is-arrow-chevron) { transform: scaleX(-1);; } .wp-block-post-navigation-link.has-text-align-right[style*="writing-mode: vertical-rl"], .wp-block-post-navigation-link.has-text-align-left[style*="writing-mode: vertical-lr"] { rotate: 180deg; } post-navigation-link/style.min.css 0000775 00000001216 00000000000 0013223 0 ustar 00 .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous{display:inline-block;margin-right:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next{display:inline-block;margin-left:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-post-navigation-link.has-text-align-left[style*="writing-mode: vertical-lr"],.wp-block-post-navigation-link.has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg} post-navigation-link/block.json 0000775 00000002472 00000000000 0012561 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-navigation-link", "title": "Post Navigation Link", "category": "theme", "description": "Displays the next or previous post link that is adjacent to the current post.", "textdomain": "default", "attributes": { "type": { "type": "string", "default": "next" }, "label": { "type": "string", "role": "content" }, "showTitle": { "type": "boolean", "default": false }, "linkLabel": { "type": "boolean", "default": false }, "arrow": { "type": "string", "default": "none" }, "taxonomy": { "type": "string", "default": "" } }, "usesContext": [ "postType" ], "supports": { "anchor": true, "reusable": false, "html": false, "color": { "link": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalWritingMode": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-post-navigation-link" } post-navigation-link/style-rtl.min.css 0000775 00000001220 00000000000 0014015 0 ustar 00 .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous{display:inline-block;margin-left:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next{display:inline-block;margin-right:1ch}.wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-post-navigation-link.has-text-align-left[style*="writing-mode: vertical-lr"],.wp-block-post-navigation-link.has-text-align-right[style*="writing-mode: vertical-rl"]{rotate:180deg} post-navigation-link/style.css 0000775 00000001346 00000000000 0012445 0 ustar 00 .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous { display: inline-block; margin-right: 1ch; } .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-previous:not(.is-arrow-chevron) { transform: scaleX(1) /*rtl:scaleX(-1);*/; } .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next { display: inline-block; margin-left: 1ch; } .wp-block-post-navigation-link .wp-block-post-navigation-link__arrow-next:not(.is-arrow-chevron) { transform: scaleX(1) /*rtl:scaleX(-1);*/; } .wp-block-post-navigation-link.has-text-align-right[style*="writing-mode: vertical-rl"], .wp-block-post-navigation-link.has-text-align-left[style*="writing-mode: vertical-lr"] { rotate: 180deg; } navigation.php 0000775 00000212354 00000000000 0007371 0 ustar 00 <?php /** * Server-side rendering of the `core/navigation` block. * * @package WordPress */ /** * Returns the submenu visibility value with backward compatibility * for the deprecated openSubmenusOnClick attribute. * * This function centralizes the migration logic from the boolean * openSubmenusOnClick to the new submenuVisibility enum. * * Backward compatibility: WordPress applies default attribute values, so submenuVisibility * will always have a value even for legacy blocks. We check the legacy openSubmenusOnClick * attribute first to preserve original behavior for blocks saved before the migration. * * @since 7.0.0 * * @param array $attributes Block attributes containing submenuVisibility and/or openSubmenusOnClick. * @return string The visibility mode: 'hover', 'click', or 'always'. */ function block_core_navigation_get_submenu_visibility( $attributes ) { $deprecated_open_submenus_on_click = $attributes['openSubmenusOnClick'] ?? null; // For backward compatibility, prioritize the legacy attribute if present. // Legacy blocks have openSubmenusOnClick in the database. Since WordPress applies // default values, submenuVisibility will also have a value, but we check the legacy // attribute first to preserve the original behavior. If the block has been updated // and saved in the editor, then the deprecated attribute will be replaced by submenuVisibility. if ( null !== $deprecated_open_submenus_on_click ) { // Convert boolean to string: true -> 'click', false -> 'hover'. return ! empty( $deprecated_open_submenus_on_click ) ? 'click' : 'hover'; } $submenu_visibility = $attributes['submenuVisibility'] ?? null; // Use submenuVisibility for migrated/new blocks (where openSubmenusOnClick is null). return $submenu_visibility ?? 'hover'; } /** * Returns the custom properties used by the Navigation block for a layout. * * @since 7.1.0 * * @param array $layout Layout configuration. * @return array Navigation layout custom property declarations. */ function block_core_navigation_get_layout_custom_property_declarations( $layout ) { $justification_values = array( 'left' => 'flex-start', 'center' => 'center', 'right' => 'flex-end', 'space-between' => 'space-between', ); $justify_content = is_array( $layout ) ? ( $layout['justifyContent'] ?? 'left' ) : 'left'; if ( ! is_string( $justify_content ) || ! isset( $justification_values[ $justify_content ] ) ) { $justify_content = 'left'; } $justification = $justification_values[ $justify_content ]; $is_vertical = is_array( $layout ) && 'vertical' === ( $layout['orientation'] ?? null ); $align = 'center'; $justify = $justification; if ( $is_vertical ) { $align = in_array( $justify_content, array( 'center', 'right' ), true ) ? $justification : 'flex-start'; $justify = 'left' === $justify_content ? 'initial' : $justification; } return array( '--navigation-layout-justification-setting' => $justification, '--navigation-layout-direction' => $is_vertical ? 'column' : 'row', '--navigation-layout-wrap' => is_array( $layout ) && 'nowrap' === ( $layout['flexWrap'] ?? null ) ? 'nowrap' : 'wrap', '--navigation-layout-justify' => $justify, '--navigation-layout-align' => $align, ); } /** * Helper functions used to render the navigation block. * * @since 6.5.0 */ class WP_Navigation_Block_Renderer { /** * Used to determine whether or not a navigation has submenus. * * @since 6.5.0 */ private static $has_submenus = false; /** * Used to determine which blocks need an <li> wrapper. * * @since 6.5.0 * * @var array */ private static $needs_list_item_wrapper = array( 'core/site-title', 'core/site-logo', 'core/social-links', ); /** * Keeps track of all the navigation names that have been seen. * * @since 6.5.0 * * @var array */ private static $seen_menu_names = array(); /** * Returns whether or not this is responsive navigation. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return bool Returns whether or not this is responsive navigation. */ private static function is_responsive( $attributes ) { /** * This is for backwards compatibility after the `isResponsive` attribute was been removed. */ $has_old_responsive_attribute = ! empty( $attributes['isResponsive'] ) && $attributes['isResponsive']; return isset( $attributes['overlayMenu'] ) && 'never' !== $attributes['overlayMenu'] || $has_old_responsive_attribute; } /** * Returns whether or not a navigation has a submenu. * * @since 6.5.0 * * @param WP_Block_List $inner_blocks The list of inner blocks. * @return bool Returns whether or not a navigation has a submenu and also sets the member variable. */ private static function has_submenus( $inner_blocks ) { if ( true === static::$has_submenus ) { return static::$has_submenus; } foreach ( $inner_blocks as $inner_block ) { // If this is a page list then work out if any of the pages have children. if ( 'core/page-list' === $inner_block->name ) { $all_pages = get_pages( array( 'sort_column' => 'menu_order,post_title', 'order' => 'asc', ) ); foreach ( (array) $all_pages as $page ) { if ( $page->post_parent ) { static::$has_submenus = true; break; } } } // If this is a navigation submenu then we know we have submenus. if ( 'core/navigation-submenu' === $inner_block->name ) { static::$has_submenus = true; break; } } return static::$has_submenus; } /** * Determine whether the navigation blocks is interactive. * * @since 6.5.0 * * @param array $attributes The block attributes. * @param WP_Block_List $inner_blocks The list of inner blocks. * @return bool Returns whether or not to load the view script. */ private static function is_interactive( $attributes, $inner_blocks ) { $has_submenus = static::has_submenus( $inner_blocks ); $is_responsive_menu = static::is_responsive( $attributes ); $computed_visibility = block_core_navigation_get_submenu_visibility( $attributes ); $open_on_click = 'click' === $computed_visibility; $show_submenu_icon = ! empty( $attributes['showSubmenuIcon'] ); return ( $has_submenus && ( $open_on_click || $show_submenu_icon ) ) || $is_responsive_menu; } /** * Returns whether or not a block needs a list item wrapper. * * @since 6.5.0 * * @param WP_Block $block The block. * @return bool Returns whether or not a block needs a list item wrapper. */ private static function does_block_need_a_list_item_wrapper( $block ) { /** * Filter the list of blocks that need a list item wrapper. * * Affords the ability to customize which blocks need a list item wrapper when rendered * within a core/navigation block. * This is useful for blocks that are not list items but should be wrapped in a list * item when used as a child of a navigation block. * * @since 6.5.0 * * @param array $needs_list_item_wrapper The list of blocks that need a list item wrapper. */ $needs_list_item_wrapper = apply_filters( 'block_core_navigation_listable_blocks', static::$needs_list_item_wrapper ); return in_array( $block->name, $needs_list_item_wrapper, true ); } /** * Returns the markup for a single inner block. * * @since 6.5.0 * * @param WP_Block $inner_block The inner block. * @return string Returns the markup for a single inner block. */ private static function get_markup_for_inner_block( $inner_block ) { $inner_block_content = $inner_block->render(); if ( ! empty( $inner_block_content ) ) { if ( static::does_block_need_a_list_item_wrapper( $inner_block ) ) { return '<li class="wp-block-navigation-item">' . $inner_block_content . '</li>'; } } return $inner_block_content; } /** * Returns the html for blocks from a template part (without navigation container wrapper). * * @since 6.5.0 * * @param WP_Block_List $blocks The list of blocks to render. * @return string Returns the html for the template part blocks. */ private static function get_template_part_blocks_html( $blocks ) { $html = ''; foreach ( $blocks as $block ) { $html .= $block->render(); } return $html; } /** * Returns the html for the inner blocks of the navigation block. * * @since 6.5.0 * * @param array $attributes The block attributes. * @param WP_Block_List $inner_blocks The list of inner blocks. * @return string Returns the html for the inner blocks of the navigation block. */ private static function get_inner_blocks_html( $attributes, $inner_blocks ) { $has_submenus = static::has_submenus( $inner_blocks ); $is_interactive = static::is_interactive( $attributes, $inner_blocks ); $style = static::get_styles( $attributes ); $class = static::get_classes( $attributes ); $container_attributes = get_block_wrapper_attributes( array( 'class' => 'wp-block-navigation__container ' . $class, 'style' => $style, ) ); $inner_blocks_html = ''; $is_list_open = false; foreach ( $inner_blocks as $inner_block ) { $inner_block_markup = static::get_markup_for_inner_block( $inner_block ); $p = new WP_HTML_Tag_Processor( $inner_block_markup ); $is_list_item = $p->next_tag( 'LI' ); if ( $is_list_item && ! $is_list_open ) { $is_list_open = true; $inner_blocks_html .= sprintf( '<ul %1$s>', $container_attributes ); } if ( ! $is_list_item && $is_list_open ) { $is_list_open = false; $inner_blocks_html .= '</ul>'; } $inner_blocks_html .= $inner_block_markup; } if ( $is_list_open ) { $inner_blocks_html .= '</ul>'; } // Add directives to the submenu if needed. if ( $has_submenus && $is_interactive ) { $tags = new WP_HTML_Tag_Processor( $inner_blocks_html ); $inner_blocks_html = block_core_navigation_add_directives_to_submenu( $tags, $attributes ); } return $inner_blocks_html; } /** * Gets the inner blocks for the navigation block from the navigation post. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return WP_Block_List Returns the inner blocks for the navigation block. */ private static function get_inner_blocks_from_navigation_post( $attributes ) { $navigation_post = get_post( $attributes['ref'] ); if ( ! isset( $navigation_post ) ) { return new WP_Block_List( array(), $attributes ); } // Only published posts are valid. If this is changed then a corresponding change // must also be implemented in `use-navigation-menu.js`. if ( 'publish' === $navigation_post->post_status ) { $parsed_blocks = parse_blocks( $navigation_post->post_content ); // 'parse_blocks' includes a null block with '\n\n' as the content when // it encounters whitespace. This code strips it. $blocks = block_core_navigation_filter_out_empty_blocks( $parsed_blocks ); // Re-serialize, and run Block Hooks algorithm to inject hooked blocks. // TODO: See if we can move the apply_block_hooks_to_content_from_post_object() call // before the parse_blocks() call further above, to avoid the extra serialization/parsing. $markup = serialize_blocks( $blocks ); $markup = apply_block_hooks_to_content_from_post_object( $markup, $navigation_post ); $blocks = parse_blocks( $markup ); // TODO - this uses the full navigation block attributes for the // context which could be refined. return new WP_Block_List( $blocks, $attributes ); } } /** * Gets the inner blocks for the navigation block from the fallback. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return WP_Block_List Returns the inner blocks for the navigation block. */ private static function get_inner_blocks_from_fallback( $attributes ) { $fallback_blocks = block_core_navigation_get_fallback_blocks(); // Fallback my have been filtered so do basic test for validity. if ( empty( $fallback_blocks ) || ! is_array( $fallback_blocks ) ) { return new WP_Block_List( array(), $attributes ); } return new WP_Block_List( $fallback_blocks, $attributes ); } /** * Recursively disables overlay menu for navigation blocks within overlay blocks. * Prevents nested overlays (inception). * * @since 6.5.0 * * @param array $blocks Array of parsed block arrays. * @return array Modified blocks with overlayMenu set to 'never' for navigation blocks. */ private static function disable_overlay_menu_for_nested_navigation_blocks( $blocks ) { if ( empty( $blocks ) || ! is_array( $blocks ) ) { return $blocks; } foreach ( $blocks as &$block ) { if ( ! isset( $block['blockName'] ) ) { continue; } // If this is a navigation block, disable its overlay menu. if ( 'core/navigation' === $block['blockName'] ) { if ( ! isset( $block['attrs'] ) ) { $block['attrs'] = array(); } $block['attrs']['overlayMenu'] = 'never'; // Mark this as a nested navigation within an overlay template part // so we can handle its rendering differently. $block['attrs']['_isWithinOverlayTemplatePart'] = true; } // Recursively process inner blocks. if ( ! empty( $block['innerBlocks'] ) && is_array( $block['innerBlocks'] ) ) { $block['innerBlocks'] = static::disable_overlay_menu_for_nested_navigation_blocks( $block['innerBlocks'] ); } } return $blocks; } /** * Gets the inner blocks for the navigation block from an overlay template part. * * @since 6.5.0 * * @param string $overlay_template_part_id The overlay template part ID in format "theme//slug". * @param array $attributes The block attributes. * @return WP_Block_List Returns the inner blocks for the overlay template part. */ private static function get_overlay_blocks_from_template_part( $overlay_template_part_id, $attributes ) { if ( empty( $overlay_template_part_id ) || ! is_string( $overlay_template_part_id ) ) { return new WP_Block_List( array(), $attributes ); } // Parse the template part ID (format: "theme//slug"). // If it's just a slug, construct the full ID using the current theme. $parts = explode( '//', $overlay_template_part_id, 2 ); if ( count( $parts ) === 2 ) { // Already in "theme//slug" format (backward compatibility). $theme = $parts[0]; $slug = $parts[1]; } else { // Just a slug, use current theme. $theme = get_stylesheet(); $slug = $overlay_template_part_id; } // Only query for template parts from the active theme. if ( get_stylesheet() !== $theme ) { return new WP_Block_List( array(), $attributes ); } // Query for the template part post. $template_part_query = new WP_Query( array( 'post_type' => 'wp_template_part', 'post_status' => 'publish', 'post_name__in' => array( $slug ), 'tax_query' => array( array( 'taxonomy' => 'wp_theme', 'field' => 'name', 'terms' => $theme, ), ), 'posts_per_page' => 1, 'no_found_rows' => true, 'lazy_load_term_meta' => false, // Do not lazy load term meta, as template parts only have one term. ) ); $template_part_post = $template_part_query->have_posts() ? $template_part_query->next_post() : null; if ( ! $template_part_post ) { // Try to get from theme file if not in database. // Construct the full template part ID for get_block_file_template. $full_template_part_id = $theme . '//' . $slug; $block_template = get_block_file_template( $full_template_part_id, 'wp_template_part' ); if ( isset( $block_template->content ) ) { // Expand shortcodes before parsing blocks, matching the order in // `render_block_core_template_part()`. $content = shortcode_unautop( $block_template->content ); $content = do_shortcode( $content ); $parsed_blocks = parse_blocks( $content ); $blocks = block_core_navigation_filter_out_empty_blocks( $parsed_blocks ); // Disable overlay menu for any navigation blocks within the overlay to prevent nested overlays. $blocks = static::disable_overlay_menu_for_nested_navigation_blocks( $blocks ); return new WP_Block_List( $blocks, $attributes ); } return new WP_Block_List( array(), $attributes ); } // Get the template part content. $block_template = _build_block_template_result_from_post( $template_part_post ); if ( ! isset( $block_template->content ) ) { return new WP_Block_List( array(), $attributes ); } $parsed_blocks = parse_blocks( $block_template->content ); // 'parse_blocks' includes a null block with '\n\n' as the content when // it encounters whitespace. This code strips it. $blocks = block_core_navigation_filter_out_empty_blocks( $parsed_blocks ); // Re-serialize, and run Block Hooks algorithm to inject hooked blocks. $markup = serialize_blocks( $blocks ); $markup = apply_block_hooks_to_content_from_post_object( $markup, $template_part_post ); // Expand shortcodes before parsing blocks, matching the order in // `render_block_core_template_part()`. $markup = shortcode_unautop( $markup ); $markup = do_shortcode( $markup ); $blocks = parse_blocks( $markup ); // Disable overlay menu for any navigation blocks within the overlay to prevent nested overlays. $blocks = static::disable_overlay_menu_for_nested_navigation_blocks( $blocks ); return new WP_Block_List( $blocks, $attributes ); } /** * Gets the inner blocks for the navigation block. * * @since 6.5.0 * * @param array $attributes The block attributes. * @param WP_Block $block The parsed block. * @return WP_Block_List Returns the inner blocks for the navigation block. */ private static function get_inner_blocks( $attributes, $block ) { $inner_blocks = $block->inner_blocks; // Ensure that blocks saved with the legacy ref attribute name (navigationMenuId) continue to render. if ( array_key_exists( 'navigationMenuId', $attributes ) ) { $attributes['ref'] = $attributes['navigationMenuId']; } // If: // - the gutenberg plugin is active // - `__unstableLocation` is defined // - we have menu items at the defined location // - we don't have a relationship to a `wp_navigation` Post (via `ref`). // ...then create inner blocks from the classic menu assigned to that location. if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN && array_key_exists( '__unstableLocation', $attributes ) && ! array_key_exists( 'ref', $attributes ) && ! empty( block_core_navigation_get_menu_items_at_location( $attributes['__unstableLocation'] ) ) ) { $inner_blocks = block_core_navigation_get_inner_blocks_from_unstable_location( $attributes ); } // Load inner blocks from the navigation post. if ( array_key_exists( 'ref', $attributes ) ) { $inner_blocks = static::get_inner_blocks_from_navigation_post( $attributes ); } // If there are no inner blocks then fallback to rendering an appropriate fallback. if ( empty( $inner_blocks ) ) { $inner_blocks = static::get_inner_blocks_from_fallback( $attributes ); } /** * Filter navigation block $inner_blocks. * Allows modification of a navigation block menu items. * * @since 6.1.0 * * @param \WP_Block_List $inner_blocks */ $inner_blocks = apply_filters( 'block_core_navigation_render_inner_blocks', $inner_blocks ); $post_ids = block_core_navigation_get_post_ids( $inner_blocks ); if ( $post_ids ) { _prime_post_caches( $post_ids, false, false ); } return $inner_blocks; } /** * Gets the name of the current navigation, if it has one. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return string Returns the name of the navigation. */ private static function get_navigation_name( $attributes ) { $navigation_name = $attributes['ariaLabel'] ?? ''; if ( ! empty( $navigation_name ) ) { return $navigation_name; } // Load the navigation post. if ( array_key_exists( 'ref', $attributes ) ) { $navigation_post = get_post( $attributes['ref'] ); if ( ! isset( $navigation_post ) ) { return $navigation_name; } // Only published posts are valid. If this is changed then a corresponding change // must also be implemented in `use-navigation-menu.js`. if ( 'publish' === $navigation_post->post_status ) { return $navigation_post->post_title; } } return $navigation_name; } /** * Returns the layout class for the navigation block. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return string Returns the layout class for the navigation block. */ private static function get_layout_class( $attributes ) { $layout_justification = array( 'left' => 'items-justified-left', 'right' => 'items-justified-right', 'center' => 'items-justified-center', 'space-between' => 'items-justified-space-between', ); $layout_class = ''; if ( isset( $attributes['layout']['justifyContent'] ) && isset( $layout_justification[ $attributes['layout']['justifyContent'] ] ) ) { $layout_class .= $layout_justification[ $attributes['layout']['justifyContent'] ]; } if ( isset( $attributes['layout']['orientation'] ) && 'vertical' === $attributes['layout']['orientation'] ) { $layout_class .= ' is-vertical'; } if ( isset( $attributes['layout']['flexWrap'] ) && 'nowrap' === $attributes['layout']['flexWrap'] ) { $layout_class .= ' no-wrap'; } return $layout_class; } /** * Return classes for the navigation block. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return string Returns the classes for the navigation block. */ private static function get_classes( $attributes ) { // Restore legacy classnames for submenu positioning. $layout_class = static::get_layout_class( $attributes ); $colors = block_core_navigation_build_css_colors( $attributes ); $font_sizes = block_core_navigation_build_css_font_sizes( $attributes ); $is_responsive_menu = static::is_responsive( $attributes ); // Manually add block support text decoration as CSS class. $text_decoration = $attributes['style']['typography']['textDecoration'] ?? null; $text_decoration_class = sprintf( 'has-text-decoration-%s', $text_decoration ); $classes = array_merge( $colors['css_classes'], $font_sizes['css_classes'], $is_responsive_menu ? array( 'is-responsive' ) : array(), $layout_class ? array( $layout_class ) : array(), $text_decoration ? array( $text_decoration_class ) : array() ); return implode( ' ', $classes ); } /** * Get styles for the navigation block. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return string Returns the styles for the navigation block. */ private static function get_styles( $attributes ) { $colors = block_core_navigation_build_css_colors( $attributes ); $font_sizes = block_core_navigation_build_css_font_sizes( $attributes ); $block_styles = $attributes['styles'] ?? ''; return $block_styles . $colors['inline_styles'] . $font_sizes['inline_styles']; } /** * Get responsive container classes for the navigation block. * * @since 7.0.0 * * @param bool $is_hidden_by_default Whether the responsive menu is hidden by default. * @param bool $has_custom_overlay Whether a custom overlay is used. * @param array $colors The colors array. * @return array Returns the responsive container classes. */ private static function get_responsive_container_classes( $is_hidden_by_default, $has_custom_overlay, $colors ) { $responsive_container_classes = array( 'wp-block-navigation__responsive-container' ); if ( $is_hidden_by_default ) { $responsive_container_classes[] = 'hidden-by-default'; } if ( $has_custom_overlay ) { $responsive_container_classes[] = 'disable-default-overlay'; } else { // Don't apply overlay color classes if using a custom overlay template part. // The custom overlay is responsible for its own styling. $responsive_container_classes[] = implode( ' ', $colors['overlay_css_classes'] ); } return $responsive_container_classes; } /** * Get overlay inline styles for the navigation block. * * @since 7.0.0 * * @param array $colors The colors array. * @return string Returns the overlay inline styles. */ private static function get_overlay_inline_styles( $has_custom_overlay, $colors ) { $overlay_inline_styles = $has_custom_overlay ? '' : esc_attr( safecss_filter_attr( $colors['overlay_inline_styles'] ) ); return ( ! empty( $overlay_inline_styles ) ) ? "style=\"$overlay_inline_styles\"" : ''; } /** * Get the responsive container markup * * @since 6.5.0 * * @param array $attributes The block attributes. * @param WP_Block_List $inner_blocks The list of inner blocks. * @param string $inner_blocks_html The markup for the inner blocks. * @return string Returns the container markup. */ private static function get_responsive_container_markup( $attributes, $inner_blocks, $inner_blocks_html ) { $is_interactive = static::is_interactive( $attributes, $inner_blocks ); $colors = block_core_navigation_build_css_colors( $attributes ); $modal_unique_id = wp_unique_id( 'modal-' ); $is_hidden_by_default = isset( $attributes['overlayMenu'] ) && 'always' === $attributes['overlayMenu']; // Set-up variables for custom overlays. $has_custom_overlay = false; $close_button_markup = ''; $has_custom_overlay_close_block = false; $overlay_blocks_html = ''; $custom_overlay_markup = ''; // Check if an overlay template part is selected and render it. // This needs to happen before building classes so we know if overlay blocks actually exist. if ( ! empty( $attributes['overlay'] ) ) { // Get blocks from the overlay template part. $overlay_blocks = static::get_overlay_blocks_from_template_part( $attributes['overlay'], $attributes ); // Render template part blocks directly without navigation container wrapper. $overlay_blocks_html = static::get_template_part_blocks_html( $overlay_blocks ); // Check if overlay contains a navigation-overlay-close block (detect in rendered HTML so it works with patterns). $has_custom_overlay_close_block = block_core_navigation_overlay_html_has_close_block( $overlay_blocks_html ); // Add Interactivity API directives to the overlay close block if present. if ( $has_custom_overlay_close_block && $is_interactive ) { $tags = new WP_HTML_Tag_Processor( $overlay_blocks_html ); $overlay_blocks_html = block_core_navigation_add_directives_to_overlay_close( $tags ); } // Images in the overlay are hidden until the menu is opened. Pre-set // fetchpriority="low" so that when wp_filter_content_tags() processes the // parent template part, it sees the attribute already present and calls // wp_get_loading_optimization_attributes() with fetchpriority="low", which both prevents // fetchpriority="high" from being added and stops the LCP counter from being incremented. $overlay_blocks_html = block_core_navigation_set_overlay_image_fetch_priority( $overlay_blocks_html ); } $has_custom_overlay = ! empty( $overlay_blocks_html ); $responsive_container_classes = static::get_responsive_container_classes( $is_hidden_by_default, $has_custom_overlay, $colors ); $open_button_classes = array( 'wp-block-navigation__responsive-container-open', $is_hidden_by_default ? 'always-shown' : '', ); $should_display_icon_label = isset( $attributes['hasIcon'] ) && true === $attributes['hasIcon']; $toggle_button_icon = '<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M4 7.5h16v1.5H4z"></path><path d="M4 15h16v1.5H4z"></path></svg>'; if ( isset( $attributes['icon'] ) ) { if ( 'menu' === $attributes['icon'] ) { $toggle_button_icon = '<svg width="24" height="24" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 5v1.5h14V5H5z"></path><path d="M5 12.8h14v-1.5H5v1.5z"></path><path d="M5 19h14v-1.5H5V19z"></path></svg>'; } } $toggle_button_content = $should_display_icon_label ? $toggle_button_icon : __( 'Menu' ); $toggle_close_button_icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" aria-hidden="true" focusable="false"><path d="m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z"></path></svg>'; $toggle_close_button_content = $should_display_icon_label ? $toggle_close_button_icon : __( 'Close' ); $toggle_aria_label_open = $should_display_icon_label ? 'aria-label="' . __( 'Open menu' ) . '"' : ''; // Open button label. $toggle_aria_label_close = $should_display_icon_label ? 'aria-label="' . __( 'Close menu' ) . '"' : ''; // Close button label. // Add Interactivity API directives to the markup if needed. $open_button_directives = ''; $responsive_container_directives = ''; $responsive_dialog_directives = ''; $close_button_directives = ''; if ( $is_interactive ) { $open_button_directives = ' data-wp-on--click="actions.openMenuOnClick" data-wp-on--keydown="actions.handleMenuKeydown" '; $responsive_container_directives = ' data-wp-class--has-modal-open="state.isMenuOpen" data-wp-class--is-menu-open="state.isMenuOpen" data-wp-watch="callbacks.initMenu" data-wp-on--keydown="actions.handleMenuKeydown" data-wp-on--focusout="actions.handleMenuFocusout" tabindex="-1" '; $responsive_dialog_directives = ' data-wp-bind--aria-modal="state.ariaModal" data-wp-bind--aria-label="state.ariaLabel" data-wp-bind--role="state.roleAttribute" '; $close_button_directives = ' data-wp-on--click="actions.closeMenuOnClick" '; $responsive_container_content_directives = ' data-wp-watch="callbacks.focusFirstElement" '; } // Don't apply overlay inline styles if using a custom overlay template part. // The custom overlay is responsible for its own styling. $overlay_inline_styles = static::get_overlay_inline_styles( $has_custom_overlay, $colors ); if ( $has_custom_overlay ) { $custom_overlay_markup = sprintf( '<div class="wp-block-navigation__overlay-container">%s</div>', $overlay_blocks_html ); } // Show default close button for all responsive navigation, // unless custom overlay has its own close block. if ( ! $has_custom_overlay_close_block ) { $close_button_markup = sprintf( '<button %1$s class="wp-block-navigation__responsive-container-close" %2$s>%3$s</button>', $toggle_aria_label_close, $close_button_directives, $toggle_close_button_content ); } return sprintf( '<button aria-haspopup="dialog" %3$s class="%6$s" %10$s>%8$s</button> <div class="%5$s" %7$s id="%1$s" %11$s> <div class="wp-block-navigation__responsive-close" tabindex="-1"> <div class="wp-block-navigation__responsive-dialog" %12$s> %13$s <div class="wp-block-navigation__responsive-container-content" %14$s id="%1$s-content"> %2$s %15$s </div> </div> </div> </div>', esc_attr( $modal_unique_id ), $inner_blocks_html, $toggle_aria_label_open, $toggle_aria_label_close, esc_attr( trim( implode( ' ', $responsive_container_classes ) ) ), esc_attr( trim( implode( ' ', $open_button_classes ) ) ), $overlay_inline_styles, $toggle_button_content, $toggle_close_button_content, $open_button_directives, $responsive_container_directives, $responsive_dialog_directives, $close_button_markup, $responsive_container_content_directives, $has_custom_overlay ? $custom_overlay_markup : '' ); } /** * Get the wrapper attributes * * @since 6.5.0 * * @param array $attributes The block attributes. * @param WP_Block_List $inner_blocks A list of inner blocks. * @return string Returns the navigation block markup. */ private static function get_nav_attributes( $attributes, $inner_blocks ) { $is_interactive = static::is_interactive( $attributes, $inner_blocks ); $is_responsive_menu = static::is_responsive( $attributes ); $style = static::get_styles( $attributes ); $class = static::get_classes( $attributes ); $extra_attributes = array( 'class' => $class, 'style' => $style, ); // Only add aria-label for top-level navigation blocks. // Skip navigation blocks marked as being within overlay template parts. $is_within_overlay = $attributes['_isWithinOverlayTemplatePart'] ?? false; if ( $is_within_overlay ) { $nav_menu_name = static::get_navigation_name( $attributes ); } else { $nav_menu_name = static::get_unique_navigation_name( $attributes ); } if ( ! empty( $nav_menu_name ) ) { $extra_attributes['aria-label'] = $nav_menu_name; } $wrapper_attributes = get_block_wrapper_attributes( $extra_attributes ); if ( $is_responsive_menu ) { $nav_element_directives = static::get_nav_element_directives( $is_interactive ); $wrapper_attributes .= ' ' . $nav_element_directives; } return $wrapper_attributes; } /** * Gets the nav element directives. * * @since 6.5.0 * * @param bool $is_interactive Whether the block is interactive. * @return string the directives for the navigation element. */ private static function get_nav_element_directives( $is_interactive ) { if ( ! $is_interactive ) { return ''; } // When adding to this array be mindful of security concerns. $nav_element_context = wp_interactivity_data_wp_context( array( 'overlayOpenedBy' => array( 'click' => false, 'hover' => false, 'focus' => false, ), 'type' => 'overlay', 'roleAttribute' => '', 'ariaLabel' => __( 'Menu' ), ) ); $nav_element_directives = ' data-wp-interactive="core/navigation" ' . $nav_element_context; return $nav_element_directives; } /** * Handle view script module loading. * * @since 6.5.0 * * @param array $attributes The block attributes. * @param WP_Block $block The parsed block. * @param WP_Block_List $inner_blocks The list of inner blocks. */ private static function handle_view_script_module_loading( $attributes, $block, $inner_blocks ) { if ( static::is_interactive( $attributes, $inner_blocks ) ) { wp_enqueue_script_module( '@wordpress/block-library/navigation/view' ); } } /** * Returns the markup for the navigation block. * * @since 6.5.0 * * @param array $attributes The block attributes. * @param WP_Block_List $inner_blocks The list of inner blocks. * @return string Returns the navigation wrapper markup. */ private static function get_inner_block_markup( $attributes, $inner_blocks ) { $inner_blocks_html = static::get_inner_blocks_html( $attributes, $inner_blocks ); if ( static::is_responsive( $attributes ) ) { return static::get_responsive_container_markup( $attributes, $inner_blocks, $inner_blocks_html ); } return $inner_blocks_html; } /** * Returns a unique name for the navigation. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return string Returns a unique name for the navigation. */ private static function get_unique_navigation_name( $attributes ) { $nav_menu_name = static::get_navigation_name( $attributes ); // This is used to count the number of times a navigation name has been seen, // so that we can ensure every navigation has a unique id. if ( isset( static::$seen_menu_names[ $nav_menu_name ] ) ) { ++static::$seen_menu_names[ $nav_menu_name ]; } else { static::$seen_menu_names[ $nav_menu_name ] = 1; } // If the menu name has been used previously then append an ID // to the name to ensure uniqueness across a given post. if ( isset( static::$seen_menu_names[ $nav_menu_name ] ) && static::$seen_menu_names[ $nav_menu_name ] > 1 ) { $count = static::$seen_menu_names[ $nav_menu_name ]; $nav_menu_name = $nav_menu_name . ' ' . ( $count ); } return $nav_menu_name; } /** * Renders the navigation block. * * @since 6.5.0 * * @param array $attributes The block attributes. * @param string $content The saved content. * @param WP_Block $block The parsed block. * @return string Returns the navigation block markup. */ public static function render( $attributes, $content, $block ) { /** * Deprecated: * The rgbTextColor and rgbBackgroundColor attributes * have been deprecated in favor of * customTextColor and customBackgroundColor ones. * Move the values from old attrs to the new ones. */ if ( isset( $attributes['rgbTextColor'] ) && empty( $attributes['textColor'] ) ) { $attributes['customTextColor'] = $attributes['rgbTextColor']; } if ( isset( $attributes['rgbBackgroundColor'] ) && empty( $attributes['backgroundColor'] ) ) { $attributes['customBackgroundColor'] = $attributes['rgbBackgroundColor']; } unset( $attributes['rgbTextColor'], $attributes['rgbBackgroundColor'] ); $inner_blocks = static::get_inner_blocks( $attributes, $block ); // Prevent navigation blocks referencing themselves from rendering. if ( block_core_navigation_block_tree_has_block_type( $inner_blocks, 'core/navigation' ) ) { return ''; } static::handle_view_script_module_loading( $attributes, $block, $inner_blocks ); // Use div wrapper if this navigation block is within an overlay template part. $is_within_overlay = $attributes['_isWithinOverlayTemplatePart'] ?? false; $tag_name = $is_within_overlay ? 'div' : 'nav'; return sprintf( '<%1$s %2$s>%3$s</%1$s>', $tag_name, static::get_nav_attributes( $attributes, $inner_blocks ), static::get_inner_block_markup( $attributes, $inner_blocks ) ); } } // These functions are used for the __unstableLocation feature and only active // when the gutenberg plugin is active. if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN ) { /** * Returns the menu items for a WordPress menu location. * * @since 5.9.0 * * @param string $location The menu location. * @return array Menu items for the location. */ function block_core_navigation_get_menu_items_at_location( $location ) { if ( empty( $location ) ) { return; } // Build menu data. The following approximates the code in // `wp_nav_menu()` and `gutenberg_output_block_nav_menu`. // Find the location in the list of locations, returning early if the // location can't be found. $locations = get_nav_menu_locations(); if ( ! isset( $locations[ $location ] ) ) { return; } // Get the menu from the location, returning early if there is no // menu or there was an error. $menu = wp_get_nav_menu_object( $locations[ $location ] ); if ( ! $menu || is_wp_error( $menu ) ) { return; } $menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'update_post_term_cache' => false ) ); _wp_menu_item_classes_by_context( $menu_items ); return $menu_items; } /** * Sorts a standard array of menu items into a nested structure keyed by the * id of the parent menu. * * @since 5.9.0 * * @param array $menu_items Menu items to sort. * @return array An array keyed by the id of the parent menu where each element * is an array of menu items that belong to that parent. */ function block_core_navigation_sort_menu_items_by_parent_id( $menu_items ) { $sorted_menu_items = array(); foreach ( (array) $menu_items as $menu_item ) { $sorted_menu_items[ $menu_item->menu_order ] = $menu_item; } unset( $menu_items, $menu_item ); $menu_items_by_parent_id = array(); foreach ( $sorted_menu_items as $menu_item ) { $menu_items_by_parent_id[ $menu_item->menu_item_parent ][] = $menu_item; } return $menu_items_by_parent_id; } /** * Gets the inner blocks for the navigation block from the unstable location attribute. * * @since 6.5.0 * * @param array $attributes The block attributes. * @return WP_Block_List Returns the inner blocks for the navigation block. */ function block_core_navigation_get_inner_blocks_from_unstable_location( $attributes ) { $menu_items = block_core_navigation_get_menu_items_at_location( $attributes['__unstableLocation'] ); if ( empty( $menu_items ) ) { return new WP_Block_List( array(), $attributes ); } $menu_items_by_parent_id = block_core_navigation_sort_menu_items_by_parent_id( $menu_items ); $parsed_blocks = block_core_navigation_parse_blocks_from_menu_items( $menu_items_by_parent_id[0], $menu_items_by_parent_id ); return new WP_Block_List( $parsed_blocks, $attributes ); } } /** * Checks if the overlay HTML contains a navigation-overlay-close block. * * Uses WP_HTML_Tag_Processor to detect the close button in rendered output, * so it works when the overlay uses patterns (pattern content is rendered at * output time, not in the block tree). * * @since 7.0.0 * * @param string $html The rendered overlay HTML. * @return bool True if a close button element is found. */ function block_core_navigation_overlay_html_has_close_block( $html ) { $tags = new WP_HTML_Tag_Processor( $html ); return $tags->next_tag( array( 'tag_name' => 'BUTTON', 'class_name' => 'wp-block-navigation-overlay-close', ) ); } /** * Add Interactivity API directives to the navigation-overlay-close block * markup using the Tag Processor. * * @since 6.5.0 * * @param WP_HTML_Tag_Processor $tags Markup of the navigation block. * @return string Overlay close markup with the directives injected. */ function block_core_navigation_add_directives_to_overlay_close( $tags ) { // Find all navigation-overlay-close buttons. while ( $tags->next_tag( array( 'tag_name' => 'BUTTON', 'class_name' => 'wp-block-navigation-overlay-close', ) ) ) { // Add the same close directive as the default close button. $tags->set_attribute( 'data-wp-on--click', 'actions.closeMenuOnClick' ); } return $tags->get_updated_html(); } /** * Sets fetchpriority="low" on all IMG tags within the navigation overlay. * * Images in the overlay are hidden until the menu is opened, so they should * not compete with any actual LCP element image on the page. * * @since 7.0.0 * * @param string $overlay_blocks_html The rendered HTML of the overlay blocks. * @return string Modified HTML with fetchpriority="low" on all IMG tags. */ function block_core_navigation_set_overlay_image_fetch_priority( string $overlay_blocks_html ): string { $tags = new WP_HTML_Tag_Processor( $overlay_blocks_html ); while ( $tags->next_tag( 'IMG' ) ) { $tags->set_attribute( 'fetchpriority', 'low' ); } return $tags->get_updated_html(); } /** * Add Interactivity API directives to the navigation-submenu and page-list * blocks markup using the Tag Processor. * * @since 6.3.0 * * @param WP_HTML_Tag_Processor $tags Markup of the navigation block. * @param array $block_attributes Block attributes. * * @return string Submenu markup with the directives injected. */ function block_core_navigation_add_directives_to_submenu( $tags, $block_attributes ) { while ( $tags->next_tag( array( 'tag_name' => 'LI', 'class_name' => 'has-child', ) ) ) { // Add directives to the parent `<li>`. $tags->set_attribute( 'data-wp-interactive', 'core/navigation' ); $tags->set_attribute( 'data-wp-context', '{ "submenuOpenedBy": { "click": false, "hover": false, "focus": false }, "type": "submenu", "modal": null, "previousFocus": null }' ); $tags->set_attribute( 'data-wp-watch', 'callbacks.initMenu' ); $tags->set_attribute( 'data-wp-on--focusout', 'actions.handleMenuFocusout' ); $tags->set_attribute( 'data-wp-on--keydown', 'actions.handleMenuKeydown' ); // This is a fix for Safari. Without it, Safari doesn't change the active // element when the user clicks on a button. It can be removed once we add // an overlay to capture the clicks, instead of relying on the focusout // event. $tags->set_attribute( 'tabindex', '-1' ); $computed_visibility = block_core_navigation_get_submenu_visibility( $block_attributes ); $open_on_hover = 'hover' === $computed_visibility; if ( $open_on_hover ) { $tags->set_attribute( 'data-wp-on--pointerenter', 'actions.openMenuOnHover' ); $tags->set_attribute( 'data-wp-on--pointerleave', 'actions.closeMenuOnHover' ); } // Add directives to the toggle submenu button. if ( $tags->next_tag( array( 'tag_name' => 'BUTTON', 'class_name' => 'wp-block-navigation-submenu__toggle', ) ) ) { $tags->set_attribute( 'data-wp-on--click', 'actions.toggleMenuOnClick' ); $tags->set_attribute( 'data-wp-bind--aria-expanded', 'state.isSubmenuOpen' ); // The `aria-expanded` attribute for SSR is already added in the submenu block. } // Add directives to the submenu. if ( $tags->next_tag( array( 'tag_name' => 'UL', 'class_name' => 'wp-block-navigation__submenu-container', ) ) ) { $tags->set_attribute( 'data-wp-on--focus', 'actions.openMenuOnFocus' ); } // Iterate through subitems if exist. block_core_navigation_add_directives_to_submenu( $tags, $block_attributes ); } return $tags->get_updated_html(); } /** * Build an array with CSS classes and inline styles defining the colors * which will be applied to the navigation markup in the front-end. * * @since 5.9.0 * * @param array $attributes Navigation block attributes. * * @return array Colors CSS classes and inline styles. */ function block_core_navigation_build_css_colors( $attributes ) { $colors = array( 'css_classes' => array(), 'inline_styles' => '', 'overlay_css_classes' => array(), 'overlay_inline_styles' => '', ); // Text color. $has_named_text_color = array_key_exists( 'textColor', $attributes ); $has_custom_text_color = array_key_exists( 'customTextColor', $attributes ); // If has text color. if ( $has_custom_text_color || $has_named_text_color ) { // Add has-text-color class. $colors['css_classes'][] = 'has-text-color'; } if ( $has_named_text_color ) { // Add the color class. $colors['css_classes'][] = sprintf( 'has-%s-color', $attributes['textColor'] ); } elseif ( $has_custom_text_color ) { // Add the custom color inline style. $colors['inline_styles'] .= sprintf( 'color: %s;', $attributes['customTextColor'] ); } // Background color. $has_named_background_color = array_key_exists( 'backgroundColor', $attributes ); $has_custom_background_color = array_key_exists( 'customBackgroundColor', $attributes ); // If has background color. if ( $has_custom_background_color || $has_named_background_color ) { // Add has-background class. $colors['css_classes'][] = 'has-background'; } if ( $has_named_background_color ) { // Add the background-color class. $colors['css_classes'][] = sprintf( 'has-%s-background-color', $attributes['backgroundColor'] ); } elseif ( $has_custom_background_color ) { // Add the custom background-color inline style. $colors['inline_styles'] .= sprintf( 'background-color: %s;', $attributes['customBackgroundColor'] ); } // Overlay text color. $has_named_overlay_text_color = array_key_exists( 'overlayTextColor', $attributes ); $has_custom_overlay_text_color = array_key_exists( 'customOverlayTextColor', $attributes ); // If has overlay text color. if ( $has_custom_overlay_text_color || $has_named_overlay_text_color ) { // Add has-text-color class. $colors['overlay_css_classes'][] = 'has-text-color'; } if ( $has_named_overlay_text_color ) { // Add the overlay color class. $colors['overlay_css_classes'][] = sprintf( 'has-%s-color', $attributes['overlayTextColor'] ); } elseif ( $has_custom_overlay_text_color ) { // Add the custom overlay color inline style. $colors['overlay_inline_styles'] .= sprintf( 'color: %s;', $attributes['customOverlayTextColor'] ); } // Overlay background color. $has_named_overlay_background_color = array_key_exists( 'overlayBackgroundColor', $attributes ); $has_custom_overlay_background_color = array_key_exists( 'customOverlayBackgroundColor', $attributes ); // If has overlay background color. if ( $has_custom_overlay_background_color || $has_named_overlay_background_color ) { // Add has-background class. $colors['overlay_css_classes'][] = 'has-background'; } if ( $has_named_overlay_background_color ) { // Add the overlay background-color class. $colors['overlay_css_classes'][] = sprintf( 'has-%s-background-color', $attributes['overlayBackgroundColor'] ); } elseif ( $has_custom_overlay_background_color ) { // Add the custom overlay background-color inline style. $colors['overlay_inline_styles'] .= sprintf( 'background-color: %s;', $attributes['customOverlayBackgroundColor'] ); } return $colors; } /** * Build an array with CSS classes and inline styles defining the font sizes * which will be applied to the navigation markup in the front-end. * * @since 5.9.0 * * @param array $attributes Navigation block attributes. * * @return array Font size CSS classes and inline styles. */ function block_core_navigation_build_css_font_sizes( $attributes ) { // CSS classes. $font_sizes = array( 'css_classes' => array(), 'inline_styles' => '', ); $has_named_font_size = array_key_exists( 'fontSize', $attributes ); $has_custom_font_size = array_key_exists( 'customFontSize', $attributes ); if ( $has_named_font_size ) { // Add the font size class. $font_sizes['css_classes'][] = sprintf( 'has-%s-font-size', $attributes['fontSize'] ); } elseif ( $has_custom_font_size ) { // Add the custom font size inline style. $font_sizes['inline_styles'] = sprintf( 'font-size: %spx;', $attributes['customFontSize'] ); } return $font_sizes; } /** * Filter out empty "null" blocks from the block list. * 'parse_blocks' includes a null block with '\n\n' as the content when * it encounters whitespace. This is not a bug but rather how the parser * is designed. * * @since 5.9.0 * * @param array $parsed_blocks the parsed blocks to be normalized. * @return array the normalized parsed blocks. */ function block_core_navigation_filter_out_empty_blocks( $parsed_blocks ) { $filtered = array_filter( $parsed_blocks, static function ( $block ) { return isset( $block['blockName'] ); } ); // Reset keys. return array_values( $filtered ); } /** * Recursively checks if blocks contain a specific block type. * * @since 7.0.0 * * @param WP_Block_List $blocks The list of blocks to check. * @param string $block_type The block type to search for (e.g., 'core/navigation'). * @param array $skip_block_types Optional. Block types to skip when recursing. Default empty array. * @return bool Returns true if the specified block type is found. */ function block_core_navigation_block_tree_has_block_type( $blocks, $block_type, $skip_block_types = array() ) { if ( empty( $blocks ) ) { return false; } foreach ( $blocks as $block ) { if ( $block_type === $block->name ) { return true; } // Recursively check inner blocks, skipping specified block types. if ( ! in_array( $block->name, $skip_block_types, true ) && ! empty( $block->inner_blocks ) ) { if ( block_core_navigation_block_tree_has_block_type( $block->inner_blocks, $block_type, $skip_block_types ) ) { return true; } } } return false; } /** * Returns true if the navigation block contains a nested navigation block. * * @since 6.2.0 * @deprecated 7.0.0 Use block_core_navigation_block_tree_has_block_type() instead. * * @param WP_Block_List $inner_blocks Inner block instance to be normalized. * @return bool true if the navigation block contains a nested navigation block. */ function block_core_navigation_block_contains_core_navigation( $inner_blocks ) { _deprecated_function( __FUNCTION__, '7.0.0', 'block_core_navigation_block_tree_has_block_type()' ); return block_core_navigation_block_tree_has_block_type( $inner_blocks, 'core/navigation' ); } /** * Retrieves the appropriate fallback to be used on the front of the * site when there is no menu assigned to the Nav block. * * This aims to mirror how the fallback mechanic for wp_nav_menu works. * See https://developer.wordpress.org/reference/functions/wp_nav_menu/#more-information. * * @since 5.9.0 * * @return array the array of blocks to be used as a fallback. */ function block_core_navigation_get_fallback_blocks() { $page_list_fallback = array( array( 'blockName' => 'core/page-list', 'innerContent' => array(), 'attrs' => array(), ), ); $registry = WP_Block_Type_Registry::get_instance(); // If `core/page-list` is not registered then return empty blocks. $fallback_blocks = $registry->is_registered( 'core/page-list' ) ? $page_list_fallback : array(); $navigation_post = WP_Navigation_Fallback::get_fallback(); // Use the first non-empty Navigation as fallback if available. if ( $navigation_post ) { $parsed_blocks = parse_blocks( $navigation_post->post_content ); $maybe_fallback = block_core_navigation_filter_out_empty_blocks( $parsed_blocks ); // Normalizing blocks may result in an empty array of blocks if they were all `null` blocks. // In this case default to the (Page List) fallback. $fallback_blocks = ! empty( $maybe_fallback ) ? $maybe_fallback : $fallback_blocks; // Run Block Hooks algorithm to inject hooked blocks. // We have to run it here because we need the post ID of the Navigation block to track ignored hooked blocks. // TODO: See if we can move the apply_block_hooks_to_content_from_post_object() call // before the parse_blocks() call further above, to avoid the extra serialization/parsing. $markup = serialize_blocks( $fallback_blocks ); $markup = apply_block_hooks_to_content_from_post_object( $markup, $navigation_post ); $fallback_blocks = parse_blocks( $markup ); } /** * Filters the fallback experience for the Navigation block. * * Returning a falsey value will opt out of the fallback and cause the block not to render. * To customise the blocks provided return an array of blocks - these should be valid * children of the `core/navigation` block. * * @since 5.9.0 * * @param array[] $fallback_blocks default fallback blocks provided by the default block mechanic. */ return apply_filters( 'block_core_navigation_render_fallback', $fallback_blocks ); } /** * Iterate through all inner blocks recursively and get navigation link block's post IDs. * * @since 6.0.0 * * @param WP_Block_List $inner_blocks Block list class instance. * * @return array Array of post IDs. */ function block_core_navigation_get_post_ids( $inner_blocks ) { $post_ids = array_map( 'block_core_navigation_from_block_get_post_ids', iterator_to_array( $inner_blocks ) ); return array_unique( array_merge( ...$post_ids ) ); } /** * Get post IDs from a navigation link block instance. * * @since 6.0.0 * * @param WP_Block $block Instance of a block. * * @return array Array of post IDs. */ function block_core_navigation_from_block_get_post_ids( $block ) { $post_ids = array(); if ( $block->inner_blocks ) { $post_ids = block_core_navigation_get_post_ids( $block->inner_blocks ); } if ( 'core/navigation-link' === $block->name || 'core/navigation-submenu' === $block->name ) { if ( $block->attributes && isset( $block->attributes['kind'] ) && 'post-type' === $block->attributes['kind'] && isset( $block->attributes['id'] ) ) { $post_ids[] = $block->attributes['id']; } } return $post_ids; } /** * Renders the `core/navigation` block on server. * * @since 5.9.0 * * @param array $attributes The block attributes. * @param string $content The saved content. * @param WP_Block $block The parsed block. * * @return string Returns the navigation block markup. */ function render_block_core_navigation( $attributes, $content, $block ) { return WP_Navigation_Block_Renderer::render( $attributes, $content, $block ); } /** * Register the navigation block. * * @since 5.9.0 * * @uses render_block_core_navigation() * @throws WP_Error An WP_Error exception parsing the block definition. */ function register_block_core_navigation() { register_block_type_from_metadata( __DIR__ . '/navigation', array( 'render_callback' => 'render_block_core_navigation', ) ); } add_action( 'init', 'register_block_core_navigation' ); /** * Adds Navigation block support classes to inner list containers. * * State block support adds the generated `wp-states-*` class to the outer * block wrapper. The Navigation block renders its menu items inside an inner * `wp-block-navigation__container` list, so the same state class is also needed * there for state styles to apply directly to the menu list. * * Navigation also uses layout classes on its outer wrapper to define custom * properties consumed by its inner containers. Viewport layout styles cannot * change those classes, so equivalent custom properties and a scoping class * are generated for each configured viewport layout. * * Currently this is required as a workaround because of how difficult it is for nav * child blocks to inherit styles through the complex responsive nav block html. The * bug in https://github.com/WordPress/gutenberg/issues/62690 also prevents inheritance. * * @since 7.1.0 * * @param string $block_content The block content. * @param array $block The full block, including name and attributes. * @return string The updated block content. */ function block_core_navigation_add_support_classes_to_container( $block_content, $block ) { if ( 'core/navigation' !== ( $block['blockName'] ?? null ) || empty( $block_content ) ) { return $block_content; } $attributes = is_array( $block['attrs'] ?? null ) ? $block['attrs'] : array(); $style = is_array( $attributes['style'] ?? null ) ? $attributes['style'] : array(); if ( defined( 'IS_GUTENBERG_PLUGIN' ) && IS_GUTENBERG_PLUGIN && function_exists( 'gutenberg_resolve_style_state_aliases' ) ) { $style = gutenberg_resolve_style_state_aliases( $style, 'core/navigation' ); } $global_settings = wp_get_global_settings(); $viewport_settings = $global_settings['viewport'] ?? null; $responsive_media_queries = array(); if ( method_exists( 'WP_Theme_JSON_Gutenberg', 'get_viewport_media_queries' ) ) { $responsive_media_queries = WP_Theme_JSON_Gutenberg::get_viewport_media_queries( $viewport_settings ); } elseif ( method_exists( 'WP_Theme_JSON', 'get_viewport_media_queries' ) ) { $responsive_media_queries = WP_Theme_JSON::get_viewport_media_queries( $viewport_settings ); } $styles = array(); $base_layout = is_array( $attributes['layout'] ?? null ) ? $attributes['layout'] : array(); foreach ( $responsive_media_queries as $breakpoint => $media_query ) { $viewport_style = is_array( $style[ $breakpoint ] ?? null ) ? $style[ $breakpoint ] : array(); $viewport_layout = is_array( $viewport_style['layout'] ?? null ) ? $viewport_style['layout'] : array(); if ( empty( $viewport_layout ) ) { continue; } $styles[] = array( 'declarations' => block_core_navigation_get_layout_custom_property_declarations( array_replace( $base_layout, $viewport_layout ) ), 'rules_group' => $media_query, ); } $processor = new WP_HTML_Tag_Processor( $block_content ); if ( ! $processor->next_tag() ) { return $block_content; } $class_attribute = $processor->get_attribute( 'class' ); $state_class = null; if ( is_string( $class_attribute ) && preg_match( '/\bwp-states-[a-f0-9]{8}\b/', $class_attribute, $matches ) ) { $state_class = $matches[0]; } $layout_class = null; if ( ! empty( $styles ) ) { $layout_class = wp_unique_id( 'wp-block-navigation-' ); // The inner selector includes both Navigation classes so it overrides the // default layout custom properties set by `.wp-block-navigation.items-*`. $selector = ".wp-block-navigation.{$layout_class},.wp-block-navigation.wp-block-navigation__container.{$layout_class}"; foreach ( $styles as &$style_rule ) { $style_rule['selector'] = $selector; } unset( $style_rule ); $processor->add_class( $layout_class ); wp_style_engine_get_stylesheet_from_css_rules( $styles, array( 'context' => 'block-supports' ) ); } if ( null === $state_class && null === $layout_class ) { return $block_content; } while ( $processor->next_tag() ) { // Custom overlay content can include nested Navigation blocks. // Avoid applying the outer Navigation classes to an inner nav block. if ( $processor->has_class( 'wp-block-navigation' ) && ! $processor->has_class( 'wp-block-navigation__container' ) ) { break; } if ( ! $processor->has_class( 'wp-block-navigation__container' ) ) { continue; } if ( null !== $layout_class ) { $processor->add_class( $layout_class ); } if ( null === $state_class ) { continue; } $class_attribute = $processor->get_attribute( 'class' ); if ( is_string( $class_attribute ) && preg_match( '/\bwp-states-[a-f0-9]{8}\b/', $class_attribute ) ) { continue; } $processor->add_class( $state_class ); } return $processor->get_updated_html(); } add_filter( 'render_block', 'block_core_navigation_add_support_classes_to_container', 11, 2 ); /** * Filter that changes the parsed attribute values of navigation blocks contain typographic presets to contain the values directly. * * @since 5.9.0 * * @param array $parsed_block The block being rendered. * * @return array The block being rendered without typographic presets. */ function block_core_navigation_typographic_presets_backcompatibility( $parsed_block ) { if ( 'core/navigation' === $parsed_block['blockName'] ) { $attribute_to_prefix_map = array( 'fontStyle' => 'var:preset|font-style|', 'fontWeight' => 'var:preset|font-weight|', 'textDecoration' => 'var:preset|text-decoration|', 'textTransform' => 'var:preset|text-transform|', ); foreach ( $attribute_to_prefix_map as $style_attribute => $prefix ) { if ( ! empty( $parsed_block['attrs']['style']['typography'][ $style_attribute ] ) ) { $prefix_len = strlen( $prefix ); $attribute_value = &$parsed_block['attrs']['style']['typography'][ $style_attribute ]; if ( 0 === strncmp( $attribute_value, $prefix, $prefix_len ) ) { $attribute_value = substr( $attribute_value, $prefix_len ); } if ( 'textDecoration' === $style_attribute && 'strikethrough' === $attribute_value ) { $attribute_value = 'line-through'; } } } } return $parsed_block; } add_filter( 'render_block_data', 'block_core_navigation_typographic_presets_backcompatibility' ); /** * Turns menu item data into a nested array of parsed blocks * * @since 5.9.0 * * @deprecated 6.3.0 Use WP_Navigation_Fallback::parse_blocks_from_menu_items() instead. * * @param array $menu_items An array of menu items that represent * an individual level of a menu. * @param array $menu_items_by_parent_id An array keyed by the id of the * parent menu where each element is an * array of menu items that belong to * that parent. * @return array An array of parsed block data. */ function block_core_navigation_parse_blocks_from_menu_items( $menu_items, $menu_items_by_parent_id ) { _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::parse_blocks_from_menu_items' ); if ( empty( $menu_items ) ) { return array(); } $blocks = array(); foreach ( $menu_items as $menu_item ) { $class_name = ! empty( $menu_item->classes ) ? implode( ' ', (array) $menu_item->classes ) : null; $id = ( null !== $menu_item->object_id && 'custom' !== $menu_item->object ) ? $menu_item->object_id : null; $opens_in_new_tab = null !== $menu_item->target && '_blank' === $menu_item->target; $rel = ( null !== $menu_item->xfn && '' !== $menu_item->xfn ) ? $menu_item->xfn : null; $kind = null !== $menu_item->type ? str_replace( '_', '-', $menu_item->type ) : 'custom'; $block = array( 'blockName' => isset( $menu_items_by_parent_id[ $menu_item->ID ] ) ? 'core/navigation-submenu' : 'core/navigation-link', 'attrs' => array( 'className' => $class_name, 'description' => $menu_item->description, 'id' => $id, 'kind' => $kind, 'label' => $menu_item->title, 'opensInNewTab' => $opens_in_new_tab, 'rel' => $rel, 'title' => $menu_item->attr_title, 'type' => $menu_item->object, 'url' => $menu_item->url, ), ); $block['innerBlocks'] = isset( $menu_items_by_parent_id[ $menu_item->ID ] ) ? block_core_navigation_parse_blocks_from_menu_items( $menu_items_by_parent_id[ $menu_item->ID ], $menu_items_by_parent_id ) : array(); $block['innerContent'] = array_map( 'serialize_block', $block['innerBlocks'] ); $blocks[] = $block; } return $blocks; } /** * Get the classic navigation menu to use as a fallback. * * @since 6.2.0 * * @deprecated 6.3.0 Use WP_Navigation_Fallback::get_classic_menu_fallback() instead. * * @return object WP_Term The classic navigation. */ function block_core_navigation_get_classic_menu_fallback() { _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::get_classic_menu_fallback' ); $classic_nav_menus = wp_get_nav_menus(); // If menus exist. if ( $classic_nav_menus && ! is_wp_error( $classic_nav_menus ) ) { // Handles simple use case where user has a classic menu and switches to a block theme. // Returns the menu assigned to location `primary`. $locations = get_nav_menu_locations(); if ( isset( $locations['primary'] ) ) { $primary_menu = wp_get_nav_menu_object( $locations['primary'] ); if ( $primary_menu ) { return $primary_menu; } } // Returns a menu if `primary` is its slug. foreach ( $classic_nav_menus as $classic_nav_menu ) { if ( 'primary' === $classic_nav_menu->slug ) { return $classic_nav_menu; } } // Otherwise return the most recently created classic menu. usort( $classic_nav_menus, static function ( $a, $b ) { return $b->term_id - $a->term_id; } ); return $classic_nav_menus[0]; } } /** * Converts a classic navigation to blocks. * * @since 6.2.0 * * @deprecated 6.3.0 Use WP_Navigation_Fallback::get_classic_menu_fallback_blocks() instead. * * @param object $classic_nav_menu WP_Term The classic navigation object to convert. * @return array the normalized parsed blocks. */ function block_core_navigation_get_classic_menu_fallback_blocks( $classic_nav_menu ) { _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::get_classic_menu_fallback_blocks' ); // BEGIN: Code that already exists in wp_nav_menu(). $menu_items = wp_get_nav_menu_items( $classic_nav_menu->term_id, array( 'update_post_term_cache' => false ) ); // Set up the $menu_item variables. _wp_menu_item_classes_by_context( $menu_items ); $sorted_menu_items = array(); foreach ( (array) $menu_items as $menu_item ) { $sorted_menu_items[ $menu_item->menu_order ] = $menu_item; } unset( $menu_items, $menu_item ); // END: Code that already exists in wp_nav_menu(). $menu_items_by_parent_id = array(); foreach ( $sorted_menu_items as $menu_item ) { $menu_items_by_parent_id[ $menu_item->menu_item_parent ][] = $menu_item; } $inner_blocks = block_core_navigation_parse_blocks_from_menu_items( $menu_items_by_parent_id[0] ?? array(), $menu_items_by_parent_id ); return serialize_blocks( $inner_blocks ); } /** * If there's a classic menu then use it as a fallback. * * @since 6.2.0 * * @deprecated 6.3.0 Use WP_Navigation_Fallback::create_classic_menu_fallback() instead. * * @return array the normalized parsed blocks. */ function block_core_navigation_maybe_use_classic_menu_fallback() { _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::create_classic_menu_fallback' ); // See if we have a classic menu. $classic_nav_menu = block_core_navigation_get_classic_menu_fallback(); if ( ! $classic_nav_menu ) { return; } // If we have a classic menu then convert it to blocks. $classic_nav_menu_blocks = block_core_navigation_get_classic_menu_fallback_blocks( $classic_nav_menu ); if ( empty( $classic_nav_menu_blocks ) ) { return; } // Create a new navigation menu from the classic menu. $wp_insert_post_result = wp_insert_post( array( 'post_content' => $classic_nav_menu_blocks, 'post_title' => $classic_nav_menu->name, 'post_name' => $classic_nav_menu->slug, 'post_status' => 'publish', 'post_type' => 'wp_navigation', ), true // So that we can check whether the result is an error. ); if ( is_wp_error( $wp_insert_post_result ) ) { return; } // Fetch the most recently published navigation which will be the classic one created above. return block_core_navigation_get_most_recently_published_navigation(); } /** * Finds the most recently published `wp_navigation` Post. * * @since 6.1.0 * * @deprecated 6.3.0 Use WP_Navigation_Fallback::get_most_recently_published_navigation() instead. * * @return WP_Post|null the first non-empty Navigation or null. */ function block_core_navigation_get_most_recently_published_navigation() { _deprecated_function( __FUNCTION__, '6.3.0', 'WP_Navigation_Fallback::get_most_recently_published_navigation' ); // Default to the most recently created menu. $parsed_args = array( 'post_type' => 'wp_navigation', 'no_found_rows' => true, 'update_post_meta_cache' => false, 'update_post_term_cache' => false, 'order' => 'DESC', 'orderby' => 'date', 'post_status' => 'publish', 'posts_per_page' => 1, // get only the most recent. ); $navigation_post = new WP_Query( $parsed_args ); if ( count( $navigation_post->posts ) > 0 ) { return $navigation_post->posts[0]; } return null; } accordion-panel/style-rtl.css 0000775 00000000076 00000000000 0012224 0 ustar 00 .wp-block-accordion-panel[hidden] { margin-block-start: 0; } accordion-panel/style.min.css 0000775 00000000067 00000000000 0012207 0 ustar 00 .wp-block-accordion-panel[hidden]{margin-block-start:0} accordion-panel/block.json 0000775 00000003025 00000000000 0011535 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/accordion-panel", "title": "Accordion Panel", "category": "design", "description": "Contains the hidden or revealed content beneath the heading.", "parent": [ "core/accordion-item" ], "usesContext": [ "core/accordion-open-by-default" ], "supports": { "html": false, "color": { "background": true, "gradients": true }, "interactivity": true, "spacing": { "padding": true, "blockGap": true, "__experimentalDefaultControls": { "padding": true, "blockGap": true } }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "shadow": true, "layout": { "allowEditing": false }, "visibility": false, "contentRole": true, "allowedBlocks": true, "lock": false }, "attributes": { "templateLock": { "type": [ "string", "boolean" ], "enum": [ "all", "insert", "contentOnly", false ], "default": false } }, "textdomain": "default", "style": "wp-block-accordion-panel" } accordion-panel/style-rtl.min.css 0000775 00000000067 00000000000 0013006 0 ustar 00 .wp-block-accordion-panel[hidden]{margin-block-start:0} accordion-panel/style.css 0000775 00000000076 00000000000 0011425 0 ustar 00 .wp-block-accordion-panel[hidden] { margin-block-start: 0; } site-tagline/editor.css 0000775 00000000117 00000000000 0011076 0 ustar 00 .wp-block-site-tagline__placeholder { padding: 1em 0; border: 1px dashed; } site-tagline/editor.min.css 0000775 00000000104 00000000000 0011654 0 ustar 00 .wp-block-site-tagline__placeholder{border:1px dashed;padding:1em 0} site-tagline/style-rtl.css 0000775 00000000064 00000000000 0011550 0 ustar 00 .wp-block-site-tagline { box-sizing: border-box; } site-tagline/editor-rtl.min.css 0000775 00000000104 00000000000 0012453 0 ustar 00 .wp-block-site-tagline__placeholder{border:1px dashed;padding:1em 0} site-tagline/style.min.css 0000775 00000000055 00000000000 0011533 0 ustar 00 .wp-block-site-tagline{box-sizing:border-box} site-tagline/block.json 0000775 00000003263 00000000000 0011070 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/site-tagline", "title": "Site Tagline", "category": "theme", "description": "Describe in a few words what this site is about. This is important for search results, sharing on social media, and gives overall clarity to visitors.", "keywords": [ "description" ], "textdomain": "default", "attributes": { "level": { "type": "number", "default": 0 }, "levelOptions": { "type": "array", "default": [ 0, 1, 2, 3, 4, 5, 6 ] } }, "example": { "viewportWidth": 350, "attributes": { "style": { "typography": { "textAlign": "center" } } } }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "contentRole": true, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalWritingMode": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true } }, "editorStyle": "wp-block-site-tagline-editor", "style": "wp-block-site-tagline" } site-tagline/style-rtl.min.css 0000775 00000000055 00000000000 0012332 0 ustar 00 .wp-block-site-tagline{box-sizing:border-box} site-tagline/style.css 0000775 00000000064 00000000000 0010751 0 ustar 00 .wp-block-site-tagline { box-sizing: border-box; } site-tagline/editor-rtl.css 0000775 00000000117 00000000000 0011675 0 ustar 00 .wp-block-site-tagline__placeholder { padding: 1em 0; border: 1px dashed; } math/editor.css 0000775 00000001617 00000000000 0007450 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-math__textarea-control textarea { font-family: Menlo, Consolas, monaco, monospace; /*rtl:ignore*/ direction: ltr; } math/editor.min.css 0000775 00000000144 00000000000 0010224 0 ustar 00 .wp-block-math__textarea-control textarea{direction:ltr;font-family:Menlo,Consolas,monaco,monospace} math/style-rtl.css 0000775 00000000074 00000000000 0010115 0 ustar 00 .wp-block-math { overflow-x: auto; overflow-y: hidden; } math/editor-rtl.min.css 0000775 00000000144 00000000000 0011023 0 ustar 00 .wp-block-math__textarea-control textarea{direction:ltr;font-family:Menlo,Consolas,monaco,monospace} math/style.min.css 0000775 00000000061 00000000000 0010074 0 ustar 00 .wp-block-math{overflow-x:auto;overflow-y:hidden} math/block.json 0000775 00000001732 00000000000 0007433 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/math", "title": "Math", "category": "text", "description": "Display mathematical notation using LaTeX.", "keywords": [ "equation", "formula", "latex", "mathematics" ], "textdomain": "default", "supports": { "anchor": true, "html": false, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true }, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "__experimentalDefaultControls": { "fontSize": true } } }, "attributes": { "latex": { "type": "string", "role": "content" }, "mathML": { "type": "string", "source": "html", "selector": "math" } } } math/style-rtl.min.css 0000775 00000000061 00000000000 0010673 0 ustar 00 .wp-block-math{overflow-x:auto;overflow-y:hidden} math/style.css 0000775 00000000074 00000000000 0007316 0 ustar 00 .wp-block-math { overflow-x: auto; overflow-y: hidden; } math/editor-rtl.css 0000775 00000001576 00000000000 0010253 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-math__textarea-control textarea { font-family: Menlo, Consolas, monaco, monospace; direction: ltr; } icon.php 0000775 00000010426 00000000000 0006156 0 ustar 00 <?php /** * Server-side rendering of the `core/icon` block. * * @package WordPress */ /** * Renders the `core/icon` block on server. * * @since 7.0.0 * * @param array $attributes The block attributes. * * @return string Returns the Icon. */ function render_block_core_icon( $attributes ) { if ( empty( $attributes['icon'] ) ) { return; } // Text color and background color. $color_styles = array(); $preset_text_color = array_key_exists( 'textColor', $attributes ) ? "var:preset|color|{$attributes['textColor']}" : null; $custom_text_color = $attributes['style']['color']['text'] ?? null; $color_styles['text'] = $preset_text_color ? $preset_text_color : $custom_text_color; $preset_background_color = array_key_exists( 'backgroundColor', $attributes ) ? "var:preset|color|{$attributes['backgroundColor']}" : null; $custom_background_color = $attributes['style']['color']['background'] ?? null; $color_styles['background'] = $preset_background_color ? $preset_background_color : $custom_background_color; // Border. $border_styles = array(); $sides = array( 'top', 'right', 'bottom', 'left' ); if ( isset( $attributes['style']['border']['radius'] ) ) { $border_styles['radius'] = $attributes['style']['border']['radius']; } if ( isset( $attributes['style']['border']['style'] ) ) { $border_styles['style'] = $attributes['style']['border']['style']; } if ( isset( $attributes['style']['border']['width'] ) ) { $border_styles['width'] = $attributes['style']['border']['width']; } $preset_color = array_key_exists( 'borderColor', $attributes ) ? "var:preset|color|{$attributes['borderColor']}" : null; $custom_color = $attributes['style']['border']['color'] ?? null; $border_styles['color'] = $preset_color ? $preset_color : $custom_color; foreach ( $sides as $side ) { $border = $attributes['style']['border'][ $side ] ?? null; $border_styles[ $side ] = array( 'color' => $border['color'] ?? null, 'style' => $border['style'] ?? null, 'width' => $border['width'] ?? null, ); } // Spacing (Padding). $spacing_styles = array(); if ( isset( $attributes['style']['spacing']['padding'] ) ) { $spacing_styles['padding'] = $attributes['style']['spacing']['padding']; } // Dimensions (Width). $dimensions_styles = array(); if ( isset( $attributes['style']['dimensions']['width'] ) ) { $dimensions_styles['width'] = $attributes['style']['dimensions']['width']; } // Generate styles and classes. $styles = wp_style_engine_get_styles( array( 'color' => $color_styles, 'border' => $border_styles, 'spacing' => $spacing_styles, 'dimensions' => $dimensions_styles, ), ); $svg = wp_get_icon( $attributes['icon'], array( // Width is applied via the dimensions block support styles below. 'size' => null, 'class' => $styles['classnames'] ?? '', 'label' => $attributes['ariaLabel'] ?? '', ) ); if ( '' === $svg ) { return; } $processor = new WP_HTML_Tag_Processor( $svg ); if ( $processor->next_tag( 'svg' ) ) { if ( ! empty( $styles['css'] ) ) { $processor->set_attribute( 'style', $styles['css'] ); } // Apply flip classes to the SVG. $flip_horizontal = $attributes['flipHorizontal'] ?? false; $flip_vertical = $attributes['flipVertical'] ?? false; if ( $flip_horizontal ) { $processor->add_class( 'is-flip-horizontal' ); } if ( $flip_vertical ) { $processor->add_class( 'is-flip-vertical' ); } $rotation = isset( $attributes['rotation'] ) ? (int) $attributes['rotation'] : 0; if ( $rotation ) { $current_style = $processor->get_attribute( 'style' ) ?? ''; $rotation_css = 'rotate: ' . $rotation . 'deg;'; if ( $current_style ) { $processor->set_attribute( 'style', $current_style . ' ' . $rotation_css ); } else { $processor->set_attribute( 'style', $rotation_css ); } } $svg = $processor->get_updated_html(); } $wrapper_attributes = get_block_wrapper_attributes(); return sprintf( '<div %s>%s</div>', $wrapper_attributes, $svg ); } /** * Registers the `core/icon` block on server. * * @since 7.0.0 */ function register_block_core_icon() { register_block_type_from_metadata( __DIR__ . '/icon', array( 'render_callback' => 'render_block_core_icon', ) ); } add_action( 'init', 'register_block_core_icon' ); accordion-item.php 0000775 00000005754 00000000000 0010133 0 ustar 00 <?php /** * Server-side rendering of the `core/accordion-item` block. * * @package WordPress * @since 6.9.0 * * @param array{ openByDefault: bool } $attributes The block attributes. * @param string $content The block content. * @return string Returns the updated markup. */ function block_core_accordion_item_render( array $attributes, string $content ): string { if ( '' === $content ) { return $content; } $p = new WP_HTML_Tag_Processor( $content ); $unique_id = wp_unique_id( 'accordion-item-' ); // Initialize the state of the item on the server using a closure, // since we need to get derived state based on the current context. wp_interactivity_state( 'core/accordion', array( 'isOpen' => function () { $context = wp_interactivity_get_context(); return $context['openByDefault']; }, ) ); if ( $p->next_tag( array( 'class_name' => 'wp-block-accordion-item' ) ) ) { $open_by_default = $attributes['openByDefault'] ? 'true' : 'false'; $p->set_attribute( 'data-wp-context', '{ "id": "' . $unique_id . '", "openByDefault": ' . $open_by_default . ' }' ); $p->set_attribute( 'data-wp-class--is-open', 'state.isOpen' ); $p->set_attribute( 'data-wp-init', 'callbacks.initAccordionItems' ); $p->set_attribute( 'data-wp-on-window--hashchange', 'callbacks.hashChange' ); if ( $p->next_tag( array( 'class_name' => 'wp-block-accordion-heading__toggle' ) ) ) { $p->set_attribute( 'data-wp-on--click', 'actions.toggle' ); $p->set_attribute( 'id', $unique_id ); $p->set_attribute( 'aria-controls', $unique_id . '-panel' ); $p->set_attribute( 'data-wp-bind--aria-expanded', 'state.isOpen' ); if ( $p->next_tag( array( 'class_name' => 'wp-block-accordion-panel' ) ) ) { $p->set_attribute( 'id', $unique_id . '-panel' ); $p->set_attribute( 'aria-labelledby', $unique_id ); $p->set_attribute( 'data-wp-bind--hidden', 'state.isHidden' ); $p->set_attribute( 'data-wp-on--beforematch', 'actions.handleBeforeMatch' ); // Only modify content if all directives have been set. $content = $p->get_updated_html(); } } } /* * If an Accordion Item is collapsed by default, ensure any contained IMG has fetchpriority=low to deprioritize it * from contending with resources in the critical rendering path. In contrast, remove the loading attribute to * prevent the image from not being available when the item is expanded. */ if ( ! $attributes['openByDefault'] ) { $processor = new WP_HTML_Tag_Processor( $content ); while ( $processor->next_tag( 'IMG' ) ) { $processor->set_attribute( 'fetchpriority', 'low' ); } $content = $processor->get_updated_html(); } return $content; } /** * Registers the `core/accordion-item` block on server. * * @since 6.9.0 */ function register_block_core_accordion_item() { register_block_type_from_metadata( __DIR__ . '/accordion-item', array( 'render_callback' => 'block_core_accordion_item_render', ) ); } add_action( 'init', 'register_block_core_accordion_item' ); list.php 0000775 00000002371 00000000000 0006201 0 ustar 00 <?php /** * Adds the wp-block-list class to the rendered list block. * * @package WordPress */ /** * Adds the wp-block-list class to the rendered list block. * Ensures that pre-existing list blocks use the class name on the front. * For example, <ol> is transformed to <ol class="wp-block-list">. * * @since 6.6.0 * * @see https://github.com/WordPress/gutenberg/issues/12420 * * @param array $attributes Attributes of the block being rendered. * @param string $content Content of the block being rendered. * * @return string The content of the block being rendered. */ function block_core_list_render( $attributes, $content ) { if ( ! $content ) { return $content; } $processor = new WP_HTML_Tag_Processor( $content ); $list_tags = array( 'OL', 'UL' ); while ( $processor->next_tag() ) { if ( in_array( $processor->get_tag(), $list_tags, true ) ) { $processor->add_class( 'wp-block-list' ); break; } } return $processor->get_updated_html(); } /** * Registers the `core/list` block on server. * * @since 6.6.0 */ function register_block_core_list() { register_block_type_from_metadata( __DIR__ . '/list', array( 'render_callback' => 'block_core_list_render', ) ); } add_action( 'init', 'register_block_core_list' ); comments/editor.css 0000775 00000011707 00000000000 0010345 0 ustar 00 /** * Colors */ /* Styles for backwards compatibility with the legacy `post-comments` block */ .wp-block-post-comments, .wp-block-comments__legacy-placeholder { box-sizing: border-box; /* utility classes */ } .wp-block-post-comments .alignleft, .wp-block-comments__legacy-placeholder .alignleft { float: left; } .wp-block-post-comments .alignright, .wp-block-comments__legacy-placeholder .alignright { float: right; } .wp-block-post-comments, .wp-block-comments__legacy-placeholder { /* end utility classes */ } .wp-block-post-comments .navigation::after, .wp-block-comments__legacy-placeholder .navigation::after { content: ""; display: table; clear: both; } .wp-block-post-comments .commentlist, .wp-block-comments__legacy-placeholder .commentlist { clear: both; list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .commentlist .comment, .wp-block-comments__legacy-placeholder .commentlist .comment { min-height: 2.25em; padding-left: 3.25em; } .wp-block-post-comments .commentlist .comment p, .wp-block-comments__legacy-placeholder .commentlist .comment p { font-size: 1em; line-height: 1.8; margin: 1em 0; } .wp-block-post-comments .commentlist .children, .wp-block-comments__legacy-placeholder .commentlist .children { list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .comment-author, .wp-block-comments__legacy-placeholder .comment-author { line-height: 1.5; } .wp-block-post-comments .comment-author .avatar, .wp-block-comments__legacy-placeholder .comment-author .avatar { border-radius: 1.5em; display: block; float: left; height: 2.5em; margin-top: 0.5em; margin-right: 0.75em; width: 2.5em; } .wp-block-post-comments .comment-author cite, .wp-block-comments__legacy-placeholder .comment-author cite { font-style: normal; } .wp-block-post-comments .comment-meta, .wp-block-comments__legacy-placeholder .comment-meta { font-size: 0.875em; line-height: 1.5; } .wp-block-post-comments .comment-meta b, .wp-block-comments__legacy-placeholder .comment-meta b { font-weight: normal; } .wp-block-post-comments .comment-meta .comment-awaiting-moderation, .wp-block-comments__legacy-placeholder .comment-meta .comment-awaiting-moderation { margin-top: 1em; margin-bottom: 1em; display: block; } .wp-block-post-comments .comment-body .commentmetadata, .wp-block-comments__legacy-placeholder .comment-body .commentmetadata { font-size: 0.875em; } .wp-block-post-comments .comment-form-comment label, .wp-block-comments__legacy-placeholder .comment-form-comment label, .wp-block-post-comments .comment-form-author label, .wp-block-comments__legacy-placeholder .comment-form-author label, .wp-block-post-comments .comment-form-email label, .wp-block-comments__legacy-placeholder .comment-form-email label, .wp-block-post-comments .comment-form-url label, .wp-block-comments__legacy-placeholder .comment-form-url label { display: block; margin-bottom: 0.25em; } .wp-block-post-comments .comment-form textarea, .wp-block-comments__legacy-placeholder .comment-form textarea, .wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]), .wp-block-comments__legacy-placeholder .comment-form input:not([type=submit]):not([type=checkbox]) { display: block; box-sizing: border-box; width: 100%; } .wp-block-post-comments .comment-form-cookies-consent, .wp-block-comments__legacy-placeholder .comment-form-cookies-consent { display: flex; gap: 0.25em; } .wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent, .wp-block-comments__legacy-placeholder .comment-form-cookies-consent #wp-comment-cookies-consent { margin-top: 0.35em; } .wp-block-post-comments .comment-reply-title, .wp-block-comments__legacy-placeholder .comment-reply-title { margin-bottom: 0; } .wp-block-post-comments .comment-reply-title :where(small), .wp-block-comments__legacy-placeholder .comment-reply-title :where(small) { font-size: var(--wp--preset--font-size--medium, smaller); margin-left: 0.5em; } .wp-block-post-comments .reply, .wp-block-comments__legacy-placeholder .reply { font-size: 0.875em; margin-bottom: 1.4em; } .wp-block-post-comments textarea, .wp-block-comments__legacy-placeholder textarea, .wp-block-post-comments input:not([type=submit]), .wp-block-comments__legacy-placeholder input:not([type=submit]) { border: 1px solid #949494; font-size: 1em; font-family: inherit; } .wp-block-post-comments textarea, .wp-block-comments__legacy-placeholder textarea, .wp-block-post-comments input:not([type=submit]):not([type=checkbox]), .wp-block-comments__legacy-placeholder input:not([type=submit]):not([type=checkbox]) { padding: calc(0.667em + 2px); } :where(.wp-block-post-comments input[type=submit], .wp-block-comments__legacy-placeholder input[type=submit]) { border: none; } .wp-block-comments { box-sizing: border-box; } .block-library-comments-toolbar__popover .components-popover__content { min-width: 230px; } .wp-block-comments__legacy-placeholder * { pointer-events: none; } comments/editor.min.css 0000775 00000010552 00000000000 0011124 0 ustar 00 .wp-block-comments__legacy-placeholder,.wp-block-post-comments{box-sizing:border-box}.wp-block-comments__legacy-placeholder .alignleft,.wp-block-post-comments .alignleft{float:left}.wp-block-comments__legacy-placeholder .alignright,.wp-block-post-comments .alignright{float:right}.wp-block-comments__legacy-placeholder .navigation:after,.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-comments__legacy-placeholder .commentlist,.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .commentlist .comment,.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-left:3.25em}.wp-block-comments__legacy-placeholder .commentlist .comment p,.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-comments__legacy-placeholder .commentlist .children,.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .comment-author,.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-comments__legacy-placeholder .comment-author .avatar,.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;margin-top:.5em;width:2.5em}.wp-block-comments__legacy-placeholder .comment-author cite,.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-comments__legacy-placeholder .comment-meta,.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-comments__legacy-placeholder .comment-meta b,.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-comments__legacy-placeholder .comment-meta .comment-awaiting-moderation,.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-comments__legacy-placeholder .comment-body .commentmetadata,.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-comments__legacy-placeholder .comment-form-author label,.wp-block-comments__legacy-placeholder .comment-form-comment label,.wp-block-comments__legacy-placeholder .comment-form-email label,.wp-block-comments__legacy-placeholder .comment-form-url label,.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-comments__legacy-placeholder .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder .comment-form textarea,.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent #wp-comment-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-comments__legacy-placeholder .comment-reply-title,.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-comments__legacy-placeholder .comment-reply-title :where(small),.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-left:.5em}.wp-block-comments__legacy-placeholder .reply,.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-comments__legacy-placeholder input:not([type=submit]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-comments__legacy-placeholder input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit],.wp-block-comments__legacy-placeholder input[type=submit]){border:none}.wp-block-comments{box-sizing:border-box}.block-library-comments-toolbar__popover .components-popover__content{min-width:230px}.wp-block-comments__legacy-placeholder *{pointer-events:none} comments/style-rtl.css 0000775 00000005504 00000000000 0011014 0 ustar 00 /** * Colors */ /* Styles for backwards compatibility with the legacy `post-comments` block */ .wp-block-post-comments { box-sizing: border-box; /* utility classes */ } .wp-block-post-comments .alignleft { float: right; } .wp-block-post-comments .alignright { float: left; } .wp-block-post-comments { /* end utility classes */ } .wp-block-post-comments .navigation::after { content: ""; display: table; clear: both; } .wp-block-post-comments .commentlist { clear: both; list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .commentlist .comment { min-height: 2.25em; padding-right: 3.25em; } .wp-block-post-comments .commentlist .comment p { font-size: 1em; line-height: 1.8; margin: 1em 0; } .wp-block-post-comments .commentlist .children { list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .comment-author { line-height: 1.5; } .wp-block-post-comments .comment-author .avatar { border-radius: 1.5em; display: block; float: right; height: 2.5em; margin-top: 0.5em; margin-left: 0.75em; width: 2.5em; } .wp-block-post-comments .comment-author cite { font-style: normal; } .wp-block-post-comments .comment-meta { font-size: 0.875em; line-height: 1.5; } .wp-block-post-comments .comment-meta b { font-weight: normal; } .wp-block-post-comments .comment-meta .comment-awaiting-moderation { margin-top: 1em; margin-bottom: 1em; display: block; } .wp-block-post-comments .comment-body .commentmetadata { font-size: 0.875em; } .wp-block-post-comments .comment-form-comment label, .wp-block-post-comments .comment-form-author label, .wp-block-post-comments .comment-form-email label, .wp-block-post-comments .comment-form-url label { display: block; margin-bottom: 0.25em; } .wp-block-post-comments .comment-form textarea, .wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]) { display: block; box-sizing: border-box; width: 100%; } .wp-block-post-comments .comment-form-cookies-consent { display: flex; gap: 0.25em; } .wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent { margin-top: 0.35em; } .wp-block-post-comments .comment-reply-title { margin-bottom: 0; } .wp-block-post-comments .comment-reply-title :where(small) { font-size: var(--wp--preset--font-size--medium, smaller); margin-right: 0.5em; } .wp-block-post-comments .reply { font-size: 0.875em; margin-bottom: 1.4em; } .wp-block-post-comments textarea, .wp-block-post-comments input:not([type=submit]) { border: 1px solid #949494; font-size: 1em; font-family: inherit; } .wp-block-post-comments textarea, .wp-block-post-comments input:not([type=submit]):not([type=checkbox]) { padding: calc(0.667em + 2px); } :where(.wp-block-post-comments input[type=submit]) { border: none; } .wp-block-comments { box-sizing: border-box; } comments/editor-rtl.min.css 0000775 00000010554 00000000000 0011725 0 ustar 00 .wp-block-comments__legacy-placeholder,.wp-block-post-comments{box-sizing:border-box}.wp-block-comments__legacy-placeholder .alignleft,.wp-block-post-comments .alignleft{float:right}.wp-block-comments__legacy-placeholder .alignright,.wp-block-post-comments .alignright{float:left}.wp-block-comments__legacy-placeholder .navigation:after,.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-comments__legacy-placeholder .commentlist,.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .commentlist .comment,.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-right:3.25em}.wp-block-comments__legacy-placeholder .commentlist .comment p,.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-comments__legacy-placeholder .commentlist .children,.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-comments__legacy-placeholder .comment-author,.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-comments__legacy-placeholder .comment-author .avatar,.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:right;height:2.5em;margin-left:.75em;margin-top:.5em;width:2.5em}.wp-block-comments__legacy-placeholder .comment-author cite,.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-comments__legacy-placeholder .comment-meta,.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-comments__legacy-placeholder .comment-meta b,.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-comments__legacy-placeholder .comment-meta .comment-awaiting-moderation,.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-comments__legacy-placeholder .comment-body .commentmetadata,.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-comments__legacy-placeholder .comment-form-author label,.wp-block-comments__legacy-placeholder .comment-form-comment label,.wp-block-comments__legacy-placeholder .comment-form-email label,.wp-block-comments__legacy-placeholder .comment-form-url label,.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-comments__legacy-placeholder .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder .comment-form textarea,.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-comments__legacy-placeholder .comment-form-cookies-consent #wp-comment-cookies-consent,.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-comments__legacy-placeholder .comment-reply-title,.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-comments__legacy-placeholder .comment-reply-title :where(small),.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-right:.5em}.wp-block-comments__legacy-placeholder .reply,.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-comments__legacy-placeholder input:not([type=submit]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-comments__legacy-placeholder input:not([type=submit]):not([type=checkbox]),.wp-block-comments__legacy-placeholder textarea,.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit],.wp-block-comments__legacy-placeholder input[type=submit]){border:none}.wp-block-comments{box-sizing:border-box}.block-library-comments-toolbar__popover .components-popover__content{min-width:230px}.wp-block-comments__legacy-placeholder *{pointer-events:none} comments/style.min.css 0000775 00000004477 00000000000 0011007 0 ustar 00 .wp-block-post-comments{box-sizing:border-box}.wp-block-post-comments .alignleft{float:left}.wp-block-post-comments .alignright{float:right}.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-left:3.25em}.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:left;height:2.5em;margin-right:.75em;margin-top:.5em;width:2.5em}.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-left:.5em}.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit]){border:none}.wp-block-comments{box-sizing:border-box} comments/block.json 0000775 00000002615 00000000000 0010330 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comments", "title": "Comments", "category": "theme", "description": "An advanced block that allows displaying post comments using different visual configurations.", "textdomain": "default", "attributes": { "tagName": { "type": "string", "default": "div" }, "legacy": { "type": "boolean", "default": false } }, "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "gradients": true, "heading": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "editorStyle": "wp-block-comments-editor", "usesContext": [ "postId", "postType" ] } comments/style-rtl.min.css 0000775 00000004501 00000000000 0011572 0 ustar 00 .wp-block-post-comments{box-sizing:border-box}.wp-block-post-comments .alignleft{float:right}.wp-block-post-comments .alignright{float:left}.wp-block-post-comments .navigation:after{clear:both;content:"";display:table}.wp-block-post-comments .commentlist{clear:both;list-style:none;margin:0;padding:0}.wp-block-post-comments .commentlist .comment{min-height:2.25em;padding-right:3.25em}.wp-block-post-comments .commentlist .comment p{font-size:1em;line-height:1.8;margin:1em 0}.wp-block-post-comments .commentlist .children{list-style:none;margin:0;padding:0}.wp-block-post-comments .comment-author{line-height:1.5}.wp-block-post-comments .comment-author .avatar{border-radius:1.5em;display:block;float:right;height:2.5em;margin-left:.75em;margin-top:.5em;width:2.5em}.wp-block-post-comments .comment-author cite{font-style:normal}.wp-block-post-comments .comment-meta{font-size:.875em;line-height:1.5}.wp-block-post-comments .comment-meta b{font-weight:400}.wp-block-post-comments .comment-meta .comment-awaiting-moderation{display:block;margin-bottom:1em;margin-top:1em}.wp-block-post-comments .comment-body .commentmetadata{font-size:.875em}.wp-block-post-comments .comment-form-author label,.wp-block-post-comments .comment-form-comment label,.wp-block-post-comments .comment-form-email label,.wp-block-post-comments .comment-form-url label{display:block;margin-bottom:.25em}.wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments .comment-form textarea{box-sizing:border-box;display:block;width:100%}.wp-block-post-comments .comment-form-cookies-consent{display:flex;gap:.25em}.wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent{margin-top:.35em}.wp-block-post-comments .comment-reply-title{margin-bottom:0}.wp-block-post-comments .comment-reply-title :where(small){font-size:var(--wp--preset--font-size--medium,smaller);margin-right:.5em}.wp-block-post-comments .reply{font-size:.875em;margin-bottom:1.4em}.wp-block-post-comments input:not([type=submit]),.wp-block-post-comments textarea{border:1px solid #949494;font-family:inherit;font-size:1em}.wp-block-post-comments input:not([type=submit]):not([type=checkbox]),.wp-block-post-comments textarea{padding:calc(.667em + 2px)}:where(.wp-block-post-comments input[type=submit]){border:none}.wp-block-comments{box-sizing:border-box} comments/style.css 0000775 00000005502 00000000000 0010213 0 ustar 00 /** * Colors */ /* Styles for backwards compatibility with the legacy `post-comments` block */ .wp-block-post-comments { box-sizing: border-box; /* utility classes */ } .wp-block-post-comments .alignleft { float: left; } .wp-block-post-comments .alignright { float: right; } .wp-block-post-comments { /* end utility classes */ } .wp-block-post-comments .navigation::after { content: ""; display: table; clear: both; } .wp-block-post-comments .commentlist { clear: both; list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .commentlist .comment { min-height: 2.25em; padding-left: 3.25em; } .wp-block-post-comments .commentlist .comment p { font-size: 1em; line-height: 1.8; margin: 1em 0; } .wp-block-post-comments .commentlist .children { list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .comment-author { line-height: 1.5; } .wp-block-post-comments .comment-author .avatar { border-radius: 1.5em; display: block; float: left; height: 2.5em; margin-top: 0.5em; margin-right: 0.75em; width: 2.5em; } .wp-block-post-comments .comment-author cite { font-style: normal; } .wp-block-post-comments .comment-meta { font-size: 0.875em; line-height: 1.5; } .wp-block-post-comments .comment-meta b { font-weight: normal; } .wp-block-post-comments .comment-meta .comment-awaiting-moderation { margin-top: 1em; margin-bottom: 1em; display: block; } .wp-block-post-comments .comment-body .commentmetadata { font-size: 0.875em; } .wp-block-post-comments .comment-form-comment label, .wp-block-post-comments .comment-form-author label, .wp-block-post-comments .comment-form-email label, .wp-block-post-comments .comment-form-url label { display: block; margin-bottom: 0.25em; } .wp-block-post-comments .comment-form textarea, .wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]) { display: block; box-sizing: border-box; width: 100%; } .wp-block-post-comments .comment-form-cookies-consent { display: flex; gap: 0.25em; } .wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent { margin-top: 0.35em; } .wp-block-post-comments .comment-reply-title { margin-bottom: 0; } .wp-block-post-comments .comment-reply-title :where(small) { font-size: var(--wp--preset--font-size--medium, smaller); margin-left: 0.5em; } .wp-block-post-comments .reply { font-size: 0.875em; margin-bottom: 1.4em; } .wp-block-post-comments textarea, .wp-block-post-comments input:not([type=submit]) { border: 1px solid #949494; font-size: 1em; font-family: inherit; } .wp-block-post-comments textarea, .wp-block-post-comments input:not([type=submit]):not([type=checkbox]) { padding: calc(0.667em + 2px); } :where(.wp-block-post-comments input[type=submit]) { border: none; } .wp-block-comments { box-sizing: border-box; } comments/editor-rtl.css 0000775 00000011711 00000000000 0011137 0 ustar 00 /** * Colors */ /* Styles for backwards compatibility with the legacy `post-comments` block */ .wp-block-post-comments, .wp-block-comments__legacy-placeholder { box-sizing: border-box; /* utility classes */ } .wp-block-post-comments .alignleft, .wp-block-comments__legacy-placeholder .alignleft { float: right; } .wp-block-post-comments .alignright, .wp-block-comments__legacy-placeholder .alignright { float: left; } .wp-block-post-comments, .wp-block-comments__legacy-placeholder { /* end utility classes */ } .wp-block-post-comments .navigation::after, .wp-block-comments__legacy-placeholder .navigation::after { content: ""; display: table; clear: both; } .wp-block-post-comments .commentlist, .wp-block-comments__legacy-placeholder .commentlist { clear: both; list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .commentlist .comment, .wp-block-comments__legacy-placeholder .commentlist .comment { min-height: 2.25em; padding-right: 3.25em; } .wp-block-post-comments .commentlist .comment p, .wp-block-comments__legacy-placeholder .commentlist .comment p { font-size: 1em; line-height: 1.8; margin: 1em 0; } .wp-block-post-comments .commentlist .children, .wp-block-comments__legacy-placeholder .commentlist .children { list-style: none; margin: 0; padding: 0; } .wp-block-post-comments .comment-author, .wp-block-comments__legacy-placeholder .comment-author { line-height: 1.5; } .wp-block-post-comments .comment-author .avatar, .wp-block-comments__legacy-placeholder .comment-author .avatar { border-radius: 1.5em; display: block; float: right; height: 2.5em; margin-top: 0.5em; margin-left: 0.75em; width: 2.5em; } .wp-block-post-comments .comment-author cite, .wp-block-comments__legacy-placeholder .comment-author cite { font-style: normal; } .wp-block-post-comments .comment-meta, .wp-block-comments__legacy-placeholder .comment-meta { font-size: 0.875em; line-height: 1.5; } .wp-block-post-comments .comment-meta b, .wp-block-comments__legacy-placeholder .comment-meta b { font-weight: normal; } .wp-block-post-comments .comment-meta .comment-awaiting-moderation, .wp-block-comments__legacy-placeholder .comment-meta .comment-awaiting-moderation { margin-top: 1em; margin-bottom: 1em; display: block; } .wp-block-post-comments .comment-body .commentmetadata, .wp-block-comments__legacy-placeholder .comment-body .commentmetadata { font-size: 0.875em; } .wp-block-post-comments .comment-form-comment label, .wp-block-comments__legacy-placeholder .comment-form-comment label, .wp-block-post-comments .comment-form-author label, .wp-block-comments__legacy-placeholder .comment-form-author label, .wp-block-post-comments .comment-form-email label, .wp-block-comments__legacy-placeholder .comment-form-email label, .wp-block-post-comments .comment-form-url label, .wp-block-comments__legacy-placeholder .comment-form-url label { display: block; margin-bottom: 0.25em; } .wp-block-post-comments .comment-form textarea, .wp-block-comments__legacy-placeholder .comment-form textarea, .wp-block-post-comments .comment-form input:not([type=submit]):not([type=checkbox]), .wp-block-comments__legacy-placeholder .comment-form input:not([type=submit]):not([type=checkbox]) { display: block; box-sizing: border-box; width: 100%; } .wp-block-post-comments .comment-form-cookies-consent, .wp-block-comments__legacy-placeholder .comment-form-cookies-consent { display: flex; gap: 0.25em; } .wp-block-post-comments .comment-form-cookies-consent #wp-comment-cookies-consent, .wp-block-comments__legacy-placeholder .comment-form-cookies-consent #wp-comment-cookies-consent { margin-top: 0.35em; } .wp-block-post-comments .comment-reply-title, .wp-block-comments__legacy-placeholder .comment-reply-title { margin-bottom: 0; } .wp-block-post-comments .comment-reply-title :where(small), .wp-block-comments__legacy-placeholder .comment-reply-title :where(small) { font-size: var(--wp--preset--font-size--medium, smaller); margin-right: 0.5em; } .wp-block-post-comments .reply, .wp-block-comments__legacy-placeholder .reply { font-size: 0.875em; margin-bottom: 1.4em; } .wp-block-post-comments textarea, .wp-block-comments__legacy-placeholder textarea, .wp-block-post-comments input:not([type=submit]), .wp-block-comments__legacy-placeholder input:not([type=submit]) { border: 1px solid #949494; font-size: 1em; font-family: inherit; } .wp-block-post-comments textarea, .wp-block-comments__legacy-placeholder textarea, .wp-block-post-comments input:not([type=submit]):not([type=checkbox]), .wp-block-comments__legacy-placeholder input:not([type=submit]):not([type=checkbox]) { padding: calc(0.667em + 2px); } :where(.wp-block-post-comments input[type=submit], .wp-block-comments__legacy-placeholder input[type=submit]) { border: none; } .wp-block-comments { box-sizing: border-box; } .block-library-comments-toolbar__popover .components-popover__content { min-width: 230px; } .wp-block-comments__legacy-placeholder * { pointer-events: none; } page-list-item.php 0000775 00000000551 00000000000 0010045 0 ustar 00 <?php /** * Server-side rendering of the `core/page-list-item` block. * * @package WordPress */ /** * Registers the `core/page-list-item` block on server. * * @since 6.3.0 */ function register_block_core_page_list_item() { register_block_type_from_metadata( __DIR__ . '/page-list-item' ); } add_action( 'init', 'register_block_core_page_list_item' ); site-logo.php 0000775 00000014276 00000000000 0007137 0 ustar 00 <?php /** * Server-side rendering of the `core/site-logo` block. * * @package WordPress */ /** * Renders the `core/site-logo` block on the server. * * @since 5.8.0 * * @param array $attributes The block attributes. * * @return string The render. */ function render_block_core_site_logo( $attributes ) { $adjust_width_height_filter = static function ( $image ) use ( $attributes ) { if ( empty( $attributes['width'] ) || empty( $image ) || ! $image[1] || ! $image[2] ) { return $image; } $height = (float) $attributes['width'] / ( (float) $image[1] / (float) $image[2] ); return array( $image[0], (int) $attributes['width'], (int) $height ); }; add_filter( 'wp_get_attachment_image_src', $adjust_width_height_filter ); $custom_logo = get_custom_logo(); remove_filter( 'wp_get_attachment_image_src', $adjust_width_height_filter ); if ( empty( $custom_logo ) ) { return ''; // Return early if no custom logo is set, avoiding extraneous wrapper div. } if ( ! $attributes['isLink'] ) { // Remove the link. $custom_logo = preg_replace( '#<a.*?>(.*?)</a>#i', '\1', $custom_logo ); } if ( $attributes['isLink'] && '_blank' === $attributes['linkTarget'] ) { // Add the link target after the rel="home". // Add an aria-label for informing that the page opens in a new tab. $processor = new WP_HTML_Tag_Processor( $custom_logo ); $processor->next_tag( 'a' ); if ( 'home' === $processor->get_attribute( 'rel' ) ) { $processor->set_attribute( 'aria-label', __( '(Home link, opens in a new tab)' ) ); $processor->set_attribute( 'target', $attributes['linkTarget'] ); } $custom_logo = $processor->get_updated_html(); } $classnames = array(); if ( empty( $attributes['width'] ) ) { $classnames[] = 'is-default-size'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classnames ) ) ); $html = sprintf( '<div %s>%s</div>', $wrapper_attributes, $custom_logo ); return $html; } /** * Register a core site setting for a site logo * * @since 5.8.0 */ function register_block_core_site_logo_setting() { register_setting( 'general', 'site_logo', array( 'show_in_rest' => array( 'name' => 'site_logo', ), 'type' => 'integer', 'label' => __( 'Logo' ), 'description' => __( 'Site logo.' ), ) ); } add_action( 'rest_api_init', 'register_block_core_site_logo_setting', 10 ); /** * Register a core site setting for a site icon * * @since 5.9.0 */ function register_block_core_site_icon_setting() { register_setting( 'general', 'site_icon', array( 'show_in_rest' => true, 'type' => 'integer', 'label' => __( 'Icon' ), 'description' => __( 'Site icon.' ), ) ); } add_action( 'rest_api_init', 'register_block_core_site_icon_setting', 10 ); /** * Registers the `core/site-logo` block on the server. * * @since 5.8.0 */ function register_block_core_site_logo() { register_block_type_from_metadata( __DIR__ . '/site-logo', array( 'render_callback' => 'render_block_core_site_logo', ) ); } add_action( 'init', 'register_block_core_site_logo' ); /** * Overrides the custom logo with a site logo, if the option is set. * * @since 5.8.0 * * @param string $custom_logo The custom logo set by a theme. * * @return string The site logo if set. */ function _override_custom_logo_theme_mod( $custom_logo ) { $site_logo = get_option( 'site_logo' ); return false === $site_logo ? $custom_logo : $site_logo; } add_filter( 'theme_mod_custom_logo', '_override_custom_logo_theme_mod' ); /** * Updates the site_logo option when the custom_logo theme-mod gets updated. * * @since 5.8.0 * * @param mixed $value Attachment ID of the custom logo or an empty value. * @return mixed */ function _sync_custom_logo_to_site_logo( $value ) { if ( empty( $value ) ) { delete_option( 'site_logo' ); } else { update_option( 'site_logo', $value ); } return $value; } add_filter( 'pre_set_theme_mod_custom_logo', '_sync_custom_logo_to_site_logo' ); /** * Deletes the site_logo when the custom_logo theme mod is removed. * * @since 5.8.0 * * @global array $_ignore_site_logo_changes * * @param array $old_value Previous theme mod settings. * @param array $value Updated theme mod settings. */ function _delete_site_logo_on_remove_custom_logo( $old_value, $value ) { global $_ignore_site_logo_changes; if ( $_ignore_site_logo_changes ) { return; } // If the custom_logo is being unset, it's being removed from theme mods. if ( isset( $old_value['custom_logo'] ) && ! isset( $value['custom_logo'] ) ) { delete_option( 'site_logo' ); } } /** * Deletes the site logo when all theme mods are being removed. * * @since 5.8.0 * * @global array $_ignore_site_logo_changes */ function _delete_site_logo_on_remove_theme_mods() { global $_ignore_site_logo_changes; if ( $_ignore_site_logo_changes ) { return; } if ( false !== get_theme_support( 'custom-logo' ) ) { delete_option( 'site_logo' ); } } /** * Hooks `_delete_site_logo_on_remove_custom_logo` in `update_option_theme_mods_$theme`. * Hooks `_delete_site_logo_on_remove_theme_mods` in `delete_option_theme_mods_$theme`. * * Runs on `setup_theme` to account for dynamically-switched themes in the Customizer. * * @since 5.8.0 */ function _delete_site_logo_on_remove_custom_logo_on_setup_theme() { $theme = get_option( 'stylesheet' ); add_action( "update_option_theme_mods_$theme", '_delete_site_logo_on_remove_custom_logo', 10, 2 ); add_action( "delete_option_theme_mods_$theme", '_delete_site_logo_on_remove_theme_mods' ); } add_action( 'setup_theme', '_delete_site_logo_on_remove_custom_logo_on_setup_theme', 11 ); /** * Removes the custom_logo theme-mod when the site_logo option gets deleted. * * @since 5.9.0 * * @global array $_ignore_site_logo_changes */ function _delete_custom_logo_on_remove_site_logo() { global $_ignore_site_logo_changes; // Prevent _delete_site_logo_on_remove_custom_logo and // _delete_site_logo_on_remove_theme_mods from firing and causing an // infinite loop. $_ignore_site_logo_changes = true; // Remove the custom logo. remove_theme_mod( 'custom_logo' ); $_ignore_site_logo_changes = false; } add_action( 'delete_option_site_logo', '_delete_custom_logo_on_remove_site_logo' ); group/editor.css 0000775 00000004416 00000000000 0007653 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Group: All Alignment Settings */ .wp-block-group .block-editor-block-list__insertion-point { left: 0; right: 0; } [data-type="core/group"].is-selected .block-list-appender { margin-left: 0; margin-right: 0; } [data-type="core/group"].is-selected .has-background .block-list-appender { margin-top: 18px; margin-bottom: 18px; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child { gap: inherit; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child, .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-default-block-appender__content, .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-inserter { display: inherit; width: 100%; flex-direction: inherit; flex: 1; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child::after { content: ""; display: flex; flex: 1 0 40px; pointer-events: none; min-height: 38px; border: 1px dashed currentColor; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child { pointer-events: none; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-inserter, .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-button-block-appender { pointer-events: all; } group/editor.min.css 0000775 00000002513 00000000000 0010431 0 ustar 00 .wp-block-group .block-editor-block-list__insertion-point{left:0;right:0}[data-type="core/group"].is-selected .block-list-appender{margin-left:0;margin-right:0}[data-type="core/group"].is-selected .has-background .block-list-appender{margin-bottom:18px;margin-top:18px}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child{gap:inherit}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-default-block-appender__content,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{display:inherit;flex:1;flex-direction:inherit;width:100%}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child:after{border:1px dashed;content:"";display:flex;flex:1 0 40px;min-height:38px;pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child{pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-button-block-appender,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{pointer-events:all} group/style-rtl.css 0000775 00000000205 00000000000 0010314 0 ustar 00 .wp-block-group { box-sizing: border-box; } :where(.wp-block-group.wp-block-group-is-layout-constrained) { position: relative; } group/theme-rtl.min.css 0000775 00000000076 00000000000 0011046 0 ustar 00 :where(.wp-block-group.has-background){padding:1.25em 2.375em} group/editor-rtl.min.css 0000775 00000002513 00000000000 0011230 0 ustar 00 .wp-block-group .block-editor-block-list__insertion-point{left:0;right:0}[data-type="core/group"].is-selected .block-list-appender{margin-left:0;margin-right:0}[data-type="core/group"].is-selected .has-background .block-list-appender{margin-bottom:18px;margin-top:18px}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child{gap:inherit}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-default-block-appender__content,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{display:inherit;flex:1;flex-direction:inherit;width:100%}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child:after{border:1px dashed;content:"";display:flex;flex:1 0 40px;min-height:38px;pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child{pointer-events:none}.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-button-block-appender,.wp-block-group.is-layout-flex.block-editor-block-list__block>.block-list-appender:only-child .block-editor-inserter{pointer-events:all} group/style.min.css 0000775 00000000165 00000000000 0010304 0 ustar 00 .wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative} group/theme-rtl.css 0000775 00000001521 00000000000 0010260 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ :where(.wp-block-group.has-background) { padding: 1.25em 2.375em; } group/block.json 0000775 00000004137 00000000000 0007640 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/group", "title": "Group", "category": "design", "description": "Gather blocks in a layout container.", "keywords": [ "container", "wrapper", "row", "section" ], "textdomain": "default", "attributes": { "tagName": { "type": "string", "default": "div" }, "templateLock": { "type": [ "string", "boolean" ], "enum": [ "all", "insert", "contentOnly", false ] } }, "supports": { "__experimentalOnEnter": true, "__experimentalOnMerge": true, "__experimentalSettings": true, "align": [ "wide", "full" ], "anchor": true, "ariaLabel": true, "html": false, "background": { "backgroundImage": true, "backgroundSize": true, "gradient": true, "__experimentalDefaultControls": { "backgroundImage": true, "gradient": true } }, "color": { "gradients": true, "heading": true, "button": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "shadow": true, "spacing": { "margin": [ "top", "bottom" ], "padding": true, "blockGap": true, "__experimentalDefaultControls": { "padding": true, "blockGap": true } }, "dimensions": { "minHeight": true, "minWidth": true }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalDefaultControls": { "color": true, "radius": true, "style": true, "width": true } }, "position": { "sticky": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "layout": { "allowSizingOnChildren": true }, "interactivity": { "clientNavigation": true }, "allowedBlocks": true }, "editorStyle": "wp-block-group-editor", "style": "wp-block-group" } group/style-rtl.min.css 0000775 00000000165 00000000000 0011103 0 ustar 00 .wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative} group/style.css 0000775 00000000205 00000000000 0007515 0 ustar 00 .wp-block-group { box-sizing: border-box; } :where(.wp-block-group.wp-block-group-is-layout-constrained) { position: relative; } group/editor-rtl.css 0000775 00000004416 00000000000 0010452 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Group: All Alignment Settings */ .wp-block-group .block-editor-block-list__insertion-point { right: 0; left: 0; } [data-type="core/group"].is-selected .block-list-appender { margin-right: 0; margin-left: 0; } [data-type="core/group"].is-selected .has-background .block-list-appender { margin-top: 18px; margin-bottom: 18px; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child { gap: inherit; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child, .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-default-block-appender__content, .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-inserter { display: inherit; width: 100%; flex-direction: inherit; flex: 1; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child::after { content: ""; display: flex; flex: 1 0 40px; pointer-events: none; min-height: 38px; border: 1px dashed currentColor; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child { pointer-events: none; } .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-inserter, .wp-block-group.is-layout-flex.block-editor-block-list__block > .block-list-appender:only-child .block-editor-button-block-appender { pointer-events: all; } group/theme.css 0000775 00000001521 00000000000 0007461 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ :where(.wp-block-group.has-background) { padding: 1.25em 2.375em; } group/theme.min.css 0000775 00000000076 00000000000 0010247 0 ustar 00 :where(.wp-block-group.has-background){padding:1.25em 2.375em} legacy-widget/block.json 0000775 00000001054 00000000000 0011224 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/legacy-widget", "title": "Legacy Widget", "category": "widgets", "description": "Display a legacy widget.", "textdomain": "default", "attributes": { "id": { "type": "string", "default": null }, "idBase": { "type": "string", "default": null }, "instance": { "type": "object", "default": null } }, "supports": { "html": false, "customClassName": false, "reusable": false }, "editorStyle": "wp-block-legacy-widget-editor" } comments-pagination/editor.css 0000775 00000000635 00000000000 0012472 0 ustar 00 .wp-block[data-align=center] > .wp-block-comments-pagination { justify-content: center; } :where(.editor-styles-wrapper) .wp-block-comments-pagination { max-width: 100%; } .wp-block-comments-pagination > .wp-block-comments-pagination-next, .wp-block-comments-pagination > .wp-block-comments-pagination-previous, .wp-block-comments-pagination > .wp-block-comments-pagination-numbers { font-size: inherit; } comments-pagination/editor.min.css 0000775 00000000572 00000000000 0013254 0 ustar 00 .wp-block[data-align=center]>.wp-block-comments-pagination{justify-content:center}:where(.editor-styles-wrapper) .wp-block-comments-pagination{max-width:100%}.wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{font-size:inherit} comments-pagination/style-rtl.css 0000775 00000001445 00000000000 0013143 0 ustar 00 .wp-block-comments-pagination > .wp-block-comments-pagination-next, .wp-block-comments-pagination > .wp-block-comments-pagination-previous, .wp-block-comments-pagination > .wp-block-comments-pagination-numbers { font-size: inherit; } .wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow { margin-left: 1ch; display: inline-block; } .wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow:not(.is-arrow-chevron) { transform: scaleX(-1);; } .wp-block-comments-pagination .wp-block-comments-pagination-next-arrow { margin-right: 1ch; display: inline-block; } .wp-block-comments-pagination .wp-block-comments-pagination-next-arrow:not(.is-arrow-chevron) { transform: scaleX(-1);; } .wp-block-comments-pagination.aligncenter { justify-content: center; } comments-pagination/editor-rtl.min.css 0000775 00000000572 00000000000 0014053 0 ustar 00 .wp-block[data-align=center]>.wp-block-comments-pagination{justify-content:center}:where(.editor-styles-wrapper) .wp-block-comments-pagination{max-width:100%}.wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{font-size:inherit} comments-pagination/style.min.css 0000775 00000001342 00000000000 0013122 0 ustar 00 .wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{font-size:inherit}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow{display:inline-block;margin-right:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow{display:inline-block;margin-left:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(1)}.wp-block-comments-pagination.aligncenter{justify-content:center} comments-pagination/block.json 0000775 00000003047 00000000000 0012457 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comments-pagination", "title": "Comments Pagination", "category": "theme", "parent": [ "core/comments" ], "allowedBlocks": [ "core/comments-pagination-previous", "core/comments-pagination-numbers", "core/comments-pagination-next" ], "description": "Displays a paginated navigation to next/previous set of comments, when applicable.", "textdomain": "default", "attributes": { "paginationArrow": { "type": "string", "default": "none" } }, "example": { "attributes": { "paginationArrow": "none" } }, "providesContext": { "comments/paginationArrow": "paginationArrow" }, "supports": { "anchor": true, "align": true, "reusable": false, "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "layout": { "allowSwitching": false, "allowInheriting": false, "default": { "type": "flex" } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-comments-pagination-editor", "style": "wp-block-comments-pagination" } comments-pagination/style-rtl.min.css 0000775 00000001344 00000000000 0013723 0 ustar 00 .wp-block-comments-pagination>.wp-block-comments-pagination-next,.wp-block-comments-pagination>.wp-block-comments-pagination-numbers,.wp-block-comments-pagination>.wp-block-comments-pagination-previous{font-size:inherit}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow{display:inline-block;margin-left:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow{display:inline-block;margin-right:1ch}.wp-block-comments-pagination .wp-block-comments-pagination-next-arrow:not(.is-arrow-chevron){transform:scaleX(-1)}.wp-block-comments-pagination.aligncenter{justify-content:center} comments-pagination/style.css 0000775 00000001511 00000000000 0012336 0 ustar 00 .wp-block-comments-pagination > .wp-block-comments-pagination-next, .wp-block-comments-pagination > .wp-block-comments-pagination-previous, .wp-block-comments-pagination > .wp-block-comments-pagination-numbers { font-size: inherit; } .wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow { margin-right: 1ch; display: inline-block; } .wp-block-comments-pagination .wp-block-comments-pagination-previous-arrow:not(.is-arrow-chevron) { transform: scaleX(1) /*rtl:scaleX(-1);*/; } .wp-block-comments-pagination .wp-block-comments-pagination-next-arrow { margin-left: 1ch; display: inline-block; } .wp-block-comments-pagination .wp-block-comments-pagination-next-arrow:not(.is-arrow-chevron) { transform: scaleX(1) /*rtl:scaleX(-1);*/; } .wp-block-comments-pagination.aligncenter { justify-content: center; } comments-pagination/editor-rtl.css 0000775 00000000635 00000000000 0013271 0 ustar 00 .wp-block[data-align=center] > .wp-block-comments-pagination { justify-content: center; } :where(.editor-styles-wrapper) .wp-block-comments-pagination { max-width: 100%; } .wp-block-comments-pagination > .wp-block-comments-pagination-next, .wp-block-comments-pagination > .wp-block-comments-pagination-previous, .wp-block-comments-pagination > .wp-block-comments-pagination-numbers { font-size: inherit; } social-links/editor.css 0000775 00000003351 00000000000 0011104 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-social-links div.block-editor-url-input { display: inline-block; margin-left: 8px; } .wp-social-link:hover { transform: none; } :root :where(.wp-block-social-links) { padding: 0; } .wp-block[data-align=center] > .wp-block-social-links, .wp-block.wp-block-social-links.aligncenter { justify-content: center; } .block-editor-block-preview__content .components-button:disabled { opacity: 1; } .wp-social-link.wp-social-link__is-incomplete { opacity: 0.5; } .wp-block-social-links .is-selected .wp-social-link__is-incomplete, .wp-social-link.wp-social-link__is-incomplete:hover, .wp-social-link.wp-social-link__is-incomplete:focus { opacity: 1; } .wp-block-social-links .block-list-appender { position: static; } .wp-block-social-links .block-list-appender .block-editor-inserter { font-size: inherit; } .wp-block-social-links .block-list-appender .block-editor-button-block-appender { height: 1.5em; width: 1.5em; font-size: inherit; padding: 0; } social-links/editor.min.css 0000775 00000001561 00000000000 0011667 0 ustar 00 .wp-block-social-links div.block-editor-url-input{display:inline-block;margin-left:8px}.wp-social-link:hover{transform:none}:root :where(.wp-block-social-links){padding:0}.wp-block.wp-block-social-links.aligncenter,.wp-block[data-align=center]>.wp-block-social-links{justify-content:center}.block-editor-block-preview__content .components-button:disabled{opacity:1}.wp-social-link.wp-social-link__is-incomplete{opacity:.5}.wp-block-social-links .is-selected .wp-social-link__is-incomplete,.wp-social-link.wp-social-link__is-incomplete:focus,.wp-social-link.wp-social-link__is-incomplete:hover{opacity:1}.wp-block-social-links .block-list-appender{position:static}.wp-block-social-links .block-list-appender .block-editor-inserter{font-size:inherit}.wp-block-social-links .block-list-appender .block-editor-button-block-appender{font-size:inherit;height:1.5em;padding:0;width:1.5em} social-links/style-rtl.css 0000775 00000031267 00000000000 0011564 0 ustar 00 .wp-block-social-links { box-sizing: border-box; padding-right: 0; padding-left: 0; text-indent: 0; margin-right: 0; background: none; } .wp-block-social-links .wp-social-link a, .wp-block-social-links .wp-social-link a:hover { text-decoration: none; border-bottom: 0; box-shadow: none; } .wp-block-social-links .wp-social-link svg { width: 1em; height: 1em; } .wp-block-social-links .wp-social-link span:not(.screen-reader-text) { margin-right: 0.5em; margin-left: 0.5em; font-size: 0.65em; } .wp-block-social-links.has-small-icon-size { font-size: 16px; } .wp-block-social-links, .wp-block-social-links.has-normal-icon-size { font-size: 24px; } .wp-block-social-links.has-large-icon-size { font-size: 36px; } .wp-block-social-links.has-huge-icon-size { font-size: 48px; } .wp-block-social-links.aligncenter { justify-content: center; display: flex; } .wp-block-social-links.alignright { justify-content: flex-end; } .wp-block-social-link { display: block; border-radius: 9999px; } @media not (prefers-reduced-motion) { .wp-block-social-link { transition: transform 0.1s ease; } } .wp-block-social-link { height: auto; } .wp-block-social-link a { align-items: center; display: flex; line-height: 0; } .wp-block-social-link:hover { transform: scale(1.1); } .wp-block-social-links .wp-block-social-link.wp-social-link { display: inline-block; margin: 0; padding: 0; } .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg { color: currentColor; fill: currentColor; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link { background-color: #f0f0f0; color: #444; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-amazon { background-color: #f90; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bandcamp { background-color: #1ea0c3; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-behance { background-color: #0757fe; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bluesky { background-color: #0a7aff; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-codepen { background-color: #1e1f26; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-deviantart { background-color: #02e49b; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-discord { background-color: #5865f2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dribbble { background-color: #e94c89; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dropbox { background-color: #4280ff; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-etsy { background-color: #f45800; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-facebook { background-color: #0866ff; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-fivehundredpx { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-flickr { background-color: #0461dd; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-foursquare { background-color: #e65678; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-github { background-color: #24292d; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-goodreads { background-color: #eceadd; color: #382110; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-google { background-color: #ea4434; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-gravatar { background-color: #1d4fc4; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-instagram { background-color: #f00075; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-lastfm { background-color: #e21b24; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-linkedin { background-color: #0d66c2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-mastodon { background-color: #3288d4; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-medium { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-meetup { background-color: #f6405f; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-patreon { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pinterest { background-color: #e60122; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pocket { background-color: #ef4155; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-reddit { background-color: #ff4500; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-skype { background-color: #0478d7; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-snapchat { background-color: #fefc00; color: #fff; stroke: #000; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-soundcloud { background-color: #ff5600; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-spotify { background-color: #1bd760; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-telegram { background-color: #2aabee; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-threads { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tiktok { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tumblr { background-color: #011835; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitch { background-color: #6440a4; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitter { background-color: #1da1f2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vimeo { background-color: #1eb7ea; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vk { background-color: #4680c2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-wordpress { background-color: #3499cd; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-whatsapp { background-color: #25d366; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-x { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-yelp { background-color: #d32422; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-youtube { background-color: #f00; color: #fff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link { background: none; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link svg { width: 1.25em; height: 1.25em; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-amazon { color: #f90; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bandcamp { color: #1ea0c3; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-behance { color: #0757fe; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bluesky { color: #0a7aff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-codepen { color: #1e1f26; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-deviantart { color: #02e49b; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-discord { color: #5865f2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dribbble { color: #e94c89; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dropbox { color: #4280ff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-etsy { color: #f45800; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-facebook { color: #0866ff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-fivehundredpx { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-flickr { color: #0461dd; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-foursquare { color: #e65678; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-github { color: #24292d; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-goodreads { color: #382110; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-google { color: #ea4434; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-gravatar { color: #1d4fc4; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-instagram { color: #f00075; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-lastfm { color: #e21b24; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-linkedin { color: #0d66c2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-mastodon { color: #3288d4; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-medium { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-meetup { color: #f6405f; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-patreon { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pinterest { color: #e60122; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pocket { color: #ef4155; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-reddit { color: #ff4500; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-skype { color: #0478d7; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-snapchat { color: #fff; stroke: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-soundcloud { color: #ff5600; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-spotify { color: #1bd760; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-telegram { color: #2aabee; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-threads { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tiktok { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tumblr { color: #011835; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitch { color: #6440a4; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitter { color: #1da1f2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vimeo { color: #1eb7ea; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vk { color: #4680c2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-whatsapp { color: #25d366; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-wordpress { color: #3499cd; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-x { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-yelp { color: #d32422; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-youtube { color: #f00; } .wp-block-social-links.is-style-pill-shape .wp-social-link { width: auto; } :root :where(.wp-block-social-links .wp-social-link a) { padding: 0.25em; } :root :where(.wp-block-social-links.is-style-logos-only .wp-social-link a) { padding: 0; } :root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link a) { padding-right: 0.6666666667em; padding-left: 0.6666666667em; } .wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label { color: #000; } social-links/editor-rtl.min.css 0000775 00000001562 00000000000 0012467 0 ustar 00 .wp-block-social-links div.block-editor-url-input{display:inline-block;margin-right:8px}.wp-social-link:hover{transform:none}:root :where(.wp-block-social-links){padding:0}.wp-block.wp-block-social-links.aligncenter,.wp-block[data-align=center]>.wp-block-social-links{justify-content:center}.block-editor-block-preview__content .components-button:disabled{opacity:1}.wp-social-link.wp-social-link__is-incomplete{opacity:.5}.wp-block-social-links .is-selected .wp-social-link__is-incomplete,.wp-social-link.wp-social-link__is-incomplete:focus,.wp-social-link.wp-social-link__is-incomplete:hover{opacity:1}.wp-block-social-links .block-list-appender{position:static}.wp-block-social-links .block-list-appender .block-editor-inserter{font-size:inherit}.wp-block-social-links .block-list-appender .block-editor-button-block-appender{font-size:inherit;height:1.5em;padding:0;width:1.5em} social-links/style.min.css 0000775 00000026762 00000000000 0011553 0 ustar 00 .wp-block-social-links{background:none;box-sizing:border-box;margin-left:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block}@media not (prefers-reduced-motion){.wp-block-social-link{transition:transform .1s ease}}.wp-block-social-link{height:auto}.wp-block-social-link a{align-items:center;display:flex;line-height:0}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link.wp-social-link{display:inline-block;margin:0;padding:0}.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link{background-color:#f0f0f0;color:#444}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-amazon{background-color:#f90;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-behance{background-color:#0757fe;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bluesky{background-color:#0a7aff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-discord{background-color:#5865f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-etsy{background-color:#f45800;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-facebook{background-color:#0866ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-flickr{background-color:#0461dd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-foursquare{background-color:#e65678;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-github{background-color:#24292d;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-google{background-color:#ea4434;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-gravatar{background-color:#1d4fc4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-instagram{background-color:#f00075;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-medium{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-meetup{background-color:#f6405f;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-patreon{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pinterest{background-color:#e60122;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pocket{background-color:#ef4155;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-reddit{background-color:#ff4500;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-skype{background-color:#0478d7;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-snapchat{stroke:#000;background-color:#fefc00;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-spotify{background-color:#1bd760;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-telegram{background-color:#2aabee;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-threads{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tiktok{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tumblr{background-color:#011835;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitch{background-color:#6440a4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vk{background-color:#4680c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-x{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-yelp{background-color:#d32422;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-youtube{background-color:red;color:#fff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link{background:none}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link svg{height:1.25em;width:1.25em}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-amazon{color:#f90}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bandcamp{color:#1ea0c3}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-behance{color:#0757fe}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bluesky{color:#0a7aff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-codepen{color:#1e1f26}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-deviantart{color:#02e49b}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-discord{color:#5865f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dribbble{color:#e94c89}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dropbox{color:#4280ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-etsy{color:#f45800}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-facebook{color:#0866ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-fivehundredpx{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-flickr{color:#0461dd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-foursquare{color:#e65678}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-github{color:#24292d}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-goodreads{color:#382110}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-google{color:#ea4434}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-gravatar{color:#1d4fc4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-instagram{color:#f00075}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-lastfm{color:#e21b24}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-linkedin{color:#0d66c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-mastodon{color:#3288d4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-medium{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-meetup{color:#f6405f}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-patreon{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pinterest{color:#e60122}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pocket{color:#ef4155}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-reddit{color:#ff4500}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-skype{color:#0478d7}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-snapchat{stroke:#000;color:#fff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-soundcloud{color:#ff5600}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-spotify{color:#1bd760}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-telegram{color:#2aabee}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-threads{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tiktok{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tumblr{color:#011835}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitch{color:#6440a4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitter{color:#1da1f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vimeo{color:#1eb7ea}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vk{color:#4680c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-whatsapp{color:#25d366}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-wordpress{color:#3499cd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-x{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-yelp{color:#d32422}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}:root :where(.wp-block-social-links .wp-social-link a){padding:.25em}:root :where(.wp-block-social-links.is-style-logos-only .wp-social-link a){padding:0}:root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link a){padding-left:.6666666667em;padding-right:.6666666667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000} social-links/block.json 0000775 00000004543 00000000000 0011075 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/social-links", "title": "Social Icons", "category": "widgets", "allowedBlocks": [ "core/social-link" ], "description": "Display icons linking to your social profiles or sites.", "keywords": [ "links" ], "textdomain": "default", "attributes": { "iconColor": { "type": "string" }, "customIconColor": { "type": "string" }, "iconColorValue": { "type": "string" }, "iconBackgroundColor": { "type": "string" }, "customIconBackgroundColor": { "type": "string" }, "iconBackgroundColorValue": { "type": "string" }, "openInNewTab": { "type": "boolean", "default": false }, "showLabels": { "type": "boolean", "default": false }, "size": { "type": "string" } }, "providesContext": { "openInNewTab": "openInNewTab", "showLabels": "showLabels", "iconColor": "iconColor", "iconColorValue": "iconColorValue", "iconBackgroundColor": "iconBackgroundColor", "iconBackgroundColorValue": "iconBackgroundColorValue" }, "supports": { "align": [ "left", "center", "right" ], "anchor": true, "html": false, "__experimentalExposeControlsToChildren": true, "layout": { "allowSwitching": false, "allowInheriting": false, "allowVerticalAlignment": false, "default": { "type": "flex" } }, "color": { "enableContrastChecker": false, "background": true, "gradients": true, "text": false, "__experimentalDefaultControls": { "background": false } }, "spacing": { "blockGap": [ "horizontal", "vertical" ], "margin": true, "padding": true, "units": [ "px", "em", "rem", "vh", "vw" ], "__experimentalDefaultControls": { "blockGap": true, "margin": true, "padding": false } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } }, "contentRole": true, "listView": true }, "styles": [ { "name": "default", "label": "Default", "isDefault": true }, { "name": "logos-only", "label": "Logos Only" }, { "name": "pill-shape", "label": "Pill Shape" } ], "editorStyle": "wp-block-social-links-editor", "style": "wp-block-social-links" } social-links/style-rtl.min.css 0000775 00000026763 00000000000 0012353 0 ustar 00 .wp-block-social-links{background:none;box-sizing:border-box;margin-right:0;padding-left:0;padding-right:0;text-indent:0}.wp-block-social-links .wp-social-link a,.wp-block-social-links .wp-social-link a:hover{border-bottom:0;box-shadow:none;text-decoration:none}.wp-block-social-links .wp-social-link svg{height:1em;width:1em}.wp-block-social-links .wp-social-link span:not(.screen-reader-text){font-size:.65em;margin-left:.5em;margin-right:.5em}.wp-block-social-links.has-small-icon-size{font-size:16px}.wp-block-social-links,.wp-block-social-links.has-normal-icon-size{font-size:24px}.wp-block-social-links.has-large-icon-size{font-size:36px}.wp-block-social-links.has-huge-icon-size{font-size:48px}.wp-block-social-links.aligncenter{display:flex;justify-content:center}.wp-block-social-links.alignright{justify-content:flex-end}.wp-block-social-link{border-radius:9999px;display:block}@media not (prefers-reduced-motion){.wp-block-social-link{transition:transform .1s ease}}.wp-block-social-link{height:auto}.wp-block-social-link a{align-items:center;display:flex;line-height:0}.wp-block-social-link:hover{transform:scale(1.1)}.wp-block-social-links .wp-block-social-link.wp-social-link{display:inline-block;margin:0;padding:0}.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover,.wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited{fill:currentColor;color:currentColor}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link{background-color:#f0f0f0;color:#444}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-amazon{background-color:#f90;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bandcamp{background-color:#1ea0c3;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-behance{background-color:#0757fe;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bluesky{background-color:#0a7aff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-codepen{background-color:#1e1f26;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-deviantart{background-color:#02e49b;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-discord{background-color:#5865f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dribbble{background-color:#e94c89;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dropbox{background-color:#4280ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-etsy{background-color:#f45800;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-facebook{background-color:#0866ff;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-fivehundredpx{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-flickr{background-color:#0461dd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-foursquare{background-color:#e65678;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-github{background-color:#24292d;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-goodreads{background-color:#eceadd;color:#382110}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-google{background-color:#ea4434;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-gravatar{background-color:#1d4fc4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-instagram{background-color:#f00075;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-lastfm{background-color:#e21b24;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-linkedin{background-color:#0d66c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-mastodon{background-color:#3288d4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-medium{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-meetup{background-color:#f6405f;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-patreon{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pinterest{background-color:#e60122;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pocket{background-color:#ef4155;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-reddit{background-color:#ff4500;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-skype{background-color:#0478d7;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-snapchat{stroke:#000;background-color:#fefc00;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-soundcloud{background-color:#ff5600;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-spotify{background-color:#1bd760;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-telegram{background-color:#2aabee;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-threads{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tiktok{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tumblr{background-color:#011835;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitch{background-color:#6440a4;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitter{background-color:#1da1f2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vimeo{background-color:#1eb7ea;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vk{background-color:#4680c2;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-wordpress{background-color:#3499cd;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-whatsapp{background-color:#25d366;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-x{background-color:#000;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-yelp{background-color:#d32422;color:#fff}:where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-youtube{background-color:red;color:#fff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link{background:none}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link svg{height:1.25em;width:1.25em}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-amazon{color:#f90}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bandcamp{color:#1ea0c3}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-behance{color:#0757fe}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bluesky{color:#0a7aff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-codepen{color:#1e1f26}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-deviantart{color:#02e49b}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-discord{color:#5865f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dribbble{color:#e94c89}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dropbox{color:#4280ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-etsy{color:#f45800}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-facebook{color:#0866ff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-fivehundredpx{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-flickr{color:#0461dd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-foursquare{color:#e65678}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-github{color:#24292d}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-goodreads{color:#382110}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-google{color:#ea4434}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-gravatar{color:#1d4fc4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-instagram{color:#f00075}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-lastfm{color:#e21b24}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-linkedin{color:#0d66c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-mastodon{color:#3288d4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-medium{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-meetup{color:#f6405f}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-patreon{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pinterest{color:#e60122}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pocket{color:#ef4155}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-reddit{color:#ff4500}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-skype{color:#0478d7}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-snapchat{stroke:#000;color:#fff}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-soundcloud{color:#ff5600}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-spotify{color:#1bd760}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-telegram{color:#2aabee}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-threads{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tiktok{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tumblr{color:#011835}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitch{color:#6440a4}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitter{color:#1da1f2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vimeo{color:#1eb7ea}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vk{color:#4680c2}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-whatsapp{color:#25d366}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-wordpress{color:#3499cd}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-x{color:#000}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-yelp{color:#d32422}:where(.wp-block-social-links.is-style-logos-only) .wp-social-link-youtube{color:red}.wp-block-social-links.is-style-pill-shape .wp-social-link{width:auto}:root :where(.wp-block-social-links .wp-social-link a){padding:.25em}:root :where(.wp-block-social-links.is-style-logos-only .wp-social-link a){padding:0}:root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link a){padding-left:.6666666667em;padding-right:.6666666667em}.wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label{color:#000} social-links/style.css 0000775 00000031266 00000000000 0010764 0 ustar 00 .wp-block-social-links { box-sizing: border-box; padding-left: 0; padding-right: 0; text-indent: 0; margin-left: 0; background: none; } .wp-block-social-links .wp-social-link a, .wp-block-social-links .wp-social-link a:hover { text-decoration: none; border-bottom: 0; box-shadow: none; } .wp-block-social-links .wp-social-link svg { width: 1em; height: 1em; } .wp-block-social-links .wp-social-link span:not(.screen-reader-text) { margin-left: 0.5em; margin-right: 0.5em; font-size: 0.65em; } .wp-block-social-links.has-small-icon-size { font-size: 16px; } .wp-block-social-links, .wp-block-social-links.has-normal-icon-size { font-size: 24px; } .wp-block-social-links.has-large-icon-size { font-size: 36px; } .wp-block-social-links.has-huge-icon-size { font-size: 48px; } .wp-block-social-links.aligncenter { justify-content: center; display: flex; } .wp-block-social-links.alignright { justify-content: flex-end; } .wp-block-social-link { display: block; border-radius: 9999px; } @media not (prefers-reduced-motion) { .wp-block-social-link { transition: transform 0.1s ease; } } .wp-block-social-link { height: auto; } .wp-block-social-link a { align-items: center; display: flex; line-height: 0; } .wp-block-social-link:hover { transform: scale(1.1); } .wp-block-social-links .wp-block-social-link.wp-social-link { display: inline-block; margin: 0; padding: 0; } .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:hover, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:active, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor:visited, .wp-block-social-links .wp-block-social-link.wp-social-link .wp-block-social-link-anchor svg { color: currentColor; fill: currentColor; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link { background-color: #f0f0f0; color: #444; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-amazon { background-color: #f90; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bandcamp { background-color: #1ea0c3; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-behance { background-color: #0757fe; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-bluesky { background-color: #0a7aff; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-codepen { background-color: #1e1f26; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-deviantart { background-color: #02e49b; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-discord { background-color: #5865f2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dribbble { background-color: #e94c89; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-dropbox { background-color: #4280ff; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-etsy { background-color: #f45800; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-facebook { background-color: #0866ff; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-fivehundredpx { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-flickr { background-color: #0461dd; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-foursquare { background-color: #e65678; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-github { background-color: #24292d; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-goodreads { background-color: #eceadd; color: #382110; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-google { background-color: #ea4434; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-gravatar { background-color: #1d4fc4; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-instagram { background-color: #f00075; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-lastfm { background-color: #e21b24; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-linkedin { background-color: #0d66c2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-mastodon { background-color: #3288d4; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-medium { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-meetup { background-color: #f6405f; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-patreon { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pinterest { background-color: #e60122; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-pocket { background-color: #ef4155; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-reddit { background-color: #ff4500; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-skype { background-color: #0478d7; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-snapchat { background-color: #fefc00; color: #fff; stroke: #000; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-soundcloud { background-color: #ff5600; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-spotify { background-color: #1bd760; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-telegram { background-color: #2aabee; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-threads { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tiktok { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-tumblr { background-color: #011835; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitch { background-color: #6440a4; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-twitter { background-color: #1da1f2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vimeo { background-color: #1eb7ea; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-vk { background-color: #4680c2; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-wordpress { background-color: #3499cd; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-whatsapp { background-color: #25d366; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-x { background-color: #000; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-yelp { background-color: #d32422; color: #fff; } :where(.wp-block-social-links:not(.is-style-logos-only)) .wp-social-link-youtube { background-color: #f00; color: #fff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link { background: none; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link svg { width: 1.25em; height: 1.25em; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-amazon { color: #f90; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bandcamp { color: #1ea0c3; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-behance { color: #0757fe; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-bluesky { color: #0a7aff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-codepen { color: #1e1f26; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-deviantart { color: #02e49b; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-discord { color: #5865f2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dribbble { color: #e94c89; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-dropbox { color: #4280ff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-etsy { color: #f45800; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-facebook { color: #0866ff; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-fivehundredpx { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-flickr { color: #0461dd; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-foursquare { color: #e65678; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-github { color: #24292d; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-goodreads { color: #382110; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-google { color: #ea4434; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-gravatar { color: #1d4fc4; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-instagram { color: #f00075; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-lastfm { color: #e21b24; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-linkedin { color: #0d66c2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-mastodon { color: #3288d4; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-medium { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-meetup { color: #f6405f; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-patreon { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pinterest { color: #e60122; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-pocket { color: #ef4155; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-reddit { color: #ff4500; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-skype { color: #0478d7; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-snapchat { color: #fff; stroke: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-soundcloud { color: #ff5600; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-spotify { color: #1bd760; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-telegram { color: #2aabee; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-threads { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tiktok { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-tumblr { color: #011835; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitch { color: #6440a4; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-twitter { color: #1da1f2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vimeo { color: #1eb7ea; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-vk { color: #4680c2; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-whatsapp { color: #25d366; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-wordpress { color: #3499cd; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-x { color: #000; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-yelp { color: #d32422; } :where(.wp-block-social-links.is-style-logos-only) .wp-social-link-youtube { color: #f00; } .wp-block-social-links.is-style-pill-shape .wp-social-link { width: auto; } :root :where(.wp-block-social-links .wp-social-link a) { padding: 0.25em; } :root :where(.wp-block-social-links.is-style-logos-only .wp-social-link a) { padding: 0; } :root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link a) { padding-left: 0.6666666667em; padding-right: 0.6666666667em; } .wp-block-social-links:not(.has-icon-color):not(.has-icon-background-color) .wp-social-link-snapchat .wp-block-social-link-label { color: #000; } social-links/editor-rtl.css 0000775 00000003352 00000000000 0011704 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-social-links div.block-editor-url-input { display: inline-block; margin-right: 8px; } .wp-social-link:hover { transform: none; } :root :where(.wp-block-social-links) { padding: 0; } .wp-block[data-align=center] > .wp-block-social-links, .wp-block.wp-block-social-links.aligncenter { justify-content: center; } .block-editor-block-preview__content .components-button:disabled { opacity: 1; } .wp-social-link.wp-social-link__is-incomplete { opacity: 0.5; } .wp-block-social-links .is-selected .wp-social-link__is-incomplete, .wp-social-link.wp-social-link__is-incomplete:hover, .wp-social-link.wp-social-link__is-incomplete:focus { opacity: 1; } .wp-block-social-links .block-list-appender { position: static; } .wp-block-social-links .block-list-appender .block-editor-inserter { font-size: inherit; } .wp-block-social-links .block-list-appender .block-editor-button-block-appender { height: 1.5em; width: 1.5em; font-size: inherit; padding: 0; } post-comments-link/style-rtl.css 0000775 00000000072 00000000000 0012725 0 ustar 00 .wp-block-post-comments-link { box-sizing: border-box; } post-comments-link/style.min.css 0000775 00000000063 00000000000 0012710 0 ustar 00 .wp-block-post-comments-link{box-sizing:border-box} post-comments-link/block.json 0000775 00000002411 00000000000 0012240 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-comments-link", "title": "Comments Link", "category": "theme", "description": "Displays the link to the current post comments.", "textdomain": "default", "usesContext": [ "postType", "postId" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "html": false, "color": { "link": true, "text": false, "__experimentalDefaultControls": { "background": true, "link": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-post-comments-link" } post-comments-link/style-rtl.min.css 0000775 00000000063 00000000000 0013507 0 ustar 00 .wp-block-post-comments-link{box-sizing:border-box} post-comments-link/style.css 0000775 00000000072 00000000000 0012126 0 ustar 00 .wp-block-post-comments-link { box-sizing: border-box; } heading/style-rtl.css 0000775 00000003670 00000000000 0010570 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ h1:where(.wp-block-heading).has-background, h2:where(.wp-block-heading).has-background, h3:where(.wp-block-heading).has-background, h4:where(.wp-block-heading).has-background, h5:where(.wp-block-heading).has-background, h6:where(.wp-block-heading).has-background { padding: 1.25em 2.375em; } h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]) { rotate: 180deg; } heading/style.min.css 0000775 00000002215 00000000000 0010545 0 ustar 00 h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg} heading/block.json 0000775 00000003370 00000000000 0010101 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/heading", "title": "Heading", "category": "text", "description": "Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.", "keywords": [ "title", "subtitle" ], "textdomain": "default", "attributes": { "content": { "type": "rich-text", "source": "rich-text", "selector": "h1,h2,h3,h4,h5,h6", "role": "content" }, "level": { "type": "number", "default": 2 }, "levelOptions": { "type": "array" }, "placeholder": { "type": "string" } }, "supports": { "align": [ "wide", "full" ], "anchor": true, "className": true, "splitting": true, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalWritingMode": true, "fitText": true, "__experimentalDefaultControls": { "fontSize": true } }, "__unstablePasteTextInline": true, "__experimentalSlashInserter": true, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-heading-editor", "style": "wp-block-heading" } heading/style-rtl.min.css 0000775 00000002215 00000000000 0011344 0 ustar 00 h1:where(.wp-block-heading).has-background,h2:where(.wp-block-heading).has-background,h3:where(.wp-block-heading).has-background,h4:where(.wp-block-heading).has-background,h5:where(.wp-block-heading).has-background,h6:where(.wp-block-heading).has-background{padding:1.25em 2.375em}h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]),h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]),h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]){rotate:180deg} heading/style.css 0000775 00000003670 00000000000 0007771 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ h1:where(.wp-block-heading).has-background, h2:where(.wp-block-heading).has-background, h3:where(.wp-block-heading).has-background, h4:where(.wp-block-heading).has-background, h5:where(.wp-block-heading).has-background, h6:where(.wp-block-heading).has-background { padding: 1.25em 2.375em; } h1.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h1.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h2.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h2.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h3.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h3.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h4.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h4.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h5.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h5.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]), h6.has-text-align-right[style*=writing-mode]:where([style*=vertical-rl]), h6.has-text-align-left[style*=writing-mode]:where([style*=vertical-lr]) { rotate: 180deg; } comment-date/style-rtl.css 0000775 00000000064 00000000000 0011540 0 ustar 00 .wp-block-comment-date { box-sizing: border-box; } comment-date/style.min.css 0000775 00000000055 00000000000 0011523 0 ustar 00 .wp-block-comment-date{box-sizing:border-box} comment-date/block.json 0000775 00000002604 00000000000 0011056 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comment-date", "title": "Comment Date", "category": "theme", "ancestor": [ "core/comment-template" ], "description": "Displays the date on which the comment was posted.", "textdomain": "default", "attributes": { "format": { "type": "string" }, "isLink": { "type": "boolean", "default": true } }, "usesContext": [ "commentId" ], "supports": { "anchor": true, "html": false, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true, "link": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-comment-date" } comment-date/style-rtl.min.css 0000775 00000000055 00000000000 0012322 0 ustar 00 .wp-block-comment-date{box-sizing:border-box} comment-date/style.css 0000775 00000000064 00000000000 0010741 0 ustar 00 .wp-block-comment-date { box-sizing: border-box; } comment-content.php 0000775 00000004633 00000000000 0010343 0 ustar 00 <?php /** * Server-side rendering of the `core/comment-content` block. * * @package WordPress */ /** * Renders the `core/comment-content` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Return the post comment's content. */ function render_block_core_comment_content( $attributes, $content, $block ) { if ( ! isset( $block->context['commentId'] ) ) { return ''; } $comment = get_comment( $block->context['commentId'] ); $commenter = wp_get_current_commenter(); $show_pending_links = isset( $commenter['comment_author'] ) && $commenter['comment_author']; if ( empty( $comment ) ) { return ''; } $args = array(); $comment_text = get_comment_text( $comment, $args ); if ( ! $comment_text ) { return ''; } /** This filter is documented in wp-includes/comment-template.php */ $comment_text = apply_filters( 'comment_text', $comment_text, $comment, $args ); $moderation_note = ''; if ( '0' === $comment->comment_approved ) { $commenter = wp_get_current_commenter(); if ( $commenter['comment_author_email'] ) { $moderation_note = __( 'Your comment is awaiting moderation.' ); } else { $moderation_note = __( 'Your comment is awaiting moderation. This is a preview; your comment will be visible after it has been approved.' ); } $moderation_note = '<p><em class="comment-awaiting-moderation">' . $moderation_note . '</em></p>'; if ( ! $show_pending_links ) { $comment_text = wp_kses( $comment_text, array() ); } } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<div %1$s>%2$s%3$s</div>', $wrapper_attributes, $moderation_note, $comment_text ); } /** * Registers the `core/comment-content` block on the server. * * @since 6.0.0 */ function register_block_core_comment_content() { register_block_type_from_metadata( __DIR__ . '/comment-content', array( 'render_callback' => 'render_block_core_comment_content', ) ); } add_action( 'init', 'register_block_core_comment_content' ); accordion.php 0000775 00000002173 00000000000 0007167 0 ustar 00 <?php /** * Server-side rendering of the `core/accordion` block. * * @package WordPress * @since 6.9.0 * * @param array $attributes The block attributes. * @param string $content The block content. * * @return string Returns the updated markup. */ function render_block_core_accordion( $attributes, $content ) { if ( ! $content ) { return $content; } $p = new WP_HTML_Tag_Processor( $content ); $autoclose = $attributes['autoclose'] ? 'true' : 'false'; if ( $p->next_tag( array( 'class_name' => 'wp-block-accordion' ) ) ) { $p->set_attribute( 'data-wp-interactive', 'core/accordion' ); $p->set_attribute( 'data-wp-context', '{ "autoclose": ' . $autoclose . ', "accordionItems": [] }' ); // Only modify content if directives have been set. $content = $p->get_updated_html(); } return $content; } /** * Registers the `core/accordion` block on server. * * @since 6.9.0 */ function register_block_core_accordion() { register_block_type_from_metadata( __DIR__ . '/accordion', array( 'render_callback' => 'render_block_core_accordion', ) ); } add_action( 'init', 'register_block_core_accordion' ); term-description.php 0000775 00000003352 00000000000 0010516 0 ustar 00 <?php /** * Server-side rendering of the `core/term-description` block. * * @package WordPress */ /** * Renders the `core/term-description` block on the server. * * @since 5.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the description of the current taxonomy term, if available */ function render_block_core_term_description( $attributes, $content, $block ) { $term_description = ''; // Get term from context or from the current query. if ( isset( $block->context['termId'] ) && isset( $block->context['taxonomy'] ) ) { $term = get_term( $block->context['termId'], $block->context['taxonomy'] ); if ( $term && ! is_wp_error( $term ) ) { $term_description = $term->description; } } elseif ( is_category() || is_tag() || is_tax() ) { $term_description = term_description(); } if ( empty( $term_description ) ) { return ''; } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return '<div ' . $wrapper_attributes . '>' . $term_description . '</div>'; } /** * Registers the `core/term-description` block on the server. * * @since 5.9.0 */ function register_block_core_term_description() { register_block_type_from_metadata( __DIR__ . '/term-description', array( 'render_callback' => 'render_block_core_term_description', ) ); } add_action( 'init', 'register_block_core_term_description' ); post-comments-count.php 0000775 00000002373 00000000000 0011166 0 ustar 00 <?php /** * Server-side rendering of the `core/post-comments-count` block. * * @package WordPress */ /** * Renders the `core/post-comments-count` block on the server. * * @since 6.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the filtered post comments count for the current post. */ function render_block_core_post_comments_count( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { return ''; } $classes = ''; if ( isset( $attributes['textAlign'] ) ) { $classes .= 'has-text-align-' . $attributes['textAlign']; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, get_comments_number( $block->context['postId'] ) ); } /** * Registers the `core/post-comments-count` block on the server. * * @since 6.9.0 */ function register_block_core_post_comments_count() { register_block_type_from_metadata( __DIR__ . '/post-comments-count', array( 'render_callback' => 'render_block_core_post_comments_count', ) ); } add_action( 'init', 'register_block_core_post_comments_count' ); cover.php 0000775 00000016354 00000000000 0006352 0 ustar 00 <?php /** * Server-side rendering of the `core/cover` block. * * @package WordPress */ /** * Renders the `core/cover` block on server. * * @since 6.0.0 * * @param array $attributes The block attributes. * @param string $content The block rendered content. * * @return string Returns the cover block markup, if useFeaturedImage is true. */ function render_block_core_cover( $attributes, $content ) { // Handle embed video background. if ( isset( $attributes['backgroundType'] ) && 'embed-video' === $attributes['backgroundType'] && isset( $attributes['url'] ) && ! empty( $attributes['url'] ) && is_string( $attributes['url'] ) ) { $url = $attributes['url']; // Use WordPress's native oEmbed processing (includes caching). $oembed_html = wp_oembed_get( $url ); if ( $oembed_html ) { // Extract iframe src from the oEmbed HTML. preg_match( '/src=["\']([^"\']+)["\']/', $oembed_html, $src_matches ); if ( ! empty( $src_matches[1] ) ) { $iframe_src = $src_matches[1]; // Detect provider from iframe src URL. $lower_src = strtolower( $iframe_src ); $provider = null; if ( str_contains( $lower_src, 'youtube.com' ) || str_contains( $lower_src, 'youtu.be' ) ) { $provider = 'youtube'; } elseif ( str_contains( $lower_src, 'vimeo.com' ) ) { $provider = 'vimeo'; } elseif ( str_contains( $lower_src, 'videopress.com' ) ) { $provider = 'videopress'; } elseif ( str_contains( $lower_src, 'wordpress.tv' ) ) { $provider = 'wordpress-tv'; } // Modify iframe src to add background video parameters based on provider. $parsed_url = wp_parse_url( $iframe_src ); if ( $parsed_url && isset( $parsed_url['host'] ) ) { // Parse existing query parameters. $query_params = array(); if ( isset( $parsed_url['query'] ) ) { parse_str( $parsed_url['query'], $query_params ); } // Add background video parameters based on provider. if ( 'youtube' === $provider ) { $query_params['autoplay'] = '1'; $query_params['mute'] = '1'; $query_params['loop'] = '1'; $query_params['controls'] = '0'; $query_params['modestbranding'] = '1'; $query_params['playsinline'] = '1'; // For loop to work, we need the playlist parameter. $path = $parsed_url['path'] ?? ''; $path_segments = explode( '/', $path ); $video_id = end( $path_segments ); if ( $video_id ) { $query_params['playlist'] = $video_id; } } elseif ( 'vimeo' === $provider ) { $query_params['autoplay'] = '1'; $query_params['muted'] = '1'; $query_params['loop'] = '1'; $query_params['background'] = '1'; $query_params['controls'] = '0'; $query_params['transparent'] = '0'; } elseif ( 'videopress' === $provider || 'wordpress-tv' === $provider ) { $query_params['autoplay'] = '1'; $query_params['loop'] = '1'; $query_params['muted'] = '1'; } // Rebuild the URL with new parameters. $iframe_src = $parsed_url['scheme'] . '://' . $parsed_url['host']; if ( isset( $parsed_url['path'] ) ) { $iframe_src .= $parsed_url['path']; } if ( ! empty( $query_params ) ) { $iframe_src .= '?' . http_build_query( $query_params ); } } // Build the iframe HTML that will replace the figure. $iframe_html = sprintf( '<div class="wp-block-cover__video-background wp-block-cover__embed-background"><iframe src="%s" title="Background video" frameborder="0" allow="autoplay; fullscreen"></iframe></div>', esc_url( $iframe_src ) ); // Use the HTML API to find and replace the figure.wp-block-embed element. $processor = new WP_HTML_Tag_Processor( $content ); if ( $processor->next_tag( array( 'tag_name' => 'FIGURE', 'class_name' => 'wp-block-embed', ) ) ) { // Use regex with PREG_OFFSET_CAPTURE to find the position of the figure element. // This follows the same pattern used for featured image insertion below. $figure_pattern = '/<figure\s+[^>]*\bwp-block-embed\b[^>]*>.*?<\/figure>/is'; if ( 1 === preg_match( $figure_pattern, $content, $matches, PREG_OFFSET_CAPTURE ) ) { $figure_start = $matches[0][1]; $figure_length = strlen( $matches[0][0] ); $figure_end = $figure_start + $figure_length; // Replace the figure element with the iframe HTML. $content = substr( $content, 0, $figure_start ) . $iframe_html . substr( $content, $figure_end ); } } } } return $content; } if ( 'image' !== $attributes['backgroundType'] || false === $attributes['useFeaturedImage'] ) { return $content; } $object_position = isset( $attributes['focalPoint'] ) ? round( $attributes['focalPoint']['x'] * 100 ) . '% ' . round( $attributes['focalPoint']['y'] * 100 ) . '%' : null; if ( ! ( $attributes['hasParallax'] || $attributes['isRepeated'] ) ) { $attr = array( 'class' => 'wp-block-cover__image-background', 'data-object-fit' => 'cover', ); if ( $object_position ) { $attr['data-object-position'] = $object_position; $attr['style'] = 'object-position:' . $object_position . ';'; } $image = get_the_post_thumbnail( null, $attributes['sizeSlug'] ?? 'post-thumbnail', $attr ); } else { if ( in_the_loop() ) { update_post_thumbnail_cache(); } $current_featured_image = get_the_post_thumbnail_url( null, $attributes['sizeSlug'] ?? 'full' ); if ( ! $current_featured_image ) { return $content; } $current_thumbnail_id = get_post_thumbnail_id(); $processor = new WP_HTML_Tag_Processor( '<div></div>' ); $processor->next_tag(); $current_alt = trim( strip_tags( get_post_meta( $current_thumbnail_id, '_wp_attachment_image_alt', true ) ) ); if ( $current_alt ) { $processor->set_attribute( 'role', 'img' ); $processor->set_attribute( 'aria-label', $current_alt ); } $processor->add_class( 'wp-block-cover__image-background' ); $processor->add_class( 'wp-image-' . $current_thumbnail_id ); if ( $attributes['hasParallax'] ) { $processor->add_class( 'has-parallax' ); } if ( $attributes['isRepeated'] ) { $processor->add_class( 'is-repeated' ); } $styles = 'background-position:' . ( $object_position ?? '50% 50%' ) . ';'; $styles .= 'background-image:url(' . esc_url( $current_featured_image ) . ');'; $processor->set_attribute( 'style', $styles ); $image = $processor->get_updated_html(); } /* * Inserts the featured image between the (1st) cover 'background' `span` and 'inner_container' `div`, * and removes eventual whitespace characters between the two (typically introduced at template level) */ $inner_container_start = '/<div\b[^>]+wp-block-cover__inner-container[\s|"][^>]*>/U'; if ( 1 === preg_match( $inner_container_start, $content, $matches, PREG_OFFSET_CAPTURE ) ) { $offset = $matches[0][1]; $content = substr( $content, 0, $offset ) . $image . substr( $content, $offset ); } return $content; } /** * Registers the `core/cover` block renderer on server. * * @since 6.0.0 */ function register_block_core_cover() { register_block_type_from_metadata( __DIR__ . '/cover', array( 'render_callback' => 'render_block_core_cover', ) ); } add_action( 'init', 'register_block_core_cover' ); query-pagination-previous.php 0000775 00000006621 00000000000 0012376 0 ustar 00 <?php /** * Server-side rendering of the `core/query-pagination-previous` block. * * @package WordPress */ /** * Renders the `core/query-pagination-previous` block on the server. * * @since 5.8.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the previous posts link for the query. */ function render_block_core_query_pagination_previous( $attributes, $content, $block ) { $page_key = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page'; $enhanced_pagination = (bool) ( $block->context['enhancedPagination'] ?? false ); $max_page = (int) ( $block->context['query']['pages'] ?? 0 ); $page = empty( $_GET[ $page_key ] ) ? 1 : (int) $_GET[ $page_key ]; $wrapper_attributes = get_block_wrapper_attributes(); $show_label = (bool) ( $block->context['showLabel'] ?? true ); $default_label = __( 'Previous Page' ); $label_text = isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ? esc_html( $attributes['label'] ) : $default_label; $label = $show_label ? $label_text : ''; $pagination_arrow = get_query_pagination_arrow( $block, false ); if ( ! $label ) { $wrapper_attributes .= ' aria-label="' . $label_text . '"'; } if ( $pagination_arrow ) { $label = $pagination_arrow . $label; } $content = ''; // Check if the pagination is for Query that inherits the global context // and handle appropriately. if ( isset( $block->context['query']['inherit'] ) && $block->context['query']['inherit'] ) { $filter_link_attributes = static function () use ( $wrapper_attributes ) { return $wrapper_attributes; }; add_filter( 'previous_posts_link_attributes', $filter_link_attributes ); $content = get_previous_posts_link( $label ); remove_filter( 'previous_posts_link_attributes', $filter_link_attributes ); } else { $block_query = new WP_Query( build_query_vars_from_query_block( $block, $page ) ); $block_max_pages = $block_query->max_num_pages; $total = ! $max_page || $max_page > $block_max_pages ? $block_max_pages : $max_page; wp_reset_postdata(); if ( 1 < $page && $page <= $total ) { $content = sprintf( '<a href="%1$s" %2$s>%3$s</a>', esc_url( add_query_arg( $page_key, $page - 1 ) ), $wrapper_attributes, $label ); } } if ( $enhanced_pagination && isset( $content ) ) { $p = new WP_HTML_Tag_Processor( $content ); if ( $p->next_tag( array( 'tag_name' => 'a', 'class_name' => 'wp-block-query-pagination-previous', ) ) ) { $p->set_attribute( 'data-wp-key', 'query-pagination-previous' ); $p->set_attribute( 'data-wp-on--click', 'core/query::actions.navigate' ); $p->set_attribute( 'data-wp-on--mouseenter', 'core/query::actions.prefetch' ); $p->set_attribute( 'data-wp-watch', 'core/query::callbacks.prefetch' ); $content = $p->get_updated_html(); } } return $content; } /** * Registers the `core/query-pagination-previous` block on the server. * * @since 5.8.0 */ function register_block_core_query_pagination_previous() { register_block_type_from_metadata( __DIR__ . '/query-pagination-previous', array( 'render_callback' => 'render_block_core_query_pagination_previous', ) ); } add_action( 'init', 'register_block_core_query_pagination_previous' ); term-template.php 0000775 00000010646 00000000000 0010012 0 ustar 00 <?php /** * Server-side rendering of the `core/term-template` block. * * @package WordPress */ /** * Renders the `core/term-template` block on the server. * * @since 6.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the output of the term template. */ function render_block_core_term_template( $attributes, $content, $block ) { if ( ! isset( $block->context ) || empty( $block->context['termQuery'] ) ) { return ''; } $query = $block->context['termQuery']; $query_args = array( 'number' => $query['perPage'], 'order' => $query['order'], 'orderby' => $query['orderBy'], 'hide_empty' => $query['hideEmpty'], ); $inherit_query = isset( $query['inherit'] ) && $query['inherit'] && ( is_tax() || is_category() || is_tag() ); if ( $inherit_query ) { // Get the current term and taxonomy from the queried object. $queried_object = get_queried_object(); // For hierarchical taxonomies, show children of the current term. // For non-hierarchical taxonomies, show all terms (don't set parent). if ( is_taxonomy_hierarchical( $queried_object->taxonomy ) ) { // If showNested is true, use child_of to include nested terms. // Otherwise, use parent to show only direct children. if ( ! empty( $query['showNested'] ) ) { $query_args['child_of'] = $queried_object->term_id; } else { $query_args['parent'] = $queried_object->term_id; } } $query_args['taxonomy'] = $queried_object->taxonomy; } else { // If not inheriting set `taxonomy` from the block attribute. $query_args['taxonomy'] = $query['taxonomy']; // If we are including specific terms we ignore `showNested` argument. if ( ! empty( $query['include'] ) ) { $query_args['include'] = array_unique( array_map( 'intval', $query['include'] ) ); $query_args['orderby'] = 'include'; $query_args['order'] = 'asc'; } elseif ( is_taxonomy_hierarchical( $query['taxonomy'] ) && empty( $query['showNested'] ) ) { // We set parent only when inheriting from the taxonomy archive context or not // showing nested terms, otherwise nested terms are not displayed. $query_args['parent'] = 0; } } $terms_query = new WP_Term_Query( $query_args ); $terms = $terms_query->get_terms(); if ( ! $terms || is_wp_error( $terms ) ) { return ''; } $content = ''; foreach ( $terms as $term ) { // Get an instance of the current Term Template block. $block_instance = $block->parsed_block; // Set the block name to one that does not correspond to an existing registered block. // This ensures that for the inner instances of the Term Template block, we do not render any block supports. $block_instance['blockName'] = 'core/null'; $term_id = $term->term_id; $taxonomy = $term->taxonomy; $filter_block_context = static function ( $context ) use ( $term_id, $taxonomy ) { $context['termId'] = $term_id; $context['taxonomy'] = $taxonomy; return $context; }; // Use an early priority to so that other 'render_block_context' filters have access to the values. add_filter( 'render_block_context', $filter_block_context, 1 ); // Render the inner blocks of the Term Template block with `dynamic` set to `false` to prevent calling // `render_callback` and ensure that no wrapper markup is included. $block_content = ( new WP_Block( $block_instance ) )->render( array( 'dynamic' => false ) ); remove_filter( 'render_block_context', $filter_block_context, 1 ); // Wrap the render inner blocks in a `li` element with the appropriate term classes. $term_classes = "wp-block-term term-{$term->term_id} {$term->taxonomy} taxonomy-{$term->taxonomy}"; $content .= '<li class="' . esc_attr( $term_classes ) . '">' . $block_content . '</li>'; } $classnames = ''; if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classnames .= 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => trim( $classnames ) ) ); return sprintf( '<ul %s>%s</ul>', $wrapper_attributes, $content ); } /** * Registers the `core/term-template` block on the server. * * @since 6.9.0 */ function register_block_core_term_template() { register_block_type_from_metadata( __DIR__ . '/term-template', array( 'render_callback' => 'render_block_core_term_template', ) ); } add_action( 'init', 'register_block_core_term_template' ); term-name.php 0000775 00000003766 00000000000 0007124 0 ustar 00 <?php /** * Server-side rendering of the `core/term-name` block. * * @package WordPress */ /** * Renders the `core/term-name` block on the server. * * @since 6.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the name of the current taxonomy term wrapped inside a heading tag. */ function render_block_core_term_name( $attributes, $content, $block ) { $term_name = ''; // Get term from context or from the current query. if ( isset( $block->context['termId'] ) && isset( $block->context['taxonomy'] ) ) { $term = get_term( $block->context['termId'], $block->context['taxonomy'] ); } else { $term = get_queried_object(); if ( ! $term instanceof WP_Term ) { $term = null; } } if ( ! $term || is_wp_error( $term ) ) { return ''; } $term_name = $term->name; $level = $attributes['level'] ?? 0; $tag_name = 0 === $level ? 'p' : 'h' . (int) $level; if ( isset( $attributes['isLink'] ) && $attributes['isLink'] ) { $term_link = get_term_link( $term ); if ( ! is_wp_error( $term_link ) ) { $term_name = sprintf( '<a href="%1$s">%2$s</a>', esc_url( $term_link ), $term_name ); } } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<%1$s %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, $term_name ); } /** * Registers the `core/term-name` block on the server. * * @since 6.9.0 */ function register_block_core_term_name() { register_block_type_from_metadata( __DIR__ . '/term-name', array( 'render_callback' => 'render_block_core_term_name', ) ); } add_action( 'init', 'register_block_core_term_name' ); tab-panels/block.json 0000775 00000001435 00000000000 0010530 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/tab-panels", "title": "Tab Panels", "description": "Container for tab panel content in a tabbed interface.", "category": "design", "textdomain": "default", "parent": [ "core/tabs" ], "allowedBlocks": [ "core/tab-panel" ], "supports": { "html": false, "visibility": false, "lock": false, "color": { "background": true, "text": true, "heading": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "padding": true }, "typography": { "fontSize": true, "__experimentalFontFamily": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true } } } blocks-json.php 0000775 00000633345 00000000000 0007465 0 ustar 00 <?php return array( 'accordion' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/accordion', 'title' => 'Accordion', 'category' => 'design', 'description' => 'Displays a foldable layout that groups content in collapsible sections.', 'example' => array( ), 'supports' => array( 'anchor' => true, 'html' => false, 'align' => array( 'wide', 'full' ), 'background' => array( 'backgroundImage' => true, 'backgroundSize' => true, 'gradient' => true, '__experimentalDefaultControls' => array( 'backgroundImage' => true ) ), 'color' => array( 'background' => true, 'gradients' => true ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'spacing' => array( 'padding' => true, 'margin' => array( 'top', 'bottom' ), 'blockGap' => true ), 'shadow' => true, 'layout' => true, 'ariaLabel' => true, 'interactivity' => true, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'contentRole' => true, 'listView' => true ), 'attributes' => array( 'iconPosition' => array( 'type' => 'string', 'default' => 'right' ), 'showIcon' => array( 'type' => 'boolean', 'default' => true ), 'autoclose' => array( 'type' => 'boolean', 'default' => false ), 'headingLevel' => array( 'type' => 'number', 'default' => 3 ), 'levelOptions' => array( 'type' => 'array' ) ), 'providesContext' => array( 'core/accordion-icon-position' => 'iconPosition', 'core/accordion-show-icon' => 'showIcon', 'core/accordion-heading-level' => 'headingLevel' ), 'allowedBlocks' => array( 'core/accordion-item' ), 'textdomain' => 'default', 'viewScriptModule' => '@wordpress/block-library/accordion/view' ), 'accordion-heading' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/accordion-heading', 'title' => 'Accordion Heading', 'category' => 'design', 'description' => 'Displays a heading that toggles the accordion panel.', 'parent' => array( 'core/accordion-item' ), 'usesContext' => array( 'core/accordion-icon-position', 'core/accordion-show-icon', 'core/accordion-heading-level' ), 'supports' => array( 'anchor' => true, 'color' => array( 'background' => true, 'gradients' => true ), 'align' => false, 'interactivity' => true, 'spacing' => array( 'padding' => true, '__experimentalDefaultControls' => array( 'padding' => true ), '__experimentalSkipSerialization' => true, '__experimentalSelector' => '.wp-block-accordion-heading__toggle' ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'typography' => array( '__experimentalSkipSerialization' => array( 'textDecoration', 'letterSpacing' ), 'fontSize' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true, 'fontFamily' => true ) ), 'shadow' => true, 'visibility' => false, 'lock' => false ), 'selectors' => array( 'typography' => array( 'letterSpacing' => '.wp-block-accordion-heading .wp-block-accordion-heading__toggle-title', 'textDecoration' => '.wp-block-accordion-heading .wp-block-accordion-heading__toggle-title' ) ), 'attributes' => array( 'openByDefault' => array( 'type' => 'boolean', 'default' => false ), 'title' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => '.wp-block-accordion-heading__toggle-title', 'role' => 'content' ), 'level' => array( 'type' => 'number' ), 'iconPosition' => array( 'type' => 'string', 'enum' => array( 'left', 'right' ), 'default' => 'right' ), 'showIcon' => array( 'type' => 'boolean', 'default' => true ) ), 'textdomain' => 'default' ), 'accordion-item' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/accordion-item', 'title' => 'Accordion Item', 'category' => 'design', 'description' => 'Wraps the heading and panel in one unit.', 'parent' => array( 'core/accordion' ), 'allowedBlocks' => array( 'core/accordion-heading', 'core/accordion-panel' ), 'supports' => array( 'html' => false, 'color' => array( 'background' => true, 'gradients' => true ), 'interactivity' => true, 'spacing' => array( 'margin' => array( 'top', 'bottom' ), 'padding' => true, 'blockGap' => true ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'shadow' => true, 'layout' => array( 'allowEditing' => false ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'contentRole' => true ), 'attributes' => array( 'openByDefault' => array( 'type' => 'boolean', 'default' => false ) ), 'providesContext' => array( 'core/accordion-open-by-default' => 'openByDefault' ), 'textdomain' => 'default', 'style' => 'wp-block-accordion-item' ), 'accordion-panel' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/accordion-panel', 'title' => 'Accordion Panel', 'category' => 'design', 'description' => 'Contains the hidden or revealed content beneath the heading.', 'parent' => array( 'core/accordion-item' ), 'usesContext' => array( 'core/accordion-open-by-default' ), 'supports' => array( 'html' => false, 'color' => array( 'background' => true, 'gradients' => true ), 'interactivity' => true, 'spacing' => array( 'padding' => true, 'blockGap' => true, '__experimentalDefaultControls' => array( 'padding' => true, 'blockGap' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'shadow' => true, 'layout' => array( 'allowEditing' => false ), 'visibility' => false, 'contentRole' => true, 'allowedBlocks' => true, 'lock' => false ), 'attributes' => array( 'templateLock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ), 'default' => false ) ), 'textdomain' => 'default', 'style' => 'wp-block-accordion-panel' ), 'archives' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/archives', 'title' => 'Archives', 'category' => 'widgets', 'description' => 'Display a date archive of your posts.', 'textdomain' => 'default', 'attributes' => array( 'displayAsDropdown' => array( 'type' => 'boolean', 'default' => false ), 'showLabel' => array( 'type' => 'boolean', 'default' => true ), 'showPostCounts' => array( 'type' => 'boolean', 'default' => false ), 'type' => array( 'type' => 'string', 'default' => 'monthly' ) ), 'supports' => array( 'anchor' => true, 'align' => true, '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ), 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ) ), 'audio' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/audio', 'title' => 'Audio', 'category' => 'media', 'description' => 'Embed a simple audio player.', 'keywords' => array( 'music', 'sound', 'podcast', 'recording' ), 'textdomain' => 'default', 'attributes' => array( 'blob' => array( 'type' => 'string', 'role' => 'local' ), 'src' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'audio', 'attribute' => 'src', 'role' => 'content' ), 'caption' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'figcaption', 'role' => 'content' ), 'id' => array( 'type' => 'number', 'role' => 'content' ), 'autoplay' => array( 'type' => 'boolean', 'source' => 'attribute', 'selector' => 'audio', 'attribute' => 'autoplay' ), 'loop' => array( 'type' => 'boolean', 'source' => 'attribute', 'selector' => 'audio', 'attribute' => 'loop' ), 'preload' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'audio', 'attribute' => 'preload' ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-audio-editor', 'style' => 'wp-block-audio' ), 'avatar' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/avatar', 'title' => 'Avatar', 'category' => 'theme', 'description' => 'Add a user’s avatar.', 'textdomain' => 'default', 'attributes' => array( 'userId' => array( 'type' => 'number' ), 'size' => array( 'type' => 'number', 'default' => 96 ), 'isLink' => array( 'type' => 'boolean', 'default' => false ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self' ) ), 'usesContext' => array( 'postType', 'postId', 'commentId' ), 'supports' => array( 'anchor' => true, 'html' => false, 'align' => true, 'alignWide' => false, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), '__experimentalBorder' => array( '__experimentalSkipSerialization' => true, 'radius' => true, 'width' => true, 'color' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true ) ), 'color' => array( 'text' => false, 'background' => false ), 'filter' => array( 'duotone' => true ), 'interactivity' => array( 'clientNavigation' => true ) ), 'selectors' => array( 'border' => '.wp-block-avatar img', 'filter' => array( 'duotone' => '.wp-block-avatar img' ) ), 'editorStyle' => 'wp-block-avatar-editor', 'style' => 'wp-block-avatar' ), 'block' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/block', 'title' => 'Pattern', 'category' => 'reusable', 'description' => 'Reuse this design across your site.', 'keywords' => array( 'reusable' ), 'textdomain' => 'default', 'attributes' => array( 'ref' => array( 'type' => 'number' ), 'content' => array( 'type' => 'object', 'default' => array( ) ) ), 'providesContext' => array( 'pattern/overrides' => 'content' ), 'supports' => array( 'customClassName' => false, 'html' => false, 'inserter' => false, 'renaming' => false, 'interactivity' => array( 'clientNavigation' => true ), 'customCSS' => false ) ), 'breadcrumbs' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/breadcrumbs', 'title' => 'Breadcrumbs', 'category' => 'theme', 'description' => 'Display a breadcrumb trail showing the path to the current page.', 'textdomain' => 'default', 'attributes' => array( 'prefersTaxonomy' => array( 'type' => 'boolean', 'default' => false ), 'separator' => array( 'type' => 'string', 'default' => '/' ), 'showHomeItem' => array( 'type' => 'boolean', 'default' => true ), 'showCurrentItem' => array( 'type' => 'boolean', 'default' => true ), 'showOnHomePage' => array( 'type' => 'boolean', 'default' => false ) ), 'usesContext' => array( 'postId', 'postType', 'templateSlug' ), 'supports' => array( 'anchor' => true, 'html' => false, 'align' => array( 'wide', 'full' ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => false, 'color' => true, 'width' => true, 'style' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-breadcrumbs' ), 'button' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/button', 'title' => 'Button', 'category' => 'design', 'parent' => array( 'core/buttons' ), 'description' => 'Prompt visitors to take action with a button-style link.', 'keywords' => array( 'link' ), 'textdomain' => 'default', 'attributes' => array( 'tagName' => array( 'type' => 'string', 'enum' => array( 'a', 'button' ), 'default' => 'a' ), 'type' => array( 'type' => 'string', 'default' => 'button' ), 'url' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'a', 'attribute' => 'href', 'role' => 'content' ), 'title' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'a,button', 'attribute' => 'title', 'role' => 'content' ), 'text' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'a,button', 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'a', 'attribute' => 'target', 'role' => 'content' ), 'rel' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'a', 'attribute' => 'rel', 'role' => 'content' ), 'placeholder' => array( 'type' => 'string' ), 'backgroundColor' => array( 'type' => 'string' ), 'textColor' => array( 'type' => 'string' ), 'gradient' => array( 'type' => 'string' ) ), 'supports' => array( 'anchor' => true, 'splitting' => true, 'align' => false, 'alignWide' => false, 'color' => array( '__experimentalSkipSerialization' => true, 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'dimensions' => array( 'width' => true, '__experimentalSkipSerialization' => array( 'width' ), '__experimentalDefaultControls' => array( 'width' => true ) ), 'typography' => array( '__experimentalSkipSerialization' => array( 'fontSize', 'lineHeight', 'textAlign', 'fontFamily', 'fontWeight', 'fontStyle', 'textTransform', 'textDecoration', 'letterSpacing' ), 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalWritingMode' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'reusable' => false, 'shadow' => array( '__experimentalSkipSerialization' => true ), 'spacing' => array( '__experimentalSkipSerialization' => true, 'padding' => array( 'horizontal', 'vertical' ), '__experimentalDefaultControls' => array( 'padding' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'styles' => array( array( 'name' => 'fill', 'label' => 'Fill', 'isDefault' => true ), array( 'name' => 'outline', 'label' => 'Outline' ) ), 'editorStyle' => 'wp-block-button-editor', 'style' => 'wp-block-button', 'selectors' => array( 'root' => '.wp-block-button .wp-block-button__link', 'typography' => array( 'writingMode' => '.wp-block-button' ), 'dimensions' => array( 'root' => '.wp-block-button', 'width' => '.wp-block-button' ) ) ), 'buttons' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/buttons', 'title' => 'Buttons', 'category' => 'design', 'allowedBlocks' => array( 'core/button' ), 'description' => 'Prompt visitors to take action with a group of button-style links.', 'keywords' => array( 'link' ), 'textdomain' => 'default', 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, '__experimentalExposeControlsToChildren' => true, 'color' => array( 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'spacing' => array( 'blockGap' => array( 'horizontal', 'vertical' ), 'padding' => true, 'margin' => array( 'top', 'bottom' ), '__experimentalDefaultControls' => array( 'blockGap' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'layout' => array( 'allowSwitching' => false, 'allowInheriting' => false, 'default' => array( 'type' => 'flex' ) ), 'interactivity' => array( 'clientNavigation' => true ), 'listView' => true, 'contentRole' => true ), 'editorStyle' => 'wp-block-buttons-editor', 'style' => 'wp-block-buttons' ), 'calendar' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/calendar', 'title' => 'Calendar', 'category' => 'widgets', 'description' => 'A calendar of your site’s posts.', 'keywords' => array( 'posts', 'archive' ), 'textdomain' => 'default', 'attributes' => array( 'month' => array( 'type' => 'integer' ), 'year' => array( 'type' => 'integer' ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'html' => false, 'color' => array( 'link' => true, '__experimentalSkipSerialization' => array( 'text', 'background' ), '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ), '__experimentalSelector' => 'table, th' ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-calendar' ), 'categories' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/categories', 'title' => 'Terms List', 'category' => 'widgets', 'description' => 'Display a list of all terms of a given taxonomy.', 'keywords' => array( 'categories' ), 'textdomain' => 'default', 'attributes' => array( 'taxonomy' => array( 'type' => 'string', 'default' => 'category' ), 'displayAsDropdown' => array( 'type' => 'boolean', 'default' => false ), 'showHierarchy' => array( 'type' => 'boolean', 'default' => false ), 'showPostCounts' => array( 'type' => 'boolean', 'default' => false ), 'showOnlyTopLevel' => array( 'type' => 'boolean', 'default' => false ), 'showEmpty' => array( 'type' => 'boolean', 'default' => false ), 'label' => array( 'type' => 'string', 'role' => 'content' ), 'showLabel' => array( 'type' => 'boolean', 'default' => true ) ), 'usesContext' => array( 'enhancedPagination' ), 'supports' => array( 'anchor' => true, 'align' => true, 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'editorStyle' => 'wp-block-categories-editor', 'style' => 'wp-block-categories' ), 'code' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/code', 'title' => 'Code', 'category' => 'text', 'description' => 'Display code snippets that respect your spacing and tabs.', 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'code', '__unstablePreserveWhiteSpace' => true, 'role' => 'content' ) ), 'supports' => array( 'align' => array( 'wide' ), 'anchor' => true, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'spacing' => array( 'margin' => array( 'top', 'bottom' ), 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'width' => true, 'color' => true ) ), 'color' => array( 'text' => true, 'background' => true, 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-code' ), 'column' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/column', 'title' => 'Column', 'category' => 'design', 'parent' => array( 'core/columns' ), 'description' => 'A single column within a columns block.', 'textdomain' => 'default', 'attributes' => array( 'verticalAlignment' => array( 'type' => 'string' ), 'width' => array( 'type' => 'string' ), 'templateLock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ) ) ), 'supports' => array( '__experimentalOnEnter' => true, 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'heading' => true, 'button' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'shadow' => true, 'spacing' => array( 'blockGap' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'padding' => true, 'blockGap' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'layout' => true, 'interactivity' => array( 'clientNavigation' => true ), 'allowedBlocks' => true ) ), 'columns' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/columns', 'title' => 'Columns', 'category' => 'design', 'allowedBlocks' => array( 'core/column' ), 'description' => 'Display content in multiple columns, with blocks added to each column.', 'textdomain' => 'default', 'attributes' => array( 'verticalAlignment' => array( 'type' => 'string' ), 'isStackedOnMobile' => array( 'type' => 'boolean', 'default' => true ), 'templateLock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ) ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, 'heading' => true, 'button' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'blockGap' => array( '__experimentalDefault' => '2em', 'sides' => array( 'horizontal', 'vertical' ) ), 'margin' => array( 'top', 'bottom' ), 'padding' => true, '__experimentalDefaultControls' => array( 'padding' => true, 'blockGap' => true ) ), 'layout' => array( 'allowSwitching' => false, 'allowInheriting' => false, 'allowEditing' => false, 'default' => array( 'type' => 'flex', 'flexWrap' => 'nowrap' ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), 'shadow' => true ), 'editorStyle' => 'wp-block-columns-editor', 'style' => 'wp-block-columns' ), 'comment-author-name' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comment-author-name', 'title' => 'Comment Author Name', 'category' => 'theme', 'ancestor' => array( 'core/comment-template' ), 'description' => 'Displays the name of the author of the comment.', 'textdomain' => 'default', 'attributes' => array( 'isLink' => array( 'type' => 'boolean', 'default' => true ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self' ) ), 'usesContext' => array( 'commentId' ), 'supports' => array( 'anchor' => true, 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-comment-author-name' ), 'comment-content' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comment-content', 'title' => 'Comment Content', 'category' => 'theme', 'ancestor' => array( 'core/comment-template' ), 'description' => 'Displays the contents of a comment.', 'textdomain' => 'default', 'usesContext' => array( 'commentId' ), 'supports' => array( 'anchor' => true, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'spacing' => array( 'padding' => array( 'horizontal', 'vertical' ), '__experimentalDefaultControls' => array( 'padding' => true ) ), 'html' => false ), 'style' => 'wp-block-comment-content' ), 'comment-date' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comment-date', 'title' => 'Comment Date', 'category' => 'theme', 'ancestor' => array( 'core/comment-template' ), 'description' => 'Displays the date on which the comment was posted.', 'textdomain' => 'default', 'attributes' => array( 'format' => array( 'type' => 'string' ), 'isLink' => array( 'type' => 'boolean', 'default' => true ) ), 'usesContext' => array( 'commentId' ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-comment-date' ), 'comment-edit-link' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comment-edit-link', 'title' => 'Comment Edit Link', 'category' => 'theme', 'ancestor' => array( 'core/comment-template' ), 'description' => 'Displays a link to edit the comment in the WordPress Dashboard. This link is only visible to users with the edit comment capability.', 'textdomain' => 'default', 'usesContext' => array( 'commentId' ), 'attributes' => array( 'linkTarget' => array( 'type' => 'string', 'default' => '_self' ) ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'link' => true, 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'style' => 'wp-block-comment-edit-link' ), 'comment-reply-link' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comment-reply-link', 'title' => 'Comment Reply Link', 'category' => 'theme', 'ancestor' => array( 'core/comment-template' ), 'description' => 'Displays a link to reply to a comment.', 'textdomain' => 'default', 'usesContext' => array( 'commentId' ), 'supports' => array( 'anchor' => true, 'color' => array( 'gradients' => true, 'link' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ), 'html' => false ), 'style' => 'wp-block-comment-reply-link' ), 'comment-template' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comment-template', 'title' => 'Comment Template', 'category' => 'design', 'parent' => array( 'core/comments' ), 'description' => 'Contains the block elements used to display a comment, like the title, date, author, avatar and more.', 'textdomain' => 'default', 'usesContext' => array( 'postId' ), 'supports' => array( 'anchor' => true, 'align' => true, 'html' => false, 'reusable' => false, 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-comment-template' ), 'comments' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comments', 'title' => 'Comments', 'category' => 'theme', 'description' => 'An advanced block that allows displaying post comments using different visual configurations.', 'textdomain' => 'default', 'attributes' => array( 'tagName' => array( 'type' => 'string', 'default' => 'div' ), 'legacy' => array( 'type' => 'boolean', 'default' => false ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'gradients' => true, 'heading' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'editorStyle' => 'wp-block-comments-editor', 'usesContext' => array( 'postId', 'postType' ) ), 'comments-pagination' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comments-pagination', 'title' => 'Comments Pagination', 'category' => 'theme', 'parent' => array( 'core/comments' ), 'allowedBlocks' => array( 'core/comments-pagination-previous', 'core/comments-pagination-numbers', 'core/comments-pagination-next' ), 'description' => 'Displays a paginated navigation to next/previous set of comments, when applicable.', 'textdomain' => 'default', 'attributes' => array( 'paginationArrow' => array( 'type' => 'string', 'default' => 'none' ) ), 'example' => array( 'attributes' => array( 'paginationArrow' => 'none' ) ), 'providesContext' => array( 'comments/paginationArrow' => 'paginationArrow' ), 'supports' => array( 'anchor' => true, 'align' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'layout' => array( 'allowSwitching' => false, 'allowInheriting' => false, 'default' => array( 'type' => 'flex' ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-comments-pagination-editor', 'style' => 'wp-block-comments-pagination' ), 'comments-pagination-next' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comments-pagination-next', 'title' => 'Comments Next Page', 'category' => 'theme', 'parent' => array( 'core/comments-pagination' ), 'description' => 'Displays the next comment\'s page link.', 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string' ) ), 'usesContext' => array( 'postId', 'comments/paginationArrow' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ) ), 'comments-pagination-numbers' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comments-pagination-numbers', 'title' => 'Comments Page Numbers', 'category' => 'theme', 'parent' => array( 'core/comments-pagination' ), 'description' => 'Displays a list of page numbers for comments pagination.', 'textdomain' => 'default', 'usesContext' => array( 'postId' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'padding' => true ) ) ) ), 'comments-pagination-previous' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comments-pagination-previous', 'title' => 'Comments Previous Page', 'category' => 'theme', 'parent' => array( 'core/comments-pagination' ), 'description' => 'Displays the previous comment\'s page link.', 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string' ) ), 'usesContext' => array( 'postId', 'comments/paginationArrow' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ) ), 'comments-title' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/comments-title', 'title' => 'Comments Title', 'category' => 'theme', 'ancestor' => array( 'core/comments' ), 'description' => 'Displays a title with the number of comments.', 'textdomain' => 'default', 'usesContext' => array( 'postId', 'postType' ), 'attributes' => array( 'showPostTitle' => array( 'type' => 'boolean', 'default' => true ), 'showCommentsCount' => array( 'type' => 'boolean', 'default' => true ), 'level' => array( 'type' => 'number', 'default' => 2 ), 'levelOptions' => array( 'type' => 'array' ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'html' => false, '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ), 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true, '__experimentalFontFamily' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ) ), 'cover' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/cover', 'title' => 'Cover', 'category' => 'media', 'description' => 'Add an image or video with a text overlay.', 'textdomain' => 'default', 'attributes' => array( 'url' => array( 'type' => 'string', 'role' => 'content' ), 'useFeaturedImage' => array( 'type' => 'boolean', 'default' => false ), 'id' => array( 'type' => 'number' ), 'alt' => array( 'type' => 'string', 'default' => '' ), 'hasParallax' => array( 'type' => 'boolean', 'default' => false ), 'isRepeated' => array( 'type' => 'boolean', 'default' => false ), 'dimRatio' => array( 'type' => 'number', 'default' => 100 ), 'overlayColor' => array( 'type' => 'string' ), 'customOverlayColor' => array( 'type' => 'string' ), 'isUserOverlayColor' => array( 'type' => 'boolean' ), 'backgroundType' => array( 'type' => 'string', 'default' => 'image' ), 'focalPoint' => array( 'type' => 'object' ), 'minHeight' => array( 'type' => 'number' ), 'minHeightUnit' => array( 'type' => 'string' ), 'gradient' => array( 'type' => 'string' ), 'customGradient' => array( 'type' => 'string' ), 'contentPosition' => array( 'type' => 'string' ), 'isDark' => array( 'type' => 'boolean', 'default' => true ), 'templateLock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ) ), 'tagName' => array( 'type' => 'string', 'default' => 'div' ), 'sizeSlug' => array( 'type' => 'string' ), 'poster' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'poster' ), 'allowedVideoProviders' => array( 'type' => 'array', 'default' => array( 'youtube', 'vimeo', 'videopress', 'animoto', 'tiktok', 'wordpress-tv' ) ) ), 'usesContext' => array( 'postId', 'postType' ), 'supports' => array( 'anchor' => true, 'align' => true, 'html' => false, 'shadow' => true, 'spacing' => array( 'padding' => true, 'margin' => array( 'top', 'bottom' ), 'blockGap' => true, '__experimentalDefaultControls' => array( 'padding' => true, 'blockGap' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'color' => array( 'heading' => true, 'text' => true, 'background' => false, '__experimentalSkipSerialization' => array( 'gradients' ), 'enableContrastChecker' => false ), 'dimensions' => array( 'aspectRatio' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'layout' => array( 'allowJustification' => false ), 'interactivity' => array( 'clientNavigation' => true ), 'filter' => array( 'duotone' => true ), 'allowedBlocks' => true ), 'selectors' => array( 'filter' => array( 'duotone' => '.wp-block-cover > .wp-block-cover__image-background, .wp-block-cover > .wp-block-cover__video-background' ) ), 'editorStyle' => 'wp-block-cover-editor', 'style' => 'wp-block-cover' ), 'details' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/details', 'title' => 'Details', 'category' => 'text', 'description' => 'Hide and show additional content.', 'keywords' => array( 'summary', 'toggle', 'disclosure' ), 'textdomain' => 'default', 'attributes' => array( 'showContent' => array( 'type' => 'boolean', 'default' => false ), 'summary' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'summary', 'role' => 'content' ), 'name' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'name', 'selector' => '.wp-block-details' ), 'placeholder' => array( 'type' => 'string' ) ), 'supports' => array( '__experimentalOnEnter' => true, 'align' => array( 'wide', 'full' ), 'anchor' => true, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), '__experimentalBorder' => array( 'color' => true, 'width' => true, 'style' => true ), 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true, 'blockGap' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'layout' => array( 'allowEditing' => false ), 'interactivity' => array( 'clientNavigation' => true ), 'allowedBlocks' => true ), 'editorStyle' => 'wp-block-details-editor', 'style' => 'wp-block-details' ), 'embed' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/embed', 'title' => 'Embed', 'category' => 'embed', 'description' => 'Add a block that displays content pulled from other sites, like Twitter or YouTube.', 'textdomain' => 'default', 'attributes' => array( 'url' => array( 'type' => 'string', 'role' => 'content' ), 'caption' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'figcaption', 'role' => 'content' ), 'type' => array( 'type' => 'string', 'role' => 'content' ), 'providerNameSlug' => array( 'type' => 'string', 'role' => 'content' ), 'allowResponsive' => array( 'type' => 'boolean', 'default' => true ), 'responsive' => array( 'type' => 'boolean', 'default' => false, 'role' => 'content' ), 'previewable' => array( 'type' => 'boolean', 'default' => true, 'role' => 'content' ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'spacing' => array( 'margin' => true ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-embed-editor', 'style' => 'wp-block-embed' ), 'file' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/file', 'title' => 'File', 'category' => 'media', 'description' => 'Add a link to a downloadable file.', 'keywords' => array( 'document', 'pdf', 'download' ), 'textdomain' => 'default', 'attributes' => array( 'id' => array( 'type' => 'number' ), 'blob' => array( 'type' => 'string', 'role' => 'local' ), 'href' => array( 'type' => 'string', 'role' => 'content' ), 'fileId' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'a:not([download])', 'attribute' => 'id' ), 'fileName' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'a:not([download])', 'role' => 'content' ), 'textLinkHref' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'a:not([download])', 'attribute' => 'href', 'role' => 'content' ), 'textLinkTarget' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'a:not([download])', 'attribute' => 'target' ), 'showDownloadButton' => array( 'type' => 'boolean', 'default' => true ), 'downloadButtonText' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'a[download]', 'role' => 'content' ), 'displayPreview' => array( 'type' => 'boolean' ), 'previewHeight' => array( 'type' => 'number', 'default' => 600 ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'spacing' => array( 'margin' => true, 'padding' => true ), 'color' => array( 'gradients' => true, 'link' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true, 'link' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'interactivity' => true ), 'editorStyle' => 'wp-block-file-editor', 'style' => 'wp-block-file' ), 'footnotes' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/footnotes', 'title' => 'Footnotes', 'category' => 'text', 'description' => 'Display footnotes added to the page.', 'keywords' => array( 'references' ), 'textdomain' => 'default', 'usesContext' => array( 'postId', 'postType' ), 'supports' => array( 'anchor' => true, '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => false, 'color' => false, 'width' => false, 'style' => false ) ), 'color' => array( 'background' => true, 'link' => true, 'text' => true, '__experimentalDefaultControls' => array( 'link' => true, 'text' => true ) ), 'html' => false, 'multiple' => false, 'reusable' => false, 'inserter' => false, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalTextDecoration' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalWritingMode' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-footnotes' ), 'freeform' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/freeform', 'title' => 'Classic', 'category' => 'text', 'description' => 'Use the classic WordPress editor.', 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'string', 'source' => 'raw' ) ), 'supports' => array( 'className' => false, 'customClassName' => false, 'lock' => false, 'reusable' => false, 'renaming' => false, 'visibility' => false, 'customCSS' => false ), 'editorStyle' => 'wp-block-freeform-editor' ), 'gallery' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/gallery', 'title' => 'Gallery', 'category' => 'media', 'usesContext' => array( 'galleryId', 'postId', 'postType' ), 'allowedBlocks' => array( 'core/image' ), 'description' => 'Display multiple images in a rich gallery.', 'keywords' => array( 'images', 'photos' ), 'textdomain' => 'default', 'attributes' => array( 'images' => array( 'type' => 'array', 'default' => array( ), 'source' => 'query', 'selector' => '.blocks-gallery-item', 'query' => array( 'url' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'src' ), 'fullUrl' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'data-full-url' ), 'link' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'data-link' ), 'alt' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'alt', 'default' => '' ), 'id' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'data-id' ), 'caption' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => '.blocks-gallery-item__caption' ) ) ), 'ids' => array( 'type' => 'array', 'items' => array( 'type' => 'number' ), 'default' => array( ) ), 'dynamicContent' => array( 'type' => 'object' ), 'navigationButtonType' => array( 'type' => 'string', 'default' => 'icon', 'enum' => array( 'icon', 'text', 'both' ) ), 'shortCodeTransforms' => array( 'type' => 'array', 'items' => array( 'type' => 'object' ), 'default' => array( ) ), 'columns' => array( 'type' => 'number', 'minimum' => 1, 'maximum' => 8 ), 'caption' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => '.blocks-gallery-caption', 'role' => 'content' ), 'imageCrop' => array( 'type' => 'boolean', 'default' => true ), 'randomOrder' => array( 'type' => 'boolean', 'default' => false ), 'fixedHeight' => array( 'type' => 'boolean', 'default' => true ), 'linkTarget' => array( 'type' => 'string' ), 'linkTo' => array( 'type' => 'string' ), 'sizeSlug' => array( 'type' => 'string', 'default' => 'large' ), 'allowResize' => array( 'type' => 'boolean', 'default' => false ), 'aspectRatio' => array( 'type' => 'string', 'default' => 'auto' ) ), 'providesContext' => array( 'allowResize' => 'allowResize', 'imageCrop' => 'imageCrop', 'fixedHeight' => 'fixedHeight', 'navigationButtonType' => 'navigationButtonType' ), 'supports' => array( 'anchor' => true, 'align' => true, '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true ) ), 'html' => false, 'units' => array( 'px', 'em', 'rem', 'vh', 'vw' ), 'spacing' => array( 'margin' => true, 'padding' => true, 'blockGap' => array( 'sides' => array( 'horizontal', 'vertical' ), '__experimentalDefault' => 'var( --wp--style--gallery-gap-default, var( --gallery-block--gutter-size, var( --wp--style--block-gap, 0.5em ) ) )' ), '__experimentalDefaultControls' => array( 'blockGap' => true, 'margin' => false, 'padding' => false ) ), 'color' => array( 'text' => false, 'background' => true, 'gradients' => true ), 'layout' => array( 'allowSwitching' => false, 'allowInheriting' => false, 'allowEditing' => false, 'default' => array( 'type' => 'flex' ) ), 'interactivity' => array( 'clientNavigation' => true ), 'listView' => true ), 'editorStyle' => 'wp-block-gallery-editor', 'style' => 'wp-block-gallery' ), 'group' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/group', 'title' => 'Group', 'category' => 'design', 'description' => 'Gather blocks in a layout container.', 'keywords' => array( 'container', 'wrapper', 'row', 'section' ), 'textdomain' => 'default', 'attributes' => array( 'tagName' => array( 'type' => 'string', 'default' => 'div' ), 'templateLock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ) ) ), 'supports' => array( '__experimentalOnEnter' => true, '__experimentalOnMerge' => true, '__experimentalSettings' => true, 'align' => array( 'wide', 'full' ), 'anchor' => true, 'ariaLabel' => true, 'html' => false, 'background' => array( 'backgroundImage' => true, 'backgroundSize' => true, 'gradient' => true, '__experimentalDefaultControls' => array( 'backgroundImage' => true, 'gradient' => true ) ), 'color' => array( 'gradients' => true, 'heading' => true, 'button' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'shadow' => true, 'spacing' => array( 'margin' => array( 'top', 'bottom' ), 'padding' => true, 'blockGap' => true, '__experimentalDefaultControls' => array( 'padding' => true, 'blockGap' => true ) ), 'dimensions' => array( 'minHeight' => true, 'minWidth' => true ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'position' => array( 'sticky' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'layout' => array( 'allowSizingOnChildren' => true ), 'interactivity' => array( 'clientNavigation' => true ), 'allowedBlocks' => true ), 'editorStyle' => 'wp-block-group-editor', 'style' => 'wp-block-group' ), 'heading' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/heading', 'title' => 'Heading', 'category' => 'text', 'description' => 'Introduce new sections and organize content to help visitors (and search engines) understand the structure of your content.', 'keywords' => array( 'title', 'subtitle' ), 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'h1,h2,h3,h4,h5,h6', 'role' => 'content' ), 'level' => array( 'type' => 'number', 'default' => 2 ), 'levelOptions' => array( 'type' => 'array' ), 'placeholder' => array( 'type' => 'string' ) ), 'supports' => array( 'align' => array( 'wide', 'full' ), 'anchor' => true, 'className' => true, 'splitting' => true, '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalWritingMode' => true, 'fitText' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__unstablePasteTextInline' => true, '__experimentalSlashInserter' => true, 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-heading-editor', 'style' => 'wp-block-heading' ), 'home-link' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/home-link', 'category' => 'design', 'parent' => array( 'core/navigation' ), 'title' => 'Home Link', 'description' => 'Create a link that always points to the homepage of the site. Usually not necessary if there is already a site title link present in the header.', 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string', 'role' => 'content' ), 'opensInNewTab' => array( 'type' => 'boolean', 'default' => false ), 'description' => array( 'type' => 'string' ) ), 'usesContext' => array( 'textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'fontSize', 'customFontSize', 'style' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-home-link-editor', 'style' => 'wp-block-home-link' ), 'html' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/html', 'title' => 'Custom HTML', 'category' => 'widgets', 'description' => 'Add custom HTML code and preview it as you edit.', 'keywords' => array( 'embed' ), 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'string', 'role' => 'local' ) ), 'supports' => array( 'customClassName' => false, 'className' => false, 'html' => false, 'interactivity' => array( 'clientNavigation' => true ), 'listView' => true, 'customCSS' => false, 'visibility' => false ), 'editorStyle' => 'wp-block-html-editor' ), 'icon' => array( 'apiVersion' => 3, '$schema' => 'https://schemas.wp.org/trunk/block.json', 'name' => 'core/icon', 'title' => 'Icon', 'category' => 'media', 'description' => 'Insert an SVG icon.', 'keywords' => array( 'icon', 'svg' ), 'textdomain' => 'default', 'attributes' => array( 'icon' => array( 'type' => 'string', 'role' => 'content' ), 'flipHorizontal' => array( 'type' => 'boolean', 'default' => false ), 'flipVertical' => array( 'type' => 'boolean', 'default' => false ), 'rotation' => array( 'type' => 'number', 'default' => 0 ) ), 'supports' => array( 'anchor' => true, 'ariaLabel' => array( '__experimentalSkipSerialization' => true ), 'align' => array( 'left', 'center', 'right' ), 'html' => false, 'color' => array( '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array( 'color' => false, 'radius' => false, 'style' => false, 'width' => false ) ), 'spacing' => array( 'padding' => true, 'margin' => true, '__experimentalSkipSerialization' => array( 'padding' ), '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'dimensions' => array( 'width' => true, '__experimentalSkipSerialization' => array( 'width' ), '__experimentalDefaultControls' => array( 'width' => true ) ) ), 'selectors' => array( 'root' => '.wp-block-icon svg', 'css' => '.wp-block-icon', 'spacing' => array( 'margin' => '.wp-block-icon' ) ), 'style' => 'wp-block-icon', 'editorStyle' => 'wp-block-icon-editor' ), 'image' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/image', 'title' => 'Image', 'category' => 'media', 'usesContext' => array( 'allowResize', 'imageCrop', 'fixedHeight', 'navigationButtonType', 'postId', 'postType', 'queryId', 'galleryId' ), 'description' => 'Insert an image to make a visual statement.', 'keywords' => array( 'img', 'photo', 'picture' ), 'textdomain' => 'default', 'attributes' => array( 'blob' => array( 'type' => 'string', 'role' => 'local' ), 'url' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'src', 'role' => 'content' ), 'alt' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'alt', 'default' => '', 'role' => 'content' ), 'caption' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'figcaption', 'role' => 'content' ), 'lightbox' => array( 'type' => 'object', 'enabled' => array( 'type' => 'boolean' ) ), 'title' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'img', 'attribute' => 'title', 'role' => 'content' ), 'href' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure > a', 'attribute' => 'href', 'role' => 'content' ), 'rel' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure > a', 'attribute' => 'rel' ), 'linkClass' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure > a', 'attribute' => 'class' ), 'id' => array( 'type' => 'number', 'role' => 'content' ), 'width' => array( 'type' => 'string' ), 'height' => array( 'type' => 'string' ), 'aspectRatio' => array( 'type' => 'string' ), 'scale' => array( 'type' => 'string' ), 'focalPoint' => array( 'type' => 'object' ), 'sizeSlug' => array( 'type' => 'string' ), 'linkDestination' => array( 'type' => 'string' ), 'linkTarget' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure > a', 'attribute' => 'target' ), 'isDecorative' => array( 'type' => 'boolean', 'default' => false ) ), 'supports' => array( 'interactivity' => true, 'align' => array( 'left', 'center', 'right', 'wide', 'full' ), 'anchor' => true, 'color' => array( 'text' => false, 'background' => false ), 'filter' => array( 'duotone' => true ), 'spacing' => array( 'margin' => true ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'width' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'width' => true ) ), 'shadow' => array( '__experimentalSkipSerialization' => true ) ), 'selectors' => array( 'dimensions' => '.wp-block-image img, .wp-block-image .components-placeholder', 'border' => '.wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder', 'shadow' => '.wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder', 'filter' => array( 'duotone' => '.wp-block-image img, .wp-block-image .components-placeholder' ) ), 'styles' => array( array( 'name' => 'default', 'label' => 'Default', 'isDefault' => true ), array( 'name' => 'rounded', 'label' => 'Rounded' ) ), 'editorStyle' => 'wp-block-image-editor', 'style' => 'wp-block-image' ), 'latest-comments' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/latest-comments', 'title' => 'Latest Comments', 'category' => 'widgets', 'description' => 'Display a list of your most recent comments.', 'keywords' => array( 'recent comments' ), 'textdomain' => 'default', 'attributes' => array( 'commentsToShow' => array( 'type' => 'number', 'default' => 5, 'minimum' => 1, 'maximum' => 100 ), 'displayAvatar' => array( 'type' => 'boolean', 'default' => true ), 'displayDate' => array( 'type' => 'boolean', 'default' => true ), 'displayContent' => array( 'type' => 'string', 'default' => 'excerpt', 'enum' => array( 'none', 'excerpt', 'full' ) ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-latest-comments' ), 'latest-posts' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/latest-posts', 'title' => 'Latest Posts', 'category' => 'widgets', 'description' => 'Display a list of your most recent posts.', 'keywords' => array( 'recent posts' ), 'textdomain' => 'default', 'attributes' => array( 'categories' => array( 'type' => 'array', 'items' => array( 'type' => 'object' ) ), 'selectedAuthor' => array( 'type' => 'number' ), 'postsToShow' => array( 'type' => 'number', 'default' => 5 ), 'displayPostContent' => array( 'type' => 'boolean', 'default' => false ), 'displayPostContentRadio' => array( 'type' => 'string', 'default' => 'excerpt' ), 'excerptLength' => array( 'type' => 'number', 'default' => 55 ), 'displayAuthor' => array( 'type' => 'boolean', 'default' => false ), 'displayPostDate' => array( 'type' => 'boolean', 'default' => false ), 'order' => array( 'type' => 'string', 'default' => 'desc' ), 'orderBy' => array( 'type' => 'string', 'default' => 'date' ), 'displayFeaturedImage' => array( 'type' => 'boolean', 'default' => false ), 'featuredImageAlign' => array( 'type' => 'string', 'enum' => array( 'left', 'center', 'right' ) ), 'featuredImageSizeSlug' => array( 'type' => 'string', 'default' => 'thumbnail' ), 'featuredImageSizeWidth' => array( 'type' => 'number', 'default' => null ), 'featuredImageSizeHeight' => array( 'type' => 'number', 'default' => null ), 'addLinkToFeaturedImage' => array( 'type' => 'boolean', 'default' => false ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'html' => false, 'layout' => true, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, 'blockGap' => array( '__experimentalDefault' => '1.25em' ), '__experimentalDefaultControls' => array( 'blockGap' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-latest-posts-editor', 'style' => 'wp-block-latest-posts' ), 'legacy-widget' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/legacy-widget', 'title' => 'Legacy Widget', 'category' => 'widgets', 'description' => 'Display a legacy widget.', 'textdomain' => 'default', 'attributes' => array( 'id' => array( 'type' => 'string', 'default' => null ), 'idBase' => array( 'type' => 'string', 'default' => null ), 'instance' => array( 'type' => 'object', 'default' => null ) ), 'supports' => array( 'html' => false, 'customClassName' => false, 'reusable' => false ), 'editorStyle' => 'wp-block-legacy-widget-editor' ), 'list' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/list', 'title' => 'List', 'category' => 'text', 'allowedBlocks' => array( 'core/list-item' ), 'description' => 'An organized collection of items displayed in a specific order.', 'keywords' => array( 'bullet list', 'ordered list', 'numbered list' ), 'textdomain' => 'default', 'attributes' => array( 'ordered' => array( 'type' => 'boolean', 'default' => false, 'role' => 'content' ), 'values' => array( 'type' => 'string', 'source' => 'html', 'selector' => 'ol,ul', 'multiline' => 'li', 'default' => '', 'role' => 'content' ), 'type' => array( 'type' => 'string' ), 'start' => array( 'type' => 'number' ), 'reversed' => array( 'type' => 'boolean' ), 'placeholder' => array( 'type' => 'string' ) ), 'supports' => array( 'anchor' => true, 'html' => false, '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), '__unstablePasteTextInline' => true, '__experimentalOnMerge' => true, '__experimentalSlashInserter' => true, 'interactivity' => array( 'clientNavigation' => true ), 'listView' => true ), 'selectors' => array( 'border' => '.wp-block-list:not(.wp-block-list .wp-block-list)' ), 'editorStyle' => 'wp-block-list-editor', 'style' => 'wp-block-list' ), 'list-item' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/list-item', 'title' => 'List Item', 'category' => 'text', 'parent' => array( 'core/list' ), 'allowedBlocks' => array( 'core/list' ), 'description' => 'An individual item within a list.', 'textdomain' => 'default', 'attributes' => array( 'placeholder' => array( 'type' => 'string' ), 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'li', 'role' => 'content' ) ), 'supports' => array( 'anchor' => true, 'html' => false, 'className' => false, 'splitting' => true, '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ), 'color' => array( 'gradients' => true, 'link' => true, 'background' => true, '__experimentalDefaultControls' => array( 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'selectors' => array( 'root' => '.wp-block-list > li', 'border' => '.wp-block-list:not(.wp-block-list .wp-block-list) > li' ) ), 'loginout' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/loginout', 'title' => 'Login/out', 'category' => 'theme', 'description' => 'Show login & logout links.', 'keywords' => array( 'login', 'logout', 'form' ), 'textdomain' => 'default', 'attributes' => array( 'displayLoginAsForm' => array( 'type' => 'boolean', 'default' => false ), 'redirectToCurrent' => array( 'type' => 'boolean', 'default' => true ) ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'className' => true, 'color' => array( 'background' => true, 'text' => false, 'gradients' => true, 'link' => true ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-loginout' ), 'math' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/math', 'title' => 'Math', 'category' => 'text', 'description' => 'Display mathematical notation using LaTeX.', 'keywords' => array( 'equation', 'formula', 'latex', 'mathematics' ), 'textdomain' => 'default', 'supports' => array( 'anchor' => true, 'html' => false, '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ), 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ) ), 'attributes' => array( 'latex' => array( 'type' => 'string', 'role' => 'content' ), 'mathML' => array( 'type' => 'string', 'source' => 'html', 'selector' => 'math' ) ) ), 'media-text' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/media-text', 'title' => 'Media & Text', 'category' => 'media', 'description' => 'Set media and words side-by-side for a richer layout.', 'keywords' => array( 'image', 'video' ), 'textdomain' => 'default', 'attributes' => array( 'align' => array( 'type' => 'string', 'default' => 'none' ), 'mediaAlt' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure img', 'attribute' => 'alt', 'default' => '', 'role' => 'content' ), 'mediaPosition' => array( 'type' => 'string', 'default' => 'left' ), 'mediaId' => array( 'type' => 'number', 'role' => 'content' ), 'mediaUrl' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure video,figure img', 'attribute' => 'src', 'role' => 'content' ), 'mediaLink' => array( 'type' => 'string' ), 'linkDestination' => array( 'type' => 'string' ), 'linkTarget' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure a', 'attribute' => 'target' ), 'href' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure a', 'attribute' => 'href', 'role' => 'content' ), 'rel' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure a', 'attribute' => 'rel' ), 'linkClass' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'figure a', 'attribute' => 'class' ), 'mediaType' => array( 'type' => 'string', 'role' => 'content' ), 'mediaWidth' => array( 'type' => 'number', 'default' => 50 ), 'mediaSizeSlug' => array( 'type' => 'string' ), 'isStackedOnMobile' => array( 'type' => 'boolean', 'default' => true ), 'verticalAlignment' => array( 'type' => 'string' ), 'imageFill' => array( 'type' => 'boolean' ), 'focalPoint' => array( 'type' => 'object' ), 'useFeaturedImage' => array( 'type' => 'boolean', 'default' => false ) ), 'usesContext' => array( 'postId', 'postType' ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'color' => array( 'gradients' => true, 'heading' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), 'allowedBlocks' => true ), 'editorStyle' => 'wp-block-media-text-editor', 'style' => 'wp-block-media-text' ), 'missing' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/missing', 'title' => 'Unsupported', 'category' => 'text', 'description' => 'Your site doesn’t include support for this block.', 'textdomain' => 'default', 'attributes' => array( 'originalName' => array( 'type' => 'string' ), 'originalUndelimitedContent' => array( 'type' => 'string' ), 'originalContent' => array( 'type' => 'string', 'source' => 'raw' ) ), 'supports' => array( 'className' => false, 'customClassName' => false, 'inserter' => false, 'html' => false, 'lock' => false, 'reusable' => false, 'renaming' => false, 'visibility' => false, 'interactivity' => array( 'clientNavigation' => true ), 'customCSS' => false ) ), 'more' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/more', 'title' => 'More', 'category' => 'design', 'description' => 'Content before this block will be shown in the excerpt on your archives page.', 'keywords' => array( 'read more' ), 'textdomain' => 'default', 'attributes' => array( 'customText' => array( 'type' => 'string', 'default' => '', 'role' => 'content' ), 'noTeaser' => array( 'type' => 'boolean', 'default' => false ) ), 'supports' => array( 'customClassName' => false, 'className' => false, 'html' => false, 'multiple' => false, 'visibility' => false, 'interactivity' => array( 'clientNavigation' => true ), 'customCSS' => false ), 'editorStyle' => 'wp-block-more-editor' ), 'navigation' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/navigation', 'title' => 'Navigation', 'category' => 'theme', 'allowedBlocks' => array( 'core/navigation-link', 'core/search', 'core/social-links', 'core/page-list', 'core/spacer', 'core/home-link', 'core/icon', 'core/site-title', 'core/site-logo', 'core/navigation-submenu', 'core/loginout', 'core/buttons' ), 'description' => 'A collection of blocks that allow visitors to get around your site.', 'keywords' => array( 'menu', 'navigation', 'links' ), 'textdomain' => 'default', 'attributes' => array( 'ref' => array( 'type' => 'number' ), 'textColor' => array( 'type' => 'string' ), 'customTextColor' => array( 'type' => 'string' ), 'rgbTextColor' => array( 'type' => 'string' ), 'backgroundColor' => array( 'type' => 'string' ), 'customBackgroundColor' => array( 'type' => 'string' ), 'rgbBackgroundColor' => array( 'type' => 'string' ), 'showSubmenuIcon' => array( 'type' => 'boolean', 'default' => true ), 'submenuVisibility' => array( 'type' => 'string', 'enum' => array( 'hover', 'click', 'always' ), 'default' => 'hover' ), 'overlayMenu' => array( 'type' => 'string', 'default' => 'mobile' ), 'overlay' => array( 'type' => 'string' ), 'icon' => array( 'type' => 'string', 'default' => 'handle' ), 'hasIcon' => array( 'type' => 'boolean', 'default' => true ), '__unstableLocation' => array( 'type' => 'string' ), 'overlayBackgroundColor' => array( 'type' => 'string' ), 'customOverlayBackgroundColor' => array( 'type' => 'string' ), 'overlayTextColor' => array( 'type' => 'string' ), 'customOverlayTextColor' => array( 'type' => 'string' ), 'maxNestingLevel' => array( 'type' => 'number', 'default' => 5 ), 'templateLock' => array( 'type' => array( 'string', 'boolean' ), 'enum' => array( 'all', 'insert', 'contentOnly', false ) ) ), 'providesContext' => array( 'textColor' => 'textColor', 'customTextColor' => 'customTextColor', 'backgroundColor' => 'backgroundColor', 'customBackgroundColor' => 'customBackgroundColor', 'overlayTextColor' => 'overlayTextColor', 'customOverlayTextColor' => 'customOverlayTextColor', 'overlayBackgroundColor' => 'overlayBackgroundColor', 'customOverlayBackgroundColor' => 'customOverlayBackgroundColor', 'fontSize' => 'fontSize', 'customFontSize' => 'customFontSize', 'showSubmenuIcon' => 'showSubmenuIcon', 'submenuVisibility' => 'submenuVisibility', 'openSubmenusOnClick' => 'openSubmenusOnClick', 'style' => 'style', 'maxNestingLevel' => 'maxNestingLevel' ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'ariaLabel' => true, 'contentRole' => true, 'html' => false, 'inserter' => true, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalTextTransform' => true, '__experimentalFontFamily' => true, '__experimentalLetterSpacing' => true, '__experimentalTextDecoration' => true, '__experimentalSkipSerialization' => array( 'textDecoration' ), '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'spacing' => array( 'blockGap' => true, 'units' => array( 'px', 'em', 'rem', 'vh', 'vw' ), '__experimentalDefaultControls' => array( 'blockGap' => true ) ), 'layout' => array( 'allowSwitching' => false, 'allowInheriting' => false, 'allowVerticalAlignment' => false, 'allowSizingOnChildren' => true, 'default' => array( 'type' => 'flex' ) ), 'interactivity' => true, 'renaming' => false ), 'editorStyle' => 'wp-block-navigation-editor', 'style' => 'wp-block-navigation' ), 'navigation-link' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/navigation-link', 'title' => 'Custom Link', 'category' => 'design', 'parent' => array( 'core/navigation' ), 'allowedBlocks' => array( 'core/navigation-link', 'core/navigation-submenu', 'core/page-list' ), 'description' => 'Add a page, link, or another item to your navigation.', 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string', 'role' => 'content' ), 'type' => array( 'type' => 'string' ), 'description' => array( 'type' => 'string' ), 'rel' => array( 'type' => 'string' ), 'id' => array( 'type' => 'number' ), 'opensInNewTab' => array( 'type' => 'boolean', 'default' => false ), 'url' => array( 'type' => 'string', 'role' => 'content' ), 'title' => array( 'type' => 'string' ), 'kind' => array( 'type' => 'string' ), 'isTopLevelLink' => array( 'type' => 'boolean' ) ), 'usesContext' => array( 'textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'overlayTextColor', 'customOverlayTextColor', 'overlayBackgroundColor', 'customOverlayBackgroundColor', 'fontSize', 'customFontSize', 'showSubmenuIcon', 'maxNestingLevel', 'style' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, '__experimentalSlashInserter' => true, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'renaming' => false, 'interactivity' => array( 'clientNavigation' => true ) ), 'selectors' => array( 'states' => array( '-current' => '.wp-block-navigation .current-menu-item' ) ), 'editorStyle' => 'wp-block-navigation-link-editor', 'style' => 'wp-block-navigation-link' ), 'navigation-overlay-close' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/navigation-overlay-close', 'title' => 'Navigation Overlay Close', 'category' => 'design', 'description' => 'A customizable button to close overlays.', 'keywords' => array( 'close', 'overlay', 'navigation', 'menu' ), 'textdomain' => 'default', 'attributes' => array( 'displayMode' => array( 'type' => 'string', 'enum' => array( 'icon', 'text', 'both' ), 'default' => 'icon' ), 'text' => array( 'type' => 'string' ) ), 'supports' => array( 'color' => array( 'gradients' => false, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'padding' => true, '__experimentalDefaultControls' => array( 'padding' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ) ), 'style' => 'wp-block-navigation-overlay-close' ), 'navigation-submenu' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/navigation-submenu', 'title' => 'Submenu', 'category' => 'design', 'parent' => array( 'core/navigation' ), 'description' => 'Add a submenu to your navigation.', 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string', 'role' => 'content' ), 'type' => array( 'type' => 'string' ), 'description' => array( 'type' => 'string' ), 'rel' => array( 'type' => 'string' ), 'id' => array( 'type' => 'number' ), 'opensInNewTab' => array( 'type' => 'boolean', 'default' => false ), 'url' => array( 'type' => 'string', 'role' => 'content' ), 'title' => array( 'type' => 'string' ), 'kind' => array( 'type' => 'string' ), 'isTopLevelItem' => array( 'type' => 'boolean' ), 'isParentSubmenu' => array( 'type' => 'boolean', 'default' => true ) ), 'providesContext' => array( 'core/isInsideSubmenu' => 'isParentSubmenu' ), 'usesContext' => array( 'textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'overlayTextColor', 'customOverlayTextColor', 'overlayBackgroundColor', 'customOverlayBackgroundColor', 'fontSize', 'customFontSize', 'showSubmenuIcon', 'maxNestingLevel', 'openSubmenusOnClick', 'submenuVisibility', 'style' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-navigation-submenu-editor', 'style' => 'wp-block-navigation-submenu' ), 'nextpage' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/nextpage', 'title' => 'Page Break', 'category' => 'design', 'description' => 'Separate your content into a multi-page experience.', 'keywords' => array( 'next page', 'pagination' ), 'parent' => array( 'core/post-content' ), 'textdomain' => 'default', 'supports' => array( 'customClassName' => false, 'className' => false, 'html' => false, 'visibility' => false, 'interactivity' => array( 'clientNavigation' => true ), 'customCSS' => false ), 'editorStyle' => 'wp-block-nextpage-editor' ), 'page-list' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/page-list', 'title' => 'Page List', 'category' => 'widgets', 'allowedBlocks' => array( 'core/page-list-item' ), 'description' => 'Display a list of all pages.', 'keywords' => array( 'menu', 'navigation' ), 'textdomain' => 'default', 'attributes' => array( 'parentPageID' => array( 'type' => 'integer', 'default' => 0 ) ), 'usesContext' => array( 'textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'overlayTextColor', 'customOverlayTextColor', 'overlayBackgroundColor', 'customOverlayBackgroundColor', 'fontSize', 'customFontSize', 'showSubmenuIcon', 'style', 'openSubmenusOnClick', 'submenuVisibility', 'core/isInsideSubmenu' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), 'color' => array( 'text' => true, 'background' => true, 'link' => true, 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ), 'spacing' => array( 'padding' => true, 'margin' => true, '__experimentalDefaultControls' => array( 'padding' => false, 'margin' => false ) ), 'contentRole' => true ), 'editorStyle' => 'wp-block-page-list-editor', 'style' => 'wp-block-page-list' ), 'page-list-item' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/page-list-item', 'title' => 'Page List Item', 'category' => 'widgets', 'parent' => array( 'core/page-list' ), 'description' => 'Displays a page inside a list of all pages.', 'keywords' => array( 'page', 'menu', 'navigation' ), 'textdomain' => 'default', 'attributes' => array( 'id' => array( 'type' => 'number' ), 'label' => array( 'type' => 'string' ), 'title' => array( 'type' => 'string' ), 'link' => array( 'type' => 'string' ), 'hasChildren' => array( 'type' => 'boolean' ) ), 'usesContext' => array( 'textColor', 'customTextColor', 'backgroundColor', 'customBackgroundColor', 'overlayTextColor', 'customOverlayTextColor', 'overlayBackgroundColor', 'customOverlayBackgroundColor', 'fontSize', 'customFontSize', 'showSubmenuIcon', 'style', 'openSubmenusOnClick', 'submenuVisibility' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'lock' => false, 'inserter' => false, '__experimentalToolbar' => false, 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-page-list-editor', 'style' => 'wp-block-page-list' ), 'paragraph' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/paragraph', 'title' => 'Paragraph', 'category' => 'text', 'description' => 'Start with the basic building block of all narrative.', 'keywords' => array( 'text' ), 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'p', 'role' => 'content' ), 'dropCap' => array( 'type' => 'boolean', 'default' => false ), 'placeholder' => array( 'type' => 'string' ), 'direction' => array( 'type' => 'string', 'enum' => array( 'ltr', 'rtl' ) ) ), 'supports' => array( 'align' => array( 'wide', 'full' ), 'splitting' => true, 'anchor' => true, 'className' => false, '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, 'textColumns' => true, 'textIndent' => true, '__experimentalFontFamily' => true, '__experimentalTextDecoration' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalWritingMode' => true, 'fitText' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalSelector' => 'p', '__unstablePasteTextInline' => true, 'interactivity' => array( 'clientNavigation' => true ) ), 'selectors' => array( 'root' => 'p', 'typography' => array( 'textIndent' => '.wp-block-paragraph + .wp-block-paragraph' ) ), 'editorStyle' => 'wp-block-paragraph-editor', 'style' => 'wp-block-paragraph' ), 'pattern' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/pattern', 'title' => 'Pattern Placeholder', 'category' => 'theme', 'description' => 'Show a block pattern.', 'supports' => array( 'html' => false, 'inserter' => false, 'renaming' => false, 'visibility' => false, 'interactivity' => array( 'clientNavigation' => true ) ), 'textdomain' => 'default', 'attributes' => array( 'slug' => array( 'type' => 'string' ) ) ), 'playlist' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/playlist', 'title' => 'Playlist', 'category' => 'media', 'description' => 'Embed a simple playlist.', 'keywords' => array( 'music', 'sound' ), 'textdomain' => 'default', 'allowedBlocks' => array( 'core/playlist-track' ), 'attributes' => array( 'type' => array( 'type' => 'string', 'default' => 'audio' ), 'order' => array( 'type' => 'string', 'default' => 'asc' ), 'showTracklist' => array( 'type' => 'boolean', 'default' => true ), 'showImages' => array( 'type' => 'boolean', 'default' => true ), 'showPlayButtonArtwork' => array( 'type' => 'boolean', 'default' => false ), 'showArtists' => array( 'type' => 'boolean', 'default' => true ), 'showNumbers' => array( 'type' => 'boolean', 'default' => true ), 'showTrackLength' => array( 'type' => 'boolean', 'default' => true ), 'waveformStyle' => array( 'type' => 'string', 'enum' => array( 'bars', 'mirror', 'line', 'blocks', 'dots', 'seekbar' ), 'default' => 'bars' ), 'waveformColor' => array( 'type' => 'string' ), 'waveformGradient' => array( 'type' => 'string' ), 'waveformBackgroundColor' => array( 'type' => 'string' ), 'waveformBackgroundGradient' => array( 'type' => 'string' ), 'caption' => array( 'type' => 'string' ) ), 'providesContext' => array( 'showArtists' => 'showArtists', 'showImages' => 'showImages' ), 'supports' => array( 'anchor' => true, 'align' => true, '__experimentalExposeControlsToChildren' => true, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), '__experimentalBorder' => array( 'color' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'style' => true, 'width' => true ) ), 'interactivity' => true, 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ) ), 'editorStyle' => 'wp-block-playlist-editor', 'style' => 'wp-block-playlist' ), 'playlist-track' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/playlist-track', 'title' => 'Playlist track', 'category' => 'media', 'parent' => array( 'core/playlist' ), 'description' => 'Playlist track.', 'keywords' => array( 'music', 'sound' ), 'textdomain' => 'default', 'usesContext' => array( 'showArtists', 'showImages' ), 'attributes' => array( 'blob' => array( 'type' => 'string', 'role' => 'local' ), 'id' => array( 'type' => 'number' ), 'src' => array( 'type' => 'string' ), 'type' => array( 'type' => 'string', 'default' => 'audio' ), 'album' => array( 'type' => 'string' ), 'artist' => array( 'type' => 'string' ), 'image' => array( 'type' => 'string' ), 'imageAlt' => array( 'type' => 'string' ), 'length' => array( 'type' => 'string' ), 'title' => array( 'type' => 'string' ) ), 'supports' => array( 'html' => false, 'interactivity' => array( 'clientNavigation' => true ), 'reusable' => false ), 'style' => 'wp-block-playlist-track' ), 'post-author' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-author', 'title' => 'Author (deprecated)', 'category' => 'theme', 'description' => 'This block is deprecated. Please use the Avatar block, the Author Name block, and the Author Biography block instead.', 'textdomain' => 'default', 'attributes' => array( 'textAlign' => array( 'type' => 'string' ), 'avatarSize' => array( 'type' => 'number', 'default' => 48 ), 'showAvatar' => array( 'type' => 'boolean', 'default' => true ), 'showBio' => array( 'type' => 'boolean' ), 'byline' => array( 'type' => 'string' ), 'isLink' => array( 'type' => 'boolean', 'default' => false, 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self', 'role' => 'content' ) ), 'usesContext' => array( 'postType', 'postId', 'queryId' ), 'supports' => array( 'inserter' => false, 'anchor' => true, 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'filter' => array( 'duotone' => true ) ), 'selectors' => array( 'filter' => array( 'duotone' => '.wp-block-post-author .wp-block-post-author__avatar img' ) ), 'editorStyle' => 'wp-block-post-author-editor', 'style' => 'wp-block-post-author' ), 'post-author-biography' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-author-biography', 'title' => 'Author Biography', 'category' => 'theme', 'description' => 'The author biography.', 'textdomain' => 'default', 'usesContext' => array( 'postType', 'postId' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'spacing' => array( 'margin' => true, 'padding' => true ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-post-author-biography' ), 'post-author-name' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-author-name', 'title' => 'Author Name', 'category' => 'theme', 'description' => 'The author name.', 'textdomain' => 'default', 'attributes' => array( 'isLink' => array( 'type' => 'boolean', 'default' => false, 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self', 'role' => 'content' ) ), 'usesContext' => array( 'postType', 'postId' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-post-author-name' ), 'post-comments-count' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-comments-count', 'title' => 'Comments Count', 'category' => 'theme', 'description' => 'Display a post\'s comments count.', 'textdomain' => 'default', 'usesContext' => array( 'postId' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-post-comments-count' ), 'post-comments-form' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-comments-form', 'title' => 'Comments Form', 'category' => 'theme', 'description' => 'Display a post\'s comments form.', 'textdomain' => 'default', 'usesContext' => array( 'postId', 'postType' ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, 'heading' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'editorStyle' => 'wp-block-post-comments-form-editor', 'style' => array( 'wp-block-post-comments-form', 'wp-block-buttons', 'wp-block-button' ), 'example' => array( 'attributes' => array( 'style' => array( 'typography' => array( 'textAlign' => 'center' ) ) ) ) ), 'post-comments-link' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-comments-link', 'title' => 'Comments Link', 'category' => 'theme', 'description' => 'Displays the link to the current post comments.', 'textdomain' => 'default', 'usesContext' => array( 'postType', 'postId' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'link' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-post-comments-link' ), 'post-content' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-content', 'title' => 'Content', 'category' => 'theme', 'description' => 'Displays the contents of a post or page.', 'textdomain' => 'default', 'usesContext' => array( 'postId', 'postType', 'queryId' ), 'attributes' => array( 'tagName' => array( 'type' => 'string', 'default' => 'div' ) ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'layout' => true, 'background' => array( 'backgroundImage' => true, 'backgroundSize' => true, 'gradient' => true, '__experimentalDefaultControls' => array( 'backgroundImage' => true ) ), 'dimensions' => array( 'minHeight' => true ), 'spacing' => array( 'blockGap' => true, 'padding' => true, 'margin' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'color' => array( 'gradients' => true, 'heading' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => false, 'text' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-post-content', 'editorStyle' => 'wp-block-post-content-editor' ), 'post-date' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-date', 'title' => 'Date', 'category' => 'theme', 'description' => 'Display a custom date.', 'textdomain' => 'default', 'attributes' => array( 'datetime' => array( 'type' => 'string', 'role' => 'content' ), 'format' => array( 'type' => 'string' ), 'isLink' => array( 'type' => 'boolean', 'default' => false, 'role' => 'content' ) ), 'usesContext' => array( 'postId', 'postType', 'queryId' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ) ), 'post-excerpt' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-excerpt', 'title' => 'Excerpt', 'category' => 'theme', 'description' => 'Display the excerpt.', 'textdomain' => 'default', 'attributes' => array( 'moreText' => array( 'type' => 'string', 'role' => 'content' ), 'showMoreOnNewLine' => array( 'type' => 'boolean', 'default' => true ), 'excerptLength' => array( 'type' => 'number', 'default' => 55 ) ), 'usesContext' => array( 'postId', 'postType', 'queryId' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, 'textColumns' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'editorStyle' => 'wp-block-post-excerpt-editor', 'style' => 'wp-block-post-excerpt' ), 'post-featured-image' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-featured-image', 'title' => 'Featured Image', 'category' => 'theme', 'description' => 'Display a post\'s featured image.', 'textdomain' => 'default', 'attributes' => array( 'isLink' => array( 'type' => 'boolean', 'default' => false, 'role' => 'content' ), 'aspectRatio' => array( 'type' => 'string' ), 'width' => array( 'type' => 'string' ), 'height' => array( 'type' => 'string' ), 'scale' => array( 'type' => 'string', 'default' => 'cover' ), 'sizeSlug' => array( 'type' => 'string' ), 'rel' => array( 'type' => 'string', 'attribute' => 'rel', 'default' => '', 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self', 'role' => 'content' ), 'overlayColor' => array( 'type' => 'string' ), 'customOverlayColor' => array( 'type' => 'string' ), 'dimRatio' => array( 'type' => 'number', 'default' => 0 ), 'gradient' => array( 'type' => 'string' ), 'customGradient' => array( 'type' => 'string' ), 'useFirstImageFromPost' => array( 'type' => 'boolean', 'default' => false ) ), 'usesContext' => array( 'postId', 'postType', 'queryId' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'align' => array( 'left', 'right', 'center', 'wide', 'full' ), 'color' => array( 'text' => false, 'background' => false ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'width' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'width' => true ) ), 'filter' => array( 'duotone' => true ), 'shadow' => array( '__experimentalSkipSerialization' => true ), 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true ), 'interactivity' => array( 'clientNavigation' => true ) ), 'selectors' => array( 'dimensions' => '.wp-block-post-featured-image img', 'border' => '.wp-block-post-featured-image img, .wp-block-post-featured-image .block-editor-media-placeholder, .wp-block-post-featured-image .wp-block-post-featured-image__overlay', 'shadow' => '.wp-block-post-featured-image img, .wp-block-post-featured-image .components-placeholder', 'filter' => array( 'duotone' => '.wp-block-post-featured-image img, .wp-block-post-featured-image .wp-block-post-featured-image__placeholder, .wp-block-post-featured-image .components-placeholder__illustration, .wp-block-post-featured-image .components-placeholder::before' ) ), 'editorStyle' => 'wp-block-post-featured-image-editor', 'style' => 'wp-block-post-featured-image' ), 'post-navigation-link' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-navigation-link', 'title' => 'Post Navigation Link', 'category' => 'theme', 'description' => 'Displays the next or previous post link that is adjacent to the current post.', 'textdomain' => 'default', 'attributes' => array( 'type' => array( 'type' => 'string', 'default' => 'next' ), 'label' => array( 'type' => 'string', 'role' => 'content' ), 'showTitle' => array( 'type' => 'boolean', 'default' => false ), 'linkLabel' => array( 'type' => 'boolean', 'default' => false ), 'arrow' => array( 'type' => 'string', 'default' => 'none' ), 'taxonomy' => array( 'type' => 'string', 'default' => '' ) ), 'usesContext' => array( 'postType' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'link' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalWritingMode' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-post-navigation-link' ), 'post-template' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-template', 'title' => 'Post Template', 'category' => 'theme', 'ancestor' => array( 'core/query' ), 'description' => 'Contains the block elements used to render a post, like the title, date, featured image, content or excerpt, and more.', 'textdomain' => 'default', 'usesContext' => array( 'queryId', 'query', 'displayLayout', 'templateSlug', 'previewPostType', 'enhancedPagination', 'postType', 'postId' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'align' => array( 'wide', 'full' ), 'layout' => true, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, 'blockGap' => array( '__experimentalDefault' => '1.25em' ), '__experimentalDefaultControls' => array( 'blockGap' => true, 'padding' => false, 'margin' => false ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'style' => 'wp-block-post-template', 'editorStyle' => 'wp-block-post-template-editor' ), 'post-terms' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-terms', 'title' => 'Post Terms', 'category' => 'theme', 'description' => 'Post terms.', 'textdomain' => 'default', 'attributes' => array( 'term' => array( 'type' => 'string' ), 'separator' => array( 'type' => 'string', 'default' => ', ' ), 'prefix' => array( 'type' => 'string', 'default' => '', 'role' => 'content' ), 'suffix' => array( 'type' => 'string', 'default' => '', 'role' => 'content' ) ), 'usesContext' => array( 'postId', 'postType' ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-post-terms' ), 'post-time-to-read' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-time-to-read', 'title' => 'Time to Read', 'category' => 'theme', 'description' => 'Show minutes required to finish reading the post. Can also show a word count.', 'textdomain' => 'default', 'usesContext' => array( 'postId', 'postType' ), 'attributes' => array( 'displayAsRange' => array( 'type' => 'boolean', 'default' => true ), 'displayMode' => array( 'type' => 'string', 'default' => 'time' ), 'averageReadingSpeed' => array( 'type' => 'number', 'default' => 189 ) ), 'supports' => array( 'anchor' => true, 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'post-title' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/post-title', 'title' => 'Title', 'category' => 'theme', 'description' => 'Displays the title of a post, page, or any other content-type.', 'textdomain' => 'default', 'usesContext' => array( 'postId', 'postType', 'queryId' ), 'attributes' => array( 'level' => array( 'type' => 'number', 'default' => 2 ), 'levelOptions' => array( 'type' => 'array' ), 'isLink' => array( 'type' => 'boolean', 'default' => false, 'role' => 'content' ), 'rel' => array( 'type' => 'string', 'attribute' => 'rel', 'default' => '', 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self', 'role' => 'content' ), 'placeholder' => array( 'type' => 'string' ) ), 'example' => array( 'viewportWidth' => 350 ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-post-title' ), 'preformatted' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/preformatted', 'title' => 'Preformatted', 'category' => 'text', 'description' => 'Add text that respects your spacing and tabs, and also allows styling.', 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'pre', '__unstablePreserveWhiteSpace' => true, 'role' => 'content' ) ), 'supports' => array( 'anchor' => true, 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'padding' => true, 'margin' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-preformatted' ), 'pullquote' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/pullquote', 'title' => 'Pullquote', 'category' => 'text', 'description' => 'Give special visual emphasis to a quote from your text.', 'textdomain' => 'default', 'attributes' => array( 'value' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'p', 'role' => 'content' ), 'citation' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'cite', 'role' => 'content' ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'left', 'right', 'wide', 'full' ), 'background' => array( 'backgroundImage' => true, 'backgroundSize' => true, 'gradient' => true, '__experimentalDefaultControls' => array( 'backgroundImage' => true, 'gradient' => true ) ), 'color' => array( 'gradients' => true, 'background' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'dimensions' => array( 'minHeight' => true ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), '__experimentalStyle' => array( 'typography' => array( 'fontSize' => '1.5em', 'lineHeight' => '1.6' ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-pullquote-editor', 'style' => 'wp-block-pullquote' ), 'query' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query', 'title' => 'Query Loop', 'category' => 'theme', 'description' => 'An advanced block that allows displaying post types based on different query parameters and visual configurations.', 'keywords' => array( 'posts', 'list', 'blog', 'blogs', 'custom post types' ), 'textdomain' => 'default', 'attributes' => array( 'queryId' => array( 'type' => 'number' ), 'query' => array( 'type' => 'object', 'default' => array( 'perPage' => null, 'pages' => 0, 'offset' => 0, 'postType' => 'post', 'order' => 'desc', 'orderBy' => 'date', 'author' => '', 'search' => '', 'exclude' => array( ), 'sticky' => '', 'inherit' => true, 'taxQuery' => null, 'parents' => array( ), 'format' => array( ), 'excludeCurrent' => null ) ), 'tagName' => array( 'type' => 'string', 'default' => 'div' ), 'namespace' => array( 'type' => 'string' ), 'enhancedPagination' => array( 'type' => 'boolean', 'default' => false ) ), 'usesContext' => array( 'templateSlug', 'postType' ), 'providesContext' => array( 'queryId' => 'queryId', 'query' => 'query', 'displayLayout' => 'displayLayout', 'enhancedPagination' => 'enhancedPagination' ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'layout' => true, 'interactivity' => true ), 'editorStyle' => 'wp-block-query-editor' ), 'query-no-results' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query-no-results', 'title' => 'No Results', 'category' => 'theme', 'description' => 'Contains the block elements used to render content when no query results are found.', 'ancestor' => array( 'core/query' ), 'textdomain' => 'default', 'usesContext' => array( 'queryId', 'query' ), 'supports' => array( 'anchor' => true, 'align' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'link' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ) ), 'query-pagination' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query-pagination', 'title' => 'Pagination', 'category' => 'theme', 'ancestor' => array( 'core/query' ), 'allowedBlocks' => array( 'core/query-pagination-previous', 'core/query-pagination-numbers', 'core/query-pagination-next' ), 'description' => 'Displays a paginated navigation to next/previous set of posts, when applicable.', 'textdomain' => 'default', 'attributes' => array( 'paginationArrow' => array( 'type' => 'string', 'default' => 'none' ), 'showLabel' => array( 'type' => 'boolean', 'default' => true ) ), 'usesContext' => array( 'queryId', 'query' ), 'providesContext' => array( 'paginationArrow' => 'paginationArrow', 'showLabel' => 'showLabel' ), 'supports' => array( 'anchor' => true, 'align' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'layout' => array( 'allowSwitching' => false, 'allowInheriting' => false, 'default' => array( 'type' => 'flex' ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-query-pagination-editor', 'style' => 'wp-block-query-pagination' ), 'query-pagination-next' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query-pagination-next', 'title' => 'Next Page', 'category' => 'theme', 'parent' => array( 'core/query-pagination' ), 'description' => 'Displays the next posts page link.', 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string' ) ), 'usesContext' => array( 'queryId', 'query', 'paginationArrow', 'showLabel', 'enhancedPagination' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ) ), 'query-pagination-numbers' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query-pagination-numbers', 'title' => 'Page Numbers', 'category' => 'theme', 'parent' => array( 'core/query-pagination' ), 'description' => 'Displays a list of page numbers for pagination.', 'textdomain' => 'default', 'attributes' => array( 'midSize' => array( 'type' => 'number', 'default' => 2 ) ), 'usesContext' => array( 'queryId', 'query', 'enhancedPagination' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-query-pagination-numbers-editor' ), 'query-pagination-previous' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query-pagination-previous', 'title' => 'Previous Page', 'category' => 'theme', 'parent' => array( 'core/query-pagination' ), 'description' => 'Displays the previous posts page link.', 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string' ) ), 'usesContext' => array( 'queryId', 'query', 'paginationArrow', 'showLabel', 'enhancedPagination' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'color' => array( 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ) ), 'query-title' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query-title', 'title' => 'Query Title', 'category' => 'theme', 'description' => 'Display the query title.', 'textdomain' => 'default', 'attributes' => array( 'type' => array( 'type' => 'string' ), 'level' => array( 'type' => 'number', 'default' => 1 ), 'levelOptions' => array( 'type' => 'array' ), 'showPrefix' => array( 'type' => 'boolean', 'default' => true ), 'showSearchTerm' => array( 'type' => 'boolean', 'default' => true ) ), 'example' => array( 'attributes' => array( 'type' => 'search' ) ), 'usesContext' => array( 'query' ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-query-title' ), 'query-total' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/query-total', 'title' => 'Query Total', 'category' => 'theme', 'ancestor' => array( 'core/query' ), 'description' => 'Display the total number of results in a query.', 'textdomain' => 'default', 'attributes' => array( 'displayType' => array( 'type' => 'string', 'default' => 'total-results' ) ), 'usesContext' => array( 'queryId', 'query' ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'spacing' => array( 'margin' => true, 'padding' => true ), 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-query-total' ), 'quote' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/quote', 'title' => 'Quote', 'category' => 'text', 'description' => 'Give quoted text visual emphasis. "In quoting others, we cite ourselves." — Julio Cortázar', 'keywords' => array( 'blockquote', 'cite' ), 'textdomain' => 'default', 'attributes' => array( 'value' => array( 'type' => 'string', 'source' => 'html', 'selector' => 'blockquote', 'multiline' => 'p', 'default' => '', 'role' => 'content' ), 'citation' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'cite', 'role' => 'content' ), 'textAlign' => array( 'type' => 'string' ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'left', 'right', 'wide', 'full' ), 'html' => false, 'background' => array( 'backgroundImage' => true, 'backgroundSize' => true, 'gradient' => true, '__experimentalDefaultControls' => array( 'backgroundImage' => true, 'gradient' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true ) ), 'dimensions' => array( 'minHeight' => true, '__experimentalDefaultControls' => array( 'minHeight' => false ) ), '__experimentalOnEnter' => true, '__experimentalOnMerge' => true, 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'color' => array( 'gradients' => true, 'heading' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'layout' => array( 'allowEditing' => false ), 'spacing' => array( 'blockGap' => true, 'padding' => true, 'margin' => true ), 'interactivity' => array( 'clientNavigation' => true ), 'allowedBlocks' => true ), 'styles' => array( array( 'name' => 'default', 'label' => 'Default', 'isDefault' => true ), array( 'name' => 'plain', 'label' => 'Plain' ) ), 'editorStyle' => 'wp-block-quote-editor', 'style' => 'wp-block-quote' ), 'read-more' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/read-more', 'title' => 'Read More', 'category' => 'theme', 'description' => 'Displays the link of a post, page, or any other content-type.', 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'string', 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self' ) ), 'usesContext' => array( 'postId' ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, 'text' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalLetterSpacing' => true, '__experimentalTextDecoration' => true, '__experimentalDefaultControls' => array( 'fontSize' => true, 'textDecoration' => true ) ), 'spacing' => array( 'margin' => array( 'top', 'bottom' ), 'padding' => true, '__experimentalDefaultControls' => array( 'padding' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'width' => true, '__experimentalDefaultControls' => array( 'width' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-read-more' ), 'rss' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/rss', 'title' => 'RSS', 'category' => 'widgets', 'description' => 'Display entries from any RSS or Atom feed.', 'keywords' => array( 'atom', 'feed' ), 'textdomain' => 'default', 'attributes' => array( 'columns' => array( 'type' => 'number', 'default' => 2 ), 'blockLayout' => array( 'type' => 'string', 'default' => 'list' ), 'feedURL' => array( 'type' => 'string', 'default' => '', 'role' => 'content' ), '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 ), 'openInNewTab' => array( 'type' => 'boolean', 'default' => false ), 'rel' => array( 'type' => 'string' ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'html' => false, 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'padding' => false, 'margin' => false ) ), 'color' => array( 'background' => true, 'text' => true, 'gradients' => true, 'link' => true ) ), 'editorStyle' => 'wp-block-rss-editor', 'style' => 'wp-block-rss' ), 'search' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/search', 'title' => 'Search', 'category' => 'widgets', 'description' => 'Help visitors find your content.', 'keywords' => array( 'find' ), 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string', 'role' => 'content' ), 'showLabel' => array( 'type' => 'boolean', 'default' => true ), 'placeholder' => array( 'type' => 'string', 'default' => '', 'role' => 'content' ), 'width' => array( 'type' => 'number' ), 'widthUnit' => array( 'type' => 'string' ), 'buttonText' => array( 'type' => 'string', 'role' => 'content' ), 'buttonPosition' => array( 'type' => 'string', 'default' => 'button-outside' ), 'buttonUseIcon' => array( 'type' => 'boolean', 'default' => false ), 'query' => array( 'type' => 'object', 'default' => array( ) ), 'tagName' => array( 'type' => 'string', 'default' => '' ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'left', 'center', 'right' ), 'color' => array( 'gradients' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'interactivity' => true, 'typography' => array( '__experimentalSkipSerialization' => true, '__experimentalSelector' => '.wp-block-search__label, .wp-block-search__input, .wp-block-search__button', 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'width' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array( 'color' => true, 'radius' => true, 'width' => true ) ), 'spacing' => array( 'margin' => true ), 'html' => false ), 'editorStyle' => 'wp-block-search-editor', 'style' => 'wp-block-search', 'selectors' => array( 'color' => '.wp-block-search .wp-block-search__button, .wp-block-search.wp-block-search__no-button .wp-block-search__input', 'border' => '.wp-block-search.wp-block-search__button-outside .wp-block-search__input, .wp-block-search.wp-block-search__button-outside .wp-block-search__button, .wp-block-search.wp-block-search__no-button .wp-block-search__input, .wp-block-search.wp-block-search__button-only .wp-block-search__input, .wp-block-search.wp-block-search__button-only .wp-block-search__button, .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper' ) ), 'separator' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/separator', 'title' => 'Separator', 'category' => 'design', 'description' => 'Create a break between ideas or sections with a horizontal separator.', 'keywords' => array( 'horizontal-line', 'hr', 'divider' ), 'textdomain' => 'default', 'attributes' => array( 'opacity' => array( 'type' => 'string', 'default' => 'alpha-channel' ), 'tagName' => array( 'type' => 'string', 'enum' => array( 'hr', 'div' ), 'default' => 'hr' ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'center', 'wide', 'full' ), 'color' => array( 'enableContrastChecker' => false, '__experimentalSkipSerialization' => true, 'gradients' => true, 'background' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => true ) ), 'spacing' => array( 'margin' => array( 'top', 'bottom' ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'styles' => array( array( 'name' => 'default', 'label' => 'Default', 'isDefault' => true ), array( 'name' => 'wide', 'label' => 'Wide Line' ), array( 'name' => 'dots', 'label' => 'Dots' ) ), 'editorStyle' => 'wp-block-separator-editor', 'style' => 'wp-block-separator' ), 'shortcode' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/shortcode', 'title' => 'Shortcode', 'category' => 'widgets', 'description' => 'Insert additional custom elements with a WordPress shortcode.', 'textdomain' => 'default', 'attributes' => array( 'text' => array( 'type' => 'string', 'source' => 'raw', 'role' => 'content' ) ), 'supports' => array( 'className' => false, 'customClassName' => false, 'html' => false, 'customCSS' => false, 'visibility' => false ), 'editorStyle' => 'wp-block-shortcode-editor' ), 'site-logo' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/site-logo', 'title' => 'Site Logo', 'category' => 'theme', 'description' => 'Display an image to represent this site. Update this block and the changes apply everywhere.', 'textdomain' => 'default', 'attributes' => array( 'width' => array( 'type' => 'number' ), 'isLink' => array( 'type' => 'boolean', 'default' => true, 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self', 'role' => 'content' ), 'shouldSyncIcon' => array( 'type' => 'boolean' ) ), 'example' => array( 'viewportWidth' => 500, 'attributes' => array( 'width' => 350, 'className' => 'block-editor-block-types-list__site-logo-example' ) ), 'supports' => array( 'anchor' => true, 'html' => false, 'align' => true, 'alignWide' => false, 'color' => array( 'text' => false, 'background' => false ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'interactivity' => array( 'clientNavigation' => true ), 'filter' => array( 'duotone' => true ) ), 'styles' => array( array( 'name' => 'default', 'label' => 'Default', 'isDefault' => true ), array( 'name' => 'rounded', 'label' => 'Rounded' ) ), 'selectors' => array( 'filter' => array( 'duotone' => '.wp-block-site-logo img, .wp-block-site-logo .components-placeholder__illustration, .wp-block-site-logo .components-placeholder::before' ) ), 'editorStyle' => 'wp-block-site-logo-editor', 'style' => 'wp-block-site-logo' ), 'site-tagline' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/site-tagline', 'title' => 'Site Tagline', 'category' => 'theme', 'description' => 'Describe in a few words what this site is about. This is important for search results, sharing on social media, and gives overall clarity to visitors.', 'keywords' => array( 'description' ), 'textdomain' => 'default', 'attributes' => array( 'level' => array( 'type' => 'number', 'default' => 0 ), 'levelOptions' => array( 'type' => 'array', 'default' => array( 0, 1, 2, 3, 4, 5, 6 ) ) ), 'example' => array( 'viewportWidth' => 350, 'attributes' => array( 'style' => array( 'typography' => array( 'textAlign' => 'center' ) ) ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'contentRole' => true, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalWritingMode' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'editorStyle' => 'wp-block-site-tagline-editor', 'style' => 'wp-block-site-tagline' ), 'site-title' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/site-title', 'title' => 'Site Title', 'category' => 'theme', 'description' => 'Displays the name of this site. Update the block, and the changes apply everywhere it’s used. This will also appear in the browser title bar and in search results.', 'textdomain' => 'default', 'attributes' => array( 'level' => array( 'type' => 'number', 'default' => 1 ), 'levelOptions' => array( 'type' => 'array', 'default' => array( 0, 1, 2, 3, 4, 5, 6 ) ), 'isLink' => array( 'type' => 'boolean', 'default' => true, 'role' => 'content' ), 'linkTarget' => array( 'type' => 'string', 'default' => '_self', 'role' => 'content' ) ), 'example' => array( 'viewportWidth' => 500 ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'padding' => true, 'margin' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalWritingMode' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'editorStyle' => 'wp-block-site-title-editor', 'style' => 'wp-block-site-title' ), 'social-link' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/social-link', 'title' => 'Social Icon', 'category' => 'widgets', 'parent' => array( 'core/social-links' ), 'description' => 'Display an icon linking to a social profile or site.', 'textdomain' => 'default', 'attributes' => array( 'url' => array( 'type' => 'string', 'role' => 'content' ), 'service' => array( 'type' => 'string' ), 'label' => array( 'type' => 'string', 'role' => 'content' ), 'rel' => array( 'type' => 'string' ) ), 'usesContext' => array( 'openInNewTab', 'showLabels', 'iconColor', 'iconColorValue', 'iconBackgroundColor', 'iconBackgroundColorValue' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-social-link-editor' ), 'social-links' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/social-links', 'title' => 'Social Icons', 'category' => 'widgets', 'allowedBlocks' => array( 'core/social-link' ), 'description' => 'Display icons linking to your social profiles or sites.', 'keywords' => array( 'links' ), 'textdomain' => 'default', 'attributes' => array( 'iconColor' => array( 'type' => 'string' ), 'customIconColor' => array( 'type' => 'string' ), 'iconColorValue' => array( 'type' => 'string' ), 'iconBackgroundColor' => array( 'type' => 'string' ), 'customIconBackgroundColor' => array( 'type' => 'string' ), 'iconBackgroundColorValue' => array( 'type' => 'string' ), 'openInNewTab' => array( 'type' => 'boolean', 'default' => false ), 'showLabels' => array( 'type' => 'boolean', 'default' => false ), 'size' => array( 'type' => 'string' ) ), 'providesContext' => array( 'openInNewTab' => 'openInNewTab', 'showLabels' => 'showLabels', 'iconColor' => 'iconColor', 'iconColorValue' => 'iconColorValue', 'iconBackgroundColor' => 'iconBackgroundColor', 'iconBackgroundColorValue' => 'iconBackgroundColorValue' ), 'supports' => array( 'align' => array( 'left', 'center', 'right' ), 'anchor' => true, 'html' => false, '__experimentalExposeControlsToChildren' => true, 'layout' => array( 'allowSwitching' => false, 'allowInheriting' => false, 'allowVerticalAlignment' => false, 'default' => array( 'type' => 'flex' ) ), 'color' => array( 'enableContrastChecker' => false, 'background' => true, 'gradients' => true, 'text' => false, '__experimentalDefaultControls' => array( 'background' => false ) ), 'spacing' => array( 'blockGap' => array( 'horizontal', 'vertical' ), 'margin' => true, 'padding' => true, 'units' => array( 'px', 'em', 'rem', 'vh', 'vw' ), '__experimentalDefaultControls' => array( 'blockGap' => true, 'margin' => true, 'padding' => false ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'contentRole' => true, 'listView' => true ), 'styles' => array( array( 'name' => 'default', 'label' => 'Default', 'isDefault' => true ), array( 'name' => 'logos-only', 'label' => 'Logos Only' ), array( 'name' => 'pill-shape', 'label' => 'Pill Shape' ) ), 'editorStyle' => 'wp-block-social-links-editor', 'style' => 'wp-block-social-links' ), 'spacer' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/spacer', 'title' => 'Spacer', 'category' => 'design', 'description' => 'Add white space between blocks and customize its height.', 'textdomain' => 'default', 'attributes' => array( 'height' => array( 'type' => 'string', 'default' => '100px' ), 'width' => array( 'type' => 'string' ) ), 'usesContext' => array( 'orientation' ), 'supports' => array( 'anchor' => true, 'spacing' => array( 'margin' => array( 'top', 'bottom' ), '__experimentalDefaultControls' => array( 'margin' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-spacer-editor', 'style' => 'wp-block-spacer' ), 'tab-list' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/tab-list', 'title' => 'Tab List', 'description' => 'Display the tab buttons for a tabbed interface.', 'category' => 'design', 'textdomain' => 'default', 'parent' => array( 'core/tabs' ), 'usesContext' => array( 'core/tabs-list' ), 'attributes' => array( 'tabs' => array( 'type' => 'array', 'source' => 'query', 'selector' => 'button', 'query' => array( 'label' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'role' => 'content' ) ), 'default' => array( ) ) ), 'supports' => array( 'html' => false, 'ariaLabel' => true, 'visibility' => false, 'lock' => false, 'color' => array( 'background' => true, 'text' => true, '__experimentalSkipSerialization' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'typography' => array( 'fontSize' => true, '__experimentalFontFamily' => true ), '__experimentalBorder' => array( 'color' => true, 'radius' => true, 'style' => true, 'width' => true, '__experimentalSkipSerialization' => true ), 'layout' => array( 'default' => array( 'type' => 'flex', 'flexWrap' => 'wrap' ), 'allowVerticalAlignment' => false, 'allowOrientation' => false, 'allowWrap' => false ), 'spacing' => array( 'padding' => true, 'blockGap' => true, '__experimentalSkipSerialization' => array( 'padding' ), '__experimentalDefaultControls' => array( 'padding' => true, 'blockGap' => true ) ) ), 'selectors' => array( 'border' => '.wp-block-tab-list button', 'color' => array( 'background' => '.wp-block-tab-list button', 'text' => '.wp-block-tab-list button' ), 'spacing' => array( 'padding' => '.wp-block-tab-list button' ) ), 'style' => 'wp-block-tab-list', 'editorStyle' => 'wp-block-tab-list-editor' ), 'tab-panel' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/tab-panel', 'title' => 'Tab Panel', 'description' => 'Content for a tab in a tabbed interface.', 'category' => 'design', 'textdomain' => 'default', 'attributes' => array( 'label' => array( 'type' => 'string', 'default' => '' ) ), 'parent' => array( 'core/tab-panels' ), 'usesContext' => array( 'core/tabs-id' ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'background' => true, 'text' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'layout' => true, 'spacing' => array( 'blockGap' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, '__experimentalFontFamily' => true, '__experimentalDefaultControls' => array( 'fontSize' => true, '__experimentalFontFamily' => true ) ), 'visibility' => false ), 'providesContext' => array( 'core/tab-label' => 'label' ), 'style' => 'wp-block-tab-panel' ), 'tab-panels' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/tab-panels', 'title' => 'Tab Panels', 'description' => 'Container for tab panel content in a tabbed interface.', 'category' => 'design', 'textdomain' => 'default', 'parent' => array( 'core/tabs' ), 'allowedBlocks' => array( 'core/tab-panel' ), 'supports' => array( 'html' => false, 'visibility' => false, 'lock' => false, 'color' => array( 'background' => true, 'text' => true, 'heading' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'padding' => true ), 'typography' => array( 'fontSize' => true, '__experimentalFontFamily' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ), 'table' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/table', 'title' => 'Table', 'category' => 'text', 'description' => 'Create structured content in rows and columns to display information.', 'textdomain' => 'default', 'attributes' => array( 'hasFixedLayout' => array( 'type' => 'boolean', 'default' => true ), 'caption' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'figcaption', 'role' => 'content' ), 'head' => array( 'type' => 'array', 'default' => array( ), 'source' => 'query', 'selector' => 'thead tr', 'query' => array( 'cells' => array( 'type' => 'array', 'default' => array( ), 'source' => 'query', 'selector' => 'td,th', 'query' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'role' => 'content' ), 'tag' => array( 'type' => 'string', 'default' => 'td', 'source' => 'tag' ), 'scope' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'scope' ), 'align' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'data-align' ), 'colspan' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'colspan' ), 'rowspan' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'rowspan' ) ) ) ) ), 'body' => array( 'type' => 'array', 'default' => array( ), 'source' => 'query', 'selector' => 'tbody tr', 'query' => array( 'cells' => array( 'type' => 'array', 'default' => array( ), 'source' => 'query', 'selector' => 'td,th', 'query' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'role' => 'content' ), 'tag' => array( 'type' => 'string', 'default' => 'td', 'source' => 'tag' ), 'scope' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'scope' ), 'align' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'data-align' ), 'colspan' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'colspan' ), 'rowspan' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'rowspan' ) ) ) ) ), 'foot' => array( 'type' => 'array', 'default' => array( ), 'source' => 'query', 'selector' => 'tfoot tr', 'query' => array( 'cells' => array( 'type' => 'array', 'default' => array( ), 'source' => 'query', 'selector' => 'td,th', 'query' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'role' => 'content' ), 'tag' => array( 'type' => 'string', 'default' => 'td', 'source' => 'tag' ), 'scope' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'scope' ), 'align' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'data-align' ), 'colspan' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'colspan' ), 'rowspan' => array( 'type' => 'string', 'source' => 'attribute', 'attribute' => 'rowspan' ) ) ) ) ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'color' => array( '__experimentalSkipSerialization' => true, 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), '__experimentalBorder' => array( '__experimentalSkipSerialization' => true, 'color' => true, 'style' => true, 'width' => true, '__experimentalDefaultControls' => array( 'color' => true, 'style' => true, 'width' => true ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'selectors' => array( 'root' => '.wp-block-table > table', 'spacing' => '.wp-block-table' ), 'styles' => array( array( 'name' => 'regular', 'label' => 'Default', 'isDefault' => true ), array( 'name' => 'stripes', 'label' => 'Stripes' ) ), 'editorStyle' => 'wp-block-table-editor', 'style' => 'wp-block-table' ), 'tabs' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/tabs', 'title' => 'Tabs', 'description' => 'Display content in a tabbed interface to help users navigate detailed content with ease.', 'category' => 'design', 'textdomain' => 'default', 'allowedBlocks' => array( 'core/tab-list', 'core/tab-panels' ), 'attributes' => array( 'activeTabIndex' => array( 'type' => 'number', 'default' => 0 ), 'editorActiveTabIndex' => array( 'type' => 'number', 'role' => 'local' ) ), 'supports' => array( 'align' => true, 'anchor' => true, 'color' => array( 'text' => true, 'background' => true, '__experimentalDefaultControls' => array( 'text' => true, 'background' => true ) ), 'layout' => array( 'allowEditing' => false ), 'html' => false, 'interactivity' => true, 'spacing' => array( 'blockGap' => true, 'margin' => true, 'padding' => true ), 'typography' => array( 'fontSize' => true, '__experimentalFontFamily' => true ) ), 'usesContext' => array( 'core/tabs-list', 'core/tabs-id' ), 'style' => 'wp-block-tabs', 'viewScriptModule' => '@wordpress/block-library/tabs/view' ), 'tag-cloud' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/tag-cloud', 'title' => 'Tag Cloud', 'category' => 'widgets', 'description' => 'A cloud of popular keywords, each sized by how often it appears.', 'textdomain' => 'default', 'attributes' => array( 'numberOfTags' => array( 'type' => 'number', 'default' => 45, 'minimum' => 1, 'maximum' => 100 ), 'taxonomy' => array( 'type' => 'string', 'default' => 'post_tag' ), 'showTagCounts' => array( 'type' => 'boolean', 'default' => false ), 'smallestFontSize' => array( 'type' => 'string', 'default' => '8pt' ), 'largestFontSize' => array( 'type' => 'string', 'default' => '22pt' ) ), 'styles' => array( array( 'name' => 'default', 'label' => 'Default', 'isDefault' => true ), array( 'name' => 'outline', 'label' => 'Outline' ) ), 'supports' => array( 'anchor' => true, 'html' => false, 'align' => true, 'spacing' => array( 'margin' => true, 'padding' => true ), 'typography' => array( 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalLetterSpacing' => true ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ) ), 'template-part' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/template-part', 'title' => 'Template Part', 'category' => 'theme', 'description' => 'Edit the different global regions of your site, like the header, footer, sidebar, or create your own.', 'textdomain' => 'default', 'attributes' => array( 'slug' => array( 'type' => 'string' ), 'theme' => array( 'type' => 'string' ), 'tagName' => array( 'type' => 'string' ), 'area' => array( 'type' => 'string' ) ), 'supports' => array( 'align' => true, 'html' => false, 'reusable' => false, 'renaming' => false, 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-template-part-editor' ), 'term-count' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/term-count', 'title' => 'Term Count', 'category' => 'theme', 'description' => 'Displays the post count of a taxonomy term.', 'textdomain' => 'default', 'usesContext' => array( 'termId', 'taxonomy' ), 'attributes' => array( 'bracketType' => array( 'type' => 'string', 'enum' => array( 'none', 'round', 'square', 'curly', 'angle' ), 'default' => 'round' ) ), 'supports' => array( 'anchor' => true, 'html' => false, 'color' => array( 'gradients' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-term-count' ), 'term-description' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/term-description', 'title' => 'Term Description', 'category' => 'theme', 'description' => 'Display the description of categories, tags and custom taxonomies when viewing an archive.', 'textdomain' => 'default', 'usesContext' => array( 'termId', 'taxonomy' ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'spacing' => array( 'padding' => true, 'margin' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ) ) ), 'term-name' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/term-name', 'title' => 'Term Name', 'category' => 'theme', 'description' => 'Displays the name of a taxonomy term.', 'keywords' => array( 'term title' ), 'textdomain' => 'default', 'usesContext' => array( 'termId', 'taxonomy' ), 'attributes' => array( 'level' => array( 'type' => 'number', 'default' => 0 ), 'isLink' => array( 'type' => 'boolean', 'default' => false ), 'levelOptions' => array( 'type' => 'array' ) ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true, 'link' => true ) ), 'spacing' => array( 'padding' => true ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true, '__experimentalDefaultControls' => array( 'color' => true, 'width' => true, 'style' => true ) ) ), 'style' => 'wp-block-term-name' ), 'term-template' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/term-template', 'title' => 'Term Template', 'category' => 'theme', 'ancestor' => array( 'core/terms-query' ), 'description' => 'Contains the block elements used to render a taxonomy term, like the name, description, and more.', 'textdomain' => 'default', 'usesContext' => array( 'termQuery' ), 'supports' => array( 'anchor' => true, 'reusable' => false, 'html' => false, 'align' => array( 'wide', 'full' ), 'layout' => true, 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'typography' => array( 'fontSize' => true, 'lineHeight' => true, '__experimentalFontFamily' => true, '__experimentalFontWeight' => true, '__experimentalFontStyle' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalLetterSpacing' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, 'blockGap' => array( '__experimentalDefault' => '1.25em' ), '__experimentalDefaultControls' => array( 'blockGap' => true, 'padding' => false, 'margin' => false ) ), 'interactivity' => array( 'clientNavigation' => true ), '__experimentalBorder' => array( 'radius' => true, 'color' => true, 'width' => true, 'style' => true ) ), 'style' => 'wp-block-term-template', 'editorStyle' => 'wp-block-term-template-editor' ), 'terms-query' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/terms-query', 'title' => 'Terms Query', 'category' => 'theme', 'description' => 'An advanced block that allows displaying taxonomy terms based on different query parameters and visual configurations.', 'keywords' => array( 'terms', 'taxonomy', 'categories', 'tags', 'list' ), 'textdomain' => 'default', 'attributes' => array( 'termQuery' => array( 'type' => 'object', 'default' => array( 'perPage' => 10, 'taxonomy' => 'category', 'order' => 'asc', 'orderBy' => 'name', 'include' => array( ), 'hideEmpty' => true, 'showNested' => false, 'inherit' => false ) ), 'tagName' => array( 'type' => 'string', 'default' => 'div' ) ), 'usesContext' => array( 'templateSlug' ), 'providesContext' => array( 'termQuery' => 'termQuery' ), 'supports' => array( 'anchor' => true, 'align' => array( 'wide', 'full' ), 'html' => false, 'layout' => true, 'interactivity' => true ) ), 'text-columns' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/text-columns', 'title' => 'Text Columns (deprecated)', 'icon' => 'columns', 'category' => 'design', 'description' => 'This block is deprecated. Please use the Columns block instead.', 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'array', 'source' => 'query', 'selector' => 'p', 'query' => array( 'children' => array( 'type' => 'string', 'source' => 'html' ) ), 'default' => array( array( ), array( ) ) ), 'columns' => array( 'type' => 'number', 'default' => 2 ), 'width' => array( 'type' => 'string' ) ), 'supports' => array( 'inserter' => false, 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-text-columns-editor', 'style' => 'wp-block-text-columns' ), 'verse' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/verse', 'title' => 'Poetry', 'category' => 'text', 'description' => 'Insert poetry. Use special spacing formats. Or quote song lyrics.', 'keywords' => array( 'poetry', 'poem', 'verse', 'stanza', 'song', 'lyrics' ), 'textdomain' => 'default', 'attributes' => array( 'content' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'pre', '__unstablePreserveWhiteSpace' => true, 'role' => 'content' ) ), 'supports' => array( 'anchor' => true, 'background' => array( 'backgroundImage' => true, 'backgroundSize' => true, 'gradient' => true, '__experimentalDefaultControls' => array( 'backgroundImage' => true, 'gradient' => true ) ), 'color' => array( 'gradients' => true, 'link' => true, '__experimentalDefaultControls' => array( 'background' => true, 'text' => true ) ), 'dimensions' => array( 'minHeight' => true, '__experimentalDefaultControls' => array( 'minHeight' => false ) ), 'typography' => array( 'fontSize' => true, '__experimentalFontFamily' => true, 'lineHeight' => true, 'textAlign' => true, '__experimentalFontStyle' => true, '__experimentalFontWeight' => true, '__experimentalLetterSpacing' => true, '__experimentalTextTransform' => true, '__experimentalTextDecoration' => true, '__experimentalWritingMode' => true, '__experimentalDefaultControls' => array( 'fontSize' => true ) ), 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), '__experimentalBorder' => array( 'radius' => true, 'width' => true, 'color' => true, 'style' => true ), 'interactivity' => array( 'clientNavigation' => true ) ), 'style' => 'wp-block-verse', 'editorStyle' => 'wp-block-verse-editor' ), 'video' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/video', 'title' => 'Video', 'category' => 'media', 'description' => 'Embed a video from your media library or upload a new one.', 'keywords' => array( 'movie' ), 'textdomain' => 'default', 'attributes' => array( 'autoplay' => array( 'type' => 'boolean', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'autoplay' ), 'caption' => array( 'type' => 'rich-text', 'source' => 'rich-text', 'selector' => 'figcaption', 'role' => 'content' ), 'controls' => array( 'type' => 'boolean', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'controls', 'default' => true ), 'id' => array( 'type' => 'number', 'role' => 'content' ), 'loop' => array( 'type' => 'boolean', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'loop' ), 'muted' => array( 'type' => 'boolean', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'muted' ), 'poster' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'poster' ), 'preload' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'preload', 'default' => 'metadata' ), 'blob' => array( 'type' => 'string', 'role' => 'local' ), 'src' => array( 'type' => 'string', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'src', 'role' => 'content' ), 'width' => array( 'type' => 'number' ), 'height' => array( 'type' => 'number' ), 'playsInline' => array( 'type' => 'boolean', 'source' => 'attribute', 'selector' => 'video', 'attribute' => 'playsinline' ), 'tracks' => array( 'role' => 'content', 'type' => 'array', 'items' => array( 'type' => 'object' ), 'default' => array( ) ) ), 'supports' => array( 'anchor' => true, 'align' => true, 'spacing' => array( 'margin' => true, 'padding' => true, '__experimentalDefaultControls' => array( 'margin' => false, 'padding' => false ) ), 'interactivity' => array( 'clientNavigation' => true ) ), 'editorStyle' => 'wp-block-video-editor', 'style' => 'wp-block-video' ), 'widget-group' => array( '$schema' => 'https://schemas.wp.org/trunk/block.json', 'apiVersion' => 3, 'name' => 'core/widget-group', 'title' => 'Widget Group', 'category' => 'widgets', 'attributes' => array( 'title' => array( 'type' => 'string' ) ), 'supports' => array( 'html' => false, 'inserter' => true, 'customClassName' => true, 'reusable' => false ), 'editorStyle' => 'wp-block-widget-group-editor', 'style' => 'wp-block-widget-group' ) ); query-pagination-next/block.json 0000775 00000002041 00000000000 0012744 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query-pagination-next", "title": "Next Page", "category": "theme", "parent": [ "core/query-pagination" ], "description": "Displays the next posts page link.", "textdomain": "default", "attributes": { "label": { "type": "string" } }, "usesContext": [ "queryId", "query", "paginationArrow", "showLabel", "enhancedPagination" ], "supports": { "anchor": true, "reusable": false, "html": false, "color": { "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true } } } post-featured-image/editor.css 0000775 00000013623 00000000000 0012361 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-post-featured-image .block-editor-media-placeholder { z-index: 1; backdrop-filter: none; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder, .wp-block-post-featured-image .components-placeholder { justify-content: center; align-items: center; padding: 0; display: flex; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload, .wp-block-post-featured-image .components-placeholder .components-form-file-upload { display: none; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button, .wp-block-post-featured-image .components-placeholder .components-button { margin: auto; padding: 0; display: flex; justify-content: center; align-items: center; width: 48px; height: 48px; border-radius: 50%; position: relative; background: var(--wp-admin-theme-color); border-color: var(--wp-admin-theme-color); border-style: solid; color: #fff; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button > svg, .wp-block-post-featured-image .components-placeholder .components-button > svg { color: inherit; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder, .wp-block-post-featured-image .components-placeholder { min-height: 200px; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color), .wp-block-post-featured-image .components-placeholder:where(.has-border-color), .wp-block-post-featured-image img:where(.has-border-color) { border-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]), .wp-block-post-featured-image img:where([style*=border-top-color]) { border-top-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]), .wp-block-post-featured-image img:where([style*=border-right-color]) { border-right-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]), .wp-block-post-featured-image img:where([style*=border-bottom-color]) { border-bottom-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]), .wp-block-post-featured-image img:where([style*=border-left-color]) { border-left-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-width]), .wp-block-post-featured-image img:where([style*=border-width]) { border-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]), .wp-block-post-featured-image img:where([style*=border-top-width]) { border-top-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]), .wp-block-post-featured-image img:where([style*=border-right-width]) { border-right-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]), .wp-block-post-featured-image img:where([style*=border-bottom-width]) { border-bottom-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]), .wp-block-post-featured-image img:where([style*=border-left-width]) { border-left-style: solid; } .wp-block-post-featured-image[style*=height] .components-placeholder { min-height: 48px; min-width: 48px; height: 100%; width: 100%; } .wp-block-post-featured-image > a { pointer-events: none; } .wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button, .wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions, .wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label { opacity: 1; pointer-events: auto; } .wp-block-post-featured-image.is-transient { position: relative; } .wp-block-post-featured-image.is-transient img { opacity: 0.3; } .wp-block-post-featured-image.is-transient .components-spinner { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } div[data-type="core/post-featured-image"] img { max-width: 100%; height: auto; display: block; } post-featured-image/editor.min.css 0000775 00000011510 00000000000 0013134 0 ustar 00 .wp-block-post-featured-image .block-editor-media-placeholder{backdrop-filter:none;z-index:1}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{align-items:center;display:flex;justify-content:center;padding:0}.wp-block-post-featured-image .components-placeholder .components-form-file-upload,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload{display:none}.wp-block-post-featured-image .components-placeholder .components-button,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;margin:auto;padding:0;position:relative;width:48px}.wp-block-post-featured-image .components-placeholder .components-button>svg,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button>svg{color:inherit}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{min-height:200px}.wp-block-post-featured-image .components-placeholder:where(.has-border-color),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color),.wp-block-post-featured-image img:where(.has-border-color){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]),.wp-block-post-featured-image img:where([style*=border-top-color]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]),.wp-block-post-featured-image img:where([style*=border-right-color]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image img:where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]),.wp-block-post-featured-image img:where([style*=border-left-color]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]),.wp-block-post-featured-image img:where([style*=border-width]){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]),.wp-block-post-featured-image img:where([style*=border-top-width]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]),.wp-block-post-featured-image img:where([style*=border-right-width]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image img:where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]),.wp-block-post-featured-image img:where([style*=border-left-width]){border-left-style:solid}.wp-block-post-featured-image[style*=height] .components-placeholder{height:100%;min-height:48px;min-width:48px;width:100%}.wp-block-post-featured-image>a{pointer-events:none}.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label{opacity:1;pointer-events:auto}.wp-block-post-featured-image.is-transient{position:relative}.wp-block-post-featured-image.is-transient img{opacity:.3}.wp-block-post-featured-image.is-transient .components-spinner{left:50%;position:absolute;top:50%;transform:translate(-50%,-50%)}div[data-type="core/post-featured-image"] img{display:block;height:auto;max-width:100%} post-featured-image/style-rtl.css 0000775 00000004002 00000000000 0013021 0 ustar 00 /** * Colors */ .wp-block-post-featured-image { margin-right: 0; margin-left: 0; } .wp-block-post-featured-image a { display: block; height: 100%; } .wp-block-post-featured-image :where(img) { max-width: 100%; width: 100%; height: auto; vertical-align: bottom; box-sizing: border-box; } .wp-block-post-featured-image.alignwide img, .wp-block-post-featured-image.alignfull img { width: 100%; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim { position: absolute; inset: 0; background-color: #000; } .wp-block-post-featured-image { position: relative; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient { background-color: transparent; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0 { opacity: 0; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10 { opacity: 0.1; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20 { opacity: 0.2; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30 { opacity: 0.3; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40 { opacity: 0.4; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50 { opacity: 0.5; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60 { opacity: 0.6; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70 { opacity: 0.7; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80 { opacity: 0.8; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90 { opacity: 0.9; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100 { opacity: 1; } .wp-block-post-featured-image:where(.alignleft, .alignright) { width: 100%; } post-featured-image/editor-rtl.min.css 0000775 00000011510 00000000000 0013733 0 ustar 00 .wp-block-post-featured-image .block-editor-media-placeholder{backdrop-filter:none;z-index:1}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{align-items:center;display:flex;justify-content:center;padding:0}.wp-block-post-featured-image .components-placeholder .components-form-file-upload,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload{display:none}.wp-block-post-featured-image .components-placeholder .components-button,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button{align-items:center;background:var(--wp-admin-theme-color);border-color:var(--wp-admin-theme-color);border-radius:50%;border-style:solid;color:#fff;display:flex;height:48px;justify-content:center;margin:auto;padding:0;position:relative;width:48px}.wp-block-post-featured-image .components-placeholder .components-button>svg,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button>svg{color:inherit}.wp-block-post-featured-image .components-placeholder,.wp-block-post-featured-image .wp-block-post-featured-image__placeholder{min-height:200px}.wp-block-post-featured-image .components-placeholder:where(.has-border-color),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color),.wp-block-post-featured-image img:where(.has-border-color){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]),.wp-block-post-featured-image img:where([style*=border-top-color]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]),.wp-block-post-featured-image img:where([style*=border-right-color]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]),.wp-block-post-featured-image img:where([style*=border-bottom-color]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]),.wp-block-post-featured-image img:where([style*=border-left-color]){border-right-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]),.wp-block-post-featured-image img:where([style*=border-width]){border-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]),.wp-block-post-featured-image img:where([style*=border-top-width]){border-top-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]),.wp-block-post-featured-image img:where([style*=border-right-width]){border-left-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]),.wp-block-post-featured-image img:where([style*=border-bottom-width]){border-bottom-style:solid}.wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]),.wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]),.wp-block-post-featured-image img:where([style*=border-left-width]){border-right-style:solid}.wp-block-post-featured-image[style*=height] .components-placeholder{height:100%;min-height:48px;min-width:48px;width:100%}.wp-block-post-featured-image>a{pointer-events:none}.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions,.wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label{opacity:1;pointer-events:auto}.wp-block-post-featured-image.is-transient{position:relative}.wp-block-post-featured-image.is-transient img{opacity:.3}.wp-block-post-featured-image.is-transient .components-spinner{position:absolute;right:50%;top:50%;transform:translate(50%,-50%)}div[data-type="core/post-featured-image"] img{display:block;height:auto;max-width:100%} post-featured-image/style.min.css 0000775 00000003455 00000000000 0013017 0 ustar 00 .wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image :where(img){box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:transparent}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}.wp-block-post-featured-image:where(.alignleft,.alignright){width:100%} post-featured-image/block.json 0000775 00000004716 00000000000 0012351 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-featured-image", "title": "Featured Image", "category": "theme", "description": "Display a post's featured image.", "textdomain": "default", "attributes": { "isLink": { "type": "boolean", "default": false, "role": "content" }, "aspectRatio": { "type": "string" }, "width": { "type": "string" }, "height": { "type": "string" }, "scale": { "type": "string", "default": "cover" }, "sizeSlug": { "type": "string" }, "rel": { "type": "string", "attribute": "rel", "default": "", "role": "content" }, "linkTarget": { "type": "string", "default": "_self", "role": "content" }, "overlayColor": { "type": "string" }, "customOverlayColor": { "type": "string" }, "dimRatio": { "type": "number", "default": 0 }, "gradient": { "type": "string" }, "customGradient": { "type": "string" }, "useFirstImageFromPost": { "type": "boolean", "default": false } }, "usesContext": [ "postId", "postType", "queryId" ], "example": { "viewportWidth": 350 }, "supports": { "anchor": true, "align": [ "left", "right", "center", "wide", "full" ], "color": { "text": false, "background": false }, "__experimentalBorder": { "color": true, "radius": true, "width": true, "__experimentalSkipSerialization": true, "__experimentalDefaultControls": { "color": true, "radius": true, "width": true } }, "filter": { "duotone": true }, "shadow": { "__experimentalSkipSerialization": true }, "html": false, "spacing": { "margin": true, "padding": true }, "interactivity": { "clientNavigation": true } }, "selectors": { "dimensions": ".wp-block-post-featured-image img", "border": ".wp-block-post-featured-image img, .wp-block-post-featured-image .block-editor-media-placeholder, .wp-block-post-featured-image .wp-block-post-featured-image__overlay", "shadow": ".wp-block-post-featured-image img, .wp-block-post-featured-image .components-placeholder", "filter": { "duotone": ".wp-block-post-featured-image img, .wp-block-post-featured-image .wp-block-post-featured-image__placeholder, .wp-block-post-featured-image .components-placeholder__illustration, .wp-block-post-featured-image .components-placeholder::before" } }, "editorStyle": "wp-block-post-featured-image-editor", "style": "wp-block-post-featured-image" } post-featured-image/style-rtl.min.css 0000775 00000003455 00000000000 0013616 0 ustar 00 .wp-block-post-featured-image{margin-left:0;margin-right:0}.wp-block-post-featured-image a{display:block;height:100%}.wp-block-post-featured-image :where(img){box-sizing:border-box;height:auto;max-width:100%;vertical-align:bottom;width:100%}.wp-block-post-featured-image.alignfull img,.wp-block-post-featured-image.alignwide img{width:100%}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim{background-color:#000;inset:0;position:absolute}.wp-block-post-featured-image{position:relative}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient{background-color:transparent}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0{opacity:0}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10{opacity:.1}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20{opacity:.2}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30{opacity:.3}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40{opacity:.4}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50{opacity:.5}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60{opacity:.6}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70{opacity:.7}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80{opacity:.8}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90{opacity:.9}.wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100{opacity:1}.wp-block-post-featured-image:where(.alignleft,.alignright){width:100%} post-featured-image/style.css 0000775 00000004002 00000000000 0012222 0 ustar 00 /** * Colors */ .wp-block-post-featured-image { margin-left: 0; margin-right: 0; } .wp-block-post-featured-image a { display: block; height: 100%; } .wp-block-post-featured-image :where(img) { max-width: 100%; width: 100%; height: auto; vertical-align: bottom; box-sizing: border-box; } .wp-block-post-featured-image.alignwide img, .wp-block-post-featured-image.alignfull img { width: 100%; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim { position: absolute; inset: 0; background-color: #000; } .wp-block-post-featured-image { position: relative; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-gradient { background-color: transparent; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-0 { opacity: 0; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-10 { opacity: 0.1; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-20 { opacity: 0.2; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-30 { opacity: 0.3; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-40 { opacity: 0.4; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-50 { opacity: 0.5; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-60 { opacity: 0.6; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-70 { opacity: 0.7; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-80 { opacity: 0.8; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-90 { opacity: 0.9; } .wp-block-post-featured-image .wp-block-post-featured-image__overlay.has-background-dim-100 { opacity: 1; } .wp-block-post-featured-image:where(.alignleft, .alignright) { width: 100%; } post-featured-image/editor-rtl.css 0000775 00000013623 00000000000 0013160 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-post-featured-image .block-editor-media-placeholder { z-index: 1; backdrop-filter: none; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder, .wp-block-post-featured-image .components-placeholder { justify-content: center; align-items: center; padding: 0; display: flex; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-form-file-upload, .wp-block-post-featured-image .components-placeholder .components-form-file-upload { display: none; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button, .wp-block-post-featured-image .components-placeholder .components-button { margin: auto; padding: 0; display: flex; justify-content: center; align-items: center; width: 48px; height: 48px; border-radius: 50%; position: relative; background: var(--wp-admin-theme-color); border-color: var(--wp-admin-theme-color); border-style: solid; color: #fff; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder .components-button > svg, .wp-block-post-featured-image .components-placeholder .components-button > svg { color: inherit; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder, .wp-block-post-featured-image .components-placeholder { min-height: 200px; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where(.has-border-color), .wp-block-post-featured-image .components-placeholder:where(.has-border-color), .wp-block-post-featured-image img:where(.has-border-color) { border-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-top-color]), .wp-block-post-featured-image img:where([style*=border-top-color]) { border-top-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-right-color]), .wp-block-post-featured-image img:where([style*=border-right-color]) { border-left-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-color]), .wp-block-post-featured-image img:where([style*=border-bottom-color]) { border-bottom-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-color]), .wp-block-post-featured-image .components-placeholder:where([style*=border-left-color]), .wp-block-post-featured-image img:where([style*=border-left-color]) { border-right-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-width]), .wp-block-post-featured-image img:where([style*=border-width]) { border-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-top-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-top-width]), .wp-block-post-featured-image img:where([style*=border-top-width]) { border-top-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-right-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-right-width]), .wp-block-post-featured-image img:where([style*=border-right-width]) { border-left-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-bottom-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-bottom-width]), .wp-block-post-featured-image img:where([style*=border-bottom-width]) { border-bottom-style: solid; } .wp-block-post-featured-image .wp-block-post-featured-image__placeholder:where([style*=border-left-width]), .wp-block-post-featured-image .components-placeholder:where([style*=border-left-width]), .wp-block-post-featured-image img:where([style*=border-left-width]) { border-right-style: solid; } .wp-block-post-featured-image[style*=height] .components-placeholder { min-height: 48px; min-width: 48px; height: 100%; width: 100%; } .wp-block-post-featured-image > a { pointer-events: none; } .wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-button, .wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__instructions, .wp-block-post-featured-image.is-selected .components-placeholder.has-illustration .components-placeholder__label { opacity: 1; pointer-events: auto; } .wp-block-post-featured-image.is-transient { position: relative; } .wp-block-post-featured-image.is-transient img { opacity: 0.3; } .wp-block-post-featured-image.is-transient .components-spinner { position: absolute; top: 50%; right: 50%; transform: translate(50%, -50%); } div[data-type="core/post-featured-image"] img { max-width: 100%; height: auto; display: block; } comment-edit-link/style-rtl.css 0000775 00000000071 00000000000 0012501 0 ustar 00 .wp-block-comment-edit-link { box-sizing: border-box; } comment-edit-link/style.min.css 0000775 00000000062 00000000000 0012464 0 ustar 00 .wp-block-comment-edit-link{box-sizing:border-box} comment-edit-link/block.json 0000775 00000002642 00000000000 0012023 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comment-edit-link", "title": "Comment Edit Link", "category": "theme", "ancestor": [ "core/comment-template" ], "description": "Displays a link to edit the comment in the WordPress Dashboard. This link is only visible to users with the edit comment capability.", "textdomain": "default", "usesContext": [ "commentId" ], "attributes": { "linkTarget": { "type": "string", "default": "_self" } }, "supports": { "anchor": true, "html": false, "color": { "link": true, "gradients": true, "text": false, "__experimentalDefaultControls": { "background": true, "link": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true } }, "style": "wp-block-comment-edit-link" } comment-edit-link/style-rtl.min.css 0000775 00000000062 00000000000 0013263 0 ustar 00 .wp-block-comment-edit-link{box-sizing:border-box} comment-edit-link/style.css 0000775 00000000071 00000000000 0011702 0 ustar 00 .wp-block-comment-edit-link { box-sizing: border-box; } post-navigation-link.php 0000775 00000011307 00000000000 0011302 0 ustar 00 <?php /** * Server-side rendering of the `core/post-navigation-link` block. * * @package WordPress */ /** * Renders the `core/post-navigation-link` block on the server. * * @since 5.9.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * * @return string Returns the next or previous post link that is adjacent to the current post. */ function render_block_core_post_navigation_link( $attributes, $content ) { if ( ! is_singular() ) { return ''; } // Get the navigation type to show the proper link. Available options are `next|previous`. $navigation_type = $attributes['type'] ?? 'next'; // Allow only `next` and `previous` in `$navigation_type`. if ( ! in_array( $navigation_type, array( 'next', 'previous' ), true ) ) { return ''; } $classes = "post-navigation-link-$navigation_type"; if ( isset( $attributes['textAlign'] ) ) { $classes .= " has-text-align-{$attributes['textAlign']}"; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes, ) ); // Set default values. $format = '%link'; $link = 'next' === $navigation_type ? _x( 'Next', 'label for next post link' ) : _x( 'Previous', 'label for previous post link' ); $label = ''; // Only use hardcoded values here, otherwise we need to add escaping where these values are used. $arrow_map = array( 'none' => '', 'arrow' => array( 'next' => '→', 'previous' => '←', ), 'chevron' => array( 'next' => '»', 'previous' => '«', ), ); // If a custom label is provided, make this a link. // `$label` is used to prepend the provided label, if we want to show the page title as well. if ( isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ) { $label = "{$attributes['label']}"; $link = $label; } // If we want to also show the page title, make the page title a link and prepend the label. if ( isset( $attributes['showTitle'] ) && $attributes['showTitle'] ) { /* * If the label link option is not enabled but there is a custom label, * display the custom label as text before the linked title. */ if ( ! $attributes['linkLabel'] ) { if ( $label ) { $format = '<span class="post-navigation-link__label">' . wp_kses_post( $label ) . '</span> %link'; } $link = '%title'; } elseif ( isset( $attributes['linkLabel'] ) && $attributes['linkLabel'] ) { // If the label link option is enabled and there is a custom label, display it before the title. if ( $label ) { $link = '<span class="post-navigation-link__label">' . wp_kses_post( $label ) . '</span> <span class="post-navigation-link__title">%title</span>'; } else { /* * If the label link option is enabled and there is no custom label, * add a colon between the label and the post title. */ $label = 'next' === $navigation_type ? _x( 'Next:', 'label before the title of the next post' ) : _x( 'Previous:', 'label before the title of the previous post' ); $link = sprintf( '<span class="post-navigation-link__label">%1$s</span> <span class="post-navigation-link__title">%2$s</span>', wp_kses_post( $label ), '%title' ); } } } // Display arrows. if ( isset( $attributes['arrow'] ) && 'none' !== $attributes['arrow'] && isset( $arrow_map[ $attributes['arrow'] ] ) ) { $arrow = $arrow_map[ $attributes['arrow'] ][ $navigation_type ]; if ( 'next' === $navigation_type ) { $format = '%link<span class="wp-block-post-navigation-link__arrow-next is-arrow-' . $attributes['arrow'] . '" aria-hidden="true">' . $arrow . '</span>'; } else { $format = '<span class="wp-block-post-navigation-link__arrow-previous is-arrow-' . $attributes['arrow'] . '" aria-hidden="true">' . $arrow . '</span>%link'; } } /* * The dynamic portion of the function name, `$navigation_type`, * Refers to the type of adjacency, 'next' or 'previous'. * * @see https://developer.wordpress.org/reference/functions/get_previous_post_link/ * @see https://developer.wordpress.org/reference/functions/get_next_post_link/ */ $get_link_function = "get_{$navigation_type}_post_link"; if ( ! empty( $attributes['taxonomy'] ) ) { $content = $get_link_function( $format, $link, true, '', $attributes['taxonomy'] ); } else { $content = $get_link_function( $format, $link ); } return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $content ); } /** * Registers the `core/post-navigation-link` block on the server. * * @since 5.9.0 */ function register_block_core_post_navigation_link() { register_block_type_from_metadata( __DIR__ . '/post-navigation-link', array( 'render_callback' => 'render_block_core_post_navigation_link', ) ); } add_action( 'init', 'register_block_core_post_navigation_link' ); post-excerpt.php 0000775 00000010333 00000000000 0007660 0 ustar 00 <?php /** * Server-side rendering of the `core/post-excerpt` block. * * @package WordPress */ /** * Renders the `core/post-excerpt` block on the server. * * @since 5.8.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the filtered post excerpt for the current post wrapped inside "p" tags. */ function render_block_core_post_excerpt( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { return ''; } $more_text = ! empty( $attributes['moreText'] ) ? '<a class="wp-block-post-excerpt__more-link" href="' . esc_url( get_the_permalink( $block->context['postId'] ) ) . '">' . wp_kses_post( $attributes['moreText'] ) . '</a>' : ''; $filter_excerpt_more = static function ( $more ) use ( $more_text ) { return empty( $more_text ) ? $more : ''; }; /** * Some themes might use `excerpt_more` filter to handle the * `more` link displayed after a trimmed excerpt. Since the * block has a `more text` attribute we have to check and * override if needed the return value from this filter. * So if the block's attribute is not empty override the * `excerpt_more` filter and return nothing. This will * result in showing only one `read more` link at a time. * * This hook needs to be applied before the excerpt is retrieved with get_the_excerpt. * Otherwise, the read more link filter from the theme is not removed. */ add_filter( 'excerpt_more', $filter_excerpt_more ); /* * The purpose of the excerpt length setting is to limit the length of both * automatically generated and user-created excerpts. * Because the excerpt_length filter only applies to auto generated excerpts, * wp_trim_words is used instead. * * To ensure the block's excerptLength setting works correctly for auto-generated * excerpts, we temporarily override excerpt_length to 101 (the max block setting) * so that wp_trim_excerpt doesn't pre-trim the content before wp_trim_words can * apply the user's desired length. */ $excerpt_length = $attributes['excerptLength']; add_filter( 'excerpt_length', 'block_core_post_excerpt_excerpt_length', PHP_INT_MAX ); $excerpt = get_the_excerpt( $block->context['postId'] ); remove_filter( 'excerpt_length', 'block_core_post_excerpt_excerpt_length', PHP_INT_MAX ); if ( isset( $excerpt_length ) ) { $excerpt = wp_trim_words( $excerpt, $excerpt_length ); } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); $content = '<p class="wp-block-post-excerpt__excerpt">' . $excerpt; $show_more_on_new_line = ! isset( $attributes['showMoreOnNewLine'] ) || $attributes['showMoreOnNewLine']; if ( $show_more_on_new_line && ! empty( $more_text ) ) { $content .= '</p><p class="wp-block-post-excerpt__more-text">' . $more_text . '</p>'; } else { $content .= " $more_text</p>"; } remove_filter( 'excerpt_more', $filter_excerpt_more ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $content ); } /** * Registers the `core/post-excerpt` block on the server. * * @since 5.8.0 */ function register_block_core_post_excerpt() { register_block_type_from_metadata( __DIR__ . '/post-excerpt', array( 'render_callback' => 'render_block_core_post_excerpt', ) ); } add_action( 'init', 'register_block_core_post_excerpt' ); /** * Callback for the excerpt_length filter to override the excerpt length. * * If themes or plugins filter the excerpt_length, we need to * override the filter in the editor, otherwise * the excerpt length block setting has no effect. * Returns 101 (one more than the max block setting of 100) to ensure * wp_trim_words can detect when trimming is needed and add the ellipsis. * * @since 7.0.0 * * @return int The excerpt length. */ function block_core_post_excerpt_excerpt_length() { return 101; } if ( is_admin() ) { add_filter( 'excerpt_length', 'block_core_post_excerpt_excerpt_length', PHP_INT_MAX ); } post-author/editor.css 0000775 00000001576 00000000000 0011010 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-post-author__transform { background: #f0f0f0; border-radius: 2px; margin: 16px; padding: 16px; } post-author/editor.min.css 0000775 00000000137 00000000000 0011562 0 ustar 00 .wp-block-post-author__transform{background:#f0f0f0;border-radius:2px;margin:16px;padding:16px} post-author/style-rtl.css 0000775 00000000663 00000000000 0011455 0 ustar 00 .wp-block-post-author { display: flex; flex-wrap: wrap; box-sizing: border-box; } .wp-block-post-author__byline { width: 100%; margin-top: 0; margin-bottom: 0; font-size: 0.5em; } .wp-block-post-author__avatar { margin-left: 1em; } .wp-block-post-author__bio { margin-bottom: 0.7em; font-size: 0.7em; } .wp-block-post-author__content { flex-grow: 1; flex-basis: 0; } .wp-block-post-author__name { margin: 0; } post-author/editor-rtl.min.css 0000775 00000000137 00000000000 0012361 0 ustar 00 .wp-block-post-author__transform{background:#f0f0f0;border-radius:2px;margin:16px;padding:16px} post-author/style.min.css 0000775 00000000546 00000000000 0011440 0 ustar 00 .wp-block-post-author{box-sizing:border-box;display:flex;flex-wrap:wrap}.wp-block-post-author__byline{font-size:.5em;margin-bottom:0;margin-top:0;width:100%}.wp-block-post-author__avatar{margin-right:1em}.wp-block-post-author__bio{font-size:.7em;margin-bottom:.7em}.wp-block-post-author__content{flex-basis:0;flex-grow:1}.wp-block-post-author__name{margin:0} post-author/block.json 0000775 00000003645 00000000000 0010774 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-author", "title": "Author (deprecated)", "category": "theme", "description": "This block is deprecated. Please use the Avatar block, the Author Name block, and the Author Biography block instead.", "textdomain": "default", "attributes": { "textAlign": { "type": "string" }, "avatarSize": { "type": "number", "default": 48 }, "showAvatar": { "type": "boolean", "default": true }, "showBio": { "type": "boolean" }, "byline": { "type": "string" }, "isLink": { "type": "boolean", "default": false, "role": "content" }, "linkTarget": { "type": "string", "default": "_self", "role": "content" } }, "usesContext": [ "postType", "postId", "queryId" ], "supports": { "inserter": false, "anchor": true, "html": false, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } }, "filter": { "duotone": true } }, "selectors": { "filter": { "duotone": ".wp-block-post-author .wp-block-post-author__avatar img" } }, "editorStyle": "wp-block-post-author-editor", "style": "wp-block-post-author" } post-author/style-rtl.min.css 0000775 00000000545 00000000000 0012236 0 ustar 00 .wp-block-post-author{box-sizing:border-box;display:flex;flex-wrap:wrap}.wp-block-post-author__byline{font-size:.5em;margin-bottom:0;margin-top:0;width:100%}.wp-block-post-author__avatar{margin-left:1em}.wp-block-post-author__bio{font-size:.7em;margin-bottom:.7em}.wp-block-post-author__content{flex-basis:0;flex-grow:1}.wp-block-post-author__name{margin:0} post-author/style.css 0000775 00000000664 00000000000 0010657 0 ustar 00 .wp-block-post-author { display: flex; flex-wrap: wrap; box-sizing: border-box; } .wp-block-post-author__byline { width: 100%; margin-top: 0; margin-bottom: 0; font-size: 0.5em; } .wp-block-post-author__avatar { margin-right: 1em; } .wp-block-post-author__bio { margin-bottom: 0.7em; font-size: 0.7em; } .wp-block-post-author__content { flex-grow: 1; flex-basis: 0; } .wp-block-post-author__name { margin: 0; } post-author/editor-rtl.css 0000775 00000001576 00000000000 0011607 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-post-author__transform { background: #f0f0f0; border-radius: 2px; margin: 16px; padding: 16px; } shortcode.php 0000775 00000001337 00000000000 0007221 0 ustar 00 <?php /** * Server-side rendering of the `core/shortcode` block. * * @package WordPress */ /** * Performs wpautop() on the shortcode block content. * * @since 5.0.0 * * @param array $attributes The block attributes. * @param string $content The block content. * * @return string Returns the block content. */ function render_block_core_shortcode( $attributes, $content ) { return wpautop( $content ); } /** * Registers the `core/shortcode` block on server. * * @since 5.0.0 */ function register_block_core_shortcode() { register_block_type_from_metadata( __DIR__ . '/shortcode', array( 'render_callback' => 'render_block_core_shortcode', ) ); } add_action( 'init', 'register_block_core_shortcode' ); button.php 0000775 00000010163 00000000000 0006537 0 ustar 00 <?php /** * Server-side rendering of the `core/button` block. * * @package WordPress */ /** * Renders the `core/button` block on the server, * * @since 6.6.0 * * @param array $attributes The block attributes. * @param string $content The block content. * * @return string The block content. */ function render_block_core_button( $attributes, $content ) { $p = new WP_HTML_Tag_Processor( $content ); /* * The button block can render an `<a>` or `<button>` and also has a * `<div>` wrapper. Find the a or button tag. */ $tag = null; while ( $p->next_tag() ) { $tag = $p->get_tag(); if ( 'A' === $tag || 'BUTTON' === $tag ) { break; } } /* * If this happens, the likelihood is there's no block content, * or the block has been modified by a plugin. */ if ( null === $tag ) { return $content; } // If the next token is the closing tag, the button is empty. $is_empty = true; while ( $p->next_token() && $tag !== $p->get_token_name() && $is_empty ) { if ( '#comment' !== $p->get_token_type() ) { /** * Anything else implies this is not empty. * This might include any text content (including a space), * inline images or other HTML. */ $is_empty = false; } } /* * When there's no text, render nothing for the block. * See https://github.com/WordPress/gutenberg/issues/17221 for the * reasoning behind this. */ if ( $is_empty ) { return ''; } $width = $attributes['style']['dimensions']['width'] ?? null; if ( $width ) { // Resolve preset references to their actual values. $resolved_width = $width; $is_preset = str_starts_with( $width, 'var:preset|dimension|' ); if ( $is_preset ) { $slug = substr( $width, strlen( 'var:preset|dimension|' ) ); $dimension_presets = wp_get_global_settings( array( 'dimensions', 'dimensionSizes' ), array( 'block_name' => 'core/button' ) ); // Search origins in priority order: custom > theme > default. if ( is_array( $dimension_presets ) ) { foreach ( array( 'custom', 'theme', 'default' ) as $origin ) { if ( empty( $dimension_presets[ $origin ] ) || ! is_array( $dimension_presets[ $origin ] ) ) { continue; } foreach ( $dimension_presets[ $origin ] as $preset ) { if ( isset( $preset['slug'] ) && $preset['slug'] === $slug ) { $resolved_width = $preset['size'] ?? $width; break 2; } } } } } $is_percentage = str_ends_with( $resolved_width, '%' ); $processor = new WP_HTML_Tag_Processor( $content ); // Target the outer wrapper div. if ( $processor->next_tag( array( 'class_name' => 'wp-block-button' ) ) ) { $processor->add_class( 'has-custom-width' ); $existing_style = $processor->get_attribute( 'style' ); $existing_style = is_string( $existing_style ) ? $existing_style : ''; if ( $is_percentage ) { $numeric_width = (float) $resolved_width; $processor->add_class( 'wp-block-button__width' ); // Maintain legacy class for the standard percentage widths. $legacy_widths = array( '25%' => 'wp-block-button__width-25', '50%' => 'wp-block-button__width-50', '75%' => 'wp-block-button__width-75', '100%' => 'wp-block-button__width-100', ); if ( isset( $legacy_widths[ $resolved_width ] ) ) { $processor->add_class( $legacy_widths[ $resolved_width ] ); } $width_style = "--wp--block-button--width: $numeric_width;"; $processor->set_attribute( 'style', $width_style . ( $existing_style ? ' ' . $existing_style : '' ) ); } else { $css_value = $is_preset ? 'var(--wp--preset--dimension--' . _wp_to_kebab_case( $slug ) . ')' : $width; $width_style = "width: $css_value;"; $processor->set_attribute( 'style', $width_style . ( $existing_style ? ' ' . $existing_style : '' ) ); } $content = $processor->get_updated_html(); } } return $content; } /** * Registers the `core/button` block on server. * * @since 6.6.0 */ function register_block_core_button() { register_block_type_from_metadata( __DIR__ . '/button', array( 'render_callback' => 'render_block_core_button', ) ); } add_action( 'init', 'register_block_core_button' ); query-title.php 0000775 00000005323 00000000000 0007512 0 ustar 00 <?php /** * Server-side rendering of the `core/query-title` block. * * @package WordPress */ /** * Renders the `core/query-title` block on the server. * For now it supports Archive title, Search title, and Post Type Label, * using queried object information * * @since 5.8.0 * * @param array $attributes Block attributes. * @param array $content Block content. * @param object $block Block instance. * * @return string Returns the query title based on the queried object. */ function render_block_core_query_title( $attributes, $content, $block ) { $type = $attributes['type'] ?? null; $is_archive = is_archive(); $is_search = is_search(); $post_type = $block->context['query']['postType'] ?? get_post_type(); if ( ! $type || ( 'archive' === $type && ! $is_archive ) || ( 'search' === $type && ! $is_search ) || ( 'post-type' === $type && ! $post_type ) ) { return ''; } $title = ''; if ( $is_archive ) { $show_prefix = $attributes['showPrefix'] ?? true; if ( ! $show_prefix ) { add_filter( 'get_the_archive_title_prefix', '__return_empty_string', 1 ); $title = get_the_archive_title(); remove_filter( 'get_the_archive_title_prefix', '__return_empty_string', 1 ); } else { $title = get_the_archive_title(); } } if ( $is_search ) { $title = __( 'Search results' ); if ( isset( $attributes['showSearchTerm'] ) && $attributes['showSearchTerm'] ) { $title = sprintf( /* translators: %s is the search term. */ __( 'Search results for: “%s”' ), get_search_query() ); } } if ( 'post-type' === $type ) { $post_type_object = get_post_type_object( $post_type ); if ( ! $post_type_object ) { return ''; } $post_type_name = $post_type_object->labels->singular_name; $show_prefix = $attributes['showPrefix'] ?? true; if ( $show_prefix ) { $title = sprintf( /* translators: %s is the post type name. */ __( 'Post Type: “%s”' ), $post_type_name ); } else { $title = $post_type_name; } } $level = (int) ( $attributes['level'] ?? 1 ); $tag_name = 0 === $level ? 'p' : 'h' . $level; $align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}"; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) ); return sprintf( '<%1$s %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, $title ); } /** * Registers the `core/query-title` block on the server. * * @since 5.8.0 */ function register_block_core_query_title() { register_block_type_from_metadata( __DIR__ . '/query-title', array( 'render_callback' => 'render_block_core_query_title', ) ); } add_action( 'init', 'register_block_core_query_title' ); post-template.php 0000775 00000013464 00000000000 0010031 0 ustar 00 <?php /** * Server-side rendering of the `core/post-template` block. * * @package WordPress */ /** * Determines whether a block list contains a block that uses the featured image. * * @since 6.0.0 * * @param WP_Block_List $inner_blocks Inner block instance. * * @return bool Whether the block list contains a block that uses the featured image. */ function block_core_post_template_uses_featured_image( $inner_blocks ) { foreach ( $inner_blocks as $block ) { if ( 'core/post-featured-image' === $block->name ) { return true; } if ( 'core/cover' === $block->name && ! empty( $block->attributes['useFeaturedImage'] ) ) { return true; } if ( $block->inner_blocks && block_core_post_template_uses_featured_image( $block->inner_blocks ) ) { return true; } } return false; } /** * Renders the `core/post-template` block on the server. * * @since 6.3.0 Changed render_block_context priority to `1`. * * @global WP_Query $wp_query WordPress Query object. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the output of the query, structured using the layout defined by the block's inner blocks. */ function render_block_core_post_template( $attributes, $content, $block ) { $page_key = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page'; $enhanced_pagination = (bool) ( $block->context['enhancedPagination'] ?? false ); $page = empty( $_GET[ $page_key ] ) ? 1 : (int) $_GET[ $page_key ]; // Use global query if needed. $use_global_query = (bool) ( $block->context['query']['inherit'] ?? false ); if ( $use_global_query ) { global $wp_query; /* * If already in the main query loop, duplicate the query instance to not tamper with the main instance. * Since this is a nested query, it should start at the beginning, therefore rewind posts. * Otherwise, the main query loop has not started yet and this block is responsible for doing so. */ if ( in_the_loop() ) { $query = clone $wp_query; $query->rewind_posts(); } else { $query = $wp_query; } } else { $query_args = build_query_vars_from_query_block( $block, $page ); $query = new WP_Query( $query_args ); } if ( ! $query->have_posts() ) { return ''; } if ( block_core_post_template_uses_featured_image( $block->inner_blocks ) ) { update_post_thumbnail_cache( $query ); } $classnames = ''; if ( isset( $block->context['displayLayout'] ) && isset( $block->context['query'] ) ) { if ( isset( $block->context['displayLayout']['type'] ) && 'flex' === $block->context['displayLayout']['type'] ) { $classnames = "is-flex-container columns-{$block->context['displayLayout']['columns']}"; } } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classnames .= ' has-link-color'; } // Ensure backwards compatibility by flagging the number of columns via classname when using grid layout. if ( isset( $attributes['layout']['type'] ) && 'grid' === $attributes['layout']['type'] && ! empty( $attributes['layout']['columnCount'] ) ) { $classnames .= ' ' . sanitize_title( 'columns-' . $attributes['layout']['columnCount'] ); } if ( isset( $attributes['layout']['type'] ) && 'grid' === $attributes['layout']['type'] && ! empty( $attributes['layout']['columnCount'] ) && ! empty( $attributes['layout']['minimumColumnWidth'] ) ) { $classnames .= ' has-native-responsive-grid'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => trim( $classnames ) ) ); $content = ''; while ( $query->have_posts() ) { $query->the_post(); // Get an instance of the current Post Template block. $block_instance = $block->parsed_block; // Set the block name to one that does not correspond to an existing registered block. // This ensures that for the inner instances of the Post Template block, we do not render any block supports. $block_instance['blockName'] = 'core/null'; $post_id = get_the_ID(); $post_type = get_post_type(); $filter_block_context = static function ( $context ) use ( $post_id, $post_type ) { $context['postType'] = $post_type; $context['postId'] = $post_id; return $context; }; // Use an early priority to so that other 'render_block_context' filters have access to the values. add_filter( 'render_block_context', $filter_block_context, 1 ); // Render the inner blocks of the Post Template block with `dynamic` set to `false` to prevent calling // `render_callback` and ensure that no wrapper markup is included. $block_content = ( new WP_Block( $block_instance ) )->render( array( 'dynamic' => false ) ); remove_filter( 'render_block_context', $filter_block_context, 1 ); // Wrap the render inner blocks in a `li` element with the appropriate post classes. $post_classes = implode( ' ', get_post_class( 'wp-block-post' ) ); $inner_block_directives = $enhanced_pagination ? ' data-wp-key="post-template-item-' . $post_id . '"' : ''; $content .= '<li' . $inner_block_directives . ' class="' . esc_attr( $post_classes ) . '">' . $block_content . '</li>'; } /* * Use this function to restore the context of the template tags * from a secondary query loop back to the main query loop. * Since we use two custom loops, it's safest to always restore. */ wp_reset_postdata(); return sprintf( '<ul %1$s>%2$s</ul>', $wrapper_attributes, $content ); } /** * Registers the `core/post-template` block on the server. * * @since 5.8.0 */ function register_block_core_post_template() { register_block_type_from_metadata( __DIR__ . '/post-template', array( 'render_callback' => 'render_block_core_post_template', 'skip_inner_blocks' => true, ) ); } add_action( 'init', 'register_block_core_post_template' ); read-more.php 0000775 00000003466 00000000000 0007107 0 ustar 00 <?php /** * Server-side rendering of the `core/read-more` block. * * @package WordPress */ /** * Renders the `core/read-more` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Returns the post link. */ function render_block_core_read_more( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { return ''; } $post_ID = $block->context['postId']; $post_title = get_the_title( $post_ID ); if ( '' === $post_title ) { $post_title = sprintf( /* translators: %s is post ID to describe the link for screen readers. */ __( 'untitled post %s' ), $post_ID ); } $screen_reader_text = sprintf( /* translators: %s is either the post title or post ID to describe the link for screen readers. */ __( ': %s' ), $post_title ); $justify_class_name = empty( $attributes['justifyContent'] ) ? '' : "is-justified-{$attributes['justifyContent']}"; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $justify_class_name ) ); $more_text = ! empty( $attributes['content'] ) ? wp_kses_post( $attributes['content'] ) : __( 'Read more' ); return sprintf( '<a %1$s href="%2$s" target="%3$s">%4$s<span class="screen-reader-text">%5$s</span></a>', $wrapper_attributes, esc_url( get_the_permalink( $post_ID ) ), esc_attr( $attributes['linkTarget'] ), $more_text, $screen_reader_text ); } /** * Registers the `core/read-more` block on the server. * * @since 6.0.0 */ function register_block_core_read_more() { register_block_type_from_metadata( __DIR__ . '/read-more', array( 'render_callback' => 'render_block_core_read_more', ) ); } add_action( 'init', 'register_block_core_read_more' ); tab-list.php 0000775 00000004422 00000000000 0006744 0 ustar 00 <?php /** * Tab List Block * * @package WordPress */ /** * Render callback for core/tab-list. * * Injects IAPI directives into the saved button HTML. The buttons already * carry color/border/padding styles from save.js; this callback adds * tab-specific attributes (id, aria-controls, context) and interactivity * directives using data from the tabs-list context. * * @since 7.1.0 * * @param array $attributes Block attributes. * @param string $content Block content (rendered buttons from save.js). * @param \WP_Block $block WP_Block instance. * * @return string Updated HTML. */ function block_core_tab_list_render_callback( array $attributes, string $content, \WP_Block $block ): string { $tabs_list = $block->context['core/tabs-list'] ?? array(); $aria_label = empty( $attributes['ariaLabel'] ) ? __( 'Tabbed content' ) : wp_strip_all_tags( $attributes['ariaLabel'] ); $tag_processor = new WP_HTML_Tag_Processor( $content ); if ( $tag_processor->next_tag( array( 'class_name' => 'wp-block-tab-list' ) ) ) { $tag_processor->set_attribute( 'aria-label', $aria_label ); } if ( empty( $tabs_list ) ) { return $tag_processor->get_updated_html(); } $tab_index = 0; while ( $tag_processor->next_tag( 'button' ) ) { $tab_id = $tabs_list[ $tab_index ] ?? null; if ( null === $tab_id ) { break; } $tag_processor->set_attribute( 'id', 'tab__' . $tab_id ); $tag_processor->set_attribute( 'aria-controls', $tab_id ); $tag_processor->set_attribute( 'data-wp-on--click', 'actions.handleTabClick' ); $tag_processor->set_attribute( 'data-wp-on--keydown', 'actions.handleTabKeyDown' ); $tag_processor->set_attribute( 'data-wp-bind--aria-selected', 'state.isActiveTab' ); $tag_processor->set_attribute( 'data-wp-bind--tabindex', 'state.tabIndexAttribute' ); $tag_processor->set_attribute( 'data-wp-context', wp_json_encode( array( 'tabIndex' => $tab_index ) ) ); ++$tab_index; } return $tag_processor->get_updated_html(); } /** * Registers the `core/tab-list` block on the server. * * @since 7.1.0 */ function register_block_core_tab_list() { register_block_type_from_metadata( __DIR__ . '/tab-list', array( 'render_callback' => 'block_core_tab_list_render_callback', ) ); } add_action( 'init', 'register_block_core_tab_list' ); query-pagination-next.php 0000775 00000007134 00000000000 0011500 0 ustar 00 <?php /** * Server-side rendering of the `core/query-pagination-next` block. * * @package WordPress */ /** * Renders the `core/query-pagination-next` block on the server. * * @since 5.8.0 * * @global WP_Query $wp_query WordPress Query object. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the next posts link for the query pagination. */ function render_block_core_query_pagination_next( $attributes, $content, $block ) { $page_key = isset( $block->context['queryId'] ) ? 'query-' . $block->context['queryId'] . '-page' : 'query-page'; $enhanced_pagination = (bool) ( $block->context['enhancedPagination'] ?? false ); $page = empty( $_GET[ $page_key ] ) ? 1 : (int) $_GET[ $page_key ]; $max_page = (int) ( $block->context['query']['pages'] ?? 0 ); $wrapper_attributes = get_block_wrapper_attributes(); $show_label = (bool) ( $block->context['showLabel'] ?? true ); $default_label = __( 'Next Page' ); $label_text = isset( $attributes['label'] ) && ! empty( $attributes['label'] ) ? esc_html( $attributes['label'] ) : $default_label; $label = $show_label ? $label_text : ''; $pagination_arrow = get_query_pagination_arrow( $block, true ); if ( ! $label ) { $wrapper_attributes .= ' aria-label="' . $label_text . '"'; } if ( $pagination_arrow ) { $label .= $pagination_arrow; } $content = ''; // Check if the pagination is for Query that inherits the global context. if ( isset( $block->context['query']['inherit'] ) && $block->context['query']['inherit'] ) { $filter_link_attributes = static function () use ( $wrapper_attributes ) { return $wrapper_attributes; }; add_filter( 'next_posts_link_attributes', $filter_link_attributes ); // Take into account if we have set a bigger `max page` // than what the query has. global $wp_query; if ( $max_page > $wp_query->max_num_pages ) { $max_page = $wp_query->max_num_pages; } $content = get_next_posts_link( $label, $max_page ); remove_filter( 'next_posts_link_attributes', $filter_link_attributes ); } elseif ( ! $max_page || $max_page > $page ) { $custom_query = new WP_Query( build_query_vars_from_query_block( $block, $page ) ); $custom_query_max_pages = (int) $custom_query->max_num_pages; if ( $custom_query_max_pages && $custom_query_max_pages !== $page ) { $content = sprintf( '<a href="%1$s" %2$s>%3$s</a>', esc_url( add_query_arg( $page_key, $page + 1 ) ), $wrapper_attributes, $label ); } wp_reset_postdata(); // Restore original Post Data. } if ( $enhanced_pagination && isset( $content ) ) { $p = new WP_HTML_Tag_Processor( $content ); if ( $p->next_tag( array( 'tag_name' => 'a', 'class_name' => 'wp-block-query-pagination-next', ) ) ) { $p->set_attribute( 'data-wp-key', 'query-pagination-next' ); $p->set_attribute( 'data-wp-on--click', 'core/query::actions.navigate' ); $p->set_attribute( 'data-wp-on--mouseenter', 'core/query::actions.prefetch' ); $p->set_attribute( 'data-wp-watch', 'core/query::callbacks.prefetch' ); $content = $p->get_updated_html(); } } return $content; } /** * Registers the `core/query-pagination-next` block on the server. * * @since 5.8.0 */ function register_block_core_query_pagination_next() { register_block_type_from_metadata( __DIR__ . '/query-pagination-next', array( 'render_callback' => 'render_block_core_query_pagination_next', ) ); } add_action( 'init', 'register_block_core_query_pagination_next' ); loginout.php 0000775 00000004113 00000000000 0007062 0 ustar 00 <?php /** * Server-side rendering of the `core/loginout` block. * * @package WordPress */ /** * Renders the `core/loginout` block on server. * * @since 5.8.0 * * @param array $attributes The block attributes. * * @return string Returns the login-out link or form. */ function render_block_core_loginout( $attributes ) { /* * Build the redirect URL. This current url fetching logic matches with the core. * * @see https://github.com/WordPress/wordpress-develop/blob/6bf62e58d21739938f3bb3f9e16ba702baf9c2cc/src/wp-includes/general-template.php#L528. */ $current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; $user_logged_in = is_user_logged_in(); $classes = $user_logged_in ? 'logged-in' : 'logged-out'; $contents = wp_loginout( isset( $attributes['redirectToCurrent'] ) && $attributes['redirectToCurrent'] ? $current_url : '', false ); // If logged-out and displayLoginAsForm is true, show the login form. if ( ! $user_logged_in && ! empty( $attributes['displayLoginAsForm'] ) ) { // Add a class. $classes .= ' has-login-form'; // Get the form. $contents = wp_login_form( array( 'echo' => false ) ); if ( wp_is_block_theme() ) { $processor = new WP_HTML_Tag_Processor( $contents ); while ( $processor->next_tag( 'input' ) ) { if ( 'submit' === $processor->get_attribute( 'type' ) && 'wp-submit' === $processor->get_attribute( 'name' ) ) { $processor->add_class( 'wp-block-button__link' ); $processor->add_class( wp_theme_get_element_class_name( 'button' ) ); $contents = $processor->get_updated_html(); break; } } } } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) ); return '<div ' . $wrapper_attributes . '>' . $contents . '</div>'; } /** * Registers the `core/loginout` block on server. * * @since 5.8.0 */ function register_block_core_loginout() { register_block_type_from_metadata( __DIR__ . '/loginout', array( 'render_callback' => 'render_block_core_loginout', ) ); } add_action( 'init', 'register_block_core_loginout' ); image.php 0000775 00000042352 00000000000 0006313 0 ustar 00 <?php /** * Server-side rendering of the `core/image` block. * * @package WordPress */ /** * Renders the `core/image` block on the server, * adding a data-id attribute to the element if core/gallery has added on pre-render. * * @since 5.9.0 * * @param array $attributes The block attributes. * @param string $content The block content. * @param WP_Block $block The block object. * * @return string The block content with the data-id attribute added. */ function render_block_core_image( $attributes, $content, $block ) { if ( false === stripos( $content, '<img' ) ) { return ''; } $processor = new class( $content ) extends WP_HTML_Tag_Processor { /** * Return input span for an empty FIGCAPTION element. * * Returns span of input for an empty FIGCAPTION, if currently matched on a * FIGCAPTION opening tag and if the element is properly closed and empty. * * @since 6.9.0 * * @return WP_HTML_Span|false Span of input if the element is empty; otherwise false. */ public function block_core_image_extract_empty_figcaption_element() { $this->set_bookmark( 'here' ); $opener = $this->bookmarks['here']; // Allow comments within the definition of “empty.” while ( $this->next_token() && '#comment' === $this->get_token_name() ) { continue; } if ( 'FIGCAPTION' !== $this->get_tag() || ! $this->is_tag_closer() ) { return false; } $this->set_bookmark( 'here' ); $closer = $this->bookmarks['here']; return new WP_HTML_Span( $opener->start, $closer->start + $closer->length - $opener->start ); } }; if ( ! $processor->next_tag( 'img' ) || ! $processor->get_attribute( 'src' ) ) { return ''; } $has_id_binding = isset( $attributes['metadata']['bindings']['id'] ) && isset( $attributes['id'] ); // Ensure the `wp-image-id` classname on the image block supports block bindings. if ( $has_id_binding ) { // If there's a mismatch with the 'wp-image-' class and the actual id, the id was // probably overridden by block bindings. Update it to the correct value. // See https://github.com/WordPress/gutenberg/issues/62886 for why this is needed. $id = $attributes['id']; $image_classnames = $processor->get_attribute( 'class' ); $class_with_binding_value = "wp-image-$id"; if ( is_string( $image_classnames ) && ! str_contains( $image_classnames, $class_with_binding_value ) ) { $image_classnames = preg_replace( '/wp-image-(\d+)/', $class_with_binding_value, $image_classnames ); $processor->set_attribute( 'class', $image_classnames ); } } // For backwards compatibility, the data-id html attribute is only set for // image blocks nested in a gallery. Detect if the image is in a gallery by // checking the data-id attribute. // See the `block_core_gallery_data_id_backcompatibility` function. if ( isset( $attributes['data-id'] ) ) { // If there's a binding for the `id`, the `id` attribute is used for the // value, since `data-id` does not support block bindings. // Else the `data-id` is used for backwards compatibility, since // third parties may be filtering its value. $data_id = $has_id_binding ? $attributes['id'] : $attributes['data-id']; $processor->set_attribute( 'data-id', $data_id ); } /* * If the `caption` attribute is empty and we encounter a `<figcaption>` element, * we take note of its span so we can remove it later. */ if ( $processor->next_tag( 'FIGCAPTION' ) && empty( $attributes['caption'] ) ) { $figcaption_span = $processor->block_core_image_extract_empty_figcaption_element(); } $link_destination = $attributes['linkDestination'] ?? 'none'; $lightbox_settings = block_core_image_get_lightbox_settings( $block->parsed_block ); /* * If the lightbox is enabled and the image is not linked, adds the filter and * the JavaScript view file. */ if ( isset( $lightbox_settings ) && 'none' === $link_destination && isset( $lightbox_settings['enabled'] ) && true === $lightbox_settings['enabled'] ) { wp_enqueue_script_module( '@wordpress/block-library/image/view' ); /* * This render needs to happen in a filter with priority 15 to ensure that * it runs after the duotone filter and that duotone styles are applied to * the image in the lightbox. Lightbox has to work with any plugins that * might use filters as well. Removing this can be considered in the future * if the way the blocks are rendered changes, or if a new kind of filter is * introduced. */ add_filter( 'render_block_core/image', 'block_core_image_render_lightbox', 15, 3 ); } else { /* * Remove the filter if previously added by other Image blocks. */ remove_filter( 'render_block_core/image', 'block_core_image_render_lightbox', 15 ); } $output = $processor->get_updated_html(); if ( ! empty( $figcaption_span ) ) { return substr( $output, 0, $figcaption_span->start ) . substr( $output, $figcaption_span->start + $figcaption_span->length ); } return $output; } /** * Adds the lightboxEnabled flag to the block data. * * This is used to determine whether the lightbox should be rendered or not. * * @since 6.4.0 * * @param array $block Block data. * * @return array|null Filtered block data. */ function block_core_image_get_lightbox_settings( $block ) { // Gets the lightbox setting from the block attributes. if ( isset( $block['attrs']['lightbox'] ) ) { $lightbox_settings = $block['attrs']['lightbox']; } if ( ! isset( $lightbox_settings ) ) { $lightbox_settings = wp_get_global_settings( array( 'lightbox' ), array( 'block_name' => 'core/image' ) ); // If not present in global settings, check the top-level global settings. // // NOTE: If no block-level settings are found, the previous call to // `wp_get_global_settings` will return the whole `theme.json` structure in // which case we can check if the "lightbox" key is present at the top-level // of the global settings and use its value. if ( isset( $lightbox_settings['lightbox'] ) ) { $lightbox_settings = wp_get_global_settings( array( 'lightbox' ) ); } } return $lightbox_settings ?? null; } /** * Adds the directives and layout needed for the lightbox behavior. * * @since 6.4.0 * * @param string $block_content Rendered block content. * @param array $block Block object. * @param WP_Block $block_instance Block instance. * * @return string Filtered block content. */ function block_core_image_render_lightbox( $block_content, array $block, WP_Block $block_instance ) { /* * If there's no IMG tag in the block then return the given block content * as-is. There's nothing that this code can knowingly modify to add the * lightbox behavior. */ $processor = new WP_HTML_Tag_Processor( $block_content ); if ( $processor->next_tag( 'figure' ) ) { $processor->set_bookmark( 'figure' ); } if ( ! $processor->next_tag( 'img' ) ) { return $block_content; } $alt = $processor->get_attribute( 'alt' ); $img_uploaded_src = $processor->get_attribute( 'src' ); $img_class_names = $processor->get_attribute( 'class' ); $img_styles = $processor->get_attribute( 'style' ); $img_width = 'none'; $img_height = 'none'; $img_srcset = false; wp_interactivity_config( 'core/image', array( 'defaultAriaLabel' => __( 'Enlarged image' ), 'closeButtonText' => esc_html__( 'Close' ), 'prevButtonText' => esc_html_x( 'Previous', 'previous image in lightbox' ), 'nextButtonText' => esc_html_x( 'Next', 'next image in lightbox' ), ) ); if ( $alt ) { /* translators: %s: Image alt text. */ $custom_aria_label = sprintf( __( 'Enlarged image: %s' ), $alt ); } if ( isset( $block['attrs']['id'] ) ) { $img_uploaded_src = wp_get_attachment_url( $block['attrs']['id'] ); $img_metadata = wp_get_attachment_metadata( $block['attrs']['id'] ); $has_dimensions = ( $img_metadata['width'] ?? '' ) && ( $img_metadata['height'] ?? '' ); $srcset_size = $has_dimensions ? array( $img_metadata['width'], $img_metadata['height'] ) : 'large'; $img_srcset = wp_get_attachment_image_srcset( $block['attrs']['id'], $srcset_size ); $img_width = $img_metadata['width'] ?? 'none'; $img_height = $img_metadata['height'] ?? 'none'; } // Figure. $processor->seek( 'figure' ); $figure_class_names = $processor->get_attribute( 'class' ); $figure_styles = $processor->get_attribute( 'style' ); // Create unique id and set the image metadata in the state. $unique_image_id = uniqid(); wp_interactivity_state( 'core/image', array( 'metadata' => array( $unique_image_id => array( 'uploadedSrc' => $img_uploaded_src, 'lightboxSrcset' => $img_srcset, 'figureClassNames' => $figure_class_names, 'figureStyles' => $figure_styles, 'imgClassNames' => $img_class_names, 'imgStyles' => $img_styles, 'targetWidth' => $img_width, 'targetHeight' => $img_height, 'scaleAttr' => $block['attrs']['scale'] ?? false, 'alt' => $alt, 'galleryId' => $block_instance->context['galleryId'] ?? null, 'customAriaLabel' => $custom_aria_label ?? null, 'navigationButtonType' => $block_instance->context['navigationButtonType'] ?? 'icon', 'triggerButtonAriaLabel' => __( 'Enlarge' ), ), ), ) ); $processor->add_class( 'wp-lightbox-container' ); $processor->set_attribute( 'data-wp-interactive', 'core/image' ); $processor->set_attribute( 'data-wp-context', wp_json_encode( array( 'imageId' => $unique_image_id ), JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_QUOT | JSON_HEX_AMP ) ); $processor->set_attribute( 'data-wp-key', $unique_image_id ); // Image. $processor->next_tag( 'img' ); $processor->set_attribute( 'data-wp-init', 'callbacks.setButtonStyles' ); $processor->set_attribute( 'data-wp-on--load', 'callbacks.setButtonStyles' ); $processor->set_attribute( 'data-wp-on-window--resize', 'callbacks.setButtonStyles' ); // Set an event to preload the image on pointerenter and pointerdown(mobile). // Pointerleave is used to cancel the preload if the user hovers away from the image // before the predefined delay. $processor->set_attribute( 'data-wp-on--pointerenter', 'actions.preloadImageWithDelay' ); $processor->set_attribute( 'data-wp-on--pointerdown', 'actions.preloadImage' ); $processor->set_attribute( 'data-wp-on--pointerleave', 'actions.cancelPreload' ); // Sets an event callback on the `img` because the `figure` element can also // contain a caption, and we don't want to trigger the lightbox when the // caption is clicked. $processor->set_attribute( 'data-wp-on--click', 'actions.showLightbox' ); $processor->set_attribute( 'data-wp-class--hide', 'state.isContentHidden' ); $processor->set_attribute( 'data-wp-class--show', 'state.isContentVisible' ); $body_content = $processor->get_updated_html(); // Adds a button alongside image in the body content. $img = null; preg_match( '/<img[^>]+>/', $body_content, $img ); $button = $img[0] . '<button class="lightbox-trigger" type="button" aria-haspopup="dialog" data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel" data-wp-init="callbacks.initTriggerButton" data-wp-on--click="actions.showLightbox" data-wp-style--right="state.thisImage.buttonRight" data-wp-style--top="state.thisImage.buttonTop" > <svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12"> <path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" /> </svg> </button>'; $body_content = preg_replace( '/<img[^>]+>/', $button, $body_content ); add_action( 'wp_footer', 'block_core_image_print_lightbox_overlay' ); return $body_content; } /** * @since 6.5.0 */ function block_core_image_print_lightbox_overlay() { $dialog_label = esc_attr__( 'Enlarged images' ); $close_button_text = esc_attr__( 'Close' ); $prev_button_text = esc_attr_x( 'Previous', 'previous image in lightbox' ); $next_button_text = esc_attr_x( 'Next', 'next image in lightbox' ); $close_button_icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" aria-hidden="true" focusable="false"><path d="m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z"></path></svg>'; $prev_button_icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="28" height="28" aria-hidden="true" focusable="false"><path d="M14.6 7l-1.2-1L8 12l5.4 6 1.2-1-4.6-5z"></path></svg>'; $next_button_icon = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="28" height="28" aria-hidden="true" focusable="false"><path d="M10.6 6L9.4 7l4.6 5-4.6 5 1.2 1 5.4-6z"></path></svg>'; // If the current theme does NOT have a `theme.json`, or the colors are not // defined, it needs to set the background color & close button color to some // default values because it can't get them from the Global Styles. $background_color = '#fff'; $close_button_color = '#000'; if ( wp_theme_has_theme_json() ) { $global_styles_color = wp_get_global_styles( array( 'color' ) ); if ( ! empty( $global_styles_color['background'] ) ) { $background_color = esc_attr( $global_styles_color['background'] ); } if ( ! empty( $global_styles_color['text'] ) ) { $close_button_color = esc_attr( $global_styles_color['text'] ); } } echo <<<HTML <div class="wp-lightbox-overlay zoom" aria-label="{$dialog_label}" data-wp-interactive="core/image" data-wp-router-region='{ "id": "core/image-overlay", "attachTo": "body" }' data-wp-key="wp-lightbox-overlay" data-wp-context='{}' data-wp-bind--role="state.roleAttribute" data-wp-bind--aria-label="state.ariaLabel" data-wp-bind--aria-modal="state.ariaModal" data-wp-class--active="state.overlayEnabled" data-wp-class--show-closing-animation="state.overlayOpened" data-wp-watch---focus="callbacks.setOverlayFocus" data-wp-watch---inert="callbacks.setInertElements" data-wp-on--keydown="actions.handleKeydown" data-wp-on--touchstart="actions.handleTouchStart" data-wp-on--touchmove="actions.handleTouchMove" data-wp-on--touchend="actions.handleTouchEnd" data-wp-on--click="actions.hideLightbox" data-wp-on-window--resize="callbacks.setOverlayStyles" data-wp-on-window--scroll="actions.handleScroll" data-wp-bind--style="state.overlayStyles" tabindex="-1" > <button type="button" style="fill:{$close_button_color}" class="wp-lightbox-close-button" data-wp-bind--aria-label="state.closeButtonAriaLabel"> <span class="wp-lightbox-close-icon" data-wp-bind--hidden="!state.hasNavigationIcon">{$close_button_icon}</span> <span class="wp-lightbox-close-text" data-wp-bind--hidden="!state.hasNavigationText">{$close_button_text}</span> </button> <button type="button" style="fill:{$close_button_color}" class="wp-lightbox-navigation-button wp-lightbox-navigation-button-prev" data-wp-bind--hidden="!state.hasNavigation" data-wp-on--click="actions.showPreviousImage" data-wp-bind--aria-label="state.prevButtonAriaLabel"> <span class="wp-lightbox-navigation-icon" data-wp-bind--hidden="!state.hasNavigationIcon">{$prev_button_icon}</span> <span class="wp-lightbox-navigation-text" data-wp-bind--hidden="!state.hasNavigationText">{$prev_button_text}</span> </button> <div class="lightbox-image-container"> <figure data-wp-bind--class="state.selectedImage.figureClassNames" data-wp-bind--style="state.figureStyles"> <img data-wp-bind--alt="state.selectedImage.alt" data-wp-bind--class="state.selectedImage.imgClassNames" data-wp-bind--style="state.imgStyles" data-wp-bind--src="state.selectedImage.currentSrc"> </figure> </div> <div class="lightbox-image-container"> <figure data-wp-bind--class="state.selectedImage.figureClassNames" data-wp-bind--style="state.figureStyles"> <img data-wp-bind--alt="state.selectedImage.alt" data-wp-bind--class="state.selectedImage.imgClassNames" data-wp-bind--style="state.imgStyles" data-wp-bind--src="state.enlargedSrc" data-wp-bind--srcset="state.enlargedSrcset" sizes="100vw" > </figure> </div> <button type="button" style="fill:{$close_button_color}" class="wp-lightbox-navigation-button wp-lightbox-navigation-button-next" data-wp-bind--hidden="!state.hasNavigation" data-wp-on--click="actions.showNextImage" data-wp-bind--aria-label="state.nextButtonAriaLabel"> <span class="wp-lightbox-navigation-text" data-wp-bind--hidden="!state.hasNavigationText">{$next_button_text}</span> <span class="wp-lightbox-navigation-icon" data-wp-bind--hidden="!state.hasNavigationIcon">{$next_button_icon}</span> </button> <div data-wp-text="state.ariaLabel" aria-live="polite" aria-atomic="true" class="screen-reader-text"></div> <div class="scrim" style="background-color: {$background_color}" aria-hidden="true"></div> </div> HTML; } /** * Registers the `core/image` block on server. * * @since 5.9.0 */ function register_block_core_image() { register_block_type_from_metadata( __DIR__ . '/image', array( 'render_callback' => 'render_block_core_image', ) ); } add_action( 'init', 'register_block_core_image' ); tag-cloud/style-rtl.css 0000775 00000001136 00000000000 0011043 0 ustar 00 .wp-block-tag-cloud { box-sizing: border-box; } .wp-block-tag-cloud.aligncenter { text-align: center; justify-content: center; } .wp-block-tag-cloud a { display: inline-block; margin-left: 5px; } .wp-block-tag-cloud span { display: inline-block; margin-right: 5px; text-decoration: none; } :root :where(.wp-block-tag-cloud.is-style-outline) { display: flex; flex-wrap: wrap; gap: 1ch; } :root :where(.wp-block-tag-cloud.is-style-outline a) { border: 1px solid currentColor; font-size: unset !important; margin-left: 0; padding: 1ch 2ch; text-decoration: none !important; } tag-cloud/style.min.css 0000775 00000000767 00000000000 0011037 0 ustar 00 .wp-block-tag-cloud{box-sizing:border-box}.wp-block-tag-cloud.aligncenter{justify-content:center;text-align:center}.wp-block-tag-cloud a{display:inline-block;margin-right:5px}.wp-block-tag-cloud span{display:inline-block;margin-left:5px;text-decoration:none}:root :where(.wp-block-tag-cloud.is-style-outline){display:flex;flex-wrap:wrap;gap:1ch}:root :where(.wp-block-tag-cloud.is-style-outline a){border:1px solid;font-size:unset!important;margin-right:0;padding:1ch 2ch;text-decoration:none!important} tag-cloud/block.json 0000775 00000002615 00000000000 0010362 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/tag-cloud", "title": "Tag Cloud", "category": "widgets", "description": "A cloud of popular keywords, each sized by how often it appears.", "textdomain": "default", "attributes": { "numberOfTags": { "type": "number", "default": 45, "minimum": 1, "maximum": 100 }, "taxonomy": { "type": "string", "default": "post_tag" }, "showTagCounts": { "type": "boolean", "default": false }, "smallestFontSize": { "type": "string", "default": "8pt" }, "largestFontSize": { "type": "string", "default": "22pt" } }, "styles": [ { "name": "default", "label": "Default", "isDefault": true }, { "name": "outline", "label": "Outline" } ], "supports": { "anchor": true, "html": false, "align": true, "spacing": { "margin": true, "padding": true }, "typography": { "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalLetterSpacing": true }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } } } tag-cloud/style-rtl.min.css 0000775 00000000766 00000000000 0011635 0 ustar 00 .wp-block-tag-cloud{box-sizing:border-box}.wp-block-tag-cloud.aligncenter{justify-content:center;text-align:center}.wp-block-tag-cloud a{display:inline-block;margin-left:5px}.wp-block-tag-cloud span{display:inline-block;margin-right:5px;text-decoration:none}:root :where(.wp-block-tag-cloud.is-style-outline){display:flex;flex-wrap:wrap;gap:1ch}:root :where(.wp-block-tag-cloud.is-style-outline a){border:1px solid;font-size:unset!important;margin-left:0;padding:1ch 2ch;text-decoration:none!important} tag-cloud/style.css 0000775 00000001137 00000000000 0010245 0 ustar 00 .wp-block-tag-cloud { box-sizing: border-box; } .wp-block-tag-cloud.aligncenter { text-align: center; justify-content: center; } .wp-block-tag-cloud a { display: inline-block; margin-right: 5px; } .wp-block-tag-cloud span { display: inline-block; margin-left: 5px; text-decoration: none; } :root :where(.wp-block-tag-cloud.is-style-outline) { display: flex; flex-wrap: wrap; gap: 1ch; } :root :where(.wp-block-tag-cloud.is-style-outline a) { border: 1px solid currentColor; font-size: unset !important; margin-right: 0; padding: 1ch 2ch; text-decoration: none !important; } comment-date.php 0000775 00000003511 00000000000 0007600 0 ustar 00 <?php /** * Server-side rendering of the `core/comment-date` block. * * @package WordPress */ /** * Renders the `core/comment-date` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Return the post comment's date. */ function render_block_core_comment_date( $attributes, $content, $block ) { if ( ! isset( $block->context['commentId'] ) ) { return ''; } $comment = get_comment( $block->context['commentId'] ); if ( empty( $comment ) ) { return ''; } $classes = ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) ? 'has-link-color' : ''; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $classes ) ); if ( isset( $attributes['format'] ) && 'human-diff' === $attributes['format'] ) { // translators: %s: human-readable time difference. $formatted_date = sprintf( __( '%s ago' ), human_time_diff( get_comment_date( 'U', $comment ) ) ); } else { $formatted_date = get_comment_date( empty( $attributes['format'] ) ? '' : $attributes['format'], $comment ); } $link = get_comment_link( $comment ); if ( ! empty( $attributes['isLink'] ) ) { $formatted_date = sprintf( '<a href="%1$s">%2$s</a>', esc_url( $link ), $formatted_date ); } return sprintf( '<div %1$s><time datetime="%2$s">%3$s</time></div>', $wrapper_attributes, esc_attr( get_comment_date( 'c', $comment ) ), $formatted_date ); } /** * Registers the `core/comment-date` block on the server. * * @since 6.0.0 */ function register_block_core_comment_date() { register_block_type_from_metadata( __DIR__ . '/comment-date', array( 'render_callback' => 'render_block_core_comment_date', ) ); } add_action( 'init', 'register_block_core_comment_date' ); code/editor.css 0000775 00000000053 00000000000 0007422 0 ustar 00 .wp-block-code code { background: none; } code/editor.min.css 0000775 00000000044 00000000000 0010204 0 ustar 00 .wp-block-code code{background:none} code/style-rtl.css 0000775 00000000321 00000000000 0010071 0 ustar 00 .wp-block-code { box-sizing: border-box; } .wp-block-code code { display: block; font-family: inherit; overflow-wrap: break-word; white-space: break-spaces; direction: ltr; text-align: initial; } code/theme-rtl.min.css 0000775 00000000164 00000000000 0010622 0 ustar 00 .wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em} code/editor-rtl.min.css 0000775 00000000044 00000000000 0011003 0 ustar 00 .wp-block-code code{background:none} code/style.min.css 0000775 00000000256 00000000000 0010063 0 ustar 00 .wp-block-code{box-sizing:border-box}.wp-block-code code{direction:ltr;display:block;font-family:inherit;overflow-wrap:break-word;text-align:initial;white-space:break-spaces} code/theme-rtl.css 0000775 00000000213 00000000000 0010033 0 ustar 00 .wp-block-code { border: 1px solid #ccc; border-radius: 4px; font-family: Menlo, Consolas, monaco, monospace; padding: 0.8em 1em; } code/block.json 0000775 00000002622 00000000000 0007413 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/code", "title": "Code", "category": "text", "description": "Display code snippets that respect your spacing and tabs.", "textdomain": "default", "attributes": { "content": { "type": "rich-text", "source": "rich-text", "selector": "code", "__unstablePreserveWhiteSpace": true, "role": "content" } }, "supports": { "align": [ "wide" ], "anchor": true, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "spacing": { "margin": [ "top", "bottom" ], "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "width": true, "color": true } }, "color": { "text": true, "background": true, "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "interactivity": { "clientNavigation": true } }, "style": "wp-block-code" } code/style-rtl.min.css 0000775 00000000256 00000000000 0010662 0 ustar 00 .wp-block-code{box-sizing:border-box}.wp-block-code code{direction:ltr;display:block;font-family:inherit;overflow-wrap:break-word;text-align:initial;white-space:break-spaces} code/style.css 0000775 00000000377 00000000000 0007305 0 ustar 00 .wp-block-code { box-sizing: border-box; } .wp-block-code code { display: block; font-family: inherit; overflow-wrap: break-word; white-space: break-spaces; /*!rtl:begin:ignore*/ direction: ltr; text-align: initial; /*!rtl:end:ignore*/ } code/editor-rtl.css 0000775 00000000053 00000000000 0010221 0 ustar 00 .wp-block-code code { background: none; } code/theme.css 0000775 00000000213 00000000000 0007234 0 ustar 00 .wp-block-code { border: 1px solid #ccc; border-radius: 4px; font-family: Menlo, Consolas, monaco, monospace; padding: 0.8em 1em; } code/theme.min.css 0000775 00000000164 00000000000 0010023 0 ustar 00 .wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em} navigation-overlay-close/style-rtl.css 0000775 00000001052 00000000000 0014102 0 ustar 00 .wp-block-navigation-overlay-close { display: inline-flex; align-items: center; justify-content: center; gap: 0.5em; padding: 0; border: none; background: transparent; cursor: pointer; text-decoration: none; } .wp-block-navigation-overlay-close:focus { outline-offset: 2px; } .wp-block-navigation-overlay-close svg { width: 24px; height: 24px; fill: currentColor; display: block; flex-shrink: 0; } .wp-block-navigation-overlay-close .wp-block-navigation-overlay-close__text { display: inline-flex; align-items: center; } navigation-overlay-close/style.min.css 0000775 00000000726 00000000000 0014074 0 ustar 00 .wp-block-navigation-overlay-close{align-items:center;background:transparent;border:none;cursor:pointer;display:inline-flex;gap:.5em;justify-content:center;padding:0;text-decoration:none}.wp-block-navigation-overlay-close:focus{outline-offset:2px}.wp-block-navigation-overlay-close svg{fill:currentColor;display:block;flex-shrink:0;height:24px;width:24px}.wp-block-navigation-overlay-close .wp-block-navigation-overlay-close__text{align-items:center;display:inline-flex} navigation-overlay-close/block.json 0000775 00000002165 00000000000 0013424 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/navigation-overlay-close", "title": "Navigation Overlay Close", "category": "design", "description": "A customizable button to close overlays.", "keywords": [ "close", "overlay", "navigation", "menu" ], "textdomain": "default", "attributes": { "displayMode": { "type": "string", "enum": [ "icon", "text", "both" ], "default": "icon" }, "text": { "type": "string" } }, "supports": { "color": { "gradients": false, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "padding": true, "__experimentalDefaultControls": { "padding": true } }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } } }, "style": "wp-block-navigation-overlay-close" } navigation-overlay-close/style-rtl.min.css 0000775 00000000726 00000000000 0014673 0 ustar 00 .wp-block-navigation-overlay-close{align-items:center;background:transparent;border:none;cursor:pointer;display:inline-flex;gap:.5em;justify-content:center;padding:0;text-decoration:none}.wp-block-navigation-overlay-close:focus{outline-offset:2px}.wp-block-navigation-overlay-close svg{fill:currentColor;display:block;flex-shrink:0;height:24px;width:24px}.wp-block-navigation-overlay-close .wp-block-navigation-overlay-close__text{align-items:center;display:inline-flex} navigation-overlay-close/style.css 0000775 00000001052 00000000000 0013303 0 ustar 00 .wp-block-navigation-overlay-close { display: inline-flex; align-items: center; justify-content: center; gap: 0.5em; padding: 0; border: none; background: transparent; cursor: pointer; text-decoration: none; } .wp-block-navigation-overlay-close:focus { outline-offset: 2px; } .wp-block-navigation-overlay-close svg { width: 24px; height: 24px; fill: currentColor; display: block; flex-shrink: 0; } .wp-block-navigation-overlay-close .wp-block-navigation-overlay-close__text { display: inline-flex; align-items: center; } post-time-to-read/style-rtl.css 0000775 00000000071 00000000000 0012433 0 ustar 00 .wp-block-post-time-to-read { box-sizing: border-box; } post-time-to-read/style.min.css 0000775 00000000062 00000000000 0012416 0 ustar 00 .wp-block-post-time-to-read{box-sizing:border-box} post-time-to-read/block.json 0000775 00000002605 00000000000 0011754 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/post-time-to-read", "title": "Time to Read", "category": "theme", "description": "Show minutes required to finish reading the post. Can also show a word count.", "textdomain": "default", "usesContext": [ "postId", "postType" ], "attributes": { "displayAsRange": { "type": "boolean", "default": true }, "displayMode": { "type": "string", "default": "time" }, "averageReadingSpeed": { "type": "number", "default": 189 } }, "supports": { "anchor": true, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "html": false, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true } } } post-time-to-read/style-rtl.min.css 0000775 00000000062 00000000000 0013215 0 ustar 00 .wp-block-post-time-to-read{box-sizing:border-box} post-time-to-read/style.css 0000775 00000000071 00000000000 0011634 0 ustar 00 .wp-block-post-time-to-read { box-sizing: border-box; } template-part.php 0000775 00000023354 00000000000 0010011 0 ustar 00 <?php /** * Server-side rendering of the `core/template-part` block. * * @package WordPress */ /** * Renders the `core/template-part` block on the server. * * @since 5.9.0 * * @global WP_Embed $wp_embed WordPress Embed object. * * @param array $attributes The block attributes. * * @return string The render. */ function render_block_core_template_part( $attributes ) { static $seen_ids = array(); $template_part_id = null; $content = null; $area = WP_TEMPLATE_PART_AREA_UNCATEGORIZED; $theme = $attributes['theme'] ?? get_stylesheet(); if ( isset( $attributes['slug'] ) && get_stylesheet() === $theme ) { $template_part_id = $theme . '//' . $attributes['slug']; $template_part_query = new WP_Query( array( 'post_type' => 'wp_template_part', 'post_status' => 'publish', 'post_name__in' => array( $attributes['slug'] ), 'tax_query' => array( array( 'taxonomy' => 'wp_theme', 'field' => 'name', 'terms' => $theme, ), ), 'posts_per_page' => 1, 'no_found_rows' => true, 'lazy_load_term_meta' => false, // Do not lazy load term meta, as template parts only have one term. ) ); $template_part_post = $template_part_query->have_posts() ? $template_part_query->next_post() : null; if ( $template_part_post ) { // A published post might already exist if this template part was customized elsewhere // or if it's part of a customized template. $block_template = _build_block_template_result_from_post( $template_part_post ); $content = $block_template->content; if ( isset( $block_template->area ) ) { $area = $block_template->area; } /** * Fires when a block template part is loaded from a template post stored in the database. * * @since 5.9.0 * * @param string $template_part_id The requested template part namespaced to the theme. * @param array $attributes The block attributes. * @param WP_Post $template_part_post The template part post object. * @param string $content The template part content. */ do_action( 'render_block_core_template_part_post', $template_part_id, $attributes, $template_part_post, $content ); } else { $template_part_file_path = ''; // Else, if the template part was provided by the active theme, // render the corresponding file content. if ( 0 === validate_file( $attributes['slug'] ) ) { $block_template = get_block_file_template( $template_part_id, 'wp_template_part' ); if ( isset( $block_template->content ) ) { $content = $block_template->content; } if ( isset( $block_template->area ) ) { $area = $block_template->area; } // Needed for the `render_block_core_template_part_file` and `render_block_core_template_part_none` actions below. $block_template_file = _get_block_template_file( 'wp_template_part', $attributes['slug'] ); if ( $block_template_file ) { $template_part_file_path = $block_template_file['path']; } } if ( '' !== $content && null !== $content ) { /** * Fires when a block template part is loaded from a template part in the theme. * * @since 5.9.0 * * @param string $template_part_id The requested template part namespaced to the theme. * @param array $attributes The block attributes. * @param string $template_part_file_path Absolute path to the template path. * @param string $content The template part content. */ do_action( 'render_block_core_template_part_file', $template_part_id, $attributes, $template_part_file_path, $content ); } else { /** * Fires when a requested block template part does not exist in the database nor in the theme. * * @since 5.9.0 * * @param string $template_part_id The requested template part namespaced to the theme. * @param array $attributes The block attributes. * @param string $template_part_file_path Absolute path to the not found template path. */ do_action( 'render_block_core_template_part_none', $template_part_id, $attributes, $template_part_file_path ); } } } // WP_DEBUG_DISPLAY must only be honored when WP_DEBUG. This precedent // is set in `wp_debug_mode()`. $is_debug = WP_DEBUG && WP_DEBUG_DISPLAY; if ( is_null( $content ) ) { if ( $is_debug && isset( $attributes['slug'] ) ) { return sprintf( /* translators: %s: Template part slug. */ __( 'Template part has been deleted or is unavailable: %s' ), $attributes['slug'] ); } return ''; } if ( isset( $seen_ids[ $template_part_id ] ) ) { return $is_debug ? // translators: Visible only in the front end, this warning takes the place of a faulty block. __( '[block rendering halted]' ) : ''; } // Look up area definition. $area_definition = null; $defined_areas = get_allowed_block_template_part_areas(); foreach ( $defined_areas as $defined_area ) { if ( $defined_area['area'] === $area ) { $area_definition = $defined_area; break; } } // If $area is not allowed, set it back to the uncategorized default. if ( ! $area_definition ) { $area = WP_TEMPLATE_PART_AREA_UNCATEGORIZED; } // Run through the actions that are typically taken on the_content. $content = _wp_apply_block_content_filters( $content, "template_part_{$area}", $seen_ids, $template_part_id ); if ( empty( $attributes['tagName'] ) || tag_escape( $attributes['tagName'] ) !== $attributes['tagName'] ) { $area_tag = 'div'; if ( $area_definition && isset( $area_definition['area_tag'] ) ) { $area_tag = $area_definition['area_tag']; } $html_tag = $area_tag; } else { $html_tag = esc_attr( $attributes['tagName'] ); } $wrapper_attributes = get_block_wrapper_attributes(); return "<$html_tag $wrapper_attributes>" . str_replace( ']]>', ']]>', $content ) . "</$html_tag>"; } /** * Returns an array of area variation objects for the template part block. * * @since 6.1.0 * * @param array $instance_variations The variations for instances. * * @return array Array containing the block variation objects. */ function build_template_part_block_area_variations( $instance_variations ) { $variations = array(); $defined_areas = get_allowed_block_template_part_areas(); foreach ( $defined_areas as $area ) { if ( 'uncategorized' !== $area['area'] && 'navigation-overlay' !== $area['area'] ) { $has_instance_for_area = false; foreach ( $instance_variations as $variation ) { if ( $variation['attributes']['area'] === $area['area'] ) { $has_instance_for_area = true; break; } } $scope = $has_instance_for_area ? array() : array( 'inserter' ); $variations[] = array( 'name' => 'area_' . $area['area'], 'title' => $area['label'], 'description' => $area['description'], 'attributes' => array( 'area' => $area['area'], ), 'scope' => $scope, 'icon' => $area['icon'], ); } } return $variations; } /** * Returns an array of instance variation objects for the template part block * * @since 6.1.0 * * @return array Array containing the block variation objects. */ function build_template_part_block_instance_variations() { // Block themes are unavailable during installation. if ( wp_installing() ) { return array(); } if ( ! current_theme_supports( 'block-templates' ) && ! current_theme_supports( 'block-template-parts' ) ) { return array(); } $variations = array(); $template_parts = get_block_templates( array( 'post_type' => 'wp_template_part', ), 'wp_template_part' ); $defined_areas = get_allowed_block_template_part_areas(); $icon_by_area = array_combine( array_column( $defined_areas, 'area' ), array_column( $defined_areas, 'icon' ) ); foreach ( $template_parts as $template_part ) { // Navigation overlay template parts should not appear in the // general inserter. They are managed through the Navigation // block's overlay template part selector. $scope = ( 'navigation-overlay' === $template_part->area ) ? array() : array( 'inserter' ); $variations[] = array( 'name' => 'instance_' . sanitize_title( $template_part->slug ), 'title' => $template_part->title, // If there's no description for the template part don't show the // block description. This is a bit hacky, but prevent the fallback // by using a non-breaking space so that the value of description // isn't falsey. 'description' => $template_part->description || ' ', 'attributes' => array( 'slug' => $template_part->slug, 'theme' => $template_part->theme, 'area' => $template_part->area, ), 'scope' => $scope, 'icon' => $icon_by_area[ $template_part->area ] ?? null, 'example' => array( 'attributes' => array( 'slug' => $template_part->slug, 'theme' => $template_part->theme, 'area' => $template_part->area, ), ), ); } return $variations; } /** * Returns an array of all template part block variations. * * @since 5.9.0 * * @return array Array containing the block variation objects. */ function build_template_part_block_variations() { $instance_variations = build_template_part_block_instance_variations(); $area_variations = build_template_part_block_area_variations( $instance_variations ); return array_merge( $area_variations, $instance_variations ); } /** * Registers the `core/template-part` block on the server. * * @since 5.9.0 */ function register_block_core_template_part() { register_block_type_from_metadata( __DIR__ . '/template-part', array( 'render_callback' => 'render_block_core_template_part', 'variation_callback' => 'build_template_part_block_variations', ) ); } add_action( 'init', 'register_block_core_template_part' ); site-tagline.php 0000775 00000002263 00000000000 0007613 0 ustar 00 <?php /** * Server-side rendering of the `core/site-tagline` block. * * @package WordPress */ /** * Renders the `core/site-tagline` block on the server. * * @since 5.8.0 * * @param array $attributes The block attributes. * * @return string The render. */ function render_block_core_site_tagline( $attributes ) { $site_tagline = get_bloginfo( 'description' ); if ( ! $site_tagline ) { return; } $tag_name = 'p'; $align_class_name = empty( $attributes['textAlign'] ) ? '' : "has-text-align-{$attributes['textAlign']}"; $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => $align_class_name ) ); if ( isset( $attributes['level'] ) && 0 !== $attributes['level'] ) { $tag_name = 'h' . (int) $attributes['level']; } return sprintf( '<%1$s %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, $site_tagline ); } /** * Registers the `core/site-tagline` block on the server. * * @since 5.8.0 */ function register_block_core_site_tagline() { register_block_type_from_metadata( __DIR__ . '/site-tagline', array( 'render_callback' => 'render_block_core_site_tagline', ) ); } add_action( 'init', 'register_block_core_site_tagline' ); media-text.php 0000775 00000010312 00000000000 0007261 0 ustar 00 <?php /** * Server-side rendering of the `core/media-text` block. * * @package WordPress */ /** * Renders the `core/media-text` block on server. * * @since 6.6.0 * * @param array $attributes The block attributes. * @param string $content The block rendered content. * * @return string Returns the Media & Text block markup, if useFeaturedImage is true. */ function render_block_core_media_text( $attributes, $content ) { if ( false === $attributes['useFeaturedImage'] ) { return $content; } if ( in_the_loop() ) { update_post_thumbnail_cache(); } $current_featured_image = get_the_post_thumbnail_url(); if ( ! $current_featured_image ) { return $content; } $has_media_on_right = 'right' === ( $attributes['mediaPosition'] ?? null ); $image_fill = (bool) ( $attributes['imageFill'] ?? false ); $focal_point = isset( $attributes['focalPoint'] ) ? round( $attributes['focalPoint']['x'] * 100 ) . '% ' . round( $attributes['focalPoint']['y'] * 100 ) . '%' : '50% 50%'; $unique_id = 'wp-block-media-text__media-' . wp_unique_id(); $block_tag_processor = new WP_HTML_Tag_Processor( $content ); $block_query = array( 'tag_name' => 'div', 'class_name' => 'wp-block-media-text', ); while ( $block_tag_processor->next_tag( $block_query ) ) { if ( $image_fill ) { // The markup below does not work with the deprecated `is-image-fill` class. $block_tag_processor->remove_class( 'is-image-fill' ); $block_tag_processor->add_class( 'is-image-fill-element' ); } } $content = $block_tag_processor->get_updated_html(); $media_tag_processor = new WP_HTML_Tag_Processor( $content ); $wrapping_figure_query = array( 'tag_name' => 'figure', 'class_name' => 'wp-block-media-text__media', ); if ( $has_media_on_right ) { // Loop through all the figure tags and set a bookmark on the last figure tag. while ( $media_tag_processor->next_tag( $wrapping_figure_query ) ) { $media_tag_processor->set_bookmark( 'last_figure' ); } if ( $media_tag_processor->has_bookmark( 'last_figure' ) ) { $media_tag_processor->seek( 'last_figure' ); // Insert a unique ID to identify the figure tag. $media_tag_processor->set_attribute( 'id', $unique_id ); } } else { if ( $media_tag_processor->next_tag( $wrapping_figure_query ) ) { // Insert a unique ID to identify the figure tag. $media_tag_processor->set_attribute( 'id', $unique_id ); } } $content = $media_tag_processor->get_updated_html(); // Add the image tag inside the figure tag, and update the image attributes // in order to display the featured image. $media_size_slug = $attributes['mediaSizeSlug'] ?? 'full'; $image_tag = '<img class="wp-block-media-text__featured_image">'; $content = preg_replace( '/(<figure\s+id="' . preg_quote( $unique_id, '/' ) . '"\s+class="wp-block-media-text__media"\s*>)/', '$1' . $image_tag, $content ); $image_tag_processor = new WP_HTML_Tag_Processor( $content ); if ( $image_tag_processor->next_tag( array( 'tag_name' => 'figure', 'id' => $unique_id, ) ) ) { // The ID is only used to ensure that the correct figure tag is selected, // and can now be removed. $image_tag_processor->remove_attribute( 'id' ); if ( $image_tag_processor->next_tag( array( 'tag_name' => 'img', 'class_name' => 'wp-block-media-text__featured_image', ) ) ) { $image_tag_processor->set_attribute( 'src', esc_url( $current_featured_image ) ); $image_tag_processor->set_attribute( 'class', 'wp-image-' . get_post_thumbnail_id() . ' size-' . $media_size_slug ); $image_tag_processor->set_attribute( 'alt', trim( strip_tags( get_post_meta( get_post_thumbnail_id(), '_wp_attachment_image_alt', true ) ) ) ); if ( $image_fill ) { $image_tag_processor->set_attribute( 'style', 'object-position:' . $focal_point . ';' ); } $content = $image_tag_processor->get_updated_html(); } } return $content; } /** * Registers the `core/media-text` block renderer on server. * * @since 6.6.0 */ function register_block_core_media_text() { register_block_type_from_metadata( __DIR__ . '/media-text', array( 'render_callback' => 'render_block_core_media_text', ) ); } add_action( 'init', 'register_block_core_media_text' ); playlist.php 0000775 00000014730 00000000000 0007071 0 ustar 00 <?php /** * Server-side rendering of the `core/playlist` block. * * @package WordPress */ /** * Renders the `core/playlist` block on server. * * @since 7.1.0 * * @param array $attributes The block attributes. * @param string $content The block content. * @param WP_Block $block The block instance. * * @return string Returns the Playlist. */ function render_block_core_playlist( $attributes, $content, $block ) { $playlist_id = wp_unique_id( 'playlist-' ); $playlist_tracks = array(); $tracks_data = array(); $show_play_button_artwork = ! empty( $attributes['showPlayButtonArtwork'] ); // Parse inner blocks to extract track data. // This approach avoids duplicating track data in the HTML output. if ( ! empty( $block->inner_blocks ) ) { foreach ( $block->inner_blocks as $inner_block ) { if ( 'core/playlist-track' === $inner_block->name ) { $track_attributes = $inner_block->attributes; if ( empty( $track_attributes['id'] ) ) { continue; } $track_id = 'track-' . count( $playlist_tracks ); $playlist_tracks[] = $track_id; // Extract track metadata from block attributes. $title = isset( $track_attributes['title'] ) && ! empty( $track_attributes['title'] ) ? $track_attributes['title'] : __( 'Unknown title' ); $artist = $track_attributes['artist'] ?? ''; $album = $track_attributes['album'] ?? ''; $image = $track_attributes['image'] ?? ''; $image_alt = $track_attributes['imageAlt'] ?? ''; $url = $track_attributes['src'] ?? ''; $aria_label = $title; if ( $title && $artist && $album ) { $aria_label = sprintf( /* translators: %1$s: track title, %2$s: artist name, %3$s: album name. */ _x( '%1$s by %2$s from the album %3$s', 'track title, artist name, album name' ), $title, $artist, $album ); } // Data is passed to wp_interactivity_state() which JSON-encodes it, // so we use wp_strip_all_tags() instead of esc_html() to prevent // HTML injection without double-encoding. URLs still use esc_url(). $tracks_data[ $track_id ] = array( 'url' => esc_url( $url ), 'title' => wp_strip_all_tags( $title ), 'artist' => wp_strip_all_tags( $artist ), 'album' => wp_strip_all_tags( $album ), 'image' => esc_url( $image ), 'imageAlt' => wp_strip_all_tags( $image_alt ), 'ariaLabel' => wp_strip_all_tags( $aria_label ), ); } } } if ( empty( $playlist_tracks ) ) { return ''; } wp_enqueue_script_module( '@wordpress/block-library/playlist/view' ); // Add the playlist tracks to the global state, // but keep them isolated from other playlists with the help of playlistId. wp_interactivity_state( 'core/playlist', array( 'playlists' => array( $playlist_id => array( 'tracks' => $tracks_data, ), ), ) ); // Add waveform player container with translated button labels. $label_play = esc_attr__( 'Play' ); $label_pause = esc_attr__( 'Pause' ); $label_seek = esc_attr__( 'Seek' ); /* translators: %1$s: current audio time, %2$s: total audio duration. */ $label_seek_value = esc_attr_x( '%1$s of %2$s', 'audio current time of total duration' ); $waveform_color_attribute = ''; $waveform_gradient_attribute = ''; $waveform_background_color_attribute = ''; $waveform_background_gradient_attribute = ''; if ( ! empty( $attributes['waveformColor'] ) ) { $waveform_color_attribute = sprintf( ' data-waveform-player-color="%s"', esc_attr( $attributes['waveformColor'] ) ); } if ( ! empty( $attributes['waveformGradient'] ) ) { $waveform_gradient_attribute = sprintf( ' data-waveform-player-gradient="%s"', esc_attr( $attributes['waveformGradient'] ) ); } if ( ! empty( $attributes['waveformBackgroundColor'] ) ) { $waveform_background_color_attribute = sprintf( ' data-waveform-player-background-color="%s"', esc_attr( $attributes['waveformBackgroundColor'] ) ); } if ( ! empty( $attributes['waveformBackgroundGradient'] ) ) { $waveform_background_gradient_attribute = sprintf( ' data-waveform-player-background-gradient="%s"', esc_attr( $attributes['waveformBackgroundGradient'] ) ); } $html = '<div class="wp-block-playlist__waveform-player"' . $waveform_color_attribute . $waveform_gradient_attribute . $waveform_background_color_attribute . $waveform_background_gradient_attribute . ' data-wp-watch="callbacks.initWaveformPlayer" data-label-play="' . $label_play . '" data-label-pause="' . $label_pause . '" data-label-seek="' . $label_seek . '" data-label-seek-value="' . $label_seek_value . '" ></div>'; // Add the waveform player container inside the figure. $figure = null; preg_match( '/<figure[^>]*>/', $content, $figure ); if ( ! empty( $figure[0] ) ) { $content = preg_replace( '/(<figure[^>]*>)/', '$1' . $html, $content, 1 ); } $processor = new WP_HTML_Tag_Processor( $content ); $processor->next_tag( 'figure' ); $processor->set_attribute( 'data-wp-interactive', 'core/playlist' ); $waveform_style = $attributes['waveformStyle'] ?? 'bars'; $processor->set_attribute( 'data-wp-context', wp_json_encode( array( 'playlistId' => $playlist_id, 'currentId' => $playlist_tracks[0], 'isPlaying' => false, 'tracks' => $playlist_tracks, 'waveformStyle' => $waveform_style, 'showPlayButtonArtwork' => $show_play_button_artwork, 'labelPauseTrack' => __( 'Pause' ), 'labelSelectTrack' => __( 'Play' ), ) ) ); // Track IDs are render-time only. Add them after inner blocks have rendered // so track buttons can update the Interactivity API state without storing // persistent unique IDs in post content. $track_index = 0; while ( $processor->next_tag( array( 'class_name' => 'wp-block-playlist-track__button' ) ) ) { $track_id = $playlist_tracks[ $track_index ] ?? null; if ( null === $track_id ) { break; } $processor->set_attribute( 'data-wp-context', wp_json_encode( array( 'trackId' => $track_id, ) ) ); ++$track_index; } return $processor->get_updated_html(); } /** * Registers the `core/playlist` block on server. * * @since 7.1.0 */ function register_block_core_playlist() { register_block_type_from_metadata( __DIR__ . '/playlist', array( 'render_callback' => 'render_block_core_playlist', ) ); } add_action( 'init', 'register_block_core_playlist' ); post-title.php 0000775 00000004132 00000000000 0007327 0 ustar 00 <?php /** * Server-side rendering of the `core/post-title` block. * * @package WordPress */ /** * Renders the `core/post-title` block on the server. * * @since 6.3.0 Omitting the $post argument from the `get_the_title`. * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the filtered post title for the current post wrapped inside "h1" tags. */ function render_block_core_post_title( $attributes, $content, $block ) { if ( ! isset( $block->context['postId'] ) ) { return ''; } /** * The `$post` argument is intentionally omitted so that changes are reflected when previewing a post. * See: https://github.com/WordPress/gutenberg/pull/37622#issuecomment-1000932816. */ $title = get_the_title(); if ( ! $title ) { return ''; } $tag_name = 'h2'; if ( isset( $attributes['level'] ) ) { $tag_name = 0 === $attributes['level'] ? 'p' : 'h' . (int) $attributes['level']; } if ( isset( $attributes['isLink'] ) && $attributes['isLink'] ) { $rel = ! empty( $attributes['rel'] ) ? 'rel="' . esc_attr( $attributes['rel'] ) . '"' : ''; $title = sprintf( '<a href="%1$s" target="%2$s" %3$s>%4$s</a>', esc_url( get_the_permalink( $block->context['postId'] ) ), esc_attr( $attributes['linkTarget'] ), $rel, $title ); } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<%1$s %2$s>%3$s</%1$s>', $tag_name, $wrapper_attributes, $title ); } /** * Registers the `core/post-title` block on the server. * * @since 5.8.0 */ function register_block_core_post_title() { register_block_type_from_metadata( __DIR__ . '/post-title', array( 'render_callback' => 'render_block_core_post_title', ) ); } add_action( 'init', 'register_block_core_post_title' ); video/editor.css 0000775 00000004146 00000000000 0007625 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block[data-align=center] > .wp-block-video { text-align: center; } .wp-block-video { position: relative; } .wp-block-video.is-transient video { opacity: 0.3; } .wp-block-video .components-spinner { position: absolute; top: 50%; left: 50%; margin-top: -9px; margin-left: -9px; } .block-library-video-tracks-editor { z-index: 159990; } .modal-open .block-library-video-tracks-editor { z-index: 99999; } .block-library-video-tracks-editor__track-list-track { padding-left: 12px; } .block-library-video-tracks-editor__single-track-editor-kind-select { max-width: 240px; } .block-library-video-tracks-editor__tracks-informative-message-title, .block-library-video-tracks-editor__single-track-editor-edit-track-label { margin-top: 4px; color: #757575; text-transform: uppercase; font-size: 11px; font-weight: var(--wpds-typography-font-weight-emphasis, 600); display: block; } .block-library-video-tracks-editor > .components-popover__content { width: 360px; } .block-library-video-tracks-editor__track-list .components-menu-group__label, .block-library-video-tracks-editor__add-tracks-container .components-menu-group__label { padding: 0; } .block-library-video-tracks-editor__tracks-informative-message { padding: 8px; } .block-library-video-tracks-editor__tracks-informative-message-description { margin-bottom: 0; } video/editor.min.css 0000775 00000002276 00000000000 0010411 0 ustar 00 .wp-block[data-align=center]>.wp-block-video{text-align:center}.wp-block-video{position:relative}.wp-block-video.is-transient video{opacity:.3}.wp-block-video .components-spinner{left:50%;margin-left:-9px;margin-top:-9px;position:absolute;top:50%}.block-library-video-tracks-editor{z-index:159990}.modal-open .block-library-video-tracks-editor{z-index:99999}.block-library-video-tracks-editor__track-list-track{padding-left:12px}.block-library-video-tracks-editor__single-track-editor-kind-select{max-width:240px}.block-library-video-tracks-editor__single-track-editor-edit-track-label,.block-library-video-tracks-editor__tracks-informative-message-title{color:#757575;display:block;font-size:11px;font-weight:var(--wpds-typography-font-weight-emphasis,600);margin-top:4px;text-transform:uppercase}.block-library-video-tracks-editor>.components-popover__content{width:360px}.block-library-video-tracks-editor__add-tracks-container .components-menu-group__label,.block-library-video-tracks-editor__track-list .components-menu-group__label{padding:0}.block-library-video-tracks-editor__tracks-informative-message{padding:8px}.block-library-video-tracks-editor__tracks-informative-message-description{margin-bottom:0} video/style-rtl.css 0000775 00000004424 00000000000 0010275 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-video { box-sizing: border-box; } .wp-block-video video { width: 100%; height: auto; vertical-align: middle; } @supports (position: sticky) { .wp-block-video [poster] { -o-object-fit: cover; object-fit: cover; } } .wp-block-video.aligncenter { text-align: center; } .wp-block-video :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } video/theme-rtl.min.css 0000775 00000000272 00000000000 0011016 0 ustar 00 .wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:hsla(0,0%,100%,.65)}.wp-block-video{margin:0 0 1em} video/editor-rtl.min.css 0000775 00000002301 00000000000 0011175 0 ustar 00 .wp-block[data-align=center]>.wp-block-video{text-align:center}.wp-block-video{position:relative}.wp-block-video.is-transient video{opacity:.3}.wp-block-video .components-spinner{margin-right:-9px;margin-top:-9px;position:absolute;right:50%;top:50%}.block-library-video-tracks-editor{z-index:159990}.modal-open .block-library-video-tracks-editor{z-index:99999}.block-library-video-tracks-editor__track-list-track{padding-right:12px}.block-library-video-tracks-editor__single-track-editor-kind-select{max-width:240px}.block-library-video-tracks-editor__single-track-editor-edit-track-label,.block-library-video-tracks-editor__tracks-informative-message-title{color:#757575;display:block;font-size:11px;font-weight:var(--wpds-typography-font-weight-emphasis,600);margin-top:4px;text-transform:uppercase}.block-library-video-tracks-editor>.components-popover__content{width:360px}.block-library-video-tracks-editor__add-tracks-container .components-menu-group__label,.block-library-video-tracks-editor__track-list .components-menu-group__label{padding:0}.block-library-video-tracks-editor__tracks-informative-message{padding:8px}.block-library-video-tracks-editor__tracks-informative-message-description{margin-bottom:0} video/style.min.css 0000775 00000000467 00000000000 0010263 0 ustar 00 .wp-block-video{box-sizing:border-box}.wp-block-video video{height:auto;vertical-align:middle;width:100%}@supports (position:sticky){.wp-block-video [poster]{-o-object-fit:cover;object-fit:cover}}.wp-block-video.aligncenter{text-align:center}.wp-block-video :where(figcaption){margin-bottom:1em;margin-top:.5em} video/theme-rtl.css 0000775 00000004170 00000000000 0010235 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-video :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-video :where(figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-video { margin: 0 0 1em 0; } video/block.json 0000775 00000003771 00000000000 0007615 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/video", "title": "Video", "category": "media", "description": "Embed a video from your media library or upload a new one.", "keywords": [ "movie" ], "textdomain": "default", "attributes": { "autoplay": { "type": "boolean", "source": "attribute", "selector": "video", "attribute": "autoplay" }, "caption": { "type": "rich-text", "source": "rich-text", "selector": "figcaption", "role": "content" }, "controls": { "type": "boolean", "source": "attribute", "selector": "video", "attribute": "controls", "default": true }, "id": { "type": "number", "role": "content" }, "loop": { "type": "boolean", "source": "attribute", "selector": "video", "attribute": "loop" }, "muted": { "type": "boolean", "source": "attribute", "selector": "video", "attribute": "muted" }, "poster": { "type": "string", "source": "attribute", "selector": "video", "attribute": "poster" }, "preload": { "type": "string", "source": "attribute", "selector": "video", "attribute": "preload", "default": "metadata" }, "blob": { "type": "string", "role": "local" }, "src": { "type": "string", "source": "attribute", "selector": "video", "attribute": "src", "role": "content" }, "width": { "type": "number" }, "height": { "type": "number" }, "playsInline": { "type": "boolean", "source": "attribute", "selector": "video", "attribute": "playsinline" }, "tracks": { "role": "content", "type": "array", "items": { "type": "object" }, "default": [] } }, "supports": { "anchor": true, "align": true, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-video-editor", "style": "wp-block-video" } video/style-rtl.min.css 0000775 00000000467 00000000000 0011062 0 ustar 00 .wp-block-video{box-sizing:border-box}.wp-block-video video{height:auto;vertical-align:middle;width:100%}@supports (position:sticky){.wp-block-video [poster]{-o-object-fit:cover;object-fit:cover}}.wp-block-video.aligncenter{text-align:center}.wp-block-video :where(figcaption){margin-bottom:1em;margin-top:.5em} video/style.css 0000775 00000004424 00000000000 0007476 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-video { box-sizing: border-box; } .wp-block-video video { width: 100%; height: auto; vertical-align: middle; } @supports (position: sticky) { .wp-block-video [poster] { -o-object-fit: cover; object-fit: cover; } } .wp-block-video.aligncenter { text-align: center; } .wp-block-video :where(figcaption) { margin-top: 0.5em; margin-bottom: 1em; } video/editor-rtl.css 0000775 00000004151 00000000000 0010420 0 ustar 00 /** * Colors */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block[data-align=center] > .wp-block-video { text-align: center; } .wp-block-video { position: relative; } .wp-block-video.is-transient video { opacity: 0.3; } .wp-block-video .components-spinner { position: absolute; top: 50%; right: 50%; margin-top: -9px; margin-right: -9px; } .block-library-video-tracks-editor { z-index: 159990; } .modal-open .block-library-video-tracks-editor { z-index: 99999; } .block-library-video-tracks-editor__track-list-track { padding-right: 12px; } .block-library-video-tracks-editor__single-track-editor-kind-select { max-width: 240px; } .block-library-video-tracks-editor__tracks-informative-message-title, .block-library-video-tracks-editor__single-track-editor-edit-track-label { margin-top: 4px; color: #757575; text-transform: uppercase; font-size: 11px; font-weight: var(--wpds-typography-font-weight-emphasis, 600); display: block; } .block-library-video-tracks-editor > .components-popover__content { width: 360px; } .block-library-video-tracks-editor__track-list .components-menu-group__label, .block-library-video-tracks-editor__add-tracks-container .components-menu-group__label { padding: 0; } .block-library-video-tracks-editor__tracks-informative-message { padding: 8px; } .block-library-video-tracks-editor__tracks-informative-message-description { margin-bottom: 0; } video/theme.css 0000775 00000004170 00000000000 0007436 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .wp-block-video :where(figcaption) { color: #555; font-size: 13px; text-align: center; } .is-dark-theme .wp-block-video :where(figcaption) { color: rgba(255, 255, 255, 0.65); } .wp-block-video { margin: 0 0 1em 0; } video/theme.min.css 0000775 00000000272 00000000000 0010217 0 ustar 00 .wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:hsla(0,0%,100%,.65)}.wp-block-video{margin:0 0 1em} comments-pagination-numbers.php 0000775 00000003140 00000000000 0012646 0 ustar 00 <?php /** * Server-side rendering of the `core/comments-pagination-numbers` block. * * @package WordPress */ /** * Renders the `core/comments-pagination-numbers` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * * @return string Returns the pagination numbers for the comments. */ function render_block_core_comments_pagination_numbers( $attributes, $content, $block ) { // Bail out early if the post ID is not set for some reason. if ( empty( $block->context['postId'] ) ) { return ''; } $comment_vars = build_comment_query_vars_from_block( $block ); $total = ( new WP_Comment_Query( $comment_vars ) )->max_num_pages; $current = ! empty( $comment_vars['paged'] ) ? $comment_vars['paged'] : null; // Render links. $content = paginate_comments_links( array( 'total' => $total, 'current' => $current, 'prev_next' => false, 'echo' => false, ) ); if ( empty( $content ) ) { return ''; } $wrapper_attributes = get_block_wrapper_attributes(); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $content ); } /** * Registers the `core/comments-pagination-numbers` block on the server. * * @since 6.0.0 */ function register_block_core_comments_pagination_numbers() { register_block_type_from_metadata( __DIR__ . '/comments-pagination-numbers', array( 'render_callback' => 'render_block_core_comments_pagination_numbers', ) ); } add_action( 'init', 'register_block_core_comments_pagination_numbers' ); comment-content/style-rtl.css 0000775 00000000225 00000000000 0012274 0 ustar 00 .comment-awaiting-moderation { display: block; font-size: 0.875em; line-height: 1.5; } .wp-block-comment-content { box-sizing: border-box; } comment-content/style.min.css 0000775 00000000174 00000000000 0012262 0 ustar 00 .comment-awaiting-moderation{display:block;font-size:.875em;line-height:1.5}.wp-block-comment-content{box-sizing:border-box} comment-content/block.json 0000775 00000002404 00000000000 0011611 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comment-content", "title": "Comment Content", "category": "theme", "ancestor": [ "core/comment-template" ], "description": "Displays the contents of a comment.", "textdomain": "default", "usesContext": [ "commentId" ], "supports": { "anchor": true, "color": { "gradients": true, "link": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } }, "spacing": { "padding": [ "horizontal", "vertical" ], "__experimentalDefaultControls": { "padding": true } }, "html": false }, "style": "wp-block-comment-content" } comment-content/style-rtl.min.css 0000775 00000000174 00000000000 0013061 0 ustar 00 .comment-awaiting-moderation{display:block;font-size:.875em;line-height:1.5}.wp-block-comment-content{box-sizing:border-box} comment-content/style.css 0000775 00000000225 00000000000 0011475 0 ustar 00 .comment-awaiting-moderation { display: block; font-size: 0.875em; line-height: 1.5; } .wp-block-comment-content { box-sizing: border-box; } comment-reply-link/style-rtl.css 0000775 00000000072 00000000000 0012710 0 ustar 00 .wp-block-comment-reply-link { box-sizing: border-box; } comment-reply-link/style.min.css 0000775 00000000063 00000000000 0012673 0 ustar 00 .wp-block-comment-reply-link{box-sizing:border-box} comment-reply-link/block.json 0000775 00000002273 00000000000 0012231 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/comment-reply-link", "title": "Comment Reply Link", "category": "theme", "ancestor": [ "core/comment-template" ], "description": "Displays a link to reply to a comment.", "textdomain": "default", "usesContext": [ "commentId" ], "supports": { "anchor": true, "color": { "gradients": true, "link": true, "text": false, "__experimentalDefaultControls": { "background": true, "link": true } }, "spacing": { "margin": true, "padding": true, "__experimentalDefaultControls": { "margin": false, "padding": false } }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true }, "html": false }, "style": "wp-block-comment-reply-link" } comment-reply-link/style-rtl.min.css 0000775 00000000063 00000000000 0013472 0 ustar 00 .wp-block-comment-reply-link{box-sizing:border-box} comment-reply-link/style.css 0000775 00000000072 00000000000 0012111 0 ustar 00 .wp-block-comment-reply-link { box-sizing: border-box; } social-link/editor.css 0000775 00000001352 00000000000 0010720 0 ustar 00 .wp-block-social-links .wp-social-link { line-height: 0; } .wp-block-social-link-anchor { align-items: center; background: none; border: 0; box-sizing: border-box; cursor: pointer; display: inline-flex; font-size: inherit; color: currentColor; height: auto; font-weight: inherit; font-family: inherit; margin: 0; opacity: 1; padding: 0.25em; } .wp-block-social-link-anchor:hover { transform: none; } :root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link button) { padding-left: 0.6666666667em; padding-right: 0.6666666667em; } :root :where(.wp-block-social-links.is-style-logos-only .wp-social-link button) { padding: 0; } .wp-block-social-link__toolbar_content_text { width: 250px; } social-link/editor.min.css 0000775 00000001174 00000000000 0011504 0 ustar 00 .wp-block-social-links .wp-social-link{line-height:0}.wp-block-social-link-anchor{align-items:center;background:none;border:0;box-sizing:border-box;color:currentColor;cursor:pointer;display:inline-flex;font-family:inherit;font-size:inherit;font-weight:inherit;height:auto;margin:0;opacity:1;padding:.25em}.wp-block-social-link-anchor:hover{transform:none}:root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link button){padding-left:.6666666667em;padding-right:.6666666667em}:root :where(.wp-block-social-links.is-style-logos-only .wp-social-link button){padding:0}.wp-block-social-link__toolbar_content_text{width:250px} social-link/editor-rtl.min.css 0000775 00000001174 00000000000 0012303 0 ustar 00 .wp-block-social-links .wp-social-link{line-height:0}.wp-block-social-link-anchor{align-items:center;background:none;border:0;box-sizing:border-box;color:currentColor;cursor:pointer;display:inline-flex;font-family:inherit;font-size:inherit;font-weight:inherit;height:auto;margin:0;opacity:1;padding:.25em}.wp-block-social-link-anchor:hover{transform:none}:root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link button){padding-left:.6666666667em;padding-right:.6666666667em}:root :where(.wp-block-social-links.is-style-logos-only .wp-social-link button){padding:0}.wp-block-social-link__toolbar_content_text{width:250px} social-link/block.json 0000775 00000001466 00000000000 0010713 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/social-link", "title": "Social Icon", "category": "widgets", "parent": [ "core/social-links" ], "description": "Display an icon linking to a social profile or site.", "textdomain": "default", "attributes": { "url": { "type": "string", "role": "content" }, "service": { "type": "string" }, "label": { "type": "string", "role": "content" }, "rel": { "type": "string" } }, "usesContext": [ "openInNewTab", "showLabels", "iconColor", "iconColorValue", "iconBackgroundColor", "iconBackgroundColorValue" ], "supports": { "anchor": true, "reusable": false, "html": false, "interactivity": { "clientNavigation": true } }, "editorStyle": "wp-block-social-link-editor" } social-link/editor-rtl.css 0000775 00000001352 00000000000 0011517 0 ustar 00 .wp-block-social-links .wp-social-link { line-height: 0; } .wp-block-social-link-anchor { align-items: center; background: none; border: 0; box-sizing: border-box; cursor: pointer; display: inline-flex; font-size: inherit; color: currentColor; height: auto; font-weight: inherit; font-family: inherit; margin: 0; opacity: 1; padding: 0.25em; } .wp-block-social-link-anchor:hover { transform: none; } :root :where(.wp-block-social-links.is-style-pill-shape .wp-social-link button) { padding-right: 0.6666666667em; padding-left: 0.6666666667em; } :root :where(.wp-block-social-links.is-style-logos-only .wp-social-link button) { padding: 0; } .wp-block-social-link__toolbar_content_text { width: 250px; } query-title/style-rtl.css 0000775 00000000063 00000000000 0011446 0 ustar 00 .wp-block-query-title { box-sizing: border-box; } query-title/style.min.css 0000775 00000000054 00000000000 0011431 0 ustar 00 .wp-block-query-title{box-sizing:border-box} query-title/block.json 0000775 00000003032 00000000000 0010761 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/query-title", "title": "Query Title", "category": "theme", "description": "Display the query title.", "textdomain": "default", "attributes": { "type": { "type": "string" }, "level": { "type": "number", "default": 1 }, "levelOptions": { "type": "array" }, "showPrefix": { "type": "boolean", "default": true }, "showSearchTerm": { "type": "boolean", "default": true } }, "example": { "attributes": { "type": "search" } }, "usesContext": [ "query" ], "supports": { "anchor": true, "align": [ "wide", "full" ], "html": false, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "margin": true, "padding": true }, "typography": { "fontSize": true, "lineHeight": true, "textAlign": true, "__experimentalFontFamily": true, "__experimentalFontStyle": true, "__experimentalFontWeight": true, "__experimentalLetterSpacing": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-query-title" } query-title/style-rtl.min.css 0000775 00000000054 00000000000 0012230 0 ustar 00 .wp-block-query-title{box-sizing:border-box} query-title/style.css 0000775 00000000063 00000000000 0010647 0 ustar 00 .wp-block-query-title { box-sizing: border-box; } separator/editor.css 0000775 00000000156 00000000000 0010514 0 ustar 00 .block-editor-block-list__block[data-type="core/separator"] { padding-top: 0.1px; padding-bottom: 0.1px; } separator/editor.min.css 0000775 00000000141 00000000000 0011270 0 ustar 00 .block-editor-block-list__block[data-type="core/separator"]{padding-bottom:.1px;padding-top:.1px} separator/style-rtl.css 0000775 00000001035 00000000000 0011162 0 ustar 00 @charset "UTF-8"; .wp-block-separator { border-top: 2px solid currentColor; border-right: none; border-left: none; border-bottom: none; } :root :where(.wp-block-separator.is-style-dots) { text-align: center; line-height: 1; height: auto; } :root :where(.wp-block-separator.is-style-dots)::before { content: "···"; color: currentColor; font-size: 1.5em; letter-spacing: 2em; padding-left: 2em; font-family: serif; } .wp-block-separator.is-style-dots { background: none !important; border: none !important; } separator/theme-rtl.min.css 0000775 00000000665 00000000000 0011716 0 ustar 00 .wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px} separator/editor-rtl.min.css 0000775 00000000141 00000000000 0012067 0 ustar 00 .block-editor-block-list__block[data-type="core/separator"]{padding-bottom:.1px;padding-top:.1px} separator/style.min.css 0000775 00000000625 00000000000 0011151 0 ustar 00 @charset "UTF-8";.wp-block-separator{border:none;border-top:2px solid}:root :where(.wp-block-separator.is-style-dots){height:auto;line-height:1;text-align:center}:root :where(.wp-block-separator.is-style-dots):before{color:currentColor;content:"···";font-family:serif;font-size:1.5em;letter-spacing:2em;padding-left:2em}.wp-block-separator.is-style-dots{background:none!important;border:none!important} separator/theme-rtl.css 0000775 00000001011 00000000000 0011116 0 ustar 00 .wp-block-separator.has-css-opacity { opacity: 0.4; } .wp-block-separator { border: none; border-bottom: 2px solid currentColor; margin-right: auto; margin-left: auto; } .wp-block-separator.has-alpha-channel-opacity { opacity: initial; } .wp-block-separator:not(.is-style-wide):not(.is-style-dots) { width: 100px; } .wp-block-separator.has-background:not(.is-style-dots) { border-bottom: none; height: 1px; } .wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots) { height: 2px; } separator/block.json 0000775 00000002172 00000000000 0010501 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/separator", "title": "Separator", "category": "design", "description": "Create a break between ideas or sections with a horizontal separator.", "keywords": [ "horizontal-line", "hr", "divider" ], "textdomain": "default", "attributes": { "opacity": { "type": "string", "default": "alpha-channel" }, "tagName": { "type": "string", "enum": [ "hr", "div" ], "default": "hr" } }, "supports": { "anchor": true, "align": [ "center", "wide", "full" ], "color": { "enableContrastChecker": false, "__experimentalSkipSerialization": true, "gradients": true, "background": true, "text": false, "__experimentalDefaultControls": { "background": true } }, "spacing": { "margin": [ "top", "bottom" ] }, "interactivity": { "clientNavigation": true } }, "styles": [ { "name": "default", "label": "Default", "isDefault": true }, { "name": "wide", "label": "Wide Line" }, { "name": "dots", "label": "Dots" } ], "editorStyle": "wp-block-separator-editor", "style": "wp-block-separator" } separator/style-rtl.min.css 0000775 00000000625 00000000000 0011750 0 ustar 00 @charset "UTF-8";.wp-block-separator{border:none;border-top:2px solid}:root :where(.wp-block-separator.is-style-dots){height:auto;line-height:1;text-align:center}:root :where(.wp-block-separator.is-style-dots):before{color:currentColor;content:"···";font-family:serif;font-size:1.5em;letter-spacing:2em;padding-left:2em}.wp-block-separator.is-style-dots{background:none!important;border:none!important} separator/style.css 0000775 00000001056 00000000000 0010366 0 ustar 00 @charset "UTF-8"; .wp-block-separator { border-top: 2px solid currentColor; border-left: none; border-right: none; border-bottom: none; } :root :where(.wp-block-separator.is-style-dots) { text-align: center; line-height: 1; height: auto; } :root :where(.wp-block-separator.is-style-dots)::before { content: "···"; color: currentColor; font-size: 1.5em; letter-spacing: 2em; /*rtl:ignore*/ padding-left: 2em; font-family: serif; } .wp-block-separator.is-style-dots { background: none !important; border: none !important; } separator/editor-rtl.css 0000775 00000000156 00000000000 0011313 0 ustar 00 .block-editor-block-list__block[data-type="core/separator"] { padding-top: 0.1px; padding-bottom: 0.1px; } separator/theme.css 0000775 00000001011 00000000000 0010317 0 ustar 00 .wp-block-separator.has-css-opacity { opacity: 0.4; } .wp-block-separator { border: none; border-bottom: 2px solid currentColor; margin-left: auto; margin-right: auto; } .wp-block-separator.has-alpha-channel-opacity { opacity: initial; } .wp-block-separator:not(.is-style-wide):not(.is-style-dots) { width: 100px; } .wp-block-separator.has-background:not(.is-style-dots) { border-bottom: none; height: 1px; } .wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots) { height: 2px; } separator/theme.min.css 0000775 00000000665 00000000000 0011117 0 ustar 00 .wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px} tab-list/editor.css 0000775 00000004012 00000000000 0010226 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ @media (min-width: 600px) { .wp-block-tab-list__mover-button { width: 24px; min-width: 0 !important; } } tab-list/editor.min.css 0000775 00000000134 00000000000 0011011 0 ustar 00 @media (min-width:600px){.wp-block-tab-list__mover-button{min-width:0!important;width:24px}} tab-list/style-rtl.css 0000775 00000001551 00000000000 0010704 0 ustar 00 :where(.wp-block-tab-list button) { box-sizing: border-box; color: inherit; display: block; width: -moz-max-content; width: max-content; text-decoration: none; cursor: pointer; flex-basis: inherit !important; flex-grow: inherit !important; position: relative; border: none; background: none; -moz-appearance: none; appearance: none; -webkit-appearance: none; margin: 0; padding: var(--wp--preset--spacing--20, 0.5em) var(--wp--preset--spacing--30, 1em); font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; text-align: inherit; } :where(.wp-block-tab-list button)[aria-selected=true]::before { content: ""; position: absolute; border-bottom: 2px solid currentColor; pointer-events: none; right: 0; width: 100%; bottom: 0; } tab-list/editor-rtl.min.css 0000775 00000000134 00000000000 0011610 0 ustar 00 @media (min-width:600px){.wp-block-tab-list__mover-button{min-width:0!important;width:24px}} tab-list/style.min.css 0000775 00000001315 00000000000 0010665 0 ustar 00 :where(.wp-block-tab-list button){-moz-appearance:none;appearance:none;-webkit-appearance:none;background:none;border:none;box-sizing:border-box;color:inherit;cursor:pointer;display:block;flex-basis:inherit!important;flex-grow:inherit!important;font-family:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:var(--wp--preset--spacing--20,.5em) var(--wp--preset--spacing--30,1em);position:relative;text-align:inherit;text-decoration:none;text-transform:inherit;width:-moz-max-content;width:max-content}:where(.wp-block-tab-list button)[aria-selected=true]:before{border-bottom:2px solid;bottom:0;content:"";left:0;pointer-events:none;position:absolute;width:100%} tab-list/block.json 0000775 00000003277 00000000000 0010227 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/tab-list", "title": "Tab List", "description": "Display the tab buttons for a tabbed interface.", "category": "design", "textdomain": "default", "parent": [ "core/tabs" ], "usesContext": [ "core/tabs-list" ], "attributes": { "tabs": { "type": "array", "source": "query", "selector": "button", "query": { "label": { "type": "rich-text", "source": "rich-text", "role": "content" } }, "default": [] } }, "supports": { "html": false, "ariaLabel": true, "visibility": false, "lock": false, "color": { "background": true, "text": true, "__experimentalSkipSerialization": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "typography": { "fontSize": true, "__experimentalFontFamily": true }, "__experimentalBorder": { "color": true, "radius": true, "style": true, "width": true, "__experimentalSkipSerialization": true }, "layout": { "default": { "type": "flex", "flexWrap": "wrap" }, "allowVerticalAlignment": false, "allowOrientation": false, "allowWrap": false }, "spacing": { "padding": true, "blockGap": true, "__experimentalSkipSerialization": [ "padding" ], "__experimentalDefaultControls": { "padding": true, "blockGap": true } } }, "selectors": { "border": ".wp-block-tab-list button", "color": { "background": ".wp-block-tab-list button", "text": ".wp-block-tab-list button" }, "spacing": { "padding": ".wp-block-tab-list button" } }, "style": "wp-block-tab-list", "editorStyle": "wp-block-tab-list-editor" } tab-list/style-rtl.min.css 0000775 00000001316 00000000000 0011465 0 ustar 00 :where(.wp-block-tab-list button){-moz-appearance:none;appearance:none;-webkit-appearance:none;background:none;border:none;box-sizing:border-box;color:inherit;cursor:pointer;display:block;flex-basis:inherit!important;flex-grow:inherit!important;font-family:inherit;font-size:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:var(--wp--preset--spacing--20,.5em) var(--wp--preset--spacing--30,1em);position:relative;text-align:inherit;text-decoration:none;text-transform:inherit;width:-moz-max-content;width:max-content}:where(.wp-block-tab-list button)[aria-selected=true]:before{border-bottom:2px solid;bottom:0;content:"";pointer-events:none;position:absolute;right:0;width:100%} tab-list/style.css 0000775 00000001550 00000000000 0010104 0 ustar 00 :where(.wp-block-tab-list button) { box-sizing: border-box; color: inherit; display: block; width: -moz-max-content; width: max-content; text-decoration: none; cursor: pointer; flex-basis: inherit !important; flex-grow: inherit !important; position: relative; border: none; background: none; -moz-appearance: none; appearance: none; -webkit-appearance: none; margin: 0; padding: var(--wp--preset--spacing--20, 0.5em) var(--wp--preset--spacing--30, 1em); font-size: inherit; font-family: inherit; font-weight: inherit; line-height: inherit; letter-spacing: inherit; text-transform: inherit; text-align: inherit; } :where(.wp-block-tab-list button)[aria-selected=true]::before { content: ""; position: absolute; border-bottom: 2px solid currentColor; pointer-events: none; left: 0; width: 100%; bottom: 0; } tab-list/editor-rtl.css 0000775 00000004012 00000000000 0011025 0 ustar 00 /** * Typography */ /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ @media (min-width: 600px) { .wp-block-tab-list__mover-button { width: 24px; min-width: 0 !important; } } freeform/editor.css 0000775 00000005671 00000000000 0010330 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Typography */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe { height: 50vh !important; } @media (min-width: 960px) { .block-editor-freeform-modal .block-editor-freeform-modal__content:not(.is-full-screen) { height: 9999rem; } .block-editor-freeform-modal .block-editor-freeform-modal__content .components-modal__header + div { height: 100%; } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-tinymce { height: calc(100% - 36px - 16px); } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-container-body { height: 100%; display: flex; flex-direction: column; min-width: 50vw; } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area { flex-grow: 1; display: flex; flex-direction: column; } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe { flex-grow: 1; height: 10px !important; } } .block-editor-freeform-modal__actions { margin-top: 16px; } freeform/editor.min.css 0000775 00000001615 00000000000 0011104 0 ustar 00 .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{height:50vh!important}@media (min-width:960px){.block-editor-freeform-modal .block-editor-freeform-modal__content:not(.is-full-screen){height:9999rem}.block-editor-freeform-modal .block-editor-freeform-modal__content .components-modal__header+div{height:100%}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-tinymce{height:calc(100% - 52px)}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-container-body{display:flex;flex-direction:column;height:100%;min-width:50vw}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area{display:flex;flex-direction:column;flex-grow:1}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{flex-grow:1;height:10px!important}}.block-editor-freeform-modal__actions{margin-top:16px} freeform/editor-rtl.min.css 0000775 00000001615 00000000000 0011703 0 ustar 00 .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{height:50vh!important}@media (min-width:960px){.block-editor-freeform-modal .block-editor-freeform-modal__content:not(.is-full-screen){height:9999rem}.block-editor-freeform-modal .block-editor-freeform-modal__content .components-modal__header+div{height:100%}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-tinymce{height:calc(100% - 52px)}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-container-body{display:flex;flex-direction:column;height:100%;min-width:50vw}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area{display:flex;flex-direction:column;flex-grow:1}.block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe{flex-grow:1;height:10px!important}}.block-editor-freeform-modal__actions{margin-top:16px} freeform/block.json 0000775 00000001007 00000000000 0010302 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/freeform", "title": "Classic", "category": "text", "description": "Use the classic WordPress editor.", "textdomain": "default", "attributes": { "content": { "type": "string", "source": "raw" } }, "supports": { "className": false, "customClassName": false, "lock": false, "reusable": false, "renaming": false, "visibility": false, "customCSS": false }, "editorStyle": "wp-block-freeform-editor" } freeform/editor-rtl.css 0000775 00000005671 00000000000 0011127 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ /** * Typography */ /** * Breakpoints & Media Queries */ /** * Converts a hex value into the rgb equivalent. * * @param {string} hex - the hexadecimal value to convert * @return {string} comma separated rgb values */ /** * Long content fade mixin * * Creates a fading overlay to signify that the content is longer * than the space allows. */ /** * Breakpoint mixins */ /** * Focus styles. */ /** * Standard focus rings for the WordPress Design System. * * Apply `outset-ring__focus` inside the relevant pseudo-class at the call site, * e.g. `&:focus { @include outset-ring__focus(); }`. */ /** * Applies editor left position to the selector passed as argument */ /** * Styles that are reused verbatim in a few places */ /** * Allows users to opt-out of animations via OS-level preferences. */ /** * Reset default styles for JavaScript UI based pages. * This is a WP-admin agnostic reset */ /** * Reset the WP Admin page styles for Gutenberg-like pages. */ /** * Creates a checkerboard pattern background to indicate transparency. * @param {String} $size - The size of the squares in the checkerboard pattern. Default is 12px. */ .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe { height: 50vh !important; } @media (min-width: 960px) { .block-editor-freeform-modal .block-editor-freeform-modal__content:not(.is-full-screen) { height: 9999rem; } .block-editor-freeform-modal .block-editor-freeform-modal__content .components-modal__header + div { height: 100%; } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-tinymce { height: calc(100% - 36px - 16px); } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-container-body { height: 100%; display: flex; flex-direction: column; min-width: 50vw; } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area { flex-grow: 1; display: flex; flex-direction: column; } .block-editor-freeform-modal .block-editor-freeform-modal__content .mce-edit-area iframe { flex-grow: 1; height: 10px !important; } } .block-editor-freeform-modal__actions { margin-top: 16px; } comment-reply-link.php 0000775 00000004033 00000000000 0010751 0 ustar 00 <?php /** * Server-side rendering of the `core/comment-reply-link` block. * * @package WordPress */ /** * Renders the `core/comment-reply-link` block on the server. * * @since 6.0.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block Block instance. * @return string Return the post comment's reply link. */ function render_block_core_comment_reply_link( $attributes, $content, $block ) { if ( ! isset( $block->context['commentId'] ) ) { return ''; } $thread_comments = get_option( 'thread_comments' ); if ( ! $thread_comments ) { return ''; } $comment = get_comment( $block->context['commentId'] ); if ( empty( $comment ) ) { return ''; } $depth = 1; $max_depth = get_option( 'thread_comments_depth' ); $parent_id = $comment->comment_parent; // Compute comment's depth iterating over its ancestors. while ( ! empty( $parent_id ) ) { ++$depth; $parent_id = get_comment( $parent_id )->comment_parent; } $comment_reply_link = get_comment_reply_link( array( 'depth' => $depth, 'max_depth' => $max_depth, ), $comment ); // Render nothing if the generated reply link is empty. if ( empty( $comment_reply_link ) ) { return; } $classes = array(); if ( isset( $attributes['textAlign'] ) ) { $classes[] = 'has-text-align-' . $attributes['textAlign']; } if ( isset( $attributes['style']['elements']['link']['color']['text'] ) ) { $classes[] = 'has-link-color'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classes ) ) ); return sprintf( '<div %1$s>%2$s</div>', $wrapper_attributes, $comment_reply_link ); } /** * Registers the `core/comment-reply-link` block on the server. * * @since 6.0.0 */ function register_block_core_comment_reply_link() { register_block_type_from_metadata( __DIR__ . '/comment-reply-link', array( 'render_callback' => 'render_block_core_comment_reply_link', ) ); } add_action( 'init', 'register_block_core_comment_reply_link' ); preformatted/style-rtl.css 0000775 00000001647 00000000000 0011667 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-preformatted { box-sizing: border-box; white-space: pre-wrap; } :where(.wp-block-preformatted.has-background) { padding: 1.25em 2.375em; } preformatted/style.min.css 0000775 00000000207 00000000000 0011641 0 ustar 00 .wp-block-preformatted{box-sizing:border-box;white-space:pre-wrap}:where(.wp-block-preformatted.has-background){padding:1.25em 2.375em} preformatted/block.json 0000775 00000002471 00000000000 0011177 0 ustar 00 { "$schema": "https://schemas.wp.org/trunk/block.json", "apiVersion": 3, "name": "core/preformatted", "title": "Preformatted", "category": "text", "description": "Add text that respects your spacing and tabs, and also allows styling.", "textdomain": "default", "attributes": { "content": { "type": "rich-text", "source": "rich-text", "selector": "pre", "__unstablePreserveWhiteSpace": true, "role": "content" } }, "supports": { "anchor": true, "color": { "gradients": true, "__experimentalDefaultControls": { "background": true, "text": true } }, "spacing": { "padding": true, "margin": true }, "typography": { "fontSize": true, "lineHeight": true, "__experimentalFontFamily": true, "__experimentalFontWeight": true, "__experimentalFontStyle": true, "__experimentalTextTransform": true, "__experimentalTextDecoration": true, "__experimentalLetterSpacing": true, "__experimentalDefaultControls": { "fontSize": true } }, "interactivity": { "clientNavigation": true }, "__experimentalBorder": { "radius": true, "color": true, "width": true, "style": true, "__experimentalDefaultControls": { "radius": true, "color": true, "width": true, "style": true } } }, "style": "wp-block-preformatted" } preformatted/style-rtl.min.css 0000775 00000000207 00000000000 0012440 0 ustar 00 .wp-block-preformatted{box-sizing:border-box;white-space:pre-wrap}:where(.wp-block-preformatted.has-background){padding:1.25em 2.375em} preformatted/style.css 0000775 00000001647 00000000000 0011070 0 ustar 00 /** * SCSS Variables. * * Please use variables from this sheet to ensure consistency across the UI. * Don't add to this sheet unless you're pretty sure the value will be reused in many places. * For example, don't add rules to this sheet that affect block visuals. It's purely for UI. */ /** * Colors */ /** * Fonts & basic variables. */ /** * Typography */ /** * Grid System. * https://make.wordpress.org/design/2019/10/31/proposal-a-consistent-spacing-system-for-wordpress/ */ /** * Radius scale. */ /** * Elevation scale. */ /** * Dimensions. */ /** * Mobile specific styles */ /** * Editor styles. */ /** * Block & Editor UI. */ /** * Block paddings. */ /** * React Native specific. * These variables do not appear to be used anywhere else. */ .wp-block-preformatted { box-sizing: border-box; white-space: pre-wrap; } :where(.wp-block-preformatted.has-background) { padding: 1.25em 2.375em; } query.php 0000775 00000013072 00000000000 0006373 0 ustar 00 <?php /** * Server-side rendering of the `core/query` block. * * @package WordPress */ /** * Modifies the static `core/query` block on the server. * * @since 6.4.0 * * @param array $attributes Block attributes. * @param string $content Block default content. * @param WP_Block $block The block instance. * * @return string Returns the modified output of the query block. */ function render_block_core_query( $attributes, $content, $block ) { $is_interactive = isset( $attributes['enhancedPagination'] ) && true === $attributes['enhancedPagination'] && isset( $attributes['queryId'] ); // Enqueue the script module and add the necessary directives if the block is // interactive. if ( $is_interactive ) { wp_enqueue_script_module( '@wordpress/block-library/query/view' ); $p = new WP_HTML_Tag_Processor( $content ); if ( $p->next_tag() ) { // Add the necessary directives. $p->set_attribute( 'data-wp-interactive', 'core/query' ); $p->set_attribute( 'data-wp-router-region', 'query-' . $attributes['queryId'] ); $p->set_attribute( 'data-wp-context', '{}' ); $p->set_attribute( 'data-wp-key', $attributes['queryId'] ); $content = $p->get_updated_html(); } } // Add the styles to the block type if the block is interactive and remove // them if it's not. $style_asset = 'wp-block-query'; if ( ! wp_style_is( $style_asset ) ) { $style_handles = $block->block_type->style_handles; // If the styles are not needed, and they are still in the `style_handles`, remove them. if ( ! $is_interactive && in_array( $style_asset, $style_handles, true ) ) { $block->block_type->style_handles = array_diff( $style_handles, array( $style_asset ) ); } // If the styles are needed, but they were previously removed, add them again. if ( $is_interactive && ! in_array( $style_asset, $style_handles, true ) ) { $block->block_type->style_handles = array_merge( $style_handles, array( $style_asset ) ); } } return $content; } /** * Registers the `core/query` block on the server. * * @since 5.8.0 */ function register_block_core_query() { register_block_type_from_metadata( __DIR__ . '/query', array( 'render_callback' => 'render_block_core_query', ) ); } add_action( 'init', 'register_block_core_query' ); /** * Traverse the tree of blocks looking for any plugin block (i.e., a block from * an installed plugin) inside a Query block with the enhanced pagination * enabled. If at least one is found, the enhanced pagination is effectively * disabled to prevent any potential incompatibilities. * * @since 6.4.0 * * @param array $parsed_block The block being rendered. * @return array Returns the parsed block, unmodified. */ function block_core_query_disable_enhanced_pagination( $parsed_block ) { static $enhanced_query_stack = array(); static $dirty_enhanced_queries = array(); static $render_query_callback = null; $block_name = $parsed_block['blockName']; $block_type = WP_Block_Type_Registry::get_instance()->get_registered( $block_name ); $has_enhanced_pagination = isset( $parsed_block['attrs']['enhancedPagination'] ) && true === $parsed_block['attrs']['enhancedPagination'] && isset( $parsed_block['attrs']['queryId'] ); /* * Client side navigation can be true in two states: * - supports.interactivity = true; * - supports.interactivity.clientNavigation = true; */ $supports_client_navigation = ( isset( $block_type->supports['interactivity']['clientNavigation'] ) && true === $block_type->supports['interactivity']['clientNavigation'] ) || ( isset( $block_type->supports['interactivity'] ) && true === $block_type->supports['interactivity'] ); if ( 'core/query' === $block_name && $has_enhanced_pagination ) { $enhanced_query_stack[] = $parsed_block['attrs']['queryId']; if ( ! isset( $render_query_callback ) ) { /** * Filter that disables the enhanced pagination feature during block * rendering when a plugin block has been found inside. It does so * by adding an attribute called `data-wp-navigation-disabled` which * is later handled by the front-end logic. * * @param string $content The block content. * @param array $block The full block, including name and attributes. * @return string Returns the modified output of the query block. */ $render_query_callback = static function ( $content, $block ) use ( &$enhanced_query_stack, &$dirty_enhanced_queries, &$render_query_callback ) { $has_enhanced_pagination = isset( $block['attrs']['enhancedPagination'] ) && true === $block['attrs']['enhancedPagination'] && isset( $block['attrs']['queryId'] ); if ( ! $has_enhanced_pagination ) { return $content; } if ( isset( $dirty_enhanced_queries[ $block['attrs']['queryId'] ] ) ) { // Disable navigation in the router store config. wp_interactivity_config( 'core/router', array( 'clientNavigationDisabled' => true ) ); $dirty_enhanced_queries[ $block['attrs']['queryId'] ] = null; } array_pop( $enhanced_query_stack ); if ( empty( $enhanced_query_stack ) ) { remove_filter( 'render_block_core/query', $render_query_callback ); $render_query_callback = null; } return $content; }; add_filter( 'render_block_core/query', $render_query_callback, 10, 2 ); } } elseif ( ! empty( $enhanced_query_stack ) && isset( $block_name ) && ( ! $supports_client_navigation ) ) { foreach ( $enhanced_query_stack as $query_id ) { $dirty_enhanced_queries[ $query_id ] = true; } } return $parsed_block; } add_filter( 'render_block_data', 'block_core_query_disable_enhanced_pagination', 10, 1 ); video.php 0000775 00000005255 00000000000 0006340 0 ustar 00 <?php /** * Server-side rendering of the `core/video` block. * * @package WordPress */ /** * Renders the `core/video` block on the server to supply the width and height attributes from the attachment metadata. * * @since 6.9.0 * * @phpstan-param array{ "id"?: positive-int } $attributes * * @param array $attributes The block attributes. * @param string $content The block content. * @return string The block content with the dimensions added. */ function render_block_core_video( array $attributes, string $content ): string { // if the content lacks any video tag, abort. if ( ! str_contains( $content, '<video' ) ) { return $content; } // If the 'id' attribute is not populated for a video attachment, abort. if ( ! isset( $attributes['id'] ) || ! is_int( $attributes['id'] ) || $attributes['id'] <= 0 ) { return $content; } // If the 'id' attribute wasn't for an attachment, abort. if ( get_post_type( $attributes['id'] ) !== 'attachment' ) { return $content; } // Get the width and height metadata for the video, and abort if absent or invalid. $metadata = wp_get_attachment_metadata( $attributes['id'] ); if ( ! isset( $metadata['width'], $metadata['height'] ) || ! ( is_int( $metadata['width'] ) && is_int( $metadata['height'] ) ) || ! ( $metadata['width'] > 0 && $metadata['height'] > 0 ) ) { return $content; } // Locate the VIDEO tag to add the dimensions. $p = new WP_HTML_Tag_Processor( $content ); if ( ! $p->next_tag( array( 'tag_name' => 'VIDEO' ) ) ) { return $content; } $p->set_attribute( 'width', (string) $metadata['width'] ); $p->set_attribute( 'height', (string) $metadata['height'] ); /* * The aspect-ratio style is needed due to an issue with the CSS spec: <https://github.com/w3c/csswg-drafts/issues/7524>. * Note that a style rule using attr() like the following cannot currently be used: * * .wp-block-video video[width][height] { * aspect-ratio: attr(width type(<number>)) / attr(height type(<number>)); * } * * This is because this attr() is yet only implemented in Chromium: <https://caniuse.com/css3-attr>. */ $style = $p->get_attribute( 'style' ); if ( ! is_string( $style ) ) { $style = ''; } $aspect_ratio_style = sprintf( 'aspect-ratio: %d / %d;', $metadata['width'], $metadata['height'] ); $p->set_attribute( 'style', $aspect_ratio_style . $style ); return $p->get_updated_html(); } /** * Registers the `core/video` block on server. * * @since 6.9.0 */ function register_block_core_video(): void { register_block_type_from_metadata( __DIR__ . '/video', array( 'render_callback' => 'render_block_core_video', ) ); } add_action( 'init', 'register_block_core_video' );
| ver. 1.4 |
Github
|
.
| PHP 8.3.33 | ���֧ߧ֧�ѧ�ڧ� ����ѧߧڧ��: 0.16 |
proxy
|
phpinfo
|
���ѧ����ۧܧ�