<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[52320] trunk/src/wp-includes: Docs: Some documentation improvements for `WP_Theme_JSON` and `WP_Theme_JSON_Resolver` classes:</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { white-space: pre-line; overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta" style="font-size: 105%">
<dt style="float: left; width: 6em; font-weight: bold">Revision</dt> <dd><a style="font-weight: bold" href="https://core.trac.wordpress.org/changeset/52320">52320</a><script type="application/ld+json">{"@context":"http://schema.org","@type":"EmailMessage","description":"Review this Commit","action":{"@type":"ViewAction","url":"https://core.trac.wordpress.org/changeset/52320","name":"Review Commit"}}</script></dd>
<dt style="float: left; width: 6em; font-weight: bold">Author</dt> <dd>SergeyBiryukov</dd>
<dt style="float: left; width: 6em; font-weight: bold">Date</dt> <dd>2021-12-04 12:56:29 +0000 (Sat, 04 Dec 2021)</dd>
</dl>

<pre style='padding-left: 1em; margin: 2em 0; border-left: 2px solid #ccc; line-height: 1.25; font-size: 105%; font-family: sans-serif'>Docs: Some documentation improvements for `WP_Theme_JSON` and `WP_Theme_JSON_Resolver` classes:

* Make the `@since 5.9.0` notes more specific. When mentioning that parameters or values have been added or changed, it is generally also helpful to include their exact names and the nature of changes for future reference.
* Update some DocBlocks per the documentation standards.

Follow-up to <a href="https://core.trac.wordpress.org/changeset/52049">[52049]</a>, <a href="https://core.trac.wordpress.org/changeset/52306">[52306]</a>.

See <a href="https://core.trac.wordpress.org/ticket/53399">#53399</a>, <a href="https://core.trac.wordpress.org/ticket/54336">#54336</a>.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcwpincludesclasswpthemejsonresolverphp">trunk/src/wp-includes/class-wp-theme-json-resolver.php</a></li>
<li><a href="#trunksrcwpincludesclasswpthemejsonphp">trunk/src/wp-includes/class-wp-theme-json.php</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcwpincludesclasswpthemejsonresolverphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/class-wp-theme-json-resolver.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/class-wp-theme-json-resolver.php    2021-12-03 23:08:31 UTC (rev 52319)
+++ trunk/src/wp-includes/class-wp-theme-json-resolver.php      2021-12-04 12:56:29 UTC (rev 52320)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -56,7 +56,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * that holds the user data.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.9.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @var integer
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @var int
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        private static $user_custom_post_type_id = null;
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -64,7 +64,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * Container to keep loaded i18n schema for `theme.json`.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Renamed from $theme_json_i18n
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Renamed from `$theme_json_i18n`.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @var array
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        private static $i18n_schema = null;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -150,13 +150,14 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * the theme.json takes precendence.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Theme supports have been inlined and the argument removed.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Theme supports have been inlined and the `$theme_support_data` argument removed.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * @param array $deprecated Deprecated. Not used.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @return WP_Theme_JSON Entity that holds theme data.
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public static function get_theme_data( $deprecated = array() ) {
</span><span class="cx" style="display: block; padding: 0 10px">                if ( ! empty( $deprecated ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        _deprecated_argument( __METHOD__, '5.9' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 _deprecated_argument( __METHOD__, '5.9.0' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px">                if ( null === self::$theme ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        $theme_json_data = self::read_json_file( self::get_file_path_from_theme( 'theme.json' ) );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -347,16 +348,16 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * the user preference wins.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Add user data and change the arguments.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Added user data, removed the `$settings` parameter,
+        *              added the `$origin` parameter.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @param string $origin Optional. To what level should we merge data.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         *                       Valid values are 'theme' or 'custom'.
-        *                       Default is 'custom'.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  *                       Valid values are 'theme' or 'custom'. Default 'custom'.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @return WP_Theme_JSON
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public static function get_merged_data( $origin = 'custom' ) {
</span><span class="cx" style="display: block; padding: 0 10px">                if ( is_array( $origin ) ) {
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        _deprecated_argument( __FUNCTION__, '5.9' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 _deprecated_argument( __FUNCTION__, '5.9.0' );
</ins><span class="cx" style="display: block; padding: 0 10px">                 }
</span><span class="cx" style="display: block; padding: 0 10px"> 
</span><span class="cx" style="display: block; padding: 0 10px">                $result = new WP_Theme_JSON();
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -396,7 +397,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * Whether the current theme has a theme.json file.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Also check in the parent theme.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Added a check in the parent theme.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @return bool
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -417,7 +418,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * If it isn't, returns an empty string, otherwise returns the whole file path.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Adapt to work with child themes.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Adapted to work with child themes, added the `$template` argument.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @param string $file_name Name of the file.
</span><span class="cx" style="display: block; padding: 0 10px">         * @param bool   $template  Optional. Use template theme directory. Default false.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -434,7 +435,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * Cleans the cached data so it can be recalculated.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Added new variables to reset.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Added the `$user`, `$user_custom_post_type_id`,
+        *              and `$i18n_schema` variables to reset.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        public static function clean_cached_data() {
</span><span class="cx" style="display: block; padding: 0 10px">                self::$core                     = null;
</span></span></pre></div>
<a id="trunksrcwpincludesclasswpthemejsonphp"></a>
<div class="modfile"><h4 style="background-color: #eee; color: inherit; margin: 1em 0; padding: 1.3em; font-size: 115%">Modified: trunk/src/wp-includes/class-wp-theme-json.php</h4>
<pre class="diff"><span>
<span class="info" style="display: block; padding: 0 10px; color: #888">--- trunk/src/wp-includes/class-wp-theme-json.php     2021-12-03 23:08:31 UTC (rev 52319)
+++ trunk/src/wp-includes/class-wp-theme-json.php       2021-12-04 12:56:29 UTC (rev 52320)
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -82,7 +82,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *                 the value that takes a preset as an argument
</span><span class="cx" style="display: block; padding: 0 10px">         *                 (either value_key or value_func should be present)
</span><span class="cx" style="display: block; padding: 0 10px">         * - css_vars   => template string to use in generating the CSS Custom Property.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         *                 Example output: "--wp--preset--duotone--blue: <value>" will generate as many CSS Custom Properties as presets defined
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  *                 Example output: "--wp--preset--duotone--blue: <value>" will generate
+        *                 as many CSS Custom Properties as presets defined
</ins><span class="cx" style="display: block; padding: 0 10px">          *                 substituting the $slug for the slug's value for each preset value.
</span><span class="cx" style="display: block; padding: 0 10px">         * - classes    => array containing a structure with the classes to
</span><span class="cx" style="display: block; padding: 0 10px">         *                 generate for the presets, where for each array item
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -99,7 +100,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *                 by means of the remove_insecure_properties method.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Added new presets and simplified the metadata structure.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Added the `color/duotone` and `typography/fontFamily` presets,
+        *              simplified the metadata structure.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @var array
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        const PRESETS_METADATA = array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -156,7 +158,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * path to the value in theme.json & block attributes.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Added new properties and simplified the metadata structure.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Added the `border-*`, `font-family`, `font-style`, `font-weight`,
+        *              `letter-spacing`, `margin-*`, `padding-*`, `--wp--style--block-gap`,
+        *              `text-decoration`, `text-transform`, and `filter` properties,
+        *              simplified the metadata structure.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @var array
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        const PROPERTIES_METADATA = array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -212,7 +217,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * The top-level keys a theme.json can have.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Renamed from ALLOWED_TOP_LEVEL_KEYS and added new values.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Renamed from `ALLOWED_TOP_LEVEL_KEYS`,
+        *              added the `customTemplates` and `templateParts` values.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @var string[]
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        const VALID_TOP_LEVEL_KEYS = array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -227,7 +233,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * The valid properties under the settings key.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Renamed from ALLOWED_SETTINGS, gained new properties, and renamed others according to the new schema.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Renamed from `ALLOWED_SETTINGS`, added new properties
+        *              for `border`, `color`, `spacing`, and `typography`,
+        *              and renamed others according to the new schema.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @var array
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        const VALID_SETTINGS = array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -280,7 +288,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * The valid properties under the styles key.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Renamed from ALLOWED_SETTINGS, gained new properties.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Renamed from `ALLOWED_SETTINGS`, added new properties
+        *              for `border`, `filter`, `spacing`, and `typography`.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @var array
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        const VALID_STYLES = array(
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -335,7 +344,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * The latest version of the schema in use.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Changed value.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Changed value from 1 to 2.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @var int
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        const LATEST_SCHEMA = 2;
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -435,10 +444,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * Sanitizes the input according to the schemas.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Has new parameters.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Added the `$valid_block_names` and `$valid_element_name` parameters.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param array $input Structure to sanitize.
-        * @param array $valid_block_names List of valid block names.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param array $input               Structure to sanitize.
+        * @param array $valid_block_names   List of valid block names.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @param array $valid_element_names List of valid element names.
</span><span class="cx" style="display: block; padding: 0 10px">         * @return array The sanitized output.
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -518,7 +527,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *     }
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Added duotone key with CSS selector.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Added `duotone` key with CSS selector.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @return array Block metadata.
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -632,19 +641,19 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * the theme.json structure this object represents.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Changed the arguments passed to the function.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Removed the `$type` parameter`, added the `$types` and `$origins` parameters.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param array $types    Types of styles to load. Will load all by default. It accepts:
-        *                         'variables': only the CSS Custom Properties for presets & custom ones.
-        *                         'styles': only the styles section in theme.json.
-        *                         'presets': only the classes for the presets.
-        * @param array $origins A list of origins to include. By default it includes self::VALID_ORIGINS.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param array $types   Types of styles to load. Will load all by default. It accepts:
+        *                       - `variables`: only the CSS Custom Properties for presets & custom ones.
+        *                       - `styles`: only the styles section in theme.json.
+        *                       - `presets`: only the classes for the presets.
+        * @param array $origins A list of origins to include. By default it includes `self::VALID_ORIGINS`.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @return string Stylesheet.
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        public function get_stylesheet( $types = array( 'variables', 'styles', 'presets' ), $origins = self::VALID_ORIGINS ) {
</span><span class="cx" style="display: block; padding: 0 10px">                if ( is_string( $types ) ) {
</span><span class="cx" style="display: block; padding: 0 10px">                        // Dispatch error and map old arguments to new ones.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-                        _deprecated_argument( __FUNCTION__, '5.9' );
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+                 _deprecated_argument( __FUNCTION__, '5.9.0' );
</ins><span class="cx" style="display: block; padding: 0 10px">                         if ( 'block_styles' === $types ) {
</span><span class="cx" style="display: block; padding: 0 10px">                                $types = array( 'styles', 'presets' );
</span><span class="cx" style="display: block; padding: 0 10px">                        } elseif ( 'css_variables' === $types ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -736,7 +745,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *   }
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Renamed to get_block_classes and no longer returns preset classes.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Renamed from `get_block_styles()` to `get_block_classes()`
+        *              and no longer returns preset classes.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @param array $style_nodes Nodes with styles.
</span><span class="cx" style="display: block; padding: 0 10px">         * @return string The new stylesheet.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -850,9 +860,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *     }
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Added origins parameter.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Added the `$origins` parameter.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param array $nodes Nodes with settings.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param array $nodes   Nodes with settings.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @param array $origins List of origins to process.
</span><span class="cx" style="display: block; padding: 0 10px">         * @return string The new stylesheet.
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -927,7 +937,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * for the preset classes.
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Added origins parameter.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Added the `$origins` parameter.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @param array  $settings Settings to process.
</span><span class="cx" style="display: block; padding: 0 10px">         * @param string $selector Selector wrapping the classes.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -979,7 +989,6 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @param string $scope    Selector to scope to.
</span><span class="cx" style="display: block; padding: 0 10px">         * @param string $selector Original selector.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         *
</del><span class="cx" style="display: block; padding: 0 10px">          * @return string Scoped selector.
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        private static function scope_selector( $scope, $selector ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1027,9 +1036,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.9.0
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param array $settings Settings to process.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param array $settings        Settings to process.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @param array $preset_metadata One of the PRESETS_METADATA values.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param array $origins List of origins to process.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param array $origins         List of origins to process.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @return array Array of presets where each key is a slug and each value is the preset value.
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        private static function get_settings_values_by_slug( $settings, $preset_metadata, $origins ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1069,9 +1078,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.9.0
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param array $settings Settings to process.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param array $settings        Settings to process.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @param array $preset_metadata One of the PRESETS_METADATA values.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param array $origins List of origins to process.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param array $origins         List of origins to process.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @return array Array of presets where the key and value are both the slug.
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        private static function get_settings_slugs( $settings, $preset_metadata, $origins = self::VALID_ORIGINS ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1098,8 +1107,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.9.0
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @param string $input String to replace.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param string $slug The slug value to use to generate the custom property.
-        * @return string The CSS Custom Property. Something along the lines of --wp--preset--color--black.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param string $slug  The slug value to use to generate the custom property.
+        * @return string The CSS Custom Property. Something along the lines of `--wp--preset--color--black`.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        private static function replace_slug_in_string( $input, $slug ) {
</span><span class="cx" style="display: block; padding: 0 10px">                return strtr( $input, array( '$slug' => $slug ) );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1116,6 +1125,7 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *     )
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+         * @since 5.9.0 Added the `$origins` parameter.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @param array $settings Settings to process.
</span><span class="cx" style="display: block; padding: 0 10px">         * @param array $origins  List of origins to process.
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1234,10 +1244,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *     )
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Added theme setting and properties parameters.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Added the `$settings` and `$properties` parameters.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param array $styles Styles to process.
-        * @param array $settings Theme settings.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param array $styles    Styles to process.
+        * @param array $settings  Theme settings.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @param array $properties Properties metadata.
</span><span class="cx" style="display: block; padding: 0 10px">         * @return array Returns the modified $declarations.
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1285,11 +1295,11 @@
</span><span class="cx" style="display: block; padding: 0 10px">         * "--wp--preset--color--secondary".
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.8.0
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @since 5.9.0 Consider $value that are arrays as well.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @since 5.9.0 Added support for values of array type, which are returned as is.
</ins><span class="cx" style="display: block; padding: 0 10px">          *
</span><span class="cx" style="display: block; padding: 0 10px">         * @param array $styles Styles subtree.
</span><span class="cx" style="display: block; padding: 0 10px">         * @param array $path   Which property to process.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @return string Style property value.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @return string|array Style property value.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        private static function get_property_value( $styles, $path ) {
</span><span class="cx" style="display: block; padding: 0 10px">                $value = _wp_array_get( $styles, $path, '' );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1532,9 +1542,8 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.9.0
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param array $data A theme.json like structure to inspect.
-        * @param array $node_path The path to inspect. It's 'settings' by default.
-        *
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param array $data      A theme.json like structure to inspect.
+        * @param array $node_path The path to inspect. Default is 'settings'.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @return array An associative array containing the slugs for the given path.
</span><span class="cx" style="display: block; padding: 0 10px">         */
</span><span class="cx" style="display: block; padding: 0 10px">        private static function get_slugs_not_to_override( $data, $node_path = array( 'settings' ) ) {
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1568,11 +1577,10 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.9.0
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param array $node The node with the presets to validate.
-        * @param array $path The path to the preset type to inspect.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param array $node  The node with the presets to validate.
+        * @param array $path  The path to the preset type to inspect.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @param array $slugs The slugs that should not be overriden.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         *
-        * @return array The new node
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @return array The new node.
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        private static function filter_slugs( $node, $path, $slugs ) {
</span><span class="cx" style="display: block; padding: 0 10px">                $slugs_for_preset = _wp_array_get( $slugs, $path, array() );
</span><span class="lines" style="display: block; padding: 0 10px; color: #888">@@ -1739,9 +1747,9 @@
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><span class="cx" style="display: block; padding: 0 10px">         * @since 5.9.0
</span><span class="cx" style="display: block; padding: 0 10px">         *
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @param string $property_name Property name in a CSS declaration, i.e. the `color` in `color: red`.
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @param string $property_name  Property name in a CSS declaration, i.e. the `color` in `color: red`.
</ins><span class="cx" style="display: block; padding: 0 10px">          * @param string $property_value Value in a CSS declaration, i.e. the `red` in `color: red`.
</span><del style="background-color: #fdd; text-decoration:none; display:block; padding: 0 10px">-         * @return boolean
</del><ins style="background-color: #dfd; text-decoration:none; display:block; padding: 0 10px">+  * @return bool
</ins><span class="cx" style="display: block; padding: 0 10px">          */
</span><span class="cx" style="display: block; padding: 0 10px">        private static function is_safe_css_declaration( $property_name, $property_value ) {
</span><span class="cx" style="display: block; padding: 0 10px">                $style_to_validate = $property_name . ': ' . $property_value;
</span></span></pre>
</div>
</div>

</body>
</html>