Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
16c6d2f
build: Upgrade dev dependencies to latest versions
dcalhoun Dec 3, 2025
aec03f8
build: Upgrade various `@wordpress` dependencies
dcalhoun Dec 3, 2025
4d84e32
build: Patch `@wordpress/editor` and `@wordpress/format-library` exports
dcalhoun Dec 3, 2025
dd89382
build: Remove `@wordpress/core-commands` usage
dcalhoun Dec 3, 2025
5fe01ea
build: Upgrade `@wordpress/block-library`
dcalhoun Dec 3, 2025
acf435c
build: Upgrade `@wordpress/rich-text`
dcalhoun Dec 3, 2025
f14cc28
build: Vite `wordpress-externals-plugin` ignores raw file imports
dcalhoun Dec 3, 2025
6fc0ca5
build: Upgrade `@wordpress/components` to latest version
dcalhoun Dec 3, 2025
8e52ed5
build: Upgrade `@wordpress/block-editor` to the latest version
dcalhoun Dec 3, 2025
aa60f53
refactor: Replace broken private `getLayoutStyles` API usage
dcalhoun Dec 3, 2025
2a1b33b
refactor: Scope editor content styles to block canvas
dcalhoun Dec 4, 2025
f0f168c
fix: Improve toolbar styling consistency
dcalhoun Dec 4, 2025
191d555
build: Fix lint errors from module resolution failures
dcalhoun Dec 4, 2025
6dced9e
test: Avoid test failures from unlocking undefined stores
dcalhoun Dec 4, 2025
5f619c6
build: Upgrade `@vitejs/plugin-react`
dcalhoun Dec 4, 2025
e9f99f4
build: Upgrade `@wordpress/eslint-plugin` to latest
dcalhoun Dec 4, 2025
efd1b9b
fix: Remove block library theme styles
dcalhoun Dec 5, 2025
a01ab67
refactor: Load component styles into block editor canvas
dcalhoun Dec 5, 2025
5ce59fe
docs: Remove outdated `@wordpress/components` patch reference
dcalhoun Dec 5, 2025
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 .npmrc
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
legacy-peer-deps=true
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Used to fix a @typescript-eslint/utils dependency conflict. See e9f99f4.

6,339 changes: 3,406 additions & 2,933 deletions package-lock.json

Large diffs are not rendered by default.

