Make WordPress Core

Keyboard Shortcuts | Hide comment threads

Hallway Hangout Summary: “compare and contrast” the Navigation screens

This post summarises the Navigation screen Hallway Hangout held on Tuesday, August 24, 2021 at 09:00 AM UTC in Zoom facilitated by @get_dave, @talldanwp and @javier.

The block-based Navigation editor screen has been behind an “experimental” feature flag within the Gutenberg plugin for some time. The purpose of the call was to outline the work required in order to remove the “experimental” status from the screen in order that the editor is active by default in the Gutenberg plugin.

The team working on the feature feel this is valuable in order to increase the visibility of the feature and therefore improve the quantity of feedback we receive.

Meeting Recording

If you’d like to watch the full recording of the session you can do so below:

Key points agreed

It was agreed that the prerequisite for removing “experimental” was: UI/UX feature parity with the existing Navigation screen (nav-menus.php) in Core.

We also acknowledged that:

  • We wouldn’t commit to feature parity of developer focused APIs at this stage.
  • Removing “experimental” in the Gutenberg plugin, would not automatically make the feature ready for merging into Core (that won’t happen until WordPress 5.9 at the earliest).

What was discussed?

The format of the hangout was an open discussion comparing and contrasting the classic menu screen with the experimental block-based navigation screen.

To this end attendees were asked to test drive both screens and note down their findings prior to the call.

The meeting facilitators also prepared a list of items as discussion points which were worked through during the call.

Each item was demonstrated, discussed and then assigned a loose priority of High/Medium/Low based on how critical the group felt the issue was to achieving feature parity.

Outcomes

The key outcomes of the call were:

Next Steps

Contributors working on the Nav Editor will now look to reorganise and reprioritse the tracking issue around the problems identified during the call.

  • All items will be added to the tracking issue (with the possible exception of bugs).
  • The High priority section of the tracking issue will be reformed and refocused around the goal of “removing the experimental status from the Navigation Editor”. Only tasks directly related to this goal will be considered for inclusion in the “High” priority section.
  • Tasks identified during the call that were marked as Medium or High till be added to the aforementioned High priority section of the tracking issue.
  • Contributors will focus on tackling High priority tasks in order to realise the goal of removing the “experimental” status.

All contributors are encouraged to become involved in prioritisation. Everyone is welcome and we’d very much value your feedback. If you feel a priority is wrong or missing then please let your fellow contributors know.

Thanks to everyone who attended the hangout and we look forward to moving the Navigation Editor forward together.

#feature-navigation-block-editor, #hallwayhangout, #navigation, #summary, #video

WordPress 5.8.x release team and 5.8.1 schedule

8/25/2021 @ 18:40 UTC: Added the “Release coordination” section to detail where release related communication will take place – @desrosj

The 5.8.x releases will follow the same consistent minor release leads strategy as the 5.7.x releases did. For the 5.8.x releases, the release leads will be:

5.8.1 proposed schedule

The following schedule is being proposed for 5.8.1:

  • RC: Wednesday, September 1, 2021
  • Final release: Wednesday, September 8, 2021.

As of the publish date of this post, 24 tickets have already been fixed and backported to the 5.8 branch to be included in 5.8.1. 38 additional open tickets are currently in the 5.8.1 milestone for consideration. Please head over and check out that list to contribute to the release.

Release coordination

During the 5.8 release, a new, #5-8-release-leads channel was created in Slack for the release squad to have all 5.8 related conversations. Because the 5.8.x releases are part of 5.8 by extension, all coordination and conversation related to the 5.8.x releases will also be held here before the channel is archived when WordPress 5.9 is released.

Props @circlecube and @chanthaboune for peer review.

#5-8-1

A Week in Core – August 23, 2021

Welcome back to a new issue of Week in Core. Let’s take a look at what changed on Trac between August 16 and August 23, 2021.

  • 27 commits
  • 21 contributors
  • 58 tickets created
  • 5 tickets reopened
  • 43 tickets closed

Pending the appointment of the WordPress 5.9 team, a number of tickets have been fixed, waiting for the next minor and major release(s).

Ticket numbers are based on the Trac timeline for the period above. The following is a summary of commits, organized by component and/or focus.

Code changes

