Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
1e6e9db
Fix: Allow style variations to override blockGap
BrajamohanDas-afk Jan 10, 2026
e067e76
Fix PHP coding standards violations
BrajamohanDas-afk Jan 11, 2026
8c523b3
TypeScript: Migrate `packages/jest-puppeteer-axe` package to TypeScri…
SainathPoojary Jan 11, 2026
645a69d
dom-ready: Refactor tests to use defineProperty (#74514)
SirLouen Jan 11, 2026
0e1d8ab
Dev: Fix file change logs not displaying in watch mode (#74452)
manzoorwanijk Jan 12, 2026
1224502
Block Fields: show all form fields by default (#74486)
talldan Jan 12, 2026
12e68af
Heading: Migrate to text-align block support (#74383)
shimotmk Jan 12, 2026
bb6ddc9
Fix the dataviews experiment locked fields position on toggle. (#74326)
rutviksavsani Jan 12, 2026
e84260e
Fully resolve some intra-package import paths (#74530)
jsnajdr Jan 12, 2026
fa3e0af
TypeScript: Migrate shortcode package to TS. (#74522)
manzoorwanijk Jan 12, 2026
a5c25af
Navigation Overlay: Fix area and icon name (#74520)
t-hamano Jan 12, 2026
943acc0
Storybook: Update "Introduction" doc (#74500)
mirka Jan 12, 2026
a3c5056
Storybook: Retire old theme switcher (#74499)
mirka Jan 12, 2026
06c9e44
Add design-tokens.css to stylelintignore (#74498)
mirka Jan 12, 2026
7b118c2
fix nextpage-more-disable-visibility (#74531)
shimotmk Jan 12, 2026
5fddf4d
`@wordpress/ui` `Button`: undo `destructive` tone variant (#74540)
ciampo Jan 12, 2026
4468331
Update nested-blocks-inner-blocks.md (#74534)
Ndimande-dev Jan 12, 2026
a29fa44
Clamp signaling server retries to prevent unbounded backoff (#74372)
dimitrop Jan 12, 2026
2ac0f29
`@wordpress/ui` `Button`: refactor to base ui (#74416)
ciampo Jan 12, 2026
60c3829
Storybook: Remove "background" tools from toolbar (#74538)
mirka Jan 12, 2026
3e146d5
Storybook: Remove margin checker tool (#74539)
mirka Jan 12, 2026
0c8a06c
Fix documentation title for @wordpress/build package (#74541)
youknowriad Jan 12, 2026
aea8e8c
TypeScript: Convert notices package to TypeScript (#67670)
manzoorwanijk Jan 12, 2026
6b20f1c
Fix: Allow style variations to override blockGap
BrajamohanDas-afk Jan 10, 2026
21887d3
Fix PHP coding standards violations
BrajamohanDas-afk Jan 11, 2026
f0e0972
Merge branch 'Fix-Global-blockGap-property' of https://github.com/Bra…
BrajamohanDas-afk Jan 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .stylelintignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ build
build-style
node_modules
packages/stylelint-config/test
packages/theme/src/prebuilt
packages/theme/src/stylelint-plugins/test/fixtures
10 changes: 5 additions & 5 deletions bin/dev.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -203,15 +203,15 @@ async function dev() {
// Wait for wp-build to complete its initial build, then signal ready.
// Using .then() ensures cleanup handlers are registered before awaiting,
// so early termination still triggers cleanup.
const onStdoutData = ( data ) => {
let isReady = false;
buildWatch.stdout.on( 'data', ( data ) => {
const output = data.toString();
process.stdout.write( output );
if ( output.includes( 'Watching for changes' ) ) {
buildWatch.stdout.off( 'data', onStdoutData );
if ( ! isReady && output.includes( 'Watching for changes' ) ) {
isReady = true;
readyMarkerFile.create();
}
};
buildWatch.stdout.on( 'data', onStdoutData );
} );

// Keep the process running
await new Promise( () => {} );
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ When defining a direct descendent block, use the `parent` block setting to defin

An example of this is the Comment Author Name block, which is assigned the `ancestor` block setting. This allows the Comment Author Name block to only be available as a nested descendant in its ancestral Comment Template block. Otherwise, the Comment Author Name block will not be available as an option within the block inserter. See [Comment Author Name code for reference](https://github.com/WordPress/gutenberg/tree/HEAD/packages/block-library/src/comment-author-name).

The `ancestor` relationship allows the Comment Author Name block to be anywhere in the hierarchical tree, and not _just_ a direct child of the parent Comment Template block, while still limiting its availability within the block inserter to only be visible an an option to insert if the Comment Template block is available.
The `ancestor` relationship allows the Comment Author Name block to be anywhere in the hierarchical tree, and not _just_ a direct child of the parent Comment Template block, while still limiting its availability within the block inserter to only be visible as an option to insert if the Comment Template block is available.

When defining a descendent block, use the `ancestor` block setting. This prevents the nested block from showing in the inserter outside of the InnerBlock it is defined for.

Expand Down
2 changes: 1 addition & 1 deletion docs/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -2100,7 +2100,7 @@
"parent": "packages"
},
{
"title": "@wordpress/wp-build",
"title": "@wordpress/build",
"slug": "packages-wp-build",
"markdown_source": "../packages/wp-build/README.md",
"parent": "packages"
Expand Down
8 changes: 4 additions & 4 deletions docs/reference-guides/core-blocks.md
Original file line number Diff line number Diff line change
Expand Up @@ -408,8 +408,8 @@ Introduce new sections and organize content to help visitors (and search engines

- **Name:** core/heading
- **Category:** text
- **Supports:** __unstablePasteTextInline, align (full, wide), anchor, className, color (background, gradients, link, text), interactivity (clientNavigation), spacing (margin, padding), splitting, typography (fitText, fontSize, lineHeight)
- **Attributes:** content, level, levelOptions, placeholder, textAlign
- **Supports:** __unstablePasteTextInline, align (full, wide), anchor, className, color (background, gradients, link, text), interactivity (clientNavigation), spacing (margin, padding), splitting, typography (fitText, fontSize, lineHeight, textAlign)
- **Attributes:** content, level, levelOptions, placeholder

## Home Link

Expand Down Expand Up @@ -520,7 +520,7 @@ Content before this block will be shown in the excerpt on your archives page. ([

- **Name:** core/more
- **Category:** design
- **Supports:** interactivity (clientNavigation), ~~className~~, ~~customClassName~~, ~~html~~, ~~multiple~~
- **Supports:** interactivity (clientNavigation), ~~className~~, ~~customClassName~~, ~~html~~, ~~multiple~~, ~~visibility~~
- **Attributes:** customText, noTeaser

## Navigation
Expand Down Expand Up @@ -571,7 +571,7 @@ Separate your content into a multi-page experience. ([Source](https://github.com
- **Name:** core/nextpage
- **Category:** design
- **Parent:** core/post-content
- **Supports:** anchor, interactivity (clientNavigation), ~~className~~, ~~customClassName~~, ~~html~~
- **Supports:** anchor, interactivity (clientNavigation), ~~className~~, ~~customClassName~~, ~~html~~, ~~visibility~~

## Page List

Expand Down
61 changes: 26 additions & 35 deletions docs/reference-guides/data/data-core-notices.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ Namespace: `core/notices`.

## Selectors

<!-- START TOKEN(Autogenerated selectors|../../../packages/notices/src/store/selectors.js) -->
<!-- START TOKEN(Autogenerated selectors|../../../packages/notices/src/store/selectors.ts) -->

### getNotices

Expand Down Expand Up @@ -32,18 +32,18 @@ const ExampleComponent = () => {

_Parameters_

- _state_ `Object`: Notices state.
- _context_ `?string`: Optional grouping context.
- _state_ `Record< string, Array< Notice > >`: Notices state.
- _context_ `string`: Optional grouping context.

_Returns_

- `WPNotice[]`: Array of notices.
- Array of notices.

<!-- END TOKEN(Autogenerated selectors|../../../packages/notices/src/store/selectors.js) -->
<!-- END TOKEN(Autogenerated selectors|../../../packages/notices/src/store/selectors.ts) -->

## Actions

<!-- START TOKEN(Autogenerated actions|../../../packages/notices/src/store/actions.js) -->
<!-- START TOKEN(Autogenerated actions|../../../packages/notices/src/store/actions.ts) -->

### createErrorNotice

Expand Down Expand Up @@ -83,11 +83,11 @@ const ExampleComponent = () => {
_Parameters_

- _content_ `string`: Notice message.
- _options_ `[Object]`: Optional notice options.
- _options_ `NoticeOptions`: Optional notice options.

_Returns_

- `Object`: Action object.
- Action object.

### createInfoNotice

Expand Down Expand Up @@ -124,11 +124,11 @@ const ExampleComponent = () => {
_Parameters_

- _content_ `string`: Notice message.
- _options_ `[Object]`: Optional notice options.
- _options_ `NoticeOptions`: Optional notice options.

_Returns_

- `Object`: Action object.
- Action object.

### createNotice

Expand Down Expand Up @@ -156,22 +156,13 @@ const ExampleComponent = () => {

_Parameters_

- _status_ `string|undefined`: Notice status ("info" if undefined is passed).
- _status_ Notice status ("info" if undefined is passed).
- _content_ `string`: Notice message.
- _options_ `[Object]`: Notice options.
- _options.context_ `[string]`: Context under which to group notice.
- _options.id_ `[string]`: Identifier for notice. Automatically assigned if not specified.
- _options.isDismissible_ `[boolean]`: Whether the notice can be dismissed by user.
- _options.type_ `[string]`: Type of notice, one of `default`, or `snackbar`.
- _options.speak_ `[boolean]`: Whether the notice content should be announced to screen readers.
- _options.actions_ `[Array<WPNoticeAction>]`: User actions to be presented with notice.
- _options.icon_ `[string]`: An icon displayed with the notice. Only used when type is set to `snackbar`.
- _options.explicitDismiss_ `[boolean]`: Whether the notice includes an explicit dismiss button and can't be dismissed by clicking the body of the notice. Only applies when type is set to `snackbar`.
- _options.onDismiss_ `[Function]`: Called when the notice is dismissed.
- _options_ `NoticeOptions`: Optional notice options.

_Returns_

- `Object`: Action object.
- `Extract< ReducerAction, { type: 'CREATE_NOTICE'; } >`: Action object.

### createSuccessNotice

Expand Down Expand Up @@ -209,11 +200,11 @@ const ExampleComponent = () => {
_Parameters_

- _content_ `string`: Notice message.
- _options_ `[Object]`: Optional notice options.
- _options_ `NoticeOptions`: Optional notice options.

_Returns_

- `Object`: Action object.
- Action object.

### createWarningNotice

Expand Down Expand Up @@ -255,11 +246,11 @@ const ExampleComponent = () => {
_Parameters_

- _content_ `string`: Notice message.
- _options_ `[Object]`: Optional notice options.
- _options_ `NoticeOptions`: Optional notice options.

_Returns_

- `Object`: Action object.
- Action object.

### removeAllNotices

Expand Down Expand Up @@ -301,12 +292,12 @@ export const ExampleComponent = () => {

_Parameters_

- _noticeType_ `string`: The context to remove all notices from.
- _context_ `string`: The context to remove all notices from.
- _noticeType_ The context to remove all notices from.
- _context_ `string`: The optional context to remove all notices from.

_Returns_

- `Object`: Action object.
- `Extract< ReducerAction, { type: 'REMOVE_ALL_NOTICES'; } >`: Action object.

### removeNotice

Expand Down Expand Up @@ -350,11 +341,11 @@ const ExampleComponent = () => {
_Parameters_

- _id_ `string`: Notice unique identifier.
- _context_ `[string]`: Optional context (grouping) in which the notice is intended to appear. Defaults to default context.
- _context_ `string`: Optional context (grouping) in which the notice is intended to appear. Defaults to 'default' context.

_Returns_

- `Object`: Action object.
- `Extract< ReducerAction, { type: 'REMOVE_NOTICE'; } >`: Action object.

### removeNotices

Expand Down Expand Up @@ -394,11 +385,11 @@ const ExampleComponent = () => {

_Parameters_

- _ids_ `string[]`: List of unique notice identifiers.
- _context_ `[string]`: Optional context (grouping) in which the notices are intended to appear. Defaults to default context.
- _ids_ `Array< string >`: List of unique notice identifiers.
- _context_ `string`: Optional context (grouping) in which the notices are intended to appear. Defaults to 'default' context.

_Returns_

- `Object`: Action object.
- `Extract< ReducerAction, { type: 'REMOVE_NOTICES'; } >`: Action object.

<!-- END TOKEN(Autogenerated actions|../../../packages/notices/src/store/actions.js) -->
<!-- END TOKEN(Autogenerated actions|../../../packages/notices/src/store/actions.ts) -->
12 changes: 11 additions & 1 deletion docs/tool/manifest.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,20 @@ function getPackageManifest( packageFolderNames ) {
return packageFolderNames.reduce( ( manifest, folderName ) => {
const path = `${ baseRepoUrl }/packages/${ folderName }/README.md`;
const tocPath = `${ baseRepoUrl }/packages/${ folderName }/docs/toc.json`;
const packageJson = require(
join(
__dirname,
'..',
'..',
'packages',
folderName,
'package.json'
)
);

// First add any README files to the TOC
manifest.push( {
title: `@wordpress/${ folderName }`,
title: packageJson.name,
slug: `packages-${ folderName }`,
markdown_source: path,
parent: 'packages',
Expand Down
23 changes: 23 additions & 0 deletions lib/block-supports/layout.php
Original file line number Diff line number Diff line change
Expand Up @@ -847,6 +847,29 @@ function gutenberg_render_layout_support_flag( $block_content, $block ) {

$gap_value = $block['attrs']['style']['spacing']['blockGap'] ?? null;

/*
* Check for style variation blockGap first.
* Style variations should override block-level and global blockGap values.
*/
$classes = $block['attrs']['className'] ?? '';
if ( ! empty( $classes ) && function_exists( 'gutenberg_get_block_style_variation_name_from_class' ) ) {
$variations = gutenberg_get_block_style_variation_name_from_class( $classes );

if ( $variations ) {
$tree = WP_Theme_JSON_Resolver_Gutenberg::get_merged_data();
$theme_json = $tree->get_raw_data();

foreach ( $variations as $variation ) {
$variation_data = $theme_json['styles']['blocks'][ $block['blockName'] ]['variations'][ $variation ] ?? array();

if ( isset( $variation_data['spacing']['blockGap'] ) ) {
$gap_value = $variation_data['spacing']['blockGap'];
break; // Use first matching variation with blockGap.
}
}
}
}

/*
* Skip if gap value contains unsupported characters.
* Regex for CSS value borrowed from `safecss_filter_attr`, and used here
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,8 @@ private static function handle_read_pending_messages( $subscriber_to_messages_pa
list( $fd, $subscriber_to_messages ) = static::get_contents_and_lock_file( $subscriber_to_messages_path );
if ( ! $fd ) {
$retries = isset( $_COOKIE['signaling_server_retries'] ) ? intval( $_COOKIE['signaling_server_retries'] ) : 0;
// Clamp retries to avoid unbounded exponential backoff.
$retries = max( 0, min( $retries, 10 ) );
$secure = ( 'https' === parse_url( home_url(), PHP_URL_SCHEME ) );
setcookie( 'signaling_server_retries', (string) ( $retries + 1 ), time() + DAY_IN_SECONDS, SITECOOKIEPATH, '', $secure );
echo 'id: ' . time() . PHP_EOL;
Expand Down
1 change: 0 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* External dependencies
*/
import fastDeepEqual from 'fast-deep-equal/es6';
import fastDeepEqual from 'fast-deep-equal/es6/index.js';

/**
* WordPress dependencies
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* External dependencies
*/
import fastDeepEqual from 'fast-deep-equal/es6';
import fastDeepEqual from 'fast-deep-equal/es6/index.js';

/**
* WordPress dependencies
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/**
* External dependencies
*/
import fastDeepEqual from 'fast-deep-equal/es6';
import fastDeepEqual from 'fast-deep-equal/es6/index.js';

/**
* WordPress dependencies
Expand Down
2 changes: 1 addition & 1 deletion packages/block-editor/src/components/rich-text/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
* External dependencies
*/
import clsx from 'clsx';
import fastDeepEqual from 'fast-deep-equal/es6';
import fastDeepEqual from 'fast-deep-equal/es6/index.js';

/**
* WordPress dependencies
Expand Down
Loading
Loading