78 changes: 40 additions & 38 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,58 +22,60 @@
"test:unit:watch": "vitest"
},
"dependencies": {
"@wordpress/api-fetch": "^7.10",
"@wordpress/base-styles": "^5.22.0",
"@wordpress/block-editor": "^14.17.0",
"@wordpress/block-library": "^9.22.0",
"@wordpress/blocks": "^14.7.0",
"@wordpress/components": "^29.4.0",
"@wordpress/core-data": "^7.22.0",
"@wordpress/data": "^10.18.0",
"@wordpress/data-controls": "^4.33.0",
"@wordpress/edit-post": "^8.22.0",
"@wordpress/editor": "^14.22.0",
"@wordpress/element": "^6.10",
"@wordpress/format-library": "^5.22.0",
"@wordpress/hooks": "^4.18.0",
"@wordpress/i18n": "^5.18.0",
"@wordpress/icons": "^10.16.0",
"@wordpress/preferences": "^4.16.0",
"@wordpress/preferences-persistence": "^2.33.0",
"@wordpress/private-apis": "^1.10",
"@wordpress/rich-text": "^7.16.0",
"@wordpress/style-engine": "^2.34.0",
"@wordpress/api-fetch": "^7.36.0",
"@wordpress/base-styles": "^6.12.0",
"@wordpress/block-editor": "^15.9.0",
"@wordpress/block-library": "^9.36.0",
"@wordpress/blocks": "^15.9.0",
"@wordpress/components": "^30.9.0",
"@wordpress/core-data": "^7.36.0",
"@wordpress/data": "^10.36.0",
"@wordpress/data-controls": "^4.36.0",
"@wordpress/edit-post": "^8.36.0",
"@wordpress/editor": "^14.36.0",
"@wordpress/element": "^6.36.0",
"@wordpress/format-library": "^5.36.0",
"@wordpress/global-styles-engine": "^1.3.0",
"@wordpress/hooks": "^4.36.0",
"@wordpress/i18n": "^6.9.0",
"@wordpress/icons": "^11.3.0",
"@wordpress/preferences": "^4.36.0",
"@wordpress/preferences-persistence": "^2.36.0",
"@wordpress/private-apis": "^1.36.0",
"@wordpress/rich-text": "^7.36.0",
"@wordpress/style-engine": "^2.36.0",
"clsx": "^2.1.1",
"jquery": "^3.7.1",
"lodash": "^4.17.21",
"moment": "^2.30.1",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"vite-plugin-node-polyfills": "^0.23.0"
"react-dom": "^18.3.1"
},
"devDependencies": {
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.9.1",
"@testing-library/react": "^16.3.0",
"@testing-library/user-event": "^14.6.1",
"@types/react": "^19.1.2",
"@types/react-dom": "^19.1.2",
"@vitejs/plugin-react": "^4.4.0",
"@wordpress/dependency-extraction-webpack-plugin": "^6.22.0",
"@wordpress/eslint-plugin": "^22.8.0",
"@wordpress/prettier-config": "^4.22.0",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"@vitejs/plugin-react": "^5.1.1",
"@wordpress/dependency-extraction-webpack-plugin": "^6.36.0",
"@wordpress/eslint-plugin": "^22.22.0",
"@wordpress/prettier-config": "^4.36.0",
"eslint": "^8.57",
"eslint-plugin-react-refresh": "^0.4.19",
"jsdom": "^26.1.0",
"magic-string": "^0.30.17",
"eslint-import-resolver-typescript": "^4.4.4",
"eslint-plugin-react-refresh": "^0.4.24",
"jsdom": "^27.2.0",
"magic-string": "^0.30.21",
"node-fetch": "^3.3.2",
"patch-package": "^8.0.0",
"patch-package": "^8.0.1",
"prettier": "npm:wp-prettier@^3.0.3",
"react-devtools": "^7.0.1",
"react-devtools-core": "^7.0.1",
"sass-embedded": "^1.86.3",
"vite": "^6.3.5",
"vitest": "^3.1.3"
"sass-embedded": "^1.93.3",
"vite": "^7.2.6",
"vite-plugin-node-polyfills": "^0.24.0",
"vitest": "^4.0.15"
},
"overrides": {
"gradient-parser": "^1.0.2"
Expand Down
54 changes: 0 additions & 54 deletions patches/@wordpress+block-editor+14.17.0.patch

This file was deleted.

67 changes: 67 additions & 0 deletions patches/@wordpress+block-editor+15.9.0.patch
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This replaces patches/@wordpress+block-editor+14.17.0.patch one-for-one, aside from the inline comment below.

Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
diff --git a/node_modules/@wordpress/block-editor/build-module/components/inserter-list-item/index.js b/node_modules/@wordpress/block-editor/build-module/components/inserter-list-item/index.js
index 59f2a09..e609306 100644
--- a/node_modules/@wordpress/block-editor/build-module/components/inserter-list-item/index.js
+++ b/node_modules/@wordpress/block-editor/build-module/components/inserter-list-item/index.js
@@ -23,6 +23,10 @@ function InserterListItem({
...props
}) {
const isDraggingRef = useRef(false);
+ const isTouchDeviceRef = useRef(
+ window.matchMedia( '(hover: none)' ).matches ||
+ window.matchMedia( '(pointer: coarse)' ).matches
+ );
const itemIconStyle = item.icon ? {
backgroundColor: item.icon.background,
color: item.icon.foreground
@@ -96,7 +100,7 @@ function InserterListItem({
}
},
onMouseEnter: () => {
- if (isDraggingRef.current) {
+ if (isDraggingRef.current || isTouchDeviceRef.current) {
return;
}
onHover(item);
diff --git a/node_modules/@wordpress/block-editor/build-module/components/inserter/index.js b/node_modules/@wordpress/block-editor/build-module/components/inserter/index.js
index d762257..8ea6b39 100644
--- a/node_modules/@wordpress/block-editor/build-module/components/inserter/index.js
+++ b/node_modules/@wordpress/block-editor/build-module/components/inserter/index.js
@@ -174,8 +174,9 @@ var Inserter = class extends Component {
contentClassName: clsx("block-editor-inserter__popover", {
"is-quick": isQuick
}),
- popoverProps: { position, shift: true },
+ popoverProps: { ...this.props.popoverProps, position, shift: true },
onToggle: this.onToggle,
+ open: this.props.open,
expandOnMobile: true,
headerTitle: __("Add a block"),
renderToggle: this.renderToggle,
diff --git a/node_modules/@wordpress/block-editor/build-module/components/provider/index.js b/node_modules/@wordpress/block-editor/build-module/components/provider/index.js
index ef8110e..8b3d55f 100644
--- a/node_modules/@wordpress/block-editor/build-module/components/provider/index.js
+++ b/node_modules/@wordpress/block-editor/build-module/components/provider/index.js
@@ -91,7 +91,7 @@ var ExperimentalBlockEditorProvider = withRegistryProvider(
}
);
var BlockEditorProvider = (props) => {
- return /* @__PURE__ */ jsx(ExperimentalBlockEditorProvider, { ...props, stripExperimentalSettings: true, children: props.children });
+ return /* @__PURE__ */ jsx(ExperimentalBlockEditorProvider, { ...props, stripExperimentalSettings: false, children: props.children });
};
var provider_default = BlockEditorProvider;
export {
diff --git a/node_modules/@wordpress/block-editor/package.json b/node_modules/@wordpress/block-editor/package.json
index 589edd8..84748cf 100644
--- a/node_modules/@wordpress/block-editor/package.json
+++ b/node_modules/@wordpress/block-editor/package.json
@@ -31,7 +31,9 @@
"require": "./build/index.js"
},
"./package.json": "./package.json",
- "./build-style/": "./build-style/"
+ "./build-style/": "./build-style/",
+ "./build-module/components/inserter/media-tab/*": "./build-module/components/inserter/media-tab/*",
+ "./build-module/components/inserter/hooks/*": "./build-module/components/inserter/hooks/*"
Comment on lines +63 to +64
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given GutenbergKit accesses private modules paths, we must explicitly export these modules now that @wordpress/block-editor defines exports of its own.

},
"react-native": "src/index",
"wpScript": true,
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No changes. This existing patch was recreated for the new @wordpress/block-library version.

Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
diff --git a/node_modules/@wordpress/block-library/build-module/image/image.js b/node_modules/@wordpress/block-library/build-module/image/image.js
index 473b653..8a52e9e 100644
index 14d14ab..6bab7fc 100644
--- a/node_modules/@wordpress/block-library/build-module/image/image.js
+++ b/node_modules/@wordpress/block-library/build-module/image/image.js
@@ -282,7 +282,7 @@ export default function Image({
@@ -311,7 +311,7 @@ function Image({
const [hasImageErrored, setHasImageErrored] = useState(false);
const hasNonContentControls = blockEditingMode === 'default';
const isContentOnlyMode = blockEditingMode === 'contentOnly';
const hasNonContentControls = blockEditingMode === "default";
const isContentOnlyMode = blockEditingMode === "contentOnly";
- const isResizable = allowResize && hasNonContentControls && !isWideAligned && isLargeViewport;
+ const isResizable = allowResize && hasNonContentControls && !isWideAligned;
const imageSizeOptions = imageSizes.filter(({
slug
}) => image?.media_details?.sizes?.[slug]?.source_url).map(({
const imageSizeOptions = imageSizes.filter(
({ slug }) => image?.media_details?.sizes?.[slug]?.source_url
).map(({ name, slug }) => ({ value: slug, label: name }));
30 changes: 0 additions & 30 deletions patches/@wordpress+components+29.8.0.patch
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This patch was removed as it is no longer necessary after WordPress/gutenberg@01d3959.

This file was deleted.

14 changes: 14 additions & 0 deletions patches/@wordpress+editor+14.36.0.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
diff --git a/node_modules/@wordpress/editor/package.json b/node_modules/@wordpress/editor/package.json
index 3a66d82..43a3e7d 100644
--- a/node_modules/@wordpress/editor/package.json
+++ b/node_modules/@wordpress/editor/package.json
@@ -30,7 +30,8 @@
"import": "./build-module/index.js",
"require": "./build/index.js"
},
- "./package.json": "./package.json"
+ "./package.json": "./package.json",
+ "./build-style/*": "./build-style/*"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wordpress/editor seemingly mistakenly overlooks exporting its styles. This needs to be contributed to the upstream WordPress/gutenberg repository.

},
"react-native": "src/index",
"wpScript": true,
14 changes: 14 additions & 0 deletions patches/@wordpress+format-library+5.36.0.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
diff --git a/node_modules/@wordpress/format-library/package.json b/node_modules/@wordpress/format-library/package.json
index b678801..bb4adbc 100644
--- a/node_modules/@wordpress/format-library/package.json
+++ b/node_modules/@wordpress/format-library/package.json
@@ -29,7 +29,8 @@
"import": "./build-module/index.js",
"require": "./build/index.js"
},
- "./package.json": "./package.json"
+ "./package.json": "./package.json",
+ "./build-style/*": "./build-style/*"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@wordpress/format-library seemingly mistakenly overlooks exporting its styles. This needs to be contributed to the upstream WordPress/gutenberg repository.

},
"react-native": "src/index",
"wpScript": true,
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No changes. This existing patch was recreated for the new @wordpress/rich-text version.

Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
diff --git a/node_modules/@wordpress/rich-text/build-module/component/event-listeners/prevent-focus-capture.js b/node_modules/@wordpress/rich-text/build-module/component/event-listeners/prevent-focus-capture.js
index 3b885f5..c2ea3d0 100644
index 742296f..0617940 100644
--- a/node_modules/@wordpress/rich-text/build-module/component/event-listeners/prevent-focus-capture.js
+++ b/node_modules/@wordpress/rich-text/build-module/component/event-listeners/prevent-focus-capture.js
@@ -36,9 +36,11 @@ export function preventFocusCapture() {
@@ -26,9 +26,11 @@ function preventFocusCapture() {
}
defaultView.addEventListener('pointerdown', onPointerDown);
defaultView.addEventListener('pointerup', onPointerUp);
+ defaultView.addEventListener('pointercancel', onPointerUp);
defaultView.addEventListener("pointerdown", onPointerDown);
defaultView.addEventListener("pointerup", onPointerUp);
+ defaultView.addEventListener("pointercancel", onPointerUp);
return () => {
defaultView.removeEventListener('pointerdown', onPointerDown);
defaultView.removeEventListener('pointerup', onPointerUp);
+ defaultView.removeEventListener('pointercancel', onPointerUp);
defaultView.removeEventListener("pointerdown", onPointerDown);
defaultView.removeEventListener("pointerup", onPointerUp);
+ defaultView.removeEventListener("pointercancel", onPointerUp);
};
};
}
8 changes: 6 additions & 2 deletions patches/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,13 @@ Existing patches should be described and justified here.

- Enable image resizing on mobile devices by removing the `isLargeViewport` check from the `isResizable` condition in the `Image` component. The resizing feature appears to work well enough now, in contrast to the description in https://github.com/WordPress/gutenberg/issues/2675.

### `@wordpress/components`
### `@wordpress/editor`

- Apply workaround to `FormFileUpload` to address iOS Safari's lack of support for a wildcard `audio/*` MIME type. Can be removed once [the issue](https://github.com/WordPress/gutenberg/issues/70119) is resolved in a future release.
- Add `./build-style/*` to the package's `exports` field to allow importing CSS files. The package added an `exports` field in [this commit](https://github.com/WordPress/gutenberg/commit/f13dcfaa60) that restricts importable paths, but omitted CSS assets. Note: Creating this patch required using `--exclude='^$'` due to a [patch-package limitation](https://github.com/ds300/patch-package/issues/250).

### `@wordpress/format-library`

- Add `./build-style/*` to the package's `exports` field to allow importing CSS files. The package added an `exports` field in [this commit](https://github.com/WordPress/gutenberg/commit/f13dcfaa60) that restricts importable paths, but omitted CSS assets. Note: Creating this patch required using `--exclude='^$'` due to a [patch-package limitation](https://github.com/ds300/patch-package/issues/250).

### `@wordpress/rich-text`

Expand Down
2 changes: 1 addition & 1 deletion src/components/editor-toolbar/index.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -118,7 +118,7 @@ const EditorToolbar = ( { className } ) => {
<div className={ classes }>
<Toolbar
label="Editor toolbar"
variant="unstyled"
variant="toolbar"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Switch to this variant to ensure separator lines between the block toolbar button groups appear consistently.

Before After
before after

ref={ scrollViewRef }
className={ scrollViewClasses }
>
Expand Down
11 changes: 10 additions & 1 deletion src/components/editor-toolbar/style.scss
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
@use "@wordpress/base-styles/colors" as wordpress;

$border-color: #c8c7cc;
$border-color: wordpress.$gray-300;
$border-radius: 2px;
$min-touch-target-size: 46px;
$scroll-indicator-elevation: 32;
Expand All @@ -14,6 +14,10 @@ $scroll-indicator-elevation: 32;
border-radius: 0;
}

.gutenberg-kit-editor-toolbar .components-accessible-toolbar {
border: none; // Remove "toolbar" variant's default black border
}

// Disable overflow scrolling for the block toolbar, and rely upon scrolling the
// parent editor toolbar to avoid nested scrolling views.
.gutenberg-kit-editor-toolbar .block-editor-block-contextual-toolbar {
Expand Down Expand Up @@ -91,6 +95,11 @@ $scroll-indicator-elevation: 32;
.gutenberg-kit-editor-toolbar .components-toolbar-group {
border-right-color: $border-color;
min-height: $min-touch-target-size;
// Reset Gutenberg's negative margin that oddly create a gap at the top/bottom
// of the toolbar, rather than extending the button height as intended in
// Gutenberg.
margin-top: initial;
margin-bottom: initial;
padding-left: 0;
padding-right: 0;
}
Expand Down
Loading