Build/Test Tools

  • Include the commit short summary in Slack messages – #52644
  • Move loading the PO class to set_up_before_class()#53363
  • Move loading the WP_Community_Events class to set_up_before_class()#53363
  • Rename classes in phpunit/tests/admin/ per the naming conventions – #53363
  • Rename classes in phpunit/tests/editor/ per the naming conventions – #53363
  • Rename classes in phpunit/tests/error-protection/ per the naming conventions – #53363
  • Rename classes in phpunit/tests/feed/ per the naming conventions – #53363
  • Rename classes in phpunit/tests/formatting/ per the naming conventions – #53363
  • Use a better return type check for parse_url() in do_enclose() tests – #53635

Code Modernization

  • Check the input type in validate_file()#53635
  • Check the return type of parse_url() in WP::parse_request()#53635
  • Check the return type of parse_url() in download_url()#53635
  • Check the return type of parse_url() in ms_cookie_constants()#53635
  • Check the return type of parse_url() on Plugin/Theme Editor screens – #53635
  • Correct handling of null in wp_parse_str()#53635
  • Only set auto_detect_line_endings in PHP < 8.1 – #53635
  • Pass correct default value to http_build_query() in WP_Sitemaps_Provider::get_sitemap_url()#53635
  • Silence the deprecation warning for auto_detect_line_endings#53635

Customize

  • Hide native control on background position field – #53803

Editor

  • Replace the remaining references to wp.editor with wp.oldEditor#53762

External Libraries

  • Restore the phpcs:ignore statements in PHPMailer – #53953
  • Upgrade PHPMailer to version 6.5.1 – #53953

Media

  • Check the return type of _get_cron_array() in WP_Media_List_Table::prepare_items()#53949
  • Fix layout of media library modal on narrow screens – #53679
  • Increase number of media items displayed per page – #53827

Privacy

  • Add space below page selector – #53782

REST API

  • Remove trailing slashes when preloading requests and add unit tests for it – #51636

Toolbar

  • Limit the icon transition style to color only – #43423

Props

Thanks to the 21 people who contributed to WordPress Core on Trac last week: @jrf (10), @SergeyBiryukov (9), @hellofromTonya (8), @mukesh27 (4), @sabernhardt (3), @joedolson (2), @zieladam (2), @audrasjb (2), @earnjam (1), @moch11 (1), @desrosj (1), @andraganescu (1), @wb1234 (1), @walbo (1), @antpb (1), @AlGala (1), @ravipatel (1), @antonvlasenko (1), @johnjamesjacoby (1), @guillaumeturpin (1), and @lucatume (1).

Congrats and welcome to our 5 new contributors of the week! @moch11, @wb1234, @AlGala, @antonvlasenko, and @guillaumeturpin ♥️

Core committers: @sergeybiryukov (19), @peterwilsoncc (3), @azaozz (2), @ryelle (2), and @desrosj (1).

#5-8-1, #5-9, #core, #week-in-core

Dev Chat Agenda for August 25, 2021

Here is the agenda for this week’s developer meeting to occur at Wednesday, August 25, 2021 at 08:00 PM UTC.

Blog Post Highlights and announcements

Bringing to your attention some interesting reads and some call for feedback and/or volunteers

Components check-in and status updates

  • Check-in with each component for status updates.
  • Poll for components that need assistance.

Open Floor

Do you have something to propose for the agenda, or a specific item relevant to the usual agenda items above?

Please leave a comment, and say whether or not you’ll be in the chat, so the group can either give you the floor or bring up your topic for you accordingly.

This meeting happens in the #core channel. To join the meeting, you’ll need an account on the Making WordPress Slack.

#agenda, #core, #dev-chat

Editor Chat Agenda: 25 August 2021

Facilitator and notetaker: @paaljoachim

This is the agenda for the weekly editor chat scheduled for Wednesday, August 25, 2021, 04:00 PM GMT+1.

This meeting is held in the #core-editor channel in the Making WordPress Slack.

If you are not able to attend the meeting, you are encouraged to share anything relevant for the discussion:

  • If you have anything to share for the Task Coordination section, please leave it as a comment on this post.
  • If you have anything to propose for the agenda or other specific items related to those listed above, please leave a comment below.

#agenda, #core-editor, #core-editor-agenda, #meeting

I’d like to make another plea for adding the most appropriate labels to PRs in Github. It’s a small thing but it really helps the release lead when they are pruning the changelog.

