diff --git a/.eslintrc.js b/.eslintrc.js
index 7925bceafd3d57..2e92b495691873 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -177,6 +177,8 @@ module.exports = {
'@wordpress/dependency-group': 'error',
'@wordpress/wp-global-usage': 'error',
'@wordpress/react-no-unsafe-timeout': 'error',
+ '@wordpress/i18n-hyphenated-range': 'error',
+ '@wordpress/i18n-no-flanking-whitespace': 'error',
'@wordpress/i18n-text-domain': [
'error',
{
@@ -214,6 +216,12 @@ module.exports = {
},
],
'no-restricted-syntax': [ 'error', ...restrictedSyntax ],
+ 'jsdoc/check-tag-names': [
+ 'error',
+ {
+ definedTags: [ 'jest-environment' ],
+ },
+ ],
},
overrides: [
{
@@ -277,6 +285,84 @@ module.exports = {
],
},
},
+ {
+ files: [ 'packages/*/src/**/*.[tj]s?(x)' ],
+ excludedFiles: [
+ 'packages/*/src/**/@(test|stories)/**',
+ '**/*.@(native|ios|android).js',
+ ],
+ rules: {
+ 'no-restricted-syntax': [
+ 'error',
+ ...restrictedSyntax,
+ ...restrictedSyntaxComponents,
+ // Temporary rules until we're ready to officially deprecate the bottom margins.
+ ...[
+ 'BaseControl',
+ 'CheckboxControl',
+ 'ComboboxControl',
+ 'DimensionControl',
+ 'FocalPointPicker',
+ 'RangeControl',
+ 'SearchControl',
+ 'SelectControl',
+ 'TextControl',
+ 'TextareaControl',
+ 'ToggleControl',
+ 'ToggleGroupControl',
+ 'TreeSelect',
+ ].map( ( componentName ) => ( {
+ selector: `JSXOpeningElement[name.name="${ componentName }"]:not(:has(JSXAttribute[name.name="__nextHasNoMarginBottom"]))`,
+ message:
+ componentName +
+ ' should have the `__nextHasNoMarginBottom` prop to opt-in to the new margin-free styles.',
+ } ) ),
+ // Temporary rules until we're ready to officially default to the new size.
+ ...[
+ 'BorderBoxControl',
+ 'BorderControl',
+ 'BoxControl',
+ 'ComboboxControl',
+ 'CustomSelectControl',
+ 'DimensionControl',
+ 'FontAppearanceControl',
+ 'FontFamilyControl',
+ 'FontSizePicker',
+ 'FormTokenField',
+ 'InputControl',
+ 'LetterSpacingControl',
+ 'LineHeightControl',
+ 'NumberControl',
+ 'RangeControl',
+ 'SelectControl',
+ 'TextControl',
+ 'ToggleGroupControl',
+ 'UnitControl',
+ ].map( ( componentName ) => ( {
+ // Falsy `__next40pxDefaultSize` without a non-default `size` prop.
+ selector: `JSXOpeningElement[name.name="${ componentName }"]:not(:has(JSXAttribute[name.name="__next40pxDefaultSize"][value.expression.value!=false])):not(:has(JSXAttribute[name.name="size"][value.value!="default"]))`,
+ message:
+ componentName +
+ ' should have the `__next40pxDefaultSize` prop to opt-in to the new default size.',
+ } ) ),
+ {
+ // Falsy `__next40pxDefaultSize` without a `render` prop.
+ selector:
+ 'JSXOpeningElement[name.name="FormFileUpload"]:not(:has(JSXAttribute[name.name="__next40pxDefaultSize"][value.expression.value!=false])):not(:has(JSXAttribute[name.name="render"]))',
+ message:
+ 'FormFileUpload should have the `__next40pxDefaultSize` prop to opt-in to the new default size.',
+ },
+ // Temporary rules until all existing components have the `__next40pxDefaultSize` prop.
+ ...[ 'Button' ].map( ( componentName ) => ( {
+ // Not strict. Allows pre-existing __next40pxDefaultSize={ false } usage until they are all manually updated.
+ selector: `JSXOpeningElement[name.name="${ componentName }"]:not(:has(JSXAttribute[name.name="__next40pxDefaultSize"])):not(:has(JSXAttribute[name.name="size"]))`,
+ message:
+ componentName +
+ ' should have the `__next40pxDefaultSize` prop to opt-in to the new default size.',
+ } ) ),
+ ],
+ },
+ },
{
files: [
// Components package.
diff --git a/.gitattributes b/.gitattributes
index 6c72e80a402976..1dc48620d8b67c 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -20,3 +20,6 @@ changelog.txt linguist-language=Markdown
# Flag docs directory as documentation for GitHub stats.
docs/** linguist-documentation
+
+# TSConfig files use jsonc.
+tsconfig*.json linguist-language=jsonc
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 88971069b3adf6..2ec03cba722c6b 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -1,5 +1,5 @@
# Documentation
-/docs @ajitbohra @ryanwelcher @juanmaguitar @fabiankaegy @ndiego
+/docs @ajitbohra @juanmaguitar @fabiankaegy @ndiego
/packages/interactivity/docs @juanmaguitar
# Schemas
@@ -18,7 +18,7 @@
/packages/block-library/src/comment-template @michalczaplinski
/packages/block-library/src/comments @michalczaplinski
/packages/block-library/src/table-of-contents @ZebulanStanphill
-/packages/block-library/src/image @artemiomorales @michalczaplinski
+/packages/block-library/src/image @artemiomorales
# Duotone
/lib/block-supports/duotone.php
@@ -119,9 +119,9 @@
/packages/plugins @gziolo @adamsilverstein
# Rich Text
-/packages/format-library @ellatrix @dcalhoun
-/packages/rich-text @ellatrix @dcalhoun
-/packages/block-editor/src/components/rich-text @ellatrix @dcalhoun
+/packages/format-library @ellatrix
+/packages/rich-text @ellatrix
+/packages/block-editor/src/components/rich-text @ellatrix
# Project Management
/.github @desrosj
diff --git a/.github/ISSUE_TEMPLATE/Bug_report.yml b/.github/ISSUE_TEMPLATE/Bug_report.yml
index 1109056e7e5d56..5d7c876ccefca7 100644
--- a/.github/ISSUE_TEMPLATE/Bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/Bug_report.yml
@@ -49,25 +49,19 @@ body:
validations:
required: false
- - type: dropdown
+ - type: checkboxes
id: existing
attributes:
label: Please confirm that you have searched existing issues in the repo.
description: You can do this by searching https://github.com/WordPress/gutenberg/issues and making sure the bug is not related to another plugin.
- multiple: true
options:
- - 'Yes'
- - 'No'
- validations:
- required: true
+ - label: 'Yes'
+ required: true
- - type: dropdown
+ - type: checkboxes
id: plugins
attributes:
label: Please confirm that you have tested with all plugins deactivated except Gutenberg.
- multiple: true
options:
- - 'Yes'
- - 'No'
- validations:
- required: true
+ - label: 'Yes'
+ required: true
diff --git a/.github/workflows/build-plugin-zip.yml b/.github/workflows/build-plugin-zip.yml
index f9fa22d324d777..ce830c04f651d8 100644
--- a/.github/workflows/build-plugin-zip.yml
+++ b/.github/workflows/build-plugin-zip.yml
@@ -3,7 +3,10 @@ name: Build Gutenberg Plugin Zip
on:
pull_request:
push:
- branches: [trunk]
+ branches:
+ - trunk
+ - 'release/**'
+ - 'wp/**'
workflow_dispatch:
inputs:
version:
@@ -171,7 +174,7 @@ jobs:
show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}
- name: Use desired version of Node.js
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
+ uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version-file: '.nvmrc'
check-latest: true
@@ -270,12 +273,12 @@ jobs:
run: echo "version=$(echo $VERSION | cut -d / -f 3 | sed 's/-rc./ RC/' )" >> $GITHUB_OUTPUT
- name: Download Plugin Zip Artifact
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: gutenberg-plugin
- name: Download Release Notes Artifact
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: release-notes
@@ -333,7 +336,7 @@ jobs:
git config user.email gutenberg@wordpress.org
- name: Setup Node.js
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
+ uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version-file: 'main/.nvmrc'
registry-url: 'https://registry.npmjs.org'
diff --git a/.github/workflows/bundle-size.yml b/.github/workflows/bundle-size.yml
index 507892aae1dd5f..fe2cc2edf6ca7f 100644
--- a/.github/workflows/bundle-size.yml
+++ b/.github/workflows/bundle-size.yml
@@ -94,7 +94,7 @@ jobs:
show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}
- name: Use desired version of Node.js
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
+ uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version-file: '.nvmrc'
check-latest: true
@@ -103,6 +103,6 @@ jobs:
- uses: preactjs/compressed-size-action@f780fd104362cfce9e118f9198df2ee37d12946c # v2.6.0
with:
repo-token: '${{ secrets.GITHUB_TOKEN }}'
- pattern: '{build/**/*.min.js,build/**/*.css}'
+ pattern: '{build/**/*.min.js,build/**/*.css,build-module/**/*.min.js}'
clean-script: 'distclean'
>>>>>>> upstream/trunk
diff --git a/.github/workflows/check-backport-changelog.yml b/.github/workflows/check-backport-changelog.yml
index 355acb37bd14d4..366bad9fdbc247 100644
--- a/.github/workflows/check-backport-changelog.yml
+++ b/.github/workflows/check-backport-changelog.yml
@@ -1,4 +1,4 @@
-name: Verify Core Backport Changlog
+name: Verify Core Backport Changelog
on:
pull_request:
@@ -18,22 +18,15 @@ on:
- '!packages/e2e-tests/**'
jobs:
check:
- name: Check CHANGELOG diff
+ name: Check for a Core backport changelog entry
runs-on: ubuntu-latest
+ if: ${{ !contains(github.event.pull_request.labels.*.name, 'No Core Sync Required') && !contains(github.event.pull_request.labels.*.name, 'Backport from WordPress Core') }}
steps:
- - name: 'Get PR commit count'
- run: echo "PR_COMMIT_COUNT=$(( ${{ github.event.pull_request.commits }} + 1 ))" >> "${GITHUB_ENV}"
- - name: Checkout code
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
ref: ${{ github.event.pull_request.head.ref }}
repository: ${{ github.event.pull_request.head.repo.full_name }}
- fetch-depth: ${{ env.PR_COMMIT_COUNT }}
- show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}
- - name: 'Fetch relevant history from origin'
- run: git fetch origin ${{ github.event.pull_request.base.ref }}
- - name: Check CHANGELOG status
- if: ${{ !contains(github.event.pull_request.labels.*.name, 'No Core Sync Required') && !contains(github.event.pull_request.labels.*.name, 'Backport from WordPress Core') }}
+ - name: Check the changelog folder
env:
PR_NUMBER: ${{ github.event.number }}
run: |
diff --git a/.github/workflows/end2end-test.yml b/.github/workflows/end2end-test.yml
index 92b92be8e885e8..1474b48c0b94f3 100644
--- a/.github/workflows/end2end-test.yml
+++ b/.github/workflows/end2end-test.yml
@@ -225,7 +225,7 @@ jobs:
ref: trunk
show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}
- - uses: actions/download-artifact@v4.1.7
+ - uses: actions/download-artifact@v4.1.8
# Don't fail the job if there isn't any flaky tests report.
continue-on-error: true
with:
diff --git a/.github/workflows/performance.yml b/.github/workflows/performance.yml
index 288bef1580038f..98615b93b8a176 100644
--- a/.github/workflows/performance.yml
+++ b/.github/workflows/performance.yml
@@ -69,13 +69,13 @@ jobs:
- name: Compare performance with base branch
if: github.event_name == 'push'
# The base hash used here need to be a commit that is compatible with the current WP version
- # The current one is 9725060a5b18904c6cc5fdbe4b06fbde7419e02c and it needs to be updated every WP major release.
+ # The current one is 5f4c9c853b15092ed885d5280edefb973c37d9e9 and it needs to be updated every WP major release.
# It is used as a base comparison point to avoid fluctuation in the performance metrics.
run: |
WP_VERSION=$(awk -F ': ' '/^Tested up to/{print $2}' readme.txt)
IFS=. read -ra WP_VERSION_ARRAY <<< "$WP_VERSION"
WP_MAJOR="${WP_VERSION_ARRAY[0]}.${WP_VERSION_ARRAY[1]}"
- ./bin/plugin/cli.js perf $GITHUB_SHA 9725060a5b18904c6cc5fdbe4b06fbde7419e02c --tests-branch $GITHUB_SHA --wp-version "$WP_MAJOR"
+ ./bin/plugin/cli.js perf $GITHUB_SHA 5f4c9c853b15092ed885d5280edefb973c37d9e9 --tests-branch $GITHUB_SHA --wp-version "$WP_MAJOR"
- name: Compare performance with custom branches
if: github.event_name == 'workflow_dispatch'
@@ -101,7 +101,7 @@ jobs:
CODEHEALTH_PROJECT_TOKEN: ${{ secrets.CODEHEALTH_PROJECT_TOKEN }}
run: |
COMMITTED_AT=$(git show -s $GITHUB_SHA --format="%cI")
- ./bin/log-performance-results.js $CODEHEALTH_PROJECT_TOKEN trunk $GITHUB_SHA 9725060a5b18904c6cc5fdbe4b06fbde7419e02c $COMMITTED_AT
+ ./bin/log-performance-results.js $CODEHEALTH_PROJECT_TOKEN trunk $GITHUB_SHA 5f4c9c853b15092ed885d5280edefb973c37d9e9 $COMMITTED_AT
- name: Archive debug artifacts (screenshots, HTML snapshots)
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
diff --git a/.github/workflows/props-bot.yml b/.github/workflows/props-bot.yml
index 0f21f47ef14f99..b2332aabb816c7 100644
--- a/.github/workflows/props-bot.yml
+++ b/.github/workflows/props-bot.yml
@@ -18,7 +18,7 @@ on:
# You cannot filter this event for PR comments only.
# However, the logic below does short-circuit the workflow for issues.
issue_comment:
- type:
+ types:
- created
# This event will run everytime a new PR review is initially submitted.
pull_request_review:
diff --git a/.github/workflows/publish-npm-packages.yml b/.github/workflows/publish-npm-packages.yml
index 31df5a1575fa84..a24e5012474025 100644
--- a/.github/workflows/publish-npm-packages.yml
+++ b/.github/workflows/publish-npm-packages.yml
@@ -67,7 +67,7 @@ jobs:
- name: Setup Node.js
if: ${{ github.event.inputs.release_type != 'wp' }}
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
+ uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version-file: 'cli/.nvmrc'
registry-url: 'https://registry.npmjs.org'
@@ -75,7 +75,7 @@ jobs:
- name: Setup Node.js (for WP major version)
if: ${{ github.event.inputs.release_type == 'wp' && github.event.inputs.wp_version }}
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
+ uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version-file: 'publish/.nvmrc'
registry-url: 'https://registry.npmjs.org'
diff --git a/.github/workflows/pull-request-automation.yml b/.github/workflows/pull-request-automation.yml
index 7766893e54a970..26eb08d759a2a9 100644
--- a/.github/workflows/pull-request-automation.yml
+++ b/.github/workflows/pull-request-automation.yml
@@ -49,7 +49,7 @@ jobs:
show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}
- name: Use desired version of Node.js
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
+ uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version-file: '.nvmrc'
check-latest: true
diff --git a/.github/workflows/rnmobile-android-runner.yml b/.github/workflows/rnmobile-android-runner.yml
index 4e032196e01509..75f4fab0b7c338 100644
--- a/.github/workflows/rnmobile-android-runner.yml
+++ b/.github/workflows/rnmobile-android-runner.yml
@@ -66,7 +66,7 @@ jobs:
show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}
- name: Use desired version of Java
- uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
+ uses: actions/setup-java@2dfa2011c5b2a0f1489bf9e433881c92c1631f88 # v4.3.0
with:
distribution: 'corretto'
java-version: '17'
@@ -85,7 +85,7 @@ jobs:
run: npm run native test:e2e:setup
- name: Gradle cache
- uses: gradle/actions/setup-gradle@dbbdc275be76ac10734476cc723d82dfe7ec6eda # v3.4.2
+ uses: gradle/actions/setup-gradle@d156388eb19639ec20ade50009f3d199ce1e2808 # v4.1.0
- name: AVD cache
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2
@@ -98,7 +98,7 @@ jobs:
- name: Create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
- uses: reactivecircus/android-emulator-runner@77986be26589807b8ebab3fde7bbf5c60dabec32 # v2.31.0
+ uses: reactivecircus/android-emulator-runner@f0d1ed2dcad93c7479e8b2f2226c83af54494915 # v2.32.0
with:
api-level: ${{ matrix.api-level }}
force-avd-creation: false
@@ -109,7 +109,7 @@ jobs:
script: echo "Generated AVD snapshot for caching."
- name: Run tests
- uses: reactivecircus/android-emulator-runner@77986be26589807b8ebab3fde7bbf5c60dabec32 # v2.31.0
+ uses: reactivecircus/android-emulator-runner@f0d1ed2dcad93c7479e8b2f2226c83af54494915 # v2.32.0
with:
api-level: ${{ matrix.api-level }}
force-avd-creation: false
diff --git a/.github/workflows/rnmobile-ios-runner.yml b/.github/workflows/rnmobile-ios-runner.yml
index 1849dc0c39aae7..8232d3703256ae 100644
--- a/.github/workflows/rnmobile-ios-runner.yml
+++ b/.github/workflows/rnmobile-ios-runner.yml
@@ -125,7 +125,7 @@ jobs:
show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}
>>>>>>> upstream/trunk
- - uses: ruby/setup-ruby@3783f195e29b74ae398d7caca108814bbafde90e # v1.180.1
+ - uses: ruby/setup-ruby@a6e6f86333f0a2523ece813039b8b4be04560854 # v1.190.0
with:
# `.ruby-version` file location
working-directory: packages/react-native-editor/ios
diff --git a/.github/workflows/static-checks.yml b/.github/workflows/static-checks.yml
index 48402485561c04..ecea0f9d5c1c28 100644
--- a/.github/workflows/static-checks.yml
+++ b/.github/workflows/static-checks.yml
@@ -89,7 +89,7 @@ jobs:
>>>>>>> upstream/trunk
- name: Use desired version of Node.js
- uses: actions/setup-node@60edb5dd545a775178f52524783378180af0d1f8 # v4.0.2
+ uses: actions/setup-node@1e60f620b9541d16bece96c5465dc8ee9832be0b # v4.0.3
with:
node-version-file: '.nvmrc'
check-latest: true
diff --git a/.github/workflows/sync-backport-changelog.yml b/.github/workflows/sync-backport-changelog.yml
new file mode 100644
index 00000000000000..bbc5663cf715be
--- /dev/null
+++ b/.github/workflows/sync-backport-changelog.yml
@@ -0,0 +1,91 @@
+name: Sync Core Backport Issue
+
+on:
+ push:
+ branches:
+ - trunk
+ issues:
+ types: [labeled]
+
+jobs:
+ sync-backport-changelog:
+ name: Sync Core Backport Issue
+ runs-on: ubuntu-latest
+ if: >
+ github.event_name == 'push' ||
+ (
+ github.event_name == 'issues' &&
+ github.event.action == 'labeled' &&
+ github.event.label.name == 'š¤ Sync Backport Changelog'
+ )
+ steps:
+ - name: Checkout
+ uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
+ with:
+ fetch-depth: 2 # Fetch the last two commits to compare changes
+ - name: Check for changes in backport-changelog
+ if: github.event_name == 'push'
+ run: |
+ if git diff --quiet HEAD^ HEAD -- backport-changelog; then
+ echo "skip_sync=true" >> "$GITHUB_ENV"
+ fi
+ - name: Sync Issue
+ if: ${{ ! env.skip_sync }}
+ uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
+ with:
+ script: |
+ const labelName = 'š¤ Sync Backport Changelog';
+ const issues = await github.paginate(github.rest.issues.listForRepo, {
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ labels: [labelName],
+ state: 'open',
+ per_page: 1,
+ });
+
+ if (issues.length === 0) {
+ console.log(`No issues found with the "${labelName}" label.`);
+ return;
+ }
+
+ const [latestIssue] = issues;
+ const versionMatch = latestIssue.title.match(/(\d+\.\d+)/);
+ if (!versionMatch) {
+ console.log('Could not find a version number in the latest issue title.');
+ return;
+ }
+
+ const version = versionMatch[1];
+ console.log(`Latest version: ${version}`);
+
+ const { execSync } = require('child_process');
+ const processedChangelog = execSync(`awk '/./ {print ($0 ~ /^[-*]/ ? " " : "- ") $0}' backport-changelog/${version}/*.md`).toString().trim();
+
+ const startDelimiter = '';
+ const endDelimiter = '';
+ const autoGeneratedContent = `${startDelimiter}\n${processedChangelog}\n${endDelimiter}`;
+
+ const existingBody = latestIssue.body ?? '';
+
+ let newBody;
+
+ const regex = new RegExp(`${startDelimiter}[\\s\\S]*${endDelimiter}`);
+ if (regex.test(existingBody)) {
+ // If delimiters exist, replace the content between them
+ newBody = existingBody.replace(regex, autoGeneratedContent);
+ } else {
+ // If delimiters don't exist, append the new content at the end
+ newBody = `${existingBody}\n\n${autoGeneratedContent}`;
+ }
+
+ if (newBody.trim() !== existingBody.trim()) {
+ await github.rest.issues.update({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: latestIssue.number,
+ body: newBody
+ });
+ console.log('Issue description updated successfully.');
+ } else {
+ console.log('Issue description is already up to date.');
+ }
diff --git a/.github/workflows/unit-test.yml b/.github/workflows/unit-test.yml
index fd1c3e29484d6e..e7b1c7e18345ad 100644
--- a/.github/workflows/unit-test.yml
+++ b/.github/workflows/unit-test.yml
@@ -251,7 +251,9 @@ jobs:
uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
with:
name: build-assets
- path: ./build/
+ path: |
+ ./build/
+ ./build-module/
test-php:
name: PHP ${{ matrix.php }}${{ matrix.multisite && ' multisite' || '' }}${{ matrix.wordpress != '' && format( ' (WP {0}) ', matrix.wordpress ) || '' }} on ubuntu-latest
@@ -301,7 +303,7 @@ jobs:
# dependency versions are installed and cached.
##
- name: Set up PHP
- uses: shivammathur/setup-php@2e947f1f6932d141d076ca441d0e1e881775e95b # v2.31.0
+ uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
with:
php-version: '${{ matrix.php }}'
ini-file: development
@@ -325,10 +327,9 @@ jobs:
custom-cache-suffix: $(/bin/date -u --date='last Mon' "+%F")
- name: Download built JavaScript assets
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: build-assets
- path: ./build
- name: Docker debug information
run: |
@@ -403,7 +404,7 @@ jobs:
show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}
- name: Set up PHP
- uses: shivammathur/setup-php@2e947f1f6932d141d076ca441d0e1e881775e95b # v2.31.0
+ uses: shivammathur/setup-php@c541c155eee45413f5b09a52248675b1a2575231 # v2.31.1
with:
php-version: '7.4'
coverage: none
diff --git a/.github/workflows/upload-release-to-plugin-repo.yml b/.github/workflows/upload-release-to-plugin-repo.yml
index 6f01a4f6ff12fd..81a9c4739ac19b 100644
--- a/.github/workflows/upload-release-to-plugin-repo.yml
+++ b/.github/workflows/upload-release-to-plugin-repo.yml
@@ -189,7 +189,7 @@ jobs:
sed -i "s/$STABLE_TAG_PLACEHOLDER/Stable tag: $VERSION/g" ./trunk/readme.txt
- name: Download Changelog Artifact
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: changelog trunk
path: trunk
@@ -247,7 +247,7 @@ jobs:
sed -i "s/$STABLE_TAG_PLACEHOLDER/Stable tag: $VERSION/g" "$VERSION/readme.txt"
- name: Download Changelog Artifact
- uses: actions/download-artifact@65a9edc5881444af0b9093a5e628f2fe47ea3b2e # v4.1.7
+ uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
name: changelog trunk
path: ${{ github.event.release.name }}
diff --git a/.stylelintrc.json b/.stylelintrc.json
index df01978222e632..557376e02c4062 100644
--- a/.stylelintrc.json
+++ b/.stylelintrc.json
@@ -1,9 +1,17 @@
{
- "extends": "@wordpress/stylelint-config/scss",
+ "extends": "@wordpress/stylelint-config/scss-stylistic",
"rules": {
"at-rule-empty-line-before": null,
"at-rule-no-unknown": null,
"comment-empty-line-before": null,
+ "declaration-property-value-allowed-list": [
+ {
+ "flex-direction": "/^(?!(row|column)-reverse).*$/"
+ },
+ {
+ "message": "Avoid the flex-direction reverse values. For accessibility reasons, visual, reading, and DOM order must match. Only use the reverse values when they do not affect reading order, meaning, and interaction."
+ }
+ ],
"declaration-property-value-disallowed-list": [
{
"/.*/": [ "/--wp-components-color-/" ]
@@ -13,12 +21,12 @@
}
],
"font-weight-notation": null,
- "max-line-length": null,
+ "@stylistic/max-line-length": null,
"no-descending-specificity": null,
"property-disallowed-list": [
[ "order" ],
{
- "message": "Avoid the order property. For accessibility reasons, visual, reading, and DOM order must match. Only use the order property when it does not affect reading order, meaning, and interaction"
+ "message": "Avoid the order property. For accessibility reasons, visual, reading, and DOM order must match. Only use the order property when it does not affect reading order, meaning, and interaction."
}
],
"rule-empty-line-before": null,
@@ -26,7 +34,7 @@
"value-keyword-case": null,
"scss/operator-no-unspaced": null,
"scss/selector-no-redundant-nesting-selector": null,
- "scss/at-import-partial-extension": null,
+ "scss/load-partial-extension": null,
"scss/no-global-function-names": null,
"scss/comment-no-empty": null,
"scss/at-extend-no-missing-placeholder": null,
diff --git a/.wp-env.json b/.wp-env.json
index 20d5597e54bbc9..05ea05b2809f9c 100644
--- a/.wp-env.json
+++ b/.wp-env.json
@@ -1,4 +1,5 @@
{
+ "$schema": "./schemas/json/wp-env.json",
"core": "WordPress/WordPress",
"plugins": [ "." ],
"themes": [ "./test/emptytheme" ],
diff --git a/backport-changelog/6.6/6987.md b/backport-changelog/6.6/6987.md
new file mode 100644
index 00000000000000..c3bf36f8f9933d
--- /dev/null
+++ b/backport-changelog/6.6/6987.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/6987
+
+* https://github.com/WordPress/gutenberg/pull/63207
\ No newline at end of file
diff --git a/backport-changelog/6.6/6989.md b/backport-changelog/6.6/6989.md
new file mode 100644
index 00000000000000..3d236938ff74a5
--- /dev/null
+++ b/backport-changelog/6.6/6989.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/6989
+
+* https://github.com/WordPress/gutenberg/pull/63172
diff --git a/backport-changelog/6.6/7012.md b/backport-changelog/6.6/7012.md
new file mode 100644
index 00000000000000..265f3dad981e44
--- /dev/null
+++ b/backport-changelog/6.6/7012.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7012
+
+* https://github.com/WordPress/gutenberg/pull/63403
diff --git a/backport-changelog/6.6/7036.md b/backport-changelog/6.6/7036.md
new file mode 100644
index 00000000000000..afc4d16bf011b7
--- /dev/null
+++ b/backport-changelog/6.6/7036.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7036
+
+* https://github.com/WordPress/gutenberg/pull/63436
diff --git a/backport-changelog/6.6/7061.md b/backport-changelog/6.6/7061.md
new file mode 100644
index 00000000000000..307e6575cf38d8
--- /dev/null
+++ b/backport-changelog/6.6/7061.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7061
+
+* https://github.com/WordPress/gutenberg/pull/63726
diff --git a/backport-changelog/6.6/7088.md b/backport-changelog/6.6/7088.md
new file mode 100644
index 00000000000000..46bd1147464846
--- /dev/null
+++ b/backport-changelog/6.6/7088.md
@@ -0,0 +1,4 @@
+https://github.com/WordPress/wordpress-develop/pull/7088
+
+* https://github.com/WordPress/gutenberg/pull/63918
+
diff --git a/backport-changelog/6.6/7097.md b/backport-changelog/6.6/7097.md
new file mode 100644
index 00000000000000..e674d5ea76ba6f
--- /dev/null
+++ b/backport-changelog/6.6/7097.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7097
+
+* https://github.com/WordPress/gutenberg/pull/63980
diff --git a/backport-changelog/6.6/7145.md b/backport-changelog/6.6/7145.md
new file mode 100644
index 00000000000000..386f765cb22fa8
--- /dev/null
+++ b/backport-changelog/6.6/7145.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7145
+
+* https://github.com/WordPress/gutenberg/pull/64076
diff --git a/backport-changelog/6.7/6668.md b/backport-changelog/6.7/6668.md
new file mode 100644
index 00000000000000..7653dd8d8294ee
--- /dev/null
+++ b/backport-changelog/6.7/6668.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/6668
+
+* https://github.com/WordPress/gutenberg/pull/62092
diff --git a/backport-changelog/6.7/6991.md b/backport-changelog/6.7/6991.md
new file mode 100644
index 00000000000000..4d5f1f85ec7686
--- /dev/null
+++ b/backport-changelog/6.7/6991.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/6991
+
+* https://github.com/WordPress/gutenberg/pull/61382
diff --git a/backport-changelog/6.7/7020.md b/backport-changelog/6.7/7020.md
new file mode 100644
index 00000000000000..8eacb220d340e5
--- /dev/null
+++ b/backport-changelog/6.7/7020.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7020
+
+* https://github.com/WordPress/gutenberg/pull/63470
diff --git a/backport-changelog/6.7/7125.md b/backport-changelog/6.7/7125.md
new file mode 100644
index 00000000000000..341e0415cc61a2
--- /dev/null
+++ b/backport-changelog/6.7/7125.md
@@ -0,0 +1,4 @@
+https://github.com/WordPress/wordpress-develop/pull/7125
+
+* https://github.com/WordPress/gutenberg/pull/61577
+* https://github.com/WordPress/gutenberg/pull/64610
diff --git a/backport-changelog/6.7/7137.md b/backport-changelog/6.7/7137.md
new file mode 100644
index 00000000000000..00771b8bc6c21d
--- /dev/null
+++ b/backport-changelog/6.7/7137.md
@@ -0,0 +1,5 @@
+https://github.com/WordPress/wordpress-develop/pull/7137
+
+* https://github.com/WordPress/gutenberg/pull/64128
+* https://github.com/WordPress/gutenberg/pull/64192
+* https://github.com/WordPress/gutenberg/pull/64328
diff --git a/backport-changelog/6.7/7139.md b/backport-changelog/6.7/7139.md
new file mode 100644
index 00000000000000..b5b0090fbaa563
--- /dev/null
+++ b/backport-changelog/6.7/7139.md
@@ -0,0 +1,4 @@
+https://github.com/WordPress/wordpress-develop/pull/7139
+
+* https://github.com/WordPress/gutenberg/pull/64504
+* https://github.com/WordPress/gutenberg/pull/65280
diff --git a/backport-changelog/6.7/7179.md b/backport-changelog/6.7/7179.md
new file mode 100644
index 00000000000000..d777eace2cb05e
--- /dev/null
+++ b/backport-changelog/6.7/7179.md
@@ -0,0 +1,5 @@
+https://github.com/WordPress/wordpress-develop/pull/7179
+
+* https://github.com/WordPress/gutenberg/pull/64401
+* https://github.com/WordPress/gutenberg/pull/64459
+* https://github.com/WordPress/gutenberg/pull/64477
diff --git a/backport-changelog/6.7/7200.md b/backport-changelog/6.7/7200.md
new file mode 100644
index 00000000000000..520b3d6054cc18
--- /dev/null
+++ b/backport-changelog/6.7/7200.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7200
+
+* https://github.com/WordPress/gutenberg/pull/64511
diff --git a/backport-changelog/6.7/7247.md b/backport-changelog/6.7/7247.md
new file mode 100644
index 00000000000000..d0b1de25872344
--- /dev/null
+++ b/backport-changelog/6.7/7247.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7247
+
+* https://github.com/WordPress/gutenberg/pull/64790
diff --git a/backport-changelog/6.7/7258.md b/backport-changelog/6.7/7258.md
new file mode 100644
index 00000000000000..6714b13b70b8d2
--- /dev/null
+++ b/backport-changelog/6.7/7258.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7258
+
+* https://github.com/WordPress/gutenberg/pull/64570
\ No newline at end of file
diff --git a/backport-changelog/6.7/7270.md b/backport-changelog/6.7/7270.md
new file mode 100644
index 00000000000000..358b0d7c9a9674
--- /dev/null
+++ b/backport-changelog/6.7/7270.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7270
+
+* https://github.com/WordPress/gutenberg/pull/64890
diff --git a/backport-changelog/6.7/7298.md b/backport-changelog/6.7/7298.md
new file mode 100644
index 00000000000000..4c01ef5d4f46e6
--- /dev/null
+++ b/backport-changelog/6.7/7298.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7298
+
+* https://github.com/WordPress/gutenberg/pull/65099
\ No newline at end of file
diff --git a/backport-changelog/6.7/7314.md b/backport-changelog/6.7/7314.md
new file mode 100644
index 00000000000000..7d75cdff0f9075
--- /dev/null
+++ b/backport-changelog/6.7/7314.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7314
+
+* https://github.com/WordPress/gutenberg/pull/64167
diff --git a/backport-changelog/6.7/7336.md b/backport-changelog/6.7/7336.md
new file mode 100644
index 00000000000000..7cb2e26d7eeb95
--- /dev/null
+++ b/backport-changelog/6.7/7336.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7336
+
+* https://github.com/WordPress/gutenberg/pull/65071
diff --git a/backport-changelog/6.7/7360.md b/backport-changelog/6.7/7360.md
new file mode 100644
index 00000000000000..b2fb8efd624b93
--- /dev/null
+++ b/backport-changelog/6.7/7360.md
@@ -0,0 +1,3 @@
+https://github.com/WordPress/wordpress-develop/pull/7360
+
+* https://github.com/WordPress/gutenberg/pull/65460
diff --git a/backport-changelog/6.7/6910.md b/backport-changelog/6.8/6910.md
similarity index 51%
rename from backport-changelog/6.7/6910.md
rename to backport-changelog/6.8/6910.md
index 8e6be0dc8e7a5a..24b59bce87ee60 100644
--- a/backport-changelog/6.7/6910.md
+++ b/backport-changelog/6.8/6910.md
@@ -2,4 +2,6 @@ https://github.com/WordPress/wordpress-develop/pull/6910
* https://github.com/WordPress/gutenberg/pull/59483
* https://github.com/WordPress/gutenberg/pull/60652
-* https://github.com/WordPress/gutenberg/pull/62777
\ No newline at end of file
+* https://github.com/WordPress/gutenberg/pull/62777
+* https://github.com/WordPress/gutenberg/pull/63108
+* https://github.com/WordPress/gutenberg/pull/63464
\ No newline at end of file
diff --git a/backport-changelog/readme.md b/backport-changelog/readme.md
index 200cb9db404865..8066cc6a6fca24 100644
--- a/backport-changelog/readme.md
+++ b/backport-changelog/readme.md
@@ -1,16 +1,63 @@
# Core Backport Changelog
-Any PR that makes changes to be backported to [core](https://github.com/WordPress/wordpress-develop) should log a core PR here. It's possible to have multiple Gutenberg PRs link to a single core backport PR. The core backport PR can remain open as long as wanted/needed. The entries are sorted by core release (in folders), and each entry should be an md file with the core PR number as the file name, and the link to the Gutenberg PR in the file content. The file content should start with the core PR URL, followed by a Markdown list of Gutenberg PRs (see example). Files are used to avoid rebase conflicts.
+If you've changed or added files to the Gutenberg plugin, you'll need to confirm whether the changes are to be backported to [WordPress Core](https://github.com/WordPress/wordpress-develop), and therefore featured in the next release of WordPress.
-If you think a file path is wrongly flagged as needing a core backport PR, you can add it to the list of exceptions in `.github/workflows/check-backport-changelog.yml`.
+On open Gutenberg PRs, changes to certain files are flagged as requiring backporting to WordPress Core, for example, PHP files in `/lib` and PHP unit tests.
-## Example
+These changes must have a corresponding Core PR before they can be merged to Gutenberg trunk.
+
+To create a Core PR, first create a [new Trac ticket](https://core.trac.wordpress.org/newticket) and submit a pull request to the [WordPress Core GitHub repository](https://github.com/WordPress/wordpress-develop).
+
+The Core PR can remain open as long as is required.
+
+For more information on how to create a Core PR, see the [WordPress Core Handbook](https://make.wordpress.org/core/handbook/contribute/git/github-pull-requests-for-code-review/).
+
+## How to add a Core Backport PR to the changelog
+
+After you create Core PR, you'll need to create a corresponding markdown file, and place it within the appropriate release subdirectory.
+
+The filename is the Core PR number.
+
+For example, if your Core PR number is `1234` and is slated to be part of the WordPress 6.9 release, the filename will be `1234.md`, and will be placed in the `/backport-changelog/6.9` directory.
+
+The content of the markdown file should be the Github URL of the Core PR, followed by a list of Gutenberg PR Github URLs whose changes are backported in the Core PR.
+
+A single Core PR may contain changes from one or multiple Gutenberg PRs.
+
+### Examples
+
+Let's say the next WordPress release is 6.9. You have two Gutenberg PRs ā `1111` and `2222` ā whose changes are backported in a single Core PR, number `1234`.
+
+First you would create a file named `1234.md` in the `/6.9` folder.
+
+If the `/6.9` folder doesn't exist, create it.
+
+Then you would add the following content to your new file:
-Path: `{wp-release-number-x.x}/{core-pr-number}.md`, e.g. `6.6/1234.md`.
-File content:
```md
-https://github.com/WordPress/wordpress-develop/pull/{core-pr-number}
+https://github.com/WordPress/wordpress-develop/pull/1234
-* https://github.com/WordPress/gutenberg/pull/{first-gb-pr-number}
-* https://github.com/WordPress/gutenberg/pull/{second-gb-pr-number}
+* https://github.com/WordPress/gutenberg/pull/1111
+* https://github.com/WordPress/gutenberg/pull/2222
```
+
+If `1234.md` already exists, you would add the Gutenberg PRs to the list in the existing file.
+
+## Why use individual files?
+
+For the backport changelog, Gutenberg uses individual files as opposed to a single changelog file to avoid rebase conflicts.
+
+## Exceptions
+
+Some Gutenberg PRs may be flagged as needing a core backport PR when they don't, for example when the PR contains minor comment changes, or the changes already exist in Core.
+
+For individual PRs, there are two Github labels that can be used to exclude a PR from the backport changelog CI check:
+
+- `Backport from WordPress Core` - Indicates that the PR is a backport from WordPress Core and doesn't need a Core PR.
+- `No Core Sync Required` - Indicates that any changes do not need to be synced to WordPress Core.
+
+If there are specific file or directory changes that should **never** be flagged as requiring a Core backport PR, you can add it to the list of exceptions in [.github/workflows/check-backport-changelog.yml](https://github.com/WordPress/gutenberg/tree/trunk/.github/workflows/check-backport-changelog.yml).
+
+## Where to get help
+
+If you're unsure, you can always ask the Gutenberg Core team for help on the Gutenberg PR `@WordPress/gutenberg-core` or via the #core-editor channel in [WordPress Slack](https://make.wordpress.org/chat/).
diff --git a/bin/api-docs/gen-theme-reference.js b/bin/api-docs/gen-theme-reference.js
deleted file mode 100644
index 07a8c2fcc697d4..00000000000000
--- a/bin/api-docs/gen-theme-reference.js
+++ /dev/null
@@ -1,323 +0,0 @@
-/**
- * Generates theme.json documentation using theme.json schema.
- * Reads from : schemas/json/theme.json
- * Publishes to: docs/reference-guides/theme-json-reference/theme-json-living.md
- */
-
-/**
- * External dependencies
- */
-const path = require( 'path' );
-const fs = require( 'fs' );
-/**
- * Path to root project directory.
- *
- * @type {string}
- */
-const ROOT_DIR = path.resolve( __dirname, '../..' );
-
-/**
- * Path to theme json schema file.
- *
- * @type {string}
- */
-const THEME_JSON_SCHEMA_FILE = path.resolve(
- ROOT_DIR,
- path.join( 'schemas', 'json', 'theme.json' )
-);
-
-/**
- * Path to docs file.
- *
- * @type {string}
- */
-const THEME_JSON_REF_DOC = path.resolve(
- ROOT_DIR,
- 'docs/reference-guides/theme-json-reference/theme-json-living.md'
-);
-
-/**
- * Start token for matching string in doc file.
- *
- * @type {string}
- */
-const START_TOKEN = '';
-
-/**
- * Start token for matching string in doc file.
- *
- * @type {string}
- */
-const END_TOKEN = '';
-
-/**
- * Regular expression using tokens for matching in doc file.
- * Note: `.` does not match new lines, so [^] is used.
- *
- * @type {RegExp}
- */
-const TOKEN_PATTERN = new RegExp( START_TOKEN + '[^]*' + END_TOKEN );
-
-const themejson = require( THEME_JSON_SCHEMA_FILE );
-
-/**
- * Convert object keys to an array.
- * Gracefully handles non-object values.
- *
- * @param {*} maybeObject
- * @return {Array} Object keys
- */
-const keys = ( maybeObject ) => {
- if ( typeof maybeObject !== 'object' ) {
- return [];
- }
- return Object.keys( maybeObject );
-};
-
-/**
- * Get definition from ref.
- *
- * @param {string} ref
- * @return {Object} definition
- * @throws {Error} If the referenced definition is not found in 'themejson.definitions'.
- *
- * @example
- * getDefinition( '#/definitions/typographyProperties/properties/fontFamily' )
- * // returns themejson.definitions.typographyProperties.properties.fontFamily
- */
-const resolveDefinitionRef = ( ref ) => {
- const refParts = ref.split( '/' );
- const definition = refParts[ refParts.length - 1 ];
- if ( ! themejson.definitions[ definition ] ) {
- throw new Error( `Can't resolve '${ ref }'. Definition not found` );
- }
- return themejson.definitions[ definition ];
-};
-
-/**
- * Get properties from an array.
- *
- * @param {Object} items
- * @return {Object} properties
- */
-const getPropertiesFromArray = ( items ) => {
- // if its a $ref resolve it
- if ( items.$ref ) {
- return resolveDefinitionRef( items.$ref ).properties;
- }
-
- // otherwise just return the properties
- return items.properties;
-};
-
-/**
- * Convert settings properties to markup.
- *
- * @param {Object} struct
- * @return {string} markup
- */
-const getSettingsPropertiesMarkup = ( struct ) => {
- if ( ! ( 'properties' in struct ) ) {
- return '';
- }
- const props = struct.properties;
- const ks = keys( props );
- if ( ks.length < 1 ) {
- return '';
- }
-
- let markup = '| Property | Type | Default | Props |\n';
- markup += '| --- | --- | --- |--- |\n';
- ks.forEach( ( key ) => {
- const def = 'default' in props[ key ] ? props[ key ].default : '';
- let type = props[ key ].type || '';
- let ps =
- props[ key ].type === 'array'
- ? keys( getPropertiesFromArray( props[ key ].items ) )
- .sort()
- .join( ', ' )
- : '';
-
- /*
- * Handle`oneOf` type definitions - extract the type and properties.
- * See: https://json-schema.org/understanding-json-schema/reference/combining#oneOf
- */
- if ( props[ key ].oneOf && Array.isArray( props[ key ].oneOf ) ) {
- if ( ! type ) {
- type = props[ key ].oneOf
- .map( ( item ) => item.type )
- .join( ', ' );
- }
-
- if ( ! ps ) {
- ps = props[ key ].oneOf
- .map( ( item ) =>
- item?.type === 'object' && item?.properties
- ? '_{' +
- keys( getPropertiesFromArray( item ) )
- .sort()
- .join( ', ' ) +
- '}_'
- : ''
- )
- .join( ' ' );
- }
- }
-
- markup += `| ${ key } | ${ type } | ${ def } | ${ ps } |\n`;
- } );
-
- return markup;
-};
-
-/**
- * Convert style properties to markup.
- *
- * @param {Object} struct
- * @return {string} markup
- */
-const getStylePropertiesMarkup = ( struct ) => {
- if ( ! ( 'properties' in struct ) ) {
- return '';
- }
- const props = struct.properties;
- const ks = keys( props );
- if ( ks.length < 1 ) {
- return '';
- }
-
- let markup = '| Property | Type | Props |\n';
- markup += '| --- | --- |--- |\n';
- ks.forEach( ( key ) => {
- const ps =
- props[ key ].type === 'object'
- ? keys( props[ key ].properties ).sort().join( ', ' )
- : '';
- const type = formatType( props[ key ] );
- markup += `| ${ key } | ${ type } | ${ ps } |\n`;
- } );
-
- return markup;
-};
-
-/**
- * Parses a section for description and properties and
- * returns a marked up version.
- *
- * @param {string} title
- * @param {Object} data
- * @param {string} type settings|style
- * @return {string} markup
- */
-const getSectionMarkup = ( title, data, type ) => {
- const markupFn =
- type === 'settings'
- ? getSettingsPropertiesMarkup
- : getStylePropertiesMarkup;
-
- return `
-### ${ title }
-
-${ data.description }
-
-${ markupFn( data ) }
----
-`;
-};
-
-let autogen = '';
-
-/**
- * Format list of types.
- *
- * @param {Object} prop
- * @return {string} type
- */
-const formatType = ( prop ) => {
- let type = prop.type || '';
-
- if ( prop.hasOwnProperty( 'anyOf' ) || prop.hasOwnProperty( 'oneOf' ) ) {
- const propTypes = prop.anyOf || prop.oneOf;
- const types = [];
-
- propTypes.forEach( ( item ) => {
- if ( item.type ) {
- types.push( item.type );
- }
- // refComplete is always an object
- if ( item.$ref && item.$ref === '#/definitions/refComplete' ) {
- types.push( 'object' );
- }
- } );
-
- type = [ ...new Set( types ) ].join( ', ' );
- }
-
- return type;
-};
-
-// Settings
-const settings = Object.entries( themejson.definitions )
- .filter( ( [ settingsKey ] ) =>
- /^settingsProperties(?!Complete)\w+$/.test( settingsKey )
- )
- .reduce(
- ( settingsObj, [ , { properties } ] ) =>
- Object.assign( settingsObj, properties ),
- {}
- );
-const settingSections = keys( settings );
-autogen += '## Settings' + '\n\n';
-settingSections.forEach( ( section ) => {
- autogen += getSectionMarkup( section, settings[ section ], 'settings' );
-} );
-
-// Styles
-const styles = themejson.definitions.stylesProperties.properties;
-const styleSections = keys( styles );
-autogen += '## Styles' + '\n\n';
-styleSections.forEach( ( section ) => {
- autogen += getSectionMarkup( section, styles[ section ], 'styles' );
-} );
-
-const templateTableGeneration = ( themeJson, context ) => {
- let content = '';
- content += '## ' + context + '\n\n';
- content += themeJson.properties[ context ].description + '\n\n';
- content +=
- 'Type: `' + themeJson.properties[ context ].items.type + '`.\n\n';
- content += '| Property | Description | Type |\n';
- content += '| --- | --- | --- |\n';
- keys( themeJson.properties[ context ].items.properties ).forEach(
- ( key ) => {
- content += `| ${ key } | ${ themeJson.properties[ context ].items.properties[ key ].description } | ${ themeJson.properties[ context ].items.properties[ key ].type } |\n`;
- }
- );
- content += '\n\n';
-
- return content;
-};
-
-// customTemplates
-autogen += templateTableGeneration( themejson, 'customTemplates' );
-
-// templateParts
-autogen += templateTableGeneration( themejson, 'templateParts' );
-
-// Patterns
-autogen += '## Patterns' + '\n\n';
-autogen += themejson.properties.patterns.description + '\n';
-autogen += 'Type: `' + themejson.properties.patterns.type + '`.\n\n';
-
-// Read existing file to wrap auto generated content.
-let docsContent = fs.readFileSync( THEME_JSON_REF_DOC, {
- encoding: 'utf8',
- flag: 'r',
-} );
-
-// Replace auto generated part with new generated docs.
-autogen = START_TOKEN + '\n' + autogen + '\n' + END_TOKEN;
-docsContent = docsContent.replace( TOKEN_PATTERN, autogen );
-
-// Write back out.
-fs.writeFileSync( THEME_JSON_REF_DOC, docsContent, { encoding: 'utf8' } );
diff --git a/bin/api-docs/gen-theme-reference.mjs b/bin/api-docs/gen-theme-reference.mjs
new file mode 100644
index 00000000000000..6dc7791e288b9e
--- /dev/null
+++ b/bin/api-docs/gen-theme-reference.mjs
@@ -0,0 +1,296 @@
+/**
+ * Generates theme.json documentation using theme.json schema.
+ * Reads from : schemas/json/theme.json
+ * Publishes to: docs/reference-guides/theme-json-reference/theme-json-living.md
+ */
+
+/**
+ * External dependencies
+ */
+import fs from 'node:fs/promises';
+import $RefParser from '@apidevtools/json-schema-ref-parser';
+
+/**
+ * @typedef {import('@apidevtools/json-schema-ref-parser').JSONSchema} JSONSchema
+ */
+
+/**
+ * Path to theme json schema file.
+ *
+ * @type {URL}
+ */
+const THEME_JSON_SCHEMA_URL = new URL(
+ '../../schemas/json/theme.json',
+ import.meta.url
+);
+
+/**
+ * Path to docs file.
+ *
+ * @type {URL}
+ */
+const REFERENCE_DOC_URL = new URL(
+ '../../docs/reference-guides/theme-json-reference/theme-json-living.md',
+ import.meta.url
+);
+
+/**
+ * Start token for matching string in doc file.
+ *
+ * @type {string}
+ */
+const START_TOKEN = '';
+
+/**
+ * Start token for matching string in doc file.
+ *
+ * @type {string}
+ */
+const END_TOKEN = '';
+
+/**
+ * @typedef {(schema: JSONSchema) => boolean} PredicateFunction
+ */
+
+/**
+ * @typedef {(schema: JSONSchema) => string} SerializerFunction
+ */
+
+/**
+ * Create a serializer function for a type. Supports merging one level of anyOf and oneOf subschemas.
+ *
+ * @see {@link https://json-schema.org/understanding-json-schema/reference/combining.html}
+ *
+ * @param {PredicateFunction} predicate Type predicate function to match a type.
+ * @param {SerializerFunction} serializer Serializer function to format a type.
+ * @return {SerializerFunction} Serializer function for the give type.
+ */
+function createSerializer( predicate, serializer ) {
+ return ( schema ) => {
+ const schemas = predicate( schema )
+ ? [ schema ]
+ : schema.anyOf || schema.oneOf || [];
+ const formatted = schemas.filter( predicate ).map( serializer );
+ return [ ...new Set( formatted ) ].join( ', ' );
+ };
+}
+
+/**
+ * Serialize primitive types.
+ *
+ * @type {SerializerFunction}
+ */
+const serializePrimitiveTypes = createSerializer(
+ ( schema ) =>
+ schema.type && ! [ 'object', 'array' ].includes( schema.type ),
+ ( schema ) => `\`${ schema.type }\``
+);
+
+/**
+ * Serialize object types.
+ *
+ * @type {SerializerFunction}
+ */
+const serializeObjectTypes = createSerializer(
+ ( schema ) => schema.properties,
+ ( schema ) => `\`{ ${ Object.keys( schema.properties ).join( ', ' ) } }\``
+);
+
+/**
+ * Serialize object array types.
+ *
+ * @type {SerializerFunction}
+ */
+const serializeObjectArrayTypes = createSerializer(
+ ( schema ) => schema.items && schema.items.properties,
+ ( schema ) =>
+ `\`[ { ${ Object.keys( schema.items.properties ).join( ', ' ) } } ]\``
+);
+
+/**
+ * Serialize primitive array types.
+ *
+ * @type {SerializerFunction}
+ */
+const serializePrimitiveArrayTypes = createSerializer(
+ ( schema ) =>
+ schema.items &&
+ schema.items.type &&
+ ! [ 'object', 'array' ].includes( schema.items.type ),
+ ( schema ) => `\`[ ${ schema.items.type } ]\``
+);
+
+/**
+ * Generate types from schema.
+ *
+ * @param {JSONSchema} schema JSON schema
+ * @return {string} serialized types
+ */
+function generateTypes( schema ) {
+ return [
+ serializePrimitiveTypes( schema ),
+ serializeObjectTypes( schema ),
+ serializePrimitiveArrayTypes( schema ),
+ serializeObjectArrayTypes( schema ),
+ ]
+ .filter( Boolean )
+ .join( ', ' );
+}
+
+/**
+ * Generate documentation from theme.json schema.
+ *
+ * @param {JSONSchema} themeJson theme.json JSON schema
+ * @return {string} generated documentation
+ */
+function generateDocs( themeJson ) {
+ /** Markdown content. */
+ let md = '';
+
+ /* --------------- *
+ * Settings *
+ * --------------- */
+ md += '## settings\n\n';
+ md += `${ themeJson.properties.settings.description }\n\n`;
+ const settings = [
+ // Top-level only properties.
+ ...Object.entries( themeJson.properties.settings.allOf[ 1 ].properties )
+ .filter( ( [ property ] ) => property !== 'blocks' )
+ .map( ( [ property, subschema ] ) => [
+ property,
+ {
+ ...subschema,
+ description: `${ subschema.description }\n\n**Note:** Top-level only property. Not available in blocks.`,
+ },
+ ] ),
+ // Top-level and blocks properties.
+ ...themeJson.properties.settings.allOf[ 0 ].allOf.flatMap(
+ ( subschema ) => Object.entries( subschema.properties )
+ ),
+ ];
+ for ( const [ section, schema ] of settings ) {
+ md += `### ${ section }\n\n`;
+ md += `${ schema.description }\n\n`;
+ if ( schema.properties ) {
+ md += '| Property | Description | Type | Default |\n';
+ md += '| -------- | ----------- | ---- | ------- |\n';
+ const properties = Object.entries( schema.properties );
+ for ( const [ property, subschema ] of properties ) {
+ const description =
+ subschema.description?.split( '\n', 1 )[ 0 ] ?? '';
+ const types = generateTypes( subschema );
+ const defaultValue =
+ 'default' in subschema
+ ? `\`${ JSON.stringify( subschema.default ) }\``
+ : '';
+ md += `| ${ property } | ${ description } | ${ types } | ${ defaultValue } |\n`;
+ }
+ md += '\n';
+ }
+ md += `---\n\n`;
+ }
+
+ /* --------------- *
+ * Styles *
+ * --------------- */
+ md += '## styles\n\n';
+ md += `${ themeJson.properties.styles.description }\n\n`;
+ const styles = Object.entries(
+ themeJson.properties.styles.allOf[ 0 ].properties
+ );
+ for ( const [ section, schema ] of styles ) {
+ md += `### ${ section }\n\n`;
+ md += `${ schema.description }\n\n`;
+ if ( schema.properties ) {
+ md += '| Property | Description | Type |\n';
+ md += '| -------- | ----------- | ---- |\n';
+ const properties = Object.entries( schema.properties );
+ for ( const [ property, subschema ] of properties ) {
+ // Assuming that the first line of a description is a summary.
+ const description =
+ subschema.description?.split( '\n', 1 )[ 0 ] ?? '';
+ const types = generateTypes( subschema );
+ md += `| ${ property } | ${ description } | ${ types } |\n`;
+ }
+ md += '\n';
+ }
+ md += `---\n\n`;
+ }
+
+ /* --------------- *
+ * customTemplates *
+ * --------------- */
+ md += '## customTemplates\n\n';
+ md += `${ themeJson.properties.customTemplates.description }\n\n`;
+ md += '| Property | Description | Type |\n';
+ md += '| -------- | ----------- | ---- |\n';
+ const customTemplatesProperties = Object.entries(
+ themeJson.properties.customTemplates.items.properties
+ );
+ for ( const [ property, subschema ] of customTemplatesProperties ) {
+ const { description } = subschema;
+ const types = generateTypes( subschema );
+ md += `| ${ property } | ${ description } | ${ types } |\n`;
+ }
+ md += '\n';
+
+ /* --------------- *
+ * templateParts *
+ * --------------- */
+ md += '## templateParts\n\n';
+ md += `${ themeJson.properties.templateParts.description }\n\n`;
+ md += '| Property | Description | Type |\n';
+ md += '| -------- | ----------- | ---- |\n';
+ const templatePartsProperties = Object.entries(
+ themeJson.properties.templateParts.items.properties
+ );
+ for ( const [ property, subschema ] of templatePartsProperties ) {
+ const { description } = subschema;
+ const types = generateTypes( subschema );
+ md += `| ${ property } | ${ description } | ${ types } |\n`;
+ }
+ md += '\n';
+
+ /* --------------- *
+ * patterns *
+ * --------------- */
+ md += '## patterns\n\n';
+ md += themeJson.properties.patterns.description + '\n\n';
+ md += `Type: ${ generateTypes( themeJson.properties.patterns ) }.\n`;
+
+ return md;
+}
+
+/**
+ * Main function.
+ */
+async function main() {
+ const themeJson = await $RefParser.dereference(
+ THEME_JSON_SCHEMA_URL.pathname,
+ {
+ parse: { binary: false, text: false, yaml: false },
+ resolve: { external: false },
+ }
+ );
+
+ const themeJsonReference = await fs.readFile( REFERENCE_DOC_URL, {
+ encoding: 'utf8',
+ flag: 'r',
+ } );
+
+ const generatedDocs = generateDocs( themeJson );
+ const updatedThemeJsonReference = themeJsonReference.replace(
+ // `.` does not match new lines, but `[^]` will.
+ new RegExp( `${ START_TOKEN }[^]*${ END_TOKEN }` ),
+ `${ START_TOKEN }\n${ generatedDocs }\n${ END_TOKEN }`
+ );
+
+ await fs.writeFile( REFERENCE_DOC_URL, updatedThemeJsonReference, {
+ encoding: 'utf8',
+ } );
+}
+
+main().catch( ( error ) => {
+ console.error( error );
+ process.exit( 1 );
+} );
diff --git a/bin/build-plugin-zip.sh b/bin/build-plugin-zip.sh
index 4ba931c4a4aeb6..c823ca6a8017f1 100755
--- a/bin/build-plugin-zip.sh
+++ b/bin/build-plugin-zip.sh
@@ -78,26 +78,16 @@ npm run build
php bin/generate-gutenberg-php.php > gutenberg.tmp.php
mv gutenberg.tmp.php gutenberg.php
-build_files=$(
- ls build/*/*.{js,js.map,css,asset.php} \
- build/block-library/blocks/*.php \
- build/block-library/blocks/*/block.json \
- build/block-library/blocks/*/*.{js,js.map,css,asset.php} \
- build/edit-widgets/blocks/*/block.json \
- build/widgets/blocks/*.php \
- build/widgets/blocks/*/block.json \
- build/style-engine/*.php \
-)
-
-
# Generate the plugin zip file.
status "Creating archive... š"
-zip -r gutenberg.zip \
+zip --recurse-paths --no-dir-entries \
+ gutenberg.zip \
gutenberg.php \
lib \
packages/block-serialization-default-parser/*.php \
post-content.php \
- $build_files \
+ build \
+ build-module \
readme.txt \
changelog.txt \
README.md
diff --git a/bin/packages/get-babel-config.js b/bin/packages/get-babel-config.js
index 91fe4b07d325e6..9427549cafaba6 100644
--- a/bin/packages/get-babel-config.js
+++ b/bin/packages/get-babel-config.js
@@ -11,6 +11,8 @@ module.exports = ( environment = '', file ) => {
name: `WP_BUILD_${ environment.toUpperCase() }`,
},
};
+ // Add `/* wp:polyfill */` magic comment where needed.
+ callerOpts.caller.addPolyfillComments = true;
switch ( environment ) {
case 'main':
// To be merged as a presetEnv option.
diff --git a/changelog.txt b/changelog.txt
index e0181a38091ca9..b04fa0e9bbf8e2 100644
--- a/changelog.txt
+++ b/changelog.txt
@@ -1,5 +1,2394 @@
== Changelog ==
+= 19.3.0-rc.2 =
+
+## Changelog
+
+### Features
+
+#### Zoom Out
+- Remove experimental flag. ([65404](https://github.com/WordPress/gutenberg/pull/65404))
+
+### Enhancements
+
+- Create Block: Update the minimum required PHP version to 7.2. ([65166](https://github.com/WordPress/gutenberg/pull/65166))
+- DataViews: remove unused `.dataviews-view-table__cell-content-wrapper:Empty` style rule. ([65084](https://github.com/WordPress/gutenberg/pull/65084))
+- Media Utils: Add TypeScript support and export more utils. ([64784](https://github.com/WordPress/gutenberg/pull/64784))
+- Media placeholders: Add "drag" to the text. ([65149](https://github.com/WordPress/gutenberg/pull/65149))
+- Restore: Move to trash button in Document settings. ([65087](https://github.com/WordPress/gutenberg/pull/65087))
+- Inspector Controls: Use custom block name in inspector controls when available. ([65398](https://github.com/WordPress/gutenberg/pull/65398))
+- Icons: Adds bell and bell-unread icons. ([65324](https://github.com/WordPress/gutenberg/pull/65324))
+- Editor topbar: Reorder the actions on the right. ([65163](https://github.com/WordPress/gutenberg/pull/65163))
+- Patterns: Add opt out preference to the 'Choose a Pattern' modal when adding a page. ([65026](https://github.com/WordPress/gutenberg/pull/65026))
+- Locked Templates: Blocks with contentOnly locking should not be transformable. ([64917](https://github.com/WordPress/gutenberg/pull/64917))
+- Block Locking: Add border to Replace item in content only image toolbar. ([64849](https://github.com/WordPress/gutenberg/pull/64849))
+
+#### Components
+- Styling: Apply elevation scale in components package. ([65159](https://github.com/WordPress/gutenberg/pull/65159))
+- Tabs: Improve Tabs indicator animation and related utils. ([64926](https://github.com/WordPress/gutenberg/pull/64926))
+- Modal
+ - Add exit animation. ([65203](https://github.com/WordPress/gutenberg/pull/65203))
+ - Decrease close button size. ([65131](https://github.com/WordPress/gutenberg/pull/65131))
+- Navigator Screen: Warn if path doesn't follow a URL-like scheme. ([65231](https://github.com/WordPress/gutenberg/pull/65231))
+- Card: Update Card radius. ([65053](https://github.com/WordPress/gutenberg/pull/65053))
+- Combobox Control: Add placeholder attribute. ([65254](https://github.com/WordPress/gutenberg/pull/65254))
+
+#### Block Library
+- Allow dropping multiple images to the image block. ([65030](https://github.com/WordPress/gutenberg/pull/65030))
+- Categories List block: Add dropdown for taxonomies. ([65272](https://github.com/WordPress/gutenberg/pull/65272))
+- Image: Adds the block controls for uploading image. ([64320](https://github.com/WordPress/gutenberg/pull/64320))
+- Remove colons from control labels. ([65205](https://github.com/WordPress/gutenberg/pull/65205))
+- Terms List block: Add Categories-specific variation. ([65434](https://github.com/WordPress/gutenberg/pull/65434))
+
+#### Zoom Out
+- Add Zoom Out toggle to editor header when experiment enabled. ([65183](https://github.com/WordPress/gutenberg/pull/65183))
+- Add prompt for drag and drop in Patterns tab in Zoom Out mode. ([65115](https://github.com/WordPress/gutenberg/pull/65115))
+- Close inserter on exiting Zoom Out to edit. ([65194](https://github.com/WordPress/gutenberg/pull/65194))
+- Show top level sections in List View. ([65202](https://github.com/WordPress/gutenberg/pull/65202))
+- Try vertical displacement when dragging a pattern between existing patterns/sections. ([63896](https://github.com/WordPress/gutenberg/pull/63896))
+
+#### Block Editor
+- Link Editing: Automatically add tel to phone number when linking URL. ([64865](https://github.com/WordPress/gutenberg/pull/64865))
+thub.com/WordPress/gutenberg/pull/65300))
+- Drag and Drop: When dragging a mix of video, audio, and image blocks, create individual blocks as appropriate. ([65144](https://github.com/WordPress/gutenberg/pull/65144))
+- URLInput: Replace input with InputControl. ([65158](https://github.com/WordPress/gutenberg/pull/65158))
+- Normalize block inspector controls spacing. ([64526](https://github.com/WordPress/gutenberg/pull/64526))
+
+#### Post Editor
+- Add new Media section to preferences modal. ([64846](https://github.com/WordPress/gutenberg/pull/64846))
+- DocumentBar: Replace icon with post type label. ([65170](https://github.com/WordPress/gutenberg/pull/65170))
+- Page editor: Double-click to edit template part. ([65024](https://github.com/WordPress/gutenberg/pull/65024))
+- Post publish upload media dialog: Handle more block types. ([65122](https://github.com/WordPress/gutenberg/pull/65122))
+
+#### Block bindings
+- Populate block context with inherited post type from template slug. ([65062](https://github.com/WordPress/gutenberg/pull/65062))
+- Try gap 0 on attribute items. ([65277](https://github.com/WordPress/gutenberg/pull/65277))
+- Use post meta label from `register_meta` in block bindings workflows. ([65099](https://github.com/WordPress/gutenberg/pull/65099))
+
+#### Global Styles
+- Refactor site background controls and move site global styles into Background group. ([65304](https://github.com/WordPress/gutenberg/pull/65304))
+- Spacing control: Replace sides dropdwon with link button. ([65193](https://github.com/WordPress/gutenberg/pull/65193))
+
+#### Data Views
+- DataViews Sidebar: Display item count on DataViews sidebar. ([65223](https://github.com/WordPress/gutenberg/pull/65223))
+- DataViews: Improve UX of bundled views for Pages. ([65295](https://github.com/WordPress/gutenberg/pull/65295))
+
+#### Interactivity API
+- Refactor context proxies. ([64713](https://github.com/WordPress/gutenberg/pull/64713))
+- Update: Rephrase "Force page reload" and move to Advanced. ([65081](https://github.com/WordPress/gutenberg/pull/65081))
+
+#### REST API
+- Global Styles: Allow read access to users with `edit_posts` capabilities. ([65071](https://github.com/WordPress/gutenberg/pull/65071))
+- Query loop / Post template: Enable post format filter. ([64167](https://github.com/WordPress/gutenberg/pull/64167))
+
+### New APIs
+- Add @wordpress/fields package.
+ - Introduce the package. ([65230](https://github.com/WordPress/gutenberg/pull/65230))
+ - Make the package private. ([65269](https://github.com/WordPress/gutenberg/pull/65269))
+- Interactivity API: Add `getServerState()` and `getServerContext()`. ([65151](https://github.com/WordPress/gutenberg/pull/65151))
+
+### Bug Fixes
+
+- Align popover alt variant styling with block toolbar. ([65263](https://github.com/WordPress/gutenberg/pull/65263))
+- Compose: Correctly call timer cleanup in 'useFocusOnMount'. ([65184](https://github.com/WordPress/gutenberg/pull/65184))
+- Fix some docblock types related to the Template Registration API. ([65187](https://github.com/WordPress/gutenberg/pull/65187))
+- Fix the issue where block spacing control not shown. ([65371](https://github.com/WordPress/gutenberg/pull/65371))
+- Fix unintentional block toolbar shadow. ([65182](https://github.com/WordPress/gutenberg/pull/65182))
+- Fix: Moving a page to the trash on the site editor does not goes back to the pages list. ([65119](https://github.com/WordPress/gutenberg/pull/65119))
+- Fix: Moving the last page item to the the trash causes a crash. ([65236](https://github.com/WordPress/gutenberg/pull/65236))
+- Preferences: Fix back button on mobile. ([65141](https://github.com/WordPress/gutenberg/pull/65141))
+- Post Summary Panel: Restore `height:Auto` for toggle buttons. ([65362](https://github.com/WordPress/gutenberg/pull/65362))
+- Fix Tabs styling in Font Library modal. ([65330](https://github.com/WordPress/gutenberg/pull/65330))
+- E2E: Change deprecated social icons for standard in end-to-end. ([65312](https://github.com/WordPress/gutenberg/pull/65312))
+- Typography: Make title blocks apply typographic styles consistently. ([65307](https://github.com/WordPress/gutenberg/pull/65307))
+- Target Hints REST API: Add missing param sanitization. ([65280](https://github.com/WordPress/gutenberg/pull/65280))
+- Interactivity API: Update iterable signals when `deepMerge()` adds new properties. ([65135](https://github.com/WordPress/gutenberg/pull/65135))
+- Navigation Menus: Typography styling support to the navigation submenu block. ([65060](https://github.com/WordPress/gutenberg/pull/65060))
+- Grid: In RTL languages, the resize handles point in the opposite direction. ([64995](https://github.com/WordPress/gutenberg/pull/64995))
+- Block Locking: Fix Content Only Toolbar icon focus style. ([64940](https://github.com/WordPress/gutenberg/pull/64940))
+- Image: Fix resizing to max width in classic themes. ([64819](https://github.com/WordPress/gutenberg/pull/64819))
+- Meta Boxes: Try split content view. ([64351](https://github.com/WordPress/gutenberg/pull/64351))
+- Distraction Free: Fix blurry edge along editor header. ([64277](https://github.com/WordPress/gutenberg/pull/64277))
+
+#### Block Library
+- Comments Pagination: Fix warning returned by comments pagination blocks. ([65435](https://github.com/WordPress/gutenberg/pull/65435))
+- Cover: Explicitly set isUserOverlayColor to false when media is updated. ([65105](https://github.com/WordPress/gutenberg/pull/65105))
+- Disallow setting grid block rows/columns to zero. ([65217](https://github.com/WordPress/gutenberg/pull/65217))
+- Fix image block crash. ([65222](https://github.com/WordPress/gutenberg/pull/65222))
+- Fix: Buttons block: Block spacing value does not apply to both vertical and horizontal alignment. ([64971](https://github.com/WordPress/gutenberg/pull/64971))
+- Fix: Embed blocks: Figcaption inserted via toolbar not nested within figure element - #64960. ([64970](https://github.com/WordPress/gutenberg/pull/64970))
+- Image cropping: Skip making an API request if there are no changes to apply. ([65384](https://github.com/WordPress/gutenberg/pull/65384))
+- Comments Pagination: Pass the comments query `paged` arg to functions `get_next_comments_link` and `get_previous_comments_link`. ([63698](https://github.com/WordPress/gutenberg/pull/63698))
+- Query Loop
+ - Default to querying posts when on singular content. ([65067](https://github.com/WordPress/gutenberg/pull/65067))
+ - Remove is_singular() check and fix test. ([65483](https://github.com/WordPress/gutenberg/pull/65483))
+
+#### Block Editor
+- Inserter: Fix loading indicator for reusable blocks. ([64839](https://github.com/WordPress/gutenberg/pull/64839))
+- Normalize spacing in Layout hook controls. ([65132](https://github.com/WordPress/gutenberg/pull/65132))
+- Pattern Inserter: Fix pattern list overflow. ([65192](https://github.com/WordPress/gutenberg/pull/65192))
+- Remove reset styles RTL from the iframe. ([65150](https://github.com/WordPress/gutenberg/pull/65150))
+- Revert "Block Insertion: Clear the insertion point when selecting a dā¦. ([65208](https://github.com/WordPress/gutenberg/pull/65208))
+
+#### Components
+- BoxControl: Unify input filed width whether linked or not. ([65348](https://github.com/WordPress/gutenberg/pull/65348))
+- ComboboxControl: Add more unit tests. ([65255](https://github.com/WordPress/gutenberg/pull/65255))
+- Fix: Button Replace remaining 40px default size violations [Edit widgets]. ([65367](https://github.com/WordPress/gutenberg/pull/65367))
+- Tabs: Fix vertical indicator. ([65385](https://github.com/WordPress/gutenberg/pull/65385))
+
+#### Block bindings
+- Fix empty strings placeholders in post meta bindings. ([65089](https://github.com/WordPress/gutenberg/pull/65089))
+- Remove key fallback in bindings get values and rely on source label. ([65517](https://github.com/WordPress/gutenberg/pull/65517))
+
+#### Zoom Out
+- Force device type to Desktop whenever zoom out is invoked. ([64476](https://github.com/WordPress/gutenberg/pull/64476))
+- Hide toolbar icon on smaller viewports. ([65437](https://github.com/WordPress/gutenberg/pull/65437))
+- Remove zoom out toggle when editor is not iframed. ([65452](https://github.com/WordPress/gutenberg/pull/65452))
+
+### Accessibility
+
+- A11y: Add script-module. ([65101](https://github.com/WordPress/gutenberg/pull/65101))
+- Interactivity API: Use a11y Script Module in Gutenberg. ([65123](https://github.com/WordPress/gutenberg/pull/65123))
+- Script Modules API: Print script module live regions HTML in page HTML. ([65380](https://github.com/WordPress/gutenberg/pull/65380))
+- DatePicker: Better hover/focus styles. ([65117](https://github.com/WordPress/gutenberg/pull/65117))
+- Form Input: Don't use `flex-direction: Row-reverse` for checkbox field. ([64232](https://github.com/WordPress/gutenberg/pull/64232))
+- Navigation Menus: Remove Warning and add notice for Navigation. ([63921](https://github.com/WordPress/gutenberg/pull/63921))
+- Global Styles: Fix the shadows Range control accessibility and usability. ([63908](https://github.com/WordPress/gutenberg/pull/63908))
+- Block Editor: Fix accessibility of the hooked blocks toggles. ([63133](https://github.com/WordPress/gutenberg/pull/63133))
+
+
+#### Post Editor
+- Support keyboard resizing of meta boxes pane. ([65325](https://github.com/WordPress/gutenberg/pull/65325))
+- Swap position of the Pre-publish checks buttons. ([65317](https://github.com/WordPress/gutenberg/pull/65317))
+
+
+### Performance
+
+- Core Data: Batch remaining actions in resolvers. ([65176](https://github.com/WordPress/gutenberg/pull/65176))
+- Block Editor: Use static access for selector in 'useZoomOutModeExit'. ([65337](https://github.com/WordPress/gutenberg/pull/65337))
+- Editor: Optimize global styles permission check. ([65177](https://github.com/WordPress/gutenberg/pull/65177))
+
+
+### Experiments
+
+- Block bindings REST API: Bring bindings UI in Site Editor. ([64072](https://github.com/WordPress/gutenberg/pull/64072))
+
+
+### Documentation
+
+- Add JSDoc block for getSectionRootClientId in block editor package. ([65219](https://github.com/WordPress/gutenberg/pull/65219))
+- ButtonGroup: Fix story to show what the component does. ([65336](https://github.com/WordPress/gutenberg/pull/65336))
+- DataViews storybook
+ - Better styles for combined fields story. ([65078](https://github.com/WordPress/gutenberg/pull/65078))
+ - Enable all layouts for combined fields storybook. ([65082](https://github.com/WordPress/gutenberg/pull/65082))
+- Docs: Fix minor typos in Build your first block tutorial. ([64961](https://github.com/WordPress/gutenberg/pull/64961))
+- Docs: Update the content of the API version 3 section in the Block API Reference. ([65375](https://github.com/WordPress/gutenberg/pull/65375))
+- Fix typo in Slot Fills documentation. ([65275](https://github.com/WordPress/gutenberg/pull/65275))
+
+
+### Code Quality
+
+- Components: Transition to the new 40px default size.
+ - Button:
+ - Add __next40pxDefaultSize for files in editor 3. ([65139](https://github.com/WordPress/gutenberg/pull/65139))
+ - Add __next40pxDefaultSize for files in editor 4. ([65140](https://github.com/WordPress/gutenberg/pull/65140))
+ - Add props for buttons in editor 1. ([65068](https://github.com/WordPress/gutenberg/pull/65068))
+ - Add props for buttons in editor 2. ([65083](https://github.com/WordPress/gutenberg/pull/65083))
+ - Fix: Replace remaining 40px default size violations [Block Editor 4]. ([65257](https://github.com/WordPress/gutenberg/pull/65257))
+ - Fix: Replace remaining 40px default size violation [Block library 3]. ([65110](https://github.com/WordPress/gutenberg/pull/65110))
+ - Fix: Replace remaining 40px default size violation [Block library 4]. ([65143](https://github.com/WordPress/gutenberg/pull/65143))
+ - Fix: Replace remaining 40px default size violation [Block library]. ([65075](https://github.com/WordPress/gutenberg/pull/65075))
+ - Fix: Replace remaining 40px default size violation [Edit Site 2]. ([65258](https://github.com/WordPress/gutenberg/pull/65258))
+ - Fix: Replace remaining 40px default size violations [Block library 1]. ([65033](https://github.com/WordPress/gutenberg/pull/65033))
+ - Fix: Replace remaining 40px default size violations [Block Editor 1]. ([65034](https://github.com/WordPress/gutenberg/pull/65034))
+ - BoxControl
+ - Add lint rule for 40px size prop usage. ([65341](https://github.com/WordPress/gutenberg/pull/65341))
+ - DimensionsPanel: Apply 40px default size to UI when no spacing preset is available. ([65300](https://github.com/WordPress/gutenberg/pull/65300))
+- Add `useEvent` and revamped `useResizeObserver` to `@wordpress/compose`. ([64943](https://github.com/WordPress/gutenberg/pull/64943))
+- DataViews: Use Dropdown for views configuration dialog. ([65314](https://github.com/WordPress/gutenberg/pull/65314))
+- Platform docs: Upgrade dependencies. ([65445](https://github.com/WordPress/gutenberg/pull/65445))
+- Rename edit-post__fade-in-animation and unify keyframe definitions. ([65377](https://github.com/WordPress/gutenberg/pull/65377))
+- Update minimum required version in PHP. ([65301](https://github.com/WordPress/gutenberg/pull/65301))
+- Editor: Use hooks instead of HoC in `BlockManager`. ([65349](https://github.com/WordPress/gutenberg/pull/65349))
+- Data Views Fields: Migrate store and actions from editor package to fields package. ([65261](https://github.com/WordPress/gutenberg/pull/65261))
+- Plugin: Remove 'function_exists' checks for methods with 'gutenberg' prefix. ([65260](https://github.com/WordPress/gutenberg/pull/65260))
+- Global Styles: Update REST controller override method and backport changes from Core. ([65259](https://github.com/WordPress/gutenberg/pull/65259))
+- Patterns: Remove unused method returned from 'mapSelect'. ([65073](https://github.com/WordPress/gutenberg/pull/65073))
+- Embed: Convert EmbedPreview component to functional component. ([51325](https://github.com/WordPress/gutenberg/pull/51325))
+
+#### Components
+- BoxControl: Fix critical error when null value is passed. ([65287](https://github.com/WordPress/gutenberg/pull/65287))
+- Composite:
+ - Deprecate legacy, unstable version. ([63572](https://github.com/WordPress/gutenberg/pull/63572))
+ - Remove store prop and useCompositeStore hook. ([64723](https://github.com/WordPress/gutenberg/pull/64723))
+ - Stabilize APIs. ([63569](https://github.com/WordPress/gutenberg/pull/63569))
+- `@wordpress/components`: Add local copy of `use-lilius`. ([65097](https://github.com/WordPress/gutenberg/pull/65097))
+
+#### Block bindings
+- Always prioritize using context in post meta source logic. ([65449](https://github.com/WordPress/gutenberg/pull/65449))
+- Improve getRegisteredPostMeta resolver. ([65450](https://github.com/WordPress/gutenberg/pull/65450))
+- Remove extra filtering of empty sources. ([65447](https://github.com/WordPress/gutenberg/pull/65447))
+
+#### Block Editor
+- Remove the 'PrivateInserter' component. ([65111](https://github.com/WordPress/gutenberg/pull/65111))
+- Use the tooltip from a button in 'ButtonBlockAppender'. ([65113](https://github.com/WordPress/gutenberg/pull/65113))
+- Remove unused css selectors. ([65276](https://github.com/WordPress/gutenberg/pull/65276))
+
+### Tools
+
+- Scripts: Update stylelint dependency and the default configuration. ([64828](https://github.com/WordPress/gutenberg/pull/64828))
+- Styleling config: Fix stylelint configuration missing files for npm. ([65313](https://github.com/WordPress/gutenberg/pull/65313))
+
+#### Build Tooling
+- Build Plugin: Simplify and improve zip contents. ([65232](https://github.com/WordPress/gutenberg/pull/65232))
+- Build zip artifact on release and wp production branches. ([65471](https://github.com/WordPress/gutenberg/pull/65471))
+- Build: Include Core blocks' `render` and `variations` files. ([63311](https://github.com/WordPress/gutenberg/pull/63311))
+- Script Modules
+ - Prepare build for more script modules. ([65064](https://github.com/WordPress/gutenberg/pull/65064))
+ - Remove babel from script-modules build. ([65279](https://github.com/WordPress/gutenberg/pull/65279))
+ - Remove es-module shims and importmap-polyfill. ([65210](https://github.com/WordPress/gutenberg/pull/65210))
+- Correctly generate PHP files for server-side rendering of blocks on Windows OS. ([65248](https://github.com/WordPress/gutenberg/pull/65248))
+- Packages: Only add polyfills where needed. ([65292](https://github.com/WordPress/gutenberg/pull/65292))
+- Switch from UglifyJS to Terser to build the polyfill script. ([65278](https://github.com/WordPress/gutenberg/pull/65278))
+
+#### Testing
+- Unit tests: Mock matchMedia to enforce prefers-reduce-motion. ([65438](https://github.com/WordPress/gutenberg/pull/65438))
+- Upgrade Playwright to v1.47. ([65156](https://github.com/WordPress/gutenberg/pull/65156))
+
+## First-time contributors
+
+The following PRs were merged by first-time contributors:
+
+- @AKSHAT2802: Add __next40pxDefaultSize for files in editor 4. ([65140](https://github.com/WordPress/gutenberg/pull/65140))
+- @devansh016: Automatically add tel to phone number when linking URL. ([64865](https://github.com/WordPress/gutenberg/pull/64865))
+- @dhruvang21: Fix: Button Replace remaining 40px default size violations [Edit widgets]. ([65367](https://github.com/WordPress/gutenberg/pull/65367))
+- @farid-hadi: Docs: Fix minor typos in Build your first block tutorial. ([64961](https://github.com/WordPress/gutenberg/pull/64961))
+- @greenworld: Fix typo in Slot Fills documentation. ([65275](https://github.com/WordPress/gutenberg/pull/65275))
+- @louwie17: Convert EmbedPreview component to functional component. ([51325](https://github.com/WordPress/gutenberg/pull/51325))
+- @rahulharpal1603: URLInput: Replace input with InputControl. ([65158](https://github.com/WordPress/gutenberg/pull/65158))
+
+
+## Contributors
+
+The following contributors merged PRs in this release:
+
+@aaronrobertshaw @afercia @AKSHAT2802 @Aljullu @andrewserong @carolinan @cbravobernal @ciampo @colorful-tones @creativecoder @DaniGuardiola @DAreRodz @devansh016 @dhruvang21 @ellatrix @farid-hadi @getdave @gigitux @greenworld @gziolo @hbhalodia @jameskoster @jasmussen @javierarce @jeryj @jorgefilipecosta @jsnajdr @kevin940726 @louwie17 @madhusudhand @MaggieCabrera @Mamaduka @mikeybinns @mirka @ntsekouras @oandregal @ockham @peterwilsoncc @rahulharpal1603 @ramonjd @richtabor @rohitmathur-7 @SantosGuillamot @scruffian @sgomes @sirreal @stokesman @swissspidy @t-hamano @talldan @vipul0425 @zaguiini
+
+
+= 19.3.0-rc.1 =
+
+## Changelog
+
+### Features
+
+#### Zoom Out
+- Remove experimental flag. ([65404](https://github.com/WordPress/gutenberg/pull/65404))
+
+### Enhancements
+
+- Create Block: Update the minimum required PHP version to 7.2. ([65166](https://github.com/WordPress/gutenberg/pull/65166))
+- DataViews: remove unused `.dataviews-view-table__cell-content-wrapper:Empty` style rule. ([65084](https://github.com/WordPress/gutenberg/pull/65084))
+- Media Utils: Add TypeScript support and export more utils. ([64784](https://github.com/WordPress/gutenberg/pull/64784))
+- Media placeholders: Add "drag" to the text. ([65149](https://github.com/WordPress/gutenberg/pull/65149))
+- Restore: Move to trash button in Document settings. ([65087](https://github.com/WordPress/gutenberg/pull/65087))
+- Inspector Controls: Use custom block name in inspector controls when available. ([65398](https://github.com/WordPress/gutenberg/pull/65398))
+- Plugin: Don't force iframe editor when gutenberg plugin and block theme are enabled. ([65372](https://github.com/WordPress/gutenberg/pull/65372))
+- Icons: Adds bell and bell-unread icons. ([65324](https://github.com/WordPress/gutenberg/pull/65324))
+- Editor topbar: Reorder the actions on the right. ([65163](https://github.com/WordPress/gutenberg/pull/65163))
+- Patterns: Add opt out preference to the 'Choose a Pattern' modal when adding a page. ([65026](https://github.com/WordPress/gutenberg/pull/65026))
+- Locked Templates: Blocks with contentOnly locking should not be transformable. ([64917](https://github.com/WordPress/gutenberg/pull/64917))
+- Block Locking: Add border to Replace item in content only image toolbar. ([64849](https://github.com/WordPress/gutenberg/pull/64849))
+
+#### Components
+- Styling: Apply elevation scale in components package. ([65159](https://github.com/WordPress/gutenberg/pull/65159))
+- Tabs: Improve Tabs indicator animation and related utils. ([64926](https://github.com/WordPress/gutenberg/pull/64926))
+- Modal
+ - Add exit animation. ([65203](https://github.com/WordPress/gutenberg/pull/65203))
+ - Decrease close button size. ([65131](https://github.com/WordPress/gutenberg/pull/65131))
+- Navigator Screen: Warn if path doesn't follow a URL-like scheme. ([65231](https://github.com/WordPress/gutenberg/pull/65231))
+- Card: Update Card radius. ([65053](https://github.com/WordPress/gutenberg/pull/65053))
+- Combobox Control: Add placeholder attribute. ([65254](https://github.com/WordPress/gutenberg/pull/65254))
+
+#### Block Library
+- Allow dropping multiple images to the image block. ([65030](https://github.com/WordPress/gutenberg/pull/65030))
+- Categories List block: Add dropdown for taxonomies. ([65272](https://github.com/WordPress/gutenberg/pull/65272))
+- Image: Adds the block controls for uploading image. ([64320](https://github.com/WordPress/gutenberg/pull/64320))
+- Remove colons from control labels. ([65205](https://github.com/WordPress/gutenberg/pull/65205))
+- Terms List block: Add Categories-specific variation. ([65434](https://github.com/WordPress/gutenberg/pull/65434))
+
+#### Zoom Out
+- Add Zoom Out toggle to editor header when experiment enabled. ([65183](https://github.com/WordPress/gutenberg/pull/65183))
+- Add prompt for drag and drop in Patterns tab in Zoom Out mode. ([65115](https://github.com/WordPress/gutenberg/pull/65115))
+- Close inserter on exiting Zoom Out to edit. ([65194](https://github.com/WordPress/gutenberg/pull/65194))
+- Show top level sections in List View. ([65202](https://github.com/WordPress/gutenberg/pull/65202))
+- Try vertical displacement when dragging a pattern between existing patterns/sections. ([63896](https://github.com/WordPress/gutenberg/pull/63896))
+
+#### Block Editor
+- Link Editing: Automatically add tel to phone number when linking URL. ([64865](https://github.com/WordPress/gutenberg/pull/64865))
+thub.com/WordPress/gutenberg/pull/65300))
+- Drag and Drop: When dragging a mix of video, audio, and image blocks, create individual blocks as appropriate. ([65144](https://github.com/WordPress/gutenberg/pull/65144))
+- URLInput: Replace input with InputControl. ([65158](https://github.com/WordPress/gutenberg/pull/65158))
+- Normalize block inspector controls spacing. ([64526](https://github.com/WordPress/gutenberg/pull/64526))
+
+#### Post Editor
+- Add new Media section to preferences modal. ([64846](https://github.com/WordPress/gutenberg/pull/64846))
+- DocumentBar: Replace icon with post type label. ([65170](https://github.com/WordPress/gutenberg/pull/65170))
+- Page editor: Double-click to edit template part. ([65024](https://github.com/WordPress/gutenberg/pull/65024))
+- Post publish upload media dialog: Handle more block types. ([65122](https://github.com/WordPress/gutenberg/pull/65122))
+
+#### Block bindings
+- Populate block context with inherited post type from template slug. ([65062](https://github.com/WordPress/gutenberg/pull/65062))
+- Try gap 0 on attribute items. ([65277](https://github.com/WordPress/gutenberg/pull/65277))
+- Use post meta label from `register_meta` in block bindings workflows. ([65099](https://github.com/WordPress/gutenberg/pull/65099))
+
+#### Global Styles
+- Refactor site background controls and move site global styles into Background group. ([65304](https://github.com/WordPress/gutenberg/pull/65304))
+- Spacing control: Replace sides dropdwon with link button. ([65193](https://github.com/WordPress/gutenberg/pull/65193))
+
+#### Data Views
+- DataViews Sidebar: Display item count on DataViews sidebar. ([65223](https://github.com/WordPress/gutenberg/pull/65223))
+- DataViews: Improve UX of bundled views for Pages. ([65295](https://github.com/WordPress/gutenberg/pull/65295))
+
+#### Interactivity API
+- Refactor context proxies. ([64713](https://github.com/WordPress/gutenberg/pull/64713))
+- Update: Rephrase "Force page reload" and move to Advanced. ([65081](https://github.com/WordPress/gutenberg/pull/65081))
+
+#### REST API
+- Global Styles: Allow read access to users with `edit_posts` capabilities. ([65071](https://github.com/WordPress/gutenberg/pull/65071))
+- Query loop / Post template: Enable post format filter. ([64167](https://github.com/WordPress/gutenberg/pull/64167))
+
+### New APIs
+- Add @wordpress/fields package.
+ - Introduce the package. ([65230](https://github.com/WordPress/gutenberg/pull/65230))
+ - Make the package private. ([65269](https://github.com/WordPress/gutenberg/pull/65269))
+
+### Bug Fixes
+
+- Align popover alt variant styling with block toolbar. ([65263](https://github.com/WordPress/gutenberg/pull/65263))
+- Compose: Correctly call timer cleanup in 'useFocusOnMount'. ([65184](https://github.com/WordPress/gutenberg/pull/65184))
+- Fix some docblock types related to the Template Registration API. ([65187](https://github.com/WordPress/gutenberg/pull/65187))
+- Fix the issue where block spacing control not shown. ([65371](https://github.com/WordPress/gutenberg/pull/65371))
+- Fix unintentional block toolbar shadow. ([65182](https://github.com/WordPress/gutenberg/pull/65182))
+- Fix: Moving a page to the trash on the site editor does not goes back to the pages list. ([65119](https://github.com/WordPress/gutenberg/pull/65119))
+- Fix: Moving the last page item to the the trash causes a crash. ([65236](https://github.com/WordPress/gutenberg/pull/65236))
+- Preferences: Fix back button on mobile. ([65141](https://github.com/WordPress/gutenberg/pull/65141))
+- Revert "Don't force iframe editor when gutenberg plugin and block the me are enabled (#65372)". ([65402](https://github.com/WordPress/gutenberg/pull/65402))
+- Post Summary Panel: Restore `height:Auto` for toggle buttons. ([65362](https://github.com/WordPress/gutenberg/pull/65362))
+- Fix Tabs styling in Font Library modal. ([65330](https://github.com/WordPress/gutenberg/pull/65330))
+- E2E: Change deprecated social icons for standard in end-to-end. ([65312](https://github.com/WordPress/gutenberg/pull/65312))
+- Typography: Make title blocks apply typographic styles consistently. ([65307](https://github.com/WordPress/gutenberg/pull/65307))
+- Target Hints REST API: Add missing param sanitization. ([65280](https://github.com/WordPress/gutenberg/pull/65280))
+- Interactivity API: Update iterable signals when `deepMerge()` adds new properties. ([65135](https://github.com/WordPress/gutenberg/pull/65135))
+- Navigation Menus: Typography styling support to the navigation submenu block. ([65060](https://github.com/WordPress/gutenberg/pull/65060))
+- Grid: In RTL languages, the resize handles point in the opposite direction. ([64995](https://github.com/WordPress/gutenberg/pull/64995))
+- Block Locking: Fix Content Only Toolbar icon focus style. ([64940](https://github.com/WordPress/gutenberg/pull/64940))
+- Image: Fix resizing to max width in classic themes. ([64819](https://github.com/WordPress/gutenberg/pull/64819))
+- Meta Boxes: Try split content view. ([64351](https://github.com/WordPress/gutenberg/pull/64351))
+- Distraction Free: Fix blurry edge along editor header. ([64277](https://github.com/WordPress/gutenberg/pull/64277))
+
+#### Block Library
+- Comments Pagination: Fix warning returned by comments pagination blocks. ([65435](https://github.com/WordPress/gutenberg/pull/65435))
+- Cover: Explicitly set isUserOverlayColor to false when media is updated. ([65105](https://github.com/WordPress/gutenberg/pull/65105))
+- Disallow setting grid block rows/columns to zero. ([65217](https://github.com/WordPress/gutenberg/pull/65217))
+- Fix image block crash. ([65222](https://github.com/WordPress/gutenberg/pull/65222))
+- Fix: Buttons block: Block spacing value does not apply to both vertical and horizontal alignment. ([64971](https://github.com/WordPress/gutenberg/pull/64971))
+- Fix: Embed blocks: Figcaption inserted via toolbar not nested within figure element - #64960. ([64970](https://github.com/WordPress/gutenberg/pull/64970))
+- Image cropping: Skip making an API request if there are no changes to apply. ([65384](https://github.com/WordPress/gutenberg/pull/65384))
+- Comments Pagination: Pass the comments query `paged` arg to functions `get_next_comments_link` and `get_previous_comments_link`. ([63698](https://github.com/WordPress/gutenberg/pull/63698))
+- Query Loop: Default to querying posts when on singular content. ([65067](https://github.com/WordPress/gutenberg/pull/65067))
+
+#### Block Editor
+- Inserter: Fix loading indicator for reusable blocks. ([64839](https://github.com/WordPress/gutenberg/pull/64839))
+- Normalize spacing in Layout hook controls. ([65132](https://github.com/WordPress/gutenberg/pull/65132))
+- Pattern Inserter: Fix pattern list overflow. ([65192](https://github.com/WordPress/gutenberg/pull/65192))
+- Remove reset styles RTL from the iframe. ([65150](https://github.com/WordPress/gutenberg/pull/65150))
+- Revert "Block Insertion: Clear the insertion point when selecting a dā¦. ([65208](https://github.com/WordPress/gutenberg/pull/65208))
+
+#### Components
+- BoxControl: Unify input filed width whether linked or not. ([65348](https://github.com/WordPress/gutenberg/pull/65348))
+- ComboboxControl: Add more unit tests. ([65255](https://github.com/WordPress/gutenberg/pull/65255))
+- Fix: Button Replace remaining 40px default size violations [Edit widgets]. ([65367](https://github.com/WordPress/gutenberg/pull/65367))
+- Tabs: Fix vertical indicator. ([65385](https://github.com/WordPress/gutenberg/pull/65385))
+
+#### Block bindings
+- Fix empty strings placeholders in post meta bindings. ([65089](https://github.com/WordPress/gutenberg/pull/65089))
+- Prioritize existing `placeholder` over `bindingsPlaceholder`. ([65154](https://github.com/WordPress/gutenberg/pull/65154))
+- Revert "Block Bindings: Prioritize existing `placeholder` over `bindingsPlaceholder`". ([65190](https://github.com/WordPress/gutenberg/pull/65190))
+
+#### Zoom Out
+- Force device type to Desktop whenever zoom out is invoked. ([64476](https://github.com/WordPress/gutenberg/pull/64476))
+- Hide toolbar icon on smaller viewports. ([65437](https://github.com/WordPress/gutenberg/pull/65437))
+- Remove zoom out toggle when editor is not iframed. ([65452](https://github.com/WordPress/gutenberg/pull/65452))
+
+### Accessibility
+
+- A11y: Add script-module. ([65101](https://github.com/WordPress/gutenberg/pull/65101))
+- Interactivity API: Use a11y Script Module in Gutenberg. ([65123](https://github.com/WordPress/gutenberg/pull/65123))
+- Script Modules API: Print script module live regions HTML in page HTML. ([65380](https://github.com/WordPress/gutenberg/pull/65380))
+- Post Editor: Support keyboard resizing of meta boxes pane. ([65325](https://github.com/WordPress/gutenberg/pull/65325))
+- DatePicker: Better hover/focus styles. ([65117](https://github.com/WordPress/gutenberg/pull/65117))
+- Form Input: Don't use `flex-direction: Row-reverse` for checkbox field. ([64232](https://github.com/WordPress/gutenberg/pull/64232))
+- Navigation Menus: Remove Warning and add notice for Navigation. ([63921](https://github.com/WordPress/gutenberg/pull/63921))
+- Global Styles: Fix the shadows Range control accessibility and usability. ([63908](https://github.com/WordPress/gutenberg/pull/63908))
+- Block Editor: Fix accessibility of the hooked blocks toggles. ([63133](https://github.com/WordPress/gutenberg/pull/63133))
+
+
+### Performance
+
+- Core Data: Batch remaining actions in resolvers. ([65176](https://github.com/WordPress/gutenberg/pull/65176))
+- Block Editor: Use static access for selector in 'useZoomOutModeExit'. ([65337](https://github.com/WordPress/gutenberg/pull/65337))
+- Editor: Optimize global styles permission check. ([65177](https://github.com/WordPress/gutenberg/pull/65177))
+
+
+### Experiments
+
+- Block bindings REST API: Bring bindings UI in Site Editor. ([64072](https://github.com/WordPress/gutenberg/pull/64072))
+
+
+### Documentation
+
+- Add JSDoc block for getSectionRootClientId in block editor package. ([65219](https://github.com/WordPress/gutenberg/pull/65219))
+- ButtonGroup: Fix story to show what the component does. ([65336](https://github.com/WordPress/gutenberg/pull/65336))
+- DataViews storybook
+ - Better styles for combined fields story. ([65078](https://github.com/WordPress/gutenberg/pull/65078))
+ - Enable all layouts for combined fields storybook. ([65082](https://github.com/WordPress/gutenberg/pull/65082))
+- Docs: Fix minor typos in Build your first block tutorial. ([64961](https://github.com/WordPress/gutenberg/pull/64961))
+- Docs: Update the content of the API version 3 section in the Block API Reference. ([65375](https://github.com/WordPress/gutenberg/pull/65375))
+- Fix typo in Slot Fills documentation. ([65275](https://github.com/WordPress/gutenberg/pull/65275))
+
+
+### Code Quality
+
+- Components: Transition to the new 40px default size.
+ - Button:
+ - Add __next40pxDefaultSize for files in editor 3. ([65139](https://github.com/WordPress/gutenberg/pull/65139))
+ - Add __next40pxDefaultSize for files in editor 4. ([65140](https://github.com/WordPress/gutenberg/pull/65140))
+ - Add props for buttons in editor 1. ([65068](https://github.com/WordPress/gutenberg/pull/65068))
+ - Add props for buttons in editor 2. ([65083](https://github.com/WordPress/gutenberg/pull/65083))
+ - Fix: Replace remaining 40px default size violations [Block Editor 4]. ([65257](https://github.com/WordPress/gutenberg/pull/65257))
+ - Fix: Replace remaining 40px default size violation [Block library 3]. ([65110](https://github.com/WordPress/gutenberg/pull/65110))
+ - Fix: Replace remaining 40px default size violation [Block library 4]. ([65143](https://github.com/WordPress/gutenberg/pull/65143))
+ - Fix: Replace remaining 40px default size violation [Block library]. ([65075](https://github.com/WordPress/gutenberg/pull/65075))
+ - Fix: Replace remaining 40px default size violation [Edit Site 2]. ([65258](https://github.com/WordPress/gutenberg/pull/65258))
+ - Fix: Replace remaining 40px default size violations [Block library 1]. ([65033](https://github.com/WordPress/gutenberg/pull/65033))
+ - Fix: Replace remaining 40px default size violations [Block Editor 1]. ([65034](https://github.com/WordPress/gutenberg/pull/65034))
+ - BoxControl
+ - Add lint rule for 40px size prop usage. ([65341](https://github.com/WordPress/gutenberg/pull/65341))
+ - DimensionsPanel: Apply 40px default size to UI when no spacing preset is available. ([65300](https://gi
+- Add `useEvent` and revamped `useResizeObserver` to `@wordpress/compose`. ([64943](https://github.com/WordPress/gutenberg/pull/64943))
+- DataViews: Use Dropdown for views configuration dialog. ([65314](https://github.com/WordPress/gutenberg/pull/65314))
+- Platform docs: Upgrade dependencies. ([65445](https://github.com/WordPress/gutenberg/pull/65445))
+- Rename edit-post__fade-in-animation and unify keyframe definitions. ([65377](https://github.com/WordPress/gutenberg/pull/65377))
+- Update minimum required version in PHP. ([65301](https://github.com/WordPress/gutenberg/pull/65301))
+- Editor: Use hooks instead of HoC in `BlockManager`. ([65349](https://github.com/WordPress/gutenberg/pull/65349))
+- Data Views Fields: Migrate store and actions from editor package to fields package. ([65261](https://github.com/WordPress/gutenberg/pull/65261))
+- Plugin: Remove 'function_exists' checks for methods with 'gutenberg' prefix. ([65260](https://github.com/WordPress/gutenberg/pull/65260))
+- Global Styles: Update REST controller override method and backport changes from Core. ([65259](https://github.com/WordPress/gutenberg/pull/65259))
+- Patterns: Remove unused method returned from 'mapSelect'. ([65073](https://github.com/WordPress/gutenberg/pull/65073))
+- Embed: Convert EmbedPreview component to functional component. ([51325](https://github.com/WordPress/gutenberg/pull/51325))
+
+#### Components
+- BoxControl: Fix critical error when null value is passed. ([65287](https://github.com/WordPress/gutenberg/pull/65287))
+- Composite:
+ - Deprecate legacy, unstable version. ([63572](https://github.com/WordPress/gutenberg/pull/63572))
+ - Remove store prop and useCompositeStore hook. ([64723](https://github.com/WordPress/gutenberg/pull/64723))
+ - Stabilize APIs. ([63569](https://github.com/WordPress/gutenberg/pull/63569))
+- `@wordpress/components`: Add local copy of `use-lilius`. ([65097](https://github.com/WordPress/gutenberg/pull/65097))
+
+#### Block bindings
+- Always prioritize using context in post meta source logic. ([65449](https://github.com/WordPress/gutenberg/pull/65449))
+- Improve getRegisteredPostMeta resolver. ([65450](https://github.com/WordPress/gutenberg/pull/65450))
+- Remove extra filtering of empty sources. ([65447](https://github.com/WordPress/gutenberg/pull/65447))
+
+#### Block Editor
+- Remove the 'PrivateInserter' component. ([65111](https://github.com/WordPress/gutenberg/pull/65111))
+- Use the tooltip from a button in 'ButtonBlockAppender'. ([65113](https://github.com/WordPress/gutenberg/pull/65113))
+- Remove unused css selectors. ([65276](https://github.com/WordPress/gutenberg/pull/65276))
+
+### Tools
+
+- Scripts: Update stylelint dependency and the default configuration. ([64828](https://github.com/WordPress/gutenberg/pull/64828))
+- Styleling config: Fix stylelint configuration missing files for npm. ([65313](https://github.com/WordPress/gutenberg/pull/65313))
+
+#### Build Tooling
+- Build Plugin: Simplify and improve zip contents. ([65232](https://github.com/WordPress/gutenberg/pull/65232))
+- Build zip artifact on release and wp production branches. ([65471](https://github.com/WordPress/gutenberg/pull/65471))
+- Build: Include Core blocks' `render` and `variations` files. ([63311](https://github.com/WordPress/gutenberg/pull/63311))
+- Script Modules
+ - Prepare build for more script modules. ([65064](https://github.com/WordPress/gutenberg/pull/65064))
+ - Remove babel from script-modules build. ([65279](https://github.com/WordPress/gutenberg/pull/65279))
+ - Remove es-module shims and importmap-polyfill. ([65210](https://github.com/WordPress/gutenberg/pull/65210))
+- Correctly generate PHP files for server-side rendering of blocks on Windows OS. ([65248](https://github.com/WordPress/gutenberg/pull/65248))
+- Packages: Only add polyfills where needed. ([65292](https://github.com/WordPress/gutenberg/pull/65292))
+- Switch from UglifyJS to Terser to build the polyfill script. ([65278](https://github.com/WordPress/gutenberg/pull/65278))
+
+#### Testing
+- Unit tests: Mock matchMedia to enforce prefers-reduce-motion. ([65438](https://github.com/WordPress/gutenberg/pull/65438))
+- Upgrade Playwright to v1.47. ([65156](https://github.com/WordPress/gutenberg/pull/65156))
+
+## First-time contributors
+
+The following PRs were merged by first-time contributors:
+
+- @AKSHAT2802: Add __next40pxDefaultSize for files in editor 4. ([65140](https://github.com/WordPress/gutenberg/pull/65140))
+- @devansh016: Automatically add tel to phone number when linking URL. ([64865](https://github.com/WordPress/gutenberg/pull/64865))
+- @dhruvang21: Fix: Button Replace remaining 40px default size violations [Edit widgets]. ([65367](https://github.com/WordPress/gutenberg/pull/65367))
+- @farid-hadi: Docs: Fix minor typos in Build your first block tutorial. ([64961](https://github.com/WordPress/gutenberg/pull/64961))
+- @greenworld: Fix typo in Slot Fills documentation. ([65275](https://github.com/WordPress/gutenberg/pull/65275))
+- @louwie17: Convert EmbedPreview component to functional component. ([51325](https://github.com/WordPress/gutenberg/pull/51325))
+- @rahulharpal1603: URLInput: Replace input with InputControl. ([65158](https://github.com/WordPress/gutenberg/pull/65158))
+
+
+## Contributors
+
+The following contributors merged PRs in this release:
+
+@aaronrobertshaw @afercia @AKSHAT2802 @Aljullu @andrewserong @carolinan @cbravobernal @ciampo @colorful-tones @creativecoder @DaniGuardiola @DAreRodz @devansh016 @dhruvang21 @ellatrix @farid-hadi @getdave @gigitux @greenworld @gziolo @hbhalodia @jameskoster @jasmussen @javierarce @jeryj @jorgefilipecosta @jsnajdr @kevin940726 @louwie17 @madhusudhand @MaggieCabrera @Mamaduka @mikeybinns @mirka @ntsekouras @oandregal @ockham @peterwilsoncc @rahulharpal1603 @ramonjd @richtabor @rohitmathur-7 @SantosGuillamot @scruffian @sgomes @sirreal @stokesman @swissspidy @t-hamano @talldan @vipul0425 @zaguiini
+
+
+= 19.2.0 =
+
+## Changelog
+
+### Enhancements
+
+- Add: Reorder control at the field level on the new view configuration UI. ([64381](https://github.com/WordPress/gutenberg/pull/64381))
+- Core Data Types: `recordId` can be a number. ([64796](https://github.com/WordPress/gutenberg/pull/64796))
+- Core Data: Derive collection totals for unbound queries. ([64772](https://github.com/WordPress/gutenberg/pull/64772))
+- Create Block: Set minimum supported WordPress version to 6.6. ([64920](https://github.com/WordPress/gutenberg/pull/64920))
+- Dataviews Filter search widget: Do not use Composite store. ([64985](https://github.com/WordPress/gutenberg/pull/64985))
+- Dataviews list view: Do not use Composite store. ([64987](https://github.com/WordPress/gutenberg/pull/64987))
+- Move bulk actions menu to the Footer, consolidate with floating toolbar and total items display. ([64268](https://github.com/WordPress/gutenberg/pull/64268))
+- Try: Update block warnings. ([64997](https://github.com/WordPress/gutenberg/pull/64997))
+
+#### Components
+- Add variants to InputControl prefix/suffix wrappers. ([64824](https://github.com/WordPress/gutenberg/pull/64824))
+- AlignmentMatrixControl: Do not use Composite store. ([64850](https://github.com/WordPress/gutenberg/pull/64850))
+- CircularOptionPicker: Stop using composite store. ([64833](https://github.com/WordPress/gutenberg/pull/64833))
+- Composite: Accept store props on top level component. ([64832](https://github.com/WordPress/gutenberg/pull/64832))
+- DataViews: Adds two new stories for edge cases. ([64975](https://github.com/WordPress/gutenberg/pull/64975))
+- Decrease standard padding to 12px. ([64708](https://github.com/WordPress/gutenberg/pull/64708))
+- DropdownMenuV2: Add GroupLabel subcomponent. ([64854](https://github.com/WordPress/gutenberg/pull/64854))
+- DropdownMenuV2: Update animation. ([64868](https://github.com/WordPress/gutenberg/pull/64868))
+- DropdownMenuV2: Use overloaded naming conventions. ([64654](https://github.com/WordPress/gutenberg/pull/64654))
+- InputControl: Tighten gap between input and prefix/suffix. ([64908](https://github.com/WordPress/gutenberg/pull/64908))
+- Navigator: Polish Storybook examples. ([64798](https://github.com/WordPress/gutenberg/pull/64798))
+- Navigator: Remove location history, simplify internal logic. ([64675](https://github.com/WordPress/gutenberg/pull/64675))
+- UnitControl: Update unit select styles. ([64712](https://github.com/WordPress/gutenberg/pull/64712))
+- Update hard-coded border-radius instances. ([64693](https://github.com/WordPress/gutenberg/pull/64693))
+- Update modal animation. ([64580](https://github.com/WordPress/gutenberg/pull/64580))
+
+#### Block bindings
+- Add warning in attributes connected to invalid sources. ([65002](https://github.com/WordPress/gutenberg/pull/65002))
+- Allow only admin users to create and modify bindings by default. ([64570](https://github.com/WordPress/gutenberg/pull/64570))
+- Lock editing in fields in editor if meta fields panel is opened. ([64738](https://github.com/WordPress/gutenberg/pull/64738))
+- Rely on `Text` component instead of `Truncate` in bindings panel. ([65007](https://github.com/WordPress/gutenberg/pull/65007))
+- Remove `getPlaceholder` API and rely on `key` argument or source label. ([64910](https://github.com/WordPress/gutenberg/pull/64910))
+
+#### Data Views
+- Add: Reorder control at the field level on the new view configuration UI. ([64381](https://github.com/WordPress/gutenberg/pull/64381))
+- Dataviews Filter search widget: Do not use Composite store. ([64985](https://github.com/WordPress/gutenberg/pull/64985))
+- Dataviews list view: Do not use Composite store. ([64987](https://github.com/WordPress/gutenberg/pull/64987))
+- Move bulk actions menu to the Footer, consolidate with floating toolbar and total items display. ([64268](https://github.com/WordPress/gutenberg/pull/64268))
+
+#### Block Editor
+- Add 'Reset' option to MediaReplaceFlow component. ([64826](https://github.com/WordPress/gutenberg/pull/64826))
+- Block Patterns List: Do not use Composite store. ([64983](https://github.com/WordPress/gutenberg/pull/64983))
+- Remove the Shuffle block toolbar button. ([64954](https://github.com/WordPress/gutenberg/pull/64954))
+- Show block icon in contentOnly toolbar. ([64694](https://github.com/WordPress/gutenberg/pull/64694))
+
+#### Block Library
+- Cover Block: Move Clear Media button from Inspector Controls to Block Controls. ([64630](https://github.com/WordPress/gutenberg/pull/64630))
+- Improve Social Icons setup and appending. ([64877](https://github.com/WordPress/gutenberg/pull/64877))
+- Pagination Block: Fix inconsistent margins between editor and frontend. ([64874](https://github.com/WordPress/gutenberg/pull/64874))
+- Tag Cloud: Improve state of block with no tags. ([63774](https://github.com/WordPress/gutenberg/pull/63774))
+
+#### Block Locking
+- ContentOnly: Add support for block styles on top-level contentOnly locked blocks. ([64872](https://github.com/WordPress/gutenberg/pull/64872))
+- Only show title in content only toolbar if has title value. ([64840](https://github.com/WordPress/gutenberg/pull/64840))
+- Remove ability to crop image if content only mode. ([64838](https://github.com/WordPress/gutenberg/pull/64838))
+- Rename Alt to Alternative Text in content only image toolbar. ([64841](https://github.com/WordPress/gutenberg/pull/64841))
+
+#### Interactivity API
+- Categories Block: Add iAPI directive for client-side routing. ([64907](https://github.com/WordPress/gutenberg/pull/64907))
+- Improve internal `deepMerge` function. ([64879](https://github.com/WordPress/gutenberg/pull/64879))
+
+#### Global Styles
+- Hide typeset button when there are no typesets available. ([64515](https://github.com/WordPress/gutenberg/pull/64515))
+- Use four color palette colors instead of five for useStylesPreviewColors. ([64700](https://github.com/WordPress/gutenberg/pull/64700))
+
+#### Zoom Out
+- Add "Edit" button to Zoom Out mode toolbar. ([64571](https://github.com/WordPress/gutenberg/pull/64571))
+- Double click block to exit zoom out mode. ([64573](https://github.com/WordPress/gutenberg/pull/64573))
+
+#### Design Tools
+- Comment Edit Link: Add Border Block Support. ([64239](https://github.com/WordPress/gutenberg/pull/64239))
+- Comment Reply Link: Add border support. ([64271](https://github.com/WordPress/gutenberg/pull/64271))
+
+#### Icons
+- Add thumbs up and down icons. ([65004](https://github.com/WordPress/gutenberg/pull/65004))
+
+#### Site Editor
+- Apply radius scale in the editor. ([64930](https://github.com/WordPress/gutenberg/pull/64930))
+
+#### Post Editor
+- Post publish upload media dialog: Handle upload errors. ([64823](https://github.com/WordPress/gutenberg/pull/64823))
+
+#### Typography
+- Fluid typography: Allow individual preset overrides. ([64790](https://github.com/WordPress/gutenberg/pull/64790))
+
+#### Media
+- Add experiment for client-side media processing. ([64650](https://github.com/WordPress/gutenberg/pull/64650))
+
+#### REST API
+- Core Data: Resolve entity collection user permissions. ([64504](https://github.com/WordPress/gutenberg/pull/64504))
+
+#### Block Transforms
+- Details block: Add transform from any block type. ([63422](https://github.com/WordPress/gutenberg/pull/63422))
+
+
+### New APIs
+
+#### Extensibility
+- Editor: Add extensibility to PreviewOptions v2. ([64644](https://github.com/WordPress/gutenberg/pull/64644))
+
+
+### Bug Fixes
+
+- Add safeguard to `mediaUploadMiddleware`. ([64843](https://github.com/WordPress/gutenberg/pull/64843))
+- Allow multi-select on iOS Safari/touch devices. ([63671](https://github.com/WordPress/gutenberg/pull/63671))
+- Core Data: Fix the 'query._fields' property check inside 'getEntityRecord' resolver. ([65079](https://github.com/WordPress/gutenberg/pull/65079))
+- Fix Modify content-locked menu item not showing if the block is not selected. ([61605](https://github.com/WordPress/gutenberg/pull/61605))
+- Fix editor error in Safari due to availability of checkVisibility method. ([65069](https://github.com/WordPress/gutenberg/pull/65069))
+- Fix: Pagination arrows are pointing in the wrong direction in RTL languages. ([64962](https://github.com/WordPress/gutenberg/pull/64962))
+- Footnotes: Only replace attribute if footnotes were detected. ([63935](https://github.com/WordPress/gutenberg/pull/63935))
+- Paste: Fix image paste from Google Forms. ([64502](https://github.com/WordPress/gutenberg/pull/64502))
+- Revert Focus pattern inserter search when activating zoom out inserter. ([64748](https://github.com/WordPress/gutenberg/pull/64748))
+- Try: Update block warnings. ([64997](https://github.com/WordPress/gutenberg/pull/64997))
+
+#### Block Library
+- De-duplicate block toolbar icons for patterns. ([65054](https://github.com/WordPress/gutenberg/pull/65054))
+- Fix: Page list: Pages without a title has no link text. ([64297](https://github.com/WordPress/gutenberg/pull/64297))
+- Position BlockToolbar below all of the selected block's descendants. ([62711](https://github.com/WordPress/gutenberg/pull/62711))
+- Site Logo Block: Fix non-admin users seeing zero character. ([65010](https://github.com/WordPress/gutenberg/pull/65010))
+- Site Logo: Fix loader alignment issue. ([64919](https://github.com/WordPress/gutenberg/pull/64919))
+- Template Part: Hide Advanced panel for non-admin users. ([64721](https://github.com/WordPress/gutenberg/pull/64721))
+- Video Block: Fix layout issue. ([64834](https://github.com/WordPress/gutenberg/pull/64834))
+
+#### Components
+- ColorPalette utils: Do not normalize undefined color values. ([64969](https://github.com/WordPress/gutenberg/pull/64969))
+- DatePicker: Restore round radius for event dot. ([65031](https://github.com/WordPress/gutenberg/pull/65031))
+- DropdownMenuV2: Fix active and focus-visible item glitches. ([64942](https://github.com/WordPress/gutenberg/pull/64942))
+- DropdownMenuV2: Remove flashing styles when moving focus with keyboard. ([64873](https://github.com/WordPress/gutenberg/pull/64873))
+- Fixes "delete" action in DataViews' storybook. ([64901](https://github.com/WordPress/gutenberg/pull/64901))
+- Navigator: Fix isInitial, refine focusSelector logic. ([64786](https://github.com/WordPress/gutenberg/pull/64786))
+- Range control: Restore bottom margin rule. ([65035](https://github.com/WordPress/gutenberg/pull/65035))
+
+#### Post Editor
+- Add back editor-post-locked-modal to post lock component. ([64257](https://github.com/WordPress/gutenberg/pull/64257))
+- Add context to `View` string in post actions. ([65046](https://github.com/WordPress/gutenberg/pull/65046))
+- Apply space below content using a pseudo-element instead of padding-bottom. ([64639](https://github.com/WordPress/gutenberg/pull/64639))
+- Post Title: Fix pasting in Safari. ([64671](https://github.com/WordPress/gutenberg/pull/64671))
+- Post Title: Move selection at the end after pasting over the text. ([64665](https://github.com/WordPress/gutenberg/pull/64665))
+- Post publish upload media dialog: Fix silent failure. ([64741](https://github.com/WordPress/gutenberg/pull/64741))
+
+#### Data Views
+- DataViews: Fix field reordering and visibility logic. ([64999](https://github.com/WordPress/gutenberg/pull/64999))
+- Fix actions scrim in list layout. ([64696](https://github.com/WordPress/gutenberg/pull/64696))
+- Fix data views style inheritance. ([64933](https://github.com/WordPress/gutenberg/pull/64933))
+- Fix: Impossible to see pagination on viewports between small and medium. ([64844](https://github.com/WordPress/gutenberg/pull/64844))
+- List layout: Update broken styles. ([64837](https://github.com/WordPress/gutenberg/pull/64837))
+
+#### Block Editor
+- Add conditions when the Shuffle button can be displayed. ([64888](https://github.com/WordPress/gutenberg/pull/64888))
+- Inserter: Fix subtle media insertion error. ([65057](https://github.com/WordPress/gutenberg/pull/65057))
+- Post Editor: Fix click space after post content to append. ([64992](https://github.com/WordPress/gutenberg/pull/64992))
+- Writing flow: Fix triple click inside text blocks. ([64928](https://github.com/WordPress/gutenberg/pull/64928))
+
+#### Global Styles
+- Adjust spacing of background panel. ([64880](https://github.com/WordPress/gutenberg/pull/64880))
+- Cast globalFluid value to boolean. ([64882](https://github.com/WordPress/gutenberg/pull/64882))
+- Fix site editor broken when fontWeight is not defined or is an integer in theme.json or theme styles. ([64953](https://github.com/WordPress/gutenberg/pull/64953))
+- Fixes the default fluid value on the UI based on the global typography fluid value. ([64803](https://github.com/WordPress/gutenberg/pull/64803))
+
+#### Block bindings
+- Change placeholder when attribute is bound. ([64903](https://github.com/WordPress/gutenberg/pull/64903))
+- Fix empty custom fields not being editable in bindings. ([64881](https://github.com/WordPress/gutenberg/pull/64881))
+
+#### CSS & Styling
+- Featured Image Block: Reduce CSS specificity. ([64463](https://github.com/WordPress/gutenberg/pull/64463))
+- Retain the same specificity for non iframed selectors. ([64534](https://github.com/WordPress/gutenberg/pull/64534))
+
+#### Patterns
+- Pass 'blocks' as inner blocks value. ([65029](https://github.com/WordPress/gutenberg/pull/65029))
+
+#### Synced Patterns
+- Pattern: Don't render block controls when an entity is missing. ([65028](https://github.com/WordPress/gutenberg/pull/65028))
+
+#### Site Editor
+- DataViews: Fix pattern title direction in RTL languages. ([64967](https://github.com/WordPress/gutenberg/pull/64967))
+
+#### Typography
+- Site Title, Post Title: Fix typography for blocks with `a` children. ([64911](https://github.com/WordPress/gutenberg/pull/64911))
+
+#### NUX
+- Fix visibility of the template Welcome Guide in the Site Editor. ([64789](https://github.com/WordPress/gutenberg/pull/64789))
+
+#### Document Settings
+- Fix: Adjust Site URL Styles to Prevent Overflow in Pre-Publish Component. ([64745](https://github.com/WordPress/gutenberg/pull/64745))
+
+#### Zoom Out
+- Focus selected block in editor canvas when clicking edit button on zoom out mode toolbar. ([64725](https://github.com/WordPress/gutenberg/pull/64725))
+
+#### Templates API
+- Make plugin-registered templates overriden by themes to fall back to plugin-registered title and description. ([64610](https://github.com/WordPress/gutenberg/pull/64610))
+
+#### Block Style Variations
+- Block Styles: Ensure unique classname generation for variations. ([64511](https://github.com/WordPress/gutenberg/pull/64511))
+
+#### Distraction Free
+- Make Distraction Free not conditional on viewport width. ([63949](https://github.com/WordPress/gutenberg/pull/63949))
+
+#### Media
+- Limit the max width of image to its container size. ([63341](https://github.com/WordPress/gutenberg/pull/63341))
+
+
+### Accessibility
+
+#### Components
+- AlignmentMatrixControl: Simplify styles and markup. ([64827](https://github.com/WordPress/gutenberg/pull/64827))
+- TimePicker: Use ToggleGroupControl for AM/PM toggle. ([64800](https://github.com/WordPress/gutenberg/pull/64800))
+
+#### Block Editor
+- Layout content and wide width controls: Remove confusing icon and clarify labels. ([64891](https://github.com/WordPress/gutenberg/pull/64891))
+
+#### Font Library
+- Font Library Modal: Group font variations as a list. ([64029](https://github.com/WordPress/gutenberg/pull/64029))
+
+#### Post Editor
+- Fix the post summary Status toggle button accessibility. ([63988](https://github.com/WordPress/gutenberg/pull/63988))
+
+
+### Performance
+
+- Core Data: Avoid loops in 'registry.batch' calls. ([64955](https://github.com/WordPress/gutenberg/pull/64955))
+- Core data: Performance: Fix receive user permissions. ([64894](https://github.com/WordPress/gutenberg/pull/64894))
+- Reusable blocks: Fix performance of __experimentalGetAllowedPatterns. ([64871](https://github.com/WordPress/gutenberg/pull/64871))
+
+#### Site Editor
+- Add 'OPTIONS /page' to preloaded paths. ([64890](https://github.com/WordPress/gutenberg/pull/64890))
+- Editor: Don't use selector shortcuts for the Site data. ([64884](https://github.com/WordPress/gutenberg/pull/64884))
+
+#### Interactivity API
+- Prevent calling `proxifyContext` with context proxies inside `wp-context`. ([65090](https://github.com/WordPress/gutenberg/pull/65090))
+
+#### Block Library
+- Media & Text: Don't use background-image. ([64981](https://github.com/WordPress/gutenberg/pull/64981))
+
+#### Post Editor
+- Editor: Remove create template permission check in 'VisualEditor'. ([64905](https://github.com/WordPress/gutenberg/pull/64905))
+
+#### Block Editor
+- Inserter: Use lighter grammar parse to check allowed status. ([64902](https://github.com/WordPress/gutenberg/pull/64902))
+
+#### Patterns
+- Shuffle: Don't call '__experimentalGetAllowedPatterns' for every block. ([64736](https://github.com/WordPress/gutenberg/pull/64736))
+
+
+### Experiments
+
+#### Zoom Out
+- Add new zoom out experiment. ([65048](https://github.com/WordPress/gutenberg/pull/65048))
+- Remove the experiment that connects zoom out to the pattern inserter. ([65045](https://github.com/WordPress/gutenberg/pull/65045))
+
+
+### Documentation
+
+- Add a new section to the SlotFill reference to show how to conditionally render Fills. ([64807](https://github.com/WordPress/gutenberg/pull/64807))
+- Added Global Documentation in several php file. ([64956](https://github.com/WordPress/gutenberg/pull/64956))
+- Components: Move displayName assignment to top-level files. ([64793](https://github.com/WordPress/gutenberg/pull/64793))
+- Composite: Add context-forwarding with SlotFill example. ([65051](https://github.com/WordPress/gutenberg/pull/65051))
+- Composite: Fix Storybook docgen. ([64682](https://github.com/WordPress/gutenberg/pull/64682))
+- Corrected HTML Syntax for Closing Tags in api-reference.md file. ([64778](https://github.com/WordPress/gutenberg/pull/64778))
+- DataViews docs: Fix typo in `direction` values. ([64973](https://github.com/WordPress/gutenberg/pull/64973))
+- DataViews: Add story about combining fields. ([64984](https://github.com/WordPress/gutenberg/pull/64984))
+- DataViews: Document combined fields. ([64904](https://github.com/WordPress/gutenberg/pull/64904))
+- Dataviews docs: Layout properties checks and link. ([64918](https://github.com/WordPress/gutenberg/pull/64918))
+- Docs/iAPI: Fix wrong code snippets in API reference. ([64416](https://github.com/WordPress/gutenberg/pull/64416))
+- Docs: Update design resources to indicate edit isn't free. ([64792](https://github.com/WordPress/gutenberg/pull/64792))
+- PluginSidebarMoreMenuItem: Update example, screenshot and description. ([64761](https://github.com/WordPress/gutenberg/pull/64761))
+- Provide better examples and remove outdating site edit references for the MainDashboardButton SlotFill. ([64753](https://github.com/WordPress/gutenberg/pull/64753))
+- Removing ryanwelcher as a documentation codeowner because my inbox is dead. ([64762](https://github.com/WordPress/gutenberg/pull/64762))
+- Storybook: Hide deprecated `__next36pxDefaultSize` prop. ([64806](https://github.com/WordPress/gutenberg/pull/64806))
+- Update screenshot and description for PluginSidebar slot. ([64759](https://github.com/WordPress/gutenberg/pull/64759))
+- Update text to match code examples. ([64751](https://github.com/WordPress/gutenberg/pull/64751))
+- Update the import for PluginBlockSettingsMenuItem. ([64758](https://github.com/WordPress/gutenberg/pull/64758))
+- Updated Several Typos in Doc files. ([64787](https://github.com/WordPress/gutenberg/pull/64787))
+- [Docs]: Update Usage Example for block variation picker: Fix Import from Wrong Package. ([55555](https://github.com/WordPress/gutenberg/pull/55555))
+
+
+### Code Quality
+
+- Button: Add lint rule for 40px size prop usage. ([64835](https://github.com/WordPress/gutenberg/pull/64835))
+- Dataviews filter: Move resetValueOnSelect prop to combobox item. ([64852](https://github.com/WordPress/gutenberg/pull/64852))
+- Rename refs to fix tons of 'Mutating a value' errors in react-compiler. ([64718](https://github.com/WordPress/gutenberg/pull/64718))
+- Rich text: Add comment on placeholder approach. ([64945](https://github.com/WordPress/gutenberg/pull/64945))
+- SelectControl: Fix remaining 40px size violations. ([64831](https://github.com/WordPress/gutenberg/pull/64831))
+- Simplify useResizeObserver. ([64820](https://github.com/WordPress/gutenberg/pull/64820))
+- Typography: Backport comment changes only. ([64859](https://github.com/WordPress/gutenberg/pull/64859))
+- UnitControl: Add lint rule for 40px size prop usage. ([64520](https://github.com/WordPress/gutenberg/pull/64520))
+- UnitControl: Move to stricter lint rule for 40px size adherence. ([65017](https://github.com/WordPress/gutenberg/pull/65017))
+- Use rectIntersect instead of a custom argument to rectUnion. ([64855](https://github.com/WordPress/gutenberg/pull/64855))
+
+#### Site Editor
+- Add Custom Template modal: Do not use Composite store. ([65044](https://github.com/WordPress/gutenberg/pull/65044))
+- Add units to avoid console warning. ([64810](https://github.com/WordPress/gutenberg/pull/64810))
+- Edit Site Layout: Remove redundant fullResizer. ([64821](https://github.com/WordPress/gutenberg/pull/64821))
+- Remove unused 'useSiteEditorSettings' hook. ([64892](https://github.com/WordPress/gutenberg/pull/64892))
+- Style Book: Do not use Composite store. ([65047](https://github.com/WordPress/gutenberg/pull/65047))
+
+#### Block Editor
+- Block Inserter Listbox: Do not use Composite store. ([65042](https://github.com/WordPress/gutenberg/pull/65042))
+- Block Inserter Media List: Do not use Composite store. ([65043](https://github.com/WordPress/gutenberg/pull/65043))
+- Block Pattern Setup: Do not use Composite store. ([65039](https://github.com/WordPress/gutenberg/pull/65039))
+- Global Styles Shadow Panel: Do not use Composite store. ([65041](https://github.com/WordPress/gutenberg/pull/65041))
+- Pattern Transformations Menu: Do not use Composite store. ([65040](https://github.com/WordPress/gutenberg/pull/65040))
+
+#### Zoom Out
+- Add selector for getting section root clientId. ([65001](https://github.com/WordPress/gutenberg/pull/65001))
+- Don't pass 'rootClientId' to block lock selectors. ([64887](https://github.com/WordPress/gutenberg/pull/64887))
+- Fix error and improve privacy of sectionRootClientId setting. ([65000](https://github.com/WordPress/gutenberg/pull/65000))
+
+#### Components
+- AlignmentMatrixControl: Promote to stable. ([60913](https://github.com/WordPress/gutenberg/pull/60913))
+- Deprecate `DimensionControl`. ([64951](https://github.com/WordPress/gutenberg/pull/64951))
+
+#### Block Library
+- Block Bindings: Fix ESLint warnings. ([64684](https://github.com/WordPress/gutenberg/pull/64684))
+- Video Block: Remove custom CSS code for placeholder style. ([64861](https://github.com/WordPress/gutenberg/pull/64861))
+
+#### Global Styles
+- Allow referenced zero value and simplify getValueFromObjectPath calls. ([64836](https://github.com/WordPress/gutenberg/pull/64836))
+- Navigator: Replace deprecated NavigatorToParentButton with NavigatorBackButton. ([64775](https://github.com/WordPress/gutenberg/pull/64775))
+
+#### Block Directory
+- Downloadable Block List: Do not use composite store. ([65038](https://github.com/WordPress/gutenberg/pull/65038))
+
+#### Design Tools
+- Color panel hook: Rename to remove ambiguity. ([64993](https://github.com/WordPress/gutenberg/pull/64993))
+
+
+### Tools
+
+- Add remaining i18n rules to recommended ESLint ruleset. ([64710](https://github.com/WordPress/gutenberg/pull/64710))
+- Scripts: Added chunk filename in webpack configuration to avoid reading stale files. ([58176](https://github.com/WordPress/gutenberg/pull/58176))
+- Scripts: Import CSS files before optimization. ([61121](https://github.com/WordPress/gutenberg/pull/61121))
+- Scripts: Update `puppeteer-core` dependency. ([64597](https://github.com/WordPress/gutenberg/pull/64597))
+
+#### Testing
+- Flaky Test: Fix "Sorting" test in new-templates-list.spec.js. ([64776](https://github.com/WordPress/gutenberg/pull/64776))
+- Revert "Downgrade node 22(.5) unit tests to 22.4 (#63728)". ([63758](https://github.com/WordPress/gutenberg/pull/63758))
+
+
+### Various
+
+- Dataviews docs: Fixed property name for defaultLayouts settings. ([64897](https://github.com/WordPress/gutenberg/pull/64897))
+- task: Remove dcalhoun code owner. ([64886](https://github.com/WordPress/gutenberg/pull/64886))
+
+
+## First-time contributors
+
+The following PRs were merged by first-time contributors:
+
+- @Imran92: Fix site editor broken when fontWeight is not defined or is an integer in theme.json or theme styles. ([64953](https://github.com/WordPress/gutenberg/pull/64953))
+- @jacobcassidy: Scripts: Update `puppeteer-core` dependency. ([64597](https://github.com/WordPress/gutenberg/pull/64597))
+- @jawadmalikdev: [Docs]: Update Usage Example for block variation picker: Fix Import from Wrong Package. ([55555](https://github.com/WordPress/gutenberg/pull/55555))
+- @lezama: Editor: Add extensibility to PreviewOptions v2. ([64644](https://github.com/WordPress/gutenberg/pull/64644))
+- @rithik56: Scripts: Added chunk filename in webpack configuration to avoid reading stale files. ([58176](https://github.com/WordPress/gutenberg/pull/58176))
+- @rohitmathur-7: Cover Block: Move Clear Media button from Inspector Controls to Block Controls. ([64630](https://github.com/WordPress/gutenberg/pull/64630))
+
+
+## Contributors
+
+The following contributors merged PRs in this release:
+
+@aaronrobertshaw @afercia @akasunil @Aljullu @andrewserong @atachibana @benoitchantre @carolinan @cbravobernal @ciampo @DAreRodz @dcalhoun @desrosj @dsas @ellatrix @fullofcaffeine @getdave @gziolo @Imran92 @imrraaj @jacobcassidy @jameskoster @jasmussen @jawadmalikdev @jeryj @jorgefilipecosta @jsnajdr @juanmaguitar @kevin940726 @lezama @Mamaduka @matiasbenedetto @mirka @noisysocks @ntsekouras @oandregal @ockham @rafaelgallani @ramonjd @richtabor @rithik56 @rohitmathur-7 @ryanwelcher @SantosGuillamot @scruffian @sgomes @shail-mehta @spacedmonkey @stokesman @swissspidy @t-hamano @talldan @tjcafferkey @tyxla
+
+
+= 19.1.0 =
+
+## Changelog
+
+### Enhancements
+
+#### Components
+- Allow `style` prop on `Popover`. ([64489](https://github.com/WordPress/gutenberg/pull/64489))
+- Add elevation scale. ([64108](https://github.com/WordPress/gutenberg/pull/64108))
+- Apply elevation scale to: Modal, Popover, and Snackbar components. ([64655](https://github.com/WordPress/gutenberg/pull/64655))
+- Ariakit: Update to v0.4.10. ([64637](https://github.com/WordPress/gutenberg/pull/64637))
+- DimensionControl: Add flag to remove bottom margin. ([64346](https://github.com/WordPress/gutenberg/pull/64346))
+- DropdownMenu V2: Use themed color variables. ([64647](https://github.com/WordPress/gutenberg/pull/64647))
+- Placeholders: Update radius temporarily. ([64672](https://github.com/WordPress/gutenberg/pull/64672))
+- Reduce gap between steps in SpacingSizesControl, add animation, remove first/last marks. ([63803](https://github.com/WordPress/gutenberg/pull/63803))
+- Textarea Control: Update styles. ([64586](https://github.com/WordPress/gutenberg/pull/64586))
+- Tools Panel: Sets column-gap to 16px for grid. ([64497](https://github.com/WordPress/gutenberg/pull/64497))
+- Update DropdownMenuV2 elevation, remove unused configuration value. ([64432](https://github.com/WordPress/gutenberg/pull/64432))
+- Update components radius. ([64368](https://github.com/WordPress/gutenberg/pull/64368))
+- Use `useStoreState()` instead of `store.useState()`. ([64648](https://github.com/WordPress/gutenberg/pull/64648))
+- Composite: Use internal context to consume composite store. ([64493](https://github.com/WordPress/gutenberg/pull/64493))
+- Default to new 40px size in the following:
+ - FocalPointPicker: ([64456](https://github.com/WordPress/gutenberg/pull/64456))
+ - QueryControls: ([64457](https://github.com/WordPress/gutenberg/pull/64457))
+
+#### Data Views
+- Do not display element descriptions in filters. ([64674](https://github.com/WordPress/gutenberg/pull/64674))
+- Apply minimal variant to pagination dropdown. ([63815](https://github.com/WordPress/gutenberg/pull/63815))
+- Update the style of the datetime fields to match the other types. ([64438](https://github.com/WordPress/gutenberg/pull/64438))
+- Use the fields array to define the order of the fields. ([64335](https://github.com/WordPress/gutenberg/pull/64335))
+- Make the move left/right controls in table header always available. ([64646](https://github.com/WordPress/gutenberg/pull/64646))
+- Support defining field headers/names as React elements. ([64642](https://github.com/WordPress/gutenberg/pull/64642))
+- Add marks to preview size control. ([64546](https://github.com/WordPress/gutenberg/pull/64546))
+- Move item size control to the new view configuration UI. ([64380](https://github.com/WordPress/gutenberg/pull/64380))
+- Update search appearance in narrow containers. ([64681](https://github.com/WordPress/gutenberg/pull/64681))
+- Quick edit additions:
+ - `comment_status` field. ([64370](https://github.com/WordPress/gutenberg/pull/64370))
+ - `status` field. ([64398](https://github.com/WordPress/gutenberg/pull/64398))
+ - 'Date' as field and `datetime` as field type. ([64267](https://github.com/WordPress/gutenberg/pull/64267))
+- Extensibility - allow unregistering of the following:
+ - Duplicate post action ([64441](https://github.com/WordPress/gutenberg/pull/64441))
+ - Duplicate pattern action ([64373](https://github.com/WordPress/gutenberg/pull/64373))
+ - Duplicate template part action ([64388](https://github.com/WordPress/gutenberg/pull/64388))
+ - Rename post action ([64366](https://github.com/WordPress/gutenberg/pull/64366))
+ - Reorder-page action ([64199](https://github.com/WordPress/gutenberg/pull/64199))
+ - View post action ([64467](https://github.com/WordPress/gutenberg/pull/64467))
+ - View post revisions action ([64464](https://github.com/WordPress/gutenberg/pull/64464))
+- Add missing styles and remove opinionated ones for generic usage. ([64711](https://github.com/WordPress/gutenberg/pull/64711))
+
+#### Block Library
+- Embed Block: Replace native input element with InputControl component. ([64668](https://github.com/WordPress/gutenberg/pull/64668))
+- Grid: Prevent highlight of cells when dragging a block if block type can't be dropped into grid. ([64290](https://github.com/WordPress/gutenberg/pull/64290))
+- Image block: Add reset button. ([64669](https://github.com/WordPress/gutenberg/pull/64669))
+- Overlay caption w. text-shadow. ([63471](https://github.com/WordPress/gutenberg/pull/63471))
+
+#### Design Tools
+- Background image: Add uploading state and restrict drag to one image. ([64565](https://github.com/WordPress/gutenberg/pull/64565))
+- Quote Block: Add align support. ([64188](https://github.com/WordPress/gutenberg/pull/64188))
+- Add border support to the following:
+ - Comment Author Name ([64550](https://github.com/WordPress/gutenberg/pull/64550))
+ - Comment Content ([64230](https://github.com/WordPress/gutenberg/pull/64230))
+ - Comment Date ([64210](https://github.com/WordPress/gutenberg/pull/64210))
+ - Post Author Biography ([64615](https://github.com/WordPress/gutenberg/pull/64615))
+ - Post Author Name ([64530](https://github.com/WordPress/gutenberg/pull/64530))
+ - Post Author ([64599](https://github.com/WordPress/gutenberg/pull/64599))
+ - Query Title ([64581](https://github.com/WordPress/gutenberg/pull/64581))
+ - File: ([64509](https://github.com/WordPress/gutenberg/pull/64509))
+ - List Item: ([63541](https://github.com/WordPress/gutenberg/pull/63541))
+ - List: ([63540](https://github.com/WordPress/gutenberg/pull/63540))
+ - Preformatted: ([64302](https://github.com/WordPress/gutenberg/pull/64302))
+ - Tag Cloud: ([63579](https://github.com/WordPress/gutenberg/pull/63579))
+
+#### Zoom Out
+- Add private `isZoomOutMode` selector. ([64503](https://github.com/WordPress/gutenberg/pull/64503))
+- Block Insertion: Clear the insertion point when selecting a different block or clearing block selection. ([64048](https://github.com/WordPress/gutenberg/pull/64048))
+- Default the inserter to the patterns tab when in zoom out. ([64193](https://github.com/WordPress/gutenberg/pull/64193))
+- Focus pattern inserter search when activating zoom out inserter. ([64396](https://github.com/WordPress/gutenberg/pull/64396))
+- Stop unwanted drag and drop operations within section Patterns in Zoom Out mode. ([64331](https://github.com/WordPress/gutenberg/pull/64331))
+
+#### Block Editor
+- Button groups in Typography tools should use ToggleGroupControl. ([64529](https://github.com/WordPress/gutenberg/pull/64529))
+- Hyphenate long block names in the inserter. ([64667](https://github.com/WordPress/gutenberg/pull/64667))
+
+#### Global Styles
+- Additional CSS: Localize the link if it exists. ([64603](https://github.com/WordPress/gutenberg/pull/64603))
+- Background images: Add support for theme.json ref value resolution. ([64128](https://github.com/WordPress/gutenberg/pull/64128))
+
+
+### New APIs
+
+#### Components
+- Composite
+ - Add Hover and Typeahead subcomponents. ([64399](https://github.com/WordPress/gutenberg/pull/64399))
+ - Stabilize new ariakit implementation. ([63564](https://github.com/WordPress/gutenberg/pull/63564))
+ - Export `useCompositeStore`, add more focus-related props. ([64450](https://github.com/WordPress/gutenberg/pull/64450))
+
+#### Synced Patterns
+- Block Bindings: Create utils to update or remove bindings. ([64102](https://github.com/WordPress/gutenberg/pull/64102))
+
+#### Extensibility
+- Add plugin template registration API. ([61577](https://github.com/WordPress/gutenberg/pull/61577))
+
+
+### Bug Fixes
+
+#### Components
+- CustomSelectControl: Improve props type inferring. ([64412](https://github.com/WordPress/gutenberg/pull/64412))
+- ColorPalette: Partial support of `color-mix()` CSS colors. ([64224](https://github.com/WordPress/gutenberg/pull/64224))
+- RangeControl: Disable reset button consistently. ([64579](https://github.com/WordPress/gutenberg/pull/64579))
+- RangeControl: Tweak mark and label absolute positioning. ([64487](https://github.com/WordPress/gutenberg/pull/64487))
+
+#### Data Views
+- Load the filter toggle as open if there are primary filters. ([64651](https://github.com/WordPress/gutenberg/pull/64651))
+- Sort descending button may be wrongly pressed. ([64547](https://github.com/WordPress/gutenberg/pull/64547))
+- Filter icon is displayed even when no filter capabilities are given to any field. ([64640](https://github.com/WordPress/gutenberg/pull/64640))
+- Hide sort direction control if there are no sortable fields. ([64817](https://github.com/WordPress/gutenberg/pull/64817))
+
+#### Zoom Out
+- Disallow dropping outside section root in Zoom Out mode. ([64500](https://github.com/WordPress/gutenberg/pull/64500))
+- Don't hide the insertion point when hovering patterns. ([64392](https://github.com/WordPress/gutenberg/pull/64392))
+- Use previous device width for scale calculations. ([64478](https://github.com/WordPress/gutenberg/pull/64478))
+
+#### Block Library
+- Embed blocks: Adding captions via toolbar - #64385. ([64394](https://github.com/WordPress/gutenberg/pull/64394))
+- Paste: Fix blob uploading. ([64479](https://github.com/WordPress/gutenberg/pull/64479))
+- Table Block: Hide caption toolbar button on multiple selection. ([64462](https://github.com/WordPress/gutenberg/pull/64462))
+
+#### Post Editor
+- Fix user pattern preloading filter. ([64477](https://github.com/WordPress/gutenberg/pull/64477))
+- Fix preloaded REST API paths. ([64459](https://github.com/WordPress/gutenberg/pull/64459))
+- Force iframe editor when zoom-out mode. ([64316](https://github.com/WordPress/gutenberg/pull/64316))
+
+#### Block Editor
+- Don't hide the toolbar for an empty default block in HTML mode. ([64374](https://github.com/WordPress/gutenberg/pull/64374))
+- In-between Inserter: Show inserter when it doesn't conflict with block toolbar. ([64229](https://github.com/WordPress/gutenberg/pull/64229))
+- Slash Inserter: Restrict block list to allowed blocks only. ([64413](https://github.com/WordPress/gutenberg/pull/64413))
+
+#### Site Editor
+- Don't allow duplicating template parts in non-block-based themes. ([64379](https://github.com/WordPress/gutenberg/pull/64379))
+- Fix Template Parts post type preload path. ([64401](https://github.com/WordPress/gutenberg/pull/64401))
+- Cancel button in duplicate template part modal doesn't work. ([64377](https://github.com/WordPress/gutenberg/pull/64377))
+- Fix empty content sidebar panel. ([64569](https://github.com/WordPress/gutenberg/pull/64569))
+
+#### Block bindings
+- Fix long keys overflow in bindings panel. ([64465](https://github.com/WordPress/gutenberg/pull/64465))
+- Hide keys starting with underscore. ([64618](https://github.com/WordPress/gutenberg/pull/64618))
+- Refactor utils file. ([64740](https://github.com/WordPress/gutenberg/pull/64740))
+
+#### CSS & Styling
+- Remove inconsistent dark theme focus style on block selection. ([64549](https://github.com/WordPress/gutenberg/pull/64549))
+- Update postcss-prefixwrap dependency to 1.51.0 to fix prefixing in `:Where` selectors. ([64458](https://github.com/WordPress/gutenberg/pull/64458))
+
+#### Interactivity API
+- Fix context inheritance from namespaces different than the current one. ([64677](https://github.com/WordPress/gutenberg/pull/64677))
+- Fix computeds without scope in Firefox. ([64825](https://github.com/WordPress/gutenberg/pull/64825))
+
+#### Document Settings
+- Post Featured Image: Disable the media modal while uploading an image. ([64566](https://github.com/WordPress/gutenberg/pull/64566))
+
+#### Patterns
+- Changing sorting direction on patterns does nothing. ([64508](https://github.com/WordPress/gutenberg/pull/64508))
+
+#### Design Tools
+- Background image: Ensure consistency with defaults and fix reset/remove functionality. ([64328](https://github.com/WordPress/gutenberg/pull/64328))
+
+#### Global Styles
+- Fix bumped specificity for layout styles in non-iframed editor. ([64076](https://github.com/WordPress/gutenberg/pull/64076))
+
+
+### Accessibility
+
+- Site Editor: Always use auto-cursor style for editable text. ([64627](https://github.com/WordPress/gutenberg/pull/64627))
+- Post Editor: Update textControl to searchControl in taxonomy search. ([64605](https://github.com/WordPress/gutenberg/pull/64605))
+- RadioControl: Label radio group using fieldset and legend. ([64582](https://github.com/WordPress/gutenberg/pull/64582))
+- Fix labeling in Typography font size presets panel. ([64428](https://github.com/WordPress/gutenberg/pull/64428))
+- Latests Posts: Used ToggleGroupControl instead for Image alignment. ([64352](https://github.com/WordPress/gutenberg/pull/64352))
+
+
+### Performance
+
+- Fetch permissions for visible patterns only. ([64606](https://github.com/WordPress/gutenberg/pull/64606))
+- Background Image: Remove unnecessary 'block-editor' store subscription. ([64568](https://github.com/WordPress/gutenberg/pull/64568))
+- Edit Post: Avoid unnecessary post-template ID lookup. ([64431](https://github.com/WordPress/gutenberg/pull/64431))
+- GridVisualizer: Avoid over-selecting by using a new getBlockStyles private selector. ([64386](https://github.com/WordPress/gutenberg/pull/64386))
+
+
+### Experiments
+
+#### Data Views
+- DataViews Quick Edit
+ - Add Post Card to the quick edit panel. ([64365](https://github.com/WordPress/gutenberg/pull/64365))
+ - Add the PostActions dropdown menu. ([64393](https://github.com/WordPress/gutenberg/pull/64393))
+ - Rely on the global save flow instead of a custom save button. ([64389](https://github.com/WordPress/gutenberg/pull/64389))
+- Update the copy of quick edit tooltip. ([64475](https://github.com/WordPress/gutenberg/pull/64475))
+
+#### Components
+- Composite v2: Undo stabilizing new version. ([64510](https://github.com/WordPress/gutenberg/pull/64510))
+
+
+### Documentation
+
+- Add clarification about importing css/scss files. ([61252](https://github.com/WordPress/gutenberg/pull/61252))
+- Components
+ - Add "Naming conventions" section. ([63714](https://github.com/WordPress/gutenberg/pull/63714))
+ - Add 40px size prop to readmes. ([64592](https://github.com/WordPress/gutenberg/pull/64592))
+- Composite: Improve Storybook examples and clean up prop documentation. ([64397](https://github.com/WordPress/gutenberg/pull/64397))
+- Dataviews
+ - Added missing properties for actions object and link to storybook example. ([64442](https://github.com/WordPress/gutenberg/pull/64442))
+ - Fixed tip link for block editor view. ([64469](https://github.com/WordPress/gutenberg/pull/64469))
+ - Update README with missing properties and recent changes. ([64435](https://github.com/WordPress/gutenberg/pull/64435))
+ - Better explanation of the "elements" property and its connection to the "filterBy" property. ([64633](https://github.com/WordPress/gutenberg/pull/64633))
+- Interactivity API
+ - The first three Core Concepts guides. ([63759](https://github.com/WordPress/gutenberg/pull/63759))
+ - Fix internal links core-concepts. ([64609](https://github.com/WordPress/gutenberg/pull/64609))
+ - Remove typed function from API reference. ([64429](https://github.com/WordPress/gutenberg/pull/64429))
+ - Add code concepts to Navigating the Interactivity API documentation. ([64608](https://github.com/WordPress/gutenberg/pull/64608))
+ - Interactivity API: Add wp_interactivity_state() clarification. ([64356](https://github.com/WordPress/gutenberg/pull/64356))
+- Fix typos in the Block Filters documentation.. ([64426](https://github.com/WordPress/gutenberg/pull/64426))
+- Fix example of useBlockProps hook. ([64363](https://github.com/WordPress/gutenberg/pull/64363))
+- Fix typo and link in static-dynamic-rendering.md. ([64449](https://github.com/WordPress/gutenberg/pull/64449))
+- Fix typo in block-filters.md. ([64452](https://github.com/WordPress/gutenberg/pull/64452))
+- Fix typo in block-wrapper.md. ([64447](https://github.com/WordPress/gutenberg/pull/64447))
+- Note about image sizes in MediaUpload::OnSelect. ([64616](https://github.com/WordPress/gutenberg/pull/64616))
+- Small typo correction in doc file. ([64596](https://github.com/WordPress/gutenberg/pull/64596))
+- TextDecorationControl, TextTransformControl: Remove size prop in Storybook. ([64583](https://github.com/WordPress/gutenberg/pull/64583))
+- Updated `@since` order in Inline document in client-assets.php file. ([64653](https://github.com/WordPress/gutenberg/pull/64653))
+- Updated small typo in compat.php file. ([64535](https://github.com/WordPress/gutenberg/pull/64535))
+- Updated small typo in modularity.md. ([64518](https://github.com/WordPress/gutenberg/pull/64518))
+
+
+### Code Quality
+
+- Add lint rule for 40px size prop usage in the following:
+ - BorderBoxControl, BorderControl, DimensionControl, FontSizePicker: ([64410](https://github.com/WordPress/gutenberg/pull/64410))
+ - Block Editor typography components ([64591](https://github.com/WordPress/gutenberg/pull/64591))
+ - FormFileUpload: ([64585](https://github.com/WordPress/gutenberg/pull/64585))
+ - FormTokenField: ([64590](https://github.com/WordPress/gutenberg/pull/64590))
+ - InputControl: ([64589](https://github.com/WordPress/gutenberg/pull/64589))
+ - NumberControl: ([64561](https://github.com/WordPress/gutenberg/pull/64561))
+ - RangeControl: ([64558](https://github.com/WordPress/gutenberg/pull/64558))
+ - SelectControl: ([64486](https://github.com/WordPress/gutenberg/pull/64486))
+ - TextControl: ([64455](https://github.com/WordPress/gutenberg/pull/64455))
+ - ToggleGroupControl: ([64524](https://github.com/WordPress/gutenberg/pull/64524))
+ - ComboboxControl: ([64560](https://github.com/WordPress/gutenberg/pull/64560))
+ - CustomSelectControl: ([64559](https://github.com/WordPress/gutenberg/pull/64559))
+- Add margin-bottom lint rules for BaseControl. ([64355](https://github.com/WordPress/gutenberg/pull/64355))
+- Add missing changes to the changelog for the PR #62734. ([64507](https://github.com/WordPress/gutenberg/pull/64507))
+- Base Styles: Restore deprecated `$dark-theme-focus` variable. ([64563](https://github.com/WordPress/gutenberg/pull/64563))
+- ESLint: Enable and enforce remaining i18n rules for the plugin (e.g. no trailing spaces). ([60196](https://github.com/WordPress/gutenberg/pull/60196))
+- Remove unnecessary className. ([64403](https://github.com/WordPress/gutenberg/pull/64403))
+- Replace instances of deprecated elevation variables. ([64656](https://github.com/WordPress/gutenberg/pull/64656))
+- Style engine: Export util to compile CSS custom var from preset string. ([64490](https://github.com/WordPress/gutenberg/pull/64490))
+- Style engine: Update type for getCSSValueFromRawStyle. ([64528](https://github.com/WordPress/gutenberg/pull/64528))
+- TextControl: Fix remaining 40px size violations. ([64594](https://github.com/WordPress/gutenberg/pull/64594))
+- Border: 1px ā $border-width. ([64680](https://github.com/WordPress/gutenberg/pull/64680))
+
+#### Block Library
+- Gallery: Remove 'withNotices' HoC. ([64384](https://github.com/WordPress/gutenberg/pull/64384))
+- Missing Block: Use hooks instead of HoC. ([64657](https://github.com/WordPress/gutenberg/pull/64657))
+
+#### Block Editor
+- Use hooks instead of HoC in:
+ - 'BlockModeToggle'. ([64460](https://github.com/WordPress/gutenberg/pull/64460))
+ - 'MultiSelectionInspector'. ([64634](https://github.com/WordPress/gutenberg/pull/64634))
+
+#### Components
+- Deprecate bottom margin on BaseControl-based components. ([64408](https://github.com/WordPress/gutenberg/pull/64408))
+- Navigator: Simplify backwards navigation APIs. ([63317](https://github.com/WordPress/gutenberg/pull/63317))
+
+#### Data Views
+- Refactor the edit function to be based on discrete controls. ([64404](https://github.com/WordPress/gutenberg/pull/64404))
+- Update `renderFormElements` to make sure the value respects the type. ([64391](https://github.com/WordPress/gutenberg/pull/64391))
+- Abandon the ItemRecord type. ([64367](https://github.com/WordPress/gutenberg/pull/64367))
+
+#### Block hooks
+- Navigation Block: Remove now-obsolete function_exists guards. ([64673](https://github.com/WordPress/gutenberg/pull/64673))
+
+#### Nested / Inner Blocks
+- Block Editor: Refactor inner blocks appender components. ([64470](https://github.com/WordPress/gutenberg/pull/64470))
+
+#### Plugin
+- Script Modules: Move data passing to 6.7 compat file. ([64006](https://github.com/WordPress/gutenberg/pull/64006))
+
+
+### Tools
+
+- Make wp-env compatible with WordPress versions older than 5.4 by fixing wp-config anchors. ([55864](https://github.com/WordPress/gutenberg/pull/55864))
+
+#### Testing
+- Background block supports: Remove unused properties in unit tests. ([64564](https://github.com/WordPress/gutenberg/pull/64564))
+- Fix flaky block template registration end-to-end test. ([64541](https://github.com/WordPress/gutenberg/pull/64541))
+- Improve Image block end-to-end tests. ([64537](https://github.com/WordPress/gutenberg/pull/64537))
+- Upgrade Playwright to v1.46. ([64372](https://github.com/WordPress/gutenberg/pull/64372))
+
+#### Build Tooling
+- Fix gutenberg/gutenberg-coding-standards licensing issues. ([61913](https://github.com/WordPress/gutenberg/pull/61913))
+- Props Bot: Update to correct event type. ([64557](https://github.com/WordPress/gutenberg/pull/64557))
+
+
+## First-time contributors
+
+The following PRs were merged by first-time contributors:
+
+- @cweiske: Note about image sizes in MediaUpload::OnSelect. ([64616](https://github.com/WordPress/gutenberg/pull/64616))
+- @imrraaj: Dataviews: Filter icon is displayed even when no filter capabilities are given to any field. ([64640](https://github.com/WordPress/gutenberg/pull/64640))
+- @janpfeil: Fix typo in block-filters.md. ([64452](https://github.com/WordPress/gutenberg/pull/64452))
+- @Rishit30G: `ColorPalette`: Partial support of `color-mix()` CSS colors. ([64224](https://github.com/WordPress/gutenberg/pull/64224))
+- @ssang: Slash Inserter: Restrict block list to allowed blocks only. ([64413](https://github.com/WordPress/gutenberg/pull/64413))
+
+
+## Contributors
+
+The following contributors merged PRs in this release:
+
+@aaronrobertshaw @akasunil @Aljullu @amitraj2203 @anton-vlasenko @arthur791004 @cbravobernal @ciampo @colorful-tones @cweiske @DAreRodz @ellatrix @felixarntz @getdave @hbhalodia @imrraaj @jameskoster @janpfeil @jasmussen @jeherve @jorgefilipecosta @jsnajdr @juanmaguitar @luisherranz @Mamaduka @meteorlxy @mirka @ndiego @noisysocks @ntsekouras @oandregal @ockham @ramonjd @richtabor @Rishit30G @SantosGuillamot @scruffian @shail-mehta @shreya0204 @sirreal @ssang @swissspidy @t-hamano @talldan @tyxla @vipul0425 @youknowriad
+
+
+= 19.0.0 =
+
+## Changelog
+
+### Enhancements
+
+- Add alt edit field to the inline image in the format library ([64124](https://github.com/WordPress/gutenberg/pull/64124))
+- Update copy from "No Title" to "No title" across multiple places on the editor. ([64184](https://github.com/WordPress/gutenberg/pull/64184))
+- Update column input to be 40px by default. ([64190](https://github.com/WordPress/gutenberg/pull/64190))
+
+#### Block Library
+- Add anchor block support to List Items. ([48758](https://github.com/WordPress/gutenberg/pull/48758))
+- Unset the rowStart and columnStart attributes when a block inside the Grid is removed from a manual layout. ([64186](https://github.com/WordPress/gutenberg/pull/64186))
+- Update Group block example. ([63114](https://github.com/WordPress/gutenberg/pull/63114))
+- Make SiteLogoReplaceFlow always available in the Site Logo block toolbar. ([63499](https://github.com/WordPress/gutenberg/pull/63499))
+- Make Query Loop settings more intuitive with a ToggleGroup and simplified help text. ([63739](https://github.com/WordPress/gutenberg/pull/63739))
+- Move gallery link controls to the block toolbar. ([62762](https://github.com/WordPress/gutenberg/pull/62762))
+- Hide loading when the overlay menu is selected. ([64262](https://github.com/WordPress/gutenberg/pull/64262))
+- Move the Site Logo tooltip to the middle right. ([64296](https://github.com/WordPress/gutenberg/pull/64296))
+- Prevent duplicate spacing on Tag Cloud block. ([63832](https://github.com/WordPress/gutenberg/pull/63832))
+- Fix 'can user edit' Template Part check. ([64137](https://github.com/WordPress/gutenberg/pull/64137))
+- Add clearfix in Post content. ([63690](https://github.com/WordPress/gutenberg/pull/63690))
+- Tweak Tag Cloud controls and description. ([64151](https://github.com/WordPress/gutenberg/pull/64151))
+- Tweak list block. ([64025](https://github.com/WordPress/gutenberg/pull/64025))
+- Update MediaUpload button for the site logo from "Add media" to "Choose logo". ([63498](https://github.com/WordPress/gutenberg/pull/63498))
+- Update help text for sticky control in Query loop. ([63999](https://github.com/WordPress/gutenberg/pull/63999))
+- Add border support to the following blocks:
+ - [Time To Read](https://github.com/WordPress/gutenberg/pull/63776)
+ - [Categories List](https://github.com/WordPress/gutenberg/pull/63950)
+ - [Post Date](https://github.com/WordPress/gutenberg/pull/64023)
+ - [Post Excerpt](https://github.com/WordPress/gutenberg/pull/64022)
+ - [Post Terms](https://github.com/WordPress/gutenberg/pull/64246)
+ - [Post Title](https://github.com/WordPress/gutenberg/pull/64024)
+ - [Site Tagline](https://github.com/WordPress/gutenberg/pull/63778)
+ - [Site Title](https://github.com/WordPress/gutenberg/pull/63631)
+ - [Table of contents](https://github.com/WordPress/gutenberg/pull/63578)
+
+#### Extensibility
+- Add an async `__unstablePreSavePost` hook; resolving with false prevents saving. ([58022](https://github.com/WordPress/gutenberg/pull/58022))
+- Enable heading level curation. ([63535](https://github.com/WordPress/gutenberg/pull/63535))
+- Addition of `levelOptions` attribute to control available heading levels in [Post Title](https://github.com/WordPress/gutenberg/pull/64106), [Query Title](https://github.com/WordPress/gutenberg/pull/64107), [Site Tagline](https://github.com/WordPress/gutenberg/pull/64113), [Site Title](https://github.com/WordPress/gutenberg/pull/64111), and [Comments Title](https://github.com/WordPress/gutenberg/pull/64103).
+
+#### Data Views
+- Be more clear with the copy of the "hide" action. ([63047](https://github.com/WordPress/gutenberg/pull/63047))
+- Graduate data view options out of a menu to allow more design expression. ([64175](https://github.com/WordPress/gutenberg/pull/64175))
+- Move filter UI into a toggle-able panel to improve experience on narrow viewports/containers. ([63203](https://github.com/WordPress/gutenberg/pull/63203))
+- Update field line-height across grid/list layouts. ([63945](https://github.com/WordPress/gutenberg/pull/63945))
+- Update template description in table layout. ([63942](https://github.com/WordPress/gutenberg/pull/63942))
+- De-emphasise bulk actions on Grid layout. ([64209](https://github.com/WordPress/gutenberg/pull/64209))
+- Update the copy of some of the strings on dataviews actions. ([64099](https://github.com/WordPress/gutenberg/pull/64099))
+
+##### Dataviews Extensibility
+
+- Allow unregistering of the following post actions: [permanently delete](https://github.com/WordPress/gutenberg/pull/64088), [restore post](https://github.com/WordPress/gutenberg/pull/64134), and [trash post](https://github.com/WordPress/gutenberg/pull/64087).
+
+#### Dataform
+
+- Add author to quick edit page/post list. ([63983](https://github.com/WordPress/gutenberg/pull/63983))
+- If a field of type `text` declare `elements`, render it as a `SelectControl` in `edit`. ([64251](https://github.com/WordPress/gutenberg/pull/64251))
+- Migrate order action modal and introduce form validation. ([63895](https://github.com/WordPress/gutenberg/pull/63895))
+
+
+
+#### Components
+- Add radius scale. ([64007](https://github.com/WordPress/gutenberg/pull/64007))
+- Support generic props type on CustomSelectControl. ([63985](https://github.com/WordPress/gutenberg/pull/63985))
+- Guide: Add __next40pxDefaultSize to buttons. ([64181](https://github.com/WordPress/gutenberg/pull/64181))
+- Image: Make Placeholder white when there is a \`\`\`
code block to
### Documenting React components
-When possible, all components should be implemented as [function components](https://reactjs.org/docs/components-and-props.html#function-and-class-components), using [hooks](https://react.dev/reference/react/hooks) for managing component lifecycle and state.
+When possible, all components should be implemented as [function components](https://react.dev/learn/your-first-component), using [hooks](https://react.dev/reference/react/hooks) for managing component lifecycle and state.
Documenting a function component should be treated the same as any other function. The primary caveat in documenting a component is being aware that the function typically accepts only a single argument (the "props"), which may include many property members. Use the [dot syntax for parameter properties](https://jsdoc.app/tags-param.html#parameters-with-properties) to document individual prop types.
diff --git a/docs/contributors/code/deprecations.md b/docs/contributors/code/deprecations.md
index 51d4b0b293ff0a..415600617b73a7 100644
--- a/docs/contributors/code/deprecations.md
+++ b/docs/contributors/code/deprecations.md
@@ -183,7 +183,7 @@ For features included in the Gutenberg plugin, the deprecation policy is intende
## 3.8.0
-- `wp.components.withContext` has been removed. Please use `wp.element.createContext` instead. See: https://reactjs.org/docs/context.html.
+- `wp.components.withContext` has been removed. Please use `wp.element.createContext` instead. See: https://react.dev/reference/react/createContext.
- `wp.coreBlocks.registerCoreBlocks` has been removed. Please use `wp.blockLibrary.registerCoreBlocks` instead.
- `wp.editor.DocumentTitle` component has been removed.
- `getDocumentTitle` selector (`core/editor`) has been removed.
diff --git a/docs/contributors/code/getting-started-with-code-contribution.md b/docs/contributors/code/getting-started-with-code-contribution.md
index eb482a6dca2416..f9dd42ccb1fe58 100644
--- a/docs/contributors/code/getting-started-with-code-contribution.md
+++ b/docs/contributors/code/getting-started-with-code-contribution.md
@@ -44,9 +44,9 @@ We recommend using the [Node Version Manager](https://github.com/nvm-sh/nvm) (nv
**ę³Øę**: Windows 10 Home Edition ć« Docker ćć¤ć³ć¹ćć¼ć«ććć«ćÆć[install instructions from Docker for Windows with WSL2](https://docs.docker.com/docker-for-windows/wsl/) ć«å¾ć£ć¦ćć ććć
-Docker ć»ććć¢ććć®ä»£ęæćØćć¦ćÆć[Local](https://localwp.com/)ć[WampServer](http://www.wampserver.com/en/)ć[MAMP](https://www.mamp.info/)ćå©ēØć§ćć¾ććć¾ćććŖć¢ć¼ććµć¼ćć¼ć§ćę§ćć¾ććć
+Docker ć»ććć¢ććć®ä»£ęæćØćć¦ćÆć[Local](https://localwp.com/)ć[WampServer](https://wampserver.aviatechno.net/)ć[MAMP](https://www.mamp.info/)ćå©ēØć§ćć¾ććć¾ććÆćŖć¢ć¼ććµć¼ćć¼ć§ćę§ćć¾ććć
-Docker ćØ `wp-env` ć®ä»£ććć«ć[Local](https://localwp.com/)ć[WampServer](http://www.wampserver.com/en/)ćć¾ććÆ [MAMP](https://www.mamp.info/) ćä½æēØćć¦ććć¼ć«ć«ć® WordPress ē°å¢ćå®č”ć§ćć¾ććććć«ćÆćGutenberg ć®ćć£ć¬ćÆććŖć«ć·ć³ććŖććÆćŖć³ćÆćä½ęćććć`wp-content/plugins` ćć£ć¬ćÆććŖć«ć³ćć¼ćć¦ć éåøøć®ćć©ć°ć¤ć³ćØćć¦ć¤ć³ć¹ćć¼ć«ćć¦ćć ććć
+Docker ćØ `wp-env` ć®ä»£ććć«ć[Local](https://localwp.com/)ć[WampServer](https://wampserver.aviatechno.net/)ćć¾ććÆ [MAMP](https://www.mamp.info/) ćä½æēØćć¦ććć¼ć«ć«ć® WordPress ē°å¢ćå®č”ć§ćć¾ććććć«ćÆé©åćŖ `wp-content/plugins` ć« Gutenberg ćć£ć¬ćÆććŖć®ć·ć³ććŖććÆćŖć³ćÆćä½ęćććć³ćć¼ćć¦ćéåøøć®ćć©ć°ć¤ć³ćØćć¦ć¤ć³ć¹ćć¼ć«ćć¦ćć ććć
diff --git a/docs/explanations/user-interface/design-resources.md b/docs/explanations/user-interface/design-resources.md
index 9b3dab895e5fe3..33d062d75a80ed 100644
--- a/docs/explanations/user-interface/design-resources.md
+++ b/docs/explanations/user-interface/design-resources.md
@@ -9,9 +9,9 @@
## Figma
-[WordPress ćć¶ć¤ć³ćć¼ć ](https://make.wordpress.org/design/) ćÆć³ć©ćć¬ć¼ć·ć§ć³ćØćÆć¼ćÆć®å
±ęć« [Figma](https://www.figma.com/) ćä½æēØćć¾ććć³ć³ććŖćć„ć¼ć·ć§ć³ćčćć¦ććå “åćÆć[Slack](https://make.wordpress.org/chat/) ć® [#design ćć£ć³ćć«](https://app.slack.com/client/T024MFP4J/C02S78ZAL) ć«åå ććFigma ć®ććŖć¼ć¢ć«ć¦ć³ćć®ć»ććć¢ćććä¾é ¼ćć¦ćć ćććWordPress ć§ä½æēØćććć³ć³ćć¼ćć³ćć®ęēØćŖć©ć¤ćć©ćŖć«ć¢ćÆć»ć¹ć§ććććć«ćŖćć¾ććć©ć¤ćć©ćŖćÆå®å®ćć¦ćććå®å
Øć«ćµćć¼ććććęę°ēć§ććć¶ć¤ć³ćććććæć¤ćć§ććć«ä½æćć¾ćć
+[WordPress ćć¶ć¤ć³ćć¼ć ](https://make.wordpress.org/design/)ćÆć³ć©ćć¬ć¼ć·ć§ć³ćØćÆć¼ćÆć®å
±ęć« [Figma](https://www.figma.com/) ćä½æēØćć¾ććć³ć³ććŖćć„ć¼ć·ć§ć³ćčćć¦ććå “åćÆć[WordPress Figma ćć¶ć¤ć³ć©ć¤ćć©ćŖ](https://make.wordpress.org/design/handbook/get-involved/tools-figma/)ćä½æēØćć¦ć¢ććÆć¢ćććä½ęć§ćć¾ććć¾ćć[Slack](https://make.wordpress.org/chat/) ć® [#design ćć£ć³ćć«](https://app.slack.com/client/T024MFP4J/C02S78ZAL)ć«åå ćć¦ćć¢ććć¤ć¹ćŖć©ćę±ćććć¾ććFigma ć®ć¢ć«ć¦ć³ććÆē”ęć§ćå
±ęć©ć¤ćć©ćŖććć³ć³ćć¼ćć³ććä½æēØć§ććē·Øéćåæ
č¦ćŖå “åćÆćć”ć¤ć«ććć©ććć«č¤č£½ć§ćć¾ććWordPress ć©ć¤ćć©ćŖćøć®å®å
ØćŖē·Øéć¢ćÆć»ć¹ćÆęÆęćęøćæć§ććć¶ć¤ć³ćć¼ć ć®ććć«äŗē“ććć¦ćć¾ćć
+
-ćć¤ććććÆććććÆć§ćÆććć©ć³ććØć³ćć®ćć¼ćÆć¢ćććÆćµć¼ćć¼ćµć¤ćć§ć¬ć³ćć¼ććć¾ćć`save` é¢ę°ć§ `useBlockProps.save()` ćä½æēØććć®ćØåćććć«ć[`get_block_wrapper_attributes()`](https://developer.wordpress.org/reference/functions/get_block_wrapper_attributes/) é¢ę°ćå©ēØćć¦ćåæ
č¦ćŖćÆć©ć¹ćØå±ę§ćåŗåć§ćć¾ćć[ä¾](https://github.com/WordPress/block-development-examples/blob/f68640f42d993f0866d1879f67c73910285ca114/plugins/block-dynamic-rendering-64756b/src/render.php#L11)ćåē
§ćć¦ćć ććć
+ćć¤ććććÆććććÆć§ćÆćććć³ććØć³ćć®ćć¼ćÆć¢ćććÆćµć¼ćć¼ćµć¤ćć§ć¬ć³ćć¼ććć¾ćć`save` é¢ę°ć§ `useBlockProps.save()` ćä½æēØććć®ćØåćććć«ć[`get_block_wrapper_attributes()`](https://developer.wordpress.org/reference/functions/get_block_wrapper_attributes/) é¢ę°ćå©ēØćć¦ćåæ
č¦ćŖćÆć©ć¹ćØå±ę§ćåŗåć§ćć¾ćć[ä¾](https://github.com/WordPress/block-development-examples/blob/f68640f42d993f0866d1879f67c73910285ca114/plugins/block-dynamic-rendering-64756b/src/render.php#L11)ćåē
§ćć¦ćć ććć
```php
> diff --git a/docs/getting-started/fundamentals/static-dynamic-rendering.md b/docs/getting-started/fundamentals/static-dynamic-rendering.md index 8d199f66cccd2a..dfb6a7123b44b3 100644 --- a/docs/getting-started/fundamentals/static-dynamic-rendering.md +++ b/docs/getting-started/fundamentals/static-dynamic-rendering.md @@ -61,7 +61,7 @@ Dynamic blocks, which we'll explore in the following section, can specify an ini For a practical demonstration of how this works, refer to the [Building your first block](/docs/getting-started/tutorial.md) tutorial. Specifically, the [Adding static rendering](/docs/getting-started/tutorial.md#adding-static-rendering) section illustrates how a block can have both a saved HTML structure and dynamic rendering capabilities.
render_block
are the $render_callback
function to alter the saved HTML of a block before it appears on the front end. These tools offer developers the capability to customize block output dynamically, catering to complex and interactive user experiences.
+WordPress provides mechanisms like the render_block
and the render_callback
function to alter the saved HTML of a block before it appears on the front end. These tools offer developers the capability to customize block output dynamically, catering to complex and interactive user experiences.
Theme:
+Counter:
+ +Theme:
+Counter:
+Counter:
+ +Product Price: $
+Tax Rate:
+Price (inc. tax): $
+