Skip to content

Commit

Permalink
Merge branch 'trunk' into remove-36px-deprecation
Browse files Browse the repository at this point in the history
# Conflicts:
#	packages/components/src/input-control/input-base.tsx
  • Loading branch information
mirka committed Feb 7, 2024
2 parents 3ea5dab + 87c5697 commit 0cbbc0a
Show file tree
Hide file tree
Showing 122 changed files with 3,116 additions and 3,450 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/rnmobile-android-runner.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
run: npm run native test:e2e:setup

- name: Gradle cache
uses: gradle/gradle-build-action@3b1b3b9a2104c2b47fbae53f3938079c00c9bb87 # v3.0.0
uses: gradle/actions/setup-gradle@ec92e829475ac0c2315ea8f9eced72db85bb337a # v3.0.0

- name: AVD cache
uses: actions/cache@13aacd865c20de90d75de3b17ebe84f7a17d57d2 # v4.0.0
Expand Down
16 changes: 16 additions & 0 deletions changelog.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,21 @@
== Changelog ==

= 17.6.3 =

## Changelog

### Bug Fixes

#### Block Editor
- Navigation: Update the fallback block list to avoid a PHP Warning ([58588](https://github.com/WordPress/gutenberg/pull/58588))

## Contributors

The following contributors merged PRs in this release:

@dd32


= 17.6.2 =


Expand Down
2 changes: 1 addition & 1 deletion gutenberg.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* Description: Printing since 1440. This is the development plugin for the block editor, site editor, and other future WordPress core functionality.
* Requires at least: 6.3
* Requires PHP: 7.0
* Version: 17.6.2
* Version: 17.6.3
* Author: Gutenberg Team
* Text Domain: gutenberg
*
Expand Down
5 changes: 2 additions & 3 deletions lib/compat/wordpress-6.5/fonts/class-wp-font-library.php
Original file line number Diff line number Diff line change
Expand Up @@ -117,14 +117,13 @@ public function get_font_collections() {
* @since 6.5.0
*
* @param string $slug Font collection slug.
* @return WP_Font_Collection|WP_Error Font collection object,
* or WP_Error object if the font collection doesn't exist.
* @return WP_Font_Collection|null Font collection object, or null if the font collection doesn't exist.
*/
public function get_font_collection( $slug ) {
if ( $this->is_collection_registered( $slug ) ) {
return $this->collections[ $slug ];
}
return new WP_Error( 'font_collection_not_found', __( 'Font collection not found.', 'gutenberg' ) );
return null;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,10 +144,9 @@ public function get_item( $request ) {
$slug = $request->get_param( 'slug' );
$collection = WP_Font_Library::get_instance()->get_font_collection( $slug );

// If the collection doesn't exist returns a 404.
if ( is_wp_error( $collection ) ) {
$collection->add_data( array( 'status' => 404 ) );
return $collection;
// @TODO: remove `is_wp_error` check once WP trunk is updated to return null when a collection is not found.
if ( ! $collection || is_wp_error( $collection ) ) {
return new WP_Error( 'rest_font_collection_not_found', __( 'Font collection not found.' ), array( 'status' => 404 ) );
}

return $this->prepare_item_for_response( $collection, $request );
Expand All @@ -158,38 +157,38 @@ public function get_item( $request ) {
*
* @since 6.5.0
*
* @param WP_Font_Collection $collection Collection object.
* @param WP_REST_Request $request Request object.
* @return WP_REST_Response Response object.
* @param WP_Font_Collection $item Font collection object.
* @param WP_REST_Request $request Request object.
* @return WP_REST_Response|WP_Error Response object on success, or WP_Error object on failure.
*/
public function prepare_item_for_response( $collection, $request ) {
public function prepare_item_for_response( $item, $request ) {
$fields = $this->get_fields_for_response( $request );
$item = array();
$data = array();

if ( rest_is_field_included( 'slug', $fields ) ) {
$item['slug'] = $collection->slug;
$data['slug'] = $item->slug;
}

// If any data fields are requested, get the collection data.
$data_fields = array( 'name', 'description', 'font_families', 'categories' );
if ( ! empty( array_intersect( $fields, $data_fields ) ) ) {
$collection_data = $collection->get_data();
$collection_data = $item->get_data();
if ( is_wp_error( $collection_data ) ) {
$collection_data->add_data( array( 'status' => 500 ) );
return $collection_data;
}

foreach ( $data_fields as $field ) {
if ( rest_is_field_included( $field, $fields ) ) {
$item[ $field ] = $collection_data[ $field ];
$data[ $field ] = $collection_data[ $field ];
}
}
}

$response = rest_ensure_response( $item );
$response = rest_ensure_response( $data );

if ( rest_is_field_included( '_links', $fields ) ) {
$links = $this->prepare_links( $collection );
$links = $this->prepare_links( $item );
$response->add_links( $links );
}

Expand All @@ -198,17 +197,15 @@ public function prepare_item_for_response( $collection, $request ) {
$response->data = $this->filter_response_by_context( $response->data, $context );

/**
* Filters a font collection returned from the REST API.
*
* Allows modification of the font collection right before it is returned.
* Filters the font collection data for a REST API response.
*
* @since 6.5.0
*
* @param WP_REST_Response $response The response object.
* @param WP_Font_Collection $collection The Font Collection object.
* @param WP_REST_Request $request Request used to generate the response.
* @param WP_REST_Response $response The response object.
* @param WP_Font_Collection $item The font collection object.
* @param WP_REST_Request $request Request used to generate the response.
*/
return apply_filters( 'rest_prepare_font_collection', $response, $collection, $request );
return apply_filters( 'rest_prepare_font_collection', $response, $item, $request );
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,15 @@
* Class to access font faces through the REST API.
*/
class WP_REST_Font_Faces_Controller extends WP_REST_Posts_Controller {

/**
* The latest version of theme.json schema supported by the controller.
*
* @since 6.5.0
* @var int
*/
const LATEST_THEME_JSON_VERSION_SUPPORTED = 2;

/**
* Whether the controller supports batching.
*
Expand Down Expand Up @@ -233,9 +242,8 @@ public function validate_create_font_face_settings( $value, $request ) {
*
* @since 6.5.0
*
* @param string $value Encoded JSON string of font face settings.
* @param WP_REST_Request $request Request object.
* @return array Decoded array of font face settings.
* @param string $value Encoded JSON string of font face settings.
* @return array Decoded and sanitized array of font face settings.
*/
public function sanitize_font_face_settings( $value ) {
// Settings arrive as stringified JSON, since this is a multipart/form-data request.
Expand Down Expand Up @@ -328,7 +336,7 @@ public function create_item( $request ) {
'update_post_term_cache' => false,
)
);
if ( ! empty( $query->get_posts() ) ) {
if ( ! empty( $query->posts ) ) {
return new WP_Error(
'rest_duplicate_font_face',
__( 'A font face matching those settings already exists.', 'gutenberg' ),
Expand Down Expand Up @@ -418,7 +426,7 @@ public function delete_item( $request ) {
return new WP_Error(
'rest_trash_not_supported',
/* translators: %s: force=true */
sprintf( __( "Font faces do not support trashing. Set '%s' to delete.", 'gutenberg' ), 'force=true' ),
sprintf( __( 'Font faces do not support trashing. Set "%s" to delete.', 'gutenberg' ), 'force=true' ),
array( 'status' => 501 )
);
}
Expand All @@ -443,7 +451,7 @@ public function prepare_item_for_response( $item, $request ) {
$data['id'] = $item->ID;
}
if ( rest_is_field_included( 'theme_json_version', $fields ) ) {
$data['theme_json_version'] = 2;
$data['theme_json_version'] = static::LATEST_THEME_JSON_VERSION_SUPPORTED;
}

if ( rest_is_field_included( 'parent', $fields ) ) {
Expand Down Expand Up @@ -504,9 +512,9 @@ public function get_item_schema() {
'theme_json_version' => array(
'description' => __( 'Version of the theme.json schema used for the typography settings.', 'gutenberg' ),
'type' => 'integer',
'default' => 2,
'default' => static::LATEST_THEME_JSON_VERSION_SUPPORTED,
'minimum' => 2,
'maximum' => 2,
'maximum' => static::LATEST_THEME_JSON_VERSION_SUPPORTED,
'context' => array( 'view', 'edit', 'embed' ),
),
'parent' => array(
Expand Down Expand Up @@ -699,14 +707,16 @@ public function get_collection_params() {
$query_params = parent::get_collection_params();

// Remove unneeded params.
unset( $query_params['after'] );
unset( $query_params['modified_after'] );
unset( $query_params['before'] );
unset( $query_params['modified_before'] );
unset( $query_params['search'] );
unset( $query_params['search_columns'] );
unset( $query_params['slug'] );
unset( $query_params['status'] );
unset(
$query_params['after'],
$query_params['modified_after'],
$query_params['before'],
$query_params['modified_before'],
$query_params['search'],
$query_params['search_columns'],
$query_params['slug'],
$query_params['status']
);

$query_params['orderby']['default'] = 'id';
$query_params['orderby']['enum'] = array( 'id', 'include' );
Expand Down Expand Up @@ -803,7 +813,7 @@ protected function prepare_links( $post ) {
* @since 6.5.0
*
* @param WP_REST_Request $request Request object.
* @return stdClass|WP_Error Post object or WP_Error.
* @return stdClass Post object.
*/
protected function prepare_item_for_database( $request ) {
$prepared_post = new stdClass();
Expand Down Expand Up @@ -831,7 +841,6 @@ protected function prepare_item_for_database( $request ) {
* @since 6.5.0
*
* @param string $value Font face src that is a URL or the key for a $_FILES array item.
*
* @return string Sanitized value.
*/
protected function sanitize_src( $value ) {
Expand All @@ -845,7 +854,7 @@ protected function sanitize_src( $value ) {
* @since 6.5.0
*
* @param array $file Single file item from $_FILES.
* @return array Array containing uploaded file attributes on success, or error on failure.
* @return array|WP_Error Array containing uploaded file attributes on success, or WP_Error object on failure.
*/
protected function handle_font_file_upload( $file ) {
add_filter( 'upload_mimes', array( 'WP_Font_Utils', 'get_allowed_font_mime_types' ) );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,15 @@
* @since 6.5.0
*/
class WP_REST_Font_Families_Controller extends WP_REST_Posts_Controller {

/**
* The latest version of theme.json schema supported by the controller.
*
* @since 6.5.0
* @var int
*/
const LATEST_THEME_JSON_VERSION_SUPPORTED = 2;

/**
* Whether the controller supports batching.
*
Expand Down Expand Up @@ -138,9 +147,8 @@ public function validate_font_family_settings( $value, $request ) {
*
* @since 6.5.0
*
* @param string $value Encoded JSON string of font family settings.
* @param WP_REST_Request $request Request object.
* @return array Decoded array font family settings.
* @param string $value Encoded JSON string of font family settings.
* @return array Decoded array of font family settings.
*/
public function sanitize_font_family_settings( $value ) {
// Settings arrive as stringified JSON, since this is a multipart/form-data request.
Expand Down Expand Up @@ -177,7 +185,7 @@ public function create_item( $request ) {
'update_post_term_cache' => false,
)
);
if ( ! empty( $query->get_posts() ) ) {
if ( ! empty( $query->posts ) ) {
return new WP_Error(
'rest_duplicate_font_family',
/* translators: %s: Font family slug. */
Expand Down Expand Up @@ -205,7 +213,7 @@ public function delete_item( $request ) {
return new WP_Error(
'rest_trash_not_supported',
/* translators: %s: force=true */
sprintf( __( "Font faces do not support trashing. Set '%s' to delete.", 'gutenberg' ), 'force=true' ),
sprintf( __( 'Font faces do not support trashing. Set "%s" to delete.', 'gutenberg' ), 'force=true' ),
array( 'status' => 501 )
);
}
Expand All @@ -231,7 +239,7 @@ public function prepare_item_for_response( $item, $request ) {
}

if ( rest_is_field_included( 'theme_json_version', $fields ) ) {
$data['theme_json_version'] = 2;
$data['theme_json_version'] = static::LATEST_THEME_JSON_VERSION_SUPPORTED;
}

if ( rest_is_field_included( 'font_faces', $fields ) ) {
Expand Down Expand Up @@ -292,9 +300,9 @@ public function get_item_schema() {
'theme_json_version' => array(
'description' => __( 'Version of the theme.json schema used for the typography settings.', 'gutenberg' ),
'type' => 'integer',
'default' => 2,
'default' => static::LATEST_THEME_JSON_VERSION_SUPPORTED,
'minimum' => 2,
'maximum' => 2,
'maximum' => static::LATEST_THEME_JSON_VERSION_SUPPORTED,
'context' => array( 'view', 'edit', 'embed' ),
),
'font_faces' => array(
Expand Down Expand Up @@ -385,13 +393,15 @@ public function get_collection_params() {
$query_params = parent::get_collection_params();

// Remove unneeded params.
unset( $query_params['after'] );
unset( $query_params['modified_after'] );
unset( $query_params['before'] );
unset( $query_params['modified_before'] );
unset( $query_params['search'] );
unset( $query_params['search_columns'] );
unset( $query_params['status'] );
unset(
$query_params['after'],
$query_params['modified_after'],
$query_params['before'],
$query_params['modified_before'],
$query_params['search'],
$query_params['search_columns'],
$query_params['status']
);

$query_params['orderby']['default'] = 'id';
$query_params['orderby']['enum'] = array( 'id', 'include' );
Expand Down Expand Up @@ -455,7 +465,7 @@ protected function get_font_face_ids( $font_family_id ) {
)
);

return $query->get_posts();
return $query->posts;
}

/**
Expand Down Expand Up @@ -489,7 +499,7 @@ protected function prepare_font_face_links( $font_family_id ) {
foreach ( $font_face_ids as $font_face_id ) {
$links[] = array(
'embeddable' => true,
'href' => rest_url( $this->namespace . '/' . $this->rest_base . '/' . $font_family_id . '/font-faces/' . $font_face_id ),
'href' => rest_url( sprintf( '%s/%s/%s/font-faces/%s', $this->namespace, $this->rest_base, $font_family_id, $font_face_id ) ),
);
}
return $links;
Expand Down
3 changes: 1 addition & 2 deletions lib/compat/wordpress-6.5/fonts/fonts.php
Original file line number Diff line number Diff line change
Expand Up @@ -150,8 +150,7 @@ function wp_unregister_font_collection( $slug ) {
}

function gutenberg_register_font_collections() {
// TODO: update to production font collection URL.
wp_register_font_collection( 'google-fonts', 'https://raw.githubusercontent.com/WordPress/google-fonts-to-wordpress-collection/01aa57731575bd13f9db8d86ab80a2d74e28a1ac/releases/gutenberg-17.6/collections/google-fonts-with-preview.json' );
wp_register_font_collection( 'google-fonts', 'https://s.w.org/images/fonts/17.7/collections/google-fonts-with-preview.json' );
}
add_action( 'init', 'gutenberg_register_font_collections' );

Expand Down
Loading

0 comments on commit 0cbbc0a

Please sign in to comment.