Anything folks can do to help add labels when triaging PRs or remembering to use labels when they can would be much appreciated. Thank you!

Upgrade/Install component meeting agenda for August 24, 2021

The next meeting is scheduled on Tuesday, August 24, 2021 at 05:00 PM UTC and will take place on #core-auto-updates Slack channel.

The aim of the chat is to check the status of the rollback for failed plugin/theme updates after last Friday’s testing session and triage/scrub tickets in the component.

Got something to propose for the agenda? Please leave a comment below.

See you later!

#core-auto-updates, #updater, #upgrade-install

CSS Chat Summary: 19 August 2021

The meeting took place here on Slack. @dryanpress facilitated and @danfarrow wrote up these notes.

CSS Custom Properties (#49930)

Working Time

  • @robertg has taken on src/wp-admin/css/customize-controls.css which 2900+`lines of CSS. Bon courage Robert!
  • @wazeter has looked at other contributors change files in order to see how others have approached the problem, which seems like a sensible approach

CSS Link Share / Open Floor

Thanks everyone!

#core-css, #summary

Gallery Block Refactor Dev Note

The problem

If you have ever added a custom link to an image block and then tried to do the same on a Gallery image, you will understand the frustration and confusion of not having consistency between different types of image blocks. This inconsistency is because the core Gallery block stores the details of the included images as nested <img> elements within the block content. Therefore, the images within a gallery look and behave different from images within an individual image block. There are some long-standing open issues related to this:

The only way to fix this with the Gallery block in its current state is to try and replicate the additional functionality that the Image block has in the Gallery block, and vice versa. While this would be possible, it would lead to an additional maintenance overhead to keep the UI and underlying code in sync between the two blocks.

Changes made

To make the behavior of images consistent between the Image Block and Gallery, while avoiding code duplication, the core Gallery block has been refactored to save the individual images as nested core Image blocks using the standard core innerBlocks APIs. To make this work with the innerBlocks API, the gallery structure also had to change from an ordered list to a collection of figure elements within a figure. This structure change also brings the core Gallery block into line with the W3C WAI guidelines on the grouping of images.

The structure change means that Gallery images now have the ability to add custom links, or custom styles, for each image. An example of the flexible Gallery layouts this opens up can be seen below.

Gallery images will also automatically inherit new functionality that is added to the Image block, including those added by plugins. Below is an example of a Gallery block making us of the Image wave style and vintage filter option added by the CoBlocks plugin.

Other benefits include being able to use the standard move, drag and drop, copy, duplicate, and remove block functionalities. Keyboard navigation also benefits from the adoption of the standard block model by the Gallery block.

What theme and plugin authors need to do before 5.9

To support the new Gallery block format, plugin and theme authors should aim to do the following before the December release of this change in WordPress 5.9.

  • Any gallery related CSS should have additional selectors added to target images in the following structure in both the editor and front end (existing selectors must remain to support the existing gallery block content). The new structure can be seen below. See this issue for an example of the type of additional selectors that may need to be added.
<figure class="wp-block-gallery blocks-gallery-grid has-nested-images columns-default is-cropped">
	<figure class="wp-block-image size-large">
		<img
			src="http://wayback.fauppsala.se:80/wayback/20210826144705/http://localhost/image1"
			alt="Image gallery image"
			class="wp-image-71"
		/>
	</figure>
	<figure class="wp-block-image size-large">
		<img
			src="http://wayback.fauppsala.se:80/wayback/20210826144705/http://localhost/image2"
			alt="Image gallery image"
			class="wp-image-70"
		/>
	</figure>
</figure>
  • For custom blocks with options to transform->from and transform->to the core Gallery block the plugin should be tested with the Gutenberg plugin to ensure that these transformations work correctly with both existing gallery content and the new gallery block format

In the future, when the new Gallery format is stable in a core release, the transformation filters will be deprecated, and plugin authors will need to update their transformations to handle both Gallery formats. Notice will be given ahead of this change being made.

It is also expected that existing gallery content will be automatically migrated to the new format. This will allow the old gallery version’s code to be removed from the codebase. There is currently no time frame set for this to occur.

Additional context and considerations

Other existing solutions

Third-party block developers are currently solving some of the problems caused by the limitations of the core Gallery block by implementing their custom Gallery blocks. These include some of the missing functionality, like the ability to add custom links to individual images. This can be problematic for site owners and content editors due to a large number of Gallery blocks that offer very similar functionality, but none of which appear to provide a close match to the functionality available with individual core Image blocks.

There do not appear to be any examples of plugins that already solve this problem in a way that utilizes Image blocks as inner blocks.

Backwards compatibility considerations

This is a breaking change due to the fundamental change in the underlying Gallery structure. Due to the large number of Gallery blocks already in use, along with themes and plugins that may rely on the existing structure, the following steps have been taken to mitigate the impact of this change on theme and plugin developers as much as possible:

  • Initially, there will be no automatic migration of existing gallery content. This means that all existing gallery content will behave the same in the editor and front end as it does now, so will be compatible with existing plugins and themes. Only new gallery blocks added after this change will have the new structure in the editor and the front-end.
  • Two temporary transformation filters have been added that will handle the transformation of 3rd party blocks to and from the core gallery block

Possible edge cases

The refactored Gallery format has been tested against the following sample block libraries that have existing transforms to and from the core Gallery block:

The following themes have also been tested to make sure that both the existing gallery content and the new format galleries display correctly:

  • TwentyNineteen
  • TwentyTwenty
  • TwentyTwentyOne
  • Astra
  • Arbutus

While the refactored gallery works effectively with these plugins and themes, there may be edge cases in other plugins and themes that have not been accounted for. Themes that heavily modify the gallery CSS based on the existing <ul><li></li></ul> will definitely need to be updated if the same style changes need to be applied to the new gallery format.  Therefore, it is recommended that theme and plugin authors test the changed gallery block well in advance of the 5.9 release.

Additional details about this change 

Previous discussions about this change can be found on the main pull request or call for testing.

#5-9, #core-editor, #dev-notes, #gallery, #gutenberg

This is extremely exciting! The upgrade/legacy pain definitely feels worth the big feature and long-term maintainability gains!

Thank you for the information @glendaviesnz

Additional information.
The PR for the Refactored Gallery block has now been merged and will be included into Gutenberg plugin version 11.4.
11.4 RC will be released upcoming Wednesday, the 25th of August.
11.4 finished version will be released on Wednesday, the 1st of September.

Navigation Editor Hallway Hangout: compare/contrast the old and new screens

Date: Tuesday, August 24, 2021 at 09:00 AM UTC

Format: Zoom (recorded). A link will be shared in the #feature-navigation-block-editor slack channel shortly before the meeting is due to commence.

Length: 45 – 60mins. No more.

Topic: comparing and contrasting the classic menu screen with the experimental block-based navigation screen.

Goal: derive a list of tasks that are required in order for the two screens to have feature parity (from both UX and UI perspectives).

Facilitator(s): 

Intended Audience: past and future contributors to the navigation editor and block. Contributors to other related parts of WordPress.

Note Taker: any volunteers to be the official note keeper?

Preparation:

Please could participants test drive the old and new screens. Try creating the same menus on both screens.

Then come prepared with features they feel are missing from the block-based Navigation screen that are present in the classic Menu screen, or any bugs encountered.

Image showing both the new and current navigation experiences with text saying "A new navigation editing experience is coming...".

Agenda

Introduction

  • Facilitator introductions.
  • Welcome to attendees.
  • Recap hangout topic and goal.
  • Terminology – block-based vs classic Navigation screens.

Format

  • Explain the format.
  • Facilitator will share screen to demonstrate which parts of the experience are being discussed.
  • Questions to consider about the new screen:
    • Where is it lacking polish?
    • What bugs are in evidence?
    • What steps are harder to achieve?
    • What steps are not possible to achieve?
    • What steps are easier to achieve?
    • What features are entirely missing?

Summary

  • Brief summary of key discussion points from notetaker.
  • Summary of action points including Issues to be created or further explorations required.
  • Next steps.
  • Thanks.

#block-editor, #feature-navigation-block-editor, #gutenberg, #menus

I’ve starting making a list of what I found comparing the classic (existing) and block-based Navigation screens.

Anyone can feel free to contribute or we can simply discuss on tomorrow’s hangout.

What’s new in Gutenberg 11.3? (18 August)

Two weeks have passed since 11.2, so here we are again for a new Gutenberg release, 11.3.0. This update includes inserter performance improvements, new controls for Block Dimensions, and some enhancements around how we handle Featured Post Images.

New Dimensions Panel

Replacing the Spacing Panel, this new Dimensions Panel gives us a deeper control over supported spacing, size, and other related style options. It also offers the ability to customize what you’d like to have shown. This is a great addition that builds on the overall dimension controls work across blocks.

Block inserter performance improvements

The block inserter is getting a big performance boost! Enjoy searching and inserting blocks with speed and ease.

Dimension controls for Featured Image Block

There are now new height, width, and scale controls for the featured image block, bringing it into greater parity with the Image block. This change impacts the Query Loop block in a big way by allowing even more layout options.

New icons for Reusable Blocks and Template Parts

New icons are now available for Reusable Block and Template Parts to make them each more recognizable and more intuitive to interact with.

11.3.0

Enhancements

  • Block Library
    • Button: Add padding block support. (31774)
    • Post Featured Image: Add basic dimension controls. (31634)
    • Template Part: Try new icons for reusable blocks and template parts. (34002)
  • Block Patterns
    • Add translation context on titles. (33734)
  • Block Editor
    • Enable rich previews for internal links. (33086)
  • Components
    • Add new ColorPicker. (33714)
    • Promote ItemGroup. (33701)
    • Polish the focus style for the segmented control. (33842)
    • Tune appender margin. (33866)
    • Update snackbar to use framer motion instead of react spring. (33717)
    • Use updated range styles. (33824)
  • CSS & Styling
    • Reduce specificity of reset & classic styles. (32659)
  • Document Settings
    • Disable spellcheck and autocomplete in permalink slug field. (33708)
  • Global Styles
    • Dimensions Panel: Add new ToolsPanel component and update spacing supports. (32392)
  • REST API
    • Improve the likelihood of getting rich link previews by modifying UA string for URL Details REST API endpoint. (33747)
  • Site Editor
    • Add error boundary. (33921)
  • Template Editor
    • Template Mode: Add busy state to template creation modal. (33076)
  • Widgets Editor
    • Add error boundaries to widget screens. (33771)

Bug Fixes

  • Accessibility
    • Fix some JAWS bugs. (33627)
  • Block Library
    • Button: Fix justification for button block when selected. (33739)
    • Image: Fix issue with canInsertCover not being set to false for empty arrays. (33863)
    • Query Pagination Numbers: Fix first page’s link. (33629)
  • Block API
    • Dimensions Support: Switch dimensions block support back to using spacing key. (34030)
  • Block Editor
    • Closing the block inserter decrements block type impressions. (33906)
    • Fix block appender position in classic themes. (33895)
    • Fix positioning discrepancy with draggable chip. (33893)
    • Force link text to wrap in the Link UI when encountering extra long link text. (33753)
    • Improve display of LinkURL menu and fix spacing. (33652)
    • Only show rich preview for image and description if data is available. (33660)
    • URL Details: Avoid PHP notice when parsing protocol-relative icon URLs. (33779)
  • Components
    • useBreakpointIndex: Attach resize event listener to window instead of document. (33902)
    • Components: Fix RTL on custom gradient picker. (33831)
    • FontSizePicker: Use number values when the initial value is a number. (33679)
    • FormTokenField: Avoid error when maxLength value is hit. (33623)
  • CSS & Styling
    • Fix navigation block placeholder preview markup. (33963)
  • Global Styles
    • Avoid rendering duplicate elements stylesheet. (33680)
    • Fix presets for blocks with multiple selectors. (33951)
    • Fix Global Styles transient key clash. (33844)
  • Meta Boxes
    • Fix Safari 13 metaboxes from overlapping the content. (33817)
  • Navigation Editor
    • Avoid React warning when creating a new menu. (33843)
    • Fix regressed menu selection dropdown placeholder value for Nav Editor menu locations UI. (33748)
  • Site Editor
    • Fix the site editor breaking in firefox. (33896)
  • Post Editor
    • Editor: Safer isPreviewingPost check. (33840)
  • Template Editor
    • Only show post template actions to users with correct capabilities. (33392)

Performance

  • Block Library
    • Improve the rendering/update performance of the image block. (33974)
    • Do not add to the block-library CSS bundle the colors that come from theme.json. (33924)
  • Block Editor
    • Lazy render the inserter search results. (33868)
    • Lazy render block types in the inserter. (33749)
  • Parsing
    • Improve the performance of the parser by removing the automatic custom classnames handling. (33903)
  • Post Editor
    • Refactor the HierarchicalTermSelector so that it does not cause unnecessary loading of terms. (33418)
  • Template Editor
    • Template Mode: Remove ‘per_page’ argument from the template data selector. (33742)

Experiments

  • Full Site Editing
    • Site Editor: Implement a settings object filter. (33737)
    • Template part selection popover – minor style updates for visiblity. (33733)
    • Template Part placeholder – Add title step to creation flow. (33703)
  • Navigation Block
    • Navigation: Fix navigation block appender invalid html. (33964)
    • Enable the ability to remove a link from the Nav Link block in the Nav Block. (33777)
    • Fix navigation margin collapsing. (33021)

Documentation

  • Handbook
    • Add documentation to disable remote calls for block patterns. (33930)
    • Add missing comma. (33764)
    • Add more details about block attributes. (33880)
    • Add spaces in add_theme_support documentation code. (33796)
    • Correct spelling and grammar in documentation. (33860)
    • fix: supports.color.gradients is plural. (33781)
    • fix: Broken link in documentation to block support mechanism. (33780)
    • Update documentation to reflect new automated process for feature grouping. (33573)
    • link fix: Block editor Sidebar Tutorial. (33308)
  • Library
    • Fix gutenberg_resolve_template() return documentation. (33800)
    • Fix misspelling of “queries” in filter documentation. (33799)
  • Packages
    • Example for rest_endpoints filter in PHP. (33738)

Code Quality

  • Block Library
    • Site Logo: Use getMedia shorthand. (33992)
    • Featured Image: Use getMedia shorthand. (33943)
    • Search Block: Removed components class from icon button and polished css. (33961)
  • Components
    • Components utils: rtl() return type, rtl.watch() utility. (33882)
    • InputControl to TypeScript. (33696)
    • Use the __unsafe_useEmotionCache in the useCx hook. (33982)
  • Core Data
    • Deprecate getAuthors in favor of getUsers. (33725)
  • Global Styles
    • No longer read from experimental-theme.json. (33904)
    • Remove the experimental prefix and rename theme.json files. (33925)
  • Post Editor
    • Refactor MetaBoxesArea to to functional components using hooks. (30542)
  • Scripts
    • Fix typo in format change message. (33945)

Tools

  • Testing
    • Add search performance measures and make other measures more stable. (33848)
    • Avoid double parsing the content when loading the editor. (33727)
    • Block Hierarchy Navigation waits for the column to be highlighted. (33721)
    • Widgets Editor: Try to fix flaky customizer inspector test. (33890, 33965)
  • Build Tooling
    • Readable JS assets Plugin: Fix webpack 5 support. (33785)
    • Scripts: Use cssnano to minimize CSS files with build. (33750)
    • Scripts: Webpack configuration update to minimize CSS. (33676)
    • Scripts: Update webpack to v5 (try 2). (33818)
    • Scripts: Add missing fallback for target in webpack 5 configuration. (34112)
  • ESLint
    • Include .jsx extenstion when linting import statements. (33746)
  • GitHub Contributor Templates
  • Plugin
    • Plugin: Fix jsdoc/check-line-alignment ESLint warnings. (33901)
    • Correct function_exists() check typo introduced in #33331. (33513)

Performance Benchmark

The following benchmark compares performance for a particularly sizeable post (~36,000 words, ~1,000 blocks) over the last releases. Such a large post isn’t representative of the average editing experience but is adequate for spotting variations in performance.

VersionLoading TimeKeyPress Event (typing)
Gutenberg 11.37.23s38.57ms
Gutenberg 11.27.82s37.89ms
WordPress 5.87.99s41.44ms

Kudos to all the contributors that helped with the release! 👏

Thanks to @javiarce for our preview assets, @cbringmann and @mkaz for proof reading this post, @annezazu‘s great copy edits, @priethor for shepherding the process along so helpfully, @youknowriad for helping 🧑‍🚒 with the release, and everybody else who contributed to this release for your wonderful work!

#block-editor, #core-editor, #gutenberg, #gutenberg-new

Do the new dimensions control changes how “supports” option for spacing work in custom blocks (block.json)