From d130c92041cb79146d4eeb0097141b553a786595 Mon Sep 17 00:00:00 2001
From: Jon Surrell
Date: Thu, 5 Feb 2026 12:54:33 +0100
Subject: [PATCH 001/145] Fix newlines disappearing inside PRE,TEXTAREA
elements
Add serialize + normalize tests
Add more PRE tests
Fix newlines disappearing inside PRE,TEXTAREA elements
Handline PRE,LISTING
lints
Simpler fix
Remove overly-specific tests
Add LISTING tests
Add explanatory comment
lints
Remove accidental import
---
.../html-api/class-wp-html-processor.php | 26 +++++++++
.../html-api/wpHtmlProcessor-serialize.php | 57 +++++++++++++++++++
2 files changed, 83 insertions(+)
diff --git a/src/wp-includes/html-api/class-wp-html-processor.php b/src/wp-includes/html-api/class-wp-html-processor.php
index 55f955f2c1a9a..d5b073f65cddf 100644
--- a/src/wp-includes/html-api/class-wp-html-processor.php
+++ b/src/wp-includes/html-api/class-wp-html-processor.php
@@ -1412,6 +1412,32 @@ public function serialize_token(): string {
$html .= '>';
+ /*
+ * The HTML parser strips a leading newline immediately after the start
+ * tag of TEXTAREA, PRE, and LISTING elements. When serializing, prepend
+ * a leading newline to ensure the semantic HTML content is preserved.
+ *
+ * For example, `\n\nX ` must not become `\nX ` because its content
+ * has changed. However, `X ` and `\nX ` are _equivalent_.
+ *
+ * > A start tag whose tag name is "textarea"
+ * > …
+ * > If the next token is a U+000A LINE FEED (LF) character token, then ignore
+ * > that token and move on to the next one. (Newlines at the start of textarea
+ * > elements are ignored as an authoring convenience.)
+ *
+ * > A start tag whose tag name is one of: "pre", "listing"
+ * > …
+ * > If the next token is a U+000A LINE FEED (LF) character token, then ignore
+ * > that token and move on to the next one. (Newlines at the start of pre blocks
+ * > are ignored as an authoring convenience.)
+ *
+ * @see https://html.spec.whatwg.org/multipage/parsing.html
+ */
+ if ( $tag_name === 'TEXTAREA' || $tag_name === 'PRE' || $tag_name === 'LISTING' ) {
+ $html .= "\n";
+ }
+
// Flush out self-contained elements.
if ( $in_html && in_array( $tag_name, array( 'IFRAME', 'NOEMBED', 'NOFRAMES', 'SCRIPT', 'STYLE', 'TEXTAREA', 'TITLE', 'XMP' ), true ) ) {
$text = $this->get_modifiable_text();
diff --git a/tests/phpunit/tests/html-api/wpHtmlProcessor-serialize.php b/tests/phpunit/tests/html-api/wpHtmlProcessor-serialize.php
index e2b5a79c2de2f..cb9f4abce9535 100644
--- a/tests/phpunit/tests/html-api/wpHtmlProcessor-serialize.php
+++ b/tests/phpunit/tests/html-api/wpHtmlProcessor-serialize.php
@@ -321,4 +321,61 @@ public static function data_provider_serialize_doctype() {
'Double quotes in system ID' => array( '', '' ),
);
}
+
+ /**
+ * @ticket TBD
+ *
+ * @dataProvider data_provider_normalize_special_leading_newline_cases
+ */
+ public function test_normalize_special_leading_newline_handling( string $input, string $expected ) {
+ $normalized = WP_HTML_Processor::normalize( $input );
+ $this->assertEqualHTML( $expected, $normalized );
+ $normalized_twice = WP_HTML_Processor::normalize( $normalized );
+ $this->assertEqualHTML( $expected, $normalized_twice );
+ }
+
+ public static function data_provider_normalize_special_leading_newline_cases() {
+ return array(
+ 'Leading newline in PRE' => array(
+ "\nline 1\nline 2 ",
+ "line 1\nline 2 ",
+ ),
+ 'Double leading newline in PRE' => array(
+ "\n\nline 2\nline 3 ",
+ "\n\nline 2\nline 3 ",
+ ),
+ 'Multiple text nodes inside PRE' => array(
+ "\nline 1 still line 1 ",
+ 'line 1 still line 1 ',
+ ),
+ 'Multiple text nodes inside PRE with leading newlines' => array(
+ "\n\nline 2 still line 2 ",
+ "\n\nline 2 still line 2 ",
+ ),
+ 'Leading newline in LISTING' => array(
+ "\nline 1\nline 2 ",
+ "line 1\nline 2 ",
+ ),
+ 'Double leading newline in LISTING' => array(
+ "\n\nline 2\nline 3 ",
+ "\n\nline 2\nline 3 ",
+ ),
+ 'Multiple text nodes inside LISTING' => array(
+ "\nline 1 still line 1 ",
+ 'line 1 still line 1 ',
+ ),
+ 'Multiple text nodes inside LISTING with leading newlines' => array(
+ "\n\nline 2 still line 2 ",
+ "\n\nline 2 still line 2 ",
+ ),
+ 'Leading newline in TEXTAREA' => array(
+ "",
+ "",
+ ),
+ 'Double leading newline in TEXTAREA' => array(
+ "",
+ "",
+ ),
+ );
+ }
}
From 21b48eac066a43a79c868c3d319308882b96158c Mon Sep 17 00:00:00 2001
From: Jon Surrell
Date: Thu, 5 Feb 2026 17:57:12 +0100
Subject: [PATCH 002/145] Ticket number, data provider
---
tests/phpunit/tests/html-api/wpHtmlProcessor-serialize.php | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/tests/phpunit/tests/html-api/wpHtmlProcessor-serialize.php b/tests/phpunit/tests/html-api/wpHtmlProcessor-serialize.php
index cb9f4abce9535..cef916436ead6 100644
--- a/tests/phpunit/tests/html-api/wpHtmlProcessor-serialize.php
+++ b/tests/phpunit/tests/html-api/wpHtmlProcessor-serialize.php
@@ -323,7 +323,7 @@ public static function data_provider_serialize_doctype() {
}
/**
- * @ticket TBD
+ * @ticket 64607
*
* @dataProvider data_provider_normalize_special_leading_newline_cases
*/
@@ -334,6 +334,11 @@ public function test_normalize_special_leading_newline_handling( string $input,
$this->assertEqualHTML( $expected, $normalized_twice );
}
+ /**
+ * Data provider.
+ *
+ * @return array[]
+ */
public static function data_provider_normalize_special_leading_newline_cases() {
return array(
'Leading newline in PRE' => array(
From 03fb7f01c710c873f449497d5ec09f09d90e539a Mon Sep 17 00:00:00 2001
From: Jon Surrell
Date: Thu, 5 Feb 2026 19:50:25 +0100
Subject: [PATCH 003/145] YODA
---
src/wp-includes/html-api/class-wp-html-processor.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/wp-includes/html-api/class-wp-html-processor.php b/src/wp-includes/html-api/class-wp-html-processor.php
index d5b073f65cddf..502cc2ed3ee69 100644
--- a/src/wp-includes/html-api/class-wp-html-processor.php
+++ b/src/wp-includes/html-api/class-wp-html-processor.php
@@ -1434,7 +1434,7 @@ public function serialize_token(): string {
*
* @see https://html.spec.whatwg.org/multipage/parsing.html
*/
- if ( $tag_name === 'TEXTAREA' || $tag_name === 'PRE' || $tag_name === 'LISTING' ) {
+ if ( 'TEXTAREA' === $tag_name || 'PRE' === $tag_name || 'LISTING' === $tag_name ) {
$html .= "\n";
}
From 0acab11958604124e56543931ffbfc8849e87304 Mon Sep 17 00:00:00 2001
From: Jon Surrell
Date: Fri, 6 Feb 2026 13:53:36 +0100
Subject: [PATCH 004/145] Apply suggestion from @mukeshpanchal27
Co-authored-by: Mukesh Panchal
---
tests/phpunit/tests/html-api/wpHtmlProcessor-serialize.php | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/tests/phpunit/tests/html-api/wpHtmlProcessor-serialize.php b/tests/phpunit/tests/html-api/wpHtmlProcessor-serialize.php
index cef916436ead6..175bb3845d554 100644
--- a/tests/phpunit/tests/html-api/wpHtmlProcessor-serialize.php
+++ b/tests/phpunit/tests/html-api/wpHtmlProcessor-serialize.php
@@ -323,9 +323,15 @@ public static function data_provider_serialize_doctype() {
}
/**
+ * Ensures that leading newlines in PRE, LISTING, and TEXTAREA elements are preserved upon normalization,
+ * and that normalization is idempotent in these cases.
+ *
* @ticket 64607
*
* @dataProvider data_provider_normalize_special_leading_newline_cases
+ *
+ * @param string $input HTML input containing leading newlines in PRE, LISTING, or TEXTAREA elements.
+ * @param string $expected Expected output after normalization, which should preserve leading newlines.
*/
public function test_normalize_special_leading_newline_handling( string $input, string $expected ) {
$normalized = WP_HTML_Processor::normalize( $input );
From bdfd4332904d557e553cc6fc6a55840f92404376 Mon Sep 17 00:00:00 2001
From: Jorge Costa
Date: Mon, 9 Feb 2026 16:43:35 +0000
Subject: [PATCH 005/145] Abilities API: Add core/get-settings ability.
Introduce a new `core/get-settings` ability to the WordPress Abilities API that dynamically discovers and exposes WordPress settings. Settings with `show_in_abilities` enabled are exposed through this ability.
Props jorgefilipecosta, jason_the_adams, mukeshpanchal27, justlevine, ovidiu-galatan.
Fixes #64605.
git-svn-id: https://develop.svn.wordpress.org/trunk@61600 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/abilities.php | 4 +
.../abilities/class-wp-settings-abilities.php | 343 +++++++++++++++++
src/wp-includes/option.php | 167 ++++----
.../wpRestAbilitiesSettingsController.php | 356 ++++++++++++++++++
4 files changed, 797 insertions(+), 73 deletions(-)
create mode 100644 src/wp-includes/abilities/class-wp-settings-abilities.php
create mode 100644 tests/phpunit/tests/rest-api/wpRestAbilitiesSettingsController.php
diff --git a/src/wp-includes/abilities.php b/src/wp-includes/abilities.php
index 4c6db1ed830e0..132ca6fc673a3 100644
--- a/src/wp-includes/abilities.php
+++ b/src/wp-includes/abilities.php
@@ -9,6 +9,8 @@
declare( strict_types = 1 );
+require_once __DIR__ . '/abilities/class-wp-settings-abilities.php';
+
/**
* Registers the core ability categories.
*
@@ -257,4 +259,6 @@ function wp_register_core_abilities(): void {
),
)
);
+
+ WP_Settings_Abilities::register();
}
diff --git a/src/wp-includes/abilities/class-wp-settings-abilities.php b/src/wp-includes/abilities/class-wp-settings-abilities.php
new file mode 100644
index 0000000000000..5af7fa48450ee
--- /dev/null
+++ b/src/wp-includes/abilities/class-wp-settings-abilities.php
@@ -0,0 +1,343 @@
+ args for allowed settings.
+ */
+ private static function get_allowed_settings(): array {
+ $settings = array();
+
+ foreach ( get_registered_settings() as $option_name => $args ) {
+ if ( ! empty( $args['show_in_abilities'] ) ) {
+ $settings[ $option_name ] = $args;
+ }
+ }
+
+ return $settings;
+ }
+
+ /**
+ * Gets unique setting groups that have show_in_abilities enabled.
+ *
+ * @since 7.0.0
+ *
+ * @return string[] List of unique group names.
+ */
+ private static function get_available_groups(): array {
+ $groups = array();
+
+ foreach ( self::get_allowed_settings() as $args ) {
+ $group = $args['group'] ?? 'general';
+ if ( ! in_array( $group, $groups, true ) ) {
+ $groups[] = $group;
+ }
+ }
+
+ sort( $groups );
+
+ return $groups;
+ }
+
+ /**
+ * Gets unique setting slugs that have show_in_abilities enabled.
+ *
+ * @since 7.0.0
+ *
+ * @return string[] List of unique setting slugs.
+ */
+ private static function get_available_slugs(): array {
+ $slugs = array();
+
+ foreach ( self::get_allowed_settings() as $option_name => $args ) {
+ $slugs[] = $option_name;
+ }
+
+ sort( $slugs );
+
+ return $slugs;
+ }
+
+ /**
+ * Builds a rich output schema from registered settings metadata.
+ *
+ * Creates a JSON Schema that documents each setting group and its settings
+ * with their types, titles, descriptions, defaults, and any additional
+ * schema properties from show_in_rest.
+ *
+ * @since 7.0.0
+ *
+ * @return array JSON Schema for the output.
+ */
+ private static function build_output_schema(): array {
+ $group_properties = array();
+
+ foreach ( self::get_allowed_settings() as $option_name => $args ) {
+ $group = $args['group'] ?? 'general';
+
+ $setting_schema = array(
+ 'type' => $args['type'] ?? 'string',
+ );
+
+ if ( ! empty( $args['label'] ) ) {
+ $setting_schema['title'] = $args['label'];
+ }
+
+ if ( ! empty( $args['description'] ) ) {
+ $setting_schema['description'] = $args['description'];
+ } elseif ( ! empty( $args['label'] ) ) {
+ $setting_schema['description'] = $args['label'];
+ }
+
+ if ( ! isset( $group_properties[ $group ] ) ) {
+ $group_properties[ $group ] = array(
+ 'type' => 'object',
+ 'properties' => array(),
+ 'additionalProperties' => false,
+ );
+ }
+
+ $group_properties[ $group ]['properties'][ $option_name ] = $setting_schema;
+ }
+
+ ksort( $group_properties );
+
+ return array(
+ 'type' => 'object',
+ 'description' => __( 'Settings grouped by registration group. Each group contains settings with their current values.' ),
+ 'properties' => $group_properties,
+ 'additionalProperties' => false,
+ );
+ }
+
+ /**
+ * Registers the core/get-settings ability.
+ *
+ * @since 7.0.0
+ *
+ * @return void
+ */
+ private static function register_get_settings(): void {
+ wp_register_ability(
+ 'core/get-settings',
+ array(
+ 'label' => __( 'Get Settings' ),
+ 'description' => __( 'Returns registered WordPress settings grouped by their registration group. Returns key-value pairs per setting.' ),
+ 'category' => 'site',
+ 'input_schema' => array(
+ 'default' => (object) array(),
+ 'oneOf' => array(
+ // Branch 1: No filter (empty object).
+ array(
+ 'type' => 'object',
+ 'additionalProperties' => false,
+ 'maxProperties' => 0,
+ ),
+ // Branch 2: Filter by group only.
+ array(
+ 'type' => 'object',
+ 'properties' => array(
+ 'group' => array(
+ 'type' => 'string',
+ 'description' => __( 'Filter settings by group name.' ),
+ 'enum' => self::$available_groups,
+ ),
+ ),
+ 'required' => array( 'group' ),
+ 'additionalProperties' => false,
+ ),
+ // Branch 3: Filter by slugs only.
+ array(
+ 'type' => 'object',
+ 'properties' => array(
+ 'slugs' => array(
+ 'type' => 'array',
+ 'description' => __( 'Filter settings by specific setting slugs.' ),
+ 'items' => array(
+ 'type' => 'string',
+ 'enum' => self::$available_slugs,
+ ),
+ ),
+ ),
+ 'required' => array( 'slugs' ),
+ 'additionalProperties' => false,
+ ),
+ ),
+ ),
+ 'output_schema' => self::$output_schema,
+ 'execute_callback' => array( __CLASS__, 'execute_get_settings' ),
+ 'permission_callback' => array( __CLASS__, 'check_manage_options' ),
+ 'meta' => array(
+ 'annotations' => array(
+ 'readonly' => true,
+ 'destructive' => false,
+ 'idempotent' => true,
+ ),
+ 'show_in_rest' => true,
+ ),
+ )
+ );
+ }
+
+ /**
+ * Permission callback for settings abilities.
+ *
+ * @since 7.0.0
+ *
+ * @return bool True if the current user can manage options, false otherwise.
+ */
+ public static function check_manage_options(): bool {
+ return current_user_can( 'manage_options' );
+ }
+
+ /**
+ * Execute callback for core/get-settings ability.
+ *
+ * Retrieves all registered settings that are exposed through the Abilities API,
+ * grouped by their registration group.
+ *
+ * @since 7.0.0
+ *
+ * @param array $input {
+ * Optional. Input parameters.
+ *
+ * @type string $group Optional. Filter settings by group name. Cannot be used with slugs.
+ * @type string[] $slugs Optional. Filter settings by specific setting slugs. Cannot be used with group.
+ * }
+ * @return array Settings grouped by registration group.
+ */
+ public static function execute_get_settings( $input = array() ): array {
+ $input = is_array( $input ) ? $input : array();
+ $filter_group = ! empty( $input['group'] ) ? $input['group'] : null;
+ $filter_slugs = ! empty( $input['slugs'] ) ? $input['slugs'] : null;
+
+ $settings_by_group = array();
+
+ foreach ( self::get_allowed_settings() as $option_name => $args ) {
+ $group = $args['group'] ?? 'general';
+
+ if ( $filter_group && $group !== $filter_group ) {
+ continue;
+ }
+
+ if ( $filter_slugs && ! in_array( $option_name, $filter_slugs, true ) ) {
+ continue;
+ }
+
+ $default = $args['default'] ?? null;
+
+ $value = get_option( $option_name, $default );
+ $value = self::cast_value( $value, $args['type'] ?? 'string' );
+
+ if ( ! isset( $settings_by_group[ $group ] ) ) {
+ $settings_by_group[ $group ] = array();
+ }
+
+ $settings_by_group[ $group ][ $option_name ] = $value;
+ }
+
+ ksort( $settings_by_group );
+
+ return $settings_by_group;
+ }
+
+ /**
+ * Casts a value to the appropriate type based on the setting's registered type.
+ *
+ * @since 7.0.0
+ *
+ * @param mixed $value The value to cast.
+ * @param string $type The registered type (string, boolean, integer, number, array, object).
+ * @return string|bool|int|float|array The cast value.
+ */
+ private static function cast_value( $value, string $type ) {
+ switch ( $type ) {
+ case 'boolean':
+ return (bool) $value;
+ case 'integer':
+ return (int) $value;
+ case 'number':
+ return (float) $value;
+ case 'array':
+ case 'object':
+ return is_array( $value ) ? $value : array();
+ case 'string':
+ default:
+ return (string) $value;
+ }
+ }
+}
diff --git a/src/wp-includes/option.php b/src/wp-includes/option.php
index 7979c119a986f..8a9a2c3c89ece 100644
--- a/src/wp-includes/option.php
+++ b/src/wp-includes/option.php
@@ -2743,12 +2743,13 @@ function register_initial_settings() {
'general',
'blogname',
array(
- 'show_in_rest' => array(
+ 'show_in_rest' => array(
'name' => 'title',
),
- 'type' => 'string',
- 'label' => __( 'Title' ),
- 'description' => __( 'Site title.' ),
+ 'show_in_abilities' => true,
+ 'type' => 'string',
+ 'label' => __( 'Title' ),
+ 'description' => __( 'Site title.' ),
)
);
@@ -2756,12 +2757,13 @@ function register_initial_settings() {
'general',
'blogdescription',
array(
- 'show_in_rest' => array(
+ 'show_in_rest' => array(
'name' => 'description',
),
- 'type' => 'string',
- 'label' => __( 'Tagline' ),
- 'description' => __( 'Site tagline.' ),
+ 'show_in_abilities' => true,
+ 'type' => 'string',
+ 'label' => __( 'Tagline' ),
+ 'description' => __( 'Site tagline.' ),
)
);
@@ -2770,14 +2772,15 @@ function register_initial_settings() {
'general',
'siteurl',
array(
- 'show_in_rest' => array(
+ 'show_in_rest' => array(
'name' => 'url',
'schema' => array(
'format' => 'uri',
),
),
- 'type' => 'string',
- 'description' => __( 'Site URL.' ),
+ 'show_in_abilities' => true,
+ 'type' => 'string',
+ 'description' => __( 'Site URL.' ),
)
);
}
@@ -2787,14 +2790,15 @@ function register_initial_settings() {
'general',
'admin_email',
array(
- 'show_in_rest' => array(
+ 'show_in_rest' => array(
'name' => 'email',
'schema' => array(
'format' => 'email',
),
),
- 'type' => 'string',
- 'description' => __( 'This address is used for admin purposes, like new user notification.' ),
+ 'show_in_abilities' => true,
+ 'type' => 'string',
+ 'description' => __( 'This address is used for admin purposes, like new user notification.' ),
)
);
}
@@ -2803,11 +2807,12 @@ function register_initial_settings() {
'general',
'timezone_string',
array(
- 'show_in_rest' => array(
+ 'show_in_rest' => array(
'name' => 'timezone',
),
- 'type' => 'string',
- 'description' => __( 'A city in the same timezone as you.' ),
+ 'show_in_abilities' => true,
+ 'type' => 'string',
+ 'description' => __( 'A city in the same timezone as you.' ),
)
);
@@ -2815,9 +2820,10 @@ function register_initial_settings() {
'general',
'date_format',
array(
- 'show_in_rest' => true,
- 'type' => 'string',
- 'description' => __( 'A date format for all date strings.' ),
+ 'show_in_rest' => true,
+ 'show_in_abilities' => true,
+ 'type' => 'string',
+ 'description' => __( 'A date format for all date strings.' ),
)
);
@@ -2825,9 +2831,10 @@ function register_initial_settings() {
'general',
'time_format',
array(
- 'show_in_rest' => true,
- 'type' => 'string',
- 'description' => __( 'A time format for all time strings.' ),
+ 'show_in_rest' => true,
+ 'show_in_abilities' => true,
+ 'type' => 'string',
+ 'description' => __( 'A time format for all time strings.' ),
)
);
@@ -2835,9 +2842,10 @@ function register_initial_settings() {
'general',
'start_of_week',
array(
- 'show_in_rest' => true,
- 'type' => 'integer',
- 'description' => __( 'A day number of the week that the week should start on.' ),
+ 'show_in_rest' => true,
+ 'show_in_abilities' => true,
+ 'type' => 'integer',
+ 'description' => __( 'A day number of the week that the week should start on.' ),
)
);
@@ -2845,12 +2853,13 @@ function register_initial_settings() {
'general',
'WPLANG',
array(
- 'show_in_rest' => array(
+ 'show_in_rest' => array(
'name' => 'language',
),
- 'type' => 'string',
- 'description' => __( 'WordPress locale code.' ),
- 'default' => 'en_US',
+ 'show_in_abilities' => true,
+ 'type' => 'string',
+ 'description' => __( 'WordPress locale code.' ),
+ 'default' => 'en_US',
)
);
@@ -2858,10 +2867,11 @@ function register_initial_settings() {
'writing',
'use_smilies',
array(
- 'show_in_rest' => true,
- 'type' => 'boolean',
- 'description' => __( 'Convert emoticons like :-) and :-P to graphics on display.' ),
- 'default' => true,
+ 'show_in_rest' => true,
+ 'show_in_abilities' => true,
+ 'type' => 'boolean',
+ 'description' => __( 'Convert emoticons like :-) and :-P to graphics on display.' ),
+ 'default' => true,
)
);
@@ -2869,9 +2879,10 @@ function register_initial_settings() {
'writing',
'default_category',
array(
- 'show_in_rest' => true,
- 'type' => 'integer',
- 'description' => __( 'Default post category.' ),
+ 'show_in_rest' => true,
+ 'show_in_abilities' => true,
+ 'type' => 'integer',
+ 'description' => __( 'Default post category.' ),
)
);
@@ -2879,9 +2890,10 @@ function register_initial_settings() {
'writing',
'default_post_format',
array(
- 'show_in_rest' => true,
- 'type' => 'string',
- 'description' => __( 'Default post format.' ),
+ 'show_in_rest' => true,
+ 'show_in_abilities' => true,
+ 'type' => 'string',
+ 'description' => __( 'Default post format.' ),
)
);
@@ -2889,11 +2901,12 @@ function register_initial_settings() {
'reading',
'posts_per_page',
array(
- 'show_in_rest' => true,
- 'type' => 'integer',
- 'label' => __( 'Maximum posts per page' ),
- 'description' => __( 'Blog pages show at most.' ),
- 'default' => 10,
+ 'show_in_rest' => true,
+ 'show_in_abilities' => true,
+ 'type' => 'integer',
+ 'label' => __( 'Maximum posts per page' ),
+ 'description' => __( 'Blog pages show at most.' ),
+ 'default' => 10,
)
);
@@ -2901,10 +2914,11 @@ function register_initial_settings() {
'reading',
'show_on_front',
array(
- 'show_in_rest' => true,
- 'type' => 'string',
- 'label' => __( 'Show on front' ),
- 'description' => __( 'What to show on the front page' ),
+ 'show_in_rest' => true,
+ 'show_in_abilities' => true,
+ 'type' => 'string',
+ 'label' => __( 'Show on front' ),
+ 'description' => __( 'What to show on the front page' ),
)
);
@@ -2912,10 +2926,11 @@ function register_initial_settings() {
'reading',
'page_on_front',
array(
- 'show_in_rest' => true,
- 'type' => 'integer',
- 'label' => __( 'Page on front' ),
- 'description' => __( 'The ID of the page that should be displayed on the front page' ),
+ 'show_in_rest' => true,
+ 'show_in_abilities' => true,
+ 'type' => 'integer',
+ 'label' => __( 'Page on front' ),
+ 'description' => __( 'The ID of the page that should be displayed on the front page' ),
)
);
@@ -2923,9 +2938,10 @@ function register_initial_settings() {
'reading',
'page_for_posts',
array(
- 'show_in_rest' => true,
- 'type' => 'integer',
- 'description' => __( 'The ID of the page that should display the latest posts' ),
+ 'show_in_rest' => true,
+ 'show_in_abilities' => true,
+ 'type' => 'integer',
+ 'description' => __( 'The ID of the page that should display the latest posts' ),
)
);
@@ -2933,13 +2949,14 @@ function register_initial_settings() {
'discussion',
'default_ping_status',
array(
- 'show_in_rest' => array(
+ 'show_in_rest' => array(
'schema' => array(
'enum' => array( 'open', 'closed' ),
),
),
- 'type' => 'string',
- 'description' => __( 'Allow link notifications from other blogs (pingbacks and trackbacks) on new articles.' ),
+ 'show_in_abilities' => true,
+ 'type' => 'string',
+ 'description' => __( 'Allow link notifications from other blogs (pingbacks and trackbacks) on new articles.' ),
)
);
@@ -2947,14 +2964,15 @@ function register_initial_settings() {
'discussion',
'default_comment_status',
array(
- 'show_in_rest' => array(
+ 'show_in_rest' => array(
'schema' => array(
'enum' => array( 'open', 'closed' ),
),
),
- 'type' => 'string',
- 'label' => __( 'Allow comments on new posts' ),
- 'description' => __( 'Allow people to submit comments on new posts.' ),
+ 'show_in_abilities' => true,
+ 'type' => 'string',
+ 'label' => __( 'Allow comments on new posts' ),
+ 'description' => __( 'Allow people to submit comments on new posts.' ),
)
);
}
@@ -2985,10 +3003,12 @@ function register_initial_settings() {
* @type string $label A label of the data attached to this setting.
* @type string $description A description of the data attached to this setting.
* @type callable $sanitize_callback A callback function that sanitizes the option's value.
- * @type bool|array $show_in_rest Whether data associated with this setting should be included in the REST API.
- * When registering complex settings, this argument may optionally be an
- * array with a 'schema' key.
- * @type mixed $default Default value when calling `get_option()`.
+ * @type bool|array $show_in_rest Whether data associated with this setting should be included in the REST API.
+ * When registering complex settings, this argument may optionally be an
+ * array with a 'schema' key.
+ * @type bool $show_in_abilities Whether this setting should be exposed through the Abilities API.
+ * Default false.
+ * @type mixed $default Default value when calling `get_option()`.
* }
*/
function register_setting( $option_group, $option_name, $args = array() ) {
@@ -3001,12 +3021,13 @@ function register_setting( $option_group, $option_name, $args = array() ) {
$GLOBALS['new_whitelist_options'] = &$new_allowed_options;
$defaults = array(
- 'type' => 'string',
- 'group' => $option_group,
- 'label' => '',
- 'description' => '',
- 'sanitize_callback' => null,
- 'show_in_rest' => false,
+ 'type' => 'string',
+ 'group' => $option_group,
+ 'label' => '',
+ 'description' => '',
+ 'sanitize_callback' => null,
+ 'show_in_rest' => false,
+ 'show_in_abilities' => false,
);
// Back-compat: old sanitize callback is added.
diff --git a/tests/phpunit/tests/rest-api/wpRestAbilitiesSettingsController.php b/tests/phpunit/tests/rest-api/wpRestAbilitiesSettingsController.php
new file mode 100644
index 0000000000000..198c0c3b8bc69
--- /dev/null
+++ b/tests/phpunit/tests/rest-api/wpRestAbilitiesSettingsController.php
@@ -0,0 +1,356 @@
+user->create( array( 'role' => 'administrator' ) );
+ self::$subscriber_id = self::factory()->user->create( array( 'role' => 'subscriber' ) );
+
+ // Register initial settings first so abilities can build schemas.
+ register_initial_settings();
+
+ // Ensure core abilities are registered for these tests.
+ remove_action( 'wp_abilities_api_categories_init', '_unhook_core_ability_categories_registration', 1 );
+ remove_action( 'wp_abilities_api_init', '_unhook_core_abilities_registration', 1 );
+
+ add_action( 'wp_abilities_api_categories_init', 'wp_register_core_ability_categories' );
+ add_action( 'wp_abilities_api_init', 'wp_register_core_abilities' );
+ do_action( 'wp_abilities_api_categories_init' );
+ do_action( 'wp_abilities_api_init' );
+ }
+
+ /**
+ * Tear down after class.
+ */
+ public static function tear_down_after_class(): void {
+ // Re-add the unhook functions for subsequent tests.
+ add_action( 'wp_abilities_api_categories_init', '_unhook_core_ability_categories_registration', 1 );
+ add_action( 'wp_abilities_api_init', '_unhook_core_abilities_registration', 1 );
+
+ // Remove the core abilities and their categories.
+ foreach ( wp_get_abilities() as $ability ) {
+ wp_unregister_ability( $ability->get_name() );
+ }
+ foreach ( wp_get_ability_categories() as $ability_category ) {
+ wp_unregister_ability_category( $ability_category->get_slug() );
+ }
+
+ parent::tear_down_after_class();
+ }
+
+ /**
+ * Set up before each test.
+ */
+ public function set_up(): void {
+ parent::set_up();
+
+ global $wp_rest_server;
+ $wp_rest_server = new WP_REST_Server();
+ $this->server = $wp_rest_server;
+
+ do_action( 'rest_api_init' );
+
+ wp_set_current_user( self::$admin_id );
+ }
+
+ /**
+ * Tear down after each test.
+ */
+ public function tear_down(): void {
+ global $wp_rest_server;
+ $wp_rest_server = null;
+
+ parent::tear_down();
+ }
+
+ /**
+ * Tests that unauthenticated users cannot access the get-settings ability.
+ *
+ * @ticket 64605
+ */
+ public function test_core_get_settings_requires_authentication(): void {
+ wp_set_current_user( 0 );
+
+ $request = new WP_REST_Request( 'GET', '/wp-abilities/v1/abilities/core/get-settings/run' );
+ $response = $this->server->dispatch( $request );
+
+ $this->assertSame( 401, $response->get_status() );
+ }
+
+ /**
+ * Tests that subscribers cannot access the get-settings ability.
+ *
+ * @ticket 64605
+ */
+ public function test_core_get_settings_requires_manage_options_capability(): void {
+ wp_set_current_user( self::$subscriber_id );
+
+ $request = new WP_REST_Request( 'GET', '/wp-abilities/v1/abilities/core/get-settings/run' );
+ $response = $this->server->dispatch( $request );
+
+ $this->assertSame( 403, $response->get_status() );
+ }
+
+ /**
+ * Tests that administrators can access the get-settings ability.
+ *
+ * @ticket 64605
+ */
+ public function test_core_get_settings_allows_administrators(): void {
+ $request = new WP_REST_Request( 'GET', '/wp-abilities/v1/abilities/core/get-settings/run' );
+ $response = $this->server->dispatch( $request );
+
+ $this->assertSame( 200, $response->get_status() );
+ }
+
+ /**
+ * Tests that the get-settings ability returns settings grouped by registration group.
+ *
+ * @ticket 64605
+ */
+ public function test_core_get_settings_returns_grouped_settings(): void {
+ $request = new WP_REST_Request( 'GET', '/wp-abilities/v1/abilities/core/get-settings/run' );
+ $response = $this->server->dispatch( $request );
+
+ $this->assertSame( 200, $response->get_status() );
+
+ $data = $response->get_data();
+
+ $this->assertIsArray( $data );
+ $this->assertArrayHasKey( 'general', $data );
+ $this->assertArrayHasKey( 'blogname', $data['general'] );
+ $this->assertArrayHasKey( 'blogdescription', $data['general'] );
+ }
+
+ /**
+ * Tests that the get-settings ability can filter by group.
+ *
+ * @ticket 64605
+ */
+ public function test_core_get_settings_filters_by_group(): void {
+ $request = new WP_REST_Request( 'GET', '/wp-abilities/v1/abilities/core/get-settings/run' );
+ $request->set_query_params(
+ array(
+ 'input' => array(
+ 'group' => 'general',
+ ),
+ )
+ );
+ $response = $this->server->dispatch( $request );
+
+ $this->assertSame( 200, $response->get_status() );
+
+ $data = $response->get_data();
+
+ $this->assertIsArray( $data );
+ $this->assertCount( 1, $data );
+ $this->assertArrayHasKey( 'general', $data );
+ }
+
+ /**
+ * Tests that the get-settings ability can filter by specific slugs.
+ *
+ * @ticket 64605
+ */
+ public function test_core_get_settings_filters_by_slugs(): void {
+ $request = new WP_REST_Request( 'GET', '/wp-abilities/v1/abilities/core/get-settings/run' );
+ $request->set_query_params(
+ array(
+ 'input' => array(
+ 'slugs' => array( 'blogname', 'blogdescription' ),
+ ),
+ )
+ );
+ $response = $this->server->dispatch( $request );
+
+ $this->assertSame( 200, $response->get_status() );
+
+ $data = $response->get_data();
+
+ $this->assertIsArray( $data );
+ $this->assertArrayHasKey( 'general', $data );
+ $this->assertCount( 2, $data['general'] );
+ $this->assertArrayHasKey( 'blogname', $data['general'] );
+ $this->assertArrayHasKey( 'blogdescription', $data['general'] );
+ }
+
+ /**
+ * Tests that settings without show_in_abilities are excluded.
+ *
+ * @ticket 64605
+ */
+ public function test_core_get_settings_excludes_settings_without_show_in_abilities(): void {
+ register_setting(
+ 'general',
+ 'test_setting_excluded',
+ array(
+ 'type' => 'string',
+ 'default' => 'test_value',
+ 'show_in_abilities' => false,
+ )
+ );
+ update_option( 'test_setting_excluded', 'test_value' );
+
+ $request = new WP_REST_Request( 'GET', '/wp-abilities/v1/abilities/core/get-settings/run' );
+ $response = $this->server->dispatch( $request );
+
+ $this->assertSame( 200, $response->get_status() );
+
+ $data = $response->get_data();
+
+ $this->assertArrayNotHasKey( 'test_setting_excluded', $data['general'] ?? array() );
+
+ unregister_setting( 'general', 'test_setting_excluded' );
+ delete_option( 'test_setting_excluded' );
+ }
+
+ /**
+ * Tests that core settings with show_in_abilities are included.
+ *
+ * @ticket 64605
+ */
+ public function test_core_get_settings_includes_settings_with_show_in_abilities(): void {
+ $request = new WP_REST_Request( 'GET', '/wp-abilities/v1/abilities/core/get-settings/run' );
+ $response = $this->server->dispatch( $request );
+
+ $this->assertSame( 200, $response->get_status() );
+
+ $data = $response->get_data();
+
+ // blogname has show_in_abilities => true in register_initial_settings().
+ $this->assertArrayHasKey( 'general', $data );
+ $this->assertArrayHasKey( 'blogname', $data['general'] );
+
+ // use_smilies has show_in_abilities => true.
+ $this->assertArrayHasKey( 'writing', $data );
+ $this->assertArrayHasKey( 'use_smilies', $data['writing'] );
+ }
+
+ /**
+ * Tests that boolean settings are cast to actual booleans.
+ *
+ * @ticket 64605
+ */
+ public function test_core_get_settings_casts_boolean_values(): void {
+ $request = new WP_REST_Request( 'GET', '/wp-abilities/v1/abilities/core/get-settings/run' );
+ $request->set_query_params(
+ array(
+ 'input' => array(
+ 'slugs' => array( 'use_smilies' ),
+ ),
+ )
+ );
+ $response = $this->server->dispatch( $request );
+
+ $this->assertSame( 200, $response->get_status() );
+
+ $data = $response->get_data();
+
+ $this->assertArrayHasKey( 'writing', $data );
+ $this->assertArrayHasKey( 'use_smilies', $data['writing'] );
+ $this->assertIsBool( $data['writing']['use_smilies'] );
+ }
+
+ /**
+ * Tests that integer settings are cast to actual integers.
+ *
+ * @ticket 64605
+ */
+ public function test_core_get_settings_casts_integer_values(): void {
+ $request = new WP_REST_Request( 'GET', '/wp-abilities/v1/abilities/core/get-settings/run' );
+ $request->set_query_params(
+ array(
+ 'input' => array(
+ 'slugs' => array( 'start_of_week' ),
+ ),
+ )
+ );
+ $response = $this->server->dispatch( $request );
+
+ $this->assertSame( 200, $response->get_status() );
+
+ $data = $response->get_data();
+
+ $this->assertArrayHasKey( 'general', $data );
+ $this->assertArrayHasKey( 'start_of_week', $data['general'] );
+ $this->assertIsInt( $data['general']['start_of_week'] );
+ }
+
+ /**
+ * Tests that the get-settings ability requires GET method (read-only).
+ *
+ * @ticket 64605
+ */
+ public function test_core_get_settings_requires_get_method(): void {
+ $request = new WP_REST_Request( 'POST', '/wp-abilities/v1/abilities/core/get-settings/run' );
+ $request->set_header( 'Content-Type', 'application/json' );
+ $request->set_body( wp_json_encode( array( 'input' => array() ) ) );
+ $response = $this->server->dispatch( $request );
+
+ $this->assertSame( 405, $response->get_status() );
+
+ $data = $response->get_data();
+ $this->assertSame( 'rest_ability_invalid_method', $data['code'] );
+ }
+
+ /**
+ * Tests that the get-settings ability returns correct values.
+ *
+ * @ticket 64605
+ */
+ public function test_core_get_settings_returns_correct_values(): void {
+ update_option( 'blogname', 'Test Site Name' );
+
+ $request = new WP_REST_Request( 'GET', '/wp-abilities/v1/abilities/core/get-settings/run' );
+ $request->set_query_params(
+ array(
+ 'input' => array(
+ 'slugs' => array( 'blogname' ),
+ ),
+ )
+ );
+ $response = $this->server->dispatch( $request );
+
+ $this->assertSame( 200, $response->get_status() );
+
+ $data = $response->get_data();
+
+ $this->assertSame( 'Test Site Name', $data['general']['blogname'] );
+ }
+}
From edbdcbe35e7ce19cd9cde1166b0b6e2d52729570 Mon Sep 17 00:00:00 2001
From: Sergey Biryukov
Date: Mon, 9 Feb 2026 16:53:07 +0000
Subject: [PATCH 006/145] Filesystem API: Avoid `chmod()` warnings if the
permissions already match.
This prevents spurious warnings from `WP_Filesystem_Direct::chmod()` when the web process doesn't have ownership over the files, and thus cannot change the permissions, even if only to reassert the existing mode.
Follow-up to [6779], [11667], [12998].
Props redsweater, mukesh27, SergeyBiryukov.
Fixes #64610.
git-svn-id: https://develop.svn.wordpress.org/trunk@61601 602fd350-edb4-49c9-b593-d223f7449a82
---
.../includes/class-wp-filesystem-direct.php | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/src/wp-admin/includes/class-wp-filesystem-direct.php b/src/wp-admin/includes/class-wp-filesystem-direct.php
index ed22a821a14b0..a4b197c15229f 100644
--- a/src/wp-admin/includes/class-wp-filesystem-direct.php
+++ b/src/wp-admin/includes/class-wp-filesystem-direct.php
@@ -170,6 +170,22 @@ public function chmod( $file, $mode = false, $recursive = false ) {
}
if ( ! $recursive || ! $this->is_dir( $file ) ) {
+ $current_mode = fileperms( $file ) & 0777 | 0644;
+
+ /*
+ * fileperms() populates the stat cache, so have to clear it
+ * to maintain parity with the previous behavior.
+ */
+ clearstatcache( true, $file );
+
+ /*
+ * Avoid calling chmod() if the requested mode is already set,
+ * to prevent throwing a warning when we aren't the owner.
+ */
+ if ( $current_mode === $mode ) {
+ return true;
+ }
+
return chmod( $file, $mode );
}
From 55227eb2d58ffa1ca3d90a061d1611932498243b Mon Sep 17 00:00:00 2001
From: Jorge Costa
Date: Mon, 9 Feb 2026 16:59:52 +0000
Subject: [PATCH 007/145] Abilities API: Allow nested namespace ability names
(2-4 segments).
Expand ability name validation from exactly 2 segments (`namespace/ability`) to 2-4 segments, enabling names like `my-plugin/resource/find` and `my-plugin/resource/sub/find`.
This allows plugins to organize abilities into logical resource groups. The validation regex changes from `/^[a-z0-9-]+\/[a-z0-9-]+$/` to `/^[a-z0-9-]+(?:\/[a-z0-9-]+){1,3}$/`, which accepts the first segment plus 1-3 additional slash-delimited segments.
Updates the validation regex, error messages, docblocks, and adds corresponding unit and REST API tests.
Props jorgefilipecosta, justlevine, jorbin.
Fixes #64596.
git-svn-id: https://develop.svn.wordpress.org/trunk@61602 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/abilities-api.php | 14 ++--
.../class-wp-abilities-registry.php | 9 ++-
.../abilities-api/class-wp-ability.php | 4 +-
.../abilities-api/wpAbilitiesRegistry.php | 68 +++++++++++++++++++
.../wpRestAbilitiesV1RunController.php | 62 +++++++++++++++++
5 files changed, 143 insertions(+), 14 deletions(-)
diff --git a/src/wp-includes/abilities-api.php b/src/wp-includes/abilities-api.php
index 73ba658f3f10d..835bd535d2487 100644
--- a/src/wp-includes/abilities-api.php
+++ b/src/wp-includes/abilities-api.php
@@ -132,7 +132,8 @@
*
* Ability names must follow these rules:
*
- * - Include a namespace prefix (e.g., `my-plugin/my-ability`).
+ * - Contain 2 to 4 segments separated by forward slashes
+ * (e.g., `my-plugin/my-ability`, `my-plugin/resource/find`, `my-plugin/resource/sub/find`).
* - Use only lowercase alphanumeric characters, dashes, and forward slashes.
* - Use descriptive, action-oriented names (e.g., `process-payment`, `generate-report`).
*
@@ -225,9 +226,8 @@
* @see wp_register_ability_category()
* @see wp_unregister_ability()
*
- * @param string $name The name of the ability. Must be a namespaced string containing
- * a prefix, e.g., `my-plugin/my-ability`. Can only contain lowercase
- * alphanumeric characters, dashes, and forward slashes.
+ * @param string $name The name of the ability. Must be the fully-namespaced
+ * string identifier, e.g. `my-plugin/my-ability` or `my-plugin/resource/my-ability`.
* @param array $args {
* An associative array of arguments for configuring the ability.
*
@@ -318,7 +318,7 @@ function wp_register_ability( string $name, array $args ): ?WP_Ability {
* @see wp_register_ability()
*
* @param string $name The name of the ability to unregister, including namespace prefix
- * (e.g., 'my-plugin/my-ability').
+ * (e.g., 'my-plugin/my-ability' or 'my-plugin/resource/find').
* @return WP_Ability|null The unregistered ability instance on success, `null` on failure.
*/
function wp_unregister_ability( string $name ): ?WP_Ability {
@@ -351,7 +351,7 @@ function wp_unregister_ability( string $name ): ?WP_Ability {
* @see wp_get_ability()
*
* @param string $name The name of the ability to check, including namespace prefix
- * (e.g., 'my-plugin/my-ability').
+ * (e.g., 'my-plugin/my-ability' or 'my-plugin/resource/find').
* @return bool `true` if the ability is registered, `false` otherwise.
*/
function wp_has_ability( string $name ): bool {
@@ -383,7 +383,7 @@ function wp_has_ability( string $name ): bool {
* @see wp_has_ability()
*
* @param string $name The name of the ability, including namespace prefix
- * (e.g., 'my-plugin/my-ability').
+ * (e.g., 'my-plugin/my-ability' or 'my-plugin/resource/find').
* @return WP_Ability|null The registered ability instance, or `null` if not registered.
*/
function wp_get_ability( string $name ): ?WP_Ability {
diff --git a/src/wp-includes/abilities-api/class-wp-abilities-registry.php b/src/wp-includes/abilities-api/class-wp-abilities-registry.php
index ecd6dc2785e70..758dd2c2524df 100644
--- a/src/wp-includes/abilities-api/class-wp-abilities-registry.php
+++ b/src/wp-includes/abilities-api/class-wp-abilities-registry.php
@@ -43,9 +43,8 @@ final class WP_Abilities_Registry {
*
* @see wp_register_ability()
*
- * @param string $name The name of the ability. The name must be a string containing a namespace
- * prefix, i.e. `my-plugin/my-ability`. It can only contain lowercase
- * alphanumeric characters, dashes and the forward slash.
+ * @param string $name The name of the ability. Must be the fully-namespaced
+ * string identifier, e.g. `my-plugin/my-ability` or `my-plugin/resource/my-ability`.
* @param array $args {
* An associative array of arguments for the ability.
*
@@ -78,11 +77,11 @@ final class WP_Abilities_Registry {
* @return WP_Ability|null The registered ability instance on success, null on failure.
*/
public function register( string $name, array $args ): ?WP_Ability {
- if ( ! preg_match( '/^[a-z0-9-]+\/[a-z0-9-]+$/', $name ) ) {
+ if ( ! preg_match( '/^[a-z0-9-]+(?:\/[a-z0-9-]+){1,3}$/', $name ) ) {
_doing_it_wrong(
__METHOD__,
__(
- 'Ability name must be a string containing a namespace prefix, i.e. "my-plugin/my-ability". It can only contain lowercase alphanumeric characters, dashes and the forward slash.'
+ 'Ability name must contain 2 to 4 segments separated by forward slashes, e.g. "my-plugin/my-ability" or "my-plugin/resource/my-ability". It can only contain lowercase alphanumeric characters, dashes, and forward slashes.'
),
'6.9.0'
);
diff --git a/src/wp-includes/abilities-api/class-wp-ability.php b/src/wp-includes/abilities-api/class-wp-ability.php
index 967f1641156b0..bdcb8c0bd017a 100644
--- a/src/wp-includes/abilities-api/class-wp-ability.php
+++ b/src/wp-includes/abilities-api/class-wp-ability.php
@@ -52,7 +52,7 @@ class WP_Ability {
/**
* The name of the ability, with its namespace.
- * Example: `my-plugin/my-ability`.
+ * Examples: `my-plugin/my-ability`, `my-plugin/resource/find`.
*
* @since 6.9.0
* @var string
@@ -340,7 +340,7 @@ protected function prepare_properties( array $args ): array {
/**
* Retrieves the name of the ability, with its namespace.
- * Example: `my-plugin/my-ability`.
+ * Examples: `my-plugin/my-ability`, `my-plugin/resource/find`.
*
* @since 6.9.0
*
diff --git a/tests/phpunit/tests/abilities-api/wpAbilitiesRegistry.php b/tests/phpunit/tests/abilities-api/wpAbilitiesRegistry.php
index 32479d69e2f8c..b9cc58279c118 100644
--- a/tests/phpunit/tests/abilities-api/wpAbilitiesRegistry.php
+++ b/tests/phpunit/tests/abilities-api/wpAbilitiesRegistry.php
@@ -136,6 +136,74 @@ public function test_register_invalid_uppercase_characters_in_name() {
$this->assertNull( $result );
}
+ /**
+ * Should accept ability name with 3 segments (2 slashes).
+ *
+ * @ticket 64098
+ *
+ * @covers WP_Abilities_Registry::register
+ */
+ public function test_register_valid_name_with_three_segments() {
+ $result = $this->registry->register( 'test/sub/add-numbers', self::$test_ability_args );
+ $this->assertInstanceOf( WP_Ability::class, $result );
+ $this->assertSame( 'test/sub/add-numbers', $result->get_name() );
+ }
+
+ /**
+ * Should accept ability name with 4 segments (3 slashes).
+ *
+ * @ticket 64098
+ *
+ * @covers WP_Abilities_Registry::register
+ */
+ public function test_register_valid_name_with_four_segments() {
+ $result = $this->registry->register( 'test/sub/deep/add-numbers', self::$test_ability_args );
+ $this->assertInstanceOf( WP_Ability::class, $result );
+ $this->assertSame( 'test/sub/deep/add-numbers', $result->get_name() );
+ }
+
+ /**
+ * Should reject ability name with 5 segments (exceeds maximum of 4).
+ *
+ * @ticket 64098
+ *
+ * @covers WP_Abilities_Registry::register
+ *
+ * @expectedIncorrectUsage WP_Abilities_Registry::register
+ */
+ public function test_register_invalid_name_with_five_segments() {
+ $result = $this->registry->register( 'test/a/b/c/too-deep', self::$test_ability_args );
+ $this->assertNull( $result );
+ }
+
+ /**
+ * Should reject ability name with empty segments (double slashes).
+ *
+ * @ticket 64098
+ *
+ * @covers WP_Abilities_Registry::register
+ *
+ * @expectedIncorrectUsage WP_Abilities_Registry::register
+ */
+ public function test_register_invalid_name_with_empty_segment() {
+ $result = $this->registry->register( 'test//add-numbers', self::$test_ability_args );
+ $this->assertNull( $result );
+ }
+
+ /**
+ * Should reject ability name with trailing slash.
+ *
+ * @ticket 64098
+ *
+ * @covers WP_Abilities_Registry::register
+ *
+ * @expectedIncorrectUsage WP_Abilities_Registry::register
+ */
+ public function test_register_invalid_name_with_trailing_slash() {
+ $result = $this->registry->register( 'test/add-numbers/', self::$test_ability_args );
+ $this->assertNull( $result );
+ }
+
/**
* Should reject ability registration without a label.
*
diff --git a/tests/phpunit/tests/rest-api/wpRestAbilitiesV1RunController.php b/tests/phpunit/tests/rest-api/wpRestAbilitiesV1RunController.php
index bccc30c2f2e94..0c03d72dab8a5 100644
--- a/tests/phpunit/tests/rest-api/wpRestAbilitiesV1RunController.php
+++ b/tests/phpunit/tests/rest-api/wpRestAbilitiesV1RunController.php
@@ -379,6 +379,43 @@ private function register_test_abilities(): void {
)
);
+ // Ability with nested namespace (3 segments).
+ $this->register_test_ability(
+ 'test/math/add',
+ array(
+ 'label' => 'Nested Add',
+ 'description' => 'Adds numbers with nested namespace',
+ 'category' => 'math',
+ 'input_schema' => array(
+ 'type' => 'object',
+ 'properties' => array(
+ 'a' => array(
+ 'type' => 'number',
+ 'description' => 'First number',
+ ),
+ 'b' => array(
+ 'type' => 'number',
+ 'description' => 'Second number',
+ ),
+ ),
+ 'required' => array( 'a', 'b' ),
+ 'additionalProperties' => false,
+ ),
+ 'output_schema' => array(
+ 'type' => 'number',
+ ),
+ 'execute_callback' => static function ( array $input ) {
+ return $input['a'] + $input['b'];
+ },
+ 'permission_callback' => static function () {
+ return current_user_can( 'edit_posts' );
+ },
+ 'meta' => array(
+ 'show_in_rest' => true,
+ ),
+ )
+ );
+
// Read-only ability for query params testing.
$this->register_test_ability(
'test/query-params',
@@ -432,6 +469,31 @@ public function test_execute_regular_ability_post(): void {
$this->assertEquals( 8, $response->get_data() );
}
+ /**
+ * Test executing an ability with a nested namespace (3 segments) via REST.
+ *
+ * @ticket 64098
+ */
+ public function test_execute_nested_namespace_ability(): void {
+ $request = new WP_REST_Request( 'POST', '/wp-abilities/v1/abilities/test/math/add/run' );
+ $request->set_header( 'Content-Type', 'application/json' );
+ $request->set_body(
+ wp_json_encode(
+ array(
+ 'input' => array(
+ 'a' => 10,
+ 'b' => 7,
+ ),
+ )
+ )
+ );
+
+ $response = $this->server->dispatch( $request );
+
+ $this->assertEquals( 200, $response->get_status() );
+ $this->assertEquals( 17, $response->get_data() );
+ }
+
/**
* Test executing a read-only ability with GET.
*
From edd68853d46446c07255e79b9fab4fec563d4bbb Mon Sep 17 00:00:00 2001
From: Jorge Costa
Date: Mon, 9 Feb 2026 17:08:13 +0000
Subject: [PATCH 008/145] Block Supports: Prevent fatal error in `WP_Duotone`
when the duotone attribute is an array.
Adds type checks to `get_slug_from_attribute()`, `is_preset()`, and `get_all_global_style_block_names()` to handle cases where the duotone attribute is an array of custom colors instead of a preset reference string.
This prevents an error when `preg_match()` receives an array instead of a string.
Props jorgefilipecosta, westonruter, xavilc.
Fixes #64612.
git-svn-id: https://develop.svn.wordpress.org/trunk@61603 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/class-wp-duotone.php | 19 ++++++++++++++++---
.../phpunit/tests/block-supports/duotone.php | 4 ++++
2 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/src/wp-includes/class-wp-duotone.php b/src/wp-includes/class-wp-duotone.php
index 69b56e090c5d4..8666f85a0f8e4 100644
--- a/src/wp-includes/class-wp-duotone.php
+++ b/src/wp-includes/class-wp-duotone.php
@@ -546,10 +546,14 @@ private static function colord_parse( $input ) {
*
* @since 6.3.0
*
- * @param string $duotone_attr The duotone attribute from a block.
- * @return string The slug of the duotone preset or an empty string if no slug is found.
+ * @param string|string[] $duotone_attr The duotone attribute from a block.
+ * @return string The slug of the duotone preset or an empty string if no slug is found (including when an array was passed).
*/
private static function get_slug_from_attribute( $duotone_attr ) {
+ if ( ! is_string( $duotone_attr ) ) {
+ return '';
+ }
+
// Uses Branch Reset Groups `(?|…)` to return one capture group.
preg_match( '/(?|var:preset\|duotone\|(\S+)|var\(--wp--preset--duotone--(\S+)\))/', $duotone_attr, $matches );
@@ -566,9 +570,13 @@ private static function get_slug_from_attribute( $duotone_attr ) {
* @since 6.3.0
*
* @param string $duotone_attr The duotone attribute from a block.
- * @return bool True if the duotone preset present and valid.
+ * @param string|string[] $duotone_attr The duotone attribute from a block.
*/
private static function is_preset( $duotone_attr ) {
+ if ( ! is_string( $duotone_attr ) ) {
+ return false;
+ }
+
$slug = self::get_slug_from_attribute( $duotone_attr );
$filter_id = self::get_filter_id( $slug );
@@ -1050,6 +1058,11 @@ private static function get_all_global_style_block_names() {
continue;
}
// If it has a duotone filter preset, save the block name and the preset slug.
+ // Only process if it's a string (preset reference), not an array (custom colors).
+ if ( ! is_string( $duotone_attr ) ) {
+ continue;
+ }
+
$slug = self::get_slug_from_attribute( $duotone_attr );
if ( $slug && $slug !== $duotone_attr ) {
diff --git a/tests/phpunit/tests/block-supports/duotone.php b/tests/phpunit/tests/block-supports/duotone.php
index 1f60a8247d4c4..808903a072452 100644
--- a/tests/phpunit/tests/block-supports/duotone.php
+++ b/tests/phpunit/tests/block-supports/duotone.php
@@ -93,6 +93,8 @@ public function data_get_slug_from_attribute() {
'pipe-slug-no-value' => array( 'var:preset|duotone|', '' ),
'css-var-spaces' => array( 'var(--wp--preset--duotone-- ', '' ),
'pipe-slug-spaces' => array( 'var:preset|duotone| ', '' ),
+ 'array-of-colors' => array( array( '#000000', '#ffffff' ), '' ),
+ 'empty-array' => array( array(), '' ),
);
}
@@ -164,6 +166,8 @@ public function data_is_preset() {
'css-var-invalid-slug-chars' => array( 'var(--wp--preset--duotone--.)', false ),
'css-var-missing-end-parenthesis' => array( 'var(--wp--preset--duotone--blue-orange', false ),
'invalid' => array( 'not a valid attribute', false ),
+ 'array-of-colors' => array( array( '#000000', '#ffffff' ), false ),
+ 'empty-array' => array( array(), false ),
);
}
From 4cad33af1d6b3ababddba904f99bd09494039f88 Mon Sep 17 00:00:00 2001
From: Weston Ruter
Date: Mon, 9 Feb 2026 18:42:51 +0000
Subject: [PATCH 009/145] Docs: Improve `@global` annotations in
abstract-testcase.php
Developed in https://github.com/WordPress/wordpress-develop/pull/10841
Follow-up to [61589], [61584].
Props noruzzaman, mukesh27, westonruter, shailu25, huzaifaalmesbah.
See #64224.
git-svn-id: https://develop.svn.wordpress.org/trunk@61604 602fd350-edb4-49c9-b593-d223f7449a82
---
tests/phpunit/includes/abstract-testcase.php | 24 ++++++++++----------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/tests/phpunit/includes/abstract-testcase.php b/tests/phpunit/includes/abstract-testcase.php
index e4eefabfebf69..3a5d52b0706a9 100644
--- a/tests/phpunit/includes/abstract-testcase.php
+++ b/tests/phpunit/includes/abstract-testcase.php
@@ -160,10 +160,10 @@ public function wp_hash_password_options( array $options, string $algorithm ): a
/**
* After a test method runs, resets any state in WordPress the test method might have changed.
*
- * @global wpdb $wpdb WordPress database abstraction object.
- * @global WP_Query $wp_the_query WordPress Query object.
- * @global WP_Query $wp_query WordPress Query object.
- * @global WP $wp WordPress environment object.
+ * @global wpdb $wpdb WordPress database abstraction object.
+ * @global WP_Query $wp_the_query Main WordPress query object.
+ * @global WP_Query $wp_query WordPress query object.
+ * @global WP $wp WordPress environment object.
*/
public function tear_down() {
global $wpdb, $wp_the_query, $wp_query, $wp;
@@ -370,10 +370,10 @@ protected function reset__SERVER() {
* Stores $wp_filter, $wp_actions, $wp_filters, and $wp_current_filter
* on a class variable so they can be restored on tear_down() using _restore_hooks().
*
- * @global array $wp_filter Stores all of the filters and actions.
- * @global array $wp_actions Stores the number of times each action was triggered.
- * @global array $wp_filters Stores the number of times each filter was triggered.
- * @global array $wp_current_filter Stores the list of current filters with the current one last.
+ * @global array $wp_filter All of the filters and actions.
+ * @global array $wp_actions The number of times each action was triggered.
+ * @global array $wp_filters The number of times each filter was triggered.
+ * @global array $wp_current_filter The list of current filters with the current one last.
*/
protected function _backup_hooks() {
self::$hooks_saved['wp_filter'] = array();
@@ -393,10 +393,10 @@ protected function _backup_hooks() {
* Restores the hook-related globals to their state at set_up()
* so that future tests aren't affected by hooks set during this last test.
*
- * @global array $wp_filter Stores all of the filters and actions.
- * @global array $wp_actions Stores the number of times each action was triggered.
- * @global array $wp_filters Stores the number of times each filter was triggered.
- * @global array $wp_current_filter Stores the list of current filters with the current one last.
+ * @global array $wp_filter All of the filters and actions.
+ * @global array $wp_actions The number of times each action was triggered.
+ * @global array $wp_filters The number of times each filter was triggered.
+ * @global array $wp_current_filter The list of current filters with the current one last.
*/
protected function _restore_hooks() {
if ( isset( self::$hooks_saved['wp_filter'] ) ) {
From f8b22857f4194b05876c5923d19b251b2f9cc8ee Mon Sep 17 00:00:00 2001
From: Ella Van Durpe
Date: Mon, 9 Feb 2026 19:47:58 +0000
Subject: [PATCH 010/145] Gutenberg ref update.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Updates unit tests to account for:
- "Dynamically add CSS class to Paragraph block" (https://github.com/WordPress/gutenberg/pull/71207)
- New block server-side block registrations.
Updates the REST API posts controller's excerpt filter to account for "Post Excerpt Block: Fix length limits for both Editor and Front and fix ellipsis consistency" (https://github.com/WordPress/gutenberg/pull/74140/changes#r2783014013).
Developed in https://github.com/WordPress/wordpress-develop/pull/10865.
Props ellatrix, scruffian, desrosj.
See #64595.
---
I've included a log of the Gutenberg changes with the following command:
git log --reverse --format="- %s" 7bf80ea84eb8b62eceb1bb3fe82e42163673ca79..59a08c5496008ca88f4b6b86f38838c3612d88c8 | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy
- Editor: Cleanup active post as needed (https://github.com/WordPress/gutenberg/pull/74118)
- Build: fully resolve import paths in transpiled files (https://github.com/WordPress/gutenberg/pull/73822)
- Extensible Site Editor: The Canvas should share the same ThemeProvider as all the surfaces (https://github.com/WordPress/gutenberg/pull/74125)
- Add Badge component to UI package (https://github.com/WordPress/gutenberg/pull/73875)
- Theme_JSON_Resolver: defensively cover against situations where the post is null (https://github.com/WordPress/gutenberg/pull/74124)
- Site Editor: Add extensible site editor experiment (https://github.com/WordPress/gutenberg/pull/74123)
- Components: Fix DateTimePicker timezone handling for non-string values (https://github.com/WordPress/gutenberg/pull/73887)
- Global Fonts: Convert relative font URLs to absolute theme URLs in font-face styles (https://github.com/WordPress/gutenberg/pull/74115)
- Global Fonts: Correctly convert relative font URLs to absolute theme URLs in font-face styles (https://github.com/WordPress/gutenberg/pull/74137)
- Add Line Indent support (https://github.com/WordPress/gutenberg/pull/73114)
- Update report-flaky-tests action to use CommonJS module format (https://github.com/WordPress/gutenberg/pull/74152)
- Media Modal experiment: Always show thumbnail field (https://github.com/WordPress/gutenberg/pull/74147)
- Refactor isBlockHidden selector to simplify block support check (https://github.com/WordPress/gutenberg/pull/74151)
- Apply `post_type_archive_title` on post type archive title in Breadcrumbs (https://github.com/WordPress/gutenberg/pull/73966)
- DataView: update free-composition story (https://github.com/WordPress/gutenberg/pull/74146)
- Add checkerboard pattern for background in featured image preview (https://github.com/WordPress/gutenberg/pull/74091)
- Fix Post Date Block: Semantic use of `date` tag inside link (https://github.com/WordPress/gutenberg/pull/73788)
- Terms Query Block: Fix Max terms for non-hierarchical taxonomies (https://github.com/WordPress/gutenberg/pull/74130)
- Fields: Add MediaEdit component (https://github.com/WordPress/gutenberg/pull/73537)
- Docs: Enhance documentation for Interactivity API and iAPI Router (https://github.com/WordPress/gutenberg/pull/73766)
- DataViews: Add groupBy.showLabel config option to control group header label visibility (https://github.com/WordPress/gutenberg/pull/74161)
- Theme_JSON_Resolver: check for `WP_Post` instance (https://github.com/WordPress/gutenberg/pull/74172)
- Breadcrumbs: Stabilize block (https://github.com/WordPress/gutenberg/pull/74166)
- Menu, CustomSelectControl (v1 & 2): Update animation (https://github.com/WordPress/gutenberg/pull/74111)
- Add RTL support for drop caps in paragraph block styles in the editor (https://github.com/WordPress/gutenberg/pull/74058)
- Font Library: fix help text position in Upload tab (https://github.com/WordPress/gutenberg/pull/74157)
- Media Modal experiment: Tweak padding of the modal for consistency (https://github.com/WordPress/gutenberg/pull/74155)
- Block visibility based on screen size: add backend block support (https://github.com/WordPress/gutenberg/pull/73994)
- Accordion Header: Fix potential undo trap (https://github.com/WordPress/gutenberg/pull/74182)
- Classic Block: Always use modal and display block placeholder (https://github.com/WordPress/gutenberg/pull/74162)
- Update ToggleGroupControl visual design (https://github.com/WordPress/gutenberg/pull/74036)
- Comment Author Name: Migrate to text-align block support (https://github.com/WordPress/gutenberg/pull/74068)
- Query Loop: Hide `change design` or `choose pattern` when is locked (https://github.com/WordPress/gutenberg/pull/74160)
- Fix: Prevent `accordion-heading` submitting/sending forms (button `type="button"`) (https://github.com/WordPress/gutenberg/pull/74177)
- Button: Improve the label of the button block in list view (https://github.com/WordPress/gutenberg/pull/74163)
- Add list view tab to the buttons, list and social icons blocks (https://github.com/WordPress/gutenberg/pull/74120)
- improve `resolveSelect` type definition (https://github.com/WordPress/gutenberg/pull/73973)
- Add label to MediaEdit component (https://github.com/WordPress/gutenberg/pull/74176)
- Update LayoutCard story in DataForm to use card layout (https://github.com/WordPress/gutenberg/pull/73695)
- `wordpress/dataviews`: migrate to Stack (https://github.com/WordPress/gutenberg/pull/74174)
- `wordpress/dataviews`: reorganize code (https://github.com/WordPress/gutenberg/pull/74188)
- Tests: Add unit tests for Button block __experimentalLabel functionality (https://github.com/WordPress/gutenberg/pull/74186)
- Add `block_core_breadcrumbs_items` filter to Breadcrumbs allowing to filter final items array (https://github.com/WordPress/gutenberg/pull/74169)
- `wordpress/dataviews`: improve stories and tests (https://github.com/WordPress/gutenberg/pull/74192)
- Block Card: Make the parent block navigation generic, supports any block with list view support (https://github.com/WordPress/gutenberg/pull/74164)
- Accordion: Passthrough 'openByDefault' value via context (https://github.com/WordPress/gutenberg/pull/74191)
- Improve DataForm stories (https://github.com/WordPress/gutenberg/pull/74196)
- DataViews: display a separate `—` for each level (https://github.com/WordPress/gutenberg/pull/74199)
- Build: Support pnpm (https://github.com/WordPress/gutenberg/pull/74194)
- Accordion: Remove 'isSelected' attribute (https://github.com/WordPress/gutenberg/pull/74198)
- Update package changelogs (https://github.com/WordPress/gutenberg/pull/74202)
- Docs: Clarify that `npm publishing` requires team approval during the RC1 launch (https://github.com/WordPress/gutenberg/pull/74204)
- Extensible Site Editor: Lift template activation restriction (https://github.com/WordPress/gutenberg/pull/74197)
- Block support: Add anchor support for dynamic blocks (https://github.com/WordPress/gutenberg/pull/74183)
- Template Activation: Try fixing still flaky test (https://github.com/WordPress/gutenberg/pull/74216)
- Build: Fix the default base url used when generating php files (https://github.com/WordPress/gutenberg/pull/74220)
- Cleanup the dependencies in the root package.json (https://github.com/WordPress/gutenberg/pull/74212)
- Remove outdated vendor prefix properties in CSS (https://github.com/WordPress/gutenberg/pull/74213)
- Build: Rename extensible site editor page to avoid conflicts (https://github.com/WordPress/gutenberg/pull/74221)
- Menu: Clean up popover wrappers (https://github.com/WordPress/gutenberg/pull/74207)
- Use a stable npm version on static checks job (https://github.com/WordPress/gutenberg/pull/74222)
- Block Editor: Make TextIndentControl component internal (https://github.com/WordPress/gutenberg/pull/74219)
- Image Block: Add content tab and reorganize inspector controls (https://github.com/WordPress/gutenberg/pull/74201)
- Extensible Site Editor: Fix the dashboard link (https://github.com/WordPress/gutenberg/pull/74231)
- Command Palette: Fix in the font library page and site editor experiment (https://github.com/WordPress/gutenberg/pull/74232)
- Block Inspector: Update the design of the style variation to use ToolsPanel (https://github.com/WordPress/gutenberg/pull/74224)
- Add block transforms between Verse and Quote blocks (https://github.com/WordPress/gutenberg/pull/73068)
- Docs: Fix `Get started with create-block` handbook link (https://github.com/WordPress/gutenberg/pull/74237)
- tsconfig: Replace skipDefaultLibCheck with skipLibCheck (https://github.com/WordPress/gutenberg/pull/74239)
- Docs: Fix `Gutenberg Release Process` handbook link (https://github.com/WordPress/gutenberg/pull/74240)
- Schemas: Add breadcrumbs block schema (https://github.com/WordPress/gutenberg/pull/74227)
- Tag Cloud: Use new HtmlRenderer component to remove extra div wrapper (https://github.com/WordPress/gutenberg/pull/74228)
- Env: Strip version suffix for non-wp-org zip sources (https://github.com/WordPress/gutenberg/pull/74195)
- DataViewsPicker Table Layout: Ensure checkbox column is always 48px wide (https://github.com/WordPress/gutenberg/pull/74181)
- Docs: fix broken release process links (https://github.com/WordPress/gutenberg/pull/74250)
- Add visibility badge for hidden blocks in the block inspector. (https://github.com/WordPress/gutenberg/pull/74180)
- Docs: fix callout notices layout and clarify handbook link usage (https://github.com/WordPress/gutenberg/pull/74252)
- Tag Cloud: Make error message prefix text translatable (https://github.com/WordPress/gutenberg/pull/74256)
- Block variation transformation: change position and threshold (https://github.com/WordPress/gutenberg/pull/74251)
- Tabs: Reset focus styles to avoid visual glitch (https://github.com/WordPress/gutenberg/pull/74225)
- PHP-only blocks: use `HtmlRenderer` to ensure fontend & editor consistency (https://github.com/WordPress/gutenberg/pull/74261)
- Add new `VisuallyHidden` component (https://github.com/WordPress/gutenberg/pull/74189)
- Revert "Add Line Indent support (https://github.com/WordPress/gutenberg/pull/73114)" (https://github.com/WordPress/gutenberg/pull/74266)
- Fix typos and improve clarity in documentation across multiple files (https://github.com/WordPress/gutenberg/pull/74270)
- Archives Block: Use new HtmlRenderer component to remove extra div wrapper and remove editor styles (https://github.com/WordPress/gutenberg/pull/74255)
- disable anchor more block (https://github.com/WordPress/gutenberg/pull/74267)
- Comment Content: Migrate to text-align block support (https://github.com/WordPress/gutenberg/pull/74269)
- Stylelint: Add design token linting (https://github.com/WordPress/gutenberg/pull/74226)
- Storybook: Include design tokens styles automatically (https://github.com/WordPress/gutenberg/pull/73938)
- Tabs: Adding border radius styling options (https://github.com/WordPress/gutenberg/pull/74103)
- Storybook: Show props from component libraries (https://github.com/WordPress/gutenberg/pull/74279)
- Theme: Fix design-tokens.js entrypoint to specify types and CJS variants (https://github.com/WordPress/gutenberg/pull/74129)
- Add `Field` primitives (https://github.com/WordPress/gutenberg/pull/74190)
- Validated form controls: Add stories for validation in popovers (https://github.com/WordPress/gutenberg/pull/71282)
- Theme: Refine typography tokens (https://github.com/WordPress/gutenberg/pull/73931)
- Packages: Avoid bumping the major version on prerelease packages (https://github.com/WordPress/gutenberg/pull/74285)
- Components: Enhance Notice actions to allow more props like disabled and onClick with url (https://github.com/WordPress/gutenberg/pull/74094)
- Update color ramp generation snapshots (https://github.com/WordPress/gutenberg/pull/74281)
- Upgrade storybook to v9 (https://github.com/WordPress/gutenberg/pull/74143)
- Footnotes Block: Fixing various Code Quality and Coding Standard issues (https://github.com/WordPress/gutenberg/pull/74243)
- Fix: menu_order validation to allow zero and negative values (https://github.com/WordPress/gutenberg/pull/74282)
- Fix: use WP_Theme_JSON_Gutenberg instead of WP_Theme_JSON class (https://github.com/WordPress/gutenberg/pull/74294)
- PHP-only blocks: Generate inspector controls from attributes (https://github.com/WordPress/gutenberg/pull/74102)
- Update the copyright license to 2026 (https://github.com/WordPress/gutenberg/pull/74306)
- Update browsers list data (https://github.com/WordPress/gutenberg/pull/74312)
- Storybook: Fix Sass warnings (https://github.com/WordPress/gutenberg/pull/74298)
- Update eslint to 8.57.1 (https://github.com/WordPress/gutenberg/pull/74316)
- Update eslint-plugin-storybook to 10.1.11 (https://github.com/WordPress/gutenberg/pull/74317)
- Tag Cloud, Archives: Fix sidebar flash when changing settings (https://github.com/WordPress/gutenberg/pull/74291)
- Tag Cloud, Archives: Restore missing block wrapper div (https://github.com/WordPress/gutenberg/pull/74321)
- RSS Block: Use HtmlRenderer to remove extra div from editor and remove editor styles (https://github.com/WordPress/gutenberg/pull/74272)
- Breadcrumbs Block: Use HtmlRenderer to remove extra div from editor (https://github.com/WordPress/gutenberg/pull/74273)
- Latest Comments: Remove wrapper div and use HtmlRenderer for dynamic content rendering (https://github.com/WordPress/gutenberg/pull/74277)
- DataForm: Fix panel field inaccessible when empty with labelPosition none or top (https://github.com/WordPress/gutenberg/pull/74264)
- Storybook: Remove outdated story matchers (https://github.com/WordPress/gutenberg/pull/74299)
- UI: Exclude package from `jsdoc/require-param` rule (https://github.com/WordPress/gutenberg/pull/74315)
- Calender Block: Use HtmlRenderer to remove extra div from editor (https://github.com/WordPress/gutenberg/pull/74271)
- Theme: Include Figma scopes extension in design tokens (https://github.com/WordPress/gutenberg/pull/73897)
- UI: Remove redundant renderElement utility (https://github.com/WordPress/gutenberg/pull/74284)
- Form Field Blocks: Replace dashicon with SVG icons (https://github.com/WordPress/gutenberg/pull/73996)
- ContentOnlyControls: Polish header style (https://github.com/WordPress/gutenberg/pull/74260)
- Footnotes: prevent inserting footnotes within a footnotes block (https://github.com/WordPress/gutenberg/pull/74287)
- Block visibility based on screen size: basic clientside state (https://github.com/WordPress/gutenberg/pull/74025)
- Block Support: Fix horizontal overflow in Manage allowed blocks modal (https://github.com/WordPress/gutenberg/pull/74337)
- Block support: Backport anchor support changes in core (https://github.com/WordPress/gutenberg/pull/74341)
- Dynamically add CSS class to Paragraph block (https://github.com/WordPress/gutenberg/pull/71207)
- Test: Update URLs in tests to use example.org instead of test.com (https://github.com/WordPress/gutenberg/pull/74246)
- Bump Node.js requirement to 20.19 (https://github.com/WordPress/gutenberg/pull/74342)
- `@wordpress/theme`: update `colorjs.io` to version `0.6.0` (https://github.com/WordPress/gutenberg/pull/74278)
- HtmlRenderer: Merge style props (https://github.com/WordPress/gutenberg/pull/74344)
- @wordpress/theme: disable color ramp unit tests (https://github.com/WordPress/gutenberg/pull/74347)
- Update the useCommandLoader example to fix the syntax error and add missing imports. (https://github.com/WordPress/gutenberg/pull/73660)
- Code Modernization: Use null coalescing operator in place of `isset()` in ternaries. (https://github.com/WordPress/gutenberg/pull/74335)
- Preview drop down: align preview editing widths with common breakpoints (https://github.com/WordPress/gutenberg/pull/74339)
- Media mime type field: Disable sorting for now (https://github.com/WordPress/gutenberg/pull/74373)
- Remove commented-out note regarding redundant settings OPTIONS requests in preload tests. (https://github.com/WordPress/gutenberg/pull/74375)
- Core Merge: Deduplicate Font Library page and routes (https://github.com/WordPress/gutenberg/pull/74381)
- Build: Build minified and non minified CSS in both npm run dev and npm run build (https://github.com/WordPress/gutenberg/pull/74380)
- Fix TypeScript error output in check-build-type-declaration-files script (https://github.com/WordPress/gutenberg/pull/74346)
- Revert bump of Node.js to 20.19 (https://github.com/WordPress/gutenberg/pull/74385)
- Packages: Add support for publishing stable release of pre-release package (https://github.com/WordPress/gutenberg/pull/74332)
- Forms Block: Switch from dashicons to SVG (https://github.com/WordPress/gutenberg/pull/74297)
- Fit-text: Refactor control hook for readability (https://github.com/WordPress/gutenberg/pull/74350)
- Pattern Overrides: Infer partial syncing supported blocks from the server (https://github.com/WordPress/gutenberg/pull/73889)
- Categories Block: Fix CSS collision with labels (https://github.com/WordPress/gutenberg/pull/73862)
- Fix parent popover not closing on click outside (https://github.com/WordPress/gutenberg/pull/74340)
- List View Panel: Fix circular dependency issue that was breaking some Storybook stories (https://github.com/WordPress/gutenberg/pull/74399)
- Block: memoize canOverrideBlocks (https://github.com/WordPress/gutenberg/pull/74400)
- Fix storybook:dev race condition with dev script (https://github.com/WordPress/gutenberg/pull/74290)
- Image Cropper package: Add react peer dependencies (https://github.com/WordPress/gutenberg/pull/74402)
- Build: use .mjs extensions for build-module files (https://github.com/WordPress/gutenberg/pull/74348)
- MediaEdit: expanded view (https://github.com/WordPress/gutenberg/pull/74336)
- Inspector Fields: Show DataForm driven Content tab for all blocks that support content fields (+ support block bindings) (https://github.com/WordPress/gutenberg/pull/73863)
- Build: Faster repo building in CI (https://github.com/WordPress/gutenberg/pull/74406)
- `@wordpress/keycodes`: add `ariaKeyShortcut` and `shortcutFormats ` exports (https://github.com/WordPress/gutenberg/pull/74205)
- Create default Core Navigation Overlay patterns (https://github.com/WordPress/gutenberg/pull/74047)
- Enhance Block Bindings Documentation as per WP 6.9 updates: Customizing supported attributes an `getFieldsList` (https://github.com/WordPress/gutenberg/pull/73763)
- Patterns: Improve memoization in the overrides panel (https://github.com/WordPress/gutenberg/pull/74407)
- Docs: Remove "Customizing supported attributes filter" section from Block Bindings docs (https://github.com/WordPress/gutenberg/pull/74410)
- fix script module IDs to use configured packageNamespace (https://github.com/WordPress/gutenberg/pull/74411)
- Update package version after an unfinished publish (https://github.com/WordPress/gutenberg/pull/74413)
- UI: Add `Fieldset` primitives (https://github.com/WordPress/gutenberg/pull/74296)
- DataViews: add density picker to list layout (https://github.com/WordPress/gutenberg/pull/71050)
- UI: Add `Icon` component (https://github.com/WordPress/gutenberg/pull/74311)
- Separator, Code: don't require Enter for shortcut (https://github.com/WordPress/gutenberg/pull/63654)
- Theme: Update semibold font weight to apply workaround at CSS (https://github.com/WordPress/gutenberg/pull/74392)
- Block visibility based on screen size: add rules to hide on viewport size (https://github.com/WordPress/gutenberg/pull/74379)
- Media Fields: Add "Date added" and "Date modified" fields (https://github.com/WordPress/gutenberg/pull/74401)
- Fix missing dependencies for packages (https://github.com/WordPress/gutenberg/pull/74310)
- DataForm validation story: add support for the details layout (https://github.com/WordPress/gutenberg/pull/74445)
- Quote: Fix transformation error (https://github.com/WordPress/gutenberg/pull/74253)
- Stop building wp-build by renaming the src directory (https://github.com/WordPress/gutenberg/pull/74450)
- Update: Use 12px as minimum font size for warning on fit text. (https://github.com/WordPress/gutenberg/pull/74387)
- Render custom overlay template parts in Navigation block (behind experiment) (https://github.com/WordPress/gutenberg/pull/73967)
- UI: add `Button` (https://github.com/WordPress/gutenberg/pull/74415)
- iAPI: Preserve boolean HTML attributes during client side navigation (https://github.com/WordPress/gutenberg/pull/74446)
- Blocks: cache url root when registering assets (https://github.com/WordPress/gutenberg/pull/74451)
- Rename overlay area (https://github.com/WordPress/gutenberg/pull/74444)
- Bump minimum required PHP version to 7.4. (https://github.com/WordPress/gutenberg/pull/74457)
- Show Navigation overlay patterns on right sidebar (https://github.com/WordPress/gutenberg/pull/74069)
- Blocks: Fix root url cache fatal error (https://github.com/WordPress/gutenberg/pull/74459)
- CI: Run the PHP unit tests with the oldest and latest versions (https://github.com/WordPress/gutenberg/pull/74460)
- added group label and 100vh (https://github.com/WordPress/gutenberg/pull/74458)
- Convert dom-ready package to TypeScript (https://github.com/WordPress/gutenberg/pull/67671)
- List View: Fix focus shift to the selected nested block (https://github.com/WordPress/gutenberg/pull/74431)
- Media Fields: Add an attached_to field (https://github.com/WordPress/gutenberg/pull/74432)
- Updated useBlockProps to utilize block visibility and device type from context, the intention is to reduce unnecessary store subscriptions. (https://github.com/WordPress/gutenberg/pull/74481)
- Block Fields: Decouple the experiment from contentOnly/pattern editing experiments (https://github.com/WordPress/gutenberg/pull/74479)
- Image: add focal point controls (https://github.com/WordPress/gutenberg/pull/73115)
- MediaEdit: Add drag and drop functionality (https://github.com/WordPress/gutenberg/pull/74455)
- DependencyExtractionWebpackPlugin: add ui as bundled package (https://github.com/WordPress/gutenberg/pull/74485)
- Parent selector: Fix dot divider horizontal spacing (https://github.com/WordPress/gutenberg/pull/74329)
- wp-build: Fix dynamic base-styles import (https://github.com/WordPress/gutenberg/pull/74434)
- Plugin: Bump minimum required WordPress version to 6.8 (https://github.com/WordPress/gutenberg/pull/74218)
- Pass `post_id` as an argument to `block_core_breadcrumbs_post_type_settings` filter to allow more granular term choice (https://github.com/WordPress/gutenberg/pull/74170)
- Block Editor: Close the inserter on small screens after adding a block (https://github.com/WordPress/gutenberg/pull/74487)
- `@wordpress/ui` `Button`: add `destructive` tone (https://github.com/WordPress/gutenberg/pull/74463)
- Fix punctuation and formatting in README.md (https://github.com/WordPress/gutenberg/pull/74440)
- Hide Display section from Nav Inspector Controls if empty (https://github.com/WordPress/gutenberg/pull/74495)
- PHPCS: Include the `test` directory (https://github.com/WordPress/gutenberg/pull/48754)
- dom-ready: Replace @ts-expect-error with MockDocument in tests (https://github.com/WordPress/gutenberg/pull/74482)
- TypeScript: Migrate `packages/jest-puppeteer-axe` package to TypeScript (https://github.com/WordPress/gutenberg/pull/70523)
- dom-ready: Refactor tests to use defineProperty (https://github.com/WordPress/gutenberg/pull/74514)
- Dev: Fix file change logs not displaying in watch mode (https://github.com/WordPress/gutenberg/pull/74452)
- Block Fields: show all form fields by default (https://github.com/WordPress/gutenberg/pull/74486)
- Heading: Migrate to text-align block support (https://github.com/WordPress/gutenberg/pull/74383)
- Fix the dataviews experiment locked fields position on toggle. (https://github.com/WordPress/gutenberg/pull/74326)
- Fully resolve some intra-package import paths (https://github.com/WordPress/gutenberg/pull/74530)
- TypeScript: Migrate shortcode package to TS. (https://github.com/WordPress/gutenberg/pull/74522)
- Navigation Overlay: Fix area and icon name (https://github.com/WordPress/gutenberg/pull/74520)
- Storybook: Update "Introduction" doc (https://github.com/WordPress/gutenberg/pull/74500)
- Storybook: Retire old theme switcher (https://github.com/WordPress/gutenberg/pull/74499)
- Add design-tokens.css to stylelintignore (https://github.com/WordPress/gutenberg/pull/74498)
- fix nextpage-more-disable-visibility (https://github.com/WordPress/gutenberg/pull/74531)
- `@wordpress/ui` `Button`: undo `destructive` tone variant (https://github.com/WordPress/gutenberg/pull/74540)
- Update nested-blocks-inner-blocks.md (https://github.com/WordPress/gutenberg/pull/74534)
- Clamp signaling server retries to prevent unbounded backoff (https://github.com/WordPress/gutenberg/pull/74372)
- `@wordpress/ui` `Button`: refactor to base ui (https://github.com/WordPress/gutenberg/pull/74416)
- Storybook: Remove "background" tools from toolbar (https://github.com/WordPress/gutenberg/pull/74538)
- Storybook: Remove margin checker tool (https://github.com/WordPress/gutenberg/pull/74539)
- Fix documentation title for @wordpress/build package (https://github.com/WordPress/gutenberg/pull/74541)
- TypeScript: Convert notices package to TypeScript (https://github.com/WordPress/gutenberg/pull/67670)
- Client side media: enhance queue system (https://github.com/WordPress/gutenberg/pull/74501)
- Improve cross origin isolation support (https://github.com/WordPress/gutenberg/pull/74418)
- Remove WebRTC and IndexedDB providers (https://github.com/WordPress/gutenberg/pull/74555)
- Block Editor: Prevent browser autocomplete in Navigation link search (https://github.com/WordPress/gutenberg/pull/74305)
- Query Title: Fix incorrect quotation marks with trailing spaces (https://github.com/WordPress/gutenberg/pull/74300)
- Layout: Add allowWrap option to flex layout block support (https://github.com/WordPress/gutenberg/pull/74493)
- Block visibility support: use CSS range syntax for media queries (https://github.com/WordPress/gutenberg/pull/74526)
- Block visibility: add viewport modal and controls UI (https://github.com/WordPress/gutenberg/pull/74249)
- Media Fields: Add readonly author field to media fields package and use in the media modal (https://github.com/WordPress/gutenberg/pull/74484)
- Paragraph block: Stop using named export from block.json (https://github.com/WordPress/gutenberg/pull/74527)
- Block Visibility: Fix block position shift when toggling (https://github.com/WordPress/gutenberg/pull/74535)
- Block Fields: Remove normalization code and tidy up (https://github.com/WordPress/gutenberg/pull/74532)
- Inserter: Prevent block-scope variations insertion in slash inserter (https://github.com/WordPress/gutenberg/pull/74259)
- Fix formatting in block bindings documentation: Corrected links to core sources by adding hyphens (https://github.com/WordPress/gutenberg/pull/74414)
- Theme/UI: Add intro docs to Storybook (https://github.com/WordPress/gutenberg/pull/74551)
- Notes: Enable floating notes in template lock mode (https://github.com/WordPress/gutenberg/pull/74577)
- Editor: Remove hardcoded autosave conditions for templates (https://github.com/WordPress/gutenberg/pull/73781)
- Theme: enable color ramp tests and update snapshots (https://github.com/WordPress/gutenberg/pull/74403)
- `@wordpress/ui` `Button`: tweak disabled styles and rework tokens (https://github.com/WordPress/gutenberg/pull/74470)
- Fully resolve moment-timezone import, improve build optimization (https://github.com/WordPress/gutenberg/pull/74578)
- Update navigation-overlay-close block to be used as server side rendering (https://github.com/WordPress/gutenberg/pull/74579)
- Real-time collaboration: Allow post-locked-modal to be overridden when `collaborative-editing` is enabled (https://github.com/WordPress/gutenberg/pull/72326)
- Menu: Remove animation on submenus (https://github.com/WordPress/gutenberg/pull/74548)
- UI: Remove individual experimental tags from Storybook (https://github.com/WordPress/gutenberg/pull/74582)
- UI: Add dark background for Storybook theme switcher (https://github.com/WordPress/gutenberg/pull/74318)
- updates variant handling to pull files before access to temporary directory is removed (https://github.com/WordPress/gutenberg/pull/73986)
- UI: Add `InputLayout` primitive (https://github.com/WordPress/gutenberg/pull/74313)
- Customize: Preserve CSS cascade for Additional CSS in classic themes (https://github.com/WordPress/gutenberg/pull/74593)
- Update TypeScript base config to use bundler module resolution (https://github.com/WordPress/gutenberg/pull/74560)
- Block Editor: Add autoComplete attribute to prevent browser autocomplete (https://github.com/WordPress/gutenberg/pull/74595)
- Publishing next packages: remove commit hash from version (https://github.com/WordPress/gutenberg/pull/74589)
- Inserter: only show blocks that can be inserted on the page (https://github.com/WordPress/gutenberg/pull/74453)
- Comments Title Block: Fix double quotes in non-English locales (https://github.com/WordPress/gutenberg/pull/74330)
- DataViews stories: add custom layout (https://github.com/WordPress/gutenberg/pull/74605)
- Navigation Overlay: Add default paragraph block (https://github.com/WordPress/gutenberg/pull/74592)
- Components: Fix InputControl label overflow for long translations (https://github.com/WordPress/gutenberg/pull/74301)
- Eslint: Add design token linting (https://github.com/WordPress/gutenberg/pull/74325)
- Update Storybook to v10 with Vite builder (https://github.com/WordPress/gutenberg/pull/74396)
- Navigations within overlays should not increment aria label attributs (https://github.com/WordPress/gutenberg/pull/74469)
- Add template part context to navigation block (https://github.com/WordPress/gutenberg/pull/74614)
- Navigation: When a navigation block has a custom overlay, the submenu colors should not apply to the overlay (https://github.com/WordPress/gutenberg/pull/74544)
- Improve type safety with YMapWrap (https://github.com/WordPress/gutenberg/pull/73948)
- Rename `--fast` build flag and use in Storybook build (https://github.com/WordPress/gutenberg/pull/74552)
- Fix deprecations for Storybook component usage (https://github.com/WordPress/gutenberg/pull/74619)
- Real-time collaboration: Use alternative diff in quill-delta, provide incremental text updates (https://github.com/WordPress/gutenberg/pull/73699)
- Real-time collaboration: Move collaborative editing from experiments to default Gutenberg plugin experience (https://github.com/WordPress/gutenberg/pull/74562)
- Real-time Collaboration: Add Yjs awareness foundation (https://github.com/WordPress/gutenberg/pull/74565)
- Image Block: Fix empty block content tools when multiselecting image blocks (https://github.com/WordPress/gutenberg/pull/74604)
- Content-only: remove `mapping` and `args` in favor of DataForm API (https://github.com/WordPress/gutenberg/pull/74575)
- TypeScript: Convert redux-store types in data package to TS (https://github.com/WordPress/gutenberg/pull/67666)
- Add list view inspector tab for pattern editing (https://github.com/WordPress/gutenberg/pull/74574)
- api-fetch: Add named export to fix TypeScript callable issues (https://github.com/WordPress/gutenberg/pull/74576)
- Fix: Dataview: column header move item in RTL moves in the opposite direction to the arrow (https://github.com/WordPress/gutenberg/pull/74644)
- UI: Add `Input` primitive (https://github.com/WordPress/gutenberg/pull/74615)
- Improve wp-build generated PHP files with proper prefixing and naming (https://github.com/WordPress/gutenberg/pull/74490)
- Navigation Submenu: Show (Invalid) indicator when parent page is deleted (https://github.com/WordPress/gutenberg/pull/74461)
- components: Fix generated TS types referencing unavailable `csstype` (https://github.com/WordPress/gutenberg/pull/74655)
- Real-time collaboration: Refetch entity when it is saved by a peer (https://github.com/WordPress/gutenberg/pull/74637)
- add a white background to the overlay default pattern (https://github.com/WordPress/gutenberg/pull/74659)
- Infrastructure: Convert storybook to a workspace package (https://github.com/WordPress/gutenberg/pull/74640)
- Remove unused dependencies (https://github.com/WordPress/gutenberg/pull/74624)
- Apply only detected changes from the persisted CRDT document (https://github.com/WordPress/gutenberg/pull/74668)
- Enable components manifest for Storybook (https://github.com/WordPress/gutenberg/pull/74626)
- Move ESLint rules specific to `@wordpress/components` to custom rules (https://github.com/WordPress/gutenberg/pull/74611)
- Navigaiton: Refactor SCSS to reduce duplication (https://github.com/WordPress/gutenberg/pull/74666)
- Site Editor: If the route cannot be found treat the canvas mode as view (https://github.com/WordPress/gutenberg/pull/74642)
- `@wordpress/components`: lint and fix `@wordpress/components-no-missing-40px-size-prop` rule (https://github.com/WordPress/gutenberg/pull/74622)
- Block visibility supports: refactor metadata to use nested structure (https://github.com/WordPress/gutenberg/pull/74602)
- Media Editor: Add a simple media editor package and integrate into the editor package (https://github.com/WordPress/gutenberg/pull/74601)
- Embed: Fix Flickr double-padding with responsive wrapper (https://github.com/WordPress/gutenberg/pull/73902)
- Block visibility: render blocks when hidden at all viewports (and other changes) (https://github.com/WordPress/gutenberg/pull/74679)
- Add missing chevron-up-small icon. (https://github.com/WordPress/gutenberg/pull/74607)
- List View: Ensure element exists in document before focusing (https://github.com/WordPress/gutenberg/pull/74613)
- Allow for themes to define the overlay attribute without using a theme slug (https://github.com/WordPress/gutenberg/pull/74119)
- DataViews: Fix insert left and right handling in table layout for RTL languages (https://github.com/WordPress/gutenberg/pull/74681)
- SlotFill: unify registry and fill implementation (https://github.com/WordPress/gutenberg/pull/68056)
- Storybook: Automate sidebar sort order (https://github.com/WordPress/gutenberg/pull/74672)
- Fix: Update function names to include wp_ prefix (https://github.com/WordPress/gutenberg/pull/74688)
- Make custom navigation overlay full width (https://github.com/WordPress/gutenberg/pull/74559)
- Components: Add `@types/react` to dependencies for TypeScript type resolution (https://github.com/WordPress/gutenberg/pull/74692)
- Core backport for Global Styles: Allow arbitrary CSS, protect from KSES mangling (https://github.com/WordPress/gutenberg/pull/74371)
- UI: Add `Select` primitive (https://github.com/WordPress/gutenberg/pull/74661)
- Badge: Use stories for "Choosing intent" doc (https://github.com/WordPress/gutenberg/pull/74675)
- Add `Tooltip` component to `@wordpress/ui` (https://github.com/WordPress/gutenberg/pull/74625)
- Image block: show aspect ratio control for wide and full alignment (https://github.com/WordPress/gutenberg/pull/74519)
- Bump the github-actions group across 1 directory with 3 updates (https://github.com/WordPress/gutenberg/pull/74002)
- Bump mdast-util-to-hast from 13.1.0 to 13.2.1 in /platform-docs (https://github.com/WordPress/gutenberg/pull/73683)
- Updated Minor Typo in Compatibility Rest API File (https://github.com/WordPress/gutenberg/pull/74718)
- Block Editor Provider: Fix conditional useMemo call when media processing experiment is active (https://github.com/WordPress/gutenberg/pull/74680)
- Reset inspector tab selection if the selected tab is no longer present (https://github.com/WordPress/gutenberg/pull/74682)
- Remove react-refresh bundling (https://github.com/WordPress/gutenberg/pull/74721)
- iAPI: Fix and refactor runtime initialization logic (https://github.com/WordPress/gutenberg/pull/71123)
- Comment Edit Link: Migrate to text-align block support (https://github.com/WordPress/gutenberg/pull/74720)
- Update wp-build documentation to describe 'wpPlugin.name' (https://github.com/WordPress/gutenberg/pull/74741)
- Navigation Overlay: insert default pattern on creation (https://github.com/WordPress/gutenberg/pull/74650)
- DataViews: Use regular casing for bulk selection count (https://github.com/WordPress/gutenberg/pull/74573)
- Fix wp-theme dependencies in the build. (https://github.com/WordPress/gutenberg/pull/74743)
- Do not wrap persisted doc applied update in transaction (https://github.com/WordPress/gutenberg/pull/74753)
- Revert "Fixed Media & Text Block - Image not rendered properly on frontend when inside stack (https://github.com/WordPress/gutenberg/pull/68610)" (https://github.com/WordPress/gutenberg/pull/74715)
- Create Block: Simplify blocks-manifest registration (https://github.com/WordPress/gutenberg/pull/74647)
- Pattern Editing: Prevent double-click editing template parts and synced patterns (https://github.com/WordPress/gutenberg/pull/74755)
- Paragraph: Add text column support (https://github.com/WordPress/gutenberg/pull/74656)
- Update overlay control labels (https://github.com/WordPress/gutenberg/pull/74690)
- Comment Date: Add textAlign Support (https://github.com/WordPress/gutenberg/pull/74599)
- Don't show overlay settings for navigation blocks that are inside oth… (https://github.com/WordPress/gutenberg/pull/74408)
- Remove the apiFetch named export (https://github.com/WordPress/gutenberg/pull/74761)
- MediaEdit: Support `custom` validation (https://github.com/WordPress/gutenberg/pull/74704)
- components: Add `displayName` to the anonymous components (https://github.com/WordPress/gutenberg/pull/74716)
- Pattern Overrides: Remove obsolete documentation (https://github.com/WordPress/gutenberg/pull/74749)
- Verse Block: Add new textAlign support (https://github.com/WordPress/gutenberg/pull/74724)
- DataViews: Move filtering logic in field types (https://github.com/WordPress/gutenberg/pull/74733)
- Fix: can't disable textColumns UI (https://github.com/WordPress/gutenberg/pull/74767)
- Navigation: Don't use a nav tag for navigation blocks inside overlays (https://github.com/WordPress/gutenberg/pull/74764)
- Allow grid layout to use theme blockGap values for columns calculation (https://github.com/WordPress/gutenberg/pull/74725)
- Move grid manual mode sync into 7.1 folder (https://github.com/WordPress/gutenberg/pull/74792)
- Show block content for label in List View (https://github.com/WordPress/gutenberg/pull/74794)
- Ensure grid column never exceeds parent's width (https://github.com/WordPress/gutenberg/pull/74795)
- Term List block: Pre-select current term on term archive pages (https://github.com/WordPress/gutenberg/pull/74603)
- Update performance results endpoint to codevitals.run (https://github.com/WordPress/gutenberg/pull/74802)
- Update performance results endpoint to use fetch API for redirect handling (https://github.com/WordPress/gutenberg/pull/74803)
- iAPI: Update deprecation warning for unique ID format (https://github.com/WordPress/gutenberg/pull/74580)
- Cover Block: Enable focal point picker for fixed background (https://github.com/WordPress/gutenberg/pull/74600)
- Blocks: Always trigger borwser console warnings for blocks with apiVersion below 2 (https://github.com/WordPress/gutenberg/pull/74057)
- Fix typo in comment for value change check (https://github.com/WordPress/gutenberg/pull/74730)
- Move useIsDraggingWithin to a shared hook (https://github.com/WordPress/gutenberg/pull/74804)
- Include totals items count in DataView footer (https://github.com/WordPress/gutenberg/pull/73491)
- Storybook: Fix missing props from component stories (https://github.com/WordPress/gutenberg/pull/74807)
- Breadcrumbs :Add example block previews (https://github.com/WordPress/gutenberg/pull/74808)
- Core backport for gutenberg_filter_global_styles_post: Protect from KSES mangling (https://github.com/WordPress/gutenberg/pull/74731)
- Move selectLabelText to shared utility (https://github.com/WordPress/gutenberg/pull/74805)
- Bump node-forge from 1.3.1 to 1.3.3 in /platform-docs (https://github.com/WordPress/gutenberg/pull/74292)
- Fix blockGap styles not working in block style variations (https://github.com/WordPress/gutenberg/pull/74529)
- Comment Reply Link: Migrate to text-align block support (https://github.com/WordPress/gutenberg/pull/74760)
- Try storing global styles in static var in layout render (https://github.com/WordPress/gutenberg/pull/74828)
- List View support: show full block titles (https://github.com/WordPress/gutenberg/pull/74798)
- Pattern Editing: Update template part to use tabs (https://github.com/WordPress/gutenberg/pull/74793)
- Block visibility: create selectors for block visibility in current viewport (device setting or responsive) (https://github.com/WordPress/gutenberg/pull/74517)
- Fix: add border-box sizing for verse block (https://github.com/WordPress/gutenberg/pull/74722)
- Block Visibility: fix failing unit test (https://github.com/WordPress/gutenberg/pull/74840)
- Breadcrumbs: Fix placeholder separator preview (https://github.com/WordPress/gutenberg/pull/74842)
- Dataviews: Fix actions visibility on smaller viewpoints and for lone action with isPrimary as true (https://github.com/WordPress/gutenberg/pull/74836)
- Navigation Overlay: Add sidebar preview (https://github.com/WordPress/gutenberg/pull/74780)
- Show submenu colors but remove the word overlay (https://github.com/WordPress/gutenberg/pull/74818)
- E2e tests: remove editor.switchToLegacyCanvas from multi select and a11y suite (https://github.com/WordPress/gutenberg/pull/74845)
- Enable build-blocks-manifest by default (https://github.com/WordPress/gutenberg/pull/74846)
- Direct drag: fix glitching around scrolling (https://github.com/WordPress/gutenberg/pull/74608)
- Handle deleted navigation overlays (https://github.com/WordPress/gutenberg/pull/74766)
- iAPI Router: Prevent router regions with `data-wp-key` from being recreated on navigation (https://github.com/WordPress/gutenberg/pull/74750)
- iAPI Router: Fix initial router regions with `attachTo` being duplicated after `navigate()` (https://github.com/WordPress/gutenberg/pull/74857)
- DataViews: Adjust table primary media field styles (https://github.com/WordPress/gutenberg/pull/74813)
- Fix: Escape less-than character in HTML attributes to prevent block recovery errors (https://github.com/WordPress/gutenberg/pull/74732)
- DataViews: Update storybook to add more context (https://github.com/WordPress/gutenberg/pull/74819)
- Sync: Refactor ProviderCreator signature to an object (https://github.com/WordPress/gutenberg/pull/74871)
- Real-time Collaboration: Add user and selection information to awareness (https://github.com/WordPress/gutenberg/pull/74728)
- Add custom CSS support for individual block instances (https://github.com/WordPress/gutenberg/pull/73959)
- Style Engine: Bail early when adding a declaration if not passed a string (https://github.com/WordPress/gutenberg/pull/74881)
- Stabilise viewport based block visibility (https://github.com/WordPress/gutenberg/pull/74839)
- Navigation: Add a new option that toggles submenus always open (https://github.com/WordPress/gutenberg/pull/74653)
- Fix: Fit Text not working on calculated line heights. (https://github.com/WordPress/gutenberg/pull/74860)
- Fix: Safari "Edit as HTML" for Fit Text deletes content (https://github.com/WordPress/gutenberg/pull/74864)
- Route: Add notFound to public API and add route validation (https://github.com/WordPress/gutenberg/pull/74867)
- DataForm: add `combobox` control (https://github.com/WordPress/gutenberg/pull/74891)
- Real-time collaboration: Use relative positions in undo stack (https://github.com/WordPress/gutenberg/pull/74878)
- MediaReplaceFlow: Move Reset option to bottom of menu (https://github.com/WordPress/gutenberg/pull/74882)
- Real-time collaboration: Sync collections (https://github.com/WordPress/gutenberg/pull/74665)
- Feat/core tabs restructure (https://github.com/WordPress/gutenberg/pull/74412)
- Inserter: Fix missing onClose prop for Inserter Menu (https://github.com/WordPress/gutenberg/pull/74920)
- Post Excerpt Block: Fixing max limits for generated excerpts (https://github.com/WordPress/gutenberg/pull/74140)
- Post Excerpt Block: Fix excerpt trimming logic to handle whitespace correctly (https://github.com/WordPress/gutenberg/pull/74925)
- e2e: fix flaky tests for settings sidebar (https://github.com/WordPress/gutenberg/pull/74929)
- Comments Title: Copy deprecate from block.json to deprecated.js to avoid legacy attribute usage (https://github.com/WordPress/gutenberg/pull/74924)
- Added Missing Global Documentation (https://github.com/WordPress/gutenberg/pull/74868)
- dataviews: Fix missing dependency - @storybook/addon-docs (https://github.com/WordPress/gutenberg/pull/74935)
- Patterns: restore rename and delete actions for user patterns (https://github.com/WordPress/gutenberg/pull/74927)
- DataViews: Add card form layout validation (https://github.com/WordPress/gutenberg/pull/74547)
- E2e tests: remove switchToLegacyCanvas from inserter drag and drop tests (https://github.com/WordPress/gutenberg/pull/74892)
- Navigation Overlays: Default new blocks to "always" show overlays (https://github.com/WordPress/gutenberg/pull/74890)
- Remove link underline style from default theme.json (https://github.com/WordPress/gutenberg/pull/74901)
- selectBlock: fall back to next block if no previous block is present (https://github.com/WordPress/gutenberg/pull/74938)
- Update: Preserve additional meta properties on client side abilities. (https://github.com/WordPress/gutenberg/pull/73918)
- E2e tests: bump all test blocks to API v3 (https://github.com/WordPress/gutenberg/pull/74941)
- Cover Block: Show current embed URL in dialog (https://github.com/WordPress/gutenberg/pull/74885)
- core-data: Fix missing dependencies (https://github.com/WordPress/gutenberg/pull/74934)
- Build script: Increase memory limit for storybook build process (https://github.com/WordPress/gutenberg/pull/74933)
- Real-time collaboration: Pass non-cleaned (but merged) edits to `SyncManager#update` (https://github.com/WordPress/gutenberg/pull/74912)
- Navigation overlay patterns: overlay with black background (https://github.com/WordPress/gutenberg/pull/74847)
- Navigation overlay patterns: overlay with accent background (https://github.com/WordPress/gutenberg/pull/74849)
- Shortcode: Fix non-string attribute values being silently dropped (https://github.com/WordPress/gutenberg/pull/74949)
- core-data: Fix yjs import and missing dependency (https://github.com/WordPress/gutenberg/pull/74950)
- Icons: Add a manifest containing icons metadata (https://github.com/WordPress/gutenberg/pull/74943)
- Babel Preset Default: Remove legacy plugins (https://github.com/WordPress/gutenberg/pull/74916)
- Real-time collaboration: Fix undo tests (https://github.com/WordPress/gutenberg/pull/74955)
- BlockBreadcrumb: Show custom block name (https://github.com/WordPress/gutenberg/pull/73690)
- Fix: Stretchy text issue when nested on flex containers. (https://github.com/WordPress/gutenberg/pull/73652)
- iAPI: Don't use deprecated `data-wp-on-async` in docs (https://github.com/WordPress/gutenberg/pull/72591)
- Comments Title: Migrate to text-align block support (https://github.com/WordPress/gutenberg/pull/74945)
- iAPI Docs: add config to state/context guide (https://github.com/WordPress/gutenberg/pull/71355)
- Add content element guidelines for fields in DataForm (https://github.com/WordPress/gutenberg/pull/74817)
- Navigation overlay patterns: centered navigation with info (https://github.com/WordPress/gutenberg/pull/74862)
- In-editor revisions (initial changes, no diffing) (https://github.com/WordPress/gutenberg/pull/74771)
- Docs: Add missing @global documentation in REST assets controller (https://github.com/WordPress/gutenberg/pull/74973)
- Docs: Add missing @return tags to experimental functions (https://github.com/WordPress/gutenberg/pull/74960)
- Docs: Replace @see with @link for URL references (https://github.com/WordPress/gutenberg/pull/74961)
- Gallery block: Image Caption Blur Issue Fix (https://github.com/WordPress/gutenberg/pull/74063)
- Inserter Component: Improving Stories (https://github.com/WordPress/gutenberg/pull/74922)
- Block Visibility: fix flaky e2e test (https://github.com/WordPress/gutenberg/pull/74931)
- Media Modal Experiment: Add a simple notices-based uploading state (https://github.com/WordPress/gutenberg/pull/74965)
- Docs: Standardize use of @link tag for URL references in lib directory (https://github.com/WordPress/gutenberg/pull/74984)
- Pattern editing: stabilize and remove the experiment flag (https://github.com/WordPress/gutenberg/pull/74843)
- Remove comment about non-existing property (https://github.com/WordPress/gutenberg/pull/75003)
- Video block: Fix video URLs pasted without "https://" show broken media (https://github.com/WordPress/gutenberg/pull/74964)
- Fix flaky 'Revisions' e2e test (https://github.com/WordPress/gutenberg/pull/75002)
- Build: deduplicate and minify embedded styles (https://github.com/WordPress/gutenberg/pull/74651)
- Navigation overlay patterns: centered navigation (https://github.com/WordPress/gutenberg/pull/74861)
- wp-env: Add experimental WordPress Playground runtime support (https://github.com/WordPress/gutenberg/pull/74609)
- Consolidate border tokens (https://github.com/WordPress/gutenberg/pull/74617)
- Add the `has-custom-css` class name to the editor and dynamic blocks. (https://github.com/WordPress/gutenberg/pull/74969)
- Real-time collaboration: Add default HTTP polling sync provider (https://github.com/WordPress/gutenberg/pull/74564)
- eslint-plugin: Add "never" option for dependency-group rule (https://github.com/WordPress/gutenberg/pull/74990)
- Design System: Add guidelines for destructive actions UX (https://github.com/WordPress/gutenberg/pull/74778)
- DataViews: Show validation errors when a panel closes (https://github.com/WordPress/gutenberg/pull/74995)
- DataForm: Sync React-level validation to native inputs on date fields. (https://github.com/WordPress/gutenberg/pull/74994)
- Pattern Editing: Hide List View child blocks in Content panel (https://github.com/WordPress/gutenberg/pull/75007)
- Infrastructure: Add storybook to tsconfig project references (https://github.com/WordPress/gutenberg/pull/74887)
- Real-time Collaboration: Add hook for accessing awareness data (https://github.com/WordPress/gutenberg/pull/75009)
- Hide grid visualiser if the grid block is hidden (https://github.com/WordPress/gutenberg/pull/74963)
- Add unit test for gap in block style variations fix (https://github.com/WordPress/gutenberg/pull/75038)
- Post Excerpt: Disable HTML element insertion (https://github.com/WordPress/gutenberg/pull/74928)
- Deprecate 'Post author' block (https://github.com/WordPress/gutenberg/pull/55352)
- Fix emdashes in HTML anchor description (https://github.com/WordPress/gutenberg/pull/75043)
- In-editor revisions: preserve client IDs to prevent flashes/remounts (https://github.com/WordPress/gutenberg/pull/75028)
- Playlist block (https://github.com/WordPress/gutenberg/pull/50664)
- Media & Text: Respect image_default_link_type option (https://github.com/WordPress/gutenberg/pull/74295)
- Author Biography: Migrate to text-align block support (https://github.com/WordPress/gutenberg/pull/74997)
- Dataform: Adds validation support to the DataForm details layout (https://github.com/WordPress/gutenberg/pull/74996)
- Docs: Clarifies cherry-picking permissions and improves minor release workflow documentation (https://github.com/WordPress/gutenberg/pull/75034)
- Routing Boot Package: Remove left border from stage and inspector surfaces (https://github.com/WordPress/gutenberg/pull/75036)
- Replace install-path command with status command in wp-env (https://github.com/WordPress/gutenberg/pull/75020)
- Remove temp files (https://github.com/WordPress/gutenberg/pull/75061)
- Update and unpin sync package dependencies (https://github.com/WordPress/gutenberg/pull/75059)
- Navigation Overlay: Add Create Overlay button (https://github.com/WordPress/gutenberg/pull/74971)
- Try hiding parent grid cells when child grid is selected. (https://github.com/WordPress/gutenberg/pull/75078)
- Notes: Use preferences store when applicable (https://github.com/WordPress/gutenberg/pull/75008)
- Notes: Don't trigger reflow for pinned sidebar (https://github.com/WordPress/gutenberg/pull/75010)
- Resize meta box pane without `ResizableBox` (https://github.com/WordPress/gutenberg/pull/66735)
- `@wordpress/ui`: add `IconButton` (https://github.com/WordPress/gutenberg/pull/74697)
- Private APIs: remove duplicate `@wordpress/ui` entry (https://github.com/WordPress/gutenberg/pull/75051)
- DataViews: Fix title truncation in `list` layout (https://github.com/WordPress/gutenberg/pull/75063)
- Custom CSS support: Add attributes for dynamic blocks. (https://github.com/WordPress/gutenberg/pull/75052)
- DataViews: Fix fields async validation (https://github.com/WordPress/gutenberg/pull/74948)
- Unified view persistence: Share one persisted view across all tabs (https://github.com/WordPress/gutenberg/pull/74970)
- SVG Icon registration API (https://github.com/WordPress/gutenberg/pull/72215)
- Navigation: Use :where on the :not(.disable-default-overlay) selector so that the scope doesn't change. (https://github.com/WordPress/gutenberg/pull/75090)
- wp-env: Fix MySQL startup race condition causing database connection errors (https://github.com/WordPress/gutenberg/pull/75046)
- RichText: fix white space collapsing arround formatting (https://github.com/WordPress/gutenberg/pull/74820)
- Docs: Add missing @global documentation in rtl.php and meta-box.php (https://github.com/WordPress/gutenberg/pull/75082)
- Blocks: Try prepending 'https' to URLs without protocol (https://github.com/WordPress/gutenberg/pull/75005)
- wp-env: Add cleanup command and force flag (https://github.com/WordPress/gutenberg/pull/75045)
- DataViews: Add `title` attribute in `grid` item title field (https://github.com/WordPress/gutenberg/pull/75085)
- wp-env: Fix mixed runtime detection issues (https://github.com/WordPress/gutenberg/pull/75057)
- `@wordpress/ui`: add `Tabs` (https://github.com/WordPress/gutenberg/pull/74652)
- Run generate-worker-placeholders script in dev (https://github.com/WordPress/gutenberg/pull/75104)
- Docs: Add missing @global documentation in block library (https://github.com/WordPress/gutenberg/pull/75004)
- Site Editor: Prevent welcome guide from appearing during loading (https://github.com/WordPress/gutenberg/pull/75102)
- Media Fields: Fix filename field truncation (https://github.com/WordPress/gutenberg/pull/75091)
- Block Supports: Add Line Indent support using enum setting (https://github.com/WordPress/gutenberg/pull/74889)
- useBlockVisibility: consolidate useMemo calls to the output object (https://github.com/WordPress/gutenberg/pull/75120)
- Post Author Name: Migrate to text-align block support (https://github.com/WordPress/gutenberg/pull/75109)
- Restore deprecated Pullquote Block (https://github.com/WordPress/gutenberg/pull/75122)
- useBlockVisibility: Remove the last 'useMemo' call (https://github.com/WordPress/gutenberg/pull/75125)
- remove horizontal scroll (https://github.com/WordPress/gutenberg/pull/75086)
- Refactor activeFilters to activeViewOverrides with date sort for User tab (https://github.com/WordPress/gutenberg/pull/75094)
- Post Content Block: Improve removal confirmation modal (https://github.com/WordPress/gutenberg/pull/75001)
- DataViews: Consistent rendering of selection checkbox and actions in `grid` layout (https://github.com/WordPress/gutenberg/pull/75056)
- Pullquote: Fix deprecated block validation when anchor/id attribute is present (https://github.com/WordPress/gutenberg/pull/75132)
- Add URL validation in LinkControl using ValidatedInputControl (https://github.com/WordPress/gutenberg/pull/73486)
- Components: remove "text-wrap: balance" fallback from Text (https://github.com/WordPress/gutenberg/pull/75089)
- Image Block: Handle image URLs without protocol (https://github.com/WordPress/gutenberg/pull/75135)
- fix the color of the overlay to fix contrast issues on dark themes (https://github.com/WordPress/gutenberg/pull/74979)
- Admin UI: apply 'text-wrap: pretty' to Page (https://github.com/WordPress/gutenberg/pull/74907)
- Fix dev build for fresh checkouts (or with build/scripts/block-library missing) (https://github.com/WordPress/gutenberg/pull/75108)
- Calculate viewport based on iframe size in resizable editor. (https://github.com/WordPress/gutenberg/pull/75156)
- Media Modal Experiment: Remove default value for allowedTypes so that the file block can accept all types (https://github.com/WordPress/gutenberg/pull/75159)
- wp-env Playground: Support zip archive themes (https://github.com/WordPress/gutenberg/pull/75155)
- Block Editor: Allow stable block IDs in block editor store (https://github.com/WordPress/gutenberg/pull/74687)
- Code Quality: Remove deprecated __nextHasNoMarginBottom prop (https://github.com/WordPress/gutenberg/pull/75139)
- Migrate textAlign attributes from the Author block to block support when migrating. (https://github.com/WordPress/gutenberg/pull/75153)
- Scripts: Fix contributor guide link in README (https://github.com/WordPress/gutenberg/pull/75161)
- ToggleGroupControl: add visual emphasis to selected item (https://github.com/WordPress/gutenberg/pull/75138)
- Image block: Add missing space between sentences (https://github.com/WordPress/gutenberg/pull/75142)
- DOM: exclude inert elements from focus.focusable (https://github.com/WordPress/gutenberg/pull/75172)
- Writing flow: fix Cmd+A from empty RichText (https://github.com/WordPress/gutenberg/pull/75175)
- Theme: Update dimension tokens (https://github.com/WordPress/gutenberg/pull/75054)
- Build: Add vendorScripts config to build packages from node_modules (https://github.com/WordPress/gutenberg/pull/74343)
- ui/`Button`: add min width (https://github.com/WordPress/gutenberg/pull/75133)
- Navigation: Consolidate SVG rendering functions to a shared helper (https://github.com/WordPress/gutenberg/pull/74853)
- RangeControl: support forced-colors mode (https://github.com/WordPress/gutenberg/pull/75165)
- Restrict base-ui imports outside of UI component packages (https://github.com/WordPress/gutenberg/pull/75143)
- Remove the React Native test status badges. (https://github.com/WordPress/gutenberg/pull/74674)
- DataViews: externalize theme stylesheet (https://github.com/WordPress/gutenberg/pull/75182)
- Media Modal Experiment: Update preview size to be a little smaller (https://github.com/WordPress/gutenberg/pull/75191)
- Env: Remove non-functional `WP_ENV_MULTISITE` config (https://github.com/WordPress/gutenberg/pull/72567)
- Cover block: Force LTR direction for the background URL input field (https://github.com/WordPress/gutenberg/pull/75169)
- Tabs block: Polish (https://github.com/WordPress/gutenberg/pull/75128)
- Real-time Collaboration: Add collaborators presence UI (https://github.com/WordPress/gutenberg/pull/75065)
- DataForm: mark fields as required or optional automatically (https://github.com/WordPress/gutenberg/pull/74430)
- ToggleControl: pass full props to the input element (https://github.com/WordPress/gutenberg/pull/74956)
- Media & Text: Fix RTLCSS control directives appearing in production CSS (https://github.com/WordPress/gutenberg/pull/73205)
- @wordpress/ui: use semantic dimension tokens (https://github.com/WordPress/gutenberg/pull/74557)
- Fix duplicate content when navigation overlay is open and nav has non-link inner blocks (https://github.com/WordPress/gutenberg/pull/75180)
- Group fix example text-align attributes (https://github.com/WordPress/gutenberg/pull/75200)
- Editor: Introduce new selectedNote editor state (https://github.com/WordPress/gutenberg/pull/75177)
- Block Support: Allow serialization skipping for ariaLabel (https://github.com/WordPress/gutenberg/pull/75192)
git-svn-id: https://develop.svn.wordpress.org/trunk@61605 602fd350-edb4-49c9-b593-d223f7449a82
---
package.json | 2 +-
src/wp-admin/includes/update-core.php | 4 -
.../class-wp-rest-posts-controller.php | 4 +-
.../data/blocks/do-blocks-expected.html | 4 +-
.../blocks/fixtures/core__column.server.html | 12 +--
.../blocks/fixtures/core__columns.server.html | 32 +++----
.../core__columns__deprecated.server.html | 24 ++---
.../fixtures/core__media-text.server.html | 2 +-
...media-text__image-alt-no-align.server.html | 2 +-
...dia-text__is-stacked-on-mobile.server.html | 2 +-
...text__media-right-custom-width.server.html | 2 +-
.../core__media-text__video.server.html | 2 +-
.../core__paragraph__align-right.server.html | 2 +-
.../includes/unregister-blocks-hooks.php | 89 +++----------------
.../tests/block-bindings/postMetaSource.php | 18 ++--
tests/phpunit/tests/block-bindings/render.php | 10 +--
tests/phpunit/tests/blocks/render.php | 3 +
tests/phpunit/tests/blocks/renderReusable.php | 4 +-
.../tests/formatting/excerptRemoveBlocks.php | 8 +-
tests/phpunit/tests/post/output.php | 8 +-
.../rest-api/rest-widgets-controller.php | 2 +-
tools/gutenberg/copy-gutenberg-build.js | 19 ++++
22 files changed, 104 insertions(+), 151 deletions(-)
diff --git a/package.json b/package.json
index 9ff5ddd3dae97..66c8e0b5b23af 100644
--- a/package.json
+++ b/package.json
@@ -7,7 +7,7 @@
"url": "https://develop.svn.wordpress.org/trunk"
},
"gutenberg": {
- "ref": "7bf80ea84eb8b62eceb1bb3fe82e42163673ca79"
+ "ref": "59a08c5496008ca88f4b6b86f38838c3612d88c8"
},
"engines": {
"node": ">=20.10.0",
diff --git a/src/wp-admin/includes/update-core.php b/src/wp-admin/includes/update-core.php
index 2f8045e8d193f..47cbc9e16fb64 100644
--- a/src/wp-admin/includes/update-core.php
+++ b/src/wp-admin/includes/update-core.php
@@ -840,10 +840,6 @@
'wp-includes/js/dist/fields.min.js',
'wp-includes/js/dist/fields.js',
// 6.9
- 'wp-includes/blocks/post-author/editor.css',
- 'wp-includes/blocks/post-author/editor.min.css',
- 'wp-includes/blocks/post-author/editor-rtl.css',
- 'wp-includes/blocks/post-author/editor-rtl.min.css',
'wp-includes/SimplePie/src/Decode',
'wp-includes/SimplePie/src/Core.php',
);
diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
index 14afb8c2eeddf..a69ce9fa95454 100644
--- a/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
+++ b/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
@@ -1988,7 +1988,7 @@ public function prepare_item_for_response( $item, $request ) {
add_filter(
'excerpt_length',
$override_excerpt_length,
- 20
+ PHP_INT_MAX
);
}
@@ -2008,7 +2008,7 @@ public function prepare_item_for_response( $item, $request ) {
remove_filter(
'excerpt_length',
$override_excerpt_length,
- 20
+ PHP_INT_MAX
);
}
}
diff --git a/tests/phpunit/data/blocks/do-blocks-expected.html b/tests/phpunit/data/blocks/do-blocks-expected.html
index f413182051334..f46ab0b7628c5 100644
--- a/tests/phpunit/data/blocks/do-blocks-expected.html
+++ b/tests/phpunit/data/blocks/do-blocks-expected.html
@@ -3,7 +3,7 @@
-First Gutenberg Paragraph
+First Gutenberg Paragraph
Second Auto Paragraph
@@ -11,7 +11,7 @@
-Third Gutenberg Paragraph
+Third Gutenberg Paragraph
Third Auto Paragraph
diff --git a/tests/phpunit/data/blocks/fixtures/core__column.server.html b/tests/phpunit/data/blocks/fixtures/core__column.server.html
index d0b6ab4016d91..2487ea0f93c9b 100644
--- a/tests/phpunit/data/blocks/fixtures/core__column.server.html
+++ b/tests/phpunit/data/blocks/fixtures/core__column.server.html
@@ -1,10 +1,10 @@
-
-
Column One, Paragraph One
-
-
-
Column One, Paragraph Two
-
+
+
Column One, Paragraph One
+
+
+
Column One, Paragraph Two
+
diff --git a/tests/phpunit/data/blocks/fixtures/core__columns.server.html b/tests/phpunit/data/blocks/fixtures/core__columns.server.html
index 5b5faf4f3d7a4..fa39f71320056 100644
--- a/tests/phpunit/data/blocks/fixtures/core__columns.server.html
+++ b/tests/phpunit/data/blocks/fixtures/core__columns.server.html
@@ -1,24 +1,24 @@
-
+
-
-
Column One, Paragraph One
-
-
-
Column One, Paragraph Two
-
+
+
Column One, Paragraph One
+
+
+
Column One, Paragraph Two
+
-
-
+
+
-
-
Column Two, Paragraph One
-
-
-
Column Three, Paragraph One
-
+
+
Column Two, Paragraph One
+
+
+
Column Three, Paragraph One
+
-
+
diff --git a/tests/phpunit/data/blocks/fixtures/core__columns__deprecated.server.html b/tests/phpunit/data/blocks/fixtures/core__columns__deprecated.server.html
index b19349744dfbc..af37434febcf8 100644
--- a/tests/phpunit/data/blocks/fixtures/core__columns__deprecated.server.html
+++ b/tests/phpunit/data/blocks/fixtures/core__columns__deprecated.server.html
@@ -1,16 +1,16 @@
-
-
Column One, Paragraph One
-
-
-
Column One, Paragraph Two
-
-
-
Column Two, Paragraph One
-
-
-
Column Three, Paragraph One
-
+
+
Column One, Paragraph One
+
+
+
Column One, Paragraph Two
+
+
+
Column Two, Paragraph One
+
+
+
Column Three, Paragraph One
+
diff --git a/tests/phpunit/data/blocks/fixtures/core__media-text.server.html b/tests/phpunit/data/blocks/fixtures/core__media-text.server.html
index e472aeb90e182..9093acb972b23 100644
--- a/tests/phpunit/data/blocks/fixtures/core__media-text.server.html
+++ b/tests/phpunit/data/blocks/fixtures/core__media-text.server.html
@@ -5,7 +5,7 @@
-
My Content
+
My Content
diff --git a/tests/phpunit/data/blocks/fixtures/core__media-text__image-alt-no-align.server.html b/tests/phpunit/data/blocks/fixtures/core__media-text__image-alt-no-align.server.html
index c25f5431b6809..15d5feec2b849 100644
--- a/tests/phpunit/data/blocks/fixtures/core__media-text__image-alt-no-align.server.html
+++ b/tests/phpunit/data/blocks/fixtures/core__media-text__image-alt-no-align.server.html
@@ -5,7 +5,7 @@
diff --git a/tests/phpunit/data/blocks/fixtures/core__media-text__is-stacked-on-mobile.server.html b/tests/phpunit/data/blocks/fixtures/core__media-text__is-stacked-on-mobile.server.html
index 5a1c3993f54c9..a8ddd142e6c00 100644
--- a/tests/phpunit/data/blocks/fixtures/core__media-text__is-stacked-on-mobile.server.html
+++ b/tests/phpunit/data/blocks/fixtures/core__media-text__is-stacked-on-mobile.server.html
@@ -5,7 +5,7 @@
-
My Content
+
My Content
diff --git a/tests/phpunit/data/blocks/fixtures/core__media-text__media-right-custom-width.server.html b/tests/phpunit/data/blocks/fixtures/core__media-text__media-right-custom-width.server.html
index 41edc3e02ebb8..2c2cbe3da310d 100644
--- a/tests/phpunit/data/blocks/fixtures/core__media-text__media-right-custom-width.server.html
+++ b/tests/phpunit/data/blocks/fixtures/core__media-text__media-right-custom-width.server.html
@@ -5,7 +5,7 @@
diff --git a/tests/phpunit/data/blocks/fixtures/core__media-text__video.server.html b/tests/phpunit/data/blocks/fixtures/core__media-text__video.server.html
index 88e9393dd75f2..4328c16b367a0 100644
--- a/tests/phpunit/data/blocks/fixtures/core__media-text__video.server.html
+++ b/tests/phpunit/data/blocks/fixtures/core__media-text__video.server.html
@@ -5,7 +5,7 @@
-
My Content
+
My Content
diff --git a/tests/phpunit/data/blocks/fixtures/core__paragraph__align-right.server.html b/tests/phpunit/data/blocks/fixtures/core__paragraph__align-right.server.html
index 1db164ca1fb5b..4c6b5d6ffad0a 100644
--- a/tests/phpunit/data/blocks/fixtures/core__paragraph__align-right.server.html
+++ b/tests/phpunit/data/blocks/fixtures/core__paragraph__align-right.server.html
@@ -1,3 +1,3 @@
-... like this one, which is separate from the above and right aligned.
+... like this one, which is separate from the above and right aligned.
diff --git a/tests/phpunit/includes/unregister-blocks-hooks.php b/tests/phpunit/includes/unregister-blocks-hooks.php
index b67936a103c81..116b4191766bb 100644
--- a/tests/phpunit/includes/unregister-blocks-hooks.php
+++ b/tests/phpunit/includes/unregister-blocks-hooks.php
@@ -1,79 +1,14 @@
get_modified_post_content( 'Fallback value
' );
$this->assertSame(
- 'Custom field value
',
+ 'Custom field value
',
$content,
'The post content should show the value of the custom field . '
);
@@ -123,7 +123,7 @@ public function test_custom_field_value_is_not_shown_in_password_protected_posts
remove_filter( 'post_password_required', '__return_true' );
$this->assertSame(
- 'Fallback value
',
+ 'Fallback value
',
$content,
'The post content should show the fallback value instead of the custom field value.'
);
@@ -153,7 +153,7 @@ public function test_custom_field_value_is_not_shown_in_non_viewable_posts() {
remove_filter( 'is_post_status_viewable', '__return_false' );
$this->assertSame(
- 'Fallback value
',
+ 'Fallback value
',
$content,
'The post content should show the fallback value instead of the custom field value.'
);
@@ -168,7 +168,7 @@ public function test_binding_to_non_existing_meta_key() {
$content = $this->get_modified_post_content( 'Fallback value
' );
$this->assertSame(
- 'Fallback value
',
+ 'Fallback value
',
$content,
'The post content should show the fallback value.'
);
@@ -183,7 +183,7 @@ public function test_binding_without_key_renders_the_fallback() {
$content = $this->get_modified_post_content( 'Fallback value
' );
$this->assertSame(
- 'Fallback value
',
+ 'Fallback value
',
$content,
'The post content should show the fallback value.'
);
@@ -209,7 +209,7 @@ public function test_protected_field_value_is_not_shown() {
$content = $this->get_modified_post_content( 'Fallback value
' );
$this->assertSame(
- 'Fallback value
',
+ 'Fallback value
',
$content,
'The post content should show the fallback value instead of the protected value.'
);
@@ -235,7 +235,7 @@ public function test_custom_field_not_exposed_in_rest_api_is_not_shown() {
$content = $this->get_modified_post_content( 'Fallback value
' );
$this->assertSame(
- 'Fallback value
',
+ 'Fallback value
',
$content,
'The post content should show the fallback value instead of the protected value.'
);
@@ -261,7 +261,7 @@ public function test_custom_field_with_unsafe_html_is_sanitized() {
$content = $this->get_modified_post_content( 'Fallback value
' );
$this->assertSame(
- 'alert(“Unsafe HTML”)
',
+ 'alert(“Unsafe HTML”)
',
$content,
'The post content should not include the script tag.'
);
@@ -298,7 +298,7 @@ public function test_filter_block_bindings_source_value() {
remove_filter( 'block_bindings_source_value', $filter_value );
$this->assertSame(
- 'Filtered value: tests_filter_field
',
+ 'Filtered value: tests_filter_field
',
$content,
'The post content should show the filtered value.'
);
diff --git a/tests/phpunit/tests/block-bindings/render.php b/tests/phpunit/tests/block-bindings/render.php
index fa8178cbd39b2..77b0975105dc5 100644
--- a/tests/phpunit/tests/block-bindings/render.php
+++ b/tests/phpunit/tests/block-bindings/render.php
@@ -90,7 +90,7 @@ public function data_update_block_with_value_from_source() {
HTML
,
- 'test source value
',
+ 'test source value
',
),
'button block' => array(
'text',
@@ -179,19 +179,19 @@ function ( $source_args, $block_instance, $attribute_name ) {
$value = $source_args['key'];
return "The attribute name is '$attribute_name' and its binding has argument 'key' with value '$value'.";
},
- "The attribute name is 'content' and its binding has argument 'key' with value 'test'.
",
+ "The attribute name is 'content' and its binding has argument 'key' with value 'test'.
",
),
'unsafe HTML should be sanitized' => array(
function () {
return '';
},
- 'alert("Unsafe HTML")
',
+ 'alert("Unsafe HTML")
',
),
'symbols and numbers should be rendered correctly' => array(
function () {
return '$12.50';
},
- '$12.50
',
+ '$12.50
',
),
);
}
@@ -418,7 +418,7 @@ public function test_filter_block_bindings_source_value() {
remove_filter( 'block_bindings_source_value', $filter_value );
$this->assertSame(
- 'Filtered value: test_arg. Block instance: core/paragraph. Attribute name: content.
',
+ 'Filtered value: test_arg. Block instance: core/paragraph. Attribute name: content.
',
trim( $result ),
'The block content should show the filtered value.'
);
diff --git a/tests/phpunit/tests/blocks/render.php b/tests/phpunit/tests/blocks/render.php
index 84b2382a4affe..7b20dac147601 100644
--- a/tests/phpunit/tests/blocks/render.php
+++ b/tests/phpunit/tests/blocks/render.php
@@ -75,6 +75,9 @@ public function test_the_content() {
// Block rendering add some extra blank lines, but we're not worried about them.
$block_filtered_content = preg_replace( "/\n{2,}/", "\n", $block_filtered_content );
+ // Paragraph blocks now add a class, strip it for comparison with classic content.
+ $block_filtered_content = str_replace( ' class="wp-block-paragraph"', '', $block_filtered_content );
+
remove_shortcode( 'someshortcode' );
$this->assertSame( trim( $classic_filtered_content ), trim( $block_filtered_content ) );
diff --git a/tests/phpunit/tests/blocks/renderReusable.php b/tests/phpunit/tests/blocks/renderReusable.php
index 0a88818394780..f38ae41a41173 100644
--- a/tests/phpunit/tests/blocks/renderReusable.php
+++ b/tests/phpunit/tests/blocks/renderReusable.php
@@ -83,7 +83,7 @@ public function test_render() {
);
$block = new WP_Block( $parsed_block );
$output = $block->render();
- $this->assertSame( 'Hello world!
', $output );
+ $this->assertSame( 'Hello world!
', $output );
}
/**
@@ -99,7 +99,7 @@ public function test_render_subsequent() {
$block = new WP_Block( $parsed_block );
$output = $block->render();
$output .= $block->render();
- $this->assertSame( 'Hello world!
Hello world!
', $output );
+ $this->assertSame( 'Hello world!
Hello world!
', $output );
}
public function test_ref_empty() {
diff --git a/tests/phpunit/tests/formatting/excerptRemoveBlocks.php b/tests/phpunit/tests/formatting/excerptRemoveBlocks.php
index 1f07596903fbf..2097c35bbf5b8 100644
--- a/tests/phpunit/tests/formatting/excerptRemoveBlocks.php
+++ b/tests/phpunit/tests/formatting/excerptRemoveBlocks.php
@@ -12,7 +12,7 @@ class Tests_Formatting_ExcerptRemoveBlocks extends WP_UnitTestCase {
public $content = '
-paragraph
+paragraph
@@ -25,7 +25,7 @@ class Tests_Formatting_ExcerptRemoveBlocks extends WP_UnitTestCase {
- paragraph inside column
+ paragraph inside column
@@ -35,12 +35,12 @@ class Tests_Formatting_ExcerptRemoveBlocks extends WP_UnitTestCase {
public $filtered_content = '
-paragraph
+paragraph
- paragraph inside column
+ paragraph inside column
';
diff --git a/tests/phpunit/tests/post/output.php b/tests/phpunit/tests/post/output.php
index a08f7524eefab..c1d04303161ab 100644
--- a/tests/phpunit/tests/post/output.php
+++ b/tests/phpunit/tests/post/output.php
@@ -202,13 +202,13 @@ public function test_the_content_should_handle_more_block_on_singular() {
$expected_without_teaser = <<
-Second block.
+Second block.
EOF;
$expected_with_teaser = <<Teaser part.
+Teaser part.
-Second block.
+Second block.
EOF;
$this->go_to( get_permalink( $post_id ) );
@@ -253,7 +253,7 @@ public function test_the_content_should_handle_more_block_when_noteaser_on_singu
$expected = <<
-Second block.
+Second block.
EOF;
$this->go_to( get_permalink( $post_id ) );
diff --git a/tests/phpunit/tests/rest-api/rest-widgets-controller.php b/tests/phpunit/tests/rest-api/rest-widgets-controller.php
index 246ad3b61eb09..27a58eb638f9c 100644
--- a/tests/phpunit/tests/rest-api/rest-widgets-controller.php
+++ b/tests/phpunit/tests/rest-api/rest-widgets-controller.php
@@ -406,7 +406,7 @@ public function test_get_items() {
'id' => 'block-1',
'id_base' => 'block',
'sidebar' => 'sidebar-1',
- 'rendered' => 'Block test
',
+ 'rendered' => 'Block test
',
),
array(
'id' => 'rss-1',
diff --git a/tools/gutenberg/copy-gutenberg-build.js b/tools/gutenberg/copy-gutenberg-build.js
index f123d3776617a..e5332f806f74a 100644
--- a/tools/gutenberg/copy-gutenberg-build.js
+++ b/tools/gutenberg/copy-gutenberg-build.js
@@ -259,6 +259,25 @@ function copyBlockAssets( config ) {
const content = fs.readFileSync( blockPhpSrc, 'utf8' );
fs.writeFileSync( phpDest, content );
}
+
+ // 4. Copy PHP subdirectories from packages (e.g., shared/helpers.php)
+ const blockPhpDir = path.join( phpSrc, blockName );
+ if ( fs.existsSync( blockPhpDir ) ) {
+ const rootIndex = path.join( blockPhpDir, 'index.php' );
+ fs.cpSync( blockPhpDir, blockDest, {
+ recursive: true,
+ filter: function hasPhpFiles( src ) {
+ const stat = fs.statSync( src );
+ if ( stat.isDirectory() ) {
+ return fs.readdirSync( src, { withFileTypes: true } ).some(
+ ( entry ) => hasPhpFiles( path.join( src, entry.name ) )
+ );
+ }
+ // Copy PHP files, but skip root index.php (handled by step 3)
+ return src.endsWith( '.php' ) && src !== rootIndex;
+ },
+ } );
+ }
}
console.log(
From 9d9a0f11106d80507e4d4c95864ee507b5ba3083 Mon Sep 17 00:00:00 2001
From: Weston Ruter
Date: Tue, 10 Feb 2026 00:57:51 +0000
Subject: [PATCH 011/145] Site Health: Account for missing or slashed
`$_SERVER` data in `WP_Debug_Data`.
Developed in https://github.com/WordPress/wordpress-develop/pull/10870
Follow-up to [56056], [45156], [44986]
Props vishalkakadiya, sabernhardt, peterwilsoncc, mukesh27, westonruter.
Fixes #64599.
git-svn-id: https://develop.svn.wordpress.org/trunk@61606 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-admin/includes/class-wp-debug-data.php | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/wp-admin/includes/class-wp-debug-data.php b/src/wp-admin/includes/class-wp-debug-data.php
index aa0f3eb10ce45..e7e90622dca12 100644
--- a/src/wp-admin/includes/class-wp-debug-data.php
+++ b/src/wp-admin/includes/class-wp-debug-data.php
@@ -373,8 +373,8 @@ private static function get_wp_server(): array {
);
$fields['httpd_software'] = array(
'label' => __( 'Web server' ),
- 'value' => $_SERVER['SERVER_SOFTWARE'] ?? __( 'Unable to determine what web server software is used' ),
- 'debug' => $_SERVER['SERVER_SOFTWARE'] ?? 'unknown',
+ 'value' => ! empty( $_SERVER['SERVER_SOFTWARE'] ) ? wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) : __( 'Unable to determine what web server software is used' ),
+ 'debug' => ! empty( $_SERVER['SERVER_SOFTWARE'] ) ? wp_unslash( $_SERVER['SERVER_SOFTWARE'] ) : 'unknown',
);
$fields['php_version'] = array(
'label' => __( 'PHP version' ),
@@ -545,7 +545,7 @@ private static function get_wp_server(): array {
);
$fields['server-time'] = array(
'label' => __( 'Current Server time' ),
- 'value' => wp_date( 'c', $_SERVER['REQUEST_TIME'] ),
+ 'value' => isset( $_SERVER['REQUEST_TIME'] ) ? wp_date( 'c', (int) $_SERVER['REQUEST_TIME'] ) : __( 'Unable to determine server time' ),
);
return array(
From e9f34bd1c1b8aa8e6aea904d904ceac43ae3146a Mon Sep 17 00:00:00 2001
From: Ben Dwyer
Date: Tue, 10 Feb 2026 15:19:36 +0000
Subject: [PATCH 012/145] Editor: Add support for pseudo elements for the block
and its variations on theme.json.
Adds support for pseudo elements on the core/button block for ( ':hover', ':focus', ':focus-visible', ':active' ) at the theme.json level. This is also allowing the block's variations to control the same pseudo elements, so now we can style hover for the outline variation too.
Example usage:
{{{
"styles": {
"blocks": {
"core/button": {
"color": {
"background": "blue"
},
":hover": {
"color": {
"background": "green"
}
},
":focus": {
"color": {
"background": "purple"
}
},
"variations": {
"outline": {
":hover": {
"color": {
"background": "pink"
}
}
}
}
}
}
}
}}}
Reviewed by palak678, getdave, MaggieCabrera.
Props MaggieCabrera, scruffian, palak678. joedolson, getdave, mikachan.
Fixes #64263.
git-svn-id: https://develop.svn.wordpress.org/trunk@61607 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/class-wp-theme-json.php | 107 ++++++++-
.../global-styles-and-settings.php | 4 +-
tests/phpunit/tests/theme/wpThemeJson.php | 216 +++++++++++++++++-
3 files changed, 322 insertions(+), 5 deletions(-)
diff --git a/src/wp-includes/class-wp-theme-json.php b/src/wp-includes/class-wp-theme-json.php
index 3e7f6f3f78475..37134501dc1b3 100644
--- a/src/wp-includes/class-wp-theme-json.php
+++ b/src/wp-includes/class-wp-theme-json.php
@@ -609,6 +609,16 @@ class WP_Theme_JSON {
'button' => array( ':link', ':any-link', ':visited', ':hover', ':focus', ':focus-visible', ':active' ),
);
+ /**
+ * The valid pseudo-selectors that can be used for blocks.
+ *
+ * @since 7.0
+ * @var array
+ */
+ const VALID_BLOCK_PSEUDO_SELECTORS = array(
+ 'core/button' => array( ':hover', ':focus', ':focus-visible', ':active' ),
+ );
+
/**
* The valid elements that can be found under styles.
*
@@ -699,6 +709,35 @@ protected static function schema_in_root_and_per_origin( $schema ) {
return $schema_in_root_and_per_origin;
}
+
+ /**
+ * Processes pseudo-selectors for any node (block or variation).
+ *
+ * @param array $node The node data (block or variation).
+ * @param string $base_selector The base selector.
+ * @param array $settings The theme settings.
+ * @param string $block_name The block name.
+ * @return array Array of pseudo-selector declarations.
+ */
+ private static function process_pseudo_selectors( $node, $base_selector, $settings, $block_name ) {
+ $pseudo_declarations = array();
+
+ if ( ! isset( static::VALID_BLOCK_PSEUDO_SELECTORS[ $block_name ] ) ) {
+ return $pseudo_declarations;
+ }
+
+ foreach ( static::VALID_BLOCK_PSEUDO_SELECTORS[ $block_name ] as $pseudo_selector ) {
+ if ( isset( $node[ $pseudo_selector ] ) ) {
+ $combined_selector = static::append_to_selector( $base_selector, $pseudo_selector );
+ $declarations = static::compute_style_properties( $node[ $pseudo_selector ], $settings, null, null );
+ $pseudo_declarations[ $combined_selector ] = $declarations;
+ }
+ }
+
+ return $pseudo_declarations;
+ }
+
+
/**
* Returns a class name by an element name.
*
@@ -1018,6 +1057,13 @@ protected static function sanitize( $input, $valid_block_names, $valid_element_n
$schema_settings_blocks[ $block ] = static::VALID_SETTINGS;
$schema_styles_blocks[ $block ] = $styles_non_top_level;
$schema_styles_blocks[ $block ]['elements'] = $schema_styles_elements;
+
+ // Add pseudo-selectors for blocks that support them
+ if ( isset( static::VALID_BLOCK_PSEUDO_SELECTORS[ $block ] ) ) {
+ foreach ( static::VALID_BLOCK_PSEUDO_SELECTORS[ $block ] as $pseudo_selector ) {
+ $schema_styles_blocks[ $block ][ $pseudo_selector ] = $styles_non_top_level;
+ }
+ }
}
$block_style_variation_styles = static::VALID_STYLES;
@@ -1040,7 +1086,18 @@ protected static function sanitize( $input, $valid_block_names, $valid_element_n
$schema_styles_variations = array();
if ( ! empty( $style_variation_names ) ) {
- $schema_styles_variations = array_fill_keys( $style_variation_names, $block_style_variation_styles );
+ foreach ( $style_variation_names as $variation_name ) {
+ $variation_schema = $block_style_variation_styles;
+
+ // Add pseudo-selectors to variations for blocks that support them
+ if ( isset( static::VALID_BLOCK_PSEUDO_SELECTORS[ $block ] ) ) {
+ foreach ( static::VALID_BLOCK_PSEUDO_SELECTORS[ $block ] as $pseudo_selector ) {
+ $variation_schema[ $pseudo_selector ] = $styles_non_top_level;
+ }
+ }
+
+ $schema_styles_variations[ $variation_name ] = $variation_schema;
+ }
}
$schema_styles_blocks[ $block ]['variations'] = $schema_styles_variations;
@@ -2742,6 +2799,23 @@ private static function get_block_nodes( $theme_json, $selectors = array(), $opt
'variations' => $variation_selectors,
'css' => $selector,
);
+
+ // Handle any pseudo selectors for the block.
+ if ( isset( static::VALID_BLOCK_PSEUDO_SELECTORS[ $name ] ) ) {
+ foreach ( static::VALID_BLOCK_PSEUDO_SELECTORS[ $name ] as $pseudo_selector ) {
+ if ( isset( $theme_json['styles']['blocks'][ $name ][ $pseudo_selector ] ) ) {
+ $nodes[] = array(
+ 'name' => $name,
+ 'path' => array( 'styles', 'blocks', $name, $pseudo_selector ),
+ 'selector' => static::append_to_selector( $selector, $pseudo_selector ),
+ 'selectors' => $feature_selectors,
+ 'duotone' => $duotone_selector,
+ 'variations' => $variation_selectors,
+ 'css' => static::append_to_selector( $selector, $pseudo_selector ),
+ );
+ }
+ }
+ }
}
if ( isset( $theme_json['styles']['blocks'][ $name ]['elements'] ) ) {
@@ -2838,6 +2912,12 @@ static function ( $split_selector ) use ( $clean_style_variation_selector ) {
// Compute declarations for remaining styles not covered by feature level selectors.
$style_variation_declarations[ $style_variation['selector'] ] = static::compute_style_properties( $style_variation_node, $settings, null, $this->theme_json );
+
+ // Process pseudo-selectors for this variation (e.g., :hover, :focus)
+ $block_name = isset( $block_metadata['name'] ) ? $block_metadata['name'] : ( in_array( 'blocks', $block_metadata['path'], true ) && count( $block_metadata['path'] ) >= 3 ? $block_metadata['path'][2] : null );
+ $variation_pseudo_declarations = static::process_pseudo_selectors( $style_variation_node, $style_variation['selector'], $settings, $block_name );
+ $style_variation_declarations = array_merge( $style_variation_declarations, $variation_pseudo_declarations );
+
// Store custom CSS for the style variation.
if ( isset( $style_variation_node['css'] ) ) {
$style_variation_custom_css[ $style_variation['selector'] ] = $this->process_blocks_custom_css( $style_variation_node['css'], $style_variation['selector'] );
@@ -2872,6 +2952,23 @@ static function ( $split_selector ) use ( $clean_style_variation_selector ) {
$element_pseudo_allowed = static::VALID_ELEMENT_PSEUDO_SELECTORS[ $current_element ];
}
+ /*
+ * Check if we're processing a block pseudo-selector.
+ * $block_metadata['path'] = array( 'styles', 'blocks', 'core/button', ':hover' );
+ */
+ $is_processing_block_pseudo = false;
+ $block_pseudo_selector = null;
+ if ( in_array( 'blocks', $block_metadata['path'], true ) && count( $block_metadata['path'] ) >= 4 ) {
+ $block_name = $block_metadata['path'][2]; // 'core/button'
+ $last_path_element = $block_metadata['path'][ count( $block_metadata['path'] ) - 1 ]; // ':hover'
+
+ if ( isset( static::VALID_BLOCK_PSEUDO_SELECTORS[ $block_name ] ) &&
+ in_array( $last_path_element, static::VALID_BLOCK_PSEUDO_SELECTORS[ $block_name ], true ) ) {
+ $is_processing_block_pseudo = true;
+ $block_pseudo_selector = $last_path_element;
+ }
+ }
+
/*
* Check for allowed pseudo classes (e.g. ":hover") from the $selector ("a:hover").
* This also resets the array keys.
@@ -2901,6 +2998,14 @@ static function ( $pseudo_selector ) use ( $selector ) {
&& in_array( $pseudo_selector, static::VALID_ELEMENT_PSEUDO_SELECTORS[ $current_element ], true )
) {
$declarations = static::compute_style_properties( $node[ $pseudo_selector ], $settings, null, $this->theme_json, $selector, $use_root_padding );
+ } elseif ( $is_processing_block_pseudo ) {
+ // Process block pseudo-selector styles
+ // For block pseudo-selectors, we need to get the block data first, then access the pseudo-selector
+ $block_name = $block_metadata['path'][2]; // 'core/button'
+ $block_data = _wp_array_get( $this->theme_json, array( 'styles', 'blocks', $block_name ), array() );
+ $pseudo_data = isset( $block_data[ $block_pseudo_selector ] ) ? $block_data[ $block_pseudo_selector ] : array();
+
+ $declarations = static::compute_style_properties( $pseudo_data, $settings, null, $this->theme_json, $selector, $use_root_padding );
} else {
$declarations = static::compute_style_properties( $node, $settings, null, $this->theme_json, $selector, $use_root_padding );
}
diff --git a/src/wp-includes/global-styles-and-settings.php b/src/wp-includes/global-styles-and-settings.php
index d50ee14e22015..4b08301f9c7db 100644
--- a/src/wp-includes/global-styles-and-settings.php
+++ b/src/wp-includes/global-styles-and-settings.php
@@ -276,8 +276,8 @@ function wp_add_global_styles_for_blocks() {
foreach ( $block_nodes as $metadata ) {
if ( $can_use_cached ) {
- // Use the block name as the key for cached CSS data. Otherwise, use a hash of the metadata.
- $cache_node_key = $metadata['name'] ?? md5( wp_json_encode( $metadata ) );
+ // Generate a unique cache key based on the full metadata to ensure pseudo-selectors and other variations get unique keys.
+ $cache_node_key = md5( wp_json_encode( $metadata ) );
if ( isset( $cached['blocks'][ $cache_node_key ] ) ) {
$block_css = $cached['blocks'][ $cache_node_key ];
diff --git a/tests/phpunit/tests/theme/wpThemeJson.php b/tests/phpunit/tests/theme/wpThemeJson.php
index b26ff2b9a9c4c..965210a80afbe 100644
--- a/tests/phpunit/tests/theme/wpThemeJson.php
+++ b/tests/phpunit/tests/theme/wpThemeJson.php
@@ -6069,8 +6069,8 @@ public function test_internal_syntax_is_converted_to_css_variables() {
* @ticket 58588
* @ticket 60613
*
- * @covers WP_Theme_JSON_Gutenberg::resolve_variables
- * @covers WP_Theme_JSON_Gutenberg::convert_variables_to_value
+ * @covers WP_Theme_JSON::resolve_variables
+ * @covers WP_Theme_JSON::convert_variables_to_value
*/
public function test_resolve_variables() {
$primary_color = '#9DFF20';
@@ -6693,4 +6693,216 @@ public function test_merge_incoming_data_unique_slugs_always_preserved() {
$this->assertEqualSetsWithIndex( $expected, $actual );
}
+
+ /**
+ * Test that block pseudo selectors are processed correctly.
+ */
+ public function test_block_pseudo_selectors_are_processed() {
+ $theme_json = new WP_Theme_JSON(
+ array(
+ 'version' => WP_Theme_JSON::LATEST_SCHEMA,
+ 'styles' => array(
+ 'blocks' => array(
+ 'core/button' => array(
+ 'color' => array(
+ 'text' => 'white',
+ 'background' => 'blue',
+ ),
+ ':hover' => array(
+ 'color' => array(
+ 'text' => 'blue',
+ 'background' => 'white',
+ ),
+ ),
+ ':focus' => array(
+ 'color' => array(
+ 'text' => 'red',
+ 'background' => 'yellow',
+ ),
+ ),
+ ),
+ ),
+ ),
+ )
+ );
+
+ $expected = ':root :where(.wp-block-button .wp-block-button__link){background-color: blue;color: white;}:root :where(.wp-block-button .wp-block-button__link:hover){background-color: white;color: blue;}:root :where(.wp-block-button .wp-block-button__link:focus){background-color: yellow;color: red;}';
+ $this->assertSame( $expected, $theme_json->get_stylesheet( array( 'styles' ), null, array( 'skip_root_layout_styles' => true ) ) );
+ }
+
+ /**
+ * Test that block pseudo selectors are processed correctly within variations.
+ */
+ public function test_block_variation_pseudo_selectors_are_processed() {
+ register_block_style(
+ 'core/button',
+ array(
+ 'name' => 'outline',
+ 'label' => 'Outline',
+ )
+ );
+
+ $theme_json = new WP_Theme_JSON(
+ array(
+ 'version' => WP_Theme_JSON::LATEST_SCHEMA,
+ 'styles' => array(
+ 'blocks' => array(
+ 'core/button' => array(
+ 'color' => array(
+ 'text' => 'white',
+ 'background' => 'blue',
+ ),
+ 'variations' => array(
+ 'outline' => array(
+ 'color' => array(
+ 'text' => 'currentColor',
+ 'background' => 'transparent',
+ ),
+ 'border' => array(
+ 'color' => 'currentColor',
+ 'width' => '1px',
+ 'style' => 'solid',
+ ),
+ ':hover' => array(
+ 'color' => array(
+ 'text' => 'white',
+ 'background' => 'red',
+ ),
+ ),
+ ':focus' => array(
+ 'color' => array(
+ 'text' => 'black',
+ 'background' => 'yellow',
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ )
+ );
+
+ $expected = ':root :where(.wp-block-button .wp-block-button__link){background-color: blue;color: white;}:root :where(.wp-block-button.is-style-outline .wp-block-button__link){background-color: transparent;border-color: currentColor;border-width: 1px;border-style: solid;color: currentColor;}:root :where(.wp-block-button.is-style-outline .wp-block-button__link:hover){background-color: red;color: white;}:root :where(.wp-block-button.is-style-outline .wp-block-button__link:focus){background-color: yellow;color: black;}';
+ $actual = $theme_json->get_stylesheet(
+ array( 'styles' ),
+ null,
+ array(
+ 'skip_root_layout_styles' => true,
+ 'include_block_style_variations' => true,
+ )
+ );
+
+ unregister_block_style( 'core/button', 'outline' );
+
+ $this->assertSame( $expected, $actual );
+ }
+
+ /**
+ * Test that non-whitelisted pseudo selectors are ignored for blocks.
+ */
+ public function test_block_pseudo_selectors_ignores_non_whitelisted() {
+ $theme_json = new WP_Theme_JSON(
+ array(
+ 'version' => WP_Theme_JSON::LATEST_SCHEMA,
+ 'styles' => array(
+ 'blocks' => array(
+ 'core/button' => array(
+ 'color' => array(
+ 'text' => 'white',
+ 'background' => 'blue',
+ ),
+ ':hover' => array(
+ 'color' => array(
+ 'text' => 'blue',
+ 'background' => 'white',
+ ),
+ ),
+ ':levitate' => array(
+ 'color' => array(
+ 'text' => 'yellow',
+ 'background' => 'black',
+ ),
+ ),
+ ),
+ ),
+ ),
+ )
+ );
+
+ $expected = ':root :where(.wp-block-button .wp-block-button__link){background-color: blue;color: white;}:root :where(.wp-block-button .wp-block-button__link:hover){background-color: white;color: blue;}';
+ $this->assertSame( $expected, $theme_json->get_stylesheet( array( 'styles' ), null, array( 'skip_root_layout_styles' => true ) ) );
+ $this->assertStringNotContainsString( '.wp-block-button .wp-block-button__link:levitate{', $theme_json->get_stylesheet( array( 'styles' ) ) );
+ }
+
+ /**
+ * Test that blocks without pseudo selector support ignore pseudo selectors.
+ */
+ public function test_blocks_without_pseudo_support_ignore_pseudo_selectors() {
+ $theme_json = new WP_Theme_JSON(
+ array(
+ 'version' => WP_Theme_JSON::LATEST_SCHEMA,
+ 'styles' => array(
+ 'blocks' => array(
+ 'core/paragraph' => array(
+ 'color' => array(
+ 'text' => 'black',
+ ),
+ ':hover' => array(
+ 'color' => array(
+ 'text' => 'red',
+ ),
+ ),
+ ),
+ ),
+ ),
+ )
+ );
+
+ $expected = ':root :where(p){color: black;}';
+ $this->assertSame( $expected, $theme_json->get_stylesheet( array( 'styles' ), null, array( 'skip_root_layout_styles' => true ) ) );
+ $this->assertStringNotContainsString( 'p:hover{', $theme_json->get_stylesheet( array( 'styles' ) ) );
+ }
+
+ /**
+ * Test that block pseudo selectors work with elements within blocks.
+ */
+ public function test_block_pseudo_selectors_with_elements() {
+ $theme_json = new WP_Theme_JSON(
+ array(
+ 'version' => WP_Theme_JSON::LATEST_SCHEMA,
+ 'styles' => array(
+ 'blocks' => array(
+ 'core/button' => array(
+ 'color' => array(
+ 'text' => 'white',
+ 'background' => 'blue',
+ ),
+ ':hover' => array(
+ 'color' => array(
+ 'text' => 'blue',
+ 'background' => 'white',
+ ),
+ ),
+ 'elements' => array(
+ 'button' => array(
+ 'color' => array(
+ 'text' => 'green',
+ ),
+ ':hover' => array(
+ 'color' => array(
+ 'text' => 'orange',
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ ),
+ )
+ );
+
+ $expected = ':root :where(.wp-block-button .wp-block-button__link){background-color: blue;color: white;}:root :where(.wp-block-button .wp-block-button__link:hover){background-color: white;color: blue;}:root :where(.wp-block-button .wp-block-button__link .wp-element-button,.wp-block-button .wp-block-button__link .wp-block-button__link){color: green;}:root :where(.wp-block-button .wp-block-button__link .wp-element-button:hover,.wp-block-button .wp-block-button__link .wp-block-button__link:hover){color: orange;}';
+ $this->assertSame( $expected, $theme_json->get_stylesheet( array( 'styles' ), null, array( 'skip_root_layout_styles' => true ) ) );
+ }
}
From 3dbdf1aba9db20583a83d9960a30f4a82bc55fd9 Mon Sep 17 00:00:00 2001
From: Sergey Biryukov
Date: Tue, 10 Feb 2026 16:05:25 +0000
Subject: [PATCH 013/145] Twenty Twenty-One: Remove redundant comment for
conditionally-defined function.
This also improves consistency with other themes.
Follow-up to [49216], [53121], [61552], [61272].
Props huzaifaalmesbah, sabernhardt.
See #64226.
git-svn-id: https://develop.svn.wordpress.org/trunk@61608 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-content/themes/twentytwentyone/inc/block-patterns.php | 5 +----
1 file changed, 1 insertion(+), 4 deletions(-)
diff --git a/src/wp-content/themes/twentytwentyone/inc/block-patterns.php b/src/wp-content/themes/twentytwentyone/inc/block-patterns.php
index 2eeaeed6d7f95..4533ed5aa46b8 100644
--- a/src/wp-content/themes/twentytwentyone/inc/block-patterns.php
+++ b/src/wp-content/themes/twentytwentyone/inc/block-patterns.php
@@ -27,12 +27,9 @@ function twenty_twenty_one_register_block_pattern_category() {
add_action( 'init', 'twenty_twenty_one_register_block_pattern_category' );
}
-/**
- * Register Block Patterns.
- */
if ( function_exists( 'register_block_pattern' ) ) {
/**
- * Registers Block Pattern.
+ * Registers Block Patterns.
*
* @since Twenty Twenty-One 1.0
*
From db26faa1574bbbf7c47cf4d118c8032be37febf4 Mon Sep 17 00:00:00 2001
From: Ben Dwyer
Date: Tue, 10 Feb 2026 16:36:25 +0000
Subject: [PATCH 014/145] Editor: Navigation overlay - patterns and template
part definition.
Adds a new template part for the Navigation block called WP_TEMPLATE_PART_AREA_NAVIGATION_OVERLAY, corresponding area definition in block-template-utils.php to support navigation overlay template parts.
Also adds the navigation block pattern category registration in block-patterns.php and five new navigation overlay block patterns.
Reviewed by mikachan, get_dave.
Props onemaggie, scruffian, get_dave, mikachan, wildworks.
Fixes #64589.
git-svn-id: https://develop.svn.wordpress.org/trunk@61609 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/block-patterns.php | 12 +++++
.../navigation-overlay-accent-bg.php | 29 ++++++++++++
.../navigation-overlay-black-bg.php | 19 ++++++++
...avigation-overlay-centered-with-extras.php | 45 +++++++++++++++++++
.../navigation-overlay-centered.php | 21 +++++++++
.../block-patterns/navigation-overlay.php | 19 ++++++++
src/wp-includes/block-template-utils.php | 12 +++++
7 files changed, 157 insertions(+)
create mode 100644 src/wp-includes/block-patterns/navigation-overlay-accent-bg.php
create mode 100644 src/wp-includes/block-patterns/navigation-overlay-black-bg.php
create mode 100644 src/wp-includes/block-patterns/navigation-overlay-centered-with-extras.php
create mode 100644 src/wp-includes/block-patterns/navigation-overlay-centered.php
create mode 100644 src/wp-includes/block-patterns/navigation-overlay.php
diff --git a/src/wp-includes/block-patterns.php b/src/wp-includes/block-patterns.php
index 133c6d54ea33a..50ca1a426378d 100644
--- a/src/wp-includes/block-patterns.php
+++ b/src/wp-includes/block-patterns.php
@@ -79,6 +79,11 @@ function _register_core_block_patterns_and_categories() {
'query-grid-posts',
'query-large-title-posts',
'query-offset-posts',
+ 'navigation-overlay',
+ 'navigation-overlay-black-bg',
+ 'navigation-overlay-accent-bg',
+ 'navigation-overlay-centered',
+ 'navigation-overlay-centered-with-extras',
);
foreach ( $core_block_patterns as $core_block_pattern ) {
@@ -228,6 +233,13 @@ function _register_core_block_patterns_and_categories() {
'description' => __( 'A variety of header designs displaying your site title and navigation.' ),
)
);
+ register_block_pattern_category(
+ 'navigation',
+ array(
+ 'label' => _x( 'Navigation', 'Block pattern category' ),
+ 'description' => __( 'A variety of designs displaying site navigation.' ),
+ )
+ );
}
/**
diff --git a/src/wp-includes/block-patterns/navigation-overlay-accent-bg.php b/src/wp-includes/block-patterns/navigation-overlay-accent-bg.php
new file mode 100644
index 0000000000000..f9139f38fc655
--- /dev/null
+++ b/src/wp-includes/block-patterns/navigation-overlay-accent-bg.php
@@ -0,0 +1,29 @@
+ _x( 'Overlay with orange background', 'Block pattern title' ),
+ 'blockTypes' => array( 'core/template-part/navigation-overlay' ),
+ 'categories' => array( 'navigation' ),
+ 'content' => '
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+',
+);
diff --git a/src/wp-includes/block-patterns/navigation-overlay-black-bg.php b/src/wp-includes/block-patterns/navigation-overlay-black-bg.php
new file mode 100644
index 0000000000000..0ec87fff322e8
--- /dev/null
+++ b/src/wp-includes/block-patterns/navigation-overlay-black-bg.php
@@ -0,0 +1,19 @@
+ _x( 'Overlay with black background', 'Block pattern title' ),
+ 'blockTypes' => array( 'core/template-part/navigation-overlay' ),
+ 'categories' => array( 'navigation' ),
+ 'content' => '
+
+',
+);
diff --git a/src/wp-includes/block-patterns/navigation-overlay-centered-with-extras.php b/src/wp-includes/block-patterns/navigation-overlay-centered-with-extras.php
new file mode 100644
index 0000000000000..14748a4331bd2
--- /dev/null
+++ b/src/wp-includes/block-patterns/navigation-overlay-centered-with-extras.php
@@ -0,0 +1,45 @@
+ _x( 'Overlay with site info and CTA', 'Block pattern title' ),
+ 'blockTypes' => array( 'core/template-part/navigation-overlay' ),
+ 'categories' => array( 'navigation' ),
+ 'content' => '
+
+',
+);
diff --git a/src/wp-includes/block-patterns/navigation-overlay-centered.php b/src/wp-includes/block-patterns/navigation-overlay-centered.php
new file mode 100644
index 0000000000000..3428aabf5011d
--- /dev/null
+++ b/src/wp-includes/block-patterns/navigation-overlay-centered.php
@@ -0,0 +1,21 @@
+ _x( 'Overlay with centered navigation', 'Block pattern title' ),
+ 'blockTypes' => array( 'core/template-part/navigation-overlay' ),
+ 'categories' => array( 'navigation' ),
+ 'content' => '
+
+',
+);
diff --git a/src/wp-includes/block-patterns/navigation-overlay.php b/src/wp-includes/block-patterns/navigation-overlay.php
new file mode 100644
index 0000000000000..c979973a82684
--- /dev/null
+++ b/src/wp-includes/block-patterns/navigation-overlay.php
@@ -0,0 +1,19 @@
+ _x( 'Navigation Overlay', 'Block pattern title' ),
+ 'blockTypes' => array( 'core/template-part/navigation-overlay' ),
+ 'categories' => array( 'navigation' ),
+ 'content' => '
+
+',
+);
diff --git a/src/wp-includes/block-template-utils.php b/src/wp-includes/block-template-utils.php
index df016c4a1d0fa..ed23647ab01d0 100644
--- a/src/wp-includes/block-template-utils.php
+++ b/src/wp-includes/block-template-utils.php
@@ -19,6 +19,9 @@
if ( ! defined( 'WP_TEMPLATE_PART_AREA_UNCATEGORIZED' ) ) {
define( 'WP_TEMPLATE_PART_AREA_UNCATEGORIZED', 'uncategorized' );
}
+if ( ! defined( 'WP_TEMPLATE_PART_AREA_NAVIGATION_OVERLAY' ) ) {
+ define( 'WP_TEMPLATE_PART_AREA_NAVIGATION_OVERLAY', 'navigation-overlay' );
+}
/**
* For backward compatibility reasons,
@@ -96,6 +99,15 @@ function get_allowed_block_template_part_areas() {
'icon' => 'footer',
'area_tag' => 'footer',
),
+ array(
+ 'area' => WP_TEMPLATE_PART_AREA_NAVIGATION_OVERLAY,
+ 'label' => _x( 'Navigation Overlay', 'template part area' ),
+ 'description' => __(
+ 'The Navigation Overlay template defines a full-screen overlay area that typically contains navigation links and can be toggled on and off.'
+ ),
+ 'icon' => 'overlay',
+ 'area_tag' => 'div',
+ ),
);
/**
From 163bc042c5753f204c9d7400c80e67ce85e56796 Mon Sep 17 00:00:00 2001
From: Joe Dolson
Date: Tue, 10 Feb 2026 19:51:56 +0000
Subject: [PATCH 015/145] Login and Registration: Populate username after
password reset.
Accessibility: to meet WCAG 2.2/3.3.7: Redundant entry, the username should be auto-populated when a user performs a password reset.
There is an existing cookie set that contains this information, but was deleted before displaying the login form.
Move cookie deletion to occur after displaying login form and use to set `$user_login`.
Props estelaris, alh0319, sabernhardt, oglekler, peterwilsoncc, rcreators, rishavdutta, chaion07, stoyangeorgiev, rinkalpagdar, pratiklondhe, lukasfritzedev, ferdoused, audrasjb, westonruter, joedolson.
Fixes #60726.
git-svn-id: https://develop.svn.wordpress.org/trunk@61610 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-login.php | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/wp-login.php b/src/wp-login.php
index c9db31826bbdb..4bd2284c5244c 100644
--- a/src/wp-login.php
+++ b/src/wp-login.php
@@ -1000,7 +1000,6 @@ function wp_login_viewport_meta() {
if ( ( ! $errors->has_errors() ) && isset( $_POST['pass1'] ) && ! empty( $_POST['pass1'] ) ) {
reset_password( $user, $_POST['pass1'] );
- setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
login_header(
__( 'Password Reset' ),
wp_get_admin_notice(
@@ -1487,6 +1486,14 @@ function wp_login_viewport_meta() {
wp_clear_auth_cookie();
}
+ // Obtain user from password reset cookie flow before clearing the cookie.
+ $rp_cookie = 'wp-resetpass-' . COOKIEHASH;
+ if ( isset( $_COOKIE[ $rp_cookie ] ) && is_string( $_COOKIE[ $rp_cookie ] ) ) {
+ $user_login = sanitize_user( strtok( wp_unslash( $_COOKIE[ $rp_cookie ] ), ':' ) );
+ list( $rp_path ) = explode( '?', wp_unslash( $_SERVER['REQUEST_URI'] ) );
+ setcookie( $rp_cookie, ' ', time() - YEAR_IN_SECONDS, $rp_path, COOKIE_DOMAIN, is_ssl(), true );
+ }
+
login_header( __( 'Log In' ), '', $errors );
if ( isset( $_POST['log'] ) ) {
From 81885a9ff64f3902d4f3162c011745a35b46e6ba Mon Sep 17 00:00:00 2001
From: Weston Ruter
Date: Tue, 10 Feb 2026 22:29:49 +0000
Subject: [PATCH 016/145] Code Editor: Switch from Esprima to Espree for
JavaScript linting in CodeMirror.
Esprima is no longer maintained, and it does not support the latest JavaScript features in ES11, as Espree does.
- **New Linter Integration:** Introduces `src/js/_enqueues/vendor/codemirror/javascript-lint.js` using `espree` for parsing and error reporting, replacing the dependency on `jshint` and `esprima` scripts.
- **Script Modules:** Registers `espree` as a script module and leverages the `module_dependencies` argument in `wp_register_script()` to ensure `espree` is available as a dynamic import.
- **Editor Settings:** Updates `wp_get_code_editor_settings()` to use ES11 (ECMAScript 2020) defaults and synchronizes JSHint settings from `.jshintrc` for compatibility.
- **Editable Extensions:** Adds `.mjs` to the list of editable file extensions for plugins and themes.
- **Deprecations:** Marks `esprima` and `jshint` script handles as deprecated.
- **Build Tools:** Updates Webpack configuration to bundle `espree` as a module and use the new local `javascript-lint.js`.
Developed in https://github.com/WordPress/wordpress-develop/pull/10806
Follow-up to [61587], [61544], [61539], [42547].
Props westonruter, jonsurrell.
See #64562, #61500, #48456, #42850.
Fixes #64558.
git-svn-id: https://develop.svn.wordpress.org/trunk@61611 602fd350-edb4-49c9-b593-d223f7449a82
---
package-lock.json | 26 ++-
package.json | 2 +
.../vendor/codemirror/javascript-lint.js | 121 ++++++++++++++
src/wp-admin/includes/file.php | 2 +
src/wp-includes/general-template.php | 60 ++++---
src/wp-includes/script-loader.php | 5 +-
src/wp-includes/script-modules.php | 7 +
tests/phpunit/tests/dependencies/scripts.php | 22 ++-
.../tests/widgets/wpWidgetCustomHtml.php | 1 -
tools/vendors/codemirror-entry.js | 153 +++++++++---------
tools/webpack/codemirror.config.js | 61 ++++---
11 files changed, 320 insertions(+), 140 deletions(-)
create mode 100644 src/js/_enqueues/vendor/codemirror/javascript-lint.js
diff --git a/package-lock.json b/package-lock.json
index 87af6af9dd1c2..cae57f5937eca 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -16,6 +16,7 @@
"core-js-url-browser": "3.6.4",
"csslint": "1.0.5",
"element-closest": "3.0.2",
+ "espree": "9.6.1",
"esprima": "4.0.1",
"formdata-polyfill": "4.0.10",
"hoverintent": "2.2.1",
@@ -44,6 +45,7 @@
"@lodder/grunt-postcss": "^3.1.1",
"@playwright/test": "1.56.1",
"@pmmmwh/react-refresh-webpack-plugin": "0.6.1",
+ "@types/codemirror": "5.60.17",
"@wordpress/e2e-test-utils-playwright": "1.33.2",
"@wordpress/prettier-config": "4.33.1",
"@wordpress/scripts": "30.26.2",
@@ -5131,6 +5133,16 @@
"@types/node": "*"
}
},
+ "node_modules/@types/codemirror": {
+ "version": "5.60.17",
+ "resolved": "https://registry.npmjs.org/@types/codemirror/-/codemirror-5.60.17.tgz",
+ "integrity": "sha512-AZq2FIsUHVMlp7VSe2hTfl5w4pcUkoFkM3zVsRKsn1ca8CXRDYvnin04+HP2REkwsxemuHqvDofdlhUWNpbwfw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/tern": "*"
+ }
+ },
"node_modules/@types/connect": {
"version": "3.4.38",
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz",
@@ -5420,6 +5432,16 @@
"integrity": "sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==",
"dev": true
},
+ "node_modules/@types/tern": {
+ "version": "0.23.9",
+ "resolved": "https://registry.npmjs.org/@types/tern/-/tern-0.23.9.tgz",
+ "integrity": "sha512-ypzHFE/wBzh+BlH6rrBgS5I/Z7RD21pGhZ2rltb/+ZrVM1awdZwjx7hE5XfuYgHWk9uvV5HLZN3SloevCAp3Bw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "*"
+ }
+ },
"node_modules/@types/tough-cookie": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.3.tgz",
@@ -7445,7 +7467,6 @@
"version": "8.15.0",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
"integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
- "dev": true,
"license": "MIT",
"bin": {
"acorn": "bin/acorn"
@@ -7468,7 +7489,6 @@
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
"peerDependencies": {
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
@@ -13285,7 +13305,6 @@
"version": "9.6.1",
"resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz",
"integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==",
- "dev": true,
"dependencies": {
"acorn": "^8.9.0",
"acorn-jsx": "^5.3.2",
@@ -13302,7 +13321,6 @@
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
"integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
- "dev": true,
"license": "Apache-2.0",
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
diff --git a/package.json b/package.json
index 66c8e0b5b23af..766e241ff8d6d 100644
--- a/package.json
+++ b/package.json
@@ -30,6 +30,7 @@
"@lodder/grunt-postcss": "^3.1.1",
"@playwright/test": "1.56.1",
"@pmmmwh/react-refresh-webpack-plugin": "0.6.1",
+ "@types/codemirror": "5.60.17",
"@wordpress/e2e-test-utils-playwright": "1.33.2",
"@wordpress/prettier-config": "4.33.1",
"@wordpress/scripts": "30.26.2",
@@ -79,6 +80,7 @@
"core-js-url-browser": "3.6.4",
"csslint": "1.0.5",
"element-closest": "3.0.2",
+ "espree": "9.6.1",
"esprima": "4.0.1",
"formdata-polyfill": "4.0.10",
"hoverintent": "2.2.1",
diff --git a/src/js/_enqueues/vendor/codemirror/javascript-lint.js b/src/js/_enqueues/vendor/codemirror/javascript-lint.js
new file mode 100644
index 0000000000000..3f98ad523346c
--- /dev/null
+++ b/src/js/_enqueues/vendor/codemirror/javascript-lint.js
@@ -0,0 +1,121 @@
+/**
+ * CodeMirror JavaScript linter.
+ *
+ * @since 7.0.0
+ */
+
+import CodeMirror from 'codemirror';
+
+/**
+ * CodeMirror Lint Error.
+ *
+ * @see https://codemirror.net/5/doc/manual.html#addon_lint
+ *
+ * @typedef {Object} CodeMirrorLintError
+ * @property {string} message - Error message.
+ * @property {'error'} severity - Severity.
+ * @property {CodeMirror.Position} from - From position.
+ * @property {CodeMirror.Position} to - To position.
+ */
+
+/**
+ * JSHint options supported by Espree.
+ *
+ * @see https://jshint.com/docs/options/
+ * @see https://www.npmjs.com/package/espree#options
+ *
+ * @typedef {Object} SupportedJSHintOptions
+ * @property {number} [esversion] - "This option is used to specify the ECMAScript version to which the code must adhere."
+ * @property {boolean} [es5] - "This option enables syntax first defined in the ECMAScript 5.1 specification. This includes allowing reserved keywords as object properties."
+ * @property {boolean} [es3] - "This option tells JSHint that your code needs to adhere to ECMAScript 3 specification. Use this option if you need your program to be executable in older browsers—such as Internet Explorer 6/7/8/9—and other legacy JavaScript environments."
+ * @property {boolean} [module] - "This option informs JSHint that the input code describes an ECMAScript 6 module. All module code is interpreted as strict mode code."
+ * @property {'implied'} [strict] - "This option requires the code to run in ECMAScript 5's strict mode."
+ */
+
+/**
+ * Validates JavaScript.
+ *
+ * @since 7.0.0
+ *
+ * @param {string} text - Source.
+ * @param {SupportedJSHintOptions} options - Linting options.
+ * @returns {Promise}
+ */
+async function validator( text, options ) {
+ const errors = /** @type {CodeMirrorLintError[]} */ [];
+ try {
+ const espree = await import( /* webpackIgnore: true */ 'espree' );
+ espree.parse( text, {
+ ...getEspreeOptions( options ),
+ loc: true,
+ } );
+ } catch ( error ) {
+ if (
+ // This is an `EnhancedSyntaxError` in Espree: .
+ error instanceof SyntaxError &&
+ typeof error.lineNumber === 'number' &&
+ typeof error.column === 'number'
+ ) {
+ const line = error.lineNumber - 1;
+ errors.push( {
+ message: error.message,
+ severity: 'error',
+ from: CodeMirror.Pos( line, error.column - 1 ),
+ to: CodeMirror.Pos( line, error.column ),
+ } );
+ } else {
+ console.warn( '[CodeMirror] Unable to lint JavaScript:', error ); // jshint ignore:line
+ }
+ }
+
+ return errors;
+}
+
+CodeMirror.registerHelper( 'lint', 'javascript', validator );
+
+/**
+ * Gets the options for Espree from the supported JSHint options.
+ *
+ * @since 7.0.0
+ *
+ * @param {SupportedJSHintOptions} options - Linting options for JSHint.
+ * @return {{
+ * ecmaVersion?: number|'latest',
+ * ecmaFeatures?: {
+ * impliedStrict?: true
+ * }
+ * }}
+ */
+function getEspreeOptions( options ) {
+ const ecmaFeatures = {};
+ if ( options.strict === 'implied' ) {
+ ecmaFeatures.impliedStrict = true;
+ }
+
+ return {
+ ecmaVersion: getEcmaVersion( options ),
+ sourceType: options.module ? 'module' : 'script',
+ ecmaFeatures,
+ };
+}
+
+/**
+ * Gets the ECMAScript version.
+ *
+ * @since 7.0.0
+ *
+ * @param {SupportedJSHintOptions} options - Options.
+ * @return {number|'latest'} ECMAScript version.
+ */
+function getEcmaVersion( options ) {
+ if ( typeof options.esversion === 'number' ) {
+ return options.esversion;
+ }
+ if ( options.es5 ) {
+ return 5;
+ }
+ if ( options.es3 ) {
+ return 3;
+ }
+ return 'latest';
+}
diff --git a/src/wp-admin/includes/file.php b/src/wp-admin/includes/file.php
index 610125b252ec0..09d080da2dd6e 100644
--- a/src/wp-admin/includes/file.php
+++ b/src/wp-admin/includes/file.php
@@ -202,6 +202,7 @@ function wp_get_plugin_file_editable_extensions( $plugin ) {
'inc',
'include',
'js',
+ 'mjs',
'json',
'jsx',
'less',
@@ -261,6 +262,7 @@ function wp_get_theme_file_editable_extensions( $theme ) {
'inc',
'include',
'js',
+ 'mjs',
'json',
'jsx',
'less',
diff --git a/src/wp-includes/general-template.php b/src/wp-includes/general-template.php
index f5dacf28f7327..7afab9f8c059d 100644
--- a/src/wp-includes/general-template.php
+++ b/src/wp-includes/general-template.php
@@ -4069,7 +4069,6 @@ function wp_enqueue_code_editor( $args ) {
case 'text/x-php':
wp_enqueue_script( 'htmlhint' );
wp_enqueue_script( 'csslint' );
- wp_enqueue_script( 'jshint' );
if ( ! current_user_can( 'unfiltered_html' ) ) {
wp_enqueue_script( 'htmlhint-kses' );
}
@@ -4081,7 +4080,6 @@ function wp_enqueue_code_editor( $args ) {
case 'application/ld+json':
case 'text/typescript':
case 'application/typescript':
- wp_enqueue_script( 'jshint' );
wp_enqueue_script( 'jsonlint' );
break;
}
@@ -4153,30 +4151,39 @@ function wp_get_code_editor_settings( $args ) {
'outline-none' => true,
),
'jshint' => array(
- // The following are copied from .
- 'boss' => true,
- 'curly' => true,
- 'eqeqeq' => true,
- 'eqnull' => true,
- 'es3' => true,
- 'expr' => true,
- 'immed' => true,
- 'noarg' => true,
- 'nonbsp' => true,
- 'onevar' => true,
- 'quotmark' => 'single',
- 'trailing' => true,
- 'undef' => true,
- 'unused' => true,
-
- 'browser' => true,
-
- 'globals' => array(
- '_' => false,
- 'Backbone' => false,
- 'jQuery' => false,
- 'JSON' => false,
- 'wp' => false,
+ 'esversion' => 11,
+ 'module' => str_ends_with( $args['file'] ?? '', '.mjs' ),
+
+ // The following JSHint *linting rule* options are copied from
+ // .
+ // Parsing-related options such as `esversion` (and, in other contexts, `es5`, `es3`, `module`, `strict`)
+ // are honored by the Espree-based integration, but these linting-rule options are not interpreted by Espree
+ // and are kept only for compatibility/documentation with the original JSHint configuration.
+ 'boss' => true,
+ 'curly' => true,
+ 'eqeqeq' => true,
+ 'eqnull' => true,
+ 'expr' => true,
+ 'immed' => true,
+ 'noarg' => true,
+ 'nonbsp' => true,
+ 'quotmark' => 'single',
+ 'undef' => true,
+ 'unused' => true,
+ 'browser' => true,
+ 'globals' => array(
+ '_' => false,
+ 'Backbone' => false,
+ 'jQuery' => false,
+ 'JSON' => false,
+ 'wp' => false,
+ 'export' => false,
+ 'module' => false,
+ 'require' => false,
+ 'WorkerGlobalScope' => false,
+ 'self' => false,
+ 'OffscreenCanvas' => false,
+ 'Promise' => false,
),
),
'htmlhint' => array(
@@ -4233,6 +4240,7 @@ function wp_get_code_editor_settings( $args ) {
$type = 'message/http';
break;
case 'js':
+ case 'mjs':
$type = 'text/javascript';
break;
case 'json':
diff --git a/src/wp-includes/script-loader.php b/src/wp-includes/script-loader.php
index 87689423c37ac..4e9de5a0a7ed9 100644
--- a/src/wp-includes/script-loader.php
+++ b/src/wp-includes/script-loader.php
@@ -1196,9 +1196,10 @@ function wp_default_scripts( $scripts ) {
);
$scripts->add( 'wp-codemirror', '/wp-includes/js/codemirror/codemirror.min.js', array(), '5.65.20' );
+ did_action( 'init' ) && $scripts->add_data( 'wp-codemirror', 'module_dependencies', array( 'espree' ) );
$scripts->add( 'csslint', '/wp-includes/js/codemirror/csslint.js', array(), '1.0.5' );
- $scripts->add( 'esprima', '/wp-includes/js/codemirror/esprima.js', array(), '4.0.1' );
- $scripts->add( 'jshint', '/wp-includes/js/codemirror/fakejshint.js', array( 'esprima' ), '2.9.5' );
+ $scripts->add( 'esprima', '/wp-includes/js/codemirror/esprima.js', array(), '4.0.1' ); // Deprecated. Use 'espree' script module.
+ $scripts->add( 'jshint', '/wp-includes/js/codemirror/fakejshint.js', array( 'esprima' ), '2.9.5' ); // Deprecated.
$scripts->add( 'jsonlint', '/wp-includes/js/codemirror/jsonlint.js', array(), '1.6.3' );
$scripts->add( 'htmlhint', '/wp-includes/js/codemirror/htmlhint.js', array(), '1.8.0' );
$scripts->add( 'htmlhint-kses', '/wp-includes/js/codemirror/htmlhint-kses.js', array( 'htmlhint' ) );
diff --git a/src/wp-includes/script-modules.php b/src/wp-includes/script-modules.php
index ee91ee4361a7d..0a39efea1dc27 100644
--- a/src/wp-includes/script-modules.php
+++ b/src/wp-includes/script-modules.php
@@ -194,6 +194,13 @@ function wp_default_script_modules() {
$module_deps = $script_module_data['module_dependencies'] ?? array();
wp_register_script_module( $script_module_id, $path, $module_deps, $script_module_data['version'], $args );
}
+
+ wp_register_script_module(
+ 'espree',
+ includes_url( 'js/codemirror/espree.min.js' ),
+ array(),
+ '9.6.1'
+ );
}
/**
diff --git a/tests/phpunit/tests/dependencies/scripts.php b/tests/phpunit/tests/dependencies/scripts.php
index 995d46ad6ae61..6050983cc5f5e 100644
--- a/tests/phpunit/tests/dependencies/scripts.php
+++ b/tests/phpunit/tests/dependencies/scripts.php
@@ -3158,14 +3158,13 @@ public function test_wp_enqueue_code_editor_when_php_file_will_be_passed() {
'curly',
'eqeqeq',
'eqnull',
- 'es3',
+ 'esversion',
'expr',
'immed',
+ 'module',
'noarg',
'nonbsp',
- 'onevar',
'quotmark',
- 'trailing',
'undef',
'unused',
'browser',
@@ -3242,14 +3241,13 @@ public function test_wp_enqueue_code_editor_when_generated_array_by_compact_will
'curly',
'eqeqeq',
'eqnull',
- 'es3',
+ 'esversion',
'expr',
'immed',
+ 'module',
'noarg',
'nonbsp',
- 'onevar',
'quotmark',
- 'trailing',
'undef',
'unused',
'browser',
@@ -3340,14 +3338,13 @@ public function test_wp_enqueue_code_editor_when_generated_array_by_array_merge_
'curly',
'eqeqeq',
'eqnull',
- 'es3',
+ 'esversion',
'expr',
'immed',
+ 'module',
'noarg',
'nonbsp',
- 'onevar',
'quotmark',
- 'trailing',
'undef',
'unused',
'browser',
@@ -3435,14 +3432,13 @@ public function test_wp_enqueue_code_editor_when_simple_array_will_be_passed() {
'curly',
'eqeqeq',
'eqnull',
- 'es3',
+ 'esversion',
'expr',
'immed',
+ 'module',
'noarg',
'nonbsp',
- 'onevar',
'quotmark',
- 'trailing',
'undef',
'unused',
'browser',
@@ -4020,7 +4016,7 @@ static function ( $dependency ) {
);
// Exclude packages that are not registered in WordPress.
- $exclude = array( 'react-is', 'json2php' );
+ $exclude = array( 'react-is', 'json2php', 'espree' );
$package_json_dependencies = array_diff( $package_json_dependencies, $exclude );
/*
diff --git a/tests/phpunit/tests/widgets/wpWidgetCustomHtml.php b/tests/phpunit/tests/widgets/wpWidgetCustomHtml.php
index 1a61d944719b6..c9377ba54e655 100644
--- a/tests/phpunit/tests/widgets/wpWidgetCustomHtml.php
+++ b/tests/phpunit/tests/widgets/wpWidgetCustomHtml.php
@@ -251,7 +251,6 @@ public function test_enqueue_admin_scripts_when_logged_in_and_syntax_highlightin
$this->assertTrue( wp_script_is( 'code-editor', 'enqueued' ) );
$this->assertTrue( wp_script_is( 'wp-codemirror', 'enqueued' ) );
$this->assertTrue( wp_script_is( 'csslint', 'enqueued' ) );
- $this->assertTrue( wp_script_is( 'jshint', 'enqueued' ) );
$this->assertTrue( wp_script_is( 'htmlhint', 'enqueued' ) );
}
diff --git a/tools/vendors/codemirror-entry.js b/tools/vendors/codemirror-entry.js
index cf3b7523d0edf..a8856f55d11da 100644
--- a/tools/vendors/codemirror-entry.js
+++ b/tools/vendors/codemirror-entry.js
@@ -1,90 +1,91 @@
// Import CodeMirror core to be exposed as window.wp.CodeMirror.
-var CodeMirror = require( 'codemirror/lib/codemirror' );
+import CodeMirror from 'codemirror/lib/codemirror';
// Keymaps
-require( 'codemirror/keymap/emacs' );
-require( 'codemirror/keymap/sublime' );
-require( 'codemirror/keymap/vim' );
+import 'codemirror/keymap/emacs';
+import 'codemirror/keymap/sublime';
+import 'codemirror/keymap/vim';
// Addons (Hinting)
-require( 'codemirror/addon/hint/show-hint' );
-require( 'codemirror/addon/hint/anyword-hint' );
-require( 'codemirror/addon/hint/css-hint' );
-require( 'codemirror/addon/hint/html-hint' );
-require( 'codemirror/addon/hint/javascript-hint' );
-require( 'codemirror/addon/hint/sql-hint' );
-require( 'codemirror/addon/hint/xml-hint' );
+import 'codemirror/addon/hint/show-hint';
+import 'codemirror/addon/hint/anyword-hint';
+import 'codemirror/addon/hint/css-hint';
+import 'codemirror/addon/hint/html-hint';
+import 'codemirror/addon/hint/javascript-hint';
+import 'codemirror/addon/hint/sql-hint';
+import 'codemirror/addon/hint/xml-hint';
// Addons (Linting)
-require( 'codemirror/addon/lint/lint' );
-require( 'codemirror/addon/lint/css-lint' );
-require( 'codemirror/addon/lint/html-lint' );
-require( 'codemirror/addon/lint/javascript-lint' );
-require( 'codemirror/addon/lint/json-lint' );
+import 'codemirror/addon/lint/lint';
+import 'codemirror/addon/lint/css-lint';
+import 'codemirror/addon/lint/html-lint';
+
+import '../../src/js/_enqueues/vendor/codemirror/javascript-lint';
+import 'codemirror/addon/lint/json-lint';
// Addons (Other)
-require( 'codemirror/addon/comment/comment' );
-require( 'codemirror/addon/comment/continuecomment' );
-require( 'codemirror/addon/fold/xml-fold' );
-require( 'codemirror/addon/mode/overlay' );
-require( 'codemirror/addon/edit/closebrackets' );
-require( 'codemirror/addon/edit/closetag' );
-require( 'codemirror/addon/edit/continuelist' );
-require( 'codemirror/addon/edit/matchbrackets' );
-require( 'codemirror/addon/edit/matchtags' );
-require( 'codemirror/addon/edit/trailingspace' );
-require( 'codemirror/addon/dialog/dialog' );
-require( 'codemirror/addon/display/autorefresh' );
-require( 'codemirror/addon/display/fullscreen' );
-require( 'codemirror/addon/display/panel' );
-require( 'codemirror/addon/display/placeholder' );
-require( 'codemirror/addon/display/rulers' );
-require( 'codemirror/addon/fold/brace-fold' );
-require( 'codemirror/addon/fold/comment-fold' );
-require( 'codemirror/addon/fold/foldcode' );
-require( 'codemirror/addon/fold/foldgutter' );
-require( 'codemirror/addon/fold/indent-fold' );
-require( 'codemirror/addon/fold/markdown-fold' );
-require( 'codemirror/addon/merge/merge' );
-require( 'codemirror/addon/mode/loadmode' );
-require( 'codemirror/addon/mode/multiplex' );
-require( 'codemirror/addon/mode/simple' );
-require( 'codemirror/addon/runmode/runmode' );
-require( 'codemirror/addon/runmode/colorize' );
-require( 'codemirror/addon/runmode/runmode-standalone' );
-require( 'codemirror/addon/scroll/annotatescrollbar' );
-require( 'codemirror/addon/scroll/scrollpastend' );
-require( 'codemirror/addon/scroll/simplescrollbars' );
-require( 'codemirror/addon/search/search' );
-require( 'codemirror/addon/search/jump-to-line' );
-require( 'codemirror/addon/search/match-highlighter' );
-require( 'codemirror/addon/search/matchesonscrollbar' );
-require( 'codemirror/addon/search/searchcursor' );
-require( 'codemirror/addon/tern/tern' );
-require( 'codemirror/addon/tern/worker' );
-require( 'codemirror/addon/wrap/hardwrap' );
-require( 'codemirror/addon/selection/active-line' );
-require( 'codemirror/addon/selection/mark-selection' );
-require( 'codemirror/addon/selection/selection-pointer' );
+import 'codemirror/addon/comment/comment';
+import 'codemirror/addon/comment/continuecomment';
+import 'codemirror/addon/fold/xml-fold';
+import 'codemirror/addon/mode/overlay';
+import 'codemirror/addon/edit/closebrackets';
+import 'codemirror/addon/edit/closetag';
+import 'codemirror/addon/edit/continuelist';
+import 'codemirror/addon/edit/matchbrackets';
+import 'codemirror/addon/edit/matchtags';
+import 'codemirror/addon/edit/trailingspace';
+import 'codemirror/addon/dialog/dialog';
+import 'codemirror/addon/display/autorefresh';
+import 'codemirror/addon/display/fullscreen';
+import 'codemirror/addon/display/panel';
+import 'codemirror/addon/display/placeholder';
+import 'codemirror/addon/display/rulers';
+import 'codemirror/addon/fold/brace-fold';
+import 'codemirror/addon/fold/comment-fold';
+import 'codemirror/addon/fold/foldcode';
+import 'codemirror/addon/fold/foldgutter';
+import 'codemirror/addon/fold/indent-fold';
+import 'codemirror/addon/fold/markdown-fold';
+import 'codemirror/addon/merge/merge';
+import 'codemirror/addon/mode/loadmode';
+import 'codemirror/addon/mode/multiplex';
+import 'codemirror/addon/mode/simple';
+import 'codemirror/addon/runmode/runmode';
+import 'codemirror/addon/runmode/colorize';
+import 'codemirror/addon/runmode/runmode-standalone';
+import 'codemirror/addon/scroll/annotatescrollbar';
+import 'codemirror/addon/scroll/scrollpastend';
+import 'codemirror/addon/scroll/simplescrollbars';
+import 'codemirror/addon/search/search';
+import 'codemirror/addon/search/jump-to-line';
+import 'codemirror/addon/search/match-highlighter';
+import 'codemirror/addon/search/matchesonscrollbar';
+import 'codemirror/addon/search/searchcursor';
+import 'codemirror/addon/tern/tern';
+import 'codemirror/addon/tern/worker';
+import 'codemirror/addon/wrap/hardwrap';
+import 'codemirror/addon/selection/active-line';
+import 'codemirror/addon/selection/mark-selection';
+import 'codemirror/addon/selection/selection-pointer';
// Modes
-require( 'codemirror/mode/meta' );
-require( 'codemirror/mode/clike/clike' );
-require( 'codemirror/mode/css/css' );
-require( 'codemirror/mode/diff/diff' );
-require( 'codemirror/mode/htmlmixed/htmlmixed' );
-require( 'codemirror/mode/http/http' );
-require( 'codemirror/mode/javascript/javascript' );
-require( 'codemirror/mode/jsx/jsx' );
-require( 'codemirror/mode/markdown/markdown' );
-require( 'codemirror/mode/gfm/gfm' );
-require( 'codemirror/mode/nginx/nginx' );
-require( 'codemirror/mode/php/php' );
-require( 'codemirror/mode/sass/sass' );
-require( 'codemirror/mode/shell/shell' );
-require( 'codemirror/mode/sql/sql' );
-require( 'codemirror/mode/xml/xml' );
-require( 'codemirror/mode/yaml/yaml' );
+import 'codemirror/mode/meta';
+import 'codemirror/mode/clike/clike';
+import 'codemirror/mode/css/css';
+import 'codemirror/mode/diff/diff';
+import 'codemirror/mode/htmlmixed/htmlmixed';
+import 'codemirror/mode/http/http';
+import 'codemirror/mode/javascript/javascript';
+import 'codemirror/mode/jsx/jsx';
+import 'codemirror/mode/markdown/markdown';
+import 'codemirror/mode/gfm/gfm';
+import 'codemirror/mode/nginx/nginx';
+import 'codemirror/mode/php/php';
+import 'codemirror/mode/sass/sass';
+import 'codemirror/mode/shell/shell';
+import 'codemirror/mode/sql/sql';
+import 'codemirror/mode/xml/xml';
+import 'codemirror/mode/yaml/yaml';
/**
* Please note that the codemirror-standalone "runmode" addon is setting `window.CodeMirror`
diff --git a/tools/webpack/codemirror.config.js b/tools/webpack/codemirror.config.js
index aac048dccc1ef..b6e99dd289daf 100644
--- a/tools/webpack/codemirror.config.js
+++ b/tools/webpack/codemirror.config.js
@@ -6,32 +6,36 @@ const codemirrorBanner = require( './codemirror-banner' );
module.exports = ( env = { buildTarget: 'src/' } ) => {
const buildTarget = env.buildTarget || 'src/';
+ const outputPath = path.resolve( __dirname, '../../', buildTarget, 'wp-includes/js/codemirror' );
- return {
+ const optimization = {
+ minimize: true,
+ minimizer: [
+ new TerserPlugin( {
+ terserOptions: {
+ format: {
+ comments: /^!/,
+ },
+ },
+ extractComments: false,
+ } ),
+ ],
+ };
+
+ const codemirrorConfig = {
target: 'browserslist',
mode: 'production',
- entry: './tools/vendors/codemirror-entry.js',
- output: {
- path: path.resolve( __dirname, '../../', buildTarget, 'wp-includes/js/codemirror' ),
- filename: 'codemirror.min.js',
+ entry: {
+ 'codemirror.min': './tools/vendors/codemirror-entry.js',
},
- optimization: {
- minimize: true,
- minimizer: [
- new TerserPlugin( {
- terserOptions: {
- format: {
- comments: /^!/,
- },
- },
- extractComments: false,
- } ),
- ],
+ output: {
+ path: outputPath,
+ filename: '[name].js',
},
+ optimization,
externals: {
'csslint': 'window.CSSLint',
'htmlhint': 'window.HTMLHint',
- 'jshint': 'window.JSHINT',
'jsonlint': 'window.jsonlint',
},
plugins: [
@@ -42,4 +46,25 @@ module.exports = ( env = { buildTarget: 'src/' } ) => {
} ),
],
};
+
+ const espreeConfig = {
+ target: 'browserslist',
+ mode: 'production',
+ entry: {
+ 'espree.min': 'espree',
+ },
+ output: {
+ path: outputPath,
+ filename: '[name].js',
+ library: {
+ type: 'module',
+ },
+ },
+ experiments: {
+ outputModule: true,
+ },
+ optimization,
+ };
+
+ return [ codemirrorConfig, espreeConfig ];
};
From c0145eb36e7e7d00cfebbb7c8f35e388c793353e Mon Sep 17 00:00:00 2001
From: Weston Ruter
Date: Wed, 11 Feb 2026 20:14:09 +0000
Subject: [PATCH 017/145] Site Health: Add test and debug data for Opcode
Cache.
Developed in https://github.com/WordPress/wordpress-develop/pull/9260
Props rollybueno, westonruter, swissspidy, peterwilsoncc, szepeviktor, ozgursar, oglekler, johnbillion, ugyensupport, abcd95, shailu25, noruzzaman.
Fixes #63697.
git-svn-id: https://develop.svn.wordpress.org/trunk@61612 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-admin/includes/class-wp-debug-data.php | 77 +++++++++++++++++++
.../includes/class-wp-site-health.php | 62 +++++++++++++--
tests/phpunit/tests/admin/wpSiteHealth.php | 59 ++++++++++++++
3 files changed, 192 insertions(+), 6 deletions(-)
diff --git a/src/wp-admin/includes/class-wp-debug-data.php b/src/wp-admin/includes/class-wp-debug-data.php
index e7e90622dca12..98927f94e68fd 100644
--- a/src/wp-admin/includes/class-wp-debug-data.php
+++ b/src/wp-admin/includes/class-wp-debug-data.php
@@ -471,6 +471,83 @@ private static function get_wp_server(): array {
'debug' => $imagick_loaded,
);
+ // Opcode Cache.
+ if ( function_exists( 'opcache_get_status' ) ) {
+ $opcache_status = @opcache_get_status( false ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged -- Warning emitted in failure case.
+
+ if ( false === $opcache_status ) {
+ $fields['opcode_cache'] = array(
+ 'label' => __( 'Opcode cache' ),
+ 'value' => __( 'Disabled by configuration' ),
+ 'debug' => 'not available',
+ );
+ } else {
+ $fields['opcode_cache'] = array(
+ 'label' => __( 'Opcode cache' ),
+ 'value' => $opcache_status['opcache_enabled'] ? __( 'Enabled' ) : __( 'Disabled' ),
+ 'debug' => $opcache_status['opcache_enabled'],
+ );
+
+ if ( true === $opcache_status['opcache_enabled'] ) {
+ $fields['opcode_cache_memory_usage'] = array(
+ 'label' => __( 'Opcode cache memory usage' ),
+ 'value' => sprintf(
+ /* translators: 1: Used memory, 2: Total memory */
+ __( '%1$s of %2$s' ),
+ size_format( $opcache_status['memory_usage']['used_memory'] ),
+ size_format( $opcache_status['memory_usage']['free_memory'] + $opcache_status['memory_usage']['used_memory'] )
+ ),
+ 'debug' => sprintf(
+ '%s of %s',
+ $opcache_status['memory_usage']['used_memory'],
+ $opcache_status['memory_usage']['free_memory'] + $opcache_status['memory_usage']['used_memory']
+ ),
+ );
+
+ if ( 0 !== $opcache_status['interned_strings_usage']['buffer_size'] ) {
+ $fields['opcode_cache_interned_strings_usage'] = array(
+ 'label' => __( 'Opcode cache interned strings usage' ),
+ 'value' => sprintf(
+ /* translators: 1: Percentage used, 2: Total memory, 3: Free memory */
+ __( '%1$s%% of %2$s (%3$s free)' ),
+ number_format_i18n( ( $opcache_status['interned_strings_usage']['used_memory'] / $opcache_status['interned_strings_usage']['buffer_size'] ) * 100, 2 ),
+ size_format( $opcache_status['interned_strings_usage']['buffer_size'] ),
+ size_format( $opcache_status['interned_strings_usage']['free_memory'] )
+ ),
+ 'debug' => sprintf(
+ '%s%% of %s (%s free)',
+ round( ( $opcache_status['interned_strings_usage']['used_memory'] / $opcache_status['interned_strings_usage']['buffer_size'] ) * 100, 2 ),
+ $opcache_status['interned_strings_usage']['buffer_size'],
+ $opcache_status['interned_strings_usage']['free_memory']
+ ),
+ );
+ }
+
+ $fields['opcode_cache_hit_rate'] = array(
+ 'label' => __( 'Opcode cache hit rate' ),
+ 'value' => sprintf(
+ /* translators: %s: Hit rate percentage */
+ __( '%s%%' ),
+ number_format_i18n( $opcache_status['opcache_statistics']['opcache_hit_rate'], 2 )
+ ),
+ 'debug' => round( $opcache_status['opcache_statistics']['opcache_hit_rate'], 2 ),
+ );
+
+ $fields['opcode_cache_full'] = array(
+ 'label' => __( 'Is the Opcode cache full?' ),
+ 'value' => $opcache_status['cache_full'] ? __( 'Yes' ) : __( 'No' ),
+ 'debug' => $opcache_status['cache_full'],
+ );
+ }
+ }
+ } else {
+ $fields['opcode_cache'] = array(
+ 'label' => __( 'Opcode cache' ),
+ 'value' => __( 'Disabled' ),
+ 'debug' => 'not available',
+ );
+ }
+
// Pretty permalinks.
$pretty_permalinks_supported = got_url_rewrite();
diff --git a/src/wp-admin/includes/class-wp-site-health.php b/src/wp-admin/includes/class-wp-site-health.php
index dd537296a8655..93a45f56236c3 100644
--- a/src/wp-admin/includes/class-wp-site-health.php
+++ b/src/wp-admin/includes/class-wp-site-health.php
@@ -2755,6 +2755,52 @@ public function get_test_search_engine_visibility() {
return $result;
}
+ /**
+ * Tests if opcode cache is enabled and available.
+ *
+ * @since 7.0.0
+ *
+ * @return array> The test result.
+ */
+ public function get_test_opcode_cache(): array {
+ $opcode_cache_enabled = false;
+ if ( function_exists( 'opcache_get_status' ) ) {
+ $status = @opcache_get_status( false ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged -- Warning emitted in failure case.
+ if ( $status && true === $status['opcache_enabled'] ) {
+ $opcode_cache_enabled = true;
+ }
+ }
+
+ $result = array(
+ 'label' => __( 'Opcode cache is enabled' ),
+ 'status' => 'good',
+ 'badge' => array(
+ 'label' => __( 'Performance' ),
+ 'color' => 'blue',
+ ),
+ 'description' => sprintf(
+ '%s
',
+ __( 'Opcode cache improves PHP performance by storing precompiled script bytecode in memory, reducing the need for PHP to load and parse scripts on each request.' )
+ ),
+ 'actions' => sprintf(
+ '%s %s
',
+ esc_url( 'https://www.php.net/manual/en/book.opcache.php' ),
+ __( 'Learn more about OPcache.' ),
+ /* translators: Hidden accessibility text. */
+ __( '(opens in a new tab)' )
+ ),
+ 'test' => 'opcode_cache',
+ );
+
+ if ( ! $opcode_cache_enabled ) {
+ $result['status'] = 'recommended';
+ $result['label'] = __( 'Opcode cache is not enabled' );
+ $result['description'] .= '' . __( 'Enabling this cache can significantly improve the performance of your site.' ) . '
';
+ }
+
+ return $result;
+ }
+
/**
* Returns a set of tests that belong to the site status page.
*
@@ -2847,6 +2893,10 @@ public static function get_tests() {
'label' => __( 'Search Engine Visibility' ),
'test' => 'search_engine_visibility',
),
+ 'opcode_cache' => array(
+ 'label' => __( 'Opcode cache' ),
+ 'test' => 'opcode_cache',
+ ),
),
'async' => array(
'dotorg_communication' => array(
@@ -3415,14 +3465,14 @@ public function get_page_cache_headers() {
'x-srcache-fetch-status' => $cache_hit_callback,
// Generic caching proxies (Nginx, Varnish, etc.)
- 'x-cache' => $cache_hit_callback,
- 'x-cache-status' => $cache_hit_callback,
- 'x-litespeed-cache' => $cache_hit_callback,
- 'x-proxy-cache' => $cache_hit_callback,
- 'via' => '',
+ 'x-cache' => $cache_hit_callback,
+ 'x-cache-status' => $cache_hit_callback,
+ 'x-litespeed-cache' => $cache_hit_callback,
+ 'x-proxy-cache' => $cache_hit_callback,
+ 'via' => '',
// Cloudflare
- 'cf-cache-status' => $cache_hit_callback,
+ 'cf-cache-status' => $cache_hit_callback,
);
/**
diff --git a/tests/phpunit/tests/admin/wpSiteHealth.php b/tests/phpunit/tests/admin/wpSiteHealth.php
index 2d32bbb14ec4d..12b563cdfe41f 100644
--- a/tests/phpunit/tests/admin/wpSiteHealth.php
+++ b/tests/phpunit/tests/admin/wpSiteHealth.php
@@ -572,4 +572,63 @@ public static function set_autoloaded_option( $bytes = 800000 ) {
// Force autoloading so that WordPress core does not override it. See https://core.trac.wordpress.org/changeset/57920.
add_option( 'test_set_autoloaded_option', $heavy_option_string, '', true );
}
+
+ /**
+ * Tests get_test_opcode_cache() return structure.
+ *
+ * @ticket 63697
+ *
+ * @covers ::get_test_opcode_cache()
+ */
+ public function test_get_test_opcode_cache_return_structure() {
+ $result = $this->instance->get_test_opcode_cache();
+
+ $this->assertIsArray( $result );
+ $this->assertArrayHasKey( 'label', $result );
+ $this->assertArrayHasKey( 'status', $result );
+ $this->assertArrayHasKey( 'badge', $result );
+ $this->assertArrayHasKey( 'description', $result );
+ $this->assertArrayHasKey( 'actions', $result );
+ $this->assertArrayHasKey( 'test', $result );
+
+ $this->assertSame( 'opcode_cache', $result['test'] );
+ $this->assertSame(
+ array(
+ 'label' => __( 'Performance' ),
+ 'color' => 'blue',
+ ),
+ $result['badge']
+ );
+ $this->assertContains( $result['status'], array( 'good', 'recommended' ), 'Status must be good or recommended.' );
+ }
+
+ /**
+ * Tests get_test_opcode_cache() result when opcode cache is enabled or not.
+ *
+ * Covers: opcache enabled, disabled, not available, and opcache_get_status() returns false.
+ *
+ * @ticket 63697
+ *
+ * @covers ::get_test_opcode_cache()
+ */
+ public function test_get_test_opcode_cache_result_by_environment() {
+ $result = $this->instance->get_test_opcode_cache();
+
+ $opcache_enabled = false;
+ if ( function_exists( 'opcache_get_status' ) ) {
+ $status = @opcache_get_status( false ); // phpcs:ignore WordPress.PHP.NoSilencedErrors.Discouraged -- Warning emitted in failure case.
+ if ( $status && true === $status['opcache_enabled'] ) {
+ $opcache_enabled = true;
+ }
+ }
+
+ if ( $opcache_enabled ) {
+ $this->assertSame( 'good', $result['status'], 'When opcache is enabled, status should be "good".' );
+ $this->assertSame( __( 'Opcode cache is enabled' ), $result['label'] );
+ } else {
+ $this->assertSame( 'recommended', $result['status'] );
+ $this->assertSame( __( 'Opcode cache is not enabled' ), $result['label'] );
+ $this->assertStringContainsString( __( 'Enabling this cache can significantly improve the performance of your site.' ), $result['description'] );
+ }
+ }
}
From a77775692568bdf1ab6d9395d7adc1dbbbee41f2 Mon Sep 17 00:00:00 2001
From: Jb Audras
Date: Wed, 11 Feb 2026 20:26:24 +0000
Subject: [PATCH 018/145] Build/Test Tools: Update the Playground PR comment in
GitHub Actions.
This changeset removes the "Plugin and Theme Directories cannot be accessed within Playground" bullet point from the Playground Pull Request Comment GitHub Action, as it is not the case anymore.
Props audrasjb, westonruter.
Fixes #64578.
git-svn-id: https://develop.svn.wordpress.org/trunk@61613 602fd350-edb4-49c9-b593-d223f7449a82
---
.github/workflows/pull-request-comments.yml | 1 -
1 file changed, 1 deletion(-)
diff --git a/.github/workflows/pull-request-comments.yml b/.github/workflows/pull-request-comments.yml
index dc7e6e7c7a7e6..da30e2feb7f11 100644
--- a/.github/workflows/pull-request-comments.yml
+++ b/.github/workflows/pull-request-comments.yml
@@ -167,7 +167,6 @@ jobs:
[WordPress Playground](https://developer.wordpress.org/playground/) is an experimental project that creates a full WordPress instance entirely within the browser.
### Some things to be aware of
- - The Plugin and Theme Directories cannot be accessed within Playground.
- All changes will be lost when closing a tab with a Playground instance.
- All changes will be lost when refreshing the page.
- A fresh instance is created each time the link below is clicked.
From 6cb574b0f75d8a87d348d22fb3493315d5238a34 Mon Sep 17 00:00:00 2001
From: Jb Audras
Date: Wed, 11 Feb 2026 21:09:12 +0000
Subject: [PATCH 019/145] Site Health: Allow direct linking to site health
check result.
This changeset does the following changes:
- Add an ID to each accordion button
- Update the URL hash each time an accordion button is clicked
- On page load, open the related accordion when provided
This way, people can use the URL of the page to share a direct link to the site health info section they want.
Props sippis, kabir93, audrasjb, saratheonline, pratiklondhe, vgnavada, SirLouen, nikunj8866, pmbaldha, sajjad67, huzaifaalmesbah, westonruter.
Fixes #62846.
git-svn-id: https://develop.svn.wordpress.org/trunk@61614 602fd350-edb4-49c9-b593-d223f7449a82
---
src/js/_enqueues/admin/site-health.js | 18 ++++++++++++++++++
src/wp-admin/site-health-info.php | 2 +-
2 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/src/js/_enqueues/admin/site-health.js b/src/js/_enqueues/admin/site-health.js
index 416295df69b17..57d5c9cbcf289 100644
--- a/src/js/_enqueues/admin/site-health.js
+++ b/src/js/_enqueues/admin/site-health.js
@@ -44,6 +44,10 @@ jQuery( function( $ ) {
$( '.health-check-accordion' ).on( 'click', '.health-check-accordion-trigger', function() {
var isExpanded = ( 'true' === $( this ).attr( 'aria-expanded' ) );
+ if ( $( this ).prop( 'id' ) ) {
+ window.location.hash = $( this ).prop( 'id' );
+ }
+
if ( isExpanded ) {
$( this ).attr( 'aria-expanded', 'false' );
$( '#' + $( this ).attr( 'aria-controls' ) ).attr( 'hidden', true );
@@ -53,6 +57,20 @@ jQuery( function( $ ) {
}
} );
+ /* global setTimeout */
+ wp.domReady( function() {
+ // Get hash from query string and open the related accordion.
+ var hash = window.location.hash;
+
+ if ( hash ) {
+ var requestedPanel = $( hash );
+
+ if ( requestedPanel.is( '.health-check-accordion-trigger' ) ) {
+ requestedPanel.trigger( 'click' );
+ }
+ }
+ } );
+
// Site Health test handling.
$( '.site-health-view-passed' ).on( 'click', function() {
diff --git a/src/wp-admin/site-health-info.php b/src/wp-admin/site-health-info.php
index bfdd77df01553..faffb21636827 100644
--- a/src/wp-admin/site-health-info.php
+++ b/src/wp-admin/site-health-info.php
@@ -73,7 +73,7 @@
?>
-
+
Date: Wed, 11 Feb 2026 22:10:37 +0000
Subject: [PATCH 020/145] Coding Standards: Correct two ignore annotations for
`WordPress.DB.PreparedSQL`.
The `WordPress.DB.PreparedSQL` sniff contains two different error messages, which initially shared the same error code. A unique error code for the second message was added in WPCS 2.0.0.
Reference: [https://github.com/WordPress/WordPress-Coding-Standards/pull/1601 PreparedSQL: use unique errorcode for messages].
Follow-up to [43628], [43630], [43654], [44472].
Props rodrigosprimo.
See #64627.
git-svn-id: https://develop.svn.wordpress.org/trunk@61615 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-admin/includes/schema.php | 2 +-
src/wp-includes/ms-site.php | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/wp-admin/includes/schema.php b/src/wp-admin/includes/schema.php
index 7c762991b03bf..795060f28b83e 100644
--- a/src/wp-admin/includes/schema.php
+++ b/src/wp-admin/includes/schema.php
@@ -588,7 +588,7 @@ function populate_options( array $options = array() ) {
);
$keys = "'" . implode( "', '", array_keys( $options ) ) . "'";
- $existing_options = $wpdb->get_col( "SELECT option_name FROM $wpdb->options WHERE option_name in ( $keys )" ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $existing_options = $wpdb->get_col( "SELECT option_name FROM $wpdb->options WHERE option_name in ( $keys )" ); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
$insert = '';
diff --git a/src/wp-includes/ms-site.php b/src/wp-includes/ms-site.php
index 0058d1a48200d..6399dab72e881 100644
--- a/src/wp-includes/ms-site.php
+++ b/src/wp-includes/ms-site.php
@@ -832,7 +832,7 @@ function wp_uninitialize_site( $site_id ) {
$drop_tables = apply_filters( 'wpmu_drop_tables', $tables, $site->id );
foreach ( (array) $drop_tables as $table ) {
- $wpdb->query( "DROP TABLE IF EXISTS `$table`" ); // phpcs:ignore WordPress.DB.PreparedSQL.NotPrepared
+ $wpdb->query( "DROP TABLE IF EXISTS `$table`" ); // phpcs:ignore WordPress.DB.PreparedSQL.InterpolatedNotPrepared
}
/**
From cd290e34ae1aaddd3555f42dff0c382ab051aa75 Mon Sep 17 00:00:00 2001
From: Joe Dolson
Date: Thu, 12 Feb 2026 01:50:20 +0000
Subject: [PATCH 021/145] Editor: A11y: Fix featured image control naming.
The controls to set and remove a featured image in the Classic Editor use a link with no attributes to identify purpose. Triggering a modal dialog should be done using a button with proper identification.
Add `role="button"`, `aria-haspopup="dialog"`, and `aria-controls` attributes to give users appropriate information about the control behavior. Add keypress handlers for button-specific keyboard events.
Does not use a `button` element to avoid interfering with style customizations.
Props alh0319, joedolson, mukesh27, huzaifaalmesbah.
Fixes #63980.
git-svn-id: https://develop.svn.wordpress.org/trunk@61616 602fd350-edb4-49c9-b593-d223f7449a82
---
src/js/_enqueues/wp/media/editor.js | 22 +++++++++++++---------
src/wp-admin/includes/post.php | 4 ++--
2 files changed, 15 insertions(+), 11 deletions(-)
diff --git a/src/js/_enqueues/wp/media/editor.js b/src/js/_enqueues/wp/media/editor.js
index 02c993fd4bbef..1097bca966fdb 100644
--- a/src/js/_enqueues/wp/media/editor.js
+++ b/src/js/_enqueues/wp/media/editor.js
@@ -703,15 +703,19 @@
* Update the featured image id when the 'remove' link is clicked.
*/
init: function() {
- $('#postimagediv').on( 'click', '#set-post-thumbnail', function( event ) {
- event.preventDefault();
- // Stop propagation to prevent thickbox from activating.
- event.stopPropagation();
-
- wp.media.featuredImage.frame().open();
- }).on( 'click', '#remove-post-thumbnail', function() {
- wp.media.featuredImage.remove();
- return false;
+ $('#postimagediv').on( 'click keyup keydown', '#set-post-thumbnail', function( event ) {
+ if ( ( event.type === 'keyup' && event.key === ' ' ) || ( event.type === 'keydown' && event.key === 'Enter' ) || event.type === 'click' ) {
+ event.preventDefault();
+ // Stop propagation to prevent thickbox from activating.
+ event.stopPropagation();
+
+ wp.media.featuredImage.frame().open();
+ }
+ }).on( 'click keyup keydown', '#remove-post-thumbnail', function( event ) {
+ if ( ( event.type === 'keyup' && event.key === ' ' ) || ( event.type === 'keydown' && event.key === 'Enter' ) || event.type === 'click' ) {
+ wp.media.featuredImage.remove();
+ return false;
+ }
});
}
};
diff --git a/src/wp-admin/includes/post.php b/src/wp-admin/includes/post.php
index eb0029a556169..de5aa4fb7d0fa 100644
--- a/src/wp-admin/includes/post.php
+++ b/src/wp-admin/includes/post.php
@@ -1644,7 +1644,7 @@ function _wp_post_thumbnail_html( $thumbnail_id = null, $post = null ) {
$post = get_post( $post );
$post_type_object = get_post_type_object( $post->post_type );
- $set_thumbnail_link = '%s
';
+ $set_thumbnail_link = '%s
';
$upload_iframe_src = get_upload_iframe_src( 'image', $post->ID );
$content = sprintf(
@@ -1683,7 +1683,7 @@ function _wp_post_thumbnail_html( $thumbnail_id = null, $post = null ) {
$thumbnail_html
);
$content .= '' . __( 'Click the image to edit or update' ) . '
';
- $content .= '' . esc_html( $post_type_object->labels->remove_featured_image ) . '
';
+ $content .= '' . esc_html( $post_type_object->labels->remove_featured_image ) . '
';
}
}
From 4cedbfcad20d16841608f2a2b77d3c7430229e48 Mon Sep 17 00:00:00 2001
From: ramonopoly
Date: Thu, 12 Feb 2026 03:12:04 +0000
Subject: [PATCH 022/145] Patterns: Add the pattern name to pattern blocks when
they are converted
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Modifies the `resolve_pattern_blocks` function to include metadata for single-root patterns, allowing the pattern `name`, `description`, categories` metadata to be stored in the block attributes.
This enables identification of patterns within templates in the block editor for the purposes of the pattern editing functionality.
Props ramonopoly, andrewserong, talldanwp, westonruter, scruffian, huzaifaalmesbah, audrasjb.
Fixes #64123.
git-svn-id: https://develop.svn.wordpress.org/trunk@61617 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/blocks.php | 35 +++++-
.../tests/blocks/resolvePatternBlocks.php | 114 +++++++++++++++++-
2 files changed, 143 insertions(+), 6 deletions(-)
diff --git a/src/wp-includes/blocks.php b/src/wp-includes/blocks.php
index 2a9968608106a..1ff08bd56c9ee 100644
--- a/src/wp-includes/blocks.php
+++ b/src/wp-includes/blocks.php
@@ -1839,6 +1839,7 @@ function traverse_and_serialize_block( $block, $pre_callback = null, $post_callb
* Replaces patterns in a block tree with their content.
*
* @since 6.6.0
+ * @since 7.0.0 Adds metadata to attributes of single-pattern container blocks.
*
* @param array $blocks An array blocks.
*
@@ -1875,7 +1876,39 @@ function resolve_pattern_blocks( $blocks ) {
continue;
}
- $blocks_to_insert = parse_blocks( $pattern['content'] );
+ $blocks_to_insert = parse_blocks( trim( $pattern['content'] ) );
+
+ /*
+ * For single-root patterns, add the pattern name to make this a pattern instance in the editor.
+ * If the pattern has metadata, merge it with the existing metadata.
+ */
+ if ( count( $blocks_to_insert ) === 1 ) {
+ $block_metadata = $blocks_to_insert[0]['attrs']['metadata'] ?? array();
+ $block_metadata['patternName'] = $slug;
+
+ /*
+ * Merge pattern metadata with existing block metadata.
+ * Pattern metadata takes precedence, but existing block metadata
+ * is preserved as a fallback when the pattern doesn't define that field.
+ * Only the defined fields (name, description, categories) are updated;
+ * other metadata keys are preserved.
+ */
+ foreach ( array(
+ 'name' => 'title', // 'title' is the field in the pattern object 'name' is the field in the block metadata.
+ 'description' => 'description',
+ 'categories' => 'categories',
+ ) as $key => $pattern_key ) {
+ $value = $pattern[ $pattern_key ] ?? $block_metadata[ $key ] ?? null;
+ if ( $value ) {
+ $block_metadata[ $key ] = is_array( $value )
+ ? array_map( 'sanitize_text_field', $value )
+ : sanitize_text_field( $value );
+ }
+ }
+
+ $blocks_to_insert[0]['attrs']['metadata'] = $block_metadata;
+ }
+
$seen_refs[ $slug ] = true;
$prev_inner_content = $inner_content;
$inner_content = null;
diff --git a/tests/phpunit/tests/blocks/resolvePatternBlocks.php b/tests/phpunit/tests/blocks/resolvePatternBlocks.php
index b2e6fa6463f7d..4b28db4613f00 100644
--- a/tests/phpunit/tests/blocks/resolvePatternBlocks.php
+++ b/tests/phpunit/tests/blocks/resolvePatternBlocks.php
@@ -30,12 +30,74 @@ public function set_up() {
'description' => 'Recursive pattern.',
)
);
+ register_block_pattern(
+ 'core/single-root',
+ array(
+ 'title' => 'Single Root Pattern',
+ 'content' => 'Single root content',
+ 'description' => 'A single root pattern.',
+ 'categories' => array( 'text' ),
+ )
+ );
+ register_block_pattern(
+ 'core/single-root-with-forbidden-chars-in-attrs',
+ array(
+ 'title' => 'Single Root Pattern',
+ 'content' => 'Single root content',
+ 'description' => 'A single root pattern. ',
+ 'categories' => array(
+ 'text',
+ 'bad\'); DROP TABLE wp_posts;--',
+ ' ',
+ "evil\x00null\nbyte",
+ 'category with html tags',
+ ),
+ )
+ );
+ register_block_pattern(
+ 'core/with-attrs',
+ array(
+ 'title' => 'Pattern With Attrs',
+ 'content' => 'Content',
+ 'description' => 'A pattern with existing attributes.',
+ )
+ );
+ register_block_pattern(
+ 'core/nested-single',
+ array(
+ 'title' => 'Nested Pattern',
+ 'content' => 'Nested content',
+ 'description' => 'A nested single root pattern.',
+ 'categories' => array( 'featured' ),
+ )
+ );
+ register_block_pattern(
+ 'core/existing-metadata',
+ array(
+ 'title' => 'Existing Metadata Pattern',
+ 'content' => 'Existing metadata content',
+ )
+ );
+ register_block_pattern(
+ 'core/with-custom-metadata',
+ array(
+ 'title' => 'Pattern With Custom Metadata',
+ 'content' => 'Content with custom metadata',
+ 'description' => 'A pattern with custom metadata keys.',
+ 'categories' => array( 'test' ),
+ )
+ );
}
public function tear_down() {
unregister_block_pattern( 'core/test' );
unregister_block_pattern( 'core/recursive' );
-
+ unregister_block_pattern( 'core/single-root' );
+ unregister_block_pattern( 'core/single-root-with-forbidden-chars-in-attrs' );
+ unregister_block_pattern( 'core/with-attrs' );
+ unregister_block_pattern( 'core/nested-single' );
+ unregister_block_pattern( 'core/existing-metadata' );
+ unregister_block_pattern( 'core/with-custom-metadata' );
parent::tear_down();
}
@@ -60,13 +122,55 @@ public function test_should_resolve_pattern_blocks_as_expected( $blocks, $expect
public function data_should_resolve_pattern_blocks_as_expected() {
return array(
// Works without attributes, leaves the block as is.
- 'pattern with no slug attribute' => array( '', '' ),
+ 'pattern with no slug attribute' => array(
+ '',
+ '',
+ ),
// Resolves the pattern.
- 'test pattern' => array( '', 'HelloWorld' ),
+ 'test pattern' => array(
+ '',
+ 'HelloWorld',
+ ),
// Skips recursive patterns.
- 'recursive pattern' => array( '', 'Recursive' ),
+ 'recursive pattern' => array(
+ '',
+ 'Recursive',
+ ),
// Resolves the pattern within a block.
- 'pattern within a block' => array( 'BeforeAfter', 'BeforeHelloWorldAfter' ),
+ 'pattern within a block' => array(
+ 'BeforeAfter',
+ 'BeforeHelloWorldAfter',
+ ),
+ // Resolves the single-root pattern and adds metadata.
+ 'single-root pattern' => array(
+ '',
+ 'Single root content',
+ ),
+ // Existing attributes are preserved when adding metadata.
+ 'existing attributes preserved' => array(
+ '',
+ 'Content',
+ ),
+ // Resolves the nested single-root pattern and adds metadata.
+ 'nested single-root pattern' => array(
+ '',
+ 'Nested contentSingle root content',
+ ),
+ // Sanitizes fields.
+ 'sanitized pattern attrs' => array(
+ '',
+ 'Single root content',
+ ),
+ // Metadata is merged with existing metadata and existing metadata is preserved.
+ 'existing metadata preserved' => array(
+ '',
+ 'Existing metadata content',
+ ),
+ // Custom metadata keys are preserved when resolving patterns.
+ 'custom metadata preserved' => array(
+ '',
+ 'Content with custom metadata',
+ ),
);
}
}
From af5711918dd7d39b5089bf1c18f08ed7dde38ff1 Mon Sep 17 00:00:00 2001
From: ramonopoly
Date: Thu, 12 Feb 2026 04:18:09 +0000
Subject: [PATCH 023/145] WP_Theme_JSON: preserve valid non-preset settings for
lightbox when KSES filters are active
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Extends `VALID_SETTINGS` entries to also do type validation (as well as schema key validation) for the lightbox settings only.
Previously, when KSES filters were active (via `add_action( 'init', 'kses_init_filters' )`), valid non-preset settings in Global Styles were being incorrectly filtered out. For example, `lightbox.enabled` and `lightbox.allowEditing` for Image blocks.
The idea is that `VALID_SETTINGS` values can act as type validation for further valid settings.
Props ramonopoly, mmtr86, oandregal, wildworks, westonruter, andrewserong.
Fixes #64280.
git-svn-id: https://develop.svn.wordpress.org/trunk@61618 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/class-wp-theme-json.php | 49 ++++++++-
tests/phpunit/tests/theme/wpThemeJson.php | 128 ++++++++++++++++++++++
2 files changed, 175 insertions(+), 2 deletions(-)
diff --git a/src/wp-includes/class-wp-theme-json.php b/src/wp-includes/class-wp-theme-json.php
index 37134501dc1b3..427f285373198 100644
--- a/src/wp-includes/class-wp-theme-json.php
+++ b/src/wp-includes/class-wp-theme-json.php
@@ -395,6 +395,7 @@ class WP_Theme_JSON {
* @since 6.6.0 Added support for 'dimensions.aspectRatios', 'dimensions.defaultAspectRatios',
* 'typography.defaultFontSizes', and 'spacing.defaultSpacingSizes'.
* @since 6.9.0 Added support for `border.radiusSizes`.
+ * @since 7.0.0 Added type markers to the schema for boolean values.
* @var array
*/
const VALID_SETTINGS = array(
@@ -442,8 +443,8 @@ class WP_Theme_JSON {
'allowCustomContentAndWideSize' => null,
),
'lightbox' => array(
- 'enabled' => null,
- 'allowEditing' => null,
+ 'enabled' => true,
+ 'allowEditing' => true,
),
'position' => array(
'fixed' => null,
@@ -1302,6 +1303,7 @@ protected static function get_blocks_metadata() {
* It is recursive and modifies the input in-place.
*
* @since 5.8.0
+ * @since 7.0.0 Added type validation for boolean values.
*
* @param array $tree Input to process.
* @param array $schema Schema to adhere to.
@@ -1319,6 +1321,17 @@ protected static function remove_keys_not_in_schema( $tree, $schema ) {
continue;
}
+ // Validate type if schema specifies a boolean marker.
+ if ( is_bool( $schema[ $key ] ) ) {
+ // Schema expects a boolean value - validate the input matches.
+ if ( ! is_bool( $value ) ) {
+ unset( $tree[ $key ] );
+ continue;
+ }
+ // Type matches, keep the value and continue to next key.
+ continue;
+ }
+
if ( is_array( $schema[ $key ] ) ) {
if ( ! is_array( $value ) ) {
unset( $tree[ $key ] );
@@ -3752,6 +3765,35 @@ protected static function remove_insecure_inner_block_styles( $blocks ) {
return $sanitized;
}
+ /**
+ * Preserves valid typed settings from input to output based on type markers in schema.
+ *
+ * Recursively iterates through the schema and validates/preserves settings
+ * that have type markers (e.g., boolean) in VALID_SETTINGS.
+ *
+ * @since 7.0.0
+ *
+ * @param array $input Input settings to process.
+ * @param array $output Output settings array (passed by reference).
+ * @param array $schema Schema to validate against (typically VALID_SETTINGS).
+ * @param array $path Current path in the schema (for recursive calls).
+ */
+ private static function preserve_valid_typed_settings( $input, &$output, $schema, $path = array() ) {
+ foreach ( $schema as $key => $schema_value ) {
+ $current_path = array_merge( $path, array( $key ) );
+
+ // Validate boolean type markers.
+ if ( is_bool( $schema_value ) ) {
+ $value = _wp_array_get( $input, $current_path, null );
+ if ( is_bool( $value ) ) {
+ _wp_array_set( $output, $current_path, $value ); // Preserve boolean value.
+ }
+ } elseif ( is_array( $schema_value ) ) {
+ self::preserve_valid_typed_settings( $input, $output, $schema_value, $current_path ); // Recurse into nested structure.
+ }
+ }
+ }
+
/**
* Processes a setting node and returns the same node
* without the insecure settings.
@@ -3811,6 +3853,9 @@ protected static function remove_insecure_settings( $input ) {
// Ensure indirect properties not included in any `PRESETS_METADATA` value are allowed.
static::remove_indirect_properties( $input, $output );
+ // Preserve all valid settings that have type markers in VALID_SETTINGS.
+ self::preserve_valid_typed_settings( $input, $output, static::VALID_SETTINGS );
+
return $output;
}
diff --git a/tests/phpunit/tests/theme/wpThemeJson.php b/tests/phpunit/tests/theme/wpThemeJson.php
index 965210a80afbe..af9722035ac4f 100644
--- a/tests/phpunit/tests/theme/wpThemeJson.php
+++ b/tests/phpunit/tests/theme/wpThemeJson.php
@@ -6905,4 +6905,132 @@ public function test_block_pseudo_selectors_with_elements() {
$expected = ':root :where(.wp-block-button .wp-block-button__link){background-color: blue;color: white;}:root :where(.wp-block-button .wp-block-button__link:hover){background-color: white;color: blue;}:root :where(.wp-block-button .wp-block-button__link .wp-element-button,.wp-block-button .wp-block-button__link .wp-block-button__link){color: green;}:root :where(.wp-block-button .wp-block-button__link .wp-element-button:hover,.wp-block-button .wp-block-button__link .wp-block-button__link:hover){color: orange;}';
$this->assertSame( $expected, $theme_json->get_stylesheet( array( 'styles' ), null, array( 'skip_root_layout_styles' => true ) ) );
}
+
+ /**
+ * @covers WP_Theme_JSON::sanitize
+ * @covers WP_Theme_JSON::remove_keys_not_in_schema
+ *
+ * @ticket 64280
+ */
+ public function test_sanitize_preserves_boolean_values_when_schema_expects_boolean() {
+ $theme_json = new WP_Theme_JSON(
+ array(
+ 'version' => WP_Theme_JSON::LATEST_SCHEMA,
+ 'settings' => array(
+ 'lightbox' => array(
+ 'enabled' => true,
+ 'allowEditing' => false,
+ ),
+ ),
+ )
+ );
+
+ $settings = $theme_json->get_settings();
+ $this->assertTrue( $settings['lightbox']['enabled'], 'Enabled should be true' );
+ $this->assertFalse( $settings['lightbox']['allowEditing'], 'Allow editing should be false' );
+ }
+
+ /**
+ * @covers WP_Theme_JSON::sanitize
+ * @covers WP_Theme_JSON::remove_keys_not_in_schema
+ *
+ * @ticket 64280
+ */
+ public function test_sanitize_removes_non_boolean_values_when_schema_expects_boolean() {
+ $theme_json = new WP_Theme_JSON(
+ array(
+ 'version' => WP_Theme_JSON::LATEST_SCHEMA,
+ 'settings' => array(
+ 'lightbox' => array(
+ 'enabled' => 'not-a-boolean',
+ 'allowEditing' => 123,
+ ),
+ ),
+ )
+ );
+
+ $settings = $theme_json->get_settings();
+ $this->assertArrayNotHasKey( 'enabled', $settings['lightbox'] ?? array(), 'Enabled should be removed' );
+ $this->assertArrayNotHasKey( 'allowEditing', $settings['lightbox'] ?? array(), 'Allow editing should be removed' );
+ }
+
+ /**
+ * @covers WP_Theme_JSON::sanitize
+ * @covers WP_Theme_JSON::remove_keys_not_in_schema
+ *
+ * @ticket 64280
+ */
+ public function test_sanitize_preserves_boolean_values_in_block_settings() {
+ $theme_json = new WP_Theme_JSON(
+ array(
+ 'version' => WP_Theme_JSON::LATEST_SCHEMA,
+ 'settings' => array(
+ 'blocks' => array(
+ 'core/image' => array(
+ 'lightbox' => array(
+ 'enabled' => true,
+ 'allowEditing' => false,
+ ),
+ ),
+ ),
+ ),
+ )
+ );
+
+ $settings = $theme_json->get_settings();
+ $this->assertTrue( $settings['blocks']['core/image']['lightbox']['enabled'], 'Enabled should be true' );
+ $this->assertFalse( $settings['blocks']['core/image']['lightbox']['allowEditing'], 'Allow editing should be false' );
+ }
+
+ /**
+ * @covers WP_Theme_JSON::sanitize
+ * @covers WP_Theme_JSON::remove_keys_not_in_schema
+ *
+ * @ticket 64280
+ */
+ public function test_sanitize_removes_non_boolean_values_in_block_settings() {
+ $theme_json = new WP_Theme_JSON(
+ array(
+ 'version' => WP_Theme_JSON::LATEST_SCHEMA,
+ 'settings' => array(
+ 'blocks' => array(
+ 'core/image' => array(
+ 'lightbox' => array(
+ 'enabled' => 'string-value',
+ 'allowEditing' => array( 'not', 'a', 'boolean' ),
+ ),
+ ),
+ ),
+ ),
+ )
+ );
+
+ $settings = $theme_json->get_settings();
+ $lightbox = $settings['blocks']['core/image']['lightbox'] ?? array();
+ $this->assertArrayNotHasKey( 'enabled', $lightbox, 'Enabled should be removed' );
+ $this->assertArrayNotHasKey( 'allowEditing', $lightbox, 'Allow editing should be removed' );
+ }
+
+ /**
+ * @covers WP_Theme_JSON::sanitize
+ * @covers WP_Theme_JSON::remove_keys_not_in_schema
+ *
+ * @ticket 64280
+ */
+ public function test_sanitize_preserves_null_schema_behavior() {
+ // Test that settings with null in schema (no type validation) still accept any type.
+ $theme_json = new WP_Theme_JSON(
+ array(
+ 'version' => WP_Theme_JSON::LATEST_SCHEMA,
+ 'settings' => array(
+ 'appearanceTools' => 'string-value', // null in schema, should accept any type.
+ 'custom' => array( 'nested' => 'value' ), // null in schema, should accept any type.
+ ),
+ )
+ );
+
+ $settings = $theme_json->get_settings();
+ $this->assertSame( 'string-value', $settings['appearanceTools'], 'Appearance tools should be string value' );
+ $this->assertSame( array( 'nested' => 'value' ), $settings['custom'], 'Custom should be array value' );
+ }
}
From 5ca0471d35aa13ad95d4843cc6a3036c71ab3387 Mon Sep 17 00:00:00 2001
From: ramonopoly
Date: Thu, 12 Feb 2026 05:06:08 +0000
Subject: [PATCH 024/145] Block Supports: Add width to dimensions supports
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR introduces `dimensions.width` to the list of available block supports.
This block support enables, in the future, the removal of the custom width and height controls in blocks such as Button, Column and many others in favor of customizations via block supports.
Props aaronrobertshaw, andrewserong, ramonopoly, welcher, mamaduka, wildworks, youknowriad, isabel_brison.
Fixes #64200.
git-svn-id: https://develop.svn.wordpress.org/trunk@61619 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/block-supports/dimensions.php | 29 ++++----
src/wp-includes/class-wp-theme-json.php | 10 +++
.../style-engine/class-wp-style-engine.php | 6 ++
.../wpApplyDimensionsSupport.php | 71 +++++++++++++++++++
tests/phpunit/tests/theme/wpThemeJson.php | 2 +
5 files changed, 106 insertions(+), 12 deletions(-)
diff --git a/src/wp-includes/block-supports/dimensions.php b/src/wp-includes/block-supports/dimensions.php
index 768fa5d14a429..90e8ad7bd52cb 100644
--- a/src/wp-includes/block-supports/dimensions.php
+++ b/src/wp-includes/block-supports/dimensions.php
@@ -51,27 +51,32 @@ function wp_register_dimensions_support( $block_type ) {
* @return array Block dimensions CSS classes and inline styles.
*/
function wp_apply_dimensions_support( $block_type, $block_attributes ) {
- if ( wp_should_skip_block_supports_serialization( $block_type, 'dimensions' ) ) {
- return array();
- }
-
$attributes = array();
- // Width support to be added in near future.
+ if ( wp_should_skip_block_supports_serialization( $block_type, 'dimensions' ) ) {
+ return $attributes;
+ }
- $has_min_height_support = block_has_support( $block_type, array( 'dimensions', 'minHeight' ), false );
- $block_styles = $block_attributes['style'] ?? null;
+ $block_styles = $block_attributes['style'] ?? null;
if ( ! $block_styles ) {
return $attributes;
}
- $skip_min_height = wp_should_skip_block_supports_serialization( $block_type, 'dimensions', 'minHeight' );
- $dimensions_block_styles = array();
- $dimensions_block_styles['minHeight'] = null;
- if ( $has_min_height_support && ! $skip_min_height ) {
- $dimensions_block_styles['minHeight'] = $block_styles['dimensions']['minHeight'] ?? null;
+ $dimensions_block_styles = array();
+ $supported_features = array( 'minHeight', 'width' );
+
+ foreach ( $supported_features as $feature ) {
+ $has_support = block_has_support( $block_type, array( 'dimensions', $feature ), false );
+ $skip_serialization = wp_should_skip_block_supports_serialization( $block_type, 'dimensions', $feature );
+
+ $dimensions_block_styles[ $feature ] = null;
+
+ if ( $has_support && ! $skip_serialization ) {
+ $dimensions_block_styles[ $feature ] = $block_styles['dimensions'][ $feature ] ?? null;
+ }
}
+
$styles = wp_style_engine_get_styles( array( 'dimensions' => $dimensions_block_styles ) );
if ( ! empty( $styles['css'] ) ) {
diff --git a/src/wp-includes/class-wp-theme-json.php b/src/wp-includes/class-wp-theme-json.php
index 427f285373198..f4a2475bfa395 100644
--- a/src/wp-includes/class-wp-theme-json.php
+++ b/src/wp-includes/class-wp-theme-json.php
@@ -237,6 +237,7 @@ class WP_Theme_JSON {
* @since 6.5.0 Added `aspect-ratio` property.
* @since 6.6.0 Added `background-[image|position|repeat|size]` properties.
* @since 6.7.0 Added `background-attachment` property.
+ * @since 7.0.0 Added `dimensions.width`.
* @var array
*/
const PROPERTIES_METADATA = array(
@@ -301,6 +302,7 @@ class WP_Theme_JSON {
'text-transform' => array( 'typography', 'textTransform' ),
'filter' => array( 'filter', 'duotone' ),
'box-shadow' => array( 'shadow' ),
+ 'width' => array( 'dimensions', 'width' ),
'writing-mode' => array( 'typography', 'writingMode' ),
);
@@ -396,6 +398,7 @@ class WP_Theme_JSON {
* 'typography.defaultFontSizes', and 'spacing.defaultSpacingSizes'.
* @since 6.9.0 Added support for `border.radiusSizes`.
* @since 7.0.0 Added type markers to the schema for boolean values.
+ * Added support for `dimensions.width`.
* @var array
*/
const VALID_SETTINGS = array(
@@ -435,6 +438,7 @@ class WP_Theme_JSON {
'aspectRatios' => null,
'defaultAspectRatios' => null,
'minHeight' => null,
+ 'width' => null,
),
'layout' => array(
'contentSize' => null,
@@ -528,6 +532,7 @@ class WP_Theme_JSON {
* @since 6.3.0 Added support for `typography.textColumns`.
* @since 6.5.0 Added support for `dimensions.aspectRatio`.
* @since 6.6.0 Added `background` sub properties to top-level only.
+ * @since 7.0.0 Added support for `dimensions.width`.
* @var array
*/
const VALID_STYLES = array(
@@ -556,6 +561,7 @@ class WP_Theme_JSON {
'dimensions' => array(
'aspectRatio' => null,
'minHeight' => null,
+ 'width' => null,
),
'filter' => array(
'duotone' => null,
@@ -655,11 +661,13 @@ class WP_Theme_JSON {
* generated under their own feature level selector rather than the block's.
*
* @since 6.1.0
+ * @since 7.0.0 Added support for `dimensions`.
* @var string[]
*/
const BLOCK_SUPPORT_FEATURE_LEVEL_SELECTORS = array(
'__experimentalBorder' => 'border',
'color' => 'color',
+ 'dimensions' => 'dimensions',
'spacing' => 'spacing',
'typography' => 'typography',
);
@@ -764,6 +772,7 @@ public static function get_element_class_name( $element ) {
* @since 6.2.0 Added `dimensions.minHeight` and `position.sticky`.
* @since 6.4.0 Added `background.backgroundImage`.
* @since 6.5.0 Added `background.backgroundSize` and `dimensions.aspectRatio`.
+ * @since 7.0.0 Added `dimensions.width`.
* @var array
*/
const APPEARANCE_TOOLS_OPT_INS = array(
@@ -779,6 +788,7 @@ public static function get_element_class_name( $element ) {
array( 'color', 'caption' ),
array( 'dimensions', 'aspectRatio' ),
array( 'dimensions', 'minHeight' ),
+ array( 'dimensions', 'width' ),
array( 'position', 'sticky' ),
array( 'spacing', 'blockGap' ),
array( 'spacing', 'margin' ),
diff --git a/src/wp-includes/style-engine/class-wp-style-engine.php b/src/wp-includes/style-engine/class-wp-style-engine.php
index f47c349aecbe3..1526874257531 100644
--- a/src/wp-includes/style-engine/class-wp-style-engine.php
+++ b/src/wp-includes/style-engine/class-wp-style-engine.php
@@ -219,6 +219,12 @@ final class WP_Style_Engine {
'spacing' => '--wp--preset--spacing--$slug',
),
),
+ 'width' => array(
+ 'property_keys' => array(
+ 'default' => 'width',
+ ),
+ 'path' => array( 'dimensions', 'width' ),
+ ),
),
'spacing' => array(
'padding' => array(
diff --git a/tests/phpunit/tests/block-supports/wpApplyDimensionsSupport.php b/tests/phpunit/tests/block-supports/wpApplyDimensionsSupport.php
index a4f2973a06934..246d6ca7f4832 100644
--- a/tests/phpunit/tests/block-supports/wpApplyDimensionsSupport.php
+++ b/tests/phpunit/tests/block-supports/wpApplyDimensionsSupport.php
@@ -100,4 +100,75 @@ public function data_minimum_height_block_support() {
),
);
}
+
+ /**
+ * Tests that width block support works as expected.
+ *
+ * @ticket 64200
+ *
+ * @covers ::wp_apply_dimensions_support
+ *
+ * @dataProvider data_width_block_support
+ *
+ * @param string $block_name The test block name to register.
+ * @param mixed $dimensions The dimensions block support settings.
+ * @param mixed $expected The expected results.
+ */
+ public function test_width_block_support( $block_name, $dimensions, $expected ) {
+ $this->test_block_name = $block_name;
+ register_block_type(
+ $this->test_block_name,
+ array(
+ 'api_version' => 2,
+ 'attributes' => array(
+ 'style' => array(
+ 'type' => 'object',
+ ),
+ ),
+ 'supports' => array(
+ 'dimensions' => $dimensions,
+ ),
+ )
+ );
+ $registry = WP_Block_Type_Registry::get_instance();
+ $block_type = $registry->get_registered( $this->test_block_name );
+ $block_attrs = array(
+ 'style' => array(
+ 'dimensions' => array(
+ 'width' => '300px',
+ ),
+ ),
+ );
+
+ $actual = wp_apply_dimensions_support( $block_type, $block_attrs );
+
+ $this->assertSame( $expected, $actual );
+ }
+
+ /**
+ * Data provider.
+ *
+ * @return array
+ */
+ public function data_width_block_support() {
+ return array(
+ 'style is applied' => array(
+ 'block_name' => 'test/width-style-is-applied',
+ 'dimensions' => array(
+ 'width' => true,
+ ),
+ 'expected' => array(
+ 'style' => 'width:300px;',
+ ),
+ ),
+ 'style output is skipped when individual feature serialization is skipped' => array(
+ 'block_name' => 'test/width-with-individual-skipped-serialization-block-supports',
+ 'dimensions' => array(
+ 'width' => true,
+ '__experimentalSkipSerialization' => array( 'width' ),
+ ),
+ 'expected' => array(),
+ ),
+ );
+ }
}
diff --git a/tests/phpunit/tests/theme/wpThemeJson.php b/tests/phpunit/tests/theme/wpThemeJson.php
index af9722035ac4f..1b9eba5d12740 100644
--- a/tests/phpunit/tests/theme/wpThemeJson.php
+++ b/tests/phpunit/tests/theme/wpThemeJson.php
@@ -281,6 +281,7 @@ public function test_get_settings_appearance_true_opts_in() {
'dimensions' => array(
'aspectRatio' => true,
'minHeight' => true,
+ 'width' => true,
),
'position' => array(
'sticky' => true,
@@ -320,6 +321,7 @@ public function test_get_settings_appearance_true_opts_in() {
'dimensions' => array(
'aspectRatio' => true,
'minHeight' => true,
+ 'width' => true,
),
'position' => array(
'sticky' => true,
From 3fe3acf0e675537f4a3765405249931aaaf895a6 Mon Sep 17 00:00:00 2001
From: ramonopoly
Date: Thu, 12 Feb 2026 05:43:12 +0000
Subject: [PATCH 025/145] Block Supports: Add height to dimensions supports
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This PR introduces `dimensions.height` to the list of available block supports.
This block support enables, in the future, the removal of the custom height controls in blocks such as Image, Spacer and others in favor of customizations via block supports.
Props aaronrobertshaw, andrewserong, ramonopoly, welcher, wildworks, youknowriad.
Fixes #64202.
git-svn-id: https://develop.svn.wordpress.org/trunk@61620 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/block-supports/dimensions.php | 2 +-
src/wp-includes/class-wp-theme-json.php | 12 ++--
.../style-engine/class-wp-style-engine.php | 6 ++
.../wpApplyDimensionsSupport.php | 71 +++++++++++++++++++
tests/phpunit/tests/theme/wpThemeJson.php | 2 +
5 files changed, 88 insertions(+), 5 deletions(-)
diff --git a/src/wp-includes/block-supports/dimensions.php b/src/wp-includes/block-supports/dimensions.php
index 90e8ad7bd52cb..aad482f31ff2f 100644
--- a/src/wp-includes/block-supports/dimensions.php
+++ b/src/wp-includes/block-supports/dimensions.php
@@ -64,7 +64,7 @@ function wp_apply_dimensions_support( $block_type, $block_attributes ) {
}
$dimensions_block_styles = array();
- $supported_features = array( 'minHeight', 'width' );
+ $supported_features = array( 'minHeight', 'height', 'width' );
foreach ( $supported_features as $feature ) {
$has_support = block_has_support( $block_type, array( 'dimensions', $feature ), false );
diff --git a/src/wp-includes/class-wp-theme-json.php b/src/wp-includes/class-wp-theme-json.php
index f4a2475bfa395..9bec104aed38e 100644
--- a/src/wp-includes/class-wp-theme-json.php
+++ b/src/wp-includes/class-wp-theme-json.php
@@ -237,7 +237,7 @@ class WP_Theme_JSON {
* @since 6.5.0 Added `aspect-ratio` property.
* @since 6.6.0 Added `background-[image|position|repeat|size]` properties.
* @since 6.7.0 Added `background-attachment` property.
- * @since 7.0.0 Added `dimensions.width`.
+ * @since 7.0.0 Added `dimensions.width` and `dimensions.height`.
* @var array
*/
const PROPERTIES_METADATA = array(
@@ -302,6 +302,7 @@ class WP_Theme_JSON {
'text-transform' => array( 'typography', 'textTransform' ),
'filter' => array( 'filter', 'duotone' ),
'box-shadow' => array( 'shadow' ),
+ 'height' => array( 'dimensions', 'height' ),
'width' => array( 'dimensions', 'width' ),
'writing-mode' => array( 'typography', 'writingMode' ),
);
@@ -398,7 +399,7 @@ class WP_Theme_JSON {
* 'typography.defaultFontSizes', and 'spacing.defaultSpacingSizes'.
* @since 6.9.0 Added support for `border.radiusSizes`.
* @since 7.0.0 Added type markers to the schema for boolean values.
- * Added support for `dimensions.width`.
+ * Added support for `dimensions.width` and `dimensions.height`.
* @var array
*/
const VALID_SETTINGS = array(
@@ -437,6 +438,7 @@ class WP_Theme_JSON {
'aspectRatio' => null,
'aspectRatios' => null,
'defaultAspectRatios' => null,
+ 'height' => null,
'minHeight' => null,
'width' => null,
),
@@ -532,7 +534,7 @@ class WP_Theme_JSON {
* @since 6.3.0 Added support for `typography.textColumns`.
* @since 6.5.0 Added support for `dimensions.aspectRatio`.
* @since 6.6.0 Added `background` sub properties to top-level only.
- * @since 7.0.0 Added support for `dimensions.width`.
+ * @since 7.0.0 Added support for `dimensions.width` and `dimensions.height`.
* @var array
*/
const VALID_STYLES = array(
@@ -560,6 +562,7 @@ class WP_Theme_JSON {
),
'dimensions' => array(
'aspectRatio' => null,
+ 'height' => null,
'minHeight' => null,
'width' => null,
),
@@ -772,7 +775,7 @@ public static function get_element_class_name( $element ) {
* @since 6.2.0 Added `dimensions.minHeight` and `position.sticky`.
* @since 6.4.0 Added `background.backgroundImage`.
* @since 6.5.0 Added `background.backgroundSize` and `dimensions.aspectRatio`.
- * @since 7.0.0 Added `dimensions.width`.
+ * @since 7.0.0 Added `dimensions.width` and `dimensions.height`.
* @var array
*/
const APPEARANCE_TOOLS_OPT_INS = array(
@@ -787,6 +790,7 @@ public static function get_element_class_name( $element ) {
array( 'color', 'button' ),
array( 'color', 'caption' ),
array( 'dimensions', 'aspectRatio' ),
+ array( 'dimensions', 'height' ),
array( 'dimensions', 'minHeight' ),
array( 'dimensions', 'width' ),
array( 'position', 'sticky' ),
diff --git a/src/wp-includes/style-engine/class-wp-style-engine.php b/src/wp-includes/style-engine/class-wp-style-engine.php
index 1526874257531..101e8b74385de 100644
--- a/src/wp-includes/style-engine/class-wp-style-engine.php
+++ b/src/wp-includes/style-engine/class-wp-style-engine.php
@@ -210,6 +210,12 @@ final class WP_Style_Engine {
'has-aspect-ratio' => true,
),
),
+ 'height' => array(
+ 'property_keys' => array(
+ 'default' => 'height',
+ ),
+ 'path' => array( 'dimensions', 'height' ),
+ ),
'minHeight' => array(
'property_keys' => array(
'default' => 'min-height',
diff --git a/tests/phpunit/tests/block-supports/wpApplyDimensionsSupport.php b/tests/phpunit/tests/block-supports/wpApplyDimensionsSupport.php
index 246d6ca7f4832..897bcd0dd04f5 100644
--- a/tests/phpunit/tests/block-supports/wpApplyDimensionsSupport.php
+++ b/tests/phpunit/tests/block-supports/wpApplyDimensionsSupport.php
@@ -171,4 +171,75 @@ public function data_width_block_support() {
),
);
}
+
+ /**
+ * Tests that height block support works as expected.
+ *
+ * @ticket 64202
+ *
+ * @covers ::wp_apply_dimensions_support
+ *
+ * @dataProvider data_height_block_support
+ *
+ * @param string $block_name The test block name to register.
+ * @param mixed $dimensions The dimensions block support settings.
+ * @param mixed $expected The expected results.
+ */
+ public function test_height_block_support( $block_name, $dimensions, $expected ) {
+ $this->test_block_name = $block_name;
+ register_block_type(
+ $this->test_block_name,
+ array(
+ 'api_version' => 2,
+ 'attributes' => array(
+ 'style' => array(
+ 'type' => 'object',
+ ),
+ ),
+ 'supports' => array(
+ 'dimensions' => $dimensions,
+ ),
+ )
+ );
+ $registry = WP_Block_Type_Registry::get_instance();
+ $block_type = $registry->get_registered( $this->test_block_name );
+ $block_attrs = array(
+ 'style' => array(
+ 'dimensions' => array(
+ 'height' => '400px',
+ ),
+ ),
+ );
+
+ $actual = wp_apply_dimensions_support( $block_type, $block_attrs );
+
+ $this->assertSame( $expected, $actual );
+ }
+
+ /**
+ * Data provider.
+ *
+ * @return array
+ */
+ public function data_height_block_support() {
+ return array(
+ 'style is applied' => array(
+ 'block_name' => 'test/height-style-is-applied',
+ 'dimensions' => array(
+ 'height' => true,
+ ),
+ 'expected' => array(
+ 'style' => 'height:400px;',
+ ),
+ ),
+ 'style output is skipped when individual feature serialization is skipped' => array(
+ 'block_name' => 'test/height-with-individual-skipped-serialization-block-supports',
+ 'dimensions' => array(
+ 'height' => true,
+ '__experimentalSkipSerialization' => array( 'height' ),
+ ),
+ 'expected' => array(),
+ ),
+ );
+ }
}
diff --git a/tests/phpunit/tests/theme/wpThemeJson.php b/tests/phpunit/tests/theme/wpThemeJson.php
index 1b9eba5d12740..1b591c45e57cb 100644
--- a/tests/phpunit/tests/theme/wpThemeJson.php
+++ b/tests/phpunit/tests/theme/wpThemeJson.php
@@ -280,6 +280,7 @@ public function test_get_settings_appearance_true_opts_in() {
),
'dimensions' => array(
'aspectRatio' => true,
+ 'height' => true,
'minHeight' => true,
'width' => true,
),
@@ -320,6 +321,7 @@ public function test_get_settings_appearance_true_opts_in() {
),
'dimensions' => array(
'aspectRatio' => true,
+ 'height' => true,
'minHeight' => true,
'width' => true,
),
From 94079fdc34d1c1647c47cd81aa0d960d52b51918 Mon Sep 17 00:00:00 2001
From: Weston Ruter
Date: Thu, 12 Feb 2026 07:40:48 +0000
Subject: [PATCH 026/145] Code Modernization: Use null coalescing operator and
improve readability of conditional in
`WP_Theme_JSON::get_styles_for_block()`.
Developed in https://github.com/WordPress/wordpress-develop/pull/10902
Follow-up to [61607].
Props soean, westonruter, sergeybiryukov, mukesh27.
See #63430, #64263.
git-svn-id: https://develop.svn.wordpress.org/trunk@61621 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/class-wp-theme-json.php | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/src/wp-includes/class-wp-theme-json.php b/src/wp-includes/class-wp-theme-json.php
index 9bec104aed38e..e5cd59ca73878 100644
--- a/src/wp-includes/class-wp-theme-json.php
+++ b/src/wp-includes/class-wp-theme-json.php
@@ -2941,7 +2941,13 @@ static function ( $split_selector ) use ( $clean_style_variation_selector ) {
$style_variation_declarations[ $style_variation['selector'] ] = static::compute_style_properties( $style_variation_node, $settings, null, $this->theme_json );
// Process pseudo-selectors for this variation (e.g., :hover, :focus)
- $block_name = isset( $block_metadata['name'] ) ? $block_metadata['name'] : ( in_array( 'blocks', $block_metadata['path'], true ) && count( $block_metadata['path'] ) >= 3 ? $block_metadata['path'][2] : null );
+ if ( isset( $block_metadata['name'] ) ) {
+ $block_name = $block_metadata['name'];
+ } elseif ( in_array( 'blocks', $block_metadata['path'], true ) && count( $block_metadata['path'] ) >= 3 ) {
+ $block_name = $block_metadata['path'][2];
+ } else {
+ $block_name = null;
+ }
$variation_pseudo_declarations = static::process_pseudo_selectors( $style_variation_node, $style_variation['selector'], $settings, $block_name );
$style_variation_declarations = array_merge( $style_variation_declarations, $variation_pseudo_declarations );
@@ -3030,7 +3036,7 @@ static function ( $pseudo_selector ) use ( $selector ) {
// For block pseudo-selectors, we need to get the block data first, then access the pseudo-selector
$block_name = $block_metadata['path'][2]; // 'core/button'
$block_data = _wp_array_get( $this->theme_json, array( 'styles', 'blocks', $block_name ), array() );
- $pseudo_data = isset( $block_data[ $block_pseudo_selector ] ) ? $block_data[ $block_pseudo_selector ] : array();
+ $pseudo_data = $block_data[ $block_pseudo_selector ] ?? array();
$declarations = static::compute_style_properties( $pseudo_data, $settings, null, $this->theme_json, $selector, $use_root_padding );
} else {
From 2152d6359d0bfffff8bde51079a4497d1b790560 Mon Sep 17 00:00:00 2001
From: Aki Hamano
Date: Thu, 12 Feb 2026 10:48:28 +0000
Subject: [PATCH 027/145] Editor: Update Google Fonts API endpoint for
WordPress 7.0.
Props dd32, mikachan, peterwilsoncc, wildworks.
Fixes #64564.
git-svn-id: https://develop.svn.wordpress.org/trunk@61622 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/fonts.php | 2 +-
.../fonts/font-library/wpRestFontFacesController.php | 2 +-
.../font-library/wpRestFontFamiliesController.php | 10 +++++-----
3 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/wp-includes/fonts.php b/src/wp-includes/fonts.php
index a1271851e975d..9858eb8351318 100644
--- a/src/wp-includes/fonts.php
+++ b/src/wp-includes/fonts.php
@@ -266,7 +266,7 @@ function _wp_register_default_font_collections() {
array(
'name' => _x( 'Google Fonts', 'font collection name' ),
'description' => __( 'Install from Google Fonts. Fonts are copied to and served from your site.' ),
- 'font_families' => 'https://s.w.org/images/fonts/wp-6.9/collections/google-fonts-with-preview.json',
+ 'font_families' => 'https://s.w.org/images/fonts/wp-7.0/collections/google-fonts-with-preview.json',
'categories' => array(
array(
'name' => _x( 'Sans Serif', 'font category' ),
diff --git a/tests/phpunit/tests/fonts/font-library/wpRestFontFacesController.php b/tests/phpunit/tests/fonts/font-library/wpRestFontFacesController.php
index 63a5f18e14040..3d86e0b164f99 100644
--- a/tests/phpunit/tests/fonts/font-library/wpRestFontFacesController.php
+++ b/tests/phpunit/tests/fonts/font-library/wpRestFontFacesController.php
@@ -583,7 +583,7 @@ public function test_create_item_with_all_properties() {
'lineGapOverride' => '10%',
'sizeAdjust' => '90%',
'unicodeRange' => 'U+0025-00FF, U+4??',
- 'preview' => 'https://s.w.org/images/fonts/wp-6.9/previews/open-sans/open-sans-400-normal.svg',
+ 'preview' => 'https://s.w.org/images/fonts/wp-7.0/previews/open-sans/open-sans-400-normal.svg',
'src' => 'https://fonts.gstatic.com/s/open-sans/v30/KFOkCnqEu92Fr1MmgWxPKTM1K9nz.ttf',
);
diff --git a/tests/phpunit/tests/fonts/font-library/wpRestFontFamiliesController.php b/tests/phpunit/tests/fonts/font-library/wpRestFontFamiliesController.php
index c63f9814719a0..41d1de3b89d4b 100644
--- a/tests/phpunit/tests/fonts/font-library/wpRestFontFamiliesController.php
+++ b/tests/phpunit/tests/fonts/font-library/wpRestFontFamiliesController.php
@@ -28,7 +28,7 @@ class Tests_REST_WpRestFontFamiliesController extends WP_Test_REST_Controller_Te
'name' => 'Open Sans',
'slug' => 'open-sans',
'fontFamily' => '"Open Sans", sans-serif',
- 'preview' => 'https://s.w.org/images/fonts/wp-6.9/previews/open-sans/open-sans-400-normal.svg',
+ 'preview' => 'https://s.w.org/images/fonts/wp-7.0/previews/open-sans/open-sans-400-normal.svg',
);
public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
@@ -48,7 +48,7 @@ public static function wpSetUpBeforeClass( WP_UnitTest_Factory $factory ) {
'name' => 'Open Sans',
'slug' => 'open-sans',
'fontFamily' => '"Open Sans", sans-serif',
- 'preview' => 'https://s.w.org/images/fonts/wp-6.9/previews/open-sans/open-sans-400-normal.svg',
+ 'preview' => 'https://s.w.org/images/fonts/wp-7.0/previews/open-sans/open-sans-400-normal.svg',
)
);
self::$font_family_id2 = self::create_font_family_post(
@@ -665,7 +665,7 @@ public function test_create_item_no_permission() {
'name' => 'Open Sans',
'slug' => 'open-sans',
'fontFamily' => '"Open Sans", sans-serif',
- 'preview' => 'https://s.w.org/images/fonts/wp-6.9/previews/open-sans/open-sans-400-normal.svg',
+ 'preview' => 'https://s.w.org/images/fonts/wp-7.0/previews/open-sans/open-sans-400-normal.svg',
)
)
);
@@ -682,7 +682,7 @@ public function test_update_item() {
$settings = array(
'name' => 'Open Sans',
'fontFamily' => 'Open Sans, "Noto Sans", sans-serif',
- 'preview' => 'https://s.w.org/images/fonts/wp-6.9/previews/open-sans/open-sans-400-normal.svg',
+ 'preview' => 'https://s.w.org/images/fonts/wp-7.0/previews/open-sans/open-sans-400-normal.svg',
);
$font_family_id = self::create_font_family_post( array( 'slug' => 'open-sans-2' ) );
@@ -738,7 +738,7 @@ public function data_update_item_individual_settings() {
return array(
array( array( 'name' => 'Opened Sans' ) ),
array( array( 'fontFamily' => '"Opened Sans", sans-serif' ) ),
- array( array( 'preview' => 'https://s.w.org/images/fonts/wp-6.9/previews/opened-sans/opened-sans-400-normal.svg' ) ),
+ array( array( 'preview' => 'https://s.w.org/images/fonts/wp-7.0/previews/opened-sans/opened-sans-400-normal.svg' ) ),
// Empty preview is allowed.
array( array( 'preview' => '' ) ),
);
From 6f6337b7f9109f646c472be6dcee1f69328be27a Mon Sep 17 00:00:00 2001
From: David Smith
Date: Thu, 12 Feb 2026 11:25:40 +0000
Subject: [PATCH 028/145] Block Editor: Use navigation-overlay icon for
template part areas.
Updates the Navigation Overlay template part area in
get_allowed_block_template_part_areas() to use the dedicated
navigation-overlay icon, replacing the overlay placeholder value.
The icon has been updated in @wordpress/icons and will be synced
to Core with the final Gutenberg release.
Props mikachan, get_dave.
Fixes #64629.
git-svn-id: https://develop.svn.wordpress.org/trunk@61623 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/block-template-utils.php | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/wp-includes/block-template-utils.php b/src/wp-includes/block-template-utils.php
index ed23647ab01d0..38366a8bdbc4c 100644
--- a/src/wp-includes/block-template-utils.php
+++ b/src/wp-includes/block-template-utils.php
@@ -105,7 +105,7 @@ function get_allowed_block_template_part_areas() {
'description' => __(
'The Navigation Overlay template defines a full-screen overlay area that typically contains navigation links and can be toggled on and off.'
),
- 'icon' => 'overlay',
+ 'icon' => 'navigation-overlay',
'area_tag' => 'div',
),
);
From 98ae37f5f8a14eab414de47aa5ace839f651994c Mon Sep 17 00:00:00 2001
From: Jon Surrell
Date: Thu, 12 Feb 2026 15:47:56 +0000
Subject: [PATCH 029/145] HTML API: Use more universal syntax to call Closure
variable.
Replace `( $fn )( ...$args )` syntax with equivalent `call_user_func( $fn, ...$args )` to prevent an issue with the WordPress documentation parser. The parser would fail when encountering this syntax, preventing documentation generation.
Developed in https://github.com/WordPress/wordpress-develop/pull/10907.
Follow-up to [58304].
Props dmsnell, jonsurrell.
See #64224, #61348.
git-svn-id: https://develop.svn.wordpress.org/trunk@61624 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/html-api/class-wp-html-open-elements.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/wp-includes/html-api/class-wp-html-open-elements.php b/src/wp-includes/html-api/class-wp-html-open-elements.php
index 210492ab9af08..aee5dccfb0c83 100644
--- a/src/wp-includes/html-api/class-wp-html-open-elements.php
+++ b/src/wp-includes/html-api/class-wp-html-open-elements.php
@@ -715,7 +715,7 @@ public function after_element_push( WP_HTML_Token $item ): void {
}
if ( null !== $this->push_handler ) {
- ( $this->push_handler )( $item );
+ call_user_func( $this->push_handler, $item );
}
}
@@ -763,7 +763,7 @@ public function after_element_pop( WP_HTML_Token $item ): void {
}
if ( null !== $this->pop_handler ) {
- ( $this->pop_handler )( $item );
+ call_user_func( $this->pop_handler, $item );
}
}
From 7da7a09ba5b16a53ed0828d6acfdaea83bfa29f2 Mon Sep 17 00:00:00 2001
From: Jon Surrell
Date: Thu, 12 Feb 2026 15:57:04 +0000
Subject: [PATCH 030/145] Build/Test Tools: Add theme keyboard navigation
tests.
Add the theme keyboard navigation test file that omitted from [60516].
Follow-up to [60516].
Props abcd95, jonsurrell, mukesh27.
See #64225, #63126.
git-svn-id: https://develop.svn.wordpress.org/trunk@61625 602fd350-edb4-49c9-b593-d223f7449a82
---
tests/qunit/wp-admin/js/theme.js | 91 ++++++++++++++++++++++++++++++++
1 file changed, 91 insertions(+)
create mode 100644 tests/qunit/wp-admin/js/theme.js
diff --git a/tests/qunit/wp-admin/js/theme.js b/tests/qunit/wp-admin/js/theme.js
new file mode 100644
index 0000000000000..468593e94aa23
--- /dev/null
+++ b/tests/qunit/wp-admin/js/theme.js
@@ -0,0 +1,91 @@
+/**
+ * Test theme keyboard navigation.
+ */
+( function( $ ) {
+ 'use strict';
+
+ QUnit.module( 'Theme Keyboard Navigation', function( hooks ) {
+ var themePreview, nextCalled, prevCalled;
+
+ function createThemePreview() {
+ return {
+ nextTheme: function() { nextCalled++; },
+ previousTheme: function() { prevCalled++; },
+ keyEvent: function( event ) {
+ if ( event.shiftKey || event.ctrlKey || event.altKey || event.metaKey ) {
+ return;
+ }
+
+ // Right arrow
+ if ( event.keyCode === 39 ) {
+ this.nextTheme();
+ }
+ // Left arrow
+ else if ( event.keyCode === 37 ) {
+ this.previousTheme();
+ }
+ }
+ };
+ }
+
+ hooks.beforeEach( function() {
+ nextCalled = 0;
+ prevCalled = 0;
+ themePreview = createThemePreview();
+ });
+
+ QUnit.test( 'Arrow keys without modifiers', function( assert ) {
+ // Right arrow
+ themePreview.keyEvent( $.Event( 'keydown', {
+ keyCode: 39,
+ shiftKey: false,
+ ctrlKey: false
+ }) );
+ assert.equal( nextCalled, 1, 'Right arrow triggers nextTheme' );
+
+ // Left arrow
+ themePreview.keyEvent( $.Event( 'keydown', {
+ keyCode: 37,
+ shiftKey: false,
+ ctrlKey: false
+ }) );
+ assert.equal( prevCalled, 1, 'Left arrow triggers previousTheme' );
+ } );
+
+ QUnit.test( 'Shift+Arrow keys do nothing', function( assert ) {
+ // Shift + Right
+ themePreview.keyEvent( $.Event( 'keydown', {
+ keyCode: 39,
+ shiftKey: true,
+ ctrlKey: false
+ }) );
+ assert.equal( nextCalled, 0, 'Shift+Right does nothing' );
+
+ // Shift + Left
+ themePreview.keyEvent( $.Event( 'keydown', {
+ keyCode: 37,
+ shiftKey: true,
+ ctrlKey: false
+ }) );
+ assert.equal( prevCalled, 0, 'Shift+Left does nothing' );
+ } );
+
+ QUnit.test( 'Ctrl+Arrow keys do nothing', function( assert ) {
+ // Ctrl + Right
+ themePreview.keyEvent( $.Event( 'keydown', {
+ keyCode: 39,
+ ctrlKey: true,
+ shiftKey: false
+ }) );
+ assert.equal( nextCalled, 0, 'Ctrl+Right does nothing' );
+
+ // Ctrl + Left
+ themePreview.keyEvent( $.Event( 'keydown', {
+ keyCode: 37,
+ ctrlKey: true,
+ shiftKey: false
+ }) );
+ assert.equal( prevCalled, 0, 'Ctrl+Left does nothing' );
+ } );
+ } );
+})( jQuery );
From 1ab99939e34eb260ae581c848aec5cb390909001 Mon Sep 17 00:00:00 2001
From: Joe Dolson
Date: Thu, 12 Feb 2026 19:33:19 +0000
Subject: [PATCH 031/145] Media: A11y: Remove tabindex on tabpanels.
Tabindex should be set on a tabpanel if there is content in that tabpanel that is not focusable. The media library uses tabpanels, but the first content is either focusable or redundant.
Change the media library tabpanels to omit tabindex attributes.
Props alh0319, joedolson, westonruter, huzaifaalmesbah.
Fixes #63984.
git-svn-id: https://develop.svn.wordpress.org/trunk@61626 602fd350-edb4-49c9-b593-d223f7449a82
---
src/js/media/views/media-frame.js | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/src/js/media/views/media-frame.js b/src/js/media/views/media-frame.js
index aca0bf5ef8333..1140bf2795ff4 100644
--- a/src/js/media/views/media-frame.js
+++ b/src/js/media/views/media-frame.js
@@ -101,7 +101,7 @@ MediaFrame = Frame.extend(/** @lends wp.media.view.MediaFrame.prototype */{
tabPanelEl = this.$el.find( '.media-frame-tab-panel' ),
ariaLabelledby;
- tabPanelEl.removeAttr( 'role aria-labelledby tabindex' );
+ tabPanelEl.removeAttr( 'role aria-labelledby' );
if ( this.state().get( 'menu' ) && this.menuView && this.menuView.isVisible ) {
ariaLabelledby = 'menu-item-' + stateId;
@@ -111,7 +111,6 @@ MediaFrame = Frame.extend(/** @lends wp.media.view.MediaFrame.prototype */{
.attr( {
role: 'tabpanel',
'aria-labelledby': ariaLabelledby,
- tabIndex: '0'
} );
}
},
@@ -127,7 +126,7 @@ MediaFrame = Frame.extend(/** @lends wp.media.view.MediaFrame.prototype */{
var tabPanelEl = this.$el.find( '.media-frame-content' ),
ariaLabelledby;
- tabPanelEl.removeAttr( 'role aria-labelledby tabindex' );
+ tabPanelEl.removeAttr( 'role aria-labelledby' );
// Set the tab panel attributes only if the tabs are visible.
if ( this.state().get( 'router' ) && this.routerView && this.routerView.isVisible && this.content._mode ) {
@@ -137,7 +136,6 @@ MediaFrame = Frame.extend(/** @lends wp.media.view.MediaFrame.prototype */{
.attr( {
role: 'tabpanel',
'aria-labelledby': ariaLabelledby,
- tabIndex: '0'
} );
}
},
From 3c6777d066854939b4b65ae64c2c05ad27c91a4e Mon Sep 17 00:00:00 2001
From: Weston Ruter
Date: Thu, 12 Feb 2026 19:41:54 +0000
Subject: [PATCH 032/145] Docs: Update broken link in core merge comment.
Follow-up to [41376], [41260].
Props mayur8991, sabernhardt, westonruter.
Fixes #64632.
git-svn-id: https://develop.svn.wordpress.org/trunk@61627 602fd350-edb4-49c9-b593-d223f7449a82
---
src/js/_enqueues/wp/widgets/custom-html.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/js/_enqueues/wp/widgets/custom-html.js b/src/js/_enqueues/wp/widgets/custom-html.js
index 3987eb4180e8d..d0be23eeb37af 100644
--- a/src/js/_enqueues/wp/widgets/custom-html.js
+++ b/src/js/_enqueues/wp/widgets/custom-html.js
@@ -333,7 +333,7 @@ wp.customHtmlWidgets = ( function( $ ) {
* This ensures that the textarea is visible and the editor can be initialized.
*/
renderWhenAnimationDone = function() {
- if ( ! ( wp.customize ? widgetContainer.parent().hasClass( 'expanded' ) : widgetContainer.hasClass( 'open' ) ) ) { // Core merge: The wp.customize condition can be eliminated with this change being in core: https://github.com/xwp/wordpress-develop/pull/247/commits/5322387d
+ if ( ! ( wp.customize ? widgetContainer.parent().hasClass( 'expanded' ) : widgetContainer.hasClass( 'open' ) ) ) { // Core merge: The wp.customize condition can be eliminated with this change being in core: https://core.trac.wordpress.org/changeset/41260
setTimeout( renderWhenAnimationDone, animatedCheckDelay );
} else {
widgetControl.initializeEditor();
From 05e54af11795debfb93e3a2ee7b3aad432116e74 Mon Sep 17 00:00:00 2001
From: Joe Dolson
Date: Thu, 12 Feb 2026 19:56:42 +0000
Subject: [PATCH 033/145] Twenty Twenty One: Remove support for Internet
Explorer.
No version of Internet Explorer is still supported by WordPress or Microsoft. Usage of Internet Explorer has dropped to about 0.1%.
Remove IE-specific CSS and polyfills.
Props sabernhardt, westonruter, mukesh27, joedolson.
Fixes #64590.
git-svn-id: https://develop.svn.wordpress.org/trunk@61628 602fd350-edb4-49c9-b593-d223f7449a82
---
.../twentytwentyone/assets/css/ie-editor.css | 2669 +------
.../themes/twentytwentyone/assets/css/ie.css | 6332 +----------------
.../twentytwentyone/assets/css/ie.css.map | 2 +-
.../twentytwentyone/assets/js/polyfills.js | 47 +-
.../assets/sass/07-utilities/ie.scss | 65 +-
.../twentytwentyone/assets/sass/style.scss | 1 -
.../themes/twentytwentyone/functions.php | 51 +-
.../themes/twentytwentyone/package.json | 2 -
.../themes/twentytwentyone/style-rtl.css | 55 -
.../themes/twentytwentyone/style.css | 55 -
.../themes/twentytwentyone/style.css.map | 2 +-
11 files changed, 17 insertions(+), 9264 deletions(-)
diff --git a/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css b/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css
index 8d4d87d7b6e2f..43d0865db6082 100644
--- a/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css
+++ b/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css
@@ -1,2668 +1 @@
-@charset "UTF-8";
-
-/**
- * These styles should be loaded by the Block Editor only
- */
-
-/* Variables */
-:root {
-
- /* Font Family */
-
- /* Font Size */
-
- /* Line Height */
-
- /* Headings */
-
- /* Block: Latest posts */
-
- /* Colors */
-
- /* Body text color, site title, footer text color. */
-
- /* Headings */
-
- /* Mint, default body background */
-
- /* Used for borders (separators) */
-
- /* Spacing */
-
- /* Elevation */
-
- /* Forms */
-
- /* Cover block */
-
- /* Buttons */
-
- /* entry */
-
- /* Header */
-
- /* Main navigation */
-
- /* Pagination */
-
- /* Footer */
-
- /* Block: Pull quote */
-
- /* Block: Table */
-
- /* Widgets */
-
- /* Admin-bar height */
-}
-
-/**
- * Responsive Styles
- */
-
-/**
- * Required Variables
- */
-
-/**
- * Root Media Query Variables
- */
-
-/**
- * Extends
- */
-.default-max-width {
- max-width: calc(100vw - 30px);
- margin-left: auto;
- margin-right: auto;
-}
-@media only screen and (min-width: 482px) {
-
- .default-max-width {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .default-max-width {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-.wide-max-width {
- max-width: calc(100vw - 30px);
- margin-left: auto;
- margin-right: auto;
-}
-
-@media only screen and (min-width: 482px) {
-
- .wide-max-width {
- max-width: calc(100vw - 100px);
- }
-}
-
-@media only screen and (min-width: 822px) {
-
- .wide-max-width {
- max-width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-@media only screen and (min-width: 482px) {
-
- .full-max-width {
- max-width: 100%;
- width: auto;
- margin-left: auto;
- margin-right: auto;
- }
-}
-
-b,
-strong {
- font-weight: 700;
-}
-
-blockquote {
- padding: 0;
- position: relative;
- margin: 30px 0 30px 25px;
-}
-
-blockquote > * {
- margin-top: 20px;
- margin-bottom: 20px;
-}
-
-blockquote > *:first-child {
- margin-top: 0;
-}
-
-blockquote > *:last-child {
- margin-bottom: 0;
-}
-
-blockquote p {
- letter-spacing: normal;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.25rem;
- font-style: normal;
- font-weight: 700;
- line-height: 1.7;
-}
-
-blockquote cite,
-blockquote footer {
- font-weight: normal;
- letter-spacing: normal;
-}
-
-blockquote.alignleft,
-blockquote.alignright {
- padding-left: inherit;
-}
-
-blockquote.alignleft p,
-blockquote.alignright p {
- font-size: 1.125rem;
- max-width: inherit;
- width: inherit;
-}
-
-blockquote.alignleft cite,
-blockquote.alignleft footer,
-blockquote.alignright cite,
-blockquote.alignright footer {
- font-size: 1rem;
- letter-spacing: normal;
-}
-
-blockquote strong {
- font-weight: bolder;
-}
-
-blockquote:before {
- content: "“";
- position: absolute;
- left: -12px;
-}
-
-blockquote .wp-block-quote__citation,
-blockquote cite,
-blockquote footer {
- color: #28303d;
- font-style: normal;
-}
-@media only screen and (max-width: 481.98px) {
-
- blockquote {
- padding-left: 13px;
- }
-
- blockquote:before {
- left: 0;
- }
-}
-
-img {
- height: auto;
- vertical-align: middle;
-}
-
-/* Classic editor images */
-
-/* Make sure embeds and iframes fit their containers. */
-img,
-.entry-content img,
-embed,
-iframe,
-object,
-video {
- max-width: 100%;
-}
-
-/* Media captions */
-figcaption,
-.wp-caption,
-.wp-caption-text,
-.wp-block-embed figcaption {
- color: currentColor;
- font-size: 1rem;
- line-height: 1.7;
- margin-top: 10px;
- margin-bottom: 20px;
- text-align: center;
-}
-
-.alignleft figcaption,
-.alignright figcaption,
-.alignleft .wp-caption,
-.alignright .wp-caption,
-.alignleft .wp-caption-text,
-.alignright .wp-caption-text,
-.alignleft .wp-block-embed figcaption,
-.alignright .wp-block-embed figcaption {
- margin-bottom: 0;
-}
-
-/* WP Smiley */
-.page-content .wp-smiley,
-.entry-content .wp-smiley,
-.comment-content .wp-smiley {
- border: none;
- margin-bottom: 0;
- margin-top: 0;
- padding: 0;
-}
-
-select,
-select:focus {
- border: 3px solid #39414d;
- border-radius: 0;
- color: #28303d;
- font-size: 1.125rem;
- -moz-appearance: none;
- -webkit-appearance: none;
- appearance: none;
- padding: 10px 30px 10px 10px;
- background: #fff url("data:image/svg+xml;utf8, ") no-repeat;
- background-position: right 10px top 60%;
-}
-
-/*
- * text-underline-offset doesn't work in Chrome at all 👎
- * But looks nice in Safari/Firefox, so let's keep it and
- * maybe Chrome will support it soon.
- */
-a {
- cursor: pointer;
- color: #28303d;
- text-underline-offset: 3px;
- text-decoration-skip-ink: all;
-}
-
-a:hover {
- text-decoration-style: dotted;
- text-decoration-skip-ink: none;
-}
-
-.site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) {
-
- /* Only visible in Windows High Contrast mode */
- outline: 2px solid transparent;
- text-decoration: underline 1px dotted currentColor;
- text-decoration-skip-ink: none;
- background: rgba(255, 255, 255, 0.9);
-}
-
-.is-dark-theme .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) {
- background: #000;
- color: #fff;
- text-decoration: none;
-}
-
-.is-dark-theme .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) .meta-nav {
- color: #fff;
-}
-
-.has-background-white .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) {
- background: rgba(0, 0, 0, 0.9);
- color: #fff;
-}
-
-.has-background-white .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) .meta-nav {
- color: #fff;
-}
-
-.site a:focus:not(.wp-block-button__link):not(.wp-block-file__button).skip-link {
-
- /* Only visible in Windows High Contrast mode */
- outline: 2px solid transparent;
- outline-offset: -2px;
-}
-
-.site a:focus:not(.wp-block-button__link):not(.wp-block-file__button).skip-link:focus {
- color: #21759b;
- background-color: #f1f1f1;
-}
-
-.site a:focus:not(.wp-block-button__link):not(.wp-block-file__button).custom-logo-link {
- background: none;
-}
-
-.site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) img {
- outline: 2px dotted #28303d;
-}
-
-.wp-block-button__link {
- border: 3px solid transparent;
- border-radius: 0;
- cursor: pointer;
- font-weight: 500;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.25rem;
- line-height: 1.5;
- padding: 15px 30px;
- text-decoration: none;
-}
-
-.wp-block-button__link:not(:hover):not(:active):not(.has-text-color) {
- color: #d1e4dd;
-}
-
-.has-background .wp-block-button__link:not(:hover):not(:active):not(.has-text-color),
-.has-background .wp-block-button__link:not(:hover):not(:active):not(.has-text-color).has-background {
- color: #28303d;
-}
-
-.wp-block-button__link:not(:hover):not(:active):not(.has-background),
-.has-background .wp-block-button__link:not(:hover):not(:active):not(.has-background) {
- background-color: #28303d;
-}
-
-.wp-block-button__link:hover,
-.wp-block-button__link:active {
- background-color: transparent;
- border-color: currentColor;
- color: inherit;
-}
-
-.wp-block-button__link:focus {
- outline-offset: -6px;
- outline: 2px dotted currentColor;
-}
-
-.wp-block-button__link:disabled {
- background-color: rgba(255, 255, 255, 0.5);
- border-color: rgba(255, 255, 255, 0.5);
- color: #39414d;
-}
-
-/**
- * Block Options
- */
-.wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-text-color),
-.has-background .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-text-color) {
- color: #d1e4dd;
-}
-
-.has-background .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-text-color).has-background {
- color: #28303d;
-}
-
-.wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-background),
-.has-background .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-background) {
- background-color: #28303d;
-}
-
-.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
-.wp-block-button:not(.is-style-outline) .wp-block-button__link:active {
- border-color: currentColor !important;
- background-color: transparent !important;
- color: inherit !important;
-}
-
-.wp-block-button:not(.is-style-outline) .wp-block-button__link:focus {
- outline-offset: inherit;
- outline: inherit;
-}
-
-.wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active):not(.has-text-color),
-.wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active):not(.has-background),
-.wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active).has-background {
- border-color: currentColor;
-}
-
-.wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active):not(.has-text-color),
-.has-background .wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active):not(.has-text-color) {
- color: #28303d;
-}
-
-.has-background .wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active).has-background:not(.has-text-color) {
- color: inherit;
-}
-
-.wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active):not(.has-background) {
- background-color: transparent;
-}
-
-.wp-block-button.is-style-outline .wp-block-button__link:hover,
-.wp-block-button.is-style-outline .wp-block-button__link:active {
- background-color: #28303d !important;
- border-color: transparent !important;
- color: #d1e4dd !important;
-}
-
-.has-background .wp-block-button.is-style-outline .wp-block-button__link:hover,
-.has-background .wp-block-button.is-style-outline .wp-block-button__link:active {
- background-color: #28303d !important;
- color: #d1e4dd !important;
-}
-
-.has-text-color .wp-block-button.is-style-outline .wp-block-button__link:hover,
-.has-text-color .wp-block-button.is-style-outline .wp-block-button__link:active {
- color: #d1e4dd !important;
-}
-
-.wp-block-button.is-style-outline .wp-block-button__link:focus {
- outline-offset: inherit;
- outline: inherit;
-}
-
-.wp-block-button.is-style-squared {
- border-radius: 0;
-}
-
-.is-style-outline .wp-block-button__link[style*=radius],
-.wp-block-button__link[style*=radius] {
- outline-offset: 2px;
-}
-
-.wp-block-code code {
- white-space: pre !important;
- overflow-x: auto;
-}
-
-.wp-block-code {
- border-color: #28303d;
- border-radius: 0;
- border-style: solid;
- border-width: 0.1rem;
- padding: 20px;
- color: currentColor;
-}
-
-.wp-block-cover,
-.wp-block-cover-image {
- background-color: #000;
- min-height: 450px;
- margin-top: inherit;
- margin-bottom: inherit;
-}
-
-.wp-block-cover:not(.alignwide):not(.alignfull),
-.wp-block-cover-image:not(.alignwide):not(.alignfull) {
- clear: both;
-}
-
-[data-align=full] .wp-block-cover,
-[data-align=full] .wp-block-cover-image {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-.wp-block-cover > .wp-block-cover__inner-container > *:first-child,
-.wp-block-cover-image > .wp-block-cover__inner-container > *:first-child {
- margin-top: 0;
-}
-
-.wp-block-cover > .wp-block-cover__inner-container > *:last-child:not(.block-list-appender),
-.wp-block-cover-image > .wp-block-cover__inner-container > *:last-child:not(.block-list-appender),
-.wp-block-cover.has-child-selected > .wp-block-cover__inner-container > *:nth-last-child(2),
-.wp-block-cover.is-selected > .wp-block-cover__inner-container > *:nth-last-child(2),
-.wp-block-cover-image.has-child-selected > .wp-block-cover__inner-container > *:nth-last-child(2),
-.wp-block-cover-image.is-selected > .wp-block-cover__inner-container > *:nth-last-child(2) {
- margin-bottom: 0;
-}
-
-.wp-block-cover .wp-block-cover__inner-container,
-.wp-block-cover .wp-block-cover-image-text,
-.wp-block-cover .wp-block-cover-text,
-.wp-block-cover .block-editor-block-list__block,
-.wp-block-cover-image .wp-block-cover__inner-container,
-.wp-block-cover-image .wp-block-cover-image-text,
-.wp-block-cover-image .wp-block-cover-text,
-.wp-block-cover-image .block-editor-block-list__block,
-.wp-block-cover .wp-block-cover__inner-container a,
-.wp-block-cover .wp-block-cover-image-text a,
-.wp-block-cover .wp-block-cover-text a,
-.wp-block-cover .block-editor-block-list__block a,
-.wp-block-cover-image .wp-block-cover__inner-container a,
-.wp-block-cover-image .wp-block-cover-image-text a,
-.wp-block-cover-image .wp-block-cover-text a,
-.wp-block-cover-image .block-editor-block-list__block a {
- color: currentColor;
-}
-
-.wp-block-cover .wp-block-cover__inner-container .has-link-color a,
-.wp-block-cover .wp-block-cover-image-text .has-link-color a,
-.wp-block-cover .wp-block-cover-text .has-link-color a,
-.wp-block-cover .block-editor-block-list__block .has-link-color a,
-.wp-block-cover-image .wp-block-cover__inner-container .has-link-color a,
-.wp-block-cover-image .wp-block-cover-image-text .has-link-color a,
-.wp-block-cover-image .wp-block-cover-text .has-link-color a,
-.wp-block-cover-image .block-editor-block-list__block .has-link-color a {
- color: #28303d;
-}
-
-.wp-block-cover:not([class*=background-color]) .wp-block-cover__inner-container,
-.wp-block-cover:not([class*=background-color]) .wp-block-cover-image-text,
-.wp-block-cover:not([class*=background-color]) .wp-block-cover-text,
-.wp-block-cover:not([class*=background-color]) .block-editor-block-list__block,
-.wp-block-cover-image:not([class*=background-color]) .wp-block-cover__inner-container,
-.wp-block-cover-image:not([class*=background-color]) .wp-block-cover-image-text,
-.wp-block-cover-image:not([class*=background-color]) .wp-block-cover-text,
-.wp-block-cover-image:not([class*=background-color]) .block-editor-block-list__block {
- color: #fff;
-}
-
-.wp-block-cover h2 {
- font-size: 2.25rem;
- letter-spacing: normal;
- line-height: 1.3;
- padding: 0;
- text-align: inherit;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-cover h2 {
- font-size: 3rem;
- }
-}
-
-.wp-block-cover-image h2 {
- font-size: 2.25rem;
- letter-spacing: normal;
- line-height: 1.3;
- padding: 0;
- text-align: inherit;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-cover-image h2 {
- font-size: 3rem;
- }
-}
-
-.wp-block-cover h2.has-text-align-left,
-.wp-block-cover-image h2.has-text-align-left {
- text-align: left;
-}
-
-.wp-block-cover h2.has-text-align-center,
-.wp-block-cover-image h2.has-text-align-center {
- text-align: center;
-}
-
-.wp-block-cover h2.has-text-align-right,
-.wp-block-cover-image h2.has-text-align-right {
- text-align: right;
-}
-
-.wp-block-cover.is-style-twentytwentyone-border,
-.wp-block-cover-image.is-style-twentytwentyone-border {
- border: 3px solid #28303d;
-}
-
-.wp-block-cover[class*=-background-color][class] .wp-block-cover__inner-container,
-.wp-block-cover-image[class*=-background-color][class] .wp-block-cover__inner-container {
- background-color: unset;
-}
-
-.wp-block-columns:not(.alignwide):not(.alignfull) {
- clear: both;
-}
-
-.wp-block-columns .wp-block,
-.wp-block-columns .wp-block-column {
- max-width: inherit;
-}
-
-.wp-block-columns > .wp-block-column > *:first-child {
- margin-top: 0;
-}
-
-.wp-block-columns > .wp-block-column > *:last-child:not(.block-list-appender),
-.wp-block-columns.has-child-selected > .wp-block-column > *:nth-last-child(2),
-.wp-block-columns.is-selected > .wp-block-column > *:nth-last-child(2) {
- margin-bottom: 0;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) {
- margin-left: -50px;
- margin-top: 63px;
- z-index: 2;
- }
-
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > p:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h1:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h2:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h3:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h4:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h5:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h6:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > ul:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > ol:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > pre:not(.has-background) {
- background-color: #d1e4dd;
- padding: 20px;
- }
-
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > ul:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > ol:not(.has-background) {
- padding-left: 50px;
- }
-
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n).is-vertically-aligned-center {
- margin-top: 0;
- }
-}
-
-.wp-block[data-align=full] > .wp-block-columns p:not(.has-background),
-.wp-block[data-align=full] > .wp-block-columns h1:not(.has-background),
-.wp-block[data-align=full] > .wp-block-columns h2:not(.has-background),
-.wp-block[data-align=full] > .wp-block-columns h3:not(.has-background),
-.wp-block[data-align=full] > .wp-block-columns h4:not(.has-background),
-.wp-block[data-align=full] > .wp-block-columns h5:not(.has-background),
-.wp-block[data-align=full] > .wp-block-columns h6:not(.has-background) {
- padding-left: 20px;
- padding-right: 20px;
-}
-
-.wp-block-file .wp-block-file__textlink {
- text-decoration: underline;
- text-decoration-style: solid;
- text-decoration-thickness: 1px;
-}
-
-.wp-block-file .wp-block-file__textlink:hover {
- text-decoration: underline;
- text-decoration-style: dotted;
-}
-
-.wp-block-file .wp-block-file__button {
- border: 3px solid transparent;
- border-radius: 0;
- cursor: pointer;
- font-weight: 500;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.25rem;
- line-height: 1.5;
- padding: 15px 30px;
- text-decoration: none;
- display: inline-block;
-}
-
-.wp-block-file .wp-block-file__button:not(:hover):not(:active):not(.has-text-color) {
- color: #d1e4dd;
-}
-
-.has-background .wp-block-file .wp-block-file__button:not(:hover):not(:active):not(.has-text-color),
-.has-background .wp-block-file .wp-block-file__button:not(:hover):not(:active):not(.has-text-color).has-background {
- color: #28303d;
-}
-
-.wp-block-file .wp-block-file__button:not(:hover):not(:active):not(.has-background),
-.has-background .wp-block-file .wp-block-file__button:not(:hover):not(:active):not(.has-background) {
- background-color: #28303d;
-}
-
-.wp-block-file .wp-block-file__button:hover,
-.wp-block-file .wp-block-file__button:active {
- background-color: transparent;
- border-color: currentColor;
- color: inherit;
-}
-
-.wp-block-file .wp-block-file__button:focus {
- outline-offset: -6px;
- outline: 2px dotted currentColor;
-}
-
-.wp-block-file .wp-block-file__button:disabled {
- background-color: rgba(255, 255, 255, 0.5);
- border-color: rgba(255, 255, 255, 0.5);
- color: #39414d;
-}
-
-.wp-block-file .wp-block-file__button:focus {
- outline-offset: inherit;
- outline: inherit;
-}
-
-.wp-block-gallery figcaption {
- margin-bottom: 0;
-}
-
-.wp-block-gallery figcaption a {
- color: #fff;
-}
-
-.wp-block-group.has-background {
- padding: 30px;
-}
-
-[data-align=full] .wp-block-group.has-background {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-.wp-block-group.is-style-twentytwentyone-border {
- border: 3px solid #28303d;
- padding: 30px;
-}
-
-.wp-block-group.is-style-twentytwentyone-border .wp-block-group__inner-container > [data-align=full] {
- max-width: calc(100% + 60px);
- width: calc(100% + 60px);
- margin-left: -30px;
-}
-
-.wp-block-group > .wp-block-group__inner-container > *:first-child {
- margin-top: 0;
-}
-
-.wp-block-group > .wp-block-group__inner-container > *:last-child:not(.block-list-appender),
-.wp-block-group.has-child-selected > .wp-block-group__inner-container > *:nth-last-child(2),
-.wp-block-group.is-selected > .wp-block-group__inner-container > *:nth-last-child(2) {
- margin-bottom: 0;
-}
-
-.wp-block-group .wp-block-group.has-background > .block-editor-block-list__layout > [data-align=full] {
- margin: 0;
- width: 100%;
-}
-
-.wp-block-heading h1,
-h1,
-.h1,
-.wp-block-heading h2,
-h2,
-.h2,
-.wp-block-heading h3,
-h3,
-.h3,
-.wp-block-heading h4,
-h4,
-.h4,
-.wp-block-heading h5,
-h5,
-.h5,
-.wp-block-heading h6,
-h6,
-.h6 {
- clear: both;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-weight: normal;
-}
-
-.wp-block-heading h1 strong,
-h1 strong,
-.h1 strong,
-.wp-block-heading h2 strong,
-h2 strong,
-.h2 strong,
-.wp-block-heading h3 strong,
-h3 strong,
-.h3 strong,
-.wp-block-heading h4 strong,
-h4 strong,
-.h4 strong,
-.wp-block-heading h5 strong,
-h5 strong,
-.h5 strong,
-.wp-block-heading h6 strong,
-h6 strong,
-.h6 strong {
- font-weight: 600;
-}
-
-.wp-block-heading h1[style*="--wp--typography--line-height"],
-h1[style*="--wp--typography--line-height"],
-.h1[style*="--wp--typography--line-height"],
-.wp-block-heading h2[style*="--wp--typography--line-height"],
-h2[style*="--wp--typography--line-height"],
-.h2[style*="--wp--typography--line-height"],
-.wp-block-heading h3[style*="--wp--typography--line-height"],
-h3[style*="--wp--typography--line-height"],
-.h3[style*="--wp--typography--line-height"],
-.wp-block-heading h4[style*="--wp--typography--line-height"],
-h4[style*="--wp--typography--line-height"],
-.h4[style*="--wp--typography--line-height"],
-.wp-block-heading h5[style*="--wp--typography--line-height"],
-h5[style*="--wp--typography--line-height"],
-.h5[style*="--wp--typography--line-height"],
-.wp-block-heading h6[style*="--wp--typography--line-height"],
-h6[style*="--wp--typography--line-height"],
-.h6[style*="--wp--typography--line-height"] {
- line-height: 1.7;
-}
-
-.wp-block-heading h1 {
- font-size: 4rem;
- letter-spacing: normal;
- line-height: 1.1;
-}
-
-@media only screen and (min-width: 652px) {
-
- .wp-block-heading h1 {
- font-size: 6rem;
- }
-}
-
-h1 {
- font-size: 4rem;
- letter-spacing: normal;
- line-height: 1.1;
-}
-
-@media only screen and (min-width: 652px) {
-
- h1 {
- font-size: 6rem;
- }
-}
-
-.h1 {
- font-size: 4rem;
- letter-spacing: normal;
- line-height: 1.1;
-}
-
-@media only screen and (min-width: 652px) {
-
- .h1 {
- font-size: 6rem;
- }
-}
-
-.wp-block-heading h2 {
- font-size: 2.25rem;
- letter-spacing: normal;
- line-height: 1.3;
-}
-
-@media only screen and (min-width: 652px) {
-
- .wp-block-heading h2 {
- font-size: 3rem;
- }
-}
-
-h2 {
- font-size: 2.25rem;
- letter-spacing: normal;
- line-height: 1.3;
-}
-
-@media only screen and (min-width: 652px) {
-
- h2 {
- font-size: 3rem;
- }
-}
-
-.h2 {
- font-size: 2.25rem;
- letter-spacing: normal;
- line-height: 1.3;
-}
-
-@media only screen and (min-width: 652px) {
-
- .h2 {
- font-size: 3rem;
- }
-}
-
-.wp-block-heading h3 {
- font-size: 2rem;
- letter-spacing: normal;
- line-height: 1.3;
-}
-
-@media only screen and (min-width: 652px) {
-
- .wp-block-heading h3 {
- font-size: 2rem;
- }
-}
-
-h3 {
- font-size: 2rem;
- letter-spacing: normal;
- line-height: 1.3;
-}
-
-@media only screen and (min-width: 652px) {
-
- h3 {
- font-size: 2rem;
- }
-}
-
-.h3 {
- font-size: 2rem;
- letter-spacing: normal;
- line-height: 1.3;
-}
-
-@media only screen and (min-width: 652px) {
-
- .h3 {
- font-size: 2rem;
- }
-}
-
-.wp-block-heading h4,
-h4,
-.h4 {
- font-size: 1.5rem;
- font-weight: 600;
- letter-spacing: normal;
- line-height: 1.3;
-}
-
-.wp-block-heading h5,
-h5,
-.h5 {
- font-size: 1.125rem;
- font-weight: 600;
- letter-spacing: 0.05em;
- line-height: 1.3;
-}
-
-.wp-block-heading h6,
-h6,
-.h6 {
- font-size: 1rem;
- font-weight: 600;
- letter-spacing: 0.05em;
- line-height: 1.3;
-}
-
-[data-type="core/html"] textarea {
- color: #28303d;
- border-radius: 0;
- padding: 20px;
-}
-
-/* Center image block by default in the editor */
-.wp-block-image,
-.wp-block-image > div:not(.components-placeholder) {
- text-align: center;
-}
-
-[data-type="core/image"] .block-editor-block-list__block-edit figure.is-resized {
- margin: 0 auto;
-}
-
-/* Block Styles */
-.wp-block-image.is-style-twentytwentyone-border img,
-.wp-block-image.is-style-twentytwentyone-image-frame img {
- border: 3px solid #28303d;
-}
-
-.wp-block-image.is-style-twentytwentyone-image-frame img {
- padding: 20px;
-}
-
-.wp-block[data-align=left] > .wp-block-image {
-
- /*rtl:ignore*/
- margin-left: 0;
-}
-
-.wp-block[data-align=right] > .wp-block-image {
-
- /*rtl:ignore*/
- margin-right: 0;
-}
-
-.wp-block-latest-comments {
- padding-left: 0;
-}
-
-.wp-block-latest-comments:where(:not([class*=-font-size]):not([style*=font-size])) .wp-block-latest-comments__comment {
- font-size: 1.125rem;
-}
-
-.wp-block-latest-comments .wp-block-latest-comments__comment {
- line-height: 1.7;
-
- /* Vertical margins logic */
- margin-top: 30px;
- margin-bottom: 30px;
-}
-
-.wp-block-latest-comments .wp-block-latest-comments__comment:first-child {
- margin-top: 0;
-}
-
-.wp-block-latest-comments .wp-block-latest-comments__comment:last-child {
- margin-bottom: 0;
-}
-
-.wp-block-latest-comments .wp-block-latest-comments__comment-meta {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
-}
-
-.wp-block-latest-comments .wp-block-latest-comments__comment-date {
- color: inherit;
- font-size: inherit;
-}
-
-.wp-block-latest-comments .wp-block-latest-comments__comment-excerpt p {
- font-size: inherit;
- line-height: 1.7;
- margin: 0;
-}
-
-.wp-block-latest-posts {
- padding-left: 0;
-}
-
-.wp-block-latest-posts:not(.is-grid) > li {
- margin-top: 50px;
- margin-bottom: 50px;
-}
-
-.wp-block-latest-posts:not(.is-grid) > li:first-child {
- margin-top: 0;
-}
-
-.wp-block-latest-posts:not(.is-grid) > li:last-child {
- margin-bottom: 0;
-}
-
-.wp-block-latest-posts.is-grid {
- word-wrap: break-word;
- word-break: break-word;
-}
-
-.wp-block-latest-posts.is-grid > li {
- margin-bottom: 30px;
-}
-
-.wp-block-latest-posts.is-grid > li:last-child {
- margin-bottom: 0;
-}
-
-.wp-block-latest-posts > li > * {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-
-.wp-block-latest-posts > li > *:first-child {
- margin-top: 0;
-}
-
-.wp-block-latest-posts > li > *:last-child {
- margin-bottom: 0;
-}
-
-.wp-block-latest-posts > li > a {
- display: inline-block;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 2rem;
- font-weight: normal;
- line-height: 1.3;
- margin-bottom: 10px;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-latest-posts > li > a {
- font-size: 2rem;
- }
-}
-
-.wp-block-latest-posts .wp-block-latest-posts__post-author {
- color: #28303d;
- font-size: 1.25rem;
- line-height: 1.7;
-}
-
-.wp-block-latest-posts .wp-block-latest-posts__post-date {
- color: #28303d;
- font-size: 1rem;
- line-height: 1.7;
-}
-
-[class*=inner-container] .wp-block-latest-posts .wp-block-latest-posts__post-date,
-.has-background .wp-block-latest-posts .wp-block-latest-posts__post-date {
- color: currentColor;
-}
-
-.wp-block-latest-posts .wp-block-latest-posts__post-excerpt,
-.wp-block-latest-posts .wp-block-latest-posts__post-full-content {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.125rem;
- line-height: 1.7;
- margin-top: 20px;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers {
- border-top: 3px solid #28303d;
- border-bottom: 3px solid #28303d;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers:not(.is-grid) > li,
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers > li {
- padding-bottom: 30px;
- border-bottom: 1px solid #28303d;
- margin-top: 30px;
- margin-bottom: 30px;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers:not(.is-grid) > li:last-child,
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers > li:last-child {
- padding-bottom: 0;
- border-bottom: none;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid {
- box-shadow: inset 0 -1px 0 0 #28303d;
- border-bottom: 2px solid #28303d;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid li {
- margin: 0;
- padding-top: 30px;
- padding-right: 25px;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid li:last-child {
- padding-bottom: 30px;
-}
-@media screen and (min-width: 600px) {
-
- .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid.columns-2 li {
- width: 50%;
- }
-
- .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid.columns-3 li {
- width: 33%;
- }
-
- .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid.columns-4 li {
- width: 25%;
- }
-
- .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid.columns-5 li {
- width: 20%;
- }
-
- .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid.columns-6 li {
- width: 17%;
- }
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-borders li {
- border: 3px solid #28303d;
- padding: 30px 25px;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-borders li:last-child {
- padding-bottom: 30px;
- margin-bottom: 30px;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-borders:not(.is-grid) li {
- margin-top: 25px;
- margin-bottom: 25px;
-}
-
-.gallery-item {
- display: inline-block;
- text-align: center;
- vertical-align: top;
- width: 100%;
-}
-
-.gallery-columns-2 .gallery-item {
- max-width: 50%;
-}
-
-.gallery-columns-3 .gallery-item {
- max-width: 33.33%;
-}
-
-.gallery-columns-4 .gallery-item {
- max-width: 25%;
-}
-
-.gallery-columns-5 .gallery-item {
- max-width: 20%;
-}
-
-.gallery-columns-6 .gallery-item {
- max-width: 16.66%;
-}
-
-.gallery-columns-7 .gallery-item {
- max-width: 14.28%;
-}
-
-.gallery-columns-8 .gallery-item {
- max-width: 12.5%;
-}
-
-.gallery-columns-9 .gallery-item {
- max-width: 11.11%;
-}
-
-.gallery-caption {
- display: block;
-}
-
-ul,
-ol {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- margin: 30px 0;
- padding-left: 50px;
-}
-
-ul.aligncenter,
-ol.aligncenter {
- list-style-position: inside;
- padding: 0;
- text-align: center;
-}
-
-ul.alignright,
-ol.alignright {
- list-style-position: inside;
- padding: 0;
- text-align: right;
-}
-
-li > ul,
-li > ol {
- margin: 0;
-}
-
-dt {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-weight: bold;
-}
-
-[data-align=full] .wp-block-media-text {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-.wp-block-media-text > .wp-block-media-text__content > *:first-child {
- margin-top: 0;
-}
-
-.wp-block-media-text > .wp-block-media-text__content > *:last-child:not(.block-list-appender),
-.wp-block-media-text.has-child-selected > .wp-block-media-text__content > *:nth-last-child(2),
-.wp-block-media-text.is-selected > .wp-block-media-text__content > *:nth-last-child(2) {
- margin-bottom: 0;
-}
-
-.wp-block-media-text .wp-block-media-text__content {
- padding: 25px;
-}
-
-.wp-block-media-text.is-style-twentytwentyone-border {
- border: 3px solid #28303d;
-}
-
-.wp-block-navigation [data-block] {
- margin-top: revert;
- margin-bottom: revert;
-}
-
-.wp-block-navigation .wp-block-navigation__container {
- background: #d1e4dd;
-}
-
-.wp-block-navigation .wp-block-navigation-link .wp-block-navigation-link__label {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.25rem;
- font-weight: normal;
-}
-
-.wp-block-navigation .has-child .wp-block-navigation__container {
- box-shadow: 1px 1px 3px 0 rgba(0, 0, 0, 0.2);
-}
-
-.wp-block-navigation:not(.has-text-color) .wp-block-navigation-link > a:hover,
-.wp-block-navigation:not(.has-text-color) .wp-block-navigation-link > a:focus {
- color: #28303d;
-}
-
-.wp-block-navigation:not(.has-text-color) .wp-block-navigation-link__content {
- color: currentColor;
-}
-
-p {
- line-height: 1.7;
-}
-
-p.has-background {
- padding: 20px;
-}
-
-pre.wp-block-preformatted {
- overflow-x: auto;
- white-space: pre !important;
- font-size: 1rem;
-}
-
-.wp-block-pullquote {
- padding: 40px 0;
- text-align: center;
- border-width: 3px;
- border-bottom-style: solid;
- border-top-style: solid;
- color: currentColor;
- border-color: currentColor;
- position: relative;
- font-size: 2rem;
- font-style: normal;
- font-weight: 700;
- letter-spacing: normal;
-}
-
-@media only screen and (min-width: 652px) {
-
- .wp-block-pullquote {
- font-size: 2rem;
- }
-}
-
-.wp-block-pullquote blockquote::before {
- color: currentColor;
- content: "“";
- display: block;
- position: relative;
- left: 0;
- font-size: 3rem;
- font-weight: 500;
- line-height: 1;
-}
-
-.wp-block-pullquote p {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: inherit;
- font-style: inherit;
- font-weight: inherit;
- letter-spacing: inherit;
- line-height: inherit;
- margin: 0;
-}
-
-.wp-block-pullquote:where(:not([style*=line-height])) p {
- line-height: 1.3;
-}
-
-.wp-block-pullquote a {
- color: currentColor;
-}
-
-.wp-block-pullquote .wp-block-pullquote__citation,
-.wp-block-pullquote cite,
-.wp-block-pullquote footer {
- font-size: 1rem;
- font-style: normal;
- text-transform: none;
-}
-
-.wp-block-pullquote:not(.is-style-solid-color) {
- background: none;
-}
-
-.wp-block-pullquote.is-style-solid-color {
- margin-left: auto;
- margin-right: auto;
- padding: 50px;
- border-width: 3px;
- border-style: solid;
- border-color: #28303d;
-}
-@media (min-width: 600px) {
-
- .wp-block-pullquote.is-style-solid-color {
- padding: 100px;
- }
-}
-
-.wp-block-pullquote.is-style-solid-color blockquote::before {
- text-align: left;
-}
-
-.wp-block-pullquote.is-style-solid-color.alignleft blockquote,
-.wp-block-pullquote.is-style-solid-color.alignright blockquote {
- padding-left: 20px;
- padding-right: 20px;
- max-width: inherit;
-}
-
-.wp-block-pullquote.is-style-solid-color blockquote {
- margin: 0;
- max-width: 100%;
-}
-
-.wp-block-pullquote.is-style-solid-color blockquote p {
- font-size: 2rem;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-pullquote.is-style-solid-color blockquote p {
- font-size: 2rem;
- }
-}
-
-.wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation,
-.wp-block-pullquote.is-style-solid-color cite,
-.wp-block-pullquote.is-style-solid-color footer {
- color: currentColor;
-}
-
-.wp-block[data-align=full] .wp-block-pullquote:not(.is-style-solid-color) blockquote {
- padding: 0 40px;
-}
-
-.wp-block[data-align=left] .wp-block-pullquote.is-style-solid-color,
-.wp-block[data-align=right] .wp-block-pullquote.is-style-solid-color,
-.wp-block-query.has-background {
- padding: 20px;
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block-query.has-background {
- padding: 30px;
- }
-}
-
-.wp-block-quote {
- position: relative;
- border-left: none;
- margin: 30px auto 30px 25px;
- padding-left: 1em;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.25rem;
- font-style: normal;
- font-weight: 700;
- line-height: 1.7;
-}
-
-.wp-block-quote p {
- font-family: inherit;
- font-size: inherit;
- font-style: inherit;
- font-weight: inherit;
- line-height: inherit;
- letter-spacing: inherit;
-}
-
-.wp-block-quote strong {
- font-weight: bolder;
-}
-
-.wp-block-quote:before {
- content: "“";
- left: 8px;
-}
-
-.wp-block-quote .wp-block-quote__citation {
- color: currentColor;
- font-family: inherit;
- font-style: inherit;
- font-weight: inherit;
- line-height: inherit;
- letter-spacing: inherit;
-}
-
-.has-background .wp-block-quote .wp-block-quote__citation,
-[class*=background-color] .wp-block-quote .wp-block-quote__citation,
-[style*=background-color] .wp-block-quote .wp-block-quote__citation,
-.wp-block-cover[style*=background-image] .wp-block-quote .wp-block-quote__citation {
- color: currentColor;
-}
-
-.wp-block-quote:where(:not([style*=font-style])) .wp-block-quote__citation {
- font-style: normal;
-}
-
-.wp-block-quote:where(:not([style*=font-weight])) .wp-block-quote__citation {
- font-weight: normal;
-}
-
-.wp-block-quote.has-text-align-right {
- margin: 30px 25px 30px auto;
- padding-right: 0;
- border-right: none;
-}
-
-.wp-block-quote.has-text-align-right:before {
- display: none;
-}
-
-.wp-block-quote.has-text-align-right p:before {
- content: "”";
- margin-right: 5px;
-}
-
-.wp-block-quote.has-text-align-center {
- margin: 30px auto;
-}
-
-.wp-block-quote.has-text-align-center:before {
- display: none;
-}
-
-.wp-block-quote.is-large,
-.wp-block-quote.is-style-large {
- padding-left: 0;
-
- /* Resetting margins to match _block-container.scss */
- margin-top: 30px;
- margin-bottom: 30px;
-}
-
-.wp-block-quote.is-large p {
- font-size: 2.25rem;
- font-style: normal;
- line-height: 1.35;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-quote.is-large p {
- font-size: 2.5rem;
- }
-}
-
-.wp-block-quote.is-style-large p {
- font-size: 2.25rem;
- font-style: normal;
- line-height: 1.35;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-quote.is-style-large p {
- font-size: 2.5rem;
- }
-}
-
-.wp-block-quote.is-large:before {
- font-size: 2.25rem;
- line-height: 1.35;
- left: -25px;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-quote.is-large:before {
- font-size: 2.5rem;
- }
-}
-
-.wp-block-quote.is-style-large:before {
- font-size: 2.25rem;
- line-height: 1.35;
- left: -25px;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-quote.is-style-large:before {
- font-size: 2.5rem;
- }
-}
-
-.wp-block-quote.is-large.has-text-align-right:before,
-.wp-block-quote.is-style-large.has-text-align-right:before {
- display: none;
-}
-
-.wp-block-quote.is-large.has-text-align-right p:before {
- content: "”";
- font-size: 2.25rem;
- font-weight: normal;
- line-height: 1.35;
- margin-right: 10px;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-quote.is-large.has-text-align-right p:before {
- font-size: 2.5rem;
- }
-}
-
-.wp-block-quote.is-style-large.has-text-align-right p:before {
- content: "”";
- font-size: 2.25rem;
- font-weight: normal;
- line-height: 1.35;
- margin-right: 10px;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-quote.is-style-large.has-text-align-right p:before {
- font-size: 2.5rem;
- }
-}
-@media only screen and (max-width: 481.98px) {
-
- .wp-block-quote.is-large,
- .wp-block-quote.is-style-large {
- padding-left: 25px;
- }
-
- .wp-block-quote.is-large:before,
- .wp-block-quote.is-style-large:before {
- left: 0;
- }
-
- .wp-block-quote.is-large.has-text-align-right,
- .wp-block-quote.is-style-large.has-text-align-right {
- padding-left: 0;
- padding-right: 25px;
- }
-
- .wp-block-quote.is-large.has-text-align-right:before,
- .wp-block-quote.is-style-large.has-text-align-right:before {
- right: 0;
- }
-
- .wp-block-quote {
- padding-left: 13px;
- }
-
- .wp-block-quote:before {
- left: 0;
- }
-
- .wp-block-quote.has-text-align-right {
- padding-left: 0;
- padding-right: 13px;
- }
-
- .wp-block-quote.has-text-align-right:before {
- right: 0;
- }
-
- .wp-block-quote.has-text-align-center {
- padding-left: 0;
- padding-right: 0;
- }
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block-quote {
- margin-left: auto;
- }
-
- .wp-block-quote.has-text-align-right {
- margin-right: auto;
- }
-}
-
-.wp-block-rss {
- padding-left: 0;
-}
-
-.wp-block-rss > li {
- list-style: none;
-}
-
-.wp-block-rss:not(.is-grid) > li {
- margin-top: 50px;
- margin-bottom: 50px;
-}
-
-.wp-block-rss:not(.is-grid) > li:first-child {
- margin-top: 0;
-}
-
-.wp-block-rss:not(.is-grid) > li:last-child {
- margin-bottom: 0;
-}
-
-.wp-block-rss.is-grid > li {
- margin-bottom: 30px;
-}
-
-.wp-block-rss.is-grid > li:last-child,
-.wp-block-rss.is-grid.columns-2 > li:nth-last-child(-n+2):nth-child(2n+1),
-.wp-block-rss.is-grid.columns-2 > li:nth-last-child(-n+2):nth-child(2n+1) ~ li,
-.wp-block-rss.is-grid.columns-3 > li:nth-last-child(-n+3):nth-child(3n+1),
-.wp-block-rss.is-grid.columns-3 > li:nth-last-child(-n+3):nth-child(3n+1) ~ li,
-.wp-block-rss.is-grid.columns-4 > li:nth-last-child(-n+4):nth-child(4n+1),
-.wp-block-rss.is-grid.columns-4 > li:nth-last-child(-n+4):nth-child(4n+1) ~ li,
-.wp-block-rss.is-grid.columns-5 > li:nth-last-child(-n+5):nth-child(5n+1),
-.wp-block-rss.is-grid.columns-5 > li:nth-last-child(-n+5):nth-child(5n+1) ~ li,
-.wp-block-rss.is-grid.columns-6 > li:nth-last-child(-n+6):nth-child(6n+1),
-.wp-block-rss.is-grid.columns-6 > li:nth-last-child(-n+6):nth-child(6n+1) ~ li {
- margin-bottom: 0;
-}
-
-.wp-block-rss > li > * {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-
-.wp-block-rss > li > *:first-child {
- margin-top: 0;
-}
-
-.wp-block-rss > li > *:last-child {
- margin-bottom: 0;
-}
-
-.wp-block-rss .wp-block-rss__item-title > a {
- display: inline-block;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 2rem;
- font-weight: normal;
- line-height: 1.3;
- margin-bottom: 10px;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-rss .wp-block-rss__item-title > a {
- font-size: 2rem;
- }
-}
-
-.wp-block-rss .wp-block-rss__item-author {
- color: #28303d;
- font-size: 1.25rem;
- line-height: 1.7;
-}
-
-.wp-block-rss .wp-block-rss__item-publish-date {
- color: #28303d;
- font-size: 1rem;
- line-height: 1.7;
-}
-
-[class*=inner-container] .wp-block-rss .wp-block-rss__item-publish-date,
-.has-background .wp-block-rss .wp-block-rss__item-publish-date {
- color: currentColor;
-}
-
-.wp-block-rss .wp-block-rss__item-excerpt,
-.wp-block-rss .wp-block-rss__item-full-content {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.125rem;
- line-height: 1.7;
- margin-top: 20px;
-}
-
-.wp-block-rss.alignfull {
- padding-left: 20px;
- padding-right: 20px;
-}
-
-.entry-content [class*=inner-container] .wp-block-rss.alignfull,
-.entry-content .has-background .wp-block-rss.alignfull {
- padding-left: 0;
- padding-right: 0;
-}
-
-.wp-block-search {
- max-width: calc(100vw - 30px);
-}
-
-@media only screen and (min-width: 482px) {
-
- .wp-block-search {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-
-@media only screen and (min-width: 822px) {
-
- .wp-block-search {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-.wp-block-search .wp-block-search__label {
- font-size: 1.125rem;
- font-weight: 500;
- margin-bottom: 10px;
-}
-
-.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper,
-.wp-block-search .wp-block-search__input {
- border: 3px solid #39414d;
- border-radius: 0;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.125rem;
- line-height: 1.7;
- max-width: inherit;
- margin-right: -3px;
- padding: 10px;
-}
-
-.is-dark-theme .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper,
-.is-dark-theme .wp-block-search .wp-block-search__input {
- background: rgba(255, 255, 255, 0.9);
-}
-
-.has-background .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper,
-.has-background .wp-block-search .wp-block-search__input {
- border-color: #28303d !important;
-}
-
-.wp-block-search .wp-block-search__button.wp-block-search__button {
- border: 3px solid transparent;
- border-radius: 0;
- cursor: pointer;
- font-weight: 500;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.25rem;
- line-height: 1.5;
- padding: 15px 30px;
- text-decoration: none;
- box-shadow: none;
- margin-left: 0;
-}
-
-.wp-block-search .wp-block-search__button.wp-block-search__button:not(:hover):not(:active):not(.has-text-color) {
- color: #d1e4dd;
-}
-
-.has-background .wp-block-search .wp-block-search__button.wp-block-search__button:not(:hover):not(:active):not(.has-text-color),
-.has-background .wp-block-search .wp-block-search__button.wp-block-search__button:not(:hover):not(:active):not(.has-text-color).has-background {
- color: #28303d;
-}
-
-.wp-block-search .wp-block-search__button.wp-block-search__button:not(:hover):not(:active):not(.has-background),
-.has-background .wp-block-search .wp-block-search__button.wp-block-search__button:not(:hover):not(:active):not(.has-background) {
- background-color: #28303d;
-}
-
-.wp-block-search .wp-block-search__button.wp-block-search__button:hover,
-.wp-block-search .wp-block-search__button.wp-block-search__button:active {
- background-color: transparent;
- border-color: currentColor;
- color: inherit;
-}
-
-.wp-block-search .wp-block-search__button.wp-block-search__button:focus {
- outline-offset: -6px;
- outline: 2px dotted currentColor;
-}
-
-.wp-block-search .wp-block-search__button.wp-block-search__button:disabled {
- background-color: rgba(255, 255, 255, 0.5);
- border-color: rgba(255, 255, 255, 0.5);
- color: #39414d;
-}
-
-.wp-block-search .wp-block-search__button.wp-block-search__button.has-icon {
- padding: 6px 15px;
- display: inherit;
-}
-
-.wp-block-search .wp-block-search__button.wp-block-search__button.has-icon svg {
- width: 40px;
- height: 40px;
-}
-
-.has-background .wp-block-search .wp-block-search__button.wp-block-search__button:hover,
-.has-background .wp-block-search .wp-block-search__button.wp-block-search__button:active {
- background-color: #d1e4dd !important;
- color: #28303d !important;
-}
-
-.has-text-color .wp-block-search .wp-block-search__button.wp-block-search__button:hover,
-.has-text-color .wp-block-search .wp-block-search__button.wp-block-search__button:active {
- color: #28303d !important;
-}
-
-.wp-block-search .wp-block-search__button.wp-block-search__button:focus {
- outline-offset: inherit;
- outline: inherit;
-}
-
-.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper {
- padding: 3px;
-}
-
-.wp-block-search.wp-block-search__button-inside .wp-block-search__input {
- border: none;
-}
-
-.wp-block-search.wp-block-search__button-inside.wp-block-search__text-button .wp-block-search__button:hover,
-.wp-block-search.wp-block-search__button-inside.wp-block-search__icon-button .wp-block-search__button:hover,
-.is-dark-theme .wp-block-search.wp-block-search__button-inside.wp-block-search__text-button .wp-block-search__button,
-.is-dark-theme .wp-block-search.wp-block-search__button-inside.wp-block-search__icon-button .wp-block-search__button {
- color: #28303d;
-}
-
-.is-dark-theme .wp-block-search.wp-block-search__button-inside.wp-block-search__text-button .wp-block-search__button:hover,
-.is-dark-theme .wp-block-search.wp-block-search__button-inside.wp-block-search__icon-button .wp-block-search__button:hover {
- background-color: #28303d;
- color: #fff;
-}
-
-.wp-block-search.wp-block-search__button-inside.wp-block-search__text-button .wp-block-search__button {
- padding: 15px 30px;
-}
-
-.wp-block[data-align=center] > * {
- text-align: center;
-}
-
-.wp-block[data-align=center] .wp-block-search__button-only .wp-block-search__inside-wrapper {
- justify-content: center;
-}
-
-.wp-block-separator,
-hr {
- border-bottom: 1px solid #28303d;
- clear: both;
- opacity: 1;
-}
-
-.wp-block-separator[style*="text-align:right"],
-.wp-block-separator[style*="text-align: right"],
-hr[style*="text-align:right"],
-hr[style*="text-align: right"] {
- border-right-color: #28303d;
-}
-
-.wp-block-separator:not(.is-style-dots) {
- max-width: calc(100vw - 30px);
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block-separator:not(.is-style-dots) {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .wp-block-separator:not(.is-style-dots) {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-hr:not(.is-style-dots) {
- max-width: calc(100vw - 30px);
-}
-@media only screen and (min-width: 482px) {
-
- hr:not(.is-style-dots) {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- hr:not(.is-style-dots) {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-[data-align=full] > .wp-block-separator,
-[data-align=wide] > .wp-block-separator,
-[data-align=full] > hr,
-[data-align=wide] > hr {
- max-width: inherit;
-}
-
-.wp-block-separator.is-style-twentytwentyone-separator-thick,
-hr.is-style-twentytwentyone-separator-thick {
- border-bottom-width: 3px;
-}
-
-.wp-block-separator.is-style-dots,
-hr.is-style-dots {
- border-bottom: none;
-}
-
-.wp-block-separator.is-style-dots.has-background,
-.wp-block-separator.is-style-dots.has-text-color,
-hr.is-style-dots.has-background,
-hr.is-style-dots.has-text-color {
- background-color: transparent !important;
-}
-
-.wp-block-separator.is-style-dots.has-background:before,
-.wp-block-separator.is-style-dots.has-text-color:before,
-hr.is-style-dots.has-background:before,
-hr.is-style-dots.has-text-color:before {
- color: currentColor !important;
-}
-
-.wp-block-separator.is-style-dots:before,
-hr.is-style-dots:before {
- color: #28303d;
-}
-
-.has-background .wp-block-separator,
-[class*=background-color] .wp-block-separator,
-[style*=background-color] .wp-block-separator,
-.wp-block-cover[style*=background-image] .wp-block-separator,
-.has-background hr,
-[class*=background-color] hr,
-[style*=background-color] hr,
-.wp-block-cover[style*=background-image] hr {
- border-color: currentColor;
-}
-
-.wp-block-social-links [data-block] {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-.wp-block-social-links.is-style-twentytwentyone-social-icons-color button {
- color: #28303d;
-}
-
-.wp-block-social-links.is-style-twentytwentyone-social-icons-color .wp-social-link {
- background: none;
-}
-
-table thead,
-table tfoot,
-.wp-block-table thead,
-.wp-block-table tfoot {
- text-align: center;
-}
-
-table th,
-.wp-block-table th {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
-}
-
-table td,
-table th,
-.wp-block-table td,
-.wp-block-table th {
- padding: 10px;
-}
-
-table.is-style-regular .has-background,
-table.is-style-stripes .has-background,
-table.is-style-stripes .has-background thead tr,
-table.is-style-stripes .has-background tfoot tr,
-table.is-style-stripes .has-background tbody tr,
-.wp-block-table.is-style-regular .has-background,
-.wp-block-table.is-style-stripes .has-background,
-.wp-block-table.is-style-stripes .has-background thead tr,
-.wp-block-table.is-style-stripes .has-background tfoot tr,
-.wp-block-table.is-style-stripes .has-background tbody tr {
- color: #28303d;
-}
-
-table.is-style-stripes,
-.wp-block-table.is-style-stripes {
- border-color: #f0f0f0;
-}
-
-table.is-style-stripes th,
-table.is-style-stripes td,
-.wp-block-table.is-style-stripes th,
-.wp-block-table.is-style-stripes td {
- border-width: 0;
-}
-
-table.is-style-stripes tbody tr:nth-child(odd),
-.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
- background-color: #f0f0f0;
-}
-
-table.is-style-stripes .has-background tbody tr:nth-child(odd),
-.wp-block-table.is-style-stripes .has-background tbody tr:nth-child(odd) {
- background-color: rgba(255, 255, 255, 0.9);
-}
-
-table.wp-calendar-table td,
-table.wp-calendar-table th {
- background: transparent;
- border: 0;
- text-align: center;
- line-height: 2;
- vertical-align: middle;
-}
-
-table.wp-calendar-table th {
- font-weight: bold;
-}
-
-table.wp-calendar-table thead,
-table.wp-calendar-table tbody {
- color: currentColor;
- border: 1px solid;
-}
-
-table.wp-calendar-table caption {
- font-weight: bold;
- text-align: left;
- margin-bottom: 20px;
- color: currentColor;
-}
-
-.wp-calendar-nav {
- text-align: left;
- margin-top: 10px;
-}
-
-.wp-calendar-nav svg {
- height: 1em;
- vertical-align: middle;
-}
-
-.wp-calendar-nav svg path {
- fill: currentColor;
-}
-
-.wp-calendar-nav .wp-calendar-nav-next {
- float: right;
-}
-
-.wp-block-tag-cloud.aligncenter {
- text-align: center;
-}
-
-pre.wp-block-verse {
- padding: 0;
- color: currentColor;
-}
-
-:root .is-extra-small-text,
-:root .has-extra-small-font-size {
- font-size: 1rem;
-}
-
-:root .is-small-text,
-:root .has-small-font-size {
- font-size: 1.125rem;
-}
-
-:root .is-regular-text,
-:root .has-regular-font-size,
-:root .is-normal-font-size,
-:root .has-normal-font-size,
-:root .has-medium-font-size {
- font-size: 1.25rem;
-}
-
-:root .is-large-text,
-:root .has-large-font-size {
- font-size: 1.5rem;
- line-height: 1.3;
-}
-
-:root .is-larger-text {
- font-size: 2.5rem;
- line-height: 1.3;
-}
-@media only screen and (min-width: 652px) {
-
- :root .is-larger-text {
- font-size: 2.5rem;
- }
-}
-
-:root .has-larger-font-size {
- font-size: 2.5rem;
- line-height: 1.3;
-}
-@media only screen and (min-width: 652px) {
-
- :root .has-larger-font-size {
- font-size: 2.5rem;
- }
-}
-
-:root .is-extra-large-text {
- font-size: 2.5rem;
- line-height: 1.3;
-}
-@media only screen and (min-width: 652px) {
-
- :root .is-extra-large-text {
- font-size: 2.5rem;
- }
-}
-
-:root .has-extra-large-font-size {
- font-size: 2.5rem;
- line-height: 1.3;
-}
-@media only screen and (min-width: 652px) {
-
- :root .has-extra-large-font-size {
- font-size: 2.5rem;
- }
-}
-
-:root .is-huge-text {
- font-size: 6rem;
- line-height: 1.3;
- font-weight: 300;
-}
-@media only screen and (min-width: 652px) {
-
- :root .is-huge-text {
- font-size: 6rem;
- }
-}
-
-:root .has-huge-font-size {
- font-size: 6rem;
- line-height: 1.3;
- font-weight: 300;
-}
-@media only screen and (min-width: 652px) {
-
- :root .has-huge-font-size {
- font-size: 6rem;
- }
-}
-
-:root .is-gigantic-text {
- font-size: 9rem;
- line-height: 1.3;
- font-weight: 300;
-}
-@media only screen and (min-width: 652px) {
-
- :root .is-gigantic-text {
- font-size: 9rem;
- }
-}
-
-:root .has-gigantic-font-size {
- font-size: 9rem;
- line-height: 1.3;
- font-weight: 300;
-}
-@media only screen and (min-width: 652px) {
-
- :root .has-gigantic-font-size {
- font-size: 9rem;
- }
-}
-
-/**
-* Editor Post Title
-* - Needs a special styles
-*/
-.wp-block.editor-post-title__block {
- border-bottom: 3px solid #28303d;
- padding-bottom: 60px;
- margin-bottom: 90px;
- max-width: calc(100vw - 30px);
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block.editor-post-title__block {
- max-width: calc(100vw - 100px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .wp-block.editor-post-title__block {
- max-width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.wp-block.editor-post-title__block .editor-post-title__input {
- color: #39414d;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 4rem;
- font-weight: 300;
- line-height: 1.1;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block.editor-post-title__block .editor-post-title__input {
- font-size: 6rem;
- }
-}
-
-.wp-block.block-editor-default-block-appender > textarea {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.25rem;
-}
-
-.has-primary-color[class] {
- color: #28303d;
-}
-
-.has-secondary-color[class] {
- color: #39414d;
-}
-
-.has-primary-background-color[class] {
- background-color: #28303d;
- color: #d1e4dd;
-}
-
-.has-secondary-background-color[class] {
- background-color: #39414d;
- color: #d1e4dd;
-}
-
-.has-white-background-color[class] {
- color: #39414d;
-}
-
-.has-black-background-color[class] {
- color: #28303d;
-}
-
-[data-block]:where(:not(.wp-block-list-item)) {
- margin-top: 30px;
- margin-bottom: 30px;
-}
-
-.wp-block {
- max-width: calc(100vw - 30px);
-}
-
-@media only screen and (min-width: 482px) {
-
- .wp-block {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-
-@media only screen and (min-width: 822px) {
-
- .wp-block {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-.wp-block[data-align=wide] {
- max-width: calc(100vw - 30px);
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block[data-align=wide] {
- max-width: calc(100vw - 100px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .wp-block[data-align=wide] {
- max-width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.wp-block.alignwide {
- max-width: calc(100vw - 30px);
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block.alignwide {
- max-width: calc(100vw - 100px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .wp-block.alignwide {
- max-width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.wp-block[data-align=full],
-.wp-block.alignfull {
- max-width: none;
-}
-
-.alignleft {
- margin: 0;
- margin-right: 25px;
-}
-
-.alignright {
- margin: 0;
- margin-left: 25px;
-}
-
-.has-drop-cap:not(:focus)::first-letter {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-weight: normal;
- line-height: 0.66;
- text-transform: uppercase;
- font-style: normal;
- margin: 0.1em 0.1em 0 0;
- font-size: 5rem;
-}
-
-@media only screen and (min-width: 652px) {
-
- .has-drop-cap:not(:focus)::first-letter {
- font-size: 7rem;
- }
-}
-
-@media only screen and (min-width: 482px) {
-
- .wp-block[data-align=left] > * {
- max-width: 290px;
-
- /*rtl:ignore*/
- margin-right: 25px;
- }
-
- .wp-block[data-align=right] > * {
- max-width: 290px;
-
- /*rtl:ignore*/
- margin-left: 25px;
- }
-}
-
-.wp-block-freeform.block-library-rich-text__tinymce blockquote {
- border: none;
-}
-
-.wp-block-freeform.block-library-rich-text__tinymce blockquote:before {
- left: 5px;
-}
-
-html,
-body {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- line-height: 1.7;
-}
-
-body {
- background-color: #d1e4dd;
- font-size: 1.25rem;
- font-weight: normal;
- -moz-osx-font-smoothing: grayscale;
- -webkit-font-smoothing: antialiased;
-}
-
-body,
-.wp-block a {
- color: #28303d;
-}
-
-.wp-block a:hover {
- text-decoration-style: dotted;
-}
-
-.wp-block a:focus {
- outline: 2px solid #28303d;
- text-decoration: none;
-}
-
-.has-background .has-link-color a,
-.has-background.has-link-color a {
- color: #28303d;
-}
-
-button,
-a {
- cursor: pointer;
-}
-
-.has-black-color[class],
-.has-black-color[class] > [class*=__inner-container] {
- color: #000;
-}
-
-.has-gray-color[class],
-.has-gray-color[class] > [class*=__inner-container] {
- color: #39414d;
-}
-
-.has-dark-gray-color[class],
-.has-dark-gray-color[class] > [class*=__inner-container] {
- color: #28303d;
-}
-
-.has-green-color[class],
-.has-green-color[class] > [class*=__inner-container] {
- color: #d1e4dd;
-}
-
-.has-blue-color[class],
-.has-blue-color[class] > [class*=__inner-container] {
- color: #d1dfe4;
-}
-
-.has-purple-color[class],
-.has-purple-color[class] > [class*=__inner-container] {
- color: #d1d1e4;
-}
-
-.has-red-color[class],
-.has-red-color[class] > [class*=__inner-container] {
- color: #e4d1d1;
-}
-
-.has-orange-color[class],
-.has-orange-color[class] > [class*=__inner-container] {
- color: #e4dad1;
-}
-
-.has-yellow-color[class],
-.has-yellow-color[class] > [class*=__inner-container] {
- color: #eeeadd;
-}
-
-.has-white-color[class],
-.has-white-color[class] > [class*=__inner-container] {
- color: #fff;
-}
-
-.has-background a,
-.has-background p,
-.has-background h1,
-.has-background h2,
-.has-background h3,
-.has-background h4,
-.has-background h5,
-.has-background h6 {
- color: currentColor;
-}
-
-.has-black-background-color[class],
-.has-black-background-color[class] > [class*=__inner-container] {
- background-color: #000;
-}
-
-.has-dark-gray-background-color[class],
-.has-dark-gray-background-color[class] > [class*=__inner-container] {
- background-color: #28303d;
-}
-
-.has-gray-background-color[class],
-.has-gray-background-color[class] > [class*=__inner-container] {
- background-color: #39414d;
-}
-
-.has-light-gray-background-color[class],
-.has-light-gray-background-color[class] > [class*=__inner-container] {
- background-color: #f0f0f0;
-}
-
-.has-green-background-color[class],
-.has-green-background-color[class] > [class*=__inner-container] {
- background-color: #d1e4dd;
-}
-
-.has-blue-background-color[class],
-.has-blue-background-color[class] > [class*=__inner-container] {
- background-color: #d1dfe4;
-}
-
-.has-purple-background-color[class],
-.has-purple-background-color[class] > [class*=__inner-container] {
- background-color: #d1d1e4;
-}
-
-.has-red-background-color[class],
-.has-red-background-color[class] > [class*=__inner-container] {
- background-color: #e4d1d1;
-}
-
-.has-orange-background-color[class],
-.has-orange-background-color[class] > [class*=__inner-container] {
- background-color: #e4dad1;
-}
-
-.has-yellow-background-color[class],
-.has-yellow-background-color[class] > [class*=__inner-container] {
- background-color: #eeeadd;
-}
-
-.has-white-background-color[class],
-.has-white-background-color[class] > [class*=__inner-container] {
- background-color: #fff;
-}
-
-.has-background:not(.has-text-color).has-black-background-color[class],
-.has-background:not(.has-text-color).has-gray-background-color[class],
-.has-background:not(.has-text-color).has-dark-gray-background-color[class] {
- color: #fff;
-}
-
-.has-background:not(.has-text-color).has-black-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-gray-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-dark-gray-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-green-background-color[class],
-.has-background:not(.has-text-color).has-blue-background-color[class],
-.has-background:not(.has-text-color).has-purple-background-color[class],
-.has-background:not(.has-text-color).has-red-background-color[class],
-.has-background:not(.has-text-color).has-orange-background-color[class],
-.has-background:not(.has-text-color).has-yellow-background-color[class],
-.has-background:not(.has-text-color).has-white-background-color[class],
-.has-background:not(.has-text-color).has-green-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-blue-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-purple-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-red-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-orange-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-yellow-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-white-background-color[class] > [class*=__inner-container] {
- color: #28303d;
-}
-
-.has-purple-to-yellow-gradient-background {
- background: linear-gradient(160deg, #d1d1e4, #eeeadd);
-}
-
-.has-yellow-to-purple-gradient-background {
- background: linear-gradient(160deg, #eeeadd, #d1d1e4);
-}
-
-.has-green-to-yellow-gradient-background {
- background: linear-gradient(160deg, #d1e4dd, #eeeadd);
-}
-
-.has-yellow-to-green-gradient-background {
- background: linear-gradient(160deg, #eeeadd, #d1e4dd);
-}
-
-.has-red-to-yellow-gradient-background {
- background: linear-gradient(160deg, #e4d1d1, #eeeadd);
-}
-
-.has-yellow-to-red-gradient-background {
- background: linear-gradient(160deg, #eeeadd, #e4d1d1);
-}
-
-.has-purple-to-red-gradient-background {
- background: linear-gradient(160deg, #d1d1e4, #e4d1d1);
-}
-
-.has-red-to-purple-gradient-background {
- background: linear-gradient(160deg, #e4d1d1, #d1d1e4);
-}
+/* Internet Explorer support was removed. */
diff --git a/src/wp-content/themes/twentytwentyone/assets/css/ie.css b/src/wp-content/themes/twentytwentyone/assets/css/ie.css
index 9ce7cfd6cbf8d..43d0865db6082 100644
--- a/src/wp-content/themes/twentytwentyone/assets/css/ie.css
+++ b/src/wp-content/themes/twentytwentyone/assets/css/ie.css
@@ -1,6331 +1 @@
-@charset "UTF-8";
-
-/*
-Theme Name: Twenty Twenty-One
-Theme URI: https://wordpress.org/themes/twentytwentyone/
-Author: the WordPress team
-Author URI: https://wordpress.org/
-Description: Twenty Twenty-One is a blank canvas for your ideas and it makes the block editor your best brush. With new block patterns, which allow you to create a beautiful layout in a matter of seconds, this theme’s soft colors and eye-catching — yet timeless — design will let your work shine. Take it for a spin! See how Twenty Twenty-One elevates your portfolio, business website, or personal blog.
-Requires at least: 5.3
-Tested up to: 6.9
-Requires PHP: 5.6
-Version: 2.7
-License: GNU General Public License v2 or later
-License URI: http://www.gnu.org/licenses/gpl-2.0.html
-Text Domain: twentytwentyone
-Tags: one-column, accessibility-ready, custom-colors, custom-menu, custom-logo, editor-style, featured-images, footer-widgets, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, blog, portfolio
-
-Twenty Twenty-One WordPress Theme, (C) 2020 WordPress.org
-Twenty Twenty-One is distributed under the terms of the GNU GPL.
-*/
-
-/**
- * SETTINGS
- * File-header..........The file header for the themes style.css file.
- * Fonts................Any font files, if the project needs specific fonts.
- * Global...............Project-specific, globally available variables.
- *
- * TOOLS
- * Functions............Global functions.
- * Mixins...............Global mixins.
- *
- * GENERIC
- * Normalize.css........Normalise browser defaults.
- * Breakpoints..........Mixins and variables for responsive styles
- * Vertical-margins.....Vertical spacing for the main components.
- * Reset................Reset specific elements to make them easier to style in other contexts.
- * Clearings............Clearings for the main components.
- *
- * ELEMENTS
- * Blockquote...........Default blockquote.
- * Forms................Element-level form styling.
- * Headings.............H1–H6
- * Links................Default links.
- * Lists................Default lists.
- * Media................Images, Figure, Figcaption, Embed, iFrame, Objects, Video.
- *
- * BLOCKS
- * Audio................Specific styles for the audio block.
- * Button...............Specific styles for the button block.
- * Code.................Specific styles for the code block.
- * Columns..............Specific styles for the columns block.
- * Cover................Specific styles for the cover block.
- * File.................Specific styles for the file block.
- * Gallery..............Specific styles for the gallery block.
- * Group................Specific styles for the group block.
- * Heading..............Specific styles for the heading block.
- * Image................Specific styles for the image block.
- * Latest comments......Specific styles for the latest comments block.
- * Latest posts.........Specific styles for the latest posts block.
- * Legacy...............Specific styles for the legacy gallery.
- * List.................Specific styles for the list block.
- * Media text...........Specific styles for the media and text block.
- * Navigation...........Specific styles for the navigation block.
- * Paragraph............Specific styles for the paragraph block.
- * Pullquote............Specific styles for the pullquote block.
- * Quote................Specific styles for the quote block.
- * Search...............Specific styles for the search block.
- * Separator............Specific styles for the separator block.
- * Table................Specific styles for the table block.
- * Verse................Specific styles for the verse block.
- * Video................Specific styles for the video block.
- * Utilities............Block alignments.
- *
- * COMPONENTS
- * Header...............Header styles.
- * Footer...............Footer styles.
- * Comments.............Comment styles.
- * Archives.............Archive styles.
- * 404..................404 styles.
- * Search...............Search styles.
- * Navigation...........Navigation styles.
- * Footer Navigation....Footer Navigation styles.
- * Pagination...........Pagination styles.
- * Single...............Single page and post styles.
- * Posts and pages......Misc, sticky post styles.
- * Entry................Entry, author biography.
- * Widget...............Widget styles.
- * Editor...............Editor styles.
- *
- * UTILITIES
- * A11y.................Screen reader text, prefers reduced motion etc.
- * Color Palette........Classes for the color palette colors.
- * Editor Font Sizes....Editor Font Sizes.
- * Measure..............The width of a line of text, in characters.
- */
-
-/* Categories 01 to 03 are the basics. */
-
-/* Variables */
-:root {
-
- /* Font Family */
-
- /* Font Size */
-
- /* Line Height */
-
- /* Headings */
-
- /* Block: Latest posts */
-
- /* Colors */
-
- /* Body text color, site title, footer text color. */
-
- /* Headings */
-
- /* Mint, default body background */
-
- /* Used for borders (separators) */
-
- /* Spacing */
-
- /* Elevation */
-
- /* Forms */
-
- /* Cover block */
-
- /* Buttons */
-
- /* entry */
-
- /* Header */
-
- /* Main navigation */
-
- /* Pagination */
-
- /* Footer */
-
- /* Block: Pull quote */
-
- /* Block: Table */
-
- /* Widgets */
-
- /* Admin-bar height */
-}
-
-/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
-
-/* Document
- ========================================================================== */
-
-/**
- * 1. Correct the line height in all browsers.
- * 2. Prevent adjustments of font size after orientation changes in iOS.
- */
-html {
- line-height: 1.15; /* 1 */
- -webkit-text-size-adjust: 100%; /* 2 */
-}
-
-/* Sections
- ========================================================================== */
-
-/**
- * Remove the margin in all browsers.
- */
-body {
- margin: 0;
-}
-
-/**
- * Render the `main` element consistently in IE.
- */
-main {
- display: block;
-}
-
-/**
- * Correct the font size and margin on `h1` elements within `section` and
- * `article` contexts in Chrome, Firefox, and Safari.
- */
-h1 {
- font-size: 2em;
- margin: 0.67em 0;
-}
-
-/* Grouping content
- ========================================================================== */
-
-/**
- * 1. Add the correct box sizing in Firefox.
- * 2. Show the overflow in Edge and IE.
- */
-hr {
- box-sizing: content-box; /* 1 */
- height: 0; /* 1 */
- overflow: visible; /* 2 */
-}
-
-/**
- * 1. Correct the inheritance and scaling of font size in all browsers.
- * 2. Correct the odd `em` font sizing in all browsers.
- */
-pre {
- font-family: monospace; /* 1 */
- font-size: 1em; /* 2 */
-}
-
-/* Text-level semantics
- ========================================================================== */
-
-/**
- * Remove the gray background on active links in IE 10.
- */
-a {
- background-color: transparent;
- text-decoration-thickness: 1px;
-}
-
-/**
- * 1. Remove the bottom border in Chrome 57-
- * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
- */
-abbr[title] {
- border-bottom: none; /* 1 */
- text-decoration: underline; /* 2 */
- text-decoration-style: dotted; /* 2 */
-}
-
-/**
- * Add the correct font weight in Chrome, Edge, and Safari.
- */
-b,
-strong {
- font-weight: bolder;
-}
-
-/**
- * 1. Correct the inheritance and scaling of font size in all browsers.
- * 2. Correct the odd `em` font sizing in all browsers.
- */
-code,
-kbd,
-samp {
- font-family: monospace; /* 1 */
- font-size: 1em; /* 2 */
-}
-
-/**
- * Add the correct font size in all browsers.
- */
-small {
- font-size: 80%;
-}
-
-/**
- * Prevent `sub` and `sup` elements from affecting the line height in
- * all browsers.
- */
-sub,
-sup {
- font-size: 75%;
- line-height: 0;
- position: relative;
- vertical-align: baseline;
-}
-
-sub {
- bottom: -0.25em;
-}
-
-sup {
- top: -0.5em;
-}
-
-/* Embedded content
- ========================================================================== */
-
-/**
- * Remove the border on images inside links in IE 10.
- */
-img {
- border-style: none;
-}
-
-/* Forms
- ========================================================================== */
-
-/**
- * 1. Change the font styles in all browsers.
- * 2. Remove the margin in Firefox and Safari.
- */
-button,
-input,
-optgroup,
-select,
-textarea {
- font-family: inherit; /* 1 */
- font-size: 100%; /* 1 */
- line-height: 1.15; /* 1 */
- margin: 0; /* 2 */
-}
-
-/**
- * Show the overflow in IE.
- * 1. Show the overflow in Edge.
- */
-button,
-input { /* 1 */
- overflow: visible;
-}
-
-/**
- * Remove the inheritance of text transform in Edge, Firefox, and IE.
- * 1. Remove the inheritance of text transform in Firefox.
- */
-button,
-select { /* 1 */
- text-transform: none;
-}
-
-/**
- * Correct the inability to style clickable types in iOS and Safari.
- */
-button,
-[type=button],
-[type=reset],
-[type=submit] {
- -webkit-appearance: button;
-}
-
-/**
- * Remove the inner border and padding in Firefox.
- */
-button::-moz-focus-inner,
-[type=button]::-moz-focus-inner,
-[type=reset]::-moz-focus-inner,
-[type=submit]::-moz-focus-inner {
- border-style: none;
- padding: 0;
-}
-
-/**
- * Restore the focus styles unset by the previous rule.
- */
-button:-moz-focusring,
-[type=button]:-moz-focusring,
-[type=reset]:-moz-focusring,
-[type=submit]:-moz-focusring {
- outline: 1px dotted ButtonText;
-}
-
-/**
- * Correct the padding in Firefox.
- */
-fieldset {
- padding: 0.35em 0.75em 0.625em;
-}
-
-/**
- * 1. Correct the text wrapping in Edge and IE.
- * 2. Correct the color inheritance from `fieldset` elements in IE.
- * 3. Remove the padding so developers are not caught out when they zero out
- * `fieldset` elements in all browsers.
- */
-legend {
- box-sizing: border-box; /* 1 */
- color: inherit; /* 2 */
- display: table; /* 1 */
- max-width: 100%; /* 1 */
- padding: 0; /* 3 */
- white-space: normal; /* 1 */
-}
-
-/**
- * Add the correct vertical alignment in Chrome, Firefox, and Opera.
- */
-progress {
- vertical-align: baseline;
-}
-
-/**
- * Remove the default vertical scrollbar in IE 10+.
- */
-textarea {
- overflow: auto;
-}
-
-/**
- * 1. Add the correct box sizing in IE 10.
- * 2. Remove the padding in IE 10.
- */
-[type=checkbox],
-[type=radio] {
- box-sizing: border-box; /* 1 */
- padding: 0; /* 2 */
-}
-
-/**
- * Correct the cursor style of increment and decrement buttons in Chrome.
- */
-[type=number]::-webkit-inner-spin-button,
-[type=number]::-webkit-outer-spin-button {
- height: auto;
-}
-
-/**
- * 1. Correct the odd appearance in Chrome and Safari.
- * 2. Correct the outline style in Safari.
- */
-[type=search] {
- -webkit-appearance: textfield; /* 1 */
- outline-offset: -2px; /* 2 */
-}
-
-/**
- * Remove the inner padding in Chrome and Safari on macOS.
- */
-[type=search]::-webkit-search-decoration {
- -webkit-appearance: none;
-}
-
-/**
- * 1. Correct the inability to style clickable types in iOS and Safari.
- * 2. Change font properties to `inherit` in Safari.
- */
-::-webkit-file-upload-button {
- -webkit-appearance: button; /* 1 */
- font: inherit; /* 2 */
-}
-
-/* Interactive
- ========================================================================== */
-
-/*
- * Add the correct display in Edge, IE 10+, and Firefox.
- */
-details {
- display: block;
-}
-
-/*
- * Add the correct display in all browsers.
- */
-summary {
- display: list-item;
-}
-
-/* Misc
- ========================================================================== */
-
-/**
- * Add the correct display in IE 10+.
- */
-
-/**
- * Add the correct display in IE 10.
- */
-template,
-[hidden] {
- display: none;
-}
-
-/**
- * Responsive Styles
- */
-
-/**
- * Required Variables
- */
-
-/**
- * Root Media Query Variables
- */
-
-/**
- * Extends
- */
-.post-thumbnail {
- max-width: calc(100vw - 30px);
-}
-@media only screen and (min-width: 482px) {
-
- .post-thumbnail {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .post-thumbnail {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-.entry-content .wp-audio-shortcode {
- max-width: calc(100vw - 30px);
- margin-left: auto;
- margin-right: auto;
-}
-@media only screen and (min-width: 482px) {
-
- .entry-content .wp-audio-shortcode {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .entry-content .wp-audio-shortcode {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-.entry-content > *:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.wp-block-separator) {
- max-width: calc(100vw - 30px);
- margin-left: auto;
- margin-right: auto;
-}
-@media only screen and (min-width: 482px) {
-
- .entry-content > *:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.wp-block-separator) {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .entry-content > *:not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.wp-block-separator) {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-*[class*=inner-container] > *:not(.entry-content):not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.wp-block-separator) {
- max-width: calc(100vw - 30px);
- margin-left: auto;
- margin-right: auto;
-}
-@media only screen and (min-width: 482px) {
-
- *[class*=inner-container] > *:not(.entry-content):not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.wp-block-separator) {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- *[class*=inner-container] > *:not(.entry-content):not(.alignwide):not(.alignfull):not(.alignleft):not(.alignright):not(.wp-block-separator) {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-.default-max-width {
- max-width: calc(100vw - 30px);
- margin-left: auto;
- margin-right: auto;
-}
-@media only screen and (min-width: 482px) {
-
- .default-max-width {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .default-max-width {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-.widget-area {
- max-width: calc(100vw - 30px);
-}
-
-@media only screen and (min-width: 482px) {
-
- .widget-area {
- max-width: calc(100vw - 100px);
- }
-}
-
-@media only screen and (min-width: 822px) {
-
- .widget-area {
- max-width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.pagination {
- max-width: calc(100vw - 30px);
- margin-left: auto;
- margin-right: auto;
-}
-
-@media only screen and (min-width: 482px) {
-
- .pagination {
- max-width: calc(100vw - 100px);
- }
-}
-
-@media only screen and (min-width: 822px) {
-
- .pagination {
- max-width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.comments-pagination {
- max-width: calc(100vw - 30px);
- margin-left: auto;
- margin-right: auto;
-}
-
-@media only screen and (min-width: 482px) {
-
- .comments-pagination {
- max-width: calc(100vw - 100px);
- }
-}
-
-@media only screen and (min-width: 822px) {
-
- .comments-pagination {
- max-width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.post-navigation {
- max-width: calc(100vw - 30px);
- margin-left: auto;
- margin-right: auto;
-}
-
-@media only screen and (min-width: 482px) {
-
- .post-navigation {
- max-width: calc(100vw - 100px);
- }
-}
-
-@media only screen and (min-width: 822px) {
-
- .post-navigation {
- max-width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.site-footer {
- max-width: calc(100vw - 30px);
-}
-
-@media only screen and (min-width: 482px) {
-
- .site-footer {
- max-width: calc(100vw - 100px);
- }
-}
-
-@media only screen and (min-width: 822px) {
-
- .site-footer {
- max-width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.site-header {
- max-width: calc(100vw - 30px);
-}
-
-@media only screen and (min-width: 482px) {
-
- .site-header {
- max-width: calc(100vw - 100px);
- }
-}
-
-@media only screen and (min-width: 822px) {
-
- .site-header {
- max-width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.alignwide {
- max-width: calc(100vw - 30px);
- margin-left: auto;
- margin-right: auto;
-}
-
-@media only screen and (min-width: 482px) {
-
- .alignwide {
- max-width: calc(100vw - 100px);
- }
-}
-
-@media only screen and (min-width: 822px) {
-
- .alignwide {
- max-width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.wide-max-width {
- max-width: calc(100vw - 30px);
- margin-left: auto;
- margin-right: auto;
-}
-
-@media only screen and (min-width: 482px) {
-
- .wide-max-width {
- max-width: calc(100vw - 100px);
- }
-}
-
-@media only screen and (min-width: 822px) {
-
- .wide-max-width {
- max-width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.alignfull,
-.wp-block-group .wp-block-group__inner-container > *.alignfull,
-.full-max-width {
- max-width: 100%;
- width: 100%;
- margin-left: auto;
- margin-right: auto;
-}
-
-@media only screen and (min-width: 482px) {
-
- .alignfull,
- .full-max-width {
- max-width: 100%;
- width: auto;
- margin-left: auto;
- margin-right: auto;
- }
-}
-
-.entry-header .post-thumbnail {
- margin-left: auto;
- margin-right: auto;
- width: calc(100vw - 30px);
- max-width: 100%;
-}
-@media only screen and (min-width: 482px) {
-
- .entry-header .post-thumbnail {
- width: calc(100vw - 100px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .entry-header .post-thumbnail {
- width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.singular .post-thumbnail {
- margin-left: auto;
- margin-right: auto;
- width: calc(100vw - 30px);
- max-width: 100%;
-}
-@media only screen and (min-width: 482px) {
-
- .singular .post-thumbnail {
- width: calc(100vw - 100px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .singular .post-thumbnail {
- width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.alignfull [class*=inner-container] > .alignwide {
- margin-left: auto;
- margin-right: auto;
- width: calc(100vw - 30px);
- max-width: 100%;
-}
-@media only screen and (min-width: 482px) {
-
- .alignfull [class*=inner-container] > .alignwide {
- width: calc(100vw - 100px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .alignfull [class*=inner-container] > .alignwide {
- width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.alignwide [class*=inner-container] > .alignwide {
- margin-left: auto;
- margin-right: auto;
- width: calc(100vw - 30px);
- max-width: 100%;
-}
-@media only screen and (min-width: 482px) {
-
- .alignwide [class*=inner-container] > .alignwide {
- width: calc(100vw - 100px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .alignwide [class*=inner-container] > .alignwide {
- width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-@media only screen and (min-width: 482px) {
-
- .entry-content > .alignleft {
-
- /*rtl:ignore*/
- margin-left: calc((100vw - min(calc(100vw - 4 * 25px), 610px)) *1);
-
- /*rtl:ignore*/
- margin-right: 25px;
- }
- @media only screen and (min-width: 482px) {
-
- .entry-content > .alignleft {
- margin-left: calc((100vw - min(calc(100vw - 4 * 25px), 610px)) *1);
- }
- }
- @media only screen and (min-width: 822px) {
-
- .entry-content > .alignleft {
- margin-left: calc((100vw - min(calc(100vw - 4 * 25px), 610px)) *1);
- }
- }
-}
-@media only screen and (min-width: 482px) {
-
- .entry-content > .alignright {
-
- /*rtl:ignore*/
- margin-left: 25px;
-
- /*rtl:ignore*/
- margin-right: calc((100vw - min(calc(100vw - 4 * 25px), 610px)) *1);
- }
- @media only screen and (min-width: 482px) {
-
- .entry-content > .alignright {
- margin-right: calc((100vw - min(calc(100vw - 4 * 25px), 610px)) *1);
- }
- }
- @media only screen and (min-width: 822px) {
-
- .entry-content > .alignright {
- margin-right: calc((100vw - min(calc(100vw - 4 * 25px), 610px)) *1);
- }
- }
-}
-
-/**
- * Site Structure
- *
- * - Set vertical margins and responsive widths on
- * top-level wrappers and content wrappers
- * - `--global--width-content` is a responsive variable
- * - See: globals/_global-width-responsive.scss
- */
-
-/**
- * Top Level Wrappers (header, main, footer)
- * - Set vertical padding and horizontal margins
- */
-.site-header,
-.site-main,
-.widget-area,
-.site-footer {
- padding-top: 30px;
- padding-bottom: 30px;
- margin-left: auto;
- margin-right: auto;
-}
-
-.site-header {
- padding-top: 23px;
- padding-bottom: 60px;
-}
-@media only screen and (min-width: 482px) {
-
- .site-header {
- padding-bottom: 90px;
- }
-}
-
-/**
- * Site-main children wrappers
- * - Add double vertical margins here for clearer hierarchy
- */
-.site-main > * {
- margin-top: 90px;
- margin-bottom: 90px;
-}
-
-.site-main > *:first-child {
- margin-top: 0;
-}
-
-.site-main > *:last-child {
- margin-bottom: 0;
-}
-
-/**
- * Set the default maximum responsive content-width
- */
-
-/**
- * Set the wide maximum responsive content-width
- */
-
-/**
- * Set the full maximum responsive content-width
- */
-
-/*
- * Block & non-gutenberg content wrappers
- * - Set margins
- */
-.entry-header,
-.post-thumbnail,
-.entry-content,
-.entry-footer,
-.author-bio {
- margin-top: 30px;
- margin-right: auto;
- margin-bottom: 30px;
- margin-left: auto;
-}
-
-/*
- * Block & non-gutenberg content wrapper children
- * - Sets spacing-vertical margin logic
- */
-.site-main > article > *,
-.site-main > .not-found > *,
-.entry-content > *,
-[class*=inner-container] > *,
-.wp-block-template-part > * {
- margin-top: 20px;
- margin-bottom: 20px;
-}
-
-.wp-block-post-template :where(li > *) {
- margin-top: 20px;
- margin-bottom: 20px;
-}
-@media only screen and (min-width: 482px) {
-
- .site-main > article > *,
- .site-main > .not-found > *,
- .entry-content > *,
- [class*=inner-container] > *,
- .wp-block-template-part > * {
- margin-top: 30px;
- margin-bottom: 30px;
- }
-
- .wp-block-post-template :where(li > *) {
- margin-top: 30px;
- margin-bottom: 30px;
- }
-}
-
-.site-main > article > *:first-child,
-.site-main > .not-found > *:first-child,
-.entry-content > *:first-child,
-[class*=inner-container] > *:first-child,
-.wp-block-template-part > *:first-child,
-.wp-block-post-template :where(li > *):first-child {
- margin-top: 0;
-}
-
-.site-main > article > *:last-child,
-.site-main > .not-found > *:last-child,
-.entry-content > *:last-child,
-[class*=inner-container] > *:last-child,
-.wp-block-template-part > *:last-child,
-.wp-block-post-template :where(li > *):last-child {
- margin-bottom: 0;
-}
-
-.site-footer > *,
-.widget-area > * {
- margin-top: 20px;
- margin-bottom: 20px;
-}
-@media only screen and (min-width: 482px) {
-
- .site-footer > *,
- .widget-area > * {
- margin-top: 30px;
- margin-bottom: 30px;
- }
-}
-
-/*
- * Block & non-gutenberg content wrapper children
- * - Sets spacing-unit margins
- */
-.entry-header > *,
-.post-thumbnail > *,
-.page-content > *,
-.comment-content > *,
-.widget > * {
- margin-top: 20px;
- margin-bottom: 20px;
-}
-
-.entry-header > *:first-child,
-.post-thumbnail > *:first-child,
-.page-content > *:first-child,
-.comment-content > *:first-child,
-.widget > *:first-child {
- margin-top: 0;
-}
-
-.entry-header > *:last-child,
-.post-thumbnail > *:last-child,
-.page-content > *:last-child,
-.comment-content > *:last-child,
-.widget > *:last-child {
- margin-bottom: 0;
-}
-
-/*
- * .entry-content children specific controls
- * - Adds special margin overrides for alignment utility classes
- */
-.entry-content > *.alignleft,
-.entry-content > *.alignright,
-.entry-content > *.alignleft:first-child + *,
-.entry-content > *.alignright:first-child + *,
-.entry-content > *.alignfull.has-background {
- margin-top: 0;
-}
-
-.entry-content > *:last-child,
-.entry-content > *.alignfull.has-background {
- margin-bottom: 0;
-}
-
-.entry-content > *.alignfull + .alignleft,
-.entry-content > *.alignfull + .alignright {
- margin-top: 30px;
-}
-
-/**
- * Reset specific elements to make them easier to style in other contexts.
- */
-html,
-body,
-p,
-ol,
-ul,
-li,
-dl,
-dt,
-dd,
-blockquote,
-figure,
-fieldset,
-form,
-legend,
-textarea,
-pre,
-iframe,
-hr,
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
- padding: 0;
- margin: 0;
- -moz-osx-font-smoothing: grayscale;
- -webkit-font-smoothing: antialiased;
-}
-
-/**
- * Apply generic border-box to all elements.
- * See:
- * https://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/
- */
-html {
-
- /* Apply border-box across the entire page. */
- box-sizing: border-box;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- line-height: 1.7;
-}
-
-/**
- * Relax the definition a bit, to allow components to override it manually.
- */
-*,
-*::before,
-*::after {
- box-sizing: inherit;
-}
-
-body {
- font-size: 1.25rem;
- font-weight: normal;
- color: #28303d;
- text-align: left;
- background-color: #d1e4dd;
-}
-
-.clear:before,
-.clear:after,
-.entry-content:before,
-.entry-content:after,
-.comment-content:before,
-.comment-content:after,
-.site-header:before,
-.site-header:after,
-.site-content:before,
-.site-content:after,
-.site-footer:before,
-.site-footer:after {
- content: "";
- display: table;
- table-layout: fixed;
-}
-
-.clear:after,
-.entry-content:after,
-.comment-content:after,
-.site-header:after,
-.site-content:after,
-.site-footer:after {
- clear: both;
-}
-
-/* Category 04 can contain any default HTML element. Do not add classes here, just give the elements some basic styles. */
-blockquote {
- padding: 0;
- position: relative;
- margin: 30px 0 30px 25px;
-}
-
-blockquote > * {
- margin-top: 20px;
- margin-bottom: 20px;
-}
-
-blockquote > *:first-child {
- margin-top: 0;
-}
-
-blockquote > *:last-child {
- margin-bottom: 0;
-}
-
-blockquote p {
- letter-spacing: normal;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.25rem;
- font-style: normal;
- font-weight: 700;
- line-height: 1.7;
-}
-
-blockquote cite,
-blockquote footer {
- font-weight: normal;
- letter-spacing: normal;
-}
-
-blockquote.alignleft,
-blockquote.alignright {
- padding-left: inherit;
-}
-
-blockquote.alignleft p,
-blockquote.alignright p {
- font-size: 1.125rem;
- max-width: inherit;
- width: inherit;
-}
-
-blockquote.alignleft cite,
-blockquote.alignleft footer,
-blockquote.alignright cite,
-blockquote.alignright footer {
- font-size: 1rem;
- letter-spacing: normal;
-}
-
-blockquote strong {
- font-weight: bolder;
-}
-
-blockquote:before {
- content: "“";
- position: absolute;
- left: -12px;
-}
-
-blockquote .wp-block-quote__citation,
-blockquote cite,
-blockquote footer {
- color: #28303d;
- font-style: normal;
-}
-@media only screen and (max-width: 481.98px) {
-
- blockquote {
- padding-left: 13px;
- }
-
- blockquote:before {
- left: 0;
- }
-}
-
-input[type=text],
-input[type=email],
-input[type=url],
-input[type=password],
-input[type=search],
-input[type=number],
-input[type=tel],
-input[type=date],
-input[type=month],
-input[type=week],
-input[type=time],
-input[type=datetime],
-input[type=datetime-local],
-input[type=color],
-.site textarea {
- border: 3px solid #39414d;
- border-radius: 0;
- color: #28303d;
- line-height: 1.7;
- padding: 10px;
- margin: 0 2px;
- max-width: 100%;
-}
-
-input[type=text]:focus,
-input[type=email]:focus,
-input[type=url]:focus,
-input[type=password]:focus,
-input[type=search]:focus,
-input[type=number]:focus,
-input[type=tel]:focus,
-input[type=date]:focus,
-input[type=month]:focus,
-input[type=week]:focus,
-input[type=time]:focus,
-input[type=datetime]:focus,
-input[type=datetime-local]:focus,
-input[type=color]:focus,
-.site textarea:focus {
- color: #28303d;
- outline-offset: 2px;
- outline: 2px dotted #39414d;
-}
-
-input[type=text]:disabled,
-input[type=email]:disabled,
-input[type=url]:disabled,
-input[type=password]:disabled,
-input[type=search]:disabled,
-input[type=number]:disabled,
-input[type=tel]:disabled,
-input[type=date]:disabled,
-input[type=month]:disabled,
-input[type=week]:disabled,
-input[type=time]:disabled,
-input[type=datetime]:disabled,
-input[type=datetime-local]:disabled,
-input[type=color]:disabled,
-.site textarea:disabled {
- opacity: 0.7;
-}
-
-.is-dark-theme input[type=text],
-.is-dark-theme input[type=email],
-.is-dark-theme input[type=url],
-.is-dark-theme input[type=password],
-.is-dark-theme input[type=search],
-.is-dark-theme input[type=number],
-.is-dark-theme input[type=tel],
-.is-dark-theme input[type=date],
-.is-dark-theme input[type=month],
-.is-dark-theme input[type=week],
-.is-dark-theme input[type=time],
-.is-dark-theme input[type=datetime],
-.is-dark-theme input[type=datetime-local],
-.is-dark-theme input[type=color],
-.is-dark-theme .site textarea {
- background: rgba(255, 255, 255, 0.9);
-}
-
-input[type=search]:focus {
- outline-offset: -7px;
-}
-
-.is-dark-theme input[type=search]:focus {
- outline-color: #d1e4dd;
-}
-
-input[type=color] {
- padding: 5px;
- height: 40px;
-}
-
-input[type=email],
-input[type=url] {
-
- /*rtl:ignore*/
- direction: ltr;
-}
-
-select {
- border: 3px solid #39414d;
- color: #28303d;
- -moz-appearance: none;
- -webkit-appearance: none;
- appearance: none;
- line-height: 1.7;
- padding: 10px 30px 10px 10px;
- background: #fff url("data:image/svg+xml;utf8, ") no-repeat;
- background-position: right 10px top 60%;
-}
-
-select:focus {
- outline-offset: 2px;
- outline: 2px dotted #39414d;
-}
-
-.is-dark-theme select {
- background: rgba(255, 255, 255, 0.9) url("data:image/svg+xml;utf8, ") no-repeat;
- background-position: right 10px top 60%;
-}
-
-textarea {
- width: 100%;
-}
-
-label {
- font-size: 1.125rem;
- font-weight: 500;
- margin-bottom: 10px;
-}
-
-/**
-https://css-tricks.com/custom-styling-form-inputs-with-modern-css-features/
-https://codepen.io/aaroniker/pen/ZEYoxEY by Aaron Iker.
-License: MIT.
-*/
-@supports (-webkit-appearance: none) or (-moz-appearance: none) {
-
- input[type=checkbox],
- input[type=radio] {
- -webkit-appearance: none;
- -moz-appearance: none;
- position: relative;
- width: 25px;
- height: 25px;
- border: 3px solid #39414d;
- background: #fff;
- }
-
- input[type=checkbox]:disabled,
- input[type=radio]:disabled {
- opacity: 0.7;
- }
-
- .is-dark-theme input[type=checkbox],
- .is-dark-theme input[type=radio] {
- background: rgba(255, 255, 255, 0.9);
- }
-
- input[type=checkbox]:focus {
- outline-offset: 2px;
- outline: 2px dotted #39414d;
- }
-
- input[type=checkbox]:after {
- content: "";
- opacity: 0;
- display: block;
- left: 5px;
- top: 2px;
- position: absolute;
- width: 7px;
- height: 13px;
- border: 3px solid #28303d;
- border-top: 0;
- border-left: 0;
- transform: rotate(30deg);
- }
-
- input[type=checkbox]:checked {
- color: #28303d;
- }
-
- input[type=checkbox]:checked:after {
- opacity: 1;
- }
-
- input[type=radio] {
- border-radius: 50%;
- }
-
- input[type=radio]:focus {
- outline-offset: 2px;
- outline: 2px dotted #39414d;
- }
-
- input[type=radio]:after {
- content: "";
- opacity: 0;
- display: block;
- left: 3px;
- top: 3px;
- position: absolute;
- width: 11px;
- height: 11px;
- border-radius: 50%;
- background: #28303d;
- }
-
- input[type=radio]:checked {
- border: 4px solid #39414d;
- }
-
- input[type=radio]:checked:after {
- opacity: 1;
- }
-
- input[type=radio]:checked:focus {
- outline-offset: 4px;
- outline: 2px dotted #39414d;
- }
-}
-
-input[type=checkbox] + label,
-input[type=radio] + label {
- display: inline-block;
- padding-left: 10px;
- font-size: 1rem;
- vertical-align: top;
-}
-
-/**
- * https://css-tricks.com/styling-cross-browser-compatible-range-inputs-css/
-*/
-@supports (-webkit-appearance: none) or (-moz-appearance: none) {
-
- input[type=range] {
- -webkit-appearance: none; /* Hides the slider so that custom slider can be made */
- width: 100%; /* Specific width is required for Firefox. */
- height: 6px;
- background: #39414d;
- border-radius: 6px;
- outline-offset: 10px;
- }
-
- input[type=range]:disabled {
- opacity: 0.7;
- }
-
- input[type=range]::-webkit-slider-thumb {
- -webkit-appearance: none;
- border: 3px solid #39414d;
- height: 44px;
- width: 44px;
- border-radius: 50%;
- background: #d1e4dd;
- cursor: pointer;
- }
-
- input[type=range]::-moz-range-thumb {
- border: 3px solid #39414d;
- height: 44px;
- width: 44px;
- border-radius: 50%;
- background: #d1e4dd;
- cursor: pointer;
- box-sizing: border-box;
- }
-}
-
-input[type=range]::-ms-track {
- width: 100%;
- height: 6px;
- border-radius: 6px;
- border-width: 19px 0;
- border-color: #d1e4dd;
- background: transparent;
- color: transparent;
- cursor: pointer;
-}
-
-input[type=range]::-ms-fill-upper,
-input[type=range]::-ms-fill-lower {
- background: #39414d;
- border-radius: 6px;
-}
-
-input[type=range]::-ms-thumb {
- border: 3px solid #39414d;
- height: 44px;
- width: 44px;
- border-radius: 50%;
- background: #d1e4dd;
- cursor: pointer;
-}
-
-fieldset {
- display: grid;
- border-color: #39414d;
- padding: 25px;
-}
-
-fieldset legend {
- font-size: 1.5rem;
-}
-
-fieldset input[type=submit] {
- max-width: max-content;
-}
-
-fieldset input:not([type=submit]) {
- margin-bottom: 20px;
-}
-
-fieldset input[type=radio],
-fieldset input[type=checkbox] {
- margin-bottom: 0;
-}
-
-fieldset input[type=radio] + label,
-fieldset input[type=checkbox] + label {
- font-size: 1.125rem;
- padding-left: 0;
- margin-bottom: 20px;
-}
-
-::-moz-placeholder {
- opacity: 1;
-}
-
-.post-password-message {
- font-size: 1.5rem;
-}
-
-.post-password-form {
- display: flex;
- flex-wrap: wrap;
-}
-
-.post-password-form__label {
- width: 100%;
- margin-bottom: 0;
-}
-
-.post-password-form input[type=password] {
- flex-grow: 1;
- margin-top: 10px;
- margin-right: 17px;
-}
-
-.post-password-form__submit {
- margin-top: 10px;
-}
-@media only screen and (min-width: 592px) {
-
- .post-password-form__submit {
- margin-left: 10px;
- }
-}
-
-img {
- height: auto;
- vertical-align: middle;
-}
-
-/* Classic editor images */
-
-/* Make sure embeds and iframes fit their containers. */
-img,
-.entry-content img,
-embed,
-iframe,
-object,
-video {
- max-width: 100%;
-}
-
-/* Media captions */
-figcaption,
-.wp-caption,
-.wp-caption-text,
-.wp-block-embed figcaption {
- color: currentColor;
- font-size: 1rem;
- line-height: 1.7;
- margin-top: 10px;
- margin-bottom: 20px;
- text-align: center;
-}
-
-.alignleft figcaption,
-.alignright figcaption,
-.alignleft .wp-caption,
-.alignright .wp-caption,
-.alignleft .wp-caption-text,
-.alignright .wp-caption-text,
-.alignleft .wp-block-embed figcaption,
-.alignright .wp-block-embed figcaption {
- margin-bottom: 0;
-}
-
-/* WP Smiley */
-.page-content .wp-smiley,
-.entry-content .wp-smiley,
-.comment-content .wp-smiley {
- border: none;
- margin-bottom: 0;
- margin-top: 0;
- padding: 0;
-}
-
-/* Over here, place any elements that do not need to have their own file. */
-b,
-strong {
- font-weight: 700;
-}
-
-dfn,
-cite,
-em,
-i {
- font-style: italic;
-}
-
-pre {
- white-space: pre;
- overflow-x: auto;
-}
-
-.entry-content > code {
- display: block;
-}
-
-/*
- * text-underline-offset doesn't work in Chrome at all 👎
- * But looks nice in Safari/Firefox, so let's keep it and
- * maybe Chrome will support it soon.
- */
-a {
- cursor: pointer;
- color: #28303d;
- text-underline-offset: 3px;
- text-decoration-skip-ink: all;
-}
-
-a:hover {
- text-decoration-style: dotted;
- text-decoration-skip-ink: none;
-}
-
-.site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) {
-
- /* Only visible in Windows High Contrast mode */
- outline: 2px solid transparent;
- text-decoration: underline 1px dotted currentColor;
- text-decoration-skip-ink: none;
- background: rgba(255, 255, 255, 0.9);
-}
-
-.is-dark-theme .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) {
- background: #000;
- color: #fff;
- text-decoration: none;
-}
-
-.is-dark-theme .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) .meta-nav {
- color: #fff;
-}
-
-.has-background-white .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) {
- background: rgba(0, 0, 0, 0.9);
- color: #fff;
-}
-
-.has-background-white .site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) .meta-nav {
- color: #fff;
-}
-
-.site a:focus:not(.wp-block-button__link):not(.wp-block-file__button).skip-link {
-
- /* Only visible in Windows High Contrast mode */
- outline: 2px solid transparent;
- outline-offset: -2px;
-}
-
-.site a:focus:not(.wp-block-button__link):not(.wp-block-file__button).skip-link:focus {
- color: #21759b;
- background-color: #f1f1f1;
-}
-
-.site a:focus:not(.wp-block-button__link):not(.wp-block-file__button).custom-logo-link {
- background: none;
-}
-
-.site a:focus:not(.wp-block-button__link):not(.wp-block-file__button) img {
- outline: 2px dotted #28303d;
-}
-
-.has-background .has-link-color a,
-.has-background.has-link-color a {
- color: #28303d;
-}
-
-/* Category 05 is all about adjusting the default block styles to the given layout. I only added three blocks as examples. */
-.wp-block-audio audio:focus {
- outline-offset: 5px;
- outline: 2px solid #28303d;
-}
-
-/**
- * Button
- */
-.site .button,
-button,
-input[type=submit],
-input[type=reset],
-.wp-block-search .wp-block-search__button,
-.wp-block-button .wp-block-button__link,
-.wp-block-file a.wp-block-file__button {
- border: 3px solid transparent;
- border-radius: 0;
- cursor: pointer;
- font-weight: 500;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.25rem;
- line-height: 1.5;
- padding: 15px 30px;
- text-decoration: none;
-}
-
-.site .button:not(:hover):not(:active):not(.has-text-color),
-button:not(:hover):not(:active):not(.has-text-color),
-input[type=submit]:not(:hover):not(:active):not(.has-text-color),
-input[type=reset]:not(:hover):not(:active):not(.has-text-color),
-.wp-block-search .wp-block-search__button:not(:hover):not(:active):not(.has-text-color),
-.wp-block-button .wp-block-button__link:not(:hover):not(:active):not(.has-text-color),
-.wp-block-file a.wp-block-file__button:not(:hover):not(:active):not(.has-text-color) {
- color: #d1e4dd;
-}
-
-.has-background .site .button:not(:hover):not(:active):not(.has-text-color),
-.has-background button:not(:hover):not(:active):not(.has-text-color),
-.has-background input[type=submit]:not(:hover):not(:active):not(.has-text-color),
-.has-background input[type=reset]:not(:hover):not(:active):not(.has-text-color),
-.has-background .wp-block-search .wp-block-search__button:not(:hover):not(:active):not(.has-text-color),
-.has-background .wp-block-button .wp-block-button__link:not(:hover):not(:active):not(.has-text-color),
-.has-background .wp-block-file a.wp-block-file__button:not(:hover):not(:active):not(.has-text-color),
-.has-background .site .button:not(:hover):not(:active):not(.has-text-color).has-background,
-.has-background button:not(:hover):not(:active):not(.has-text-color).has-background,
-.has-background input[type=submit]:not(:hover):not(:active):not(.has-text-color).has-background,
-.has-background input[type=reset]:not(:hover):not(:active):not(.has-text-color).has-background,
-.has-background .wp-block-search .wp-block-search__button:not(:hover):not(:active):not(.has-text-color).has-background,
-.has-background .wp-block-button .wp-block-button__link:not(:hover):not(:active):not(.has-text-color).has-background,
-.has-background .wp-block-file a.wp-block-file__button:not(:hover):not(:active):not(.has-text-color).has-background {
- color: #28303d;
-}
-
-.site .button:not(:hover):not(:active):not(.has-background),
-button:not(:hover):not(:active):not(.has-background),
-input[type=submit]:not(:hover):not(:active):not(.has-background),
-input[type=reset]:not(:hover):not(:active):not(.has-background),
-.wp-block-search .wp-block-search__button:not(:hover):not(:active):not(.has-background),
-.wp-block-button .wp-block-button__link:not(:hover):not(:active):not(.has-background),
-.wp-block-file a.wp-block-file__button:not(:hover):not(:active):not(.has-background),
-.has-background .site .button:not(:hover):not(:active):not(.has-background),
-.has-background button:not(:hover):not(:active):not(.has-background),
-.has-background input[type=submit]:not(:hover):not(:active):not(.has-background),
-.has-background input[type=reset]:not(:hover):not(:active):not(.has-background),
-.has-background .wp-block-search .wp-block-search__button:not(:hover):not(:active):not(.has-background),
-.has-background .wp-block-button .wp-block-button__link:not(:hover):not(:active):not(.has-background),
-.has-background .wp-block-file a.wp-block-file__button:not(:hover):not(:active):not(.has-background) {
- background-color: #28303d;
-}
-
-.site .button:hover,
-.site .button:active,
-button:hover,
-button:active,
-input[type=submit]:hover,
-input[type=submit]:active,
-input[type=reset]:hover,
-input[type=reset]:active,
-.wp-block-search .wp-block-search__button:hover,
-.wp-block-search .wp-block-search__button:active,
-.wp-block-button .wp-block-button__link:hover,
-.wp-block-button .wp-block-button__link:active,
-.wp-block-file a.wp-block-file__button:hover,
-.wp-block-file a.wp-block-file__button:active {
- background-color: transparent;
- border-color: currentColor;
- color: inherit;
-}
-
-.site .button:focus,
-button:focus,
-input[type=submit]:focus,
-input[type=reset]:focus,
-.wp-block-search .wp-block-search__button:focus,
-.wp-block-button .wp-block-button__link:focus,
-.wp-block-file a.wp-block-file__button:focus {
- outline-offset: -6px;
- outline: 2px dotted currentColor;
-}
-
-.site .button:disabled,
-button:disabled,
-input[type=submit]:disabled,
-input[type=reset]:disabled,
-.wp-block-search .wp-block-search__button:disabled,
-.wp-block-button .wp-block-button__link:disabled,
-.wp-block-file a.wp-block-file__button:disabled {
- background-color: rgba(255, 255, 255, 0.5);
- border-color: rgba(255, 255, 255, 0.5);
- color: #39414d;
-}
-
-/**
- * Block Options
- */
-.wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-text-color),
-.has-background .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-text-color) {
- color: #d1e4dd;
-}
-
-.has-background .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-text-color).has-background {
- color: #28303d;
-}
-
-.wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-background),
-.has-background .wp-block-button:not(.is-style-outline) .wp-block-button__link:not(:hover):not(:active):not(.has-background) {
- background-color: #28303d;
-}
-
-.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover,
-.wp-block-button:not(.is-style-outline) .wp-block-button__link:active {
- border-color: currentColor !important;
- background-color: transparent !important;
- color: inherit !important;
-}
-
-.wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active):not(.has-text-color),
-.wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active):not(.has-background),
-.wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active).has-background {
- border-color: currentColor;
-}
-
-.wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active):not(.has-text-color),
-.has-background .wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active):not(.has-text-color) {
- color: #28303d;
-}
-
-.has-background .wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active).has-background:not(.has-text-color) {
- color: inherit;
-}
-
-.wp-block-button.is-style-outline .wp-block-button__link:not(:hover):not(:active):not(.has-background) {
- background-color: transparent;
-}
-
-.wp-block-button.is-style-outline .wp-block-button__link:hover,
-.wp-block-button.is-style-outline .wp-block-button__link:active {
- border-color: transparent !important;
- background-color: #28303d !important;
- color: #d1e4dd !important;
-}
-
-.has-background .wp-block-button.is-style-outline .wp-block-button__link:hover,
-.has-background .wp-block-button.is-style-outline .wp-block-button__link:active {
- background-color: #28303d !important;
- color: #d1e4dd !important;
-}
-
-.has-text-color .wp-block-button.is-style-outline .wp-block-button__link:hover,
-.has-text-color .wp-block-button.is-style-outline .wp-block-button__link:active {
- color: #d1e4dd !important;
-}
-
-.wp-block-button .is-style-squared .wp-block-button__link {
- border-radius: 0;
-}
-
-.is-style-outline .wp-block-button__link[style*=radius]:focus,
-.wp-block-button a.wp-block-button__link[style*=radius]:focus {
- outline-offset: 2px;
- outline: 2px dotted #39414d;
-}
-
-.wp-block-code {
- border-color: #28303d;
- border-radius: 0;
- border-style: solid;
- border-width: 0.1rem;
- padding: 20px;
-}
-
-.wp-block-code code {
- color: #28303d;
- white-space: pre;
- overflow-x: auto;
- display: block;
-}
-
-.wp-block-columns:not(.alignwide):not(.alignfull) {
- clear: both;
-}
-
-.wp-block-columns .wp-block-column > * {
- margin-top: 20px;
- margin-bottom: 20px;
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block-columns .wp-block-column > * {
- margin-top: 30px;
- margin-bottom: 30px;
- }
-}
-
-.wp-block-columns .wp-block-column > *:first-child {
- margin-top: 0;
-}
-
-.wp-block-columns .wp-block-column > *:last-child,
-.wp-block-columns .wp-block-column:last-child {
- margin-bottom: 0;
-}
-
-.wp-block-columns .wp-block-column:not(:last-child) {
- margin-bottom: 20px;
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block-columns .wp-block-column:not(:last-child) {
- margin-bottom: 30px;
- }
-}
-@media only screen and (min-width: 822px) {
-
- .wp-block-columns .wp-block-column:not(:last-child) {
- margin-bottom: 0;
- }
-}
-
-.wp-block-columns.is-style-twentytwentyone-columns-overlap {
- justify-content: space-around;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) {
- margin-left: -50px;
- margin-top: 63px;
- z-index: 2;
- }
-
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > p:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h1:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h2:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h3:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h4:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h5:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > h6:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > ul:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > ol:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > pre:not(.has-background) {
- background-color: #d1e4dd;
- padding: 20px;
- }
-
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > ul:not(.has-background),
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n) > ol:not(.has-background) {
- padding-left: 50px;
- }
-
- .wp-block-columns.is-style-twentytwentyone-columns-overlap .wp-block-column:nth-child(2n).is-vertically-aligned-center {
- margin-top: 0;
- }
-}
-
-.wp-block-columns.alignfull .wp-block-column p:not(.has-background),
-.wp-block-columns.alignfull .wp-block-column h1:not(.has-background),
-.wp-block-columns.alignfull .wp-block-column h2:not(.has-background),
-.wp-block-columns.alignfull .wp-block-column h3:not(.has-background),
-.wp-block-columns.alignfull .wp-block-column h4:not(.has-background),
-.wp-block-columns.alignfull .wp-block-column h5:not(.has-background),
-.wp-block-columns.alignfull .wp-block-column h6:not(.has-background) {
- padding-left: 20px;
- padding-right: 20px;
-}
-
-.wp-block-cover,
-.wp-block-cover-image {
- background-color: #000;
- min-height: 450px;
- margin-top: inherit;
- margin-bottom: inherit;
-
- /* default & custom background-color */
-
- /* Treating H2 separately to account for legacy /core styles */
-
- /* Block Styles */
-
- /* The background color class is used just for the overlay, and does not need to be applied to the inner container. */
-}
-
-.wp-block-cover:not(.alignwide):not(.alignfull),
-.wp-block-cover-image:not(.alignwide):not(.alignfull) {
- clear: both;
-}
-
-.wp-block-cover.alignfull,
-.wp-block-cover-image.alignfull {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-.wp-block-cover .wp-block-cover__inner-container,
-.wp-block-cover .wp-block-cover-image-text,
-.wp-block-cover .wp-block-cover-text,
-.wp-block-cover-image .wp-block-cover__inner-container,
-.wp-block-cover-image .wp-block-cover-image-text,
-.wp-block-cover-image .wp-block-cover-text {
- color: currentColor;
- margin-top: 30px;
- margin-bottom: 30px;
-}
-
-.wp-block-cover .wp-block-cover__inner-container a:not(.wp-block-button__link):not(.wp-block-file__button),
-.wp-block-cover .wp-block-cover-image-text a:not(.wp-block-button__link):not(.wp-block-file__button),
-.wp-block-cover .wp-block-cover-text a:not(.wp-block-button__link):not(.wp-block-file__button),
-.wp-block-cover-image .wp-block-cover__inner-container a:not(.wp-block-button__link):not(.wp-block-file__button),
-.wp-block-cover-image .wp-block-cover-image-text a:not(.wp-block-button__link):not(.wp-block-file__button),
-.wp-block-cover-image .wp-block-cover-text a:not(.wp-block-button__link):not(.wp-block-file__button) {
- color: currentColor;
-}
-
-.wp-block-cover .wp-block-cover__inner-container .has-link-color a,
-.wp-block-cover .wp-block-cover-image-text .has-link-color a,
-.wp-block-cover .wp-block-cover-text .has-link-color a,
-.wp-block-cover-image .wp-block-cover__inner-container .has-link-color a,
-.wp-block-cover-image .wp-block-cover-image-text .has-link-color a,
-.wp-block-cover-image .wp-block-cover-text .has-link-color a {
- color: #28303d;
-}
-
-.wp-block-cover:not([class*=background-color]) .wp-block-cover__inner-container,
-.wp-block-cover:not([class*=background-color]) .wp-block-cover-image-text,
-.wp-block-cover:not([class*=background-color]) .wp-block-cover-text,
-.wp-block-cover-image:not([class*=background-color]) .wp-block-cover__inner-container,
-.wp-block-cover-image:not([class*=background-color]) .wp-block-cover-image-text,
-.wp-block-cover-image:not([class*=background-color]) .wp-block-cover-text {
- color: #fff;
-}
-
-.wp-block-cover h2 {
- font-size: 2.25rem;
- letter-spacing: normal;
- line-height: 1.3;
- max-width: inherit;
- text-align: inherit;
- padding: 0;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-cover h2 {
- font-size: 3rem;
- }
-}
-
-.wp-block-cover-image h2 {
- font-size: 2.25rem;
- letter-spacing: normal;
- line-height: 1.3;
- max-width: inherit;
- text-align: inherit;
- padding: 0;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-cover-image h2 {
- font-size: 3rem;
- }
-}
-
-.wp-block-cover h2.has-text-align-left,
-.wp-block-cover-image h2.has-text-align-left {
- text-align: left;
-}
-
-.wp-block-cover h2.has-text-align-center,
-.wp-block-cover-image h2.has-text-align-center {
- text-align: center;
-}
-
-.wp-block-cover h2.has-text-align-right,
-.wp-block-cover-image h2.has-text-align-right {
- text-align: right;
-}
-
-.wp-block-cover .wp-block-cover__inner-container,
-.wp-block-cover-image .wp-block-cover__inner-container {
- width: calc(100% - 60px);
-}
-
-.wp-block-cover .wp-block-cover__inner-container > *,
-.wp-block-cover-image .wp-block-cover__inner-container > * {
- margin-top: 20px;
- margin-bottom: 20px;
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block-cover .wp-block-cover__inner-container > *,
- .wp-block-cover-image .wp-block-cover__inner-container > * {
- margin-top: 30px;
- margin-bottom: 30px;
- }
-}
-
-.wp-block-cover .wp-block-cover__inner-container > *:first-child,
-.wp-block-cover-image .wp-block-cover__inner-container > *:first-child {
- margin-top: 0;
-}
-
-.wp-block-cover .wp-block-cover__inner-container > *:last-child,
-.wp-block-cover-image .wp-block-cover__inner-container > *:last-child {
- margin-bottom: 0;
-}
-
-.wp-block-cover.alignleft,
-.wp-block-cover.alignright,
-.wp-block-cover-image.alignleft,
-.wp-block-cover-image.alignright {
- margin-top: 0;
-}
-
-.wp-block-cover.alignleft > *,
-.wp-block-cover.alignright > *,
-.wp-block-cover-image.alignleft > *,
-.wp-block-cover-image.alignright > * {
- margin-top: 60px;
- margin-bottom: 60px;
- padding-left: 25px;
- padding-right: 25px;
- width: 100%;
-}
-
-.wp-block-cover.has-left-content,
-.wp-block-cover.has-right-content,
-.wp-block-cover-image.has-left-content,
-.wp-block-cover-image.has-right-content {
- justify-content: center;
-}
-
-.wp-block-cover.is-style-twentytwentyone-border,
-.wp-block-cover-image.is-style-twentytwentyone-border {
- border: 3px solid #28303d;
-}
-
-.wp-block-cover[class*=-background-color][class] .wp-block-cover__inner-container,
-.wp-block-cover-image[class*=-background-color][class] .wp-block-cover__inner-container {
- background-color: unset;
-}
-
-.wp-block-file a.wp-block-file__button:active,
-.wp-block-file a.wp-block-file__button:focus,
-.wp-block-file a.wp-block-file__button:hover {
- opacity: inherit;
-}
-
-.wp-block-file a.wp-block-file__button {
- display: inline-block;
-}
-
-.wp-block-gallery {
- margin: 0 auto;
-}
-
-.wp-block-gallery .blocks-gallery-image,
-.wp-block-gallery .blocks-gallery-item {
- width: calc(50% - 10px);
-}
-
-.wp-block-gallery .blocks-gallery-image figcaption,
-.wp-block-gallery .blocks-gallery-item figcaption {
- margin: 0;
- color: #fff;
- font-size: 1rem;
-}
-
-.wp-block-gallery .blocks-gallery-image figcaption a,
-.wp-block-gallery .blocks-gallery-item figcaption a {
- color: #fff;
-}
-
-.wp-block-gallery .blocks-gallery-image figcaption a:focus,
-.wp-block-gallery .blocks-gallery-item figcaption a:focus {
- background-color: transparent;
- outline: 2px solid #28303d;
- text-decoration: none;
-}
-
-.wp-block-gallery .blocks-gallery-image a:focus img,
-.wp-block-gallery .blocks-gallery-item a:focus img {
- outline-offset: 2px;
-}
-
-.wp-block-group {
- display: flow-root;
-}
-
-.wp-block-group .wp-block-group__inner-container {
- margin-left: auto;
- margin-right: auto;
-}
-
-.wp-block-group .wp-block-group__inner-container > * {
- margin-top: 20px;
- margin-bottom: 20px;
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block-group .wp-block-group__inner-container > * {
- margin-top: 30px;
- margin-bottom: 30px;
- }
-}
-
-.wp-block-group .wp-block-group__inner-container > *:first-child {
- margin-top: 0;
-}
-
-.wp-block-group .wp-block-group__inner-container > *:last-child {
- margin-bottom: 0;
-}
-
-.wp-block-group.has-background {
- padding: 20px;
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block-group.has-background {
- padding: 30px;
- }
-}
-
-.wp-block-group.is-style-twentytwentyone-border {
- border: 3px solid #28303d;
- padding: 30px;
-}
-
-.wp-block-group.has-background .wp-block-group__inner-container > .alignfull,
-.wp-block-group.has-background .wp-block-group__inner-container > hr.wp-block-separator:not(.is-style-dots):not(.alignwide).alignfull,
-.wp-block-group.is-style-twentytwentyone-border .wp-block-group__inner-container > .alignfull,
-.wp-block-group.is-style-twentytwentyone-border .wp-block-group__inner-container > hr.wp-block-separator:not(.is-style-dots):not(.alignwide).alignfull {
- max-width: calc(100% + 60px);
- width: calc(100% + 60px);
- margin-left: -30px;
-}
-
-h1,
-.h1,
-h2,
-.h2,
-h3,
-.h3,
-h4,
-.h4,
-h5,
-.h5,
-h6,
-.h6 {
- clear: both;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-weight: normal;
-}
-
-h1 strong,
-.h1 strong,
-h2 strong,
-.h2 strong,
-h3 strong,
-.h3 strong,
-h4 strong,
-.h4 strong,
-h5 strong,
-.h5 strong,
-h6 strong,
-.h6 strong {
- font-weight: 600;
-}
-
-h1 {
- font-size: 4rem;
- letter-spacing: normal;
- line-height: 1.1;
-}
-
-@media only screen and (min-width: 652px) {
-
- h1 {
- font-size: 6rem;
- }
-}
-
-.h1 {
- font-size: 4rem;
- letter-spacing: normal;
- line-height: 1.1;
-}
-
-@media only screen and (min-width: 652px) {
-
- .h1 {
- font-size: 6rem;
- }
-}
-
-h2 {
- font-size: 2.25rem;
- letter-spacing: normal;
- line-height: 1.3;
-}
-
-@media only screen and (min-width: 652px) {
-
- h2 {
- font-size: 3rem;
- }
-}
-
-.h2 {
- font-size: 2.25rem;
- letter-spacing: normal;
- line-height: 1.3;
-}
-
-@media only screen and (min-width: 652px) {
-
- .h2 {
- font-size: 3rem;
- }
-}
-
-h3 {
- font-size: 2rem;
- letter-spacing: normal;
- line-height: 1.3;
-}
-
-@media only screen and (min-width: 652px) {
-
- h3 {
- font-size: 2rem;
- }
-}
-
-.h3 {
- font-size: 2rem;
- letter-spacing: normal;
- line-height: 1.3;
-}
-
-@media only screen and (min-width: 652px) {
-
- .h3 {
- font-size: 2rem;
- }
-}
-
-h4,
-.h4 {
- font-size: 1.5rem;
- font-weight: 600;
- letter-spacing: normal;
- line-height: 1.3;
-}
-
-h5,
-.h5 {
- font-size: 1.125rem;
- font-weight: 600;
- letter-spacing: 0.05em;
- line-height: 1.3;
-}
-
-h6,
-.h6 {
- font-size: 1rem;
- font-weight: 600;
- letter-spacing: 0.05em;
- line-height: 1.3;
-}
-
-.wp-block-image {
- text-align: center;
-}
-
-.wp-block-image figcaption {
- color: #28303d;
- font-size: 1rem;
- line-height: 1.7;
- margin-top: 10px;
- margin-bottom: 20px;
- text-align: center;
-}
-
-.wp-block-image .alignright {
-
- /*rtl:ignore*/
- margin-left: 25px;
-
- /*rtl:ignore*/
- margin-right: 0;
-}
-
-.wp-block-image .alignleft {
-
- /*rtl:ignore*/
- margin-right: 25px;
-
- /*rtl:ignore*/
- margin-left: 0;
-}
-
-.wp-block-image a:focus img {
- outline-offset: 2px;
-}
-
-.entry-content > *[class=wp-block-image],
-.entry-content [class*=inner-container] > *[class=wp-block-image] {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-.entry-content > *[class=wp-block-image] + *,
-.entry-content [class*=inner-container] > *[class=wp-block-image] + * {
- margin-top: 0;
-}
-
-.wp-block-image.is-style-twentytwentyone-border img,
-.wp-block-image.is-style-twentytwentyone-image-frame img {
- border: 3px solid #28303d;
-}
-
-.wp-block-image.is-style-twentytwentyone-image-frame img {
- padding: 20px;
-}
-
-@media only screen and (min-width: 482px) {
-
- .entry-content > .wp-block-image > .alignleft,
- .entry-content > .wp-block-image > .alignright {
- max-width: 50%;
- }
-}
-@media only screen and (max-width: 481.98px) {
-
- .entry-content > .wp-block-image > .alignleft,
- .entry-content > .wp-block-image > .alignright {
- margin-left: 0;
- margin-right: 0;
- }
-
- .entry-content > .wp-block-image > .alignleft:after,
- .entry-content > .wp-block-image > .alignright:after {
- content: "";
- display: block;
- height: 1px;
- width: 1em;
-
- /*rtl:ignore*/
- float: right;
- }
-
- .entry-content > .wp-block-image > .alignright:after {
-
- /*rtl:ignore*/
- float: left;
- }
-}
-
-.wp-block-latest-comments {
- padding-left: 0;
-}
-
-.wp-block-latest-comments:where(:not([class*=-font-size]):not([style*=font-size])) .wp-block-latest-comments__comment {
- font-size: 1.125rem;
-}
-
-.wp-block-latest-comments .wp-block-latest-comments__comment {
- line-height: 1.7;
-
- /* Vertical margins logic */
- margin-top: 30px;
- margin-bottom: 30px;
-}
-
-.wp-block-latest-comments .wp-block-latest-comments__comment:first-child {
- margin-top: 0;
-}
-
-.wp-block-latest-comments .wp-block-latest-comments__comment:last-child {
- margin-bottom: 0;
-}
-
-.wp-block-latest-comments .wp-block-latest-comments__comment-meta {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
-}
-
-.wp-block-latest-comments .wp-block-latest-comments__comment-date {
- color: inherit;
- font-size: inherit;
-}
-
-.wp-block-latest-comments .wp-block-latest-comments__comment-excerpt p {
- font-size: inherit;
- line-height: 1.7;
- margin: 0;
-}
-
-.wp-block-latest-posts {
- padding-left: 0;
-}
-
-.wp-block-latest-posts:not(.is-grid) > li {
- margin-top: 50px;
- margin-bottom: 50px;
-}
-
-.wp-block-latest-posts:not(.is-grid) > li:first-child {
- margin-top: 0;
-}
-
-.wp-block-latest-posts:not(.is-grid) > li:last-child {
- margin-bottom: 0;
-}
-
-.widget-area .wp-block-latest-posts:not(.is-grid) > li {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-.wp-block-latest-posts.is-grid {
- word-wrap: break-word;
- word-break: break-word;
-}
-
-.wp-block-latest-posts.is-grid > li {
- margin-bottom: 30px;
-}
-
-.wp-block-latest-posts.is-grid > li:last-child,
-.wp-block-latest-posts.is-grid.columns-2 > li:nth-last-child(-n+2):nth-child(2n+1),
-.wp-block-latest-posts.is-grid.columns-2 > li:nth-last-child(-n+2):nth-child(2n+1) ~ li,
-.wp-block-latest-posts.is-grid.columns-3 > li:nth-last-child(-n+3):nth-child(3n+1),
-.wp-block-latest-posts.is-grid.columns-3 > li:nth-last-child(-n+3):nth-child(3n+1) ~ li,
-.wp-block-latest-posts.is-grid.columns-4 > li:nth-last-child(-n+4):nth-child(4n+1),
-.wp-block-latest-posts.is-grid.columns-4 > li:nth-last-child(-n+4):nth-child(4n+1) ~ li,
-.wp-block-latest-posts.is-grid.columns-5 > li:nth-last-child(-n+5):nth-child(5n+1),
-.wp-block-latest-posts.is-grid.columns-5 > li:nth-last-child(-n+5):nth-child(5n+1) ~ li,
-.wp-block-latest-posts.is-grid.columns-6 > li:nth-last-child(-n+6):nth-child(6n+1),
-.wp-block-latest-posts.is-grid.columns-6 > li:nth-last-child(-n+6):nth-child(6n+1) ~ li {
- margin-bottom: 0;
-}
-
-.wp-block-latest-posts > li > * {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-
-.wp-block-latest-posts > li > *:first-child {
- margin-top: 0;
-}
-
-.wp-block-latest-posts > li > *:last-child {
- margin-bottom: 0;
-}
-
-.wp-block-latest-posts > li > a {
- display: inline-block;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 2rem;
- font-weight: normal;
- line-height: 1.3;
- margin-bottom: 10px;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-latest-posts > li > a {
- font-size: 2rem;
- }
-}
-
-.widget-area .wp-block-latest-posts > li > a {
- font-size: 1.125rem;
- margin-bottom: 0;
-}
-
-.wp-block-latest-posts .wp-block-latest-posts__post-author {
- color: #28303d;
- font-size: 1.25rem;
- line-height: 1.7;
-}
-
-.wp-block-latest-posts .wp-block-latest-posts__post-date {
- color: #28303d;
- font-size: 1rem;
- line-height: 1.7;
-}
-
-[class*=inner-container] .wp-block-latest-posts .wp-block-latest-posts__post-date,
-.has-background .wp-block-latest-posts .wp-block-latest-posts__post-date {
- color: currentColor;
-}
-
-.wp-block-latest-posts .wp-block-latest-posts__post-excerpt,
-.wp-block-latest-posts .wp-block-latest-posts__post-full-content {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.125rem;
- line-height: 1.7;
- margin-top: 20px;
-}
-
-.wp-block-latest-posts.alignfull {
- padding-left: 20px;
- padding-right: 20px;
-}
-
-.entry-content [class*=inner-container] .wp-block-latest-posts.alignfull,
-.entry-content .has-background .wp-block-latest-posts.alignfull {
- padding-left: 0;
- padding-right: 0;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers {
- border-top: 3px solid #28303d;
- border-bottom: 3px solid #28303d;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers:not(.is-grid) > li,
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers > li {
- padding-bottom: 30px;
- border-bottom: 1px solid #28303d;
- margin-top: 30px;
- margin-bottom: 30px;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers:not(.is-grid) > li:last-child,
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers > li:last-child {
- padding-bottom: 0;
- border-bottom: none;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid {
- box-shadow: inset 0 -1px 0 0 #28303d;
- border-bottom: 2px solid #28303d;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid li {
- margin: 0;
- padding-top: 30px;
- padding-right: 25px;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid li:last-child {
- padding-bottom: 30px;
-}
-@media screen and (min-width: 600px) {
-
- .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid.columns-2 li {
- width: 50%;
- }
-
- .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid.columns-3 li {
- width: 33%;
- }
-
- .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid.columns-4 li {
- width: 25%;
- }
-
- .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid.columns-5 li {
- width: 20%;
- }
-
- .wp-block-latest-posts.is-style-twentytwentyone-latest-posts-dividers.is-grid.columns-6 li {
- width: 17%;
- }
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-borders li {
- border: 3px solid #28303d;
- padding: 30px 25px;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-borders li:last-child {
- padding-bottom: 30px;
-}
-
-.wp-block-latest-posts.is-style-twentytwentyone-latest-posts-borders:not(.is-grid) li {
- margin-top: 25px;
- margin-bottom: 25px;
-}
-
-.gallery-item {
- display: inline-block;
- text-align: center;
- vertical-align: top;
- width: 100%;
-}
-
-.gallery-item a {
- display: block;
-}
-
-.gallery-item a:focus img {
- outline-offset: -2px;
-}
-
-.gallery-columns-2 .gallery-item {
- max-width: 50%;
-}
-
-.gallery-columns-3 .gallery-item {
- max-width: 33.33%;
-}
-
-.gallery-columns-4 .gallery-item {
- max-width: 25%;
-}
-
-.gallery-columns-5 .gallery-item {
- max-width: 20%;
-}
-
-.gallery-columns-6 .gallery-item {
- max-width: 16.66%;
-}
-
-.gallery-columns-7 .gallery-item {
- max-width: 14.28%;
-}
-
-.gallery-columns-8 .gallery-item {
- max-width: 12.5%;
-}
-
-.gallery-columns-9 .gallery-item {
- max-width: 11.11%;
-}
-
-.gallery-caption {
- display: block;
-}
-
-figure.wp-caption a:focus img {
- outline-offset: 2px;
-}
-
-ul,
-ol {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- margin: 0;
- padding-left: 50px;
-}
-
-ul.aligncenter,
-ol.aligncenter,
-ul.alignright,
-ol.alignright {
- list-style-position: inside;
- padding: 0;
-}
-
-ul.alignright,
-ol.alignright {
- text-align: right;
-}
-
-ul {
- list-style-type: disc;
-}
-
-ul ul {
- list-style-type: circle;
-}
-
-ol {
- list-style-type: decimal;
-}
-
-ol ul {
- list-style-type: circle;
-}
-
-dt {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-weight: bold;
-}
-
-dd {
- margin: 0;
- padding-left: 50px;
-}
-
-.wp-block-media-text.alignfull {
- margin-top: 0;
- margin-bottom: 0;
-}
-
-.wp-block-media-text a:focus img {
- outline-offset: -1px;
-}
-
-.wp-block-media-text .wp-block-media-text__content {
- padding: 25px;
-}
-@media only screen and (min-width: 592px) {
-
- .wp-block-media-text .wp-block-media-text__content {
- padding: 30px;
- }
-}
-
-.wp-block-media-text .wp-block-media-text__content > * {
- margin-top: 20px;
- margin-bottom: 20px;
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block-media-text .wp-block-media-text__content > * {
- margin-top: 30px;
- margin-bottom: 30px;
- }
-}
-
-.wp-block-media-text .wp-block-media-text__content > *:first-child {
- margin-top: 0;
-}
-
-.wp-block-media-text .wp-block-media-text__content > *:last-child {
- margin-bottom: 0;
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block-media-text.is-stacked-on-mobile .wp-block-media-text__content {
- padding-top: 30px;
- padding-bottom: 30px;
- }
-}
-
-.wp-block-media-text.is-style-twentytwentyone-border {
- border: 3px solid #28303d;
-}
-
-.wp-block-navigation .wp-block-navigation-link .wp-block-navigation-link__label {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.25rem;
- font-weight: normal;
-}
-
-.wp-block-navigation .wp-block-navigation-link__submenu-icon {
- padding: 0;
-}
-
-.wp-block-navigation > .wp-block-navigation__container .has-child .wp-block-navigation-link {
- display: inherit;
-}
-
-.wp-block-navigation > .wp-block-navigation__container .has-child .wp-block-navigation__container {
- border: none;
- left: 0;
- min-width: max-content;
- opacity: 0;
- padding: 0;
- position: inherit;
- top: inherit;
-}
-
-.wp-block-navigation > .wp-block-navigation__container .has-child .wp-block-navigation__container .wp-block-navigation-link__submenu-icon {
- display: none;
-}
-
-.wp-block-navigation > .wp-block-navigation__container > .has-child > .wp-block-navigation__container {
- background: #d1e4dd;
- margin: 0;
- padding: 0;
- position: absolute;
- top: 100%;
- border: 1px solid #28303d;
-}
-
-.wp-block-navigation > .wp-block-navigation__container > .has-child > .wp-block-navigation__container:before,
-.wp-block-navigation > .wp-block-navigation__container > .has-child > .wp-block-navigation__container:after {
- content: "";
- display: block;
- position: absolute;
- width: 0;
- top: -10px;
- left: 25px;
- border-style: solid;
- border-color: #28303d transparent;
- border-width: 0 7px 10px;
-}
-
-.wp-block-navigation > .wp-block-navigation__container > .has-child > .wp-block-navigation__container:after {
- top: -9px;
- border-color: #d1e4dd transparent;
-}
-
-.wp-block-navigation:not(.has-background) .wp-block-navigation__container,
-.wp-block-navigation:not(.has-background) .wp-block-navigation__container .wp-block-navigation__container {
- background: #d1e4dd;
-}
-
-.wp-block-navigation:not(.has-text-color) .wp-block-navigation-link > a:hover,
-.wp-block-navigation:not(.has-text-color) .wp-block-navigation-link > a:focus {
- color: #28303d;
-}
-
-.wp-block-navigation:not(.has-text-color) .wp-block-navigation-link > a:hover {
- text-decoration: underline;
- text-decoration-style: dotted;
-}
-
-.wp-block-navigation:not(.has-text-color) .wp-block-navigation-link__content {
- color: currentColor;
-}
-
-p {
- line-height: 1.7;
-}
-
-p.has-background {
- padding: 20px;
-}
-
-p.has-text-color a {
- color: #28303d;
-}
-
-pre.wp-block-preformatted {
- overflow-x: auto;
- white-space: pre;
-}
-
-.wp-block-pullquote {
- padding: 40px 0;
- text-align: center;
- border-width: 3px;
- border-bottom-style: solid;
- border-top-style: solid;
- color: currentColor;
- border-color: currentColor;
- position: relative;
- font-size: 2rem;
- font-style: normal;
- font-weight: 700;
- letter-spacing: normal;
-
- /**
- * Block Options
- */
-}
-
-@media only screen and (min-width: 652px) {
-
- .wp-block-pullquote {
- font-size: 2rem;
- }
-}
-
-.wp-block-pullquote blockquote::before {
- color: currentColor;
- content: "“";
- display: block;
- position: relative;
- left: 0;
- font-size: 3rem;
- font-weight: 500;
- line-height: 1;
-}
-
-.wp-block-pullquote p {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: inherit;
- font-style: inherit;
- font-weight: inherit;
- letter-spacing: inherit;
- line-height: inherit;
- margin: 0;
-}
-
-.wp-block-pullquote:where(:not([style*=line-height])) p {
- line-height: 1.3;
-}
-
-.wp-block-pullquote a {
- color: currentColor;
-}
-
-.wp-block-pullquote .wp-block-pullquote__citation,
-.wp-block-pullquote cite,
-.wp-block-pullquote footer {
- color: currentColor;
- display: block;
- font-size: 1rem;
- font-style: normal;
- text-transform: none;
-}
-
-.wp-block-pullquote:not(.is-style-solid-color) {
- background: none;
-}
-
-.wp-block-pullquote.alignleft:not(.is-style-solid-color) blockquote:before,
-.wp-block-pullquote.alignleft:not(.is-style-solid-color) cite {
- text-align: center;
-}
-
-.wp-block-pullquote.alignwide > p {
- max-width: calc(100vw - 30px);
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block-pullquote.alignwide > p {
- max-width: calc(100vw - 100px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .wp-block-pullquote.alignwide > p {
- max-width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.wp-block-pullquote.alignwide blockquote {
- max-width: calc(100vw - 30px);
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block-pullquote.alignwide blockquote {
- max-width: calc(100vw - 100px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .wp-block-pullquote.alignwide blockquote {
- max-width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-.wp-block-pullquote.alignfull:not(.is-style-solid-color) > p,
-.wp-block-pullquote.alignfull:not(.is-style-solid-color) blockquote {
- padding: 0 40px;
-}
-
-.wp-block-pullquote.is-style-solid-color {
- color: #28303d;
- padding: 50px;
- border-width: 3px;
- border-style: solid;
- border-color: #28303d;
-}
-@media (min-width: 600px) {
-
- .wp-block-pullquote.is-style-solid-color {
- padding: 100px;
- }
-}
-
-.wp-block-pullquote.is-style-solid-color blockquote::before {
- text-align: left;
-}
-
-.wp-block-pullquote.is-style-solid-color blockquote {
- margin: 0;
- max-width: inherit;
-}
-
-.wp-block-pullquote.is-style-solid-color blockquote p {
- font-size: 2rem;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-pullquote.is-style-solid-color blockquote p {
- font-size: 2rem;
- }
-}
-
-.wp-block-pullquote.is-style-solid-color .wp-block-pullquote__citation,
-.wp-block-pullquote.is-style-solid-color cite,
-.wp-block-pullquote.is-style-solid-color footer {
- color: currentColor;
-}
-
-.wp-block-pullquote.is-style-solid-color.alignleft,
-.wp-block-pullquote.is-style-solid-color.alignright {
- padding: 20px;
-}
-
-.wp-block-pullquote.is-style-solid-color.alignleft blockquote,
-.wp-block-pullquote.is-style-solid-color.alignright blockquote {
- max-width: initial;
-}
-
-.wp-block-query.has-background {
- padding: 20px;
-}
-@media only screen and (min-width: 482px) {
-
- .wp-block-query.has-background {
- padding: 30px;
- }
-}
-
-.wp-block-quote {
- border-left: none;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.25rem;
- font-style: normal;
- font-weight: 700;
- line-height: 1.7;
-
- /**
- * Block Options
- */
-}
-
-.wp-block-quote p {
- font-family: inherit;
- font-size: inherit;
- font-style: inherit;
- font-weight: inherit;
- line-height: inherit;
- letter-spacing: inherit;
-}
-
-.wp-block-quote:before {
- content: "“";
- left: 8px;
-}
-
-.wp-block-quote .wp-block-quote__citation,
-.wp-block-quote cite,
-.wp-block-quote footer {
- font-family: inherit;
- font-style: inherit;
- font-weight: inherit;
- line-height: inherit;
- letter-spacing: inherit;
-}
-
-.has-background .wp-block-quote .wp-block-quote__citation,
-[class*=background-color] .wp-block-quote .wp-block-quote__citation,
-[style*=background-color] .wp-block-quote .wp-block-quote__citation,
-.wp-block-cover[style*=background-image] .wp-block-quote .wp-block-quote__citation,
-.has-background .wp-block-quote cite,
-[class*=background-color] .wp-block-quote cite,
-[style*=background-color] .wp-block-quote cite,
-.wp-block-cover[style*=background-image] .wp-block-quote cite,
-.has-background .wp-block-quote footer,
-[class*=background-color] .wp-block-quote footer,
-[style*=background-color] .wp-block-quote footer,
-.wp-block-cover[style*=background-image] .wp-block-quote footer {
- color: currentColor;
-}
-
-.wp-block-quote:where(:not([style*=font-style])) .wp-block-quote__citation {
- font-style: normal;
-}
-
-.wp-block-quote:where(:not([style*=font-style])) cite {
- font-style: normal;
-}
-
-.wp-block-quote:where(:not([style*=font-style])) footer {
- font-style: normal;
-}
-
-.wp-block-quote:where(:not([style*=font-weight])) .wp-block-quote__citation,
-.wp-block-quote:where(:not([style*=font-weight])) cite,
-.wp-block-quote:where(:not([style*=font-weight])) footer {
- font-weight: normal;
-}
-
-.wp-block-quote.has-text-align-right {
- margin: 30px 25px 30px auto;
- padding-right: 0;
- border-right: none;
-}
-
-.wp-block-quote.has-text-align-right:before {
- display: none;
-}
-
-.wp-block-quote.has-text-align-right p:before {
- content: "”";
- margin-right: 5px;
-}
-
-.wp-block-quote.has-text-align-center {
- margin: 30px auto;
-}
-
-.wp-block-quote.has-text-align-center:before {
- display: none;
-}
-
-.wp-block-quote.is-large,
-.wp-block-quote.is-style-large {
- padding-left: 0;
- padding-right: 0;
-
- /* Resetting margins to match _block-container.scss */
- margin-top: 30px;
- margin-bottom: 30px;
-}
-
-.wp-block-quote.is-large p {
- font-size: 2.25rem;
- font-style: normal;
- line-height: 1.35;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-quote.is-large p {
- font-size: 2.5rem;
- }
-}
-
-.wp-block-quote.is-style-large p {
- font-size: 2.25rem;
- font-style: normal;
- line-height: 1.35;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-quote.is-style-large p {
- font-size: 2.5rem;
- }
-}
-
-.wp-block-quote.is-large:before {
- font-size: 2.25rem;
- line-height: 1.35;
- left: -25px;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-quote.is-large:before {
- font-size: 2.5rem;
- }
-}
-
-.wp-block-quote.is-style-large:before {
- font-size: 2.25rem;
- line-height: 1.35;
- left: -25px;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-quote.is-style-large:before {
- font-size: 2.5rem;
- }
-}
-
-.wp-block-quote.is-large.has-text-align-right:before,
-.wp-block-quote.is-style-large.has-text-align-right:before {
- display: none;
-}
-
-.wp-block-quote.is-large.has-text-align-right p:before {
- content: "”";
- font-size: 2.25rem;
- font-weight: normal;
- line-height: 1.35;
- margin-right: 10px;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-quote.is-large.has-text-align-right p:before {
- font-size: 2.5rem;
- }
-}
-
-.wp-block-quote.is-style-large.has-text-align-right p:before {
- content: "”";
- font-size: 2.25rem;
- font-weight: normal;
- line-height: 1.35;
- margin-right: 10px;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-quote.is-style-large.has-text-align-right p:before {
- font-size: 2.5rem;
- }
-}
-
-.wp-block-quote.is-large .wp-block-quote__citation,
-.wp-block-quote.is-large cite,
-.wp-block-quote.is-large footer,
-.wp-block-quote.is-style-large .wp-block-quote__citation,
-.wp-block-quote.is-style-large cite,
-.wp-block-quote.is-style-large footer {
- color: #28303d;
- font-size: 1.125rem;
-}
-@media only screen and (max-width: 481.98px) {
-
- .wp-block-quote.is-large,
- .wp-block-quote.is-style-large {
- padding-left: 25px;
- }
-
- .wp-block-quote.is-large:before,
- .wp-block-quote.is-style-large:before {
- left: 0;
- }
-
- .wp-block-quote.is-large.has-text-align-right,
- .wp-block-quote.is-style-large.has-text-align-right {
- padding-left: 0;
- padding-right: 25px;
- }
-
- .wp-block-quote.is-large.has-text-align-right:before,
- .wp-block-quote.is-style-large.has-text-align-right:before {
- right: 0;
- }
-
- .wp-block-quote.is-large.has-text-align-center,
- .wp-block-quote.is-style-large.has-text-align-center {
- padding-left: 0;
- padding-right: 0;
- }
-
- .wp-block-quote.has-text-align-right {
- padding-left: 0;
- padding-right: 13px;
- }
-
- .wp-block-quote.has-text-align-right:before {
- right: 0;
- }
-
- .wp-block-quote.has-text-align-center {
- padding-left: 0;
- padding-right: 0;
- }
-}
-
-.wp-block-rss {
- padding-left: 0;
-}
-
-.wp-block-rss > li {
- list-style: none;
-}
-
-.wp-block-rss:not(.is-grid) > li {
- margin-top: 50px;
- margin-bottom: 50px;
-}
-
-.wp-block-rss:not(.is-grid) > li:first-child {
- margin-top: 0;
-}
-
-.wp-block-rss:not(.is-grid) > li:last-child {
- margin-bottom: 0;
-}
-
-.wp-block-rss.is-grid > li {
- margin-bottom: 30px;
-}
-
-.wp-block-rss.is-grid > li:last-child,
-.wp-block-rss.is-grid.columns-2 > li:nth-last-child(-n+2):nth-child(2n+1),
-.wp-block-rss.is-grid.columns-2 > li:nth-last-child(-n+2):nth-child(2n+1) ~ li,
-.wp-block-rss.is-grid.columns-3 > li:nth-last-child(-n+3):nth-child(3n+1),
-.wp-block-rss.is-grid.columns-3 > li:nth-last-child(-n+3):nth-child(3n+1) ~ li,
-.wp-block-rss.is-grid.columns-4 > li:nth-last-child(-n+4):nth-child(4n+1),
-.wp-block-rss.is-grid.columns-4 > li:nth-last-child(-n+4):nth-child(4n+1) ~ li,
-.wp-block-rss.is-grid.columns-5 > li:nth-last-child(-n+5):nth-child(5n+1),
-.wp-block-rss.is-grid.columns-5 > li:nth-last-child(-n+5):nth-child(5n+1) ~ li,
-.wp-block-rss.is-grid.columns-6 > li:nth-last-child(-n+6):nth-child(6n+1),
-.wp-block-rss.is-grid.columns-6 > li:nth-last-child(-n+6):nth-child(6n+1) ~ li {
- margin-bottom: 0;
-}
-
-.wp-block-rss > li > * {
- margin-top: 10px;
- margin-bottom: 10px;
-}
-
-.wp-block-rss > li > *:first-child {
- margin-top: 0;
-}
-
-.wp-block-rss > li > *:last-child {
- margin-bottom: 0;
-}
-
-.wp-block-rss .wp-block-rss__item-title > a {
- display: inline-block;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 2rem;
- font-weight: normal;
- line-height: 1.3;
- margin-bottom: 10px;
-}
-@media only screen and (min-width: 652px) {
-
- .wp-block-rss .wp-block-rss__item-title > a {
- font-size: 2rem;
- }
-}
-
-.wp-block-rss .wp-block-rss__item-author {
- color: #28303d;
- font-size: 1.25rem;
- line-height: 1.7;
-}
-
-.wp-block-rss .wp-block-rss__item-publish-date {
- color: #28303d;
- font-size: 1rem;
- line-height: 1.7;
-}
-
-[class*=inner-container] .wp-block-rss .wp-block-rss__item-publish-date,
-.has-background .wp-block-rss .wp-block-rss__item-publish-date {
- color: currentColor;
-}
-
-.wp-block-rss .wp-block-rss__item-excerpt,
-.wp-block-rss .wp-block-rss__item-full-content {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.125rem;
- line-height: 1.7;
- margin-top: 20px;
-}
-
-.wp-block-rss.alignfull {
- padding-left: 20px;
- padding-right: 20px;
-}
-
-.entry-content [class*=inner-container] .wp-block-rss.alignfull,
-.entry-content .has-background .wp-block-rss.alignfull {
- padding-left: 0;
- padding-right: 0;
-}
-
-.wp-block-search {
- max-width: calc(100vw - 30px);
-}
-
-@media only screen and (min-width: 482px) {
-
- .wp-block-search {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-
-@media only screen and (min-width: 822px) {
-
- .wp-block-search {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-.wp-block-search__button-only.aligncenter .wp-block-search__inside-wrapper {
- justify-content: center;
-}
-
-.wp-block-search .wp-block-search__label {
- font-size: 1.125rem;
- font-weight: 500;
- margin-bottom: 10px;
-}
-
-.wp-block-search .wp-block-search__input {
- border: 3px solid #39414d;
- border-radius: 0;
- color: #28303d;
- line-height: 1.7;
- max-width: inherit;
- margin-right: -3px;
- margin-left: 0;
- padding: 10px;
-}
-
-.wp-block-search .wp-block-search__input:focus {
- color: #28303d;
- border-color: #39414d;
-}
-
-.has-background .wp-block-search .wp-block-search__input {
- border-color: #28303d !important;
-}
-
-.wp-block-search button.wp-block-search__button {
- margin-left: 0;
- line-height: 1;
-}
-
-.wp-block-search button.wp-block-search__button.has-icon {
- padding: 6px 15px;
-}
-
-.wp-block-search button.wp-block-search__button.has-icon svg {
- width: 40px;
- height: 40px;
- fill: currentColor;
-}
-
-.has-background .wp-block-search button.wp-block-search__button:hover,
-.has-background .wp-block-search button.wp-block-search__button:active {
- background-color: #d1e4dd !important;
- color: #28303d !important;
-}
-
-.has-text-color .wp-block-search button.wp-block-search__button:hover,
-.has-text-color .wp-block-search button.wp-block-search__button:active {
- color: #28303d !important;
-}
-
-.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper {
- background-color: #fff;
- border: 3px solid #39414d;
- border-radius: 0;
- padding: 3px;
-}
-
-.has-background .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper {
- border-color: #28303d !important;
-}
-
-.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper .wp-block-search__input {
- margin-left: 0;
- margin-right: 0;
- padding-left: 10px;
-}
-
-.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper .wp-block-search__input:focus {
- color: #28303d;
- outline-offset: -2px;
- outline: 2px dotted #39414d;
-}
-
-.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper button.wp-block-search__button {
- padding: 15px 30px;
-}
-
-.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper button.wp-block-search__button:hover,
-.is-dark-theme .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper button.wp-block-search__button {
- color: #28303d;
-}
-
-.is-dark-theme .wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper button.wp-block-search__button:hover {
- background-color: #28303d;
- color: #fff;
-}
-
-.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper button.wp-block-search__button.has-icon {
- padding: 6px 15px;
-}
-
-.wp-block-search__button {
- box-shadow: none;
-}
-
-hr {
- border-style: none;
- clear: both;
- margin-left: auto;
- margin-right: auto;
-}
-
-hr,
-hr.wp-block-separator {
- border-bottom: 1px solid #28303d;
-}
-
-hr.wp-block-separator {
- opacity: 1;
-
- /**
- * Block Options
- */
-}
-
-hr.wp-block-separator:not(.is-style-dots):not(.alignwide) {
- max-width: calc(100vw - 30px);
-}
-@media only screen and (min-width: 482px) {
-
- hr.wp-block-separator:not(.is-style-dots):not(.alignwide) {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- hr.wp-block-separator:not(.is-style-dots):not(.alignwide) {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-hr.wp-block-separator:not(.is-style-dots).alignwide {
- max-width: calc(100vw - 30px);
-}
-@media only screen and (min-width: 482px) {
-
- hr.wp-block-separator:not(.is-style-dots).alignwide {
- max-width: calc(100vw - 100px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- hr.wp-block-separator:not(.is-style-dots).alignwide {
- max-width: min(calc(100vw - 200px), 1240px);
- }
-}
-
-hr.wp-block-separator:not(.is-style-dots).alignfull {
- max-width: 100%;
-}
-
-hr.wp-block-separator.is-style-twentytwentyone-separator-thick {
- border-bottom-width: 3px;
-}
-
-hr.wp-block-separator.is-style-dots.has-background,
-hr.wp-block-separator.is-style-dots.has-text-color {
- background-color: transparent !important;
-}
-
-hr.wp-block-separator.is-style-dots.has-background:before,
-hr.wp-block-separator.is-style-dots.has-text-color:before {
- color: currentColor !important;
-}
-
-hr.wp-block-separator.is-style-dots:before {
- color: #28303d;
- font-size: 2.25rem;
- letter-spacing: 1.125rem;
- padding-left: 1.125rem;
-}
-@media only screen and (min-width: 652px) {
-
- hr.wp-block-separator.is-style-dots:before {
- font-size: 2.5rem;
- }
-}
-
-.has-background hr.wp-block-separator,
-[class*=background-color] hr.wp-block-separator,
-[style*=background-color] hr.wp-block-separator,
-.wp-block-cover[style*=background-image] hr.wp-block-separator {
- border-color: currentColor;
-}
-
-.wp-block-social-links a:focus,
-.wp-block-social-links.is-style-twentytwentyone-social-icons-color a {
- color: #28303d;
-}
-
-.wp-block-social-links.is-style-twentytwentyone-social-icons-color .wp-social-link,
-.wp-block-social-links.is-style-twentytwentyone-social-icons-color.has-icon-background-color.has-icon-background-color .wp-social-link {
- background: none;
-}
-
-table,
-.wp-block-table {
- width: 100%;
- min-width: 240px;
- border-collapse: collapse;
-}
-
-table thead,
-table tfoot,
-.wp-block-table thead,
-.wp-block-table tfoot {
- text-align: center;
-}
-
-table th,
-.wp-block-table th {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
-}
-
-table td,
-table th,
-.wp-block-table td,
-.wp-block-table th {
- padding: 10px;
- border: 1px solid;
-}
-
-table figcaption,
-.wp-block-table figcaption {
- color: #28303d;
- font-size: 1rem;
-}
-
-table.is-style-regular .has-background,
-table.is-style-stripes .has-background,
-table.is-style-stripes .has-background thead tr,
-table.is-style-stripes .has-background tfoot tr,
-table.is-style-stripes .has-background tbody tr,
-.wp-block-table.is-style-regular .has-background,
-.wp-block-table.is-style-stripes .has-background,
-.wp-block-table.is-style-stripes .has-background thead tr,
-.wp-block-table.is-style-stripes .has-background tfoot tr,
-.wp-block-table.is-style-stripes .has-background tbody tr {
- color: #28303d;
-}
-
-table.is-style-stripes,
-.wp-block-table.is-style-stripes {
- border-color: #f0f0f0;
-}
-
-table.is-style-stripes th,
-table.is-style-stripes td,
-.wp-block-table.is-style-stripes th,
-.wp-block-table.is-style-stripes td {
- border-width: 0;
-}
-
-table.is-style-stripes tbody tr:nth-child(odd),
-.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
- background-color: #f0f0f0;
-}
-
-table.is-style-stripes .has-background tbody tr:nth-child(odd),
-.wp-block-table.is-style-stripes .has-background tbody tr:nth-child(odd) {
- background-color: rgba(255, 255, 255, 0.9);
-}
-
-table.wp-calendar-table td,
-table.wp-calendar-table th {
- background: transparent;
- border: 0;
- text-align: center;
- line-height: 2;
- vertical-align: middle;
- word-break: normal;
-}
-
-table.wp-calendar-table th {
- font-weight: bold;
-}
-
-table.wp-calendar-table thead,
-table.wp-calendar-table tbody {
- color: currentColor;
- border: 1px solid;
-}
-
-table.wp-calendar-table caption {
- font-weight: bold;
- text-align: left;
- margin-bottom: 20px;
- color: currentColor;
-}
-
-.wp-calendar-nav {
- text-align: left;
- margin-top: 10px;
-}
-
-.wp-calendar-nav svg {
- height: 1em;
- vertical-align: middle;
-}
-
-.wp-calendar-nav svg path {
- fill: currentColor;
-}
-
-.wp-calendar-nav .wp-calendar-nav-next {
- float: right;
-}
-
-.wp-block-tag-cloud.alignfull {
- padding-left: 20px;
- padding-right: 20px;
-}
-
-.wp-block-verse {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
-}
-
-.wp-block-video figcaption {
- color: #28303d;
- font-size: 1rem;
- margin-top: 10px;
- margin-bottom: 20px;
- text-align: center;
-}
-
-* > figure > video {
- max-width: unset;
- width: 100%;
- vertical-align: middle;
-}
-
-:root .is-extra-small-text,
-:root .has-extra-small-font-size {
- font-size: 1rem;
-}
-
-:root .is-small-text,
-:root .has-small-font-size {
- font-size: 1.125rem;
-}
-
-:root .is-regular-text,
-:root .has-regular-font-size,
-:root .is-normal-font-size,
-:root .has-normal-font-size,
-:root .has-medium-font-size {
- font-size: 1.25rem;
-}
-
-:root .is-large-text,
-:root .has-large-font-size {
- font-size: 1.5rem;
- line-height: 1.3;
-}
-
-:root .is-larger-text {
- font-size: 2.5rem;
- line-height: 1.3;
-}
-@media only screen and (min-width: 652px) {
-
- :root .is-larger-text {
- font-size: 2.5rem;
- }
-}
-
-:root .has-larger-font-size {
- font-size: 2.5rem;
- line-height: 1.3;
-}
-@media only screen and (min-width: 652px) {
-
- :root .has-larger-font-size {
- font-size: 2.5rem;
- }
-}
-
-:root .is-extra-large-text {
- font-size: 2.5rem;
- line-height: 1.3;
-}
-@media only screen and (min-width: 652px) {
-
- :root .is-extra-large-text {
- font-size: 2.5rem;
- }
-}
-
-:root .has-extra-large-font-size {
- font-size: 2.5rem;
- line-height: 1.3;
-}
-@media only screen and (min-width: 652px) {
-
- :root .has-extra-large-font-size {
- font-size: 2.5rem;
- }
-}
-
-:root .is-huge-text {
- font-size: 6rem;
- line-height: 1.3;
- font-weight: 300;
-}
-@media only screen and (min-width: 652px) {
-
- :root .is-huge-text {
- font-size: 6rem;
- }
-}
-
-:root .has-huge-font-size {
- font-size: 6rem;
- line-height: 1.3;
- font-weight: 300;
-}
-@media only screen and (min-width: 652px) {
-
- :root .has-huge-font-size {
- font-size: 6rem;
- }
-}
-
-:root .is-gigantic-text {
- font-size: 9rem;
- line-height: 1.3;
- font-weight: 300;
-}
-@media only screen and (min-width: 652px) {
-
- :root .is-gigantic-text {
- font-size: 9rem;
- }
-}
-
-:root .has-gigantic-font-size {
- font-size: 9rem;
- line-height: 1.3;
- font-weight: 300;
-}
-@media only screen and (min-width: 652px) {
-
- :root .has-gigantic-font-size {
- font-size: 9rem;
- }
-}
-
-/* Block Alignments */
-
-/**
- * These selectors set the default max width for content appearing inside a post or page.
- */
-
-/**
- * .alignleft
- */
-.alignleft {
-
- /*rtl:ignore*/
- text-align: left;
- margin-top: 0;
-}
-
-.entry-content > .alignleft {
- max-width: calc(100vw - 30px);
-}
-
-@media only screen and (min-width: 482px) {
-
- .entry-content > .alignleft {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-
-@media only screen and (min-width: 822px) {
-
- .entry-content > .alignleft {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-@media only screen and (min-width: 482px) {
-
- .alignleft {
-
- /*rtl:ignore*/
- float: left;
-
- /*rtl:ignore*/
- margin-right: 25px;
- margin-bottom: 30px;
- }
-
- .entry-content > .alignleft {
- max-width: calc(50% - (100vw - min(calc(100vw - 4 * 25px), 610px)) *1);
- }
- @media only screen and (min-width: 482px) {
-
- .entry-content > .alignleft {
- max-width: calc(50% - (100vw - min(calc(100vw - 4 * 25px), 610px)) *1);
- }
- }
- @media only screen and (min-width: 822px) {
-
- .entry-content > .alignleft {
- max-width: calc(50% - (100vw - min(calc(100vw - 4 * 25px), 610px)) *1);
- }
- }
-}
-
-/**
- * .aligncenter
- */
-.aligncenter {
- clear: both;
- display: block;
- float: none;
- margin-right: auto;
- margin-left: auto;
- text-align: center;
-}
-
-/**
- * .alignright
- */
-.alignright {
- margin-top: 0;
- margin-bottom: 30px;
-}
-
-.entry-content > .alignright {
- max-width: calc(100vw - 30px);
-}
-
-@media only screen and (min-width: 482px) {
-
- .entry-content > .alignright {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-
-@media only screen and (min-width: 822px) {
-
- .entry-content > .alignright {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-@media only screen and (min-width: 482px) {
-
- .alignright {
-
- /*rtl:ignore*/
- float: right;
-
- /*rtl:ignore*/
- margin-left: 25px;
- }
-
- .entry-content > .alignright {
- max-width: calc(50% - (100vw - min(calc(100vw - 4 * 25px), 610px)) *1);
- }
- @media only screen and (min-width: 482px) {
-
- .entry-content > .alignright {
- max-width: calc(50% - (100vw - min(calc(100vw - 4 * 25px), 610px)) *1);
- }
- }
- @media only screen and (min-width: 822px) {
-
- .entry-content > .alignright {
- max-width: calc(50% - (100vw - min(calc(100vw - 4 * 25px), 610px)) *1);
- }
- }
-}
-
-[class*=inner-container] > .alignleft + *,
-[class*=inner-container] > .alignright + * {
- margin-top: 0;
-}
-
-/**
- * .alignwide
- */
-
-/**
- * .alignfull
- */
-.alignwide,
-.alignfull {
- clear: both;
-}
-
-.has-left-content {
- justify-content: flex-start;
-}
-
-.has-right-content {
- justify-content: flex-end;
-}
-
-.has-parallax {
- background-attachment: fixed;
-}
-
-.has-drop-cap:not(:focus)::first-letter {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-weight: normal;
- line-height: 0.66;
- text-transform: uppercase;
- font-style: normal;
- float: left;
- margin: 0.1em 0.1em 0 0;
- font-size: 5rem;
-}
-
-@media only screen and (min-width: 652px) {
-
- .has-drop-cap:not(:focus)::first-letter {
- font-size: 7rem;
- }
-}
-
-.has-drop-cap:not(:focus)::after {
- content: "";
- display: table;
- clear: both;
- padding-top: 14px;
-}
-
-.desktop-only {
- display: none;
-}
-@media only screen and (min-width: 482px) {
-
- .desktop-only {
- display: block;
- }
-}
-
-/* Category 06 contains all "bigger" components which contain elements of the previous two categories like header, footer, page template, single template, comments section, archives, ... */
-.site-header {
- display: flex;
- align-items: flex-start;
- flex-wrap: wrap;
- row-gap: 30px;
-}
-
-.wp-custom-logo .site-header {
- align-items: center;
-}
-@media only screen and (min-width: 482px) {
-
- .site-header {
- padding-top: 40px;
- }
-}
-@media only screen and (min-width: 822px) {
-
- .site-header {
- padding-top: 72px;
- }
-}
-
-.site-branding {
- color: #28303d;
- margin-right: 140px;
-}
-
-.site-branding:last-child {
- margin-right: 0;
- width: 100%;
- text-align: center;
-}
-@media only screen and (min-width: 482px) {
-
- .site-branding {
- margin-right: initial;
- margin-top: calc(13px - 0em);
- }
-}
-
-.site-title {
- color: #28303d;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.5rem;
- letter-spacing: normal;
- text-transform: uppercase;
- line-height: 1.3;
- margin-bottom: 5px;
-}
-
-.site-title a {
- font-weight: normal;
-}
-
-.site-title a,
-.site-title a:link,
-.site-title a:visited,
-.site-title a:active {
- color: currentColor;
-}
-
-.site-title a:hover,
-.site-title a:focus {
- color: #39414d;
-}
-@media only screen and (min-width: 482px) {
-
- .site-title {
- font-size: 1.5rem;
- }
-}
-
-.site-description {
- color: currentColor;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.125rem;
- line-height: 1.4;
-}
-
-.site-title > a {
- text-decoration-color: #39414d;
-}
-
-.site-logo {
- margin: 15px 0;
-}
-
-.site-header > .site-logo {
- width: 100%;
- padding-bottom: 45px;
- border-bottom: 1px solid;
- text-align: center;
-}
-
-.site-logo .custom-logo {
- margin-left: auto;
- margin-right: auto;
- max-width: 96px;
- max-height: 96px;
- height: auto;
- display: inline-block;
- width: auto;
-}
-@media only screen and (min-width: 482px) {
-
- .site-logo .custom-logo {
- max-width: 300px;
- max-height: 100px;
- height: auto;
- width: auto;
- }
-}
-
-@media only screen and (max-width: 481.98px) {
-
- .site-header.has-logo:not(.has-title-and-tagline).has-menu .site-logo {
- position: absolute;
- padding-top: 15px;
- margin-top: 0;
- top: 0;
- }
-
- .primary-navigation-open .site-header.has-logo:not(.has-title-and-tagline).has-menu .site-logo {
- display: none;
- }
-
- .site-header.has-logo:not(.has-title-and-tagline).has-menu .site-logo img {
- max-height: calc(10px + 2em);
- }
-
- .site-header.has-logo.has-title-and-tagline {
- align-items: flex-start;
- }
-
- .site-header.has-logo.has-title-and-tagline.has-menu {
- justify-content: space-between;
- }
-
- .site-header.has-logo.has-title-and-tagline.has-menu .site-branding {
- max-width: calc(100% - 160px);
- }
-
- .site-header.has-logo.has-title-and-tagline .site-branding {
- margin-right: 0;
- }
-
- body:not(.primary-navigation-open) .site-header.has-logo.has-title-and-tagline:after {
- display: none;
- }
-
- body:not(.primary-navigation-open) .site-header.has-logo.has-title-and-tagline .primary-navigation {
- position: relative;
- top: 0;
- }
-
- body:not(.primary-navigation-open) .site-header.has-logo.has-title-and-tagline .menu-button-container {
- position: relative;
- padding-top: 0;
- margin-top: -10px;
- }
-
- body:not(.primary-navigation-open) .site-header.has-logo.has-title-and-tagline .menu-button-container #primary-mobile-menu {
- padding-left: 11px;
- padding-right: 11px;
- margin-right: -15px;
- }
-
- .site-header:not(.has-logo).has-title-and-tagline .site-branding {
- margin-right: 0;
- max-width: calc(100% - 160px);
- }
-
- .site-header:not(.has-menu) {
- justify-content: center;
- }
-}
-
-.site-footer {
- padding-top: 0;
- padding-bottom: 51px;
-}
-
-.no-widgets .site-footer {
- margin-top: 180px;
-}
-@media only screen and (max-width: 481.98px) {
-
- .no-widgets .site-footer {
- margin-top: 90px;
- }
-}
-
-.site-footer > .site-info {
- padding-top: 30px;
- color: #28303d;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.125rem;
- line-height: 1.7;
- border-top: 3px solid #28303d;
-}
-
-.site-footer > .site-info .site-name {
- text-transform: uppercase;
- font-size: 1.5rem;
-}
-
-.site-footer > .site-info .privacy-policy,
-.site-footer > .site-info .powered-by {
- margin-top: 15px;
-}
-@media only screen and (min-width: 822px) {
-
- .site-footer > .site-info {
- display: flex;
- align-items: center;
- }
-
- .site-footer > .site-info .site-name {
- margin-right: 15px;
- }
-
- .site-footer > .site-info .privacy-policy,
- .site-footer > .site-info .powered-by {
- margin-top: initial;
- margin-left: auto;
- }
-
- .site-footer > .site-info .privacy-policy + .powered-by {
- margin-left: 15px;
- }
-}
-
-.site-footer > .site-info a,
-.site-footer > .site-info a:link,
-.site-footer > .site-info a:visited,
-.site-footer > .site-info a:active,
-.site-footer > .site-info a:hover,
-.site-footer > .site-info a:focus {
- color: #28303d;
-}
-
-.is-dark-theme .site-footer > .site-info a:focus {
- color: #d1e4dd;
-}
-
-.has-background-white .site-footer > .site-info a:focus {
- color: #fff;
-}
-
-.singular .entry-header {
- border-bottom: 3px solid #28303d;
- padding-bottom: 60px;
- margin-bottom: 90px;
-}
-
-.home .entry-header {
- border-bottom: none;
- padding-bottom: 0;
- margin-bottom: 0;
-}
-
-.singular .has-post-thumbnail .entry-header {
- border-bottom: none;
- padding-bottom: 39px;
- margin-bottom: 0;
-}
-
-.no-results.not-found > *:first-child {
- margin-bottom: 90px;
-}
-
-.page-links {
- clear: both;
-}
-
-.page-links .post-page-numbers {
- display: inline-block;
- margin-left: 13px;
- margin-right: 13px;
- min-width: 44px;
- min-height: 44px;
-}
-
-.page-links .post-page-numbers:first-child {
- margin-left: 0;
-}
-
-.entry-title {
- color: #28303d;
- font-size: 2.25rem;
- letter-spacing: normal;
- line-height: 1.3;
- overflow-wrap: break-word;
-}
-
-@media only screen and (min-width: 652px) {
-
- .entry-title {
- font-size: 3rem;
- }
-}
-
-.entry-title a {
- color: currentColor;
- text-underline-offset: 0.15em;
-}
-
-.entry-title a:hover {
- color: #28303d;
-}
-
-.entry-title a:focus {
- color: #39414d;
-}
-
-.entry-title a:active {
- color: currentColor;
-}
-
-.singular .entry-title {
- font-size: 4rem;
-}
-
-@media only screen and (min-width: 652px) {
-
- .singular .entry-title {
- font-size: 6rem;
- }
-}
-
-h1.entry-title {
- line-height: 1.1;
- font-weight: 300;
-}
-
-/**
- * Entry Content
- */
-.entry-content,
-.entry-summary {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
-}
-
-.entry-content p {
- word-wrap: break-word;
-}
-
-.entry-content > iframe[style] {
- margin: 30px 0 !important;
- max-width: 100% !important;
-}
-
-.entry-footer {
- color: #28303d;
- clear: both;
- float: none;
- font-size: 1rem;
- display: block;
-}
-
-.entry-footer > span {
- display: inline-block;
-}
-
-.entry-footer a {
- color: currentColor;
-}
-
-.entry-footer a:hover,
-.entry-footer a:focus {
- color: #28303d;
-}
-
-.entry-footer a:active {
- color: currentColor;
-}
-
-.site-main > article > .entry-footer {
- margin-top: 30px;
- padding-top: 20px;
- padding-bottom: 90px;
- border-bottom: 1px solid #28303d;
-}
-
-body:not(.single) .site-main > article:last-of-type .entry-footer {
- border-bottom: 1px solid transparent;
-}
-
-.single .site-main > article > .entry-footer {
- margin-top: 102px;
- margin-bottom: 102px;
- padding-bottom: 0;
- padding-top: 24px;
- border-top: 3px solid #28303d;
- border-bottom: 1px solid transparent;
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- column-gap: 50px;
-}
-
-.single .site-main > article > .entry-footer .post-taxonomies,
-.single .site-main > article > .entry-footer .full-size-link {
- justify-content: flex-end;
- text-align: right;
-}
-
-.single .site-main > article > .entry-footer .full-size-link:first-child:last-child {
- grid-column: span 2;
-}
-
-.single .site-main > article > .entry-footer .posted-on,
-.single .site-main > article > .entry-footer .byline,
-.single .site-main > article > .entry-footer .cat-links,
-.single .site-main > article > .entry-footer .tags-links {
- display: block;
-}
-@media only screen and (max-width: 481.98px) {
-
- .single .site-main > article > .entry-footer,
- .single .site-main > article > .entry-footer .full-size-link {
- display: block;
- }
-
- .single .site-main > article > .entry-footer .post-taxonomies,
- .single .site-main > article > .entry-footer .full-size-link {
- text-align: left;
- }
-}
-
-/**
- * Post Thumbnails
- */
-.post-thumbnail {
- text-align: center;
-}
-
-.post-thumbnail .wp-post-image {
- display: block;
- width: auto;
- max-width: 100%;
- margin-left: auto;
- margin-right: auto;
- margin-top: 60px;
-}
-
-/**
- * Author
- */
-.author-bio {
- position: relative;
- font-size: 1rem;
- max-width: calc(100vw - 30px);
-}
-@media only screen and (min-width: 482px) {
-
- .author-bio {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .author-bio {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-.site-main > article > .author-bio {
- margin-top: 60px;
-}
-
-.author-bio.show-avatars .avatar {
- display: inline-block;
- vertical-align: top;
- border-radius: 50%;
-}
-
-.author-bio.show-avatars .author-bio-content {
- display: inline-block;
- padding-left: 25px;
- max-width: calc(100vw - 120px);
-}
-@media only screen and (min-width: 482px) {
-
- .author-bio.show-avatars .author-bio-content {
- max-width: calc(min(calc(100vw - 4 * 25px), 610px) - 90px);
- }
-}
-@media only screen and (min-width: 822px) {
-
- .author-bio.show-avatars .author-bio-content {
- max-width: calc(min(calc(100vw - 8 * 25px), 610px) - 90px);
- }
-}
-
-.author-bio .author-bio-content .author-title {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.5rem;
- display: inline;
-}
-
-.author-bio .author-bio-content .author-description {
- font-size: 1rem;
- margin-top: 15px;
- margin-bottom: 15px;
-}
-
-.page-title {
- font-size: 4rem;
-}
-
-@media only screen and (min-width: 652px) {
-
- .page-title {
- font-size: 6rem;
- }
-}
-
-h1.page-title,
-h2.page-title {
- font-weight: 300;
-}
-
-h1.page-title {
- line-height: 1.1;
-}
-
-.page-header {
- border-bottom: 3px solid #28303d;
- padding-bottom: 60px;
-}
-
-.archive .content-area .format-aside .entry-content,
-.archive .content-area .format-status .entry-content,
-.archive .content-area .format-link .entry-content,
-.search .content-area .format-aside .entry-content,
-.search .content-area .format-status .entry-content,
-.search .content-area .format-link .entry-content,
-.blog .content-area .format-aside .entry-content,
-.blog .content-area .format-status .entry-content,
-.blog .content-area .format-link .entry-content {
- font-size: 1.5rem;
-}
-
-.archive .format-image .entry-content,
-.archive .format-gallery .entry-content,
-.archive .format-video .entry-content,
-.search .format-image .entry-content,
-.search .format-gallery .entry-content,
-.search .format-video .entry-content,
-.blog .format-image .entry-content,
-.blog .format-gallery .entry-content,
-.blog .format-video .entry-content {
- margin-top: 60px;
-}
-
-.archive .entry-footer .cat-links,
-.archive .entry-footer .tags-links,
-.search .entry-footer .cat-links,
-.search .entry-footer .tags-links,
-.blog .entry-footer .cat-links,
-.blog .entry-footer .tags-links {
- display: block;
-}
-
-.archive.logged-in .entry-footer .posted-on,
-.search.logged-in .entry-footer .posted-on,
-.blog.logged-in .entry-footer .posted-on {
- margin-right: 10px;
-}
-
-.archive-description {
- margin-top: 30px;
- font-size: 2.25rem;
- line-height: 1.3;
-}
-
-@media only screen and (min-width: 652px) {
-
- .archive-description {
- font-size: 2.5rem;
- }
-}
-
-.error404 main p {
- font-size: 1.5rem;
- margin-bottom: 50px;
-}
-
-.search-no-results .page-content {
- margin-top: 90px;
-}
-
-/**
- * Comments Wrapper
- */
-.comments-area > * {
- margin-top: 30px;
- margin-bottom: 30px;
-}
-
-.comments-area > *:first-child {
- margin-top: 0;
-}
-
-.comments-area > *:last-child {
- margin-bottom: 0;
-}
-
-.comments-area.show-avatars .avatar {
- border-radius: 50%;
- position: absolute;
- top: 10px;
-}
-
-.comments-area.show-avatars .fn {
- display: inline-block;
- padding-left: 85px;
-}
-
-.comments-area.show-avatars .comment-metadata {
- padding: 8px 0 9px 85px;
-}
-
-/**
- * Comment Title
- */
-.comments-title {
- font-size: 2.25rem;
- letter-spacing: normal;
-}
-@media only screen and (min-width: 652px) {
-
- .comments-title {
- font-size: 3rem;
- }
-}
-
-.comment-reply-title {
- font-size: 2.25rem;
- letter-spacing: normal;
-}
-@media only screen and (min-width: 652px) {
-
- .comment-reply-title {
- font-size: 3rem;
- }
-}
-
-.comment-reply-title {
- display: flex;
- justify-content: space-between;
-}
-
-.comment-reply-title small a {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1rem;
- font-style: normal;
- font-weight: normal;
- letter-spacing: normal;
-}
-
-/* Nested comment reply title*/
-.comment .comment-respond .comment-reply-title {
- font-size: 1.5rem;
-}
-
-/**
- * Comment Lists
- */
-.comment-list {
- padding-left: 0;
- list-style: none;
-}
-
-.comment-list > li {
- margin-top: 30px;
- margin-bottom: 30px;
-}
-
-.comment-list .children {
- list-style: none;
- padding-left: 0;
-}
-
-.comment-list .children > li {
- margin-top: 30px;
- margin-bottom: 30px;
-}
-
-@media only screen and (min-width: 482px) {
-
- .comment-list .depth-2,
- .comment-list .depth-3 {
- padding-left: 100px;
- }
-}
-
-/**
- * Comment Meta
- */
-.comment-meta .comment-author {
- line-height: 1.3;
- margin-bottom: 5px;
-}
-@media only screen and (min-width: 482px) {
-
- .comment-meta .comment-author {
- margin-bottom: 0;
- padding-right: 0;
- }
-}
-
-.comment-meta .comment-author .fn {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-weight: normal;
- font-size: 1.5rem;
- hyphens: auto;
- word-wrap: break-word;
- word-break: break-word;
-}
-
-.comment-meta .comment-metadata {
- color: #28303d;
- font-size: 1rem;
- padding: 8px 0 9px;
-}
-
-.comment-meta .comment-metadata .edit-link {
- margin-left: 25px;
-}
-@media only screen and (min-width: 482px) {
-
- .comment-meta {
- margin-right: inherit;
- }
-
- .comment-meta .comment-author {
- max-width: inherit;
- }
-}
-
-.reply {
- font-size: 1.125rem;
- line-height: 1.3;
-}
-
-.bypostauthor {
- display: block;
-}
-
-.says {
- display: none;
-}
-
-.pingback .url,
-.trackback .url {
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
-}
-
-.comment-body {
- position: relative;
- margin-bottom: 51px;
-}
-
-.comment-body > * {
- margin-top: 30px;
- margin-bottom: 30px;
-}
-
-.comment-body .reply {
- margin: 0;
-}
-
-.comment-content {
- word-wrap: break-word;
-}
-
-.pingback .comment-body,
-.trackback .comment-body {
- margin-top: 30px;
- margin-bottom: 30px;
-}
-
-.comment-respond {
- margin-top: 30px;
-}
-
-.comment-respond > * {
- margin-top: 20px;
- margin-bottom: 20px;
-}
-
-.comment-respond > *:first-child {
- margin-top: 0;
-}
-
-.comment-respond > *:last-child {
- margin-bottom: 0;
-}
-
-.comment-respond > *:last-child.comment-form {
- margin-bottom: 30px;
-}
-
-.comment-author {
- padding-top: 3px;
-}
-
-.comment-author .url {
- color: currentColor;
-}
-
-.comment-form {
- display: flex;
- flex-wrap: wrap;
-}
-
-.comment-form > * {
- flex-basis: 100%;
-}
-
-.comment-form .comment-notes {
- font-size: 1.125rem;
-}
-
-.comment-form .comment-form-url,
-.comment-form .comment-form-comment {
- width: 100%;
-}
-
-.comment-form .comment-form-author,
-.comment-form .comment-form-email {
- flex-basis: 0;
- flex-grow: 1;
-}
-@media only screen and (max-width: 481.98px) {
-
- .comment-form .comment-form-author,
- .comment-form .comment-form-email {
- flex-basis: 100%;
- }
-}
-
-.comment-form .comment-form-cookies-consent > label,
-.comment-form .comment-notes {
- font-size: 1rem;
- font-weight: normal;
-}
-
-.comment-form > p {
- margin-bottom: 20px;
-}
-
-.comment-form > p:first-of-type {
- margin-top: 0;
-}
-
-.comment-form > p:last-of-type {
- margin-bottom: 0;
-}
-
-.comment-form > p label,
-.comment-form > p input[type=email],
-.comment-form > p input[type=text],
-.comment-form > p input[type=url],
-.comment-form > p textarea {
- display: block;
- font-size: 1.125rem;
- margin-bottom: 10px;
- width: 100%;
- font-weight: 500;
-}
-
-.comment-form > p.comment-form-cookies-consent {
- display: flex;
-}
-@media only screen and (min-width: 482px) {
-
- .comment-form > p.comment-form-author {
- margin-right: 38px;
- }
-
- .comment-form > p.comment-notes,
- .comment-form > p.logged-in-as {
- display: block;
- }
-}
-
-.menu-button-container {
- display: none;
- justify-content: space-between;
- position: absolute;
- right: 0;
- padding-top: 15px;
- padding-bottom: 8px;
-}
-@media only screen and (max-width: 481.98px) {
-
- .menu-button-container {
- display: flex;
- }
-}
-
-.menu-button-container #primary-mobile-menu {
- display: flex;
- margin-left: auto;
- padding: 10px 15px;
- font-size: 1rem;
- font-weight: 500;
- background-color: transparent;
- border: none;
- color: #28303d;
-}
-
-.menu-button-container #primary-mobile-menu .dropdown-icon {
- display: flex;
- align-items: center;
-}
-
-.menu-button-container #primary-mobile-menu .dropdown-icon .svg-icon {
- margin-left: 5px;
-}
-
-.menu-button-container #primary-mobile-menu .dropdown-icon.open .svg-icon {
- position: relative;
- top: -1px;
-}
-
-.menu-button-container #primary-mobile-menu .dropdown-icon.close,
-.menu-button-container #primary-mobile-menu[aria-expanded*=true] .dropdown-icon.open {
- display: none;
-}
-
-.menu-button-container #primary-mobile-menu[aria-expanded*=true] .dropdown-icon.close {
- display: flex;
-}
-
-.has-logo.has-title-and-tagline .menu-button-container #primary-mobile-menu[aria-expanded*=true] .dropdown-icon.close {
- animation-name: twentytwentyone-close-button-transition;
- animation-duration: 0.3s;
-}
-
-.primary-navigation-open .menu-button-container {
- width: 100%;
- z-index: 500;
- background-color: #d1e4dd;
-}
-
-.primary-navigation-open .menu-button-container #primary-mobile-menu {
- position: static;
-}
-
-.primary-navigation {
- position: absolute;
- top: 0;
- right: 0;
- color: #28303d;
- font-size: 1.25rem;
- line-height: 1.15;
- margin-top: 0;
- margin-bottom: 0;
-}
-
-.primary-navigation > .primary-menu-container {
- position: fixed;
- visibility: hidden;
- opacity: 0;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- padding-top: calc(2rem + 47px);
- padding-left: 20px;
- padding-right: 20px;
- padding-bottom: 25px;
- background-color: #d1e4dd;
- transform: translateY(30px);
-}
-@media (prefers-reduced-motion: no-preference) {
-
- .primary-navigation > .primary-menu-container {
- transition: all 0.15s ease-in-out;
- }
-}
-@media only screen and (max-width: 481.98px) {
-
- .primary-navigation > .primary-menu-container {
- height: 100vh;
- z-index: 499;
- overflow-x: hidden;
- overflow-y: auto;
- border: 2px solid transparent;
- }
-
- .has-logo.has-title-and-tagline .primary-navigation > .primary-menu-container {
- position: fixed;
- transform: translateY(0) translateX(100%);
- }
-
- .admin-bar .has-logo.has-title-and-tagline .primary-navigation > .primary-menu-container {
- top: 32px;
- }
- @media only screen and (max-width: 782px) {
-
- .admin-bar .has-logo.has-title-and-tagline .primary-navigation > .primary-menu-container {
- top: 46px;
- }
- }
-
- .admin-bar .primary-navigation > .primary-menu-container {
- height: calc(100vh - 32px);
- }
- @media only screen and (max-width: 782px) {
-
- .admin-bar .primary-navigation > .primary-menu-container {
- height: calc(100vh - 46px);
- }
- }
-
- .primary-navigation > .primary-menu-container:focus {
- border: 2px solid #28303d;
- }
-
- .primary-navigation-open .primary-navigation {
- width: 100%;
- position: fixed;
- z-index: 2;
- }
-}
-
-.primary-navigation-open .primary-navigation > .primary-menu-container {
- position: relative;
- visibility: visible;
- opacity: 1;
- transform: translateY(0);
-}
-@media only screen and (max-width: 481.98px) {
-
- .primary-navigation-open .has-logo.has-title-and-tagline .primary-navigation > .primary-menu-container {
- transform: translateX(0) translateY(0);
- }
-}
-@media only screen and (min-width: 482px) {
-
- .primary-navigation {
- position: relative;
- margin-left: auto;
- }
-
- .primary-navigation > .primary-menu-container {
- visibility: visible;
- opacity: 1;
- position: relative;
- padding: 0;
- background-color: transparent;
- overflow: initial;
- transform: none;
- }
-
- .primary-navigation #toggle-menu,
- .primary-navigation > .primary-menu-container ul > li .sub-menu-toggle[aria-expanded=false] ~ ul {
- display: none;
- }
-
- .admin-bar .primary-navigation,
- .admin-bar .primary-navigation > .primary-menu-container {
- top: initial;
- }
-}
-
-.primary-navigation > div > .menu-wrapper {
- display: flex;
- justify-content: flex-start;
- flex-wrap: wrap;
- list-style: none;
- margin: 0;
- max-width: none;
- padding-left: 0;
- position: relative;
-}
-@media only screen and (max-width: 481.98px) {
-
- .primary-navigation > div > .menu-wrapper {
- padding-bottom: 100px;
- }
-
- .primary-navigation > div > .menu-wrapper ul {
- padding-left: 0;
- }
-}
-
-.primary-navigation > div > .menu-wrapper li {
- display: block;
- position: relative;
- width: 100%;
-}
-@media only screen and (min-width: 482px) {
-
- .primary-navigation > div > .menu-wrapper li {
- margin: 0;
- width: inherit;
- }
-
- .primary-navigation > div > .menu-wrapper li:last-child {
- margin-right: 0;
- }
-}
-
-.primary-navigation > div > .menu-wrapper .sub-menu-toggle {
- display: flex;
- height: calc(27px + 1em);
- width: 44px;
- padding: 0;
- justify-content: center;
- align-items: center;
- background: transparent;
- color: currentColor;
- border: none;
-}
-
-.primary-navigation > div > .menu-wrapper .sub-menu-toggle:focus {
- outline: 2px solid #28303d;
-}
-@media only screen and (max-width: 481.98px) {
-
- .primary-navigation > div > .menu-wrapper .sub-menu-toggle {
- display: none;
- }
-}
-
-.primary-navigation > div > .menu-wrapper .sub-menu-toggle .icon-plus,
-.primary-navigation > div > .menu-wrapper .sub-menu-toggle .icon-minus {
- height: 100%;
- display: flex;
- align-items: center;
-}
-
-.primary-navigation > div > .menu-wrapper .sub-menu-toggle .icon-plus svg,
-.primary-navigation > div > .menu-wrapper .sub-menu-toggle .icon-minus svg {
- margin-top: -1px;
-}
-
-.primary-navigation > div > .menu-wrapper .sub-menu-toggle .icon-minus {
- display: none;
-}
-
-.primary-navigation > div > .menu-wrapper .sub-menu-toggle[aria-expanded=true] .icon-minus {
- display: flex;
-}
-
-.primary-navigation > div > .menu-wrapper .sub-menu-toggle[aria-expanded=true] .icon-plus {
- display: none;
-}
-
-.primary-navigation > div > .menu-wrapper > li > .sub-menu {
- position: relative;
-}
-@media only screen and (min-width: 482px) and (prefers-reduced-motion: no-preference) {
-
- .primary-navigation > div > .menu-wrapper > li > .sub-menu {
- transition: all 0.5s ease;
- }
-}
-@media only screen and (min-width: 482px) {
-
- .primary-navigation > div > .menu-wrapper > li > .sub-menu {
- left: 0;
- margin: 0;
- min-width: max-content;
- position: absolute;
- top: 100%;
- padding-top: 3px;
- z-index: 88888;
- }
-
- .primary-navigation > div > .menu-wrapper > li > .sub-menu:before,
- .primary-navigation > div > .menu-wrapper > li > .sub-menu:after {
- content: "";
- display: block;
- position: absolute;
- width: 0;
- top: -10px;
- left: 25px;
- border-style: solid;
- border-color: #28303d transparent;
- border-width: 0 7px 10px;
- }
-
- .primary-navigation > div > .menu-wrapper > li > .sub-menu:after {
- top: -9px;
- border-color: #d1e4dd transparent;
- }
-
- .primary-navigation > div > .menu-wrapper > li > .sub-menu li {
- background: #d1e4dd;
- }
-
- .primary-navigation > div > .menu-wrapper > li > .sub-menu.submenu-reposition-left {
-
- /* rtl:ignore */
- left: 0;
-
- /* rtl:ignore */
- right: auto;
- }
-
- .primary-navigation > div > .menu-wrapper > li > .sub-menu.submenu-reposition-left:before {
-
- /* rtl:ignore */
- left: 25px;
-
- /* rtl:ignore */
- right: auto;
- }
-
- .primary-navigation > div > .menu-wrapper > li > .sub-menu.submenu-reposition-left:after {
-
- /* rtl:ignore */
- left: 25px;
-
- /* rtl:ignore */
- right: auto;
- }
-
- .primary-navigation > div > .menu-wrapper > li > .sub-menu.submenu-reposition-right {
-
- /* rtl:ignore */
- right: 0;
-
- /* rtl:ignore */
- left: auto;
- }
-
- .primary-navigation > div > .menu-wrapper > li > .sub-menu.submenu-reposition-right:before {
-
- /* rtl:ignore */
- left: auto;
-
- /* rtl:ignore */
- right: 25px;
- }
-
- .primary-navigation > div > .menu-wrapper > li > .sub-menu.submenu-reposition-right:after {
-
- /* rtl:ignore */
- left: auto;
-
- /* rtl:ignore */
- right: 25px;
- }
-}
-
-.primary-navigation .primary-menu > .menu-item:hover > a {
- color: #28303d;
-}
-@media only screen and (min-width: 482px) {
-
- .primary-navigation .primary-menu-container {
- margin-right: -13px;
- margin-left: -13px;
- }
-
- .primary-navigation .primary-menu-container > ul > .menu-item {
- display: flex;
- }
-
- .primary-navigation .primary-menu-container > ul > .menu-item > a {
- padding-left: 13px;
- padding-right: 13px;
- }
-
- .primary-navigation .primary-menu-container > ul > .menu-item > a + .sub-menu-toggle {
- margin-left: -8px;
- }
-}
-
-.primary-navigation a {
- display: block;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.125rem;
- font-weight: normal;
- padding: 13px 0;
- text-decoration: none;
-}
-@media only screen and (min-width: 482px) {
-
- .primary-navigation a {
- display: block;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.25rem;
- font-weight: normal;
- }
-}
-
-.primary-navigation a + svg {
- fill: #28303d;
-}
-
-.primary-navigation a:hover,
-.primary-navigation a:link,
-.primary-navigation a:visited {
- color: #28303d;
-}
-
-.primary-navigation a:hover {
- text-decoration: underline;
- text-decoration-style: dotted;
-}
-
-.primary-navigation a:focus {
- position: relative;
- z-index: 99999;
- outline-offset: 0;
- text-decoration-thickness: 2px;
-}
-
-.primary-navigation .current-menu-item > a:first-child,
-.primary-navigation .current_page_item > a:first-child {
- text-decoration: underline;
- text-decoration-style: solid;
-}
-
-.primary-navigation .current-menu-item > a:first-child:hover,
-.primary-navigation .current_page_item > a:first-child:hover {
- text-decoration: underline;
- text-decoration-style: dotted;
-}
-
-.primary-navigation .sub-menu {
- margin: 0;
- padding: 0;
- list-style: none;
- margin-left: 13px;
- border: 1px solid #28303d;
-}
-
-.primary-navigation .sub-menu .sub-menu {
- border: none;
-}
-@media only screen and (min-width: 482px) {
-
- .primary-navigation .sub-menu > .menu-item > .sub-menu {
- padding: 0;
- }
-}
-@media only screen and (max-width: 481.98px) {
-
- .primary-navigation .sub-menu .menu-item:last-child {
- margin-bottom: 0;
- }
-}
-
-.primary-navigation .sub-menu .menu-item > a {
- padding: 17px 13px;
- display: block;
- font-size: 1.125rem;
- font-style: normal;
-}
-@media only screen and (min-width: 482px) {
-
- .primary-navigation .sub-menu .menu-item > a {
- font-size: 1rem;
- font-style: normal;
- }
-}
-
-.primary-navigation .menu-item-has-children > .svg-icon {
- display: none;
-}
-@media only screen and (min-width: 482px) {
-
- .primary-navigation .menu-item-has-children > .svg-icon {
- display: inline-block;
- height: 100%;
- }
-
- .primary-navigation .menu-item-has-children .sub-menu .svg-icon {
- display: none;
- }
-}
-
-.primary-navigation .menu-item-description {
- display: block;
- clear: both;
- font-size: 1rem;
- text-transform: none;
- line-height: 1.7;
-}
-
-.primary-navigation .menu-item-description > span {
- display: inline-block;
-}
-
-@media only screen and (max-width: 481.98px) {
-
- .lock-scrolling .site {
- position: fixed;
- max-width: 100%;
- width: 100%;
- }
-}
-@keyframes twentytwentyone-close-button-transition {
-
- from {
- opacity: 0;
- }
-
- to {
- opacity: 1;
- }
-}
-
-.footer-navigation {
- margin-top: 60px;
- margin-bottom: 30px;
- color: #28303d;
- font-size: 1rem;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
-}
-
-.footer-navigation-wrapper {
- display: flex;
- justify-content: center;
- flex-wrap: wrap;
- list-style: none;
- padding-left: 0;
-}
-
-.footer-navigation-wrapper li {
- display: inline;
- line-height: 3;
-}
-
-.footer-navigation-wrapper li a {
- padding: 17px 13px;
- color: #28303d;
-}
-
-.footer-navigation-wrapper li a:link,
-.footer-navigation-wrapper li a:visited,
-.footer-navigation-wrapper li a:active {
- color: #28303d;
-}
-
-.footer-navigation-wrapper li a:hover {
- text-decoration: underline;
- text-decoration-style: dotted;
- text-decoration-skip-ink: none;
- color: #28303d;
-}
-
-.is-dark-theme .footer-navigation-wrapper li a:focus .svg-icon {
- fill: #d1e4dd;
-}
-
-.has-background-white .footer-navigation-wrapper li a:focus .svg-icon {
- fill: #fff;
-}
-
-.footer-navigation-wrapper li .svg-icon {
- vertical-align: middle;
- fill: #28303d;
-}
-
-.footer-navigation-wrapper li .svg-icon:hover {
- transform: scale(1.1);
-}
-@media (prefers-reduced-motion: no-preference) {
-
- .footer-navigation-wrapper li .svg-icon {
- transition: transform 0.1s ease;
- }
-}
-
-.footer-navigation-wrapper .sub-menu-toggle,
-.footer-navigation-wrapper .menu-item-description {
- display: none;
-}
-
-/* Next/Previous navigation */
-.navigation,
-.navigation a {
- color: #28303d;
-}
-
-.navigation a {
- text-decoration: none;
-}
-
-.navigation a:hover {
- color: #28303d;
- text-decoration: underline;
- text-decoration-style: dotted;
-}
-
-.navigation a:focus {
- color: #39414d;
-}
-
-.navigation a:active {
- color: #28303d;
-}
-
-.navigation .nav-links > * {
- min-width: 44px;
- min-height: 44px;
-}
-
-.navigation .nav-links .nav-next a,
-.navigation .nav-links .nav-previous a {
- display: flex;
- flex-direction: column;
-}
-
-.navigation .nav-links .dots {
- text-align: center;
-}
-@media only screen and (min-width: 592px) {
-
- .navigation .nav-links {
- display: flex;
- justify-content: center;
- flex-wrap: wrap;
- }
-
- .navigation .nav-links .nav-next,
- .navigation .nav-links .nav-previous {
- flex: 0 1 auto;
- margin-bottom: inherit;
- margin-top: inherit;
- max-width: calc(50% - 10px);
- }
-
- .navigation .nav-links .nav-next {
- text-align: right;
- }
-}
-
-.navigation .svg-icon {
- display: inline-block;
- fill: currentColor;
- vertical-align: middle;
- position: relative;
-}
-
-.navigation .nav-previous .svg-icon,
-.navigation .prev .svg-icon {
- top: -2px;
- margin-right: 5px;
-}
-
-.navigation .nav-next .svg-icon,
-.navigation .next .svg-icon {
- top: -1px;
- margin-left: 5px;
-}
-
-.post-navigation {
- margin: 30px auto;
-}
-@media only screen and (min-width: 822px) {
-
- .post-navigation {
- margin: 30px auto;
- }
-}
-
-.post-navigation .meta-nav {
- line-height: 1.7;
- color: #28303d;
-}
-
-.post-navigation .post-title {
- display: inline-block;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.5rem;
- font-weight: 600;
- line-height: 1.3;
-}
-@media only screen and (min-width: 822px) {
-
- .post-navigation .post-title {
- margin: 5px 29px 0;
- }
-}
-@media only screen and (min-width: 482px) {
-
- .post-navigation .nav-links {
- justify-content: space-between;
- }
-}
-
-.post-navigation .nav-next,
-.post-navigation .nav-previous {
- margin-top: 30px;
- margin-bottom: 30px;
-}
-
-.post-navigation .nav-next:first-child,
-.post-navigation .nav-previous:first-child {
- margin-top: 0;
-}
-
-.post-navigation .nav-next:last-child,
-.post-navigation .nav-previous:last-child {
- margin-bottom: 0;
-}
-
-.pagination,
-.comments-pagination {
- border-top: 3px solid #28303d;
- padding-top: 30px;
- margin: 30px auto;
-}
-@media only screen and (min-width: 822px) {
-
- .pagination,
- .comments-pagination {
- margin: 30px auto;
- }
-}
-
-.pagination .nav-links,
-.comments-pagination .nav-links {
- margin-top: -30px;
-}
-
-.pagination .nav-links a:hover,
-.comments-pagination .nav-links a:hover {
- color: #28303d;
-}
-
-.is-dark-theme .pagination .nav-links a:active,
-.is-dark-theme .pagination .nav-links a:hover:active,
-.is-dark-theme .pagination .nav-links a:hover:focus,
-.is-dark-theme .comments-pagination .nav-links a:active,
-.is-dark-theme .comments-pagination .nav-links a:hover:active,
-.is-dark-theme .comments-pagination .nav-links a:hover:focus {
- color: #d1e4dd;
-}
-
-.has-background-white .pagination .nav-links a:active,
-.has-background-white .pagination .nav-links a:hover:active,
-.has-background-white .pagination .nav-links a:hover:focus,
-.has-background-white .comments-pagination .nav-links a:active,
-.has-background-white .comments-pagination .nav-links a:hover:active,
-.has-background-white .comments-pagination .nav-links a:hover:focus {
- color: #fff;
-}
-
-.pagination .nav-links > *,
-.comments-pagination .nav-links > * {
- color: #28303d;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
- font-size: 1.5rem;
- font-weight: normal;
- margin-top: 30px;
- margin-left: 13px;
- margin-right: 13px;
-}
-
-.pagination .nav-links > *.current,
-.comments-pagination .nav-links > *.current {
- text-decoration: underline;
-}
-
-.pagination .nav-links > *:not(.dots):not(.current):hover,
-.comments-pagination .nav-links > *:not(.dots):not(.current):hover {
- text-decoration-style: dotted;
-}
-
-.pagination .nav-links > *:first-child,
-.comments-pagination .nav-links > *:first-child {
- margin-left: 0;
-}
-
-.pagination .nav-links > *:last-child,
-.comments-pagination .nav-links > *:last-child {
- margin-right: 0;
-}
-
-.pagination .nav-links > *.next,
-.comments-pagination .nav-links > *.next {
- margin-left: auto;
-}
-
-.pagination .nav-links > *.prev,
-.comments-pagination .nav-links > *.prev {
- margin-right: auto;
-}
-@media only screen and (max-width: 821.98px) {
-
- .pagination .nav-links,
- .comments-pagination .nav-links {
- display: flex;
- flex-wrap: wrap;
- }
-
- .pagination .page-numbers,
- .comments-pagination .page-numbers {
- display: none;
- }
-
- .pagination .page-numbers.prev,
- .pagination .page-numbers.next,
- .comments-pagination .page-numbers.prev,
- .comments-pagination .page-numbers.next {
- display: inline-block;
- flex: 0 1 auto;
- }
-}
-@media only screen and (max-width: 481.98px) {
-
- .pagination .nav-short,
- .comments-pagination .nav-short {
- display: none;
- }
-}
-
-.comments-pagination {
- padding-top: 20px;
- margin: 90px auto;
-}
-@media only screen and (min-width: 822px) {
-
- .comments-pagination {
- margin: 90px auto 120px;
- }
-}
-
-.comments-pagination .nav-links > * {
- font-size: 1.25rem;
-}
-
-.widget-area {
- margin-top: 180px;
- padding-bottom: 10px;
- color: #28303d;
- font-size: 1.125rem;
- font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
-}
-@media only screen and (min-width: 652px) {
-
- .widget-area {
- display: grid;
- grid-template-columns: repeat(2, 1fr);
- column-gap: 50px;
- }
-}
-@media only screen and (min-width: 1024px) {
-
- .widget-area {
- grid-template-columns: repeat(3, 1fr);
- }
-}
-@media only screen and (max-width: 481.98px) {
-
- .widget-area {
- margin-top: 90px;
- }
-}
-
-.widget-area .wp-block-social-links.alignright {
- margin-top: 30px;
- justify-content: flex-end;
-}
-
-.widget-area .wp-block-social-links.alignleft {
- margin-top: 30px;
-}
-
-.widget-area:after {
- content: "";
- display: table;
- clear: both;
-}
-
-.widget h1,
-.widget h2,
-.widget h3,
-.widget h4,
-.widget h5,
-.widget h6 {
- font-weight: 700;
- line-height: 1.4;
-}
-
-.widget h1 {
- font-size: 1.25rem;
-}
-
-.widget h2 {
- font-size: 1.125rem;
-}
-
-.widget h3,
-.widget h4,
-.widget h5,
-.widget h6 {
- font-size: 1rem;
-}
-
-.widget ul {
- list-style-type: none;
- padding: 0;
-}
-
-.widget ul li {
- line-height: 1.9;
-}
-
-.widget ul.sub-menu,
-.widget ul.children {
- margin-left: 13px;
-}
-
-.widget ul .sub-menu-toggle {
- display: none;
-}
-
-.widget a {
- text-decoration: underline;
- text-decoration-style: solid;
- text-decoration-color: currentColor;
-}
-
-.widget a,
-.widget a:link,
-.widget a:visited,
-.widget a:active,
-.widget a:hover {
- color: #28303d;
-}
-
-.widget a:hover {
- text-decoration-style: dotted;
-}
-
-.search-form {
- display: flex;
- flex-wrap: wrap;
- margin: auto;
- max-width: calc(100vw - 30px);
-}
-
-@media only screen and (min-width: 482px) {
-
- .search-form {
- max-width: min(calc(100vw - 100px), 610px);
- }
-}
-
-@media only screen and (min-width: 822px) {
-
- .search-form {
- max-width: min(calc(100vw - 200px), 610px);
- }
-}
-
-.search-form > label {
- width: 100%;
- margin-bottom: 0;
- font-weight: 500;
-}
-
-.search-form .search-field {
- flex-grow: 1;
- max-width: inherit;
- margin-top: 10px;
- margin-right: 17px;
-}
-
-.search-form .search-submit {
- margin-top: 10px;
- margin-left: 10px;
-}
-
-.widget_search > .search-form .search-field {
- margin-right: -3px;
- -webkit-appearance: none;
- margin-bottom: 15px;
-}
-
-.widget_search > .search-form .search-submit {
- margin-left: 0;
- margin-bottom: 15px;
-}
-
-.widget_rss a.rsswidget .rss-widget-icon {
- display: none;
-}
-
-/* Category 07 is for any utility classes that are not assigned to a specific component. */
-.screen-reader-text {
- border: 0;
- clip-path: inset(50%);
- height: 1px;
- margin: -1px;
- overflow: hidden;
- padding: 0;
- position: absolute !important;
- width: 1px;
- word-wrap: normal !important;
- word-break: normal;
-}
-
-.skip-link:focus {
- background-color: #f1f1f1;
- border-radius: 3px;
- box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
- clip-path: none;
- color: #21759b;
- display: block;
- font-size: 0.875rem;
- font-weight: 700;
- height: auto;
- left: 5px;
- line-height: normal;
- padding: 15px 23px 14px;
- text-decoration: none;
- top: 5px;
- width: auto;
- z-index: 100000;
-}
-
-/* Do not show the outline on the skip link target. */
-#content[tabindex="-1"]:focus {
- outline: 0;
-}
-
-.has-black-color[class],
-.has-black-color[class] > [class*=__inner-container] {
- color: #000;
-}
-
-.has-gray-color[class],
-.has-gray-color[class] > [class*=__inner-container] {
- color: #39414d;
-}
-
-.has-dark-gray-color[class],
-.has-dark-gray-color[class] > [class*=__inner-container] {
- color: #28303d;
-}
-
-.has-green-color[class],
-.has-green-color[class] > [class*=__inner-container] {
- color: #d1e4dd;
-}
-
-.has-blue-color[class],
-.has-blue-color[class] > [class*=__inner-container] {
- color: #d1dfe4;
-}
-
-.has-purple-color[class],
-.has-purple-color[class] > [class*=__inner-container] {
- color: #d1d1e4;
-}
-
-.has-red-color[class],
-.has-red-color[class] > [class*=__inner-container] {
- color: #e4d1d1;
-}
-
-.has-orange-color[class],
-.has-orange-color[class] > [class*=__inner-container] {
- color: #e4dad1;
-}
-
-.has-yellow-color[class],
-.has-yellow-color[class] > [class*=__inner-container] {
- color: #eeeadd;
-}
-
-.has-white-color[class],
-.has-white-color[class] > [class*=__inner-container] {
- color: #fff;
-}
-
-.has-background a,
-.has-background p,
-.has-background h1,
-.has-background h2,
-.has-background h3,
-.has-background h4,
-.has-background h5,
-.has-background h6 {
- color: currentColor;
-}
-
-.has-black-background-color[class],
-.has-black-background-color[class] > [class*=__inner-container] {
- background-color: #000;
-}
-
-.has-dark-gray-background-color[class],
-.has-dark-gray-background-color[class] > [class*=__inner-container] {
- background-color: #28303d;
-}
-
-.has-gray-background-color[class],
-.has-gray-background-color[class] > [class*=__inner-container] {
- background-color: #39414d;
-}
-
-.has-light-gray-background-color[class],
-.has-light-gray-background-color[class] > [class*=__inner-container] {
- background-color: #f0f0f0;
-}
-
-.has-green-background-color[class],
-.has-green-background-color[class] > [class*=__inner-container] {
- background-color: #d1e4dd;
-}
-
-.has-blue-background-color[class],
-.has-blue-background-color[class] > [class*=__inner-container] {
- background-color: #d1dfe4;
-}
-
-.has-purple-background-color[class],
-.has-purple-background-color[class] > [class*=__inner-container] {
- background-color: #d1d1e4;
-}
-
-.has-red-background-color[class],
-.has-red-background-color[class] > [class*=__inner-container] {
- background-color: #e4d1d1;
-}
-
-.has-orange-background-color[class],
-.has-orange-background-color[class] > [class*=__inner-container] {
- background-color: #e4dad1;
-}
-
-.has-yellow-background-color[class],
-.has-yellow-background-color[class] > [class*=__inner-container] {
- background-color: #eeeadd;
-}
-
-.has-white-background-color[class],
-.has-white-background-color[class] > [class*=__inner-container] {
- background-color: #fff;
-}
-
-.has-background:not(.has-text-color).has-black-background-color[class],
-.has-background:not(.has-text-color).has-gray-background-color[class],
-.has-background:not(.has-text-color).has-dark-gray-background-color[class] {
- color: #fff;
-}
-
-.has-background:not(.has-text-color).has-black-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-gray-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-dark-gray-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-green-background-color[class],
-.has-background:not(.has-text-color).has-blue-background-color[class],
-.has-background:not(.has-text-color).has-purple-background-color[class],
-.has-background:not(.has-text-color).has-red-background-color[class],
-.has-background:not(.has-text-color).has-orange-background-color[class],
-.has-background:not(.has-text-color).has-yellow-background-color[class],
-.has-background:not(.has-text-color).has-white-background-color[class],
-.has-background:not(.has-text-color).has-green-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-blue-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-purple-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-red-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-orange-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-yellow-background-color[class] > [class*=__inner-container],
-.has-background:not(.has-text-color).has-white-background-color[class] > [class*=__inner-container] {
- color: #28303d;
-}
-
-.has-purple-to-yellow-gradient-background {
- background: linear-gradient(160deg, #d1d1e4, #eeeadd);
-}
-
-.has-yellow-to-purple-gradient-background {
- background: linear-gradient(160deg, #eeeadd, #d1d1e4);
-}
-
-.has-green-to-yellow-gradient-background {
- background: linear-gradient(160deg, #d1e4dd, #eeeadd);
-}
-
-.has-yellow-to-green-gradient-background {
- background: linear-gradient(160deg, #eeeadd, #d1e4dd);
-}
-
-.has-red-to-yellow-gradient-background {
- background: linear-gradient(160deg, #e4d1d1, #eeeadd);
-}
-
-.has-yellow-to-red-gradient-background {
- background: linear-gradient(160deg, #eeeadd, #e4d1d1);
-}
-
-.has-purple-to-red-gradient-background {
- background: linear-gradient(160deg, #d1d1e4, #e4d1d1);
-}
-
-.has-red-to-purple-gradient-background {
- background: linear-gradient(160deg, #e4d1d1, #d1d1e4);
-}
-
-header *,
-main *,
-footer * {
- max-width: unset;
-}
-
-html,
-body,
-div,
-header,
-nav,
-article,
-figure,
-hr,
-main,
-section,
-footer {
- max-width: none;
-}
-
-.is-IE.is-dark-theme,
-.is-IE.is-dark-theme *,
-.is-IE.is-dark-theme a,
-.is-IE.is-dark-theme .site-description,
-.is-IE.is-dark-theme .entry-title,
-.is-IE.is-dark-theme .entry-footer,
-.is-IE.is-dark-theme .widget-area,
-.is-IE.is-dark-theme .post-navigation .meta-nav,
-.is-IE.is-dark-theme .footer-navigation-wrapper li a:link,
-.is-IE.is-dark-theme .site-footer > .site-info,
-.is-IE.is-dark-theme .site-footer > .site-info a,
-.is-IE.is-dark-theme .site-footer > .site-info a:visited {
- color: #fff;
-}
-
-.is-IE.is-dark-theme .sub-menu-toggle svg,
-.is-IE.is-dark-theme .sub-menu-toggle path,
-.is-IE.is-dark-theme .post-navigation .meta-nav svg,
-.is-IE.is-dark-theme .post-navigation .meta-nav path {
- fill: #fff;
-}
-
-.is-IE.is-dark-theme .primary-navigation > div > .menu-wrapper > li > .sub-menu li {
- background: #000;
-}
-@media only screen and (max-width: 481.98px) {
-
- .is-IE.is-dark-theme.primary-navigation-open .primary-navigation > .primary-menu-container,
- .is-IE.is-dark-theme.primary-navigation-open .menu-button-container {
- background-color: #000;
- }
-}
-
-.is-IE.is-dark-theme .skip-link:focus {
- color: #21759b;
-}
-
-.is-IE .navigation .nav-links {
- display: block;
-}
-
-.is-IE .post-thumbnail .wp-post-image {
- min-width: auto;
-}
-
-.is-IE .wp-block-group:before,
-.is-IE .wp-block-group:after {
- content: "";
- display: block;
- clear: both;
-}
+/* Internet Explorer support was removed. */
diff --git a/src/wp-content/themes/twentytwentyone/assets/css/ie.css.map b/src/wp-content/themes/twentytwentyone/assets/css/ie.css.map
index 62e30c5e1e49a..8b137891791fe 100644
--- a/src/wp-content/themes/twentytwentyone/assets/css/ie.css.map
+++ b/src/wp-content/themes/twentytwentyone/assets/css/ie.css.map
@@ -1 +1 @@
-{"version":3,"sources":["../../style.css","../../assets/sass/01-settings/file-header.scss","../../assets/sass/style.scss","../../assets/sass/01-settings/global.scss","../../assets/sass/03-generic/normalize.scss","../../assets/sass/03-generic/breakpoints.scss","../../assets/sass/03-generic/vertical-margins.scss","../../assets/sass/03-generic/reset.scss","../../assets/sass/03-generic/clearings.scss","../../assets/sass/04-elements/blockquote.scss","../../assets/sass/04-elements/forms.scss","../../assets/sass/04-elements/media.scss","../../assets/sass/04-elements/misc.scss","../../assets/sass/04-elements/links.scss","../../assets/sass/05-blocks/audio/_style.scss","../../assets/sass/05-blocks/button/_style.scss","../../assets/sass/02-tools/mixins.scss","../../assets/sass/05-blocks/code/_style.scss","../../assets/sass/05-blocks/columns/_style.scss","../../assets/sass/05-blocks/cover/_style.scss","../../assets/sass/05-blocks/file/_style.scss","../../assets/sass/05-blocks/gallery/_style.scss","../../assets/sass/05-blocks/group/_style.scss","../../assets/sass/05-blocks/heading/_style.scss","../../assets/sass/05-blocks/image/_style.scss","../../assets/sass/05-blocks/latest-comments/_style.scss","../../assets/sass/05-blocks/latest-posts/_style.scss","../../assets/sass/05-blocks/legacy/_style.scss","../../assets/sass/05-blocks/list/_style.scss","../../assets/sass/05-blocks/media-text/_style.scss","../../assets/sass/05-blocks/navigation/_style.scss","../../assets/sass/05-blocks/paragraph/_style.scss","../../assets/sass/05-blocks/preformatted/_style.scss","../../assets/sass/05-blocks/pullquote/_style.scss","../../assets/sass/05-blocks/query-loop/_style.scss","../../assets/sass/05-blocks/quote/_style.scss","../../assets/sass/05-blocks/rss/_style.scss","../../assets/sass/05-blocks/search/_style.scss","../../assets/sass/05-blocks/separator/_style.scss","../../assets/sass/05-blocks/social-icons/_style.scss","../../assets/sass/05-blocks/table/_style.scss","../../assets/sass/05-blocks/tag-clould/_style.scss","../../assets/sass/05-blocks/verse/_style.scss","../../assets/sass/05-blocks/video/_style.scss","../../assets/sass/05-blocks/utilities/_font-sizes.scss","../../assets/sass/05-blocks/utilities/_style.scss","../../assets/sass/06-components/header.scss","../../assets/sass/06-components/footer.scss","../../assets/sass/06-components/single.scss","../../assets/sass/06-components/posts-and-pages.scss","../../assets/sass/06-components/entry.scss","../../assets/sass/06-components/archives.scss","../../assets/sass/06-components/404.scss","../../assets/sass/06-components/search.scss","../../assets/sass/06-components/comments.scss","../../assets/sass/06-components/navigation.scss","../../assets/sass/06-components/footer-navigation.scss","../../assets/sass/06-components/pagination.scss","../../assets/sass/06-components/widgets.scss","../../assets/sass/07-utilities/a11y.scss","../../assets/sass/07-utilities/color-palette.scss","../../assets/sass/07-utilities/measure.scss","../../assets/sass/07-utilities/ie.scss"],"names":[],"mappings":"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","file":"ie.css"}
\ No newline at end of file
+
diff --git a/src/wp-content/themes/twentytwentyone/assets/js/polyfills.js b/src/wp-content/themes/twentytwentyone/assets/js/polyfills.js
index f2692d8c3443c..216c5b3cd3bc5 100644
--- a/src/wp-content/themes/twentytwentyone/assets/js/polyfills.js
+++ b/src/wp-content/themes/twentytwentyone/assets/js/polyfills.js
@@ -1,46 +1 @@
-/**
- * File polyfills.js.
- *
- * Polyfills for IE11.
- */
-
-/**
- * Polyfill for Element.closest() because we need to support IE11.
- *
- * @since Twenty Twenty-One 1.0
- *
- * @see https://developer.mozilla.org/en-US/docs/Web/API/Element/closest
- */
-if ( ! Element.prototype.matches ) {
- Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector;
-}
-
-if ( ! Element.prototype.closest ) {
- Element.prototype.closest = function( s ) {
- var el = this;
- do {
- if ( Element.prototype.matches.call( el, s ) ) {
- return el;
- }
- el = el.parentElement || el.parentNode;
- } while ( el !== null && el.nodeType === 1 );
- return null;
- };
-}
-
-/**
- * Polyfill for NodeList.foreach() because we need to support IE11.
- *
- * @since Twenty Twenty-One 1.0
- *
- * @see https://developer.mozilla.org/en-US/docs/Web/API/NodeList/forEach
- */
-if ( window.NodeList && ! NodeList.prototype.forEach ) {
- NodeList.prototype.forEach = function( callback, thisArg ) {
- var i;
- thisArg = thisArg || window;
- for ( i = 0; i < this.length; i++ ) {
- callback.call( thisArg, this[i], i, this );
- }
- };
-}
+// Polyfills for IE11 have been removed.
diff --git a/src/wp-content/themes/twentytwentyone/assets/sass/07-utilities/ie.scss b/src/wp-content/themes/twentytwentyone/assets/sass/07-utilities/ie.scss
index cf3eddd280cef..5cc1a0a781bbc 100644
--- a/src/wp-content/themes/twentytwentyone/assets/sass/07-utilities/ie.scss
+++ b/src/wp-content/themes/twentytwentyone/assets/sass/07-utilities/ie.scss
@@ -1,64 +1 @@
-.is-IE {
-
- &.is-dark-theme {
- color: #fff;
-
- *,
- a,
- .site-description,
- .entry-title,
- .entry-footer,
- .widget-area,
- .post-navigation .meta-nav,
- .footer-navigation-wrapper li a:link,
- .site-footer > .site-info,
- .site-footer > .site-info a,
- .site-footer > .site-info a:visited {
- color: #fff;
- }
-
- .sub-menu-toggle svg,
- .sub-menu-toggle path,
- .post-navigation .meta-nav svg,
- .post-navigation .meta-nav path {
- fill: #fff;
- }
-
- .primary-navigation > div > .menu-wrapper > li > .sub-menu li {
- background: #000;
- }
-
- &.primary-navigation-open {
- @include media(mobile-only) {
-
- .primary-navigation > .primary-menu-container,
- .menu-button-container {
- background-color: #000;
- }
- }
- }
-
- .skip-link:focus {
- color: #21759b;
- }
- }
-
- .navigation .nav-links {
- display: block;
- }
-
- .post-thumbnail .wp-post-image {
- min-width: auto;
- }
-
- .wp-block-group {
-
- &:before,
- &:after {
- content: "";
- display: block;
- clear: both;
- }
- }
-
-}
+// IE11 styles are removed.
diff --git a/src/wp-content/themes/twentytwentyone/assets/sass/style.scss b/src/wp-content/themes/twentytwentyone/assets/sass/style.scss
index 5a57a61417c5f..0999c9f7230e4 100644
--- a/src/wp-content/themes/twentytwentyone/assets/sass/style.scss
+++ b/src/wp-content/themes/twentytwentyone/assets/sass/style.scss
@@ -118,4 +118,3 @@
@import "07-utilities/a11y";
@import "07-utilities/color-palette";
@import "07-utilities/measure";
-@import "07-utilities/ie";
diff --git a/src/wp-content/themes/twentytwentyone/functions.php b/src/wp-content/themes/twentytwentyone/functions.php
index 301aefca5cd2c..052ee1c5ea4f4 100644
--- a/src/wp-content/themes/twentytwentyone/functions.php
+++ b/src/wp-content/themes/twentytwentyone/functions.php
@@ -23,6 +23,7 @@
* as indicating support for post thumbnails.
*
* @since Twenty Twenty-One 1.0
+ * @since Twenty Twenty-One 2.8 Removed editor stylesheet for Internet Explorer.
*
* @return void
*/
@@ -123,17 +124,8 @@ function twenty_twenty_one_setup() {
add_theme_support( 'dark-editor-style' );
}
- $editor_stylesheet_path = './assets/css/style-editor.css';
-
- // Note, the is_IE global variable is defined by WordPress and is used
- // to detect if the current browser is internet explorer.
- global $is_IE;
- if ( $is_IE ) {
- $editor_stylesheet_path = './assets/css/ie-editor.css';
- }
-
// Enqueue editor styles.
- add_editor_style( $editor_stylesheet_path );
+ add_editor_style( './assets/css/style-editor.css' );
// Add custom editor font sizes.
add_theme_support(
@@ -390,23 +382,13 @@ function twenty_twenty_one_content_width() {
* Enqueues scripts and styles.
*
* @since Twenty Twenty-One 1.0
- *
- * @global bool $is_IE
- * @global WP_Scripts $wp_scripts
+ * @since Twenty Twenty-One 2.8 Removed Internet Explorer support.
*
* @return void
*/
function twenty_twenty_one_scripts() {
- // Note, the is_IE global variable is defined by WordPress and is used
- // to detect if the current browser is internet explorer.
- global $is_IE, $wp_scripts;
- if ( $is_IE ) {
- // If IE 11 or below, use a flattened stylesheet with static values replacing CSS Variables.
- wp_enqueue_style( 'twenty-twenty-one-style', get_template_directory_uri() . '/assets/css/ie.css', array(), wp_get_theme()->get( 'Version' ) );
- } else {
- // If not IE, use the standard stylesheet.
- wp_enqueue_style( 'twenty-twenty-one-style', get_template_directory_uri() . '/style.css', array(), wp_get_theme()->get( 'Version' ) );
- }
+ // The standard stylesheet.
+ wp_enqueue_style( 'twenty-twenty-one-style', get_template_directory_uri() . '/style.css', array(), wp_get_theme()->get( 'Version' ) );
// RTL styles.
wp_style_add_data( 'twenty-twenty-one-style', 'rtl', 'replace' );
@@ -419,39 +401,28 @@ function twenty_twenty_one_scripts() {
wp_enqueue_script( 'comment-reply' );
}
- // Register the IE11 polyfill file.
+ // Register the handles for unused IE11 polyfill scripts.
wp_register_script(
'twenty-twenty-one-ie11-polyfills-asset',
- get_template_directory_uri() . '/assets/js/polyfills.js',
+ false,
array(),
wp_get_theme()->get( 'Version' ),
array( 'in_footer' => true )
);
-
- // Register the IE11 polyfill loader.
wp_register_script(
'twenty-twenty-one-ie11-polyfills',
- null,
+ false,
array(),
wp_get_theme()->get( 'Version' ),
array( 'in_footer' => true )
);
- wp_add_inline_script(
- 'twenty-twenty-one-ie11-polyfills',
- wp_get_script_polyfill(
- $wp_scripts,
- array(
- 'Element.prototype.matches && Element.prototype.closest && window.NodeList && NodeList.prototype.forEach' => 'twenty-twenty-one-ie11-polyfills-asset',
- )
- )
- );
// Main navigation scripts.
if ( has_nav_menu( 'primary' ) ) {
wp_enqueue_script(
'twenty-twenty-one-primary-navigation-script',
get_template_directory_uri() . '/assets/js/primary-navigation.js',
- array( 'twenty-twenty-one-ie11-polyfills' ),
+ array(),
wp_get_theme()->get( 'Version' ),
array(
'in_footer' => false, // Because involves header.
@@ -464,7 +435,7 @@ function twenty_twenty_one_scripts() {
wp_enqueue_script(
'twenty-twenty-one-responsive-embeds-script',
get_template_directory_uri() . '/assets/js/responsive-embeds.js',
- array( 'twenty-twenty-one-ie11-polyfills' ),
+ array(),
wp_get_theme()->get( 'Version' ),
array( 'in_footer' => true )
);
@@ -630,6 +601,7 @@ function twentytwentyone_the_html_classes() {
* Adds "is-IE" class to body if the user is on Internet Explorer.
*
* @since Twenty Twenty-One 1.0
+ * @deprecated Twenty Twenty-One 2.8 Removed Internet Explorer support.
*
* @return void
*/
@@ -647,7 +619,6 @@ function twentytwentyone_add_ie_class() {
echo "\n";
}
}
-add_action( 'wp_footer', 'twentytwentyone_add_ie_class' );
if ( ! function_exists( 'wp_get_list_item_separator' ) ) :
/**
diff --git a/src/wp-content/themes/twentytwentyone/package.json b/src/wp-content/themes/twentytwentyone/package.json
index e558f22b4e84f..9c58cce58ab8d 100644
--- a/src/wp-content/themes/twentytwentyone/package.json
+++ b/src/wp-content/themes/twentytwentyone/package.json
@@ -64,8 +64,6 @@
"build:rtl": "rtlcss style.css style-rtl.css",
"build:dark-rtl": "rtlcss assets/css/style-dark-mode.css assets/css/style-dark-mode-rtl.css",
"build:print": "sass assets/sass/07-utilities/print.scss:assets/css/print.css --style=expanded --source-map",
- "build:ie": "postcss style.css -o assets/css/ie.css",
- "build:ie-editor": "postcss assets/css/style-editor.css -o assets/css/ie-editor.css",
"build:stylelint": "stylelint **/*.css --fix --config .stylelintrc-css.json",
"build": "run-s \"build:*\"",
"watch": "chokidar \"**/*.scss\" -c \"npm run build\" --initial",
diff --git a/src/wp-content/themes/twentytwentyone/style-rtl.css b/src/wp-content/themes/twentytwentyone/style-rtl.css
index 7ba25772bbe95..cf13057ee3018 100644
--- a/src/wp-content/themes/twentytwentyone/style-rtl.css
+++ b/src/wp-content/themes/twentytwentyone/style-rtl.css
@@ -5836,58 +5836,3 @@ section,
footer {
max-width: none;
}
-
-.is-IE.is-dark-theme {
- color: #fff;
-}
-
-.is-IE.is-dark-theme *,
-.is-IE.is-dark-theme a,
-.is-IE.is-dark-theme .site-description,
-.is-IE.is-dark-theme .entry-title,
-.is-IE.is-dark-theme .entry-footer,
-.is-IE.is-dark-theme .widget-area,
-.is-IE.is-dark-theme .post-navigation .meta-nav,
-.is-IE.is-dark-theme .footer-navigation-wrapper li a:link,
-.is-IE.is-dark-theme .site-footer > .site-info,
-.is-IE.is-dark-theme .site-footer > .site-info a,
-.is-IE.is-dark-theme .site-footer > .site-info a:visited {
- color: #fff;
-}
-
-.is-IE.is-dark-theme .sub-menu-toggle svg,
-.is-IE.is-dark-theme .sub-menu-toggle path,
-.is-IE.is-dark-theme .post-navigation .meta-nav svg,
-.is-IE.is-dark-theme .post-navigation .meta-nav path {
- fill: #fff;
-}
-
-.is-IE.is-dark-theme .primary-navigation > div > .menu-wrapper > li > .sub-menu li {
- background: #000;
-}
-@media only screen and (max-width: 481.98px) {
-
- .is-IE.is-dark-theme.primary-navigation-open .primary-navigation > .primary-menu-container,
- .is-IE.is-dark-theme.primary-navigation-open .menu-button-container {
- background-color: #000;
- }
-}
-
-.is-IE.is-dark-theme .skip-link:focus {
- color: #21759b;
-}
-
-.is-IE .navigation .nav-links {
- display: block;
-}
-
-.is-IE .post-thumbnail .wp-post-image {
- min-width: auto;
-}
-
-.is-IE .wp-block-group:before,
-.is-IE .wp-block-group:after {
- content: "";
- display: block;
- clear: both;
-}
diff --git a/src/wp-content/themes/twentytwentyone/style.css b/src/wp-content/themes/twentytwentyone/style.css
index c36175be86da6..47c5beae044c8 100644
--- a/src/wp-content/themes/twentytwentyone/style.css
+++ b/src/wp-content/themes/twentytwentyone/style.css
@@ -5884,58 +5884,3 @@ section,
footer {
max-width: none;
}
-
-.is-IE.is-dark-theme {
- color: #fff;
-}
-
-.is-IE.is-dark-theme *,
-.is-IE.is-dark-theme a,
-.is-IE.is-dark-theme .site-description,
-.is-IE.is-dark-theme .entry-title,
-.is-IE.is-dark-theme .entry-footer,
-.is-IE.is-dark-theme .widget-area,
-.is-IE.is-dark-theme .post-navigation .meta-nav,
-.is-IE.is-dark-theme .footer-navigation-wrapper li a:link,
-.is-IE.is-dark-theme .site-footer > .site-info,
-.is-IE.is-dark-theme .site-footer > .site-info a,
-.is-IE.is-dark-theme .site-footer > .site-info a:visited {
- color: #fff;
-}
-
-.is-IE.is-dark-theme .sub-menu-toggle svg,
-.is-IE.is-dark-theme .sub-menu-toggle path,
-.is-IE.is-dark-theme .post-navigation .meta-nav svg,
-.is-IE.is-dark-theme .post-navigation .meta-nav path {
- fill: #fff;
-}
-
-.is-IE.is-dark-theme .primary-navigation > div > .menu-wrapper > li > .sub-menu li {
- background: #000;
-}
-@media only screen and (max-width: 481.98px) {
-
- .is-IE.is-dark-theme.primary-navigation-open .primary-navigation > .primary-menu-container,
- .is-IE.is-dark-theme.primary-navigation-open .menu-button-container {
- background-color: #000;
- }
-}
-
-.is-IE.is-dark-theme .skip-link:focus {
- color: #21759b;
-}
-
-.is-IE .navigation .nav-links {
- display: block;
-}
-
-.is-IE .post-thumbnail .wp-post-image {
- min-width: auto;
-}
-
-.is-IE .wp-block-group:before,
-.is-IE .wp-block-group:after {
- content: "";
- display: block;
- clear: both;
-}
diff --git a/src/wp-content/themes/twentytwentyone/style.css.map b/src/wp-content/themes/twentytwentyone/style.css.map
index 5f00e9ecfec5b..b9a5f98b97e7a 100644
--- a/src/wp-content/themes/twentytwentyone/style.css.map
+++ b/src/wp-content/themes/twentytwentyone/style.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["assets/sass/01-settings/file-header.scss","assets/sass/style.scss","assets/sass/01-settings/global.scss","assets/sass/03-generic/normalize.scss","assets/sass/03-generic/breakpoints.scss","assets/sass/03-generic/vertical-margins.scss","assets/sass/03-generic/reset.scss","assets/sass/03-generic/clearings.scss","assets/sass/04-elements/blockquote.scss","assets/sass/04-elements/forms.scss","assets/sass/04-elements/media.scss","assets/sass/04-elements/misc.scss","assets/sass/04-elements/links.scss","assets/sass/05-blocks/audio/_style.scss","assets/sass/05-blocks/button/_style.scss","assets/sass/02-tools/mixins.scss","assets/sass/05-blocks/code/_style.scss","assets/sass/05-blocks/columns/_style.scss","assets/sass/05-blocks/cover/_style.scss","assets/sass/05-blocks/file/_style.scss","assets/sass/05-blocks/gallery/_style.scss","assets/sass/05-blocks/group/_style.scss","assets/sass/05-blocks/heading/_style.scss","assets/sass/05-blocks/image/_style.scss","assets/sass/05-blocks/latest-comments/_style.scss","assets/sass/05-blocks/latest-posts/_style.scss","assets/sass/05-blocks/legacy/_style.scss","assets/sass/05-blocks/list/_style.scss","assets/sass/05-blocks/media-text/_style.scss","assets/sass/05-blocks/navigation/_style.scss","assets/sass/05-blocks/paragraph/_style.scss","assets/sass/05-blocks/preformatted/_style.scss","assets/sass/05-blocks/pullquote/_style.scss","assets/sass/05-blocks/query-loop/_style.scss","assets/sass/05-blocks/quote/_style.scss","assets/sass/05-blocks/rss/_style.scss","assets/sass/05-blocks/search/_style.scss","assets/sass/05-blocks/separator/_style.scss","assets/sass/05-blocks/social-icons/_style.scss","assets/sass/05-blocks/table/_style.scss","assets/sass/05-blocks/tag-clould/_style.scss","assets/sass/05-blocks/verse/_style.scss","assets/sass/05-blocks/video/_style.scss","assets/sass/05-blocks/utilities/_font-sizes.scss","assets/sass/05-blocks/utilities/_style.scss","assets/sass/06-components/header.scss","assets/sass/06-components/footer.scss","assets/sass/06-components/single.scss","assets/sass/06-components/posts-and-pages.scss","assets/sass/06-components/entry.scss","assets/sass/06-components/archives.scss","assets/sass/06-components/404.scss","assets/sass/06-components/search.scss","assets/sass/06-components/comments.scss","assets/sass/06-components/navigation.scss","assets/sass/06-components/footer-navigation.scss","assets/sass/06-components/pagination.scss","assets/sass/06-components/widgets.scss","assets/sass/07-utilities/a11y.scss","assets/sass/07-utilities/color-palette.scss","assets/sass/07-utilities/measure.scss","assets/sass/07-utilities/ie.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;ACEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4EA;AC9EA;AAKA;AAEC;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;E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AAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;;AAOD;EACC;;AAEA;EACC;;;AAKH;EACC;EACA;;;AAGD;AAAA;AAGC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;;AAIF;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAKA;EAEC;AAAA;IAEC;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;AAAA;IACC;;EAGD;AAAA;IACC;;EAMD;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAEA;IACC;;EAKH;IACC;;EAEA;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAEA;IACC;;EAID;IACC;IACA;;;AAMJ;AAAA;EAEC;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;AAGA;EAEC;IACC;IACA;IACA;IACA;IACA;IACA;;EAEA;IACC;;EAIF;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;AAEA;EACC;;AAKA;EACC;;AAGD;EACC;;AAGD;EAEC;;AAGD;EAEC;EACA;EACA;;;AAKH;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;;AL7RA;EK4RD;IAGE;;;;ACrUH;EACC;EACA;EACA;;;AAGD;AACA;EACC;;;AAGD;AACA;AAAA;AAAA;AAAA;EAIC;;;AAGD;AACA;AAAA;AA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;;EADD;IACC;;EADD;IACC;;EADD;IACC;;EADD;IACC;;;AASJ;EACC;EACA;;AAEA;EACC;;AAIF;EACC;EACA;;;AC/KH;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;;AAIF;EACC;;;AAID;EACC;;;ACrDD;AAAA;EAEC;EACA;EACA;;AAGA;AAAA;EACC;EACA;;AAGD;AAAA;EACC;EACA;EACA;;;AAIF;EACC;;AAEA;EACC;;;AAIF;EACC;;AAEA;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;;;ACxCA;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;AxB0BA;EwB3BD;IAIE;;;AAGD;EACC;EACA;;AxBMD;EwBRA;IAKE;IACA;;;AAGD;EACC;;AAGD;EACC;;AxBNF;EwBYD;IAEE;IACA;;;AAKF;EACC;;;AC5CA;EACC;EACA;EACA;;AAIF;EACC;;AAQC;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAOF;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAQH;EACC;;AAEA;EACC;;AAWA;EAEC;;AAGD;EACC;EACA;;AAKH;EACC;;;ACnGH;EAEC;;AAGA;EACC;;AAID;EACC;;;ACXF;EACC;EACA;;;ACFD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAyCA;AAAA;AAAA;;AAvCA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;EACA;;AAMD;EACC;;AAKA;AAAA;EAEC;;AAIF;EAEC;;AAGD;EAEC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAEA;EAPD;IAQE;;;AAGD;EACC;;AAGD;EACC;EACA;;AAEA;EACC;;AAIF;AAAA;AAAA;EAGC;;AAGD;EAEC;;AAEA;EACC;;;AC/GH;EACC;;A7BuBA;E6BxBD;IAIE;;;;ACNH;EACC;EACA;EACA;EACA;EACA;EACA;AA8CA;AAAA;AAAA;;AA5CA;EACC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIC;;AAIF;EAGC;;AAID;EAGC;;AAMD;EACC;EACA;EACA;;AAGA;EACC;;AAID;EACC;EACA;;AAIF;EACC;;AAEA;EACC;;AAKF;EAEC;EACA;AAEA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;AAIF;AAAA;AAAA;AAAA;AAAA;EAGC;EACA;;A9BvGD;E8B6DD;IA8CE;;EAEA;IACC;;EAGD;IACC;IACA;;EAEA;IACC;;EAIF;IACC;IACA;;;A9B5HF;E8BmIA;IACC;IACA;;EAEA;IACC;;EAIF;IACC;IACA;;;;AClKH;EACC;;AAEA;EACC;;AAID;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAMD;EACC;;AAEA;EACC;;AAKF;EAUC;;AAIF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAKF;EACC;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;EACA;EACA;;AAID;EACC;EACA;EACA;;AAEA;EAEC;;AAKF;AAAA;EAEC;EACA;EACA;EACA;;AAID;EACC;EACA;;AAEA;EAEC;EACA;;;ACzGH;EACC;;AAIC;EACC;;AAIF;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;;AAIF;EACC;EACA;;AAEA;EACC;;AAEA;EACC;EACA;EACA;;AAOD;EACC;EACA;;AAGD;EACC;;AAOF;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;AAGA;EACC;EACA;EACA;;AAIF;EACC;;AAGA;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAIF;EACC;;;AAOL;EACC;;;ACpHD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;AAiBA;AAAA;AAAA;;AAfA;EACC;;AAKA;EACC;;AAGD;EACC;;AAOF;EACC;;AAKA;EAEC;;AAEA;EACC;;AAIF;EACC;EACA;EACA;EACA;;AAIF;EAIC;;;ACtDF;EACC;;AAKA;EACC;;AAGD;EAEC;;;ACdH;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;EAEC;EACA;;AAGD;AAAA;EACC;EACA;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;EAKC;;AAGD;AAAA;EACC;;AAEA;AAAA;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC;;;AAOF;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;AAAA;EAEC;EACA;;AAGD;EACC;EACA;EACA;EACA;;;AAIF;EACC;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAIF;EACC;;;AC9FD;EACC;EACA;;;ACJF;EACC;;;ACCA;EACC;EACA;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;;;ACXA;AAAA;EAEC;;AAGD;AAAA;EAEC;;AAGD;AAAA;AAAA;AAAA;AAAA;EAKC;;AAGD;AAAA;EAEC;EACA;;AAGD;AAAA;AAAA;AAAA;EAIC;EACA;;AAGD;AAAA;EAEC;EACA;EAGA;;AAGD;AAAA;EAEC;EACA;EAGA;;;AClDF;AAEA;AAAA;AAAA;AAQA;AAAA;AAAA;AAGA;AAEC;EACA;EAEA;;;AAKD;EACC;;;AxCEC;EwCID;AAEC;IACA;AAEA;IACA;IACA;;EAGD;IACC;;;AAIF;AAAA;AAAA;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;AAGA;EAEC;EACA;;;AAKD;EACC;;;AxC3CC;EwCiDD;AAEC;IACA;AAEA;IACA;;EAGD;IACC;;;AAKF;AAAA;EAEC;;;AAGD;AAAA;AAAA;AAGA;EACC;;;AAQD;AAAA;AAAA;AAGA;EACC;;;AAUD;EACC;;;AAGD;EACC;;;AAID;EACC;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;;AxChIC;EwC+HF;IAIE;;;;A3CxDF;A4CpGA;EAEC;EACA;EACA;EACA;;AAEA;EACC;;AzCiBA;EyCzBF;IAYE;;;AzCiDA;EyC7DF;IAgBE;;;;AAKF;EACC;EACA;;AAEA;EACC;EACA;EACA;;AzCHA;EyCJF;IAWE;IACA;;;;AAKF;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EAGC;;AAGD;EAEC;;AzCnCD;EyCaF;IA4BE;;;;AAKF;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAID;EAEC;;AAEA;EACC;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AzC5EA;EyCiFA;IACC;IACA;IACA;IACA;;;;AzC3FD;EyC0GG;IACC;IACA;IACA;IACA;;EAEA;IACC;;EAGD;IACC;;EAMJ;IACC;;EAEA;IACC;;EAEA;IACC;;EAIF;IACC;;EAKA;IACC;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;;EAEA;IAGC;IACA;IACA;;EAWH;IACC;IACA;;EAKH;IACC;;;ACrMH;EACC;EACA;;AAIA;EACC;;A1CYA;E0CPA;IACC;;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;AAAA;EAEC;;A1C2BA;E0C1CF;IAmBE;IACA;;EAEA;IACC;;EAGD;AAAA;IAEC;IACA;;EAGD;IACC;;;AAIF;EACC;;AAEA;EAGC;;AAGD;EACC;;AAGD;EACC;;AAEA;EACC;;AAID;EACC;;;AC/EJ;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;ACXD;EACC;;;AAID;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;;ACpBH;EAEC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAKH;EACC;;;AAGD;EACC;EACA;;;AAGD;AAAA;AAAA;AAIA;AAAA;EAEC;;;AAKA;EACC;;AAID;EAEC;EACA;;AASF;EAEC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAEA;EAEC;;AAGD;EACC;;;AAMH;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEC;EACA;;AAGD;EACC;;AAGD;AAAA;AAAA;AAAA;EAIC;;A7C1GA;E6CiFF;IA6BE;;EAEA;IACC;;EAGD;AAAA;IAEC;;;;AAKH;AAAA;AAAA;AAIA;EAEC;;AAOA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAIA;EACC;EACA;EACA;;AAEA;EACC;;AAMA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;;AC9MH;EACC;;;AAGD;AAAA;EAEC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAaE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAUF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAMD;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;AAQA;AAAA;AAAA;EACC;;;AAMJ;EACC;EACA;EACA;;;AClED;EACC;EACA;;;ACFD;EACC;;;ACDD;AAAA;AAAA;AAKC;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAMD;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;;AAMH;AAAA;AAAA;AAIA;AAAA;EAEC;EACA;;;AAGD;EACC;EACA;;AAIC;EACC;EACA;EACA;EACA;EACA;;;AAKH;AACA;EACC;;;AAGD;AAAA;AAAA;AAGA;EACC;EACA;;AAEA;EACC;EACA;;;AAKF;EACC;EACA;;AAEA;EACC;EACA;;;AjD/DA;EiDoEF;AAAA;IAGE;;;;AAIF;AAAA;AAAA;AAKC;EACC;EACA;;AjDlFA;EiDgFD;IAKE;IACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AAKF;EACC;EACA;EACA;;AAEA;EACC;;AjD1GD;EiD8EF;IAkCE;;EAEA;IACC;;;;AAKH;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;;;AAID;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EACC;;;AAIF;EACC;;;AAID;AAAA;EAEC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAEA;EACC;;;AAKH;EACC;;AAEA;EACC;;;AAIF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;AAAA;EAEC;;AAGD;AAAA;EAEC;EACA;;AjD3NA;EiDwND;AAAA;IAME;;;AAIF;AAAA;EAEC;EACA;;;AAIF;EACC;;AAEA;EACC;;AAGD;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;EAKC;EACA;EACA;EACA;EACA;;AAGD;EACC;;AjD3PA;EiDgQA;IACC;;EAGD;IAEC;;;;AC5RH;EACC;EACA;EACA;EACA;EACA;EACA;;AlDUC;EkDhBF;IASE;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAID;EACC;EACA;;AAGD;EACC;;AAQA;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAQL;EACC;EACA;EACA;;AAEA;EACC;;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAhBD;IAiBE;;;AlDtFD;EkDqED;IAqBE;IACA;IACA;IACA;IACA;;EAEA;IACC;IACA;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;;AlD9GF;EkDoHD;IAGE;IACA;IACA;;;AAGD;EACC;EACA;EACA;EACA;;AlDhID;EkDuIC;IACC;;;AlDlIF;EkDoDF;IAoFE;IACA;;EAGA;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAID;IACC;;EAID;IACC;;EAID;IACC;;EAEA;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AlDzLA;EkDiLD;IAWE;;EAEA;IACC;;;AAIF;EACC;EACA;EACA;;AlDhMD;EkD6LA;IAME;IACA;;EAEA;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AlD/NF;EkDmNA;IAgBE;;;AAGD;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;EACC;;AAIF;EACC;;AAMA;EACC;;AAGD;EACC;;AAMH;EAEC;;AAGC;EALF;IAMG;;;AlDnQH;EkD6PA;IAWE;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IAEC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;;EAGD;IACC;;EAGD;AAEC;IACA;AAEA;IACA;;EAEA;AAGC;IACA;AAEA;IACA;;EAIF;AAEC;IACA;AAEA;IACA;;EAEA;AAGC;IACA;AAEA;IACA;;;AAQL;EACC;;AlDjVA;EkDoVD;IAGE;IACA;;EAGA;IACC;;EAEA;IACC;IACA;;EAEA;IACC;;;AAQL;EACC;EACA;EACA;EACA;EACA;EACA;;AlDjXA;EkD2WD;IASE;IACA;IACA;IACA;;;AAGD;EACC;;AAGD;EAGC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAIF;AAAA;EAEC;EACA;;AAEA;AAAA;EACC;EACA;;AAKF;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AlDraD;EkD4aC;IACC;;;AlDnbF;EkD2bE;IACC;;;AAKF;EACC;EACA;EACA;EACA;;AlD/bF;EkD2bC;IAOE;IACA;;;AASH;EACC;;AlD7cD;EkDkdC;IACC;IACA;;EAGD;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;;AlD5eD;EkDofD;IACC;IACA;IACA;;;AAK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","file":"style.css"}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["assets/sass/01-settings/file-header.scss","assets/sass/style.scss","assets/sass/01-settings/global.scss","assets/sass/03-generic/normalize.scss","assets/sass/03-generic/breakpoints.scss","assets/sass/03-generic/vertical-margins.scss","assets/sass/03-generic/reset.scss","assets/sass/03-generic/clearings.scss","assets/sass/04-elements/blockquote.scss","assets/sass/04-elements/forms.scss","assets/sass/04-elements/media.scss","assets/sass/04-elements/misc.scss","assets/sass/04-elements/links.scss","assets/sass/05-blocks/audio/_style.scss","assets/sass/05-blocks/button/_style.scss","assets/sass/02-tools/mixins.scss","assets/sass/05-blocks/code/_style.scss","assets/sass/05-blocks/columns/_style.scss","assets/sass/05-blocks/cover/_style.scss","assets/sass/05-blocks/file/_style.scss","assets/sass/05-blocks/gallery/_style.scss","assets/sass/05-blocks/group/_style.scss","assets/sass/05-blocks/heading/_style.scss","assets/sass/05-blocks/image/_style.scss","assets/sass/05-blocks/latest-comments/_style.scss","assets/sass/05-blocks/latest-posts/_style.scss","assets/sass/05-blocks/legacy/_style.scss","assets/sass/05-blocks/list/_style.scss","assets/sass/05-blocks/media-text/_style.scss","assets/sass/05-blocks/navigation/_style.scss","assets/sass/05-blocks/paragraph/_style.scss","assets/sass/05-blocks/preformatted/_style.scss","assets/sass/05-blocks/pullquote/_style.scss","assets/sass/05-blocks/query-loop/_style.scss","assets/sass/05-blocks/quote/_style.scss","assets/sass/05-blocks/rss/_style.scss","assets/sass/05-blocks/search/_style.scss","assets/sass/05-blocks/separator/_style.scss","assets/sass/05-blocks/social-icons/_style.scss","assets/sass/05-blocks/table/_style.scss","assets/sass/05-blocks/tag-clould/_style.scss","assets/sass/05-blocks/verse/_style.scss","assets/sass/05-blocks/video/_style.scss","assets/sass/05-blocks/utilities/_font-sizes.scss","assets/sass/05-blocks/utilities/_style.scss","assets/sass/06-components/header.scss","assets/sass/06-components/footer.scss","assets/sass/06-components/single.scss","assets/sass/06-components/posts-and-pages.scss","assets/sass/06-components/entry.scss","assets/sass/06-components/archives.scss","assets/sass/06-components/404.scss","assets/sass/06-components/search.scss","assets/sass/06-components/comments.scss","assets/sass/06-components/navigation.scss","assets/sass/06-components/footer-navigation.scss","assets/sass/06-components/pagination.scss","assets/sass/06-components/widgets.scss","assets/sass/07-utilities/a11y.scss","assets/sass/07-utilities/color-palette.scss","assets/sass/07-utilities/measure.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;ACEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4EA;AC9EA;AAKA;AAEC;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;E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AAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;;AAOD;EACC;;AAEA;EACC;;;AAKH;EACC;EACA;;;AAGD;AAAA;AAGC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;;AAIF;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAKA;EAEC;AAAA;IAEC;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;AAAA;IACC;;EAGD;AAAA;IACC;;EAMD;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAEA;IACC;;EAKH;IACC;;EAEA;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAEA;IACC;;EAID;IACC;IACA;;;AAMJ;AAAA;EAEC;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;AAGA;EAEC;IACC;IACA;IACA;IACA;IACA;IACA;;EAEA;IACC;;EAIF;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;AAEA;EACC;;AAKA;EACC;;AAGD;EACC;;AAGD;EAEC;;AAGD;EAEC;EACA;EACA;;;AAKH;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;;AL7RA;EK4RD;IAGE;;;;ACrUH;EACC;EACA;EACA;;;AAGD;AACA;EACC;;;AAGD;AACA;AAAA;AAAA;AAAA;EAIC;;;AAGD;AACA;AAAA;AA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;;EADD;IACC;;EADD;IACC;;EADD;IACC;;EADD;IACC;;;AASJ;EACC;EACA;;AAEA;EACC;;AAIF;EACC;EACA;;;AC/KH;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;;AAIF;EACC;;;AAID;EACC;;;ACrDD;AAAA;EAEC;EACA;EACA;;AAGA;AAAA;EACC;EACA;;AAGD;AAAA;EACC;EACA;EACA;;;AAIF;EACC;;AAEA;EACC;;;AAIF;EACC;;AAEA;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;;;ACxCA;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;AxB0BA;EwB3BD;IAIE;;;AAGD;EACC;EACA;;AxBMD;EwBRA;IAKE;IACA;;;AAGD;EACC;;AAGD;EACC;;AxBNF;EwBYD;IAEE;IACA;;;AAKF;EACC;;;AC5CA;EACC;EACA;EACA;;AAIF;EACC;;AAQC;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAOF;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAQH;EACC;;AAEA;EACC;;AAWA;EAEC;;AAGD;EACC;EACA;;AAKH;EACC;;;ACnGH;EAEC;;AAGA;EACC;;AAID;EACC;;;ACXF;EACC;EACA;;;ACFD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAyCA;AAAA;AAAA;;AAvCA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;EACA;;AAMD;EACC;;AAKA;AAAA;EAEC;;AAIF;EAEC;;AAGD;EAEC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAEA;EAPD;IAQE;;;AAGD;EACC;;AAGD;EACC;EACA;;AAEA;EACC;;AAIF;AAAA;AAAA;EAGC;;AAGD;EAEC;;AAEA;EACC;;;AC/GH;EACC;;A7BuBA;E6BxBD;IAIE;;;;ACNH;EACC;EACA;EACA;EACA;EACA;EACA;AA8CA;AAAA;AAAA;;AA5CA;EACC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIC;;AAIF;EAGC;;AAID;EAGC;;AAMD;EACC;EACA;EACA;;AAGA;EACC;;AAID;EACC;EACA;;AAIF;EACC;;AAEA;EACC;;AAKF;EAEC;EACA;AAEA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;AAIF;AAAA;AAAA;AAAA;AAAA;EAGC;EACA;;A9BvGD;E8B6DD;IA8CE;;EAEA;IACC;;EAGD;IACC;IACA;;EAEA;IACC;;EAIF;IACC;IACA;;;A9B5HF;E8BmIA;IACC;IACA;;EAEA;IACC;;EAIF;IACC;IACA;;;;AClKH;EACC;;AAEA;EACC;;AAID;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAMD;EACC;;AAEA;EACC;;AAKF;EAUC;;AAIF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAKF;EACC;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;EACA;EACA;;AAID;EACC;EACA;EACA;;AAEA;EAEC;;AAKF;AAAA;EAEC;EACA;EACA;EACA;;AAID;EACC;EACA;;AAEA;EAEC;EACA;;;ACzGH;EACC;;AAIC;EACC;;AAIF;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;;AAIF;EACC;EACA;;AAEA;EACC;;AAEA;EACC;EACA;EACA;;AAOD;EACC;EACA;;AAGD;EACC;;AAOF;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;AAGA;EACC;EACA;EACA;;AAIF;EACC;;AAGA;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAIF;EACC;;;AAOL;EACC;;;ACpHD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;AAiBA;AAAA;AAAA;;AAfA;EACC;;AAKA;EACC;;AAGD;EACC;;AAOF;EACC;;AAKA;EAEC;;AAEA;EACC;;AAIF;EACC;EACA;EACA;EACA;;AAIF;EAIC;;;ACtDF;EACC;;AAKA;EACC;;AAGD;EAEC;;;ACdH;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;EAEC;EACA;;AAGD;AAAA;EACC;EACA;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;EAKC;;AAGD;AAAA;EACC;;AAEA;AAAA;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC;;;AAOF;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;AAAA;EAEC;EACA;;AAGD;EACC;EACA;EACA;EACA;;;AAIF;EACC;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAIF;EACC;;;AC9FD;EACC;EACA;;;ACJF;EACC;;;ACCA;EACC;EACA;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;;;ACXA;AAAA;EAEC;;AAGD;AAAA;EAEC;;AAGD;AAAA;AAAA;AAAA;AAAA;EAKC;;AAGD;AAAA;EAEC;EACA;;AAGD;AAAA;AAAA;AAAA;EAIC;EACA;;AAGD;AAAA;EAEC;EACA;EAGA;;AAGD;AAAA;EAEC;EACA;EAGA;;;AClDF;AAEA;AAAA;AAAA;AAQA;AAAA;AAAA;AAGA;AAEC;EACA;EAEA;;;AAKD;EACC;;;AxCEC;EwCID;AAEC;IACA;AAEA;IACA;IACA;;EAGD;IACC;;;AAIF;AAAA;AAAA;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;AAGA;EAEC;EACA;;;AAKD;EACC;;;AxC3CC;EwCiDD;AAEC;IACA;AAEA;IACA;;EAGD;IACC;;;AAKF;AAAA;EAEC;;;AAGD;AAAA;AAAA;AAGA;EACC;;;AAQD;AAAA;AAAA;AAGA;EACC;;;AAUD;EACC;;;AAGD;EACC;;;AAID;EACC;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;;AxChIC;EwC+HF;IAIE;;;;A3CxDF;A4CpGA;EAEC;EACA;EACA;EACA;;AAEA;EACC;;AzCiBA;EyCzBF;IAYE;;;AzCiDA;EyC7DF;IAgBE;;;;AAKF;EACC;EACA;;AAEA;EACC;EACA;EACA;;AzCHA;EyCJF;IAWE;IACA;;;;AAKF;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EAGC;;AAGD;EAEC;;AzCnCD;EyCaF;IA4BE;;;;AAKF;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAID;EAEC;;AAEA;EACC;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AzC5EA;EyCiFA;IACC;IACA;IACA;IACA;;;;AzC3FD;EyC0GG;IACC;IACA;IACA;IACA;;EAEA;IACC;;EAGD;IACC;;EAMJ;IACC;;EAEA;IACC;;EAEA;IACC;;EAIF;IACC;;EAKA;IACC;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;;EAEA;IAGC;IACA;IACA;;EAWH;IACC;IACA;;EAKH;IACC;;;ACrMH;EACC;EACA;;AAIA;EACC;;A1CYA;E0CPA;IACC;;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;AAAA;EAEC;;A1C2BA;E0C1CF;IAmBE;IACA;;EAEA;IACC;;EAGD;AAAA;IAEC;IACA;;EAGD;IACC;;;AAIF;EACC;;AAEA;EAGC;;AAGD;EACC;;AAGD;EACC;;AAEA;EACC;;AAID;EACC;;;AC/EJ;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;ACXD;EACC;;;AAID;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;;ACpBH;EAEC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAKH;EACC;;;AAGD;EACC;EACA;;;AAGD;AAAA;AAAA;AAIA;AAAA;EAEC;;;AAKA;EACC;;AAID;EAEC;EACA;;AASF;EAEC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAEA;EAEC;;AAGD;EACC;;;AAMH;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEC;EACA;;AAGD;EACC;;AAGD;AAAA;AAAA;AAAA;EAIC;;A7C1GA;E6CiFF;IA6BE;;EAEA;IACC;;EAGD;AAAA;IAEC;;;;AAKH;AAAA;AAAA;AAIA;EAEC;;AAOA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAIA;EACC;EACA;EACA;;AAEA;EACC;;AAMA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;;AC9MH;EACC;;;AAGD;AAAA;EAEC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAaE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAUF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAMD;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;AAQA;AAAA;AAAA;EACC;;;AAMJ;EACC;EACA;EACA;;;AClED;EACC;EACA;;;ACFD;EACC;;;ACDD;AAAA;AAAA;AAKC;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAMD;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;;AAMH;AAAA;AAAA;AAIA;AAAA;EAEC;EACA;;;AAGD;EACC;EACA;;AAIC;EACC;EACA;EACA;EACA;EACA;;;AAKH;AACA;EACC;;;AAGD;AAAA;AAAA;AAGA;EACC;EACA;;AAEA;EACC;EACA;;;AAKF;EACC;EACA;;AAEA;EACC;EACA;;;AjD/DA;EiDoEF;AAAA;IAGE;;;;AAIF;AAAA;AAAA;AAKC;EACC;EACA;;AjDlFA;EiDgFD;IAKE;IACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AAKF;EACC;EACA;EACA;;AAEA;EACC;;AjD1GD;EiD8EF;IAkCE;;EAEA;IACC;;;;AAKH;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;;;AAID;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EACC;;;AAIF;EACC;;;AAID;AAAA;EAEC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAEA;EACC;;;AAKH;EACC;;AAEA;EACC;;;AAIF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;AAAA;EAEC;;AAGD;AAAA;EAEC;EACA;;AjD3NA;EiDwND;AAAA;IAME;;;AAIF;AAAA;EAEC;EACA;;;AAIF;EACC;;AAEA;EACC;;AAGD;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;EAKC;EACA;EACA;EACA;EACA;;AAGD;EACC;;AjD3PA;EiDgQA;IACC;;EAGD;IAEC;;;;AC5RH;EACC;EACA;EACA;EACA;EACA;EACA;;AlDUC;EkDhBF;IASE;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAID;EACC;EACA;;AAGD;EACC;;AAQA;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAQL;EACC;EACA;EACA;;AAEA;EACC;;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAhBD;IAiBE;;;AlDtFD;EkDqED;IAqBE;IACA;IACA;IACA;IACA;;EAEA;IACC;IACA;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;;AlD9GF;EkDoHD;IAGE;IACA;IACA;;;AAGD;EACC;EACA;EACA;EACA;;AlDhID;EkDuIC;IACC;;;AlDlIF;EkDoDF;IAoFE;IACA;;EAGA;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAID;IACC;;EAID;IACC;;EAID;IACC;;EAEA;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AlDzLA;EkDiLD;IAWE;;EAEA;IACC;;;AAIF;EACC;EACA;EACA;;AlDhMD;EkD6LA;IAME;IACA;;EAEA;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AlD/NF;EkDmNA;IAgBE;;;AAGD;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;EACC;;AAIF;EACC;;AAMA;EACC;;AAGD;EACC;;AAMH;EAEC;;AAGC;EALF;IAMG;;;AlDnQH;EkD6PA;IAWE;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IAEC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;;EAGD;IACC;;EAGD;AAEC;IACA;AAEA;IACA;;EAEA;AAGC;IACA;AAEA;IACA;;EAIF;AAEC;IACA;AAEA;IACA;;EAEA;AAGC;IACA;AAEA;IACA;;;AAQL;EACC;;AlDjVA;EkDoVD;IAGE;IACA;;EAGA;IACC;;EAEA;IACC;IACA;;EAEA;IACC;;;AAQL;EACC;EACA;EACA;EACA;EACA;EACA;;AlDjXA;EkD2WD;IASE;IACA;IACA;IACA;;;AAGD;EACC;;AAGD;EAGC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAIF;AAAA;EAEC;EACA;;AAEA;AAAA;EACC;EACA;;AAKF;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AlDraD;EkD4aC;IACC;;;AlDnbF;EkD2bE;IACC;;;AAKF;EACC;EACA;EACA;EACA;;AlD/bF;EkD2bC;IAOE;IACA;;;AASH;EACC;;AlD7cD;EkDkdC;IACC;IACA;;EAGD;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;;AlD5eD;EkDofD;IACC;IACA;IACA;;;AAK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","file":"style.css"}
\ No newline at end of file
From 513c48ff1b9e6649c695d8306d76574fef8e4837 Mon Sep 17 00:00:00 2001
From: Weston Ruter
Date: Thu, 12 Feb 2026 21:07:57 +0000
Subject: [PATCH 034/145] Coding Standards: Use tabs for indentation and remove
trailing line whitespace in QUnit test.
Follow-up to [61625], [60516].
See #63126.
git-svn-id: https://develop.svn.wordpress.org/trunk@61629 602fd350-edb4-49c9-b593-d223f7449a82
---
tests/qunit/wp-admin/js/theme.js | 54 ++++++++++++++++----------------
1 file changed, 27 insertions(+), 27 deletions(-)
diff --git a/tests/qunit/wp-admin/js/theme.js b/tests/qunit/wp-admin/js/theme.js
index 468593e94aa23..c17a5d59d41f9 100644
--- a/tests/qunit/wp-admin/js/theme.js
+++ b/tests/qunit/wp-admin/js/theme.js
@@ -16,12 +16,12 @@
return;
}
- // Right arrow
+ // Right arrow
if ( event.keyCode === 39 ) {
this.nextTheme();
}
- // Left arrow
- else if ( event.keyCode === 37 ) {
+ // Left arrow
+ else if ( event.keyCode === 37 ) {
this.previousTheme();
}
}
@@ -36,54 +36,54 @@
QUnit.test( 'Arrow keys without modifiers', function( assert ) {
// Right arrow
- themePreview.keyEvent( $.Event( 'keydown', {
- keyCode: 39,
- shiftKey: false,
- ctrlKey: false
+ themePreview.keyEvent( $.Event( 'keydown', {
+ keyCode: 39,
+ shiftKey: false,
+ ctrlKey: false
}) );
assert.equal( nextCalled, 1, 'Right arrow triggers nextTheme' );
// Left arrow
- themePreview.keyEvent( $.Event( 'keydown', {
- keyCode: 37,
- shiftKey: false,
- ctrlKey: false
+ themePreview.keyEvent( $.Event( 'keydown', {
+ keyCode: 37,
+ shiftKey: false,
+ ctrlKey: false
}) );
assert.equal( prevCalled, 1, 'Left arrow triggers previousTheme' );
} );
QUnit.test( 'Shift+Arrow keys do nothing', function( assert ) {
// Shift + Right
- themePreview.keyEvent( $.Event( 'keydown', {
- keyCode: 39,
- shiftKey: true,
- ctrlKey: false
+ themePreview.keyEvent( $.Event( 'keydown', {
+ keyCode: 39,
+ shiftKey: true,
+ ctrlKey: false
}) );
assert.equal( nextCalled, 0, 'Shift+Right does nothing' );
// Shift + Left
- themePreview.keyEvent( $.Event( 'keydown', {
- keyCode: 37,
- shiftKey: true,
- ctrlKey: false
+ themePreview.keyEvent( $.Event( 'keydown', {
+ keyCode: 37,
+ shiftKey: true,
+ ctrlKey: false
}) );
assert.equal( prevCalled, 0, 'Shift+Left does nothing' );
} );
QUnit.test( 'Ctrl+Arrow keys do nothing', function( assert ) {
// Ctrl + Right
- themePreview.keyEvent( $.Event( 'keydown', {
- keyCode: 39,
- ctrlKey: true,
- shiftKey: false
+ themePreview.keyEvent( $.Event( 'keydown', {
+ keyCode: 39,
+ ctrlKey: true,
+ shiftKey: false
}) );
assert.equal( nextCalled, 0, 'Ctrl+Right does nothing' );
// Ctrl + Left
- themePreview.keyEvent( $.Event( 'keydown', {
- keyCode: 37,
- ctrlKey: true,
- shiftKey: false
+ themePreview.keyEvent( $.Event( 'keydown', {
+ keyCode: 37,
+ ctrlKey: true,
+ shiftKey: false
}) );
assert.equal( prevCalled, 0, 'Ctrl+Left does nothing' );
} );
From 53382085c45e6330cadb081153bae06e415dc6c7 Mon Sep 17 00:00:00 2001
From: Sergey Biryukov
Date: Thu, 12 Feb 2026 21:13:04 +0000
Subject: [PATCH 035/145] Twenty Nineteen: Remove a legacy WPCS annotation.
References:
* [https://github.com/WordPress/WordPress-Coding-Standards/pull/1580 WPCS: Deprecate use of the WPCS native whitelist comments]
* [https://github.com/WordPress/WordPress-Coding-Standards/pull/1908 WPCS: 3.0: Remove deprecated Sniff::has_whitelist_comment() method and all references to it]
Follow-up to [43808].
Props rodrigosprimo, mukesh27.
See #64627.
git-svn-id: https://develop.svn.wordpress.org/trunk@61630 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-content/themes/twentynineteen/inc/template-tags.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/wp-content/themes/twentynineteen/inc/template-tags.php b/src/wp-content/themes/twentynineteen/inc/template-tags.php
index 44e180785cb56..63e9f78e1b505 100644
--- a/src/wp-content/themes/twentynineteen/inc/template-tags.php
+++ b/src/wp-content/themes/twentynineteen/inc/template-tags.php
@@ -92,7 +92,7 @@ function twentynineteen_entry_footer() {
/* translators: Hidden accessibility text. */
__( 'Posted in', 'twentynineteen' ),
$categories_list
- ); // WPCS: XSS OK.
+ );
}
$tags_list = get_the_tag_list( '', wp_get_list_item_separator() );
@@ -104,7 +104,7 @@ function twentynineteen_entry_footer() {
/* translators: Hidden accessibility text. */
__( 'Tags:', 'twentynineteen' ),
$tags_list
- ); // WPCS: XSS OK.
+ );
}
}
From d0a95382fe57a7f7452e9e031dd713e285898464 Mon Sep 17 00:00:00 2001
From: ramonopoly
Date: Fri, 13 Feb 2026 00:55:41 +0000
Subject: [PATCH 036/145] Block Supports: Add presets support for dimensions
block supports
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This commit enables dimension size presets to theme.json for block supports such as width, height and min-height.
This opens up the ability to leverage a defined set of preset values for dimensions block supports, alleviating the need for users to know and manually set the same value across multiple blocks.
Props aaronrobertshaw, ramonopoly, andrewserong.
Fixes #64413.
git-svn-id: https://develop.svn.wordpress.org/trunk@61631 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/class-wp-theme-json.php | 10 ++++++++++
.../style-engine/class-wp-style-engine.php | 8 +++++++-
.../tests/style-engine/styleEngine.php | 17 ++++++++++++++++
tests/phpunit/tests/theme/wpThemeJson.php | 20 +++++++++++++++++--
4 files changed, 52 insertions(+), 3 deletions(-)
diff --git a/src/wp-includes/class-wp-theme-json.php b/src/wp-includes/class-wp-theme-json.php
index e5cd59ca73878..427a9046f1e68 100644
--- a/src/wp-includes/class-wp-theme-json.php
+++ b/src/wp-includes/class-wp-theme-json.php
@@ -215,6 +215,15 @@ class WP_Theme_JSON {
'classes' => array(),
'properties' => array( 'border-radius' ),
),
+ array(
+ 'path' => array( 'dimensions', 'dimensionSizes' ),
+ 'prevent_override' => false,
+ 'use_default_names' => false,
+ 'value_key' => 'size',
+ 'css_vars' => '--wp--preset--dimension--$slug',
+ 'classes' => array(),
+ 'properties' => array( 'width', 'height', 'min-height' ),
+ ),
);
/**
@@ -438,6 +447,7 @@ class WP_Theme_JSON {
'aspectRatio' => null,
'aspectRatios' => null,
'defaultAspectRatios' => null,
+ 'dimensionSizes' => null,
'height' => null,
'minHeight' => null,
'width' => null,
diff --git a/src/wp-includes/style-engine/class-wp-style-engine.php b/src/wp-includes/style-engine/class-wp-style-engine.php
index 101e8b74385de..3b8ffdc61c888 100644
--- a/src/wp-includes/style-engine/class-wp-style-engine.php
+++ b/src/wp-includes/style-engine/class-wp-style-engine.php
@@ -215,6 +215,9 @@ final class WP_Style_Engine {
'default' => 'height',
),
'path' => array( 'dimensions', 'height' ),
+ 'css_vars' => array(
+ 'dimension' => '--wp--preset--dimension--$slug',
+ ),
),
'minHeight' => array(
'property_keys' => array(
@@ -222,7 +225,7 @@ final class WP_Style_Engine {
),
'path' => array( 'dimensions', 'minHeight' ),
'css_vars' => array(
- 'spacing' => '--wp--preset--spacing--$slug',
+ 'dimension' => '--wp--preset--dimension--$slug',
),
),
'width' => array(
@@ -230,6 +233,9 @@ final class WP_Style_Engine {
'default' => 'width',
),
'path' => array( 'dimensions', 'width' ),
+ 'css_vars' => array(
+ 'dimension' => '--wp--preset--dimension--$slug',
+ ),
),
),
'spacing' => array(
diff --git a/tests/phpunit/tests/style-engine/styleEngine.php b/tests/phpunit/tests/style-engine/styleEngine.php
index 4e85ecad52299..f6e0444faf74b 100644
--- a/tests/phpunit/tests/style-engine/styleEngine.php
+++ b/tests/phpunit/tests/style-engine/styleEngine.php
@@ -119,6 +119,23 @@ public function data_wp_style_engine_get_styles() {
),
),
+ 'inline_valid_dimension_preset_style' => array(
+ 'block_styles' => array(
+ 'dimensions' => array(
+ 'width' => 'var:preset|dimension|large',
+ 'height' => 'var:preset|dimension|modestly-small',
+ ),
+ ),
+ 'options' => null,
+ 'expected_output' => array(
+ 'css' => 'height:var(--wp--preset--dimension--modestly-small);width:var(--wp--preset--dimension--large);',
+ 'declarations' => array(
+ 'height' => 'var(--wp--preset--dimension--modestly-small)',
+ 'width' => 'var(--wp--preset--dimension--large)',
+ ),
+ ),
+ ),
+
'inline_valid_box_model_style' => array(
'block_styles' => array(
'spacing' => array(
diff --git a/tests/phpunit/tests/theme/wpThemeJson.php b/tests/phpunit/tests/theme/wpThemeJson.php
index 1b591c45e57cb..863201bb64fc4 100644
--- a/tests/phpunit/tests/theme/wpThemeJson.php
+++ b/tests/phpunit/tests/theme/wpThemeJson.php
@@ -424,6 +424,20 @@ public function test_get_stylesheet() {
),
),
),
+ 'dimensions' => array(
+ 'dimensionSizes' => array(
+ array(
+ 'name' => 'Small',
+ 'slug' => 'small',
+ 'size' => '100px',
+ ),
+ array(
+ 'name' => 'Large',
+ 'slug' => 'large',
+ 'size' => '200px',
+ ),
+ ),
+ ),
'color' => array(
'text' => 'value',
'palette' => array(
@@ -514,6 +528,8 @@ public function test_get_stylesheet() {
),
'dimensions' => array(
'minHeight' => '50vh',
+ 'height' => '500px',
+ 'width' => 'var:preset|dimension|large',
),
'elements' => array(
'link' => array(
@@ -590,8 +606,8 @@ public function test_get_stylesheet() {
)
);
- $variables = ':root{--wp--preset--color--grey: grey;--wp--preset--gradient--custom-gradient: linear-gradient(135deg,rgba(0,0,0) 0%,rgb(0,0,0) 100%);--wp--preset--font-size--small: 14px;--wp--preset--font-size--big: 41px;--wp--preset--font-family--arial: Arial, serif;--wp--preset--border-radius--small: 2px;--wp--preset--border-radius--medium: 4px;}.wp-block-group{--wp--custom--base-font: 16;--wp--custom--line-height--small: 1.2;--wp--custom--line-height--medium: 1.4;--wp--custom--line-height--large: 1.8;}';
- $styles = ':where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){margin-left: auto !important;margin-right: auto !important;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{color: var(--wp--preset--color--grey);}a:where(:not(.wp-element-button)){background-color: #333;color: #111;}:root :where(.wp-element-button, .wp-block-button__link){box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.66);}:root :where(.wp-block-cover){min-height: unset;aspect-ratio: 16/9;border-radius: var(--wp--preset--border-radius--small);}:root :where(.wp-block-group){background: var(--wp--preset--gradient--custom-gradient);border-radius: 10px;min-height: 50vh;padding: 24px;}:root :where(.wp-block-group a:where(:not(.wp-element-button))){color: #111;}:root :where(.wp-block-heading){color: #123456;}:root :where(.wp-block-heading a:where(:not(.wp-element-button))){background-color: #333;color: #111;font-size: 60px;}:root :where(.wp-block-media-text){text-align: center;}:root :where(.wp-block-post-date){color: #123456;}:root :where(.wp-block-post-date a:where(:not(.wp-element-button))){background-color: #777;color: #555;}:root :where(.wp-block-post-excerpt){column-count: 2;}:root :where(.wp-block-image){margin-bottom: 30px;}:root :where(.wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder){border-top-left-radius: 10px;border-bottom-right-radius: 1em;}:root :where(.wp-block-image img, .wp-block-image .components-placeholder){filter: var(--wp--preset--duotone--custom-duotone);}';
+ $variables = ':root{--wp--preset--color--grey: grey;--wp--preset--gradient--custom-gradient: linear-gradient(135deg,rgba(0,0,0) 0%,rgb(0,0,0) 100%);--wp--preset--font-size--small: 14px;--wp--preset--font-size--big: 41px;--wp--preset--font-family--arial: Arial, serif;--wp--preset--border-radius--small: 2px;--wp--preset--border-radius--medium: 4px;--wp--preset--dimension--small: 100px;--wp--preset--dimension--large: 200px;}.wp-block-group{--wp--custom--base-font: 16;--wp--custom--line-height--small: 1.2;--wp--custom--line-height--medium: 1.4;--wp--custom--line-height--large: 1.8;}';
+ $styles = ':where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){margin-left: auto !important;margin-right: auto !important;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{color: var(--wp--preset--color--grey);}a:where(:not(.wp-element-button)){background-color: #333;color: #111;}:root :where(.wp-element-button, .wp-block-button__link){box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.66);}:root :where(.wp-block-cover){min-height: unset;aspect-ratio: 16/9;border-radius: var(--wp--preset--border-radius--small);}:root :where(.wp-block-group){background: var(--wp--preset--gradient--custom-gradient);border-radius: 10px;min-height: 50vh;padding: 24px;height: 500px;width: var(--wp--preset--dimension--large);}:root :where(.wp-block-group a:where(:not(.wp-element-button))){color: #111;}:root :where(.wp-block-heading){color: #123456;}:root :where(.wp-block-heading a:where(:not(.wp-element-button))){background-color: #333;color: #111;font-size: 60px;}:root :where(.wp-block-media-text){text-align: center;}:root :where(.wp-block-post-date){color: #123456;}:root :where(.wp-block-post-date a:where(:not(.wp-element-button))){background-color: #777;color: #555;}:root :where(.wp-block-post-excerpt){column-count: 2;}:root :where(.wp-block-image){margin-bottom: 30px;}:root :where(.wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder){border-top-left-radius: 10px;border-bottom-right-radius: 1em;}:root :where(.wp-block-image img, .wp-block-image .components-placeholder){filter: var(--wp--preset--duotone--custom-duotone);}';
$presets = '.has-grey-color{color: var(--wp--preset--color--grey) !important;}.has-grey-background-color{background-color: var(--wp--preset--color--grey) !important;}.has-grey-border-color{border-color: var(--wp--preset--color--grey) !important;}.has-custom-gradient-gradient-background{background: var(--wp--preset--gradient--custom-gradient) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-big-font-size{font-size: var(--wp--preset--font-size--big) !important;}.has-arial-font-family{font-family: var(--wp--preset--font-family--arial) !important;}';
$all = $variables . $styles . $presets;
From d082b28af2f2cd16601a9d480ab985ed8e5d7020 Mon Sep 17 00:00:00 2001
From: ramonopoly
Date: Fri, 13 Feb 2026 01:51:03 +0000
Subject: [PATCH 037/145] Block Supports: Add text indent to typography
supports
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This commit adds CSS text-indent support for paragraph blocks with traditional typography conventions - subsequent paragraphs get first-line indented in LTR languages, with an option to indent all paragraphs (default for RTL languages).
Text indentation is a fundamental typography feature. Traditional print typography conventions dictate that only subsequent paragraphs (not the first) should have their first line indented in LTR languages, while RTL languages typically indent all paragraphs. This feature enables proper typographic styling that matches publishing standards.
Props aaronrobertshaw, ramonopoly, andrewserong, wildworks, matveb, skorasaurus, greenshady, kjellr.
Fixes #64326.
git-svn-id: https://develop.svn.wordpress.org/trunk@61632 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/block-supports/typography.php | 10 ++++
src/wp-includes/class-wp-theme-json.php | 54 +++++++++++++++++++
.../style-engine/class-wp-style-engine.php | 7 +++
tests/phpunit/tests/theme/wpThemeJson.php | 3 +-
4 files changed, 73 insertions(+), 1 deletion(-)
diff --git a/src/wp-includes/block-supports/typography.php b/src/wp-includes/block-supports/typography.php
index b79738f757e1e..4f8e32571af73 100644
--- a/src/wp-includes/block-supports/typography.php
+++ b/src/wp-includes/block-supports/typography.php
@@ -11,6 +11,7 @@
*
* @since 5.6.0
* @since 6.3.0 Added support for text-columns.
+ * @since 7.0.0 Added support for text-indent.
* @access private
*
* @param WP_Block_Type $block_type Block Type.
@@ -35,6 +36,7 @@ function wp_register_typography_support( $block_type ) {
$has_text_columns_support = $typography_supports['textColumns'] ?? false;
$has_text_decoration_support = $typography_supports['__experimentalTextDecoration'] ?? false;
$has_text_transform_support = $typography_supports['__experimentalTextTransform'] ?? false;
+ $has_text_indent_support = $typography_supports['textIndent'] ?? false;
$has_writing_mode_support = $typography_supports['__experimentalWritingMode'] ?? false;
$has_typography_support = $has_font_family_support
@@ -47,6 +49,7 @@ function wp_register_typography_support( $block_type ) {
|| $has_text_columns_support
|| $has_text_decoration_support
|| $has_text_transform_support
+ || $has_text_indent_support
|| $has_writing_mode_support;
if ( ! $block_type->attributes ) {
@@ -80,6 +83,7 @@ function wp_register_typography_support( $block_type ) {
* @since 5.6.0
* @since 6.1.0 Used the style engine to generate CSS and classnames.
* @since 6.3.0 Added support for text-columns.
+ * @since 7.0.0 Added support for text-indent.
* @access private
*
* @param WP_Block_Type $block_type Block type.
@@ -110,6 +114,7 @@ function wp_apply_typography_support( $block_type, $block_attributes ) {
$has_text_columns_support = $typography_supports['textColumns'] ?? false;
$has_text_decoration_support = $typography_supports['__experimentalTextDecoration'] ?? false;
$has_text_transform_support = $typography_supports['__experimentalTextTransform'] ?? false;
+ $has_text_indent_support = $typography_supports['textIndent'] ?? false;
$has_writing_mode_support = $typography_supports['__experimentalWritingMode'] ?? false;
// Whether to skip individual block support features.
@@ -123,6 +128,7 @@ function wp_apply_typography_support( $block_type, $block_attributes ) {
$should_skip_text_decoration = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'textDecoration' );
$should_skip_text_transform = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'textTransform' );
$should_skip_letter_spacing = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'letterSpacing' );
+ $should_skip_text_indent = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'textIndent' );
$should_skip_writing_mode = wp_should_skip_block_supports_serialization( $block_type, 'typography', 'writingMode' );
$typography_block_styles = array();
@@ -222,6 +228,10 @@ function wp_apply_typography_support( $block_type, $block_attributes ) {
$typography_block_styles['writingMode'] = $block_attributes['style']['typography']['writingMode'] ?? null;
}
+ if ( $has_text_indent_support && ! $should_skip_text_indent && isset( $block_attributes['style']['typography']['textIndent'] ) ) {
+ $typography_block_styles['textIndent'] = $block_attributes['style']['typography']['textIndent'] ?? null;
+ }
+
$attributes = array();
$classnames = array();
$styles = wp_style_engine_get_styles(
diff --git a/src/wp-includes/class-wp-theme-json.php b/src/wp-includes/class-wp-theme-json.php
index 427a9046f1e68..0fc6eb0ac50bc 100644
--- a/src/wp-includes/class-wp-theme-json.php
+++ b/src/wp-includes/class-wp-theme-json.php
@@ -247,6 +247,7 @@ class WP_Theme_JSON {
* @since 6.6.0 Added `background-[image|position|repeat|size]` properties.
* @since 6.7.0 Added `background-attachment` property.
* @since 7.0.0 Added `dimensions.width` and `dimensions.height`.
+ * Added `text-indent` property.
* @var array
*/
const PROPERTIES_METADATA = array(
@@ -309,6 +310,7 @@ class WP_Theme_JSON {
'--wp--style--root--padding-left' => array( 'spacing', 'padding', 'left' ),
'text-decoration' => array( 'typography', 'textDecoration' ),
'text-transform' => array( 'typography', 'textTransform' ),
+ 'text-indent' => array( 'typography', 'textIndent' ),
'filter' => array( 'filter', 'duotone' ),
'box-shadow' => array( 'shadow' ),
'height' => array( 'dimensions', 'height' ),
@@ -409,6 +411,7 @@ class WP_Theme_JSON {
* @since 6.9.0 Added support for `border.radiusSizes`.
* @since 7.0.0 Added type markers to the schema for boolean values.
* Added support for `dimensions.width` and `dimensions.height`.
+ * Added support for `typography.textIndent`.
* @var array
*/
const VALID_SETTINGS = array(
@@ -494,6 +497,7 @@ class WP_Theme_JSON {
'textAlign' => null,
'textColumns' => null,
'textDecoration' => null,
+ 'textIndent' => null,
'textTransform' => null,
'writingMode' => null,
),
@@ -601,6 +605,7 @@ class WP_Theme_JSON {
'textAlign' => null,
'textColumns' => null,
'textDecoration' => null,
+ 'textIndent' => null,
'textTransform' => null,
'writingMode' => null,
),
@@ -2749,6 +2754,48 @@ private static function update_separator_declarations( $declarations ) {
return $declarations;
}
+ /**
+ * Updates the text indent selector for paragraph blocks based on the textIndent setting.
+ *
+ * The textIndent setting can be 'subsequent' (default), 'all', or false.
+ * When set to 'all', the selector should be '.wp-block-paragraph' instead of
+ * '.wp-block-paragraph + .wp-block-paragraph' to apply indent to all paragraphs.
+ *
+ * @since 7.0.0
+ *
+ * @param array $feature_declarations The feature declarations keyed by selector.
+ * @param array $settings The theme.json settings.
+ * @param string $block_name The block name being processed.
+ * @return array The updated feature declarations.
+ */
+ private static function update_paragraph_text_indent_selector( $feature_declarations, $settings, $block_name ) {
+ if ( 'core/paragraph' !== $block_name ) {
+ return $feature_declarations;
+ }
+
+ // Check block-level settings first, then fall back to global settings.
+ $block_settings = $settings['blocks']['core/paragraph'] ?? null;
+ $text_indent_setting = $block_settings['typography']['textIndent']
+ ?? $settings['typography']['textIndent']
+ ?? 'subsequent';
+
+ if ( 'all' !== $text_indent_setting ) {
+ return $feature_declarations;
+ }
+
+ // Look for the text indent selector and replace it.
+ $old_selector = '.wp-block-paragraph + .wp-block-paragraph';
+ $new_selector = '.wp-block-paragraph';
+
+ if ( isset( $feature_declarations[ $old_selector ] ) ) {
+ $declarations = $feature_declarations[ $old_selector ];
+ unset( $feature_declarations[ $old_selector ] );
+ $feature_declarations[ $new_selector ] = $declarations;
+ }
+
+ return $feature_declarations;
+ }
+
/**
* An internal method to get the block nodes from a theme.json file.
*
@@ -2910,6 +2957,10 @@ public function get_styles_for_block( $block_metadata ) {
$feature_declarations = static::get_feature_declarations_for_node( $block_metadata, $node );
$is_root_selector = static::ROOT_BLOCK_SELECTOR === $selector;
+ // Update text indent selector for paragraph blocks based on the textIndent setting.
+ $block_name = $block_metadata['name'] ?? null;
+ $feature_declarations = static::update_paragraph_text_indent_selector( $feature_declarations, $settings, $block_name );
+
// If there are style variations, generate the declarations for them, including any feature selectors the block may have.
$style_variation_declarations = array();
$style_variation_custom_css = array();
@@ -2922,6 +2973,9 @@ public function get_styles_for_block( $block_metadata ) {
// Generate any feature/subfeature style declarations for the current style variation.
$variation_declarations = static::get_feature_declarations_for_node( $block_metadata, $style_variation_node );
+ // Update text indent selector for paragraph blocks based on the textIndent setting.
+ $variation_declarations = static::update_paragraph_text_indent_selector( $variation_declarations, $settings, $block_name );
+
// Combine selectors with style variation's selector and add to overall style variation declarations.
foreach ( $variation_declarations as $current_selector => $new_declarations ) {
/*
diff --git a/src/wp-includes/style-engine/class-wp-style-engine.php b/src/wp-includes/style-engine/class-wp-style-engine.php
index 3b8ffdc61c888..be52699c642eb 100644
--- a/src/wp-includes/style-engine/class-wp-style-engine.php
+++ b/src/wp-includes/style-engine/class-wp-style-engine.php
@@ -26,6 +26,7 @@
* @since 6.5.0 Added support for background.backgroundPosition,
* background.backgroundRepeat and dimensions.aspectRatio.
* @since 6.7.0 Added support for typography.writingMode.
+ * @since 7.0.0 Added support for typography.textIndent.
*/
#[AllowDynamicProperties]
final class WP_Style_Engine {
@@ -315,6 +316,12 @@ final class WP_Style_Engine {
),
'path' => array( 'typography', 'textDecoration' ),
),
+ 'textIndent' => array(
+ 'property_keys' => array(
+ 'default' => 'text-indent',
+ ),
+ 'path' => array( 'typography', 'textIndent' ),
+ ),
'textTransform' => array(
'property_keys' => array(
'default' => 'text-transform',
diff --git a/tests/phpunit/tests/theme/wpThemeJson.php b/tests/phpunit/tests/theme/wpThemeJson.php
index 863201bb64fc4..95de67c69f98c 100644
--- a/tests/phpunit/tests/theme/wpThemeJson.php
+++ b/tests/phpunit/tests/theme/wpThemeJson.php
@@ -579,6 +579,7 @@ public function test_get_stylesheet() {
'core/post-excerpt' => array(
'typography' => array(
'textColumns' => 2,
+ 'textIndent' => '2em',
),
),
'core/image' => array(
@@ -607,7 +608,7 @@ public function test_get_stylesheet() {
);
$variables = ':root{--wp--preset--color--grey: grey;--wp--preset--gradient--custom-gradient: linear-gradient(135deg,rgba(0,0,0) 0%,rgb(0,0,0) 100%);--wp--preset--font-size--small: 14px;--wp--preset--font-size--big: 41px;--wp--preset--font-family--arial: Arial, serif;--wp--preset--border-radius--small: 2px;--wp--preset--border-radius--medium: 4px;--wp--preset--dimension--small: 100px;--wp--preset--dimension--large: 200px;}.wp-block-group{--wp--custom--base-font: 16;--wp--custom--line-height--small: 1.2;--wp--custom--line-height--medium: 1.4;--wp--custom--line-height--large: 1.8;}';
- $styles = ':where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){margin-left: auto !important;margin-right: auto !important;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{color: var(--wp--preset--color--grey);}a:where(:not(.wp-element-button)){background-color: #333;color: #111;}:root :where(.wp-element-button, .wp-block-button__link){box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.66);}:root :where(.wp-block-cover){min-height: unset;aspect-ratio: 16/9;border-radius: var(--wp--preset--border-radius--small);}:root :where(.wp-block-group){background: var(--wp--preset--gradient--custom-gradient);border-radius: 10px;min-height: 50vh;padding: 24px;height: 500px;width: var(--wp--preset--dimension--large);}:root :where(.wp-block-group a:where(:not(.wp-element-button))){color: #111;}:root :where(.wp-block-heading){color: #123456;}:root :where(.wp-block-heading a:where(:not(.wp-element-button))){background-color: #333;color: #111;font-size: 60px;}:root :where(.wp-block-media-text){text-align: center;}:root :where(.wp-block-post-date){color: #123456;}:root :where(.wp-block-post-date a:where(:not(.wp-element-button))){background-color: #777;color: #555;}:root :where(.wp-block-post-excerpt){column-count: 2;}:root :where(.wp-block-image){margin-bottom: 30px;}:root :where(.wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder){border-top-left-radius: 10px;border-bottom-right-radius: 1em;}:root :where(.wp-block-image img, .wp-block-image .components-placeholder){filter: var(--wp--preset--duotone--custom-duotone);}';
+ $styles = ':where(body) { margin: 0; }.wp-site-blocks > .alignleft { float: left; margin-right: 2em; }.wp-site-blocks > .alignright { float: right; margin-left: 2em; }.wp-site-blocks > .aligncenter { justify-content: center; margin-left: auto; margin-right: auto; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}.is-layout-flow > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-flow > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-flow > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > .alignleft{float: left;margin-inline-start: 0;margin-inline-end: 2em;}.is-layout-constrained > .alignright{float: right;margin-inline-start: 2em;margin-inline-end: 0;}.is-layout-constrained > .aligncenter{margin-left: auto !important;margin-right: auto !important;}.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)){margin-left: auto !important;margin-right: auto !important;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{color: var(--wp--preset--color--grey);}a:where(:not(.wp-element-button)){background-color: #333;color: #111;}:root :where(.wp-element-button, .wp-block-button__link){box-shadow: 10px 10px 5px 0px rgba(0,0,0,0.66);}:root :where(.wp-block-cover){min-height: unset;aspect-ratio: 16/9;border-radius: var(--wp--preset--border-radius--small);}:root :where(.wp-block-group){background: var(--wp--preset--gradient--custom-gradient);border-radius: 10px;min-height: 50vh;padding: 24px;height: 500px;width: var(--wp--preset--dimension--large);}:root :where(.wp-block-group a:where(:not(.wp-element-button))){color: #111;}:root :where(.wp-block-heading){color: #123456;}:root :where(.wp-block-heading a:where(:not(.wp-element-button))){background-color: #333;color: #111;font-size: 60px;}:root :where(.wp-block-media-text){text-align: center;}:root :where(.wp-block-post-date){color: #123456;}:root :where(.wp-block-post-date a:where(:not(.wp-element-button))){background-color: #777;color: #555;}:root :where(.wp-block-post-excerpt){column-count: 2;text-indent: 2em;}:root :where(.wp-block-image){margin-bottom: 30px;}:root :where(.wp-block-image img, .wp-block-image .wp-block-image__crop-area, .wp-block-image .components-placeholder){border-top-left-radius: 10px;border-bottom-right-radius: 1em;}:root :where(.wp-block-image img, .wp-block-image .components-placeholder){filter: var(--wp--preset--duotone--custom-duotone);}';
$presets = '.has-grey-color{color: var(--wp--preset--color--grey) !important;}.has-grey-background-color{background-color: var(--wp--preset--color--grey) !important;}.has-grey-border-color{border-color: var(--wp--preset--color--grey) !important;}.has-custom-gradient-gradient-background{background: var(--wp--preset--gradient--custom-gradient) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-big-font-size{font-size: var(--wp--preset--font-size--big) !important;}.has-arial-font-family{font-family: var(--wp--preset--font-family--arial) !important;}';
$all = $variables . $styles . $presets;
From d3b793f41ba094009d4267d35f34f982310b1686 Mon Sep 17 00:00:00 2001
From: Peter Wilson
Date: Fri, 13 Feb 2026 02:41:07 +0000
Subject: [PATCH 038/145] Users: Ensure switching to current user doesn't
reinstantiate current user.
Prevent `wp_set_current_user()` from reinstantiating the current user when the user ID is passed as a string, eg `wp_set_current_user( (string) get_current_user_id() )`.
This restores the function's previous behaviour of returning early in the event the IDs loosely match.
Follow up to r57882.
Props westonruter, peterwilsoncc.
Fixes #64628.
git-svn-id: https://develop.svn.wordpress.org/trunk@61633 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/pluggable.php | 2 +-
tests/phpunit/tests/user/wpSetCurrentUser.php | 30 +++++++++++++++++++
2 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/src/wp-includes/pluggable.php b/src/wp-includes/pluggable.php
index 2dbdd584b385d..03593ea3e64e6 100644
--- a/src/wp-includes/pluggable.php
+++ b/src/wp-includes/pluggable.php
@@ -30,7 +30,7 @@ function wp_set_current_user( $id, $name = '' ) {
// If `$id` matches the current user, there is nothing to do.
if ( isset( $current_user )
&& ( $current_user instanceof WP_User )
- && ( $id === $current_user->ID )
+ && ( (int) $id === $current_user->ID )
&& ( null !== $id )
) {
return $current_user;
diff --git a/tests/phpunit/tests/user/wpSetCurrentUser.php b/tests/phpunit/tests/user/wpSetCurrentUser.php
index bebee961ececc..868b3bc71b38a 100644
--- a/tests/phpunit/tests/user/wpSetCurrentUser.php
+++ b/tests/phpunit/tests/user/wpSetCurrentUser.php
@@ -57,4 +57,34 @@ public function test_should_set_by_name_if_id_is_null() {
$this->assertSame( $user, wp_get_current_user() );
$this->assertSame( self::$user_id2, get_current_user_id() );
}
+
+ /**
+ * Ensure user switching doesn't occur for the same user, even if type is non-int.
+ *
+ * @ticket 64628
+ *
+ * @dataProvider data_should_not_switch_to_same_user_type_equivalency
+ */
+ public function test_should_not_switch_to_same_user_type_equivalency( string $type_function ) {
+ wp_set_current_user( self::$user_id );
+ $this->assertSame( self::$user_id, get_current_user_id(), "Current user's ID should match the ID of the user switched to." );
+
+ $action = new MockAction();
+ add_action( 'set_current_user', array( $action, 'action' ) );
+
+ wp_set_current_user( $type_function( self::$user_id ) );
+ $this->assertSame( 0, $action->get_call_count(), 'set_current_user should not be fired when switching to the same user.' );
+ }
+
+ /**
+ * Data provider for test_should_not_switch_to_same_user_type_equivalency.
+ *
+ * @return array[] Data provider.
+ */
+ public function data_should_not_switch_to_same_user_type_equivalency(): array {
+ return array(
+ 'integer' => array( 'type_function' => 'intval' ),
+ 'string' => array( 'type_function' => 'strval' ),
+ );
+ }
}
From 7b3ea1a9a970cc8ec6d45e22a9411f45b9f7aa21 Mon Sep 17 00:00:00 2001
From: Aki Hamano
Date: Fri, 13 Feb 2026 11:48:09 +0000
Subject: [PATCH 039/145] Administration: Update Site Editor URLs to use
path-based format.
Updates Site Editor URLs from legacy query parameters to the new path-based p parameter format.
Props jabir20, phpbits, sainathpoojary, SirLouen, westonruter, wildworks.
Fixes #63110.
git-svn-id: https://develop.svn.wordpress.org/trunk@61634 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-admin/includes/dashboard.php | 2 +-
src/wp-includes/post.php | 10 ++++------
2 files changed, 5 insertions(+), 7 deletions(-)
diff --git a/src/wp-admin/includes/dashboard.php b/src/wp-admin/includes/dashboard.php
index bba47a1c3442d..214b6c22c686a 100644
--- a/src/wp-admin/includes/dashboard.php
+++ b/src/wp-admin/includes/dashboard.php
@@ -2129,7 +2129,7 @@ function wp_welcome_panel() {
-
+
diff --git a/src/wp-includes/post.php b/src/wp-includes/post.php
index 4382aa003ff62..8ccc4bb36df2a 100644
--- a/src/wp-includes/post.php
+++ b/src/wp-includes/post.php
@@ -359,9 +359,8 @@ function create_initial_post_types() {
$template_edit_link = 'site-editor.php?' . build_query(
array(
- 'postType' => '%s',
- 'postId' => '%s',
- 'canvas' => 'edit',
+ 'p' => '/%s/%s',
+ 'canvas' => 'edit',
)
);
@@ -531,9 +530,8 @@ function create_initial_post_types() {
$navigation_post_edit_link = 'site-editor.php?' . build_query(
array(
- 'postId' => '%s',
- 'postType' => 'wp_navigation',
- 'canvas' => 'edit',
+ 'p' => '/wp_navigation/%s',
+ 'canvas' => 'edit',
)
);
From 6e8eba1a76bac096f0e8ac34cef29d9d7540c912 Mon Sep 17 00:00:00 2001
From: Joe Dolson
Date: Fri, 13 Feb 2026 16:13:53 +0000
Subject: [PATCH 040/145] Twenty Twenty One: Remove Skiplink shim for Internet
Explorer.
No version of Internet Explorer is still supported by WordPress or Microsoft. Usage of Internet Explorer has dropped to about 0.1%.
Follow up to [61628] to also remove JS that fixed skip link behavior for IE. Also remove overlooked contents of `ie-editor.css.map`.
Props sabernhardt, westonruter, joedolson.
Fixes #64590.
git-svn-id: https://develop.svn.wordpress.org/trunk@61635 602fd350-edb4-49c9-b593-d223f7449a82
---
.../assets/css/ie-editor.css.map | 2 +-
.../assets/js/skip-link-focus-fix.js | 36 +------------------
.../themes/twentytwentyone/functions.php | 23 ++++--------
3 files changed, 8 insertions(+), 53 deletions(-)
diff --git a/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css.map b/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css.map
index 1363e46a42aea..8b137891791fe 100644
--- a/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css.map
+++ b/src/wp-content/themes/twentytwentyone/assets/css/ie-editor.css.map
@@ -1 +1 @@
-{"version":3,"sources":["style-editor.css","../sass/style-editor.scss","../sass/01-settings/global.scss","../sass/03-generic/breakpoints.scss","../sass/04-elements/blockquote.scss","../sass/04-elements/media.scss","../sass/04-elements/forms-editor.scss","../sass/04-elements/links.scss","../sass/05-blocks/button/_editor.scss","../sass/02-tools/mixins.scss","../sass/05-blocks/code/_editor.scss","../sass/05-blocks/cover/_editor.scss","../sass/05-blocks/columns/_editor.scss","../sass/05-blocks/file/_editor.scss","../sass/05-blocks/gallery/_editor.scss","../sass/05-blocks/group/_editor.scss","../sass/05-blocks/heading/_editor.scss","../sass/05-blocks/html/_editor.scss","../sass/05-blocks/image/_editor.scss","../sass/05-blocks/latest-comments/_editor.scss","../sass/05-blocks/latest-posts/_editor.scss","../sass/05-blocks/legacy/_editor.scss","../sass/05-blocks/list/_editor.scss","../sass/05-blocks/media-text/_editor.scss","../sass/05-blocks/navigation/_editor.scss","../sass/05-blocks/paragraph/_editor.scss","../sass/05-blocks/preformatted/_editor.scss","../sass/05-blocks/pullquote/_editor.scss","../sass/05-blocks/query-loop/_editor.scss","../sass/05-blocks/quote/_editor.scss","../sass/05-blocks/rss/_editor.scss","../sass/05-blocks/search/_editor.scss","../sass/05-blocks/separator/_editor.scss","../sass/05-blocks/social-icons/_editor.scss","../sass/05-blocks/table/_editor.scss","../sass/05-blocks/tag-clould/_editor.scss","../sass/05-blocks/verse/_editor.scss","../sass/05-blocks/utilities/_font-sizes.scss","../sass/05-blocks/utilities/_editor.scss","../sass/06-components/editor.scss","../sass/07-utilities/color-palette.scss"],"names":[],"mappings":"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DF;AwCx9DC;EAEC,cAAA;AxC89DF;AwCv9DC;EAEC,cAAA;AxC69DF;AwCt9DC;EAEC,cAAA;AxC49DF;AwCr9DC;EAEC,WAAA;AxC29DF;;AwCn9DC;;;;;;;;EAQC,mBAAA;AxCs9DF;AwCh9DC;EAEC,sBAAA;AxCs9DF;AwC/8DC;EAEC,yBAAA;AxCq9DF;AwC98DC;EAEC,yBAAA;AxCo9DF;AwC78DC;EAEC,yBAAA;AxCm9DF;AwC58DC;EAEC,yBAAA;AxCk9DF;AwC38DC;EAEC,yBAAA;AxCi9DF;AwC18DC;EAEC,yBAAA;AxCg9DF;AwCz8DC;EAEC,yBAAA;AxC+8DF;AwCx8DC;EAEC,yBAAA;AxC88DF;AwCv8DC;EAEC,yBAAA;AxC68DF;AwCt8DC;EAEC,sBAAA;AxC48DF;;AwCr8DC;EAGG,WAAA;AxCs8DJ;AwC/6DE;EAMC;AxCu7DH;;AwCj7DA;EACC,qDAAA;AxCu7DD;;AwCp7DA;EACC,qDAAA;AxCu7DD;;AwCp7DA;EACC,qDAAA;AxCu7DD;;AwCp7DA;EACC,qDAAA;AxCu7DD;;AwCp7DA;EACC,qDAAA;AxCu7DD;;AwCp7DA;EACC,qDAAA;AxCu7DD;;AwCp7DA;EACC,qDAAA;AxCu7DD;;AwCp7DA;EACC,qDAAA;AxCu7DD","file":"ie-editor.css"}
\ No newline at end of file
+
diff --git a/src/wp-content/themes/twentytwentyone/assets/js/skip-link-focus-fix.js b/src/wp-content/themes/twentytwentyone/assets/js/skip-link-focus-fix.js
index 5ae1338dc8b0e..c74a831adfacb 100644
--- a/src/wp-content/themes/twentytwentyone/assets/js/skip-link-focus-fix.js
+++ b/src/wp-content/themes/twentytwentyone/assets/js/skip-link-focus-fix.js
@@ -1,35 +1 @@
-/**
- * File skip-link-focus-fix.js.
- *
- * Helps with accessibility for keyboard only users.
- *
- * This is the source file for what is minified in the twenty_twenty_one_skip_link_focus_fix() PHP function.
- *
- * Learn more: https://git.io/vWdr2
- *
- * @since Twenty Twenty-One 1.0
- */
-( function() {
- var isIe = /(trident|msie)/i.test( navigator.userAgent );
-
- if ( isIe && document.getElementById && window.addEventListener ) {
- window.addEventListener( 'hashchange', function() {
- var id = location.hash.substring( 1 ),
- element;
-
- if ( ! ( /^[A-z0-9_-]+$/.test( id ) ) ) {
- return;
- }
-
- element = document.getElementById( id );
-
- if ( element ) {
- if ( ! ( /^(?:a|select|input|button|textarea)$/i.test( element.tagName ) ) ) {
- element.tabIndex = -1;
- }
-
- element.focus();
- }
- }, false );
- }
-}() );
+// Internet Explorer support was removed.
diff --git a/src/wp-content/themes/twentytwentyone/functions.php b/src/wp-content/themes/twentytwentyone/functions.php
index 052ee1c5ea4f4..01a97e597e78a 100644
--- a/src/wp-content/themes/twentytwentyone/functions.php
+++ b/src/wp-content/themes/twentytwentyone/functions.php
@@ -457,31 +457,20 @@ function twentytwentyone_block_editor_script() {
add_action( 'enqueue_block_editor_assets', 'twentytwentyone_block_editor_script' );
/**
- * Fixes skip link focus in IE11.
+ * Adds an HTML comment about the lack of Internet Explorer support.
*
- * This does not enqueue the script because it is tiny and because it is only for IE11,
- * thus it does not warrant having an entire dedicated blocking script being loaded.
+ * This originally printed a script to fix the skip link focus behavior in IE11.
*
* @since Twenty Twenty-One 1.0
* @deprecated Twenty Twenty-One 1.9 Removed from wp_print_footer_scripts action.
+ * @deprecated Twenty Twenty-One 2.8 Removed Internet Explorer support.
*
* @link https://git.io/vWdr2
*/
function twenty_twenty_one_skip_link_focus_fix() {
-
- // If SCRIPT_DEBUG is defined and true, print the unminified file.
- if ( defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ) {
- echo '';
- } else {
- // The following is minified via `npx terser --compress --mangle -- assets/js/skip-link-focus-fix.js`.
- ?>
-
-
+
+
Date: Fri, 13 Feb 2026 17:11:15 +0000
Subject: [PATCH 041/145] A11y: Update `.screen-reader-text` class with
`word-break`.
`word-break: normal !important;` was added to Twenty Twenty in [46701], but the change missed getting propagated to all uses of the screen-reader-text class at that time.
Add `word-break` reset to `.screen-reader-text` to ensure screen readers won't read text as individual letters in hidden text.
Props peterwilsoncc, manhphucofficial, palak678, sabernhardt, mukesh27, joedolson.
Fixes #64375.
git-svn-id: https://develop.svn.wordpress.org/trunk@61636 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-admin/css/common.css | 4 +++-
src/wp-admin/css/customize-controls.css | 2 ++
src/wp-admin/css/install.css | 2 ++
src/wp-admin/css/login.css | 4 +++-
.../themes/twentynineteen/sass/modules/_accessibility.scss | 4 +++-
src/wp-content/themes/twentynineteen/style-rtl.css | 3 ++-
src/wp-content/themes/twentynineteen/style.css | 3 ++-
src/wp-content/themes/twentyseventeen/style.css | 4 +++-
src/wp-content/themes/twentysixteen/style.css | 3 ++-
src/wp-content/themes/twentytwenty/style-rtl.css | 3 ++-
src/wp-content/themes/twentytwenty/style.css | 3 ++-
.../themes/twentytwentyone/assets/sass/07-utilities/a11y.scss | 3 ++-
src/wp-content/themes/twentytwentyone/style-rtl.css | 4 +++-
src/wp-content/themes/twentytwentyone/style.css | 4 +++-
src/wp-content/themes/twentytwentyone/style.css.map | 2 +-
src/wp-includes/css/admin-bar.css | 4 ++++
src/wp-includes/css/media-views.css | 2 ++
src/wp-includes/css/wp-block-template-skip-link.css | 2 ++
src/wp-includes/css/wp-embed-template.css | 2 ++
src/wp-includes/deprecated.php | 2 ++
20 files changed, 47 insertions(+), 13 deletions(-)
diff --git a/src/wp-admin/css/common.css b/src/wp-admin/css/common.css
index 70c110d351d0e..0546b4d4391ae 100644
--- a/src/wp-admin/css/common.css
+++ b/src/wp-admin/css/common.css
@@ -129,7 +129,9 @@
padding: 0;
position: absolute;
width: 1px;
- word-wrap: normal !important; /* many screen reader and browser combinations announce broken words as they would appear visually */
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
+ word-wrap: normal !important;
+ word-break: normal !important;
}
.button .screen-reader-text {
diff --git a/src/wp-admin/css/customize-controls.css b/src/wp-admin/css/customize-controls.css
index 60a6d0a3e7009..318ca0d389010 100644
--- a/src/wp-admin/css/customize-controls.css
+++ b/src/wp-admin/css/customize-controls.css
@@ -2686,7 +2686,9 @@ body.adding-widget .add-new-widget:before,
padding: 0;
position: absolute;
width: 1px;
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
word-wrap: normal !important;
+ word-break: normal !important;
}
#available-widgets .customize-section-title button,
diff --git a/src/wp-admin/css/install.css b/src/wp-admin/css/install.css
index 2fdd96c1091a9..cc25187a6e100 100644
--- a/src/wp-admin/css/install.css
+++ b/src/wp-admin/css/install.css
@@ -356,7 +356,9 @@ body.language-chooser {
padding: 0;
position: absolute;
width: 1px;
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
word-wrap: normal !important;
+ word-break: normal !important;
}
.spinner {
diff --git a/src/wp-admin/css/login.css b/src/wp-admin/css/login.css
index bd14b6db22a8e..16662d7c76401 100644
--- a/src/wp-admin/css/login.css
+++ b/src/wp-admin/css/login.css
@@ -413,7 +413,9 @@ body.interim-login {
padding: 0;
position: absolute;
width: 1px;
- word-wrap: normal !important; /* many screen reader and browser combinations announce broken words as they would appear visually */
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
+ word-wrap: normal !important;
+ word-break: normal !important;
}
/* Hide the Edge "reveal password" native button */
diff --git a/src/wp-content/themes/twentynineteen/sass/modules/_accessibility.scss b/src/wp-content/themes/twentynineteen/sass/modules/_accessibility.scss
index 5db512eb6ceca..d9fde5499eaab 100644
--- a/src/wp-content/themes/twentynineteen/sass/modules/_accessibility.scss
+++ b/src/wp-content/themes/twentynineteen/sass/modules/_accessibility.scss
@@ -8,7 +8,9 @@
padding: 0;
position: absolute !important;
width: 1px;
- word-wrap: normal !important; /* Many screen reader and browser combinations announce broken words as they would appear visually. */
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
+ word-wrap: normal !important;
+ word-break: normal !important;
&:focus {
background-color: $color__background-screen;
diff --git a/src/wp-content/themes/twentynineteen/style-rtl.css b/src/wp-content/themes/twentynineteen/style-rtl.css
index 6bd0b155bf296..ae969d6e88e84 100644
--- a/src/wp-content/themes/twentynineteen/style-rtl.css
+++ b/src/wp-content/themes/twentynineteen/style-rtl.css
@@ -3627,8 +3627,9 @@ body.page .main-navigation {
padding: 0;
position: absolute !important;
width: 1px;
- word-wrap: normal !important;
/* Many screen reader and browser combinations announce broken words as they would appear visually. */
+ word-wrap: normal !important;
+ word-break: normal !important;
}
.screen-reader-text:focus {
diff --git a/src/wp-content/themes/twentynineteen/style.css b/src/wp-content/themes/twentynineteen/style.css
index cff39c5de37ab..1dafa52fd6be7 100644
--- a/src/wp-content/themes/twentynineteen/style.css
+++ b/src/wp-content/themes/twentynineteen/style.css
@@ -3627,8 +3627,9 @@ body.page .main-navigation {
padding: 0;
position: absolute !important;
width: 1px;
- word-wrap: normal !important;
/* Many screen reader and browser combinations announce broken words as they would appear visually. */
+ word-wrap: normal !important;
+ word-break: normal !important;
}
.screen-reader-text:focus {
diff --git a/src/wp-content/themes/twentyseventeen/style.css b/src/wp-content/themes/twentyseventeen/style.css
index 15a25aa01d4dc..1c507a9955c53 100644
--- a/src/wp-content/themes/twentyseventeen/style.css
+++ b/src/wp-content/themes/twentyseventeen/style.css
@@ -311,7 +311,9 @@ template {
overflow: hidden;
position: absolute !important;
width: 1px;
- word-wrap: normal !important; /* Many screen reader and browser combinations announce broken words as they would appear visually. */
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
+ word-wrap: normal !important;
+ word-break: normal !important;
}
.screen-reader-text:focus {
diff --git a/src/wp-content/themes/twentysixteen/style.css b/src/wp-content/themes/twentysixteen/style.css
index e6b238c36db97..1fa05165775be 100644
--- a/src/wp-content/themes/twentysixteen/style.css
+++ b/src/wp-content/themes/twentysixteen/style.css
@@ -1289,8 +1289,9 @@ a:active {
overflow: hidden;
position: absolute !important;
width: 1px;
- /* many screen reader and browser combinations announce broken words as they would appear visually */
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
word-wrap: normal !important;
+ word-break: normal !important;
}
/* must have higher specificity than alternative color schemes inline styles */
diff --git a/src/wp-content/themes/twentytwenty/style-rtl.css b/src/wp-content/themes/twentytwenty/style-rtl.css
index a007c0cc58aad..89fcd9eee70f1 100644
--- a/src/wp-content/themes/twentytwenty/style-rtl.css
+++ b/src/wp-content/themes/twentytwenty/style-rtl.css
@@ -185,8 +185,9 @@ path {
padding: 0;
position: absolute !important;
width: 1px;
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
word-wrap: normal !important;
- word-break: normal;
+ word-break: normal !important;
}
.screen-reader-text:focus {
diff --git a/src/wp-content/themes/twentytwenty/style.css b/src/wp-content/themes/twentytwenty/style.css
index 9f52965ed9073..f946ee12e875f 100644
--- a/src/wp-content/themes/twentytwenty/style.css
+++ b/src/wp-content/themes/twentytwenty/style.css
@@ -185,8 +185,9 @@ path {
padding: 0;
position: absolute !important;
width: 1px;
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
word-wrap: normal !important;
- word-break: normal;
+ word-break: normal !important;
}
.screen-reader-text:focus {
diff --git a/src/wp-content/themes/twentytwentyone/assets/sass/07-utilities/a11y.scss b/src/wp-content/themes/twentytwentyone/assets/sass/07-utilities/a11y.scss
index 27de93ff62713..793607a619b15 100644
--- a/src/wp-content/themes/twentytwentyone/assets/sass/07-utilities/a11y.scss
+++ b/src/wp-content/themes/twentytwentyone/assets/sass/07-utilities/a11y.scss
@@ -7,8 +7,9 @@
padding: 0;
position: absolute !important;
width: 1px;
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
word-wrap: normal !important;
- word-break: normal;
+ word-break: normal !important;
}
.skip-link:focus {
diff --git a/src/wp-content/themes/twentytwentyone/style-rtl.css b/src/wp-content/themes/twentytwentyone/style-rtl.css
index cf13057ee3018..7cc7cc9dd5cd0 100644
--- a/src/wp-content/themes/twentytwentyone/style-rtl.css
+++ b/src/wp-content/themes/twentytwentyone/style-rtl.css
@@ -5507,8 +5507,10 @@ h1.page-title {
padding: 0;
position: absolute !important;
width: 1px;
+
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
word-wrap: normal !important;
- word-break: normal;
+ word-break: normal !important;
}
.skip-link:focus {
diff --git a/src/wp-content/themes/twentytwentyone/style.css b/src/wp-content/themes/twentytwentyone/style.css
index 47c5beae044c8..74621f249fdba 100644
--- a/src/wp-content/themes/twentytwentyone/style.css
+++ b/src/wp-content/themes/twentytwentyone/style.css
@@ -5555,8 +5555,10 @@ h1.page-title {
padding: 0;
position: absolute !important;
width: 1px;
+
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
word-wrap: normal !important;
- word-break: normal;
+ word-break: normal !important;
}
.skip-link:focus {
diff --git a/src/wp-content/themes/twentytwentyone/style.css.map b/src/wp-content/themes/twentytwentyone/style.css.map
index b9a5f98b97e7a..3ea5732d90a91 100644
--- a/src/wp-content/themes/twentytwentyone/style.css.map
+++ b/src/wp-content/themes/twentytwentyone/style.css.map
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["assets/sass/01-settings/file-header.scss","assets/sass/style.scss","assets/sass/01-settings/global.scss","assets/sass/03-generic/normalize.scss","assets/sass/03-generic/breakpoints.scss","assets/sass/03-generic/vertical-margins.scss","assets/sass/03-generic/reset.scss","assets/sass/03-generic/clearings.scss","assets/sass/04-elements/blockquote.scss","assets/sass/04-elements/forms.scss","assets/sass/04-elements/media.scss","assets/sass/04-elements/misc.scss","assets/sass/04-elements/links.scss","assets/sass/05-blocks/audio/_style.scss","assets/sass/05-blocks/button/_style.scss","assets/sass/02-tools/mixins.scss","assets/sass/05-blocks/code/_style.scss","assets/sass/05-blocks/columns/_style.scss","assets/sass/05-blocks/cover/_style.scss","assets/sass/05-blocks/file/_style.scss","assets/sass/05-blocks/gallery/_style.scss","assets/sass/05-blocks/group/_style.scss","assets/sass/05-blocks/heading/_style.scss","assets/sass/05-blocks/image/_style.scss","assets/sass/05-blocks/latest-comments/_style.scss","assets/sass/05-blocks/latest-posts/_style.scss","assets/sass/05-blocks/legacy/_style.scss","assets/sass/05-blocks/list/_style.scss","assets/sass/05-blocks/media-text/_style.scss","assets/sass/05-blocks/navigation/_style.scss","assets/sass/05-blocks/paragraph/_style.scss","assets/sass/05-blocks/preformatted/_style.scss","assets/sass/05-blocks/pullquote/_style.scss","assets/sass/05-blocks/query-loop/_style.scss","assets/sass/05-blocks/quote/_style.scss","assets/sass/05-blocks/rss/_style.scss","assets/sass/05-blocks/search/_style.scss","assets/sass/05-blocks/separator/_style.scss","assets/sass/05-blocks/social-icons/_style.scss","assets/sass/05-blocks/table/_style.scss","assets/sass/05-blocks/tag-clould/_style.scss","assets/sass/05-blocks/verse/_style.scss","assets/sass/05-blocks/video/_style.scss","assets/sass/05-blocks/utilities/_font-sizes.scss","assets/sass/05-blocks/utilities/_style.scss","assets/sass/06-components/header.scss","assets/sass/06-components/footer.scss","assets/sass/06-components/single.scss","assets/sass/06-components/posts-and-pages.scss","assets/sass/06-components/entry.scss","assets/sass/06-components/archives.scss","assets/sass/06-components/404.scss","assets/sass/06-components/search.scss","assets/sass/06-components/comments.scss","assets/sass/06-components/navigation.scss","assets/sass/06-components/footer-navigation.scss","assets/sass/06-components/pagination.scss","assets/sass/06-components/widgets.scss","assets/sass/07-utilities/a11y.scss","assets/sass/07-utilities/color-palette.scss","assets/sass/07-utilities/measure.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;ACEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4EA;AC9EA;AAKA;AAEC;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;E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AAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;;AAOD;EACC;;AAEA;EACC;;;AAKH;EACC;EACA;;;AAGD;AAAA;AAGC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;;AAIF;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAKA;EAEC;AAAA;IAEC;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;AAAA;IACC;;EAGD;AAAA;IACC;;EAMD;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAEA;IACC;;EAKH;IACC;;EAEA;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAEA;IACC;;EAID;IACC;IACA;;;AAMJ;AAAA;EAEC;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;AAGA;EAEC;IACC;IACA;IACA;IACA;IACA;IACA;;EAEA;IACC;;EAIF;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;AAEA;EACC;;AAKA;EACC;;AAGD;EACC;;AAGD;EAEC;;AAGD;EAEC;EACA;EACA;;;AAKH;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;;AL7RA;EK4RD;IAGE;;;;ACrUH;EACC;EACA;EACA;;;AAGD;AACA;EACC;;;AAGD;AACA;AAAA;AAAA;AAAA;EAIC;;;AAGD;AACA;AAAA;AA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;;EADD;IACC;;EADD;IACC;;EADD;IACC;;EADD;IACC;;;AASJ;EACC;EACA;;AAEA;EACC;;AAIF;EACC;EACA;;;AC/KH;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;;AAIF;EACC;;;AAID;EACC;;;ACrDD;AAAA;EAEC;EACA;EACA;;AAGA;AAAA;EACC;EACA;;AAGD;AAAA;EACC;EACA;EACA;;;AAIF;EACC;;AAEA;EACC;;;AAIF;EACC;;AAEA;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;;;ACxCA;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;AxB0BA;EwB3BD;IAIE;;;AAGD;EACC;EACA;;AxBMD;EwBRA;IAKE;IACA;;;AAGD;EACC;;AAGD;EACC;;AxBNF;EwBYD;IAEE;IACA;;;AAKF;EACC;;;AC5CA;EACC;EACA;EACA;;AAIF;EACC;;AAQC;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAOF;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAQH;EACC;;AAEA;EACC;;AAWA;EAEC;;AAGD;EACC;EACA;;AAKH;EACC;;;ACnGH;EAEC;;AAGA;EACC;;AAID;EACC;;;ACXF;EACC;EACA;;;ACFD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAyCA;AAAA;AAAA;;AAvCA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;EACA;;AAMD;EACC;;AAKA;AAAA;EAEC;;AAIF;EAEC;;AAGD;EAEC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAEA;EAPD;IAQE;;;AAGD;EACC;;AAGD;EACC;EACA;;AAEA;EACC;;AAIF;AAAA;AAAA;EAGC;;AAGD;EAEC;;AAEA;EACC;;;AC/GH;EACC;;A7BuBA;E6BxBD;IAIE;;;;ACNH;EACC;EACA;EACA;EACA;EACA;EACA;AA8CA;AAAA;AAAA;;AA5CA;EACC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIC;;AAIF;EAGC;;AAID;EAGC;;AAMD;EACC;EACA;EACA;;AAGA;EACC;;AAID;EACC;EACA;;AAIF;EACC;;AAEA;EACC;;AAKF;EAEC;EACA;AAEA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;AAIF;AAAA;AAAA;AAAA;AAAA;EAGC;EACA;;A9BvGD;E8B6DD;IA8CE;;EAEA;IACC;;EAGD;IACC;IACA;;EAEA;IACC;;EAIF;IACC;IACA;;;A9B5HF;E8BmIA;IACC;IACA;;EAEA;IACC;;EAIF;IACC;IACA;;;;AClKH;EACC;;AAEA;EACC;;AAID;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAMD;EACC;;AAEA;EACC;;AAKF;EAUC;;AAIF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAKF;EACC;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;EACA;EACA;;AAID;EACC;EACA;EACA;;AAEA;EAEC;;AAKF;AAAA;EAEC;EACA;EACA;EACA;;AAID;EACC;EACA;;AAEA;EAEC;EACA;;;ACzGH;EACC;;AAIC;EACC;;AAIF;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;;AAIF;EACC;EACA;;AAEA;EACC;;AAEA;EACC;EACA;EACA;;AAOD;EACC;EACA;;AAGD;EACC;;AAOF;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;AAGA;EACC;EACA;EACA;;AAIF;EACC;;AAGA;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAIF;EACC;;;AAOL;EACC;;;ACpHD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;AAiBA;AAAA;AAAA;;AAfA;EACC;;AAKA;EACC;;AAGD;EACC;;AAOF;EACC;;AAKA;EAEC;;AAEA;EACC;;AAIF;EACC;EACA;EACA;EACA;;AAIF;EAIC;;;ACtDF;EACC;;AAKA;EACC;;AAGD;EAEC;;;ACdH;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;EAEC;EACA;;AAGD;AAAA;EACC;EACA;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;EAKC;;AAGD;AAAA;EACC;;AAEA;AAAA;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC;;;AAOF;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;AAAA;EAEC;EACA;;AAGD;EACC;EACA;EACA;EACA;;;AAIF;EACC;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAIF;EACC;;;AC9FD;EACC;EACA;;;ACJF;EACC;;;ACCA;EACC;EACA;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;;;ACXA;AAAA;EAEC;;AAGD;AAAA;EAEC;;AAGD;AAAA;AAAA;AAAA;AAAA;EAKC;;AAGD;AAAA;EAEC;EACA;;AAGD;AAAA;AAAA;AAAA;EAIC;EACA;;AAGD;AAAA;EAEC;EACA;EAGA;;AAGD;AAAA;EAEC;EACA;EAGA;;;AClDF;AAEA;AAAA;AAAA;AAQA;AAAA;AAAA;AAGA;AAEC;EACA;EAEA;;;AAKD;EACC;;;AxCEC;EwCID;AAEC;IACA;AAEA;IACA;IACA;;EAGD;IACC;;;AAIF;AAAA;AAAA;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;AAGA;EAEC;EACA;;;AAKD;EACC;;;AxC3CC;EwCiDD;AAEC;IACA;AAEA;IACA;;EAGD;IACC;;;AAKF;AAAA;EAEC;;;AAGD;AAAA;AAAA;AAGA;EACC;;;AAQD;AAAA;AAAA;AAGA;EACC;;;AAUD;EACC;;;AAGD;EACC;;;AAID;EACC;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;;AxChIC;EwC+HF;IAIE;;;;A3CxDF;A4CpGA;EAEC;EACA;EACA;EACA;;AAEA;EACC;;AzCiBA;EyCzBF;IAYE;;;AzCiDA;EyC7DF;IAgBE;;;;AAKF;EACC;EACA;;AAEA;EACC;EACA;EACA;;AzCHA;EyCJF;IAWE;IACA;;;;AAKF;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EAGC;;AAGD;EAEC;;AzCnCD;EyCaF;IA4BE;;;;AAKF;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAID;EAEC;;AAEA;EACC;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AzC5EA;EyCiFA;IACC;IACA;IACA;IACA;;;;AzC3FD;EyC0GG;IACC;IACA;IACA;IACA;;EAEA;IACC;;EAGD;IACC;;EAMJ;IACC;;EAEA;IACC;;EAEA;IACC;;EAIF;IACC;;EAKA;IACC;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;;EAEA;IAGC;IACA;IACA;;EAWH;IACC;IACA;;EAKH;IACC;;;ACrMH;EACC;EACA;;AAIA;EACC;;A1CYA;E0CPA;IACC;;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;AAAA;EAEC;;A1C2BA;E0C1CF;IAmBE;IACA;;EAEA;IACC;;EAGD;AAAA;IAEC;IACA;;EAGD;IACC;;;AAIF;EACC;;AAEA;EAGC;;AAGD;EACC;;AAGD;EACC;;AAEA;EACC;;AAID;EACC;;;AC/EJ;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;ACXD;EACC;;;AAID;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;;ACpBH;EAEC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAKH;EACC;;;AAGD;EACC;EACA;;;AAGD;AAAA;AAAA;AAIA;AAAA;EAEC;;;AAKA;EACC;;AAID;EAEC;EACA;;AASF;EAEC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAEA;EAEC;;AAGD;EACC;;;AAMH;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEC;EACA;;AAGD;EACC;;AAGD;AAAA;AAAA;AAAA;EAIC;;A7C1GA;E6CiFF;IA6BE;;EAEA;IACC;;EAGD;AAAA;IAEC;;;;AAKH;AAAA;AAAA;AAIA;EAEC;;AAOA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAIA;EACC;EACA;EACA;;AAEA;EACC;;AAMA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;;AC9MH;EACC;;;AAGD;AAAA;EAEC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAaE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAUF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAMD;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;AAQA;AAAA;AAAA;EACC;;;AAMJ;EACC;EACA;EACA;;;AClED;EACC;EACA;;;ACFD;EACC;;;ACDD;AAAA;AAAA;AAKC;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAMD;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;;AAMH;AAAA;AAAA;AAIA;AAAA;EAEC;EACA;;;AAGD;EACC;EACA;;AAIC;EACC;EACA;EACA;EACA;EACA;;;AAKH;AACA;EACC;;;AAGD;AAAA;AAAA;AAGA;EACC;EACA;;AAEA;EACC;EACA;;;AAKF;EACC;EACA;;AAEA;EACC;EACA;;;AjD/DA;EiDoEF;AAAA;IAGE;;;;AAIF;AAAA;AAAA;AAKC;EACC;EACA;;AjDlFA;EiDgFD;IAKE;IACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AAKF;EACC;EACA;EACA;;AAEA;EACC;;AjD1GD;EiD8EF;IAkCE;;EAEA;IACC;;;;AAKH;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;;;AAID;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EACC;;;AAIF;EACC;;;AAID;AAAA;EAEC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAEA;EACC;;;AAKH;EACC;;AAEA;EACC;;;AAIF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;AAAA;EAEC;;AAGD;AAAA;EAEC;EACA;;AjD3NA;EiDwND;AAAA;IAME;;;AAIF;AAAA;EAEC;EACA;;;AAIF;EACC;;AAEA;EACC;;AAGD;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;EAKC;EACA;EACA;EACA;EACA;;AAGD;EACC;;AjD3PA;EiDgQA;IACC;;EAGD;IAEC;;;;AC5RH;EACC;EACA;EACA;EACA;EACA;EACA;;AlDUC;EkDhBF;IASE;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAID;EACC;EACA;;AAGD;EACC;;AAQA;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAQL;EACC;EACA;EACA;;AAEA;EACC;;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAhBD;IAiBE;;;AlDtFD;EkDqED;IAqBE;IACA;IACA;IACA;IACA;;EAEA;IACC;IACA;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;;AlD9GF;EkDoHD;IAGE;IACA;IACA;;;AAGD;EACC;EACA;EACA;EACA;;AlDhID;EkDuIC;IACC;;;AlDlIF;EkDoDF;IAoFE;IACA;;EAGA;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAID;IACC;;EAID;IACC;;EAID;IACC;;EAEA;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AlDzLA;EkDiLD;IAWE;;EAEA;IACC;;;AAIF;EACC;EACA;EACA;;AlDhMD;EkD6LA;IAME;IACA;;EAEA;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AlD/NF;EkDmNA;IAgBE;;;AAGD;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;EACC;;AAIF;EACC;;AAMA;EACC;;AAGD;EACC;;AAMH;EAEC;;AAGC;EALF;IAMG;;;AlDnQH;EkD6PA;IAWE;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IAEC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;;EAGD;IACC;;EAGD;AAEC;IACA;AAEA;IACA;;EAEA;AAGC;IACA;AAEA;IACA;;EAIF;AAEC;IACA;AAEA;IACA;;EAEA;AAGC;IACA;AAEA;IACA;;;AAQL;EACC;;AlDjVA;EkDoVD;IAGE;IACA;;EAGA;IACC;;EAEA;IACC;IACA;;EAEA;IACC;;;AAQL;EACC;EACA;EACA;EACA;EACA;EACA;;AlDjXA;EkD2WD;IASE;IACA;IACA;IACA;;;AAGD;EACC;;AAGD;EAGC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAIF;AAAA;EAEC;EACA;;AAEA;AAAA;EACC;EACA;;AAKF;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AlDraD;EkD4aC;IACC;;;AlDnbF;EkD2bE;IACC;;;AAKF;EACC;EACA;EACA;EACA;;AlD/bF;EkD2bC;IAOE;IACA;;;AASH;EACC;;AlD7cD;EkDkdC;IACC;IACA;;EAGD;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;;AlD5eD;EkDofD;IACC;IACA;IACA;;;AAK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","file":"style.css"}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["assets/sass/01-settings/file-header.scss","assets/sass/style.scss","assets/sass/01-settings/global.scss","assets/sass/03-generic/normalize.scss","assets/sass/03-generic/breakpoints.scss","assets/sass/03-generic/vertical-margins.scss","assets/sass/03-generic/reset.scss","assets/sass/03-generic/clearings.scss","assets/sass/04-elements/blockquote.scss","assets/sass/04-elements/forms.scss","assets/sass/04-elements/media.scss","assets/sass/04-elements/misc.scss","assets/sass/04-elements/links.scss","assets/sass/05-blocks/audio/_style.scss","assets/sass/05-blocks/button/_style.scss","assets/sass/02-tools/mixins.scss","assets/sass/05-blocks/code/_style.scss","assets/sass/05-blocks/columns/_style.scss","assets/sass/05-blocks/cover/_style.scss","assets/sass/05-blocks/file/_style.scss","assets/sass/05-blocks/gallery/_style.scss","assets/sass/05-blocks/group/_style.scss","assets/sass/05-blocks/heading/_style.scss","assets/sass/05-blocks/image/_style.scss","assets/sass/05-blocks/latest-comments/_style.scss","assets/sass/05-blocks/latest-posts/_style.scss","assets/sass/05-blocks/legacy/_style.scss","assets/sass/05-blocks/list/_style.scss","assets/sass/05-blocks/media-text/_style.scss","assets/sass/05-blocks/navigation/_style.scss","assets/sass/05-blocks/paragraph/_style.scss","assets/sass/05-blocks/preformatted/_style.scss","assets/sass/05-blocks/pullquote/_style.scss","assets/sass/05-blocks/query-loop/_style.scss","assets/sass/05-blocks/quote/_style.scss","assets/sass/05-blocks/rss/_style.scss","assets/sass/05-blocks/search/_style.scss","assets/sass/05-blocks/separator/_style.scss","assets/sass/05-blocks/social-icons/_style.scss","assets/sass/05-blocks/table/_style.scss","assets/sass/05-blocks/tag-clould/_style.scss","assets/sass/05-blocks/verse/_style.scss","assets/sass/05-blocks/video/_style.scss","assets/sass/05-blocks/utilities/_font-sizes.scss","assets/sass/05-blocks/utilities/_style.scss","assets/sass/06-components/header.scss","assets/sass/06-components/footer.scss","assets/sass/06-components/single.scss","assets/sass/06-components/posts-and-pages.scss","assets/sass/06-components/entry.scss","assets/sass/06-components/archives.scss","assets/sass/06-components/404.scss","assets/sass/06-components/search.scss","assets/sass/06-components/comments.scss","assets/sass/06-components/navigation.scss","assets/sass/06-components/footer-navigation.scss","assets/sass/06-components/pagination.scss","assets/sass/06-components/widgets.scss","assets/sass/07-utilities/a11y.scss","assets/sass/07-utilities/color-palette.scss","assets/sass/07-utilities/measure.scss"],"names":[],"mappings":";AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;ACEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4EA;AC9EA;AAKA;AAEC;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;AAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;AAEA;EAEA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EAEA;EACA;EAEA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;AAEA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAEA;E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AAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;;AAOD;EACC;;AAEA;EACC;;;AAKH;EACC;EACA;;;AAGD;AAAA;AAGC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;;;AAIF;EACC;;;AAGD;EACC;EACA;EACA;;;AAGD;AAAA;AAAA;AAAA;AAAA;AAKA;EAEC;AAAA;IAEC;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;AAAA;IACC;;EAGD;AAAA;IACC;;EAMD;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAEA;IACC;;EAKH;IACC;;EAEA;IACC;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;;EAEA;IACC;;EAID;IACC;IACA;;;AAMJ;AAAA;EAEC;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;AAGA;EAEC;IACC;IACA;IACA;IACA;IACA;IACA;;EAEA;IACC;;EAIF;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;;AAIF;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;;AAEA;EACC;;AAKA;EACC;;AAGD;EACC;;AAGD;EAEC;;AAGD;EAEC;EACA;EACA;;;AAKH;EACC;;;AAGD;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EACC;EACA;EACA;;AAGD;EACC;;AL7RA;EK4RD;IAGE;;;;ACrUH;EACC;EACA;EACA;;;AAGD;AACA;EACC;;;AAGD;AACA;AAAA;AAAA;AAAA;EAIC;;;AAGD;AACA;AAAA;AAAA;AAAA;EAIC;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;;AAIF;AACA;AAAA;AAAA;EAGC;EACA;EACA;EACA;;;AC5CD;AACA;AAAA;EAEC;;;AAGD;AAAA;AAAA;AAAA;EAIC;;;AAGD;EACC;EACA;;;AAGD;EACC;;;ACnBD;AAAA;AAAA;AAAA;AAAA;AAKA;EACC;EACA;EACA;EACA;;;AAGD;EACC;EACA;;;AAGD;AAEC;EACA;EAEA;EACA;EACA;;AAGA;EACC;EACA;EACA;;AAEA;EACC;;AAKF;EACC;EACA;;AAEA;EACC;;AAIF;AAEC;EACA;EACA;;AAEA;EACC;EACA;;AAIF;EACC;;AAGD;EACC;;;AAQD;EAEC;;;AXwBF;AYhGC;EACC;EACA;;;ACJF;AAAA;AAAA;AAGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ECmBC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAMC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAMH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAMH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;EACA;EACA;;AAID;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;EACA;;AAID;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;EACA;EACA;;;ADhEF;AAAA;AAAA;AAWG;EACC;;AAGA;EACC;;AAEA;EACC;;AAMH;EACC;;AAGA;EACC;;AAMH;AAAA;EAEC;EACA;EACA;;AAUA;EAGC;;AAID;EACC;;AAGA;EACC;;AAMD;EACC;;AAKF;EACC;;AAIF;AAAA;EAGC;EACA;EACA;;AAEA;AAAA;EACC;EACA;;AAGD;AAAA;EACC;;AAMH;EACC;;;AAIF;AAAA;EAEC;EACA;;;AExHD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;EACA;EACA;;;ACTD;EACC;;AAKA;EACC;EACA;;AbgBD;EalBA;IAKE;IACA;;;AAGD;EACC;;AAGD;EACC;;AAIF;EACC;;AAIF;EACC;;AbNA;EaKD;IAIE;;;Ab2BD;Ea/BD;IAQE;;;AAIF;EAEC;;AbKA;EaCE;IACC;IACA;IACA;;EAcC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;IACC;IACA;;EAKF;AAAA;IAEC;;EAGD;IACC;;;AAWH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAOC;EACA;;;ACpGJ;AAAA;EAYC;EACA;EACA;EACA;AAkBA;AAUA;AA+DA;AAKA;;AA5GA;AAAA;EACC;;AAGD;AAAA;EACC;EACA;;AAQD;AAAA;AAAA;AAAA;AAAA;AAAA;EAGC;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAOD;AAAA;AAAA;AAAA;AAAA;AAAA;EAGC;;AAKF;AAAA;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EACC;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC;;AAIF;AAAA;EAEC;;AAEA;AAAA;EACC;EACA;;Ad7CD;Ec2CA;AAAA;IAKE;IACA;;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC;;AAKH;AAAA;AAAA;EAEC;;AAEA;AAAA;AAAA;EACC;EACA;EACA;EACA;EACA;;AAIF;AAAA;AAAA;EAEC;;AAID;AAAA;EACC;;AAID;AAAA;EACC;;;AC9GD;AAAA;AAAA;EAGC;;AAGD;EACC;;;ACVF;EAEC;;AAEA;AAAA;EAIC;;AAEA;AAAA;EACC;EAEA;EACA;;AAEA;AAAA;EACC;;AAEA;AAAA;EACC;EACA;EACA;;AAKH;AAAA;EACC;;;AC5BH;EAMC;;AAIA;EACC;EACA;;AAEA;EACC;EACA;;AjBUD;EiBZA;IASE;IACA;;;AAGD;EACC;;AAGD;EACC;;AAKH;EACC;;AjBZA;EiBWD;IAIE;;;AAKF;EACC;EACA;;AAOA;AAAA;AAAA;EAEC;EACA;EACA;;;AC3DH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAYC;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;;AAIF;AAAA;EAEC;EACA;EACA;;;AAGD;AAAA;EAEC;EACA;EACA;;;AAGD;AAAA;EAEC;EACA;EACA;;;AAGD;AAAA;EAEC;EACA;EACA;EACA;;;AAGD;AAAA;EAEC;EACA;EACA;EACA;;;AAGD;AAAA;EAEC;EACA;EACA;EACA;;;AC/DD;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;EACA;;AAGD;AAEC;EACA;AAEA;EACA;;AAGD;AAEC;EACA;AAEA;EACA;;AAGD;EACC;;;AAKF;AAAA;EAEC;EACA;;AAGA;AAAA;EACC;;;AAKF;AAAA;EAEC;;;AAGD;EACC;;;AnB5BC;EmBqCC;AAAA;IAEC;;;AnB7CF;EmBmDC;AAAA;IAEC;IACA;;EAEA;AAAA;IACC;IACA;IACA;IACA;AAEA;IACA;;EAIF;AAEC;IACA;;;;AC1FJ;EACC;;AAEA;EACC;;AAGD;EACC;AAEA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAIF;EACC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;EACA;;;ACnCF;EACC;;AAGA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAIF;EACC;EACA;;AAGD;EACC;EACA;;AAEA;EACC;;AAEA;EACC;;AAKF;EAUC;;AAIF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAKF;EACC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAID;EACC;EACA;EACA;;AAID;EACC;EACA;EACA;;AAEA;EAEC;;AAKF;AAAA;EAEC;EACA;EACA;EACA;;AAID;EACC;EACA;;AAEA;EAEC;EACA;;AAKF;EACC;EACA;;AAEA;AAAA;EAEC;EACA;EACA;EACA;;AAEA;AAAA;EACC;EACA;;AAIF;EAEC;EACA;;AAEA;EACC;EACA;EACA;;AAEA;EACC;;AAMF;EAEE;IACC;;EADD;IACC;;EADD;IACC;;EADD;IACC;;EADD;IACC;;;AASJ;EACC;EACA;;AAEA;EACC;;AAIF;EACC;EACA;;;AC/KH;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;AAGD;EACC;;;AAIF;EACC;;;AAID;EACC;;;ACrDD;AAAA;EAEC;EACA;EACA;;AAGA;AAAA;EACC;EACA;;AAGD;AAAA;EACC;EACA;EACA;;;AAIF;EACC;;AAEA;EACC;;;AAIF;EACC;;AAEA;EACC;;;AAIF;EACC;EACA;;;AAGD;EACC;EACA;;;ACxCA;EACC;EACA;;AAGD;EACC;;AAGD;EACC;;AxB0BA;EwB3BD;IAIE;;;AAGD;EACC;EACA;;AxBMD;EwBRA;IAKE;IACA;;;AAGD;EACC;;AAGD;EACC;;AxBNF;EwBYD;IAEE;IACA;;;AAKF;EACC;;;AC5CA;EACC;EACA;EACA;;AAIF;EACC;;AAQC;EACC;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAOF;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAQH;EACC;;AAEA;EACC;;AAWA;EAEC;;AAGD;EACC;EACA;;AAKH;EACC;;;ACnGH;EAEC;;AAGA;EACC;;AAID;EACC;;;ACXF;EACC;EACA;;;ACFD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AAyCA;AAAA;AAAA;;AAvCA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;EACC;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;EACA;;AAMD;EACC;;AAKA;AAAA;EAEC;;AAIF;EAEC;;AAGD;EAEC;;AAGD;EACC;EACA;EACA;EACA;EACA;;AAEA;EAPD;IAQE;;;AAGD;EACC;;AAGD;EACC;EACA;;AAEA;EACC;;AAIF;AAAA;AAAA;EAGC;;AAGD;EAEC;;AAEA;EACC;;;AC/GH;EACC;;A7BuBA;E6BxBD;IAIE;;;;ACNH;EACC;EACA;EACA;EACA;EACA;EACA;AA8CA;AAAA;AAAA;;AA5CA;EACC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;EACA;;AAGD;AAAA;AAAA;EAGC;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAIC;;AAIF;EAGC;;AAID;EAGC;;AAMD;EACC;EACA;EACA;;AAGA;EACC;;AAID;EACC;EACA;;AAIF;EACC;;AAEA;EACC;;AAKF;EAEC;EACA;AAEA;EACA;EACA;;AAEA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMA;EACC;;AAID;EACC;EACA;EACA;EACA;EACA;;AAIF;AAAA;AAAA;AAAA;AAAA;EAGC;EACA;;A9BvGD;E8B6DD;IA8CE;;EAEA;IACC;;EAGD;IACC;IACA;;EAEA;IACC;;EAIF;IACC;IACA;;;A9B5HF;E8BmIA;IACC;IACA;;EAEA;IACC;;EAIF;IACC;IACA;;;;AClKH;EACC;;AAEA;EACC;;AAID;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAMD;EACC;;AAEA;EACC;;AAKF;EAUC;;AAIF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAKF;EACC;EACA;EACA;EACA;EACA;EACA;;AAID;EACC;EACA;EACA;;AAID;EACC;EACA;EACA;;AAEA;EAEC;;AAKF;AAAA;EAEC;EACA;EACA;EACA;;AAID;EACC;EACA;;AAEA;EAEC;EACA;;;ACzGH;EACC;;AAIC;EACC;;AAIF;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;;AAEA;EACC;EACA;;AAGD;EACC;;AAIF;EACC;EACA;;AAEA;EACC;;AAEA;EACC;EACA;EACA;;AAOD;EACC;EACA;;AAGD;EACC;;AAOF;EACC;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;EACA;EACA;;AAGA;EACC;EACA;EACA;;AAIF;EACC;;AAGA;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAIF;EACC;;;AAOL;EACC;;;ACpHD;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;AAiBA;AAAA;AAAA;;AAfA;EACC;;AAKA;EACC;;AAGD;EACC;;AAOF;EACC;;AAKA;EAEC;;AAEA;EACC;;AAIF;EACC;EACA;EACA;EACA;;AAIF;EAIC;;;ACtDF;EACC;;AAKA;EACC;;AAGD;EAEC;;;ACdH;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;AAAA;AAAA;EAEC;EACA;;AAGD;AAAA;EACC;EACA;;AAGD;AAAA;AAAA;AAAA;AAAA;AAAA;EAKC;;AAGD;AAAA;EACC;;AAEA;AAAA;AAAA;AAAA;EAEC;;AAGD;AAAA;EACC;;AAGD;AAAA;EACC;;;AAOF;AAAA;EAEC;EACA;EACA;EACA;EACA;EACA;;AAGD;EACC;;AAGD;AAAA;EAEC;EACA;;AAGD;EACC;EACA;EACA;EACA;;;AAIF;EACC;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAIF;EACC;;;AC9FD;EACC;EACA;;;ACJF;EACC;;;ACCA;EACC;EACA;EACA;EACA;EACA;;;AAIF;EACC;EACA;EACA;;;ACXA;AAAA;EAEC;;AAGD;AAAA;EAEC;;AAGD;AAAA;AAAA;AAAA;AAAA;EAKC;;AAGD;AAAA;EAEC;EACA;;AAGD;AAAA;AAAA;AAAA;EAIC;EACA;;AAGD;AAAA;EAEC;EACA;EAGA;;AAGD;AAAA;EAEC;EACA;EAGA;;;AClDF;AAEA;AAAA;AAAA;AAQA;AAAA;AAAA;AAGA;AAEC;EACA;EAEA;;;AAKD;EACC;;;AxCEC;EwCID;AAEC;IACA;AAEA;IACA;IACA;;EAGD;IACC;;;AAIF;AAAA;AAAA;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAGD;AAAA;AAAA;AAGA;EAEC;EACA;;;AAKD;EACC;;;AxC3CC;EwCiDD;AAEC;IACA;AAEA;IACA;;EAGD;IACC;;;AAKF;AAAA;EAEC;;;AAGD;AAAA;AAAA;AAGA;EACC;;;AAQD;AAAA;AAAA;AAGA;EACC;;;AAUD;EACC;;;AAGD;EACC;;;AAID;EACC;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGD;EACC;EACA;EACA;EACA;;;AAGD;EACC;;AxChIC;EwC+HF;IAIE;;;;A3CxDF;A4CpGA;EAEC;EACA;EACA;EACA;;AAEA;EACC;;AzCiBA;EyCzBF;IAYE;;;AzCiDA;EyC7DF;IAgBE;;;;AAKF;EACC;EACA;;AAEA;EACC;EACA;EACA;;AzCHA;EyCJF;IAWE;IACA;;;;AAKF;EAEC;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EAGC;;AAGD;EAEC;;AzCnCD;EyCaF;IA4BE;;;;AAKF;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAID;EAEC;;AAEA;EACC;EACA;EACA;EACA;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;;AzC5EA;EyCiFA;IACC;IACA;IACA;IACA;;;;AzC3FD;EyC0GG;IACC;IACA;IACA;IACA;;EAEA;IACC;;EAGD;IACC;;EAMJ;IACC;;EAEA;IACC;;EAEA;IACC;;EAIF;IACC;;EAKA;IACC;;EAGD;IACC;IACA;;EAGD;IACC;IACA;IACA;;EAEA;IAGC;IACA;IACA;;EAWH;IACC;IACA;;EAKH;IACC;;;ACrMH;EACC;EACA;;AAIA;EACC;;A1CYA;E0CPA;IACC;;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAGD;AAAA;EAEC;;A1C2BA;E0C1CF;IAmBE;IACA;;EAEA;IACC;;EAGD;AAAA;IAEC;IACA;;EAGD;IACC;;;AAIF;EACC;;AAEA;EAGC;;AAGD;EACC;;AAGD;EACC;;AAEA;EACC;;AAID;EACC;;;AC/EJ;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;AAGD;EACC;EACA;EACA;;;ACXD;EACC;;;AAID;EACC;;AAEA;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;;ACpBH;EAEC;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;EACC;;;AAKH;EACC;;;AAGD;EACC;EACA;;;AAGD;AAAA;AAAA;AAIA;AAAA;EAEC;;;AAKA;EACC;;AAID;EAEC;EACA;;AASF;EAEC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AAGD;EACC;;AAEA;EAEC;;AAGD;EACC;;;AAMH;EACC;EACA;EACA;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEC;EACA;;AAGD;EACC;;AAGD;AAAA;AAAA;AAAA;EAIC;;A7C1GA;E6CiFF;IA6BE;;EAEA;IACC;;EAGD;AAAA;IAEC;;;;AAKH;AAAA;AAAA;AAIA;EAEC;;AAOA;EACC;EACA;EACA;EACA;EACA;EACA;;;AAIF;AAAA;AAAA;AAIA;EACC;EACA;EACA;;AAEA;EACC;;AAMA;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;AAMD;EACC;EACA;EACA;;AAGD;EACC;EACA;EACA;;;AC9MH;EACC;;;AAGD;AAAA;EAEC;;;AAGD;EACC;;;AAGD;EACC;EACA;;;AAaE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAUF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EACC;;AAMD;AAAA;AAAA;AAAA;AAAA;AAAA;EAEC;;AAQA;AAAA;AAAA;EACC;;;AAMJ;EACC;EACA;EACA;;;AClED;EACC;EACA;;;ACFD;EACC;;;ACDD;AAAA;AAAA;AAKC;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAMD;EACC;EACA;EACA;;AAGD;EACC;EACA;;AAGD;EACC;;;AAMH;AAAA;AAAA;AAIA;AAAA;EAEC;EACA;;;AAGD;EACC;EACA;;AAIC;EACC;EACA;EACA;EACA;EACA;;;AAKH;AACA;EACC;;;AAGD;AAAA;AAAA;AAGA;EACC;EACA;;AAEA;EACC;EACA;;;AAKF;EACC;EACA;;AAEA;EACC;EACA;;;AjD/DA;EiDoEF;AAAA;IAGE;;;;AAIF;AAAA;AAAA;AAKC;EACC;EACA;;AjDlFA;EiDgFD;IAKE;IACA;;;AAGD;EACC;EACA;EACA;EACA;EACA;EACA;;AAKF;EACC;EACA;EACA;;AAEA;EACC;;AjD1GD;EiD8EF;IAkCE;;EAEA;IACC;;;;AAKH;EACC;EACA;;;AAGD;EACC;;;AAGD;EACC;;;AAGD;AAAA;EAEC;;;AAID;EACC;EACA;;AAEA;EACC;EACA;;AAGD;EACC;;;AAIF;EACC;;;AAID;AAAA;EAEC;EACA;;;AAGD;EACC;;;AAGD;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAEA;EACC;;;AAKH;EACC;;AAEA;EACC;;;AAIF;EACC;EACA;;AAEA;EACC;;AAGD;EACC;;AAGD;AAAA;EAEC;;AAGD;AAAA;EAEC;EACA;;AjD3NA;EiDwND;AAAA;IAME;;;AAIF;AAAA;EAEC;EACA;;;AAIF;EACC;;AAEA;EACC;;AAGD;EACC;;AAGD;AAAA;AAAA;AAAA;AAAA;EAKC;EACA;EACA;EACA;EACA;;AAGD;EACC;;AjD3PA;EiDgQA;IACC;;EAGD;IAEC;;;;AC5RH;EACC;EACA;EACA;EACA;EACA;EACA;;AlDUC;EkDhBF;IASE;;;AAID;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;EACA;;AAEA;EACC;;AAID;EACC;EACA;;AAGD;EACC;;AAQA;EACC;;AAGD;EACC;;AAEA;EACC;EACA;;AAQL;EACC;EACA;EACA;;AAEA;EACC;;;AAKH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAEA;EAhBD;IAiBE;;;AlDtFD;EkDqED;IAqBE;IACA;IACA;IACA;IACA;;EAEA;IACC;IACA;;EAGD;IACC;;EAGD;IACC;;EAGD;IACC;;;AlD9GF;EkDoHD;IAGE;IACA;IACA;;;AAGD;EACC;EACA;EACA;EACA;;AlDhID;EkDuIC;IACC;;;AlDlIF;EkDoDF;IAoFE;IACA;;EAGA;IACC;IACA;IACA;IACA;IACA;IACA;IACA;;EAID;IACC;;EAID;IACC;;EAID;IACC;;EAEA;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AlDzLA;EkDiLD;IAWE;;EAEA;IACC;;;AAIF;EACC;EACA;EACA;;AlDhMD;EkD6LA;IAME;IACA;;EAEA;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACC;;AlD/NF;EkDmNA;IAgBE;;;AAGD;AAAA;EAEC;EACA;EACA;;AAEA;AAAA;EACC;;AAIF;EACC;;AAMA;EACC;;AAGD;EACC;;AAMH;EAEC;;AAGC;EALF;IAMG;;;AlDnQH;EkD6PA;IAWE;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IAEC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAGD;IACC;IACA;;EAGD;IACC;;EAGD;AAEC;IACA;AAEA;IACA;;EAEA;AAGC;IACA;AAEA;IACA;;EAIF;AAEC;IACA;AAEA;IACA;;EAEA;AAGC;IACA;AAEA;IACA;;;AAQL;EACC;;AlDjVA;EkDoVD;IAGE;IACA;;EAGA;IACC;;EAEA;IACC;IACA;;EAEA;IACC;;;AAQL;EACC;EACA;EACA;EACA;EACA;EACA;;AlDjXA;EkD2WD;IASE;IACA;IACA;IACA;;;AAGD;EACC;;AAGD;EAGC;;AAGD;EACC;EACA;;AAGD;EACC;EACA;EACA;EACA;;AAIF;AAAA;EAEC;EACA;;AAEA;AAAA;EACC;EACA;;AAKF;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;AlDraD;EkD4aC;IACC;;;AlDnbF;EkD2bE;IACC;;;AAKF;EACC;EACA;EACA;EACA;;AlD/bF;EkD2bC;IAOE;IACA;;;AASH;EACC;;AlD7cD;EkDkdC;IACC;IACA;;EAGD;IACC;;;AAMH;EACC;EACA;EACA;EACA;EACA;;AAEA;EACC;;;AlD5eD;EkDofD;IACC;IACA;IACA;;;AAK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","file":"style.css"}
\ No newline at end of file
diff --git a/src/wp-includes/css/admin-bar.css b/src/wp-includes/css/admin-bar.css
index acf3ecd6d967f..5ccc76177188c 100644
--- a/src/wp-includes/css/admin-bar.css
+++ b/src/wp-includes/css/admin-bar.css
@@ -723,7 +723,9 @@ html:lang(he-il) .rtl #wpadminbar * {
padding: 0;
position: absolute;
width: 1px;
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
word-wrap: normal !important;
+ word-break: normal !important;
}
#wpadminbar .screen-reader-shortcut {
@@ -815,7 +817,9 @@ html:lang(he-il) .rtl #wpadminbar * {
padding: 0;
position: absolute;
width: 1px;
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
word-wrap: normal !important;
+ word-break: normal !important;
}
#wpadminbar .menupop li:hover > .ab-sub-wrapper,
diff --git a/src/wp-includes/css/media-views.css b/src/wp-includes/css/media-views.css
index 45c6370d178db..682274cf66ea8 100644
--- a/src/wp-includes/css/media-views.css
+++ b/src/wp-includes/css/media-views.css
@@ -2506,7 +2506,9 @@
width: 1px;
border: 0;
margin: -1px;
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
word-wrap: normal !important;
+ word-break: normal !important;
}
/* Reveal the menu toggle button. */
diff --git a/src/wp-includes/css/wp-block-template-skip-link.css b/src/wp-includes/css/wp-block-template-skip-link.css
index 4176599ad0667..ff6d59641e7a9 100644
--- a/src/wp-includes/css/wp-block-template-skip-link.css
+++ b/src/wp-includes/css/wp-block-template-skip-link.css
@@ -7,7 +7,9 @@
padding: 0;
position: absolute !important;
width: 1px;
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
word-wrap: normal !important;
+ word-break: normal !important;
}
.skip-link.screen-reader-text:focus {
diff --git a/src/wp-includes/css/wp-embed-template.css b/src/wp-includes/css/wp-embed-template.css
index 7b86fdd3d3ae9..db1cca12acc5b 100644
--- a/src/wp-includes/css/wp-embed-template.css
+++ b/src/wp-includes/css/wp-embed-template.css
@@ -17,7 +17,9 @@ body {
padding: 0;
position: absolute;
width: 1px;
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
word-wrap: normal !important;
+ word-break: normal !important;
}
/* Dashicons */
diff --git a/src/wp-includes/deprecated.php b/src/wp-includes/deprecated.php
index 11dc214cd0ed5..f9aac900cfea9 100644
--- a/src/wp-includes/deprecated.php
+++ b/src/wp-includes/deprecated.php
@@ -6166,7 +6166,9 @@ function the_block_template_skip_link() {
padding: 0;
position: absolute !important;
width: 1px;
+ /* Many screen reader and browser combinations announce broken words as they would appear visually. */
word-wrap: normal !important;
+ word-break: normal !important;
}
.skip-link.screen-reader-text:focus {
From 50cb336b4fcffd3ceace306061838e5e6dcc2490 Mon Sep 17 00:00:00 2001
From: Weston Ruter
Date: Fri, 13 Feb 2026 17:51:41 +0000
Subject: [PATCH 042/145] Code Modernization: Use null coalescing operator
instead of ternaries where possible.
Developed in https://github.com/WordPress/wordpress-develop/pull/10911
Follow-up to [61621], [61464].
Props soean, westonruter.
See #63430.
git-svn-id: https://develop.svn.wordpress.org/trunk@61637 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-admin/edit-comments.php | 14 +++++++-------
src/wp-includes/class-wp-block-parser-frame.php | 2 +-
src/wp-includes/class-wp-locale.php | 2 +-
src/wp-includes/class-wp-theme-json-resolver.php | 2 +-
.../customize/class-wp-customize-partial.php | 2 +-
src/wp-includes/functions.php | 2 +-
.../class-wp-interactivity-api.php | 2 +-
src/wp-includes/l10n.php | 2 +-
src/wp-includes/link-template.php | 2 +-
.../endpoints/class-wp-rest-posts-controller.php | 2 +-
src/wp-includes/user.php | 4 ++--
src/wp-includes/widgets.php | 16 ++++++++--------
12 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/src/wp-admin/edit-comments.php b/src/wp-admin/edit-comments.php
index 29ec964924a4d..46cf66d393985 100644
--- a/src/wp-admin/edit-comments.php
+++ b/src/wp-admin/edit-comments.php
@@ -319,13 +319,13 @@
|| isset( $_REQUEST['unspammed'] )
|| isset( $_REQUEST['same'] )
) {
- $approved = isset( $_REQUEST['approved'] ) ? (int) $_REQUEST['approved'] : 0;
- $deleted = isset( $_REQUEST['deleted'] ) ? (int) $_REQUEST['deleted'] : 0;
- $trashed = isset( $_REQUEST['trashed'] ) ? (int) $_REQUEST['trashed'] : 0;
- $untrashed = isset( $_REQUEST['untrashed'] ) ? (int) $_REQUEST['untrashed'] : 0;
- $spammed = isset( $_REQUEST['spammed'] ) ? (int) $_REQUEST['spammed'] : 0;
- $unspammed = isset( $_REQUEST['unspammed'] ) ? (int) $_REQUEST['unspammed'] : 0;
- $same = isset( $_REQUEST['same'] ) ? (int) $_REQUEST['same'] : 0;
+ $approved = (int) ( $_REQUEST['approved'] ?? 0 );
+ $deleted = (int) ( $_REQUEST['deleted'] ?? 0 );
+ $trashed = (int) ( $_REQUEST['trashed'] ?? 0 );
+ $untrashed = (int) ( $_REQUEST['untrashed'] ?? 0 );
+ $spammed = (int) ( $_REQUEST['spammed'] ?? 0 );
+ $unspammed = (int) ( $_REQUEST['unspammed'] ?? 0 );
+ $same = (int) ( $_REQUEST['same'] ?? 0 );
if ( $approved > 0 || $deleted > 0 || $trashed > 0 || $untrashed > 0 || $spammed > 0 || $unspammed > 0 || $same > 0 ) {
if ( $approved > 0 ) {
diff --git a/src/wp-includes/class-wp-block-parser-frame.php b/src/wp-includes/class-wp-block-parser-frame.php
index 6ab5dd3087dfb..afa836d01f678 100644
--- a/src/wp-includes/class-wp-block-parser-frame.php
+++ b/src/wp-includes/class-wp-block-parser-frame.php
@@ -73,7 +73,7 @@ public function __construct( $block, $token_start, $token_length, $prev_offset =
$this->block = $block;
$this->token_start = $token_start;
$this->token_length = $token_length;
- $this->prev_offset = isset( $prev_offset ) ? $prev_offset : $token_start + $token_length;
+ $this->prev_offset = $prev_offset ?? $token_start + $token_length;
$this->leading_html_start = $leading_html_start;
}
}
diff --git a/src/wp-includes/class-wp-locale.php b/src/wp-includes/class-wp-locale.php
index 0fcb130b81f9d..e18c0c4f1d897 100644
--- a/src/wp-includes/class-wp-locale.php
+++ b/src/wp-includes/class-wp-locale.php
@@ -450,7 +450,7 @@ public function get_word_count_type() {
* enter 'characters_excluding_spaces' or 'characters_including_spaces'. Otherwise, enter 'words'.
* Do not translate into your own language.
*/
- $word_count_type = is_null( $this->word_count_type ) ? _x( 'words', 'Word count type. Do not translate!' ) : $this->word_count_type;
+ $word_count_type = $this->word_count_type ?? _x( 'words', 'Word count type. Do not translate!' );
// Check for valid types.
if ( 'characters_excluding_spaces' !== $word_count_type && 'characters_including_spaces' !== $word_count_type ) {
diff --git a/src/wp-includes/class-wp-theme-json-resolver.php b/src/wp-includes/class-wp-theme-json-resolver.php
index 4d5bf3dce9ee3..85124cf0e0cb6 100644
--- a/src/wp-includes/class-wp-theme-json-resolver.php
+++ b/src/wp-includes/class-wp-theme-json-resolver.php
@@ -144,7 +144,7 @@ public static function get_fields_to_translate() {
protected static function translate( $theme_json, $domain = 'default' ) {
if ( null === static::$i18n_schema ) {
$i18n_schema = wp_json_file_decode( __DIR__ . '/theme-i18n.json' );
- static::$i18n_schema = null === $i18n_schema ? array() : $i18n_schema;
+ static::$i18n_schema = $i18n_schema ?? array();
}
return translate_settings_using_i18n_schema( static::$i18n_schema, $theme_json, $domain );
diff --git a/src/wp-includes/customize/class-wp-customize-partial.php b/src/wp-includes/customize/class-wp-customize-partial.php
index 06502bec115e8..b6dfa02ccd5f9 100644
--- a/src/wp-includes/customize/class-wp-customize-partial.php
+++ b/src/wp-includes/customize/class-wp-customize-partial.php
@@ -230,7 +230,7 @@ final public function render( $container_context = array() ) {
* Note that the string return takes precedence because the $ob_render may just\
* include PHP warnings or notices.
*/
- $rendered = null !== $return_render ? $return_render : $ob_render;
+ $rendered = $return_render ?? $ob_render;
}
/**
diff --git a/src/wp-includes/functions.php b/src/wp-includes/functions.php
index 9cdeef75788f2..fbf5a3d481756 100644
--- a/src/wp-includes/functions.php
+++ b/src/wp-includes/functions.php
@@ -951,7 +951,7 @@ function do_enclose( $content, $post ) {
$headers = wp_get_http_headers( $url );
if ( $headers ) {
- $len = isset( $headers['Content-Length'] ) ? (int) $headers['Content-Length'] : 0;
+ $len = (int) ( $headers['Content-Length'] ?? 0 );
$type = $headers['Content-Type'] ?? '';
$allowed_types = array( 'video', 'audio' );
diff --git a/src/wp-includes/interactivity-api/class-wp-interactivity-api.php b/src/wp-includes/interactivity-api/class-wp-interactivity-api.php
index f8ac1b2b69ea7..bc8da9c9b2e7b 100644
--- a/src/wp-includes/interactivity-api/class-wp-interactivity-api.php
+++ b/src/wp-includes/interactivity-api/class-wp-interactivity-api.php
@@ -453,7 +453,7 @@ public function process_directives( string $html ): string {
$this->namespace_stack = null;
$this->context_stack = null;
- return null === $result ? $html : $result;
+ return $result ?? $html;
}
/**
diff --git a/src/wp-includes/l10n.php b/src/wp-includes/l10n.php
index 40a5e14ade879..cd6eeaed5e0b6 100644
--- a/src/wp-includes/l10n.php
+++ b/src/wp-includes/l10n.php
@@ -1490,7 +1490,7 @@ function get_available_languages( $dir = null ) {
$languages = array();
- $path = is_null( $dir ) ? WP_LANG_DIR : $dir;
+ $path = $dir ?? WP_LANG_DIR;
$lang_files = $wp_textdomain_registry->get_language_files_from_path( $path );
if ( $lang_files ) {
diff --git a/src/wp-includes/link-template.php b/src/wp-includes/link-template.php
index beafac3226130..55db4a18d6d2c 100644
--- a/src/wp-includes/link-template.php
+++ b/src/wp-includes/link-template.php
@@ -110,7 +110,7 @@ function wp_force_plain_post_permalink( $post = null, $sample = null ) {
$sample = true;
} else {
$post = get_post( $post );
- $sample = null !== $sample ? $sample : false;
+ $sample = $sample ?? false;
}
if ( ! $post ) {
diff --git a/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php b/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
index a69ce9fa95454..076f476f3404e 100644
--- a/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
+++ b/src/wp-includes/rest-api/endpoints/class-wp-rest-posts-controller.php
@@ -483,7 +483,7 @@ static function ( $format ) {
remove_filter( 'post_password_required', array( $this, 'check_password_required' ) );
}
- $page = isset( $query_args['paged'] ) ? (int) $query_args['paged'] : 0;
+ $page = (int) ( $query_args['paged'] ?? 0 );
$total_posts = $posts_query->found_posts;
if ( $total_posts < 1 && $page > 1 ) {
diff --git a/src/wp-includes/user.php b/src/wp-includes/user.php
index 7885efe531b49..d252c8c1883e1 100644
--- a/src/wp-includes/user.php
+++ b/src/wp-includes/user.php
@@ -728,7 +728,7 @@ function get_current_user_id() {
return 0;
}
$user = wp_get_current_user();
- return ( isset( $user->ID ) ? (int) $user->ID : 0 );
+ return (int) ( $user->ID ?? 0 );
}
/**
@@ -2682,7 +2682,7 @@ function wp_update_user( $userdata ) {
$userdata_raw = $userdata;
- $user_id = isset( $userdata['ID'] ) ? (int) $userdata['ID'] : 0;
+ $user_id = (int) ( $userdata['ID'] ?? 0 );
if ( ! $user_id ) {
return new WP_Error( 'invalid_user_id', __( 'Invalid user ID.' ) );
}
diff --git a/src/wp-includes/widgets.php b/src/wp-includes/widgets.php
index 799a5973611ae..6d2af50844313 100644
--- a/src/wp-includes/widgets.php
+++ b/src/wp-includes/widgets.php
@@ -1720,15 +1720,15 @@ function wp_widget_rss_form( $args, $inputs = null ) {
$args['title'] = $args['title'] ?? '';
$args['url'] = $args['url'] ?? '';
- $args['items'] = isset( $args['items'] ) ? (int) $args['items'] : 0;
+ $args['items'] = (int) ( $args['items'] ?? 0 );
if ( $args['items'] < 1 || 20 < $args['items'] ) {
$args['items'] = 10;
}
- $args['show_summary'] = isset( $args['show_summary'] ) ? (int) $args['show_summary'] : (int) $inputs['show_summary'];
- $args['show_author'] = isset( $args['show_author'] ) ? (int) $args['show_author'] : (int) $inputs['show_author'];
- $args['show_date'] = isset( $args['show_date'] ) ? (int) $args['show_date'] : (int) $inputs['show_date'];
+ $args['show_summary'] = (int) ( $args['show_summary'] ?? $inputs['show_summary'] );
+ $args['show_author'] = (int) ( $args['show_author'] ?? $inputs['show_author'] );
+ $args['show_date'] = (int) ( $args['show_date'] ?? $inputs['show_date'] );
if ( ! empty( $args['error'] ) ) {
echo '' . __( 'RSS Error:' ) . ' ' . esc_html( $args['error'] ) . '
';
@@ -1798,10 +1798,10 @@ function wp_widget_rss_process( $widget_rss, $check_feed = true ) {
$items = 10;
}
$url = sanitize_url( strip_tags( $widget_rss['url'] ) );
- $title = isset( $widget_rss['title'] ) ? trim( strip_tags( $widget_rss['title'] ) ) : '';
- $show_summary = isset( $widget_rss['show_summary'] ) ? (int) $widget_rss['show_summary'] : 0;
- $show_author = isset( $widget_rss['show_author'] ) ? (int) $widget_rss['show_author'] : 0;
- $show_date = isset( $widget_rss['show_date'] ) ? (int) $widget_rss['show_date'] : 0;
+ $title = trim( strip_tags( $widget_rss['title'] ?? '' ) );
+ $show_summary = (int) ( $widget_rss['show_summary'] ?? 0 );
+ $show_author = (int) ( $widget_rss['show_author'] ?? 0 );
+ $show_date = (int) ( $widget_rss['show_date'] ?? 0 );
$error = false;
$link = '';
From 039e10065ffe5eef37c06af0a9ae7fad7acd8d94 Mon Sep 17 00:00:00 2001
From: Weston Ruter
Date: Fri, 13 Feb 2026 18:33:22 +0000
Subject: [PATCH 043/145] Docs: Add missing `@global` variable descriptions.
Developed in https://github.com/WordPress/wordpress-develop/pull/10864
Follow-up to [61604], [61592].
Props noruzzaman, huzaifaalmesbah, shailu25, sabernhardt, westonruter.
See #64224.
git-svn-id: https://develop.svn.wordpress.org/trunk@61638 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-admin/includes/ajax-actions.php | 22 +++++++++----------
src/wp-admin/includes/class-core-upgrader.php | 2 +-
.../includes/class-custom-image-header.php | 2 +-
.../includes/class-theme-upgrader.php | 2 +-
.../class-walker-nav-menu-checklist.php | 4 ++--
.../includes/class-walker-nav-menu-edit.php | 2 +-
.../includes/class-wp-comments-list-table.php | 19 ++++++++--------
src/wp-admin/install.php | 1 +
8 files changed, 27 insertions(+), 27 deletions(-)
diff --git a/src/wp-admin/includes/ajax-actions.php b/src/wp-admin/includes/ajax-actions.php
index e79642dc0b46e..f52f5f5c1d80f 100644
--- a/src/wp-admin/includes/ajax-actions.php
+++ b/src/wp-admin/includes/ajax-actions.php
@@ -1241,7 +1241,7 @@ function wp_ajax_get_tagcloud() {
*
* @since 3.1.0
*
- * @global int $post_id
+ * @global int $post_id Post ID.
*
* @param string $action Action to perform.
*/
@@ -2353,9 +2353,9 @@ function wp_ajax_widgets_order() {
*
* @since 3.1.0
*
- * @global array $wp_registered_widgets
- * @global array $wp_registered_widget_controls
- * @global array $wp_registered_widget_updates
+ * @global array $wp_registered_widgets Registered widgets.
+ * @global array $wp_registered_widget_controls Registered widget controls.
+ * @global array $wp_registered_widget_updates Registered widget updates.
*/
function wp_ajax_save_widget() {
global $wp_registered_widgets, $wp_registered_widget_controls, $wp_registered_widget_updates;
@@ -2462,7 +2462,7 @@ function wp_ajax_save_widget() {
*
* @since 3.9.0
*
- * @global WP_Customize_Manager $wp_customize
+ * @global WP_Customize_Manager $wp_customize Customizer manager object.
*/
function wp_ajax_update_widget() {
global $wp_customize;
@@ -3588,7 +3588,7 @@ function wp_ajax_get_revision_diffs() {
*
* @since 3.8.0
*
- * @global array $_wp_admin_css_colors
+ * @global array $_wp_admin_css_colors Registered admin CSS color schemes.
*/
function wp_ajax_save_user_color_scheme() {
global $_wp_admin_css_colors;
@@ -3617,8 +3617,8 @@ function wp_ajax_save_user_color_scheme() {
*
* @since 3.9.0
*
- * @global array $themes_allowedtags
- * @global array $theme_field_defaults
+ * @global array $themes_allowedtags Allowed HTML tags for theme descriptions.
+ * @global array $theme_field_defaults Default theme fields.
*/
function wp_ajax_query_themes() {
global $themes_allowedtags, $theme_field_defaults;
@@ -3750,8 +3750,8 @@ function wp_ajax_query_themes() {
*
* @global WP_Post $post Global post object.
* @global WP_Embed $wp_embed WordPress Embed object.
- * @global WP_Scripts $wp_scripts
- * @global int $content_width
+ * @global WP_Scripts $wp_scripts Script dependencies object.
+ * @global int $content_width Shared post content width.
*/
function wp_ajax_parse_embed() {
global $post, $wp_embed, $content_width;
@@ -3891,7 +3891,7 @@ function wp_ajax_parse_embed() {
* @since 4.0.0
*
* @global WP_Post $post Global post object.
- * @global WP_Scripts $wp_scripts
+ * @global WP_Scripts $wp_scripts Script dependencies object.
*/
function wp_ajax_parse_media_shortcode() {
global $post, $wp_scripts;
diff --git a/src/wp-admin/includes/class-core-upgrader.php b/src/wp-admin/includes/class-core-upgrader.php
index 184376654295e..8a712a4afbc76 100644
--- a/src/wp-admin/includes/class-core-upgrader.php
+++ b/src/wp-admin/includes/class-core-upgrader.php
@@ -48,7 +48,7 @@ public function upgrade_strings() {
* @since 2.8.0
*
* @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
- * @global callable $_wp_filesystem_direct_method
+ * @global callable $_wp_filesystem_direct_method Filesystem direct method callback.
*
* @param object $current Response object for whether WordPress is current.
* @param array $args {
diff --git a/src/wp-admin/includes/class-custom-image-header.php b/src/wp-admin/includes/class-custom-image-header.php
index f95f9bc95dfe5..eb65605728062 100644
--- a/src/wp-admin/includes/class-custom-image-header.php
+++ b/src/wp-admin/includes/class-custom-image-header.php
@@ -268,7 +268,7 @@ public function take_action() {
*
* @since 3.0.0
*
- * @global array $_wp_default_headers
+ * @global array $_wp_default_headers Default headers registered for themes.
*/
public function process_default_headers() {
global $_wp_default_headers;
diff --git a/src/wp-admin/includes/class-theme-upgrader.php b/src/wp-admin/includes/class-theme-upgrader.php
index 47062d3fd60dc..9a963d433cf7e 100644
--- a/src/wp-admin/includes/class-theme-upgrader.php
+++ b/src/wp-admin/includes/class-theme-upgrader.php
@@ -746,7 +746,7 @@ public function current_after( $response, $theme ) {
*
* @since 2.8.0
*
- * @global WP_Filesystem_Base $wp_filesystem Subclass
+ * @global WP_Filesystem_Base $wp_filesystem Filesystem subclass.
*
* @param bool $removed
* @param string $local_destination
diff --git a/src/wp-admin/includes/class-walker-nav-menu-checklist.php b/src/wp-admin/includes/class-walker-nav-menu-checklist.php
index 099d2500762bb..b4e4f1a48049a 100644
--- a/src/wp-admin/includes/class-walker-nav-menu-checklist.php
+++ b/src/wp-admin/includes/class-walker-nav-menu-checklist.php
@@ -64,8 +64,8 @@ public function end_lvl( &$output, $depth = 0, $args = null ) {
* @since 5.9.0 Renamed `$item` to `$data_object` and `$id` to `$current_object_id`
* to match parent class for PHP 8 named parameter support.
*
- * @global int $_nav_menu_placeholder
- * @global int|string $nav_menu_selected_id
+ * @global int $_nav_menu_placeholder A placeholder for the nav menu item ID.
+ * @global int|string $nav_menu_selected_id The ID of the selected nav menu.
*
* @param string $output Used to append additional content (passed by reference).
* @param WP_Post $data_object Menu item data object.
diff --git a/src/wp-admin/includes/class-walker-nav-menu-edit.php b/src/wp-admin/includes/class-walker-nav-menu-edit.php
index 66ea47bb1fd0e..44a57c0c99f26 100644
--- a/src/wp-admin/includes/class-walker-nav-menu-edit.php
+++ b/src/wp-admin/includes/class-walker-nav-menu-edit.php
@@ -49,7 +49,7 @@ public function end_lvl( &$output, $depth = 0, $args = null ) {}
* @since 5.9.0 Renamed `$item` to `$data_object` and `$id` to `$current_object_id`
* to match parent class for PHP 8 named parameter support.
*
- * @global int $_wp_nav_menu_max_depth
+ * @global int $_wp_nav_menu_max_depth The maximum depth of the nav menu.
*
* @param string $output Used to append additional content (passed by reference).
* @param WP_Post $data_object Menu item data object.
diff --git a/src/wp-admin/includes/class-wp-comments-list-table.php b/src/wp-admin/includes/class-wp-comments-list-table.php
index 78d6215376569..1feaeb3283bcd 100644
--- a/src/wp-admin/includes/class-wp-comments-list-table.php
+++ b/src/wp-admin/includes/class-wp-comments-list-table.php
@@ -31,7 +31,7 @@ class WP_Comments_List_Table extends WP_List_Table {
*
* @see WP_List_Table::__construct() for more information on default arguments.
*
- * @global int $post_id
+ * @global int $post_id The ID of the post to show comments for.
*
* @param array $args An associative array of arguments.
*/
@@ -224,8 +224,7 @@ public function get_per_page( $comment_status = 'all' ) {
/**
* Displays a message when no comments are found.
- *
- * @global string $comment_status
+ * @global string $comment_status The current comment status filter.
*/
public function no_items() {
global $comment_status;
@@ -242,9 +241,9 @@ public function no_items() {
/**
* Returns an array of comment status links.
*
- * @global int $post_id
- * @global string $comment_status
- * @global string $comment_type
+ * @global int $post_id The ID of the post to show comments for.
+ * @global string $comment_status The current comment status.
+ * @global string $comment_type The current comment type.
*
* @return array Comment status HTML links keyed by view.
*/
@@ -412,8 +411,8 @@ protected function get_bulk_actions() {
/**
* Displays extra controls between bulk actions and pagination.
*
- * @global string $comment_status
- * @global string $comment_type
+ * @global string $comment_status Current comment status.
+ * @global string $comment_type Current comment type.
*
* @param string $which The location of the extra table nav markup: Either 'top' or 'bottom'.
*/
@@ -485,7 +484,7 @@ public function current_action() {
/**
* Gets the list of columns.
*
- * @global int $post_id
+ * @global int $post_id The ID of the post comments are being shown for.
*
* @return string[] Array of column titles keyed by their column name.
*/
@@ -1011,7 +1010,7 @@ public function column_comment( $comment ) {
/**
* Outputs the author column.
*
- * @global string $comment_status
+ * @global string $comment_status The current comment status.
*
* @param WP_Comment $comment The comment object.
*/
diff --git a/src/wp-admin/install.php b/src/wp-admin/install.php
index 7fcacab9bd6c9..8083e55fc115c 100644
--- a/src/wp-admin/install.php
+++ b/src/wp-admin/install.php
@@ -342,6 +342,7 @@ function display_setup_form( $error = null ) {
/**
* @global string $wp_local_package Locale code of the package.
* @global WP_Locale $wp_locale WordPress date and time locale object.
+ * @global wpdb $wpdb WordPress database abstraction object.
*/
$language = '';
if ( ! empty( $_REQUEST['language'] ) ) {
From 208ec4d197b05d0487ac3c1476ed59c46559edf3 Mon Sep 17 00:00:00 2001
From: Weston Ruter
Date: Fri, 13 Feb 2026 20:25:57 +0000
Subject: [PATCH 044/145] Cron API: Improve documentation on matching event
arguments to avoid duplicate entries.
This harmonizes and clarifies the documentation for the `$args` parameter in `wp_schedule_event()`, `wp_schedule_single_event()`, `wp_reschedule_event()`, `wp_unschedule_event()`, `wp_clear_scheduled_hook()`, and `wp_next_scheduled()`, to emphasize the requirement for matching arguments and the risks of mismatching them.
Developed in https://github.com/WordPress/wordpress-develop/pull/10890
Props manishxdp, westonruter, ovidiul, digamberpradhan.
Fixes #43801.
git-svn-id: https://develop.svn.wordpress.org/trunk@61639 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/cron.php | 39 +++++++++++++++++++++++++++++++++------
1 file changed, 33 insertions(+), 6 deletions(-)
diff --git a/src/wp-includes/cron.php b/src/wp-includes/cron.php
index c6eab59a20e40..7bbb0036f1c02 100644
--- a/src/wp-includes/cron.php
+++ b/src/wp-includes/cron.php
@@ -33,6 +33,15 @@
* hook's callback function. Each value in the array
* is passed to the callback as an individual parameter.
* The array keys are ignored. Default empty array.
+ *
+ * These arguments are used to uniquely identify the
+ * scheduled event and must match those used when the
+ * event was originally scheduled. If the arguments
+ * do not match exactly, WordPress will treat the
+ * event as different, which can lead to duplicate
+ * cron events being scheduled unintentionally,
+ * excessive growth of the 'cron' option, and
+ * database performance issues.
* @param bool $wp_error Optional. Whether to return a WP_Error on failure. Default false.
* @return bool|WP_Error True if event successfully scheduled. False or WP_Error on failure.
*/
@@ -228,6 +237,15 @@ function wp_schedule_single_event( $timestamp, $hook, $args = array(), $wp_error
* hook's callback function. Each value in the array
* is passed to the callback as an individual parameter.
* The array keys are ignored. Default empty array.
+ *
+ * These arguments are used to uniquely identify the
+ * scheduled event and must match those used when the
+ * event was originally scheduled. If the arguments
+ * do not match exactly, WordPress will treat the
+ * event as different, which can lead to duplicate
+ * cron events being scheduled unintentionally,
+ * excessive growth of the 'cron' option, and
+ * database performance issues.
* @param bool $wp_error Optional. Whether to return a WP_Error on failure. Default false.
* @return bool|WP_Error True if event successfully scheduled. False or WP_Error on failure.
*/
@@ -334,6 +352,15 @@ function wp_schedule_event( $timestamp, $recurrence, $hook, $args = array(), $wp
* hook's callback function. Each value in the array
* is passed to the callback as an individual parameter.
* The array keys are ignored. Default empty array.
+ *
+ * These arguments are used to uniquely identify the
+ * scheduled event and must match those used when the
+ * event was originally scheduled. If the arguments
+ * do not match exactly, WordPress will treat the
+ * event as different, which can lead to duplicate
+ * cron events being scheduled unintentionally,
+ * excessive growth of the 'cron' option, and
+ * database performance issues.
* @param bool $wp_error Optional. Whether to return a WP_Error on failure. Default false.
* @return bool|WP_Error True if event successfully rescheduled. False or WP_Error on failure.
*/
@@ -454,8 +481,8 @@ function wp_reschedule_event( $timestamp, $recurrence, $hook, $args = array(), $
* @param string $hook Action hook of the event.
* @param array $args Optional. Array containing each separate argument to pass to the hook's callback function.
* Although not passed to a callback, these arguments are used to uniquely identify the
- * event, so they should be the same as those used when originally scheduling the event.
- * Default empty array.
+ * event, so they must match those used when originally scheduling the event. If the
+ * arguments do not match exactly, the event will not be found. Default empty array.
* @param bool $wp_error Optional. Whether to return a WP_Error on failure. Default false.
* @return bool|WP_Error True if event successfully unscheduled. False or WP_Error on failure.
*/
@@ -539,8 +566,8 @@ function wp_unschedule_event( $timestamp, $hook, $args = array(), $wp_error = fa
* @param string $hook Action hook, the execution of which will be unscheduled.
* @param array $args Optional. Array containing each separate argument to pass to the hook's callback function.
* Although not passed to a callback, these arguments are used to uniquely identify the
- * event, so they should be the same as those used when originally scheduling the event.
- * Default empty array.
+ * event, so they must match those used when originally scheduling the event. If the
+ * arguments do not match exactly, the event will not be found. Default empty array.
* @param bool $wp_error Optional. Whether to return a WP_Error on failure. Default false.
* @return int|false|WP_Error On success an integer indicating number of events unscheduled (0 indicates no
* events were registered with the hook and arguments combination), false or WP_Error
@@ -825,8 +852,8 @@ function wp_get_scheduled_event( $hook, $args = array(), $timestamp = null ) {
* @param string $hook Action hook of the event.
* @param array $args Optional. Array containing each separate argument to pass to the hook's callback function.
* Although not passed to a callback, these arguments are used to uniquely identify the
- * event, so they should be the same as those used when originally scheduling the event.
- * Default empty array.
+ * event, so they must match those used when originally scheduling the event. If the
+ * arguments do not match exactly, the event will not be found. Default empty array.
* @return int|false The Unix timestamp (UTC) of the next time the event will occur. False if the event doesn't exist.
*/
function wp_next_scheduled( $hook, $args = array() ) {
From d3a355fec0ead2ff9f024ac0b8bba097b169aaa6 Mon Sep 17 00:00:00 2001
From: Weston Ruter
Date: Fri, 13 Feb 2026 20:53:48 +0000
Subject: [PATCH 045/145] Code Quality: Remove unnecessary array check for
value return in `WP_Theme_JSON::get_property_value()`.
Developed in https://github.com/WordPress/wordpress-develop/pull/10928
Follow-up to https://github.com/WordPress/gutenberg/commit/ccd529d7a6af
Props soean, mukesh27, westonruter.
Fixes #64636.
git-svn-id: https://develop.svn.wordpress.org/trunk@61640 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/class-wp-theme-json.php | 4 ----
1 file changed, 4 deletions(-)
diff --git a/src/wp-includes/class-wp-theme-json.php b/src/wp-includes/class-wp-theme-json.php
index 0fc6eb0ac50bc..c7929dad9e689 100644
--- a/src/wp-includes/class-wp-theme-json.php
+++ b/src/wp-includes/class-wp-theme-json.php
@@ -2559,10 +2559,6 @@ protected static function get_property_value( $styles, $path, $theme_json = null
}
}
- if ( is_array( $value ) ) {
- return $value;
- }
-
return $value;
}
From 86e3f9dccdbf8829c6d691d62ba3e647e5018e2a Mon Sep 17 00:00:00 2001
From: Sergey Biryukov
Date: Fri, 13 Feb 2026 23:58:58 +0000
Subject: [PATCH 046/145] Coding Standards: Remove unnecessary annotations for
`__ngettext()` and `__ngettext_noop()`.
Since PHPCompatibility 9.3.2, the `ReservedFunctionNames` sniff skips functions with a `@deprecated` tag.
Reference: [https://github.com/PHPCompatibility/PHPCompatibility/pull/917 WPCS: ReservedFunctionNames: ignore deprecated functions].
Follow-up to [46290].
Props rodrigosprimo.
See #64627.
git-svn-id: https://develop.svn.wordpress.org/trunk@61641 602fd350-edb4-49c9-b593-d223f7449a82
---
src/wp-includes/deprecated.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/wp-includes/deprecated.php b/src/wp-includes/deprecated.php
index f9aac900cfea9..390d632492b66 100644
--- a/src/wp-includes/deprecated.php
+++ b/src/wp-includes/deprecated.php
@@ -1820,7 +1820,7 @@ function _nc( $single, $plural, $number, $domain = 'default' ) {
* @deprecated 2.8.0 Use _n()
* @see _n()
*/
-function __ngettext( ...$args ) { // phpcs:ignore PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore
+function __ngettext( ...$args ) {
_deprecated_function( __FUNCTION__, '2.8.0', '_n()' );
return _n( ...$args );
}
@@ -1832,7 +1832,7 @@ function __ngettext( ...$args ) { // phpcs:ignore PHPCompatibility.FunctionNameR
* @deprecated 2.8.0 Use _n_noop()
* @see _n_noop()
*/
-function __ngettext_noop( ...$args ) { // phpcs:ignore PHPCompatibility.FunctionNameRestrictions.ReservedFunctionNames.FunctionDoubleUnderscore
+function __ngettext_noop( ...$args ) {
_deprecated_function( __FUNCTION__, '2.8.0', '_n_noop()' );
return _n_noop( ...$args );
From 6710308a05c8205ab722e62e1261853134aa15d5 Mon Sep 17 00:00:00 2001
From: Weston Ruter
Date: Sat, 14 Feb 2026 00:36:54 +0000
Subject: [PATCH 047/145] Code Quality: Remove unused
`WP_Block_Bindings_Registry::$supported_blocks` private member variable.
Developed in https://github.com/WordPress/wordpress-develop/pull/10912
Follow-up to [59080], [57641].
Props soean.
See #64238, #61642.
Fixes #64633.
git-svn-id: https://develop.svn.wordpress.org/trunk@61642 602fd350-edb4-49c9-b593-d223f7449a82
---
.../class-wp-block-bindings-registry.php | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/src/wp-includes/class-wp-block-bindings-registry.php b/src/wp-includes/class-wp-block-bindings-registry.php
index 519453d22ba92..efbe344f09369 100644
--- a/src/wp-includes/class-wp-block-bindings-registry.php
+++ b/src/wp-includes/class-wp-block-bindings-registry.php
@@ -44,19 +44,6 @@ final class WP_Block_Bindings_Registry {
'uses_context',
);
- /**
- * Supported blocks that can use the block bindings API.
- *
- * @since 6.5.0
- * @var string[]
- */
- private $supported_blocks = array(
- 'core/paragraph',
- 'core/heading',
- 'core/image',
- 'core/button',
- );
-
/**
* Registers a new block bindings source.
*
From a76dd2926781492793209098967e3b9ced77aa86 Mon Sep 17 00:00:00 2001
From: Sergey Biryukov
Date: Sat, 14 Feb 2026 23:45:50 +0000
Subject: [PATCH 048/145] Twenty Twenty: Remove `EscapeOutput` annotations.
These are from the `WordPress-Extra` standard, which is not included in the `phpcs.xml.dist` configuration (the repository uses `WordPress-Core`).
Includes removing unnecessary `WordPress.WP.CapitalPDangit.Misspelled` annotation on the `wordpress` array key, as the `CapitalPDangit` sniff skips array definitions by design.
Follow-up to [46271], [46445].
Props rodrigosprimo.
See #64627.
git-svn-id: https://develop.svn.wordpress.org/trunk@61643 602fd350-edb4-49c9-b593-d223f7449a82
---
.../twentytwenty/classes/class-twentytwenty-svg-icons.php | 1 -
.../classes/class-twentytwenty-walker-comment.php | 6 +++---
src/wp-content/themes/twentytwenty/comments.php | 2 +-
src/wp-content/themes/twentytwenty/inc/custom-css.php | 2 +-
src/wp-content/themes/twentytwenty/inc/svg-icons.php | 2 +-
src/wp-content/themes/twentytwenty/inc/template-tags.php | 6 +++---
src/wp-content/themes/twentytwenty/searchform.php | 2 +-
.../themes/twentytwenty/template-parts/content-cover.php | 4 ++--
.../themes/twentytwenty/template-parts/entry-header.php | 2 +-
.../themes/twentytwenty/template-parts/featured-image.php | 2 +-
.../twentytwenty/template-parts/footer-menus-widgets.php | 2 +-
.../themes/twentytwenty/template-parts/pagination.php | 2 +-
12 files changed, 16 insertions(+), 17 deletions(-)
diff --git a/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-svg-icons.php b/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-svg-icons.php
index a87bf84db244c..946045e982347 100644
--- a/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-svg-icons.php
+++ b/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-svg-icons.php
@@ -327,7 +327,6 @@ public static function get_social_link_svg( $uri ) {
'whatsapp' => '
',
- // phpcs:disable WordPress.WP.CapitalPDangit.Misspelled
'wordpress' => ' ',
'yelp' => ' ',
diff --git a/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-walker-comment.php b/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-walker-comment.php
index eb2ec8efe55a6..8012677ce8e76 100644
--- a/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-walker-comment.php
+++ b/src/wp-content/themes/twentytwenty/classes/class-twentytwenty-walker-comment.php
@@ -37,7 +37,7 @@ protected function html5_comment( $comment, $depth, $args ) {
$tag = ( 'div' === $args['style'] ) ? 'div' : 'li';
?>
- < id="comment-" has_children ? 'parent' : '', $comment ); ?>>
+ < id="comment-" has_children ? 'parent' : '', $comment ); ?>>