` 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 '';
}
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' );
post-author-name.php 0000644 00000003637 15056145317 0010500 0 ustar 00 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( '
%3$s ', 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( '
%2$s
', $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' );
group/style-rtl.min.css 0000644 00000000165 15056145320 0011136 0 ustar 00 .wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative} group/theme.min.css 0000644 00000000076 15056145320 0010302 0 ustar 00 :where(.wp-block-group.has-background){padding:1.25em 2.375em} group/theme.css 0000644 00000000103 15056145321 0007510 0 ustar 00 :where(.wp-block-group.has-background){
padding:1.25em 2.375em;
} group/block.json 0000644 00000004063 15056145323 0007674 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 ]
},
"allowedBlocks": {
"type": "array"
}
},
"supports": {
"__experimentalOnEnter": true,
"__experimentalOnMerge": true,
"__experimentalSettings": true,
"align": [ "wide", "full" ],
"anchor": true,
"ariaLabel": true,
"html": false,
"background": {
"backgroundImage": true,
"backgroundSize": true,
"__experimentalDefaultControls": {
"backgroundImage": 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
},
"__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
}
},
"editorStyle": "wp-block-group-editor",
"style": "wp-block-group"
}
group/editor-rtl.css 0000644 00000002474 15056145323 0010512 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;
pointer-events:none;
}
.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 .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/theme-rtl.css 0000644 00000000103 15056145324 0010312 0 ustar 00 :where(.wp-block-group.has-background){
padding:1.25em 2.375em;
} group/editor.min.css 0000644 00000002355 15056145324 0010474 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;pointer-events:none}.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 .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 0000644 00000000165 15056145325 0010344 0 ustar 00 .wp-block-group{box-sizing:border-box}:where(.wp-block-group.wp-block-group-is-layout-constrained){position:relative} group/style-rtl.css 0000644 00000000201 15056145327 0010352 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 0000644 00000000201 15056145327 0007553 0 ustar 00 .wp-block-group{
box-sizing:border-box;
}
:where(.wp-block-group.wp-block-group-is-layout-constrained){
position:relative;
} group/editor.css 0000644 00000002474 15056145330 0007711 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;
pointer-events:none;
}
.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 .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/editor-rtl.min.css 0000644 00000002355 15056145330 0011270 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;pointer-events:none}.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 .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/theme-rtl.min.css 0000644 00000000076 15056145332 0011104 0 ustar 00 :where(.wp-block-group.has-background){padding:1.25em 2.375em} template-part/theme.min.css 0000644 00000000151 15056145334 0011724 0 ustar 00 :root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} template-part/theme.css 0000644 00000000164 15056145334 0011146 0 ustar 00 :root :where(.wp-block-template-part.has-background){
margin-bottom:0;
margin-top:0;
padding:1.25em 2.375em;
} template-part/block.json 0000644 00000001240 15056145335 0011314 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 0000644 00000002622 15056145336 0012134 0 ustar 00 .block-editor-template-part__selection-modal{
z-index:1000001;
}
.block-editor-template-part__selection-modal .block-editor-block-patterns-list{
column-count:2;
column-gap:24px;
}
@media (min-width:1280px){
.block-editor-template-part__selection-modal .block-editor-block-patterns-list{
column-count:3;
}
}
.block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{
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 0000644 00000000164 15056145336 0011747 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.min.css 0000644 00000002520 15056145340 0012107 0 ustar 00 .block-editor-template-part__selection-modal{z-index:1000001}.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:1280px){.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:3}}.block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{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/editor.css 0000644 00000002622 15056145341 0011331 0 ustar 00 .block-editor-template-part__selection-modal{
z-index:1000001;
}
.block-editor-template-part__selection-modal .block-editor-block-patterns-list{
column-count:2;
column-gap:24px;
}
@media (min-width:1280px){
.block-editor-template-part__selection-modal .block-editor-block-patterns-list{
column-count:3;
}
}
.block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{
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/editor-rtl.min.css 0000644 00000002520 15056145343 0012711 0 ustar 00 .block-editor-template-part__selection-modal{z-index:1000001}.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:2;column-gap:24px}@media (min-width:1280px){.block-editor-template-part__selection-modal .block-editor-block-patterns-list{column-count:3}}.block-editor-template-part__selection-modal .block-editor-block-patterns-list .block-editor-block-patterns-list__list-item{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 0000644 00000000151 15056145345 0012525 0 ustar 00 :root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} comment-edit-link/style-rtl.min.css 0000644 00000000062 15056145346 0013326 0 ustar 00 .wp-block-comment-edit-link{box-sizing:border-box} comment-edit-link/block.json 0000644 00000002644 15056145350 0012063 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"
},
"textAlign": {
"type": "string"
}
},
"supports": {
"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,
"__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.min.css 0000644 00000000062 15056145352 0012524 0 ustar 00 .wp-block-comment-edit-link{box-sizing:border-box} comment-edit-link/style-rtl.css 0000644 00000000067 15056145352 0012546 0 ustar 00 .wp-block-comment-edit-link{
box-sizing:border-box;
} comment-edit-link/style.css 0000644 00000000067 15056145354 0011751 0 ustar 00 .wp-block-comment-edit-link{
box-sizing:border-box;
} rss/style-rtl.min.css 0000644 00000001214 15056145355 0010615 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/block.json 0000644 00000002430 15056145357 0007352 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": ""
},
"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
}
},
"supports": {
"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/editor-rtl.css 0000644 00000000311 15056145364 0010156 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 0000644 00000000260 15056145371 0010142 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 0000644 00000001214 15056145376 0010021 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/style-rtl.css 0000644 00000001401 15056145376 0010034 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 0000644 00000001401 15056145403 0007224 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/editor.css 0000644 00000000311 15056145411 0007350 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-rtl.min.css 0000644 00000000260 15056145411 0010734 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} heading.php 0000644 00000002425 15056145416 0006666 0 ustar 00 Hello World
*
* Would be transformed to:
*
Hello World
*
* @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' );
block/block.json 0000644 00000001113 15056145423 0007624 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
}
}
}
post-title/style-rtl.min.css 0000644 00000000405 15056145430 0012105 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 0000644 00000003307 15056145435 0010650 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": {
"textAlign": {
"type": "string"
},
"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"
}
},
"example": {
"viewportWidth": 350
},
"supports": {
"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,
"__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.min.css 0000644 00000000405 15056145442 0011311 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-rtl.css 0000644 00000000450 15056145442 0011326 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 0000644 00000000450 15056145445 0010532 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;
} comment-date/style-rtl.min.css 0000644 00000000055 15056145447 0012367 0 ustar 00 .wp-block-comment-date{box-sizing:border-box} comment-date/block.json 0000644 00000002534 15056145447 0011125 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": {
"html": false,
"color": {
"gradients": 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
}
},
"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.min.css 0000644 00000000055 15056145447 0011570 0 ustar 00 .wp-block-comment-date{box-sizing:border-box} comment-date/style-rtl.css 0000644 00000000062 15056145447 0011603 0 ustar 00 .wp-block-comment-date{
box-sizing:border-box;
} comment-date/style.css 0000644 00000000062 15056145450 0010776 0 ustar 00 .wp-block-comment-date{
box-sizing:border-box;
} latest-comments.php 0000644 00000011660 15056145450 0010405 0 ustar 00 $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 .= '';
}
}
$classnames = array();
if ( $attributes['displayAvatar'] ) {
$classnames[] = 'has-avatars';
}
if ( $attributes['displayDate'] ) {
$classnames[] = 'has-dates';
}
if ( $attributes['displayExcerpt'] ) {
$classnames[] = 'has-excerpts';
}
if ( empty( $comments ) ) {
$classnames[] = 'no-comments';
}
$wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classnames ) ) );
return ! empty( $comments ) ? sprintf(
'
%2$s ',
$wrapper_attributes,
$list_items_markup
) : sprintf(
'
%2$s
',
$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' );
paragraph/style-rtl.min.css 0000644 00000001221 15056145451 0011746 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/block.json 0000644 00000003227 15056145452 0010511 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": {
"align": {
"type": "string"
},
"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": {
"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,
"__experimentalFontFamily": true,
"__experimentalTextDecoration": true,
"__experimentalFontStyle": true,
"__experimentalFontWeight": true,
"__experimentalLetterSpacing": true,
"__experimentalTextTransform": true,
"__experimentalWritingMode": true,
"__experimentalDefaultControls": {
"fontSize": true
}
},
"__experimentalSelector": "p",
"__unstablePasteTextInline": true,
"interactivity": {
"clientNavigation": true
}
},
"editorStyle": "wp-block-paragraph-editor",
"style": "wp-block-paragraph"
}
paragraph/editor-rtl.css 0000644 00000001356 15056145453 0011325 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;
} paragraph/editor.min.css 0000644 00000001314 15056145453 0011302 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} paragraph/style.min.css 0000644 00000001217 15056145453 0011156 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/style-rtl.css 0000644 00000001352 15056145454 0011174 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 0000644 00000001350 15056145455 0010374 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/editor.css 0000644 00000001356 15056145455 0010530 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;
} paragraph/editor-rtl.min.css 0000644 00000001314 15056145455 0012103 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} post-comments-form.php 0000644 00000005365 15056145456 0011052 0 ustar 00 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 `
` 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'] = '
';
$fields['submit_field'] = '
%1$s %2$s
';
}
return $fields;
}
search/style-rtl.min.css 0000644 00000004530 15056145457 0011262 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{height:1.25em;min-height:24px;min-width:24px;width: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__input{appearance:none;border:1px solid #949494;flex-grow:1;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important}.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){font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-transform:inherit}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){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/theme.min.css 0000644 00000000176 15056145457 0010427 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/view.asset.php 0000644 00000000124 15056145460 0010615 0 ustar 00 array(), 'version' => '2a0784014283afdd3c25');
search/theme.css 0000644 00000000215 15056145461 0007632 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/view.js 0000644 00000007773 15056145461 0007346 0 ustar 00 import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity";
/******/ // The require scope
/******/ var __webpack_require__ = {};
/******/
/************************************************************************/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/************************************************************************/
var __webpack_exports__ = {};
;// external "@wordpress/interactivity"
var x = (y) => {
var x = {}; __webpack_require__.d(x, y); return x
}
var y = (x) => (() => (x))
const interactivity_namespaceObject = x({ ["getContext"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.getContext), ["getElement"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.getElement), ["store"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.store), ["withSyncEvent"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.withSyncEvent) });
;// ./node_modules/@wordpress/block-library/build-module/search/view.js
/**
* WordPress dependencies
*/
const {
actions
} = (0,interactivity_namespaceObject.store)('core/search', {
state: {
get ariaLabel() {
const {
isSearchInputVisible,
ariaLabelCollapsed,
ariaLabelExpanded
} = (0,interactivity_namespaceObject.getContext)();
return isSearchInputVisible ? ariaLabelExpanded : ariaLabelCollapsed;
},
get ariaControls() {
const {
isSearchInputVisible,
inputId
} = (0,interactivity_namespaceObject.getContext)();
return isSearchInputVisible ? null : inputId;
},
get type() {
const {
isSearchInputVisible
} = (0,interactivity_namespaceObject.getContext)();
return isSearchInputVisible ? 'submit' : 'button';
},
get tabindex() {
const {
isSearchInputVisible
} = (0,interactivity_namespaceObject.getContext)();
return isSearchInputVisible ? '0' : '-1';
}
},
actions: {
openSearchInput: (0,interactivity_namespaceObject.withSyncEvent)(event => {
const ctx = (0,interactivity_namespaceObject.getContext)();
const {
ref
} = (0,interactivity_namespaceObject.getElement)();
if (!ctx.isSearchInputVisible) {
event.preventDefault();
ctx.isSearchInputVisible = true;
ref.parentElement.querySelector('input').focus();
}
}),
closeSearchInput() {
const ctx = (0,interactivity_namespaceObject.getContext)();
ctx.isSearchInputVisible = false;
},
handleSearchKeydown(event) {
const {
ref
} = (0,interactivity_namespaceObject.getElement)();
// If Escape close the menu.
if (event?.key === 'Escape') {
actions.closeSearchInput();
ref.querySelector('button').focus();
}
},
handleSearchFocusout(event) {
const {
ref
} = (0,interactivity_namespaceObject.getElement)();
// If focus is outside search form, and in the document, close menu
// event.target === The element losing focus
// event.relatedTarget === The element receiving focus (if any)
// When focusout is outside the document,
// `window.document.activeElement` doesn't change.
if (!ref.contains(event.relatedTarget) && event.target !== window.document.activeElement) {
actions.closeSearchInput();
}
}
}
}, {
lock: true
});
search/block.json 0000644 00000003744 15056145462 0010016 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": {}
},
"isSearchFieldHidden": {
"type": "boolean",
"default": false
}
},
"supports": {
"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"
}
search/editor-rtl.css 0000644 00000000550 15056145463 0010621 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/theme-rtl.css 0000644 00000000215 15056145463 0010433 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.min.css 0000644 00000000506 15056145464 0010606 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 0000644 00000004527 15056145464 0010467 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{height:1.25em;min-height:24px;min-width:24px;width: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__input{appearance:none;border:1px solid #949494;flex-grow:1;margin-left:0;margin-right:0;min-width:3rem;padding:8px;text-decoration:unset!important}.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){font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;text-transform:inherit}:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){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/style-rtl.css 0000644 00000005130 15056145464 0010473 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{
height:1.25em;
min-height:24px;
min-width:24px;
width: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__input{
appearance:none;
border:1px solid #949494;
flex-grow:1;
margin-left:0;
margin-right:0;
min-width:3rem;
padding:8px;
text-decoration:unset !important;
}
.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){
font-family:inherit;
font-size:inherit;
font-style:inherit;
font-weight:inherit;
letter-spacing:inherit;
line-height:inherit;
text-transform:inherit;
}
:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){
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 0000644 00000005127 15056145465 0007703 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{
height:1.25em;
min-height:24px;
min-width:24px;
width: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__input{
appearance:none;
border:1px solid #949494;
flex-grow:1;
margin-left:0;
margin-right:0;
min-width:3rem;
padding:8px;
text-decoration:unset !important;
}
.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){
font-family:inherit;
font-size:inherit;
font-style:inherit;
font-weight:inherit;
letter-spacing:inherit;
line-height:inherit;
text-transform:inherit;
}
:where(.wp-block-search__button-inside .wp-block-search__inside-wrapper){
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/view.min.js 0000644 00000002531 15056145466 0010120 0 ustar 00 import*as e from"@wordpress/interactivity";var t={d:(e,n)=>{for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)};const n=(e=>{var n={};return t.d(n,e),n})({getContext:()=>e.getContext,getElement:()=>e.getElement,store:()=>e.store,withSyncEvent:()=>e.withSyncEvent}),{actions:r}=(0,n.store)("core/search",{state:{get ariaLabel(){const{isSearchInputVisible:e,ariaLabelCollapsed:t,ariaLabelExpanded:r}=(0,n.getContext)();return e?r:t},get ariaControls(){const{isSearchInputVisible:e,inputId:t}=(0,n.getContext)();return e?null:t},get type(){const{isSearchInputVisible:e}=(0,n.getContext)();return e?"submit":"button"},get tabindex(){const{isSearchInputVisible:e}=(0,n.getContext)();return e?"0":"-1"}},actions:{openSearchInput:(0,n.withSyncEvent)((e=>{const t=(0,n.getContext)(),{ref:r}=(0,n.getElement)();t.isSearchInputVisible||(e.preventDefault(),t.isSearchInputVisible=!0,r.parentElement.querySelector("input").focus())})),closeSearchInput(){(0,n.getContext)().isSearchInputVisible=!1},handleSearchKeydown(e){const{ref:t}=(0,n.getElement)();"Escape"===e?.key&&(r.closeSearchInput(),t.querySelector("button").focus())},handleSearchFocusout(e){const{ref:t}=(0,n.getElement)();t.contains(e.relatedTarget)||e.target===window.document.activeElement||r.closeSearchInput()}}},{lock:!0}); search/view.min.asset.php 0000644 00000000124 15056145466 0011405 0 ustar 00 array(), 'version' => '765a40956d200c79d99e');
search/editor.css 0000644 00000000550 15056145467 0010026 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/editor-rtl.min.css 0000644 00000000506 15056145470 0011402 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/theme-rtl.min.css 0000644 00000000176 15056145470 0011221 0 ustar 00 .wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em} site-logo/style-rtl.min.css 0000644 00000000705 15056145470 0011712 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 0000644 00000002521 15056145471 0010443 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": {
"html": false,
"align": true,
"alignWide": false,
"color": {
"__experimentalDuotone": "img, .components-placeholder__illustration, .components-placeholder::before",
"text": false,
"background": false
},
"spacing": {
"margin": true,
"padding": true,
"__experimentalDefaultControls": {
"margin": false,
"padding": false
}
},
"interactivity": {
"clientNavigation": true
}
},
"styles": [
{
"name": "default",
"label": "Default",
"isDefault": true
},
{ "name": "rounded", "label": "Rounded" }
],
"editorStyle": "wp-block-site-logo-editor",
"style": "wp-block-site-logo"
}
site-logo/editor-rtl.css 0000644 00000006246 15056145471 0011265 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 .components-drop-zone__content-icon{
display:none;
}
.block-library-site-logo__inspector-media-replace-container button.components-button{
box-shadow:inset 0 0 0 1px #ccc;
color:#1e1e1e;
display:block;
height:40px;
width:100%;
}
.block-library-site-logo__inspector-media-replace-container button.components-button:hover{
color:var(--wp-admin-theme-color);
}
.block-library-site-logo__inspector-media-replace-container button.components-button:focus{
box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
}
.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title{
text-align:start;
text-align-last:center;
white-space:normal;
word-break:break-all;
}
.block-library-site-logo__inspector-media-replace-container .components-dropdown{
display:block;
}
.block-library-site-logo__inspector-media-replace-container img{
aspect-ratio:1;
border-radius:50% !important;
box-shadow:inset 0 0 0 1px #0003;
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/editor.min.css 0000644 00000005632 15056145471 0011246 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 .components-drop-zone__content-icon{display:none}.block-library-site-logo__inspector-media-replace-container button.components-button{box-shadow:inset 0 0 0 1px #ccc;color:#1e1e1e;display:block;height:40px;width:100%}.block-library-site-logo__inspector-media-replace-container button.components-button:hover{color:var(--wp-admin-theme-color)}.block-library-site-logo__inspector-media-replace-container button.components-button:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-library-site-logo__inspector-media-replace-container .components-dropdown{display:block}.block-library-site-logo__inspector-media-replace-container img{aspect-ratio:1;border-radius:50%!important;box-shadow:inset 0 0 0 1px #0003;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 0000644 00000000705 15056145472 0011115 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-rtl.css 0000644 00000001001 15056145472 0011120 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 0000644 00000001001 15056145472 0010321 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/editor.css 0000644 00000006246 15056145472 0010467 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 .components-drop-zone__content-icon{
display:none;
}
.block-library-site-logo__inspector-media-replace-container button.components-button{
box-shadow:inset 0 0 0 1px #ccc;
color:#1e1e1e;
display:block;
height:40px;
width:100%;
}
.block-library-site-logo__inspector-media-replace-container button.components-button:hover{
color:var(--wp-admin-theme-color);
}
.block-library-site-logo__inspector-media-replace-container button.components-button:focus{
box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color);
}
.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title{
text-align:start;
text-align-last:center;
white-space:normal;
word-break:break-all;
}
.block-library-site-logo__inspector-media-replace-container .components-dropdown{
display:block;
}
.block-library-site-logo__inspector-media-replace-container img{
aspect-ratio:1;
border-radius:50% !important;
box-shadow:inset 0 0 0 1px #0003;
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/editor-rtl.min.css 0000644 00000005632 15056145473 0012047 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 .components-drop-zone__content-icon{display:none}.block-library-site-logo__inspector-media-replace-container button.components-button{box-shadow:inset 0 0 0 1px #ccc;color:#1e1e1e;display:block;height:40px;width:100%}.block-library-site-logo__inspector-media-replace-container button.components-button:hover{color:var(--wp-admin-theme-color)}.block-library-site-logo__inspector-media-replace-container button.components-button:focus{box-shadow:inset 0 0 0 var(--wp-admin-border-width-focus) var(--wp-admin-theme-color)}.block-library-site-logo__inspector-media-replace-container .block-library-site-logo__inspector-media-replace-title{text-align:start;text-align-last:center;white-space:normal;word-break:break-all}.block-library-site-logo__inspector-media-replace-container .components-dropdown{display:block}.block-library-site-logo__inspector-media-replace-container img{aspect-ratio:1;border-radius:50%!important;box-shadow:inset 0 0 0 1px #0003;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-title/style-rtl.min.css 0000644 00000000350 15056145474 0012073 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 0000644 00000003363 15056145474 0010634 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 ]
},
"textAlign": {
"type": "string"
},
"isLink": {
"type": "boolean",
"default": true,
"role": "content"
},
"linkTarget": {
"type": "string",
"default": "_self",
"role": "content"
}
},
"example": {
"viewportWidth": 500
},
"supports": {
"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,
"__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/editor-rtl.css 0000644 00000000112 15056145474 0011433 0 ustar 00 .wp-block-site-title__placeholder{
border:1px dashed;
padding:1em 0;
} site-title/editor.min.css 0000644 00000000102 15056145474 0011415 0 ustar 00 .wp-block-site-title__placeholder{border:1px dashed;padding:1em 0} site-title/style.min.css 0000644 00000000350 15056145474 0011274 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-rtl.css 0000644 00000000410 15056145475 0011307 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 0000644 00000000410 15056145475 0010510 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.css 0000644 00000000112 15056145475 0010635 0 ustar 00 .wp-block-site-title__placeholder{
border:1px dashed;
padding:1em 0;
} site-title/editor-rtl.min.css 0000644 00000000102 15056145475 0012215 0 ustar 00 .wp-block-site-title__placeholder{border:1px dashed;padding:1em 0} blocks-json.php 0000644 00000572631 15056145475 0007533 0 ustar 00 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(
'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
)
),
'editorStyle' => 'wp-block-archives-editor'
),
'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(
'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,
'__experimentalDuotone' => 'img'
),
'interactivity' => array(
'clientNavigation' => true
)
),
'selectors' => array(
'border' => '.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
)
)
),
'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'
),
'textAlign' => array(
'type' => 'string'
),
'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'
),
'width' => array(
'type' => 'number'
)
),
'supports' => array(
'anchor' => true,
'splitting' => true,
'align' => false,
'alignWide' => false,
'color' => array(
'__experimentalSkipSerialization' => true,
'gradients' => true,
'__experimentalDefaultControls' => array(
'background' => true,
'text' => true
)
),
'typography' => array(
'__experimentalSkipSerialization' => array(
'fontSize',
'lineHeight',
'fontFamily',
'fontWeight',
'fontStyle',
'textTransform',
'textDecoration',
'letterSpacing'
),
'fontSize' => true,
'lineHeight' => 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'
)
)
),
'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
)
),
'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(
'align' => true,
'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(
'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
)
),
'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'
),
'allowedBlocks' => array(
'type' => 'array'
),
'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
)
)
),
'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'
),
'textAlign' => array(
'type' => 'string'
)
),
'usesContext' => array(
'commentId'
),
'supports' => array(
'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,
'__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'
),
'attributes' => array(
'textAlign' => array(
'type' => 'string'
)
),
'supports' => array(
'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
)
),
'__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(
'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,
'__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'
),
'textAlign' => array(
'type' => 'string'
)
),
'supports' => array(
'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,
'__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'
),
'attributes' => array(
'textAlign' => array(
'type' => 'string'
)
),
'supports' => array(
'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,
'__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(
'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(
'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(
'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(
'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(
'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-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(
'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(
'textAlign' => array(
'type' => 'string'
),
'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' => false,
'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,
'__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'
),
'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
),
'allowedBlocks' => array(
'type' => 'array'
),
'templateLock' => array(
'type' => array(
'string',
'boolean'
),
'enum' => array(
'all',
'insert',
'contentOnly',
false
)
),
'tagName' => array(
'type' => 'string',
'default' => 'div'
),
'sizeSlug' => array(
'type' => 'string'
)
),
'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(
'__experimentalDuotone' => '> .wp-block-cover__image-background, > .wp-block-cover__video-background',
'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
)
),
'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(
'accordion',
'summary',
'toggle',
'disclosure'
),
'textdomain' => 'default',
'attributes' => array(
'showContent' => array(
'type' => 'boolean',
'default' => false
),
'summary' => array(
'type' => 'rich-text',
'source' => 'rich-text',
'selector' => 'summary'
),
'name' => array(
'type' => 'string',
'source' => 'attribute',
'attribute' => 'name',
'selector' => '.wp-block-details'
),
'allowedBlocks' => array(
'type' => 'array'
),
'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
)
),
'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(
'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(
'__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,
'reusable' => 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',
'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(
)
),
'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'
),
'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
)
),
'providesContext' => array(
'allowResize' => 'allowResize',
'imageCrop' => 'imageCrop',
'fixedHeight' => 'fixedHeight'
),
'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(
'horizontal',
'vertical'
),
'__experimentalSkipSerialization' => array(
'blockGap'
),
'__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
)
),
'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
)
),
'allowedBlocks' => array(
'type' => 'array'
)
),
'supports' => array(
'__experimentalOnEnter' => true,
'__experimentalOnMerge' => true,
'__experimentalSettings' => true,
'align' => array(
'wide',
'full'
),
'anchor' => true,
'ariaLabel' => true,
'html' => false,
'background' => array(
'backgroundImage' => true,
'backgroundSize' => true,
'__experimentalDefaultControls' => array(
'backgroundImage' => 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
),
'__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
)
),
'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(
'textAlign' => array(
'type' => 'string'
),
'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,
'__experimentalFontFamily' => true,
'__experimentalFontStyle' => true,
'__experimentalFontWeight' => true,
'__experimentalLetterSpacing' => true,
'__experimentalTextTransform' => true,
'__experimentalTextDecoration' => true,
'__experimentalWritingMode' => 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'
)
),
'usesContext' => array(
'textColor',
'customTextColor',
'backgroundColor',
'customBackgroundColor',
'fontSize',
'customFontSize',
'style'
),
'supports' => array(
'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',
'source' => 'raw'
)
),
'supports' => array(
'customClassName' => false,
'className' => false,
'html' => false,
'interactivity' => array(
'clientNavigation' => true
)
),
'editorStyle' => 'wp-block-html-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',
'postId',
'postType',
'queryId'
),
'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'
),
'sizeSlug' => array(
'type' => 'string'
),
'linkDestination' => array(
'type' => 'string'
),
'linkTarget' => array(
'type' => 'string',
'source' => 'attribute',
'selector' => 'figure > a',
'attribute' => 'target'
)
),
'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(
'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
),
'displayExcerpt' => array(
'type' => 'boolean',
'default' => true
)
),
'supports' => array(
'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
)
),
'editorStyle' => 'wp-block-latest-comments-editor',
'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
),
'postLayout' => array(
'type' => 'string',
'default' => 'list'
),
'columns' => array(
'type' => 'number',
'default' => 3
),
'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(
'align' => 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,
'__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',
'__unstableMultilineWrapperTags' => array(
'ol',
'ul'
),
'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
)
),
'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,
'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(
'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'
),
'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'
),
'allowedBlocks' => array(
'type' => 'array'
),
'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
)
),
'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,
'reusable' => false,
'interactivity' => array(
'clientNavigation' => true
)
)
),
'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' => ''
),
'noTeaser' => array(
'type' => 'boolean',
'default' => false
)
),
'supports' => array(
'customClassName' => false,
'className' => false,
'html' => false,
'multiple' => false,
'interactivity' => array(
'clientNavigation' => true
)
),
'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/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
),
'openSubmenusOnClick' => array(
'type' => 'boolean',
'default' => false
),
'overlayMenu' => array(
'type' => 'string',
'default' => 'mobile'
),
'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',
'openSubmenusOnClick' => 'openSubmenusOnClick',
'style' => 'style',
'maxNestingLevel' => 'maxNestingLevel'
),
'supports' => array(
'align' => array(
'wide',
'full'
),
'ariaLabel' => 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'
),
'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'
),
'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(
'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
)
),
'editorStyle' => 'wp-block-navigation-link-editor',
'style' => 'wp-block-navigation-link'
),
'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'
),
'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'
),
'title' => array(
'type' => 'string'
),
'kind' => array(
'type' => 'string'
),
'isTopLevelItem' => array(
'type' => 'boolean'
)
),
'usesContext' => array(
'textColor',
'customTextColor',
'backgroundColor',
'customBackgroundColor',
'overlayTextColor',
'customOverlayTextColor',
'overlayBackgroundColor',
'customOverlayBackgroundColor',
'fontSize',
'customFontSize',
'showSubmenuIcon',
'maxNestingLevel',
'openSubmenusOnClick',
'style'
),
'supports' => array(
'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,
'interactivity' => array(
'clientNavigation' => true
)
),
'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
),
'isNested' => array(
'type' => 'boolean',
'default' => false
)
),
'usesContext' => array(
'textColor',
'customTextColor',
'backgroundColor',
'customBackgroundColor',
'overlayTextColor',
'customOverlayTextColor',
'overlayBackgroundColor',
'customOverlayBackgroundColor',
'fontSize',
'customFontSize',
'showSubmenuIcon',
'style',
'openSubmenusOnClick'
),
'supports' => array(
'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
)
)
),
'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'
),
'supports' => array(
'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(
'align' => array(
'type' => 'string'
),
'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(
'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,
'__experimentalFontFamily' => true,
'__experimentalTextDecoration' => true,
'__experimentalFontStyle' => true,
'__experimentalFontWeight' => true,
'__experimentalLetterSpacing' => true,
'__experimentalTextTransform' => true,
'__experimentalWritingMode' => true,
'__experimentalDefaultControls' => array(
'fontSize' => true
)
),
'__experimentalSelector' => 'p',
'__unstablePasteTextInline' => true,
'interactivity' => array(
'clientNavigation' => true
)
),
'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,
'interactivity' => array(
'clientNavigation' => true
)
),
'textdomain' => 'default',
'attributes' => array(
'slug' => array(
'type' => 'string'
)
)
),
'post-author' => array(
'$schema' => 'https://schemas.wp.org/trunk/block.json',
'apiVersion' => 3,
'name' => 'core/post-author',
'title' => 'Author',
'category' => 'theme',
'description' => 'Display post author details such as name, avatar, and bio.',
'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(
'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,
'__experimentalDuotone' => '.wp-block-post-author__avatar img',
'__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
)
)
),
'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',
'attributes' => array(
'textAlign' => array(
'type' => 'string'
)
),
'usesContext' => array(
'postType',
'postId'
),
'example' => array(
'viewportWidth' => 350
),
'supports' => array(
'spacing' => array(
'margin' => true,
'padding' => 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
)
),
'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(
'textAlign' => array(
'type' => 'string'
),
'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(
'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,
'__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-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',
'attributes' => array(
'textAlign' => array(
'type' => 'string'
)
),
'usesContext' => array(
'postId',
'postType'
),
'supports' => array(
'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,
'__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(
'textAlign' => 'center'
)
)
),
'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'
),
'example' => array(
'viewportWidth' => 350
),
'supports' => array(
'align' => array(
'wide',
'full'
),
'html' => false,
'layout' => true,
'background' => array(
'backgroundImage' => true,
'backgroundSize' => 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
)
),
'__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 the publish date for an entry such as a post or page.',
'textdomain' => 'default',
'attributes' => array(
'textAlign' => array(
'type' => 'string'
),
'format' => array(
'type' => 'string'
),
'isLink' => array(
'type' => 'boolean',
'default' => false,
'role' => 'content'
),
'displayType' => array(
'type' => 'string',
'default' => 'date'
)
),
'usesContext' => array(
'postId',
'postType',
'queryId'
),
'example' => array(
'viewportWidth' => 350
),
'supports' => array(
'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,
'__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(
'textAlign' => array(
'type' => 'string'
),
'moreText' => array(
'type' => 'string'
),
'showMoreOnNewLine' => array(
'type' => 'boolean',
'default' => true
),
'excerptLength' => array(
'type' => 'number',
'default' => 55
)
),
'usesContext' => array(
'postId',
'postType',
'queryId'
),
'example' => array(
'viewportWidth' => 350
),
'supports' => array(
'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,
'__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(
'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(
'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(
'textAlign' => array(
'type' => 'string'
),
'type' => array(
'type' => 'string',
'default' => 'next'
),
'label' => array(
'type' => 'string'
),
'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(
'reusable' => false,
'html' => false,
'color' => array(
'link' => true
),
'typography' => array(
'fontSize' => true,
'lineHeight' => 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'
),
'supports' => array(
'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'
),
'textAlign' => array(
'type' => 'string'
),
'separator' => array(
'type' => 'string',
'default' => ', '
),
'prefix' => array(
'type' => 'string',
'default' => ''
),
'suffix' => array(
'type' => 'string',
'default' => ''
)
),
'usesContext' => array(
'postId',
'postType'
),
'example' => array(
'viewportWidth' => 350
),
'supports' => array(
'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,
'__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-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(
'textAlign' => array(
'type' => 'string'
),
'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'
)
),
'example' => array(
'viewportWidth' => 350
),
'supports' => array(
'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,
'__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'
),
'textAlign' => array(
'type' => 'string'
)
),
'supports' => array(
'anchor' => true,
'align' => array(
'left',
'right',
'wide',
'full'
),
'background' => array(
'backgroundImage' => true,
'backgroundSize' => true,
'__experimentalDefaultControls' => array(
'backgroundImage' => true
)
),
'color' => array(
'gradients' => true,
'background' => true,
'link' => true,
'__experimentalDefaultControls' => array(
'background' => true,
'text' => true
)
),
'dimensions' => array(
'minHeight' => true,
'__experimentalDefaultControls' => array(
'minHeight' => 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
)
),
'__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(
)
)
),
'tagName' => array(
'type' => 'string',
'default' => 'div'
),
'namespace' => array(
'type' => 'string'
),
'enhancedPagination' => array(
'type' => 'boolean',
'default' => false
)
),
'usesContext' => array(
'templateSlug'
),
'providesContext' => array(
'queryId' => 'queryId',
'query' => 'query',
'displayLayout' => 'displayLayout',
'enhancedPagination' => 'enhancedPagination'
),
'supports' => array(
'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(
'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(
'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(
'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(
'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(
'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'
),
'textAlign' => 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'
)
),
'supports' => array(
'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,
'__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(
'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,
'__experimentalDefaultControls' => array(
'backgroundImage' => 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
)
),
'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'
),
'linkTarget' => array(
'type' => 'string',
'default' => '_self'
)
),
'usesContext' => array(
'postId'
),
'supports' => array(
'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' => ''
),
'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
)
),
'supports' => array(
'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(
)
),
'isSearchFieldHidden' => array(
'type' => 'boolean',
'default' => false
)
),
'supports' => array(
'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'
),
'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'
)
),
'supports' => array(
'className' => false,
'customClassName' => false,
'html' => 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(
'html' => false,
'align' => true,
'alignWide' => false,
'color' => array(
'__experimentalDuotone' => 'img, .components-placeholder__illustration, .components-placeholder::before',
'text' => false,
'background' => false
),
'spacing' => array(
'margin' => true,
'padding' => true,
'__experimentalDefaultControls' => array(
'margin' => false,
'padding' => false
)
),
'interactivity' => array(
'clientNavigation' => true
)
),
'styles' => array(
array(
'name' => 'default',
'label' => 'Default',
'isDefault' => true
),
array(
'name' => 'rounded',
'label' => 'Rounded'
)
),
'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 the site is about. The tagline can be used in search results or when sharing on social networks even if it’s not displayed in the theme design.',
'keywords' => array(
'description'
),
'textdomain' => 'default',
'attributes' => array(
'textAlign' => array(
'type' => 'string'
),
'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(
'textAlign' => 'center'
)
),
'supports' => array(
'align' => array(
'wide',
'full'
),
'html' => false,
'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,
'lineHeight' => 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
)
),
'textAlign' => array(
'type' => 'string'
),
'isLink' => array(
'type' => 'boolean',
'default' => true,
'role' => 'content'
),
'linkTarget' => array(
'type' => 'string',
'default' => '_self',
'role' => 'content'
)
),
'example' => array(
'viewportWidth' => 500
),
'supports' => array(
'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,
'__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(
'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,
'__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
)
)
),
'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'
),
'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'
),
'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'
),
'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'
),
'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'
),
'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'
),
'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(
'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
)
)
),
'editorStyle' => 'wp-block-tag-cloud-editor'
),
'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-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',
'attributes' => array(
'textAlign' => array(
'type' => 'string'
)
),
'supports' => array(
'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,
'__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
)
)
)
),
'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' => 'Verse',
'category' => 'text',
'description' => 'Insert poetry. Use special spacing formats. Or quote song lyrics.',
'keywords' => array(
'poetry',
'poem'
),
'textdomain' => 'default',
'attributes' => array(
'content' => array(
'type' => 'rich-text',
'source' => 'rich-text',
'selector' => 'pre',
'__unstablePreserveWhiteSpace' => true,
'role' => 'content'
),
'textAlign' => array(
'type' => 'string'
)
),
'supports' => array(
'anchor' => true,
'background' => array(
'backgroundImage' => true,
'backgroundSize' => true,
'__experimentalDefaultControls' => array(
'backgroundImage' => 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,
'__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'
),
'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'
)
); image/style-rtl.min.css 0000644 00000015242 15056145476 0011102 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,
');mask-image:url('data:image/svg+xml;utf8,
');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;-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background-color:#5a5a5a40;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 #5a5a5a40;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:#5a5a5a40;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 .close-button{align-items:center;cursor:pointer;display:flex;justify-content:center;left:calc(env(safe-area-inset-left) + 16px);min-height:40px;min-width:40px;padding:0;position:absolute;top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .lightbox-image-container{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:9999999999}.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/theme.min.css 0000644 00000000274 15056145476 0010244 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:#ffffffa6}.wp-block-image{margin:0 0 1em} image/view.asset.php 0000644 00000000124 15056145477 0010442 0 ustar 00 array(), 'version' => '7500eb032759d407a71d');
image/theme.css 0000644 00000000324 15056145477 0007457 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:#ffffffa6;
}
.wp-block-image{
margin:0 0 1em;
} image/view.js 0000644 00000043426 15056145500 0007150 0 ustar 00 import * as __WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__ from "@wordpress/interactivity";
/******/ // The require scope
/******/ var __webpack_require__ = {};
/******/
/************************************************************************/
/******/ /* webpack/runtime/define property getters */
/******/ (() => {
/******/ // define getter functions for harmony exports
/******/ __webpack_require__.d = (exports, definition) => {
/******/ for(var key in definition) {
/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
/******/ }
/******/ }
/******/ };
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
/******/ (() => {
/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
/******/ })();
/******/
/************************************************************************/
var __webpack_exports__ = {};
;// external "@wordpress/interactivity"
var x = (y) => {
var x = {}; __webpack_require__.d(x, y); return x
}
var y = (x) => (() => (x))
const interactivity_namespaceObject = x({ ["getContext"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.getContext), ["getElement"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.getElement), ["store"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.store), ["withSyncEvent"]: () => (__WEBPACK_EXTERNAL_MODULE__wordpress_interactivity_8e89b257__.withSyncEvent) });
;// ./node_modules/@wordpress/block-library/build-module/image/view.js
/**
* WordPress dependencies
*/
/**
* Tracks whether user is touching screen; used to differentiate behavior for
* touch and mouse input.
*
* @type {boolean}
*/
let isTouching = false;
/**
* Tracks the last time the screen was touched; used to differentiate behavior
* for touch and mouse input.
*
* @type {number}
*/
let lastTouchTime = 0;
const {
state,
actions,
callbacks
} = (0,interactivity_namespaceObject.store)('core/image', {
state: {
currentImageId: null,
get currentImage() {
return state.metadata[state.currentImageId];
},
get overlayOpened() {
return state.currentImageId !== null;
},
get roleAttribute() {
return state.overlayOpened ? 'dialog' : null;
},
get ariaModal() {
return state.overlayOpened ? 'true' : null;
},
get enlargedSrc() {
return state.currentImage.uploadedSrc || 'data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=';
},
get figureStyles() {
return state.overlayOpened && `${state.currentImage.figureStyles?.replace(/margin[^;]*;?/g, '')};`;
},
get imgStyles() {
return state.overlayOpened && `${state.currentImage.imgStyles?.replace(/;$/, '')}; object-fit:cover;`;
},
get imageButtonRight() {
const {
imageId
} = (0,interactivity_namespaceObject.getContext)();
return state.metadata[imageId].imageButtonRight;
},
get imageButtonTop() {
const {
imageId
} = (0,interactivity_namespaceObject.getContext)();
return state.metadata[imageId].imageButtonTop;
},
get isContentHidden() {
const ctx = (0,interactivity_namespaceObject.getContext)();
return state.overlayEnabled && state.currentImageId === ctx.imageId;
},
get isContentVisible() {
const ctx = (0,interactivity_namespaceObject.getContext)();
return !state.overlayEnabled && state.currentImageId === ctx.imageId;
}
},
actions: {
showLightbox() {
const {
imageId
} = (0,interactivity_namespaceObject.getContext)();
// Bails out if the image has not loaded yet.
if (!state.metadata[imageId].imageRef?.complete) {
return;
}
// Stores the positions of the scroll to fix it until the overlay is
// closed.
state.scrollTopReset = document.documentElement.scrollTop;
state.scrollLeftReset = document.documentElement.scrollLeft;
// Sets the current expanded image in the state and enables the overlay.
state.overlayEnabled = true;
state.currentImageId = imageId;
// Computes the styles of the overlay for the animation.
callbacks.setOverlayStyles();
},
hideLightbox() {
if (state.overlayEnabled) {
// Starts the overlay closing animation. The showClosingAnimation
// class is used to avoid showing it on page load.
state.showClosingAnimation = true;
state.overlayEnabled = false;
// Waits until the close animation has completed before allowing a
// user to scroll again. The duration of this animation is defined in
// the `styles.scss` file, but in any case we should wait a few
// milliseconds longer than the duration, otherwise a user may scroll
// too soon and cause the animation to look sloppy.
setTimeout(function () {
// Delays before changing the focus. Otherwise the focus ring will
// appear on Firefox before the image has finished animating, which
// looks broken.
state.currentImage.buttonRef.focus({
preventScroll: true
});
// Resets the current image id to mark the overlay as closed.
state.currentImageId = null;
}, 450);
}
},
handleKeydown: (0,interactivity_namespaceObject.withSyncEvent)(event => {
if (state.overlayEnabled) {
// Focuses the close button when the user presses the tab key.
if (event.key === 'Tab') {
event.preventDefault();
const {
ref
} = (0,interactivity_namespaceObject.getElement)();
ref.querySelector('button').focus();
}
// Closes the lightbox when the user presses the escape key.
if (event.key === 'Escape') {
actions.hideLightbox();
}
}
}),
handleTouchMove: (0,interactivity_namespaceObject.withSyncEvent)(event => {
// On mobile devices, prevents triggering the scroll event because
// otherwise the page jumps around when it resets the scroll position.
// This also means that closing the lightbox requires that a user
// perform a simple tap. This may be changed in the future if there is a
// better alternative to override or reset the scroll position during
// swipe actions.
if (state.overlayEnabled) {
event.preventDefault();
}
}),
handleTouchStart() {
isTouching = true;
},
handleTouchEnd() {
// Waits a few milliseconds before resetting to ensure that pinch to
// zoom works consistently on mobile devices when the lightbox is open.
lastTouchTime = Date.now();
isTouching = false;
},
handleScroll() {
// Prevents scrolling behaviors that trigger content shift while the
// lightbox is open. It would be better to accomplish through CSS alone,
// but using overflow: hidden is currently the only way to do so and
// that causes a layout to shift and prevents the zoom animation from
// working in some cases because it's not possible to account for the
// layout shift when doing the animation calculations. Instead, it uses
// JavaScript to prevent and reset the scrolling behavior.
if (state.overlayOpened) {
// Avoids overriding the scroll behavior on mobile devices because
// doing so breaks the pinch to zoom functionality, and users should
// be able to zoom in further on the high-res image.
if (!isTouching && Date.now() - lastTouchTime > 450) {
// It doesn't rely on `event.preventDefault()` to prevent scrolling
// because the scroll event can't be canceled, so it resets the
// position instead.
window.scrollTo(state.scrollLeftReset, state.scrollTopReset);
}
}
}
},
callbacks: {
setOverlayStyles() {
if (!state.overlayEnabled) {
return;
}
let {
naturalWidth,
naturalHeight,
offsetWidth: originalWidth,
offsetHeight: originalHeight
} = state.currentImage.imageRef;
let {
x: screenPosX,
y: screenPosY
} = state.currentImage.imageRef.getBoundingClientRect();
// Natural ratio of the image clicked to open the lightbox.
const naturalRatio = naturalWidth / naturalHeight;
// Original ratio of the image clicked to open the lightbox.
let originalRatio = originalWidth / originalHeight;
// If it has object-fit: contain, recalculates the original sizes
// and the screen position without the blank spaces.
if (state.currentImage.scaleAttr === 'contain') {
if (naturalRatio > originalRatio) {
const heightWithoutSpace = originalWidth / naturalRatio;
// Recalculates screen position without the top space.
screenPosY += (originalHeight - heightWithoutSpace) / 2;
originalHeight = heightWithoutSpace;
} else {
const widthWithoutSpace = originalHeight * naturalRatio;
// Recalculates screen position without the left space.
screenPosX += (originalWidth - widthWithoutSpace) / 2;
originalWidth = widthWithoutSpace;
}
}
originalRatio = originalWidth / originalHeight;
// Typically, it uses the image's full-sized dimensions. If those
// dimensions have not been set (i.e. an external image with only one
// size), the image's dimensions in the lightbox are the same
// as those of the image in the content.
let imgMaxWidth = parseFloat(state.currentImage.targetWidth !== 'none' ? state.currentImage.targetWidth : naturalWidth);
let imgMaxHeight = parseFloat(state.currentImage.targetHeight !== 'none' ? state.currentImage.targetHeight : naturalHeight);
// Ratio of the biggest image stored in the database.
let imgRatio = imgMaxWidth / imgMaxHeight;
let containerMaxWidth = imgMaxWidth;
let containerMaxHeight = imgMaxHeight;
let containerWidth = imgMaxWidth;
let containerHeight = imgMaxHeight;
// Checks if the target image has a different ratio than the original
// one (thumbnail). Recalculates the width and height.
if (naturalRatio.toFixed(2) !== imgRatio.toFixed(2)) {
if (naturalRatio > imgRatio) {
// If the width is reached before the height, it keeps the maxWidth
// and recalculates the height unless the difference between the
// maxHeight and the reducedHeight is higher than the maxWidth,
// where it keeps the reducedHeight and recalculate the width.
const reducedHeight = imgMaxWidth / naturalRatio;
if (imgMaxHeight - reducedHeight > imgMaxWidth) {
imgMaxHeight = reducedHeight;
imgMaxWidth = reducedHeight * naturalRatio;
} else {
imgMaxHeight = imgMaxWidth / naturalRatio;
}
} else {
// If the height is reached before the width, it keeps the maxHeight
// and recalculate the width unlesss the difference between the
// maxWidth and the reducedWidth is higher than the maxHeight, where
// it keeps the reducedWidth and recalculate the height.
const reducedWidth = imgMaxHeight * naturalRatio;
if (imgMaxWidth - reducedWidth > imgMaxHeight) {
imgMaxWidth = reducedWidth;
imgMaxHeight = reducedWidth / naturalRatio;
} else {
imgMaxWidth = imgMaxHeight * naturalRatio;
}
}
containerWidth = imgMaxWidth;
containerHeight = imgMaxHeight;
imgRatio = imgMaxWidth / imgMaxHeight;
// Calculates the max size of the container.
if (originalRatio > imgRatio) {
containerMaxWidth = imgMaxWidth;
containerMaxHeight = containerMaxWidth / originalRatio;
} else {
containerMaxHeight = imgMaxHeight;
containerMaxWidth = containerMaxHeight * originalRatio;
}
}
// If the image has been pixelated on purpose, it keeps that size.
if (originalWidth > containerWidth || originalHeight > containerHeight) {
containerWidth = originalWidth;
containerHeight = originalHeight;
}
// Calculates the final lightbox image size and the scale factor.
// MaxWidth is either the window container (accounting for padding) or
// the image resolution.
let horizontalPadding = 0;
if (window.innerWidth > 480) {
horizontalPadding = 80;
} else if (window.innerWidth > 1920) {
horizontalPadding = 160;
}
const verticalPadding = 80;
const targetMaxWidth = Math.min(window.innerWidth - horizontalPadding, containerWidth);
const targetMaxHeight = Math.min(window.innerHeight - verticalPadding, containerHeight);
const targetContainerRatio = targetMaxWidth / targetMaxHeight;
if (originalRatio > targetContainerRatio) {
// If targetMaxWidth is reached before targetMaxHeight.
containerWidth = targetMaxWidth;
containerHeight = containerWidth / originalRatio;
} else {
// If targetMaxHeight is reached before targetMaxWidth.
containerHeight = targetMaxHeight;
containerWidth = containerHeight * originalRatio;
}
const containerScale = originalWidth / containerWidth;
const lightboxImgWidth = imgMaxWidth * (containerWidth / containerMaxWidth);
const lightboxImgHeight = imgMaxHeight * (containerHeight / containerMaxHeight);
// As of this writing, using the calculations above will render the
// lightbox with a small, erroneous whitespace on the left side of the
// image in iOS Safari, perhaps due to an inconsistency in how browsers
// handle absolute positioning and CSS transformation. In any case,
// adding 1 pixel to the container width and height solves the problem,
// though this can be removed if the issue is fixed in the future.
state.overlayStyles = `
--wp--lightbox-initial-top-position: ${screenPosY}px;
--wp--lightbox-initial-left-position: ${screenPosX}px;
--wp--lightbox-container-width: ${containerWidth + 1}px;
--wp--lightbox-container-height: ${containerHeight + 1}px;
--wp--lightbox-image-width: ${lightboxImgWidth}px;
--wp--lightbox-image-height: ${lightboxImgHeight}px;
--wp--lightbox-scale: ${containerScale};
--wp--lightbox-scrollbar-width: ${window.innerWidth - document.documentElement.clientWidth}px;
`;
},
setButtonStyles() {
const {
imageId
} = (0,interactivity_namespaceObject.getContext)();
const {
ref
} = (0,interactivity_namespaceObject.getElement)();
state.metadata[imageId].imageRef = ref;
state.metadata[imageId].currentSrc = ref.currentSrc;
const {
naturalWidth,
naturalHeight,
offsetWidth,
offsetHeight
} = ref;
// If the image isn't loaded yet, it can't calculate where the button
// should be.
if (naturalWidth === 0 || naturalHeight === 0) {
return;
}
const figure = ref.parentElement;
const figureWidth = ref.parentElement.clientWidth;
// It needs special handling for the height because a caption will cause
// the figure to be taller than the image, which means it needs to
// account for that when calculating the placement of the button in the
// top right corner of the image.
let figureHeight = ref.parentElement.clientHeight;
const caption = figure.querySelector('figcaption');
if (caption) {
const captionComputedStyle = window.getComputedStyle(caption);
if (!['absolute', 'fixed'].includes(captionComputedStyle.position)) {
figureHeight = figureHeight - caption.offsetHeight - parseFloat(captionComputedStyle.marginTop) - parseFloat(captionComputedStyle.marginBottom);
}
}
const buttonOffsetTop = figureHeight - offsetHeight;
const buttonOffsetRight = figureWidth - offsetWidth;
let imageButtonTop = buttonOffsetTop + 16;
let imageButtonRight = buttonOffsetRight + 16;
// In the case of an image with object-fit: contain, the size of the
//
element can be larger than the image itself, so it needs to
// calculate where to place the button.
if (state.metadata[imageId].scaleAttr === 'contain') {
// Natural ratio of the image.
const naturalRatio = naturalWidth / naturalHeight;
// Offset ratio of the image.
const offsetRatio = offsetWidth / offsetHeight;
if (naturalRatio >= offsetRatio) {
// If it reaches the width first, it keeps the width and compute the
// height.
const referenceHeight = offsetWidth / naturalRatio;
imageButtonTop = (offsetHeight - referenceHeight) / 2 + buttonOffsetTop + 16;
imageButtonRight = buttonOffsetRight + 16;
} else {
// If it reaches the height first, it keeps the height and compute
// the width.
const referenceWidth = offsetHeight * naturalRatio;
imageButtonTop = buttonOffsetTop + 16;
imageButtonRight = (offsetWidth - referenceWidth) / 2 + buttonOffsetRight + 16;
}
}
state.metadata[imageId].imageButtonTop = imageButtonTop;
state.metadata[imageId].imageButtonRight = imageButtonRight;
},
setOverlayFocus() {
if (state.overlayEnabled) {
// Moves the focus to the dialog when it opens.
const {
ref
} = (0,interactivity_namespaceObject.getElement)();
ref.focus();
}
},
initTriggerButton() {
const {
imageId
} = (0,interactivity_namespaceObject.getContext)();
const {
ref
} = (0,interactivity_namespaceObject.getElement)();
state.metadata[imageId].buttonRef = ref;
}
}
}, {
lock: true
});
image/block.json 0000644 00000005650 15056145501 0007623 0 ustar 00 {
"$schema": "https://schemas.wp.org/trunk/block.json",
"apiVersion": 3,
"name": "core/image",
"title": "Image",
"category": "media",
"usesContext": [
"allowResize",
"imageCrop",
"fixedHeight",
"postId",
"postType",
"queryId"
],
"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"
},
"sizeSlug": {
"type": "string"
},
"linkDestination": {
"type": "string"
},
"linkTarget": {
"type": "string",
"source": "attribute",
"selector": "figure > a",
"attribute": "target"
}
},
"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": {
"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/editor-rtl.css 0000644 00000005266 15056145501 0010440 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-applying img,.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 .components-resizable-box__container{
display:table;
}
.wp-block-image .components-resizable-box__container img{
display:block;
height:inherit;
width:inherit;
}
.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{
left:0;
margin:-1px 0;
position:absolute;
right:0;
}
@media (min-width:600px){
.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{
margin:-1px;
}
}
[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{
height:auto;
width:100%;
}
.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{
display:table;
}
.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{
caption-side:bottom;
display:table-caption;
}
.wp-block[data-align=left]>.wp-block-image{
margin:.5em 0 .5em 1em;
}
.wp-block[data-align=right]>.wp-block-image{
margin:.5em 1em .5em 0;
}
.wp-block[data-align=center]>.wp-block-image{
margin-left:auto;
margin-right:auto;
text-align:center;
}
.wp-block[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/theme-rtl.css 0000644 00000000324 15056145501 0010242 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:#ffffffa6;
}
.wp-block-image{
margin:0 0 1em;
} image/editor.min.css 0000644 00000004660 15056145502 0010421 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-applying img,.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 .components-resizable-box__container{display:table}.wp-block-image .components-resizable-box__container img{display:block;height:inherit;width:inherit}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=right]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block[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 0000644 00000015230 15056145503 0010267 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,
');mask-image:url('data:image/svg+xml;utf8,
');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;-webkit-backdrop-filter:blur(16px) saturate(180%);backdrop-filter:blur(16px) saturate(180%);background-color:#5a5a5a40;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 #5a5a5a40;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:#5a5a5a40;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 .close-button{align-items:center;cursor:pointer;display:flex;justify-content:center;min-height:40px;min-width:40px;padding:0;position:absolute;right:calc(env(safe-area-inset-right) + 16px);top:calc(env(safe-area-inset-top) + 16px);z-index:5000000}.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){background:none;border:none}.wp-lightbox-overlay .lightbox-image-container{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:9999999999}.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/style-rtl.css 0000644 00000017107 15056145504 0010312 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,
');
mask-image:url('data:image/svg+xml;utf8,
');
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;
-webkit-backdrop-filter:blur(16px) saturate(180%);
backdrop-filter:blur(16px) saturate(180%);
background-color:#5a5a5a40;
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 #5a5a5a40;
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:#5a5a5a40;
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 .close-button{
align-items:center;
cursor:pointer;
display:flex;
justify-content:center;
left:calc(env(safe-area-inset-left) + 16px);
min-height:40px;
min-width:40px;
padding:0;
position:absolute;
top:calc(env(safe-area-inset-top) + 16px);
z-index:5000000;
}
.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){
background:none;
border:none;
}
.wp-lightbox-overlay .lightbox-image-container{
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:9999999999;
}
.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 0000644 00000017075 15056145504 0007517 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,
');
mask-image:url('data:image/svg+xml;utf8,
');
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;
-webkit-backdrop-filter:blur(16px) saturate(180%);
backdrop-filter:blur(16px) saturate(180%);
background-color:#5a5a5a40;
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 #5a5a5a40;
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:#5a5a5a40;
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 .close-button{
align-items:center;
cursor:pointer;
display:flex;
justify-content:center;
min-height:40px;
min-width:40px;
padding:0;
position:absolute;
right:calc(env(safe-area-inset-right) + 16px);
top:calc(env(safe-area-inset-top) + 16px);
z-index:5000000;
}
.wp-lightbox-overlay .close-button:focus,.wp-lightbox-overlay .close-button:hover,.wp-lightbox-overlay .close-button:not(:hover):not(:active):not(.has-background){
background:none;
border:none;
}
.wp-lightbox-overlay .lightbox-image-container{
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:9999999999;
}
.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/view.min.js 0000644 00000011053 15056145505 0007726 0 ustar 00 import*as t from"@wordpress/interactivity";var e={d:(t,n)=>{for(var a in n)e.o(n,a)&&!e.o(t,a)&&Object.defineProperty(t,a,{enumerable:!0,get:n[a]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)};const n=(t=>{var n={};return e.d(n,t),n})({getContext:()=>t.getContext,getElement:()=>t.getElement,store:()=>t.store,withSyncEvent:()=>t.withSyncEvent});let a=!1,o=0;const{state:r,actions:i,callbacks:l}=(0,n.store)("core/image",{state:{currentImageId:null,get currentImage(){return r.metadata[r.currentImageId]},get overlayOpened(){return null!==r.currentImageId},get roleAttribute(){return r.overlayOpened?"dialog":null},get ariaModal(){return r.overlayOpened?"true":null},get enlargedSrc(){return r.currentImage.uploadedSrc||"data:image/gif;base64,R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs="},get figureStyles(){return r.overlayOpened&&`${r.currentImage.figureStyles?.replace(/margin[^;]*;?/g,"")};`},get imgStyles(){return r.overlayOpened&&`${r.currentImage.imgStyles?.replace(/;$/,"")}; object-fit:cover;`},get imageButtonRight(){const{imageId:t}=(0,n.getContext)();return r.metadata[t].imageButtonRight},get imageButtonTop(){const{imageId:t}=(0,n.getContext)();return r.metadata[t].imageButtonTop},get isContentHidden(){const t=(0,n.getContext)();return r.overlayEnabled&&r.currentImageId===t.imageId},get isContentVisible(){const t=(0,n.getContext)();return!r.overlayEnabled&&r.currentImageId===t.imageId}},actions:{showLightbox(){const{imageId:t}=(0,n.getContext)();r.metadata[t].imageRef?.complete&&(r.scrollTopReset=document.documentElement.scrollTop,r.scrollLeftReset=document.documentElement.scrollLeft,r.overlayEnabled=!0,r.currentImageId=t,l.setOverlayStyles())},hideLightbox(){r.overlayEnabled&&(r.showClosingAnimation=!0,r.overlayEnabled=!1,setTimeout((function(){r.currentImage.buttonRef.focus({preventScroll:!0}),r.currentImageId=null}),450))},handleKeydown:(0,n.withSyncEvent)((t=>{if(r.overlayEnabled){if("Tab"===t.key){t.preventDefault();const{ref:e}=(0,n.getElement)();e.querySelector("button").focus()}"Escape"===t.key&&i.hideLightbox()}})),handleTouchMove:(0,n.withSyncEvent)((t=>{r.overlayEnabled&&t.preventDefault()})),handleTouchStart(){a=!0},handleTouchEnd(){o=Date.now(),a=!1},handleScroll(){r.overlayOpened&&!a&&Date.now()-o>450&&window.scrollTo(r.scrollLeftReset,r.scrollTopReset)}},callbacks:{setOverlayStyles(){if(!r.overlayEnabled)return;let{naturalWidth:t,naturalHeight:e,offsetWidth:n,offsetHeight:a}=r.currentImage.imageRef,{x:o,y:i}=r.currentImage.imageRef.getBoundingClientRect();const l=t/e;let g=n/a;if("contain"===r.currentImage.scaleAttr)if(l>g){const t=n/l;i+=(a-t)/2,a=t}else{const t=a*l;o+=(n-t)/2,n=t}g=n/a;let c=parseFloat("none"!==r.currentImage.targetWidth?r.currentImage.targetWidth:t),s=parseFloat("none"!==r.currentImage.targetHeight?r.currentImage.targetHeight:e),d=c/s,u=c,m=s,h=c,p=s;if(l.toFixed(2)!==d.toFixed(2)){if(l>d){const t=c/l;s-t>c?(s=t,c=t*l):s=c/l}else{const t=s*l;c-t>s?(c=t,s=t/l):c=s*l}h=c,p=s,d=c/s,g>d?(u=c,m=u/g):(m=s,u=m*g)}(n>h||a>p)&&(h=n,p=a);let f=0;window.innerWidth>480?f=80:window.innerWidth>1920&&(f=160);const y=Math.min(window.innerWidth-f,h),w=Math.min(window.innerHeight-80,p);g>y/w?(h=y,p=h/g):(p=w,h=p*g);const b=n/h,I=c*(h/u),v=s*(p/m);r.overlayStyles=`\n\t\t\t\t\t--wp--lightbox-initial-top-position: ${i}px;\n\t\t\t\t\t--wp--lightbox-initial-left-position: ${o}px;\n\t\t\t\t\t--wp--lightbox-container-width: ${h+1}px;\n\t\t\t\t\t--wp--lightbox-container-height: ${p+1}px;\n\t\t\t\t\t--wp--lightbox-image-width: ${I}px;\n\t\t\t\t\t--wp--lightbox-image-height: ${v}px;\n\t\t\t\t\t--wp--lightbox-scale: ${b};\n\t\t\t\t\t--wp--lightbox-scrollbar-width: ${window.innerWidth-document.documentElement.clientWidth}px;\n\t\t\t\t`},setButtonStyles(){const{imageId:t}=(0,n.getContext)(),{ref:e}=(0,n.getElement)();r.metadata[t].imageRef=e,r.metadata[t].currentSrc=e.currentSrc;const{naturalWidth:a,naturalHeight:o,offsetWidth:i,offsetHeight:l}=e;if(0===a||0===o)return;const g=e.parentElement,c=e.parentElement.clientWidth;let s=e.parentElement.clientHeight;const d=g.querySelector("figcaption");if(d){const t=window.getComputedStyle(d);["absolute","fixed"].includes(t.position)||(s=s-d.offsetHeight-parseFloat(t.marginTop)-parseFloat(t.marginBottom))}const u=s-l,m=c-i;let h=u+16,p=m+16;if("contain"===r.metadata[t].scaleAttr){const t=a/o;if(t>=i/l){h=(l-i/t)/2+u+16,p=m+16}else{h=u+16,p=(i-l*t)/2+m+16}}r.metadata[t].imageButtonTop=h,r.metadata[t].imageButtonRight=p},setOverlayFocus(){if(r.overlayEnabled){const{ref:t}=(0,n.getElement)();t.focus()}},initTriggerButton(){const{imageId:t}=(0,n.getContext)(),{ref:e}=(0,n.getElement)();r.metadata[t].buttonRef=e}}},{lock:!0}); image/view.min.asset.php 0000644 00000000124 15056145506 0011215 0 ustar 00 array(), 'version' => 'ff354d5368d64857fef0');
image/editor.css 0000644 00000005266 15056145507 0007647 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-applying img,.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 .components-resizable-box__container{
display:table;
}
.wp-block-image .components-resizable-box__container img{
display:block;
height:inherit;
width:inherit;
}
.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{
left:0;
margin:-1px 0;
position:absolute;
right:0;
}
@media (min-width:600px){
.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{
margin:-1px;
}
}
[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{
height:auto;
width:100%;
}
.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{
display:table;
}
.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{
caption-side:bottom;
display:table-caption;
}
.wp-block[data-align=left]>.wp-block-image{
margin:.5em 1em .5em 0;
}
.wp-block[data-align=right]>.wp-block-image{
margin:.5em 0 .5em 1em;
}
.wp-block[data-align=center]>.wp-block-image{
margin-left:auto;
margin-right:auto;
text-align:center;
}
.wp-block[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/editor-rtl.min.css 0000644 00000004660 15056145507 0011225 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-applying img,.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 .components-resizable-box__container{display:table}.wp-block-image .components-resizable-box__container img{display:block;height:inherit;width:inherit}.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{left:0;margin:-1px 0;position:absolute;right:0}@media (min-width:600px){.block-editor-block-list__block[data-type="core/image"] .block-editor-block-toolbar .block-editor-url-input__button-modal{margin:-1px}}[data-align=full]>.wp-block-image img,[data-align=wide]>.wp-block-image img{height:auto;width:100%}.wp-block[data-align=center]>.wp-block-image,.wp-block[data-align=left]>.wp-block-image,.wp-block[data-align=right]>.wp-block-image{display:table}.wp-block[data-align=center]>.wp-block-image>figcaption,.wp-block[data-align=left]>.wp-block-image>figcaption,.wp-block[data-align=right]>.wp-block-image>figcaption{caption-side:bottom;display:table-caption}.wp-block[data-align=left]>.wp-block-image{margin:.5em 0 .5em 1em}.wp-block[data-align=right]>.wp-block-image{margin:.5em 1em .5em 0}.wp-block[data-align=center]>.wp-block-image{margin-left:auto;margin-right:auto;text-align:center}.wp-block[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/theme-rtl.min.css 0000644 00000000274 15056145507 0011036 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:#ffffffa6}.wp-block-image{margin:0 0 1em} comment-reply-link/style-rtl.min.css 0000644 00000000063 15056145510 0013526 0 ustar 00 .wp-block-comment-reply-link{box-sizing:border-box} comment-reply-link/block.json 0000644 00000002321 15056145511 0012260 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" ],
"attributes": {
"textAlign": {
"type": "string"
}
},
"supports": {
"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,
"__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.min.css 0000644 00000000063 15056145512 0012731 0 ustar 00 .wp-block-comment-reply-link{box-sizing:border-box} comment-reply-link/style-rtl.css 0000644 00000000070 15056145512 0012744 0 ustar 00 .wp-block-comment-reply-link{
box-sizing:border-box;
} comment-reply-link/style.css 0000644 00000000070 15056145512 0012145 0 ustar 00 .wp-block-comment-reply-link{
box-sizing:border-box;
} query-pagination.php 0000644 00000002230 15056145513 0010553 0 ustar 00 __( 'Pagination' ),
'class' => $classes,
)
);
return sprintf(
'
%2$s ',
$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' );
footnotes/style-rtl.min.css 0000644 00000000440 15056145514 0012023 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/block.json 0000644 00000002604 15056145515 0010562 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": {
"__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.min.css 0000644 00000000437 15056145515 0011233 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/style-rtl.css 0000644 00000000510 15056145516 0011241 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 0000644 00000000507 15056145516 0010450 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;
} separator/style-rtl.min.css 0000644 00000000625 15056145517 0012013 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.min.css 0000644 00000000665 15056145517 0011162 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/theme.css 0000644 00000000745 15056145517 0010377 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/block.json 0000644 00000002172 15056145520 0010536 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/editor-rtl.css 0000644 00000000151 15056145521 0011344 0 ustar 00 .block-editor-block-list__block[data-type="core/separator"]{
padding-bottom:.1px;
padding-top:.1px;
} separator/theme-rtl.css 0000644 00000000745 15056145521 0011171 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.min.css 0000644 00000000141 15056145521 0011326 0 ustar 00 .block-editor-block-list__block[data-type="core/separator"]{padding-bottom:.1px;padding-top:.1px} separator/style.min.css 0000644 00000000625 15056145521 0011207 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-rtl.css 0000644 00000000715 15056145522 0011225 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 0000644 00000000715 15056145522 0010426 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/editor.css 0000644 00000000151 15056145522 0010546 0 ustar 00 .block-editor-block-list__block[data-type="core/separator"]{
padding-bottom:.1px;
padding-top:.1px;
} separator/editor-rtl.min.css 0000644 00000000141 15056145522 0012126 0 ustar 00 .block-editor-block-list__block[data-type="core/separator"]{padding-bottom:.1px;padding-top:.1px} separator/theme-rtl.min.css 0000644 00000000665 15056145522 0011755 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} comments-pagination-previous/block.json 0000644 00000001777 15056145523 0014401 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": {
"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
}
}
}
comments.php 0000644 00000015157 15056145523 0007121 0 ustar 00 context['postId'];
if ( ! isset( $post_id ) ) {
return '';
}
// 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( '
%2$s
', $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'] = '
';
$fields['submit_field'] = '
%1$s %2$s
';
}
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 );
comment-content.php 0000644 00000004633 15056145524 0010404 0 ustar 00 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 = '
';
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(
'
%2$s%3$s
',
$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' );
post-excerpt/style-rtl.min.css 0000644 00000000523 15056145525 0012444 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 0000644 00000002763 15056145525 0011206 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": {
"textAlign": {
"type": "string"
},
"moreText": {
"type": "string"
},
"showMoreOnNewLine": {
"type": "boolean",
"default": true
},
"excerptLength": {
"type": "number",
"default": 55
}
},
"usesContext": [ "postId", "postType", "queryId" ],
"example": {
"viewportWidth": 350
},
"supports": {
"html": false,
"color": {
"gradients": 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
}
},
"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/editor-rtl.css 0000644 00000000125 15056145526 0012007 0 ustar 00 .wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline{
display:inline;
} post-excerpt/editor.min.css 0000644 00000000120 15056145526 0011765 0 ustar 00 .wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline{display:inline} post-excerpt/style.min.css 0000644 00000000523 15056145527 0011647 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-rtl.css 0000644 00000000571 15056145527 0011667 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 0000644 00000000571 15056145531 0011063 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/editor.css 0000644 00000000125 15056145531 0011204 0 ustar 00 .wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline{
display:inline;
} post-excerpt/editor-rtl.min.css 0000644 00000000120 15056145532 0012561 0 ustar 00 .wp-block-post-excerpt .wp-block-post-excerpt__excerpt.is-inline{display:inline} categories/style-rtl.min.css 0000644 00000000445 15056145533 0012136 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{display:block;width:100%} categories/block.json 0000644 00000003634 15056145533 0010673 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": {
"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/editor-rtl.css 0000644 00000000336 15056145534 0011502 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/editor.min.css 0000644 00000000304 15056145534 0011460 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.min.css 0000644 00000000445 15056145535 0011341 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{display:block;width:100%} categories/style-rtl.css 0000644 00000000505 15056145536 0011354 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{
display:block;
width:100%;
} categories/style.css 0000644 00000000505 15056145536 0010555 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{
display:block;
width:100%;
} categories/editor.css 0000644 00000000334 15056145540 0010676 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/editor-rtl.min.css 0000644 00000000306 15056145540 0012256 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} comment-template/style-rtl.min.css 0000644 00000000661 15056145541 0013263 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:fit-content}.wp-block-comment-template.alignright{float:left} comment-template/block.json 0000644 00000002237 15056145541 0012016 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": {
"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.min.css 0000644 00000000660 15056145542 0012464 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:fit-content}.wp-block-comment-template.alignright{float:right} comment-template/style-rtl.css 0000644 00000000757 15056145542 0012510 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:fit-content;
}
.wp-block-comment-template.alignright{
float:left;
} comment-template/style.css 0000644 00000000756 15056145543 0011711 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:fit-content;
}
.wp-block-comment-template.alignright{
float:right;
} navigation.php 0000644 00000140724 15056145543 0007434 0 ustar 00 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 );
return ( $has_submenus && ( $attributes['openSubmenusOnClick'] || $attributes['showSubmenuIcon'] ) ) || $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.
* @return array 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 '
' . $inner_block_content . ' ';
}
}
return $inner_block_content;
}
/**
* 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(
'
',
$container_attributes
);
}
if ( ! $is_list_item && $is_list_open ) {
$is_list_open = false;
$inner_blocks_html .= ' ';
}
$inner_blocks_html .= $inner_block_markup;
}
if ( $is_list_open ) {
$inner_blocks_html .= '';
}
// 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 );
}
/**
* 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 ) {
$navigation_name = $navigation_post->post_title;
// 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[ $navigation_name ] ) ) {
++static::$seen_menu_names[ $navigation_name ];
} else {
static::$seen_menu_names[ $navigation_name ] = 1;
}
}
}
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 = isset( $attributes['styles'] ) ? $attributes['styles'] : '';
return $block_styles . $colors['inline_styles'] . $font_sizes['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'];
$responsive_container_classes = array(
'wp-block-navigation__responsive-container',
$is_hidden_by_default ? 'hidden-by-default' : '',
implode( ' ', $colors['overlay_css_classes'] ),
);
$open_button_classes = array(
'wp-block-navigation__responsive-container-open',
$is_hidden_by_default ? 'always-shown' : '',
);
$should_display_icon_label = isset( $attributes['hasIcon'] ) && true === $attributes['hasIcon'];
$toggle_button_icon = '
';
if ( isset( $attributes['icon'] ) ) {
if ( 'menu' === $attributes['icon'] ) {
$toggle_button_icon = '
';
}
}
$toggle_button_content = $should_display_icon_label ? $toggle_button_icon : __( 'Menu' );
$toggle_close_button_icon = '
';
$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-async--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-async--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-async--click="actions.closeMenuOnClick"
';
$responsive_container_content_directives = '
data-wp-watch="callbacks.focusFirstElement"
';
}
$overlay_inline_styles = esc_attr( safecss_filter_attr( $colors['overlay_inline_styles'] ) );
return sprintf(
'
%8$s
',
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 ) ) ),
( ! empty( $overlay_inline_styles ) ) ? "style=\"$overlay_inline_styles\"" : '',
$toggle_button_content,
$toggle_close_button_content,
$open_button_directives,
$responsive_container_directives,
$responsive_dialog_directives,
$close_button_directives,
$responsive_container_content_directives
);
}
/**
* 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_wrapper_attributes( $attributes, $inner_blocks ) {
$nav_menu_name = static::get_unique_navigation_name( $attributes );
$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,
);
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_wrapper_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 );
// 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_contains_core_navigation( $inner_blocks ) ) {
return '';
}
static::handle_view_script_module_loading( $attributes, $block, $inner_blocks );
return sprintf(
'
%2$s ',
static::get_nav_wrapper_attributes( $attributes, $inner_blocks ),
static::get_wrapper_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 );
}
}
/**
* 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 `
`.
$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 }' );
$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' );
if ( ! isset( $block_attributes['openSubmenusOnClick'] ) || false === $block_attributes['openSubmenusOnClick'] ) {
$tags->set_attribute( 'data-wp-on-async--mouseenter', 'actions.openMenuOnHover' );
$tags->set_attribute( 'data-wp-on-async--mouseleave', '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-async--click', 'actions.toggleMenuOnClick' );
$tags->set_attribute( 'data-wp-bind--aria-expanded', 'state.isMenuOpen' );
// 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-async--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;
}
/**
* Returns the top-level submenu SVG chevron icon.
*
* @since 5.9.0
*
* @return string
*/
function block_core_navigation_render_submenu_icon() {
return ' ';
}
/**
* 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 );
}
/**
* Returns true if the navigation block contains a nested navigation block.
*
* @since 6.2.0
*
* @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 ) {
foreach ( $inner_blocks as $block ) {
if ( 'core/navigation' === $block->name ) {
return true;
}
if ( $block->inner_blocks && block_core_navigation_block_contains_core_navigation( $block->inner_blocks ) ) {
return true;
}
}
return false;
}
/**
* 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' );
/**
* 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(
isset( $menu_items_by_parent_id[0] )
? $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;
}
post-content.php 0000644 00000004154 15056145543 0007726 0 ustar 00 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 '';
}
$wrapper_attributes = get_block_wrapper_attributes( array( 'class' => 'entry-content' ) );
return (
'' .
$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' );
home-link/block.json 0000644 00000002152 15056145544 0010425 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"
}
},
"usesContext": [
"textColor",
"customTextColor",
"backgroundColor",
"customBackgroundColor",
"fontSize",
"customFontSize",
"style"
],
"supports": {
"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"
}
tag-cloud/style-rtl.min.css 0000644 00000001067 15056145545 0011674 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.alignfull{padding-left:1em;padding-right:1em}.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/block.json 0000644 00000002650 15056145545 0010425 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": {
"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
}
}
},
"editorStyle": "wp-block-tag-cloud-editor"
}
tag-cloud/editor-rtl.css 0000644 00000000153 15056145546 0011234 0 ustar 00 .wp-block-tag-cloud .wp-block-tag-cloud{
border:none;
border-radius:inherit;
margin:0;
padding:0;
} tag-cloud/editor.min.css 0000644 00000000135 15056145546 0011217 0 ustar 00 .wp-block-tag-cloud .wp-block-tag-cloud{border:none;border-radius:inherit;margin:0;padding:0} tag-cloud/style.min.css 0000644 00000001070 15056145546 0011070 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.alignfull{padding-left:1em;padding-right:1em}.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/style-rtl.css 0000644 00000001205 15056145547 0011106 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.alignfull{
padding-left:1em;
padding-right:1em;
}
.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 0000644 00000001206 15056145547 0010310 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.alignfull{
padding-left:1em;
padding-right:1em;
}
.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/editor.css 0000644 00000000153 15056145550 0010430 0 ustar 00 .wp-block-tag-cloud .wp-block-tag-cloud{
border:none;
border-radius:inherit;
margin:0;
padding:0;
} tag-cloud/editor-rtl.min.css 0000644 00000000135 15056145551 0012012 0 ustar 00 .wp-block-tag-cloud .wp-block-tag-cloud{border:none;border-radius:inherit;margin:0;padding:0} pattern.php 0000644 00000003374 15056145551 0006750 0 ustar 00 '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' );
query-pagination-previous/block.json 0000644 00000002033 15056145553 0013706 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": {
"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-posts.php 0000644 00000020536 15056145553 0007736 0 ustar 00 $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();
$recent_posts = $query->query( $args );
if ( isset( $attributes['displayFeaturedImage'] ) && $attributes['displayFeaturedImage'] ) {
update_post_thumbnail_cache( $query );
}
$list_items_markup = '';
foreach ( $recent_posts as $post ) {
$post_link = esc_url( get_permalink( $post ) );
$title = get_the_title( $post );
if ( ! $title ) {
$title = __( '(no title)' );
}
$list_items_markup .= ' ';
if ( $attributes['displayFeaturedImage'] && has_post_thumbnail( $post ) ) {
$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(
$post,
$attributes['featuredImageSizeSlug'],
array(
'style' => esc_attr( $image_style ),
)
);
if ( $attributes['addLinkToFeaturedImage'] ) {
$featured_image = sprintf(
'%3$s ',
esc_url( $post_link ),
esc_attr( $title ),
$featured_image
);
}
$list_items_markup .= sprintf(
'%2$s
',
esc_attr( $image_classes ),
$featured_image
);
}
$list_items_markup .= sprintf(
'%2$s ',
esc_url( $post_link ),
$title
);
if ( isset( $attributes['displayAuthor'] ) && $attributes['displayAuthor'] ) {
$author_display_name = get_the_author_meta( 'display_name', $post->post_author );
/* translators: byline. %s: author. */
$byline = sprintf( __( 'by %s' ), $author_display_name );
if ( ! empty( $author_display_name ) ) {
$list_items_markup .= sprintf(
'%1$s
',
$byline
);
}
}
if ( isset( $attributes['displayPostDate'] ) && $attributes['displayPostDate'] ) {
$list_items_markup .= sprintf(
'%2$s ',
esc_attr( get_the_date( 'c', $post ) ),
get_the_date( '', $post )
);
}
if ( isset( $attributes['displayPostContent'] ) && $attributes['displayPostContent']
&& isset( $attributes['displayPostContentRadio'] ) && 'excerpt' === $attributes['displayPostContentRadio'] ) {
$trimmed_excerpt = get_the_excerpt( $post );
/*
* Adds a "Read more" link with screen reader text.
* […] is the default excerpt ending from wp_trim_excerpt() in Core.
*/
if ( str_ends_with( $trimmed_excerpt, ' […]' ) ) {
/** 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 */
__( '… Read more: %2$s ' ),
esc_url( $post_link ),
esc_html( $title )
);
}
}
if ( post_password_required( $post ) ) {
$trimmed_excerpt = __( 'This content is password protected.' );
}
$list_items_markup .= sprintf(
'%1$s
',
$trimmed_excerpt
);
}
if ( isset( $attributes['displayPostContent'] ) && $attributes['displayPostContent']
&& isset( $attributes['displayPostContentRadio'] ) && 'full_post' === $attributes['displayPostContentRadio'] ) {
$post_content = html_entity_decode( $post->post_content, ENT_QUOTES, get_option( 'blog_charset' ) );
if ( post_password_required( $post ) ) {
$post_content = __( 'This content is password protected.' );
}
$list_items_markup .= sprintf(
'%1$s
',
wp_kses_post( $post_content )
);
}
$list_items_markup .= " \n";
}
remove_filter( 'excerpt_length', 'block_core_latest_posts_get_excerpt_length', 20 );
$classes = array( 'wp-block-latest-posts__list' );
if ( isset( $attributes['postLayout'] ) && 'grid' === $attributes['postLayout'] ) {
$classes[] = 'is-grid';
}
if ( isset( $attributes['columns'] ) && 'grid' === $attributes['postLayout'] ) {
$classes[] = 'columns-' . $attributes['columns'];
}
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(
'
',
$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' );
calendar.php 0000644 00000013673 15056145554 0007052 0 ustar 00 ' . __( 'The calendar block is hidden because there are no published posts.' ) . '
';
}
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( '